@pibbl/core 0.0.1 → 0.0.3-alpha.85.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 (374) 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.d.ts +115 -62
  27. package/dist/features/physics/2d.js +59 -28
  28. package/dist/features/physics/2d.js.map +2 -2
  29. package/dist/features/physics/lib/2d/query-types.d.ts +6 -0
  30. package/dist/features/physics/lib/2d/runtime/controller.d.ts +7 -6
  31. package/dist/features/physics/lib/2d/runtime/controller.js.map +2 -2
  32. package/dist/features/physics/lib/2d/types.d.ts +8 -30
  33. package/dist/features/physics/lib/2d/world/queries.d.ts +7 -6
  34. package/dist/features/physics/lib/2d/world/queries.js.map +2 -2
  35. package/dist/features/sprites/formats/aseprite.d.ts +5 -0
  36. package/dist/features/sprites/formats/texture-packer.d.ts +5 -0
  37. package/dist/features/sprites/index.d.ts +6 -0
  38. package/dist/features/sprites/loader.d.ts +25 -0
  39. package/dist/features/sprites/model.d.ts +75 -0
  40. package/dist/features/sprites/sprite.d.ts +22 -0
  41. package/dist/features/textures/index.d.ts +12 -2
  42. package/dist/features/textures/index.js +33 -1
  43. package/dist/features/textures/index.js.map +2 -2
  44. package/dist/features/textures/lib/chemical-field.d.ts +56 -0
  45. package/dist/features/textures/lib/chemical-field.js +154 -0
  46. package/dist/features/textures/lib/chemical-field.js.map +7 -0
  47. package/dist/features/textures/lib/chemical-recipes.d.ts +119 -0
  48. package/dist/features/textures/lib/chemical-recipes.js +275 -0
  49. package/dist/features/textures/lib/chemical-recipes.js.map +7 -0
  50. package/dist/features/textures/lib/definitions.d.ts +3 -18
  51. package/dist/features/textures/lib/definitions.js +15 -20
  52. package/dist/features/textures/lib/definitions.js.map +2 -2
  53. package/dist/features/textures/lib/geometric-patterns.d.ts +149 -0
  54. package/dist/features/textures/lib/geometric-patterns.js +305 -0
  55. package/dist/features/textures/lib/geometric-patterns.js.map +7 -0
  56. package/dist/features/textures/lib/gray-scott.d.ts +55 -0
  57. package/dist/features/textures/lib/gray-scott.js +39 -0
  58. package/dist/features/textures/lib/gray-scott.js.map +7 -0
  59. package/dist/features/textures/lib/patterns.d.ts +123 -0
  60. package/dist/features/textures/lib/patterns.js +344 -0
  61. package/dist/features/textures/lib/patterns.js.map +7 -0
  62. package/dist/features/textures/lib/reaction-diffusion.d.ts +3 -2
  63. package/dist/features/textures/lib/reaction-diffusion.js +9 -20
  64. package/dist/features/textures/lib/reaction-diffusion.js.map +2 -2
  65. package/dist/features/textures/lib/simulation.d.ts +10 -4
  66. package/dist/features/textures/lib/simulation.js +23 -13
  67. package/dist/features/textures/lib/simulation.js.map +2 -2
  68. package/dist/features/viz/index.d.ts +79 -5
  69. package/dist/features/viz/index.js +145 -4
  70. package/dist/features/viz/index.js.map +2 -2
  71. package/dist/features/viz/inspection/bar.d.ts +79 -0
  72. package/dist/features/viz/inspection/bar.js +49 -0
  73. package/dist/features/viz/inspection/bar.js.map +7 -0
  74. package/dist/features/viz/inspection/candle.d.ts +156 -0
  75. package/dist/features/viz/inspection/candle.js +120 -0
  76. package/dist/features/viz/inspection/candle.js.map +7 -0
  77. package/dist/features/viz/inspection/capture-types.d.ts +65 -0
  78. package/dist/features/viz/inspection/capture.d.ts +16 -0
  79. package/dist/features/viz/inspection/capture.js +49 -0
  80. package/dist/features/viz/inspection/capture.js.map +7 -0
  81. package/dist/features/viz/inspection/handler.d.ts +36 -0
  82. package/dist/features/viz/inspection/handler.js +91 -0
  83. package/dist/features/viz/inspection/handler.js.map +7 -0
  84. package/dist/features/viz/inspection/ohlc-bar.d.ts +132 -0
  85. package/dist/features/viz/inspection/ohlc-bar.js +118 -0
  86. package/dist/features/viz/inspection/ohlc-bar.js.map +7 -0
  87. package/dist/features/viz/inspection/owned-ref.d.ts +16 -0
  88. package/dist/features/viz/inspection/owned-ref.js +99 -0
  89. package/dist/features/viz/inspection/owned-ref.js.map +7 -0
  90. package/dist/features/viz/inspection/painted-point.d.ts +22 -0
  91. package/dist/features/viz/inspection/painted-point.js +29 -0
  92. package/dist/features/viz/inspection/painted-point.js.map +7 -0
  93. package/dist/features/viz/inspection/queries.d.ts +100 -0
  94. package/dist/features/viz/inspection/queries.js +192 -0
  95. package/dist/features/viz/inspection/queries.js.map +7 -0
  96. package/dist/features/viz/inspection/query-types.d.ts +177 -0
  97. package/dist/features/viz/inspection/volume.d.ts +104 -0
  98. package/dist/features/viz/inspection/volume.js +95 -0
  99. package/dist/features/viz/inspection/volume.js.map +7 -0
  100. package/dist/features/viz/inspection.d.ts +19 -0
  101. package/dist/features/viz/inspection.js +54 -0
  102. package/dist/features/viz/inspection.js.map +7 -0
  103. package/dist/features/viz/inspection.mjs +1 -0
  104. package/dist/features/viz/lib/area-series.d.ts +62 -0
  105. package/dist/features/viz/lib/area-series.js +120 -0
  106. package/dist/features/viz/lib/area-series.js.map +7 -0
  107. package/dist/features/viz/lib/axis-labels.d.ts +2 -0
  108. package/dist/features/viz/lib/axis-labels.js +41 -0
  109. package/dist/features/viz/lib/axis-labels.js.map +7 -0
  110. package/dist/features/viz/lib/axis-title.d.ts +23 -0
  111. package/dist/features/viz/lib/axis-title.js +23 -0
  112. package/dist/features/viz/lib/axis-title.js.map +7 -0
  113. package/dist/features/viz/lib/axis.d.ts +1 -1
  114. package/dist/features/viz/lib/axis.js +50 -50
  115. package/dist/features/viz/lib/axis.js.map +2 -2
  116. package/dist/features/viz/lib/bar-scale.d.ts +7 -0
  117. package/dist/features/viz/lib/bar-scale.js +34 -0
  118. package/dist/features/viz/lib/bar-scale.js.map +7 -0
  119. package/dist/features/viz/lib/bar-series.d.ts +3 -1
  120. package/dist/features/viz/lib/bar-series.js +21 -5
  121. package/dist/features/viz/lib/bar-series.js.map +2 -2
  122. package/dist/features/viz/lib/baseline-series.d.ts +55 -0
  123. package/dist/features/viz/lib/baseline-series.js +136 -0
  124. package/dist/features/viz/lib/baseline-series.js.map +7 -0
  125. package/dist/features/viz/lib/candlestick-series.d.ts +62 -0
  126. package/dist/features/viz/lib/candlestick-series.js +150 -0
  127. package/dist/features/viz/lib/candlestick-series.js.map +7 -0
  128. package/dist/features/viz/lib/censored-point-series.d.ts +71 -0
  129. package/dist/features/viz/lib/censored-point-series.js +129 -0
  130. package/dist/features/viz/lib/censored-point-series.js.map +7 -0
  131. package/dist/features/viz/lib/chart-lines.d.ts +41 -0
  132. package/dist/features/viz/lib/chart-lines.js +32 -0
  133. package/dist/features/viz/lib/chart-lines.js.map +7 -0
  134. package/dist/features/viz/lib/color-context.d.ts +4 -0
  135. package/dist/features/viz/lib/color-context.js +41 -0
  136. package/dist/features/viz/lib/color-context.js.map +7 -0
  137. package/dist/features/viz/lib/color-math.d.ts +4 -0
  138. package/dist/features/viz/lib/color-math.js +31 -0
  139. package/dist/features/viz/lib/color-math.js.map +7 -0
  140. package/dist/features/viz/lib/color-types.d.ts +53 -0
  141. package/dist/features/viz/lib/curve-definition.d.ts +49 -0
  142. package/dist/features/viz/lib/curve-definition.js +148 -0
  143. package/dist/features/viz/lib/curve-definition.js.map +7 -0
  144. package/dist/features/viz/lib/diverging-color-scale.d.ts +11 -0
  145. package/dist/features/viz/lib/diverging-color-scale.js +51 -0
  146. package/dist/features/viz/lib/diverging-color-scale.js.map +7 -0
  147. package/dist/features/viz/lib/domain-navigation.d.ts +40 -0
  148. package/dist/features/viz/lib/domain-navigation.js +77 -0
  149. package/dist/features/viz/lib/domain-navigation.js.map +7 -0
  150. package/dist/features/viz/lib/editable-chart-elements.d.ts +178 -0
  151. package/dist/features/viz/lib/editable-chart-elements.js +733 -0
  152. package/dist/features/viz/lib/editable-chart-elements.js.map +7 -0
  153. package/dist/features/viz/lib/financial-aggregation.d.ts +127 -0
  154. package/dist/features/viz/lib/financial-aggregation.js +116 -0
  155. package/dist/features/viz/lib/financial-aggregation.js.map +7 -0
  156. package/dist/features/viz/lib/financial-autoscale.d.ts +64 -0
  157. package/dist/features/viz/lib/financial-autoscale.js +61 -0
  158. package/dist/features/viz/lib/financial-autoscale.js.map +7 -0
  159. package/dist/features/viz/lib/financial-comparison.d.ts +62 -0
  160. package/dist/features/viz/lib/financial-comparison.js +98 -0
  161. package/dist/features/viz/lib/financial-comparison.js.map +7 -0
  162. package/dist/features/viz/lib/financial-geometry.d.ts +77 -0
  163. package/dist/features/viz/lib/financial-geometry.js +67 -0
  164. package/dist/features/viz/lib/financial-geometry.js.map +7 -0
  165. package/dist/features/viz/lib/financial-indicators.d.ts +114 -0
  166. package/dist/features/viz/lib/financial-indicators.js +135 -0
  167. package/dist/features/viz/lib/financial-indicators.js.map +7 -0
  168. package/dist/features/viz/lib/financial-oscillators.d.ts +171 -0
  169. package/dist/features/viz/lib/financial-oscillators.js +265 -0
  170. package/dist/features/viz/lib/financial-oscillators.js.map +7 -0
  171. package/dist/features/viz/lib/hover-data.d.ts +1 -1
  172. package/dist/features/viz/lib/hover-data.js +6 -3
  173. package/dist/features/viz/lib/hover-data.js.map +2 -2
  174. package/dist/features/viz/lib/hover-types.d.ts +5 -5
  175. package/dist/features/viz/lib/interval-band-series.d.ts +49 -0
  176. package/dist/features/viz/lib/interval-band-series.js +136 -0
  177. package/dist/features/viz/lib/interval-band-series.js.map +7 -0
  178. package/dist/features/viz/lib/interval-diamond-series.d.ts +43 -0
  179. package/dist/features/viz/lib/interval-diamond-series.js +124 -0
  180. package/dist/features/viz/lib/interval-diamond-series.js.map +7 -0
  181. package/dist/features/viz/lib/interval-series.d.ts +79 -0
  182. package/dist/features/viz/lib/interval-series.js +158 -0
  183. package/dist/features/viz/lib/interval-series.js.map +7 -0
  184. package/dist/features/viz/lib/line-series.d.ts +1 -1
  185. package/dist/features/viz/lib/line-series.js +47 -28
  186. package/dist/features/viz/lib/line-series.js.map +2 -2
  187. package/dist/features/viz/lib/linear-scale-component.d.ts +7 -0
  188. package/dist/features/viz/lib/linear-scale-component.js +18 -0
  189. package/dist/features/viz/lib/linear-scale-component.js.map +7 -0
  190. package/dist/features/viz/lib/linear-scale.js +1 -1
  191. package/dist/features/viz/lib/linear-scale.js.map +2 -2
  192. package/dist/features/viz/lib/log-scale-component.d.ts +7 -0
  193. package/dist/features/viz/lib/log-scale-component.js +19 -0
  194. package/dist/features/viz/lib/log-scale-component.js.map +7 -0
  195. package/dist/features/viz/lib/log-scale.d.ts +2 -0
  196. package/dist/features/viz/lib/log-scale.js +53 -0
  197. package/dist/features/viz/lib/log-scale.js.map +7 -0
  198. package/dist/features/viz/lib/monotone-curve.d.ts +11 -0
  199. package/dist/features/viz/lib/monotone-curve.js +63 -0
  200. package/dist/features/viz/lib/monotone-curve.js.map +7 -0
  201. package/dist/features/viz/lib/nearest.d.ts +9 -9
  202. package/dist/features/viz/lib/nearest.js.map +1 -1
  203. package/dist/features/viz/lib/numeric-range-interpolation.d.ts +15 -0
  204. package/dist/features/viz/lib/numeric-range-interpolation.js +36 -0
  205. package/dist/features/viz/lib/numeric-range-interpolation.js.map +7 -0
  206. package/dist/features/viz/lib/numeric-ticks.d.ts +38 -0
  207. package/dist/features/viz/lib/numeric-ticks.js +54 -0
  208. package/dist/features/viz/lib/numeric-ticks.js.map +7 -0
  209. package/dist/features/viz/lib/ohlc-bar-series.d.ts +55 -0
  210. package/dist/features/viz/lib/ohlc-bar-series.js +168 -0
  211. package/dist/features/viz/lib/ohlc-bar-series.js.map +7 -0
  212. package/dist/features/viz/lib/paired-series.d.ts +44 -0
  213. package/dist/features/viz/lib/paired-series.js +93 -0
  214. package/dist/features/viz/lib/paired-series.js.map +7 -0
  215. package/dist/features/viz/lib/plot-series.js +11 -6
  216. package/dist/features/viz/lib/plot-series.js.map +2 -2
  217. package/dist/features/viz/lib/plot-types.d.ts +4 -3
  218. package/dist/features/viz/lib/point-scale-component.d.ts +7 -0
  219. package/dist/features/viz/lib/point-scale-component.js +19 -0
  220. package/dist/features/viz/lib/point-scale-component.js.map +7 -0
  221. package/dist/features/viz/lib/point-scale.d.ts +2 -0
  222. package/dist/features/viz/lib/point-scale.js +45 -0
  223. package/dist/features/viz/lib/point-scale.js.map +7 -0
  224. package/dist/features/viz/lib/point-series.d.ts +1 -1
  225. package/dist/features/viz/lib/point-series.js +36 -9
  226. package/dist/features/viz/lib/point-series.js.map +2 -2
  227. package/dist/features/viz/lib/point-types.d.ts +5 -2
  228. package/dist/features/viz/lib/reference-band.d.ts +16 -0
  229. package/dist/features/viz/lib/reference-band.js +27 -0
  230. package/dist/features/viz/lib/reference-band.js.map +7 -0
  231. package/dist/features/viz/lib/scale-adjust.js +9 -4
  232. package/dist/features/viz/lib/scale-adjust.js.map +2 -2
  233. package/dist/features/viz/lib/scale-context.d.ts +5 -4
  234. package/dist/features/viz/lib/scale-context.js +15 -11
  235. package/dist/features/viz/lib/scale-context.js.map +2 -2
  236. package/dist/features/viz/lib/scale-provider.d.ts +2 -0
  237. package/dist/features/viz/lib/scale-provider.js +13 -0
  238. package/dist/features/viz/lib/scale-provider.js.map +7 -0
  239. package/dist/features/viz/lib/scale-ticks.d.ts +5 -0
  240. package/dist/features/viz/lib/scale-ticks.js +64 -0
  241. package/dist/features/viz/lib/scale-ticks.js.map +7 -0
  242. package/dist/features/viz/lib/scale-view.d.ts +4 -0
  243. package/dist/features/viz/lib/scale-view.js +21 -0
  244. package/dist/features/viz/lib/scale-view.js.map +7 -0
  245. package/dist/features/viz/lib/sequential-color-scale.d.ts +11 -0
  246. package/dist/features/viz/lib/sequential-color-scale.js +49 -0
  247. package/dist/features/viz/lib/sequential-color-scale.js.map +7 -0
  248. package/dist/features/viz/lib/series-position.d.ts +12 -0
  249. package/dist/features/viz/lib/series-position.js +44 -0
  250. package/dist/features/viz/lib/series-position.js.map +7 -0
  251. package/dist/features/viz/lib/step-curves.d.ts +19 -0
  252. package/dist/features/viz/lib/step-curves.js +53 -0
  253. package/dist/features/viz/lib/step-curves.js.map +7 -0
  254. package/dist/features/viz/lib/symlog-scale-component.d.ts +7 -0
  255. package/dist/features/viz/lib/symlog-scale-component.js +19 -0
  256. package/dist/features/viz/lib/symlog-scale-component.js.map +7 -0
  257. package/dist/features/viz/lib/symlog-scale.d.ts +2 -0
  258. package/dist/features/viz/lib/symlog-scale.js +38 -0
  259. package/dist/features/viz/lib/symlog-scale.js.map +7 -0
  260. package/dist/features/viz/lib/threshold-color-scale.d.ts +43 -0
  261. package/dist/features/viz/lib/threshold-color-scale.js +59 -0
  262. package/dist/features/viz/lib/threshold-color-scale.js.map +7 -0
  263. package/dist/features/viz/lib/trading-time-mapping.d.ts +32 -0
  264. package/dist/features/viz/lib/trading-time-mapping.js +89 -0
  265. package/dist/features/viz/lib/trading-time-mapping.js.map +7 -0
  266. package/dist/features/viz/lib/trading-time-scale.d.ts +83 -0
  267. package/dist/features/viz/lib/trading-time-scale.js +96 -0
  268. package/dist/features/viz/lib/trading-time-scale.js.map +7 -0
  269. package/dist/features/viz/lib/trajectory-series.d.ts +71 -0
  270. package/dist/features/viz/lib/trajectory-series.js +111 -0
  271. package/dist/features/viz/lib/trajectory-series.js.map +7 -0
  272. package/dist/features/viz/lib/types.d.ts +114 -21
  273. package/dist/features/viz/lib/use-bar-scale.d.ts +8 -0
  274. package/dist/features/viz/lib/use-bar-scale.js +9 -0
  275. package/dist/features/viz/lib/use-bar-scale.js.map +7 -0
  276. package/dist/features/viz/lib/use-continuous-scale.d.ts +8 -0
  277. package/dist/features/viz/lib/use-continuous-scale.js +14 -0
  278. package/dist/features/viz/lib/use-continuous-scale.js.map +7 -0
  279. package/dist/features/viz/lib/use-linear-scale.d.ts +8 -0
  280. package/dist/features/viz/lib/use-linear-scale.js +9 -0
  281. package/dist/features/viz/lib/use-linear-scale.js.map +7 -0
  282. package/dist/features/viz/lib/use-log-scale.d.ts +8 -0
  283. package/dist/features/viz/lib/use-log-scale.js +9 -0
  284. package/dist/features/viz/lib/use-log-scale.js.map +7 -0
  285. package/dist/features/viz/lib/use-point-scale.d.ts +8 -0
  286. package/dist/features/viz/lib/use-point-scale.js +9 -0
  287. package/dist/features/viz/lib/use-point-scale.js.map +7 -0
  288. package/dist/features/viz/lib/use-symlog-scale.d.ts +8 -0
  289. package/dist/features/viz/lib/use-symlog-scale.js +9 -0
  290. package/dist/features/viz/lib/use-symlog-scale.js.map +7 -0
  291. package/dist/features/viz/lib/use-utc-scale.d.ts +8 -0
  292. package/dist/features/viz/lib/use-utc-scale.js +9 -0
  293. package/dist/features/viz/lib/use-utc-scale.js.map +7 -0
  294. package/dist/features/viz/lib/utc-labels.d.ts +12 -0
  295. package/dist/features/viz/lib/utc-labels.js +27 -0
  296. package/dist/features/viz/lib/utc-labels.js.map +7 -0
  297. package/dist/features/viz/lib/utc-scale-component.d.ts +7 -0
  298. package/dist/features/viz/lib/utc-scale-component.js +18 -0
  299. package/dist/features/viz/lib/utc-scale-component.js.map +7 -0
  300. package/dist/features/viz/lib/utc-scale.d.ts +21 -0
  301. package/dist/features/viz/lib/utc-scale.js +123 -0
  302. package/dist/features/viz/lib/utc-scale.js.map +7 -0
  303. package/dist/features/viz/lib/volume-series.d.ts +59 -0
  304. package/dist/features/viz/lib/volume-series.js +117 -0
  305. package/dist/features/viz/lib/volume-series.js.map +7 -0
  306. package/dist/features/viz/lib/weighted-point-series.d.ts +71 -0
  307. package/dist/features/viz/lib/weighted-point-series.js +169 -0
  308. package/dist/features/viz/lib/weighted-point-series.js.map +7 -0
  309. package/dist/filters/emboss-gpu.d.ts +4 -0
  310. package/dist/filters/emboss-gpu.js +39 -0
  311. package/dist/filters/emboss-gpu.js.map +7 -0
  312. package/dist/filters/emboss.d.ts +32 -0
  313. package/dist/filters/emboss.js +106 -0
  314. package/dist/filters/emboss.js.map +7 -0
  315. package/dist/filters/reflection-gpu.d.ts +3 -1
  316. package/dist/filters/reflection-gpu.js +5 -2
  317. package/dist/filters/reflection-gpu.js.map +2 -2
  318. package/dist/filters/render-emboss-boundary.d.ts +13 -0
  319. package/dist/filters/render-emboss-boundary.js +131 -0
  320. package/dist/filters/render-emboss-boundary.js.map +7 -0
  321. package/dist/filters.d.ts +2 -0
  322. package/dist/filters.js +2 -0
  323. package/dist/filters.js.map +2 -2
  324. package/dist/index.d.ts +3 -1
  325. package/dist/index.js +3 -0
  326. package/dist/index.js.map +2 -2
  327. package/dist/internal.d.ts +2 -0
  328. package/dist/internal.js +4 -0
  329. package/dist/internal.js.map +2 -2
  330. package/dist/lib/animation/definition.d.ts +5 -3
  331. package/dist/lib/animation/definition.js +29 -4
  332. package/dist/lib/animation/definition.js.map +2 -2
  333. package/dist/lib/animation/playback.d.ts +8 -0
  334. package/dist/lib/animation/playback.js +33 -11
  335. package/dist/lib/animation/playback.js.map +2 -2
  336. package/dist/lib/animation/spring.d.ts +3 -1
  337. package/dist/lib/animation/spring.js.map +2 -2
  338. package/dist/lib/animation/types.d.ts +29 -73
  339. package/dist/lib/events/event-facade.d.ts +13 -0
  340. package/dist/lib/events/event-facade.js +23 -0
  341. package/dist/lib/events/event-facade.js.map +2 -2
  342. package/dist/lib/events/propagation.js +19 -14
  343. package/dist/lib/events/propagation.js.map +2 -2
  344. package/dist/lib/execute-render.js +13 -0
  345. package/dist/lib/execute-render.js.map +2 -2
  346. package/dist/lib/hooks/use-animated-value.d.ts +11 -21
  347. package/dist/lib/hooks/use-animated-value.js +23 -70
  348. package/dist/lib/hooks/use-animated-value.js.map +3 -3
  349. package/dist/lib/hooks/use-playback.js +1 -0
  350. package/dist/lib/hooks/use-playback.js.map +2 -2
  351. package/dist/lib/recording/recording.d.ts +43 -0
  352. package/dist/lib/recording/recording.js +555 -0
  353. package/dist/lib/recording/recording.js.map +7 -0
  354. package/dist/lib/recording/types.d.ts +118 -0
  355. package/dist/lib/recording/wasm-bytes.d.ts +1 -0
  356. package/dist/lib/recording/wasm-bytes.js +5 -0
  357. package/dist/lib/recording/wasm-bytes.js.map +7 -0
  358. package/dist/lib/recording/worker-source.d.ts +1 -0
  359. package/dist/lib/recording/worker-source.js +5 -0
  360. package/dist/lib/recording/worker-source.js.map +7 -0
  361. package/dist/lib/render-transaction.d.ts +5 -2
  362. package/dist/lib/render-transaction.js +23 -1
  363. package/dist/lib/render-transaction.js.map +2 -2
  364. package/dist/lib/series-inspection-frame.d.ts +18 -0
  365. package/dist/lib/series-inspection-frame.js +70 -0
  366. package/dist/lib/series-inspection-frame.js.map +7 -0
  367. package/dist/lib/types.d.ts +6 -0
  368. package/package.json +27 -5
  369. package/dist/features/viz/lib/scale.d.ts +0 -11
  370. package/dist/features/viz/lib/scale.js +0 -80
  371. package/dist/features/viz/lib/scale.js.map +0 -7
  372. package/dist/features/viz/lib/use-scale.d.ts +0 -20
  373. package/dist/features/viz/lib/use-scale.js +0 -10
  374. package/dist/features/viz/lib/use-scale.js.map +0 -7
@@ -1,7 +1,9 @@
1
1
  class RootRenderTransaction {
2
2
  publications = /* @__PURE__ */ new Set();
3
3
  callbacks = /* @__PURE__ */ new Set();
4
+ afterFinishCallbacks = /* @__PURE__ */ new Set();
4
5
  result;
6
+ afterFinishDelivered = false;
5
7
  onPublish(callback) {
6
8
  if (this.result !== void 0) {
7
9
  if (this.result) callback();
@@ -11,6 +13,13 @@ class RootRenderTransaction {
11
13
  if (this.result !== void 0) callback(this.result);
12
14
  else this.callbacks.add(callback);
13
15
  }
16
+ onAfterFinish(callback) {
17
+ if (this.afterFinishDelivered) {
18
+ callback(this.result);
19
+ } else {
20
+ this.afterFinishCallbacks.add(callback);
21
+ }
22
+ }
14
23
  finish(success) {
15
24
  if (this.result !== void 0) return;
16
25
  const errors = [];
@@ -36,8 +45,21 @@ class RootRenderTransaction {
36
45
  errors.push(error);
37
46
  }
38
47
  }
48
+ while (this.afterFinishCallbacks.size) {
49
+ const afterFinishCallbacks = Array.from(this.afterFinishCallbacks);
50
+ this.afterFinishCallbacks.clear();
51
+ for (const callback of afterFinishCallbacks) {
52
+ try {
53
+ callback(success);
54
+ } catch (error) {
55
+ errors.push(error);
56
+ }
57
+ }
58
+ }
59
+ this.afterFinishDelivered = true;
39
60
  if (errors.length === 1) throw errors[0];
40
- if (errors.length) throw new AggregateError(errors, "Pibbl render completion failed.");
61
+ if (errors.length)
62
+ throw new AggregateError(errors, "Pibbl render completion failed.");
41
63
  }
42
64
  }
43
65
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/render-transaction.ts"],
4
- "sourcesContent": ["import type { PibblRenderTransaction } from './types.js';\n\n/** Root-wide publication precedes focus/policy commit in both render paths. */\nexport class RootRenderTransaction implements PibblRenderTransaction {\n private publications = new Set<() => void>();\n private callbacks = new Set<(success: boolean) => void>();\n private result: boolean | undefined;\n\n onPublish(callback: () => void): void {\n if (this.result !== undefined) {\n if (this.result) callback();\n } else this.publications.add(callback);\n }\n\n onFinish(callback: (success: boolean) => void): void {\n if (this.result !== undefined) callback(this.result);\n else this.callbacks.add(callback);\n }\n\n finish(success: boolean): void {\n if (this.result !== undefined) return;\n const errors: unknown[] = [];\n if (success) {\n for (const publish of this.publications) {\n try { publish(); } catch (error) { errors.push(error); success = false; break; }\n }\n }\n this.publications.clear();\n this.result = success;\n const callbacks = Array.from(this.callbacks);\n this.callbacks.clear();\n for (const callback of callbacks) {\n try { callback(success); } catch (error) { errors.push(error); }\n }\n if (errors.length === 1) throw errors[0];\n if (errors.length) throw new AggregateError(errors, 'Pibbl render completion failed.');\n }\n}\n"],
5
- "mappings": "AAGO,MAAM,sBAAwD;AAAA,EAC3D,eAAe,oBAAI,IAAgB;AAAA,EACnC,YAAY,oBAAI,IAAgC;AAAA,EAChD;AAAA,EAER,UAAU,UAA4B;AACpC,QAAI,KAAK,WAAW,QAAW;AAC7B,UAAI,KAAK,OAAQ,UAAS;AAAA,IAC5B,MAAO,MAAK,aAAa,IAAI,QAAQ;AAAA,EACvC;AAAA,EAEA,SAAS,UAA4C;AACnD,QAAI,KAAK,WAAW,OAAW,UAAS,KAAK,MAAM;AAAA,QAC9C,MAAK,UAAU,IAAI,QAAQ;AAAA,EAClC;AAAA,EAEA,OAAO,SAAwB;AAC7B,QAAI,KAAK,WAAW,OAAW;AAC/B,UAAM,SAAoB,CAAC;AAC3B,QAAI,SAAS;AACX,iBAAW,WAAW,KAAK,cAAc;AACvC,YAAI;AAAE,kBAAQ;AAAA,QAAG,SAAS,OAAO;AAAE,iBAAO,KAAK,KAAK;AAAG,oBAAU;AAAO;AAAA,QAAO;AAAA,MACjF;AAAA,IACF;AACA,SAAK,aAAa,MAAM;AACxB,SAAK,SAAS;AACd,UAAM,YAAY,MAAM,KAAK,KAAK,SAAS;AAC3C,SAAK,UAAU,MAAM;AACrB,eAAW,YAAY,WAAW;AAChC,UAAI;AAAE,iBAAS,OAAO;AAAA,MAAG,SAAS,OAAO;AAAE,eAAO,KAAK,KAAK;AAAA,MAAG;AAAA,IACjE;AACA,QAAI,OAAO,WAAW,EAAG,OAAM,OAAO,CAAC;AACvC,QAAI,OAAO,OAAQ,OAAM,IAAI,eAAe,QAAQ,iCAAiC;AAAA,EACvF;AACF;",
4
+ "sourcesContent": ["import type { PibblRenderTransaction } from \"./types.js\";\n\n/** Root-wide publications and ordinary commit callbacks precede completion observers. */\nexport class RootRenderTransaction implements PibblRenderTransaction {\n private publications = new Set<() => void>();\n private callbacks = new Set<(success: boolean) => void>();\n private afterFinishCallbacks = new Set<(success: boolean) => void>();\n private result: boolean | undefined;\n private afterFinishDelivered = false;\n\n onPublish(callback: () => void): void {\n if (this.result !== undefined) {\n if (this.result) callback();\n } else this.publications.add(callback);\n }\n\n onFinish(callback: (success: boolean) => void): void {\n if (this.result !== undefined) callback(this.result);\n else this.callbacks.add(callback);\n }\n\n onAfterFinish(callback: (success: boolean) => void): void {\n if (this.afterFinishDelivered) {\n callback(this.result!);\n } else {\n this.afterFinishCallbacks.add(callback);\n }\n }\n\n finish(success: boolean): void {\n if (this.result !== undefined) return;\n const errors: unknown[] = [];\n if (success) {\n for (const publish of this.publications) {\n try {\n publish();\n } catch (error) {\n errors.push(error);\n success = false;\n break;\n }\n }\n }\n this.publications.clear();\n this.result = success;\n const callbacks = Array.from(this.callbacks);\n this.callbacks.clear();\n for (const callback of callbacks) {\n try {\n callback(success);\n } catch (error) {\n errors.push(error);\n }\n }\n while (this.afterFinishCallbacks.size) {\n const afterFinishCallbacks = Array.from(this.afterFinishCallbacks);\n this.afterFinishCallbacks.clear();\n for (const callback of afterFinishCallbacks) {\n try {\n callback(success);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n this.afterFinishDelivered = true;\n if (errors.length === 1) throw errors[0];\n if (errors.length)\n throw new AggregateError(errors, \"Pibbl render completion failed.\");\n }\n}\n"],
5
+ "mappings": "AAGO,MAAM,sBAAwD;AAAA,EAC3D,eAAe,oBAAI,IAAgB;AAAA,EACnC,YAAY,oBAAI,IAAgC;AAAA,EAChD,uBAAuB,oBAAI,IAAgC;AAAA,EAC3D;AAAA,EACA,uBAAuB;AAAA,EAE/B,UAAU,UAA4B;AACpC,QAAI,KAAK,WAAW,QAAW;AAC7B,UAAI,KAAK,OAAQ,UAAS;AAAA,IAC5B,MAAO,MAAK,aAAa,IAAI,QAAQ;AAAA,EACvC;AAAA,EAEA,SAAS,UAA4C;AACnD,QAAI,KAAK,WAAW,OAAW,UAAS,KAAK,MAAM;AAAA,QAC9C,MAAK,UAAU,IAAI,QAAQ;AAAA,EAClC;AAAA,EAEA,cAAc,UAA4C;AACxD,QAAI,KAAK,sBAAsB;AAC7B,eAAS,KAAK,MAAO;AAAA,IACvB,OAAO;AACL,WAAK,qBAAqB,IAAI,QAAQ;AAAA,IACxC;AAAA,EACF;AAAA,EAEA,OAAO,SAAwB;AAC7B,QAAI,KAAK,WAAW,OAAW;AAC/B,UAAM,SAAoB,CAAC;AAC3B,QAAI,SAAS;AACX,iBAAW,WAAW,KAAK,cAAc;AACvC,YAAI;AACF,kBAAQ;AAAA,QACV,SAAS,OAAO;AACd,iBAAO,KAAK,KAAK;AACjB,oBAAU;AACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,SAAK,aAAa,MAAM;AACxB,SAAK,SAAS;AACd,UAAM,YAAY,MAAM,KAAK,KAAK,SAAS;AAC3C,SAAK,UAAU,MAAM;AACrB,eAAW,YAAY,WAAW;AAChC,UAAI;AACF,iBAAS,OAAO;AAAA,MAClB,SAAS,OAAO;AACd,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF;AACA,WAAO,KAAK,qBAAqB,MAAM;AACrC,YAAM,uBAAuB,MAAM,KAAK,KAAK,oBAAoB;AACjE,WAAK,qBAAqB,MAAM;AAChC,iBAAW,YAAY,sBAAsB;AAC3C,YAAI;AACF,mBAAS,OAAO;AAAA,QAClB,SAAS,OAAO;AACd,iBAAO,KAAK,KAAK;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AACA,SAAK,uBAAuB;AAC5B,QAAI,OAAO,WAAW,EAAG,OAAM,OAAO,CAAC;AACvC,QAAI,OAAO;AACT,YAAM,IAAI,eAAe,QAAQ,iCAAiC;AAAA,EACtE;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,18 @@
1
+ import type { PibblClippingStackEntry } from "./types.js";
2
+ /** Private geometry/ownership seam; no inspection algorithms enter core rendering.
3
+ * @returns Captured receiver ownership and lazily composed root geometry.
4
+ * @see {@link PibblClippingStackEntry}
5
+ */
6
+ export declare function captureSeriesInspectionFrame(): {
7
+ receiver: import("./types.js").PibblComponentRefs<any>;
8
+ onDispose: (callback: () => void) => void;
9
+ onFinish: (callback: (success: boolean) => void) => void;
10
+ alive: () => boolean;
11
+ generation: () => number;
12
+ resolve(): {
13
+ transform: DOMMatrix;
14
+ clips: PibblClippingStackEntry[];
15
+ generation: number;
16
+ canvas: HTMLCanvasElement;
17
+ } | undefined;
18
+ };
@@ -0,0 +1,70 @@
1
+ import { GLOBAL_STATE } from "./global-state.js";
2
+ import { requireHookContext } from "./hooks/hook-slot.js";
3
+ import { getCurrentWorldTransform } from "./render-target.js";
4
+ import { PibblPaintEntryKind } from "./events/paint-entry.js";
5
+ function captureSeriesInspectionFrame() {
6
+ const { componentRefs, pibblInstance } = requireHookContext();
7
+ const localTransform = new DOMMatrix(
8
+ Array.from(getCurrentWorldTransform().toFloat64Array())
9
+ );
10
+ const localClips = GLOBAL_STATE.clippingStack.map((clip) => ({
11
+ ...clip,
12
+ path: new Path2D(clip.path),
13
+ transform: new DOMMatrix(Array.from(clip.transform.toFloat64Array()))
14
+ }));
15
+ const transaction = GLOBAL_STATE.renderTransaction;
16
+ return {
17
+ receiver: componentRefs,
18
+ onDispose: (callback) => componentRefs.teardowns.add(callback),
19
+ onFinish: (callback) => transaction.onFinish(callback),
20
+ alive: () => !componentRefs.teardowns.closed && !pibblInstance.mainTeardowns.closed,
21
+ generation: () => pibblInstance.eventRoot.rootInstance?.committedRenderGeneration ?? 0,
22
+ resolve() {
23
+ let owner = pibblInstance;
24
+ let transform = new DOMMatrix(
25
+ Array.from(localTransform.toFloat64Array())
26
+ );
27
+ let clips = localClips.slice();
28
+ while (owner !== owner.eventRoot.rootInstance) {
29
+ const parent = owner.parent && GLOBAL_STATE.pibblInstances.get(owner.parent);
30
+ if (!parent) return void 0;
31
+ const bridge = [...parent.paintEntries].find(
32
+ (entry) => entry.paintKind !== PibblPaintEntryKind.Path && entry.instance === owner
33
+ );
34
+ if (!bridge || bridge.paintKind === PibblPaintEntryKind.Path)
35
+ return void 0;
36
+ const outer = bridge.transform;
37
+ clips = clips.map((clip) => ({
38
+ ...clip,
39
+ transform: outer.multiply(clip.transform)
40
+ }));
41
+ clips.push(
42
+ ...bridge.clippingStack.map((clip) => ({
43
+ ...clip,
44
+ path: new Path2D(clip.path),
45
+ transform: new DOMMatrix(
46
+ Array.from(clip.transform.toFloat64Array())
47
+ )
48
+ }))
49
+ );
50
+ clips.push({
51
+ path: new Path2D(bridge.bounds),
52
+ transform: new DOMMatrix(Array.from(outer.toFloat64Array())),
53
+ fillRule: "nonzero"
54
+ });
55
+ transform = outer.multiply(transform);
56
+ owner = parent;
57
+ }
58
+ return {
59
+ transform,
60
+ clips,
61
+ generation: owner.committedRenderGeneration ?? 0,
62
+ canvas: owner.canvas
63
+ };
64
+ }
65
+ };
66
+ }
67
+ export {
68
+ captureSeriesInspectionFrame
69
+ };
70
+ //# sourceMappingURL=series-inspection-frame.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/series-inspection-frame.ts"],
4
+ "sourcesContent": ["import { GLOBAL_STATE } from \"./global-state.js\";\nimport { requireHookContext } from \"./hooks/hook-slot.js\";\nimport { getCurrentWorldTransform } from \"./render-target.js\";\nimport { PibblPaintEntryKind } from \"./events/paint-entry.js\";\nimport type { PibblClippingStackEntry } from \"./types.js\";\n\n/** Private geometry/ownership seam; no inspection algorithms enter core rendering.\n * @returns Captured receiver ownership and lazily composed root geometry.\n * @see {@link PibblClippingStackEntry}\n */\nexport function captureSeriesInspectionFrame() {\n const { componentRefs, pibblInstance } = requireHookContext();\n const localTransform = new DOMMatrix(\n Array.from(getCurrentWorldTransform().toFloat64Array()),\n );\n const localClips = GLOBAL_STATE.clippingStack.map((clip) => ({\n ...clip,\n path: new Path2D(clip.path),\n transform: new DOMMatrix(Array.from(clip.transform.toFloat64Array())),\n }));\n const transaction = GLOBAL_STATE.renderTransaction!;\n return {\n receiver: componentRefs,\n onDispose: (callback: () => void) => componentRefs.teardowns.add(callback),\n onFinish: (callback: (success: boolean) => void) =>\n transaction.onFinish(callback),\n alive: () =>\n !componentRefs.teardowns.closed && !pibblInstance.mainTeardowns.closed,\n generation: () =>\n pibblInstance.eventRoot.rootInstance?.committedRenderGeneration ?? 0,\n resolve() {\n let owner = pibblInstance;\n let transform = new DOMMatrix(\n Array.from(localTransform.toFloat64Array()),\n );\n let clips: PibblClippingStackEntry[] = localClips.slice();\n while (owner !== owner.eventRoot.rootInstance) {\n const parent =\n owner.parent && GLOBAL_STATE.pibblInstances.get(owner.parent);\n if (!parent) return undefined;\n const bridge = [...parent.paintEntries].find(\n (entry) =>\n entry.paintKind !== PibblPaintEntryKind.Path &&\n entry.instance === owner,\n );\n if (!bridge || bridge.paintKind === PibblPaintEntryKind.Path)\n return undefined;\n const outer = bridge.transform;\n clips = clips.map((clip) => ({\n ...clip,\n transform: outer.multiply(clip.transform),\n }));\n clips.push(\n ...bridge.clippingStack.map((clip) => ({\n ...clip,\n path: new Path2D(clip.path),\n transform: new DOMMatrix(\n Array.from(clip.transform.toFloat64Array()),\n ),\n })),\n );\n clips.push({\n path: new Path2D(bridge.bounds),\n transform: new DOMMatrix(Array.from(outer.toFloat64Array())),\n fillRule: \"nonzero\",\n });\n transform = outer.multiply(transform);\n owner = parent;\n }\n return {\n transform,\n clips,\n generation: owner.committedRenderGeneration ?? 0,\n canvas: owner.canvas as HTMLCanvasElement,\n };\n },\n };\n}\n"],
5
+ "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,0BAA0B;AACnC,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AAO7B,SAAS,+BAA+B;AAC7C,QAAM,EAAE,eAAe,cAAc,IAAI,mBAAmB;AAC5D,QAAM,iBAAiB,IAAI;AAAA,IACzB,MAAM,KAAK,yBAAyB,EAAE,eAAe,CAAC;AAAA,EACxD;AACA,QAAM,aAAa,aAAa,cAAc,IAAI,CAAC,UAAU;AAAA,IAC3D,GAAG;AAAA,IACH,MAAM,IAAI,OAAO,KAAK,IAAI;AAAA,IAC1B,WAAW,IAAI,UAAU,MAAM,KAAK,KAAK,UAAU,eAAe,CAAC,CAAC;AAAA,EACtE,EAAE;AACF,QAAM,cAAc,aAAa;AACjC,SAAO;AAAA,IACL,UAAU;AAAA,IACV,WAAW,CAAC,aAAyB,cAAc,UAAU,IAAI,QAAQ;AAAA,IACzE,UAAU,CAAC,aACT,YAAY,SAAS,QAAQ;AAAA,IAC/B,OAAO,MACL,CAAC,cAAc,UAAU,UAAU,CAAC,cAAc,cAAc;AAAA,IAClE,YAAY,MACV,cAAc,UAAU,cAAc,6BAA6B;AAAA,IACrE,UAAU;AACR,UAAI,QAAQ;AACZ,UAAI,YAAY,IAAI;AAAA,QAClB,MAAM,KAAK,eAAe,eAAe,CAAC;AAAA,MAC5C;AACA,UAAI,QAAmC,WAAW,MAAM;AACxD,aAAO,UAAU,MAAM,UAAU,cAAc;AAC7C,cAAM,SACJ,MAAM,UAAU,aAAa,eAAe,IAAI,MAAM,MAAM;AAC9D,YAAI,CAAC,OAAQ,QAAO;AACpB,cAAM,SAAS,CAAC,GAAG,OAAO,YAAY,EAAE;AAAA,UACtC,CAAC,UACC,MAAM,cAAc,oBAAoB,QACxC,MAAM,aAAa;AAAA,QACvB;AACA,YAAI,CAAC,UAAU,OAAO,cAAc,oBAAoB;AACtD,iBAAO;AACT,cAAM,QAAQ,OAAO;AACrB,gBAAQ,MAAM,IAAI,CAAC,UAAU;AAAA,UAC3B,GAAG;AAAA,UACH,WAAW,MAAM,SAAS,KAAK,SAAS;AAAA,QAC1C,EAAE;AACF,cAAM;AAAA,UACJ,GAAG,OAAO,cAAc,IAAI,CAAC,UAAU;AAAA,YACrC,GAAG;AAAA,YACH,MAAM,IAAI,OAAO,KAAK,IAAI;AAAA,YAC1B,WAAW,IAAI;AAAA,cACb,MAAM,KAAK,KAAK,UAAU,eAAe,CAAC;AAAA,YAC5C;AAAA,UACF,EAAE;AAAA,QACJ;AACA,cAAM,KAAK;AAAA,UACT,MAAM,IAAI,OAAO,OAAO,MAAM;AAAA,UAC9B,WAAW,IAAI,UAAU,MAAM,KAAK,MAAM,eAAe,CAAC,CAAC;AAAA,UAC3D,UAAU;AAAA,QACZ,CAAC;AACD,oBAAY,MAAM,SAAS,SAAS;AACpC,gBAAQ;AAAA,MACV;AACA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,YAAY,MAAM,6BAA6B;AAAA,QAC/C,QAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -461,6 +461,8 @@ export interface PibblEventRoot {
461
461
  export interface PibblRenderTransaction {
462
462
  onPublish?(callback: () => void): void;
463
463
  onFinish(callback: (success: boolean) => void): void;
464
+ /** Run after all finish callbacks have published their committed state. */
465
+ onAfterFinish?(callback: (success: boolean) => void): void;
464
466
  }
465
467
  export interface PibblFocusPolicyBridge {
466
468
  observeHtmlRegion?(region: HtmlFocusRegion): void;
@@ -529,6 +531,10 @@ export type FillStyle = CanvasRenderingContext2D["fillStyle"] | import('./textur
529
531
  */
530
532
  export type StrokeStyle = CanvasRenderingContext2D["strokeStyle"] | import('./textures/texture.js').TexturePaint;
531
533
  export interface PibblInstance {
534
+ /** Last root traversal published successfully; failed render attempts do not advance it. */
535
+ committedRenderGeneration?: number;
536
+ /** Opt-in root bitmap observers; absent unless a recording is attached. */
537
+ rootFrameObservers?: Set<(success: boolean, generation: number) => void>;
532
538
  canvas: Canvas;
533
539
  controller: PibblController;
534
540
  root: PibblNode;
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@pibbl/core",
3
3
  "type": "module",
4
- "version": "0.0.1",
4
+ "version": "0.0.3-alpha.85.1",
5
5
  "description": "Canvas 2D component runtime with JSX and createElement authoring",
6
6
  "author": "Ben Lesh <ben@benlesh.com>",
7
7
  "license": "MIT",
8
- "homepage": "https://github.com/benlesh/crc",
8
+ "homepage": "https://github.com/benlesh/pibbl",
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git+https://github.com/benlesh/crc.git",
11
+ "url": "git+https://github.com/benlesh/pibbl.git",
12
12
  "directory": "packages/core"
13
13
  },
14
- "bugs": "https://github.com/benlesh/crc/issues",
14
+ "bugs": "https://github.com/benlesh/pibbl/issues",
15
15
  "keywords": [
16
16
  "canvas",
17
17
  "jsx",
@@ -78,6 +78,18 @@
78
78
  "./sprites/formats/texture-packer": {
79
79
  "types": "./dist/features/sprites/formats/texture-packer.d.ts",
80
80
  "default": "./dist/features/sprites/formats/texture-packer.mjs"
81
+ },
82
+ "./machines": {
83
+ "types": "./dist/features/machines/index.d.ts",
84
+ "default": "./dist/features/machines/index.mjs"
85
+ },
86
+ "./machines/animation": {
87
+ "types": "./dist/features/machines/animation.d.ts",
88
+ "default": "./dist/features/machines/animation.mjs"
89
+ },
90
+ "./viz/inspection": {
91
+ "types": "./dist/features/viz/inspection.d.ts",
92
+ "default": "./dist/features/viz/inspection.mjs"
81
93
  }
82
94
  },
83
95
  "main": "./dist/index.mjs",
@@ -130,6 +142,15 @@
130
142
  ],
131
143
  "sprites/formats/texture-packer": [
132
144
  "./dist/features/sprites/formats/texture-packer.d.ts"
145
+ ],
146
+ "machines": [
147
+ "./dist/features/machines/index.d.ts"
148
+ ],
149
+ "machines/animation": [
150
+ "./dist/features/machines/animation.d.ts"
151
+ ],
152
+ "viz/inspection": [
153
+ "./dist/features/viz/inspection.d.ts"
133
154
  ]
134
155
  }
135
156
  },
@@ -141,8 +162,9 @@
141
162
  "@dimforge/rapier2d-compat": "0.21.0",
142
163
  "assemblyscript": "0.28.20"
143
164
  },
165
+ "pibblAlphaInputHash": "bcffc88fe310d66a1c37d713a3d38515ca2dc01471037e7831a71a660e0049a0",
144
166
  "scripts": {
145
- "build": "node ../../tooling/build-transition-wasm.mjs --check && rimraf dist && tsc -p tsconfig.build.json && node ../../tooling/build-core.mjs",
167
+ "build": "node ../../tooling/build-transition-wasm.mjs --check && node ../../tooling/build-recording-wasm.mjs --check && node ../../tooling/build-recording-worker.mjs --check && rimraf dist && tsc -p tsconfig.build.json && node ../../tooling/build-core.mjs",
146
168
  "dev": "pnpm run build",
147
169
  "test": "vitest"
148
170
  }
@@ -1,11 +0,0 @@
1
- import type { ScaleProps } from "./types.js";
2
- /**
3
- * Declares a named linear or band scale in the current layout for descendant visualization
4
- * components.
5
- *
6
- * @param props - Scale identity, domain, range, and child content. See {@link ScaleProps}.
7
- * @returns The scale's child content with the scale registered for descendants.
8
- *
9
- * @see {@link ScaleProps}
10
- */
11
- export declare function Scale(props: ScaleProps): import("@pibbl/core").PibblNode;
@@ -1,80 +0,0 @@
1
- import { resolveSignalValue, useComputed, useLayoutBox } from "@pibbl/core";
2
- import { equalScale, resolveLinearScale } from "./linear-scale.js";
3
- import { resolveBandScale } from "./band-scale.js";
4
- import { captureScaleLookup, provideScale } from "./scale-context.js";
5
- function Scale(props) {
6
- if ((typeof props.id !== "string" || props.id.length === 0) && typeof props.id !== "symbol")
7
- throw new TypeError("Scale id requires a nonempty string or symbol.");
8
- if (props.type !== "linear" && props.type !== "band")
9
- throw new TypeError(`Scale supports type="linear" or type="band".`);
10
- const { width, height } = useLayoutBox();
11
- const lookup = captureScaleLookup("Scale bandwidthOf");
12
- function resolveParent() {
13
- const range = resolveSignalValue(props.range);
14
- if (props.type !== "band" || typeof range !== "object" || range === null || !("bandwidthOf" in range))
15
- return void 0;
16
- const parent2 = lookup(range.bandwidthOf, "band")?.get();
17
- if (!parent2 || parent2.type !== "band")
18
- throw new TypeError("Scale bandwidthOf requires an ancestor band scale.");
19
- return parent2;
20
- }
21
- const parent = useComputed(resolveParent, [
22
- props.type,
23
- props.range,
24
- lookup
25
- ]).get();
26
- function resolvedRange() {
27
- const currentParent = resolveParent();
28
- return currentParent ? [0, currentParent.bandwidth] : resolveSignalValue(props.range);
29
- }
30
- const dependencies = [
31
- parent,
32
- props.type,
33
- props.domain,
34
- props.range,
35
- props.reverse,
36
- props.type === "band" ? props.paddingInner : void 0,
37
- props.type === "band" ? props.paddingOuter : void 0,
38
- width,
39
- height
40
- ];
41
- const value = useComputed(
42
- () => props.type === "band" ? resolveBandScale(
43
- resolveSignalValue(props.domain),
44
- resolvedRange(),
45
- resolveSignalValue(props.reverse ?? false),
46
- width,
47
- height,
48
- resolveSignalValue(props.paddingInner ?? 0),
49
- resolveSignalValue(props.paddingOuter ?? 0)
50
- ) : resolveLinearScale(
51
- resolveSignalValue(props.domain),
52
- resolvedRange(),
53
- resolveSignalValue(props.reverse ?? false),
54
- width,
55
- height
56
- ),
57
- dependencies,
58
- { equals: equalScale }
59
- );
60
- const linear = useComputed(() => {
61
- const resolved = value.get();
62
- if (resolved.type !== "linear")
63
- throw new TypeError(
64
- 'useScale requires type=linear; use useScale(id, "band") for band scales.'
65
- );
66
- return resolved;
67
- }, dependencies);
68
- const band = useComputed(() => {
69
- const resolved = value.get();
70
- if (resolved.type !== "band")
71
- throw new TypeError("useScale requires type=band.");
72
- return resolved;
73
- }, dependencies);
74
- provideScale(props.id, value, linear, band);
75
- return props.children;
76
- }
77
- export {
78
- Scale
79
- };
80
- //# sourceMappingURL=scale.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/features/viz/lib/scale.ts"],
4
- "sourcesContent": ["import { resolveSignalValue, useComputed, useLayoutBox } from \"@pibbl/core\";\nimport type { ScaleProps, ScaleRange } from \"./types.js\";\nimport { equalScale, resolveLinearScale } from \"./linear-scale.js\";\nimport { resolveBandScale } from \"./band-scale.js\";\nimport { captureScaleLookup, provideScale } from \"./scale-context.js\";\n/**\n * Declares a named linear or band scale in the current layout for descendant visualization\n * components.\n *\n * @param props - Scale identity, domain, range, and child content. See {@link ScaleProps}.\n * @returns The scale's child content with the scale registered for descendants.\n *\n * @see {@link ScaleProps}\n */\nexport function Scale(props: ScaleProps) {\n if (\n (typeof props.id !== \"string\" || props.id.length === 0) &&\n typeof props.id !== \"symbol\"\n )\n throw new TypeError(\"Scale id requires a nonempty string or symbol.\");\n if (props.type !== \"linear\" && props.type !== \"band\")\n throw new TypeError(`Scale supports type=\"linear\" or type=\"band\".`);\n const { width, height } = useLayoutBox();\n const lookup = captureScaleLookup(\"Scale bandwidthOf\");\n function resolveParent() {\n const range = resolveSignalValue(props.range);\n if (\n props.type !== \"band\" ||\n typeof range !== \"object\" ||\n range === null ||\n !(\"bandwidthOf\" in range)\n )\n return undefined;\n const parent = lookup(range.bandwidthOf, \"band\")?.get();\n if (!parent || parent.type !== \"band\")\n throw new TypeError(\"Scale bandwidthOf requires an ancestor band scale.\");\n return parent;\n }\n // This snapshot admits allocation changes into the current render transaction.\n // The formula also reads the live ancestor, preserving synchronous signal reads.\n const parent = useComputed(resolveParent, [\n props.type,\n props.range,\n lookup,\n ]).get();\n function resolvedRange(): ScaleRange {\n const currentParent = resolveParent();\n return currentParent\n ? [0, currentParent.bandwidth]\n : (resolveSignalValue(props.range) as ScaleRange);\n }\n const dependencies = [\n parent,\n props.type,\n props.domain,\n props.range,\n props.reverse,\n props.type === \"band\" ? props.paddingInner : undefined,\n props.type === \"band\" ? props.paddingOuter : undefined,\n width,\n height,\n ];\n const value = useComputed(\n () =>\n props.type === \"band\"\n ? resolveBandScale(\n resolveSignalValue(props.domain),\n resolvedRange(),\n resolveSignalValue(props.reverse ?? false),\n width,\n height,\n resolveSignalValue(props.paddingInner ?? 0),\n resolveSignalValue(props.paddingOuter ?? 0),\n )\n : resolveLinearScale(\n resolveSignalValue(props.domain),\n resolvedRange(),\n resolveSignalValue(props.reverse ?? false),\n width,\n height,\n ),\n dependencies,\n { equals: equalScale },\n );\n const linear = useComputed(() => {\n const resolved = value.get();\n if (resolved.type !== \"linear\")\n throw new TypeError(\n 'useScale requires type=linear; use useScale(id, \"band\") for band scales.',\n );\n return resolved;\n }, dependencies);\n const band = useComputed(() => {\n const resolved = value.get();\n if (resolved.type !== \"band\")\n throw new TypeError(\"useScale requires type=band.\");\n return resolved;\n }, dependencies);\n provideScale(props.id, value, linear, band);\n return props.children;\n}\n"],
5
- "mappings": "AAAA,SAAS,oBAAoB,aAAa,oBAAoB;AAE9D,SAAS,YAAY,0BAA0B;AAC/C,SAAS,wBAAwB;AACjC,SAAS,oBAAoB,oBAAoB;AAU1C,SAAS,MAAM,OAAmB;AACvC,OACG,OAAO,MAAM,OAAO,YAAY,MAAM,GAAG,WAAW,MACrD,OAAO,MAAM,OAAO;AAEpB,UAAM,IAAI,UAAU,gDAAgD;AACtE,MAAI,MAAM,SAAS,YAAY,MAAM,SAAS;AAC5C,UAAM,IAAI,UAAU,8CAA8C;AACpE,QAAM,EAAE,OAAO,OAAO,IAAI,aAAa;AACvC,QAAM,SAAS,mBAAmB,mBAAmB;AACrD,WAAS,gBAAgB;AACvB,UAAM,QAAQ,mBAAmB,MAAM,KAAK;AAC5C,QACE,MAAM,SAAS,UACf,OAAO,UAAU,YACjB,UAAU,QACV,EAAE,iBAAiB;AAEnB,aAAO;AACT,UAAMA,UAAS,OAAO,MAAM,aAAa,MAAM,GAAG,IAAI;AACtD,QAAI,CAACA,WAAUA,QAAO,SAAS;AAC7B,YAAM,IAAI,UAAU,oDAAoD;AAC1E,WAAOA;AAAA,EACT;AAGA,QAAM,SAAS,YAAY,eAAe;AAAA,IACxC,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EACF,CAAC,EAAE,IAAI;AACP,WAAS,gBAA4B;AACnC,UAAM,gBAAgB,cAAc;AACpC,WAAO,gBACH,CAAC,GAAG,cAAc,SAAS,IAC1B,mBAAmB,MAAM,KAAK;AAAA,EACrC;AACA,QAAM,eAAe;AAAA,IACnB;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,SAAS,SAAS,MAAM,eAAe;AAAA,IAC7C,MAAM,SAAS,SAAS,MAAM,eAAe;AAAA,IAC7C;AAAA,IACA;AAAA,EACF;AACA,QAAM,QAAQ;AAAA,IACZ,MACE,MAAM,SAAS,SACX;AAAA,MACE,mBAAmB,MAAM,MAAM;AAAA,MAC/B,cAAc;AAAA,MACd,mBAAmB,MAAM,WAAW,KAAK;AAAA,MACzC;AAAA,MACA;AAAA,MACA,mBAAmB,MAAM,gBAAgB,CAAC;AAAA,MAC1C,mBAAmB,MAAM,gBAAgB,CAAC;AAAA,IAC5C,IACA;AAAA,MACE,mBAAmB,MAAM,MAAM;AAAA,MAC/B,cAAc;AAAA,MACd,mBAAmB,MAAM,WAAW,KAAK;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAAA,IACN;AAAA,IACA,EAAE,QAAQ,WAAW;AAAA,EACvB;AACA,QAAM,SAAS,YAAY,MAAM;AAC/B,UAAM,WAAW,MAAM,IAAI;AAC3B,QAAI,SAAS,SAAS;AACpB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AACF,WAAO;AAAA,EACT,GAAG,YAAY;AACf,QAAM,OAAO,YAAY,MAAM;AAC7B,UAAM,WAAW,MAAM,IAAI;AAC3B,QAAI,SAAS,SAAS;AACpB,YAAM,IAAI,UAAU,8BAA8B;AACpD,WAAO;AAAA,EACT,GAAG,YAAY;AACf,eAAa,MAAM,IAAI,OAAO,QAAQ,IAAI;AAC1C,SAAO,MAAM;AACf;",
6
- "names": ["parent"]
7
- }
@@ -1,20 +0,0 @@
1
- import { type Signal } from "@pibbl/core";
2
- import type { ResolvedBandScale, ResolvedLinearScale, ScaleId } from "./types.js";
3
- /**
4
- * Reads a named continuous mapping as a signal. See {@link ScaleId}, {@link Signal}, and
5
- * {@link ResolvedLinearScale}.
6
- * @param id - Identity of an ancestor-provided scale. See {@link ScaleId}.
7
- * @param type - Expected scale kind; defaults to linear.
8
- * @returns A signal exposing the resolved scale of the requested kind. See {@link Signal} ,
9
- * {@link ResolvedLinearScale} .
10
- */
11
- export declare function useScale(id: ScaleId, type?: "linear"): Signal<ResolvedLinearScale>;
12
- /**
13
- * Reads a named categorical mapping as a signal. See {@link ScaleId}, {@link Signal}, and
14
- * {@link ResolvedBandScale}.
15
- * @param id - Identity of an ancestor-provided scale. See {@link ScaleId}.
16
- * @param type - Expected scale kind; defaults to linear.
17
- * @returns A signal exposing the resolved scale of the requested kind. See {@link Signal} ,
18
- * {@link ResolvedBandScale} .
19
- */
20
- export declare function useScale(id: ScaleId, type: "band"): Signal<ResolvedBandScale>;
@@ -1,10 +0,0 @@
1
- import { lookupScale } from "./scale-context.js";
2
- function useScale(id, type = "linear") {
3
- const scale = lookupScale(id, "useScale", type);
4
- if (!scale) throw new TypeError("useScale requires a scale ID.");
5
- return scale;
6
- }
7
- export {
8
- useScale
9
- };
10
- //# sourceMappingURL=use-scale.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/features/viz/lib/use-scale.ts"],
4
- "sourcesContent": ["import { type Signal } from \"@pibbl/core\";\nimport type {\n ResolvedBandScale,\n ResolvedLinearScale,\n ResolvedScale,\n ScaleId,\n} from \"./types.js\";\nimport { lookupScale } from \"./scale-context.js\";\n/**\n * Reads a named continuous mapping as a signal. See {@link ScaleId}, {@link Signal}, and\n * {@link ResolvedLinearScale}.\n * @param id - Identity of an ancestor-provided scale. See {@link ScaleId}.\n * @param type - Expected scale kind; defaults to linear.\n * @returns A signal exposing the resolved scale of the requested kind. See {@link Signal} ,\n * {@link ResolvedLinearScale} .\n */\nexport function useScale(\n id: ScaleId,\n type?: \"linear\",\n): Signal<ResolvedLinearScale>;\n/**\n * Reads a named categorical mapping as a signal. See {@link ScaleId}, {@link Signal}, and\n * {@link ResolvedBandScale}.\n * @param id - Identity of an ancestor-provided scale. See {@link ScaleId}.\n * @param type - Expected scale kind; defaults to linear.\n * @returns A signal exposing the resolved scale of the requested kind. See {@link Signal} ,\n * {@link ResolvedBandScale} .\n */\nexport function useScale(id: ScaleId, type: \"band\"): Signal<ResolvedBandScale>;\n/**\n * Reads the named scale of the requested kind as a reactive resolved mapping.\n *\n * @param id - Identity of an ancestor-provided scale. See {@link ScaleId}.\n * @param type - Expected scale kind; defaults to linear.\n * @returns A signal exposing the resolved scale of the requested kind. See {@link Signal} ,\n * {@link ResolvedScale} .\n *\n * @see {@link ScaleId}\n * @see {@link Signal}\n * @see {@link ResolvedScale}\n */\nexport function useScale(\n id: ScaleId,\n type: \"linear\" | \"band\" = \"linear\",\n): Signal<ResolvedScale> {\n const scale = lookupScale(id, \"useScale\", type);\n if (!scale) throw new TypeError(\"useScale requires a scale ID.\");\n return scale;\n}\n"],
5
- "mappings": "AAOA,SAAS,mBAAmB;AAkCrB,SAAS,SACd,IACA,OAA0B,UACH;AACvB,QAAM,QAAQ,YAAY,IAAI,YAAY,IAAI;AAC9C,MAAI,CAAC,MAAO,OAAM,IAAI,UAAU,+BAA+B;AAC/D,SAAO;AACT;",
6
- "names": []
7
- }