@pibbl/core 0.0.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 (1069) hide show
  1. package/LICENSE.txt +19 -0
  2. package/README.md +76 -0
  3. package/THIRD_PARTY_NOTICES.txt +205 -0
  4. package/dist/features/particles/index.d.ts +7 -0
  5. package/dist/features/particles/index.js +26 -0
  6. package/dist/features/particles/index.js.map +7 -0
  7. package/dist/features/particles/index.mjs +1 -0
  8. package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
  9. package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
  10. package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
  11. package/dist/features/particles/lib/canvas/component.d.ts +14 -0
  12. package/dist/features/particles/lib/canvas/component.js +249 -0
  13. package/dist/features/particles/lib/canvas/component.js.map +7 -0
  14. package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
  15. package/dist/features/particles/lib/canvas/executor.js +537 -0
  16. package/dist/features/particles/lib/canvas/executor.js.map +7 -0
  17. package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
  18. package/dist/features/particles/lib/canvas/primitive.js +50 -0
  19. package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
  20. package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
  21. package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
  22. package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
  23. package/dist/features/particles/lib/color.d.ts +7 -0
  24. package/dist/features/particles/lib/color.js +159 -0
  25. package/dist/features/particles/lib/color.js.map +7 -0
  26. package/dist/features/particles/lib/compiler.d.ts +134 -0
  27. package/dist/features/particles/lib/compiler.js +443 -0
  28. package/dist/features/particles/lib/compiler.js.map +7 -0
  29. package/dist/features/particles/lib/curve.d.ts +19 -0
  30. package/dist/features/particles/lib/curve.js +129 -0
  31. package/dist/features/particles/lib/curve.js.map +7 -0
  32. package/dist/features/particles/lib/definition-records.d.ts +58 -0
  33. package/dist/features/particles/lib/definition-records.js +500 -0
  34. package/dist/features/particles/lib/definition-records.js.map +7 -0
  35. package/dist/features/particles/lib/definition.d.ts +18 -0
  36. package/dist/features/particles/lib/definition.js +602 -0
  37. package/dist/features/particles/lib/definition.js.map +7 -0
  38. package/dist/features/particles/lib/emission.d.ts +54 -0
  39. package/dist/features/particles/lib/emission.js +184 -0
  40. package/dist/features/particles/lib/emission.js.map +7 -0
  41. package/dist/features/particles/lib/flow/field.d.ts +81 -0
  42. package/dist/features/particles/lib/flow/field.js +585 -0
  43. package/dist/features/particles/lib/flow/field.js.map +7 -0
  44. package/dist/features/particles/lib/flow/hook.d.ts +158 -0
  45. package/dist/features/particles/lib/flow/hook.js +215 -0
  46. package/dist/features/particles/lib/flow/hook.js.map +7 -0
  47. package/dist/features/particles/lib/flow/population.d.ts +25 -0
  48. package/dist/features/particles/lib/flow/population.js +104 -0
  49. package/dist/features/particles/lib/flow/population.js.map +7 -0
  50. package/dist/features/particles/lib/particle.d.ts +113 -0
  51. package/dist/features/particles/lib/particle.js +192 -0
  52. package/dist/features/particles/lib/particle.js.map +7 -0
  53. package/dist/features/particles/lib/random.d.ts +16 -0
  54. package/dist/features/particles/lib/random.js +61 -0
  55. package/dist/features/particles/lib/random.js.map +7 -0
  56. package/dist/features/particles/lib/sample.d.ts +32 -0
  57. package/dist/features/particles/lib/sample.js +397 -0
  58. package/dist/features/particles/lib/sample.js.map +7 -0
  59. package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
  60. package/dist/features/particles/lib/signal-inputs.js +41 -0
  61. package/dist/features/particles/lib/signal-inputs.js.map +7 -0
  62. package/dist/features/particles/lib/system/binding.d.ts +59 -0
  63. package/dist/features/particles/lib/system/binding.js +122 -0
  64. package/dist/features/particles/lib/system/binding.js.map +7 -0
  65. package/dist/features/particles/lib/system/controller.d.ts +58 -0
  66. package/dist/features/particles/lib/system/controller.js +1446 -0
  67. package/dist/features/particles/lib/system/controller.js.map +7 -0
  68. package/dist/features/particles/lib/system/hook.d.ts +13 -0
  69. package/dist/features/particles/lib/system/hook.js +52 -0
  70. package/dist/features/particles/lib/system/hook.js.map +7 -0
  71. package/dist/features/particles/lib/system/ownership.d.ts +26 -0
  72. package/dist/features/particles/lib/system/ownership.js +128 -0
  73. package/dist/features/particles/lib/system/ownership.js.map +7 -0
  74. package/dist/features/particles/lib/types.d.ts +983 -0
  75. package/dist/features/physics/2d-geometry.d.ts +216 -0
  76. package/dist/features/physics/2d-geometry.js +59 -0
  77. package/dist/features/physics/2d-geometry.js.map +7 -0
  78. package/dist/features/physics/2d-geometry.mjs +1 -0
  79. package/dist/features/physics/2d-testing.d.ts +80 -0
  80. package/dist/features/physics/2d-testing.js +141 -0
  81. package/dist/features/physics/2d-testing.js.map +7 -0
  82. package/dist/features/physics/2d-testing.mjs +1 -0
  83. package/dist/features/physics/2d.d.ts +165 -0
  84. package/dist/features/physics/2d.js +119 -0
  85. package/dist/features/physics/2d.js.map +7 -0
  86. package/dist/features/physics/2d.mjs +1 -0
  87. package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
  88. package/dist/features/physics/lib/2d/canvas/components.js +212 -0
  89. package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
  90. package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
  91. package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
  92. package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
  93. package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
  94. package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
  95. package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
  96. package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
  97. package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
  98. package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
  99. package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
  100. package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
  101. package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
  102. package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
  103. package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
  104. package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
  105. package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
  106. package/dist/features/physics/lib/2d/collision/casts.js +631 -0
  107. package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
  108. package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
  109. package/dist/features/physics/lib/2d/collision/epa.js +102 -0
  110. package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
  111. package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
  112. package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
  113. package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
  114. package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
  115. package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
  116. package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
  117. package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
  118. package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
  119. package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
  120. package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
  121. package/dist/features/physics/lib/2d/collision/support.js +155 -0
  122. package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
  123. package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
  124. package/dist/features/physics/lib/2d/math.d.ts +27 -0
  125. package/dist/features/physics/lib/2d/math.js +314 -0
  126. package/dist/features/physics/lib/2d/math.js.map +7 -0
  127. package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
  128. package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
  129. package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
  130. package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
  131. package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
  132. package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
  133. package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
  134. package/dist/features/physics/lib/2d/runtime/context.js +57 -0
  135. package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
  136. package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
  137. package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
  138. package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
  139. package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
  140. package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
  141. package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
  142. package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
  143. package/dist/features/physics/lib/2d/runtime/events.js +153 -0
  144. package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
  145. package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
  146. package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
  147. package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
  148. package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
  149. package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
  150. package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
  151. package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
  152. package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
  153. package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
  154. package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
  155. package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
  156. package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
  157. package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
  158. package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
  159. package/dist/features/physics/lib/2d/shape-records.js +26 -0
  160. package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
  161. package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
  162. package/dist/features/physics/lib/2d/shapes.js +543 -0
  163. package/dist/features/physics/lib/2d/shapes.js.map +7 -0
  164. package/dist/features/physics/lib/2d/types.d.ts +713 -0
  165. package/dist/features/physics/lib/2d/types.js +1 -0
  166. package/dist/features/physics/lib/2d/types.js.map +7 -0
  167. package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
  168. package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
  169. package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
  170. package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
  171. package/dist/features/physics/lib/2d/world/ccd.js +265 -0
  172. package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
  173. package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
  174. package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
  175. package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
  176. package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
  177. package/dist/features/physics/lib/2d/world/integrator.js +99 -0
  178. package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
  179. package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
  180. package/dist/features/physics/lib/2d/world/queries.js +424 -0
  181. package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
  182. package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
  183. package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
  184. package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
  185. package/dist/features/physics/lib/2d/world/rapier.js +655 -0
  186. package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
  187. package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
  188. package/dist/features/physics/lib/2d/world/solver.js +660 -0
  189. package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
  190. package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
  191. package/dist/features/physics/lib/2d/world/storage.js +371 -0
  192. package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
  193. package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
  194. package/dist/features/physics/lib/2d/world/world.js +1713 -0
  195. package/dist/features/physics/lib/2d/world/world.js.map +7 -0
  196. package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
  197. package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
  198. package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
  199. package/dist/features/physics/lib/shared/validation.d.ts +5 -0
  200. package/dist/features/physics/lib/shared/validation.js +48 -0
  201. package/dist/features/physics/lib/shared/validation.js.map +7 -0
  202. package/dist/features/sprites/formats/aseprite.js +23 -0
  203. package/dist/features/sprites/formats/aseprite.js.map +7 -0
  204. package/dist/features/sprites/formats/aseprite.mjs +1 -0
  205. package/dist/features/sprites/formats/texture-packer.js +14 -0
  206. package/dist/features/sprites/formats/texture-packer.js.map +7 -0
  207. package/dist/features/sprites/formats/texture-packer.mjs +1 -0
  208. package/dist/features/sprites/index.js +9 -0
  209. package/dist/features/sprites/index.js.map +7 -0
  210. package/dist/features/sprites/index.mjs +1 -0
  211. package/dist/features/sprites/loader.js +63 -0
  212. package/dist/features/sprites/loader.js.map +7 -0
  213. package/dist/features/sprites/model.js +64 -0
  214. package/dist/features/sprites/model.js.map +7 -0
  215. package/dist/features/sprites/sprite.js +31 -0
  216. package/dist/features/sprites/sprite.js.map +7 -0
  217. package/dist/features/textures/index.d.ts +22 -0
  218. package/dist/features/textures/index.js +31 -0
  219. package/dist/features/textures/index.js.map +7 -0
  220. package/dist/features/textures/index.mjs +1 -0
  221. package/dist/features/textures/lib/definitions.d.ts +117 -0
  222. package/dist/features/textures/lib/definitions.js +179 -0
  223. package/dist/features/textures/lib/definitions.js.map +7 -0
  224. package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
  225. package/dist/features/textures/lib/electric-boundary.js +11 -0
  226. package/dist/features/textures/lib/electric-boundary.js.map +7 -0
  227. package/dist/features/textures/lib/electric-shared.d.ts +69 -0
  228. package/dist/features/textures/lib/electric-shared.js +43 -0
  229. package/dist/features/textures/lib/electric-shared.js.map +7 -0
  230. package/dist/features/textures/lib/electric-sources.d.ts +50 -0
  231. package/dist/features/textures/lib/electric-sources.js +43 -0
  232. package/dist/features/textures/lib/electric-sources.js.map +7 -0
  233. package/dist/features/textures/lib/lightning.d.ts +72 -0
  234. package/dist/features/textures/lib/lightning.js +139 -0
  235. package/dist/features/textures/lib/lightning.js.map +7 -0
  236. package/dist/features/textures/lib/material-field.d.ts +12 -0
  237. package/dist/features/textures/lib/material-field.js +31 -0
  238. package/dist/features/textures/lib/material-field.js.map +7 -0
  239. package/dist/features/textures/lib/palette.d.ts +45 -0
  240. package/dist/features/textures/lib/palette.js +52 -0
  241. package/dist/features/textures/lib/palette.js.map +7 -0
  242. package/dist/features/textures/lib/presentation.d.ts +54 -0
  243. package/dist/features/textures/lib/presentation.js +83 -0
  244. package/dist/features/textures/lib/presentation.js.map +7 -0
  245. package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
  246. package/dist/features/textures/lib/procedural-texture.js +110 -0
  247. package/dist/features/textures/lib/procedural-texture.js.map +7 -0
  248. package/dist/features/textures/lib/rain-drops.d.ts +96 -0
  249. package/dist/features/textures/lib/rain-drops.js +322 -0
  250. package/dist/features/textures/lib/rain-drops.js.map +7 -0
  251. package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
  252. package/dist/features/textures/lib/reaction-diffusion.js +210 -0
  253. package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
  254. package/dist/features/textures/lib/simulation.d.ts +16 -0
  255. package/dist/features/textures/lib/simulation.js +85 -0
  256. package/dist/features/textures/lib/simulation.js.map +7 -0
  257. package/dist/features/textures/lib/tendrils.d.ts +57 -0
  258. package/dist/features/textures/lib/tendrils.js +216 -0
  259. package/dist/features/textures/lib/tendrils.js.map +7 -0
  260. package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
  261. package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
  262. package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
  263. package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
  264. package/dist/features/textures/lib/wasm/electric.js +299 -0
  265. package/dist/features/textures/lib/wasm/electric.js.map +7 -0
  266. package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
  267. package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
  268. package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
  269. package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
  270. package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
  271. package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
  272. package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
  273. package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
  274. package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
  275. package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
  276. package/dist/features/textures/lib/wasm/memory.js +103 -0
  277. package/dist/features/textures/lib/wasm/memory.js.map +7 -0
  278. package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
  279. package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
  280. package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
  281. package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
  282. package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
  283. package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
  284. package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
  285. package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
  286. package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
  287. package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
  288. package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
  289. package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
  290. package/dist/features/textures/lib/water-surface.d.ts +92 -0
  291. package/dist/features/textures/lib/water-surface.js +378 -0
  292. package/dist/features/textures/lib/water-surface.js.map +7 -0
  293. package/dist/features/textures/lib/water-waves.d.ts +60 -0
  294. package/dist/features/textures/lib/water-waves.js +154 -0
  295. package/dist/features/textures/lib/water-waves.js.map +7 -0
  296. package/dist/features/viz/index.d.ts +28 -0
  297. package/dist/features/viz/index.js +45 -0
  298. package/dist/features/viz/index.js.map +7 -0
  299. package/dist/features/viz/index.mjs +1 -0
  300. package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
  301. package/dist/features/viz/lib/anchored-layout.js +166 -0
  302. package/dist/features/viz/lib/anchored-layout.js.map +7 -0
  303. package/dist/features/viz/lib/axis.d.ts +10 -0
  304. package/dist/features/viz/lib/axis.js +116 -0
  305. package/dist/features/viz/lib/axis.js.map +7 -0
  306. package/dist/features/viz/lib/band-scale.d.ts +3 -0
  307. package/dist/features/viz/lib/band-scale.js +57 -0
  308. package/dist/features/viz/lib/band-scale.js.map +7 -0
  309. package/dist/features/viz/lib/bar-fill.d.ts +16 -0
  310. package/dist/features/viz/lib/bar-fill.js +53 -0
  311. package/dist/features/viz/lib/bar-fill.js.map +7 -0
  312. package/dist/features/viz/lib/bar-series.d.ts +150 -0
  313. package/dist/features/viz/lib/bar-series.js +152 -0
  314. package/dist/features/viz/lib/bar-series.js.map +7 -0
  315. package/dist/features/viz/lib/hover-card.d.ts +92 -0
  316. package/dist/features/viz/lib/hover-card.js +146 -0
  317. package/dist/features/viz/lib/hover-card.js.map +7 -0
  318. package/dist/features/viz/lib/hover-data.d.ts +12 -0
  319. package/dist/features/viz/lib/hover-data.js +50 -0
  320. package/dist/features/viz/lib/hover-data.js.map +7 -0
  321. package/dist/features/viz/lib/hover-placement.d.ts +46 -0
  322. package/dist/features/viz/lib/hover-placement.js +51 -0
  323. package/dist/features/viz/lib/hover-placement.js.map +7 -0
  324. package/dist/features/viz/lib/hover-queries.d.ts +60 -0
  325. package/dist/features/viz/lib/hover-queries.js +185 -0
  326. package/dist/features/viz/lib/hover-queries.js.map +7 -0
  327. package/dist/features/viz/lib/hover-types.d.ts +277 -0
  328. package/dist/features/viz/lib/layout-pie.d.ts +13 -0
  329. package/dist/features/viz/lib/layout-pie.js +159 -0
  330. package/dist/features/viz/lib/layout-pie.js.map +7 -0
  331. package/dist/features/viz/lib/line-series.d.ts +11 -0
  332. package/dist/features/viz/lib/line-series.js +89 -0
  333. package/dist/features/viz/lib/line-series.js.map +7 -0
  334. package/dist/features/viz/lib/linear-scale.d.ts +3 -0
  335. package/dist/features/viz/lib/linear-scale.js +70 -0
  336. package/dist/features/viz/lib/linear-scale.js.map +7 -0
  337. package/dist/features/viz/lib/nearest.d.ts +82 -0
  338. package/dist/features/viz/lib/nearest.js +51 -0
  339. package/dist/features/viz/lib/nearest.js.map +7 -0
  340. package/dist/features/viz/lib/paint.d.ts +2 -0
  341. package/dist/features/viz/lib/paint.js +17 -0
  342. package/dist/features/viz/lib/paint.js.map +7 -0
  343. package/dist/features/viz/lib/pie-layout.d.ts +31 -0
  344. package/dist/features/viz/lib/pie-layout.js +324 -0
  345. package/dist/features/viz/lib/pie-layout.js.map +7 -0
  346. package/dist/features/viz/lib/pie-slices.d.ts +51 -0
  347. package/dist/features/viz/lib/pie-slices.js +50 -0
  348. package/dist/features/viz/lib/pie-slices.js.map +7 -0
  349. package/dist/features/viz/lib/pie-types.d.ts +215 -0
  350. package/dist/features/viz/lib/plot-series.d.ts +13 -0
  351. package/dist/features/viz/lib/plot-series.js +53 -0
  352. package/dist/features/viz/lib/plot-series.js.map +7 -0
  353. package/dist/features/viz/lib/plot-types.d.ts +63 -0
  354. package/dist/features/viz/lib/point-data.d.ts +5 -0
  355. package/dist/features/viz/lib/point-data.js +17 -0
  356. package/dist/features/viz/lib/point-data.js.map +7 -0
  357. package/dist/features/viz/lib/point-geometry.d.ts +2 -0
  358. package/dist/features/viz/lib/point-geometry.js +24 -0
  359. package/dist/features/viz/lib/point-geometry.js.map +7 -0
  360. package/dist/features/viz/lib/point-series.d.ts +11 -0
  361. package/dist/features/viz/lib/point-series.js +118 -0
  362. package/dist/features/viz/lib/point-series.js.map +7 -0
  363. package/dist/features/viz/lib/point-types.d.ts +94 -0
  364. package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
  365. package/dist/features/viz/lib/scale-adjust.js +25 -0
  366. package/dist/features/viz/lib/scale-adjust.js.map +7 -0
  367. package/dist/features/viz/lib/scale-context.d.ts +8 -0
  368. package/dist/features/viz/lib/scale-context.js +61 -0
  369. package/dist/features/viz/lib/scale-context.js.map +7 -0
  370. package/dist/features/viz/lib/scale.d.ts +11 -0
  371. package/dist/features/viz/lib/scale.js +80 -0
  372. package/dist/features/viz/lib/scale.js.map +7 -0
  373. package/dist/features/viz/lib/types.d.ts +414 -0
  374. package/dist/features/viz/lib/use-scale.d.ts +20 -0
  375. package/dist/features/viz/lib/use-scale.js +10 -0
  376. package/dist/features/viz/lib/use-scale.js.map +7 -0
  377. package/dist/filters/displacement-gpu.d.ts +38 -0
  378. package/dist/filters/displacement-gpu.js +243 -0
  379. package/dist/filters/displacement-gpu.js.map +7 -0
  380. package/dist/filters/displacement-math.d.ts +5 -0
  381. package/dist/filters/displacement-math.js +22 -0
  382. package/dist/filters/displacement-math.js.map +7 -0
  383. package/dist/filters/displacement.d.ts +13 -0
  384. package/dist/filters/displacement.js +65 -0
  385. package/dist/filters/displacement.js.map +7 -0
  386. package/dist/filters/filter-executor.d.ts +21 -0
  387. package/dist/filters/filter-executor.js +120 -0
  388. package/dist/filters/filter-executor.js.map +7 -0
  389. package/dist/filters/native-canvas-filter.d.ts +4 -0
  390. package/dist/filters/native-canvas-filter.js +105 -0
  391. package/dist/filters/native-canvas-filter.js.map +7 -0
  392. package/dist/filters/native-color.d.ts +2 -0
  393. package/dist/filters/native-color.js +200 -0
  394. package/dist/filters/native-color.js.map +7 -0
  395. package/dist/filters/native-operations.d.ts +8 -0
  396. package/dist/filters/native-operations.js +7 -0
  397. package/dist/filters/native-operations.js.map +7 -0
  398. package/dist/filters/native.d.ts +113 -0
  399. package/dist/filters/native.js +115 -0
  400. package/dist/filters/native.js.map +7 -0
  401. package/dist/filters/reflected-light.d.ts +12 -0
  402. package/dist/filters/reflected-light.js +93 -0
  403. package/dist/filters/reflected-light.js.map +7 -0
  404. package/dist/filters/reflection-gpu.d.ts +58 -0
  405. package/dist/filters/reflection-gpu.js +266 -0
  406. package/dist/filters/reflection-gpu.js.map +7 -0
  407. package/dist/filters/render-displacement-boundary.d.ts +12 -0
  408. package/dist/filters/render-displacement-boundary.js +116 -0
  409. package/dist/filters/render-displacement-boundary.js.map +7 -0
  410. package/dist/filters/render-reflection-boundary.d.ts +15 -0
  411. package/dist/filters/render-reflection-boundary.js +127 -0
  412. package/dist/filters/render-reflection-boundary.js.map +7 -0
  413. package/dist/filters.d.ts +5 -0
  414. package/dist/filters.js +29 -0
  415. package/dist/filters.js.map +7 -0
  416. package/dist/filters.mjs +1 -0
  417. package/dist/index.d.ts +111 -0
  418. package/dist/index.js +300 -0
  419. package/dist/index.js.map +7 -0
  420. package/dist/index.mjs +1 -0
  421. package/dist/internal.d.ts +160 -0
  422. package/dist/internal.js +320 -0
  423. package/dist/internal.js.map +7 -0
  424. package/dist/internal.mjs +1 -0
  425. package/dist/jsx-dev-runtime.d.ts +35 -0
  426. package/dist/jsx-dev-runtime.js +6 -0
  427. package/dist/jsx-dev-runtime.js.map +7 -0
  428. package/dist/jsx-dev-runtime.mjs +1 -0
  429. package/dist/jsx-runtime.d.ts +35 -0
  430. package/dist/jsx-runtime.js +7 -0
  431. package/dist/jsx-runtime.js.map +7 -0
  432. package/dist/jsx-runtime.mjs +1 -0
  433. package/dist/lib/animation/definition.d.ts +140 -0
  434. package/dist/lib/animation/definition.js +605 -0
  435. package/dist/lib/animation/definition.js.map +7 -0
  436. package/dist/lib/animation/easing.d.ts +55 -0
  437. package/dist/lib/animation/easing.js +112 -0
  438. package/dist/lib/animation/easing.js.map +7 -0
  439. package/dist/lib/animation/evaluate.d.ts +118 -0
  440. package/dist/lib/animation/evaluate.js +2398 -0
  441. package/dist/lib/animation/evaluate.js.map +7 -0
  442. package/dist/lib/animation/playback.d.ts +30 -0
  443. package/dist/lib/animation/playback.js +932 -0
  444. package/dist/lib/animation/playback.js.map +7 -0
  445. package/dist/lib/animation/program.d.ts +145 -0
  446. package/dist/lib/animation/program.js +741 -0
  447. package/dist/lib/animation/program.js.map +7 -0
  448. package/dist/lib/animation/spring.d.ts +30 -0
  449. package/dist/lib/animation/spring.js +324 -0
  450. package/dist/lib/animation/spring.js.map +7 -0
  451. package/dist/lib/animation/types.d.ts +418 -0
  452. package/dist/lib/animation/writer-leases.d.ts +47 -0
  453. package/dist/lib/animation/writer-leases.js +314 -0
  454. package/dist/lib/animation/writer-leases.js.map +7 -0
  455. package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
  456. package/dist/lib/backend/canvas-2d-backend.js +97 -0
  457. package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
  458. package/dist/lib/backend/types.d.ts +309 -0
  459. package/dist/lib/backend/types.js +26 -0
  460. package/dist/lib/backend/types.js.map +7 -0
  461. package/dist/lib/components/arc-geometry.d.ts +4 -0
  462. package/dist/lib/components/arc-geometry.js +46 -0
  463. package/dist/lib/components/arc-geometry.js.map +7 -0
  464. package/dist/lib/components/arc.d.ts +55 -0
  465. package/dist/lib/components/arc.js +91 -0
  466. package/dist/lib/components/arc.js.map +7 -0
  467. package/dist/lib/components/circle.d.ts +49 -0
  468. package/dist/lib/components/circle.js +46 -0
  469. package/dist/lib/components/circle.js.map +7 -0
  470. package/dist/lib/components/clip.d.ts +43 -0
  471. package/dist/lib/components/clip.js +24 -0
  472. package/dist/lib/components/clip.js.map +7 -0
  473. package/dist/lib/components/ellipse.d.ts +53 -0
  474. package/dist/lib/components/ellipse.js +59 -0
  475. package/dist/lib/components/ellipse.js.map +7 -0
  476. package/dist/lib/components/g.d.ts +56 -0
  477. package/dist/lib/components/g.js +24 -0
  478. package/dist/lib/components/g.js.map +7 -0
  479. package/dist/lib/components/horizontal-line.d.ts +56 -0
  480. package/dist/lib/components/horizontal-line.js +71 -0
  481. package/dist/lib/components/horizontal-line.js.map +7 -0
  482. package/dist/lib/components/html-box.d.ts +16 -0
  483. package/dist/lib/components/html-box.js +57 -0
  484. package/dist/lib/components/html-box.js.map +7 -0
  485. package/dist/lib/components/img.d.ts +24 -0
  486. package/dist/lib/components/img.js +150 -0
  487. package/dist/lib/components/img.js.map +7 -0
  488. package/dist/lib/components/layer-node-equality.d.ts +65 -0
  489. package/dist/lib/components/layer-node-equality.js +91 -0
  490. package/dist/lib/components/layer-node-equality.js.map +7 -0
  491. package/dist/lib/components/layer.d.ts +34 -0
  492. package/dist/lib/components/layer.js +172 -0
  493. package/dist/lib/components/layer.js.map +7 -0
  494. package/dist/lib/components/line.d.ts +51 -0
  495. package/dist/lib/components/line.js +76 -0
  496. package/dist/lib/components/line.js.map +7 -0
  497. package/dist/lib/components/path.d.ts +28 -0
  498. package/dist/lib/components/path.js +47 -0
  499. package/dist/lib/components/path.js.map +7 -0
  500. package/dist/lib/components/polygon.d.ts +45 -0
  501. package/dist/lib/components/polygon.js +93 -0
  502. package/dist/lib/components/polygon.js.map +7 -0
  503. package/dist/lib/components/rect.d.ts +24 -0
  504. package/dist/lib/components/rect.js +83 -0
  505. package/dist/lib/components/rect.js.map +7 -0
  506. package/dist/lib/components/regular-polygon.d.ts +102 -0
  507. package/dist/lib/components/regular-polygon.js +112 -0
  508. package/dist/lib/components/regular-polygon.js.map +7 -0
  509. package/dist/lib/components/rounded-corner-style.d.ts +7 -0
  510. package/dist/lib/components/rounded-corner-style.js +40 -0
  511. package/dist/lib/components/rounded-corner-style.js.map +7 -0
  512. package/dist/lib/components/shape-style.d.ts +7 -0
  513. package/dist/lib/components/shape-style.js +52 -0
  514. package/dist/lib/components/shape-style.js.map +7 -0
  515. package/dist/lib/components/star.d.ts +56 -0
  516. package/dist/lib/components/star.js +98 -0
  517. package/dist/lib/components/star.js.map +7 -0
  518. package/dist/lib/components/structural-events.d.ts +10 -0
  519. package/dist/lib/components/structural-events.js +8 -0
  520. package/dist/lib/components/structural-events.js.map +7 -0
  521. package/dist/lib/components/svg-path.d.ts +23 -0
  522. package/dist/lib/components/svg-path.js +25 -0
  523. package/dist/lib/components/svg-path.js.map +7 -0
  524. package/dist/lib/components/text-layout.d.ts +31 -0
  525. package/dist/lib/components/text-layout.js +139 -0
  526. package/dist/lib/components/text-layout.js.map +7 -0
  527. package/dist/lib/components/text.d.ts +29 -0
  528. package/dist/lib/components/text.js +174 -0
  529. package/dist/lib/components/text.js.map +7 -0
  530. package/dist/lib/components/vertical-line.d.ts +57 -0
  531. package/dist/lib/components/vertical-line.js +71 -0
  532. package/dist/lib/components/vertical-line.js.map +7 -0
  533. package/dist/lib/components/wedge.d.ts +55 -0
  534. package/dist/lib/components/wedge.js +93 -0
  535. package/dist/lib/components/wedge.js.map +7 -0
  536. package/dist/lib/define-primitive.d.ts +82 -0
  537. package/dist/lib/define-primitive.js +85 -0
  538. package/dist/lib/define-primitive.js.map +7 -0
  539. package/dist/lib/development.d.ts +2 -0
  540. package/dist/lib/development.js +5 -0
  541. package/dist/lib/development.js.map +7 -0
  542. package/dist/lib/element/children.d.ts +16 -0
  543. package/dist/lib/element/children.js +333 -0
  544. package/dist/lib/element/children.js.map +7 -0
  545. package/dist/lib/element/create-element.d.ts +34 -0
  546. package/dist/lib/element/create-element.js +75 -0
  547. package/dist/lib/element/create-element.js.map +7 -0
  548. package/dist/lib/element/fragment.d.ts +15 -0
  549. package/dist/lib/element/fragment.js +11 -0
  550. package/dist/lib/element/fragment.js.map +7 -0
  551. package/dist/lib/element/jsx-runtime.d.ts +48 -0
  552. package/dist/lib/element/jsx-runtime.js +16 -0
  553. package/dist/lib/element/jsx-runtime.js.map +7 -0
  554. package/dist/lib/element/metadata.d.ts +96 -0
  555. package/dist/lib/element/metadata.js +160 -0
  556. package/dist/lib/element/metadata.js.map +7 -0
  557. package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
  558. package/dist/lib/element/resolve-primitive-inputs.js +83 -0
  559. package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
  560. package/dist/lib/element/types.d.ts +123 -0
  561. package/dist/lib/element-enhancers.d.ts +134 -0
  562. package/dist/lib/element-enhancers.js +193 -0
  563. package/dist/lib/element-enhancers.js.map +7 -0
  564. package/dist/lib/events/adapters/clipboard.d.ts +9 -0
  565. package/dist/lib/events/adapters/clipboard.js +23 -0
  566. package/dist/lib/events/adapters/clipboard.js.map +7 -0
  567. package/dist/lib/events/adapters/drag.d.ts +12 -0
  568. package/dist/lib/events/adapters/drag.js +29 -0
  569. package/dist/lib/events/adapters/drag.js.map +7 -0
  570. package/dist/lib/events/adapters/editing.d.ts +15 -0
  571. package/dist/lib/events/adapters/editing.js +41 -0
  572. package/dist/lib/events/adapters/editing.js.map +7 -0
  573. package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
  574. package/dist/lib/events/adapters/keyboard-focus.js +36 -0
  575. package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
  576. package/dist/lib/events/adapters/mouse.d.ts +17 -0
  577. package/dist/lib/events/adapters/mouse.js +32 -0
  578. package/dist/lib/events/adapters/mouse.js.map +7 -0
  579. package/dist/lib/events/adapters/pointer.d.ts +19 -0
  580. package/dist/lib/events/adapters/pointer.js +40 -0
  581. package/dist/lib/events/adapters/pointer.js.map +7 -0
  582. package/dist/lib/events/adapters/touch.d.ts +16 -0
  583. package/dist/lib/events/adapters/touch.js +36 -0
  584. package/dist/lib/events/adapters/touch.js.map +7 -0
  585. package/dist/lib/events/adapters/wheel.d.ts +10 -0
  586. package/dist/lib/events/adapters/wheel.js +16 -0
  587. package/dist/lib/events/adapters/wheel.js.map +7 -0
  588. package/dist/lib/events/boundary-transitions.d.ts +9 -0
  589. package/dist/lib/events/boundary-transitions.js +16 -0
  590. package/dist/lib/events/boundary-transitions.js.map +7 -0
  591. package/dist/lib/events/dispatch.d.ts +21 -0
  592. package/dist/lib/events/dispatch.js +1078 -0
  593. package/dist/lib/events/dispatch.js.map +7 -0
  594. package/dist/lib/events/event-definitions.d.ts +23 -0
  595. package/dist/lib/events/event-definitions.js +74 -0
  596. package/dist/lib/events/event-definitions.js.map +7 -0
  597. package/dist/lib/events/event-facade.d.ts +19 -0
  598. package/dist/lib/events/event-facade.js +188 -0
  599. package/dist/lib/events/event-facade.js.map +7 -0
  600. package/dist/lib/events/event-path.d.ts +3 -0
  601. package/dist/lib/events/event-path.js +43 -0
  602. package/dist/lib/events/event-path.js.map +7 -0
  603. package/dist/lib/events/hit-test.d.ts +13 -0
  604. package/dist/lib/events/hit-test.js +135 -0
  605. package/dist/lib/events/hit-test.js.map +7 -0
  606. package/dist/lib/events/native-listener-hub.d.ts +10 -0
  607. package/dist/lib/events/native-listener-hub.js +72 -0
  608. package/dist/lib/events/native-listener-hub.js.map +7 -0
  609. package/dist/lib/events/paint-entry.d.ts +66 -0
  610. package/dist/lib/events/paint-entry.js +30 -0
  611. package/dist/lib/events/paint-entry.js.map +7 -0
  612. package/dist/lib/events/pointer-capture.d.ts +23 -0
  613. package/dist/lib/events/pointer-capture.js +339 -0
  614. package/dist/lib/events/pointer-capture.js.map +7 -0
  615. package/dist/lib/events/propagation.d.ts +7 -0
  616. package/dist/lib/events/propagation.js +56 -0
  617. package/dist/lib/events/propagation.js.map +7 -0
  618. package/dist/lib/events/registrations.d.ts +120 -0
  619. package/dist/lib/events/registrations.js +397 -0
  620. package/dist/lib/events/registrations.js.map +7 -0
  621. package/dist/lib/events/resolver-input.d.ts +25 -0
  622. package/dist/lib/events/resolver-input.js +62 -0
  623. package/dist/lib/events/resolver-input.js.map +7 -0
  624. package/dist/lib/events/types.d.ts +596 -0
  625. package/dist/lib/execute-render.d.ts +9 -0
  626. package/dist/lib/execute-render.js +195 -0
  627. package/dist/lib/execute-render.js.map +7 -0
  628. package/dist/lib/filter/canvas-state.d.ts +2 -0
  629. package/dist/lib/filter/canvas-state.js +31 -0
  630. package/dist/lib/filter/canvas-state.js.map +7 -0
  631. package/dist/lib/filter/filter-region.d.ts +33 -0
  632. package/dist/lib/filter/filter-region.js +291 -0
  633. package/dist/lib/filter/filter-region.js.map +7 -0
  634. package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
  635. package/dist/lib/filter/filter-surface-pool.js +252 -0
  636. package/dist/lib/filter/filter-surface-pool.js.map +7 -0
  637. package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
  638. package/dist/lib/filter/render-filter-boundary.js +211 -0
  639. package/dist/lib/filter/render-filter-boundary.js.map +7 -0
  640. package/dist/lib/focus/directional-navigation.d.ts +12 -0
  641. package/dist/lib/focus/directional-navigation.js +86 -0
  642. package/dist/lib/focus/directional-navigation.js.map +7 -0
  643. package/dist/lib/focus/dom-focus-host.d.ts +13 -0
  644. package/dist/lib/focus/dom-focus-host.js +352 -0
  645. package/dist/lib/focus/dom-focus-host.js.map +7 -0
  646. package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
  647. package/dist/lib/focus/dom-tab-stops.js +71 -0
  648. package/dist/lib/focus/dom-tab-stops.js.map +7 -0
  649. package/dist/lib/focus/focus-events.d.ts +4 -0
  650. package/dist/lib/focus/focus-events.js +78 -0
  651. package/dist/lib/focus/focus-events.js.map +7 -0
  652. package/dist/lib/focus/focus-manager.d.ts +121 -0
  653. package/dist/lib/focus/focus-manager.js +1131 -0
  654. package/dist/lib/focus/focus-manager.js.map +7 -0
  655. package/dist/lib/focus/geometry.d.ts +4 -0
  656. package/dist/lib/focus/geometry.js +64 -0
  657. package/dist/lib/focus/geometry.js.map +7 -0
  658. package/dist/lib/focus/html-focus-region.d.ts +27 -0
  659. package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
  660. package/dist/lib/focus/keyboard-defaults.js +110 -0
  661. package/dist/lib/focus/keyboard-defaults.js.map +7 -0
  662. package/dist/lib/focus/policy-components.d.ts +45 -0
  663. package/dist/lib/focus/policy-components.js +94 -0
  664. package/dist/lib/focus/policy-components.js.map +7 -0
  665. package/dist/lib/focus/types.d.ts +37 -0
  666. package/dist/lib/focus/types.js +7 -0
  667. package/dist/lib/focus/types.js.map +7 -0
  668. package/dist/lib/geometry/circle.d.ts +22 -0
  669. package/dist/lib/geometry/circle.js +13 -0
  670. package/dist/lib/geometry/circle.js.map +7 -0
  671. package/dist/lib/geometry/circular-sweep.d.ts +54 -0
  672. package/dist/lib/geometry/circular-sweep.js +95 -0
  673. package/dist/lib/geometry/circular-sweep.js.map +7 -0
  674. package/dist/lib/geometry/ellipse.d.ts +26 -0
  675. package/dist/lib/geometry/ellipse.js +17 -0
  676. package/dist/lib/geometry/ellipse.js.map +7 -0
  677. package/dist/lib/geometry/line.d.ts +20 -0
  678. package/dist/lib/geometry/line.js +15 -0
  679. package/dist/lib/geometry/line.js.map +7 -0
  680. package/dist/lib/geometry/path-arc.d.ts +25 -0
  681. package/dist/lib/geometry/path-arc.js +57 -0
  682. package/dist/lib/geometry/path-arc.js.map +7 -0
  683. package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
  684. package/dist/lib/geometry/path-bend-guide.js +282 -0
  685. package/dist/lib/geometry/path-bend-guide.js.map +7 -0
  686. package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
  687. package/dist/lib/geometry/path-bend-spans.js +109 -0
  688. package/dist/lib/geometry/path-bend-spans.js.map +7 -0
  689. package/dist/lib/geometry/path-bending.d.ts +90 -0
  690. package/dist/lib/geometry/path-bending.js +202 -0
  691. package/dist/lib/geometry/path-bending.js.map +7 -0
  692. package/dist/lib/geometry/path-conversion.d.ts +19 -0
  693. package/dist/lib/geometry/path-conversion.js +114 -0
  694. package/dist/lib/geometry/path-conversion.js.map +7 -0
  695. package/dist/lib/geometry/path-geometry.d.ts +218 -0
  696. package/dist/lib/geometry/path-geometry.js +557 -0
  697. package/dist/lib/geometry/path-geometry.js.map +7 -0
  698. package/dist/lib/geometry/path-radial.d.ts +15 -0
  699. package/dist/lib/geometry/path-radial.js +107 -0
  700. package/dist/lib/geometry/path-radial.js.map +7 -0
  701. package/dist/lib/geometry/path-transforms.d.ts +233 -0
  702. package/dist/lib/geometry/path-transforms.js +478 -0
  703. package/dist/lib/geometry/path-transforms.js.map +7 -0
  704. package/dist/lib/geometry/path-utilities.d.ts +78 -0
  705. package/dist/lib/geometry/path-utilities.js +341 -0
  706. package/dist/lib/geometry/path-utilities.js.map +7 -0
  707. package/dist/lib/geometry/path-wang.d.ts +18 -0
  708. package/dist/lib/geometry/path-wang.js +136 -0
  709. package/dist/lib/geometry/path-wang.js.map +7 -0
  710. package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
  711. package/dist/lib/geometry/path-warp-bezier.js +109 -0
  712. package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
  713. package/dist/lib/geometry/path-warp.d.ts +27 -0
  714. package/dist/lib/geometry/path-warp.js +165 -0
  715. package/dist/lib/geometry/path-warp.js.map +7 -0
  716. package/dist/lib/geometry/polygon.d.ts +21 -0
  717. package/dist/lib/geometry/polygon.js +12 -0
  718. package/dist/lib/geometry/polygon.js.map +7 -0
  719. package/dist/lib/geometry/rectangle.d.ts +38 -0
  720. package/dist/lib/geometry/rectangle.js +22 -0
  721. package/dist/lib/geometry/rectangle.js.map +7 -0
  722. package/dist/lib/geometry/regular-polygon.d.ts +88 -0
  723. package/dist/lib/geometry/regular-polygon.js +67 -0
  724. package/dist/lib/geometry/regular-polygon.js.map +7 -0
  725. package/dist/lib/geometry/resolve-path.d.ts +4 -0
  726. package/dist/lib/geometry/resolve-path.js +16 -0
  727. package/dist/lib/geometry/resolve-path.js.map +7 -0
  728. package/dist/lib/geometry/rounded-corners.d.ts +28 -0
  729. package/dist/lib/geometry/rounded-corners.js +118 -0
  730. package/dist/lib/geometry/rounded-corners.js.map +7 -0
  731. package/dist/lib/geometry/star.d.ts +39 -0
  732. package/dist/lib/geometry/star.js +90 -0
  733. package/dist/lib/geometry/star.js.map +7 -0
  734. package/dist/lib/geometry/svg-path.d.ts +21 -0
  735. package/dist/lib/geometry/svg-path.js +7 -0
  736. package/dist/lib/geometry/svg-path.js.map +7 -0
  737. package/dist/lib/geometry/transform-bend.d.ts +46 -0
  738. package/dist/lib/geometry/transform-bend.js +219 -0
  739. package/dist/lib/geometry/transform-bend.js.map +7 -0
  740. package/dist/lib/geometry/transform-guide.d.ts +57 -0
  741. package/dist/lib/geometry/transform-guide.js +157 -0
  742. package/dist/lib/geometry/transform-guide.js.map +7 -0
  743. package/dist/lib/geometry/transform-math.d.ts +21 -0
  744. package/dist/lib/geometry/transform-math.js +91 -0
  745. package/dist/lib/geometry/transform-math.js.map +7 -0
  746. package/dist/lib/geometry/transform-mesh.d.ts +39 -0
  747. package/dist/lib/geometry/transform-mesh.js +129 -0
  748. package/dist/lib/geometry/transform-mesh.js.map +7 -0
  749. package/dist/lib/geometry/validation.d.ts +6 -0
  750. package/dist/lib/geometry/validation.js +42 -0
  751. package/dist/lib/geometry/validation.js.map +7 -0
  752. package/dist/lib/global-state.d.ts +63 -0
  753. package/dist/lib/global-state.js +176 -0
  754. package/dist/lib/global-state.js.map +7 -0
  755. package/dist/lib/hooks/hook-slot.d.ts +30 -0
  756. package/dist/lib/hooks/hook-slot.js +66 -0
  757. package/dist/lib/hooks/hook-slot.js.map +7 -0
  758. package/dist/lib/hooks/use-animated-value.d.ts +24 -0
  759. package/dist/lib/hooks/use-animated-value.js +169 -0
  760. package/dist/lib/hooks/use-animated-value.js.map +7 -0
  761. package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
  762. package/dist/lib/hooks/use-canvas-context.js +13 -0
  763. package/dist/lib/hooks/use-canvas-context.js.map +7 -0
  764. package/dist/lib/hooks/use-computed.d.ts +13 -0
  765. package/dist/lib/hooks/use-computed.js +91 -0
  766. package/dist/lib/hooks/use-computed.js.map +7 -0
  767. package/dist/lib/hooks/use-const.d.ts +10 -0
  768. package/dist/lib/hooks/use-const.js +15 -0
  769. package/dist/lib/hooks/use-const.js.map +7 -0
  770. package/dist/lib/hooks/use-cursor.d.ts +16 -0
  771. package/dist/lib/hooks/use-cursor.js +51 -0
  772. package/dist/lib/hooks/use-cursor.js.map +7 -0
  773. package/dist/lib/hooks/use-event-listener.d.ts +10 -0
  774. package/dist/lib/hooks/use-event-listener.js +24 -0
  775. package/dist/lib/hooks/use-event-listener.js.map +7 -0
  776. package/dist/lib/hooks/use-event-target.d.ts +14 -0
  777. package/dist/lib/hooks/use-event-target.js +30 -0
  778. package/dist/lib/hooks/use-event-target.js.map +7 -0
  779. package/dist/lib/hooks/use-layout-box.d.ts +9 -0
  780. package/dist/lib/hooks/use-layout-box.js +8 -0
  781. package/dist/lib/hooks/use-layout-box.js.map +7 -0
  782. package/dist/lib/hooks/use-line-path.d.ts +14 -0
  783. package/dist/lib/hooks/use-line-path.js +13 -0
  784. package/dist/lib/hooks/use-line-path.js.map +7 -0
  785. package/dist/lib/hooks/use-paint-target.d.ts +3 -0
  786. package/dist/lib/hooks/use-paint-target.js +34 -0
  787. package/dist/lib/hooks/use-paint-target.js.map +7 -0
  788. package/dist/lib/hooks/use-playback.d.ts +21 -0
  789. package/dist/lib/hooks/use-playback.js +87 -0
  790. package/dist/lib/hooks/use-playback.js.map +7 -0
  791. package/dist/lib/hooks/use-reaction.d.ts +19 -0
  792. package/dist/lib/hooks/use-reaction.js +245 -0
  793. package/dist/lib/hooks/use-reaction.js.map +7 -0
  794. package/dist/lib/hooks/use-rect-path.d.ts +20 -0
  795. package/dist/lib/hooks/use-rect-path.js +25 -0
  796. package/dist/lib/hooks/use-rect-path.js.map +7 -0
  797. package/dist/lib/hooks/use-ref.d.ts +17 -0
  798. package/dist/lib/hooks/use-ref.js +8 -0
  799. package/dist/lib/hooks/use-ref.js.map +7 -0
  800. package/dist/lib/hooks/use-region.d.ts +11 -0
  801. package/dist/lib/hooks/use-region.js +34 -0
  802. package/dist/lib/hooks/use-region.js.map +7 -0
  803. package/dist/lib/hooks/use-signal.d.ts +12 -0
  804. package/dist/lib/hooks/use-signal.js +12 -0
  805. package/dist/lib/hooks/use-signal.js.map +7 -0
  806. package/dist/lib/hooks/use-svg-path.d.ts +11 -0
  807. package/dist/lib/hooks/use-svg-path.js +13 -0
  808. package/dist/lib/hooks/use-svg-path.js.map +7 -0
  809. package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
  810. package/dist/lib/hooks/use-value-memo-slot.js +45 -0
  811. package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
  812. package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
  813. package/dist/lib/hooks/use-visibility-transition.js +195 -0
  814. package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
  815. package/dist/lib/html/html-service.d.ts +30 -0
  816. package/dist/lib/html/html-service.js +281 -0
  817. package/dist/lib/html/html-service.js.map +7 -0
  818. package/dist/lib/html/overlay-config.d.ts +3 -0
  819. package/dist/lib/html/overlay-config.js +37 -0
  820. package/dist/lib/html/overlay-config.js.map +7 -0
  821. package/dist/lib/html/portable-clips.d.ts +4 -0
  822. package/dist/lib/html/portable-clips.js +20 -0
  823. package/dist/lib/html/portable-clips.js.map +7 -0
  824. package/dist/lib/html/types.d.ts +110 -0
  825. package/dist/lib/layout/absolute.d.ts +57 -0
  826. package/dist/lib/layout/absolute.js +348 -0
  827. package/dist/lib/layout/absolute.js.map +7 -0
  828. package/dist/lib/layout/box.d.ts +19 -0
  829. package/dist/lib/layout/box.js +209 -0
  830. package/dist/lib/layout/box.js.map +7 -0
  831. package/dist/lib/layout/context.d.ts +13 -0
  832. package/dist/lib/layout/context.js +42 -0
  833. package/dist/lib/layout/context.js.map +7 -0
  834. package/dist/lib/layout/diagnostics.d.ts +15 -0
  835. package/dist/lib/layout/diagnostics.js +30 -0
  836. package/dist/lib/layout/diagnostics.js.map +7 -0
  837. package/dist/lib/layout/flex.d.ts +64 -0
  838. package/dist/lib/layout/flex.js +803 -0
  839. package/dist/lib/layout/flex.js.map +7 -0
  840. package/dist/lib/layout/flow.d.ts +53 -0
  841. package/dist/lib/layout/flow.js +400 -0
  842. package/dist/lib/layout/flow.js.map +7 -0
  843. package/dist/lib/layout/grid.d.ts +64 -0
  844. package/dist/lib/layout/grid.js +597 -0
  845. package/dist/lib/layout/grid.js.map +7 -0
  846. package/dist/lib/layout/measure.d.ts +19 -0
  847. package/dist/lib/layout/measure.js +144 -0
  848. package/dist/lib/layout/measure.js.map +7 -0
  849. package/dist/lib/layout/overlay.d.ts +42 -0
  850. package/dist/lib/layout/overlay.js +151 -0
  851. package/dist/lib/layout/overlay.js.map +7 -0
  852. package/dist/lib/layout/place-child.d.ts +12 -0
  853. package/dist/lib/layout/place-child.js +72 -0
  854. package/dist/lib/layout/place-child.js.map +7 -0
  855. package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
  856. package/dist/lib/layout/positioning-diagnostics.js +15 -0
  857. package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
  858. package/dist/lib/layout/types.d.ts +78 -0
  859. package/dist/lib/manipulation/controller-types.d.ts +299 -0
  860. package/dist/lib/manipulation/controller.d.ts +57 -0
  861. package/dist/lib/manipulation/controller.js +464 -0
  862. package/dist/lib/manipulation/controller.js.map +7 -0
  863. package/dist/lib/manipulation/coordinates.d.ts +9 -0
  864. package/dist/lib/manipulation/coordinates.js +55 -0
  865. package/dist/lib/manipulation/coordinates.js.map +7 -0
  866. package/dist/lib/manipulation/degrees.d.ts +10 -0
  867. package/dist/lib/manipulation/degrees.js +9 -0
  868. package/dist/lib/manipulation/degrees.js.map +7 -0
  869. package/dist/lib/manipulation/frame.d.ts +24 -0
  870. package/dist/lib/manipulation/frame.js +101 -0
  871. package/dist/lib/manipulation/frame.js.map +7 -0
  872. package/dist/lib/manipulation/geometry.d.ts +4 -0
  873. package/dist/lib/manipulation/geometry.js +26 -0
  874. package/dist/lib/manipulation/geometry.js.map +7 -0
  875. package/dist/lib/manipulation/handles.d.ts +298 -0
  876. package/dist/lib/manipulation/handles.js +598 -0
  877. package/dist/lib/manipulation/handles.js.map +7 -0
  878. package/dist/lib/manipulation/manipulable.d.ts +65 -0
  879. package/dist/lib/manipulation/manipulable.js +47 -0
  880. package/dist/lib/manipulation/manipulable.js.map +7 -0
  881. package/dist/lib/manipulation/ownership.d.ts +15 -0
  882. package/dist/lib/manipulation/ownership.js +80 -0
  883. package/dist/lib/manipulation/ownership.js.map +7 -0
  884. package/dist/lib/manipulation/snap.d.ts +6 -0
  885. package/dist/lib/manipulation/snap.js +40 -0
  886. package/dist/lib/manipulation/snap.js.map +7 -0
  887. package/dist/lib/manipulation/solve.d.ts +2 -0
  888. package/dist/lib/manipulation/solve.js +563 -0
  889. package/dist/lib/manipulation/solve.js.map +7 -0
  890. package/dist/lib/manipulation/types.d.ts +178 -0
  891. package/dist/lib/mount-pibbl.d.ts +25 -0
  892. package/dist/lib/mount-pibbl.js +278 -0
  893. package/dist/lib/mount-pibbl.js.map +7 -0
  894. package/dist/lib/optional-services.d.ts +8 -0
  895. package/dist/lib/optional-services.js +11 -0
  896. package/dist/lib/optional-services.js.map +7 -0
  897. package/dist/lib/pibbl.d.ts +17 -0
  898. package/dist/lib/pibbl.js +21 -0
  899. package/dist/lib/pibbl.js.map +7 -0
  900. package/dist/lib/primitive-presentation.d.ts +24 -0
  901. package/dist/lib/primitive-presentation.js +102 -0
  902. package/dist/lib/primitive-presentation.js.map +7 -0
  903. package/dist/lib/render-layer/controller.d.ts +67 -0
  904. package/dist/lib/render-layer/controller.js +603 -0
  905. package/dist/lib/render-layer/controller.js.map +7 -0
  906. package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
  907. package/dist/lib/render-layer/define-render-layer.js +90 -0
  908. package/dist/lib/render-layer/define-render-layer.js.map +7 -0
  909. package/dist/lib/render-layer/types.d.ts +315 -0
  910. package/dist/lib/render-target.d.ts +27 -0
  911. package/dist/lib/render-target.js +118 -0
  912. package/dist/lib/render-target.js.map +7 -0
  913. package/dist/lib/render-transaction.d.ts +10 -0
  914. package/dist/lib/render-transaction.js +46 -0
  915. package/dist/lib/render-transaction.js.map +7 -0
  916. package/dist/lib/render.d.ts +3 -0
  917. package/dist/lib/render.js +385 -0
  918. package/dist/lib/render.js.map +7 -0
  919. package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
  920. package/dist/lib/scheduler/realm-scheduler.js +964 -0
  921. package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
  922. package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
  923. package/dist/lib/scheduler/renderer-participant.js +216 -0
  924. package/dist/lib/scheduler/renderer-participant.js.map +7 -0
  925. package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
  926. package/dist/lib/scheduler/simulation-participant.js +229 -0
  927. package/dist/lib/scheduler/simulation-participant.js.map +7 -0
  928. package/dist/lib/scheduler/testing.d.ts +56 -0
  929. package/dist/lib/scheduler/testing.js +71 -0
  930. package/dist/lib/scheduler/testing.js.map +7 -0
  931. package/dist/lib/scheduler/types.d.ts +103 -0
  932. package/dist/lib/signals/edge.d.ts +44 -0
  933. package/dist/lib/signals/edge.js +245 -0
  934. package/dist/lib/signals/edge.js.map +7 -0
  935. package/dist/lib/signals/graph.d.ts +220 -0
  936. package/dist/lib/signals/graph.js +1035 -0
  937. package/dist/lib/signals/graph.js.map +7 -0
  938. package/dist/lib/signals/input-provision.d.ts +3 -0
  939. package/dist/lib/signals/input-provision.js +67 -0
  940. package/dist/lib/signals/input-provision.js.map +7 -0
  941. package/dist/lib/signals/render-consumer.d.ts +21 -0
  942. package/dist/lib/signals/render-consumer.js +218 -0
  943. package/dist/lib/signals/render-consumer.js.map +7 -0
  944. package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
  945. package/dist/lib/signals/resolve-signal-value.js +17 -0
  946. package/dist/lib/signals/resolve-signal-value.js.map +7 -0
  947. package/dist/lib/signals/types.d.ts +80 -0
  948. package/dist/lib/style/diagnostics.d.ts +83 -0
  949. package/dist/lib/style/diagnostics.js +63 -0
  950. package/dist/lib/style/diagnostics.js.map +7 -0
  951. package/dist/lib/style/empty-style.d.ts +3 -0
  952. package/dist/lib/style/empty-style.js +5 -0
  953. package/dist/lib/style/empty-style.js.map +7 -0
  954. package/dist/lib/style/filter-types.d.ts +243 -0
  955. package/dist/lib/style/filter-types.js +5 -0
  956. package/dist/lib/style/filter-types.js.map +7 -0
  957. package/dist/lib/style/filter.d.ts +7 -0
  958. package/dist/lib/style/filter.js +50 -0
  959. package/dist/lib/style/filter.js.map +7 -0
  960. package/dist/lib/style/normalize.d.ts +18 -0
  961. package/dist/lib/style/normalize.js +50 -0
  962. package/dist/lib/style/normalize.js.map +7 -0
  963. package/dist/lib/style/positioning.d.ts +32 -0
  964. package/dist/lib/style/positioning.js +81 -0
  965. package/dist/lib/style/positioning.js.map +7 -0
  966. package/dist/lib/style/resolve-built-in.d.ts +6 -0
  967. package/dist/lib/style/resolve-built-in.js +58 -0
  968. package/dist/lib/style/resolve-built-in.js.map +7 -0
  969. package/dist/lib/style/resolve-dispatch.d.ts +20 -0
  970. package/dist/lib/style/resolve-dispatch.js +167 -0
  971. package/dist/lib/style/resolve-dispatch.js.map +7 -0
  972. package/dist/lib/style/resolve-length.d.ts +16 -0
  973. package/dist/lib/style/resolve-length.js +54 -0
  974. package/dist/lib/style/resolve-length.js.map +7 -0
  975. package/dist/lib/style/responsive.d.ts +31 -0
  976. package/dist/lib/style/responsive.js +172 -0
  977. package/dist/lib/style/responsive.js.map +7 -0
  978. package/dist/lib/style/types.d.ts +338 -0
  979. package/dist/lib/surface/resolve-surface.d.ts +4 -0
  980. package/dist/lib/surface/resolve-surface.js +184 -0
  981. package/dist/lib/surface/resolve-surface.js.map +7 -0
  982. package/dist/lib/surface/root-surface.d.ts +7 -0
  983. package/dist/lib/surface/root-surface.js +171 -0
  984. package/dist/lib/surface/root-surface.js.map +7 -0
  985. package/dist/lib/surface/transform.d.ts +4 -0
  986. package/dist/lib/surface/transform.js +16 -0
  987. package/dist/lib/surface/transform.js.map +7 -0
  988. package/dist/lib/surface/types.d.ts +132 -0
  989. package/dist/lib/teardowns.d.ts +14 -0
  990. package/dist/lib/teardowns.js +50 -0
  991. package/dist/lib/teardowns.js.map +7 -0
  992. package/dist/lib/textures/texture-protocol.d.ts +124 -0
  993. package/dist/lib/textures/texture-protocol.js +40 -0
  994. package/dist/lib/textures/texture-protocol.js.map +7 -0
  995. package/dist/lib/textures/texture.d.ts +170 -0
  996. package/dist/lib/textures/texture.js +385 -0
  997. package/dist/lib/textures/texture.js.map +7 -0
  998. package/dist/lib/transitions/bifrost.d.ts +47 -0
  999. package/dist/lib/transitions/bifrost.js +91 -0
  1000. package/dist/lib/transitions/bifrost.js.map +7 -0
  1001. package/dist/lib/transitions/binding.d.ts +14 -0
  1002. package/dist/lib/transitions/binding.js +35 -0
  1003. package/dist/lib/transitions/binding.js.map +7 -0
  1004. package/dist/lib/transitions/capture.d.ts +21 -0
  1005. package/dist/lib/transitions/capture.js +91 -0
  1006. package/dist/lib/transitions/capture.js.map +7 -0
  1007. package/dist/lib/transitions/common.d.ts +130 -0
  1008. package/dist/lib/transitions/common.js +57 -0
  1009. package/dist/lib/transitions/common.js.map +7 -0
  1010. package/dist/lib/transitions/define-transition.d.ts +64 -0
  1011. package/dist/lib/transitions/define-transition.js +31 -0
  1012. package/dist/lib/transitions/define-transition.js.map +7 -0
  1013. package/dist/lib/transitions/embers-physics.d.ts +114 -0
  1014. package/dist/lib/transitions/embers-physics.js +161 -0
  1015. package/dist/lib/transitions/embers-physics.js.map +7 -0
  1016. package/dist/lib/transitions/embers.d.ts +67 -0
  1017. package/dist/lib/transitions/embers.js +196 -0
  1018. package/dist/lib/transitions/embers.js.map +7 -0
  1019. package/dist/lib/transitions/fade.d.ts +41 -0
  1020. package/dist/lib/transitions/fade.js +31 -0
  1021. package/dist/lib/transitions/fade.js.map +7 -0
  1022. package/dist/lib/transitions/hologram.d.ts +47 -0
  1023. package/dist/lib/transitions/hologram.js +94 -0
  1024. package/dist/lib/transitions/hologram.js.map +7 -0
  1025. package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
  1026. package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
  1027. package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
  1028. package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
  1029. package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
  1030. package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
  1031. package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
  1032. package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
  1033. package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
  1034. package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
  1035. package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
  1036. package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
  1037. package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
  1038. package/dist/lib/transitions/wasm/kernel.js +26 -0
  1039. package/dist/lib/transitions/wasm/kernel.js.map +7 -0
  1040. package/dist/lib/types.d.ts +570 -0
  1041. package/dist/lib/update.d.ts +8 -0
  1042. package/dist/lib/update.js +20 -0
  1043. package/dist/lib/update.js.map +7 -0
  1044. package/dist/lib/util/get-2d-context.d.ts +2 -0
  1045. package/dist/lib/util/get-2d-context.js +11 -0
  1046. package/dist/lib/util/get-2d-context.js.map +7 -0
  1047. package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
  1048. package/dist/lib/util/get-mouse-coordinates.js +32 -0
  1049. package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
  1050. package/dist/lib/util/is-hit.d.ts +11 -0
  1051. package/dist/lib/util/is-hit.js +52 -0
  1052. package/dist/lib/util/is-hit.js.map +7 -0
  1053. package/dist/lib/util/is-transparent.d.ts +1 -0
  1054. package/dist/lib/util/is-transparent.js +8 -0
  1055. package/dist/lib/util/is-transparent.js.map +7 -0
  1056. package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
  1057. package/dist/lib/util/pixel-grid-adjustments.js +28 -0
  1058. package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
  1059. package/dist/lib/util/push-clipping-path.d.ts +6 -0
  1060. package/dist/lib/util/push-clipping-path.js +28 -0
  1061. package/dist/lib/util/push-clipping-path.js.map +7 -0
  1062. package/dist/lib/util/wire-common-events.d.ts +2 -0
  1063. package/dist/lib/util/wire-common-events.js +15 -0
  1064. package/dist/lib/util/wire-common-events.js.map +7 -0
  1065. package/dist/types.d.ts +1 -0
  1066. package/dist/types.js +1 -0
  1067. package/dist/types.js.map +7 -0
  1068. package/dist/types.mjs +1 -0
  1069. package/package.json +149 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/scheduler/realm-scheduler.ts"],
4
+ "sourcesContent": ["import type { ManualSchedulerDriver } from './testing.js';\nimport { RootRenderTransaction } from '../render-transaction.js';\nimport { executeRender } from \"../execute-render.js\";\nimport { GLOBAL_STATE, NO_PENDING_ROOT } from \"../global-state.js\";\nimport {\n createSignalCommitBatch,\n flushPendingComputedValidations,\n hasPendingComputedValidations,\n setSignalGraphPlanWorkNotifier,\n withDirectSignalWriteForbidden,\n} from \"../signals/graph.js\";\nimport type { PibblInstance, PibblRenderTransaction } from \"../types.js\";\nimport { runTeardown } from \"../teardowns.js\";\nimport type {\n PibblAdvanceLane,\n PibblAdvanceParticipant,\n PibblBeginCommand,\n PibblBeginCommandHandle,\n PibblFrameCommitAcknowledgement,\n PibblFrameCompletion,\n PibblFramePhase,\n PibblFrameSnapshot,\n RealmSchedulerSnapshot,\n PibblSchedulerTraceCollector,\n PibblSchedulerTraceRecord,\n SchedulerDriver,\n} from \"./types.js\";\n\ninterface InstanceRenderJob {\n readonly instance: PibblInstance;\n readonly firstRevision: number;\n readonly revision: number;\n readonly pendingRoot: PibblInstance[\"pendingRoot\"];\n readonly pendingRootRevision: number;\n readonly pendingUpdateParents: boolean;\n}\n\ninterface PendingInstanceWork {\n /** Earliest accepted revision not yet completed in this eligibility bucket. */\n firstRevision: number;\n revision: number;\n pendingRoot: PibblInstance[\"pendingRoot\"];\n pendingRootRevision: number;\n pendingUpdateParents: boolean;\n}\n\ninterface InstanceRenderRequest {\n readonly pendingRoot: PibblInstance[\"pendingRoot\"];\n readonly pendingUpdateParents: boolean;\n}\n\ninterface RootRenderJob {\n readonly root: PibblInstance;\n readonly instances: InstanceRenderJob[];\n}\n\ninterface RootTransaction extends PibblRenderTransaction {\n finish(success: boolean): void;\n}\n\ninterface AdvanceRegistration {\n readonly participant: PibblAdvanceParticipant;\n readonly lane: PibblAdvanceLane;\n readonly registrationOrder: number;\n readonly requestsFrames: boolean;\n active: boolean;\n}\n\ninterface BeginCommandRegistration {\n readonly accepted: {\n readonly sequence: number;\n readonly command: PibblBeginCommand;\n };\n active: boolean;\n owned: boolean;\n}\n\ninterface OrderedPlaybackCompletion {\n readonly registrationOrder: number;\n readonly sequence: number;\n readonly callback: PibblFrameCompletion;\n}\n\nexport interface RendererParticipantOwner {\n readonly instance: PibblInstance;\n isActive(): boolean;\n}\n\ninterface RendererParticipantWorkRequest {\n readonly key: object;\n readonly kind: \"resource\" | \"draw\" | \"compose\";\n readonly run: PibblFrameCompletion;\n}\n\ninterface RendererParticipantWorkRegistration {\n readonly owner: RendererParticipantOwner;\n request: RendererParticipantWorkRequest;\n readonly order: number;\n}\n\ninterface RendererParticipantCompletion {\n readonly owner: RendererParticipantOwner;\n readonly callback: PibblFrameCompletion;\n readonly order: number;\n}\n\nconst registeredRoots = new Set<PibblInstance>();\n// A running frame drains only current work. Late work is promoted after\n// Complete, so equal owner/key requests never coalesce across frame epochs.\nconst currentInstanceWork = new Map<PibblInstance, PendingInstanceWork>();\nconst nextInstanceWork = new Map<PibblInstance, PendingInstanceWork>();\nconst advanceRegistrations = new Set<AdvanceRegistration>();\nconst ADVANCE_LANE_ORDER = { animation: 0, physics: 1 } as const;\nconst beginCommands: BeginCommandRegistration[] = [];\nconst frameCompletions: PibblFrameCompletion[] = [];\nconst reactionCompletions: PibblFrameCompletion[] = [];\nconst currentRendererWorkByOwner = new Map<\n RendererParticipantOwner,\n Map<object, RendererParticipantWorkRegistration>\n>();\nconst nextRendererWorkByOwner = new Map<\n RendererParticipantOwner,\n Map<object, RendererParticipantWorkRegistration>\n>();\nconst currentRendererParticipantCompletions: RendererParticipantCompletion[] =\n [];\nconst nextRendererParticipantCompletions: RendererParticipantCompletion[] = [];\n\nlet phase: PibblFramePhase = \"idle\";\nlet pendingHostFrame: number | undefined;\nlet currentFrame: PibblFrameSnapshot | undefined;\nlet nextFrameId = 0;\nlet nextAdvanceRegistrationOrder = 0;\nlet nextWorkRevision = 0;\nlet nextRendererWorkOrder = 0;\nlet nextRendererCompletionOrder = 0;\nlet schedulerDriver: SchedulerDriver | undefined;\nlet createdRootRegistrations = 0;\nlet releasedRootRegistrations = 0;\nlet createdBeginCommands = 0;\nlet releasedBeginCommands = 0;\nlet createdCompletionCallbacks = 0;\nlet releasedCompletionCallbacks = 0;\nlet currentFramePlanAdmissionDepth = 0;\nlet nextBeginCommandSequence = 0;\nlet currentFramePlaybackCompletions: PibblFrameCompletion[] | undefined;\nlet currentFrameCommitAcknowledgements:\n PibblFrameCommitAcknowledgement[] | undefined;\nlet currentFrameOrderedPlaybackCompletions:\n OrderedPlaybackCompletion[] | undefined;\nlet nextOrderedPlaybackCompletionSequence = 0;\nlet schedulerTraceCollector: PibblSchedulerTraceCollector | undefined;\nlet schedulerTraceExclusive = false;\n\nsetSignalGraphPlanWorkNotifier(syncSignalGraphPlanWork);\n\nexport function registerRootInstance(instance: PibblInstance): void {\n if (!instance.parent && !registeredRoots.has(instance)) {\n registeredRoots.add(instance);\n createdRootRegistrations++;\n }\n}\n\nexport function unregisterRootInstance(instance: PibblInstance): void {\n if (registeredRoots.delete(instance)) {\n releasedRootRegistrations++;\n }\n removeRootWork(instance);\n cancelIdleHostFrame();\n}\n\nexport function requestInstanceRender(\n instance: PibblInstance,\n request: InstanceRenderRequest = {\n pendingRoot: NO_PENDING_ROOT,\n pendingUpdateParents: false,\n },\n): number {\n const revision = ++nextWorkRevision;\n const target = shouldDeferNewFrameWork()\n ? nextInstanceWork\n : currentInstanceWork;\n if (\n target === currentInstanceWork &&\n request.pendingRoot !== NO_PENDING_ROOT\n ) {\n supersedeDeferredRootPayloads(instance, revision);\n }\n let current: PibblInstance | undefined = instance;\n while (current) {\n current.requestedRenderRevision = revision;\n mergePendingInstanceWork(target, current, {\n firstRevision: revision,\n revision,\n pendingRoot: current === instance ? request.pendingRoot : NO_PENDING_ROOT,\n pendingRootRevision:\n current === instance && request.pendingRoot !== NO_PENDING_ROOT\n ? revision\n : 0,\n pendingUpdateParents:\n current === instance && request.pendingUpdateParents,\n });\n synchronizeInstancePendingState(current);\n current = current.parent\n ? GLOBAL_STATE.pibblInstances.get(current.parent)\n : undefined;\n }\n requestHostFrameIfNeeded();\n return revision;\n}\n\n/** Whether an instance has work that has not yet completed a successful render. */\nexport function hasPendingInstanceRender(instance: PibblInstance): boolean {\n return (\n instance.requestedRenderRevision > instance.completedRenderRevision &&\n !(phase === \"render\" && nextInstanceWork.has(instance))\n );\n}\n\nexport function registerAdvanceParticipant(\n participant: PibblAdvanceParticipant,\n lane: PibblAdvanceLane = \"animation\",\n requestsFrames = true,\n): () => void {\n const registration: AdvanceRegistration = {\n participant,\n lane,\n registrationOrder: ++nextAdvanceRegistrationOrder,\n requestsFrames,\n active: true,\n };\n advanceRegistrations.add(registration);\n requestHostFrameIfNeeded();\n return () => {\n if (!registration.active) return;\n registration.active = false;\n advanceRegistrations.delete(registration);\n cancelIdleHostFrame();\n };\n}\n\n/** Queues immutable, realm-ordered work for the next frozen Begin prefix. */\nexport function queueBeginCommand(\n command: PibblBeginCommand,\n): PibblBeginCommandHandle {\n const sequence = ++nextBeginCommandSequence;\n const registration: BeginCommandRegistration = {\n accepted: Object.freeze({ sequence, command }),\n active: true,\n owned: true,\n };\n beginCommands.push(registration);\n createdBeginCommands++;\n requestHostFrameIfNeeded();\n return Object.freeze({\n sequence,\n cancel(): void {\n if (!registration.active) return;\n registration.active = false;\n const index = beginCommands.indexOf(registration);\n if (index >= 0) {\n beginCommands.splice(index, 1);\n releaseBeginCommand(registration);\n }\n cancelIdleHostFrame();\n },\n });\n}\n\n/** Queues scheduler-owned work for Complete in the currently advancing frame. */\nexport function queueCurrentFrameCompletion(\n callback: PibblFrameCompletion,\n): () => void {\n if (\n currentFramePlaybackCompletions === undefined ||\n (phase !== \"begin\" && phase !== \"advance\")\n ) {\n return queueFrameCompletion(callback);\n }\n currentFramePlaybackCompletions.push(callback);\n createdCompletionCallbacks++;\n return createFrameCompletionCancellation(callback);\n}\n\n/** Registers playback state adoption against this frame's explicit Commit outcome. */\nexport function queueCurrentFrameCommitAcknowledgement(\n callback: PibblFrameCommitAcknowledgement,\n): () => void {\n if (\n currentFrameCommitAcknowledgements === undefined ||\n (phase !== \"begin\" && phase !== \"advance\")\n ) {\n throw new Error(\n \"Pibbl frame Commit acknowledgements may only be queued during Begin or Advance.\",\n );\n }\n currentFrameCommitAcknowledgements.push(callback);\n createdCompletionCallbacks++;\n let active = true;\n return () => {\n if (!active) return;\n active = false;\n const acknowledgements = currentFrameCommitAcknowledgements;\n const index = acknowledgements?.indexOf(callback) ?? -1;\n if (index < 0) return;\n acknowledgements!.splice(index, 1);\n releasedCompletionCallbacks++;\n cancelIdleHostFrame();\n };\n}\n\n/** Queues one playback delivery ordered by run identity, then source insertion. */\nexport function queueCurrentFrameOrderedPlaybackCompletion(\n registrationOrder: number,\n callback: PibblFrameCompletion,\n): void {\n if (currentFrameOrderedPlaybackCompletions === undefined) {\n queueFrameCompletion(callback);\n return;\n }\n currentFrameOrderedPlaybackCompletions.push({\n registrationOrder,\n sequence: ++nextOrderedPlaybackCompletionSequence,\n callback,\n });\n createdCompletionCallbacks++;\n}\n\nexport function queueFrameCompletion(callback: PibblFrameCompletion): () => void {\n frameCompletions.push(callback);\n createdCompletionCallbacks++;\n requestHostFrameIfNeeded();\n return createFrameCompletionCancellation(callback);\n}\n\n/** Queues signal-driven imperative work for an eligible Complete phase. */\nexport function queueReactionCompletion(\n callback: PibblFrameCompletion,\n): () => void {\n reactionCompletions.push(callback);\n createdCompletionCallbacks++;\n requestHostFrameIfNeeded();\n return createFrameCompletionCancellation(callback, reactionCompletions);\n}\n\n/** @internal Emits one immutable fact only while a source-only collector is installed. */\nexport function recordSchedulerTrace(record: PibblSchedulerTraceRecord): void {\n const collector = schedulerTraceCollector;\n if (collector === undefined) return;\n try {\n collector(Object.freeze(record));\n } catch {\n if (schedulerTraceCollector === collector) {\n schedulerTraceCollector = undefined;\n schedulerTraceExclusive = false;\n }\n }\n}\n\nexport function requestRendererParticipantWork(\n owner: RendererParticipantOwner,\n request: RendererParticipantWorkRequest,\n): void {\n if (!owner.isActive()) return;\n const rendererWorkByOwner = shouldDeferNewFrameWork()\n ? nextRendererWorkByOwner\n : currentRendererWorkByOwner;\n let workByKey = rendererWorkByOwner.get(owner);\n if (!workByKey) {\n workByKey = new Map();\n rendererWorkByOwner.set(owner, workByKey);\n }\n const existing = workByKey.get(request.key);\n if (existing) {\n existing.request = request;\n } else {\n workByKey.set(request.key, {\n owner,\n request,\n order: ++nextRendererWorkOrder,\n });\n }\n requestInstanceRender(owner.instance);\n}\n\nexport function queueRendererParticipantComplete(\n owner: RendererParticipantOwner,\n callback: PibblFrameCompletion,\n): void {\n if (!owner.isActive()) return;\n const completions = shouldDeferNewFrameWork()\n ? nextRendererParticipantCompletions\n : currentRendererParticipantCompletions;\n completions.push({\n owner,\n callback,\n order: ++nextRendererCompletionOrder,\n });\n createdCompletionCallbacks++;\n requestHostFrameIfNeeded();\n}\n\nexport function removeRendererParticipantOwner(\n owner: RendererParticipantOwner,\n): void {\n currentRendererWorkByOwner.delete(owner);\n nextRendererWorkByOwner.delete(owner);\n for (const completions of [\n currentRendererParticipantCompletions,\n nextRendererParticipantCompletions,\n ]) {\n for (let index = completions.length - 1; index >= 0; index--) {\n if (completions[index].owner === owner) {\n completions.splice(index, 1);\n releasedCompletionCallbacks++;\n }\n }\n }\n cancelIdleHostFrame();\n}\n\nexport function getCurrentFrameSnapshot(): PibblFrameSnapshot | undefined {\n return GLOBAL_STATE.frameSnapshot ?? currentFrame;\n}\n\n/**\n * Returns a diagnostic snapshot of the shared realm scheduler without advancing it.\n *\n * @returns Current scheduler counters and pending-work state. See {@link RealmSchedulerSnapshot}.\n *\n * @see {@link ManualSchedulerDriver}\n */\nexport function snapshotRealmScheduler(): RealmSchedulerSnapshot {\n return Object.freeze({\n phase,\n pendingHostFrames: pendingHostFrame === undefined ? 0 : 1,\n registeredRoots: registeredRoots.size,\n advanceParticipants: advanceRegistrations.size,\n completionCallbacks:\n frameCompletions.length +\n reactionCompletions.length +\n (currentFrameCommitAcknowledgements?.length ?? 0) +\n (currentFramePlaybackCompletions?.length ?? 0) +\n (currentFrameOrderedPlaybackCompletions?.length ?? 0) +\n currentRendererParticipantCompletions.length +\n nextRendererParticipantCompletions.length,\n createdRootRegistrations,\n releasedRootRegistrations,\n createdBeginCommands,\n releasedBeginCommands,\n createdCompletionCallbacks,\n releasedCompletionCallbacks,\n dirtyInstances: countDirtyInstances(),\n dirtyRoots: countDirtyRoots(),\n registeredAdvanceParticipants: advanceRegistrations.size,\n queuedFrameCompletions: frameCompletions.length,\n queuedReactionCompletions: reactionCompletions.length,\n queuedBeginCommands: beginCommands.length,\n currentFrame,\n });\n}\n\nexport function installSchedulerDriverForTest(\n driver: SchedulerDriver,\n): () => void {\n if (pendingHostFrame !== undefined || phase !== \"idle\") {\n throw new Error(\n \"Cannot replace the Pibbl scheduler driver while a frame is active.\",\n );\n }\n const previous = schedulerDriver;\n schedulerDriver = driver;\n return () => {\n if (pendingHostFrame !== undefined || phase !== \"idle\") {\n throw new Error(\n \"Cannot restore the Pibbl scheduler driver while a frame is active.\",\n );\n }\n schedulerDriver = previous;\n };\n}\n\n/** @internal Test/diagnostic seam; production retains no trace history. */\nexport function installSchedulerTraceCollectorForTest(\n collector: PibblSchedulerTraceCollector,\n exclusive = false,\n): () => void {\n if (schedulerTraceExclusive || (exclusive && schedulerTraceCollector !== undefined)) {\n throw new Error('Scheduler trace collector is already owned.');\n }\n const previous = schedulerTraceCollector;\n schedulerTraceCollector = collector;\n schedulerTraceExclusive = exclusive;\n return () => {\n if (schedulerTraceCollector === collector) {\n schedulerTraceCollector = previous;\n schedulerTraceExclusive = false;\n }\n };\n}\n\nfunction requestHostFrameIfNeeded(): void {\n if (pendingHostFrame !== undefined || phase !== \"idle\" || !hasFrameWork()) {\n return;\n }\n const driver = getSchedulerDriver();\n pendingHostFrame = driver.requestFrame(runFrame);\n}\n\nfunction runFrame(hostTime: number): void {\n pendingHostFrame = undefined;\n const snapshot = Object.freeze({\n frameId: ++nextFrameId,\n hostTime,\n logicalTime: hostTime,\n });\n currentFrame = snapshot;\n const errors: unknown[] = [];\n const transactions: Array<{\n root: PibblInstance;\n transaction: RootTransaction;\n success: boolean;\n }> = [];\n\n phase = \"begin\";\n if (schedulerTraceCollector) recordSchedulerTrace({ kind: 'scheduler-phase', collectedErrors: errors.length, phase, ...snapshot });\n let rootJobs = captureRootJobs();\n const commands = beginCommands.splice(0);\n const completions = frameCompletions.splice(0);\n const batch = createSignalCommitBatch();\n currentFramePlaybackCompletions = [];\n currentFrameCommitAcknowledgements = [];\n currentFrameOrderedPlaybackCompletions = [];\n for (const registration of commands) {\n if (!registration.active) {\n releaseBeginCommand(registration);\n continue;\n }\n registration.active = false;\n const { command, sequence } = registration.accepted;\n try {\n command(snapshot, batch, sequence);\n } catch (error) {\n batch.discardWriter(command);\n errors.push(error);\n } finally {\n releaseBeginCommand(registration);\n }\n }\n const registrations = Object.freeze(\n Array.from(advanceRegistrations).sort(\n (a, b) =>\n ADVANCE_LANE_ORDER[a.lane] - ADVANCE_LANE_ORDER[b.lane] ||\n a.registrationOrder - b.registrationOrder,\n ),\n );\n\n phase = \"advance\";\n if (schedulerTraceCollector) recordSchedulerTrace({ kind: 'scheduler-phase', collectedErrors: errors.length, phase, ...snapshot });\n for (const registration of registrations) {\n if (!registration.active) continue;\n const { participant } = registration;\n try {\n withDirectSignalWriteForbidden(\n \"Cannot write to a signal directly during Pibbl scheduler Advance; stage it through the provided batch.\",\n () => participant(snapshot, batch),\n );\n } catch (error) {\n batch.discardWriter(participant);\n errors.push(error);\n }\n }\n\n phase = \"commit\";\n if (schedulerTraceCollector) recordSchedulerTrace({ kind: 'scheduler-phase', collectedErrors: errors.length, phase, ...snapshot });\n let commitApplied = false;\n try {\n withCurrentFramePlanAdmission(() =>\n batch.commit(() => {\n commitApplied = true;\n }),\n );\n } catch (error) {\n errors.push(error);\n }\n const commitAcknowledgements = currentFrameCommitAcknowledgements;\n currentFrameCommitAcknowledgements = undefined;\n const commitOutcome = Object.freeze({ applied: commitApplied });\n for (const acknowledgement of commitAcknowledgements) {\n try {\n acknowledgement(snapshot, commitOutcome);\n } catch (error) {\n errors.push(error);\n } finally {\n releasedCompletionCallbacks++;\n }\n }\n\n phase = \"plan\";\n if (schedulerTraceCollector) recordSchedulerTrace({ kind: 'scheduler-phase', collectedErrors: errors.length, commitApplied, phase, ...snapshot });\n try {\n withCurrentFramePlanAdmission(flushPendingComputedValidations);\n } catch (error) {\n errors.push(error);\n }\n rootJobs = mergeRootJobs(rootJobs, captureRootJobs());\n const executableInstances = new Set(\n rootJobs.flatMap((rootJob) =>\n rootJob.instances.map((instanceJob) => instanceJob.instance),\n ),\n );\n const blockedRendererOwners = new Set<RendererParticipantOwner>();\n const rendererWork = captureRendererParticipantWork(\n executableInstances,\n blockedRendererOwners,\n );\n const rendererCompletions = captureRendererParticipantCompletions(\n blockedRendererOwners,\n );\n const retryRendererOwners = new Set<RendererParticipantOwner>();\n\n phase = \"render\";\n if (schedulerTraceCollector) recordSchedulerTrace({ kind: 'scheduler-phase', collectedErrors: errors.length, commitApplied, phase, ...snapshot });\n for (const rootJob of rootJobs) {\n if (\n !registeredRoots.has(rootJob.root) ||\n rootJob.root.mainTeardowns.closed\n ) {\n continue;\n }\n const transaction = createRootTransaction();\n const transactionRecord = {\n root: rootJob.root,\n transaction,\n success: false,\n };\n transactions.push(transactionRecord);\n rootJob.root.eventRoot.renderTransaction = transaction;\n let failedInstance: PibblInstance | undefined;\n let rendererFailed = false;\n try {\n for (let jobIndex = 0; jobIndex < rootJob.instances.length; jobIndex++) {\n const job = rootJob.instances[jobIndex];\n if (job.instance.mainTeardowns.closed) continue;\n const participantWork = rendererWork.get(job.instance);\n const resourceFailures = runRendererParticipantStage(\n participantWork,\n \"resource\",\n snapshot,\n );\n if (resourceFailures.length > 0) {\n restoreRendererParticipantFailure(\n rootJob,\n rendererWork,\n jobIndex,\n retryRendererOwners,\n );\n errors.push(...resourceFailures);\n rendererFailed = true;\n break;\n }\n const drawFailures = runRendererParticipantStage(\n participantWork,\n \"draw\",\n snapshot,\n );\n if (drawFailures.length > 0) {\n restoreRendererParticipantFailure(\n rootJob,\n rendererWork,\n jobIndex,\n retryRendererOwners,\n );\n errors.push(...drawFailures);\n rendererFailed = true;\n break;\n }\n try {\n executeRender(\n job.instance.canvas,\n snapshot.logicalTime,\n job.pendingRoot,\n false,\n snapshot,\n );\n const composeFailures = runRendererParticipantStage(\n participantWork,\n \"compose\",\n snapshot,\n );\n if (composeFailures.length > 0) {\n restoreRendererParticipantFailure(\n rootJob,\n rendererWork,\n jobIndex,\n retryRendererOwners,\n );\n errors.push(...composeFailures);\n rendererFailed = true;\n break;\n }\n } catch (error) {\n failedInstance = job.instance;\n throw error;\n }\n completeInstanceRenderRevision(job.instance, job.revision);\n }\n transactionRecord.success = !rendererFailed;\n } catch (error) {\n if (failedInstance && failedInstance !== rootJob.root) {\n restoreRootJob(rootJob);\n }\n errors.push(error);\n }\n }\n\n phase = \"complete\";\n if (schedulerTraceCollector) recordSchedulerTrace({ kind: 'scheduler-phase', collectedErrors: errors.length, commitApplied, phase, ...snapshot });\n const reactions = reactionCompletions.splice(0);\n for (const record of transactions) {\n try {\n record.transaction.finish(record.success);\n } catch (error) {\n errors.push(error);\n } finally {\n if (record.root.eventRoot.renderTransaction === record.transaction) {\n record.root.eventRoot.renderTransaction = undefined;\n }\n }\n }\n for (const reaction of reactions) {\n try {\n reaction(snapshot);\n } catch (error) {\n errors.push(error);\n } finally {\n releasedCompletionCallbacks++;\n }\n }\n for (const completion of completions) {\n try {\n completion(snapshot);\n } catch (error) {\n errors.push(error);\n } finally {\n releasedCompletionCallbacks++;\n }\n }\n const playbackCompletions = currentFramePlaybackCompletions;\n for (const completion of playbackCompletions) {\n try {\n completion(snapshot);\n } catch (error) {\n errors.push(error);\n } finally {\n releasedCompletionCallbacks++;\n }\n }\n currentFramePlaybackCompletions = undefined;\n const orderedPlaybackCompletions = currentFrameOrderedPlaybackCompletions;\n currentFrameOrderedPlaybackCompletions = undefined;\n orderedPlaybackCompletions.sort(\n (left, right) =>\n left.registrationOrder - right.registrationOrder ||\n left.sequence - right.sequence,\n );\n for (const completion of orderedPlaybackCompletions) {\n try {\n completion.callback(snapshot);\n } catch (error) {\n errors.push(error);\n } finally {\n releasedCompletionCallbacks++;\n }\n }\n for (const completion of rendererCompletions) {\n if (!completion.owner.isActive()) {\n releasedCompletionCallbacks++;\n continue;\n }\n if (retryRendererOwners.has(completion.owner)) {\n nextRendererParticipantCompletions.push(completion);\n continue;\n }\n try {\n completion.callback(snapshot);\n } catch (error) {\n errors.push(error);\n } finally {\n releasedCompletionCallbacks++;\n }\n }\n batch.clear();\n currentFrame = undefined;\n phase = \"idle\";\n if (schedulerTraceCollector) recordSchedulerTrace({ kind: 'scheduler-phase', collectedErrors: errors.length, commitApplied, phase, ...snapshot, errorCount: errors.length });\n promoteNextFrameWork();\n requestHostFrameIfNeeded();\n throwCollectedErrors(errors);\n}\n\nfunction releaseBeginCommand(registration: BeginCommandRegistration): void {\n if (!registration.owned) return;\n registration.owned = false;\n releasedBeginCommands++;\n}\n\nfunction createFrameCompletionCancellation(\n callback: PibblFrameCompletion,\n ownedCompletions?: PibblFrameCompletion[],\n): () => void {\n let active = true;\n return () => {\n if (!active) return;\n active = false;\n for (const completions of ownedCompletions === undefined\n ? [frameCompletions, currentFramePlaybackCompletions]\n : [ownedCompletions]) {\n const index = completions?.indexOf(callback) ?? -1;\n if (index < 0) continue;\n completions!.splice(index, 1);\n releasedCompletionCallbacks++;\n cancelIdleHostFrame();\n return;\n }\n };\n}\n\nfunction captureRootJobs(): RootRenderJob[] {\n const requested = Array.from(currentInstanceWork);\n currentInstanceWork.clear();\n const jobsByRoot = new Map<PibblInstance, InstanceRenderJob[]>();\n for (const [instance, work] of requested) {\n synchronizeInstancePendingState(instance);\n if (instance.mainTeardowns.closed) continue;\n const root = findRoot(instance);\n if (!root || !registeredRoots.has(root)) continue;\n const jobs = jobsByRoot.get(root) ?? [];\n jobs.push({\n instance,\n firstRevision: work.firstRevision,\n revision: work.revision,\n pendingRoot: work.pendingRoot,\n pendingRootRevision: work.pendingRootRevision,\n pendingUpdateParents: work.pendingUpdateParents,\n });\n jobsByRoot.set(root, jobs);\n }\n\n const result: RootRenderJob[] = [];\n for (const root of registeredRoots) {\n const jobs = jobsByRoot.get(root);\n if (!jobs) continue;\n jobs.sort(\n (left, right) =>\n instanceDepth(right.instance) - instanceDepth(left.instance),\n );\n result.push({ root, instances: jobs });\n }\n return result;\n}\n\nfunction mergeRootJobs(\n initial: RootRenderJob[],\n planned: RootRenderJob[],\n): RootRenderJob[] {\n const plannedByRoot = new Map(\n planned.map((job) => [job.root, job.instances]),\n );\n const merged: RootRenderJob[] = [];\n for (const root of registeredRoots) {\n const initialJob = initial.find((job) => job.root === root);\n const plannedInstances = plannedByRoot.get(root);\n if (!initialJob && !plannedInstances) continue;\n const byInstance = new Map<PibblInstance, InstanceRenderJob>();\n for (const job of initialJob?.instances ?? []) {\n byInstance.set(job.instance, job);\n }\n for (const job of plannedInstances ?? []) {\n const existing = byInstance.get(job.instance);\n byInstance.set(\n job.instance,\n existing\n ? {\n instance: job.instance,\n firstRevision: Math.min(\n existing.firstRevision,\n job.firstRevision,\n ),\n revision: Math.max(existing.revision, job.revision),\n pendingRoot:\n job.pendingRootRevision > existing.pendingRootRevision\n ? job.pendingRoot\n : existing.pendingRoot,\n pendingRootRevision: Math.max(\n existing.pendingRootRevision,\n job.pendingRootRevision,\n ),\n pendingUpdateParents:\n existing.pendingUpdateParents || job.pendingUpdateParents,\n }\n : job,\n );\n }\n const instances = Array.from(byInstance.values());\n instances.sort(\n (left, right) =>\n instanceDepth(right.instance) - instanceDepth(left.instance),\n );\n merged.push({ root, instances });\n }\n return merged;\n}\n\nfunction findRoot(instance: PibblInstance): PibblInstance | undefined {\n let current: PibblInstance | undefined = instance;\n while (current?.parent) {\n current = GLOBAL_STATE.pibblInstances.get(current.parent);\n }\n return current;\n}\n\nfunction supersedeDeferredRootPayloads(\n ancestor: PibblInstance,\n revision: number,\n): void {\n for (const [instance, deferred] of nextInstanceWork) {\n if (\n deferred.pendingRootRevision > 0 &&\n deferred.pendingRootRevision < revision &&\n isInstanceWithin(instance, ancestor)\n ) {\n // A later sanctioned ancestor root owns the retained subtree. Preserve\n // the older revision/composition job, but never let its obsolete root\n // payload overwrite the newer tree in the following frame.\n deferred.pendingRoot = NO_PENDING_ROOT;\n deferred.pendingRootRevision = 0;\n synchronizeInstancePendingState(instance);\n }\n }\n}\n\nfunction isInstanceWithin(\n instance: PibblInstance,\n ancestor: PibblInstance,\n): boolean {\n let current: PibblInstance | undefined = instance;\n while (current) {\n if (current === ancestor) return true;\n current = current.parent\n ? GLOBAL_STATE.pibblInstances.get(current.parent)\n : undefined;\n }\n return false;\n}\n\nfunction restoreRootJob(rootJob: RootRenderJob): void {\n if (!registeredRoots.has(rootJob.root) || rootJob.root.mainTeardowns.closed) {\n return;\n }\n for (const job of rootJob.instances) {\n const { instance } = job;\n if (\n instance.mainTeardowns.closed ||\n GLOBAL_STATE.pibblInstances.get(instance.canvas) !== instance\n ) {\n continue;\n }\n mergePendingInstanceWork(nextInstanceWork, instance, job);\n synchronizeInstancePendingState(instance);\n }\n}\n\nfunction instanceDepth(instance: PibblInstance): number {\n let depth = 0;\n let current: PibblInstance | undefined = instance;\n while (current?.parent) {\n depth++;\n current = GLOBAL_STATE.pibblInstances.get(current.parent);\n }\n return depth;\n}\n\nfunction removeRootWork(root: PibblInstance): void {\n for (const workByInstance of [currentInstanceWork, nextInstanceWork]) {\n for (const instance of workByInstance.keys()) {\n if (findRoot(instance) === root) {\n workByInstance.delete(instance);\n synchronizeInstancePendingState(instance);\n }\n }\n }\n}\n\nfunction countDirtyRoots(): number {\n const roots = new Set<PibblInstance>();\n for (const workByInstance of [currentInstanceWork, nextInstanceWork]) {\n for (const instance of workByInstance.keys()) {\n const root = findRoot(instance);\n if (root && registeredRoots.has(root)) roots.add(root);\n }\n }\n return roots.size;\n}\n\nfunction countDirtyInstances(): number {\n return new Set([...currentInstanceWork.keys(), ...nextInstanceWork.keys()])\n .size;\n}\n\nfunction hasActiveAdvanceParticipant(): boolean {\n for (const registration of advanceRegistrations)\n if (registration.requestsFrames) return true;\n return false;\n}\n\nfunction hasFrameWork(): boolean {\n return (\n currentInstanceWork.size > 0 ||\n nextInstanceWork.size > 0 ||\n hasPendingComputedValidations() ||\n beginCommands.length > 0 ||\n hasActiveAdvanceParticipant() ||\n frameCompletions.length > 0 ||\n reactionCompletions.length > 0 ||\n currentRendererWorkByOwner.size > 0 ||\n nextRendererWorkByOwner.size > 0 ||\n currentRendererParticipantCompletions.length > 0 ||\n nextRendererParticipantCompletions.length > 0\n );\n}\n\nfunction captureRendererParticipantWork(\n executableInstances: ReadonlySet<PibblInstance>,\n blockedOwners: Set<RendererParticipantOwner>,\n): Map<PibblInstance, RendererParticipantWorkRegistration[]> {\n const byInstance = new Map<\n PibblInstance,\n RendererParticipantWorkRegistration[]\n >();\n for (const [owner, workByKey] of currentRendererWorkByOwner) {\n if (!owner.isActive()) {\n currentRendererWorkByOwner.delete(owner);\n continue;\n }\n if (!executableInstances.has(owner.instance)) {\n blockedOwners.add(owner);\n continue;\n }\n const work = byInstance.get(owner.instance) ?? [];\n for (const registration of workByKey.values()) {\n work.push(registration);\n }\n currentRendererWorkByOwner.delete(owner);\n if (work.length > 0) byInstance.set(owner.instance, work);\n }\n const kindOrder = { resource: 0, draw: 1, compose: 2 } as const;\n for (const work of byInstance.values()) {\n work.sort(\n (left, right) =>\n kindOrder[left.request.kind] - kindOrder[right.request.kind] ||\n left.order - right.order,\n );\n }\n return byInstance;\n}\n\nfunction captureRendererParticipantCompletions(\n blockedOwners: ReadonlySet<RendererParticipantOwner>,\n): RendererParticipantCompletion[] {\n const captured: RendererParticipantCompletion[] = [];\n for (let index = 0; index < currentRendererParticipantCompletions.length;) {\n const completion = currentRendererParticipantCompletions[index];\n if (blockedOwners.has(completion.owner)) {\n index++;\n continue;\n }\n currentRendererParticipantCompletions.splice(index, 1);\n captured.push(completion);\n }\n captured.sort((left, right) => left.order - right.order);\n return captured;\n}\n\nfunction runRendererParticipantStage(\n work: RendererParticipantWorkRegistration[] | undefined,\n kind: RendererParticipantWorkRequest[\"kind\"],\n snapshot: PibblFrameSnapshot,\n): unknown[] {\n const errors: unknown[] = [];\n if (!work) return errors;\n for (const registration of work) {\n if (registration.request.kind !== kind || !registration.owner.isActive()) {\n continue;\n }\n try {\n registration.request.run(snapshot);\n } catch (error) {\n errors.push(error);\n }\n }\n return errors;\n}\n\nfunction restoreRendererParticipantFailure(\n rootJob: RootRenderJob,\n rendererWork: Map<PibblInstance, RendererParticipantWorkRegistration[]>,\n failedJobIndex: number,\n retryOwners: Set<RendererParticipantOwner>,\n): void {\n restoreRootJob(rootJob);\n const ownersToRequest = new Set<RendererParticipantOwner>();\n for (\n let jobIndex = failedJobIndex;\n jobIndex < rootJob.instances.length;\n jobIndex++\n ) {\n const work = rendererWork.get(rootJob.instances[jobIndex].instance);\n if (!work) continue;\n for (const registration of work) {\n const { owner, request } = registration;\n if (!owner.isActive()) continue;\n let workByKey = nextRendererWorkByOwner.get(owner);\n if (!workByKey) {\n workByKey = new Map();\n nextRendererWorkByOwner.set(owner, workByKey);\n }\n if (!workByKey.has(request.key)) {\n workByKey.set(request.key, registration);\n }\n ownersToRequest.add(owner);\n retryOwners.add(owner);\n }\n }\n for (const owner of ownersToRequest) {\n requestInstanceRender(owner.instance);\n }\n}\n\nfunction mergePendingInstanceWork(\n target: Map<PibblInstance, PendingInstanceWork>,\n instance: PibblInstance,\n incoming: PendingInstanceWork,\n): void {\n const existing = target.get(instance);\n if (!existing) {\n target.set(instance, { ...incoming });\n return;\n }\n existing.firstRevision = Math.min(\n existing.firstRevision,\n incoming.firstRevision,\n );\n existing.revision = Math.max(existing.revision, incoming.revision);\n if (incoming.pendingRootRevision > existing.pendingRootRevision) {\n existing.pendingRoot = incoming.pendingRoot;\n existing.pendingRootRevision = incoming.pendingRootRevision;\n }\n existing.pendingUpdateParents ||= incoming.pendingUpdateParents;\n}\n\nfunction synchronizeInstancePendingState(instance: PibblInstance): void {\n const current = currentInstanceWork.get(instance);\n const next = nextInstanceWork.get(instance);\n const rootSource = !current\n ? next\n : !next\n ? current\n : current.pendingRootRevision >= next.pendingRootRevision\n ? current\n : next;\n instance.pendingRoot = rootSource ? rootSource.pendingRoot : NO_PENDING_ROOT;\n instance.pendingUpdateParents = Boolean(\n current?.pendingUpdateParents || next?.pendingUpdateParents,\n );\n}\n\nexport function completeInstanceRenderRevision(\n instance: PibblInstance,\n revision: number,\n): void {\n const pendingFirstRevisions = [\n currentInstanceWork.get(instance)?.firstRevision,\n nextInstanceWork.get(instance)?.firstRevision,\n ].filter((value): value is number => value !== undefined);\n if (pendingFirstRevisions.length === 0) {\n instance.completedRenderRevision = instance.requestedRenderRevision;\n return;\n }\n // Revisions are global request order. Do not advance across an older hole\n // that was deferred before newer Commit/Plan work joined this frame.\n if (Math.min(...pendingFirstRevisions) > revision) {\n instance.completedRenderRevision = Math.max(\n instance.completedRenderRevision,\n revision,\n );\n }\n}\n\nfunction promoteNextFrameWork(): void {\n const pendingInstances = new Set<PibblInstance>();\n for (const [instance, work] of nextInstanceWork) {\n mergePendingInstanceWork(currentInstanceWork, instance, work);\n pendingInstances.add(instance);\n }\n nextInstanceWork.clear();\n for (const instance of pendingInstances) {\n synchronizeInstancePendingState(instance);\n }\n\n for (const [owner, nextWorkByKey] of nextRendererWorkByOwner) {\n let currentWorkByKey = currentRendererWorkByOwner.get(owner);\n if (!currentWorkByKey) {\n currentWorkByKey = new Map();\n currentRendererWorkByOwner.set(owner, currentWorkByKey);\n }\n for (const [key, registration] of nextWorkByKey) {\n const existing = currentWorkByKey.get(key);\n if (existing) {\n existing.request = registration.request;\n } else {\n currentWorkByKey.set(key, registration);\n }\n }\n }\n nextRendererWorkByOwner.clear();\n\n currentRendererParticipantCompletions.push(\n ...nextRendererParticipantCompletions,\n );\n currentRendererParticipantCompletions.sort(\n (left, right) => left.order - right.order,\n );\n nextRendererParticipantCompletions.length = 0;\n}\n\nfunction cancelIdleHostFrame(): void {\n if (pendingHostFrame === undefined || hasFrameWork()) return;\n const frame = pendingHostFrame;\n pendingHostFrame = undefined;\n runTeardown(() => getSchedulerDriver().cancelFrame(frame));\n}\n\nfunction syncSignalGraphPlanWork(): void {\n if (hasPendingComputedValidations()) {\n requestHostFrameIfNeeded();\n } else {\n cancelIdleHostFrame();\n }\n}\n\nfunction withCurrentFramePlanAdmission<T>(callback: () => T): T {\n currentFramePlanAdmissionDepth++;\n try {\n return callback();\n } finally {\n currentFramePlanAdmissionDepth--;\n }\n}\n\nfunction shouldDeferNewFrameWork(): boolean {\n return (\n phase !== \"idle\" &&\n phase !== \"begin\" &&\n currentFramePlanAdmissionDepth === 0\n );\n}\n\nfunction getSchedulerDriver(): SchedulerDriver {\n return (\n schedulerDriver ?? {\n requestFrame: (callback) => globalThis.requestAnimationFrame(callback),\n cancelFrame: (frameId) => globalThis.cancelAnimationFrame(frameId),\n }\n );\n}\n\nfunction createRootTransaction(): RootTransaction {\n return new RootRenderTransaction();\n}\n\nfunction throwCollectedErrors(errors: unknown[]): void {\n if (errors.length === 1) throw errors[0];\n if (errors.length > 1) {\n throw new AggregateError(errors, \"Multiple Pibbl frame operations failed.\");\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,257 @@
1
+ import type { pibblInternalQueueSimulationBegin } from "./simulation-participant.js";
2
+ import type { WritableSignal } from '../signals/types.js';
3
+ import type { PibblEventHandlers, PibblEventTargetOptions, PibblEventTargetSnapshot, PibblPointerEvents } from '../events/types.js';
4
+ declare const internalRenderOwnerBrand: unique symbol;
5
+ /**
6
+ * Opaque ownership identity for renderer scheduling and cleanup.
7
+ *
8
+ * @see {@link pibblInternalCreateSignalConsumer}
9
+ * @see {@link pibblInternalCurrentRenderOwner}
10
+ * @see {@link pibblInternalOnRenderFinish}
11
+ */
12
+ export interface PibblInternalRenderOwner {
13
+ readonly [internalRenderOwnerBrand]: true;
14
+ }
15
+ /**
16
+ * Shared scheduler frame identity, logical timing, and admission context.
17
+ *
18
+ * @see {@link pibblInternalCurrentFrame}
19
+ * @see {@link pibblInternalQueueBegin}
20
+ * @see {@link pibblInternalQueueComplete}
21
+ */
22
+ export interface PibblInternalFrame {
23
+ /** Identifier of the shared scheduler frame. See {@link PibblInternalFrame}. */
24
+ readonly frameId: number;
25
+ /** Logical scheduler time in milliseconds. See {@link PibblInternalFrame}. */
26
+ readonly logicalTime: number;
27
+ }
28
+ /**
29
+ * Staged signal writes published together during scheduler Commit.
30
+ *
31
+ * @see {@link WritableSignal}
32
+ * @see {@link pibblInternalQueueBegin}
33
+ * @see {@link pibblInternalRegisterAdvance}
34
+ * @see {@link pibblInternalQueueSimulationBegin}
35
+ */
36
+ export interface PibblInternalSignalBatch {
37
+ /**
38
+ * Reads the current committed values required by this integration. See
39
+ * {@link PibblInternalSignalBatch}.
40
+ * @param signal - Signal whose staged or committed value should be read. See
41
+ * {@link WritableSignal} .
42
+ * @returns The current batch value, falling back to the committed signal value.
43
+ */
44
+ read<T>(signal: WritableSignal<T>): T;
45
+ /**
46
+ * Stages a signal write for publication during Commit. See {@link PibblInternalSignalBatch}.
47
+ * @param signal - Signal that will receive the value during Commit. See {@link WritableSignal}.
48
+ * @param value - Value to stage.
49
+ * @param writer - Identity used to attribute and discard staged writes.
50
+ */
51
+ stage<T>(signal: WritableSignal<T>, value: T, writer: object): void;
52
+ /**
53
+ * Discards writes belonging to the specified writer. See {@link PibblInternalSignalBatch}.
54
+ * @param writer - Writer identity whose pending writes should be discarded.
55
+ */
56
+ discardWriter(writer: object): void;
57
+ }
58
+ /**
59
+ * Sequence identity and cancellation capability for a queued scheduler command.
60
+ *
61
+ * @see {@link pibblInternalQueueBegin}
62
+ */
63
+ export interface PibblInternalCommandHandle {
64
+ /**
65
+ * Sequence number assigned when the scheduler command is queued. See
66
+ * {@link PibblInternalCommandHandle}.
67
+ */
68
+ readonly sequence: number;
69
+ /**
70
+ * Cancels this queued command before it is admitted by the scheduler. See
71
+ * {@link PibblInternalCommandHandle}.
72
+ */
73
+ cancel(): void;
74
+ }
75
+ /**
76
+ * Ordered renderer stages around one owning Canvas instance traversal.
77
+ * Every active callback in a stage runs in registration order. If one or more
78
+ * callbacks fail, their errors are reported in that order, later dependent
79
+ * stages are skipped, the root transaction fails, the instance revision stays
80
+ * incomplete, and the failed batch plus unexecuted batches later in the same
81
+ * root are retried on the next realm frame. Complete callbacks for those
82
+ * retried owners are deferred until a successful frame. Other owners and roots
83
+ * still complete normally.
84
+ *
85
+ * @see {@link pibblInternalRequestRendererWork}
86
+ */
87
+ export type PibblInternalRendererWorkKind = 'resource' | 'draw' | 'compose';
88
+ /**
89
+ * Dependency tracking and disposal operations for an integration-owned signal consumer.
90
+ *
91
+ * @see {@link pibblInternalCreateSignalConsumer}
92
+ */
93
+ export interface PibblInternalSignalConsumer {
94
+ /**
95
+ * Evaluates a callback while collecting signal dependencies for this consumer. See
96
+ * {@link PibblInternalSignalConsumer}.
97
+ * @param read - Synchronous computation whose signal dependencies are collected.
98
+ * @returns The computation's return value.
99
+ */
100
+ collect<T>(read: () => T): T;
101
+ /**
102
+ * Acknowledges the consumer's current invalidation as processed. See
103
+ * {@link PibblInternalSignalConsumer}.
104
+ */
105
+ markClean(): void;
106
+ /** Releases resources owned by this mounted object. See {@link PibblInternalSignalConsumer}. */
107
+ dispose(): void;
108
+ }
109
+ /**
110
+ * Returns the active render owner required by official integration scheduling operations.
111
+ *
112
+ * @returns The render owner for the current runtime context. See {@link PibblInternalRenderOwner}.
113
+ *
114
+ * @see {@link PibblInternalRenderOwner}
115
+ */
116
+ export declare function pibblInternalCurrentRenderOwner(): PibblInternalRenderOwner;
117
+ /**
118
+ * Creates an owner-scoped dependency consumer for an official renderer integration.
119
+ *
120
+ * @param options - Render owner, optional diagnostic name, and invalidation callback. See
121
+ * {@link PibblInternalRenderOwner} .
122
+ * @returns A consumer that tracks signal dependencies and owns their cleanup. See
123
+ * {@link PibblInternalSignalConsumer} .
124
+ *
125
+ * @see {@link PibblInternalRenderOwner}
126
+ * @see {@link PibblInternalSignalConsumer}
127
+ */
128
+ export declare function pibblInternalCreateSignalConsumer(options: {
129
+ owner: PibblInternalRenderOwner;
130
+ debugName?: string;
131
+ invalidate(): void;
132
+ }): PibblInternalSignalConsumer;
133
+ /**
134
+ * Requests keyed renderer work in the shared scheduler without creating a second frame loop.
135
+ *
136
+ * @param owner - Owner whose renderer work is being requested. See {@link PibblInternalRenderOwner}.
137
+ * @param request - Work identity, renderer category, and frame callback. See
138
+ * {@link PibblInternalRendererWorkKind} , {@link PibblInternalFrame} .
139
+ *
140
+ * @see {@link PibblInternalRenderOwner}
141
+ * @see {@link PibblInternalRendererWorkKind}
142
+ * @see {@link PibblInternalFrame}
143
+ */
144
+ export declare function pibblInternalRequestRendererWork(owner: PibblInternalRenderOwner, request: {
145
+ key: object;
146
+ kind: PibblInternalRendererWorkKind;
147
+ run(frame: PibblInternalFrame): void;
148
+ }): void;
149
+ /**
150
+ * Rejects commands issued from runtime evaluation contexts that forbid mutation.
151
+ *
152
+ * @see {@link pibblInternalQueueBegin}
153
+ */
154
+ export declare function pibblInternalAssertCommandAllowed(): void;
155
+ /**
156
+ * Queues an owner-scoped Begin command and returns a cancellation handle.
157
+ *
158
+ * @param owner - Owner admitting the command. See {@link PibblInternalRenderOwner}.
159
+ * @param callback - Begin-phase callback receiving frame, staged writes, and command sequence. See
160
+ * {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .
161
+ * @returns A handle that can cancel the queued command. See {@link PibblInternalCommandHandle}.
162
+ *
163
+ * @see {@link PibblInternalRenderOwner}
164
+ * @see {@link PibblInternalFrame}
165
+ * @see {@link PibblInternalSignalBatch}
166
+ * @see {@link PibblInternalCommandHandle}
167
+ */
168
+ export declare function pibblInternalQueueBegin(owner: PibblInternalRenderOwner, callback: (frame: PibblInternalFrame, batch: PibblInternalSignalBatch, sequence: number) => void): PibblInternalCommandHandle;
169
+ /**
170
+ * Registers renderer work for shared-frame Advance and returns its unregister callback.
171
+ *
172
+ * @param owner - Owner of the advancing work. See {@link PibblInternalRenderOwner}.
173
+ * @param callback - Advance callback receiving the frame and staged signal writes. See
174
+ * {@link PibblInternalFrame} , {@link PibblInternalSignalBatch} .
175
+ * @returns A function unregistering the Advance callback.
176
+ *
177
+ * @see {@link PibblInternalRenderOwner}
178
+ * @see {@link PibblInternalFrame}
179
+ * @see {@link PibblInternalSignalBatch}
180
+ */
181
+ export declare function pibblInternalRegisterAdvance(owner: PibblInternalRenderOwner, callback: (frame: PibblInternalFrame, batch: PibblInternalSignalBatch) => void): () => void;
182
+ /**
183
+ * Registers acknowledgement of the current frame's committed staged writes.
184
+ *
185
+ * @param owner - Owner of the pending commit. See {@link PibblInternalRenderOwner}.
186
+ * @param callback - Callback receiving the frame and whether the commit was applied. See
187
+ * {@link PibblInternalFrame} .
188
+ *
189
+ * @see {@link PibblInternalRenderOwner}
190
+ * @see {@link PibblInternalFrame}
191
+ */
192
+ export declare function pibblInternalQueueCurrentCommit(owner: PibblInternalRenderOwner, callback: (frame: PibblInternalFrame, outcome: Readonly<{
193
+ applied: boolean;
194
+ }>) => void): void;
195
+ /**
196
+ * Queues an owner-scoped completion callback in the current scheduler transaction.
197
+ *
198
+ * @param owner - Owner of the completion work. See {@link PibblInternalRenderOwner}.
199
+ * @param callback - Callback invoked during Complete with the shared frame. See
200
+ * {@link PibblInternalFrame} .
201
+ *
202
+ * @see {@link PibblInternalRenderOwner}
203
+ * @see {@link PibblInternalFrame}
204
+ */
205
+ export declare function pibblInternalQueueCurrentComplete(owner: PibblInternalRenderOwner, callback: (frame: PibblInternalFrame) => void): void;
206
+ /**
207
+ * Marks the owning renderer dirty and requests shared scheduler work.
208
+ *
209
+ * @param owner - Owner whose renderer should become dirty. See {@link PibblInternalRenderOwner}.
210
+ *
211
+ * @see {@link PibblInternalRenderOwner}
212
+ */
213
+ export declare function pibblInternalRequestRender(owner: PibblInternalRenderOwner): void;
214
+ /**
215
+ * Registers a callback reporting the outcome of the owner's render transaction.
216
+ *
217
+ * @param owner - Owner of the rendering transaction. See {@link PibblInternalRenderOwner}.
218
+ * @param callback - Callback receiving whether the transaction succeeded.
219
+ *
220
+ * @see {@link PibblInternalRenderOwner}
221
+ */
222
+ export declare function pibblInternalOnRenderFinish(owner: PibblInternalRenderOwner, callback: (success: boolean) => void): void;
223
+ /**
224
+ * Registers one painted logical target with its handlers, geometry, and participation policy.
225
+ *
226
+ * @param handlers - Handlers for the painted target. See {@link PibblEventHandlers}.
227
+ * @param options - Hit geometry and focus metadata. See {@link PibblEventTargetOptions}.
228
+ * @param pointerEvents - Pointer participation policy; defaults to auto. See
229
+ * {@link PibblPointerEvents} .
230
+ * @returns The painted event target snapshot. See {@link PibblEventTargetSnapshot}.
231
+ *
232
+ * @see {@link PibblEventHandlers}
233
+ * @see {@link PibblEventTargetOptions}
234
+ * @see {@link PibblPointerEvents}
235
+ * @see {@link PibblEventTargetSnapshot}
236
+ */
237
+ export declare function pibblInternalPaintTarget(handlers: PibblEventHandlers, options: PibblEventTargetOptions, pointerEvents?: PibblPointerEvents): PibblEventTargetSnapshot;
238
+ /**
239
+ * Returns timing and phase information for the current shared scheduler frame.
240
+ *
241
+ * @returns The shared scheduler frame for the active phase. See {@link PibblInternalFrame}.
242
+ *
243
+ * @see {@link PibblInternalFrame}
244
+ */
245
+ export declare function pibblInternalCurrentFrame(): PibblInternalFrame;
246
+ /**
247
+ * Queues an owner-scoped callback for a scheduler Complete phase.
248
+ *
249
+ * @param owner - Owner of the completion work. See {@link PibblInternalRenderOwner}.
250
+ * @param callback - Callback invoked during Complete with the shared frame. See
251
+ * {@link PibblInternalFrame} .
252
+ *
253
+ * @see {@link PibblInternalRenderOwner}
254
+ * @see {@link PibblInternalFrame}
255
+ */
256
+ export declare function pibblInternalQueueComplete(owner: PibblInternalRenderOwner, callback: (frame: PibblInternalFrame) => void): void;
257
+ export {};
@@ -0,0 +1,216 @@
1
+ import {
2
+ GLOBAL_STATE
3
+ } from "../global-state.js";
4
+ import {
5
+ collectSignalReads,
6
+ createSignalRenderConsumer,
7
+ disposeSignalRenderConsumer
8
+ } from "../signals/render-consumer.js";
9
+ import {
10
+ assertSignalCommandAllowed
11
+ } from "../signals/graph.js";
12
+ import { usePaintTarget } from "../hooks/use-paint-target.js";
13
+ import {
14
+ getCurrentFrameSnapshot,
15
+ queueBeginCommand,
16
+ queueCurrentFrameCommitAcknowledgement,
17
+ queueCurrentFrameCompletion,
18
+ queueRendererParticipantComplete,
19
+ registerAdvanceParticipant,
20
+ removeRendererParticipantOwner,
21
+ requestInstanceRender,
22
+ requestRendererParticipantWork
23
+ } from "./realm-scheduler.js";
24
+ const ownersByComponent = /* @__PURE__ */ new WeakMap();
25
+ const ownerStates = /* @__PURE__ */ new WeakMap();
26
+ function pibblInternalCurrentRenderOwner() {
27
+ const component = GLOBAL_STATE.componentRefs;
28
+ const instance = GLOBAL_STATE.currentPibblInstance;
29
+ if (!component || !instance) {
30
+ throw new Error(
31
+ "pibblInternalCurrentRenderOwner() is only available during Pibbl component evaluation."
32
+ );
33
+ }
34
+ const existing = ownersByComponent.get(component);
35
+ if (existing) return existing;
36
+ const owner = {};
37
+ const state = {};
38
+ const schedulerOwner = {
39
+ instance,
40
+ isActive: () => state.active && isCurrentOwner(state)
41
+ };
42
+ Object.assign(state, {
43
+ component,
44
+ instance,
45
+ schedulerOwner,
46
+ consumers: /* @__PURE__ */ new Set(),
47
+ beginCommands: /* @__PURE__ */ new Set(),
48
+ advanceRegistrations: /* @__PURE__ */ new Set(),
49
+ active: true
50
+ });
51
+ ownersByComponent.set(component, owner);
52
+ ownerStates.set(owner, state);
53
+ component.teardowns.add(() => disposeRenderOwner(owner));
54
+ return owner;
55
+ }
56
+ function pibblInternalCreateSignalConsumer(options) {
57
+ const ownerState = requireActiveOwner(options.owner);
58
+ let disposed = false;
59
+ const signalConsumer = createSignalRenderConsumer({
60
+ debugName: options.debugName ?? `official renderer (${ownerState.component.id})`,
61
+ invalidate: () => {
62
+ if (!disposed && ownerState.schedulerOwner.isActive()) {
63
+ options.invalidate();
64
+ }
65
+ }
66
+ });
67
+ const consumer = {
68
+ collect(read) {
69
+ if (disposed) {
70
+ throw new Error("Cannot collect signal reads with a disposed Pibbl renderer consumer.");
71
+ }
72
+ requireActiveOwner(options.owner);
73
+ return collectSignalReads(signalConsumer, () => read());
74
+ },
75
+ markClean() {
76
+ if (!disposed) signalConsumer.markClean();
77
+ },
78
+ dispose() {
79
+ if (disposed) return;
80
+ disposed = true;
81
+ ownerState.consumers.delete(consumer);
82
+ disposeSignalRenderConsumer(signalConsumer);
83
+ }
84
+ };
85
+ ownerState.consumers.add(consumer);
86
+ return consumer;
87
+ }
88
+ function pibblInternalRequestRendererWork(owner, request) {
89
+ const state = requireActiveOwner(owner);
90
+ requestRendererParticipantWork(state.schedulerOwner, request);
91
+ }
92
+ function pibblInternalAssertCommandAllowed() {
93
+ assertSignalCommandAllowed();
94
+ }
95
+ function pibblInternalQueueBegin(owner, callback) {
96
+ const state = requireActiveOwner(owner);
97
+ let handle;
98
+ const schedulerHandle = queueBeginCommand((frame, batch, sequence) => {
99
+ state.beginCommands.delete(handle);
100
+ if (!state.schedulerOwner.isActive()) return;
101
+ callback(frame, batch, sequence);
102
+ });
103
+ handle = Object.freeze({
104
+ sequence: schedulerHandle.sequence,
105
+ cancel() {
106
+ state.beginCommands.delete(handle);
107
+ schedulerHandle.cancel();
108
+ }
109
+ });
110
+ state.beginCommands.add(handle);
111
+ return handle;
112
+ }
113
+ function pibblInternalRegisterAdvance(owner, callback) {
114
+ const state = requireActiveOwner(owner);
115
+ let released = false;
116
+ const unregister = registerAdvanceParticipant((frame, batch) => {
117
+ if (!state.schedulerOwner.isActive()) return;
118
+ callback(frame, batch);
119
+ });
120
+ const release = () => {
121
+ if (released) return;
122
+ released = true;
123
+ state.advanceRegistrations.delete(release);
124
+ unregister();
125
+ };
126
+ state.advanceRegistrations.add(release);
127
+ return release;
128
+ }
129
+ function pibblInternalQueueCurrentCommit(owner, callback) {
130
+ const state = requireActiveOwner(owner);
131
+ queueCurrentFrameCommitAcknowledgement((frame, outcome) => {
132
+ if (!state.schedulerOwner.isActive()) return;
133
+ callback(frame, outcome);
134
+ });
135
+ }
136
+ function pibblInternalQueueCurrentComplete(owner, callback) {
137
+ const state = requireActiveOwner(owner);
138
+ queueCurrentFrameCompletion((frame) => {
139
+ if (!state.schedulerOwner.isActive()) return;
140
+ callback(frame);
141
+ });
142
+ }
143
+ function pibblInternalRequestRender(owner) {
144
+ const state = requireActiveOwner(owner);
145
+ requestInstanceRender(state.instance);
146
+ }
147
+ function pibblInternalOnRenderFinish(owner, callback) {
148
+ const state = requireActiveOwner(owner);
149
+ if (GLOBAL_STATE.componentRefs !== state.component || GLOBAL_STATE.currentPibblInstance !== state.instance || !GLOBAL_STATE.renderTransaction) {
150
+ throw new Error(
151
+ "pibblInternalOnRenderFinish() requires its owner to be the currently evaluating Pibbl component."
152
+ );
153
+ }
154
+ GLOBAL_STATE.renderTransaction.onFinish((success) => {
155
+ if (success && !state.schedulerOwner.isActive()) return;
156
+ callback(success);
157
+ });
158
+ }
159
+ function pibblInternalPaintTarget(handlers, options, pointerEvents = "auto") {
160
+ return usePaintTarget(handlers, options, pointerEvents);
161
+ }
162
+ function pibblInternalCurrentFrame() {
163
+ const frame = getCurrentFrameSnapshot();
164
+ if (!frame) {
165
+ throw new Error("pibblInternalCurrentFrame() requires a current Pibbl frame.");
166
+ }
167
+ return frame;
168
+ }
169
+ function pibblInternalQueueComplete(owner, callback) {
170
+ const state = requireActiveOwner(owner);
171
+ queueRendererParticipantComplete(state.schedulerOwner, callback);
172
+ }
173
+ function requireActiveOwner(owner) {
174
+ const state = ownerStates.get(owner);
175
+ if (!state || !state.active || !isCurrentOwner(state)) {
176
+ throw new TypeError("Expected an active Pibbl internal render owner.");
177
+ }
178
+ return state;
179
+ }
180
+ function isCurrentOwner(state) {
181
+ return !state.component.teardowns.closed && !state.instance.mainTeardowns.closed && GLOBAL_STATE.pibblInstances.get(state.instance.canvas) === state.instance && state.instance.refs.get(state.component.id) === state.component;
182
+ }
183
+ function disposeRenderOwner(owner) {
184
+ const state = ownerStates.get(owner);
185
+ if (!state || !state.active) return;
186
+ state.active = false;
187
+ for (const command of Array.from(state.beginCommands)) {
188
+ command.cancel();
189
+ }
190
+ state.beginCommands.clear();
191
+ for (const release of Array.from(state.advanceRegistrations)) {
192
+ release();
193
+ }
194
+ state.advanceRegistrations.clear();
195
+ removeRendererParticipantOwner(state.schedulerOwner);
196
+ for (const consumer of Array.from(state.consumers)) {
197
+ consumer.dispose();
198
+ }
199
+ state.consumers.clear();
200
+ }
201
+ export {
202
+ pibblInternalAssertCommandAllowed,
203
+ pibblInternalCreateSignalConsumer,
204
+ pibblInternalCurrentFrame,
205
+ pibblInternalCurrentRenderOwner,
206
+ pibblInternalOnRenderFinish,
207
+ pibblInternalPaintTarget,
208
+ pibblInternalQueueBegin,
209
+ pibblInternalQueueComplete,
210
+ pibblInternalQueueCurrentCommit,
211
+ pibblInternalQueueCurrentComplete,
212
+ pibblInternalRegisterAdvance,
213
+ pibblInternalRequestRender,
214
+ pibblInternalRequestRendererWork
215
+ };
216
+ //# sourceMappingURL=renderer-participant.js.map