@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/manipulation/handles.ts"],
4
+ "sourcesContent": ["import type { PibblResizePosition } from \"./types.js\";\nimport type { PibblManipulationWhen } from './types.js';\nimport type { PibblManipulableProps } from './manipulable.js';\nimport { createElement } from \"../element/create-element.js\";\nimport {\n createGroupTransform,\n setPrimitivePresentation,\n} from \"../primitive-presentation.js\";\nimport { getCurrentWorldTransform } from \"../render-target.js\";\nimport { GLOBAL_STATE } from \"../global-state.js\";\nimport { definePrimitive } from \"../define-primitive.js\";\nimport { useEventListener } from \"../hooks/use-event-listener.js\";\nimport { useEventTarget } from \"../hooks/use-event-target.js\";\nimport { useSignal } from \"../hooks/use-signal.js\";\nimport { useConst } from \"../hooks/use-const.js\";\nimport type { GStyle } from \"../components/g.js\";\nimport { stripLayoutParticipation } from \"../style/resolve-built-in.js\";\nimport type { ResolvedDrawingStyle } from \"../style/types.js\";\nimport { getLayoutBox } from \"../layout/context.js\";\nimport type { PibblNode } from \"../element/types.js\";\nimport type { RenderingContext2D, SystemStyle } from \"../types.js\";\nimport type { PibblManipulationController } from \"./controller-types.js\";\nimport {\n isManipulationSourceActive,\n manipulationHandlers,\n type ManipulationState,\n} from \"./controller.js\";\nimport { requireManipulationFrame } from \"./frame.js\";\n\n/**\n * Authored inputs for DragHandle, including the declared data and presentation options.\n *\n * @see {@link PibblManipulationController}\n * @see {@link PibblNode}\n * @see {@link DragHandle}\n * @see {@link PibblManipulationWhen}\n */\nexport interface PibblDragHandleProps {\n /**\n * Formats the value shown by the manipulation readout. See {@link PibblDragHandleProps}.\n * @param value - Current left and top coordinates.\n * @returns Text to display in the drag readout.\n */\n readonly formatReadout?: (value: {\n /** Left edge coordinate or inset. See {@link PibblDragHandleProps}. */\n readonly left: number;\n /** Top edge value or top envelope guide. See {@link PibblDragHandleProps}. */\n readonly top: number;\n }) => string;\n /**\n * Controller owning the current interaction or mounted scenario. See\n * {@link PibblManipulationController}.\n */\n readonly controller: PibblManipulationController;\n /** Descendant content or the callback that supplies it. See {@link PibblNode}. */\n readonly children?: PibblNode;\n}\n/**\n * Supported geometry and presentation properties for DragHandle.\n *\n * @see {@link GStyle}\n * @see {@link PibblManipulationReadoutStyle}\n * @see {@link DragHandle}\n * @see {@link PibblManipulableProps}\n */\nexport interface PibblDragHandleStyle extends GStyle {\n /** Presentation of the manipulation value readout. See {@link PibblManipulationReadoutStyle}. */\n readonly readout?: false | true | PibblManipulationReadoutStyle;\n}\ntype ResolvedDragStyle = ResolvedDrawingStyle<PibblDragHandleStyle>;\ninterface CssHandleContentProps {\n readonly children?: PibblNode;\n}\ninterface CssHandleContentStyle extends SystemStyle {\n readonly transform: DOMMatrix;\n}\n/** Private CSS-pixel basis for author-provided handle visuals. */\nconst CssHandleContent = definePrimitive<\n CssHandleContentProps,\n CssHandleContentStyle\n>(\n function CssHandleContent(props) {\n return props.children;\n },\n { childInput: \"structural\" },\n);\nsetPrimitivePresentation<CssHandleContentStyle>(CssHandleContent, (style) => ({\n transform: style.transform,\n}));\n\n/**\n * Draws an interactive handle that starts translation of its manipulation target.\n *\n * @param props - Authored component inputs, supplied through JSX or createElement. See the linked\n * props and style types.\n * @throws When called directly; Pibbl mounts this component through JSX or createElement.\n *\n * @see {@link PibblDragHandleProps}\n * @see {@link PibblDragHandleStyle}\n */\nexport const DragHandle = definePrimitive<\n PibblDragHandleProps,\n PibblDragHandleStyle,\n PibblDragHandleStyle,\n ResolvedDragStyle\n>(\n function DragHandle(props, style) {\n requireManipulationFrame(props.controller);\n const focused = useSignal(false);\n const source = useConst(() => ({}));\n const handlers = manipulationHandlers(\n props.controller,\n \"move\",\n undefined,\n source,\n );\n useEventListener({\n ...handlers,\n onFocusIn: () => focused.set(true),\n onFocusOut: () => focused.set(false),\n });\n const box = getLayoutBox();\n return [\n props.children,\n createElement(DragReadout, {\n controller: props.controller,\n formatReadout: props.formatReadout,\n readout: style.readout,\n focused: focused.get(),\n source,\n anchorX: box.width / 2,\n }),\n ];\n },\n {\n childInput: \"structural\",\n resolveStyle: (style) =>\n stripLayoutParticipation(style) as ResolvedDragStyle,\n },\n);\n\nsetPrimitivePresentation<ResolvedDragStyle>(DragHandle, (style) => ({\n transform: createGroupTransform(style),\n}));\n\nconst DragReadout = definePrimitive<\n PibblDragHandleProps & {\n readonly readout?: false | true | PibblManipulationReadoutStyle;\n readonly focused: boolean;\n readonly source: object;\n readonly anchorX: number;\n }\n>(function DragReadout(props, _style, ctx) {\n if (!readoutEnabled(props.readout, props.formatReadout)) return;\n const state = requireManipulationFrame(props.controller);\n paintReadout(\n ctx,\n state,\n cssPoint(state, props.anchorX, 0),\n () => {\n const { left, top } = state.options.box.get();\n const value = props.formatReadout\n ? props.formatReadout({ left, top })\n : `left ${round(left)} \u00B7 top ${round(top)} px`;\n if (typeof value !== \"string\")\n throw new Error(\n \"Manipulation readout formatReadout must return a string.\",\n );\n return value;\n },\n props.readout,\n props.focused,\n isManipulationSourceActive(props.controller, props.source),\n \"top\",\n 40,\n );\n});\n\n/**\n * Supported geometry and presentation properties for ManipulationReadoutState.\n *\n * @see {@link PibblManipulationReadoutStyle}\n */\nexport interface PibblManipulationReadoutStateStyle {\n /** Minimum outward spacing in CSS pixels; defaults to 40 for drag, 5 otherwise. */\n readonly gap?: number;\n /**\n * Canvas font string used to draw or measure text. See {@link PibblManipulationReadoutStateStyle}\n * .\n */\n readonly font?: string;\n /** Paint used for the interior. See {@link PibblManipulationReadoutStateStyle}. */\n readonly fill?: string;\n /** Paint used for the outline. See {@link PibblManipulationReadoutStateStyle}. */\n readonly stroke?: string;\n /** Width of the painted outline. See {@link PibblManipulationReadoutStateStyle}. */\n readonly strokeWidth?: number;\n /** Opacity of the painted result. See {@link PibblManipulationReadoutStateStyle}. */\n readonly opacity?: number;\n /** Whether this presentation is visible. See {@link PibblManipulationReadoutStateStyle}. */\n readonly visible?: boolean;\n}\n/**\n * Supported geometry and presentation properties for ManipulationReadout.\n *\n * @see {@link PibblManipulationReadoutStateStyle}\n * @see {@link PibblDragHandleStyle}\n * @see {@link PibblResizeHandleStyle}\n * @see {@link PibblRotationHandleStyle}\n */\nexport interface PibblManipulationReadoutStyle extends PibblManipulationReadoutStateStyle {\n /**\n * Readout presentation while no interaction is active. See\n * {@link PibblManipulationReadoutStateStyle}.\n */\n readonly inactive?: PibblManipulationReadoutStateStyle;\n /**\n * Readout presentation while the handle has keyboard focus. See\n * {@link PibblManipulationReadoutStateStyle}.\n */\n readonly focused?: PibblManipulationReadoutStateStyle;\n /**\n * Current active operation or its presentation configuration. See\n * {@link PibblManipulationReadoutStateStyle}.\n */\n readonly active?: PibblManipulationReadoutStateStyle;\n}\n/**\n * Supported geometry and presentation properties for ResizeHandle.\n *\n * @see {@link SystemStyle}\n * @see {@link PibblManipulationReadoutStyle}\n * @see {@link ResizeHandle}\n * @see {@link PibblResizeHandlesProps}\n */\nexport interface PibblResizeHandleStyle extends SystemStyle {\n /** Presentation of the manipulation value readout. See {@link PibblManipulationReadoutStyle}. */\n readonly readout?: false | true | PibblManipulationReadoutStyle;\n}\n/**\n * Supported geometry and presentation properties for RotationConnector.\n *\n * @see {@link PibblRotationHandleStyle}\n */\nexport interface PibblRotationConnectorStyle {\n /** Paint used for the outline. See {@link PibblRotationConnectorStyle}. */\n readonly stroke?: string;\n /** Width of the painted outline. See {@link PibblRotationConnectorStyle}. */\n readonly strokeWidth?: number;\n /** Opacity of the painted result. See {@link PibblRotationConnectorStyle}. */\n readonly opacity?: number;\n}\n/**\n * Supported geometry and presentation properties for RotationArc.\n *\n * @see {@link PibblRotationHandleStyle}\n */\nexport interface PibblRotationArcStyle {\n /** Color used by the mark or effect. See {@link PibblRotationArcStyle}. */\n readonly color?: string;\n /** Angular extent of the arc. See {@link PibblRotationArcStyle}. */\n readonly sweep?: number;\n /** Width of the painted outline. See {@link PibblRotationArcStyle}. */\n readonly strokeWidth?: number;\n /** Opacity of the painted result. See {@link PibblRotationArcStyle}. */\n readonly opacity?: number;\n}\n/**\n * Supported geometry and presentation properties for RotationHandle.\n *\n * @see {@link SystemStyle}\n * @see {@link PibblRotationConnectorStyle}\n * @see {@link PibblRotationArcStyle}\n * @see {@link PibblManipulationReadoutStyle}\n * @see {@link RotationHandle}\n * @see {@link PibblManipulableProps}\n */\nexport interface PibblRotationHandleStyle extends SystemStyle {\n /**\n * Presentation of the line connecting the rotation handle to its target. See\n * {@link PibblRotationConnectorStyle}.\n */\n readonly connector?: false | true | PibblRotationConnectorStyle;\n /** Presentation of the rotation-angle arc. See {@link PibblRotationArcStyle}. */\n readonly arc?: false | true | PibblRotationArcStyle;\n /** Presentation of the manipulation value readout. See {@link PibblManipulationReadoutStyle}. */\n readonly readout?: false | true | PibblManipulationReadoutStyle;\n}\n/**\n * Authored inputs for ResizeHandle, including the declared data and presentation options.\n *\n * @see {@link PibblManipulationController}\n * @see {@link PibblNode}\n * @see {@link ResizeHandle}\n * @see {@link PibblResizeHandlesProps}\n * @see {@link PibblResizePosition}\n */\nexport interface PibblResizeHandleProps {\n /**\n * Controller owning the current interaction or mounted scenario. See\n * {@link PibblManipulationController}.\n */\n readonly controller: PibblManipulationController;\n /**\n * Position of the geometry, source, or selected resize handle. See {@link PibblResizeHandleProps}\n * .\n */\n readonly position: import(\"./types.js\").PibblResizePosition;\n /** Size of the handle's interactive hit region. See {@link PibblResizeHandleProps}. */\n readonly hitSize?: number;\n /**\n * Formats the value shown by the manipulation readout. See {@link PibblResizeHandleProps}.\n * @param value - Current width and height.\n * @returns Text to display in the resize readout.\n */\n readonly formatReadout?: (value: {\n /**\n * Horizontal extent in the units of the containing geometry or surface. See\n * {@link PibblResizeHandleProps}.\n */\n readonly width: number;\n /**\n * Vertical extent in the units of the containing geometry or surface. See\n * {@link PibblResizeHandleProps}.\n */\n readonly height: number;\n }) => string;\n /** Descendant content or the callback that supplies it. See {@link PibblNode}. */\n readonly children?: PibblNode;\n}\n/**\n * Authored inputs for ResizeHandles, including the declared data and presentation options.\n *\n * @see {@link PibblManipulationController}\n * @see {@link PibblResizeHandleStyle}\n * @see {@link PibblResizeHandleProps}\n * @see {@link ResizeHandles}\n * @see {@link PibblManipulableProps}\n * @see {@link PibblResizePosition}\n */\nexport interface PibblResizeHandlesProps {\n /**\n * Controller owning the current interaction or mounted scenario. See\n * {@link PibblManipulationController}.\n */\n readonly controller: PibblManipulationController;\n /** Edges and corners at which resize handles are created. See {@link PibblResizeHandlesProps}. */\n readonly positions?:\n \"corners\" | \"edges-and-corners\" | readonly import(\"./types.js\").PibblResizePosition[];\n /** Size of the handle's interactive hit region. See {@link PibblResizeHandlesProps}. */\n readonly hitSize?: number;\n /** Declared presentation and layout properties. See {@link PibblResizeHandleStyle}. */\n readonly style?: PibblResizeHandleStyle;\n /** Formats the value shown by the manipulation readout. See {@link PibblResizeHandleProps}. */\n readonly formatReadout?: PibblResizeHandleProps[\"formatReadout\"];\n}\nconst corners = [\n \"top-left\",\n \"top-right\",\n \"bottom-right\",\n \"bottom-left\",\n] as const;\nconst allHandles = [\n \"top-left\",\n \"top\",\n \"top-right\",\n \"right\",\n \"bottom-right\",\n \"bottom\",\n \"bottom-left\",\n \"left\",\n] as const;\ntype ResizePosition = (typeof allHandles)[number];\ninterface CollectionReadout {\n readonly controller: PibblManipulationController;\n readonly positions: readonly ResizePosition[];\n readonly owner: ResizePosition;\n readonly style: PibblResizeHandleStyle | undefined;\n readonly formatReadout: PibblResizeHandleProps[\"formatReadout\"];\n readonly focused: Map<ResizePosition, boolean>;\n}\nconst collectionStack: CollectionReadout[] = [];\nconst ResizeCollection = definePrimitive<{\n readonly collection: CollectionReadout;\n readonly children?: PibblNode;\n}>(\n function ResizeCollection(props) {\n collectionStack.push(props.collection);\n GLOBAL_STATE.componentRefs!.onAfterRender = () => {\n const collection = collectionStack.pop();\n if (collection !== props.collection)\n throw new Error(\n \"Manipulation resize collection render context was unbalanced.\",\n );\n };\n return props.children;\n },\n { childInput: \"structural\" },\n);\n\n/**\n * Draws an interactive handle for one edge or corner of a manipulation target.\n *\n * @param props - Authored component inputs, supplied through JSX or createElement. See the linked\n * props and style types.\n * @throws When called directly; Pibbl mounts this component through JSX or createElement.\n *\n * @see {@link PibblResizeHandleProps}\n * @see {@link PibblResizeHandleStyle}\n */\nexport const ResizeHandle = definePrimitive<\n PibblResizeHandleProps,\n PibblResizeHandleStyle\n>(function ResizeHandle(props, style, ctx) {\n const state = requireManipulationFrame(props.controller);\n const box = getLayoutBox();\n const position = props.position as ResizePosition;\n if (!allHandles.includes(position))\n throw new Error(\"ResizeHandle requires a valid edge or corner position.\");\n const x = position.includes(\"left\")\n ? 0\n : position.includes(\"right\")\n ? box.width\n : box.width / 2;\n const y = position.includes(\"top\")\n ? 0\n : position.includes(\"bottom\")\n ? box.height\n : box.height / 2;\n const hitSize = props.hitSize ?? 24;\n if (!Number.isFinite(hitSize) || hitSize <= 0)\n throw new Error(\"ResizeHandle hitSize must be positive finite CSS pixels.\");\n const handlers = manipulationHandlers(props.controller, \"resize\", position);\n useEventListener(handlers);\n const focus = useEventTarget(handlers, {\n path: cssHandlePath(state, x, y, hitSize),\n fill: true,\n cursor:\n position === \"left\" || position === \"right\"\n ? \"ew-resize\"\n : position === \"top\" || position === \"bottom\"\n ? \"ns-resize\"\n : position === \"top-left\" || position === \"bottom-right\"\n ? \"nwse-resize\"\n : \"nesw-resize\",\n keyboardFocusable: true,\n keyboardNavigationBounds: { x: x - 4, y: y - 4, width: 8, height: 8 },\n });\n const active = state.controller.active.get();\n const relevant = active?.operation === \"resize\" && active.handle === position;\n const collection = collectionStack.at(-1);\n if (\n collection?.controller === props.controller &&\n collection.positions.includes(position)\n ) {\n collection.focused.set(position, focus.isFocused);\n } else if (readoutEnabled(style.readout, props.formatReadout)) {\n paintReadout(\n ctx,\n state,\n cssPoint(state, x, y),\n () => formatResize(state, props.formatReadout),\n style.readout,\n focus.isFocused,\n relevant,\n position,\n );\n }\n if (props.children !== undefined)\n return createElement(CssHandleContent, {\n style: { transform: cssHandleChildTransform(state, x, y) },\n children: props.children,\n });\n paintDefaultHandle(ctx, state, x, y);\n});\n/**\n * Creates the configured collection of resize handles around a manipulation target.\n *\n * @param props - Controller, handle placement, and presentation options. See\n * {@link PibblResizeHandlesProps} .\n * @returns Pibbl nodes rendering the resize handles. See {@link PibblNode}.\n *\n * @see {@link PibblResizeHandlesProps}\n * @see {@link PibblNode}\n */\nexport function ResizeHandles(props: PibblResizeHandlesProps): PibblNode {\n const positions = (\n props.positions === undefined || props.positions === \"corners\"\n ? corners\n : props.positions === \"edges-and-corners\"\n ? allHandles\n : props.positions\n ) as readonly ResizePosition[];\n if (positions.length === 0) return [];\n const owner = positions.includes(\"bottom-right\")\n ? \"bottom-right\"\n : positions.at(-1)!;\n const collection: CollectionReadout = {\n controller: props.controller,\n positions,\n owner,\n style: props.style,\n formatReadout: props.formatReadout,\n focused: new Map(),\n };\n return createElement(ResizeCollection, {\n collection,\n children: [\n ...positions.map((position) =>\n createElement(ResizeHandle, {\n key: position,\n controller: props.controller,\n position,\n hitSize: props.hitSize,\n style: props.style,\n formatReadout: props.formatReadout,\n }),\n ),\n createElement(ResizeCollectionReadout, {\n key: \"readout\",\n controller: props.controller,\n collection,\n }),\n ],\n });\n}\nconst ResizeCollectionReadout = definePrimitive<{\n readonly controller: PibblManipulationController;\n readonly collection: CollectionReadout;\n}>(function ResizeCollectionReadout(props, _style, ctx) {\n const state = requireManipulationFrame(props.controller);\n if (\n !readoutEnabled(\n props.collection.style?.readout,\n props.collection.formatReadout,\n )\n )\n return;\n const active = state.controller.active.get();\n const position =\n active?.operation === \"resize\" &&\n active.handle &&\n props.collection.positions.includes(active.handle)\n ? active.handle\n : (props.collection.positions.find((candidate) =>\n props.collection.focused.get(candidate),\n ) ?? props.collection.owner);\n const box = getLayoutBox();\n const x = position.includes(\"left\")\n ? 0\n : position.includes(\"right\")\n ? box.width\n : box.width / 2;\n const y = position.includes(\"top\")\n ? 0\n : position.includes(\"bottom\")\n ? box.height\n : box.height / 2;\n paintReadout(\n ctx,\n state,\n cssPoint(state, x, y),\n () => formatResize(state, props.collection.formatReadout),\n props.collection.style?.readout,\n props.collection.focused.get(position) ?? false,\n active?.operation === \"resize\" && active.handle === position,\n position,\n );\n});\n\n/**\n * Authored inputs for RotationHandle, including the declared data and presentation options.\n *\n * @see {@link PibblManipulationController}\n * @see {@link PibblNode}\n * @see {@link RotationHandle}\n * @see {@link PibblManipulableProps}\n */\nexport interface PibblRotationHandleProps {\n /**\n * Controller owning the current interaction or mounted scenario. See\n * {@link PibblManipulationController}.\n */\n readonly controller: PibblManipulationController;\n /** Size of the handle's interactive hit region. See {@link PibblRotationHandleProps}. */\n readonly hitSize?: number;\n /** Selects `\"degrees\"`, `\"radians\"` for readout unit. See {@link PibblRotationHandleProps}. */\n readonly readoutUnit?: \"degrees\" | \"radians\";\n /**\n * Formats the value shown by the manipulation readout. See {@link PibblRotationHandleProps}.\n * @param value - Current rotation.\n * @returns Text to display in the rotation readout.\n */\n readonly formatReadout?: (value: {\n /** Rotation applied to the containing geometry. See {@link PibblRotationHandleProps}. */\n readonly rotation: number;\n }) => string;\n /** Descendant content or the callback that supplies it. See {@link PibblNode}. */\n readonly children?: PibblNode;\n}\n/**\n * Draws an interactive handle for rotating a manipulation target.\n *\n * @param props - Authored component inputs, supplied through JSX or createElement. See the linked\n * props and style types.\n * @throws When called directly; Pibbl mounts this component through JSX or createElement.\n *\n * @see {@link PibblRotationHandleProps}\n * @see {@link PibblRotationHandleStyle}\n */\nexport const RotationHandle = definePrimitive<\n PibblRotationHandleProps,\n PibblRotationHandleStyle\n>(function RotationHandle(props, style, ctx) {\n const state = requireManipulationFrame(props.controller);\n const box = getLayoutBox();\n const anchor = rotationAnchor(state, box.width, box.height);\n const hitSize = props.hitSize ?? 24;\n if (!Number.isFinite(hitSize) || hitSize <= 0)\n throw new Error(\n \"RotationHandle hitSize must be positive finite CSS pixels.\",\n );\n const handlers = manipulationHandlers(props.controller, \"rotate\");\n useEventListener(handlers);\n const focus = useEventTarget(handlers, {\n path: cssHandlePath(state, anchor.local.x, anchor.local.y, hitSize),\n fill: true,\n cursor: \"grab\",\n keyboardFocusable: true,\n keyboardNavigationBounds: {\n x: anchor.local.x - 4,\n y: anchor.local.y - 4,\n width: 8,\n height: 8,\n },\n });\n const relevant = state.controller.active.get()?.operation === \"rotate\";\n paintRotationDecorations(ctx, state, anchor, style);\n if (readoutEnabled(style.readout, props.formatReadout || props.readoutUnit))\n paintReadout(\n ctx,\n state,\n anchor.css,\n () => formatRotation(state, props),\n style.readout,\n focus.isFocused,\n relevant,\n \"top\",\n );\n if (props.children !== undefined)\n return createElement(CssHandleContent, {\n style: {\n transform: cssHandleChildTransform(\n state,\n anchor.local.x,\n anchor.local.y,\n ),\n },\n children: props.children,\n });\n paintDefaultHandle(ctx, state, anchor.local.x, anchor.local.y);\n});\n\nfunction frameToCss(state: ManipulationState): DOMMatrix {\n const surface = state.root.surface.snapshot;\n const world = getCurrentWorldTransform();\n return surface\n ? new DOMMatrix()\n .scale(\n 1 / surface.backingPixelsPerCssPixelX,\n 1 / surface.backingPixelsPerCssPixelY,\n )\n .multiply(surface.renderTransform)\n .multiply(world)\n : world;\n}\nfunction cssPoint(state: ManipulationState, x: number, y: number): DOMPoint {\n return frameToCss(state).transformPoint(new DOMPoint(x, y));\n}\nfunction cssBasis(state: ManipulationState): {\n css: DOMMatrix;\n inverse: DOMMatrix;\n angle: number;\n} {\n const css = frameToCss(state);\n const inverse = new DOMMatrix([css.a, css.b, css.c, css.d, 0, 0]).inverse();\n if (![inverse.a, inverse.b, inverse.c, inverse.d].every(Number.isFinite))\n throw new Error(\n \"Manipulation handle cannot use a singular presentation transform.\",\n );\n return { css, inverse, angle: Math.atan2(css.b, css.a) };\n}\nfunction cssHandlePath(\n state: ManipulationState,\n x: number,\n y: number,\n size: number,\n): Path2D {\n const { inverse, angle } = cssBasis(state);\n const path = new Path2D();\n const half = size / 2;\n const cos = Math.cos(angle),\n sin = Math.sin(angle);\n for (const [i, point] of [\n [-half, -half],\n [half, -half],\n [half, half],\n [-half, half],\n ].entries()) {\n const sx = point[0] * cos - point[1] * sin,\n sy = point[0] * sin + point[1] * cos;\n const local = inverse.transformPoint(new DOMPoint(sx, sy));\n if (i === 0) path.moveTo(x + local.x, y + local.y);\n else path.lineTo(x + local.x, y + local.y);\n }\n path.closePath();\n return path;\n}\nfunction cssHandleChildTransform(\n state: ManipulationState,\n x: number,\n y: number,\n): DOMMatrix {\n const { inverse, angle } = cssBasis(state);\n const rotate = new DOMMatrix().rotate((angle * 180) / Math.PI);\n const basis = inverse.multiply(rotate);\n return new DOMMatrix([basis.a, basis.b, basis.c, basis.d, x, y]);\n}\nfunction paintDefaultHandle(\n ctx: RenderingContext2D,\n state: ManipulationState,\n x: number,\n y: number,\n): void {\n ctx.fillStyle = \"#2563eb\";\n ctx.fill(cssHandlePath(state, x, y, 8));\n ctx.fillStyle = \"#ffffff\";\n ctx.fill(cssHandlePath(state, x, y, 6));\n}\n\nfunction rotationAnchor(\n state: ManipulationState,\n width: number,\n height: number,\n) {\n const css = frameToCss(state);\n const top = css.transformPoint(new DOMPoint(width / 2, 0));\n const pivot = css.transformPoint(new DOMPoint(width / 2, height / 2));\n const edge = new DOMPoint(css.a, css.b);\n const mappedOut = new DOMPoint(-css.c, -css.d);\n let normal = new DOMPoint(-edge.y, edge.x);\n const length = Math.hypot(normal.x, normal.y);\n if (!Number.isFinite(length) || length === 0)\n throw new Error(\n \"RotationHandle cannot use a singular presentation transform.\",\n );\n normal = new DOMPoint(normal.x / length, normal.y / length);\n if (normal.x * mappedOut.x + normal.y * mappedOut.y < 0)\n normal = new DOMPoint(-normal.x, -normal.y);\n const handle = new DOMPoint(top.x + normal.x * 24, top.y + normal.y * 24);\n const local = css.inverse().transformPoint(handle);\n return { css: handle, local, top, pivot, normal };\n}\nfunction paintRotationDecorations(\n ctx: RenderingContext2D,\n state: ManipulationState,\n anchor: ReturnType<typeof rotationAnchor>,\n style: PibblRotationHandleStyle,\n): void {\n validateRotationStyle(style);\n const connector =\n style.connector === undefined || style.connector === true\n ? {}\n : style.connector;\n const arc = style.arc === true ? {} : style.arc;\n if (connector === false && !arc) return;\n withCssContext(ctx, state, () => {\n const baseAlpha = ctx.globalAlpha;\n if (connector !== false) {\n ctx.strokeStyle = connector.stroke ?? \"#2563eb\";\n ctx.lineWidth = connector.strokeWidth ?? 1;\n ctx.globalAlpha *= connector.opacity ?? 1;\n ctx.beginPath();\n ctx.moveTo(anchor.top.x, anchor.top.y);\n ctx.lineTo(anchor.css.x, anchor.css.y);\n ctx.stroke();\n ctx.globalAlpha = baseAlpha;\n }\n if (arc) {\n const radius = Math.hypot(\n anchor.css.x - anchor.pivot.x,\n anchor.css.y - anchor.pivot.y,\n );\n const center = Math.atan2(\n anchor.css.y - anchor.pivot.y,\n anchor.css.x - anchor.pivot.x,\n );\n const sweep = arc.sweep ?? Math.PI / 3;\n for (let i = 0; i < 24; i++) {\n const a0 = center - sweep / 2 + (sweep * i) / 24,\n a1 = center - sweep / 2 + (sweep * (i + 1)) / 24;\n const alpha = (1 - Math.abs((i + 0.5) / 12 - 1)) * (arc.opacity ?? 1);\n ctx.strokeStyle = arc.color ?? \"#2563eb\";\n ctx.lineWidth = arc.strokeWidth ?? 1;\n ctx.globalAlpha = baseAlpha * alpha;\n ctx.beginPath();\n ctx.arc(anchor.pivot.x, anchor.pivot.y, radius, a0, a1);\n ctx.stroke();\n }\n ctx.globalAlpha = baseAlpha;\n }\n });\n}\nfunction validateReadoutStyle(\n value: false | true | PibblManipulationReadoutStyle | undefined,\n): void {\n if (!value || value === true) return;\n for (const style of [value, value.inactive, value.focused, value.active]) {\n if (!style) continue;\n if (\n style.gap !== undefined &&\n (!Number.isFinite(style.gap) || style.gap < 0)\n )\n throw new Error(\n \"Manipulation readout gap must be finite non-negative CSS pixels.\",\n );\n if (\n style.strokeWidth !== undefined &&\n (!Number.isFinite(style.strokeWidth) || style.strokeWidth < 0)\n )\n throw new Error(\n \"Manipulation readout strokeWidth must be finite and non-negative.\",\n );\n if (\n style.opacity !== undefined &&\n (!Number.isFinite(style.opacity) || style.opacity < 0)\n )\n throw new Error(\n \"Manipulation readout opacity must be finite and non-negative.\",\n );\n }\n}\nfunction validateRotationStyle(style: PibblRotationHandleStyle): void {\n const connector =\n style.connector && style.connector !== true ? style.connector : undefined;\n const arc = style.arc && style.arc !== true ? style.arc : undefined;\n for (const value of [connector?.strokeWidth, arc?.strokeWidth])\n if (value !== undefined && (!Number.isFinite(value) || value < 0))\n throw new Error(\n \"Manipulation guide strokeWidth must be finite and non-negative.\",\n );\n for (const value of [connector?.opacity, arc?.opacity])\n if (value !== undefined && (!Number.isFinite(value) || value < 0))\n throw new Error(\n \"Manipulation guide opacity must be finite and non-negative.\",\n );\n if (\n arc?.sweep !== undefined &&\n (!Number.isFinite(arc.sweep) || arc.sweep <= 0 || arc.sweep > Math.PI * 2)\n )\n throw new Error(\n \"Manipulation arc sweep must be finite, positive, and no greater than 2\u03C0 radians.\",\n );\n}\n\nfunction readoutEnabled(\n readout: false | true | PibblManipulationReadoutStyle | undefined,\n formatter: unknown,\n): boolean {\n return (\n readout !== false && (readout !== undefined || formatter !== undefined)\n );\n}\nfunction formatResize(\n state: ManipulationState,\n format: PibblResizeHandleProps[\"formatReadout\"],\n): string {\n const box = state.options.box.get();\n const value = format\n ? format({ width: box.width, height: box.height })\n : `${round(box.width)} \u00D7 ${round(box.height)} px`;\n if (typeof value !== \"string\")\n throw new Error(\"Manipulation readout formatReadout must return a string.\");\n return value;\n}\nfunction formatRotation(\n state: ManipulationState,\n props: PibblRotationHandleProps,\n): string {\n const rotation = state.options.rotation?.get() ?? 0;\n const value = props.formatReadout\n ? props.formatReadout({ rotation })\n : props.readoutUnit === \"radians\"\n ? `${round(rotation)} rad`\n : `${round((rotation * 180) / Math.PI)}\u00B0`;\n if (typeof value !== \"string\")\n throw new Error(\"Manipulation readout formatReadout must return a string.\");\n return value;\n}\nfunction round(value: number): string {\n return Number.isInteger(value)\n ? String(value)\n : String(Number(value.toFixed(2)));\n}\nfunction paintReadout(\n ctx: RenderingContext2D,\n state: ManipulationState,\n anchor: DOMPoint,\n format: () => string,\n readout: false | true | PibblManipulationReadoutStyle | undefined,\n focused: boolean,\n active: boolean,\n position?: ResizePosition,\n defaultGap = 5,\n): void {\n validateReadoutStyle(readout);\n const resolved = resolveReadout(\n readout,\n state.controller.active.get() === null,\n focused,\n active,\n defaultGap,\n );\n if (!resolved.visible) return;\n const text = format();\n if (!text) return;\n const frameMapping = frameToCss(state);\n withCssContext(ctx, state, () => {\n ctx.font = resolved.font;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"alphabetic\";\n const surface = state.root.surface.snapshot;\n if (!surface) return;\n const stroke = resolved.stroke ? resolved.strokeWidth : 0;\n const available = surface.displayWidth - 16 - stroke;\n const value = ellipsis(ctx, text, available);\n if (!value) return;\n const metrics = measureLabel(ctx, value);\n const glyphLeft = Math.max(0, metrics.actualBoundingBoxLeft);\n const glyphRight = Math.max(metrics.width, metrics.actualBoundingBoxRight);\n const ascent = Math.max(0, metrics.actualBoundingBoxAscent);\n const descent = Math.max(0, metrics.actualBoundingBoxDescent);\n const height = ascent + descent + 6 + stroke;\n const width = glyphLeft + glyphRight + 8 + stroke;\n if (width > surface.displayWidth - 8 || height > surface.displayHeight - 8)\n return;\n const offset = outwardReadoutOffset(\n frameMapping,\n position,\n width,\n height,\n resolved.gap,\n );\n let left = anchor.x + offset.x - width / 2;\n let top = anchor.y + offset.y - height / 2;\n left = Math.max(4, Math.min(surface.displayWidth - 4 - width, left));\n top = Math.max(4, Math.min(surface.displayHeight - 4 - height, top));\n ctx.globalAlpha *= resolved.opacity;\n ctx.fillStyle = resolved.fill;\n if (resolved.stroke) {\n ctx.strokeStyle = resolved.stroke;\n ctx.lineWidth = resolved.strokeWidth;\n ctx.strokeText(\n value,\n left + 4 + glyphLeft + stroke / 2,\n top + 3 + ascent + stroke / 2,\n );\n }\n ctx.fillText(\n value,\n left + 4 + glyphLeft + stroke / 2,\n top + 3 + ascent + stroke / 2,\n );\n });\n}\n/** Separate the upright label from the selected edges in displayed CSS space. */\nfunction outwardReadoutOffset(\n frameMapping: DOMMatrix,\n position: ResizePosition | undefined,\n width: number,\n height: number,\n gap: number,\n): DOMPoint {\n if (!position) return new DOMPoint(width / 2 + gap, 0);\n const inverse = frameMapping.inverse();\n const normals: DOMPoint[] = [];\n const add = (x: number, y: number, sign: number) => {\n const length = Math.hypot(x, y);\n normals.push(new DOMPoint((sign * x) / length, (sign * y) / length));\n };\n if (position.includes(\"left\")) add(inverse.a, inverse.c, -1);\n if (position.includes(\"right\")) add(inverse.a, inverse.c, 1);\n if (position.includes(\"top\")) add(inverse.b, inverse.d, -1);\n if (position.includes(\"bottom\")) add(inverse.b, inverse.d, 1);\n const support = (n: DOMPoint) =>\n (Math.abs(n.x) * width) / 2 + (Math.abs(n.y) * height) / 2 + gap;\n const [a, b] = normals;\n const da = support(a);\n if (!b) return new DOMPoint(a.x * da, a.y * da);\n const db = support(b),\n determinant = a.x * b.y - a.y * b.x;\n return new DOMPoint(\n (da * b.y - a.y * db) / determinant,\n (a.x * db - da * b.x) / determinant,\n );\n}\nfunction resolveReadout(\n value: false | true | PibblManipulationReadoutStyle | undefined,\n inactive: boolean,\n focused: boolean,\n active: boolean,\n defaultGap: number,\n): Required<PibblManipulationReadoutStateStyle> {\n const source = value && value !== true ? value : {};\n const base: Required<PibblManipulationReadoutStateStyle> = {\n gap: source.gap ?? defaultGap,\n font: source.font ?? \"12px sans-serif\",\n fill: source.fill ?? \"#1d4ed8\",\n stroke: source.stroke ?? \"\",\n strokeWidth: source.strokeWidth ?? 0,\n opacity: source.opacity ?? 1,\n visible: source.visible ?? false,\n };\n const patch = (next: PibblManipulationReadoutStateStyle | undefined) => {\n if (next) Object.assign(base, next);\n };\n if (inactive) patch(source.inactive);\n if (focused) patch(source.focused);\n if (active) (patch({ visible: true }), patch(source.active));\n return base;\n}\nconst labelMeasurements = new WeakMap<\n RenderingContext2D,\n Map<string, TextMetrics>\n>();\nfunction measureLabel(ctx: RenderingContext2D, text: string): TextMetrics {\n let cache = labelMeasurements.get(ctx);\n if (!cache) labelMeasurements.set(ctx, (cache = new Map()));\n const key = JSON.stringify([\n ctx.font,\n ctx.direction,\n ctx.fontKerning,\n ctx.letterSpacing,\n ctx.wordSpacing,\n text,\n ]);\n const found = cache.get(key);\n if (found) return found;\n const result = ctx.measureText(text);\n if (cache.size >= 64) cache.delete(cache.keys().next().value!);\n cache.set(key, result);\n return result;\n}\nfunction ellipsis(\n ctx: RenderingContext2D,\n text: string,\n width: number,\n): string {\n const fits = (value: string) => {\n const m = measureLabel(ctx, value);\n return (\n Math.max(0, m.actualBoundingBoxLeft) +\n Math.max(m.width, m.actualBoundingBoxRight) <=\n width\n );\n };\n if (width <= 0) return \"\";\n if (fits(text)) return text;\n const suffix = \"\u2026\";\n if (!fits(suffix)) return \"\";\n const points = Array.from(text);\n let low = 0,\n high = points.length;\n while (low < high) {\n const mid = Math.ceil((low + high) / 2);\n if (fits(points.slice(0, mid).join(\"\") + suffix)) low = mid;\n else high = mid - 1;\n }\n return points.slice(0, low).join(\"\") + suffix;\n}\nfunction withCssContext(\n ctx: RenderingContext2D,\n state: ManipulationState,\n draw: () => void,\n): void {\n const surface = state.root.surface.snapshot;\n if (!surface) return;\n const cssToCurrent = ctx.getTransform().multiply(frameToCss(state).inverse());\n ctx.save();\n try {\n ctx.setTransform(cssToCurrent);\n ctx.beginPath();\n ctx.rect(0, 0, surface.displayWidth, surface.displayHeight);\n ctx.clip();\n draw();\n } finally {\n ctx.restore();\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["CssHandleContent", "DragHandle", "DragReadout", "ResizeCollection", "ResizeHandle", "ResizeCollectionReadout", "RotationHandle"]
7
+ }
@@ -0,0 +1,65 @@
1
+ import type { PibblNode } from "../element/types.js";
2
+ import type { WritableSignal } from "../signals/types.js";
3
+ import type { PibblManipulationOptions, PibblManipulationMoveInput, PibblManipulationResizeInput, PibblManipulationRotateInput } from "./controller-types.js";
4
+ import type { PibblResizeHandlesProps, PibblDragHandleProps, PibblDragHandleStyle, PibblRotationHandleProps, PibblRotationHandleStyle } from "./handles.js";
5
+ import type { PibblManipulationBox } from "./types.js";
6
+ /**
7
+ * Authored inputs for Manipulable, including the declared data and presentation options.
8
+ *
9
+ * @see {@link PibblManipulationOptions}
10
+ * @see {@link WritableSignal}
11
+ * @see {@link PibblManipulationBox}
12
+ * @see {@link PibblManipulationMoveInput}
13
+ * @see {@link PibblManipulationResizeInput}
14
+ * @see {@link PibblManipulationRotateInput}
15
+ * @see {@link PibblResizeHandlesProps}
16
+ * @see {@link PibblRotationHandleProps}
17
+ * @see {@link PibblRotationHandleStyle}
18
+ * @see {@link PibblDragHandleProps}
19
+ * @see {@link PibblDragHandleStyle}
20
+ * @see {@link PibblNode}
21
+ * @see {@link Manipulable}
22
+ */
23
+ export interface PibblManipulableProps extends Pick<PibblManipulationOptions, "rotation" | "onStart" | "onChange" | "onCommit" | "onCancel"> {
24
+ /**
25
+ * Declared presentation and layout properties. See {@link WritableSignal},
26
+ * {@link PibblManipulationBox}.
27
+ */
28
+ readonly style: WritableSignal<PibblManipulationBox>;
29
+ /** Enables or configures translation of the target. See {@link PibblManipulationMoveInput}. */
30
+ readonly draggable?: boolean | PibblManipulationMoveInput;
31
+ /** Enables or configures resizing of the target. See {@link PibblManipulationResizeInput}. */
32
+ readonly resizable?: boolean | PibblManipulationResizeInput;
33
+ /** Enables or configures rotation of the target. See {@link PibblManipulationRotateInput}. */
34
+ readonly rotatable?: boolean | PibblManipulationRotateInput;
35
+ /** Configuration of the target's resize handles. See {@link PibblResizeHandlesProps}. */
36
+ readonly resizeHandles?: PibblResizeHandlesProps["positions"] | Omit<PibblResizeHandlesProps, "controller">;
37
+ /**
38
+ * Configuration of the target's rotation handle. See {@link PibblRotationHandleProps},
39
+ * {@link PibblRotationHandleStyle}.
40
+ */
41
+ readonly rotationHandle?: Omit<PibblRotationHandleProps, "controller" | "children"> & {
42
+ /** Declared presentation and layout properties. See {@link PibblRotationHandleStyle}. */
43
+ readonly style?: PibblRotationHandleStyle;
44
+ };
45
+ /**
46
+ * Configuration of the target's drag handle. See {@link PibblDragHandleProps},
47
+ * {@link PibblDragHandleStyle}.
48
+ */
49
+ readonly dragHandle?: Omit<PibblDragHandleProps, "controller" | "children"> & {
50
+ /** Declared presentation and layout properties. See {@link PibblDragHandleStyle}. */
51
+ readonly style?: PibblDragHandleStyle;
52
+ };
53
+ /** Descendant content or the callback that supplies it. See {@link PibblNode}. */
54
+ readonly children?: PibblNode;
55
+ }
56
+ /**
57
+ * Compose the same signal-owned frame and handles used by useManipulation.
58
+ *
59
+ * @param props - Manipulation controller and child content. See {@link PibblManipulableProps}.
60
+ * @returns Child content with manipulation interaction applied. See {@link PibblNode}.
61
+ *
62
+ * @see {@link PibblManipulableProps}
63
+ * @see {@link PibblNode}
64
+ */
65
+ export declare function Manipulable(props: PibblManipulableProps): PibblNode;
@@ -0,0 +1,47 @@
1
+ import { createElement } from "../element/create-element.js";
2
+ import { useManipulation } from "./controller.js";
3
+ import { ManipulationFrame } from "./frame.js";
4
+ import { DragHandle, ResizeHandles, RotationHandle } from "./handles.js";
5
+ function operation(value) {
6
+ return value === void 0 || value === false ? void 0 : value === true ? {} : value;
7
+ }
8
+ function Manipulable(props) {
9
+ const controller = useManipulation({
10
+ box: props.style,
11
+ rotation: props.rotation,
12
+ move: operation(props.draggable),
13
+ resize: operation(props.resizable),
14
+ rotate: operation(props.rotatable),
15
+ onStart: props.onStart,
16
+ onChange: props.onChange,
17
+ onCommit: props.onCommit,
18
+ onCancel: props.onCancel
19
+ });
20
+ const resizeHandles = Array.isArray(props.resizeHandles) || props.resizeHandles === "corners" || props.resizeHandles === "edges-and-corners" ? { positions: props.resizeHandles } : props.resizeHandles;
21
+ return createElement(ManipulationFrame, {
22
+ ...controller.frameProps,
23
+ children: [
24
+ createElement(DragHandle, {
25
+ key: "content",
26
+ controller,
27
+ ...props.dragHandle,
28
+ style: { width: "100%", height: "100%", ...props.dragHandle?.style },
29
+ children: props.children
30
+ }),
31
+ props.resizable && createElement(ResizeHandles, {
32
+ key: "resize",
33
+ controller,
34
+ ...resizeHandles
35
+ }),
36
+ props.rotatable && createElement(RotationHandle, {
37
+ key: "rotate",
38
+ controller,
39
+ ...props.rotationHandle
40
+ })
41
+ ]
42
+ });
43
+ }
44
+ export {
45
+ Manipulable
46
+ };
47
+ //# sourceMappingURL=manipulable.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/manipulation/manipulable.ts"],
4
+ "sourcesContent": ["import { createElement } from \"../element/create-element.js\";\nimport type { PibblNode } from \"../element/types.js\";\nimport type { WritableSignal } from \"../signals/types.js\";\nimport { useManipulation } from \"./controller.js\";\nimport type {\n PibblManipulationOptions,\n PibblManipulationMoveInput,\n PibblManipulationResizeInput,\n PibblManipulationRotateInput,\n} from \"./controller-types.js\";\nimport { ManipulationFrame } from \"./frame.js\";\nimport { DragHandle, ResizeHandles, RotationHandle } from \"./handles.js\";\nimport type {\n PibblResizeHandlesProps,\n PibblDragHandleProps,\n PibblDragHandleStyle,\n PibblRotationHandleProps,\n PibblRotationHandleStyle,\n} from \"./handles.js\";\nimport type { PibblManipulationBox } from \"./types.js\";\n\n/**\n * Authored inputs for Manipulable, including the declared data and presentation options.\n *\n * @see {@link PibblManipulationOptions}\n * @see {@link WritableSignal}\n * @see {@link PibblManipulationBox}\n * @see {@link PibblManipulationMoveInput}\n * @see {@link PibblManipulationResizeInput}\n * @see {@link PibblManipulationRotateInput}\n * @see {@link PibblResizeHandlesProps}\n * @see {@link PibblRotationHandleProps}\n * @see {@link PibblRotationHandleStyle}\n * @see {@link PibblDragHandleProps}\n * @see {@link PibblDragHandleStyle}\n * @see {@link PibblNode}\n * @see {@link Manipulable}\n */\nexport interface PibblManipulableProps extends Pick<\n PibblManipulationOptions,\n \"rotation\" | \"onStart\" | \"onChange\" | \"onCommit\" | \"onCancel\"\n> {\n /**\n * Declared presentation and layout properties. See {@link WritableSignal},\n * {@link PibblManipulationBox}.\n */\n readonly style: WritableSignal<PibblManipulationBox>;\n /** Enables or configures translation of the target. See {@link PibblManipulationMoveInput}. */\n readonly draggable?: boolean | PibblManipulationMoveInput;\n /** Enables or configures resizing of the target. See {@link PibblManipulationResizeInput}. */\n readonly resizable?: boolean | PibblManipulationResizeInput;\n /** Enables or configures rotation of the target. See {@link PibblManipulationRotateInput}. */\n readonly rotatable?: boolean | PibblManipulationRotateInput;\n /** Configuration of the target's resize handles. See {@link PibblResizeHandlesProps}. */\n readonly resizeHandles?:\n PibblResizeHandlesProps[\"positions\"] | Omit<PibblResizeHandlesProps, \"controller\">;\n /**\n * Configuration of the target's rotation handle. See {@link PibblRotationHandleProps},\n * {@link PibblRotationHandleStyle}.\n */\n readonly rotationHandle?: Omit<PibblRotationHandleProps, \"controller\" | \"children\"> & {\n /** Declared presentation and layout properties. See {@link PibblRotationHandleStyle}. */\n readonly style?: PibblRotationHandleStyle;\n };\n /**\n * Configuration of the target's drag handle. See {@link PibblDragHandleProps},\n * {@link PibblDragHandleStyle}.\n */\n readonly dragHandle?: Omit<PibblDragHandleProps, \"controller\" | \"children\"> & {\n /** Declared presentation and layout properties. See {@link PibblDragHandleStyle}. */\n readonly style?: PibblDragHandleStyle;\n };\n /** Descendant content or the callback that supplies it. See {@link PibblNode}. */\n readonly children?: PibblNode;\n}\nfunction operation<T>(value: boolean | T | undefined): T | undefined {\n return value === undefined || value === false\n ? undefined\n : value === true\n ? ({} as T)\n : value;\n}\n/**\n * Compose the same signal-owned frame and handles used by useManipulation.\n *\n * @param props - Manipulation controller and child content. See {@link PibblManipulableProps}.\n * @returns Child content with manipulation interaction applied. See {@link PibblNode}.\n *\n * @see {@link PibblManipulableProps}\n * @see {@link PibblNode}\n */\nexport function Manipulable(props: PibblManipulableProps): PibblNode {\n const controller = useManipulation({\n box: props.style,\n rotation: props.rotation,\n move: operation(props.draggable),\n resize: operation(props.resizable),\n rotate: operation(props.rotatable),\n onStart: props.onStart,\n onChange: props.onChange,\n onCommit: props.onCommit,\n onCancel: props.onCancel,\n });\n const resizeHandles =\n Array.isArray(props.resizeHandles) ||\n props.resizeHandles === \"corners\" ||\n props.resizeHandles === \"edges-and-corners\"\n ? { positions: props.resizeHandles }\n : props.resizeHandles;\n return createElement(ManipulationFrame, {\n ...controller.frameProps,\n children: [\n createElement(DragHandle, {\n key: \"content\",\n controller,\n ...props.dragHandle,\n style: { width: \"100%\", height: \"100%\", ...props.dragHandle?.style },\n children: props.children,\n }),\n props.resizable &&\n createElement(ResizeHandles, {\n key: \"resize\",\n controller,\n ...resizeHandles,\n }),\n props.rotatable &&\n createElement(RotationHandle, {\n key: \"rotate\",\n controller,\n ...props.rotationHandle,\n }),\n ],\n });\n}\n"],
5
+ "mappings": "AAAA,SAAS,qBAAqB;AAG9B,SAAS,uBAAuB;AAOhC,SAAS,yBAAyB;AAClC,SAAS,YAAY,eAAe,sBAAsB;AAgE1D,SAAS,UAAa,OAA+C;AACnE,SAAO,UAAU,UAAa,UAAU,QACpC,SACA,UAAU,OACP,CAAC,IACF;AACR;AAUO,SAAS,YAAY,OAAyC;AACnE,QAAM,aAAa,gBAAgB;AAAA,IACjC,KAAK,MAAM;AAAA,IACX,UAAU,MAAM;AAAA,IAChB,MAAM,UAAU,MAAM,SAAS;AAAA,IAC/B,QAAQ,UAAU,MAAM,SAAS;AAAA,IACjC,QAAQ,UAAU,MAAM,SAAS;AAAA,IACjC,SAAS,MAAM;AAAA,IACf,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM;AAAA,EAClB,CAAC;AACD,QAAM,gBACJ,MAAM,QAAQ,MAAM,aAAa,KACjC,MAAM,kBAAkB,aACxB,MAAM,kBAAkB,sBACpB,EAAE,WAAW,MAAM,cAAc,IACjC,MAAM;AACZ,SAAO,cAAc,mBAAmB;AAAA,IACtC,GAAG,WAAW;AAAA,IACd,UAAU;AAAA,MACR,cAAc,YAAY;AAAA,QACxB,KAAK;AAAA,QACL;AAAA,QACA,GAAG,MAAM;AAAA,QACT,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,GAAG,MAAM,YAAY,MAAM;AAAA,QACnE,UAAU,MAAM;AAAA,MAClB,CAAC;AAAA,MACD,MAAM,aACJ,cAAc,eAAe;AAAA,QAC3B,KAAK;AAAA,QACL;AAAA,QACA,GAAG;AAAA,MACL,CAAC;AAAA,MACH,MAAM,aACJ,cAAc,gBAAgB;AAAA,QAC5B,KAAK;AAAA,QACL;AAAA,QACA,GAAG,MAAM;AAAA,MACX,CAAC;AAAA,IACL;AAAA,EACF,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import type { Signal, WritableSignal } from "../signals/types.js";
2
+ import type { PibblManipulationActive, PibblManipulationGeometry } from "./controller-types.js";
3
+ import type { PibblManipulationBox } from "./types.js";
4
+ /** A bounded subscription owned only by one armed pointer gesture. */
5
+ export declare function observeGestureInputs(values: readonly Signal<unknown>[], notify: () => void): () => void;
6
+ export declare function claimGeometryGeneration(box: object, rotation?: object): void;
7
+ interface Rollback {
8
+ box: WritableSignal<PibblManipulationBox>;
9
+ rotation?: WritableSignal<number>;
10
+ before: PibblManipulationGeometry;
11
+ active: WritableSignal<PibblManipulationActive | null>;
12
+ }
13
+ /** This finite cleanup record contains signals and values, never a mounted tree. */
14
+ export declare function restoreReleasedGesture(record: Rollback): void;
15
+ export {};
@@ -0,0 +1,80 @@
1
+ import {
2
+ batch,
3
+ getSignalNode,
4
+ assertSignalCommandAllowed
5
+ } from "../signals/graph.js";
6
+ import {
7
+ createDetachedReactiveEdge,
8
+ linkReactiveEdgeToSource,
9
+ unlinkReactiveEdgeFromSource,
10
+ unlinkReactiveEdgeFromConsumer
11
+ } from "../signals/edge.js";
12
+ import { queueBeginCommand } from "../scheduler/realm-scheduler.js";
13
+ function observeGestureInputs(values, notify) {
14
+ const consumer = {
15
+ dependencyHead: void 0,
16
+ dependencyTail: void 0,
17
+ dependencyFreeHead: void 0,
18
+ dependencyFreeCount: 0,
19
+ dependencyCount: 0,
20
+ dependencyHighWater: 0,
21
+ collectionCursor: void 0,
22
+ collectionGeneration: 0,
23
+ addDependency() {
24
+ },
25
+ notify
26
+ };
27
+ const nodes = new Set(
28
+ values.map((value) => {
29
+ value.get();
30
+ return getSignalNode(value);
31
+ })
32
+ );
33
+ const edges = [...nodes].map((node) => {
34
+ const edge = createDetachedReactiveEdge(consumer, node);
35
+ linkReactiveEdgeToSource(edge, node.observe?.());
36
+ return edge;
37
+ });
38
+ return () => {
39
+ for (const edge of edges) {
40
+ unlinkReactiveEdgeFromSource(edge);
41
+ unlinkReactiveEdgeFromConsumer(edge);
42
+ }
43
+ };
44
+ }
45
+ const generations = /* @__PURE__ */ new WeakMap();
46
+ function claimGeometryGeneration(box, rotation) {
47
+ generations.set(box, (generations.get(box) ?? 0) + 1);
48
+ if (rotation) generations.set(rotation, (generations.get(rotation) ?? 0) + 1);
49
+ }
50
+ function restoreReleasedGesture(record) {
51
+ const priorActive = record.active.get();
52
+ const boxNode = getSignalNode(record.box);
53
+ const rotationNode = record.rotation && getSignalNode(record.rotation);
54
+ const boxVersion = boxNode.version;
55
+ const rotationVersion = rotationNode?.version;
56
+ const boxGeneration = generations.get(record.box);
57
+ const rotationGeneration = record.rotation && generations.get(record.rotation);
58
+ const restore = () => {
59
+ batch(() => {
60
+ if (boxNode.version === boxVersion && rotationNode?.version === rotationVersion && generations.get(record.box) === boxGeneration && (!record.rotation || generations.get(record.rotation) === rotationGeneration)) {
61
+ record.box.set(record.before.box);
62
+ record.rotation?.set(record.before.rotation);
63
+ }
64
+ if (record.active.get() === priorActive) record.active.set(null);
65
+ });
66
+ };
67
+ try {
68
+ assertSignalCommandAllowed();
69
+ } catch {
70
+ queueBeginCommand(restore);
71
+ return;
72
+ }
73
+ restore();
74
+ }
75
+ export {
76
+ claimGeometryGeneration,
77
+ observeGestureInputs,
78
+ restoreReleasedGesture
79
+ };
80
+ //# sourceMappingURL=ownership.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/manipulation/ownership.ts"],
4
+ "sourcesContent": ["import {\n batch,\n getSignalNode,\n assertSignalCommandAllowed,\n} from \"../signals/graph.js\";\nimport type { Signal, WritableSignal } from \"../signals/types.js\";\nimport {\n createDetachedReactiveEdge,\n linkReactiveEdgeToSource,\n unlinkReactiveEdgeFromSource,\n unlinkReactiveEdgeFromConsumer,\n type SignalDependencyConsumer,\n} from \"../signals/edge.js\";\nimport { queueBeginCommand } from \"../scheduler/realm-scheduler.js\";\nimport type {\n PibblManipulationActive,\n PibblManipulationGeometry,\n} from \"./controller-types.js\";\nimport type { PibblManipulationBox } from \"./types.js\";\n\n/** A bounded subscription owned only by one armed pointer gesture. */\nexport function observeGestureInputs(\n values: readonly Signal<unknown>[],\n notify: () => void,\n): () => void {\n const consumer: SignalDependencyConsumer = {\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 addDependency() {},\n notify,\n };\n const nodes = new Set(\n values.map((value) => {\n value.get();\n return getSignalNode(value);\n }),\n );\n const edges = [...nodes].map((node) => {\n const edge = createDetachedReactiveEdge(consumer, node);\n linkReactiveEdgeToSource(edge, node.observe?.());\n return edge;\n });\n return () => {\n for (const edge of edges) {\n unlinkReactiveEdgeFromSource(edge);\n unlinkReactiveEdgeFromConsumer(edge);\n }\n };\n}\n\nconst generations = new WeakMap<object, number>();\nexport function claimGeometryGeneration(box: object, rotation?: object): void {\n generations.set(box, (generations.get(box) ?? 0) + 1);\n if (rotation) generations.set(rotation, (generations.get(rotation) ?? 0) + 1);\n}\ninterface Rollback {\n box: WritableSignal<PibblManipulationBox>;\n rotation?: WritableSignal<number>;\n before: PibblManipulationGeometry;\n active: WritableSignal<PibblManipulationActive | null>;\n}\n/** This finite cleanup record contains signals and values, never a mounted tree. */\nexport function restoreReleasedGesture(record: Rollback): void {\n const priorActive = record.active.get();\n const boxNode = getSignalNode(record.box);\n const rotationNode = record.rotation && getSignalNode(record.rotation);\n const boxVersion = boxNode.version;\n const rotationVersion = rotationNode?.version;\n const boxGeneration = generations.get(record.box);\n const rotationGeneration =\n record.rotation && generations.get(record.rotation);\n const restore = () => {\n batch(() => {\n if (\n boxNode.version === boxVersion &&\n rotationNode?.version === rotationVersion &&\n generations.get(record.box) === boxGeneration &&\n (!record.rotation ||\n generations.get(record.rotation) === rotationGeneration)\n ) {\n record.box.set(record.before.box);\n record.rotation?.set(record.before.rotation);\n }\n if (record.active.get() === priorActive) record.active.set(null);\n });\n };\n try {\n assertSignalCommandAllowed();\n } catch {\n queueBeginCommand(restore);\n return;\n }\n restore();\n}\n"],
5
+ "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,yBAAyB;AAQ3B,SAAS,qBACd,QACA,QACY;AACZ,QAAM,WAAqC;AAAA,IACzC,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAAC;AAAA,IACjB;AAAA,EACF;AACA,QAAM,QAAQ,IAAI;AAAA,IAChB,OAAO,IAAI,CAAC,UAAU;AACpB,YAAM,IAAI;AACV,aAAO,cAAc,KAAK;AAAA,IAC5B,CAAC;AAAA,EACH;AACA,QAAM,QAAQ,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,SAAS;AACrC,UAAM,OAAO,2BAA2B,UAAU,IAAI;AACtD,6BAAyB,MAAM,KAAK,UAAU,CAAC;AAC/C,WAAO;AAAA,EACT,CAAC;AACD,SAAO,MAAM;AACX,eAAW,QAAQ,OAAO;AACxB,mCAA6B,IAAI;AACjC,qCAA+B,IAAI;AAAA,IACrC;AAAA,EACF;AACF;AAEA,MAAM,cAAc,oBAAI,QAAwB;AACzC,SAAS,wBAAwB,KAAa,UAAyB;AAC5E,cAAY,IAAI,MAAM,YAAY,IAAI,GAAG,KAAK,KAAK,CAAC;AACpD,MAAI,SAAU,aAAY,IAAI,WAAW,YAAY,IAAI,QAAQ,KAAK,KAAK,CAAC;AAC9E;AAQO,SAAS,uBAAuB,QAAwB;AAC7D,QAAM,cAAc,OAAO,OAAO,IAAI;AACtC,QAAM,UAAU,cAAc,OAAO,GAAG;AACxC,QAAM,eAAe,OAAO,YAAY,cAAc,OAAO,QAAQ;AACrE,QAAM,aAAa,QAAQ;AAC3B,QAAM,kBAAkB,cAAc;AACtC,QAAM,gBAAgB,YAAY,IAAI,OAAO,GAAG;AAChD,QAAM,qBACJ,OAAO,YAAY,YAAY,IAAI,OAAO,QAAQ;AACpD,QAAM,UAAU,MAAM;AACpB,UAAM,MAAM;AACV,UACE,QAAQ,YAAY,cACpB,cAAc,YAAY,mBAC1B,YAAY,IAAI,OAAO,GAAG,MAAM,kBAC/B,CAAC,OAAO,YACP,YAAY,IAAI,OAAO,QAAQ,MAAM,qBACvC;AACA,eAAO,IAAI,IAAI,OAAO,OAAO,GAAG;AAChC,eAAO,UAAU,IAAI,OAAO,OAAO,QAAQ;AAAA,MAC7C;AACA,UAAI,OAAO,OAAO,IAAI,MAAM,YAAa,QAAO,OAAO,IAAI,IAAI;AAAA,IACjE,CAAC;AAAA,EACH;AACA,MAAI;AACF,+BAA2B;AAAA,EAC7B,QAAQ;AACN,sBAAkB,OAAO;AACzB;AAAA,EACF;AACA,UAAQ;AACV;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ import type { PibblManipulationModifiers, PibblManipulationWhen } from './types.js';
2
+ export declare function isSnapActive(enabled: boolean | undefined, when: PibblManipulationWhen | undefined, modifiers: PibblManipulationModifiers): boolean;
3
+ export declare function assertPositiveFiniteStep(step: number, label: string): void;
4
+ export declare function assertFiniteOrigin(origin: number, label: string): void;
5
+ /** Rounds half-way values toward the larger lattice index. */
6
+ export declare function snapToLattice(value: number, step: number, origin?: number): number;
@@ -0,0 +1,40 @@
1
+ function isSnapActive(enabled, when, modifiers) {
2
+ if (enabled === false) return false;
3
+ switch (when ?? "always") {
4
+ case "always":
5
+ return true;
6
+ case "shift":
7
+ return modifiers.shift === true;
8
+ case "alt":
9
+ return modifiers.alt === true;
10
+ case "ctrl":
11
+ return modifiers.ctrl === true;
12
+ case "meta":
13
+ return modifiers.meta === true;
14
+ }
15
+ }
16
+ function assertPositiveFiniteStep(step, label) {
17
+ if (!Number.isFinite(step) || step <= 0) {
18
+ throw new Error(`${label} must be finite and greater than zero, received ${step}`);
19
+ }
20
+ }
21
+ function assertFiniteOrigin(origin, label) {
22
+ if (!Number.isFinite(origin)) {
23
+ throw new Error(`${label} must be finite, received ${origin}`);
24
+ }
25
+ }
26
+ function snapToLattice(value, step, origin = 0) {
27
+ assertPositiveFiniteStep(step, "snap step");
28
+ assertFiniteOrigin(origin, "snap origin");
29
+ const index = (value - origin) / step;
30
+ const lower = Math.floor(index);
31
+ const rounded = index - lower < 0.5 ? lower : lower + 1;
32
+ return origin + rounded * step;
33
+ }
34
+ export {
35
+ assertFiniteOrigin,
36
+ assertPositiveFiniteStep,
37
+ isSnapActive,
38
+ snapToLattice
39
+ };
40
+ //# sourceMappingURL=snap.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/manipulation/snap.ts"],
4
+ "sourcesContent": ["import type { PibblManipulationModifiers, PibblManipulationWhen } from './types.js';\n\nexport function isSnapActive(\n enabled: boolean | undefined,\n when: PibblManipulationWhen | undefined,\n modifiers: PibblManipulationModifiers,\n): boolean {\n if (enabled === false) return false;\n switch (when ?? 'always') {\n case 'always': return true;\n case 'shift': return modifiers.shift === true;\n case 'alt': return modifiers.alt === true;\n case 'ctrl': return modifiers.ctrl === true;\n case 'meta': return modifiers.meta === true;\n }\n}\n\nexport function assertPositiveFiniteStep(step: number, label: string): void {\n if (!Number.isFinite(step) || step <= 0) {\n throw new Error(`${label} must be finite and greater than zero, received ${step}`);\n }\n}\n\nexport function assertFiniteOrigin(origin: number, label: string): void {\n if (!Number.isFinite(origin)) {\n throw new Error(`${label} must be finite, received ${origin}`);\n }\n}\n\n/** Rounds half-way values toward the larger lattice index. */\nexport function snapToLattice(value: number, step: number, origin = 0): number {\n assertPositiveFiniteStep(step, 'snap step');\n assertFiniteOrigin(origin, 'snap origin');\n const index = (value - origin) / step;\n const lower = Math.floor(index);\n const rounded = index - lower < 0.5 ? lower : lower + 1;\n return origin + rounded * step;\n}\n"],
5
+ "mappings": "AAEO,SAAS,aACd,SACA,MACA,WACS;AACT,MAAI,YAAY,MAAO,QAAO;AAC9B,UAAQ,QAAQ,UAAU;AAAA,IACxB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAS,aAAO,UAAU,UAAU;AAAA,IACzC,KAAK;AAAO,aAAO,UAAU,QAAQ;AAAA,IACrC,KAAK;AAAQ,aAAO,UAAU,SAAS;AAAA,IACvC,KAAK;AAAQ,aAAO,UAAU,SAAS;AAAA,EACzC;AACF;AAEO,SAAS,yBAAyB,MAAc,OAAqB;AAC1E,MAAI,CAAC,OAAO,SAAS,IAAI,KAAK,QAAQ,GAAG;AACvC,UAAM,IAAI,MAAM,GAAG,KAAK,mDAAmD,IAAI,EAAE;AAAA,EACnF;AACF;AAEO,SAAS,mBAAmB,QAAgB,OAAqB;AACtE,MAAI,CAAC,OAAO,SAAS,MAAM,GAAG;AAC5B,UAAM,IAAI,MAAM,GAAG,KAAK,6BAA6B,MAAM,EAAE;AAAA,EAC/D;AACF;AAGO,SAAS,cAAc,OAAe,MAAc,SAAS,GAAW;AAC7E,2BAAyB,MAAM,WAAW;AAC1C,qBAAmB,QAAQ,aAAa;AACxC,QAAM,SAAS,QAAQ,UAAU;AACjC,QAAM,QAAQ,KAAK,MAAM,KAAK;AAC9B,QAAM,UAAU,QAAQ,QAAQ,MAAM,QAAQ,QAAQ;AACtD,SAAO,SAAS,UAAU;AAC5B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { ManipulationSolveInput, ManipulationSolveResult } from "./types.js";
2
+ export declare function solveManipulation(input: ManipulationSolveInput): ManipulationSolveResult;