@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,104 @@
1
+ const CHUNK = 256;
2
+ const NO_SLOT = 4294967295;
3
+ const MAX_STEP_MILLISECONDS = 1e3 / 60;
4
+ class FlowParticlePopulation2D {
5
+ constructor(capacity) {
6
+ this.capacity = capacity;
7
+ this.positions = new Float32Array(capacity * 2);
8
+ this.retired = new Uint8Array(capacity);
9
+ this.identities = new Float64Array(capacity).fill(-1);
10
+ this.times = new Float64Array(capacity);
11
+ this.birthTimes = new Float64Array(capacity);
12
+ }
13
+ capacity;
14
+ positions;
15
+ retired;
16
+ identities;
17
+ times;
18
+ birthTimes;
19
+ slots = new Uint32Array(CHUNK);
20
+ points = new Float32Array(CHUNK * 2);
21
+ midpoints = new Float32Array(CHUNK * 2);
22
+ velocities = new Float32Array(CHUNK * 2);
23
+ durations = new Float64Array(CHUNK);
24
+ copyFrom(other) {
25
+ this.positions.set(other.positions);
26
+ this.retired.set(other.retired);
27
+ this.identities.set(other.identities);
28
+ this.times.set(other.times);
29
+ this.birthTimes.set(other.birthTimes);
30
+ }
31
+ clear() {
32
+ this.identities.fill(-1);
33
+ this.retired.fill(0);
34
+ }
35
+ isRetired(slot) {
36
+ return this.retired[slot] === 1;
37
+ }
38
+ hasBirth(slot, identity, birthTime) {
39
+ return this.identities[slot] === identity && this.birthTimes[slot] === birthTime;
40
+ }
41
+ birth(slot, identity, time, x, y) {
42
+ this.retired[slot] = 0;
43
+ this.identities[slot] = identity;
44
+ this.birthTimes[slot] = this.times[slot] = time;
45
+ this.positions[slot * 2] = x;
46
+ this.positions[slot * 2 + 1] = y;
47
+ }
48
+ advance(field, firstSlot, ageOrder, liveCount, time) {
49
+ let slot = firstSlot, visited = 0;
50
+ while (slot !== NO_SLOT && visited < liveCount) {
51
+ let count = 0;
52
+ while (slot !== NO_SLOT && visited < liveCount && count < CHUNK) {
53
+ if (this.retired[slot] || field.isSolid(this.positions[slot * 2], this.positions[slot * 2 + 1])) {
54
+ this.retired[slot] = 1;
55
+ this.times[slot] = time;
56
+ slot = ageOrder[slot];
57
+ visited++;
58
+ continue;
59
+ }
60
+ this.slots[count] = slot;
61
+ this.points[count * 2] = this.positions[slot * 2];
62
+ this.points[count * 2 + 1] = this.positions[slot * 2 + 1];
63
+ this.durations[count] = Math.min(MAX_STEP_MILLISECONDS * 4, Math.max(0, time - this.times[slot]));
64
+ this.times[slot] = time;
65
+ slot = ageOrder[slot];
66
+ visited++;
67
+ count++;
68
+ }
69
+ for (let step = 0; step < 4; step++) {
70
+ let active = false;
71
+ for (let i = 0; i < count; i++) if (this.durations[i] > 0) {
72
+ active = true;
73
+ break;
74
+ }
75
+ if (!active) break;
76
+ field.sampleBatch(this.points, this.velocities, count);
77
+ for (let i = 0; i < count; i++) {
78
+ const seconds = Math.min(MAX_STEP_MILLISECONDS, this.durations[i]) / 1e3;
79
+ this.velocities[i * 2] *= seconds;
80
+ this.velocities[i * 2 + 1] *= seconds;
81
+ }
82
+ this.midpoints.set(this.points);
83
+ field.moveBatch(this.midpoints, this.velocities, count, 0.5);
84
+ field.sampleBatch(this.midpoints, this.velocities, count);
85
+ for (let i = 0; i < count; i++) {
86
+ const milliseconds = Math.min(MAX_STEP_MILLISECONDS, this.durations[i]);
87
+ this.durations[i] -= milliseconds;
88
+ this.velocities[i * 2] *= milliseconds / 1e3;
89
+ this.velocities[i * 2 + 1] *= milliseconds / 1e3;
90
+ }
91
+ field.moveBatch(this.points, this.velocities, count, 1);
92
+ }
93
+ for (let i = 0; i < count; i++) {
94
+ const target = this.slots[i] * 2;
95
+ this.positions[target] = this.points[i * 2];
96
+ this.positions[target + 1] = this.points[i * 2 + 1];
97
+ }
98
+ }
99
+ }
100
+ }
101
+ export {
102
+ FlowParticlePopulation2D
103
+ };
104
+ //# sourceMappingURL=population.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/features/particles/lib/flow/population.ts"],
4
+ "sourcesContent": ["import type { FlowFieldKernel2D } from \"./field.js\";\nconst CHUNK = 256;\nconst NO_SLOT = 0xffffffff;\nconst MAX_STEP_MILLISECONDS = 1000 / 60;\n\n/** Persistent particle positions, independent of Canvas and physics bodies.\n * RK2 integration samples a shared field in bounded chunks. Birth identities\n * let recycled ledger slots initialize without allocating particle objects.\n */\nexport class FlowParticlePopulation2D {\n readonly positions: Float32Array;\n private readonly retired: Uint8Array;\n private readonly identities: Float64Array;\n private readonly times: Float64Array;\n private readonly birthTimes: Float64Array;\n private readonly slots = new Uint32Array(CHUNK);\n private readonly points = new Float32Array(CHUNK * 2);\n private readonly midpoints = new Float32Array(CHUNK * 2);\n private readonly velocities = new Float32Array(CHUNK * 2);\n private readonly durations = new Float64Array(CHUNK);\n constructor(readonly capacity: number) {\n this.positions = new Float32Array(capacity * 2);\n this.retired = new Uint8Array(capacity);\n this.identities = new Float64Array(capacity).fill(-1);\n this.times = new Float64Array(capacity);\n this.birthTimes = new Float64Array(capacity);\n }\n copyFrom(other: FlowParticlePopulation2D): void {\n this.positions.set(other.positions);\n this.retired.set(other.retired);\n this.identities.set(other.identities);\n this.times.set(other.times);\n this.birthTimes.set(other.birthTimes);\n }\n clear(): void { this.identities.fill(-1); this.retired.fill(0); }\n isRetired(slot: number): boolean { return this.retired[slot] === 1; }\n hasBirth(slot: number, identity: number, birthTime: number): boolean {\n return this.identities[slot] === identity && this.birthTimes[slot] === birthTime;\n }\n birth(slot: number, identity: number, time: number, x: number, y: number): void {\n this.retired[slot] = 0;\n this.identities[slot] = identity;\n this.birthTimes[slot] = this.times[slot] = time;\n this.positions[slot * 2] = x;\n this.positions[slot * 2 + 1] = y;\n }\n advance(field: FlowFieldKernel2D, firstSlot: number, ageOrder: Uint32Array, liveCount: number, time: number): void {\n let slot = firstSlot, visited = 0;\n while (slot !== NO_SLOT && visited < liveCount) {\n let count = 0;\n while (slot !== NO_SLOT && visited < liveCount && count < CHUNK) {\n if (this.retired[slot] || field.isSolid(this.positions[slot * 2]!, this.positions[slot * 2 + 1]!)) {\n this.retired[slot] = 1;\n this.times[slot] = time;\n slot = ageOrder[slot]!;\n visited++;\n continue;\n }\n this.slots[count] = slot;\n this.points[count * 2] = this.positions[slot * 2]!;\n this.points[count * 2 + 1] = this.positions[slot * 2 + 1]!;\n this.durations[count] = Math.min(MAX_STEP_MILLISECONDS * 4, Math.max(0, time - this.times[slot]!));\n this.times[slot] = time;\n slot = ageOrder[slot]!;\n visited++;\n count++;\n }\n // A fixed upper bound of four substeps, including fractional birth ages.\n for (let step = 0; step < 4; step++) {\n let active = false;\n for (let i = 0; i < count; i++) if (this.durations[i]! > 0) { active = true; break; }\n if (!active) break;\n field.sampleBatch(this.points, this.velocities, count);\n for (let i = 0; i < count; i++) {\n const seconds = Math.min(MAX_STEP_MILLISECONDS, this.durations[i]!) / 1000;\n this.velocities[i * 2] *= seconds;\n this.velocities[i * 2 + 1] *= seconds;\n }\n this.midpoints.set(this.points);\n field.moveBatch(this.midpoints, this.velocities, count, 0.5);\n field.sampleBatch(this.midpoints, this.velocities, count);\n for (let i = 0; i < count; i++) {\n const milliseconds = Math.min(MAX_STEP_MILLISECONDS, this.durations[i]!);\n this.durations[i] -= milliseconds;\n this.velocities[i * 2] *= milliseconds / 1000;\n this.velocities[i * 2 + 1] *= milliseconds / 1000;\n }\n field.moveBatch(this.points, this.velocities, count, 1);\n }\n for (let i = 0; i < count; i++) {\n const target = this.slots[i]! * 2;\n this.positions[target] = this.points[i * 2]!;\n this.positions[target + 1] = this.points[i * 2 + 1]!;\n }\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,113 @@
1
+ import type { PibblParticleChoice, PibblParticleCurve, PibblParticleCurveOptions, PibblParticleCurveValue, PibblParticleGradient, PibblParticleIntegerRange, PibblParticleParameterReference, PibblParticleRange } from './types.js';
2
+ export type ParticleDescriptorRecord = Readonly<{
3
+ type: 'between';
4
+ min: number;
5
+ max: number;
6
+ }> | Readonly<{
7
+ type: 'integer';
8
+ min: number;
9
+ max: number;
10
+ }> | Readonly<{
11
+ type: 'choice';
12
+ choices: readonly Readonly<{
13
+ value: unknown;
14
+ weight: number;
15
+ }>[];
16
+ }> | Readonly<{
17
+ type: 'parameter';
18
+ name: string;
19
+ }> | Readonly<{
20
+ type: 'curve';
21
+ keys: readonly (readonly [number, PibblParticleCurveValue])[];
22
+ options: PibblParticleCurveOptions | undefined;
23
+ }> | Readonly<{
24
+ type: 'gradient';
25
+ keys: readonly (readonly [number, string])[];
26
+ options: PibblParticleCurveOptions | undefined;
27
+ }>;
28
+ declare function between(min: number, max: number): PibblParticleRange;
29
+ declare function integer(min: number, max: number): PibblParticleIntegerRange;
30
+ declare function choice<const T>(choices: readonly Readonly<{
31
+ value: T;
32
+ weight: number;
33
+ }>[]): PibblParticleChoice<T>;
34
+ declare function parameter<const Name extends string>(name: Name): PibblParticleParameterReference<Name>;
35
+ declare function curve<const T extends PibblParticleCurveValue>(keys: readonly (readonly [time: number, value: T])[], options?: PibblParticleCurveOptions): PibblParticleCurve<T>;
36
+ declare function gradient(keys: readonly (readonly [time: number, color: string])[], options?: PibblParticleCurveOptions): PibblParticleGradient;
37
+ /** @internal Returns metadata only for descriptors created by this package instance. */
38
+ export declare function getParticleDescriptorRecord(value: unknown): ParticleDescriptorRecord | undefined;
39
+ /**
40
+ * Describes a continuous random range for particle sampling.
41
+ *
42
+ * @param min - Finite lower bound, no greater than max.
43
+ * @param max - Finite upper bound; the span must also be finite.
44
+ * @returns An immutable continuous sampling descriptor. See {@link PibblParticleRange}.
45
+ *
46
+ * @see {@link PibblParticleRange}
47
+ */
48
+ export declare const particleRange: typeof between;
49
+ /**
50
+ * Describes a random integer range for particle sampling.
51
+ *
52
+ * @param min - Inclusive lower bound, a safe integer.
53
+ * @param max - Inclusive upper bound; the inclusive span must be a safe integer.
54
+ * @returns An immutable integer sampling descriptor. See {@link PibblParticleIntegerRange}.
55
+ *
56
+ * @see {@link PibblParticleIntegerRange}
57
+ */
58
+ export declare const particleInteger: typeof integer;
59
+ /**
60
+ * Describes weighted choices sampled by a particle effect.
61
+ *
62
+ * @param choices - Nonempty weighted values; every weight and their total must be positive and
63
+ * finite.
64
+ * @returns An immutable descriptor containing copied choices. See {@link PibblParticleChoice}.
65
+ *
66
+ * @see {@link PibblParticleChoice}
67
+ */
68
+ export declare const particleChoice: typeof choice;
69
+ /**
70
+ * References a named parameter declared by a particle effect.
71
+ *
72
+ * @param name - Nonempty name of a parameter declared by the effect.
73
+ * @returns A typed parameter reference. See {@link PibblParticleParameterReference}.
74
+ *
75
+ * @see {@link PibblParticleParameterReference}
76
+ */
77
+ export declare const particleParameter: typeof parameter;
78
+ /**
79
+ * Describes keyframed scalar or vector values over normalized particle lifetime.
80
+ *
81
+ * @param keys - Scalar or 2D-vector keys with strictly increasing normalized times, starting at 0
82
+ * and ending at 1.
83
+ * @param options - Optional segment easing. See {@link PibblParticleCurveOptions}.
84
+ * @returns An immutable lifetime curve containing copied keys. See {@link PibblParticleCurve}.
85
+ *
86
+ * @see {@link PibblParticleCurveOptions}
87
+ * @see {@link PibblParticleCurve}
88
+ * @see {@link PibblParticleCurveValue}
89
+ */
90
+ export declare const particleCurve: typeof curve;
91
+ /**
92
+ * Describes keyframed colors over normalized particle lifetime.
93
+ *
94
+ * @param keys - Color keys with strictly increasing normalized times, starting at 0 and ending at
95
+ * 1.
96
+ * @param options - Optional segment easing. See {@link PibblParticleCurveOptions}.
97
+ * @returns An immutable lifetime color gradient containing copied keys. See
98
+ * {@link PibblParticleGradient} .
99
+ *
100
+ * @see {@link PibblParticleCurveOptions}
101
+ * @see {@link PibblParticleGradient}
102
+ */
103
+ export declare const particleGradient: typeof gradient;
104
+ /** @internal Legacy test convenience; not exported from the public package entry. */
105
+ export declare const particle: Readonly<{
106
+ between: typeof between;
107
+ integer: typeof integer;
108
+ choice: typeof choice;
109
+ parameter: typeof parameter;
110
+ curve: typeof curve;
111
+ gradient: typeof gradient;
112
+ }>;
113
+ export {};
@@ -0,0 +1,192 @@
1
+ const descriptorRecords = /* @__PURE__ */ new WeakMap();
2
+ function descriptor(value, record) {
3
+ const frozen = Object.freeze(value);
4
+ descriptorRecords.set(frozen, Object.freeze(record));
5
+ return frozen;
6
+ }
7
+ function assertFinite(value, label) {
8
+ if (!Number.isFinite(value)) {
9
+ throw new RangeError(`${label} must be finite; received ${String(value)}.`);
10
+ }
11
+ }
12
+ function cloneFrozenValue(value, seen = /* @__PURE__ */ new WeakMap()) {
13
+ if (value === null || typeof value !== "object") return value;
14
+ const existing = seen.get(value);
15
+ if (existing !== void 0) return existing;
16
+ if (Array.isArray(value)) {
17
+ const result2 = [];
18
+ seen.set(value, result2);
19
+ for (const entry of value) result2.push(cloneFrozenValue(entry, seen));
20
+ return Object.freeze(result2);
21
+ }
22
+ const prototype = Object.getPrototypeOf(value);
23
+ if (prototype !== Object.prototype && prototype !== null) return value;
24
+ const result = Object.create(prototype);
25
+ seen.set(value, result);
26
+ for (const [key, entry] of Object.entries(value)) {
27
+ result[key] = cloneFrozenValue(entry, seen);
28
+ }
29
+ return Object.freeze(result);
30
+ }
31
+ function validateRange(min, max, label) {
32
+ assertFinite(min, `${label} min`);
33
+ assertFinite(max, `${label} max`);
34
+ if (min > max) {
35
+ throw new RangeError(
36
+ `${label} bounds require min to be at most max; received ${String(min)} through ${String(max)}.`
37
+ );
38
+ }
39
+ }
40
+ function curveValueDimension(value) {
41
+ if (typeof value === "number") {
42
+ assertFinite(value, "particleCurve value");
43
+ return 1;
44
+ }
45
+ if (!Array.isArray(value) || value.length !== 2) {
46
+ throw new TypeError("particleCurve values must be finite numbers or two-dimensional vectors.");
47
+ }
48
+ assertFinite(value[0], "particleCurve vector value[0]");
49
+ assertFinite(value[1], "particleCurve vector value[1]");
50
+ return 2;
51
+ }
52
+ function validateKeyTimes(keys, label) {
53
+ if (keys.length === 0) throw new TypeError(`${label} keys must be nonempty.`);
54
+ if (keys[0]?.[0] !== 0 || keys.at(-1)?.[0] !== 1) {
55
+ throw new RangeError(`${label} keys must cover normalized time 0 through 1.`);
56
+ }
57
+ let previous = Number.NEGATIVE_INFINITY;
58
+ for (let index = 0; index < keys.length; index += 1) {
59
+ const time = keys[index]?.[0];
60
+ assertFinite(time, `${label} keys[${index}] time`);
61
+ if (time <= previous) {
62
+ throw new RangeError(`${label} key times must be strictly increasing.`);
63
+ }
64
+ previous = time;
65
+ }
66
+ }
67
+ function normalizeOptions(options, label) {
68
+ if (options === void 0) return void 0;
69
+ if (options.easing !== void 0 && typeof options.easing !== "function") {
70
+ throw new TypeError(`${label} options.easing must be a Pibbl easing function.`);
71
+ }
72
+ return Object.freeze({ easing: options.easing });
73
+ }
74
+ function between(min, max) {
75
+ validateRange(min, max, "particleRange");
76
+ if (!Number.isFinite(max - min)) {
77
+ throw new RangeError("particleRange span must be finite.");
78
+ }
79
+ const value = { type: "between", min, max };
80
+ return descriptor(value, value);
81
+ }
82
+ function integer(min, max) {
83
+ validateRange(min, max, "particleInteger");
84
+ if (!Number.isSafeInteger(min) || !Number.isSafeInteger(max)) {
85
+ throw new RangeError("particleInteger min and max must be safe integers.");
86
+ }
87
+ if (!Number.isSafeInteger(max - min + 1)) {
88
+ throw new RangeError("particleInteger inclusive span must be a safe integer.");
89
+ }
90
+ const value = { type: "integer", min, max };
91
+ return descriptor(value, value);
92
+ }
93
+ function choice(choices) {
94
+ if (choices.length === 0) {
95
+ throw new TypeError("particleChoice choices must be nonempty.");
96
+ }
97
+ let totalWeight = 0;
98
+ const copied = Object.freeze(choices.map(({ value: value2, weight }, index) => {
99
+ if (!Number.isFinite(weight) || weight <= 0) {
100
+ throw new RangeError(
101
+ `particleChoice choices[${index}].weight must be positive and finite; received ${String(weight)}.`
102
+ );
103
+ }
104
+ totalWeight += weight;
105
+ if (!Number.isFinite(totalWeight)) {
106
+ throw new RangeError("particleChoice total weight must be finite.");
107
+ }
108
+ return Object.freeze({ value: cloneFrozenValue(value2), weight });
109
+ }));
110
+ const value = { type: "choice", choices: copied };
111
+ return descriptor(value, value);
112
+ }
113
+ function parameter(name) {
114
+ if (typeof name !== "string" || name.trim().length === 0) {
115
+ throw new TypeError("particleParameter name must be a nonempty string.");
116
+ }
117
+ const value = { type: "parameter", name };
118
+ return descriptor(value, value);
119
+ }
120
+ function curve(keys, options) {
121
+ validateKeyTimes(keys, "particleCurve");
122
+ let dimension;
123
+ const copied = Object.freeze(keys.map(([time, value2], index) => {
124
+ const currentDimension = curveValueDimension(value2);
125
+ if (dimension !== void 0 && dimension !== currentDimension) {
126
+ throw new TypeError(
127
+ `particleCurve keys[${index}] value dimension must match earlier keys.`
128
+ );
129
+ }
130
+ dimension = currentDimension;
131
+ return Object.freeze([time, cloneFrozenValue(value2)]);
132
+ }));
133
+ const normalizedOptions = normalizeOptions(options, "particleCurve");
134
+ const value = {
135
+ type: "curve",
136
+ keys: copied,
137
+ ...normalizedOptions === void 0 ? {} : { options: normalizedOptions }
138
+ };
139
+ return descriptor(value, {
140
+ type: "curve",
141
+ keys: copied,
142
+ options: normalizedOptions
143
+ });
144
+ }
145
+ function gradient(keys, options) {
146
+ validateKeyTimes(keys, "particleGradient");
147
+ const copied = Object.freeze(keys.map(([time, color], index) => {
148
+ if (typeof color !== "string" || color.trim().length === 0) {
149
+ throw new TypeError(`particleGradient keys[${index}] color must be a nonempty string.`);
150
+ }
151
+ return Object.freeze([time, color]);
152
+ }));
153
+ const normalizedOptions = normalizeOptions(options, "particleGradient");
154
+ const value = {
155
+ type: "gradient",
156
+ keys: copied,
157
+ ...normalizedOptions === void 0 ? {} : { options: normalizedOptions }
158
+ };
159
+ return descriptor(value, {
160
+ type: "gradient",
161
+ keys: copied,
162
+ options: normalizedOptions
163
+ });
164
+ }
165
+ function getParticleDescriptorRecord(value) {
166
+ return typeof value === "object" && value !== null ? descriptorRecords.get(value) : void 0;
167
+ }
168
+ const particleRange = between;
169
+ const particleInteger = integer;
170
+ const particleChoice = choice;
171
+ const particleParameter = parameter;
172
+ const particleCurve = curve;
173
+ const particleGradient = gradient;
174
+ const particle = Object.freeze({
175
+ between,
176
+ integer,
177
+ choice,
178
+ parameter,
179
+ curve,
180
+ gradient
181
+ });
182
+ export {
183
+ getParticleDescriptorRecord,
184
+ particle,
185
+ particleChoice,
186
+ particleCurve,
187
+ particleGradient,
188
+ particleInteger,
189
+ particleParameter,
190
+ particleRange
191
+ };
192
+ //# sourceMappingURL=particle.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/features/particles/lib/particle.ts"],
4
+ "sourcesContent": ["import type {\n PibblParticleChoice,\n PibblParticleCurve,\n PibblParticleCurveOptions,\n PibblParticleCurveValue,\n PibblParticleGradient,\n PibblParticleIntegerRange,\n PibblParticleParameterReference,\n PibblParticleRange,\n} from './types.js';\n\nexport type ParticleDescriptorRecord =\n | Readonly<{ type: 'between'; min: number; max: number }>\n | Readonly<{ type: 'integer'; min: number; max: number }>\n | Readonly<{ type: 'choice'; choices: readonly Readonly<{ value: unknown; weight: number }>[] }>\n | Readonly<{ type: 'parameter'; name: string }>\n | Readonly<{\n type: 'curve';\n keys: readonly (readonly [number, PibblParticleCurveValue])[];\n options: PibblParticleCurveOptions | undefined;\n }>\n | Readonly<{\n type: 'gradient';\n keys: readonly (readonly [number, string])[];\n options: PibblParticleCurveOptions | undefined;\n }>;\n\nconst descriptorRecords = new WeakMap<object, ParticleDescriptorRecord>();\n\nfunction descriptor<T extends object>(value: T, record: ParticleDescriptorRecord): T {\n const frozen = Object.freeze(value);\n descriptorRecords.set(frozen, Object.freeze(record));\n return frozen;\n}\n\nfunction assertFinite(value: number, label: string): void {\n if (!Number.isFinite(value)) {\n throw new RangeError(`${label} must be finite; received ${String(value)}.`);\n }\n}\n\nfunction cloneFrozenValue<T>(value: T, seen = new WeakMap<object, unknown>()): T {\n if (value === null || typeof value !== 'object') return value;\n const existing = seen.get(value);\n if (existing !== undefined) return existing as T;\n if (Array.isArray(value)) {\n const result: unknown[] = [];\n seen.set(value, result);\n for (const entry of value) result.push(cloneFrozenValue(entry, seen));\n return Object.freeze(result) as T;\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) return value;\n const result: Record<string, unknown> = Object.create(prototype);\n seen.set(value, result);\n for (const [key, entry] of Object.entries(value)) {\n result[key] = cloneFrozenValue(entry, seen);\n }\n return Object.freeze(result) as T;\n}\n\nfunction validateRange(min: number, max: number, label: string): void {\n assertFinite(min, `${label} min`);\n assertFinite(max, `${label} max`);\n if (min > max) {\n throw new RangeError(\n `${label} bounds require min to be at most max; received ${String(min)} through ${String(max)}.`,\n );\n }\n}\n\nfunction curveValueDimension(value: PibblParticleCurveValue): 1 | 2 {\n if (typeof value === 'number') {\n assertFinite(value, 'particleCurve value');\n return 1;\n }\n if (!Array.isArray(value) || value.length !== 2) {\n throw new TypeError('particleCurve values must be finite numbers or two-dimensional vectors.');\n }\n assertFinite(value[0], 'particleCurve vector value[0]');\n assertFinite(value[1], 'particleCurve vector value[1]');\n return 2;\n}\n\nfunction validateKeyTimes(\n keys: readonly (readonly [time: number, value: unknown])[],\n label: string,\n): void {\n if (keys.length === 0) throw new TypeError(`${label} keys must be nonempty.`);\n if (keys[0]?.[0] !== 0 || keys.at(-1)?.[0] !== 1) {\n throw new RangeError(`${label} keys must cover normalized time 0 through 1.`);\n }\n let previous = Number.NEGATIVE_INFINITY;\n for (let index = 0; index < keys.length; index += 1) {\n const time = keys[index]?.[0];\n assertFinite(time as number, `${label} keys[${index}] time`);\n if ((time as number) <= previous) {\n throw new RangeError(`${label} key times must be strictly increasing.`);\n }\n previous = time as number;\n }\n}\n\nfunction normalizeOptions(\n options: PibblParticleCurveOptions | undefined,\n label: string,\n): PibblParticleCurveOptions | undefined {\n if (options === undefined) return undefined;\n if (options.easing !== undefined && typeof options.easing !== 'function') {\n throw new TypeError(`${label} options.easing must be a Pibbl easing function.`);\n }\n return Object.freeze({ easing: options.easing });\n}\n\nfunction between(min: number, max: number): PibblParticleRange {\n validateRange(min, max, 'particleRange');\n if (!Number.isFinite(max - min)) {\n throw new RangeError('particleRange span must be finite.');\n }\n const value = { type: 'between' as const, min, max };\n return descriptor(value, value);\n}\n\nfunction integer(min: number, max: number): PibblParticleIntegerRange {\n validateRange(min, max, 'particleInteger');\n if (!Number.isSafeInteger(min) || !Number.isSafeInteger(max)) {\n throw new RangeError('particleInteger min and max must be safe integers.');\n }\n if (!Number.isSafeInteger(max - min + 1)) {\n throw new RangeError('particleInteger inclusive span must be a safe integer.');\n }\n const value = { type: 'integer' as const, min, max };\n return descriptor(value, value);\n}\n\nfunction choice<const T>(\n choices: readonly Readonly<{ value: T; weight: number }>[],\n): PibblParticleChoice<T> {\n if (choices.length === 0) {\n throw new TypeError('particleChoice choices must be nonempty.');\n }\n let totalWeight = 0;\n const copied = Object.freeze(choices.map(({ value, weight }, index) => {\n if (!Number.isFinite(weight) || weight <= 0) {\n throw new RangeError(\n `particleChoice choices[${index}].weight must be positive and finite; received ${String(weight)}.`,\n );\n }\n totalWeight += weight;\n if (!Number.isFinite(totalWeight)) {\n throw new RangeError('particleChoice total weight must be finite.');\n }\n return Object.freeze({ value: cloneFrozenValue(value), weight });\n }));\n const value = { type: 'choice' as const, choices: copied };\n return descriptor(value, value as ParticleDescriptorRecord) as PibblParticleChoice<T>;\n}\n\nfunction parameter<const Name extends string>(\n name: Name,\n): PibblParticleParameterReference<Name> {\n if (typeof name !== 'string' || name.trim().length === 0) {\n throw new TypeError('particleParameter name must be a nonempty string.');\n }\n const value = { type: 'parameter' as const, name };\n return descriptor(value, value);\n}\n\nfunction curve<const T extends PibblParticleCurveValue>(\n keys: readonly (readonly [time: number, value: T])[],\n options?: PibblParticleCurveOptions,\n): PibblParticleCurve<T> {\n validateKeyTimes(keys, 'particleCurve');\n let dimension: 1 | 2 | undefined;\n const copied = Object.freeze(keys.map(([time, value], index) => {\n const currentDimension = curveValueDimension(value);\n if (dimension !== undefined && dimension !== currentDimension) {\n throw new TypeError(\n `particleCurve keys[${index}] value dimension must match earlier keys.`,\n );\n }\n dimension = currentDimension;\n return Object.freeze([time, cloneFrozenValue(value)] as const);\n }));\n const normalizedOptions = normalizeOptions(options, 'particleCurve');\n const value = {\n type: 'curve' as const,\n keys: copied,\n ...(normalizedOptions === undefined ? {} : { options: normalizedOptions }),\n };\n return descriptor(value, {\n type: 'curve', keys: copied, options: normalizedOptions,\n }) as PibblParticleCurve<T>;\n}\n\nfunction gradient(\n keys: readonly (readonly [time: number, color: string])[],\n options?: PibblParticleCurveOptions,\n): PibblParticleGradient {\n validateKeyTimes(keys, 'particleGradient');\n const copied = Object.freeze(keys.map(([time, color], index) => {\n if (typeof color !== 'string' || color.trim().length === 0) {\n throw new TypeError(`particleGradient keys[${index}] color must be a nonempty string.`);\n }\n return Object.freeze([time, color] as const);\n }));\n const normalizedOptions = normalizeOptions(options, 'particleGradient');\n const value = {\n type: 'gradient' as const,\n keys: copied,\n ...(normalizedOptions === undefined ? {} : { options: normalizedOptions }),\n };\n return descriptor(value, {\n type: 'gradient', keys: copied, options: normalizedOptions,\n });\n}\n\n/** @internal Returns metadata only for descriptors created by this package instance. */\nexport function getParticleDescriptorRecord(value: unknown): ParticleDescriptorRecord | undefined {\n return typeof value === 'object' && value !== null ? descriptorRecords.get(value) : undefined;\n}\n\n/**\n * Describes a continuous random range for particle sampling.\n *\n * @param min - Finite lower bound, no greater than max.\n * @param max - Finite upper bound; the span must also be finite.\n * @returns An immutable continuous sampling descriptor. See {@link PibblParticleRange}.\n *\n * @see {@link PibblParticleRange}\n */\nexport const particleRange = between;\n/**\n * Describes a random integer range for particle sampling.\n *\n * @param min - Inclusive lower bound, a safe integer.\n * @param max - Inclusive upper bound; the inclusive span must be a safe integer.\n * @returns An immutable integer sampling descriptor. See {@link PibblParticleIntegerRange}.\n *\n * @see {@link PibblParticleIntegerRange}\n */\nexport const particleInteger = integer;\n/**\n * Describes weighted choices sampled by a particle effect.\n *\n * @param choices - Nonempty weighted values; every weight and their total must be positive and\n * finite.\n * @returns An immutable descriptor containing copied choices. See {@link PibblParticleChoice}.\n *\n * @see {@link PibblParticleChoice}\n */\nexport const particleChoice = choice;\n/**\n * References a named parameter declared by a particle effect.\n *\n * @param name - Nonempty name of a parameter declared by the effect.\n * @returns A typed parameter reference. See {@link PibblParticleParameterReference}.\n *\n * @see {@link PibblParticleParameterReference}\n */\nexport const particleParameter = parameter;\n/**\n * Describes keyframed scalar or vector values over normalized particle lifetime.\n *\n * @param keys - Scalar or 2D-vector keys with strictly increasing normalized times, starting at 0\n * and ending at 1.\n * @param options - Optional segment easing. See {@link PibblParticleCurveOptions}.\n * @returns An immutable lifetime curve containing copied keys. See {@link PibblParticleCurve}.\n *\n * @see {@link PibblParticleCurveOptions}\n * @see {@link PibblParticleCurve}\n * @see {@link PibblParticleCurveValue}\n */\nexport const particleCurve = curve;\n/**\n * Describes keyframed colors over normalized particle lifetime.\n *\n * @param keys - Color keys with strictly increasing normalized times, starting at 0 and ending at\n * 1.\n * @param options - Optional segment easing. See {@link PibblParticleCurveOptions}.\n * @returns An immutable lifetime color gradient containing copied keys. See\n * {@link PibblParticleGradient} .\n *\n * @see {@link PibblParticleCurveOptions}\n * @see {@link PibblParticleGradient}\n */\nexport const particleGradient = gradient;\n\n/** @internal Legacy test convenience; not exported from the public package entry. */\nexport const particle = Object.freeze({\n between,\n integer,\n choice,\n parameter,\n curve,\n gradient,\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["result", "value"]
7
+ }
@@ -0,0 +1,16 @@
1
+ export interface CompiledWeightedChoice<T> {
2
+ readonly values: readonly T[];
3
+ readonly cumulativeWeights: readonly number[];
4
+ readonly totalWeight: number;
5
+ }
6
+ export declare function hashEmitterName(name: string): number;
7
+ export declare function mix32(value: number): number;
8
+ export declare function sampleHash(seed: number, emitterHash: number, ordinal: number, channel: number): number;
9
+ export declare function sampleUnit(seed: number, emitterHash: number, ordinal: number, channel: number): number;
10
+ export declare function sampleBetween(unit: number, min: number, max: number): number;
11
+ export declare function sampleInteger(unit: number, min: number, max: number): number;
12
+ export declare function compileWeightedChoice<T>(choices: readonly Readonly<{
13
+ value: T;
14
+ weight: number;
15
+ }>[]): CompiledWeightedChoice<T>;
16
+ export declare function sampleWeightedChoice<T>(choice: CompiledWeightedChoice<T>, unit: number): T;
@@ -0,0 +1,61 @@
1
+ function hashEmitterName(name) {
2
+ let hash = 2166136261;
3
+ for (let index = 0; index < name.length; index += 1) {
4
+ hash = Math.imul(hash ^ name.charCodeAt(index), 16777619);
5
+ }
6
+ return hash >>> 0;
7
+ }
8
+ function mix32(value) {
9
+ value = (value ^ value >>> 16) >>> 0;
10
+ value = Math.imul(value, 2146121005) >>> 0;
11
+ value = (value ^ value >>> 15) >>> 0;
12
+ value = Math.imul(value, 2221713035) >>> 0;
13
+ return (value ^ value >>> 16) >>> 0;
14
+ }
15
+ function sampleHash(seed, emitterHash, ordinal, channel) {
16
+ let value = mix32(seed >>> 0 ^ emitterHash);
17
+ value = mix32(value ^ mix32(ordinal >>> 0));
18
+ return mix32(value ^ Math.imul(channel >>> 0, 2654435761)) >>> 0;
19
+ }
20
+ function sampleUnit(seed, emitterHash, ordinal, channel) {
21
+ return sampleHash(seed, emitterHash, ordinal, channel) / 4294967296;
22
+ }
23
+ function sampleBetween(unit, min, max) {
24
+ return min + unit * (max - min);
25
+ }
26
+ function sampleInteger(unit, min, max) {
27
+ return min + Math.floor(unit * (max - min + 1));
28
+ }
29
+ function compileWeightedChoice(choices) {
30
+ const values = [];
31
+ const cumulativeWeights = [];
32
+ let totalWeight = 0;
33
+ for (const choice of choices) {
34
+ values.push(choice.value);
35
+ totalWeight += choice.weight;
36
+ cumulativeWeights.push(totalWeight);
37
+ }
38
+ return Object.freeze({
39
+ values: Object.freeze(values),
40
+ cumulativeWeights: Object.freeze(cumulativeWeights),
41
+ totalWeight
42
+ });
43
+ }
44
+ function sampleWeightedChoice(choice, unit) {
45
+ const target = unit * choice.totalWeight;
46
+ for (let index = 0; index < choice.cumulativeWeights.length; index += 1) {
47
+ if (target < choice.cumulativeWeights[index]) return choice.values[index];
48
+ }
49
+ return choice.values[choice.values.length - 1];
50
+ }
51
+ export {
52
+ compileWeightedChoice,
53
+ hashEmitterName,
54
+ mix32,
55
+ sampleBetween,
56
+ sampleHash,
57
+ sampleInteger,
58
+ sampleUnit,
59
+ sampleWeightedChoice
60
+ };
61
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/features/particles/lib/random.ts"],
4
+ "sourcesContent": ["export interface CompiledWeightedChoice<T> {\n readonly values: readonly T[];\n readonly cumulativeWeights: readonly number[];\n readonly totalWeight: number;\n}\n\nexport function hashEmitterName(name: string): number {\n let hash = 0x811c9dc5;\n for (let index = 0; index < name.length; index += 1) {\n hash = Math.imul(hash ^ name.charCodeAt(index), 0x01000193);\n }\n return hash >>> 0;\n}\n\nexport function mix32(value: number): number {\n value = (value ^ (value >>> 16)) >>> 0;\n value = Math.imul(value, 0x7feb352d) >>> 0;\n value = (value ^ (value >>> 15)) >>> 0;\n value = Math.imul(value, 0x846ca68b) >>> 0;\n return (value ^ (value >>> 16)) >>> 0;\n}\n\nexport function sampleHash(\n seed: number,\n emitterHash: number,\n ordinal: number,\n channel: number,\n): number {\n let value = mix32((seed >>> 0) ^ emitterHash);\n value = mix32(value ^ mix32(ordinal >>> 0));\n return mix32(value ^ Math.imul(channel >>> 0, 0x9e3779b1)) >>> 0;\n}\n\nexport function sampleUnit(\n seed: number,\n emitterHash: number,\n ordinal: number,\n channel: number,\n): number {\n return sampleHash(seed, emitterHash, ordinal, channel) / 0x1_0000_0000;\n}\n\nexport function sampleBetween(unit: number, min: number, max: number): number {\n return min + unit * (max - min);\n}\n\nexport function sampleInteger(unit: number, min: number, max: number): number {\n return min + Math.floor(unit * (max - min + 1));\n}\n\nexport function compileWeightedChoice<T>(\n choices: readonly Readonly<{ value: T; weight: number }>[],\n): CompiledWeightedChoice<T> {\n const values: T[] = [];\n const cumulativeWeights: number[] = [];\n let totalWeight = 0;\n for (const choice of choices) {\n values.push(choice.value);\n totalWeight += choice.weight;\n cumulativeWeights.push(totalWeight);\n }\n return Object.freeze({\n values: Object.freeze(values),\n cumulativeWeights: Object.freeze(cumulativeWeights),\n totalWeight,\n });\n}\n\nexport function sampleWeightedChoice<T>(\n choice: CompiledWeightedChoice<T>,\n unit: number,\n): T {\n const target = unit * choice.totalWeight;\n for (let index = 0; index < choice.cumulativeWeights.length; index += 1) {\n if (target < choice.cumulativeWeights[index]!) return choice.values[index]!;\n }\n return choice.values[choice.values.length - 1]!;\n}\n"],
5
+ "mappings": "AAMO,SAAS,gBAAgB,MAAsB;AACpD,MAAI,OAAO;AACX,WAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS,GAAG;AACnD,WAAO,KAAK,KAAK,OAAO,KAAK,WAAW,KAAK,GAAG,QAAU;AAAA,EAC5D;AACA,SAAO,SAAS;AAClB;AAEO,SAAS,MAAM,OAAuB;AAC3C,WAAS,QAAS,UAAU,QAAS;AACrC,UAAQ,KAAK,KAAK,OAAO,UAAU,MAAM;AACzC,WAAS,QAAS,UAAU,QAAS;AACrC,UAAQ,KAAK,KAAK,OAAO,UAAU,MAAM;AACzC,UAAQ,QAAS,UAAU,QAAS;AACtC;AAEO,SAAS,WACd,MACA,aACA,SACA,SACQ;AACR,MAAI,QAAQ,MAAO,SAAS,IAAK,WAAW;AAC5C,UAAQ,MAAM,QAAQ,MAAM,YAAY,CAAC,CAAC;AAC1C,SAAO,MAAM,QAAQ,KAAK,KAAK,YAAY,GAAG,UAAU,CAAC,MAAM;AACjE;AAEO,SAAS,WACd,MACA,aACA,SACA,SACQ;AACR,SAAO,WAAW,MAAM,aAAa,SAAS,OAAO,IAAI;AAC3D;AAEO,SAAS,cAAc,MAAc,KAAa,KAAqB;AAC5E,SAAO,MAAM,QAAQ,MAAM;AAC7B;AAEO,SAAS,cAAc,MAAc,KAAa,KAAqB;AAC5E,SAAO,MAAM,KAAK,MAAM,QAAQ,MAAM,MAAM,EAAE;AAChD;AAEO,SAAS,sBACd,SAC2B;AAC3B,QAAM,SAAc,CAAC;AACrB,QAAM,oBAA8B,CAAC;AACrC,MAAI,cAAc;AAClB,aAAW,UAAU,SAAS;AAC5B,WAAO,KAAK,OAAO,KAAK;AACxB,mBAAe,OAAO;AACtB,sBAAkB,KAAK,WAAW;AAAA,EACpC;AACA,SAAO,OAAO,OAAO;AAAA,IACnB,QAAQ,OAAO,OAAO,MAAM;AAAA,IAC5B,mBAAmB,OAAO,OAAO,iBAAiB;AAAA,IAClD;AAAA,EACF,CAAC;AACH;AAEO,SAAS,qBACd,QACA,MACG;AACH,QAAM,SAAS,OAAO,OAAO;AAC7B,WAAS,QAAQ,GAAG,QAAQ,OAAO,kBAAkB,QAAQ,SAAS,GAAG;AACvE,QAAI,SAAS,OAAO,kBAAkB,KAAK,EAAI,QAAO,OAAO,OAAO,KAAK;AAAA,EAC3E;AACA,SAAO,OAAO,OAAO,OAAO,OAAO,SAAS,CAAC;AAC/C;",
6
+ "names": []
7
+ }
@@ -0,0 +1,32 @@
1
+ import type { CompiledEmitter2D } from "./compiler.js";
2
+ import type { PibblParticleShape2D } from "./types.js";
3
+ export interface ParticleSamplerPerformanceSnapshot {
4
+ readonly samples: number;
5
+ readonly sampleArrayAllocations: number;
6
+ readonly sampleObjectAllocations: number;
7
+ }
8
+ /** @internal Deterministic structural counters for the particle hot loop. */
9
+ export declare function particleSamplerPerformanceSnapshot(): ParticleSamplerPerformanceSnapshot;
10
+ export declare const enum Particle2DRegister {
11
+ Live = 0,
12
+ X = 1,
13
+ Y = 2,
14
+ VelocityX = 3,
15
+ VelocityY = 4,
16
+ SizeX = 5,
17
+ SizeY = 6,
18
+ Rotation = 7,
19
+ Red = 8,
20
+ Green = 9,
21
+ Blue = 10,
22
+ Alpha = 11,
23
+ AtlasFrame = 12
24
+ }
25
+ export interface ParticleBirthView {
26
+ readonly seed: number;
27
+ readonly ordinal: number;
28
+ readonly birthTimeMilliseconds: number;
29
+ }
30
+ export declare function sampleCircleRadius(unit: number, radius: number): number;
31
+ export declare function sampleShape2D(shape: PibblParticleShape2D, unit0: number, unit1: number, _unit2: number, output: Float64Array, offset: number): void;
32
+ export declare function sampleParticle2D(plan: CompiledEmitter2D, birth: ParticleBirthView, effectTimeMilliseconds: number, parameters: Readonly<Float64Array>, output: Float64Array): boolean;