@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/animation/definition.ts"],
4
+ "sourcesContent": ["import { withSignalWriteForbidden } from '../signals/graph.js';\nimport { easing } from './easing.js';\nimport {\n createSpringRecord,\n resolveSpringStart,\n sampleSpring,\n type SpringDefinitionRecord,\n} from './spring.js';\nimport type {\n PibblAnimationDefinition,\n PibblAnimationOptions,\n PibblAnimationSampleInput,\n PibblEasing,\n PibblInterpolator,\n PibblKeyframesOptions,\n PibblSpringOptions,\n PibblStepperOptions,\n PibblTweenOptions,\n} from './types.js';\n\ndeclare const seekableDefinitionActivationBrand: unique symbol;\n\ninterface BaseDefinitionRecord {\n readonly duration: number;\n readonly debugName: string | undefined;\n}\n\ninterface TweenDefinitionRecord<T> extends BaseDefinitionRecord {\n readonly kind: 'tween';\n readonly hasFrom: boolean;\n readonly from: T | undefined;\n readonly to: T;\n readonly easing: PibblEasing;\n readonly interpolate: PibblInterpolator<T> | undefined;\n}\n\ninterface KeyframesDefinitionRecord<T> extends BaseDefinitionRecord {\n readonly kind: 'keyframes';\n readonly values: readonly T[];\n readonly offsets: readonly number[];\n readonly easings: readonly PibblEasing[];\n readonly interpolate: PibblInterpolator<T> | undefined;\n}\n\ninterface CustomDefinitionRecord<T> extends BaseDefinitionRecord {\n readonly kind: 'custom';\n readonly sample: (input: PibblAnimationSampleInput<T>) => T;\n}\n\nexport interface StepperDefinitionRecord<T> extends BaseDefinitionRecord {\n readonly kind: 'stepper';\n readonly stepMilliseconds: number;\n readonly maxElapsedMilliseconds: number;\n readonly initial: (currentValue: T) => unknown;\n readonly step: (state: unknown, deltaMilliseconds: number) => unknown;\n readonly read: (state: unknown) => T;\n readonly done: ((state: unknown) => boolean) | undefined;\n}\n\nexport type DefinitionRecord<T> =\n | TweenDefinitionRecord<T>\n | KeyframesDefinitionRecord<T>\n | CustomDefinitionRecord<T>\n | StepperDefinitionRecord<T>\n | SpringDefinitionRecord;\n\n/** @internal Opaque activation-time state for one seekable track instance. */\nexport interface SeekableDefinitionActivation<T> {\n readonly [seekableDefinitionActivationBrand]: T;\n readonly duration: number;\n readonly initialValue: T;\n}\n\n/** @internal Callback-free knowledge about a seekable definition boundary. */\nexport type SeekableDefinitionBoundaryValue<T> =\n | { readonly kind: 'known'; readonly value: T }\n | { readonly kind: 'unknown' };\n\ninterface SeekableDefinitionActivationRecord<T> {\n readonly definition: PibblAnimationDefinition<T>;\n readonly definitionRecord: Exclude<DefinitionRecord<T>, StepperDefinitionRecord<T>>;\n readonly initialValue: T;\n}\n\nconst definitionRecords = new WeakMap<\n PibblAnimationDefinition<unknown>,\n DefinitionRecord<unknown>\n>();\nconst seekableActivationRecords = new WeakMap<\n SeekableDefinitionActivation<unknown>,\n SeekableDefinitionActivationRecord<unknown>\n>();\nlet keyframeDefinitions = 0;\nlet keyframeStorageArrayAllocations = 0;\nlet keyframeSamples = 0;\nlet keyframeSampleArrayAllocations = 0;\nlet keyframeSampleDepth = 0;\n\nexport interface AnimationDefinitionPerformanceSnapshot {\n readonly keyframeDefinitions: number;\n readonly keyframeStorageArrayAllocations: number;\n readonly keyframeSamples: number;\n readonly keyframeSampleArrayAllocations: number;\n}\n\n/** @internal Deterministic structural counters for normalized keyframe sampling. */\nexport function animationDefinitionPerformanceSnapshot():\nAnimationDefinitionPerformanceSnapshot {\n return Object.freeze({\n keyframeDefinitions,\n keyframeStorageArrayAllocations,\n keyframeSamples,\n keyframeSampleArrayAllocations,\n });\n}\n\nfunction definitionLabel(debugName: string | undefined): string {\n return debugName === undefined ? 'Pibbl animation definition' :\n `Pibbl animation definition \"${debugName}\"`;\n}\n\nfunction assertDuration(duration: number, debugName: string | undefined): void {\n if (!Number.isFinite(duration) || duration < 0) {\n throw new RangeError(`${definitionLabel(debugName)} duration must be finite and nonnegative.`);\n }\n}\n\nfunction assertFiniteNumber(value: number, message: string): void {\n if (!Number.isFinite(value)) throw new RangeError(message);\n}\n\nconst MUTATING_MAP_METHODS = new Set<PropertyKey>(['set', 'delete', 'clear']);\nconst MUTATING_SET_METHODS = new Set<PropertyKey>(['add', 'delete', 'clear']);\nconst MUTATING_DATE_METHODS = new Set<PropertyKey>([\n 'setDate', 'setFullYear', 'setHours', 'setMilliseconds', 'setMinutes',\n 'setMonth', 'setSeconds', 'setTime', 'setUTCDate', 'setUTCFullYear',\n 'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth',\n 'setUTCSeconds', 'setYear',\n]);\n\nfunction immutableBuiltin<T extends object>(\n target: T,\n mutatingMethods: ReadonlySet<PropertyKey>,\n): T {\n return new Proxy(target, {\n get(current, key) {\n if (mutatingMethods.has(key)) {\n return (): never => {\n throw new TypeError('Cannot mutate an animation definition snapshot.');\n };\n }\n const member = Reflect.get(current, key, current);\n return typeof member === 'function' && key !== 'constructor' ?\n member.bind(current) : member;\n },\n set(): false {\n return false;\n },\n defineProperty(): false {\n return false;\n },\n deleteProperty(): false {\n return false;\n },\n });\n}\n\nfunction rememberIdentity<T extends object>(\n value: T,\n seen: WeakMap<object, unknown>,\n): T {\n seen.set(value, value);\n return value;\n}\n\nfunction hasOwnProperties(value: object, allowed: ReadonlySet<PropertyKey>): boolean {\n return Reflect.ownKeys(value).some(key => !allowed.has(key));\n}\n\nfunction hasOnlyDataProperties(value: object, allowed: ReadonlySet<PropertyKey>): boolean {\n return Reflect.ownKeys(value).every(key => {\n if (allowed.has(key)) return true;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n return descriptor !== undefined && 'value' in descriptor;\n });\n}\n\nconst ARRAY_OWN_KEYS = new Set<PropertyKey>(['length']);\nconst REGEXP_OWN_KEYS = new Set<PropertyKey>(['lastIndex']);\nconst snapshotsRequiringIsolation = new WeakSet<object>();\n\nfunction requiresIsolation(value: unknown): value is object {\n return (typeof value === 'object' && value !== null || typeof value === 'function') &&\n snapshotsRequiringIsolation.has(value as object);\n}\n\nfunction propagateIsolation(snapshot: object, value: unknown): void {\n if (requiresIsolation(value)) snapshotsRequiringIsolation.add(snapshot);\n}\n\nfunction isArrayIndex(key: PropertyKey): boolean {\n return typeof key === 'string' && /^(?:0|[1-9]\\d*)$/u.test(key);\n}\n\nfunction cloneTypedArray(\n value: ArrayBufferView,\n buffer?: ArrayBuffer,\n): ArrayBufferView {\n if (value instanceof DataView) {\n if (buffer !== undefined) {\n return new DataView(buffer, value.byteOffset, value.byteLength);\n }\n const bytes = value.buffer.slice(value.byteOffset, value.byteOffset + value.byteLength);\n return new DataView(bytes);\n }\n const TypedArray = value.constructor as unknown as {\n new (source: ArrayBufferView): ArrayBufferView;\n new (buffer: ArrayBuffer, byteOffset: number, length: number): ArrayBufferView;\n };\n return buffer === undefined ? new TypedArray(value) :\n new TypedArray(\n buffer,\n value.byteOffset,\n (value as ArrayBufferView & { readonly length: number }).length,\n );\n}\n\n/**\n * Definitions retain values after their caller has moved on. The context is\n * shared across one definition so aliases and cycles remain aliases and cycles\n * in its immutable snapshot. Only categories with stable, inspectable cloning\n * semantics are copied. Reconstructable values that cannot themselves be\n * frozen are marked so only the containing paths are rematerialized before a\n * callback or terminal return. Functions, classes, accessors, and opaque host\n * values (notably WeakMap, WeakSet, Promise, and host handles) remain usable\n * identity values because cloning them can manufacture an invalid receiver or\n * change their behavior; an absolute snapshot guarantee for those values\n * requires an explicit public clone contract that Pibbl does not currently\n * provide.\n */\nfunction snapshotAnimationValue<T>(\n value: T,\n seen: WeakMap<object, unknown>,\n isolateStoredValue = false,\n): T {\n if (value === null || typeof value === 'function' || typeof value !== 'object') {\n return value;\n }\n const existing = seen.get(value);\n if (existing !== undefined) return existing as T;\n if (isolateStoredValue && !requiresIsolation(value)) {\n seen.set(value, value);\n return value;\n }\n\n if (value instanceof Date) {\n if (hasOwnProperties(value, new Set())) return rememberIdentity(value, seen) as T;\n const snapshot = immutableBuiltin(new Date(value.getTime()), MUTATING_DATE_METHODS);\n seen.set(value, snapshot);\n return snapshot as T;\n }\n if (value instanceof Map) {\n if (hasOwnProperties(value, new Set())) return rememberIdentity(value, seen) as T;\n const target = new Map();\n const snapshot = immutableBuiltin(target, MUTATING_MAP_METHODS);\n seen.set(value, snapshot);\n for (const [key, entry] of value) {\n const keySnapshot = snapshotAnimationValue(key, seen, isolateStoredValue);\n const entrySnapshot = snapshotAnimationValue(entry, seen, isolateStoredValue);\n target.set(keySnapshot, entrySnapshot);\n propagateIsolation(snapshot, keySnapshot);\n propagateIsolation(snapshot, entrySnapshot);\n }\n return snapshot as T;\n }\n if (value instanceof Set) {\n if (hasOwnProperties(value, new Set())) return rememberIdentity(value, seen) as T;\n const target = new Set();\n const snapshot = immutableBuiltin(target, MUTATING_SET_METHODS);\n seen.set(value, snapshot);\n for (const entry of value) {\n const entrySnapshot = snapshotAnimationValue(entry, seen, isolateStoredValue);\n target.add(entrySnapshot);\n propagateIsolation(snapshot, entrySnapshot);\n }\n return snapshot as T;\n }\n if (Array.isArray(value)) {\n const ownKeys = Reflect.ownKeys(value);\n if (Object.getPrototypeOf(value) !== Array.prototype ||\n ownKeys.some(key => !ARRAY_OWN_KEYS.has(key) && !isArrayIndex(key)) ||\n !hasOnlyDataProperties(value, ARRAY_OWN_KEYS)) {\n return rememberIdentity(value, seen) as T;\n }\n const snapshot: unknown[] = new Array(value.length);\n if (keyframeSampleDepth > 0) keyframeSampleArrayAllocations++;\n seen.set(value, snapshot);\n for (const key of ownKeys) {\n if (ARRAY_OWN_KEYS.has(key)) continue;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor === undefined || !('value' in descriptor)) continue;\n const itemSnapshot = snapshotAnimationValue(\n descriptor.value,\n seen,\n isolateStoredValue,\n );\n Object.defineProperty(snapshot, key, {\n configurable: false,\n enumerable: descriptor.enumerable,\n writable: false,\n value: itemSnapshot,\n });\n propagateIsolation(snapshot, itemSnapshot);\n }\n return Object.freeze(snapshot) as T;\n }\n\n if (value instanceof RegExp) {\n if (hasOwnProperties(value, REGEXP_OWN_KEYS)) return rememberIdentity(value, seen) as T;\n const snapshot = new RegExp(value.source, value.flags);\n snapshot.lastIndex = value.lastIndex;\n seen.set(value, snapshot);\n snapshotsRequiringIsolation.add(snapshot);\n return snapshot as T;\n }\n\n if (ArrayBuffer.isView(value)) {\n const ownKeys = Reflect.ownKeys(value);\n if (ownKeys.some(key => !isArrayIndex(key))) return rememberIdentity(value, seen) as T;\n const buffer = value.buffer instanceof ArrayBuffer ?\n snapshotAnimationValue(value.buffer, seen, isolateStoredValue) : undefined;\n const snapshot = cloneTypedArray(value, buffer);\n seen.set(value, snapshot);\n snapshotsRequiringIsolation.add(snapshot);\n return snapshot as T;\n }\n\n if (value instanceof ArrayBuffer) {\n const snapshot = value.slice(0);\n seen.set(value, snapshot);\n snapshotsRequiringIsolation.add(snapshot);\n return snapshot as T;\n }\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null ||\n !hasOnlyDataProperties(value, new Set())) {\n return rememberIdentity(value, seen) as T;\n }\n const snapshot = Object.create(prototype) as Record<PropertyKey, unknown>;\n seen.set(value, snapshot);\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor === undefined) continue;\n const propertySnapshot = snapshotAnimationValue(\n descriptor.value,\n seen,\n isolateStoredValue,\n );\n Object.defineProperty(snapshot, key, {\n configurable: false,\n enumerable: descriptor.enumerable,\n writable: false,\n value: propertySnapshot,\n });\n propagateIsolation(snapshot, propertySnapshot);\n }\n return Object.freeze(snapshot) as T;\n}\n\nfunction isolateStoredAnimationValue<T>(\n value: T,\n seen: WeakMap<object, unknown>,\n): T {\n return snapshotAnimationValue(value, seen, true);\n}\n\n/** @internal Captures a committed output value for a playback activation. */\nexport function snapshotAnimationActivationValue<T>(\n value: T,\n seen: WeakMap<object, unknown> = new WeakMap(),\n): T {\n return snapshotAnimationValue(value, seen);\n}\n\nfunction validateSampledValue<T>(sampled: T, debugName: string | undefined): T {\n if (typeof sampled === 'number' && !Number.isFinite(sampled)) {\n throw new RangeError(`${definitionLabel(debugName)} sampled value must be finite.`);\n }\n return sampled;\n}\n\nfunction createDefinition<T>(record: DefinitionRecord<T>): PibblAnimationDefinition<T> {\n const definition = Object.freeze({}) as PibblAnimationDefinition<T>;\n definitionRecords.set(\n definition as PibblAnimationDefinition<unknown>,\n Object.freeze(record) as DefinitionRecord<unknown>,\n );\n return definition;\n}\n\nfunction hasOwn(object: object, key: PropertyKey): boolean {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction callback<T>(\n debugName: string | undefined,\n callback: () => T,\n): T {\n return withSignalWriteForbidden(\n `${definitionLabel(debugName)} callbacks cannot write to signals.`,\n callback,\n );\n}\n\nfunction sampledProgress(duration: number, localTime: number): {\n readonly localTime: number;\n readonly progress: number;\n} {\n assertFiniteNumber(localTime, 'Pibbl animation sample localTime must be finite.');\n if (duration === 0) return Object.freeze({ localTime: 0, progress: 1 });\n const normalizedLocalTime = Math.min(duration, Math.max(0, localTime));\n return Object.freeze({\n localTime: normalizedLocalTime,\n progress: normalizedLocalTime / duration,\n });\n}\n\nfunction interpolate<T>(\n from: T,\n to: T,\n progress: number,\n custom: PibblInterpolator<T> | undefined,\n debugName: string | undefined,\n): T {\n if (custom === undefined && (typeof from !== 'number' || typeof to !== 'number')) {\n throw new TypeError(`${definitionLabel(debugName)} requires an explicit interpolator for nonnumeric values.`);\n }\n let sampled: T;\n if (custom === undefined) {\n sampled = ((from as unknown as number) +\n ((to as unknown as number) - (from as unknown as number)) * progress) as T;\n } else {\n const isolated = new WeakMap<object, unknown>();\n const isolatedFrom = isolateStoredAnimationValue(from, isolated);\n const isolatedTo = isolateStoredAnimationValue(to, isolated);\n sampled = callback(debugName, () => custom(isolatedFrom, isolatedTo, progress));\n }\n return validateSampledValue(sampled, debugName);\n}\n\nfunction easedProgress(\n ease: PibblEasing,\n progress: number,\n debugName: string | undefined,\n): number {\n const eased = callback(debugName, () => ease(progress));\n if (!Number.isFinite(eased)) {\n throw new RangeError(`${definitionLabel(debugName)} easing result must be finite.`);\n }\n return eased;\n}\n\nfunction normalizeOffsets(\n values: readonly unknown[],\n offsets: readonly number[] | undefined,\n debugName: string | undefined,\n): readonly number[] {\n if (offsets === undefined) {\n return Object.freeze(values.map((_, index) => index / (values.length - 1)));\n }\n if (offsets.length !== values.length) {\n throw new RangeError(`${definitionLabel(debugName)} keyframe offsets must match the values length.`);\n }\n const snapshot = [...offsets];\n for (const offset of snapshot) {\n if (!Number.isFinite(offset) || offset < 0 || offset > 1) {\n throw new RangeError(`${definitionLabel(debugName)} keyframe offsets must be finite values within [0, 1].`);\n }\n }\n if (snapshot[0] !== 0) {\n throw new RangeError(`${definitionLabel(debugName)} keyframe offsets must start at 0.`);\n }\n if (snapshot.at(-1) !== 1) {\n throw new RangeError(`${definitionLabel(debugName)} keyframe offsets must end at 1.`);\n }\n for (let index = 1; index < snapshot.length; index++) {\n if (snapshot[index] < snapshot[index - 1]) {\n throw new RangeError(`${definitionLabel(debugName)} keyframe offsets must be nondecreasing.`);\n }\n }\n return Object.freeze(snapshot);\n}\n\nfunction normalizeEasings(\n easingOption: PibblEasing | readonly PibblEasing[] | undefined,\n segmentCount: number,\n debugName: string | undefined,\n): readonly PibblEasing[] {\n if (Array.isArray(easingOption)) {\n if (easingOption.length !== segmentCount) {\n throw new RangeError(`${definitionLabel(debugName)} keyframe easing list must have one entry per segment.`);\n }\n if (easingOption.some(ease => typeof ease !== 'function')) {\n throw new TypeError(`${definitionLabel(debugName)} keyframe easings must be functions.`);\n }\n return Object.freeze([...easingOption]);\n }\n const ease = easingOption ?? easing.linear;\n if (typeof ease !== 'function') {\n throw new TypeError(`${definitionLabel(debugName)} easing must be a function.`);\n }\n return Object.freeze(Array.from({ length: segmentCount }, () => ease));\n}\n\n/**\n * Returns an opaque immutable tween definition.\n *\n * @param options - Start and end values, duration, easing, and interpolation settings. See\n * {@link PibblTweenOptions} .\n * @returns An immutable tween definition. See {@link PibblAnimationDefinition}.\n *\n * @see {@link PibblTweenOptions}\n * @see {@link PibblAnimationDefinition}\n */\nexport function tween<T>(options: Readonly<PibblTweenOptions<T>>): PibblAnimationDefinition<T> {\n assertDuration(options.duration, options.debugName);\n if (typeof options.easing !== 'undefined' && typeof options.easing !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} easing must be a function.`);\n }\n if (typeof options.interpolate !== 'undefined' && typeof options.interpolate !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} interpolator must be a function.`);\n }\n const hasFrom = hasOwn(options, 'from');\n const snapshots = new WeakMap<object, unknown>();\n return createDefinition({\n kind: 'tween',\n duration: options.duration,\n debugName: options.debugName,\n hasFrom,\n from: hasFrom ? snapshotAnimationValue(options.from as T, snapshots) : undefined,\n to: snapshotAnimationValue(options.to, snapshots),\n easing: options.easing ?? easing.linear,\n interpolate: options.interpolate,\n });\n}\n\n/**\n * Returns an opaque immutable keyframe definition.\n *\n * @param options - Keyframe values, timing, easing, and interpolation settings. See\n * {@link PibblKeyframesOptions} .\n * @returns An immutable animation definition sampling the keyframes. See\n * {@link PibblAnimationDefinition} .\n *\n * @see {@link PibblKeyframesOptions}\n * @see {@link PibblAnimationDefinition}\n */\nexport function keyframes<T>(\n options: Readonly<PibblKeyframesOptions<T>>,\n): PibblAnimationDefinition<T> {\n assertDuration(options.duration, options.debugName);\n if (options.values.length < 2) {\n throw new RangeError(`${definitionLabel(options.debugName)} keyframes require at least two values.`);\n }\n if (typeof options.interpolate !== 'undefined' && typeof options.interpolate !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} interpolator must be a function.`);\n }\n const snapshots = new WeakMap<object, unknown>();\n const values = Object.freeze(options.values.map(value => snapshotAnimationValue(value, snapshots)));\n const offsets = normalizeOffsets(values, options.offsets, options.debugName);\n const easings = normalizeEasings(options.easing, values.length - 1, options.debugName);\n keyframeDefinitions++;\n keyframeStorageArrayAllocations += 3;\n return createDefinition({\n kind: 'keyframes',\n duration: options.duration,\n debugName: options.debugName,\n values,\n offsets,\n easings,\n interpolate: options.interpolate,\n });\n}\n\n/**\n * Returns an opaque immutable analytic one-dimensional spring definition.\n *\n * @param options - Target, initial conditions, and spring parameters. See {@link PibblSpringOptions}\n * .\n * @returns An analytic numeric spring definition. See {@link PibblAnimationDefinition}.\n *\n * @see {@link PibblSpringOptions}\n * @see {@link PibblAnimationDefinition}\n */\nexport function spring(\n options: Readonly<PibblSpringOptions>,\n): PibblAnimationDefinition<number> {\n return createDefinition(createSpringRecord(options));\n}\n\n/**\n * Returns an opaque immutable definition from a custom seekable sampler.\n *\n * @param options - Duration and pure sampling callback for the animation. See\n * {@link PibblAnimationOptions} .\n * @returns An immutable, seekable animation definition. See {@link PibblAnimationDefinition}.\n *\n * @see {@link PibblAnimationOptions}\n * @see {@link PibblAnimationDefinition}\n */\nexport function defineAnimation<T>(\n options: Readonly<PibblAnimationOptions<T>>,\n): PibblAnimationDefinition<T> {\n assertDuration(options.duration, options.debugName);\n if (typeof options.sample !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} sample must be a function.`);\n }\n return createDefinition({\n kind: 'custom',\n duration: options.duration,\n debugName: options.debugName,\n sample: options.sample,\n });\n}\n\n/**\n * Returns an opaque immutable stepper definition. Steppers are evaluated by\n * the playback engine, not by the seekable sampler.\n *\n * @param options - Initial state, fixed-step integration, value reader, and completion predicate.\n * See {@link PibblStepperOptions} .\n * @returns A stateful animation definition advanced by fixed simulation steps. See\n * {@link PibblAnimationDefinition} .\n *\n * @see {@link PibblStepperOptions}\n * @see {@link PibblAnimationDefinition}\n */\nexport function stepper<State, T>(\n options: Readonly<PibblStepperOptions<State, T>>,\n): PibblAnimationDefinition<T> {\n if (typeof options.initial !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} stepper initial must be a function.`);\n }\n if (typeof options.step !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} stepper step must be a function.`);\n }\n if (typeof options.read !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} stepper read must be a function.`);\n }\n if (typeof options.done !== 'undefined' && typeof options.done !== 'function') {\n throw new TypeError(`${definitionLabel(options.debugName)} stepper done must be a function.`);\n }\n if (!Number.isFinite(options.stepMilliseconds) || options.stepMilliseconds <= 0) {\n throw new RangeError(`${definitionLabel(options.debugName)} stepper stepMilliseconds must be finite and positive.`);\n }\n const maxElapsedMilliseconds = options.maxElapsedMilliseconds ?? 100;\n if (!Number.isFinite(maxElapsedMilliseconds) || maxElapsedMilliseconds <= 0) {\n throw new RangeError(`${definitionLabel(options.debugName)} stepper maxElapsedMilliseconds must be finite and positive.`);\n }\n return createDefinition({\n kind: 'stepper',\n duration: Number.POSITIVE_INFINITY,\n debugName: options.debugName,\n stepMilliseconds: options.stepMilliseconds,\n maxElapsedMilliseconds,\n initial: options.initial as (currentValue: T) => unknown,\n step: options.step as (state: unknown, deltaMilliseconds: number) => unknown,\n read: options.read as (state: unknown) => T,\n done: options.done as ((state: unknown) => boolean) | undefined,\n });\n}\n\n/** @internal Returns the private immutable record associated with a definition. */\nexport function getDefinitionRecord<T>(\n definition: PibblAnimationDefinition<T>,\n): DefinitionRecord<T> {\n const record = definitionRecords.get(definition as PibblAnimationDefinition<unknown>);\n if (record === undefined) throw new TypeError('Expected a Pibbl animation definition.');\n return record as DefinitionRecord<T>;\n}\n\n/** @internal Samples a non-stepper definition from its activation snapshot. */\nexport function sampleSeekableDefinition<T>(\n definition: PibblAnimationDefinition<T>,\n input: Readonly<Pick<PibblAnimationSampleInput<T>, 'initialValue' | 'localTime'>>,\n): T {\n const record = getDefinitionRecord(definition);\n if (record.kind === 'stepper') {\n throw new TypeError(\n `${definitionLabel(record.debugName)} is stateful and requires the stateful program evaluator.`,\n );\n }\n if (record.kind === 'spring') {\n const resolved = resolveSpringStart(record, input.initialValue as number);\n const timing = sampledProgress(resolved.duration, input.localTime);\n return sampleSpring(resolved, timing.localTime / 1000).position as T;\n }\n const timing = sampledProgress(record.duration, input.localTime);\n if (record.kind === 'custom') {\n const sampled = callback(record.debugName, () => record.sample(Object.freeze({\n initialValue: input.initialValue,\n localTime: timing.localTime,\n progress: timing.progress,\n })));\n return validateSampledValue(sampled, record.debugName);\n }\n if (record.kind === 'tween') {\n const from = record.hasFrom ? record.from as T : input.initialValue;\n return interpolate(\n from,\n record.to,\n easedProgress(record.easing, timing.progress, record.debugName),\n record.interpolate,\n record.debugName,\n );\n }\n\n keyframeSamples++;\n keyframeSampleDepth++;\n try {\n return sampleKeyframe(record, timing);\n } finally {\n keyframeSampleDepth--;\n }\n}\n\nfunction sampleKeyframe<T>(\n record: KeyframesDefinitionRecord<T>,\n timing: { readonly progress: number },\n): T {\n let segment = 0;\n for (let index = 1; index < record.offsets.length; index++) {\n if (record.offsets[index] <= timing.progress) segment = index;\n else break;\n }\n if (segment === record.values.length - 1) {\n return validateSampledValue(\n isolateStoredAnimationValue(record.values[segment], new WeakMap()),\n record.debugName,\n );\n }\n const start = record.offsets[segment];\n const end = record.offsets[segment + 1];\n return interpolate(\n record.values[segment],\n record.values[segment + 1],\n easedProgress(record.easings[segment], (timing.progress - start) / (end - start), record.debugName),\n record.interpolate,\n record.debugName,\n );\n}\n\n/**\n * @internal Resolves activation-dependent definition data exactly once for a\n * track instance. Stateful definitions use a separate playback-owned record.\n */\nexport function activateSeekableDefinition<T>(\n definition: PibblAnimationDefinition<T>,\n initialValue: T,\n seen: WeakMap<object, unknown> = new WeakMap(),\n): SeekableDefinitionActivation<T> {\n const definitionRecord = getDefinitionRecord(definition);\n if (definitionRecord.kind === 'stepper') {\n throw new TypeError(\n 'Stateful animation definitions require the stateful program evaluator.',\n );\n }\n const snapshot = snapshotAnimationActivationValue(initialValue, seen);\n const resolved = definitionRecord.kind === 'spring' ?\n resolveSpringStart(definitionRecord, snapshot as number) : definitionRecord;\n const activation = Object.freeze({\n duration: resolved.duration,\n initialValue: snapshot,\n }) as SeekableDefinitionActivation<T>;\n seekableActivationRecords.set(\n activation as SeekableDefinitionActivation<unknown>,\n Object.freeze({\n definition,\n definitionRecord: resolved,\n initialValue: snapshot,\n }) as SeekableDefinitionActivationRecord<unknown>,\n );\n return activation;\n}\n\n/** @internal Samples a definition from one retained activation record. */\nexport function sampleActivatedSeekableDefinition<T>(\n activation: SeekableDefinitionActivation<T>,\n localTime: number,\n): T {\n const activationRecord = seekableActivationRecords.get(\n activation as SeekableDefinitionActivation<unknown>,\n ) as SeekableDefinitionActivationRecord<T> | undefined;\n if (activationRecord === undefined) {\n throw new TypeError('Expected a seekable Pibbl animation definition activation.');\n }\n const record = activationRecord.definitionRecord;\n if (record.kind === 'spring') {\n const timing = sampledProgress(record.duration, localTime);\n return sampleSpring(record, timing.localTime / 1000).position as T;\n }\n return sampleSeekableDefinition(activationRecord.definition, {\n initialValue: activationRecord.initialValue,\n localTime,\n });\n}\n\n/**\n * @internal Returns a boundary value only when the normalized definition makes\n * it exact without invoking user easing, interpolation, or sampling callbacks.\n */\nexport function getSeekableDefinitionBoundaryValue<T>(\n activation: SeekableDefinitionActivation<T>,\n boundary: 'start' | 'end',\n): SeekableDefinitionBoundaryValue<T> {\n const activationRecord = seekableActivationRecords.get(\n activation as SeekableDefinitionActivation<unknown>,\n ) as SeekableDefinitionActivationRecord<T> | undefined;\n if (activationRecord === undefined) {\n throw new TypeError('Expected a seekable Pibbl animation definition activation.');\n }\n const record = activationRecord.definitionRecord;\n if (record.kind === 'spring') {\n return Object.freeze({\n kind: 'known' as const,\n value: (boundary === 'start' ? record.from : record.to) as T,\n });\n }\n if (record.kind === 'keyframes') {\n if (boundary === 'end') {\n return Object.freeze({ kind: 'known' as const, value: record.values.at(-1)! });\n }\n if (record.interpolate === undefined && record.easings[0] === easing.linear) {\n return Object.freeze({ kind: 'known' as const, value: record.values[0]! });\n }\n return Object.freeze({ kind: 'unknown' as const });\n }\n if (record.kind === 'tween' && record.interpolate === undefined &&\n record.easing === easing.linear) {\n return Object.freeze({\n kind: 'known' as const,\n value: boundary === 'start' ?\n (record.hasFrom ? record.from as T : activationRecord.initialValue) : record.to,\n });\n }\n return Object.freeze({ kind: 'unknown' as const });\n}\n\n/**\n * @internal Returns a callback-free boundary that does not depend on a track's\n * activation value. This lets discovery recover known terminal state after an\n * earlier opaque custom value.\n */\nexport function getStaticSeekableDefinitionBoundaryValue<T>(\n definition: PibblAnimationDefinition<T>,\n boundary: 'start' | 'end',\n): SeekableDefinitionBoundaryValue<T> {\n const record = getDefinitionRecord(definition);\n if (record.kind === 'spring' && record.hasFrom) {\n return Object.freeze({\n kind: 'known' as const,\n value: (boundary === 'start' ? record.from : record.to) as T,\n });\n }\n if (record.kind === 'keyframes') {\n if (boundary === 'end') {\n return Object.freeze({ kind: 'known' as const, value: record.values.at(-1)! });\n }\n if (record.interpolate === undefined && record.easings[0] === easing.linear) {\n return Object.freeze({ kind: 'known' as const, value: record.values[0]! });\n }\n }\n if (record.kind === 'tween' && record.interpolate === undefined &&\n record.easing === easing.linear) {\n if (boundary === 'end') {\n return Object.freeze({ kind: 'known' as const, value: record.to });\n }\n if (record.hasFrom) {\n return Object.freeze({ kind: 'known' as const, value: record.from as T });\n }\n }\n return Object.freeze({ kind: 'unknown' as const });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["snapshot", "callback", "ease", "timing"]
7
+ }
@@ -0,0 +1,55 @@
1
+ import type { tween } from "./definition.js";
2
+ import type { PibblEasing } from './types.js';
3
+ declare function cubicBezier(x1: number, y1: number, x2: number, y2: number): PibblEasing;
4
+ declare function steps(count: number, position?: 'start' | 'end'): PibblEasing;
5
+ /**
6
+ * Built-in easing functions for mapping normalized animation progress.
7
+ *
8
+ * @see {@link PibblEasing}
9
+ * @see {@link tween}
10
+ */
11
+ export declare const easing: Readonly<{
12
+ /**
13
+ * Returns clamped progress unchanged. See {@link PibblEasing}.
14
+ * @param progress - Input progress, clamped to the interval [0, 1].
15
+ * @returns The clamped progress.
16
+ */
17
+ linear: (progress: number) => number;
18
+ /**
19
+ * Creates a cubic Bézier easing; control-point x coordinates must be finite and within [0, 1].
20
+ * See {@link PibblEasing}.
21
+ * @param x1 - First control point horizontal coordinate, in [0, 1].
22
+ * @param y1 - Finite first control point vertical coordinate.
23
+ * @param x2 - Second control point horizontal coordinate, in [0, 1].
24
+ * @param y2 - Finite second control point vertical coordinate.
25
+ * @returns A cubic Bézier easing function. See {@link PibblEasing}.
26
+ */
27
+ cubicBezier: typeof cubicBezier;
28
+ /**
29
+ * Accelerates from rest using the CSS ease-in control points. See {@link easing}.
30
+ * @param progress - Input progress, clamped to [0, 1].
31
+ * @returns Eased progress. See {@link PibblEasing}.
32
+ */
33
+ easeIn: PibblEasing;
34
+ /**
35
+ * Decelerates toward rest using the CSS ease-out control points. See {@link easing}.
36
+ * @param progress - Input progress, clamped to [0, 1].
37
+ * @returns Eased progress. See {@link PibblEasing}.
38
+ */
39
+ easeOut: PibblEasing;
40
+ /**
41
+ * Accelerates then decelerates using the CSS ease-in-out control points. See {@link easing}.
42
+ * @param progress - Input progress, clamped to [0, 1].
43
+ * @returns Eased progress. See {@link PibblEasing}.
44
+ */
45
+ easeInOut: PibblEasing;
46
+ /**
47
+ * Creates a stepped easing with a positive integer count and start or end jump placement. See
48
+ * {@link easing}.
49
+ * @param count - Positive integer number of steps.
50
+ * @param position - Whether jumps occur at the start or end of each interval; defaults to end.
51
+ * @returns A stepped easing function. See {@link PibblEasing}.
52
+ */
53
+ steps: typeof steps;
54
+ }>;
55
+ export {};
@@ -0,0 +1,112 @@
1
+ const NEWTON_ITERATIONS = 8;
2
+ const BISECTION_ITERATIONS = 50;
3
+ function clampProgress(progress) {
4
+ return Math.min(1, Math.max(0, progress));
5
+ }
6
+ function assertFiniteControl(value, name) {
7
+ if (!Number.isFinite(value)) {
8
+ throw new RangeError(`Pibbl cubic bezier ${name} must be finite.`);
9
+ }
10
+ }
11
+ function sampleCurve(t, first, second) {
12
+ const inverse = 1 - t;
13
+ return 3 * inverse * inverse * t * first + 3 * inverse * t * t * second + t * t * t;
14
+ }
15
+ function sampleDerivative(t, first, second) {
16
+ const inverse = 1 - t;
17
+ return 3 * inverse * inverse * first + 6 * inverse * t * (second - first) + 3 * t * t * (1 - second);
18
+ }
19
+ function cubicBezier(x1, y1, x2, y2) {
20
+ assertFiniteControl(x1, "x1");
21
+ assertFiniteControl(y1, "y1");
22
+ assertFiniteControl(x2, "x2");
23
+ assertFiniteControl(y2, "y2");
24
+ if (x1 < 0 || x1 > 1 || x2 < 0 || x2 > 1) {
25
+ throw new RangeError("Pibbl cubic bezier x1 and x2 must be within [0, 1].");
26
+ }
27
+ return (input) => {
28
+ const progress = clampProgress(input);
29
+ if (progress === 0 || progress === 1) return progress;
30
+ let parameter = progress;
31
+ for (let iteration = 0; iteration < NEWTON_ITERATIONS; iteration++) {
32
+ const x = sampleCurve(parameter, x1, x2) - progress;
33
+ const slope = sampleDerivative(parameter, x1, x2);
34
+ if (Math.abs(slope) < 1e-7) break;
35
+ const candidate = parameter - x / slope;
36
+ if (candidate < 0 || candidate > 1) break;
37
+ parameter = candidate;
38
+ }
39
+ let lower = 0;
40
+ let upper = 1;
41
+ for (let iteration = 0; iteration < BISECTION_ITERATIONS; iteration++) {
42
+ const x = sampleCurve(parameter, x1, x2);
43
+ if (x < progress) lower = parameter;
44
+ else upper = parameter;
45
+ parameter = (lower + upper) / 2;
46
+ }
47
+ return sampleCurve(parameter, y1, y2);
48
+ };
49
+ }
50
+ function steps(count, position = "end") {
51
+ if (!Number.isInteger(count) || count <= 0) {
52
+ throw new RangeError("Pibbl steps count must be a positive integer.");
53
+ }
54
+ if (position !== "start" && position !== "end") {
55
+ throw new TypeError('Pibbl steps position must be "start" or "end".');
56
+ }
57
+ return (input) => {
58
+ const progress = clampProgress(input);
59
+ if (position === "start") {
60
+ return Math.min(1, (Math.floor(progress * count) + 1) / count);
61
+ }
62
+ return progress === 1 ? 1 : Math.floor(progress * count) / count;
63
+ };
64
+ }
65
+ const easing = Object.freeze({
66
+ /**
67
+ * Returns clamped progress unchanged. See {@link PibblEasing}.
68
+ * @param progress - Input progress, clamped to the interval [0, 1].
69
+ * @returns The clamped progress.
70
+ */
71
+ linear: (progress) => clampProgress(progress),
72
+ /**
73
+ * Creates a cubic Bézier easing; control-point x coordinates must be finite and within [0, 1].
74
+ * See {@link PibblEasing}.
75
+ * @param x1 - First control point horizontal coordinate, in [0, 1].
76
+ * @param y1 - Finite first control point vertical coordinate.
77
+ * @param x2 - Second control point horizontal coordinate, in [0, 1].
78
+ * @param y2 - Finite second control point vertical coordinate.
79
+ * @returns A cubic Bézier easing function. See {@link PibblEasing}.
80
+ */
81
+ cubicBezier,
82
+ /**
83
+ * Accelerates from rest using the CSS ease-in control points. See {@link easing}.
84
+ * @param progress - Input progress, clamped to [0, 1].
85
+ * @returns Eased progress. See {@link PibblEasing}.
86
+ */
87
+ easeIn: cubicBezier(0.42, 0, 1, 1),
88
+ /**
89
+ * Decelerates toward rest using the CSS ease-out control points. See {@link easing}.
90
+ * @param progress - Input progress, clamped to [0, 1].
91
+ * @returns Eased progress. See {@link PibblEasing}.
92
+ */
93
+ easeOut: cubicBezier(0, 0, 0.58, 1),
94
+ /**
95
+ * Accelerates then decelerates using the CSS ease-in-out control points. See {@link easing}.
96
+ * @param progress - Input progress, clamped to [0, 1].
97
+ * @returns Eased progress. See {@link PibblEasing}.
98
+ */
99
+ easeInOut: cubicBezier(0.42, 0, 0.58, 1),
100
+ /**
101
+ * Creates a stepped easing with a positive integer count and start or end jump placement. See
102
+ * {@link easing}.
103
+ * @param count - Positive integer number of steps.
104
+ * @param position - Whether jumps occur at the start or end of each interval; defaults to end.
105
+ * @returns A stepped easing function. See {@link PibblEasing}.
106
+ */
107
+ steps
108
+ });
109
+ export {
110
+ easing
111
+ };
112
+ //# sourceMappingURL=easing.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/animation/easing.ts"],
4
+ "sourcesContent": ["import type { tween } from './definition.js';\nimport type { PibblEasing } from './types.js';\n\nconst NEWTON_ITERATIONS = 8;\nconst BISECTION_ITERATIONS = 50;\n\nfunction clampProgress(progress: number): number {\n return Math.min(1, Math.max(0, progress));\n}\n\nfunction assertFiniteControl(value: number, name: string): void {\n if (!Number.isFinite(value)) {\n throw new RangeError(`Pibbl cubic bezier ${name} must be finite.`);\n }\n}\n\nfunction sampleCurve(t: number, first: number, second: number): number {\n const inverse = 1 - t;\n return 3 * inverse * inverse * t * first +\n 3 * inverse * t * t * second +\n t * t * t;\n}\n\nfunction sampleDerivative(t: number, first: number, second: number): number {\n const inverse = 1 - t;\n return 3 * inverse * inverse * first +\n 6 * inverse * t * (second - first) +\n 3 * t * t * (1 - second);\n}\n\nfunction cubicBezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n): PibblEasing {\n assertFiniteControl(x1, 'x1');\n assertFiniteControl(y1, 'y1');\n assertFiniteControl(x2, 'x2');\n assertFiniteControl(y2, 'y2');\n if (x1 < 0 || x1 > 1 || x2 < 0 || x2 > 1) {\n throw new RangeError('Pibbl cubic bezier x1 and x2 must be within [0, 1].');\n }\n\n return (input: number): number => {\n const progress = clampProgress(input);\n if (progress === 0 || progress === 1) return progress;\n\n let parameter = progress;\n for (let iteration = 0; iteration < NEWTON_ITERATIONS; iteration++) {\n const x = sampleCurve(parameter, x1, x2) - progress;\n const slope = sampleDerivative(parameter, x1, x2);\n if (Math.abs(slope) < 1e-7) break;\n const candidate = parameter - x / slope;\n if (candidate < 0 || candidate > 1) break;\n parameter = candidate;\n }\n\n let lower = 0;\n let upper = 1;\n for (let iteration = 0; iteration < BISECTION_ITERATIONS; iteration++) {\n const x = sampleCurve(parameter, x1, x2);\n if (x < progress) lower = parameter;\n else upper = parameter;\n parameter = (lower + upper) / 2;\n }\n return sampleCurve(parameter, y1, y2);\n };\n}\n\nfunction steps(count: number, position: 'start' | 'end' = 'end'): PibblEasing {\n if (!Number.isInteger(count) || count <= 0) {\n throw new RangeError('Pibbl steps count must be a positive integer.');\n }\n if (position !== 'start' && position !== 'end') {\n throw new TypeError('Pibbl steps position must be \"start\" or \"end\".');\n }\n\n return (input: number): number => {\n const progress = clampProgress(input);\n if (position === 'start') {\n return Math.min(1, (Math.floor(progress * count) + 1) / count);\n }\n return progress === 1 ? 1 : Math.floor(progress * count) / count;\n };\n}\n\n/**\n * Built-in easing functions for mapping normalized animation progress.\n *\n * @see {@link PibblEasing}\n * @see {@link tween}\n */\nexport const easing = Object.freeze({\n /**\n * Returns clamped progress unchanged. See {@link PibblEasing}.\n * @param progress - Input progress, clamped to the interval [0, 1].\n * @returns The clamped progress.\n */\n linear: (progress: number): number => clampProgress(progress),\n /**\n * Creates a cubic B\u00E9zier easing; control-point x coordinates must be finite and within [0, 1].\n * See {@link PibblEasing}.\n * @param x1 - First control point horizontal coordinate, in [0, 1].\n * @param y1 - Finite first control point vertical coordinate.\n * @param x2 - Second control point horizontal coordinate, in [0, 1].\n * @param y2 - Finite second control point vertical coordinate.\n * @returns A cubic B\u00E9zier easing function. See {@link PibblEasing}.\n */\n cubicBezier,\n /**\n * Accelerates from rest using the CSS ease-in control points. See {@link easing}.\n * @param progress - Input progress, clamped to [0, 1].\n * @returns Eased progress. See {@link PibblEasing}.\n */\n easeIn: cubicBezier(0.42, 0, 1, 1),\n /**\n * Decelerates toward rest using the CSS ease-out control points. See {@link easing}.\n * @param progress - Input progress, clamped to [0, 1].\n * @returns Eased progress. See {@link PibblEasing}.\n */\n easeOut: cubicBezier(0, 0, 0.58, 1),\n /**\n * Accelerates then decelerates using the CSS ease-in-out control points. See {@link easing}.\n * @param progress - Input progress, clamped to [0, 1].\n * @returns Eased progress. See {@link PibblEasing}.\n */\n easeInOut: cubicBezier(0.42, 0, 0.58, 1),\n /**\n * Creates a stepped easing with a positive integer count and start or end jump placement. See\n * {@link easing}.\n * @param count - Positive integer number of steps.\n * @param position - Whether jumps occur at the start or end of each interval; defaults to end.\n * @returns A stepped easing function. See {@link PibblEasing}.\n */\n steps,\n});\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,118 @@
1
+ import { type SignalCommitBatch } from '../signals/graph.js';
2
+ import type { WritableSignal } from '../signals/types.js';
3
+ import type { PibblAnimationProgram } from './types.js';
4
+ declare const programActivationBrand: unique symbol;
5
+ /** @internal Opaque state retained for one activated program run. */
6
+ export interface ProgramActivation {
7
+ readonly [programActivationBrand]: true;
8
+ }
9
+ export type ProgramTraversalDirection = 'forward' | 'reverse';
10
+ export interface ProgramEvaluationInput {
11
+ readonly previousTime: number | undefined;
12
+ readonly time: number;
13
+ readonly direction: ProgramTraversalDirection;
14
+ readonly frameId: number;
15
+ readonly writer: object;
16
+ readonly batch: SignalCommitBatch;
17
+ }
18
+ interface ProgramMilestoneBase {
19
+ readonly programTime: number;
20
+ readonly frameId: number;
21
+ readonly registration: object;
22
+ readonly programPath: readonly number[];
23
+ readonly iteration: number;
24
+ }
25
+ export interface ProgramMarkerMilestone extends ProgramMilestoneBase {
26
+ readonly kind: 'marker';
27
+ readonly marker: string;
28
+ }
29
+ export interface ProgramIterationMilestone extends ProgramMilestoneBase {
30
+ readonly kind: 'iteration';
31
+ }
32
+ export type ProgramMilestone = ProgramMarkerMilestone | ProgramIterationMilestone;
33
+ export interface ProgramTerminalState {
34
+ readonly duration: number | undefined;
35
+ readonly atStart: boolean;
36
+ readonly atEnd: boolean;
37
+ readonly reached: boolean;
38
+ }
39
+ export interface ProgramEvaluationResult {
40
+ readonly batch: SignalCommitBatch;
41
+ readonly milestones: readonly ProgramMilestone[];
42
+ readonly steppers: readonly ProgramStepperTrace[];
43
+ readonly terminal: ProgramTerminalState;
44
+ }
45
+ /** @internal Immutable fixed-step facts emitted without application callbacks. */
46
+ export interface ProgramStepperTrace {
47
+ readonly programPath: readonly number[];
48
+ readonly repeatIterations: readonly number[];
49
+ readonly appliedSteps: number;
50
+ readonly retainedRemainderMilliseconds: number;
51
+ readonly clampedElapsedMilliseconds: number;
52
+ readonly discardedElapsedMilliseconds: number;
53
+ readonly terminal: {
54
+ readonly step: number;
55
+ readonly time: number;
56
+ } | undefined;
57
+ }
58
+ export interface TrackStartSnapshot {
59
+ readonly programPath: readonly number[];
60
+ readonly repeatIterations: readonly number[];
61
+ readonly initialValue: unknown;
62
+ readonly duration: number;
63
+ }
64
+ export interface ActiveStepperSnapshot {
65
+ readonly programPath: readonly number[];
66
+ readonly repeatIterations: readonly number[];
67
+ readonly wholeSteps: number;
68
+ readonly retainedRemainderMilliseconds: number;
69
+ readonly appliedElapsedMilliseconds: number;
70
+ readonly discardedElapsedMilliseconds: number;
71
+ }
72
+ export interface TerminalStepperSnapshot {
73
+ readonly programPath: readonly number[];
74
+ readonly repeatIterations: readonly number[];
75
+ readonly terminalStep: number;
76
+ readonly terminalTime: number;
77
+ }
78
+ export interface ProgramActivationRecord {
79
+ readonly program: PibblAnimationProgram;
80
+ readonly registration: object;
81
+ readonly originalValues: ReadonlyMap<WritableSignal<unknown>, unknown>;
82
+ readonly trackStarts: readonly TrackStartSnapshot[];
83
+ readonly activeSteppers: readonly ActiveStepperSnapshot[];
84
+ readonly terminalSteppers: readonly TerminalStepperSnapshot[];
85
+ readonly terminalDuration: number | undefined;
86
+ }
87
+ export interface AnimationEvaluationOwnershipSnapshot {
88
+ readonly activeStepperStates: number;
89
+ readonly acquiredStepperStates: number;
90
+ readonly releasedStepperStates: number;
91
+ }
92
+ /** @internal Exact ownership counters for retained and current-frame stepper state. */
93
+ export declare function animationEvaluationOwnershipSnapshot(): AnimationEvaluationOwnershipSnapshot;
94
+ /** Captures one program token, its committed outputs, and registration identity. */
95
+ export declare function activateProgram(program: PibblAnimationProgram, registration: object): ProgramActivation;
96
+ /** @internal Forks engine-owned activation state for an outer transaction. */
97
+ export declare function forkProgramActivation(activation: ProgramActivation): ProgramActivation;
98
+ /** @internal Publishes one successfully committed activation fork and consumes it. */
99
+ export declare function adoptProgramActivationFork(activation: ProgramActivation, fork: ProgramActivation): void;
100
+ /** @internal Validates one current committed activation snapshot without retaining it. */
101
+ export declare function preflightProgramActivation(program: PibblAnimationProgram): void;
102
+ /** Evaluates one ordinary advance without committing staged output values. */
103
+ export declare function evaluateProgram(activation: ProgramActivation, input: ProgramEvaluationInput): ProgramEvaluationResult;
104
+ /** Rebuilds activation starts from the original run snapshot before sampling. */
105
+ export declare function seekProgram(activation: ProgramActivation, input: ProgramEvaluationInput): ProgramEvaluationResult;
106
+ export interface ProgramFinishInput {
107
+ readonly previousTime: number | undefined;
108
+ readonly frameId: number;
109
+ readonly writer: object;
110
+ readonly batch: SignalCommitBatch;
111
+ }
112
+ /** Replays a finite program to its exact known terminal state. */
113
+ export declare function finishProgram(activation: ProgramActivation, input: ProgramFinishInput): ProgramEvaluationResult;
114
+ /** Releases every resource retained by one activated program run. */
115
+ export declare function releaseProgramActivation(activation: ProgramActivation): void;
116
+ /** @internal Immutable diagnostic view of one private activation snapshot. */
117
+ export declare function getProgramActivationRecord(activation: ProgramActivation): ProgramActivationRecord;
118
+ export {};