@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
@@ -1,42 +1,421 @@
1
+ import { bindCanvasMeasurementService, sameCanvasMeasurementService } from "./canvas-measurement.js";
2
+ import { allocationMeasurement, declineUnrecordedAllocationMeasurement, declineUntracedAllocationQuery, allocationQueryReplayRevision, allocationQueryVolatilityRevision } from "./allocation-checkpoint.js";
3
+ import { allocationOwner, setAllocationOwner } from "./allocation-revision.js";
4
+ import { isFitContent } from "../style/sizing-length.js";
5
+ import { observeReceiverInputReads, captureReceiverInputProvision, replayReceiverInputProvision, withReceiverInputProvision } from "../signals/input-provision.js";
6
+ import { hasPercentageBoxPadding } from "./box-insets.js";
7
+ import { contentBoxStyle } from "./box-sizing.js";
8
+ import { isLayoutComponent, placedLayoutComponentRoot } from "./define-layout-component.js";
1
9
  import { getStyleMeasurementMode, withStyleMeasurement, rejectResponsiveMeasurement, UnsupportedResponsiveMeasurement } from "../style/responsive.js";
2
10
  import { layoutDiagnostic } from "../style/diagnostics.js";
3
11
  import { GLOBAL_STATE } from "../global-state.js";
12
+ import { withMeasurementLayoutOwner } from "./wasm/region.js";
4
13
  import { EMPTY_STYLE } from "../style/empty-style.js";
5
14
  import {
6
15
  takePreNormalizedStyle,
16
+ peekPreNormalizedStyle,
7
17
  withoutSystemFilter
8
18
  } from "../style/resolve-dispatch.js";
9
19
  import {
10
20
  createPrimitiveReceiverToken,
11
21
  getPrimitiveDefinition,
22
+ getPrimitiveProgramProps,
12
23
  getPrimitiveReceiverToken,
13
- getPolicyPreparationSource
24
+ getElementMetadata
14
25
  } from "../element/metadata.js";
15
26
  import { resolvePrimitiveInputs } from "../element/resolve-primitive-inputs.js";
16
27
  import { recordLayoutMeasurement } from "./diagnostics.js";
17
28
  import { prepareElementPolicies } from "../element/children.js";
18
- import { untracked, withSignalWriteForbidden } from "../signals/graph.js";
29
+ import { isSignal, trackSignalDependency, withSignalTracking, withSignalDependencyRole, untracked, withSignalWriteForbidden } from "../signals/graph.js";
19
30
  function measureElement(element, constraints, service) {
31
+ const resolveService = bindCanvasMeasurementService(service);
32
+ return allocationMeasurement(element, (current) => measureElementUncached(current, constraints, resolveService()));
33
+ }
34
+ function measureElementUncached(element, constraints, service) {
20
35
  const context = {
21
36
  active: /* @__PURE__ */ new Set(),
22
37
  stack: []
23
38
  };
24
39
  const mode = getStyleMeasurementMode() ? "recursive" : GLOBAL_STATE.componentRefs ? "mounted-intrinsic" : "standalone-root";
25
- return withSignalWriteForbidden(
40
+ const owner = GLOBAL_STATE.currentPibblInstance?.interactionRoot ?? GLOBAL_STATE.currentPibblInstance;
41
+ const evaluate = () => withSignalWriteForbidden(
26
42
  "Signal writes are forbidden during Pibbl measurement",
27
- () => withStyleMeasurement(mode, () => withIsolatedRenderState(
43
+ () => withMeasurementLayoutOwner(owner, () => withStyleMeasurement(mode, () => withIsolatedRenderState(
28
44
  () => measureElementInternal(element, constraints, service, context)
29
- ))
45
+ )))
30
46
  );
47
+ const receiver = getPrimitiveReceiverToken(element);
48
+ return receiver ? withReceiverInputProvision(GLOBAL_STATE.renderTransaction, receiver, () => withSignalDependencyRole("measurement", evaluate)) : evaluate();
49
+ }
50
+ function measurementDependenciesUnchanged(entry) {
51
+ const versions = entry.dependencyVersions;
52
+ if (!versions || versions.length !== entry.dependencies.length) return false;
53
+ for (let index = 0; index < versions.length; index++) {
54
+ const node = entry.dependencies[index];
55
+ node.validate?.();
56
+ if (node.version !== versions[index]) return false;
57
+ }
58
+ return true;
59
+ }
60
+ function measurementDependencyVersions(dependencies) {
61
+ const versions = [];
62
+ for (let index = 0; index < dependencies.length; index++) versions.push(dependencies[index].version);
63
+ return versions;
64
+ }
65
+ const intrinsicTransactions = /* @__PURE__ */ new WeakMap();
66
+ function intrinsicInputSnapshot(element) {
67
+ const props = getPrimitiveProgramProps(element);
68
+ const style = peekPreNormalizedStyle(element)?.style;
69
+ const snapshot = [];
70
+ for (const key of Object.keys(props)) {
71
+ const value = props[key];
72
+ if (value !== null && (typeof value === "object" && !isSignal(value) || typeof value === "function")) return;
73
+ snapshot.push(key, value);
74
+ }
75
+ if (style) for (const key of Object.keys(style)) {
76
+ const value = style[key];
77
+ if (isFitContent(value) && Object.isFrozen(value)) {
78
+ snapshot.push(key, isFitContent, value.limit);
79
+ continue;
80
+ }
81
+ if (value !== null && (typeof value === "object" || typeof value === "function")) return;
82
+ snapshot.push(key, value);
83
+ }
84
+ return snapshot;
85
+ }
86
+ function sameIntrinsicInputs(left, right) {
87
+ if (!left || !right || left.length !== right.length) return false;
88
+ for (let index = 0; index < left.length; index++) if (!Object.is(left[index], right[index])) return false;
89
+ return true;
90
+ }
91
+ function measureIntrinsicElement(element, constraints, service, options) {
92
+ const resolveService = bindCanvasMeasurementService(service);
93
+ return allocationMeasurement(element, (current) => measurePrimitiveInput(current, constraints, resolveService(), true, options));
94
+ }
95
+ function measureConstrainedIntrinsicElement(element, constraints, service, options) {
96
+ const resolveService = bindCanvasMeasurementService(service);
97
+ return allocationMeasurement(element, (current) => measurePrimitiveInput(current, constraints, resolveService(), false, options));
98
+ }
99
+ function measurePreparedLayoutElement(element, constraints, service, options, snapshot, receivers) {
100
+ declineUnrecordedAllocationMeasurement();
101
+ return measurePrimitiveInput(element, constraints, service, false, options, { snapshot, receivers });
102
+ }
103
+ const preparedBaselineOwners = /* @__PURE__ */ new WeakMap();
104
+ function setPreparedBaselineOwner(element, owner) {
105
+ const transaction = GLOBAL_STATE.renderTransaction;
106
+ const receiver = getPrimitiveReceiverToken(element);
107
+ const query = peekPreNormalizedStyle(element)?.query;
108
+ if (!transaction || !receiver || !query || !Number.isFinite(owner.width) || !Number.isFinite(owner.height) || query.basis.width !== owner.width || query.basis.height !== owner.height) return;
109
+ preparedBaselineOwners.set(element, { transaction, receiver, query, width: owner.width, height: owner.height });
110
+ }
111
+ function measureBaselineElement(element, allocation, service, options) {
112
+ const resolveService = bindCanvasMeasurementService(service);
113
+ const owner = preparedBaselineOwners.get(element);
114
+ const ownerValid = owner && owner.transaction === GLOBAL_STATE.renderTransaction && owner.receiver === getPrimitiveReceiverToken(element) && owner.query === peekPreNormalizedStyle(element)?.query;
115
+ const ownerBox = ownerValid ? { x: 0, y: 0, width: owner.width, height: owner.height } : void 0;
116
+ return allocationMeasurement(element, (current) => {
117
+ if (ownerBox) setPreparedBaselineOwner(current, ownerBox);
118
+ return measureBaselineElementUncached(current, allocation, resolveService(), options);
119
+ }, true);
120
+ }
121
+ function measureBaselineElementUncached(element, allocation, service, options) {
122
+ if (!options && !peekPreNormalizedStyle(element)?.query) {
123
+ const mode = getStyleMeasurementMode() ? "recursive" : GLOBAL_STATE.componentRefs ? "mounted-intrinsic" : "standalone-root";
124
+ return exactDirectMeasurement(
125
+ element,
126
+ service,
127
+ ["baseline", mode, allocation.width, allocation.height],
128
+ () => measureBaselineElementWithCache(element, allocation, service)
129
+ );
130
+ }
131
+ return measureBaselineElementWithCache(element, allocation, service, options);
132
+ }
133
+ function measureBaselineElementWithCache(element, allocation, service, options) {
134
+ const transaction = GLOBAL_STATE.renderTransaction;
135
+ const receiver = getPrimitiveReceiverToken(element);
136
+ const mode = getStyleMeasurementMode() ? "recursive" : GLOBAL_STATE.componentRefs ? "mounted-intrinsic" : "standalone-root";
137
+ const key = `baseline:${options?.key ?? ""}`;
138
+ const constraints = {
139
+ minWidth: allocation.width,
140
+ maxWidth: allocation.width,
141
+ minHeight: allocation.height,
142
+ maxHeight: allocation.height
143
+ };
144
+ return withSignalWriteForbidden("Signal writes are forbidden during Pibbl measurement", () => withReceiverInputProvision(transaction, receiver, () => withSignalDependencyRole("measurement", () => {
145
+ const source = options?.source ?? element;
146
+ let inputSnapshot = intrinsicInputSnapshot(element);
147
+ if (source !== element) {
148
+ const sourceSnapshot = intrinsicInputSnapshot(source);
149
+ if (!sourceSnapshot || !inputSnapshot) inputSnapshot = void 0;
150
+ else {
151
+ sourceSnapshot.push(source.type, source.key, element.type, element.key, inputSnapshot.length);
152
+ for (let index = 0; index < inputSnapshot.length; index++) sourceSnapshot.push(inputSnapshot[index]);
153
+ inputSnapshot = sourceSnapshot;
154
+ }
155
+ }
156
+ let receivers = transaction && intrinsicTransactions.get(transaction);
157
+ let entries = options && receivers?.get(options.token);
158
+ let entry = options && (entries?.get(key) ?? options.cache.readPrimitiveMeasurement(options.token, key));
159
+ if (!entry || !measurementDependenciesUnchanged(entry) || entry.mode !== "baseline" || entry.props !== source.props || !sameIntrinsicInputs(entry.inputSnapshot, inputSnapshot)) {
160
+ options?.recordMeasurement();
161
+ const dependencies = [];
162
+ const addDependency = (node) => {
163
+ if (!dependencies.includes(node)) dependencies.push(node);
164
+ };
165
+ const result = observeReceiverInputReads(addDependency, () => withSignalTracking({ addDependency }, () => withStyleMeasurement(mode, () => withIsolatedRenderState(
166
+ () => measureBaselineInput(element, allocation, constraints, service)
167
+ ))));
168
+ entry = { props: source.props, key, result, mode: "baseline", dependencies, dependencyVersions: measurementDependencyVersions(dependencies), inputSnapshot };
169
+ if (options && transaction && inputSnapshot && result.status === "measured") {
170
+ if (!receivers) {
171
+ receivers = /* @__PURE__ */ new WeakMap();
172
+ intrinsicTransactions.set(transaction, receivers);
173
+ }
174
+ if (!entries) {
175
+ entries = /* @__PURE__ */ new Map();
176
+ receivers.set(options.token, entries);
177
+ }
178
+ entries.set(key, entry);
179
+ const snapshot = entry;
180
+ transaction.onFinish((success) => {
181
+ if (success) options.cache.writePrimitiveMeasurement(options.token, snapshot);
182
+ });
183
+ }
184
+ }
185
+ for (const node of entry.dependencies) trackSignalDependency(node, "measurement");
186
+ return entry.result;
187
+ })));
31
188
  }
32
- function measureElementInternal(element, constraints, service, context) {
189
+ function measureBaselineInput(original, allocation, constraints, service) {
190
+ const element = prepareElementPolicies(original, "measureBaselines");
191
+ recordLayoutMeasurement();
192
+ const definition = getPrimitiveDefinition(element.type);
193
+ const component = element.type.name || "Anonymous";
194
+ if (isLayoutComponent(element.type)) {
195
+ return { status: "unsupported", reason: "baseline providers currently require a direct custom primitive" };
196
+ }
197
+ if (!definition?.measureBaselines) {
198
+ return { status: "unsupported", reason: `${component} does not provide baseline measurement` };
199
+ }
200
+ const preNormalized = takePreNormalizedStyle(element);
201
+ const preparedOwner = preparedBaselineOwners.get(element);
202
+ preparedBaselineOwners.delete(element);
203
+ if (preNormalized?.query && getStyleMeasurementMode() !== "standalone-root") {
204
+ const query = preNormalized.query;
205
+ if (getStyleMeasurementMode() !== "mounted-intrinsic" || !preparedOwner || preparedOwner.transaction !== GLOBAL_STATE.renderTransaction || preparedOwner.receiver !== getPrimitiveReceiverToken(element) || preparedOwner.query !== query || preparedOwner.width !== query.basis.width || preparedOwner.height !== query.basis.height) {
206
+ rejectResponsiveMeasurement(element);
207
+ }
208
+ }
209
+ const inputs = resolvePrimitiveInputs(element, definition, preNormalized, {
210
+ width: allocation.width,
211
+ height: allocation.height
212
+ });
213
+ const specifiedStyle = withoutSystemFilter(preNormalized?.style ?? inputs.style ?? EMPTY_STYLE);
214
+ let normalized = preNormalized ? specifiedStyle : definition.normalizeStyle ? definition.normalizeStyle(specifiedStyle) : specifiedStyle;
215
+ if (hasPercentageBoxPadding(normalized)) {
216
+ return { status: "unsupported", reason: "percentage padding requires an actual finite Flex owner allocation" };
217
+ }
218
+ if ("boxSizing" in normalized && normalized.boxSizing !== void 0) {
219
+ normalized = contentBoxStyle(normalized, {
220
+ width: allocation.width,
221
+ height: allocation.height,
222
+ context: { component, algorithm: "baseline measurement", constraints }
223
+ });
224
+ }
225
+ const previousReceiverToken = GLOBAL_STATE.primitiveReceiverToken;
226
+ GLOBAL_STATE.primitiveReceiverToken = getPrimitiveReceiverToken(element) ?? createPrimitiveReceiverToken();
227
+ try {
228
+ const result = definition.measureBaselines({
229
+ props: inputs.props,
230
+ style: normalized,
231
+ allocation: { x: 0, y: 0, width: allocation.width, height: allocation.height },
232
+ service
233
+ });
234
+ if (result.status === "unsupported") return result;
235
+ if (result.status !== "measured" || !Number.isFinite(result.first) || !Number.isFinite(result.last) || result.first > result.last) {
236
+ throw layoutDiagnostic({
237
+ component,
238
+ property: "measureBaselines",
239
+ value: result,
240
+ algorithm: "baseline measurement",
241
+ constraints,
242
+ reason: "first and last baselines must be finite with first not after last"
243
+ });
244
+ }
245
+ return { status: "measured", first: result.first, last: result.last };
246
+ } catch (error) {
247
+ if (error instanceof UnsupportedResponsiveMeasurement) return { status: "unsupported", reason: error.message };
248
+ throw error;
249
+ } finally {
250
+ GLOBAL_STATE.primitiveReceiverToken = previousReceiverToken;
251
+ }
252
+ }
253
+ function measurePrimitiveInput(element, constraints, service, intrinsic, options, prepared) {
254
+ const transaction = GLOBAL_STATE.renderTransaction;
255
+ const receiver = getPrimitiveReceiverToken(element);
256
+ const context = { active: /* @__PURE__ */ new Set(), stack: [] };
257
+ const mode = getStyleMeasurementMode() ? "recursive" : GLOBAL_STATE.componentRefs ? "mounted-intrinsic" : "standalone-root";
258
+ const key = `${intrinsic ? "intrinsic" : "finite"}:${options?.key ?? ""}`;
259
+ const owner = GLOBAL_STATE.currentPibblInstance?.interactionRoot ?? GLOBAL_STATE.currentPibblInstance;
260
+ return withSignalWriteForbidden("Signal writes are forbidden during Pibbl measurement", () => withMeasurementLayoutOwner(owner, () => withReceiverInputProvision(transaction, receiver, () => withSignalDependencyRole("measurement", () => {
261
+ const inputSnapshot = prepared?.snapshot ?? intrinsicInputSnapshot(element);
262
+ let receivers = transaction && intrinsicTransactions.get(transaction);
263
+ let entries = options && receivers?.get(options.token);
264
+ let entry = options && (entries?.get(key) ?? options.cache.readPrimitiveMeasurement(options.token, key));
265
+ const entryMode = intrinsic ? "intrinsic" : "finite";
266
+ if (!entry || !measurementDependenciesUnchanged(entry) || entry.mode !== entryMode || entry.props !== element.props || !sameIntrinsicInputs(entry.inputSnapshot, inputSnapshot) || prepared && entry.receiverReceipts === void 0) {
267
+ options?.recordMeasurement();
268
+ const dependencies = [];
269
+ const receiverDependencies = [];
270
+ let untracedReceiverReads = false;
271
+ const trace = prepared ? {
272
+ cacheable: true,
273
+ receipts: [],
274
+ receivers: prepared.receivers
275
+ } : void 0;
276
+ const evaluate = () => withStyleMeasurement(mode, () => withIsolatedRenderState(
277
+ () => intrinsic ? measureElementInternal(element, constraints, service, context, true) : measureElementInternal(element, constraints, service, context, false, true)
278
+ ));
279
+ const addDependency = (node) => {
280
+ if (!dependencies.includes(node)) dependencies.push(node);
281
+ if (!receiverDependencies.includes(node)) receiverDependencies.push(node);
282
+ };
283
+ const result = observeReceiverInputReads((node, _roles, inputReceiver) => {
284
+ if (!dependencies.includes(node)) dependencies.push(node);
285
+ if (inputReceiver === receiver && !receiverDependencies.includes(node)) receiverDependencies.push(node);
286
+ if (inputReceiver !== receiver && !trace) untracedReceiverReads = true;
287
+ }, () => withSignalTracking({ addDependency }, () => trace ? withConstrainedMeasurementTrace(trace, evaluate) : evaluate()));
288
+ entry = {
289
+ props: element.props,
290
+ key,
291
+ result,
292
+ mode: entryMode,
293
+ dependencies,
294
+ receiverDependencies,
295
+ dependencyVersions: measurementDependencyVersions(dependencies),
296
+ inputSnapshot,
297
+ ...trace?.cacheable ? { receiverReceipts: trace.receipts } : {}
298
+ };
299
+ if (options && transaction && inputSnapshot && result.status === "measured" && !untracedReceiverReads && (!trace || trace.cacheable)) {
300
+ if (!receivers) {
301
+ receivers = /* @__PURE__ */ new WeakMap();
302
+ intrinsicTransactions.set(transaction, receivers);
303
+ }
304
+ if (!entries) {
305
+ entries = /* @__PURE__ */ new Map();
306
+ receivers.set(options.token, entries);
307
+ }
308
+ entries.set(key, entry);
309
+ const snapshot = entry;
310
+ transaction.onFinish((success) => {
311
+ if (success) options.cache.writePrimitiveMeasurement(options.token, snapshot);
312
+ });
313
+ }
314
+ }
315
+ if (prepared && entry.receiverReceipts) {
316
+ for (let index = 0; index < entry.receiverReceipts.length; index++) {
317
+ const captured = entry.receiverReceipts[index];
318
+ replayReceiverInputProvision(transaction, prepared.receivers[captured.childIndex], captured.receipt);
319
+ }
320
+ }
321
+ for (const node of entry.receiverDependencies ?? entry.dependencies) trackSignalDependency(node, "measurement");
322
+ return entry.result;
323
+ }))));
324
+ }
325
+ let constrainedChildContext;
326
+ let constrainedChildService;
327
+ let constrainedMeasurementTrace;
328
+ function withConstrainedMeasurementTrace(trace, work) {
329
+ const previous = constrainedMeasurementTrace;
330
+ constrainedMeasurementTrace = trace;
331
+ try {
332
+ return work();
333
+ } finally {
334
+ constrainedMeasurementTrace = previous;
335
+ }
336
+ }
337
+ const exactDirectDemands = /* @__PURE__ */ new WeakMap();
338
+ function exactDirectMeasurement(element, service, key, run, allowHit = true) {
339
+ const transaction = GLOBAL_STATE.renderTransaction, receiver = getPrimitiveReceiverToken(element);
340
+ if (!transaction || !receiver || Object.hasOwn(element.props, "children") || isLayoutComponent(element.type)) return run();
341
+ const inputs = peekPreNormalizedStyle(element) ? intrinsicInputSnapshot(element) : void 0;
342
+ const demands = exactDirectDemands.get(transaction), prior = demands?.get(receiver);
343
+ if (allowHit && inputs && prior && prior.type === element.type && sameCanvasMeasurementService(prior.service, service) && sameIntrinsicInputs(prior.key, key) && sameIntrinsicInputs(prior.inputs, inputs) && measurementDependenciesUnchanged(prior)) {
344
+ takePreNormalizedStyle(element);
345
+ replayReceiverInputProvision(transaction, receiver, prior.receipt);
346
+ return prior.result;
347
+ }
348
+ let direct = true;
349
+ const receipt = [];
350
+ const replayRevision = allocationQueryReplayRevision(), volatility = allocationQueryVolatilityRevision();
351
+ const captured = observeReceiverInputReads((node, roles, owner) => {
352
+ if (owner !== receiver) {
353
+ direct = false;
354
+ return;
355
+ }
356
+ const existing = receipt.find((entry) => entry.node === node);
357
+ if (existing) existing.roles |= roles;
358
+ else receipt.push({ node, roles });
359
+ }, () => captureReceiverInputProvision(transaction, receiver, run));
360
+ if (inputs && direct && replayRevision === allocationQueryReplayRevision() && volatility === allocationQueryVolatilityRevision() && captured.receipt && captured.value.status === "measured") {
361
+ let current = demands;
362
+ if (!current) {
363
+ current = /* @__PURE__ */ new WeakMap();
364
+ exactDirectDemands.set(transaction, current);
365
+ transaction.onFinish(() => exactDirectDemands.delete(transaction));
366
+ }
367
+ const dependencies = receipt.map((entry) => entry.node);
368
+ current.set(receiver, {
369
+ type: element.type,
370
+ service,
371
+ key,
372
+ inputs,
373
+ receipt,
374
+ dependencies,
375
+ dependencyVersions: measurementDependencyVersions(dependencies),
376
+ result: captured.value
377
+ });
378
+ }
379
+ return captured.value;
380
+ }
381
+ function measureConstrainedLayoutChild(element, constraints, childIndex) {
382
+ const context = constrainedChildContext, service = constrainedChildService;
383
+ if (!context || !service) throw new Error("Constrained structural measurement requires an active provider measurement.");
384
+ const transaction = GLOBAL_STATE.renderTransaction;
385
+ const receiver = getPrimitiveReceiverToken(element);
386
+ const trace = constrainedMeasurementTrace;
387
+ const run = () => withSignalDependencyRole("measurement", () => measureElementInternal(element, constraints, service, context, false, true));
388
+ if (transaction && receiver && childIndex === void 0 && !Object.hasOwn(element.props, "children") && !isLayoutComponent(element.type)) {
389
+ if (trace) trace.cacheable = false;
390
+ const metadata = getElementMetadata(element);
391
+ const source = metadata?.policyPreparationSource ?? metadata?.layoutDescriptionSource ?? peekPreNormalizedStyle(element)?.source ?? element;
392
+ return exactDirectMeasurement(
393
+ element,
394
+ service,
395
+ ["size", getStyleMeasurementMode(), constraints.minWidth, constraints.maxWidth, constraints.minHeight, constraints.maxHeight],
396
+ run,
397
+ !context.active.has(source)
398
+ );
399
+ }
400
+ if (!trace) return withReceiverInputProvision(transaction, receiver, run);
401
+ if (childIndex === void 0 || trace.receivers[childIndex] !== receiver) {
402
+ trace.cacheable = false;
403
+ return withReceiverInputProvision(transaction, receiver, run);
404
+ }
405
+ const captured = captureReceiverInputProvision(transaction, receiver, run);
406
+ if (captured.receipt === void 0) trace.cacheable = false;
407
+ else trace.receipts.push({ childIndex, receipt: captured.receipt });
408
+ return captured.value;
409
+ }
410
+ function measureElementInternal(element, constraints, service, context, intrinsic = false, providerInputs = false) {
33
411
  element = prepareElementPolicies(element, "measureElement");
34
412
  recordLayoutMeasurement();
35
413
  const type = element.type;
36
414
  const definition = getPrimitiveDefinition(type);
37
415
  const component = type.name || "Anonymous";
38
416
  const preNormalized = takePreNormalizedStyle(element);
39
- const source = getPolicyPreparationSource(element) ?? preNormalized?.source ?? element;
417
+ const metadata = getElementMetadata(element);
418
+ const source = metadata?.policyPreparationSource ?? metadata?.layoutDescriptionSource ?? preNormalized?.source ?? element;
40
419
  if (context.active.has(source)) {
41
420
  throw layoutDiagnostic({
42
421
  component,
@@ -47,10 +426,21 @@ function measureElementInternal(element, constraints, service, context) {
47
426
  reason: "cyclic measurement dependency is not supported"
48
427
  });
49
428
  }
50
- if (!definition?.measure) {
429
+ if (isLayoutComponent(type)) {
430
+ context.active.add(source);
431
+ context.stack.push(element);
432
+ try {
433
+ const root = placedLayoutComponentRoot(element, preNormalized);
434
+ return withReceiverInputProvision(GLOBAL_STATE.renderTransaction, getPrimitiveReceiverToken(root), () => intrinsic ? measureElementInternal(root, constraints, service, context, true) : measureElementInternal(root, constraints, service, context, false, providerInputs));
435
+ } finally {
436
+ context.stack.pop();
437
+ context.active.delete(source);
438
+ }
439
+ }
440
+ if (intrinsic ? !definition?.measureIntrinsic : !definition?.measure) {
51
441
  return {
52
442
  status: "unsupported",
53
- reason: `${component} does not provide measurement`
443
+ reason: `${component} does not provide ${intrinsic ? "intrinsic measurement" : "measurement"}`
54
444
  };
55
445
  }
56
446
  context.active.add(source);
@@ -59,29 +449,62 @@ function measureElementInternal(element, constraints, service, context) {
59
449
  if (preNormalized?.query && getStyleMeasurementMode() !== "standalone-root") {
60
450
  rejectResponsiveMeasurement(element);
61
451
  }
62
- const inputs = untracked(() => resolvePrimitiveInputs(element, definition, preNormalized, {
452
+ const readInputs = () => resolvePrimitiveInputs(element, definition, preNormalized, {
63
453
  width: constraints.maxWidth,
64
454
  height: constraints.maxHeight
65
- }));
455
+ });
456
+ const inputs = intrinsic || providerInputs ? readInputs() : untracked(readInputs);
66
457
  const specifiedStyle = withoutSystemFilter(
67
458
  preNormalized?.style ?? inputs.style ?? EMPTY_STYLE
68
459
  );
69
- const normalized = preNormalized ? specifiedStyle : definition.normalizeStyle ? definition.normalizeStyle(specifiedStyle) : specifiedStyle;
460
+ let normalized = preNormalized ? specifiedStyle : definition.normalizeStyle ? definition.normalizeStyle(specifiedStyle) : specifiedStyle;
461
+ if (hasPercentageBoxPadding(normalized)) return { status: "unsupported", reason: "percentage padding requires an actual finite Flex owner allocation" };
462
+ if ("boxSizing" in normalized && normalized.boxSizing !== void 0) normalized = contentBoxStyle(normalized, { width: constraints.maxWidth, height: constraints.maxHeight, context: { component, algorithm: "measurement", constraints } });
70
463
  const previousReceiverToken = GLOBAL_STATE.primitiveReceiverToken;
71
464
  GLOBAL_STATE.primitiveReceiverToken = getPrimitiveReceiverToken(element) ?? createPrimitiveReceiverToken();
72
465
  let result;
466
+ const previousConstrainedChildContext = constrainedChildContext;
467
+ const previousConstrainedChildService = constrainedChildService;
468
+ if (!intrinsic) {
469
+ constrainedChildContext = context;
470
+ constrainedChildService = service;
471
+ }
73
472
  try {
74
- result = withStyleMeasurement("recursive", () => definition.measure({
473
+ result = withStyleMeasurement("recursive", () => intrinsic ? definition.measureIntrinsic({
474
+ props: inputs.props,
475
+ style: normalized,
476
+ service,
477
+ constraints: {
478
+ width: Number.isFinite(constraints.maxWidth) ? { kind: "bounded", min: constraints.minWidth, max: constraints.maxWidth } : { kind: "unbounded", min: constraints.minWidth },
479
+ height: Number.isFinite(constraints.maxHeight) ? { kind: "bounded", min: constraints.minHeight, max: constraints.maxHeight } : { kind: "unbounded", min: constraints.minHeight }
480
+ }
481
+ }) : definition.measure({
75
482
  props: inputs.props,
76
483
  style: normalized,
77
484
  constraints,
78
485
  service,
79
- measureElement: (child, childConstraints) => measureElementInternal(child, childConstraints, service, context)
486
+ measureElement: (child, childConstraints) => {
487
+ if (constrainedMeasurementTrace) constrainedMeasurementTrace.cacheable = false;
488
+ const receiver = getPrimitiveReceiverToken(child);
489
+ const prepared = peekPreNormalizedStyle(child);
490
+ if (!receiver || !prepared) declineUntracedAllocationQuery();
491
+ return receiver ? withReceiverInputProvision(GLOBAL_STATE.renderTransaction, receiver, () => withSignalDependencyRole("measurement", () => measureElementInternal(child, childConstraints, service, context, false, !!prepared))) : measureElementInternal(child, childConstraints, service, context);
492
+ }
80
493
  }));
81
494
  } finally {
495
+ constrainedChildContext = previousConstrainedChildContext;
496
+ constrainedChildService = previousConstrainedChildService;
82
497
  GLOBAL_STATE.primitiveReceiverToken = previousReceiverToken;
83
498
  }
84
499
  if (result.status === "unsupported") return result;
500
+ if ("minContent" in result) {
501
+ validateMeasuredSize(result.minContent.width, "minContent.width", component, constraints);
502
+ validateMeasuredSize(result.minContent.height, "minContent.height", component, constraints);
503
+ validateMeasuredSize(result.maxContent.width, "maxContent.width", component, constraints);
504
+ validateMeasuredSize(result.maxContent.height, "maxContent.height", component, constraints);
505
+ if (result.minContent.width > result.maxContent.width) throw layoutDiagnostic({ component, property: "measureIntrinsic", value: result, algorithm: "measurement", constraints, reason: "min-content width must not exceed max-content width" });
506
+ return result;
507
+ }
85
508
  validateMeasuredSize(result.size.width, "width", component, constraints);
86
509
  validateMeasuredSize(result.size.height, "height", component, constraints);
87
510
  return result;
@@ -96,6 +519,7 @@ function measureElementInternal(element, constraints, service, context) {
96
519
  }
97
520
  }
98
521
  function withIsolatedRenderState(work) {
522
+ const previousAllocationOwner = setAllocationOwner(allocationOwner());
99
523
  const snapshot = {
100
524
  currentPibblInstance: GLOBAL_STATE.currentPibblInstance,
101
525
  componentRefs: GLOBAL_STATE.componentRefs,
@@ -124,6 +548,7 @@ function withIsolatedRenderState(work) {
124
548
  return work();
125
549
  } finally {
126
550
  Object.assign(GLOBAL_STATE, snapshot);
551
+ setAllocationOwner(previousAllocationOwner);
127
552
  }
128
553
  }
129
554
  function validateMeasuredSize(value, property, component, constraints) {
@@ -139,6 +564,14 @@ function validateMeasuredSize(value, property, component, constraints) {
139
564
  }
140
565
  }
141
566
  export {
142
- measureElement
567
+ measureBaselineElement,
568
+ measureConstrainedIntrinsicElement,
569
+ measureConstrainedLayoutChild,
570
+ measureElement,
571
+ measureIntrinsicElement,
572
+ measurePreparedLayoutElement,
573
+ setPreparedBaselineOwner,
574
+ withConstrainedMeasurementTrace,
575
+ withIsolatedRenderState
143
576
  };
144
577
  //# sourceMappingURL=measure.js.map