@pibbl/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1069) hide show
  1. package/LICENSE.txt +19 -0
  2. package/README.md +76 -0
  3. package/THIRD_PARTY_NOTICES.txt +205 -0
  4. package/dist/features/particles/index.d.ts +7 -0
  5. package/dist/features/particles/index.js +26 -0
  6. package/dist/features/particles/index.js.map +7 -0
  7. package/dist/features/particles/index.mjs +1 -0
  8. package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
  9. package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
  10. package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
  11. package/dist/features/particles/lib/canvas/component.d.ts +14 -0
  12. package/dist/features/particles/lib/canvas/component.js +249 -0
  13. package/dist/features/particles/lib/canvas/component.js.map +7 -0
  14. package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
  15. package/dist/features/particles/lib/canvas/executor.js +537 -0
  16. package/dist/features/particles/lib/canvas/executor.js.map +7 -0
  17. package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
  18. package/dist/features/particles/lib/canvas/primitive.js +50 -0
  19. package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
  20. package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
  21. package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
  22. package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
  23. package/dist/features/particles/lib/color.d.ts +7 -0
  24. package/dist/features/particles/lib/color.js +159 -0
  25. package/dist/features/particles/lib/color.js.map +7 -0
  26. package/dist/features/particles/lib/compiler.d.ts +134 -0
  27. package/dist/features/particles/lib/compiler.js +443 -0
  28. package/dist/features/particles/lib/compiler.js.map +7 -0
  29. package/dist/features/particles/lib/curve.d.ts +19 -0
  30. package/dist/features/particles/lib/curve.js +129 -0
  31. package/dist/features/particles/lib/curve.js.map +7 -0
  32. package/dist/features/particles/lib/definition-records.d.ts +58 -0
  33. package/dist/features/particles/lib/definition-records.js +500 -0
  34. package/dist/features/particles/lib/definition-records.js.map +7 -0
  35. package/dist/features/particles/lib/definition.d.ts +18 -0
  36. package/dist/features/particles/lib/definition.js +602 -0
  37. package/dist/features/particles/lib/definition.js.map +7 -0
  38. package/dist/features/particles/lib/emission.d.ts +54 -0
  39. package/dist/features/particles/lib/emission.js +184 -0
  40. package/dist/features/particles/lib/emission.js.map +7 -0
  41. package/dist/features/particles/lib/flow/field.d.ts +81 -0
  42. package/dist/features/particles/lib/flow/field.js +585 -0
  43. package/dist/features/particles/lib/flow/field.js.map +7 -0
  44. package/dist/features/particles/lib/flow/hook.d.ts +158 -0
  45. package/dist/features/particles/lib/flow/hook.js +215 -0
  46. package/dist/features/particles/lib/flow/hook.js.map +7 -0
  47. package/dist/features/particles/lib/flow/population.d.ts +25 -0
  48. package/dist/features/particles/lib/flow/population.js +104 -0
  49. package/dist/features/particles/lib/flow/population.js.map +7 -0
  50. package/dist/features/particles/lib/particle.d.ts +113 -0
  51. package/dist/features/particles/lib/particle.js +192 -0
  52. package/dist/features/particles/lib/particle.js.map +7 -0
  53. package/dist/features/particles/lib/random.d.ts +16 -0
  54. package/dist/features/particles/lib/random.js +61 -0
  55. package/dist/features/particles/lib/random.js.map +7 -0
  56. package/dist/features/particles/lib/sample.d.ts +32 -0
  57. package/dist/features/particles/lib/sample.js +397 -0
  58. package/dist/features/particles/lib/sample.js.map +7 -0
  59. package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
  60. package/dist/features/particles/lib/signal-inputs.js +41 -0
  61. package/dist/features/particles/lib/signal-inputs.js.map +7 -0
  62. package/dist/features/particles/lib/system/binding.d.ts +59 -0
  63. package/dist/features/particles/lib/system/binding.js +122 -0
  64. package/dist/features/particles/lib/system/binding.js.map +7 -0
  65. package/dist/features/particles/lib/system/controller.d.ts +58 -0
  66. package/dist/features/particles/lib/system/controller.js +1446 -0
  67. package/dist/features/particles/lib/system/controller.js.map +7 -0
  68. package/dist/features/particles/lib/system/hook.d.ts +13 -0
  69. package/dist/features/particles/lib/system/hook.js +52 -0
  70. package/dist/features/particles/lib/system/hook.js.map +7 -0
  71. package/dist/features/particles/lib/system/ownership.d.ts +26 -0
  72. package/dist/features/particles/lib/system/ownership.js +128 -0
  73. package/dist/features/particles/lib/system/ownership.js.map +7 -0
  74. package/dist/features/particles/lib/types.d.ts +983 -0
  75. package/dist/features/physics/2d-geometry.d.ts +216 -0
  76. package/dist/features/physics/2d-geometry.js +59 -0
  77. package/dist/features/physics/2d-geometry.js.map +7 -0
  78. package/dist/features/physics/2d-geometry.mjs +1 -0
  79. package/dist/features/physics/2d-testing.d.ts +80 -0
  80. package/dist/features/physics/2d-testing.js +141 -0
  81. package/dist/features/physics/2d-testing.js.map +7 -0
  82. package/dist/features/physics/2d-testing.mjs +1 -0
  83. package/dist/features/physics/2d.d.ts +165 -0
  84. package/dist/features/physics/2d.js +119 -0
  85. package/dist/features/physics/2d.js.map +7 -0
  86. package/dist/features/physics/2d.mjs +1 -0
  87. package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
  88. package/dist/features/physics/lib/2d/canvas/components.js +212 -0
  89. package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
  90. package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
  91. package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
  92. package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
  93. package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
  94. package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
  95. package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
  96. package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
  97. package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
  98. package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
  99. package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
  100. package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
  101. package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
  102. package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
  103. package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
  104. package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
  105. package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
  106. package/dist/features/physics/lib/2d/collision/casts.js +631 -0
  107. package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
  108. package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
  109. package/dist/features/physics/lib/2d/collision/epa.js +102 -0
  110. package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
  111. package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
  112. package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
  113. package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
  114. package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
  115. package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
  116. package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
  117. package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
  118. package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
  119. package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
  120. package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
  121. package/dist/features/physics/lib/2d/collision/support.js +155 -0
  122. package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
  123. package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
  124. package/dist/features/physics/lib/2d/math.d.ts +27 -0
  125. package/dist/features/physics/lib/2d/math.js +314 -0
  126. package/dist/features/physics/lib/2d/math.js.map +7 -0
  127. package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
  128. package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
  129. package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
  130. package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
  131. package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
  132. package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
  133. package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
  134. package/dist/features/physics/lib/2d/runtime/context.js +57 -0
  135. package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
  136. package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
  137. package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
  138. package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
  139. package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
  140. package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
  141. package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
  142. package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
  143. package/dist/features/physics/lib/2d/runtime/events.js +153 -0
  144. package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
  145. package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
  146. package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
  147. package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
  148. package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
  149. package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
  150. package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
  151. package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
  152. package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
  153. package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
  154. package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
  155. package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
  156. package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
  157. package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
  158. package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
  159. package/dist/features/physics/lib/2d/shape-records.js +26 -0
  160. package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
  161. package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
  162. package/dist/features/physics/lib/2d/shapes.js +543 -0
  163. package/dist/features/physics/lib/2d/shapes.js.map +7 -0
  164. package/dist/features/physics/lib/2d/types.d.ts +713 -0
  165. package/dist/features/physics/lib/2d/types.js +1 -0
  166. package/dist/features/physics/lib/2d/types.js.map +7 -0
  167. package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
  168. package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
  169. package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
  170. package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
  171. package/dist/features/physics/lib/2d/world/ccd.js +265 -0
  172. package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
  173. package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
  174. package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
  175. package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
  176. package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
  177. package/dist/features/physics/lib/2d/world/integrator.js +99 -0
  178. package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
  179. package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
  180. package/dist/features/physics/lib/2d/world/queries.js +424 -0
  181. package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
  182. package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
  183. package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
  184. package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
  185. package/dist/features/physics/lib/2d/world/rapier.js +655 -0
  186. package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
  187. package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
  188. package/dist/features/physics/lib/2d/world/solver.js +660 -0
  189. package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
  190. package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
  191. package/dist/features/physics/lib/2d/world/storage.js +371 -0
  192. package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
  193. package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
  194. package/dist/features/physics/lib/2d/world/world.js +1713 -0
  195. package/dist/features/physics/lib/2d/world/world.js.map +7 -0
  196. package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
  197. package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
  198. package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
  199. package/dist/features/physics/lib/shared/validation.d.ts +5 -0
  200. package/dist/features/physics/lib/shared/validation.js +48 -0
  201. package/dist/features/physics/lib/shared/validation.js.map +7 -0
  202. package/dist/features/sprites/formats/aseprite.js +23 -0
  203. package/dist/features/sprites/formats/aseprite.js.map +7 -0
  204. package/dist/features/sprites/formats/aseprite.mjs +1 -0
  205. package/dist/features/sprites/formats/texture-packer.js +14 -0
  206. package/dist/features/sprites/formats/texture-packer.js.map +7 -0
  207. package/dist/features/sprites/formats/texture-packer.mjs +1 -0
  208. package/dist/features/sprites/index.js +9 -0
  209. package/dist/features/sprites/index.js.map +7 -0
  210. package/dist/features/sprites/index.mjs +1 -0
  211. package/dist/features/sprites/loader.js +63 -0
  212. package/dist/features/sprites/loader.js.map +7 -0
  213. package/dist/features/sprites/model.js +64 -0
  214. package/dist/features/sprites/model.js.map +7 -0
  215. package/dist/features/sprites/sprite.js +31 -0
  216. package/dist/features/sprites/sprite.js.map +7 -0
  217. package/dist/features/textures/index.d.ts +22 -0
  218. package/dist/features/textures/index.js +31 -0
  219. package/dist/features/textures/index.js.map +7 -0
  220. package/dist/features/textures/index.mjs +1 -0
  221. package/dist/features/textures/lib/definitions.d.ts +117 -0
  222. package/dist/features/textures/lib/definitions.js +179 -0
  223. package/dist/features/textures/lib/definitions.js.map +7 -0
  224. package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
  225. package/dist/features/textures/lib/electric-boundary.js +11 -0
  226. package/dist/features/textures/lib/electric-boundary.js.map +7 -0
  227. package/dist/features/textures/lib/electric-shared.d.ts +69 -0
  228. package/dist/features/textures/lib/electric-shared.js +43 -0
  229. package/dist/features/textures/lib/electric-shared.js.map +7 -0
  230. package/dist/features/textures/lib/electric-sources.d.ts +50 -0
  231. package/dist/features/textures/lib/electric-sources.js +43 -0
  232. package/dist/features/textures/lib/electric-sources.js.map +7 -0
  233. package/dist/features/textures/lib/lightning.d.ts +72 -0
  234. package/dist/features/textures/lib/lightning.js +139 -0
  235. package/dist/features/textures/lib/lightning.js.map +7 -0
  236. package/dist/features/textures/lib/material-field.d.ts +12 -0
  237. package/dist/features/textures/lib/material-field.js +31 -0
  238. package/dist/features/textures/lib/material-field.js.map +7 -0
  239. package/dist/features/textures/lib/palette.d.ts +45 -0
  240. package/dist/features/textures/lib/palette.js +52 -0
  241. package/dist/features/textures/lib/palette.js.map +7 -0
  242. package/dist/features/textures/lib/presentation.d.ts +54 -0
  243. package/dist/features/textures/lib/presentation.js +83 -0
  244. package/dist/features/textures/lib/presentation.js.map +7 -0
  245. package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
  246. package/dist/features/textures/lib/procedural-texture.js +110 -0
  247. package/dist/features/textures/lib/procedural-texture.js.map +7 -0
  248. package/dist/features/textures/lib/rain-drops.d.ts +96 -0
  249. package/dist/features/textures/lib/rain-drops.js +322 -0
  250. package/dist/features/textures/lib/rain-drops.js.map +7 -0
  251. package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
  252. package/dist/features/textures/lib/reaction-diffusion.js +210 -0
  253. package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
  254. package/dist/features/textures/lib/simulation.d.ts +16 -0
  255. package/dist/features/textures/lib/simulation.js +85 -0
  256. package/dist/features/textures/lib/simulation.js.map +7 -0
  257. package/dist/features/textures/lib/tendrils.d.ts +57 -0
  258. package/dist/features/textures/lib/tendrils.js +216 -0
  259. package/dist/features/textures/lib/tendrils.js.map +7 -0
  260. package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
  261. package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
  262. package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
  263. package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
  264. package/dist/features/textures/lib/wasm/electric.js +299 -0
  265. package/dist/features/textures/lib/wasm/electric.js.map +7 -0
  266. package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
  267. package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
  268. package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
  269. package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
  270. package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
  271. package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
  272. package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
  273. package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
  274. package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
  275. package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
  276. package/dist/features/textures/lib/wasm/memory.js +103 -0
  277. package/dist/features/textures/lib/wasm/memory.js.map +7 -0
  278. package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
  279. package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
  280. package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
  281. package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
  282. package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
  283. package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
  284. package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
  285. package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
  286. package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
  287. package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
  288. package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
  289. package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
  290. package/dist/features/textures/lib/water-surface.d.ts +92 -0
  291. package/dist/features/textures/lib/water-surface.js +378 -0
  292. package/dist/features/textures/lib/water-surface.js.map +7 -0
  293. package/dist/features/textures/lib/water-waves.d.ts +60 -0
  294. package/dist/features/textures/lib/water-waves.js +154 -0
  295. package/dist/features/textures/lib/water-waves.js.map +7 -0
  296. package/dist/features/viz/index.d.ts +28 -0
  297. package/dist/features/viz/index.js +45 -0
  298. package/dist/features/viz/index.js.map +7 -0
  299. package/dist/features/viz/index.mjs +1 -0
  300. package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
  301. package/dist/features/viz/lib/anchored-layout.js +166 -0
  302. package/dist/features/viz/lib/anchored-layout.js.map +7 -0
  303. package/dist/features/viz/lib/axis.d.ts +10 -0
  304. package/dist/features/viz/lib/axis.js +116 -0
  305. package/dist/features/viz/lib/axis.js.map +7 -0
  306. package/dist/features/viz/lib/band-scale.d.ts +3 -0
  307. package/dist/features/viz/lib/band-scale.js +57 -0
  308. package/dist/features/viz/lib/band-scale.js.map +7 -0
  309. package/dist/features/viz/lib/bar-fill.d.ts +16 -0
  310. package/dist/features/viz/lib/bar-fill.js +53 -0
  311. package/dist/features/viz/lib/bar-fill.js.map +7 -0
  312. package/dist/features/viz/lib/bar-series.d.ts +150 -0
  313. package/dist/features/viz/lib/bar-series.js +152 -0
  314. package/dist/features/viz/lib/bar-series.js.map +7 -0
  315. package/dist/features/viz/lib/hover-card.d.ts +92 -0
  316. package/dist/features/viz/lib/hover-card.js +146 -0
  317. package/dist/features/viz/lib/hover-card.js.map +7 -0
  318. package/dist/features/viz/lib/hover-data.d.ts +12 -0
  319. package/dist/features/viz/lib/hover-data.js +50 -0
  320. package/dist/features/viz/lib/hover-data.js.map +7 -0
  321. package/dist/features/viz/lib/hover-placement.d.ts +46 -0
  322. package/dist/features/viz/lib/hover-placement.js +51 -0
  323. package/dist/features/viz/lib/hover-placement.js.map +7 -0
  324. package/dist/features/viz/lib/hover-queries.d.ts +60 -0
  325. package/dist/features/viz/lib/hover-queries.js +185 -0
  326. package/dist/features/viz/lib/hover-queries.js.map +7 -0
  327. package/dist/features/viz/lib/hover-types.d.ts +277 -0
  328. package/dist/features/viz/lib/layout-pie.d.ts +13 -0
  329. package/dist/features/viz/lib/layout-pie.js +159 -0
  330. package/dist/features/viz/lib/layout-pie.js.map +7 -0
  331. package/dist/features/viz/lib/line-series.d.ts +11 -0
  332. package/dist/features/viz/lib/line-series.js +89 -0
  333. package/dist/features/viz/lib/line-series.js.map +7 -0
  334. package/dist/features/viz/lib/linear-scale.d.ts +3 -0
  335. package/dist/features/viz/lib/linear-scale.js +70 -0
  336. package/dist/features/viz/lib/linear-scale.js.map +7 -0
  337. package/dist/features/viz/lib/nearest.d.ts +82 -0
  338. package/dist/features/viz/lib/nearest.js +51 -0
  339. package/dist/features/viz/lib/nearest.js.map +7 -0
  340. package/dist/features/viz/lib/paint.d.ts +2 -0
  341. package/dist/features/viz/lib/paint.js +17 -0
  342. package/dist/features/viz/lib/paint.js.map +7 -0
  343. package/dist/features/viz/lib/pie-layout.d.ts +31 -0
  344. package/dist/features/viz/lib/pie-layout.js +324 -0
  345. package/dist/features/viz/lib/pie-layout.js.map +7 -0
  346. package/dist/features/viz/lib/pie-slices.d.ts +51 -0
  347. package/dist/features/viz/lib/pie-slices.js +50 -0
  348. package/dist/features/viz/lib/pie-slices.js.map +7 -0
  349. package/dist/features/viz/lib/pie-types.d.ts +215 -0
  350. package/dist/features/viz/lib/plot-series.d.ts +13 -0
  351. package/dist/features/viz/lib/plot-series.js +53 -0
  352. package/dist/features/viz/lib/plot-series.js.map +7 -0
  353. package/dist/features/viz/lib/plot-types.d.ts +63 -0
  354. package/dist/features/viz/lib/point-data.d.ts +5 -0
  355. package/dist/features/viz/lib/point-data.js +17 -0
  356. package/dist/features/viz/lib/point-data.js.map +7 -0
  357. package/dist/features/viz/lib/point-geometry.d.ts +2 -0
  358. package/dist/features/viz/lib/point-geometry.js +24 -0
  359. package/dist/features/viz/lib/point-geometry.js.map +7 -0
  360. package/dist/features/viz/lib/point-series.d.ts +11 -0
  361. package/dist/features/viz/lib/point-series.js +118 -0
  362. package/dist/features/viz/lib/point-series.js.map +7 -0
  363. package/dist/features/viz/lib/point-types.d.ts +94 -0
  364. package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
  365. package/dist/features/viz/lib/scale-adjust.js +25 -0
  366. package/dist/features/viz/lib/scale-adjust.js.map +7 -0
  367. package/dist/features/viz/lib/scale-context.d.ts +8 -0
  368. package/dist/features/viz/lib/scale-context.js +61 -0
  369. package/dist/features/viz/lib/scale-context.js.map +7 -0
  370. package/dist/features/viz/lib/scale.d.ts +11 -0
  371. package/dist/features/viz/lib/scale.js +80 -0
  372. package/dist/features/viz/lib/scale.js.map +7 -0
  373. package/dist/features/viz/lib/types.d.ts +414 -0
  374. package/dist/features/viz/lib/use-scale.d.ts +20 -0
  375. package/dist/features/viz/lib/use-scale.js +10 -0
  376. package/dist/features/viz/lib/use-scale.js.map +7 -0
  377. package/dist/filters/displacement-gpu.d.ts +38 -0
  378. package/dist/filters/displacement-gpu.js +243 -0
  379. package/dist/filters/displacement-gpu.js.map +7 -0
  380. package/dist/filters/displacement-math.d.ts +5 -0
  381. package/dist/filters/displacement-math.js +22 -0
  382. package/dist/filters/displacement-math.js.map +7 -0
  383. package/dist/filters/displacement.d.ts +13 -0
  384. package/dist/filters/displacement.js +65 -0
  385. package/dist/filters/displacement.js.map +7 -0
  386. package/dist/filters/filter-executor.d.ts +21 -0
  387. package/dist/filters/filter-executor.js +120 -0
  388. package/dist/filters/filter-executor.js.map +7 -0
  389. package/dist/filters/native-canvas-filter.d.ts +4 -0
  390. package/dist/filters/native-canvas-filter.js +105 -0
  391. package/dist/filters/native-canvas-filter.js.map +7 -0
  392. package/dist/filters/native-color.d.ts +2 -0
  393. package/dist/filters/native-color.js +200 -0
  394. package/dist/filters/native-color.js.map +7 -0
  395. package/dist/filters/native-operations.d.ts +8 -0
  396. package/dist/filters/native-operations.js +7 -0
  397. package/dist/filters/native-operations.js.map +7 -0
  398. package/dist/filters/native.d.ts +113 -0
  399. package/dist/filters/native.js +115 -0
  400. package/dist/filters/native.js.map +7 -0
  401. package/dist/filters/reflected-light.d.ts +12 -0
  402. package/dist/filters/reflected-light.js +93 -0
  403. package/dist/filters/reflected-light.js.map +7 -0
  404. package/dist/filters/reflection-gpu.d.ts +58 -0
  405. package/dist/filters/reflection-gpu.js +266 -0
  406. package/dist/filters/reflection-gpu.js.map +7 -0
  407. package/dist/filters/render-displacement-boundary.d.ts +12 -0
  408. package/dist/filters/render-displacement-boundary.js +116 -0
  409. package/dist/filters/render-displacement-boundary.js.map +7 -0
  410. package/dist/filters/render-reflection-boundary.d.ts +15 -0
  411. package/dist/filters/render-reflection-boundary.js +127 -0
  412. package/dist/filters/render-reflection-boundary.js.map +7 -0
  413. package/dist/filters.d.ts +5 -0
  414. package/dist/filters.js +29 -0
  415. package/dist/filters.js.map +7 -0
  416. package/dist/filters.mjs +1 -0
  417. package/dist/index.d.ts +111 -0
  418. package/dist/index.js +300 -0
  419. package/dist/index.js.map +7 -0
  420. package/dist/index.mjs +1 -0
  421. package/dist/internal.d.ts +160 -0
  422. package/dist/internal.js +320 -0
  423. package/dist/internal.js.map +7 -0
  424. package/dist/internal.mjs +1 -0
  425. package/dist/jsx-dev-runtime.d.ts +35 -0
  426. package/dist/jsx-dev-runtime.js +6 -0
  427. package/dist/jsx-dev-runtime.js.map +7 -0
  428. package/dist/jsx-dev-runtime.mjs +1 -0
  429. package/dist/jsx-runtime.d.ts +35 -0
  430. package/dist/jsx-runtime.js +7 -0
  431. package/dist/jsx-runtime.js.map +7 -0
  432. package/dist/jsx-runtime.mjs +1 -0
  433. package/dist/lib/animation/definition.d.ts +140 -0
  434. package/dist/lib/animation/definition.js +605 -0
  435. package/dist/lib/animation/definition.js.map +7 -0
  436. package/dist/lib/animation/easing.d.ts +55 -0
  437. package/dist/lib/animation/easing.js +112 -0
  438. package/dist/lib/animation/easing.js.map +7 -0
  439. package/dist/lib/animation/evaluate.d.ts +118 -0
  440. package/dist/lib/animation/evaluate.js +2398 -0
  441. package/dist/lib/animation/evaluate.js.map +7 -0
  442. package/dist/lib/animation/playback.d.ts +30 -0
  443. package/dist/lib/animation/playback.js +932 -0
  444. package/dist/lib/animation/playback.js.map +7 -0
  445. package/dist/lib/animation/program.d.ts +145 -0
  446. package/dist/lib/animation/program.js +741 -0
  447. package/dist/lib/animation/program.js.map +7 -0
  448. package/dist/lib/animation/spring.d.ts +30 -0
  449. package/dist/lib/animation/spring.js +324 -0
  450. package/dist/lib/animation/spring.js.map +7 -0
  451. package/dist/lib/animation/types.d.ts +418 -0
  452. package/dist/lib/animation/writer-leases.d.ts +47 -0
  453. package/dist/lib/animation/writer-leases.js +314 -0
  454. package/dist/lib/animation/writer-leases.js.map +7 -0
  455. package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
  456. package/dist/lib/backend/canvas-2d-backend.js +97 -0
  457. package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
  458. package/dist/lib/backend/types.d.ts +309 -0
  459. package/dist/lib/backend/types.js +26 -0
  460. package/dist/lib/backend/types.js.map +7 -0
  461. package/dist/lib/components/arc-geometry.d.ts +4 -0
  462. package/dist/lib/components/arc-geometry.js +46 -0
  463. package/dist/lib/components/arc-geometry.js.map +7 -0
  464. package/dist/lib/components/arc.d.ts +55 -0
  465. package/dist/lib/components/arc.js +91 -0
  466. package/dist/lib/components/arc.js.map +7 -0
  467. package/dist/lib/components/circle.d.ts +49 -0
  468. package/dist/lib/components/circle.js +46 -0
  469. package/dist/lib/components/circle.js.map +7 -0
  470. package/dist/lib/components/clip.d.ts +43 -0
  471. package/dist/lib/components/clip.js +24 -0
  472. package/dist/lib/components/clip.js.map +7 -0
  473. package/dist/lib/components/ellipse.d.ts +53 -0
  474. package/dist/lib/components/ellipse.js +59 -0
  475. package/dist/lib/components/ellipse.js.map +7 -0
  476. package/dist/lib/components/g.d.ts +56 -0
  477. package/dist/lib/components/g.js +24 -0
  478. package/dist/lib/components/g.js.map +7 -0
  479. package/dist/lib/components/horizontal-line.d.ts +56 -0
  480. package/dist/lib/components/horizontal-line.js +71 -0
  481. package/dist/lib/components/horizontal-line.js.map +7 -0
  482. package/dist/lib/components/html-box.d.ts +16 -0
  483. package/dist/lib/components/html-box.js +57 -0
  484. package/dist/lib/components/html-box.js.map +7 -0
  485. package/dist/lib/components/img.d.ts +24 -0
  486. package/dist/lib/components/img.js +150 -0
  487. package/dist/lib/components/img.js.map +7 -0
  488. package/dist/lib/components/layer-node-equality.d.ts +65 -0
  489. package/dist/lib/components/layer-node-equality.js +91 -0
  490. package/dist/lib/components/layer-node-equality.js.map +7 -0
  491. package/dist/lib/components/layer.d.ts +34 -0
  492. package/dist/lib/components/layer.js +172 -0
  493. package/dist/lib/components/layer.js.map +7 -0
  494. package/dist/lib/components/line.d.ts +51 -0
  495. package/dist/lib/components/line.js +76 -0
  496. package/dist/lib/components/line.js.map +7 -0
  497. package/dist/lib/components/path.d.ts +28 -0
  498. package/dist/lib/components/path.js +47 -0
  499. package/dist/lib/components/path.js.map +7 -0
  500. package/dist/lib/components/polygon.d.ts +45 -0
  501. package/dist/lib/components/polygon.js +93 -0
  502. package/dist/lib/components/polygon.js.map +7 -0
  503. package/dist/lib/components/rect.d.ts +24 -0
  504. package/dist/lib/components/rect.js +83 -0
  505. package/dist/lib/components/rect.js.map +7 -0
  506. package/dist/lib/components/regular-polygon.d.ts +102 -0
  507. package/dist/lib/components/regular-polygon.js +112 -0
  508. package/dist/lib/components/regular-polygon.js.map +7 -0
  509. package/dist/lib/components/rounded-corner-style.d.ts +7 -0
  510. package/dist/lib/components/rounded-corner-style.js +40 -0
  511. package/dist/lib/components/rounded-corner-style.js.map +7 -0
  512. package/dist/lib/components/shape-style.d.ts +7 -0
  513. package/dist/lib/components/shape-style.js +52 -0
  514. package/dist/lib/components/shape-style.js.map +7 -0
  515. package/dist/lib/components/star.d.ts +56 -0
  516. package/dist/lib/components/star.js +98 -0
  517. package/dist/lib/components/star.js.map +7 -0
  518. package/dist/lib/components/structural-events.d.ts +10 -0
  519. package/dist/lib/components/structural-events.js +8 -0
  520. package/dist/lib/components/structural-events.js.map +7 -0
  521. package/dist/lib/components/svg-path.d.ts +23 -0
  522. package/dist/lib/components/svg-path.js +25 -0
  523. package/dist/lib/components/svg-path.js.map +7 -0
  524. package/dist/lib/components/text-layout.d.ts +31 -0
  525. package/dist/lib/components/text-layout.js +139 -0
  526. package/dist/lib/components/text-layout.js.map +7 -0
  527. package/dist/lib/components/text.d.ts +29 -0
  528. package/dist/lib/components/text.js +174 -0
  529. package/dist/lib/components/text.js.map +7 -0
  530. package/dist/lib/components/vertical-line.d.ts +57 -0
  531. package/dist/lib/components/vertical-line.js +71 -0
  532. package/dist/lib/components/vertical-line.js.map +7 -0
  533. package/dist/lib/components/wedge.d.ts +55 -0
  534. package/dist/lib/components/wedge.js +93 -0
  535. package/dist/lib/components/wedge.js.map +7 -0
  536. package/dist/lib/define-primitive.d.ts +82 -0
  537. package/dist/lib/define-primitive.js +85 -0
  538. package/dist/lib/define-primitive.js.map +7 -0
  539. package/dist/lib/development.d.ts +2 -0
  540. package/dist/lib/development.js +5 -0
  541. package/dist/lib/development.js.map +7 -0
  542. package/dist/lib/element/children.d.ts +16 -0
  543. package/dist/lib/element/children.js +333 -0
  544. package/dist/lib/element/children.js.map +7 -0
  545. package/dist/lib/element/create-element.d.ts +34 -0
  546. package/dist/lib/element/create-element.js +75 -0
  547. package/dist/lib/element/create-element.js.map +7 -0
  548. package/dist/lib/element/fragment.d.ts +15 -0
  549. package/dist/lib/element/fragment.js +11 -0
  550. package/dist/lib/element/fragment.js.map +7 -0
  551. package/dist/lib/element/jsx-runtime.d.ts +48 -0
  552. package/dist/lib/element/jsx-runtime.js +16 -0
  553. package/dist/lib/element/jsx-runtime.js.map +7 -0
  554. package/dist/lib/element/metadata.d.ts +96 -0
  555. package/dist/lib/element/metadata.js +160 -0
  556. package/dist/lib/element/metadata.js.map +7 -0
  557. package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
  558. package/dist/lib/element/resolve-primitive-inputs.js +83 -0
  559. package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
  560. package/dist/lib/element/types.d.ts +123 -0
  561. package/dist/lib/element-enhancers.d.ts +134 -0
  562. package/dist/lib/element-enhancers.js +193 -0
  563. package/dist/lib/element-enhancers.js.map +7 -0
  564. package/dist/lib/events/adapters/clipboard.d.ts +9 -0
  565. package/dist/lib/events/adapters/clipboard.js +23 -0
  566. package/dist/lib/events/adapters/clipboard.js.map +7 -0
  567. package/dist/lib/events/adapters/drag.d.ts +12 -0
  568. package/dist/lib/events/adapters/drag.js +29 -0
  569. package/dist/lib/events/adapters/drag.js.map +7 -0
  570. package/dist/lib/events/adapters/editing.d.ts +15 -0
  571. package/dist/lib/events/adapters/editing.js +41 -0
  572. package/dist/lib/events/adapters/editing.js.map +7 -0
  573. package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
  574. package/dist/lib/events/adapters/keyboard-focus.js +36 -0
  575. package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
  576. package/dist/lib/events/adapters/mouse.d.ts +17 -0
  577. package/dist/lib/events/adapters/mouse.js +32 -0
  578. package/dist/lib/events/adapters/mouse.js.map +7 -0
  579. package/dist/lib/events/adapters/pointer.d.ts +19 -0
  580. package/dist/lib/events/adapters/pointer.js +40 -0
  581. package/dist/lib/events/adapters/pointer.js.map +7 -0
  582. package/dist/lib/events/adapters/touch.d.ts +16 -0
  583. package/dist/lib/events/adapters/touch.js +36 -0
  584. package/dist/lib/events/adapters/touch.js.map +7 -0
  585. package/dist/lib/events/adapters/wheel.d.ts +10 -0
  586. package/dist/lib/events/adapters/wheel.js +16 -0
  587. package/dist/lib/events/adapters/wheel.js.map +7 -0
  588. package/dist/lib/events/boundary-transitions.d.ts +9 -0
  589. package/dist/lib/events/boundary-transitions.js +16 -0
  590. package/dist/lib/events/boundary-transitions.js.map +7 -0
  591. package/dist/lib/events/dispatch.d.ts +21 -0
  592. package/dist/lib/events/dispatch.js +1078 -0
  593. package/dist/lib/events/dispatch.js.map +7 -0
  594. package/dist/lib/events/event-definitions.d.ts +23 -0
  595. package/dist/lib/events/event-definitions.js +74 -0
  596. package/dist/lib/events/event-definitions.js.map +7 -0
  597. package/dist/lib/events/event-facade.d.ts +19 -0
  598. package/dist/lib/events/event-facade.js +188 -0
  599. package/dist/lib/events/event-facade.js.map +7 -0
  600. package/dist/lib/events/event-path.d.ts +3 -0
  601. package/dist/lib/events/event-path.js +43 -0
  602. package/dist/lib/events/event-path.js.map +7 -0
  603. package/dist/lib/events/hit-test.d.ts +13 -0
  604. package/dist/lib/events/hit-test.js +135 -0
  605. package/dist/lib/events/hit-test.js.map +7 -0
  606. package/dist/lib/events/native-listener-hub.d.ts +10 -0
  607. package/dist/lib/events/native-listener-hub.js +72 -0
  608. package/dist/lib/events/native-listener-hub.js.map +7 -0
  609. package/dist/lib/events/paint-entry.d.ts +66 -0
  610. package/dist/lib/events/paint-entry.js +30 -0
  611. package/dist/lib/events/paint-entry.js.map +7 -0
  612. package/dist/lib/events/pointer-capture.d.ts +23 -0
  613. package/dist/lib/events/pointer-capture.js +339 -0
  614. package/dist/lib/events/pointer-capture.js.map +7 -0
  615. package/dist/lib/events/propagation.d.ts +7 -0
  616. package/dist/lib/events/propagation.js +56 -0
  617. package/dist/lib/events/propagation.js.map +7 -0
  618. package/dist/lib/events/registrations.d.ts +120 -0
  619. package/dist/lib/events/registrations.js +397 -0
  620. package/dist/lib/events/registrations.js.map +7 -0
  621. package/dist/lib/events/resolver-input.d.ts +25 -0
  622. package/dist/lib/events/resolver-input.js +62 -0
  623. package/dist/lib/events/resolver-input.js.map +7 -0
  624. package/dist/lib/events/types.d.ts +596 -0
  625. package/dist/lib/execute-render.d.ts +9 -0
  626. package/dist/lib/execute-render.js +195 -0
  627. package/dist/lib/execute-render.js.map +7 -0
  628. package/dist/lib/filter/canvas-state.d.ts +2 -0
  629. package/dist/lib/filter/canvas-state.js +31 -0
  630. package/dist/lib/filter/canvas-state.js.map +7 -0
  631. package/dist/lib/filter/filter-region.d.ts +33 -0
  632. package/dist/lib/filter/filter-region.js +291 -0
  633. package/dist/lib/filter/filter-region.js.map +7 -0
  634. package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
  635. package/dist/lib/filter/filter-surface-pool.js +252 -0
  636. package/dist/lib/filter/filter-surface-pool.js.map +7 -0
  637. package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
  638. package/dist/lib/filter/render-filter-boundary.js +211 -0
  639. package/dist/lib/filter/render-filter-boundary.js.map +7 -0
  640. package/dist/lib/focus/directional-navigation.d.ts +12 -0
  641. package/dist/lib/focus/directional-navigation.js +86 -0
  642. package/dist/lib/focus/directional-navigation.js.map +7 -0
  643. package/dist/lib/focus/dom-focus-host.d.ts +13 -0
  644. package/dist/lib/focus/dom-focus-host.js +352 -0
  645. package/dist/lib/focus/dom-focus-host.js.map +7 -0
  646. package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
  647. package/dist/lib/focus/dom-tab-stops.js +71 -0
  648. package/dist/lib/focus/dom-tab-stops.js.map +7 -0
  649. package/dist/lib/focus/focus-events.d.ts +4 -0
  650. package/dist/lib/focus/focus-events.js +78 -0
  651. package/dist/lib/focus/focus-events.js.map +7 -0
  652. package/dist/lib/focus/focus-manager.d.ts +121 -0
  653. package/dist/lib/focus/focus-manager.js +1131 -0
  654. package/dist/lib/focus/focus-manager.js.map +7 -0
  655. package/dist/lib/focus/geometry.d.ts +4 -0
  656. package/dist/lib/focus/geometry.js +64 -0
  657. package/dist/lib/focus/geometry.js.map +7 -0
  658. package/dist/lib/focus/html-focus-region.d.ts +27 -0
  659. package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
  660. package/dist/lib/focus/keyboard-defaults.js +110 -0
  661. package/dist/lib/focus/keyboard-defaults.js.map +7 -0
  662. package/dist/lib/focus/policy-components.d.ts +45 -0
  663. package/dist/lib/focus/policy-components.js +94 -0
  664. package/dist/lib/focus/policy-components.js.map +7 -0
  665. package/dist/lib/focus/types.d.ts +37 -0
  666. package/dist/lib/focus/types.js +7 -0
  667. package/dist/lib/focus/types.js.map +7 -0
  668. package/dist/lib/geometry/circle.d.ts +22 -0
  669. package/dist/lib/geometry/circle.js +13 -0
  670. package/dist/lib/geometry/circle.js.map +7 -0
  671. package/dist/lib/geometry/circular-sweep.d.ts +54 -0
  672. package/dist/lib/geometry/circular-sweep.js +95 -0
  673. package/dist/lib/geometry/circular-sweep.js.map +7 -0
  674. package/dist/lib/geometry/ellipse.d.ts +26 -0
  675. package/dist/lib/geometry/ellipse.js +17 -0
  676. package/dist/lib/geometry/ellipse.js.map +7 -0
  677. package/dist/lib/geometry/line.d.ts +20 -0
  678. package/dist/lib/geometry/line.js +15 -0
  679. package/dist/lib/geometry/line.js.map +7 -0
  680. package/dist/lib/geometry/path-arc.d.ts +25 -0
  681. package/dist/lib/geometry/path-arc.js +57 -0
  682. package/dist/lib/geometry/path-arc.js.map +7 -0
  683. package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
  684. package/dist/lib/geometry/path-bend-guide.js +282 -0
  685. package/dist/lib/geometry/path-bend-guide.js.map +7 -0
  686. package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
  687. package/dist/lib/geometry/path-bend-spans.js +109 -0
  688. package/dist/lib/geometry/path-bend-spans.js.map +7 -0
  689. package/dist/lib/geometry/path-bending.d.ts +90 -0
  690. package/dist/lib/geometry/path-bending.js +202 -0
  691. package/dist/lib/geometry/path-bending.js.map +7 -0
  692. package/dist/lib/geometry/path-conversion.d.ts +19 -0
  693. package/dist/lib/geometry/path-conversion.js +114 -0
  694. package/dist/lib/geometry/path-conversion.js.map +7 -0
  695. package/dist/lib/geometry/path-geometry.d.ts +218 -0
  696. package/dist/lib/geometry/path-geometry.js +557 -0
  697. package/dist/lib/geometry/path-geometry.js.map +7 -0
  698. package/dist/lib/geometry/path-radial.d.ts +15 -0
  699. package/dist/lib/geometry/path-radial.js +107 -0
  700. package/dist/lib/geometry/path-radial.js.map +7 -0
  701. package/dist/lib/geometry/path-transforms.d.ts +233 -0
  702. package/dist/lib/geometry/path-transforms.js +478 -0
  703. package/dist/lib/geometry/path-transforms.js.map +7 -0
  704. package/dist/lib/geometry/path-utilities.d.ts +78 -0
  705. package/dist/lib/geometry/path-utilities.js +341 -0
  706. package/dist/lib/geometry/path-utilities.js.map +7 -0
  707. package/dist/lib/geometry/path-wang.d.ts +18 -0
  708. package/dist/lib/geometry/path-wang.js +136 -0
  709. package/dist/lib/geometry/path-wang.js.map +7 -0
  710. package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
  711. package/dist/lib/geometry/path-warp-bezier.js +109 -0
  712. package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
  713. package/dist/lib/geometry/path-warp.d.ts +27 -0
  714. package/dist/lib/geometry/path-warp.js +165 -0
  715. package/dist/lib/geometry/path-warp.js.map +7 -0
  716. package/dist/lib/geometry/polygon.d.ts +21 -0
  717. package/dist/lib/geometry/polygon.js +12 -0
  718. package/dist/lib/geometry/polygon.js.map +7 -0
  719. package/dist/lib/geometry/rectangle.d.ts +38 -0
  720. package/dist/lib/geometry/rectangle.js +22 -0
  721. package/dist/lib/geometry/rectangle.js.map +7 -0
  722. package/dist/lib/geometry/regular-polygon.d.ts +88 -0
  723. package/dist/lib/geometry/regular-polygon.js +67 -0
  724. package/dist/lib/geometry/regular-polygon.js.map +7 -0
  725. package/dist/lib/geometry/resolve-path.d.ts +4 -0
  726. package/dist/lib/geometry/resolve-path.js +16 -0
  727. package/dist/lib/geometry/resolve-path.js.map +7 -0
  728. package/dist/lib/geometry/rounded-corners.d.ts +28 -0
  729. package/dist/lib/geometry/rounded-corners.js +118 -0
  730. package/dist/lib/geometry/rounded-corners.js.map +7 -0
  731. package/dist/lib/geometry/star.d.ts +39 -0
  732. package/dist/lib/geometry/star.js +90 -0
  733. package/dist/lib/geometry/star.js.map +7 -0
  734. package/dist/lib/geometry/svg-path.d.ts +21 -0
  735. package/dist/lib/geometry/svg-path.js +7 -0
  736. package/dist/lib/geometry/svg-path.js.map +7 -0
  737. package/dist/lib/geometry/transform-bend.d.ts +46 -0
  738. package/dist/lib/geometry/transform-bend.js +219 -0
  739. package/dist/lib/geometry/transform-bend.js.map +7 -0
  740. package/dist/lib/geometry/transform-guide.d.ts +57 -0
  741. package/dist/lib/geometry/transform-guide.js +157 -0
  742. package/dist/lib/geometry/transform-guide.js.map +7 -0
  743. package/dist/lib/geometry/transform-math.d.ts +21 -0
  744. package/dist/lib/geometry/transform-math.js +91 -0
  745. package/dist/lib/geometry/transform-math.js.map +7 -0
  746. package/dist/lib/geometry/transform-mesh.d.ts +39 -0
  747. package/dist/lib/geometry/transform-mesh.js +129 -0
  748. package/dist/lib/geometry/transform-mesh.js.map +7 -0
  749. package/dist/lib/geometry/validation.d.ts +6 -0
  750. package/dist/lib/geometry/validation.js +42 -0
  751. package/dist/lib/geometry/validation.js.map +7 -0
  752. package/dist/lib/global-state.d.ts +63 -0
  753. package/dist/lib/global-state.js +176 -0
  754. package/dist/lib/global-state.js.map +7 -0
  755. package/dist/lib/hooks/hook-slot.d.ts +30 -0
  756. package/dist/lib/hooks/hook-slot.js +66 -0
  757. package/dist/lib/hooks/hook-slot.js.map +7 -0
  758. package/dist/lib/hooks/use-animated-value.d.ts +24 -0
  759. package/dist/lib/hooks/use-animated-value.js +169 -0
  760. package/dist/lib/hooks/use-animated-value.js.map +7 -0
  761. package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
  762. package/dist/lib/hooks/use-canvas-context.js +13 -0
  763. package/dist/lib/hooks/use-canvas-context.js.map +7 -0
  764. package/dist/lib/hooks/use-computed.d.ts +13 -0
  765. package/dist/lib/hooks/use-computed.js +91 -0
  766. package/dist/lib/hooks/use-computed.js.map +7 -0
  767. package/dist/lib/hooks/use-const.d.ts +10 -0
  768. package/dist/lib/hooks/use-const.js +15 -0
  769. package/dist/lib/hooks/use-const.js.map +7 -0
  770. package/dist/lib/hooks/use-cursor.d.ts +16 -0
  771. package/dist/lib/hooks/use-cursor.js +51 -0
  772. package/dist/lib/hooks/use-cursor.js.map +7 -0
  773. package/dist/lib/hooks/use-event-listener.d.ts +10 -0
  774. package/dist/lib/hooks/use-event-listener.js +24 -0
  775. package/dist/lib/hooks/use-event-listener.js.map +7 -0
  776. package/dist/lib/hooks/use-event-target.d.ts +14 -0
  777. package/dist/lib/hooks/use-event-target.js +30 -0
  778. package/dist/lib/hooks/use-event-target.js.map +7 -0
  779. package/dist/lib/hooks/use-layout-box.d.ts +9 -0
  780. package/dist/lib/hooks/use-layout-box.js +8 -0
  781. package/dist/lib/hooks/use-layout-box.js.map +7 -0
  782. package/dist/lib/hooks/use-line-path.d.ts +14 -0
  783. package/dist/lib/hooks/use-line-path.js +13 -0
  784. package/dist/lib/hooks/use-line-path.js.map +7 -0
  785. package/dist/lib/hooks/use-paint-target.d.ts +3 -0
  786. package/dist/lib/hooks/use-paint-target.js +34 -0
  787. package/dist/lib/hooks/use-paint-target.js.map +7 -0
  788. package/dist/lib/hooks/use-playback.d.ts +21 -0
  789. package/dist/lib/hooks/use-playback.js +87 -0
  790. package/dist/lib/hooks/use-playback.js.map +7 -0
  791. package/dist/lib/hooks/use-reaction.d.ts +19 -0
  792. package/dist/lib/hooks/use-reaction.js +245 -0
  793. package/dist/lib/hooks/use-reaction.js.map +7 -0
  794. package/dist/lib/hooks/use-rect-path.d.ts +20 -0
  795. package/dist/lib/hooks/use-rect-path.js +25 -0
  796. package/dist/lib/hooks/use-rect-path.js.map +7 -0
  797. package/dist/lib/hooks/use-ref.d.ts +17 -0
  798. package/dist/lib/hooks/use-ref.js +8 -0
  799. package/dist/lib/hooks/use-ref.js.map +7 -0
  800. package/dist/lib/hooks/use-region.d.ts +11 -0
  801. package/dist/lib/hooks/use-region.js +34 -0
  802. package/dist/lib/hooks/use-region.js.map +7 -0
  803. package/dist/lib/hooks/use-signal.d.ts +12 -0
  804. package/dist/lib/hooks/use-signal.js +12 -0
  805. package/dist/lib/hooks/use-signal.js.map +7 -0
  806. package/dist/lib/hooks/use-svg-path.d.ts +11 -0
  807. package/dist/lib/hooks/use-svg-path.js +13 -0
  808. package/dist/lib/hooks/use-svg-path.js.map +7 -0
  809. package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
  810. package/dist/lib/hooks/use-value-memo-slot.js +45 -0
  811. package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
  812. package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
  813. package/dist/lib/hooks/use-visibility-transition.js +195 -0
  814. package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
  815. package/dist/lib/html/html-service.d.ts +30 -0
  816. package/dist/lib/html/html-service.js +281 -0
  817. package/dist/lib/html/html-service.js.map +7 -0
  818. package/dist/lib/html/overlay-config.d.ts +3 -0
  819. package/dist/lib/html/overlay-config.js +37 -0
  820. package/dist/lib/html/overlay-config.js.map +7 -0
  821. package/dist/lib/html/portable-clips.d.ts +4 -0
  822. package/dist/lib/html/portable-clips.js +20 -0
  823. package/dist/lib/html/portable-clips.js.map +7 -0
  824. package/dist/lib/html/types.d.ts +110 -0
  825. package/dist/lib/layout/absolute.d.ts +57 -0
  826. package/dist/lib/layout/absolute.js +348 -0
  827. package/dist/lib/layout/absolute.js.map +7 -0
  828. package/dist/lib/layout/box.d.ts +19 -0
  829. package/dist/lib/layout/box.js +209 -0
  830. package/dist/lib/layout/box.js.map +7 -0
  831. package/dist/lib/layout/context.d.ts +13 -0
  832. package/dist/lib/layout/context.js +42 -0
  833. package/dist/lib/layout/context.js.map +7 -0
  834. package/dist/lib/layout/diagnostics.d.ts +15 -0
  835. package/dist/lib/layout/diagnostics.js +30 -0
  836. package/dist/lib/layout/diagnostics.js.map +7 -0
  837. package/dist/lib/layout/flex.d.ts +64 -0
  838. package/dist/lib/layout/flex.js +803 -0
  839. package/dist/lib/layout/flex.js.map +7 -0
  840. package/dist/lib/layout/flow.d.ts +53 -0
  841. package/dist/lib/layout/flow.js +400 -0
  842. package/dist/lib/layout/flow.js.map +7 -0
  843. package/dist/lib/layout/grid.d.ts +64 -0
  844. package/dist/lib/layout/grid.js +597 -0
  845. package/dist/lib/layout/grid.js.map +7 -0
  846. package/dist/lib/layout/measure.d.ts +19 -0
  847. package/dist/lib/layout/measure.js +144 -0
  848. package/dist/lib/layout/measure.js.map +7 -0
  849. package/dist/lib/layout/overlay.d.ts +42 -0
  850. package/dist/lib/layout/overlay.js +151 -0
  851. package/dist/lib/layout/overlay.js.map +7 -0
  852. package/dist/lib/layout/place-child.d.ts +12 -0
  853. package/dist/lib/layout/place-child.js +72 -0
  854. package/dist/lib/layout/place-child.js.map +7 -0
  855. package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
  856. package/dist/lib/layout/positioning-diagnostics.js +15 -0
  857. package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
  858. package/dist/lib/layout/types.d.ts +78 -0
  859. package/dist/lib/manipulation/controller-types.d.ts +299 -0
  860. package/dist/lib/manipulation/controller.d.ts +57 -0
  861. package/dist/lib/manipulation/controller.js +464 -0
  862. package/dist/lib/manipulation/controller.js.map +7 -0
  863. package/dist/lib/manipulation/coordinates.d.ts +9 -0
  864. package/dist/lib/manipulation/coordinates.js +55 -0
  865. package/dist/lib/manipulation/coordinates.js.map +7 -0
  866. package/dist/lib/manipulation/degrees.d.ts +10 -0
  867. package/dist/lib/manipulation/degrees.js +9 -0
  868. package/dist/lib/manipulation/degrees.js.map +7 -0
  869. package/dist/lib/manipulation/frame.d.ts +24 -0
  870. package/dist/lib/manipulation/frame.js +101 -0
  871. package/dist/lib/manipulation/frame.js.map +7 -0
  872. package/dist/lib/manipulation/geometry.d.ts +4 -0
  873. package/dist/lib/manipulation/geometry.js +26 -0
  874. package/dist/lib/manipulation/geometry.js.map +7 -0
  875. package/dist/lib/manipulation/handles.d.ts +298 -0
  876. package/dist/lib/manipulation/handles.js +598 -0
  877. package/dist/lib/manipulation/handles.js.map +7 -0
  878. package/dist/lib/manipulation/manipulable.d.ts +65 -0
  879. package/dist/lib/manipulation/manipulable.js +47 -0
  880. package/dist/lib/manipulation/manipulable.js.map +7 -0
  881. package/dist/lib/manipulation/ownership.d.ts +15 -0
  882. package/dist/lib/manipulation/ownership.js +80 -0
  883. package/dist/lib/manipulation/ownership.js.map +7 -0
  884. package/dist/lib/manipulation/snap.d.ts +6 -0
  885. package/dist/lib/manipulation/snap.js +40 -0
  886. package/dist/lib/manipulation/snap.js.map +7 -0
  887. package/dist/lib/manipulation/solve.d.ts +2 -0
  888. package/dist/lib/manipulation/solve.js +563 -0
  889. package/dist/lib/manipulation/solve.js.map +7 -0
  890. package/dist/lib/manipulation/types.d.ts +178 -0
  891. package/dist/lib/mount-pibbl.d.ts +25 -0
  892. package/dist/lib/mount-pibbl.js +278 -0
  893. package/dist/lib/mount-pibbl.js.map +7 -0
  894. package/dist/lib/optional-services.d.ts +8 -0
  895. package/dist/lib/optional-services.js +11 -0
  896. package/dist/lib/optional-services.js.map +7 -0
  897. package/dist/lib/pibbl.d.ts +17 -0
  898. package/dist/lib/pibbl.js +21 -0
  899. package/dist/lib/pibbl.js.map +7 -0
  900. package/dist/lib/primitive-presentation.d.ts +24 -0
  901. package/dist/lib/primitive-presentation.js +102 -0
  902. package/dist/lib/primitive-presentation.js.map +7 -0
  903. package/dist/lib/render-layer/controller.d.ts +67 -0
  904. package/dist/lib/render-layer/controller.js +603 -0
  905. package/dist/lib/render-layer/controller.js.map +7 -0
  906. package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
  907. package/dist/lib/render-layer/define-render-layer.js +90 -0
  908. package/dist/lib/render-layer/define-render-layer.js.map +7 -0
  909. package/dist/lib/render-layer/types.d.ts +315 -0
  910. package/dist/lib/render-target.d.ts +27 -0
  911. package/dist/lib/render-target.js +118 -0
  912. package/dist/lib/render-target.js.map +7 -0
  913. package/dist/lib/render-transaction.d.ts +10 -0
  914. package/dist/lib/render-transaction.js +46 -0
  915. package/dist/lib/render-transaction.js.map +7 -0
  916. package/dist/lib/render.d.ts +3 -0
  917. package/dist/lib/render.js +385 -0
  918. package/dist/lib/render.js.map +7 -0
  919. package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
  920. package/dist/lib/scheduler/realm-scheduler.js +964 -0
  921. package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
  922. package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
  923. package/dist/lib/scheduler/renderer-participant.js +216 -0
  924. package/dist/lib/scheduler/renderer-participant.js.map +7 -0
  925. package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
  926. package/dist/lib/scheduler/simulation-participant.js +229 -0
  927. package/dist/lib/scheduler/simulation-participant.js.map +7 -0
  928. package/dist/lib/scheduler/testing.d.ts +56 -0
  929. package/dist/lib/scheduler/testing.js +71 -0
  930. package/dist/lib/scheduler/testing.js.map +7 -0
  931. package/dist/lib/scheduler/types.d.ts +103 -0
  932. package/dist/lib/signals/edge.d.ts +44 -0
  933. package/dist/lib/signals/edge.js +245 -0
  934. package/dist/lib/signals/edge.js.map +7 -0
  935. package/dist/lib/signals/graph.d.ts +220 -0
  936. package/dist/lib/signals/graph.js +1035 -0
  937. package/dist/lib/signals/graph.js.map +7 -0
  938. package/dist/lib/signals/input-provision.d.ts +3 -0
  939. package/dist/lib/signals/input-provision.js +67 -0
  940. package/dist/lib/signals/input-provision.js.map +7 -0
  941. package/dist/lib/signals/render-consumer.d.ts +21 -0
  942. package/dist/lib/signals/render-consumer.js +218 -0
  943. package/dist/lib/signals/render-consumer.js.map +7 -0
  944. package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
  945. package/dist/lib/signals/resolve-signal-value.js +17 -0
  946. package/dist/lib/signals/resolve-signal-value.js.map +7 -0
  947. package/dist/lib/signals/types.d.ts +80 -0
  948. package/dist/lib/style/diagnostics.d.ts +83 -0
  949. package/dist/lib/style/diagnostics.js +63 -0
  950. package/dist/lib/style/diagnostics.js.map +7 -0
  951. package/dist/lib/style/empty-style.d.ts +3 -0
  952. package/dist/lib/style/empty-style.js +5 -0
  953. package/dist/lib/style/empty-style.js.map +7 -0
  954. package/dist/lib/style/filter-types.d.ts +243 -0
  955. package/dist/lib/style/filter-types.js +5 -0
  956. package/dist/lib/style/filter-types.js.map +7 -0
  957. package/dist/lib/style/filter.d.ts +7 -0
  958. package/dist/lib/style/filter.js +50 -0
  959. package/dist/lib/style/filter.js.map +7 -0
  960. package/dist/lib/style/normalize.d.ts +18 -0
  961. package/dist/lib/style/normalize.js +50 -0
  962. package/dist/lib/style/normalize.js.map +7 -0
  963. package/dist/lib/style/positioning.d.ts +32 -0
  964. package/dist/lib/style/positioning.js +81 -0
  965. package/dist/lib/style/positioning.js.map +7 -0
  966. package/dist/lib/style/resolve-built-in.d.ts +6 -0
  967. package/dist/lib/style/resolve-built-in.js +58 -0
  968. package/dist/lib/style/resolve-built-in.js.map +7 -0
  969. package/dist/lib/style/resolve-dispatch.d.ts +20 -0
  970. package/dist/lib/style/resolve-dispatch.js +167 -0
  971. package/dist/lib/style/resolve-dispatch.js.map +7 -0
  972. package/dist/lib/style/resolve-length.d.ts +16 -0
  973. package/dist/lib/style/resolve-length.js +54 -0
  974. package/dist/lib/style/resolve-length.js.map +7 -0
  975. package/dist/lib/style/responsive.d.ts +31 -0
  976. package/dist/lib/style/responsive.js +172 -0
  977. package/dist/lib/style/responsive.js.map +7 -0
  978. package/dist/lib/style/types.d.ts +338 -0
  979. package/dist/lib/surface/resolve-surface.d.ts +4 -0
  980. package/dist/lib/surface/resolve-surface.js +184 -0
  981. package/dist/lib/surface/resolve-surface.js.map +7 -0
  982. package/dist/lib/surface/root-surface.d.ts +7 -0
  983. package/dist/lib/surface/root-surface.js +171 -0
  984. package/dist/lib/surface/root-surface.js.map +7 -0
  985. package/dist/lib/surface/transform.d.ts +4 -0
  986. package/dist/lib/surface/transform.js +16 -0
  987. package/dist/lib/surface/transform.js.map +7 -0
  988. package/dist/lib/surface/types.d.ts +132 -0
  989. package/dist/lib/teardowns.d.ts +14 -0
  990. package/dist/lib/teardowns.js +50 -0
  991. package/dist/lib/teardowns.js.map +7 -0
  992. package/dist/lib/textures/texture-protocol.d.ts +124 -0
  993. package/dist/lib/textures/texture-protocol.js +40 -0
  994. package/dist/lib/textures/texture-protocol.js.map +7 -0
  995. package/dist/lib/textures/texture.d.ts +170 -0
  996. package/dist/lib/textures/texture.js +385 -0
  997. package/dist/lib/textures/texture.js.map +7 -0
  998. package/dist/lib/transitions/bifrost.d.ts +47 -0
  999. package/dist/lib/transitions/bifrost.js +91 -0
  1000. package/dist/lib/transitions/bifrost.js.map +7 -0
  1001. package/dist/lib/transitions/binding.d.ts +14 -0
  1002. package/dist/lib/transitions/binding.js +35 -0
  1003. package/dist/lib/transitions/binding.js.map +7 -0
  1004. package/dist/lib/transitions/capture.d.ts +21 -0
  1005. package/dist/lib/transitions/capture.js +91 -0
  1006. package/dist/lib/transitions/capture.js.map +7 -0
  1007. package/dist/lib/transitions/common.d.ts +130 -0
  1008. package/dist/lib/transitions/common.js +57 -0
  1009. package/dist/lib/transitions/common.js.map +7 -0
  1010. package/dist/lib/transitions/define-transition.d.ts +64 -0
  1011. package/dist/lib/transitions/define-transition.js +31 -0
  1012. package/dist/lib/transitions/define-transition.js.map +7 -0
  1013. package/dist/lib/transitions/embers-physics.d.ts +114 -0
  1014. package/dist/lib/transitions/embers-physics.js +161 -0
  1015. package/dist/lib/transitions/embers-physics.js.map +7 -0
  1016. package/dist/lib/transitions/embers.d.ts +67 -0
  1017. package/dist/lib/transitions/embers.js +196 -0
  1018. package/dist/lib/transitions/embers.js.map +7 -0
  1019. package/dist/lib/transitions/fade.d.ts +41 -0
  1020. package/dist/lib/transitions/fade.js +31 -0
  1021. package/dist/lib/transitions/fade.js.map +7 -0
  1022. package/dist/lib/transitions/hologram.d.ts +47 -0
  1023. package/dist/lib/transitions/hologram.js +94 -0
  1024. package/dist/lib/transitions/hologram.js.map +7 -0
  1025. package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
  1026. package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
  1027. package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
  1028. package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
  1029. package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
  1030. package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
  1031. package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
  1032. package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
  1033. package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
  1034. package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
  1035. package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
  1036. package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
  1037. package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
  1038. package/dist/lib/transitions/wasm/kernel.js +26 -0
  1039. package/dist/lib/transitions/wasm/kernel.js.map +7 -0
  1040. package/dist/lib/types.d.ts +570 -0
  1041. package/dist/lib/update.d.ts +8 -0
  1042. package/dist/lib/update.js +20 -0
  1043. package/dist/lib/update.js.map +7 -0
  1044. package/dist/lib/util/get-2d-context.d.ts +2 -0
  1045. package/dist/lib/util/get-2d-context.js +11 -0
  1046. package/dist/lib/util/get-2d-context.js.map +7 -0
  1047. package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
  1048. package/dist/lib/util/get-mouse-coordinates.js +32 -0
  1049. package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
  1050. package/dist/lib/util/is-hit.d.ts +11 -0
  1051. package/dist/lib/util/is-hit.js +52 -0
  1052. package/dist/lib/util/is-hit.js.map +7 -0
  1053. package/dist/lib/util/is-transparent.d.ts +1 -0
  1054. package/dist/lib/util/is-transparent.js +8 -0
  1055. package/dist/lib/util/is-transparent.js.map +7 -0
  1056. package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
  1057. package/dist/lib/util/pixel-grid-adjustments.js +28 -0
  1058. package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
  1059. package/dist/lib/util/push-clipping-path.d.ts +6 -0
  1060. package/dist/lib/util/push-clipping-path.js +28 -0
  1061. package/dist/lib/util/push-clipping-path.js.map +7 -0
  1062. package/dist/lib/util/wire-common-events.d.ts +2 -0
  1063. package/dist/lib/util/wire-common-events.js +15 -0
  1064. package/dist/lib/util/wire-common-events.js.map +7 -0
  1065. package/dist/types.d.ts +1 -0
  1066. package/dist/types.js +1 -0
  1067. package/dist/types.js.map +7 -0
  1068. package/dist/types.mjs +1 -0
  1069. package/package.json +149 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/signals/graph.ts"],
4
+ "sourcesContent": ["import type {\n Signal,\n SignalEquals,\n SignalOptions,\n WritableSignal,\n} from './types.js';\nimport type { PibblRenderTransaction } from '../types.js';\nimport {\n beginReactiveCollection,\n collectReactiveDependency,\n finishReactiveCollection,\n linkReactiveEdgeToSource,\n notifyReactiveEdges,\n unlinkReactiveEdgeFromSource,\n type ReactiveEdge,\n type ReactiveNotificationCursor,\n type SignalDependencyConsumer,\n} from './edge.js';\n\nconst signalNodes = new WeakMap<object, SignalNode<unknown>>();\nconst signalValues = new WeakSet<object>();\n\ntype ComputedState = 'clean' | 'check' | 'evaluating';\n\ninterface ComputedSignalNode<T>\n extends SignalNode<T>, SignalDependencyConsumer {\n readonly kind: 'computed';\n compute(): T;\n state: ComputedState;\n hasValue: boolean;\n hasError: boolean;\n error: unknown;\n invalidate(): void;\n validate(): void;\n observedCount: number;\n pendingValidation: boolean;\n observe(): () => void;\n adoptCandidate(\n candidate: ComputedSignalNode<T>,\n compute: () => T,\n changed: boolean,\n readers: ReadonlySet<SignalDependencyCollector>,\n ): void;\n replaceCompute(compute: () => T, invalidate: boolean): void;\n}\n\n/** @internal One isolated formula generation owned by a render transaction. */\nexport interface ComputedFormulaCandidate<T> {\n readonly signal: Signal<T>;\n readonly readers: Set<SignalDependencyCollector>;\n changed: boolean;\n evaluated: boolean;\n value: T | undefined;\n}\n\nexport interface SignalNode<T> {\n value: T;\n equals: SignalEquals<T>;\n debugName: string | undefined;\n version: number;\n observerHead: ReactiveEdge | undefined;\n observerTail: ReactiveEdge | undefined;\n observerCount: number;\n activeObserverCursor: ReactiveNotificationCursor | undefined;\n observe?(): () => void;\n validate?(): void;\n}\n\ntype SignalRenderProvisionStatus = 'pending' | 'success' | 'failure';\n\ninterface SignalRenderProvisionEntry {\n readonly transaction: PibblRenderTransaction;\n value: unknown;\n status: SignalRenderProvisionStatus;\n}\n\ninterface SignalRenderProvisionState {\n baseValue: unknown;\n readonly entries: SignalRenderProvisionEntry[];\n readonly entriesByTransaction: Map<\n PibblRenderTransaction,\n SignalRenderProvisionEntry\n >;\n}\n\nexport interface SignalDependencyCollector {\n addDependency(node: SignalNode<unknown>): void;\n}\n\nexport type SignalWriteOperation = 'direct' | 'staged';\n\nexport type SignalWritePolicy = (\n node: SignalNode<unknown>,\n operation: SignalWriteOperation,\n) => void;\n\n/** @internal Authorization seam owned by the animation writer-lease registry. */\nexport interface SignalWriterLeasePolicy {\n assertDirectWriteAllowed(node: SignalNode<unknown>): void;\n captureStagedWrite(\n node: SignalNode<unknown>,\n writer: object,\n ): unknown;\n assertStagedWriteAllowed(\n node: SignalNode<unknown>,\n writer: object,\n authorization: unknown,\n ): void;\n}\n\nlet activeSignalDependencyCollector: SignalDependencyCollector | undefined;\nconst writePolicyStack: SignalWritePolicy[] = [];\nconst computedStack: ComputedSignalNode<unknown>[] = [];\nfunction createSignalNodeState<T>(\n value: T,\n equals: SignalEquals<T>,\n debugName: string | undefined,\n): SignalNode<T> {\n return {\n value,\n equals,\n debugName,\n version: 0,\n observerHead: undefined,\n observerTail: undefined,\n observerCount: 0,\n activeObserverCursor: undefined,\n };\n}\n\nconst commandAssertionNode = createSignalNodeState<unknown>(\n undefined,\n Object.is,\n undefined,\n);\nconst activeSignalRenderProvisions = new WeakMap<\n SignalNode<unknown>,\n SignalRenderProvisionState\n>();\nconst pendingComputedValidations = new Set<ComputedSignalNode<unknown>>();\nlet flushingPendingComputedValidations = false;\nlet rendererConsumers = 0;\nlet rendererEdges = 0;\nlet createdRendererConsumers = 0;\nlet releasedRendererConsumers = 0;\nlet createdRendererEdges = 0;\nlet releasedRendererEdges = 0;\nlet signalCommitNotifications = 0;\nlet planComputedValidations = 0;\nlet computedSourceEdges = 0;\nlet createdComputedSourceEdges = 0;\nlet releasedComputedSourceEdges = 0;\nlet lazyRendererConsumers = 0;\nlet reusedRendererEdges = 0;\nlet plainInputResolutions = 0;\nlet signalInputResolutions = 0;\nlet shallowInputCopies = 0;\nlet receiverInputProvisions = 0;\nlet adoptedReceiverInputProvisions = 0;\nlet rolledBackReceiverInputProvisions = 0;\nlet batchedObserverInvalidations = 0;\nlet reactionConsumers = 0;\nlet reactionEdges = 0;\nlet reactionRuns = 0;\nlet reactionCleanups = 0;\nlet reactionFailures = 0;\nlet signalGraphPlanWorkNotifier: (() => void) | undefined;\nlet signalWriterLeasePolicy: SignalWriterLeasePolicy | undefined;\n\ninterface PublicSignalBatchEntry {\n readonly value: unknown;\n readonly computedHasError: boolean | undefined;\n readonly computedError: unknown;\n}\n\ninterface PublicSignalBatchState {\n readonly entries: Map<SignalNode<unknown>, PublicSignalBatchEntry>;\n readonly failures: unknown[];\n}\n\nlet activePublicSignalBatch: PublicSignalBatchState | undefined;\n\nexport interface SignalGraphSnapshot {\n readonly rendererConsumers: number;\n readonly rendererEdges: number;\n readonly computedSourceEdges: number;\n readonly pendingComputedValidations: number;\n readonly createdRendererConsumers: number;\n readonly releasedRendererConsumers: number;\n readonly createdRendererEdges: number;\n readonly releasedRendererEdges: number;\n readonly signalCommitNotifications: number;\n readonly planComputedValidations: number;\n readonly createdComputedSourceEdges: number;\n readonly releasedComputedSourceEdges: number;\n readonly lazyRendererConsumers: number;\n readonly reusedRendererEdges: number;\n readonly plainInputResolutions: number;\n readonly signalInputResolutions: number;\n readonly shallowInputCopies: number;\n readonly receiverInputProvisions: number;\n readonly adoptedReceiverInputProvisions: number;\n readonly rolledBackReceiverInputProvisions: number;\n readonly batchedObserverInvalidations: number;\n readonly reactionConsumers: number;\n readonly reactionEdges: number;\n readonly reactionRuns: number;\n readonly reactionCleanups: number;\n readonly reactionFailures: number;\n}\n\n/** @internal Deterministic ownership and structural evidence for tests. */\nexport function signalGraphSnapshot(): SignalGraphSnapshot {\n return Object.freeze({\n rendererConsumers,\n rendererEdges,\n computedSourceEdges,\n pendingComputedValidations: pendingComputedValidations.size,\n createdRendererConsumers,\n releasedRendererConsumers,\n createdRendererEdges,\n releasedRendererEdges,\n signalCommitNotifications,\n planComputedValidations,\n createdComputedSourceEdges,\n releasedComputedSourceEdges,\n lazyRendererConsumers,\n reusedRendererEdges,\n plainInputResolutions,\n signalInputResolutions,\n shallowInputCopies,\n receiverInputProvisions,\n adoptedReceiverInputProvisions,\n rolledBackReceiverInputProvisions,\n batchedObserverInvalidations,\n reactionConsumers,\n reactionEdges,\n reactionRuns,\n reactionCleanups,\n reactionFailures,\n });\n}\n\n/** @internal Records one component consumer materialized by its first read. */\nexport function recordLazyRendererConsumerCreated(): void {\n lazyRendererConsumers++;\n}\n\n/** @internal Records one render edge reused by recollection or restoration. */\nexport function recordRendererEdgeReused(restored = false): void {\n if (restored) rendererEdges++;\n reusedRendererEdges++;\n}\n\n/** @internal Records one declared plain input that took the identity path. */\nexport function recordPlainInputResolution(): void {\n plainInputResolutions++;\n}\n\n/** @internal Records one declared signal-valued input read. */\nexport function recordSignalInputResolution(): void {\n signalInputResolutions++;\n}\n\n/** @internal Records one copy-on-signal props or style object. */\nexport function recordShallowInputCopy(): void {\n shallowInputCopies++;\n}\n\n/** @internal Records one pre-evaluation receiver input provision. */\nexport function recordReceiverInputProvisionCreated(): void {\n receiverInputProvisions++;\n}\n\n/** @internal Records one provision adopted by its receiver generation. */\nexport function recordReceiverInputProvisionAdopted(): void {\n receiverInputProvisions--;\n adoptedReceiverInputProvisions++;\n}\n\n/** @internal Records one provision discarded without publication. */\nexport function recordReceiverInputProvisionRolledBack(): void {\n receiverInputProvisions--;\n rolledBackReceiverInputProvisions++;\n}\n\n/** @internal Adds one already-read source to the active dependency collector. */\nexport function trackSignalDependency(node: SignalNode<unknown>): void {\n activeSignalDependencyCollector?.addDependency(node);\n}\n\n/** @internal Records one observer invalidation deduplicated by a public batch. */\nexport function recordBatchedObserverInvalidation(): void {\n batchedObserverInvalidations++;\n}\n\n/** @internal Records one live component-owned reaction consumer. */\nexport function recordReactionConsumerCreated(): void {\n reactionConsumers++;\n}\n\n/** @internal Records final release of one reaction consumer. */\nexport function recordReactionConsumerReleased(): void {\n reactionConsumers--;\n}\n\n/** @internal Records one live reaction source edge. */\nexport function recordReactionEdgeCreated(): void {\n reactionEdges++;\n}\n\n/** @internal Records release of one reaction source edge. */\nexport function recordReactionEdgeReleased(): void {\n reactionEdges--;\n}\n\n/** @internal Records one reaction setup attempt. */\nexport function recordReactionRun(): void {\n reactionRuns++;\n}\n\n/** @internal Records one exact cleanup generation execution. */\nexport function recordReactionCleanup(): void {\n reactionCleanups++;\n}\n\n/** @internal Records one setup or cleanup failure. */\nexport function recordReactionFailure(): void {\n reactionFailures++;\n}\n\n/** @internal Records one live renderer consumer for test diagnostics. */\nexport function recordRendererConsumerCreated(): void {\n rendererConsumers++;\n createdRendererConsumers++;\n}\n\n/** @internal Records release of one renderer consumer for test diagnostics. */\nexport function recordRendererConsumerReleased(): void {\n rendererConsumers--;\n releasedRendererConsumers++;\n}\n\n/** @internal Records one live renderer dependency edge for test diagnostics. */\nexport function recordRendererEdgeCreated(): void {\n rendererEdges++;\n createdRendererEdges++;\n}\n\n/** @internal Records release of one renderer dependency edge for tests. */\nexport function recordRendererEdgeReleased(): void {\n rendererEdges--;\n releasedRendererEdges++;\n}\n\n/**\n * Runs a synchronous callback while coalescing signal notifications until the outer batch\n * completes.\n *\n * @param callback - Synchronous work whose signal notifications are grouped.\n * @returns The callback's return value.\n *\n * @see {@link signal}\n * @see {@link computed}\n * @see {@link WritableSignal}\n */\nexport function batch<T>(callback: () => T): T {\n if (activePublicSignalBatch !== undefined) return callback();\n\n const state: PublicSignalBatchState = {\n entries: new Map(),\n failures: [],\n };\n activePublicSignalBatch = state;\n let result!: T;\n let callbackFailure: unknown;\n let callbackFailed = false;\n try {\n result = callback();\n } catch (error) {\n callbackFailed = true;\n callbackFailure = error;\n }\n\n const notificationFailures = flushPublicSignalBatch(state);\n if (callbackFailed) {\n if (notificationFailures.length === 0) throw callbackFailure;\n throw new AggregateError(\n [callbackFailure, ...notificationFailures],\n 'Pibbl signal batch callback and observer notifications failed.',\n );\n }\n throwSignalObserverFailures(notificationFailures);\n return result;\n}\n\nfunction recordPublicBatchEntry(node: SignalNode<unknown>): void {\n const state = activePublicSignalBatch;\n if (state === undefined || state.entries.has(node)) return;\n const computedNode = isComputedSignalNode(node) ? node : undefined;\n state.entries.set(node, {\n value: node.value,\n computedHasError: computedNode?.hasError,\n computedError: computedNode?.error,\n });\n}\n\nfunction flushPublicSignalBatch(state: PublicSignalBatchState): unknown[] {\n try {\n flushPendingComputedValidations();\n } catch (error) {\n if (\n error instanceof AggregateError &&\n error.message === 'Pibbl signal observer notifications failed.'\n ) {\n state.failures.push(...error.errors);\n } else {\n state.failures.push(error);\n }\n }\n\n const seen = new Set<SignalDependencyConsumer>();\n const consumers: Array<{\n readonly consumer: SignalDependencyConsumer;\n readonly source: SignalNode<unknown>;\n }> = [];\n for (const [source, entry] of state.entries) {\n let unchanged = false;\n try {\n unchanged = publicBatchEntryEquals(source, entry);\n } catch (error) {\n state.failures.push(error);\n }\n if (unchanged) continue;\n signalCommitNotifications++;\n for (\n let edge = source.observerHead;\n edge !== undefined;\n edge = edge.sourceNext\n ) {\n const consumer = edge.consumer;\n if (consumer.propagateInvalidation === true) continue;\n if (seen.has(consumer)) {\n recordBatchedObserverInvalidation();\n continue;\n }\n seen.add(consumer);\n consumers.push({ consumer, source });\n }\n }\n\n activePublicSignalBatch = undefined;\n for (const { consumer, source } of consumers) {\n try {\n consumer.notify(source);\n } catch (error) {\n state.failures.push(error);\n }\n }\n return state.failures;\n}\n\nfunction publicBatchEntryEquals(\n node: SignalNode<unknown>,\n entry: PublicSignalBatchEntry,\n): boolean {\n if (isComputedSignalNode(node)) {\n if (node.hasError !== entry.computedHasError) return false;\n if (node.hasError && node.error !== entry.computedError) return false;\n }\n return node.equals(entry.value, node.value);\n}\n\nfunction computedWriteErrorLabel(node: SignalNode<unknown>): string {\n return node.debugName === undefined ?\n 'Cannot write to a signal while evaluating a computed signal.' :\n `Cannot write to a signal while evaluating computed signal \"${node.debugName}\".`;\n}\n\nfunction notifySignalObservers(node: SignalNode<unknown>): unknown[] {\n const batchState = activePublicSignalBatch;\n if (batchState !== undefined) {\n batchState.failures.push(...notifyComputedInvalidationObservers(node));\n return [];\n }\n signalCommitNotifications++;\n return notifyReactiveEdges(node);\n}\n\nfunction notifyComputedInvalidationObservers(node: SignalNode<unknown>): unknown[] {\n return notifyReactiveEdges(\n node,\n consumer => consumer.propagateInvalidation === true,\n );\n}\n\nfunction notifyRendererInvalidationObservers(node: SignalNode<unknown>): unknown[] {\n return notifyReactiveEdges(\n node,\n consumer => consumer.renderInvalidation === true,\n );\n}\n\nfunction throwSignalObserverFailures(failures: readonly unknown[]): void {\n if (failures.length > 0) {\n throw new AggregateError(failures, 'Pibbl signal observer notifications failed.');\n }\n}\n\n/**\n * Creates a synchronous writable signal with configurable equality and an optional diagnostic\n * name.\n *\n * @param initialValue - Value stored before the first write.\n * @param options - Equality comparison and optional diagnostic name. See {@link SignalOptions}.\n * @returns A writable signal holding the initial value. See {@link WritableSignal}.\n *\n * @see {@link SignalOptions}\n * @see {@link WritableSignal}\n */\nexport function signal<T>(\n initialValue: T,\n options: SignalOptions<T> = {},\n): WritableSignal<T> {\n const equals = options.equals ?? Object.is;\n const debugName = options.debugName;\n const node = createSignalNodeState(initialValue, equals, debugName);\n\n let readonlySignal: Signal<T> | undefined;\n const read = (): T => {\n activeSignalDependencyCollector?.addDependency(node as SignalNode<unknown>);\n return node.value;\n };\n const assertWriteAllowed = (): void => {\n writePolicyStack[writePolicyStack.length - 1]?.(\n node as SignalNode<unknown>,\n 'direct',\n );\n signalWriterLeasePolicy?.assertDirectWriteAllowed(node as SignalNode<unknown>);\n };\n const commit = (nextValue: T): void => {\n if (node.equals(node.value, nextValue)) {\n return;\n }\n\n recordPublicBatchEntry(node as SignalNode<unknown>);\n node.value = nextValue;\n node.version++;\n throwSignalObserverFailures(notifySignalObservers(node as SignalNode<unknown>));\n };\n const writable = {\n get: read,\n set(nextValue: T): void {\n assertWriteAllowed();\n commit(nextValue);\n },\n update(updateValue: (current: T) => T): void {\n assertWriteAllowed();\n commit(updateValue(node.value));\n },\n asReadonly(): Signal<T> {\n if (readonlySignal === undefined) {\n readonlySignal = { get: read } as Signal<T>;\n signalValues.add(readonlySignal);\n signalNodes.set(readonlySignal, node as SignalNode<unknown>);\n }\n return readonlySignal;\n },\n } as WritableSignal<T>;\n\n signalValues.add(writable);\n signalNodes.set(writable, node as SignalNode<unknown>);\n return writable;\n}\n\n/**\n * @internal Presents a provisional value to reads and computed dependencies\n * during one render without publishing an ordinary signal notification.\n * This is reserved for a not-yet-successfully-mounted owner whose render\n * transaction owns acceptance or restoration of every overlapping preview.\n */\nexport function provisionSignalValueForRender<T>(\n value: WritableSignal<T>,\n nextValue: T,\n transaction: PibblRenderTransaction,\n): void {\n const node = getSignalNode(value) as SignalNode<unknown>;\n const publishComputedVersion = (next: unknown): void => {\n node.value = next;\n node.version++;\n throwSignalObserverFailures(\n notifyComputedInvalidationObservers(node),\n );\n };\n let state = activeSignalRenderProvisions.get(node);\n if (state === undefined) {\n state = {\n baseValue: node.value,\n entries: [],\n entriesByTransaction: new Map(),\n };\n activeSignalRenderProvisions.set(node, state);\n }\n\n const effectiveEntry = (): SignalRenderProvisionEntry | undefined => {\n for (let index = state.entries.length - 1; index >= 0; index--) {\n const entry = state.entries[index];\n if (entry.status !== 'failure') return entry;\n }\n return undefined;\n };\n const publishEffectiveValue = (\n forceEntry?: SignalRenderProvisionEntry,\n ): boolean => {\n const entry = effectiveEntry();\n const effectiveValue = entry?.value ?? state.baseValue;\n if (\n (forceEntry !== undefined && entry === forceEntry) ||\n !Object.is(node.value, effectiveValue)\n ) {\n publishComputedVersion(effectiveValue);\n return true;\n }\n return false;\n };\n\n let entry = state.entriesByTransaction.get(transaction);\n if (entry === undefined) {\n entry = { transaction, value: nextValue, status: 'pending' };\n state.entries.push(entry);\n state.entriesByTransaction.set(transaction, entry);\n const provisionState = state;\n const provisionEntry = entry;\n transaction.onFinish(success => {\n if (provisionEntry.status !== 'pending') return;\n provisionEntry.status = success ? 'success' : 'failure';\n\n while (\n provisionState.entries[0]?.status !== 'pending' &&\n provisionState.entries.length > 0\n ) {\n const settled = provisionState.entries.shift()!;\n provisionState.entriesByTransaction.delete(settled.transaction);\n if (settled.status === 'success') {\n provisionState.baseValue = settled.value;\n }\n }\n\n const effectiveValueChanged = publishEffectiveValue();\n if (!success && effectiveValueChanged) {\n throwSignalObserverFailures(notifyRendererInvalidationObservers(node));\n }\n if (provisionState.entries.length === 0) {\n activeSignalRenderProvisions.delete(node);\n }\n });\n }\n entry.value = nextValue;\n publishEffectiveValue(entry);\n}\n\n/**\n * Creates a lazy, cached readonly signal whose dependencies are tracked during evaluation.\n *\n * @param compute - Synchronous calculation whose signal reads become dependencies.\n * @param options - Equality comparison and optional diagnostic name. See {@link SignalOptions}.\n * @returns A readonly, lazy, cached signal that recomputes when its dependencies change. See\n * {@link Signal} .\n *\n * @see {@link SignalOptions}\n * @see {@link Signal}\n */\nexport function computed<T>(\n compute: () => T,\n options: SignalOptions<T> = {},\n): Signal<T> {\n const node = Object.assign(\n createSignalNodeState(\n undefined as T,\n options.equals ?? Object.is,\n options.debugName,\n ),\n {\n kind: 'computed',\n compute,\n state: 'check',\n hasValue: false,\n hasError: false,\n error: undefined,\n dependencyHead: undefined,\n dependencyTail: undefined,\n dependencyFreeHead: undefined,\n dependencyFreeCount: 0,\n dependencyCount: 0,\n dependencyHighWater: 0,\n collectionCursor: undefined,\n collectionGeneration: 0,\n observedCount: 0,\n pendingValidation: false,\n propagateInvalidation: true,\n addDependency(dependency: SignalNode<unknown>): void {\n if (\n !isComputedSignalNode(dependency) ||\n dependency.state !== 'evaluating'\n ) {\n collectReactiveDependency(node, dependency);\n }\n },\n notify: () => {},\n observe: () => () => {},\n invalidate: () => {},\n validate: () => {},\n adoptCandidate: () => {},\n replaceCompute: () => {},\n },\n ) as ComputedSignalNode<T>;\n\n const notifyObservers = (): unknown[] => {\n return notifySignalObservers(node as SignalNode<unknown>);\n };\n\n const enqueueValidation = (): void => {\n if (node.observedCount === 0 || node.pendingValidation) {\n return;\n }\n node.pendingValidation = true;\n const wasEmpty = pendingComputedValidations.size === 0;\n pendingComputedValidations.add(node as ComputedSignalNode<unknown>);\n if (wasEmpty) signalGraphPlanWorkNotifier?.();\n };\n\n const removePendingValidation = (): void => {\n if (!node.pendingValidation) return;\n node.pendingValidation = false;\n pendingComputedValidations.delete(node as ComputedSignalNode<unknown>);\n if (pendingComputedValidations.size === 0) signalGraphPlanWorkNotifier?.();\n };\n\n const invalidate = (): void => {\n if (node.state !== 'clean') {\n return;\n }\n node.state = 'check';\n enqueueValidation();\n throwSignalObserverFailures(\n notifyComputedInvalidationObservers(node as SignalNode<unknown>),\n );\n };\n node.notify = invalidate;\n\n const acquireDependency = (edge: ReactiveEdge): void => {\n if (edge.sourceLinked) return;\n const dependency = edge.source!;\n linkReactiveEdgeToSource(edge, dependency.observe?.());\n computedSourceEdges++;\n createdComputedSourceEdges++;\n };\n\n const releaseDependency = (edge: ReactiveEdge): void => {\n if (!edge.sourceLinked) return;\n unlinkReactiveEdgeFromSource(edge);\n computedSourceEdges--;\n releasedComputedSourceEdges++;\n };\n\n const acquireDependencies = (): void => {\n for (\n let edge = node.dependencyHead;\n edge !== undefined;\n edge = edge.consumerNext\n ) {\n acquireDependency(edge);\n }\n };\n\n const releaseDependencies = (): void => {\n for (\n let edge = node.dependencyHead;\n edge !== undefined;\n edge = edge.consumerNext\n ) {\n releaseDependency(edge);\n }\n };\n\n const finishDependencies = (): void => {\n finishReactiveCollection(\n node,\n edge => {\n if (node.observedCount > 0) acquireDependency(edge);\n edge.observedVersion = edge.source!.version;\n edge.collectionKind = undefined;\n },\n releaseDependency,\n );\n };\n\n const cycleError = (): Error => {\n const start = computedStack.indexOf(node as ComputedSignalNode<unknown>);\n const cycle = [...computedStack.slice(start), node as ComputedSignalNode<unknown>]\n .map(computedNode => computedNode.debugName ?? '<computed>')\n .join(' -> ');\n return new Error(`Pibbl computed cycle: ${cycle}`);\n };\n\n const evaluate = (): void => {\n if (node.state === 'evaluating') {\n throw cycleError();\n }\n\n beginReactiveCollection(node);\n node.state = 'evaluating';\n computedStack.push(node as ComputedSignalNode<unknown>);\n let changed: boolean;\n try {\n const result = withSignalWriteForbidden(\n computedWriteErrorLabel(node as SignalNode<unknown>),\n () => {\n const nextValue = withSignalTracking(node, node.compute);\n return {\n nextValue,\n changed: !node.hasValue || node.hasError ||\n !node.equals(node.value, nextValue),\n };\n },\n );\n\n changed = result.changed;\n if (changed) {\n recordPublicBatchEntry(node as SignalNode<unknown>);\n node.value = result.nextValue;\n node.version++;\n }\n node.hasValue = true;\n node.hasError = false;\n node.error = undefined;\n } catch (error) {\n changed = !node.hasError || node.error !== error;\n if (changed) recordPublicBatchEntry(node as SignalNode<unknown>);\n node.hasError = true;\n node.error = error;\n } finally {\n computedStack.pop();\n finishDependencies();\n node.state = 'clean';\n }\n if (changed) {\n if (node.hasError) node.version++;\n throwSignalObserverFailures(notifyObservers());\n }\n };\n\n const validate = (): void => {\n if (node.state === 'evaluating') {\n throw cycleError();\n }\n\n let dependencyChanged = false;\n if (node.state === 'clean' && node.observedCount > 0) return;\n for (\n let edge = node.dependencyHead;\n edge !== undefined;\n edge = edge.consumerNext\n ) {\n const dependency = edge.source!;\n dependency.validate?.();\n if (dependency.version !== edge.observedVersion) {\n dependencyChanged = true;\n }\n }\n if (node.state === 'clean' && !dependencyChanged) return;\n if (dependencyChanged || node.dependencyCount === 0 || !node.hasValue) {\n evaluate();\n } else {\n node.state = 'clean';\n }\n };\n\n const hasChangedDependencyVersion = (): boolean => {\n for (\n let edge = node.dependencyHead;\n edge !== undefined;\n edge = edge.consumerNext\n ) {\n if (edge.source!.version !== edge.observedVersion) return true;\n }\n return false;\n };\n\n node.invalidate = invalidate;\n node.validate = validate;\n\n node.replaceCompute = (nextCompute, shouldInvalidate): void => {\n node.compute = nextCompute;\n if (shouldInvalidate) invalidate();\n };\n\n node.adoptCandidate = (\n candidate,\n nextCompute,\n changed,\n readers,\n ): void => {\n if (!candidate.hasValue || candidate.hasError) {\n throw new Error('Cannot adopt an unevaluated computed formula candidate.');\n }\n node.compute = nextCompute;\n beginReactiveCollection(node);\n for (\n let edge = candidate.dependencyHead;\n edge !== undefined;\n edge = edge.consumerNext\n ) {\n collectReactiveDependency(node, edge.source!);\n }\n finishDependencies();\n removePendingValidation();\n node.state = 'clean';\n node.hasValue = true;\n node.hasError = false;\n node.error = undefined;\n if (!changed) return;\n\n recordPublicBatchEntry(node as SignalNode<unknown>);\n node.value = candidate.value;\n node.version++;\n signalCommitNotifications++;\n throwSignalObserverFailures(notifyReactiveEdges(\n node as SignalNode<unknown>,\n consumer => !readers.has(consumer),\n ));\n };\n\n node.observe = (): (() => void) => {\n node.observedCount++;\n if (node.observedCount === 1) {\n acquireDependencies();\n if (\n node.state === 'clean' &&\n hasChangedDependencyVersion()\n ) {\n node.state = 'check';\n }\n }\n if (node.state === 'check') {\n enqueueValidation();\n }\n\n let detached = false;\n return () => {\n if (detached) {\n return;\n }\n detached = true;\n node.observedCount--;\n if (node.observedCount === 0) {\n removePendingValidation();\n releaseDependencies();\n }\n };\n };\n\n const readonly: Signal<T> = {\n get(): T {\n activeSignalDependencyCollector?.addDependency(\n node as SignalNode<unknown>,\n );\n validate();\n removePendingValidation();\n if (node.hasError) {\n throw node.error;\n }\n return node.value;\n },\n } as Signal<T>;\n\n signalValues.add(readonly);\n signalNodes.set(readonly, node as SignalNode<unknown>);\n return readonly;\n}\n\n/** @internal Creates a nominal alias that retains one computed graph identity. */\nexport function createComputedSignalAlias<T>(\n target: Signal<T>,\n read: () => T,\n): Signal<T> {\n const node = requireComputedSignalNode(target);\n const alias = { get: read } as Signal<T>;\n signalValues.add(alias);\n signalNodes.set(alias, node as SignalNode<unknown>);\n return alias;\n}\n\n/** @internal Creates one unobserved formula generation for transactional render. */\nexport function createComputedFormulaCandidate<T>(\n target: Signal<T>,\n compute: () => T,\n): ComputedFormulaCandidate<T> {\n const node = requireComputedSignalNode(target);\n return {\n signal: computed(compute, {\n equals: node.equals,\n debugName: node.debugName,\n }),\n readers: new Set(),\n changed: false,\n evaluated: false,\n value: undefined,\n };\n}\n\n/** @internal Reads a provisional formula while attributing the stable node. */\nexport function readComputedFormulaCandidate<T>(\n target: Signal<T>,\n candidate: ComputedFormulaCandidate<T>,\n): T {\n const node = requireComputedSignalNode(target);\n const reader = activeSignalDependencyCollector;\n reader?.addDependency(node as SignalNode<unknown>);\n if (reader !== undefined) candidate.readers.add(reader);\n if (!candidate.evaluated) {\n const value = untracked(() => candidate.signal.get());\n candidate.changed = !node.hasValue || node.hasError ||\n !node.equals(node.value, value);\n candidate.value = value;\n candidate.evaluated = true;\n }\n return candidate.value as T;\n}\n\n/** @internal Publishes an evaluated formula generation after render success. */\nexport function adoptComputedFormulaCandidate<T>(\n target: Signal<T>,\n candidate: ComputedFormulaCandidate<T>,\n compute: () => T,\n): void {\n const node = requireComputedSignalNode(target);\n const candidateNode = requireComputedSignalNode(candidate.signal);\n node.adoptCandidate(\n candidateNode,\n compute,\n candidate.changed,\n candidate.readers,\n );\n}\n\n/** @internal Refreshes a committed formula and optionally invalidates its cache. */\nexport function replaceComputedFormula<T>(\n target: Signal<T>,\n compute: () => T,\n invalidate: boolean,\n): void {\n requireComputedSignalNode(target).replaceCompute(compute, invalidate);\n}\n\nfunction requireComputedSignalNode<T>(\n value: Signal<T>,\n): ComputedSignalNode<T> {\n const node = getSignalNode(value);\n if (!isComputedSignalNode(node as SignalNode<unknown>)) {\n throw new TypeError('Expected a computed signal.');\n }\n return node as ComputedSignalNode<T>;\n}\n\n/** @internal Called during the scheduler Plan phase. */\nexport function flushPendingComputedValidations(): void {\n if (flushingPendingComputedValidations) {\n return;\n }\n\n flushingPendingComputedValidations = true;\n const attempted = new Set<ComputedSignalNode<unknown>>();\n const failures: unknown[] = [];\n try {\n while (pendingComputedValidations.size > 0) {\n const node = Array.from(pendingComputedValidations)\n .find(candidate => !attempted.has(candidate));\n if (node === undefined) {\n break;\n }\n attempted.add(node);\n node.pendingValidation = false;\n pendingComputedValidations.delete(node);\n if (pendingComputedValidations.size === 0) signalGraphPlanWorkNotifier?.();\n if (node.observedCount > 0) {\n planComputedValidations++;\n try {\n node.validate();\n } catch (error) {\n if (\n error instanceof AggregateError &&\n error.message === 'Pibbl signal observer notifications failed.'\n ) {\n failures.push(...error.errors);\n } else {\n failures.push(error);\n }\n if (node.state === 'check') enqueueComputedValidation(node);\n }\n }\n }\n } finally {\n flushingPendingComputedValidations = false;\n }\n throwSignalObserverFailures(failures);\n}\n\n/** @internal Whether the realm scheduler has graph Plan work to service. */\nexport function hasPendingComputedValidations(): boolean {\n return pendingComputedValidations.size > 0;\n}\n\n/** @internal Connects graph liveness to its host-agnostic scheduler owner. */\nexport function setSignalGraphPlanWorkNotifier(notifier: () => void): void {\n signalGraphPlanWorkNotifier = notifier;\n if (pendingComputedValidations.size > 0) notifier();\n}\n\n/**\n * Runs a callback without recording its signal reads as dependencies of the current consumer.\n *\n * @param callback - Synchronous work whose reads should not register dependencies.\n * @returns The callback's return value.\n *\n * @see {@link Signal}\n * @see {@link computed}\n */\nexport function untracked<T>(callback: () => T): T {\n const previous = activeSignalDependencyCollector;\n activeSignalDependencyCollector = undefined;\n try {\n return callback();\n } finally {\n activeSignalDependencyCollector = previous;\n }\n}\n\n/**\n * Checks the nominal Pibbl signal identity rather than accepting objects that merely have a get\n * method.\n *\n * @param value - Value to check for Pibbl's nominal signal brand.\n * @returns True if the value is a Pibbl signal, narrowing its type accordingly. See {@link Signal}.\n *\n * @see {@link Signal}\n */\nexport function isSignal(value: unknown): value is Signal<unknown> {\n return typeof value === 'object' && value !== null && signalValues.has(value);\n}\n\nexport function getSignalNode<T>(value: Signal<T>): SignalNode<T> {\n const node =\n typeof value === 'object' && value !== null ? signalNodes.get(value) :\n undefined;\n if (node === undefined) {\n throw new TypeError('Expected a signal created by signal().');\n }\n return node as SignalNode<T>;\n}\n\ninterface StagedSignalValue {\n readonly node: SignalNode<unknown>;\n value: unknown;\n writer: object;\n authorization: unknown;\n provenance: object | undefined;\n previous: StagedSignalValue | undefined;\n}\n\ninterface SignalCommitBatchState {\n readonly staged: Map<SignalNode<unknown>, StagedSignalValue>;\n readonly lifecycles: Map<object, SignalCommitLifecycle>;\n}\n\n/** @internal Couples a non-signal resource publication to a staged writer. */\nexport interface SignalCommitLifecycle {\n /** Runs after all fallible commit validation and before signal observers. */\n apply(): void;\n /** Restores a completed apply if a later writer cannot publish. */\n rollback?(): void;\n /** Releases a candidate when its writer never reaches Commit. */\n abort(): void;\n}\n\nconst signalCommitBatchStates = new WeakMap<\n SignalCommitBatch,\n SignalCommitBatchState\n>();\n\nexport interface SignalCommitBatch {\n read<T>(signal: WritableSignal<T>): T;\n stage<T>(signal: WritableSignal<T>, value: T, writer: object): void;\n registerLifecycle(writer: object, lifecycle: SignalCommitLifecycle): void;\n discardWriter(writer: object): void;\n commit(onApplied?: () => void): void;\n clear(): void;\n}\n\nexport function createSignalCommitBatch(): SignalCommitBatch {\n const staged = new Map<SignalNode<unknown>, StagedSignalValue>();\n\n const batch: SignalCommitBatch = {\n read<T>(value: WritableSignal<T>): T {\n const node = getSignalNode(value) as SignalNode<T>;\n const candidate = staged.get(node as SignalNode<unknown>);\n return candidate === undefined ? node.value : candidate.value as T;\n },\n stage<T>(value: WritableSignal<T>, nextValue: T, writer: object): void {\n stageSignalCommitBatchCandidate(\n staged,\n value,\n nextValue,\n writer,\n undefined,\n );\n },\n registerLifecycle(writer: object, lifecycle: SignalCommitLifecycle): void {\n const prior = state.lifecycles.get(writer);\n if (prior) abortLifecycle(prior);\n state.lifecycles.set(writer, lifecycle);\n },\n discardWriter(writer: object): void {\n for (const [node, candidate] of staged) {\n if (candidate.writer === writer) {\n staged.delete(node);\n }\n }\n const lifecycle = state.lifecycles.get(writer);\n state.lifecycles.delete(writer);\n if (lifecycle) abortLifecycle(lifecycle);\n },\n commit(onApplied?: () => void): void {\n const candidates = [...staged.values()];\n staged.clear();\n try {\n for (const candidate of candidates) {\n signalWriterLeasePolicy?.assertStagedWriteAllowed(\n candidate.node,\n candidate.writer,\n candidate.authorization,\n );\n }\n\n const changed: StagedSignalValue[] = [];\n for (const candidate of candidates) {\n const node = candidate.node;\n if (!node.equals(node.value, candidate.value)) {\n changed.push(candidate);\n }\n }\n\n const changedWriters = new Set(changed.map(candidate => candidate.writer));\n const applied: SignalCommitLifecycle[] = [];\n for (const candidate of candidates) {\n const lifecycle = state.lifecycles.get(candidate.writer);\n state.lifecycles.delete(candidate.writer);\n if (!lifecycle) continue;\n if (!changedWriters.has(candidate.writer)) {\n abortLifecycle(lifecycle);\n continue;\n }\n try {\n lifecycle.apply();\n applied.push(lifecycle);\n } catch (error) {\n abortLifecycle(lifecycle);\n for (const appliedLifecycle of applied.reverse()) {\n try { appliedLifecycle.rollback?.(); } catch {}\n abortLifecycle(appliedLifecycle);\n }\n throw error;\n }\n }\n for (const candidate of changed) {\n const node = candidate.node;\n recordPublicBatchEntry(node);\n node.value = candidate.value;\n node.version++;\n }\n onApplied?.();\n const failures: unknown[] = [];\n for (const candidate of changed) {\n failures.push(...notifySignalObservers(candidate.node));\n }\n for (const lifecycle of state.lifecycles.values()) abortLifecycle(lifecycle);\n state.lifecycles.clear();\n throwSignalObserverFailures(failures);\n } catch (error) {\n for (const lifecycle of state.lifecycles.values()) abortLifecycle(lifecycle);\n state.lifecycles.clear();\n throw error;\n }\n },\n clear(): void {\n staged.clear();\n for (const lifecycle of state.lifecycles.values()) abortLifecycle(lifecycle);\n state.lifecycles.clear();\n },\n };\n const state: SignalCommitBatchState = { staged, lifecycles: new Map() };\n signalCommitBatchStates.set(batch, state);\n return batch;\n}\n\nfunction abortLifecycle(lifecycle: SignalCommitLifecycle): void {\n try {\n lifecycle.abort();\n } catch {\n // Abort is cleanup for an already failing or discarded transaction. It must\n // not replace the originating scheduler/commit failure.\n }\n}\n\n/** @internal Stages a candidate with rollback provenance for one owner. */\nexport function stageSignalCommitBatchWithProvenance<T>(\n batch: SignalCommitBatch,\n provenance: object,\n signal: WritableSignal<T>,\n value: T,\n writer: object,\n): void {\n stageSignalCommitBatchCandidate(\n requireSignalCommitBatchState(batch).staged,\n signal,\n value,\n writer,\n provenance,\n );\n}\n\n/** @internal Discards only candidates staged with one owner's provenance. */\nexport function discardSignalCommitBatchProvenance(\n batch: SignalCommitBatch,\n provenance: object,\n): void {\n discardSignalCommitBatchCandidates(\n requireSignalCommitBatchState(batch).staged,\n candidate => candidate.provenance === provenance,\n );\n}\n\n/** @internal Applies friend discardWriter semantics inside one owner provenance. */\nexport function discardSignalCommitBatchWriterForProvenance(\n batch: SignalCommitBatch,\n provenance: object,\n writer: object,\n): void {\n discardSignalCommitBatchCandidates(\n requireSignalCommitBatchState(batch).staged,\n candidate =>\n candidate.provenance === provenance && candidate.writer === writer,\n );\n}\n\nfunction stageSignalCommitBatchCandidate<T>(\n staged: Map<SignalNode<unknown>, StagedSignalValue>,\n value: WritableSignal<T>,\n nextValue: T,\n writer: object,\n provenance: object | undefined,\n): void {\n const node = getSignalNode(value) as SignalNode<T>;\n const unknownNode = node as SignalNode<unknown>;\n writePolicyStack[writePolicyStack.length - 1]?.(unknownNode, 'staged');\n staged.set(unknownNode, {\n node: unknownNode,\n value: nextValue,\n writer,\n authorization: signalWriterLeasePolicy?.captureStagedWrite(\n unknownNode,\n writer,\n ),\n provenance,\n previous: staged.get(unknownNode),\n });\n}\n\nfunction requireSignalCommitBatchState(\n batch: SignalCommitBatch,\n): SignalCommitBatchState {\n const state = signalCommitBatchStates.get(batch);\n if (!state) throw new TypeError('Expected a Pibbl signal Commit batch.');\n return state;\n}\n\nfunction discardSignalCommitBatchCandidates(\n staged: Map<SignalNode<unknown>, StagedSignalValue>,\n discard: (candidate: StagedSignalValue) => boolean,\n): void {\n for (const [node, candidate] of staged) {\n const retained = discardStagedSignalCandidates(candidate, discard);\n if (retained === undefined) staged.delete(node);\n else staged.set(node, retained);\n }\n}\n\nfunction discardStagedSignalCandidates(\n candidate: StagedSignalValue | undefined,\n discard: (candidate: StagedSignalValue) => boolean,\n): StagedSignalValue | undefined {\n const retained: StagedSignalValue[] = [];\n let current = candidate;\n while (current !== undefined) {\n if (!discard(current)) retained.push(current);\n current = current.previous;\n }\n let previous: StagedSignalValue | undefined;\n for (let index = retained.length - 1; index >= 0; index--) {\n retained[index].previous = previous;\n previous = retained[index];\n }\n return previous;\n}\n\nexport function withSignalTracking<T>(\n collector: SignalDependencyCollector,\n callback: () => T,\n): T {\n const previous = activeSignalDependencyCollector;\n activeSignalDependencyCollector = collector;\n try {\n return callback();\n } finally {\n activeSignalDependencyCollector = previous;\n }\n}\n\nexport function withSignalWritePolicy<T>(\n policy: SignalWritePolicy,\n callback: () => T,\n): T {\n writePolicyStack.push(policy);\n try {\n return callback();\n } finally {\n writePolicyStack.pop();\n }\n}\n\nexport function withSignalWriteForbidden<T>(\n reason: string,\n callback: () => T,\n): T {\n return withSignalWritePolicy(() => {\n throw new Error(reason);\n }, callback);\n}\n\nexport function withDirectSignalWriteForbidden<T>(\n reason: string,\n callback: () => T,\n): T {\n return withSignalWritePolicy((_node, operation) => {\n if (operation === 'direct') throw new Error(reason);\n }, callback);\n}\n\n/** @internal Checks the active direct-write policy without mutating a signal. */\nexport function assertSignalCommandAllowed(): void {\n writePolicyStack[writePolicyStack.length - 1]?.(\n commandAssertionNode,\n 'direct',\n );\n}\n\n/** @internal Preflight a direct signal writer without changing values or versions. */\nexport function assertDirectSignalWriteAllowed(value: Signal<unknown>): void {\n const node = getSignalNode(value);\n writePolicyStack[writePolicyStack.length - 1]?.(node, 'direct');\n signalWriterLeasePolicy?.assertDirectWriteAllowed(node);\n}\n\n/** @internal Installs the singleton policy that validates active writer leases. */\nexport function installSignalWriterLeasePolicy(\n policy: SignalWriterLeasePolicy,\n): void {\n if (signalWriterLeasePolicy !== undefined && signalWriterLeasePolicy !== policy) {\n throw new Error('Pibbl signal writer-lease policy is already installed.');\n }\n signalWriterLeasePolicy = policy;\n}\n\nfunction isComputedSignalNode(\n node: SignalNode<unknown>,\n): node is ComputedSignalNode<unknown> {\n return 'kind' in node && node.kind === 'computed';\n}\n\nfunction enqueueComputedValidation(node: ComputedSignalNode<unknown>): void {\n if (node.observedCount === 0 || node.pendingValidation) return;\n node.pendingValidation = true;\n const wasEmpty = pendingComputedValidations.size === 0;\n pendingComputedValidations.add(node);\n if (wasEmpty) signalGraphPlanWorkNotifier?.();\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["entry", "batch", "signal"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { PibblRenderTransaction } from '../types.js';
2
+ export declare function withReceiverInputProvision<T>(transaction: PibblRenderTransaction | undefined, receiver: object | undefined, callback: () => T): T;
3
+ export declare function adoptReceiverInputProvision(transaction: PibblRenderTransaction | undefined, receiver: object): void;
@@ -0,0 +1,67 @@
1
+ import { GLOBAL_STATE } from "../global-state.js";
2
+ import { getPrimitiveReceiverToken } from "../element/metadata.js";
3
+ import {
4
+ recordReceiverInputProvisionAdopted,
5
+ recordReceiverInputProvisionCreated,
6
+ recordReceiverInputProvisionRolledBack,
7
+ trackSignalDependency,
8
+ untracked,
9
+ withSignalTracking
10
+ } from "./graph.js";
11
+ const transactionProvisions = /* @__PURE__ */ new WeakMap();
12
+ function withReceiverInputProvision(transaction, receiver, callback) {
13
+ if (!transaction || !receiver) return untracked(callback);
14
+ if (currentComponentOwnsReceiver(receiver)) return callback();
15
+ let provision;
16
+ const collector = {
17
+ addDependency(node) {
18
+ if (provision === void 0) {
19
+ provision = createProvision(transaction, receiver);
20
+ }
21
+ if (!provision.nodes.includes(node)) provision.nodes.push(node);
22
+ }
23
+ };
24
+ return withSignalTracking(collector, callback);
25
+ }
26
+ function adoptReceiverInputProvision(transaction, receiver) {
27
+ if (!transaction) return;
28
+ const receivers = transactionProvisions.get(transaction);
29
+ const provision = receivers?.get(receiver);
30
+ if (!provision || provision.settled) return;
31
+ provision.settled = true;
32
+ receivers.delete(receiver);
33
+ for (const node of provision.nodes) trackSignalDependency(node);
34
+ provision.nodes.length = 0;
35
+ recordReceiverInputProvisionAdopted();
36
+ }
37
+ function createProvision(transaction, receiver) {
38
+ let receivers = transactionProvisions.get(transaction);
39
+ if (!receivers) {
40
+ receivers = /* @__PURE__ */ new WeakMap();
41
+ transactionProvisions.set(transaction, receivers);
42
+ }
43
+ let provision = receivers.get(receiver);
44
+ if (provision) return provision;
45
+ provision = { nodes: [], settled: false };
46
+ receivers.set(receiver, provision);
47
+ recordReceiverInputProvisionCreated();
48
+ const ownedProvision = provision;
49
+ transaction.onFinish(() => {
50
+ if (ownedProvision.settled) return;
51
+ ownedProvision.settled = true;
52
+ receivers.delete(receiver);
53
+ ownedProvision.nodes.length = 0;
54
+ recordReceiverInputProvisionRolledBack();
55
+ });
56
+ return provision;
57
+ }
58
+ function currentComponentOwnsReceiver(receiver) {
59
+ const component = GLOBAL_STATE.componentRefs;
60
+ if (!component) return false;
61
+ return (getPrimitiveReceiverToken(component.element) ?? component) === receiver;
62
+ }
63
+ export {
64
+ adoptReceiverInputProvision,
65
+ withReceiverInputProvision
66
+ };
67
+ //# sourceMappingURL=input-provision.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/signals/input-provision.ts"],
4
+ "sourcesContent": ["import type { PibblRenderTransaction } from '../types.js';\nimport { GLOBAL_STATE } from '../global-state.js';\nimport { getPrimitiveReceiverToken } from '../element/metadata.js';\nimport {\n recordReceiverInputProvisionAdopted,\n recordReceiverInputProvisionCreated,\n recordReceiverInputProvisionRolledBack,\n trackSignalDependency,\n untracked,\n withSignalTracking,\n type SignalDependencyCollector,\n type SignalNode,\n} from './graph.js';\n\ninterface ReceiverInputProvision {\n readonly nodes: SignalNode<unknown>[];\n settled: boolean;\n}\n\nconst transactionProvisions = new WeakMap<\n PibblRenderTransaction,\n WeakMap<object, ReceiverInputProvision>\n>();\n\nexport function withReceiverInputProvision<T>(\n transaction: PibblRenderTransaction | undefined,\n receiver: object | undefined,\n callback: () => T,\n): T {\n if (!transaction || !receiver) return untracked(callback);\n if (currentComponentOwnsReceiver(receiver)) return callback();\n\n let provision: ReceiverInputProvision | undefined;\n const collector: SignalDependencyCollector = {\n addDependency(node): void {\n if (provision === undefined) {\n provision = createProvision(transaction, receiver);\n }\n if (!provision.nodes.includes(node)) provision.nodes.push(node);\n },\n };\n return withSignalTracking(collector, callback);\n}\n\nexport function adoptReceiverInputProvision(\n transaction: PibblRenderTransaction | undefined,\n receiver: object,\n): void {\n if (!transaction) return;\n const receivers = transactionProvisions.get(transaction);\n const provision = receivers?.get(receiver);\n if (!provision || provision.settled) return;\n\n provision.settled = true;\n receivers!.delete(receiver);\n for (const node of provision.nodes) trackSignalDependency(node);\n provision.nodes.length = 0;\n recordReceiverInputProvisionAdopted();\n}\n\nfunction createProvision(\n transaction: PibblRenderTransaction,\n receiver: object,\n): ReceiverInputProvision {\n let receivers = transactionProvisions.get(transaction);\n if (!receivers) {\n receivers = new WeakMap();\n transactionProvisions.set(transaction, receivers);\n }\n let provision = receivers.get(receiver);\n if (provision) return provision;\n\n provision = { nodes: [], settled: false };\n receivers.set(receiver, provision);\n recordReceiverInputProvisionCreated();\n const ownedProvision = provision;\n transaction.onFinish(() => {\n if (ownedProvision.settled) return;\n ownedProvision.settled = true;\n receivers!.delete(receiver);\n ownedProvision.nodes.length = 0;\n recordReceiverInputProvisionRolledBack();\n });\n return provision;\n}\n\nfunction currentComponentOwnsReceiver(receiver: object): boolean {\n const component = GLOBAL_STATE.componentRefs;\n if (!component) return false;\n return (getPrimitiveReceiverToken(component.element) ?? component) === receiver;\n}\n"],
5
+ "mappings": "AACA,SAAS,oBAAoB;AAC7B,SAAS,iCAAiC;AAC1C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAOP,MAAM,wBAAwB,oBAAI,QAGhC;AAEK,SAAS,2BACd,aACA,UACA,UACG;AACH,MAAI,CAAC,eAAe,CAAC,SAAU,QAAO,UAAU,QAAQ;AACxD,MAAI,6BAA6B,QAAQ,EAAG,QAAO,SAAS;AAE5D,MAAI;AACJ,QAAM,YAAuC;AAAA,IAC3C,cAAc,MAAY;AACxB,UAAI,cAAc,QAAW;AAC3B,oBAAY,gBAAgB,aAAa,QAAQ;AAAA,MACnD;AACA,UAAI,CAAC,UAAU,MAAM,SAAS,IAAI,EAAG,WAAU,MAAM,KAAK,IAAI;AAAA,IAChE;AAAA,EACF;AACA,SAAO,mBAAmB,WAAW,QAAQ;AAC/C;AAEO,SAAS,4BACd,aACA,UACM;AACN,MAAI,CAAC,YAAa;AAClB,QAAM,YAAY,sBAAsB,IAAI,WAAW;AACvD,QAAM,YAAY,WAAW,IAAI,QAAQ;AACzC,MAAI,CAAC,aAAa,UAAU,QAAS;AAErC,YAAU,UAAU;AACpB,YAAW,OAAO,QAAQ;AAC1B,aAAW,QAAQ,UAAU,MAAO,uBAAsB,IAAI;AAC9D,YAAU,MAAM,SAAS;AACzB,sCAAoC;AACtC;AAEA,SAAS,gBACP,aACA,UACwB;AACxB,MAAI,YAAY,sBAAsB,IAAI,WAAW;AACrD,MAAI,CAAC,WAAW;AACd,gBAAY,oBAAI,QAAQ;AACxB,0BAAsB,IAAI,aAAa,SAAS;AAAA,EAClD;AACA,MAAI,YAAY,UAAU,IAAI,QAAQ;AACtC,MAAI,UAAW,QAAO;AAEtB,cAAY,EAAE,OAAO,CAAC,GAAG,SAAS,MAAM;AACxC,YAAU,IAAI,UAAU,SAAS;AACjC,sCAAoC;AACpC,QAAM,iBAAiB;AACvB,cAAY,SAAS,MAAM;AACzB,QAAI,eAAe,QAAS;AAC5B,mBAAe,UAAU;AACzB,cAAW,OAAO,QAAQ;AAC1B,mBAAe,MAAM,SAAS;AAC9B,2CAAuC;AAAA,EACzC,CAAC;AACD,SAAO;AACT;AAEA,SAAS,6BAA6B,UAA2B;AAC/D,QAAM,YAAY,aAAa;AAC/B,MAAI,CAAC,UAAW,QAAO;AACvB,UAAQ,0BAA0B,UAAU,OAAO,KAAK,eAAe;AACzE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,21 @@
1
+ export interface SignalRenderConsumer {
2
+ readonly debugName: string;
3
+ readonly releaseCount: number;
4
+ markClean(): void;
5
+ }
6
+ export interface SignalRenderConsumerOptions {
7
+ debugName: string;
8
+ invalidate(): void;
9
+ }
10
+ export interface ComponentSignalRenderOwner {
11
+ signalConsumer: SignalRenderConsumer | undefined;
12
+ }
13
+ export interface ComponentSignalReadOptions extends SignalRenderConsumerOptions {
14
+ onMaterialize(): void;
15
+ }
16
+ /** @internal Opaque identity for repository-local passive ownership correlation. */
17
+ export declare function signalRenderConsumerIdentity(consumer: SignalRenderConsumer): object | undefined;
18
+ export declare function createSignalRenderConsumer(options: SignalRenderConsumerOptions): SignalRenderConsumer;
19
+ export declare function collectSignalReads<T>(consumer: SignalRenderConsumer, callback: (commit: () => void) => T): T;
20
+ export declare function collectComponentSignalReads<T>(owner: ComponentSignalRenderOwner, createOptions: () => ComponentSignalReadOptions, callback: (commit: () => void) => T): T;
21
+ export declare function disposeSignalRenderConsumer(consumer: SignalRenderConsumer): void;
@@ -0,0 +1,218 @@
1
+ import {
2
+ recordRendererConsumerCreated,
3
+ recordRendererConsumerReleased,
4
+ recordRendererEdgeCreated,
5
+ recordRendererEdgeReleased,
6
+ recordRendererEdgeReused,
7
+ recordLazyRendererConsumerCreated,
8
+ withSignalTracking
9
+ } from "./graph.js";
10
+ import {
11
+ beginReactiveCollection,
12
+ collectReactiveDependency,
13
+ disposeReactiveConsumer,
14
+ finishReactiveCollection,
15
+ linkReactiveEdgeToSource,
16
+ rollbackReactiveCollection,
17
+ unlinkReactiveEdgeFromSource
18
+ } from "./edge.js";
19
+ const consumerStates = /* @__PURE__ */ new WeakMap();
20
+ function signalRenderConsumerIdentity(consumer) {
21
+ return consumerStates.get(consumer);
22
+ }
23
+ function createSignalRenderConsumer(options) {
24
+ const state = {
25
+ dependencyHead: void 0,
26
+ dependencyTail: void 0,
27
+ dependencyFreeHead: void 0,
28
+ dependencyFreeCount: 0,
29
+ dependencyCount: 0,
30
+ dependencyHighWater: 0,
31
+ collectionCursor: void 0,
32
+ collectionGeneration: 0,
33
+ collecting: false,
34
+ dirty: true,
35
+ disposed: false,
36
+ releaseCount: 0,
37
+ renderInvalidation: true,
38
+ addDependency(node) {
39
+ if (!state.collecting) return;
40
+ const cursor = state.collectionCursor;
41
+ if (cursor?.source === node && cursor.collectionGeneration !== state.collectionGeneration) {
42
+ cursor.collectionGeneration = state.collectionGeneration;
43
+ cursor.collectionKind = "reused";
44
+ state.collectionCursor = cursor.consumerNext;
45
+ return;
46
+ }
47
+ collectReactiveDependency(state, node);
48
+ },
49
+ notify() {
50
+ if (state.disposed || state.dirty) return;
51
+ state.dirty = true;
52
+ options.invalidate();
53
+ }
54
+ };
55
+ const consumer = {
56
+ debugName: options.debugName,
57
+ get releaseCount() {
58
+ return state.releaseCount;
59
+ },
60
+ markClean() {
61
+ if (!state.disposed) state.dirty = false;
62
+ }
63
+ };
64
+ consumerStates.set(consumer, state);
65
+ recordRendererConsumerCreated();
66
+ return consumer;
67
+ }
68
+ function collectSignalReads(consumer, callback) {
69
+ const state = getConsumerState(consumer);
70
+ if (state.disposed) {
71
+ return withSignalTracking(
72
+ { addDependency: () => {
73
+ } },
74
+ () => callback(() => {
75
+ })
76
+ );
77
+ }
78
+ beginReactiveCollection(state);
79
+ state.collecting = true;
80
+ let committed = false;
81
+ const commit = () => {
82
+ if (committed) return;
83
+ committed = true;
84
+ state.collecting = false;
85
+ if (!state.disposed) commitCollectedDependencies(state);
86
+ else rollbackReactiveCollection(state);
87
+ };
88
+ try {
89
+ const result = withSignalTracking(state, () => callback(commit));
90
+ commit();
91
+ return result;
92
+ } catch (error) {
93
+ if (!committed) rollbackReactiveCollection(state);
94
+ throw error;
95
+ } finally {
96
+ state.collecting = false;
97
+ }
98
+ }
99
+ function collectComponentSignalReads(owner, createOptions, callback) {
100
+ let consumer = owner.signalConsumer;
101
+ let state = consumer === void 0 ? void 0 : getConsumerState(consumer);
102
+ let provisional = false;
103
+ let committed = false;
104
+ let onMaterialize;
105
+ let collector;
106
+ if (state === void 0) {
107
+ collector = {
108
+ addDependency(node) {
109
+ if (committed) return;
110
+ if (state === void 0) {
111
+ const options = createOptions();
112
+ onMaterialize = options.onMaterialize;
113
+ consumer = createSignalRenderConsumer(options);
114
+ state = getConsumerState(consumer);
115
+ provisional = true;
116
+ recordLazyRendererConsumerCreated();
117
+ beginConsumerCollection(state);
118
+ }
119
+ state.addDependency(node);
120
+ }
121
+ };
122
+ } else {
123
+ beginConsumerCollection(state);
124
+ collector = state;
125
+ }
126
+ const commit = () => {
127
+ if (committed) return;
128
+ committed = true;
129
+ if (state === void 0 || consumer === void 0) return;
130
+ state.collecting = false;
131
+ commitCollectedDependencies(state);
132
+ if (state.dependencyCount === 0) {
133
+ if (owner.signalConsumer === consumer) owner.signalConsumer = void 0;
134
+ disposeSignalRenderConsumer(consumer);
135
+ } else if (provisional) {
136
+ owner.signalConsumer = consumer;
137
+ onMaterialize();
138
+ }
139
+ };
140
+ try {
141
+ const result = withSignalTracking(collector, () => callback(commit));
142
+ commit();
143
+ return result;
144
+ } catch (error) {
145
+ if (!committed && state !== void 0) {
146
+ rollbackReactiveCollection(state);
147
+ if (provisional && consumer !== void 0) {
148
+ disposeSignalRenderConsumer(consumer);
149
+ }
150
+ }
151
+ throw error;
152
+ } finally {
153
+ if (state !== void 0) state.collecting = false;
154
+ }
155
+ }
156
+ function disposeSignalRenderConsumer(consumer) {
157
+ const state = getConsumerState(consumer);
158
+ if (state.disposed) return;
159
+ state.disposed = true;
160
+ state.collectionGeneration++;
161
+ state.collecting = false;
162
+ disposeReactiveConsumer(state, releaseRendererEdge);
163
+ state.releaseCount++;
164
+ recordRendererConsumerReleased();
165
+ }
166
+ function getConsumerState(consumer) {
167
+ const state = consumerStates.get(consumer);
168
+ if (state === void 0) {
169
+ throw new TypeError("Expected a signal render consumer created by Pibbl.");
170
+ }
171
+ return state;
172
+ }
173
+ function beginConsumerCollection(state) {
174
+ beginReactiveCollection(state);
175
+ state.collecting = true;
176
+ }
177
+ function commitCollectedDependencies(state) {
178
+ const onlyEdge = state.dependencyHead;
179
+ if (onlyEdge !== void 0 && onlyEdge.consumerNext === void 0 && onlyEdge.collectionGeneration === state.collectionGeneration && onlyEdge.sourceLinked && onlyEdge.collectionKind === "reused") {
180
+ recordRendererEdgeReused();
181
+ onlyEdge.observedVersion = onlyEdge.source.version;
182
+ onlyEdge.collectionKind = void 0;
183
+ state.collectionCursor = void 0;
184
+ return;
185
+ }
186
+ finishReactiveCollection(
187
+ state,
188
+ (edge) => {
189
+ const restored = !edge.sourceLinked;
190
+ if (restored) {
191
+ const source = edge.source;
192
+ linkReactiveEdgeToSource(edge, source.observe?.());
193
+ }
194
+ if (edge.collectionKind === "new") {
195
+ recordRendererEdgeCreated();
196
+ } else {
197
+ recordRendererEdgeReused(restored);
198
+ }
199
+ edge.everPublished = true;
200
+ edge.observedVersion = edge.source.version;
201
+ edge.collectionKind = void 0;
202
+ },
203
+ releaseRendererEdge
204
+ );
205
+ }
206
+ function releaseRendererEdge(edge) {
207
+ if (!edge.sourceLinked) return;
208
+ unlinkReactiveEdgeFromSource(edge);
209
+ recordRendererEdgeReleased();
210
+ }
211
+ export {
212
+ collectComponentSignalReads,
213
+ collectSignalReads,
214
+ createSignalRenderConsumer,
215
+ disposeSignalRenderConsumer,
216
+ signalRenderConsumerIdentity
217
+ };
218
+ //# sourceMappingURL=render-consumer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/signals/render-consumer.ts"],
4
+ "sourcesContent": ["import {\n recordRendererConsumerCreated,\n recordRendererConsumerReleased,\n recordRendererEdgeCreated,\n recordRendererEdgeReleased,\n recordRendererEdgeReused,\n recordLazyRendererConsumerCreated,\n type SignalDependencyCollector,\n type SignalNode,\n withSignalTracking,\n} from './graph.js';\nimport {\n beginReactiveCollection,\n collectReactiveDependency,\n disposeReactiveConsumer,\n finishReactiveCollection,\n linkReactiveEdgeToSource,\n rollbackReactiveCollection,\n unlinkReactiveEdgeFromSource,\n type ReactiveEdge,\n type SignalDependencyConsumer,\n} from './edge.js';\n\nexport interface SignalRenderConsumer {\n readonly debugName: string;\n readonly releaseCount: number;\n markClean(): void;\n}\n\nexport interface SignalRenderConsumerOptions {\n debugName: string;\n invalidate(): void;\n}\n\nexport interface ComponentSignalRenderOwner {\n signalConsumer: SignalRenderConsumer | undefined;\n}\n\nexport interface ComponentSignalReadOptions extends SignalRenderConsumerOptions {\n onMaterialize(): void;\n}\n\ninterface ConsumerState extends SignalDependencyConsumer {\n collecting: boolean;\n dirty: boolean;\n disposed: boolean;\n releaseCount: number;\n}\n\nconst consumerStates = new WeakMap<SignalRenderConsumer, ConsumerState>();\n\n/** @internal Opaque identity for repository-local passive ownership correlation. */\nexport function signalRenderConsumerIdentity(consumer: SignalRenderConsumer): object | undefined {\n return consumerStates.get(consumer);\n}\n\nexport function createSignalRenderConsumer(\n options: SignalRenderConsumerOptions,\n): SignalRenderConsumer {\n const state: ConsumerState = {\n dependencyHead: undefined,\n dependencyTail: undefined,\n dependencyFreeHead: undefined,\n dependencyFreeCount: 0,\n dependencyCount: 0,\n dependencyHighWater: 0,\n collectionCursor: undefined,\n collectionGeneration: 0,\n collecting: false,\n dirty: true,\n disposed: false,\n releaseCount: 0,\n renderInvalidation: true,\n addDependency(node): void {\n if (!state.collecting) return;\n const cursor = state.collectionCursor;\n if (\n cursor?.source === node &&\n cursor.collectionGeneration !== state.collectionGeneration\n ) {\n cursor.collectionGeneration = state.collectionGeneration;\n cursor.collectionKind = 'reused';\n state.collectionCursor = cursor.consumerNext;\n return;\n }\n collectReactiveDependency(state, node);\n },\n notify(): void {\n if (state.disposed || state.dirty) return;\n state.dirty = true;\n options.invalidate();\n },\n };\n\n const consumer: SignalRenderConsumer = {\n debugName: options.debugName,\n get releaseCount(): number {\n return state.releaseCount;\n },\n markClean(): void {\n if (!state.disposed) state.dirty = false;\n },\n };\n\n consumerStates.set(consumer, state);\n recordRendererConsumerCreated();\n return consumer;\n}\n\nexport function collectSignalReads<T>(\n consumer: SignalRenderConsumer,\n callback: (commit: () => void) => T,\n): T {\n const state = getConsumerState(consumer);\n if (state.disposed) {\n return withSignalTracking(\n { addDependency: () => {} },\n () => callback(() => {}),\n );\n }\n\n beginReactiveCollection(state);\n state.collecting = true;\n let committed = false;\n const commit = (): void => {\n if (committed) return;\n committed = true;\n state.collecting = false;\n if (!state.disposed) commitCollectedDependencies(state);\n else rollbackReactiveCollection(state);\n };\n try {\n const result = withSignalTracking(state, () => callback(commit));\n commit();\n return result;\n } catch (error) {\n if (!committed) rollbackReactiveCollection(state);\n throw error;\n } finally {\n state.collecting = false;\n }\n}\n\nexport function collectComponentSignalReads<T>(\n owner: ComponentSignalRenderOwner,\n createOptions: () => ComponentSignalReadOptions,\n callback: (commit: () => void) => T,\n): T {\n let consumer = owner.signalConsumer;\n let state = consumer === undefined ? undefined : getConsumerState(consumer);\n let provisional = false;\n let committed = false;\n let onMaterialize: (() => void) | undefined;\n\n let collector: SignalDependencyCollector;\n if (state === undefined) {\n collector = {\n addDependency(node: SignalNode<unknown>): void {\n if (committed) return;\n if (state === undefined) {\n const options = createOptions();\n onMaterialize = options.onMaterialize;\n consumer = createSignalRenderConsumer(options);\n state = getConsumerState(consumer);\n provisional = true;\n recordLazyRendererConsumerCreated();\n beginConsumerCollection(state);\n }\n state.addDependency(node);\n },\n };\n } else {\n beginConsumerCollection(state);\n collector = state;\n }\n const commit = (): void => {\n if (committed) return;\n committed = true;\n if (state === undefined || consumer === undefined) return;\n state.collecting = false;\n commitCollectedDependencies(state);\n if (state.dependencyCount === 0) {\n if (owner.signalConsumer === consumer) owner.signalConsumer = undefined;\n disposeSignalRenderConsumer(consumer);\n } else if (provisional) {\n owner.signalConsumer = consumer;\n onMaterialize!();\n }\n };\n\n try {\n const result = withSignalTracking(collector, () => callback(commit));\n commit();\n return result;\n } catch (error) {\n if (!committed && state !== undefined) {\n rollbackReactiveCollection(state);\n if (provisional && consumer !== undefined) {\n disposeSignalRenderConsumer(consumer);\n }\n }\n throw error;\n } finally {\n if (state !== undefined) state.collecting = false;\n }\n}\n\nexport function disposeSignalRenderConsumer(consumer: SignalRenderConsumer): void {\n const state = getConsumerState(consumer);\n if (state.disposed) return;\n state.disposed = true;\n state.collectionGeneration++;\n state.collecting = false;\n disposeReactiveConsumer(state, releaseRendererEdge);\n state.releaseCount++;\n recordRendererConsumerReleased();\n}\n\nfunction getConsumerState(consumer: SignalRenderConsumer): ConsumerState {\n const state = consumerStates.get(consumer);\n if (state === undefined) {\n throw new TypeError('Expected a signal render consumer created by Pibbl.');\n }\n return state;\n}\n\nfunction beginConsumerCollection(state: ConsumerState): void {\n beginReactiveCollection(state);\n state.collecting = true;\n}\n\nfunction commitCollectedDependencies(state: ConsumerState): void {\n const onlyEdge = state.dependencyHead;\n if (\n onlyEdge !== undefined &&\n onlyEdge.consumerNext === undefined &&\n onlyEdge.collectionGeneration === state.collectionGeneration &&\n onlyEdge.sourceLinked &&\n onlyEdge.collectionKind === 'reused'\n ) {\n recordRendererEdgeReused();\n onlyEdge.observedVersion = onlyEdge.source!.version;\n onlyEdge.collectionKind = undefined;\n state.collectionCursor = undefined;\n return;\n }\n finishReactiveCollection(\n state,\n edge => {\n const restored = !edge.sourceLinked;\n if (restored) {\n const source = edge.source!;\n linkReactiveEdgeToSource(edge, source.observe?.());\n }\n if (edge.collectionKind === 'new') {\n recordRendererEdgeCreated();\n } else {\n recordRendererEdgeReused(restored);\n }\n edge.everPublished = true;\n edge.observedVersion = edge.source!.version;\n edge.collectionKind = undefined;\n },\n releaseRendererEdge,\n );\n}\n\nfunction releaseRendererEdge(edge: ReactiveEdge): void {\n if (!edge.sourceLinked) return;\n unlinkReactiveEdgeFromSource(edge);\n recordRendererEdgeReleased();\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,10 @@
1
+ import type { SignalValue } from './types.js';
2
+ /**
3
+ * Returns a literal input unchanged or reads its current value when it is a Pibbl signal.
4
+ *
5
+ * @param value - Literal value or signal to read. See {@link SignalValue}.
6
+ * @returns The literal value, or the signal's current value.
7
+ *
8
+ * @see {@link SignalValue}
9
+ */
10
+ export declare function resolveSignalValue<T>(value: SignalValue<T>): T;
@@ -0,0 +1,17 @@
1
+ import {
2
+ isSignal,
3
+ recordPlainInputResolution,
4
+ recordSignalInputResolution
5
+ } from "./graph.js";
6
+ function resolveSignalValue(value) {
7
+ if (isSignal(value)) {
8
+ recordSignalInputResolution();
9
+ return value.get();
10
+ }
11
+ recordPlainInputResolution();
12
+ return value;
13
+ }
14
+ export {
15
+ resolveSignalValue
16
+ };
17
+ //# sourceMappingURL=resolve-signal-value.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/signals/resolve-signal-value.ts"],
4
+ "sourcesContent": ["import {\n isSignal,\n recordPlainInputResolution,\n recordSignalInputResolution,\n} from './graph.js';\nimport type { SignalValue } from './types.js';\n\n/**\n * Returns a literal input unchanged or reads its current value when it is a Pibbl signal.\n *\n * @param value - Literal value or signal to read. See {@link SignalValue}.\n * @returns The literal value, or the signal's current value.\n *\n * @see {@link SignalValue}\n */\nexport function resolveSignalValue<T>(value: SignalValue<T>): T {\n if (isSignal(value)) {\n recordSignalInputResolution();\n return value.get() as T;\n }\n recordPlainInputResolution();\n return value;\n}\n"],
5
+ "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,SAAS,mBAAsB,OAA0B;AAC9D,MAAI,SAAS,KAAK,GAAG;AACnB,gCAA4B;AAC5B,WAAO,MAAM,IAAI;AAAA,EACnB;AACA,6BAA2B;AAC3B,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,80 @@
1
+ import type { batch, computed, signal } from "./graph.js";
2
+ import type { resolveSignalValue } from "./resolve-signal-value.js";
3
+ import type { usePlayback } from "../hooks/use-playback.js";
4
+ /**
5
+ * Compares previous and next values to decide whether a signal change should be published.
6
+ *
7
+ * @param previous - Previously stored value.
8
+ * @param next - Proposed replacement value.
9
+ * @returns True when the values are equivalent and a change should be suppressed.
10
+ *
11
+ * @see {@link SignalOptions}
12
+ */
13
+ export type SignalEquals<T> = (previous: T, next: T) => boolean;
14
+ declare const signalBrand: unique symbol;
15
+ /**
16
+ * Equality comparison and diagnostic naming options for a signal.
17
+ *
18
+ * @see {@link SignalEquals}
19
+ * @see {@link computed}
20
+ * @see {@link signal}
21
+ */
22
+ export interface SignalOptions<T> {
23
+ /** Compares old and new values to suppress equivalent updates; defaults to Object.is. See {@link SignalEquals}. */
24
+ equals?: SignalEquals<T>;
25
+ /** Optional label used in diagnostics. See {@link SignalOptions}. */
26
+ debugName?: string;
27
+ }
28
+ /**
29
+ * A readonly reactive value; get records a dependency when called by a tracked consumer.
30
+ *
31
+ * @see {@link SignalValue}
32
+ * @see {@link WritableSignal}
33
+ * @see {@link computed}
34
+ */
35
+ export interface Signal<T> {
36
+ readonly [signalBrand]: T;
37
+ /**
38
+ * Reads the current value and records a dependency in the active tracked consumer. See
39
+ * {@link Signal}.
40
+ * @returns The current value, recording a dependency when called from a tracked consumer.
41
+ */
42
+ get(): T;
43
+ }
44
+ /**
45
+ * A literal value or a signal supplying that value to a receiver-owned input.
46
+ *
47
+ * @see {@link Signal}
48
+ * @see {@link resolveSignalValue}
49
+ * @see {@link usePlayback}
50
+ */
51
+ export type SignalValue<T> = T | Signal<T>;
52
+ /**
53
+ * A signal with synchronous replacement and update operations and a readonly view.
54
+ *
55
+ * @see {@link Signal}
56
+ * @see {@link batch}
57
+ * @see {@link signal}
58
+ */
59
+ export interface WritableSignal<T> extends Signal<T> {
60
+ /**
61
+ * Synchronously replaces the value, publishing only when the equality comparison reports a
62
+ * change. See {@link WritableSignal}.
63
+ * @param value - Replacement value to compare with the currently stored value.
64
+ */
65
+ set(value: T): void;
66
+ /**
67
+ * Computes a replacement from the current value and applies the signal's equality policy. See
68
+ * {@link WritableSignal}.
69
+ * @param update - Synchronous function receiving the current value and returning its
70
+ * replacement.
71
+ */
72
+ update(update: (current: T) => T): void;
73
+ /**
74
+ * Returns a readonly signal view of this same reactive value. See {@link Signal}.
75
+ * @returns A readonly view of the same signal, without set or update operations. See
76
+ * {@link Signal} .
77
+ */
78
+ asReadonly(): Signal<T>;
79
+ }
80
+ export {};