@pibbl/core 0.0.2 → 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 (549) hide show
  1. package/THIRD_PARTY_NOTICES.txt +81 -0
  2. package/dist/features/physics/2d-testing.d.ts +1 -1
  3. package/dist/features/physics/2d-testing.js +2 -2
  4. package/dist/features/physics/2d-testing.js.map +2 -2
  5. package/dist/features/physics/lib/2d/canvas/components.js +25 -21
  6. package/dist/features/physics/lib/2d/canvas/components.js.map +2 -2
  7. package/dist/features/physics/lib/2d/canvas/presentation.js +1 -2
  8. package/dist/features/physics/lib/2d/canvas/presentation.js.map +2 -2
  9. package/dist/features/physics/lib/2d/collision/casts.js +4 -2
  10. package/dist/features/physics/lib/2d/collision/casts.js.map +2 -2
  11. package/dist/features/physics/lib/2d/runtime/controller.js +1 -1
  12. package/dist/features/physics/lib/2d/runtime/controller.js.map +2 -2
  13. package/dist/features/physics/lib/2d/runtime/obstacles.js +9 -11
  14. package/dist/features/physics/lib/2d/runtime/obstacles.js.map +2 -2
  15. package/dist/features/physics/lib/2d/shapes.js +8 -9
  16. package/dist/features/physics/lib/2d/shapes.js.map +2 -2
  17. package/dist/features/physics/lib/2d/world/rapier.js +22 -26
  18. package/dist/features/physics/lib/2d/world/rapier.js.map +2 -2
  19. package/dist/features/sprites/loader.js +6 -3
  20. package/dist/features/sprites/loader.js.map +2 -2
  21. package/dist/features/textures/index.d.ts +12 -2
  22. package/dist/features/textures/index.js +33 -1
  23. package/dist/features/textures/index.js.map +2 -2
  24. package/dist/features/textures/lib/chemical-field.d.ts +56 -0
  25. package/dist/features/textures/lib/chemical-field.js +154 -0
  26. package/dist/features/textures/lib/chemical-field.js.map +7 -0
  27. package/dist/features/textures/lib/chemical-recipes.d.ts +119 -0
  28. package/dist/features/textures/lib/chemical-recipes.js +275 -0
  29. package/dist/features/textures/lib/chemical-recipes.js.map +7 -0
  30. package/dist/features/textures/lib/definitions.d.ts +3 -18
  31. package/dist/features/textures/lib/definitions.js +17 -24
  32. package/dist/features/textures/lib/definitions.js.map +2 -2
  33. package/dist/features/textures/lib/geometric-patterns.d.ts +149 -0
  34. package/dist/features/textures/lib/geometric-patterns.js +305 -0
  35. package/dist/features/textures/lib/geometric-patterns.js.map +7 -0
  36. package/dist/features/textures/lib/gray-scott.d.ts +55 -0
  37. package/dist/features/textures/lib/gray-scott.js +37 -0
  38. package/dist/features/textures/lib/gray-scott.js.map +7 -0
  39. package/dist/features/textures/lib/palette.js +1 -3
  40. package/dist/features/textures/lib/palette.js.map +2 -2
  41. package/dist/features/textures/lib/patterns.d.ts +123 -0
  42. package/dist/features/textures/lib/patterns.js +344 -0
  43. package/dist/features/textures/lib/patterns.js.map +7 -0
  44. package/dist/features/textures/lib/rain-drops.js +2 -1
  45. package/dist/features/textures/lib/rain-drops.js.map +2 -2
  46. package/dist/features/textures/lib/reaction-diffusion.d.ts +3 -2
  47. package/dist/features/textures/lib/reaction-diffusion.js +9 -20
  48. package/dist/features/textures/lib/reaction-diffusion.js.map +2 -2
  49. package/dist/features/textures/lib/simulation.d.ts +10 -4
  50. package/dist/features/textures/lib/simulation.js +23 -13
  51. package/dist/features/textures/lib/simulation.js.map +2 -2
  52. package/dist/features/textures/lib/wasm/electric.js +8 -1
  53. package/dist/features/textures/lib/wasm/electric.js.map +2 -2
  54. package/dist/features/textures/lib/water-surface.js +1 -3
  55. package/dist/features/textures/lib/water-surface.js.map +2 -2
  56. package/dist/features/viz/index.d.ts +68 -6
  57. package/dist/features/viz/index.js +164 -2
  58. package/dist/features/viz/index.js.map +2 -2
  59. package/dist/features/viz/inspection/bar.d.ts +79 -0
  60. package/dist/features/viz/inspection/bar.js +49 -0
  61. package/dist/features/viz/inspection/bar.js.map +7 -0
  62. package/dist/features/viz/inspection/candle.d.ts +156 -0
  63. package/dist/features/viz/inspection/candle.js +120 -0
  64. package/dist/features/viz/inspection/candle.js.map +7 -0
  65. package/dist/features/viz/inspection/capture-types.d.ts +65 -0
  66. package/dist/features/viz/inspection/capture.d.ts +16 -0
  67. package/dist/features/viz/inspection/capture.js +49 -0
  68. package/dist/features/viz/inspection/capture.js.map +7 -0
  69. package/dist/features/viz/inspection/handler.d.ts +36 -0
  70. package/dist/features/viz/inspection/handler.js +91 -0
  71. package/dist/features/viz/inspection/handler.js.map +7 -0
  72. package/dist/features/viz/inspection/ohlc-bar.d.ts +132 -0
  73. package/dist/features/viz/inspection/ohlc-bar.js +118 -0
  74. package/dist/features/viz/inspection/ohlc-bar.js.map +7 -0
  75. package/dist/features/viz/inspection/owned-ref.d.ts +16 -0
  76. package/dist/features/viz/inspection/owned-ref.js +99 -0
  77. package/dist/features/viz/inspection/owned-ref.js.map +7 -0
  78. package/dist/features/viz/inspection/painted-point.d.ts +22 -0
  79. package/dist/features/viz/inspection/painted-point.js +29 -0
  80. package/dist/features/viz/inspection/painted-point.js.map +7 -0
  81. package/dist/features/viz/inspection/queries.d.ts +100 -0
  82. package/dist/features/viz/inspection/queries.js +192 -0
  83. package/dist/features/viz/inspection/queries.js.map +7 -0
  84. package/dist/features/viz/inspection/query-types.d.ts +177 -0
  85. package/dist/features/viz/inspection/volume.d.ts +104 -0
  86. package/dist/features/viz/inspection/volume.js +95 -0
  87. package/dist/features/viz/inspection/volume.js.map +7 -0
  88. package/dist/features/viz/inspection.d.ts +19 -0
  89. package/dist/features/viz/inspection.js +54 -0
  90. package/dist/features/viz/inspection.js.map +7 -0
  91. package/dist/features/viz/inspection.mjs +1 -0
  92. package/dist/features/viz/lib/area-series.d.ts +62 -0
  93. package/dist/features/viz/lib/area-series.js +120 -0
  94. package/dist/features/viz/lib/area-series.js.map +7 -0
  95. package/dist/features/viz/lib/axis-title.js +2 -1
  96. package/dist/features/viz/lib/axis-title.js.map +2 -2
  97. package/dist/features/viz/lib/axis.js +1 -1
  98. package/dist/features/viz/lib/axis.js.map +2 -2
  99. package/dist/features/viz/lib/bar-series.d.ts +3 -1
  100. package/dist/features/viz/lib/bar-series.js +16 -1
  101. package/dist/features/viz/lib/bar-series.js.map +2 -2
  102. package/dist/features/viz/lib/baseline-series.d.ts +55 -0
  103. package/dist/features/viz/lib/baseline-series.js +136 -0
  104. package/dist/features/viz/lib/baseline-series.js.map +7 -0
  105. package/dist/features/viz/lib/candlestick-series.d.ts +62 -0
  106. package/dist/features/viz/lib/candlestick-series.js +150 -0
  107. package/dist/features/viz/lib/candlestick-series.js.map +7 -0
  108. package/dist/features/viz/lib/censored-point-series.d.ts +71 -0
  109. package/dist/features/viz/lib/censored-point-series.js +129 -0
  110. package/dist/features/viz/lib/censored-point-series.js.map +7 -0
  111. package/dist/features/viz/lib/color-context.d.ts +4 -0
  112. package/dist/features/viz/lib/color-context.js +41 -0
  113. package/dist/features/viz/lib/color-context.js.map +7 -0
  114. package/dist/features/viz/lib/color-math.d.ts +4 -0
  115. package/dist/features/viz/lib/color-math.js +31 -0
  116. package/dist/features/viz/lib/color-math.js.map +7 -0
  117. package/dist/features/viz/lib/color-types.d.ts +53 -0
  118. package/dist/features/viz/lib/curve-definition.d.ts +49 -0
  119. package/dist/features/viz/lib/curve-definition.js +142 -0
  120. package/dist/features/viz/lib/curve-definition.js.map +7 -0
  121. package/dist/features/viz/lib/diverging-color-scale.d.ts +11 -0
  122. package/dist/features/viz/lib/diverging-color-scale.js +51 -0
  123. package/dist/features/viz/lib/diverging-color-scale.js.map +7 -0
  124. package/dist/features/viz/lib/domain-navigation.d.ts +40 -0
  125. package/dist/features/viz/lib/domain-navigation.js +77 -0
  126. package/dist/features/viz/lib/domain-navigation.js.map +7 -0
  127. package/dist/features/viz/lib/editable-chart-elements.d.ts +178 -0
  128. package/dist/features/viz/lib/editable-chart-elements.js +733 -0
  129. package/dist/features/viz/lib/editable-chart-elements.js.map +7 -0
  130. package/dist/features/viz/lib/financial-aggregation.d.ts +127 -0
  131. package/dist/features/viz/lib/financial-aggregation.js +116 -0
  132. package/dist/features/viz/lib/financial-aggregation.js.map +7 -0
  133. package/dist/features/viz/lib/financial-autoscale.d.ts +64 -0
  134. package/dist/features/viz/lib/financial-autoscale.js +61 -0
  135. package/dist/features/viz/lib/financial-autoscale.js.map +7 -0
  136. package/dist/features/viz/lib/financial-comparison.d.ts +62 -0
  137. package/dist/features/viz/lib/financial-comparison.js +98 -0
  138. package/dist/features/viz/lib/financial-comparison.js.map +7 -0
  139. package/dist/features/viz/lib/financial-geometry.d.ts +77 -0
  140. package/dist/features/viz/lib/financial-geometry.js +67 -0
  141. package/dist/features/viz/lib/financial-geometry.js.map +7 -0
  142. package/dist/features/viz/lib/financial-indicators.d.ts +114 -0
  143. package/dist/features/viz/lib/financial-indicators.js +135 -0
  144. package/dist/features/viz/lib/financial-indicators.js.map +7 -0
  145. package/dist/features/viz/lib/financial-oscillators.d.ts +171 -0
  146. package/dist/features/viz/lib/financial-oscillators.js +265 -0
  147. package/dist/features/viz/lib/financial-oscillators.js.map +7 -0
  148. package/dist/features/viz/lib/graph/bipartite.d.ts +14 -0
  149. package/dist/features/viz/lib/graph/bipartite.js +250 -0
  150. package/dist/features/viz/lib/graph/bipartite.js.map +7 -0
  151. package/dist/features/viz/lib/graph/chord.d.ts +44 -0
  152. package/dist/features/viz/lib/graph/chord.js +348 -0
  153. package/dist/features/viz/lib/graph/chord.js.map +7 -0
  154. package/dist/features/viz/lib/graph/dependency.d.ts +26 -0
  155. package/dist/features/viz/lib/graph/dependency.js +140 -0
  156. package/dist/features/viz/lib/graph/dependency.js.map +7 -0
  157. package/dist/features/viz/lib/graph/force.d.ts +28 -0
  158. package/dist/features/viz/lib/graph/force.js +580 -0
  159. package/dist/features/viz/lib/graph/force.js.map +7 -0
  160. package/dist/features/viz/lib/graph/hierarchy.d.ts +21 -0
  161. package/dist/features/viz/lib/graph/hierarchy.js +112 -0
  162. package/dist/features/viz/lib/graph/hierarchy.js.map +7 -0
  163. package/dist/features/viz/lib/graph/icicle.d.ts +16 -0
  164. package/dist/features/viz/lib/graph/icicle.js +153 -0
  165. package/dist/features/viz/lib/graph/icicle.js.map +7 -0
  166. package/dist/features/viz/lib/graph/matrix.d.ts +30 -0
  167. package/dist/features/viz/lib/graph/matrix.js +243 -0
  168. package/dist/features/viz/lib/graph/matrix.js.map +7 -0
  169. package/dist/features/viz/lib/graph/neighborhood.d.ts +11 -0
  170. package/dist/features/viz/lib/graph/neighborhood.js +281 -0
  171. package/dist/features/viz/lib/graph/neighborhood.js.map +7 -0
  172. package/dist/features/viz/lib/graph/routes.d.ts +35 -0
  173. package/dist/features/viz/lib/graph/routes.js +101 -0
  174. package/dist/features/viz/lib/graph/routes.js.map +7 -0
  175. package/dist/features/viz/lib/graph/sankey.d.ts +44 -0
  176. package/dist/features/viz/lib/graph/sankey.js +341 -0
  177. package/dist/features/viz/lib/graph/sankey.js.map +7 -0
  178. package/dist/features/viz/lib/graph/shared.d.ts +59 -0
  179. package/dist/features/viz/lib/graph/shared.js +301 -0
  180. package/dist/features/viz/lib/graph/shared.js.map +7 -0
  181. package/dist/features/viz/lib/graph/tree.d.ts +11 -0
  182. package/dist/features/viz/lib/graph/tree.js +232 -0
  183. package/dist/features/viz/lib/graph/tree.js.map +7 -0
  184. package/dist/features/viz/lib/graph/treemap.d.ts +20 -0
  185. package/dist/features/viz/lib/graph/treemap.js +227 -0
  186. package/dist/features/viz/lib/graph/treemap.js.map +7 -0
  187. package/dist/features/viz/lib/graph/types.d.ts +1097 -0
  188. package/dist/features/viz/lib/hover-card.js +8 -9
  189. package/dist/features/viz/lib/hover-card.js.map +2 -2
  190. package/dist/features/viz/lib/hover-data.d.ts +1 -1
  191. package/dist/features/viz/lib/hover-data.js +5 -2
  192. package/dist/features/viz/lib/hover-data.js.map +2 -2
  193. package/dist/features/viz/lib/interval-band-series.d.ts +49 -0
  194. package/dist/features/viz/lib/interval-band-series.js +136 -0
  195. package/dist/features/viz/lib/interval-band-series.js.map +7 -0
  196. package/dist/features/viz/lib/interval-diamond-series.d.ts +43 -0
  197. package/dist/features/viz/lib/interval-diamond-series.js +122 -0
  198. package/dist/features/viz/lib/interval-diamond-series.js.map +7 -0
  199. package/dist/features/viz/lib/interval-series.d.ts +79 -0
  200. package/dist/features/viz/lib/interval-series.js +158 -0
  201. package/dist/features/viz/lib/interval-series.js.map +7 -0
  202. package/dist/features/viz/lib/layout-pie.js +9 -13
  203. package/dist/features/viz/lib/layout-pie.js.map +2 -2
  204. package/dist/features/viz/lib/line-series.d.ts +1 -1
  205. package/dist/features/viz/lib/line-series.js +47 -28
  206. package/dist/features/viz/lib/line-series.js.map +2 -2
  207. package/dist/features/viz/lib/linear-scale.js +1 -1
  208. package/dist/features/viz/lib/linear-scale.js.map +2 -2
  209. package/dist/features/viz/lib/monotone-curve.d.ts +11 -0
  210. package/dist/features/viz/lib/monotone-curve.js +63 -0
  211. package/dist/features/viz/lib/monotone-curve.js.map +7 -0
  212. package/dist/features/viz/lib/numeric-range-interpolation.d.ts +15 -0
  213. package/dist/features/viz/lib/numeric-range-interpolation.js +36 -0
  214. package/dist/features/viz/lib/numeric-range-interpolation.js.map +7 -0
  215. package/dist/features/viz/lib/ohlc-bar-series.d.ts +55 -0
  216. package/dist/features/viz/lib/ohlc-bar-series.js +168 -0
  217. package/dist/features/viz/lib/ohlc-bar-series.js.map +7 -0
  218. package/dist/features/viz/lib/paired-series.d.ts +44 -0
  219. package/dist/features/viz/lib/paired-series.js +93 -0
  220. package/dist/features/viz/lib/paired-series.js.map +7 -0
  221. package/dist/features/viz/lib/pie-layout.js +2 -1
  222. package/dist/features/viz/lib/pie-layout.js.map +2 -2
  223. package/dist/features/viz/lib/plot-series.js +11 -6
  224. package/dist/features/viz/lib/plot-series.js.map +2 -2
  225. package/dist/features/viz/lib/plot-types.d.ts +4 -3
  226. package/dist/features/viz/lib/point-series.d.ts +1 -1
  227. package/dist/features/viz/lib/point-series.js +36 -9
  228. package/dist/features/viz/lib/point-series.js.map +2 -2
  229. package/dist/features/viz/lib/point-types.d.ts +5 -2
  230. package/dist/features/viz/lib/reference-band.js +4 -1
  231. package/dist/features/viz/lib/reference-band.js.map +2 -2
  232. package/dist/features/viz/lib/scale-context.d.ts +1 -1
  233. package/dist/features/viz/lib/scale-ticks.js +21 -6
  234. package/dist/features/viz/lib/scale-ticks.js.map +2 -2
  235. package/dist/features/viz/lib/sequential-color-scale.d.ts +11 -0
  236. package/dist/features/viz/lib/sequential-color-scale.js +49 -0
  237. package/dist/features/viz/lib/sequential-color-scale.js.map +7 -0
  238. package/dist/features/viz/lib/series-position.d.ts +12 -0
  239. package/dist/features/viz/lib/series-position.js +44 -0
  240. package/dist/features/viz/lib/series-position.js.map +7 -0
  241. package/dist/features/viz/lib/step-curves.d.ts +19 -0
  242. package/dist/features/viz/lib/step-curves.js +53 -0
  243. package/dist/features/viz/lib/step-curves.js.map +7 -0
  244. package/dist/features/viz/lib/threshold-color-scale.d.ts +43 -0
  245. package/dist/features/viz/lib/threshold-color-scale.js +59 -0
  246. package/dist/features/viz/lib/threshold-color-scale.js.map +7 -0
  247. package/dist/features/viz/lib/trading-time-mapping.d.ts +32 -0
  248. package/dist/features/viz/lib/trading-time-mapping.js +89 -0
  249. package/dist/features/viz/lib/trading-time-mapping.js.map +7 -0
  250. package/dist/features/viz/lib/trading-time-scale.d.ts +83 -0
  251. package/dist/features/viz/lib/trading-time-scale.js +96 -0
  252. package/dist/features/viz/lib/trading-time-scale.js.map +7 -0
  253. package/dist/features/viz/lib/trajectory-series.d.ts +71 -0
  254. package/dist/features/viz/lib/trajectory-series.js +111 -0
  255. package/dist/features/viz/lib/trajectory-series.js.map +7 -0
  256. package/dist/features/viz/lib/types.d.ts +20 -4
  257. package/dist/features/viz/lib/use-continuous-scale.js +6 -1
  258. package/dist/features/viz/lib/use-continuous-scale.js.map +2 -2
  259. package/dist/features/viz/lib/utc-scale.js +11 -10
  260. package/dist/features/viz/lib/utc-scale.js.map +2 -2
  261. package/dist/features/viz/lib/volume-series.d.ts +59 -0
  262. package/dist/features/viz/lib/volume-series.js +117 -0
  263. package/dist/features/viz/lib/volume-series.js.map +7 -0
  264. package/dist/features/viz/lib/weighted-point-series.d.ts +71 -0
  265. package/dist/features/viz/lib/weighted-point-series.js +169 -0
  266. package/dist/features/viz/lib/weighted-point-series.js.map +7 -0
  267. package/dist/filters/backdrop-contrast-gpu.d.ts +5 -0
  268. package/dist/filters/backdrop-contrast-gpu.js +33 -0
  269. package/dist/filters/backdrop-contrast-gpu.js.map +7 -0
  270. package/dist/filters/backdrop-contrast.d.ts +21 -0
  271. package/dist/filters/backdrop-contrast.js +61 -0
  272. package/dist/filters/backdrop-contrast.js.map +7 -0
  273. package/dist/filters/displacement.js +1 -1
  274. package/dist/filters/displacement.js.map +2 -2
  275. package/dist/filters/emboss-gpu.d.ts +4 -0
  276. package/dist/filters/emboss-gpu.js +39 -0
  277. package/dist/filters/emboss-gpu.js.map +7 -0
  278. package/dist/filters/emboss.d.ts +32 -0
  279. package/dist/filters/emboss.js +104 -0
  280. package/dist/filters/emboss.js.map +7 -0
  281. package/dist/filters/filter-executor.d.ts +11 -4
  282. package/dist/filters/filter-executor.js +104 -49
  283. package/dist/filters/filter-executor.js.map +2 -2
  284. package/dist/filters/reflected-light.js +1 -1
  285. package/dist/filters/reflected-light.js.map +2 -2
  286. package/dist/filters/reflection-gpu.d.ts +3 -1
  287. package/dist/filters/reflection-gpu.js +5 -2
  288. package/dist/filters/reflection-gpu.js.map +2 -2
  289. package/dist/filters/render-backdrop-contrast-boundary.d.ts +31 -0
  290. package/dist/filters/render-backdrop-contrast-boundary.js +116 -0
  291. package/dist/filters/render-backdrop-contrast-boundary.js.map +7 -0
  292. package/dist/filters/render-emboss-boundary.d.ts +13 -0
  293. package/dist/filters/render-emboss-boundary.js +131 -0
  294. package/dist/filters/render-emboss-boundary.js.map +7 -0
  295. package/dist/filters.d.ts +9 -5
  296. package/dist/filters.js +4 -0
  297. package/dist/filters.js.map +2 -2
  298. package/dist/index.d.ts +9 -5
  299. package/dist/index.js +18 -2
  300. package/dist/index.js.map +2 -2
  301. package/dist/internal.d.ts +4 -0
  302. package/dist/internal.js +6 -0
  303. package/dist/internal.js.map +2 -2
  304. package/dist/layout-kernel.d.ts +12 -0
  305. package/dist/layout-kernel.js +11 -0
  306. package/dist/layout-kernel.js.map +7 -0
  307. package/dist/layout-kernel.mjs +1 -0
  308. package/dist/lib/backend/types.d.ts +13 -1
  309. package/dist/lib/backend/types.js.map +2 -2
  310. package/dist/lib/components/arc-geometry.js +2 -1
  311. package/dist/lib/components/arc-geometry.js.map +2 -2
  312. package/dist/lib/components/g.js +2 -0
  313. package/dist/lib/components/g.js.map +2 -2
  314. package/dist/lib/components/html-box.js +2 -1
  315. package/dist/lib/components/html-box.js.map +2 -2
  316. package/dist/lib/components/img.js +3 -3
  317. package/dist/lib/components/img.js.map +2 -2
  318. package/dist/lib/components/layer.js +98 -16
  319. package/dist/lib/components/layer.js.map +3 -3
  320. package/dist/lib/components/text.d.ts +16 -0
  321. package/dist/lib/components/text.js +131 -24
  322. package/dist/lib/components/text.js.map +2 -2
  323. package/dist/lib/define-primitive.d.ts +4 -2
  324. package/dist/lib/define-primitive.js +3 -1
  325. package/dist/lib/define-primitive.js.map +2 -2
  326. package/dist/lib/element/metadata.d.ts +9 -0
  327. package/dist/lib/element/metadata.js +19 -0
  328. package/dist/lib/element/metadata.js.map +2 -2
  329. package/dist/lib/element/resolve-primitive-inputs.d.ts +2 -0
  330. package/dist/lib/element/resolve-primitive-inputs.js +17 -4
  331. package/dist/lib/element/resolve-primitive-inputs.js.map +2 -2
  332. package/dist/lib/events/event-facade.d.ts +18 -0
  333. package/dist/lib/events/event-facade.js +28 -2
  334. package/dist/lib/events/event-facade.js.map +2 -2
  335. package/dist/lib/events/hit-test.js +2 -1
  336. package/dist/lib/events/hit-test.js.map +2 -2
  337. package/dist/lib/events/propagation.d.ts +2 -1
  338. package/dist/lib/events/propagation.js +22 -16
  339. package/dist/lib/events/propagation.js.map +2 -2
  340. package/dist/lib/events/registrations.d.ts +10 -0
  341. package/dist/lib/events/registrations.js +160 -5
  342. package/dist/lib/events/registrations.js.map +2 -2
  343. package/dist/lib/execute-render.js +25 -1
  344. package/dist/lib/execute-render.js.map +2 -2
  345. package/dist/lib/filter/filter-region.js +3 -10
  346. package/dist/lib/filter/filter-region.js.map +2 -2
  347. package/dist/lib/focus/focus-manager.d.ts +8 -1
  348. package/dist/lib/focus/focus-manager.js +87 -43
  349. package/dist/lib/focus/focus-manager.js.map +2 -2
  350. package/dist/lib/focus/geometry.d.ts +2 -0
  351. package/dist/lib/focus/geometry.js +6 -0
  352. package/dist/lib/focus/geometry.js.map +2 -2
  353. package/dist/lib/geometry/path-bend-guide.js +1 -1
  354. package/dist/lib/geometry/path-bend-guide.js.map +2 -2
  355. package/dist/lib/geometry/path-geometry.js +12 -11
  356. package/dist/lib/geometry/path-geometry.js.map +2 -2
  357. package/dist/lib/geometry/path-transforms.js +17 -21
  358. package/dist/lib/geometry/path-transforms.js.map +2 -2
  359. package/dist/lib/geometry/path-warp-bezier.js +3 -1
  360. package/dist/lib/geometry/path-warp-bezier.js.map +2 -2
  361. package/dist/lib/geometry/path-warp.js +1 -1
  362. package/dist/lib/geometry/path-warp.js.map +2 -2
  363. package/dist/lib/global-state.js +2 -0
  364. package/dist/lib/global-state.js.map +2 -2
  365. package/dist/lib/html/html-events.d.ts +32 -0
  366. package/dist/lib/html/html-events.js +179 -0
  367. package/dist/lib/html/html-events.js.map +7 -0
  368. package/dist/lib/html/html-service.d.ts +8 -2
  369. package/dist/lib/html/html-service.js +198 -65
  370. package/dist/lib/html/html-service.js.map +2 -2
  371. package/dist/lib/html/overlay-config.js +7 -6
  372. package/dist/lib/html/overlay-config.js.map +2 -2
  373. package/dist/lib/html/types.d.ts +29 -2
  374. package/dist/lib/layout/absolute.d.ts +11 -5
  375. package/dist/lib/layout/absolute.js +329 -55
  376. package/dist/lib/layout/absolute.js.map +3 -3
  377. package/dist/lib/layout/allocation-checkpoint-owner.d.ts +11 -0
  378. package/dist/lib/layout/allocation-checkpoint-owner.js +86 -0
  379. package/dist/lib/layout/allocation-checkpoint-owner.js.map +7 -0
  380. package/dist/lib/layout/allocation-checkpoint.d.ts +53 -0
  381. package/dist/lib/layout/allocation-checkpoint.js +463 -0
  382. package/dist/lib/layout/allocation-checkpoint.js.map +7 -0
  383. package/dist/lib/layout/allocation-dependencies.d.ts +30 -0
  384. package/dist/lib/layout/allocation-dependencies.js +90 -0
  385. package/dist/lib/layout/allocation-dependencies.js.map +7 -0
  386. package/dist/lib/layout/allocation-revision.d.ts +13 -0
  387. package/dist/lib/layout/allocation-revision.js +67 -0
  388. package/dist/lib/layout/allocation-revision.js.map +7 -0
  389. package/dist/lib/layout/box-insets.d.ts +17 -0
  390. package/dist/lib/layout/box-insets.js +138 -0
  391. package/dist/lib/layout/box-insets.js.map +7 -0
  392. package/dist/lib/layout/box-sizing.d.ts +16 -0
  393. package/dist/lib/layout/box-sizing.js +77 -0
  394. package/dist/lib/layout/box-sizing.js.map +7 -0
  395. package/dist/lib/layout/box.js +42 -12
  396. package/dist/lib/layout/box.js.map +2 -2
  397. package/dist/lib/layout/canvas-measurement.d.ts +13 -0
  398. package/dist/lib/layout/canvas-measurement.js +57 -0
  399. package/dist/lib/layout/canvas-measurement.js.map +7 -0
  400. package/dist/lib/layout/context.d.ts +35 -6
  401. package/dist/lib/layout/context.js +72 -3
  402. package/dist/lib/layout/context.js.map +2 -2
  403. package/dist/lib/layout/define-layout-component.d.ts +23 -0
  404. package/dist/lib/layout/define-layout-component.js +84 -0
  405. package/dist/lib/layout/define-layout-component.js.map +7 -0
  406. package/dist/lib/layout/flex-allocation-cache.d.ts +42 -0
  407. package/dist/lib/layout/flex-baseline-mode.d.ts +2 -0
  408. package/dist/lib/layout/flex-baseline-mode.js +7 -0
  409. package/dist/lib/layout/flex-baseline-mode.js.map +7 -0
  410. package/dist/lib/layout/flex.d.ts +50 -15
  411. package/dist/lib/layout/flex.js +2124 -195
  412. package/dist/lib/layout/flex.js.map +3 -3
  413. package/dist/lib/layout/flow.js +225 -49
  414. package/dist/lib/layout/flow.js.map +2 -2
  415. package/dist/lib/layout/geometry-publication.d.ts +53 -0
  416. package/dist/lib/layout/geometry-publication.js +244 -0
  417. package/dist/lib/layout/geometry-publication.js.map +7 -0
  418. package/dist/lib/layout/grid-kernel.d.ts +63 -0
  419. package/dist/lib/layout/grid-kernel.js +168 -0
  420. package/dist/lib/layout/grid-kernel.js.map +7 -0
  421. package/dist/lib/layout/grid.d.ts +63 -4
  422. package/dist/lib/layout/grid.js +767 -171
  423. package/dist/lib/layout/grid.js.map +3 -3
  424. package/dist/lib/layout/measure.d.ts +55 -3
  425. package/dist/lib/layout/measure.js +448 -15
  426. package/dist/lib/layout/measure.js.map +2 -2
  427. package/dist/lib/layout/overlay.js +81 -23
  428. package/dist/lib/layout/overlay.js.map +2 -2
  429. package/dist/lib/layout/participation.d.ts +27 -0
  430. package/dist/lib/layout/participation.js +188 -0
  431. package/dist/lib/layout/participation.js.map +7 -0
  432. package/dist/lib/layout/place-child.js +1 -1
  433. package/dist/lib/layout/place-child.js.map +2 -2
  434. package/dist/lib/layout/positioning-diagnostics.d.ts +1 -1
  435. package/dist/lib/layout/positioning-diagnostics.js +13 -2
  436. package/dist/lib/layout/positioning-diagnostics.js.map +2 -2
  437. package/dist/lib/layout/prepared-root.d.ts +121 -0
  438. package/dist/lib/layout/prepared-root.js +360 -0
  439. package/dist/lib/layout/prepared-root.js.map +7 -0
  440. package/dist/lib/layout/standalone-kernel.d.ts +60 -0
  441. package/dist/lib/layout/standalone-kernel.js +722 -0
  442. package/dist/lib/layout/standalone-kernel.js.map +7 -0
  443. package/dist/lib/layout/topology.d.ts +21 -0
  444. package/dist/lib/layout/topology.js +113 -0
  445. package/dist/lib/layout/topology.js.map +7 -0
  446. package/dist/lib/layout/types.d.ts +5 -0
  447. package/dist/lib/layout/wasm/artifact.d.ts +1 -0
  448. package/dist/lib/layout/wasm/artifact.js +5 -0
  449. package/dist/lib/layout/wasm/artifact.js.map +7 -0
  450. package/dist/lib/layout/wasm/bytes.d.ts +1 -0
  451. package/dist/lib/layout/wasm/bytes.js +5 -0
  452. package/dist/lib/layout/wasm/bytes.js.map +7 -0
  453. package/dist/lib/layout/wasm/embedded.d.ts +2 -0
  454. package/dist/lib/layout/wasm/embedded.js +12 -0
  455. package/dist/lib/layout/wasm/embedded.js.map +7 -0
  456. package/dist/lib/layout/wasm/layout.wasm +0 -0
  457. package/dist/lib/layout/wasm/module.d.ts +8 -0
  458. package/dist/lib/layout/wasm/module.js +70 -0
  459. package/dist/lib/layout/wasm/module.js.map +7 -0
  460. package/dist/lib/layout/wasm/region.d.ts +267 -0
  461. package/dist/lib/layout/wasm/region.js +1018 -0
  462. package/dist/lib/layout/wasm/region.js.map +7 -0
  463. package/dist/lib/manipulation/controller.js +4 -7
  464. package/dist/lib/manipulation/controller.js.map +2 -2
  465. package/dist/lib/manipulation/frame.js +1 -1
  466. package/dist/lib/manipulation/frame.js.map +2 -2
  467. package/dist/lib/manipulation/handles.js +32 -33
  468. package/dist/lib/manipulation/handles.js.map +2 -2
  469. package/dist/lib/manipulation/solve.js +12 -10
  470. package/dist/lib/manipulation/solve.js.map +2 -2
  471. package/dist/lib/mount-pibbl.js +1 -0
  472. package/dist/lib/mount-pibbl.js.map +2 -2
  473. package/dist/lib/mount-prepared-pibbl.d.ts +5 -0
  474. package/dist/lib/mount-prepared-pibbl.js +29 -0
  475. package/dist/lib/mount-prepared-pibbl.js.map +7 -0
  476. package/dist/lib/mount-request.d.ts +8 -0
  477. package/dist/lib/mount-request.js +41 -0
  478. package/dist/lib/mount-request.js.map +7 -0
  479. package/dist/lib/pibbl.d.ts +21 -13
  480. package/dist/lib/pibbl.js +18 -16
  481. package/dist/lib/pibbl.js.map +2 -2
  482. package/dist/lib/recording/recording.d.ts +43 -0
  483. package/dist/lib/recording/recording.js +555 -0
  484. package/dist/lib/recording/recording.js.map +7 -0
  485. package/dist/lib/recording/types.d.ts +118 -0
  486. package/dist/lib/recording/wasm-bytes.d.ts +1 -0
  487. package/dist/lib/recording/wasm-bytes.js +5 -0
  488. package/dist/lib/recording/wasm-bytes.js.map +7 -0
  489. package/dist/lib/recording/worker-source.d.ts +1 -0
  490. package/dist/lib/recording/worker-source.js +5 -0
  491. package/dist/lib/recording/worker-source.js.map +7 -0
  492. package/dist/lib/render-layer/controller.d.ts +9 -3
  493. package/dist/lib/render-layer/controller.js +259 -110
  494. package/dist/lib/render-layer/controller.js.map +2 -2
  495. package/dist/lib/render-transaction.d.ts +12 -2
  496. package/dist/lib/render-transaction.js +69 -1
  497. package/dist/lib/render-transaction.js.map +2 -2
  498. package/dist/lib/render.js +32 -8
  499. package/dist/lib/render.js.map +2 -2
  500. package/dist/lib/scheduler/realm-scheduler.d.ts +2 -0
  501. package/dist/lib/scheduler/realm-scheduler.js +55 -26
  502. package/dist/lib/scheduler/realm-scheduler.js.map +2 -2
  503. package/dist/lib/scheduler/renderer-participant.js +1 -0
  504. package/dist/lib/scheduler/renderer-participant.js.map +2 -2
  505. package/dist/lib/series-inspection-frame.d.ts +18 -0
  506. package/dist/lib/series-inspection-frame.js +70 -0
  507. package/dist/lib/series-inspection-frame.js.map +7 -0
  508. package/dist/lib/signals/edge.d.ts +7 -4
  509. package/dist/lib/signals/edge.js +25 -3
  510. package/dist/lib/signals/edge.js.map +2 -2
  511. package/dist/lib/signals/graph.d.ts +16 -2
  512. package/dist/lib/signals/graph.js +54 -12
  513. package/dist/lib/signals/graph.js.map +2 -2
  514. package/dist/lib/signals/input-provision.d.ts +15 -0
  515. package/dist/lib/signals/input-provision.js +53 -3
  516. package/dist/lib/signals/input-provision.js.map +2 -2
  517. package/dist/lib/signals/render-consumer.d.ts +3 -0
  518. package/dist/lib/signals/render-consumer.js +22 -14
  519. package/dist/lib/signals/render-consumer.js.map +2 -2
  520. package/dist/lib/style/positioning.d.ts +50 -2
  521. package/dist/lib/style/positioning.js +28 -4
  522. package/dist/lib/style/positioning.js.map +2 -2
  523. package/dist/lib/style/resolve-built-in.d.ts +4 -3
  524. package/dist/lib/style/resolve-built-in.js +17 -3
  525. package/dist/lib/style/resolve-built-in.js.map +2 -2
  526. package/dist/lib/style/resolve-dispatch.d.ts +3 -0
  527. package/dist/lib/style/resolve-dispatch.js +77 -4
  528. package/dist/lib/style/resolve-dispatch.js.map +2 -2
  529. package/dist/lib/style/resolve-length.d.ts +2 -0
  530. package/dist/lib/style/resolve-length.js +13 -9
  531. package/dist/lib/style/resolve-length.js.map +2 -2
  532. package/dist/lib/style/sizing-length.d.ts +51 -0
  533. package/dist/lib/style/sizing-length.js +77 -0
  534. package/dist/lib/style/sizing-length.js.map +7 -0
  535. package/dist/lib/style/types.d.ts +63 -25
  536. package/dist/lib/surface/root-surface.js +10 -6
  537. package/dist/lib/surface/root-surface.js.map +2 -2
  538. package/dist/lib/textures/texture.js +10 -8
  539. package/dist/lib/textures/texture.js.map +2 -2
  540. package/dist/lib/transitions/capture.js +4 -1
  541. package/dist/lib/transitions/capture.js.map +2 -2
  542. package/dist/lib/transitions/embers-physics.js +17 -10
  543. package/dist/lib/transitions/embers-physics.js.map +2 -2
  544. package/dist/lib/types.d.ts +110 -1
  545. package/dist/sync.d.ts +16 -0
  546. package/dist/sync.js +13 -0
  547. package/dist/sync.js.map +7 -0
  548. package/dist/sync.mjs +1 -0
  549. package/package.json +26 -3
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/layout/standalone-kernel.ts"],
4
+ "sourcesContent": ["/**\n * Friend adapter for `@pibbl/layout`. It owns one native persistent tree and\n * deliberately has no Canvas, signal, component, or scheduler dependency.\n */\nimport { readyLayoutModule } from \"./wasm/module.js\";\n\ntype Direction = \"ltr\" | \"rtl\";\ntype Measure = (input: {\n readonly width: { readonly minimum: number; readonly maximum: number };\n readonly height: { readonly minimum: number; readonly maximum: number };\n}) => { readonly width: number; readonly height: number };\ntype IntrinsicMeasure = () => {\n readonly minWidth: number;\n readonly maxWidth: number;\n readonly minHeight: number;\n readonly maxHeight: number;\n};\n/** One private native-tree node provided by {@link StandaloneLayoutKernelInput}. */\nexport interface StandaloneLayoutKernelNode {\n /** Traversal-local node identifier. */ readonly id: number;\n /** Parent identifier, if any. */ readonly parent: number | undefined;\n /** Source-order child identifiers. */ readonly children: readonly number[];\n /** Fully normalized standalone style data. */ readonly style: Readonly<\n Record<string, unknown>\n >;\n /** Final-size measurement callback, if owned by this node. */ readonly measure:\n Measure | undefined;\n /** Paired intrinsic contribution callback, if owned by this node. */ readonly measureIntrinsic:\n IntrinsicMeasure | undefined;\n}\n/** Private request consumed by {@link StandaloneLayoutKernel}. */\nexport interface StandaloneLayoutKernelInput {\n /** Identifier of the calculated root. */ readonly root: number;\n /** Finite owner width. */ readonly width: number;\n /** Finite owner height. */ readonly height: number;\n /** Inherited layout direction. */ readonly direction: Direction;\n /** Reachable source-order native nodes. */ readonly nodes: readonly StandaloneLayoutKernelNode[];\n}\n/** One private box returned by {@link StandaloneLayoutKernel}. */\nexport interface StandaloneLayoutKernelBox {\n /** Traversal-local node identifier. */ readonly id: number;\n /** Physical x coordinate. */ readonly x: number;\n /** Physical y coordinate. */ readonly y: number;\n /** Outer width. */ readonly width: number;\n /** Outer height. */ readonly height: number;\n}\n/** Private native-tree owner used by the version-coupled {@link StandaloneLayoutKernelInput} adapter. */\nexport interface StandaloneLayoutKernel {\n /**\n * Calculates boxes for one request.\n * @param input - Fully normalized owned-tree input.\n * @returns Frozen native boxes in traversal order.\n */ calculate(\n input: StandaloneLayoutKernelInput,\n ): readonly StandaloneLayoutKernelBox[];\n /** Releases the native arena. */ dispose(): void;\n}\n\ninterface Kernel {\n memory: WebAssembly.Memory;\n standalone_tree_create(): number;\n standalone_tree_generation(handle: number): number;\n standalone_tree_dispose(handle: number, generation: number): number;\n standalone_tree_resize_nodes(\n handle: number,\n generation: number,\n count: number,\n ): number;\n standalone_tree_resize_children(\n handle: number,\n generation: number,\n count: number,\n ): number;\n standalone_tree_resize_grid(\n handle: number,\n generation: number,\n count: number,\n ): number;\n standalone_tree_replace(\n handle: number,\n generation: number,\n root: number,\n direction: number,\n ): number;\n standalone_tree_prepare(\n handle: number,\n generation: number,\n width: number,\n height: number,\n ): number;\n standalone_tree_prepare_settled_measurements(\n handle: number,\n generation: number,\n ): number;\n standalone_tree_measure_count(handle: number, generation: number): number;\n standalone_tree_measure_node(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_measure_kind(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_measure_width_min(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_measure_width_max(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_measure_height_min(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_measure_height_max(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_resize_measurements(\n handle: number,\n generation: number,\n count: number,\n ): number;\n standalone_tree_solve(\n handle: number,\n generation: number,\n width: number,\n height: number,\n ): number;\n standalone_tree_box_count(handle: number, generation: number): number;\n standalone_tree_box_id(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_box_x(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_box_y(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_box_width(\n handle: number,\n generation: number,\n index: number,\n ): number;\n standalone_tree_box_height(\n handle: number,\n generation: number,\n index: number,\n ): number;\n dispose(): void;\n}\n\n// Keep this record deliberately append-only. The Rust owner validates every\n// field before it enters the persistent tree.\nconst NODE_STRIDE = 70;\nconst MEASUREMENT_STRIDE = 7;\nconst LENGTH_NONE = 0;\nconst LENGTH_POINT = 1;\nconst LENGTH_PERCENT = 2;\nconst LENGTH_AUTO = 3;\nconst FLEX_DIRECTIONS = [\n \"row\",\n \"row-reverse\",\n \"column\",\n \"column-reverse\",\n] as const;\nconst FLEX_WRAPS = [\"nowrap\", \"wrap\", \"wrap-reverse\"] as const;\nconst JUSTIFY_CONTENT = [\n \"flex-start\",\n \"flex-end\",\n \"center\",\n \"space-between\",\n \"space-around\",\n \"space-evenly\",\n] as const;\nconst ALIGNMENTS = [\n \"stretch\",\n \"flex-start\",\n \"flex-end\",\n \"center\",\n \"baseline\",\n \"first-baseline\",\n \"last-baseline\",\n] as const;\nconst ALIGN_SELF = [\n \"auto\",\n \"stretch\",\n \"flex-start\",\n \"flex-end\",\n \"center\",\n \"baseline\",\n \"first-baseline\",\n \"last-baseline\",\n] as const;\nconst ALIGN_CONTENT = [\n \"flex-start\", \"flex-end\", \"center\", \"stretch\", \"space-between\",\n \"space-around\", \"space-evenly\",\n] as const;\nconst POSITIONS = [\"relative\", \"static\", \"absolute\"] as const;\nconst BOX_SIZINGS = [\"border-box\", \"content-box\"] as const;\nconst GRID_FLOWS = [\"row\", \"column\", \"row dense\", \"column dense\"] as const;\nfunction status(value: number, action: string): void {\n if (value !== 0)\n throw new Error(`Standalone native layout ${action} failed (${value}).`);\n}\nfunction finite(value: unknown, property: string): number {\n if (typeof value !== \"number\" || !Number.isFinite(value))\n throw new TypeError(\n `Standalone layout ${property} must be a finite number.`,\n );\n return value;\n}\nfunction length(\n records: Float64Array,\n offset: number,\n value: unknown,\n property: string,\n): void {\n if (value === undefined) {\n records[offset] = 0;\n records[offset + 1] = LENGTH_NONE;\n return;\n }\n if (value === \"auto\") {\n records[offset] = 0;\n records[offset + 1] = LENGTH_AUTO;\n return;\n }\n if (typeof value === \"number\") {\n records[offset] = finite(value, property);\n records[offset + 1] = LENGTH_POINT;\n return;\n }\n if (typeof value === \"string\" && /^-?(?:\\d+|\\d*\\.\\d+)%$/.test(value)) {\n records[offset] = Number.parseFloat(value);\n records[offset + 1] = LENGTH_PERCENT;\n return;\n }\n throw new TypeError(\n `Standalone layout ${property} must be numeric, percentage, auto, or omitted.`,\n );\n}\nfunction numeric(\n records: Float64Array,\n offset: number,\n value: unknown,\n fallback: number,\n property: string,\n): void {\n records[offset] = value === undefined ? fallback : finite(value, property);\n}\nfunction numericValue(\n value: unknown,\n fallback: number,\n property: string,\n): number {\n return value === undefined ? fallback : finite(value, property);\n}\nfunction enumCode(\n value: unknown,\n values: readonly string[],\n fallback: number,\n property: string,\n): number {\n if (value === undefined) return fallback;\n const index = values.indexOf(value as string);\n if (index < 0)\n throw new TypeError(\n `Standalone layout ${property} is unsupported by the native tree boundary.`,\n );\n return index;\n}\nfunction edge(\n style: Readonly<Record<string, unknown>>,\n side: \"top\" | \"right\" | \"bottom\" | \"left\",\n property: \"padding\" | \"borderWidth\",\n): unknown {\n const value = style[property];\n if (\n value === undefined ||\n typeof value === \"number\" ||\n typeof value === \"string\"\n )\n return value;\n if (value !== null && typeof value === \"object\")\n return (value as Record<string, unknown>)[side];\n throw new TypeError(\n `Standalone layout ${property} must be a scalar or physical-edge record.`,\n );\n}\n\nclass NativeStandaloneLayoutKernel implements StandaloneLayoutKernel {\n #kernel: Kernel | undefined;\n #handle = 0;\n #generation = 0;\n constructor() {\n this.#kernel = new WebAssembly.Instance(readyLayoutModule())\n .exports as unknown as Kernel;\n this.#handle = this.kernel.standalone_tree_create();\n this.#generation = this.#handle\n ? this.kernel.standalone_tree_generation(this.#handle)\n : 0;\n if (!this.#handle || !this.#generation)\n throw new Error(\"Standalone native tree allocation failed.\");\n }\n get kernel(): Kernel {\n if (!this.#kernel)\n throw new Error(\"The standalone layout kernel has been disposed.\");\n return this.#kernel;\n }\n calculate(\n input: StandaloneLayoutKernelInput,\n ): readonly StandaloneLayoutKernelBox[] {\n if (\n !Number.isFinite(input.width) ||\n input.width < 0 ||\n !Number.isFinite(input.height) ||\n input.height < 0\n )\n throw new RangeError(\n \"Standalone layout constraints must be finite and nonnegative.\",\n );\n const nodes = input.nodes;\n const sourceIndex = new Map<number, number>();\n for (let index = 0; index < nodes.length; index++) {\n const id = nodes[index]!.id;\n if (!Number.isInteger(id) || id < 0 || sourceIndex.has(id))\n throw new Error(\n \"Standalone layout node ids must be unique nonnegative integers.\",\n );\n sourceIndex.set(id, index);\n }\n const rootIndex = sourceIndex.get(input.root);\n if (rootIndex === undefined)\n throw new Error(\n \"Standalone layout root is not present in the owned node set.\",\n );\n const children: number[] = [];\n const pointer = this.kernel.standalone_tree_resize_nodes(\n this.#handle,\n this.#generation,\n nodes.length,\n );\n if (!pointer && nodes.length)\n throw new Error(\"Standalone native node storage allocation failed.\");\n const records = new Float64Array(\n this.kernel.memory.buffer,\n pointer,\n nodes.length * NODE_STRIDE,\n );\n for (let index = 0; index < nodes.length; index++) {\n const node = nodes[index]!;\n const offset = index * NODE_STRIDE;\n const style = node.style;\n const parentIndex =\n node.parent === undefined ? -1 : sourceIndex.get(node.parent);\n if (parentIndex === undefined)\n throw new Error(\n \"Standalone layout node parent is not present in the owned node set.\",\n );\n const parent = parentIndex < 0 ? undefined : nodes[parentIndex];\n const gridContainerDeclaration =\n style.gridTemplateColumns !== undefined ||\n style.gridTemplateRows !== undefined ||\n style.gridAutoColumns !== undefined ||\n style.gridAutoRows !== undefined ||\n style.gridAutoFlow !== undefined;\n const gridItemDeclaration =\n style.gridColumnStart !== undefined ||\n style.gridColumnSpan !== undefined ||\n style.gridRowStart !== undefined ||\n style.gridRowSpan !== undefined;\n const flexContainerDeclaration =\n style.flexDirection !== undefined ||\n style.flexWrap !== undefined ||\n style.justifyContent !== undefined ||\n style.alignContent !== undefined;\n const flexItemDeclaration =\n style.flexBasis !== undefined ||\n style.flexGrow !== undefined ||\n style.flexShrink !== undefined;\n if (style.layout !== \"grid\" && gridContainerDeclaration)\n throw new TypeError(\n \"Standalone Grid declarations require layout: 'grid'.\",\n );\n if (style.layout === \"grid\" && flexContainerDeclaration)\n throw new TypeError(\n \"Standalone Flex-container declarations cannot be applied to a Grid owner.\",\n );\n if (parent === undefined && style.layout === \"grid\" && flexItemDeclaration)\n throw new TypeError(\n \"Standalone Flex item declarations require a Flex parent.\",\n );\n if (parent?.style.layout === \"grid\" && flexItemDeclaration)\n throw new TypeError(\n \"Standalone Flex item declarations require a Flex parent.\",\n );\n if (parent?.style.layout !== \"grid\" && gridItemDeclaration)\n throw new TypeError(\n \"Standalone Grid item placement requires a Grid parent.\",\n );\n if (style.overflow !== undefined && style.overflow !== \"visible\")\n throw new TypeError(\n \"The standalone native tree does not yet admit clipped overflow.\",\n );\n if (style.alignItems === 'baseline' || style.alignItems === 'first-baseline' || style.alignItems === 'last-baseline' ||\n style.alignSelf === 'baseline' || style.alignSelf === 'first-baseline' || style.alignSelf === 'last-baseline')\n throw new TypeError('Standalone baseline alignment requires a baseline provider and is not supported.');\n records[offset] = index;\n records[offset + 1] = parentIndex;\n records[offset + 2] = children.length;\n records[offset + 3] = node.children.length;\n for (const child of node.children) {\n const childIndex = sourceIndex.get(child);\n if (childIndex === undefined)\n throw new Error(\n \"Standalone layout child is not present in the owned node set.\",\n );\n children.push(childIndex);\n }\n length(records, offset + 4, style.width, \"width\");\n length(records, offset + 6, style.height, \"height\");\n length(records, offset + 8, style.minWidth, \"minWidth\");\n length(records, offset + 10, style.minHeight, \"minHeight\");\n length(records, offset + 12, style.maxWidth, \"maxWidth\");\n length(records, offset + 14, style.maxHeight, \"maxHeight\");\n length(records, offset + 16, style.flexBasis, \"flexBasis\");\n numeric(records, offset + 18, style.flexGrow, 0, \"flexGrow\");\n numeric(records, offset + 19, style.flexShrink, 0, \"flexShrink\");\n numeric(records, offset + 20, style.gap, 0, \"gap\");\n numeric(records, offset + 21, style.rowGap, -1, \"rowGap\");\n numeric(records, offset + 22, style.columnGap, -1, \"columnGap\");\n records[offset + 23] = enumCode(\n style.flexDirection,\n FLEX_DIRECTIONS,\n 0,\n \"flexDirection\",\n );\n records[offset + 24] = enumCode(\n style.flexWrap,\n FLEX_WRAPS,\n 0,\n \"flexWrap\",\n );\n records[offset + 25] = enumCode(\n style.justifyContent,\n JUSTIFY_CONTENT,\n 0,\n \"justifyContent\",\n );\n records[offset + 26] = enumCode(\n style.alignItems,\n ALIGNMENTS,\n 0,\n \"alignItems\",\n );\n records[offset + 27] = enumCode(\n style.alignSelf,\n ALIGN_SELF,\n 0,\n \"alignSelf\",\n );\n records[offset + 50] = enumCode(style.alignContent, ALIGN_CONTENT, 0, \"alignContent\");\n records[offset + 51] = enumCode(style.position, POSITIONS, 0, \"position\");\n records[offset + 52] = enumCode(style.boxSizing, BOX_SIZINGS, 0, \"boxSizing\");\n numeric(records, offset + 53, style.aspectRatio, 0, \"aspectRatio\");\n if (records[offset + 53] < 0 || (records[offset + 53] !== 0 && records[offset + 53] <= 0))\n throw new TypeError(\"Standalone layout aspectRatio must be positive.\");\n length(records, offset + 54, style.left, \"left\");\n length(records, offset + 56, style.right, \"right\");\n length(records, offset + 58, style.top, \"top\");\n length(records, offset + 60, style.bottom, \"bottom\");\n const borderLeft = edge(style, \"left\", \"borderWidth\") ?? 0;\n const borderRight = edge(style, \"right\", \"borderWidth\") ?? 0;\n const borderTop = edge(style, \"top\", \"borderWidth\") ?? 0;\n const borderBottom = edge(style, \"bottom\", \"borderWidth\") ?? 0;\n records[offset + 62] = finite(borderLeft, \"borderWidth.left\");\n records[offset + 63] = finite(borderRight, \"borderWidth.right\");\n records[offset + 64] = finite(borderTop, \"borderWidth.top\");\n records[offset + 65] = finite(borderBottom, \"borderWidth.bottom\");\n if (records[offset + 62] < 0 || records[offset + 63] < 0 || records[offset + 64] < 0 || records[offset + 65] < 0)\n throw new TypeError(\"Standalone layout borderWidth must be nonnegative.\");\n length(\n records,\n offset + 28,\n style.marginLeft ?? style.margin,\n \"marginLeft\",\n );\n length(\n records,\n offset + 30,\n style.marginRight ?? style.margin,\n \"marginRight\",\n );\n length(\n records,\n offset + 32,\n style.marginTop ?? style.margin,\n \"marginTop\",\n );\n length(\n records,\n offset + 34,\n style.marginBottom ?? style.margin,\n \"marginBottom\",\n );\n length(\n records,\n offset + 36,\n edge(style, \"left\", \"padding\") ?? 0,\n \"padding.left\",\n );\n length(\n records,\n offset + 38,\n edge(style, \"right\", \"padding\") ?? 0,\n \"padding.right\",\n );\n length(\n records,\n offset + 40,\n edge(style, \"top\", \"padding\") ?? 0,\n \"padding.top\",\n );\n length(\n records,\n offset + 42,\n edge(style, \"bottom\", \"padding\") ?? 0,\n \"padding.bottom\",\n );\n if (\n (records[offset + 37] !== LENGTH_POINT &&\n records[offset + 37] !== LENGTH_PERCENT) ||\n (records[offset + 39] !== LENGTH_POINT &&\n records[offset + 39] !== LENGTH_PERCENT) ||\n (records[offset + 41] !== LENGTH_POINT &&\n records[offset + 41] !== LENGTH_PERCENT) ||\n (records[offset + 43] !== LENGTH_POINT &&\n records[offset + 43] !== LENGTH_PERCENT)\n )\n throw new TypeError(\n \"Standalone layout padding must be numeric or percentage.\",\n );\n records[offset + 44] = node.measure ? 1 : 0;\n records[offset + 49] = node.measureIntrinsic ? 1 : 0;\n records[offset + 45] = numericValue(\n style.gridColumnStart,\n 0,\n \"gridColumnStart\",\n );\n records[offset + 46] = numericValue(\n style.gridColumnSpan,\n 1,\n \"gridColumnSpan\",\n );\n records[offset + 47] = numericValue(\n style.gridRowStart,\n 0,\n \"gridRowStart\",\n );\n records[offset + 48] = numericValue(style.gridRowSpan, 1, \"gridRowSpan\");\n }\n const grid: number[] = [];\n type PackedTrack = readonly [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n ];\n const breadth = (\n value: unknown,\n property: string,\n ): readonly [number, number] => {\n if (typeof value === \"number\" && Number.isFinite(value) && value >= 0)\n return [0, value];\n if (typeof value === \"string\" && /^(?:\\d+|\\d*\\.\\d+)%$/.test(value))\n return [1, Number.parseFloat(value)];\n if (\n typeof value === \"string\" &&\n /^(?:\\d+|\\d*\\.\\d+)fr$/.test(value) &&\n Number.parseFloat(value) >= 0\n )\n return [2, Number.parseFloat(value)];\n if (value === \"min-content\") return [3, 0];\n if (value === \"max-content\") return [4, 0];\n if (value === \"auto\") return [5, 0];\n throw new TypeError(\n `Standalone Grid ${property} must be a finite, percentage, fractional, or intrinsic track.`,\n );\n };\n const track = (value: unknown, property: string): PackedTrack => {\n if (\n value !== null &&\n typeof value === \"object\" &&\n (value as { kind?: unknown }).kind === \"minmax\"\n ) {\n const min = breadth(\n (value as { min?: unknown }).min,\n `${property}.min`,\n );\n const max = breadth(\n (value as { max?: unknown }).max,\n `${property}.max`,\n );\n return [6, 0, min[0], min[1], max[0], max[1], 0];\n }\n if (\n value !== null &&\n typeof value === \"object\" &&\n (value as { kind?: unknown }).kind === \"fit-content\"\n ) {\n const limit = breadth(\n (value as { limit?: unknown }).limit,\n `${property}.limit`,\n );\n if (limit[0] > 1)\n throw new TypeError(\n `Standalone Grid ${property} fit-content limit must be numeric or percentage.`,\n );\n return [limit[0] === 1 ? 9 : 7, limit[1], 0, 0, 4, 0, 0];\n }\n const fixed = breadth(value, property);\n return [fixed[0], fixed[1], 0, 0, 4, fixed[1], 0];\n };\n const expand = (\n value: unknown,\n property: string,\n target: PackedTrack[],\n nestedAuto = false,\n ): void => {\n if (\n value !== null &&\n typeof value === \"object\" &&\n (value as { kind?: unknown }).kind === \"repeat\"\n ) {\n const repeat = value as { count?: unknown; tracks?: unknown };\n if (!Array.isArray(repeat.tracks) || !repeat.tracks.length)\n throw new TypeError(\n `Standalone Grid ${property} repeat requires tracks.`,\n );\n if (repeat.count === \"auto-fill\" || repeat.count === \"auto-fit\") {\n if (nestedAuto)\n throw new TypeError(\n `Standalone Grid ${property} does not permit nested automatic repeats.`,\n );\n const pattern: PackedTrack[] = [];\n for (const nested of repeat.tracks)\n expand(nested, `${property}.tracks`, pattern, true);\n // Marker kind 8 is expanded by the owner-bound native Grid helper.\n target.push([\n 8,\n repeat.count === \"auto-fill\" ? 1 : 2,\n pattern.length,\n 0,\n 0,\n 0,\n 0,\n ]);\n for (const record of pattern) target.push(record);\n return;\n }\n if (!Number.isInteger(repeat.count) || (repeat.count as number) < 1)\n throw new TypeError(\n `Standalone Grid ${property} repeat count must be positive or automatic.`,\n );\n for (let count = 0; count < (repeat.count as number); count++)\n for (const nested of repeat.tracks)\n expand(nested, `${property}.tracks`, target, nestedAuto);\n return;\n }\n target.push(track(value, property));\n };\n for (let index = 0; index < nodes.length; index++) {\n const style = nodes[index]!.style;\n if (style.layout !== \"grid\") continue;\n const columns = style.gridTemplateColumns;\n const rows = style.gridTemplateRows;\n if (\n !Array.isArray(columns) ||\n !Array.isArray(rows) ||\n !columns.length ||\n !rows.length\n )\n throw new TypeError(\n \"Standalone Grid requires nonempty explicit column and row tracks.\",\n );\n const packedColumns: PackedTrack[] = [];\n const packedRows: PackedTrack[] = [];\n for (const value of columns)\n expand(value, \"gridTemplateColumns\", packedColumns);\n for (const value of rows) expand(value, \"gridTemplateRows\", packedRows);\n const flow = enumCode(style.gridAutoFlow, GRID_FLOWS, 0, \"gridAutoFlow\");\n const autoColumn =\n style.gridAutoColumns === undefined\n ? undefined\n : track(style.gridAutoColumns, \"gridAutoColumns\");\n const autoRow =\n style.gridAutoRows === undefined\n ? undefined\n : track(style.gridAutoRows, \"gridAutoRows\");\n // Header: owner, explicit axis counts, gaps, flow, configured implicit-axis flags, then auto records and explicit records.\n grid.push(\n index,\n packedColumns.length,\n packedRows.length,\n numericValue(style.columnGap ?? style.gap, 0, \"columnGap\"),\n numericValue(style.rowGap ?? style.gap, 0, \"rowGap\"),\n flow,\n autoColumn ? 1 : 0,\n autoRow ? 1 : 0,\n ...(autoColumn ?? [0, 0, 0, 0, 4, 0, 0]),\n ...(autoRow ?? [0, 0, 0, 0, 4, 0, 0]),\n );\n for (const value of packedColumns) grid.push(...value);\n for (const value of packedRows) grid.push(...value);\n }\n const gridPointer = this.kernel.standalone_tree_resize_grid(\n this.#handle,\n this.#generation,\n grid.length,\n );\n if (!gridPointer && grid.length)\n throw new Error(\"Standalone native Grid storage allocation failed.\");\n new Float64Array(this.kernel.memory.buffer, gridPointer, grid.length).set(\n grid,\n );\n const childPointer = this.kernel.standalone_tree_resize_children(\n this.#handle,\n this.#generation,\n children.length,\n );\n if (!childPointer && children.length)\n throw new Error(\"Standalone native child storage allocation failed.\");\n new Uint32Array(\n this.kernel.memory.buffer,\n childPointer,\n children.length,\n ).set(children);\n status(\n this.kernel.standalone_tree_replace(\n this.#handle,\n this.#generation,\n rootIndex,\n input.direction === \"rtl\" ? 1 : 0,\n ),\n \"tree replacement\",\n );\n status(\n this.kernel.standalone_tree_prepare(\n this.#handle,\n this.#generation,\n input.width,\n input.height,\n ),\n \"measurement preparation\",\n );\n const count = this.kernel.standalone_tree_measure_count(\n this.#handle,\n this.#generation,\n );\n const measurementPointer = this.kernel.standalone_tree_resize_measurements(\n this.#handle,\n this.#generation,\n count,\n );\n if (!measurementPointer && count)\n throw new Error(\n \"Standalone native measurement storage allocation failed.\",\n );\n const measurements = new Float64Array(\n this.kernel.memory.buffer,\n measurementPointer,\n count * MEASUREMENT_STRIDE,\n );\n for (let index = 0; index < count; index++) {\n const nativeId = this.kernel.standalone_tree_measure_node(\n this.#handle,\n this.#generation,\n index,\n );\n const node = nodes[nativeId];\n const kind = this.kernel.standalone_tree_measure_kind(\n this.#handle,\n this.#generation,\n index,\n );\n if (!node)\n throw new Error(\n \"Standalone native tree requested an unknown measurement node.\",\n );\n // Native tree ids are traversal indexes; public owned-node ids are only\n // mapped back after solve. Returning the public id here misroutes a\n // callback whenever a root does not happen to be id zero.\n const offset = index * MEASUREMENT_STRIDE;\n measurements[offset] = nativeId;\n if (kind === 0) {\n if (!node.measure)\n throw new Error(\n \"Standalone native tree requested a node without an owned measurement callback.\",\n );\n const result = node.measure({\n width: {\n minimum: this.kernel.standalone_tree_measure_width_min(\n this.#handle,\n this.#generation,\n index,\n ),\n maximum: this.kernel.standalone_tree_measure_width_max(\n this.#handle,\n this.#generation,\n index,\n ),\n },\n height: {\n minimum: this.kernel.standalone_tree_measure_height_min(\n this.#handle,\n this.#generation,\n index,\n ),\n maximum: this.kernel.standalone_tree_measure_height_max(\n this.#handle,\n this.#generation,\n index,\n ),\n },\n });\n measurements[offset + 1] = finite(result.width, \"measurement width\");\n measurements[offset + 2] = finite(result.height, \"measurement height\");\n } else if (kind === 1) {\n if (!node.measureIntrinsic)\n throw new Error(\n \"Standalone native tree requested a node without an owned intrinsic measurement callback.\",\n );\n const result = node.measureIntrinsic();\n measurements[offset + 3] = finite(\n result.minWidth,\n \"intrinsic minimum width\",\n );\n measurements[offset + 4] = finite(\n result.maxWidth,\n \"intrinsic maximum width\",\n );\n measurements[offset + 5] = finite(\n result.minHeight,\n \"intrinsic minimum height\",\n );\n measurements[offset + 6] = finite(\n result.maxHeight,\n \"intrinsic maximum height\",\n );\n if (\n measurements[offset + 3] > measurements[offset + 4] ||\n measurements[offset + 5] > measurements[offset + 6]\n )\n throw new RangeError(\n \"Standalone intrinsic measurement minimums must not exceed maximums.\",\n );\n } else\n throw new Error(\n \"Standalone native tree requested an unknown measurement kind.\",\n );\n }\n status(\n this.kernel.standalone_tree_solve(\n this.#handle,\n this.#generation,\n input.width,\n input.height,\n ),\n \"solve\",\n );\n // The native first pass has now fixed every parent allocation. Ask the\n // tree for one bounded continuation at those boxes, then let native solve\n // placement again from the refreshed measurements.\n let settled = false;\n for (let phase = 0; phase <= nodes.length; phase++) {\n status(\n this.kernel.standalone_tree_prepare_settled_measurements(\n this.#handle,\n this.#generation,\n ),\n \"settled measurement preparation\",\n );\n const settledCount = this.kernel.standalone_tree_measure_count(\n this.#handle,\n this.#generation,\n );\n if (!settledCount) { settled = true; break; }\n {\n const settledPointer = this.kernel.standalone_tree_resize_measurements(this.#handle, this.#generation, settledCount);\n if (!settledPointer) throw new Error(\"Standalone native settled measurement storage allocation failed.\");\n const settled = new Float64Array(this.kernel.memory.buffer, settledPointer, settledCount * MEASUREMENT_STRIDE);\n for (let index = 0; index < settledCount; index++) {\n const nativeId = this.kernel.standalone_tree_measure_node(this.#handle, this.#generation, index);\n const node = nodes[nativeId]; const kind = this.kernel.standalone_tree_measure_kind(this.#handle, this.#generation, index);\n if (!node) throw new Error(\"Standalone native tree requested an unknown settled measurement node.\");\n const offset = index * MEASUREMENT_STRIDE; settled[offset] = nativeId;\n if (kind === 0) {\n if (!node.measure) throw new Error(\"Standalone native tree requested a node without an owned measurement callback.\");\n const result = node.measure({ width: { minimum: this.kernel.standalone_tree_measure_width_min(this.#handle, this.#generation, index), maximum: this.kernel.standalone_tree_measure_width_max(this.#handle, this.#generation, index) }, height: { minimum: this.kernel.standalone_tree_measure_height_min(this.#handle, this.#generation, index), maximum: this.kernel.standalone_tree_measure_height_max(this.#handle, this.#generation, index) } });\n settled[offset + 1] = finite(result.width, \"settled measurement width\"); settled[offset + 2] = finite(result.height, \"settled measurement height\");\n } else if (kind === 1) {\n if (!node.measureIntrinsic) throw new Error(\"Standalone native tree requested a node without an owned intrinsic measurement callback.\");\n const result = node.measureIntrinsic(); settled[offset + 3] = finite(result.minWidth, \"settled intrinsic minimum width\"); settled[offset + 4] = finite(result.maxWidth, \"settled intrinsic maximum width\"); settled[offset + 5] = finite(result.minHeight, \"settled intrinsic minimum height\"); settled[offset + 6] = finite(result.maxHeight, \"settled intrinsic maximum height\");\n if (settled[offset + 3] > settled[offset + 4] || settled[offset + 5] > settled[offset + 6]) throw new RangeError(\"Standalone settled intrinsic measurement minimums must not exceed maximums.\");\n } else throw new Error(\"Standalone native tree requested an unknown settled measurement kind.\");\n }\n status(this.kernel.standalone_tree_solve(this.#handle, this.#generation, input.width, input.height), \"settled solve\");\n }\n }\n if (!settled)\n throw new Error(`Standalone native layout measurement continuation did not converge within ${nodes.length + 1} native dependency phases.`);\n const boxCount = this.kernel.standalone_tree_box_count(\n this.#handle,\n this.#generation,\n );\n if (boxCount !== nodes.length)\n throw new Error(\"Standalone native tree returned an incomplete box set.\");\n const boxes: StandaloneLayoutKernelBox[] = [];\n for (let index = 0; index < boxCount; index++) {\n const nativeId = this.kernel.standalone_tree_box_id(\n this.#handle,\n this.#generation,\n index,\n );\n const source = nodes[nativeId];\n if (!source)\n throw new Error(\"Standalone native tree returned an unknown node id.\");\n const box = {\n id: source.id,\n x: this.kernel.standalone_tree_box_x(\n this.#handle,\n this.#generation,\n index,\n ),\n y: this.kernel.standalone_tree_box_y(\n this.#handle,\n this.#generation,\n index,\n ),\n width: this.kernel.standalone_tree_box_width(\n this.#handle,\n this.#generation,\n index,\n ),\n height: this.kernel.standalone_tree_box_height(\n this.#handle,\n this.#generation,\n index,\n ),\n };\n boxes.push(box);\n }\n return Object.freeze(\n boxes.map((box) => Object.freeze(box)) as StandaloneLayoutKernelBox[],\n );\n }\n dispose(): void {\n const kernel = this.#kernel;\n if (!kernel) return;\n this.#kernel = undefined;\n try {\n if (\n this.#handle &&\n kernel.standalone_tree_dispose(this.#handle, this.#generation) !== 0\n )\n throw new Error(\"Standalone native tree disposal failed.\");\n } finally {\n this.#handle = 0;\n this.#generation = 0;\n kernel.dispose();\n }\n }\n}\n\n/**\n * Creates a private native-tree owner used by {@link StandaloneLayoutKernelInput}.\n * @returns A disposable standalone kernel.\n */\nexport function createStandaloneLayoutKernel(): StandaloneLayoutKernel {\n return new NativeStandaloneLayoutKernel();\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["count", "settled"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import type { PibblInstance, PibblRenderTransaction } from '../types.js';
2
+ /**
3
+ * Root-owned identity ledger for the subset of layout roots that can be
4
+ * prepared without evaluating an opaque component. It deliberately records
5
+ * topology only; allocation and geometry remain owned by the matching layout
6
+ * family until a later publication phase can adopt them atomically.
7
+ */
8
+ export interface LayoutTopologySlot {
9
+ readonly topologyOwner: PibblInstance;
10
+ }
11
+ /** Stages one stable prepared-root relationship for commit with its render. */
12
+ export declare function stageLayoutTopology(transaction: PibblRenderTransaction, slot: LayoutTopologySlot, parent: LayoutTopologySlot | undefined): void;
13
+ /** Removes a disposed prepared root and commits the removal immediately. */
14
+ export declare function releaseLayoutTopology(slot: LayoutTopologySlot): void;
15
+ /** Internal diagnostics for focused lifecycle and topology tests. */
16
+ export declare function snapshotLayoutTopology(owner?: PibblInstance): Readonly<{
17
+ roots: number;
18
+ records: number;
19
+ pending: number;
20
+ revision?: number;
21
+ }>;
@@ -0,0 +1,113 @@
1
+ const roots = /* @__PURE__ */ new WeakMap();
2
+ const pending = /* @__PURE__ */ new WeakMap();
3
+ const disposedSlots = /* @__PURE__ */ new WeakSet();
4
+ let activeRoots = 0;
5
+ let activeRecords = 0;
6
+ let activePending = 0;
7
+ function interactionRoot(owner) {
8
+ return owner.interactionRoot ?? owner;
9
+ }
10
+ function topologyFor(owner) {
11
+ const rootOwner = interactionRoot(owner);
12
+ let topology = roots.get(rootOwner);
13
+ if (topology) return topology;
14
+ const created = {
15
+ owner: rootOwner,
16
+ live: true,
17
+ revision: 0,
18
+ pending: 0,
19
+ records: /* @__PURE__ */ new Map(),
20
+ teardown: () => releaseRoot(rootOwner, created)
21
+ };
22
+ roots.set(rootOwner, created);
23
+ activeRoots++;
24
+ rootOwner.mainTeardowns.add(created.teardown);
25
+ return created;
26
+ }
27
+ function releaseRoot(owner, topology) {
28
+ if (roots.get(owner) !== topology) return;
29
+ topology.live = false;
30
+ activeRecords -= topology.records.size;
31
+ topology.records.clear();
32
+ roots.delete(owner);
33
+ activeRoots--;
34
+ }
35
+ function releaseEmptyRoot(topology) {
36
+ if (!topology.live || topology.records.size || topology.pending) return;
37
+ topology.owner.mainTeardowns.remove(topology.teardown);
38
+ releaseRoot(topology.owner, topology);
39
+ }
40
+ function stageLayoutTopology(transaction, slot, parent) {
41
+ if (disposedSlots.has(slot)) return;
42
+ const owner = interactionRoot(slot.topologyOwner);
43
+ let byRoot = pending.get(transaction);
44
+ if (!byRoot) {
45
+ byRoot = /* @__PURE__ */ new Map();
46
+ pending.set(transaction, byRoot);
47
+ const owned = byRoot;
48
+ transaction.onFinish((success) => {
49
+ if (success) {
50
+ for (const batch2 of owned.values()) commit(batch2);
51
+ }
52
+ for (const batch2 of owned.values()) {
53
+ batch2.root.pending -= batch2.changes.size;
54
+ activePending -= batch2.changes.size;
55
+ releaseEmptyRoot(batch2.root);
56
+ }
57
+ pending.delete(transaction);
58
+ });
59
+ }
60
+ let batch = byRoot.get(owner);
61
+ if (!batch) {
62
+ batch = { root: topologyFor(owner), changes: /* @__PURE__ */ new Map() };
63
+ byRoot.set(owner, batch);
64
+ }
65
+ if (!batch.changes.has(slot)) {
66
+ batch.root.pending++;
67
+ activePending++;
68
+ }
69
+ batch.changes.set(slot, { slot, parent });
70
+ }
71
+ function commit(batch) {
72
+ if (!batch.root.live) return;
73
+ let changed = false;
74
+ for (const change of batch.changes.values()) {
75
+ if (disposedSlots.has(change.slot)) continue;
76
+ const previous = batch.root.records.get(change.slot);
77
+ if (!previous) {
78
+ batch.root.records.set(change.slot, { parent: change.parent });
79
+ activeRecords++;
80
+ changed = true;
81
+ } else if (previous.parent !== change.parent) {
82
+ previous.parent = change.parent;
83
+ changed = true;
84
+ }
85
+ }
86
+ if (changed) batch.root.revision++;
87
+ }
88
+ function releaseLayoutTopology(slot) {
89
+ disposedSlots.add(slot);
90
+ const topology = roots.get(interactionRoot(slot.topologyOwner));
91
+ if (!topology || !topology.records.delete(slot)) return;
92
+ activeRecords--;
93
+ topology.revision++;
94
+ releaseEmptyRoot(topology);
95
+ }
96
+ function snapshotLayoutTopology(owner) {
97
+ if (owner) {
98
+ const topology = roots.get(interactionRoot(owner));
99
+ return Object.freeze({
100
+ roots: topology ? 1 : 0,
101
+ records: topology?.records.size ?? 0,
102
+ pending: topology?.pending ?? 0,
103
+ revision: topology?.revision ?? 0
104
+ });
105
+ }
106
+ return Object.freeze({ roots: activeRoots, records: activeRecords, pending: activePending });
107
+ }
108
+ export {
109
+ releaseLayoutTopology,
110
+ snapshotLayoutTopology,
111
+ stageLayoutTopology
112
+ };
113
+ //# sourceMappingURL=topology.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/layout/topology.ts"],
4
+ "sourcesContent": ["import type { PibblInstance, PibblRenderTransaction } from '../types.js';\n\n/**\n * Root-owned identity ledger for the subset of layout roots that can be\n * prepared without evaluating an opaque component. It deliberately records\n * topology only; allocation and geometry remain owned by the matching layout\n * family until a later publication phase can adopt them atomically.\n */\nexport interface LayoutTopologySlot {\n readonly topologyOwner: PibblInstance;\n}\n\ninterface TopologyRecord {\n parent: LayoutTopologySlot | undefined;\n}\n\ninterface PendingTopologyChange {\n readonly slot: LayoutTopologySlot;\n readonly parent: LayoutTopologySlot | undefined;\n}\n\ninterface RootTopology {\n readonly owner: PibblInstance;\n live: boolean;\n revision: number;\n pending: number;\n readonly records: Map<LayoutTopologySlot, TopologyRecord>;\n readonly teardown: () => void;\n}\n\ninterface PendingTopologyBatch {\n readonly root: RootTopology;\n readonly changes: Map<LayoutTopologySlot, PendingTopologyChange>;\n}\n\nconst roots = new WeakMap<PibblInstance, RootTopology>();\nconst pending = new WeakMap<PibblRenderTransaction, Map<PibblInstance, PendingTopologyBatch>>();\nconst disposedSlots = new WeakSet<LayoutTopologySlot>();\nlet activeRoots = 0;\nlet activeRecords = 0;\nlet activePending = 0;\n\nfunction interactionRoot(owner: PibblInstance): PibblInstance {\n return owner.interactionRoot ?? owner;\n}\n\nfunction topologyFor(owner: PibblInstance): RootTopology {\n const rootOwner = interactionRoot(owner);\n let topology = roots.get(rootOwner);\n if (topology) return topology;\n const created: RootTopology = {\n owner: rootOwner,\n live: true,\n revision: 0,\n pending: 0,\n records: new Map(),\n teardown: () => releaseRoot(rootOwner, created),\n };\n roots.set(rootOwner, created);\n activeRoots++;\n rootOwner.mainTeardowns.add(created.teardown);\n return created;\n}\n\nfunction releaseRoot(owner: PibblInstance, topology: RootTopology): void {\n if (roots.get(owner) !== topology) return;\n topology.live = false;\n activeRecords -= topology.records.size;\n topology.records.clear();\n roots.delete(owner);\n activeRoots--;\n}\n\nfunction releaseEmptyRoot(topology: RootTopology): void {\n if (!topology.live || topology.records.size || topology.pending) return;\n topology.owner.mainTeardowns.remove(topology.teardown);\n releaseRoot(topology.owner, topology);\n}\n\n/** Stages one stable prepared-root relationship for commit with its render. */\nexport function stageLayoutTopology(\n transaction: PibblRenderTransaction,\n slot: LayoutTopologySlot,\n parent: LayoutTopologySlot | undefined,\n): void {\n if (disposedSlots.has(slot)) return;\n const owner = interactionRoot(slot.topologyOwner);\n let byRoot = pending.get(transaction);\n if (!byRoot) {\n byRoot = new Map();\n pending.set(transaction, byRoot);\n const owned = byRoot;\n transaction.onFinish(success => {\n if (success) {\n for (const batch of owned.values()) commit(batch);\n }\n for (const batch of owned.values()) {\n batch.root.pending -= batch.changes.size;\n activePending -= batch.changes.size;\n releaseEmptyRoot(batch.root);\n }\n pending.delete(transaction);\n });\n }\n let batch = byRoot.get(owner);\n if (!batch) {\n batch = { root: topologyFor(owner), changes: new Map() };\n byRoot.set(owner, batch);\n }\n if (!batch.changes.has(slot)) { batch.root.pending++; activePending++; }\n batch.changes.set(slot, { slot, parent });\n}\n\nfunction commit(batch: PendingTopologyBatch): void {\n // A root may be disposed while a failed/aborted traversal still owns the\n // transaction. Its later finish callback must not resurrect its records.\n if (!batch.root.live) return;\n let changed = false;\n for (const change of batch.changes.values()) {\n if (disposedSlots.has(change.slot)) continue;\n const previous = batch.root.records.get(change.slot);\n if (!previous) {\n batch.root.records.set(change.slot, { parent: change.parent });\n activeRecords++;\n changed = true;\n } else if (previous.parent !== change.parent) {\n previous.parent = change.parent;\n changed = true;\n }\n }\n if (changed) batch.root.revision++;\n}\n\n/** Removes a disposed prepared root and commits the removal immediately. */\nexport function releaseLayoutTopology(slot: LayoutTopologySlot): void {\n disposedSlots.add(slot);\n const topology = roots.get(interactionRoot(slot.topologyOwner));\n if (!topology || !topology.records.delete(slot)) return;\n activeRecords--; topology.revision++;\n releaseEmptyRoot(topology);\n}\n\n/** Internal diagnostics for focused lifecycle and topology tests. */\nexport function snapshotLayoutTopology(owner?: PibblInstance): Readonly<{ roots: number; records: number; pending: number; revision?: number }> {\n if (owner) {\n const topology = roots.get(interactionRoot(owner));\n return Object.freeze({\n roots: topology ? 1 : 0,\n records: topology?.records.size ?? 0,\n pending: topology?.pending ?? 0,\n revision: topology?.revision ?? 0,\n });\n }\n return Object.freeze({ roots: activeRoots, records: activeRecords, pending: activePending });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["batch"]
7
+ }
@@ -21,6 +21,10 @@ export interface Size {
21
21
  /**
22
22
  * Available and limiting dimensions supplied to layout and measurement.
23
23
  *
24
+ * Equal minimum and maximum values require that exact logical content size.
25
+ * A positive-infinite maximum leaves that axis unbounded; all other values are
26
+ * finite logical sizes.
27
+ *
24
28
  * @see {@link measureElement}
25
29
  * @see {@link resolveBox}
26
30
  * @see {@link LayoutDiagnosticContext}
@@ -57,6 +61,7 @@ export interface LayoutBox extends Size {
57
61
  }
58
62
  /** @internal Temporary render-time allocation and containing-block basis. */
59
63
  export interface LayoutContext {
64
+ layoutDirection?: 'ltr' | 'rtl';
60
65
  allocation: Readonly<LayoutBox>;
61
66
  percentageBasis: Readonly<LayoutBox>;
62
67
  }
@@ -0,0 +1 @@
1
+ export declare const layoutBinaryHash = "8c146d6562f761c241d4683f2db8efba74a915ce254a9924daff3a2dba39af4a";
@@ -0,0 +1,5 @@
1
+ const layoutBinaryHash = "8c146d6562f761c241d4683f2db8efba74a915ce254a9924daff3a2dba39af4a";
2
+ export {
3
+ layoutBinaryHash
4
+ };
5
+ //# sourceMappingURL=artifact.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/lib/layout/wasm/artifact.ts"],
4
+ "sourcesContent": ["// Generated by tooling/build-layout-wasm.mjs; do not edit.\nexport const layoutBinaryHash = \"8c146d6562f761c241d4683f2db8efba74a915ce254a9924daff3a2dba39af4a\";\n"],
5
+ "mappings": "AACO,MAAM,mBAAmB;",
6
+ "names": []
7
+ }