@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,109 @@
1
+ const choose = Array.from({ length: 8 }, (_, n) => {
2
+ const row = [1];
3
+ for (let i = 1; i <= n; i++) row[i] = row[i - 1] * (n - i + 1) / i;
4
+ return row;
5
+ });
6
+ function product(a, b) {
7
+ const n = a.length - 1, m = b.length - 1;
8
+ const result = new Array(n + m + 1).fill(0);
9
+ for (let i = 0; i <= n; i++) {
10
+ for (let j = 0; j <= m; j++) {
11
+ result[i + j] += a[i] * b[j] * choose[n][i] * choose[m][j] / choose[n + m][i + j];
12
+ }
13
+ }
14
+ return result;
15
+ }
16
+ function endpoint(span, index) {
17
+ const w = span.w[index], x = span.x[index] / w, y = span.y[index] / w;
18
+ if (w === 0 || !Number.isFinite(x) || !Number.isFinite(y)) {
19
+ throw new RangeError("warpPath encountered a projection pole or coordinate overflow.");
20
+ }
21
+ return [x, y];
22
+ }
23
+ function errorBound(span, ax, ay, bx, by) {
24
+ const n = span.w.length - 1;
25
+ const sign = Math.sign(span.w[0]);
26
+ let lower = Infinity, scale = 0, magnitude = 0;
27
+ for (let i = 0; i <= n; i++) {
28
+ lower = Math.min(lower, sign * span.w[i]);
29
+ scale = Math.max(scale, Math.abs(span.w[i]));
30
+ magnitude = Math.max(magnitude, Math.abs(span.x[i]), Math.abs(span.y[i]));
31
+ }
32
+ if (lower <= 0) return Infinity;
33
+ let bound = 0;
34
+ for (let i = 0; i <= n + 1; i++) {
35
+ const t = i / (n + 1);
36
+ let x = 0, y = 0;
37
+ if (i <= n) {
38
+ x += (1 - t) * (span.x[i] - span.w[i] * ax);
39
+ y += (1 - t) * (span.y[i] - span.w[i] * ay);
40
+ }
41
+ if (i > 0) {
42
+ x += t * (span.x[i - 1] - span.w[i - 1] * bx);
43
+ y += t * (span.y[i - 1] - span.w[i - 1] * by);
44
+ }
45
+ bound = Math.max(bound, Math.hypot(x, y));
46
+ }
47
+ const roundoff = 64 * Number.EPSILON * (magnitude + scale * Math.max(Math.abs(ax), Math.abs(ay), Math.abs(bx), Math.abs(by)));
48
+ return (bound + roundoff) / lower;
49
+ }
50
+ function split(values, left, right, scratch) {
51
+ const n = values.length - 1;
52
+ for (let i = 0; i <= n; i++) scratch[i] = values[i];
53
+ left.length = right.length = n + 1;
54
+ left[0] = scratch[0];
55
+ right[n] = scratch[n];
56
+ for (let level = 1; level <= n; level++) {
57
+ for (let i = 0; i <= n - level; i++) scratch[i] = scratch[i] / 2 + scratch[i + 1] / 2;
58
+ left[level] = scratch[0];
59
+ right[n - level] = scratch[n - level];
60
+ }
61
+ }
62
+ function frame(work, index) {
63
+ return work.pool[index] ?? (work.pool[index] = { x: [], y: [], w: [] });
64
+ }
65
+ function emitSpan(span, tolerance, work, emit) {
66
+ const first = frame(work, 0);
67
+ for (const key of ["x", "y", "w"]) {
68
+ first[key].length = span[key].length;
69
+ for (let i = 0; i < span[key].length; i++) {
70
+ const value = span[key][i];
71
+ if (!Number.isFinite(value)) throw new RangeError("warpPath homogeneous coordinates overflowed.");
72
+ first[key][i] = value;
73
+ }
74
+ }
75
+ let size = 1;
76
+ work.depths[0] = 0;
77
+ while (size) {
78
+ if (--work.remaining < 0) throw new RangeError("warpPath exceeded its subdivision work limit.");
79
+ const index = --size, current = work.pool[index], depth = work.depths[index];
80
+ const n = current.w.length - 1;
81
+ const aw = current.w[0], bw = current.w[n];
82
+ const ax = current.x[0] / aw, ay = current.y[0] / aw, bx = current.x[n] / bw, by = current.y[n] / bw;
83
+ if (aw === 0 || bw === 0 || !Number.isFinite(ax) || !Number.isFinite(ay) || !Number.isFinite(bx) || !Number.isFinite(by)) {
84
+ throw new RangeError("warpPath encountered a projection pole or coordinate overflow.");
85
+ }
86
+ if (Math.sign(aw) !== Math.sign(bw)) throw new RangeError("warpPath crosses a projection pole.");
87
+ if (n === 1 && 64 * Number.EPSILON * Math.max(Math.abs(ax), Math.abs(ay), Math.abs(bx), Math.abs(by)) <= tolerance) {
88
+ emit(bx, by);
89
+ continue;
90
+ }
91
+ if (errorBound(current, ax, ay, bx, by) <= tolerance) {
92
+ emit(bx, by);
93
+ continue;
94
+ }
95
+ if (depth >= 52) throw new RangeError("warpPath cannot certify tolerance or finiteness at available precision.");
96
+ const left = frame(work, index + 1);
97
+ split(current.x, left.x, current.x, work.scratch);
98
+ split(current.y, left.y, current.y, work.scratch);
99
+ split(current.w, left.w, current.w, work.scratch);
100
+ work.depths[index] = work.depths[index + 1] = depth + 1;
101
+ size += 2;
102
+ }
103
+ }
104
+ export {
105
+ emitSpan,
106
+ endpoint,
107
+ product
108
+ };
109
+ //# sourceMappingURL=path-warp-bezier.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/geometry/path-warp-bezier.ts"],
4
+ "sourcesContent": ["/** @internal Homogeneous Bernstein curves, degree at most six after warping. */\nexport interface WarpSpan { x: number[]; y: number[]; w: number[] }\nexport type WarpPoint = readonly [number, number];\n\nconst choose = Array.from({ length: 8 }, (_, n) => {\n const row = [1];\n for (let i = 1; i <= n; i++) row[i] = row[i - 1] * (n - i + 1) / i;\n return row;\n});\n\nexport function product(a: readonly number[], b: readonly number[]): number[] {\n const n = a.length - 1, m = b.length - 1;\n const result = new Array<number>(n + m + 1).fill(0);\n for (let i = 0; i <= n; i++) {\n for (let j = 0; j <= m; j++) {\n result[i + j] += a[i] * b[j] * choose[n][i] * choose[m][j] / choose[n + m][i + j];\n }\n }\n return result;\n}\n\nexport function endpoint(span: WarpSpan, index: number): WarpPoint {\n const w = span.w[index], x = span.x[index] / w, y = span.y[index] / w;\n if (w === 0 || !Number.isFinite(x) || !Number.isFinite(y)) {\n throw new RangeError('warpPath encountered a projection pole or coordinate overflow.');\n }\n return [x, y];\n}\n\n/** Bound |R(t)-lerp(R(0),R(1),t)|, including collinear backtracking. */\nfunction errorBound(span: WarpSpan, ax: number, ay: number, bx: number, by: number): number {\n const n = span.w.length - 1;\n const sign = Math.sign(span.w[0]);\n let lower = Infinity, scale = 0, magnitude = 0;\n for (let i = 0; i <= n; i++) {\n lower = Math.min(lower, sign * span.w[i]);\n scale = Math.max(scale, Math.abs(span.w[i]));\n magnitude = Math.max(magnitude, Math.abs(span.x[i]), Math.abs(span.y[i]));\n }\n if (lower <= 0) return Infinity;\n let bound = 0;\n // Degree elevation of N minus the Bernstein product W*L. Computing\n // centered terms reduces cancellation compared with subtracting products.\n for (let i = 0; i <= n + 1; i++) {\n const t = i / (n + 1);\n let x = 0, y = 0;\n if (i <= n) {\n x += (1 - t) * (span.x[i] - span.w[i] * ax);\n y += (1 - t) * (span.y[i] - span.w[i] * ay);\n }\n if (i > 0) {\n x += t * (span.x[i - 1] - span.w[i - 1] * bx);\n y += t * (span.y[i - 1] - span.w[i - 1] * by);\n }\n bound = Math.max(bound, Math.hypot(x, y));\n }\n const roundoff = 64 * Number.EPSILON * (magnitude + scale * Math.max(Math.abs(ax), Math.abs(ay), Math.abs(bx), Math.abs(by)));\n return (bound + roundoff) / lower;\n}\n\n/** Split into reusable buffers. The right destination may alias the input. */\nfunction split(values: readonly number[], left: number[], right: number[], scratch: number[]): void {\n const n = values.length - 1;\n for (let i = 0; i <= n; i++) scratch[i] = values[i];\n left.length = right.length = n + 1;\n left[0] = scratch[0]; right[n] = scratch[n];\n for (let level = 1; level <= n; level++) {\n for (let i = 0; i <= n - level; i++) scratch[i] = scratch[i] / 2 + scratch[i + 1] / 2;\n left[level] = scratch[0]; right[n - level] = scratch[n - level];\n }\n}\n\n/** Call-owned workspace; at most 53 frames (degree <= 6), reused across spans. */\nexport interface WarpWork {\n remaining: number;\n pool: WarpSpan[];\n depths: number[];\n scratch: number[];\n}\nfunction frame(work: WarpWork, index: number): WarpSpan {\n return work.pool[index] ?? (work.pool[index] = { x: [], y: [], w: [] });\n}\nexport function emitSpan(span: WarpSpan, tolerance: number, work: WarpWork, emit: (x: number, y: number) => void): void {\n const first = frame(work, 0);\n for (const key of ['x', 'y', 'w'] as const) {\n first[key].length = span[key].length;\n for (let i = 0; i < span[key].length; i++) {\n const value = span[key][i];\n if (!Number.isFinite(value)) throw new RangeError('warpPath homogeneous coordinates overflowed.');\n first[key][i] = value;\n }\n }\n let size = 1;\n work.depths[0] = 0;\n while (size) {\n if (--work.remaining < 0) throw new RangeError('warpPath exceeded its subdivision work limit.');\n const index = --size, current = work.pool[index], depth = work.depths[index];\n const n = current.w.length - 1;\n const aw = current.w[0], bw = current.w[n];\n const ax = current.x[0] / aw, ay = current.y[0] / aw, bx = current.x[n] / bw, by = current.y[n] / bw;\n if (aw === 0 || bw === 0 || !Number.isFinite(ax) || !Number.isFinite(ay) || !Number.isFinite(bx) || !Number.isFinite(by)) {\n throw new RangeError('warpPath encountered a projection pole or coordinate overflow.');\n }\n if (Math.sign(aw) !== Math.sign(bw)) throw new RangeError('warpPath crosses a projection pole.');\n // A degree-one rational curve with like-signed weights traverses the\n // endpoint chord monotonically. Nonlinear parameter speed is not error.\n if (n === 1 && 64 * Number.EPSILON * Math.max(Math.abs(ax), Math.abs(ay), Math.abs(bx), Math.abs(by)) <= tolerance) {\n emit(bx, by); continue;\n }\n if (errorBound(current, ax, ay, bx, by) <= tolerance) { emit(bx, by); continue; }\n // 52 halvings exhaust meaningful double-precision parameter resolution.\n if (depth >= 52) throw new RangeError('warpPath cannot certify tolerance or finiteness at available precision.');\n const left = frame(work, index + 1);\n split(current.x, left.x, current.x, work.scratch);\n split(current.y, left.y, current.y, work.scratch);\n split(current.w, left.w, current.w, work.scratch);\n work.depths[index] = work.depths[index + 1] = depth + 1;\n size += 2;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,27 @@
1
+ import { PathGeometry } from './path-geometry.js';
2
+ export interface PathWarpPoint {
3
+ readonly x: number;
4
+ readonly y: number;
5
+ }
6
+ export interface PathWarpRect {
7
+ readonly x: number;
8
+ readonly y: number;
9
+ readonly width: number;
10
+ readonly height: number;
11
+ }
12
+ export interface PathWarpCorners {
13
+ readonly topLeft: PathWarpPoint;
14
+ readonly topRight: PathWarpPoint;
15
+ readonly bottomLeft: PathWarpPoint;
16
+ readonly bottomRight: PathWarpPoint;
17
+ }
18
+ export type PathWarpMode = 'bilinear' | 'perspective';
19
+ export interface WarpPathOptions {
20
+ readonly source: PathWarpRect;
21
+ readonly destination: PathWarpCorners;
22
+ readonly mode?: PathWarpMode;
23
+ readonly tolerance: number;
24
+ readonly maxSegments?: number;
25
+ }
26
+ /** Approximate a four-corner warp in destination units, returning independent line geometry. */
27
+ export declare function warpPath(path: PathGeometry, options: Readonly<WarpPathOptions>): PathGeometry;
@@ -0,0 +1,165 @@
1
+ import { arcPoint } from "./path-arc.js";
2
+ import { PathGeometry } from "./path-geometry.js";
3
+ import { emitSpan, endpoint, product } from "./path-warp-bezier.js";
4
+ function number(value, name) {
5
+ if (typeof value !== "number") throw new TypeError(`warpPath ${name} must be a number.`);
6
+ if (!Number.isFinite(value)) throw new RangeError(`warpPath ${name} must be finite.`);
7
+ return value;
8
+ }
9
+ function point(value, name) {
10
+ return [number(value?.x, `${name}.x`), number(value?.y, `${name}.y`)];
11
+ }
12
+ function polynomial(points) {
13
+ return { x: points.map((p) => p[0]), y: points.map((p) => p[1]), w: points.map(() => 1) };
14
+ }
15
+ function perspective(corners) {
16
+ const scale = Math.max(...corners.flatMap((p) => [Math.abs(p[0]), Math.abs(p[1])]));
17
+ if (scale === 0) throw new RangeError("Perspective warp requires a strictly convex quadrilateral.");
18
+ const normalized = corners.map((p) => [p[0] / scale, p[1] / scale]);
19
+ const origin = normalized[0];
20
+ const extent = Math.max(...normalized.flatMap((p) => [Math.abs(p[0] - origin[0]), Math.abs(p[1] - origin[1])]));
21
+ if (extent === 0) throw new RangeError("Perspective destination is degenerate.");
22
+ const q = normalized.map((p) => [(p[0] - origin[0]) / extent, (p[1] - origin[1]) / extent]);
23
+ const perimeter = [q[0], q[1], q[3], q[2]];
24
+ let orientation = 0;
25
+ for (let i = 0; i < 4; i++) {
26
+ const a2 = perimeter[i], b2 = perimeter[(i + 1) % 4], c2 = perimeter[(i + 2) % 4];
27
+ const p = (b2[0] - a2[0]) * (c2[1] - b2[1]), r = (b2[1] - a2[1]) * (c2[0] - b2[0]);
28
+ const cross = p - r;
29
+ if (Math.abs(cross) <= 32 * Number.EPSILON * (Math.abs(p) + Math.abs(r)) || orientation !== 0 && Math.sign(cross) !== orientation) {
30
+ throw new RangeError("Perspective warp requires a strictly convex, nondegenerate quadrilateral.");
31
+ }
32
+ orientation = Math.sign(cross);
33
+ }
34
+ const [a, b, c, d] = q;
35
+ const dx1 = b[0] - d[0], dx2 = c[0] - d[0], dx3 = a[0] - b[0] - c[0] + d[0];
36
+ const dy1 = b[1] - d[1], dy2 = c[1] - d[1], dy3 = a[1] - b[1] - c[1] + d[1];
37
+ const determinant = dx1 * dy2 - dx2 * dy1;
38
+ if (Math.abs(determinant) <= 32 * Number.EPSILON * (Math.abs(dx1 * dy2) + Math.abs(dx2 * dy1))) {
39
+ throw new RangeError("Perspective mapping is numerically singular.");
40
+ }
41
+ const g = (dx3 * dy2 - dx2 * dy3) / determinant;
42
+ const h = (dx1 * dy3 - dx3 * dy1) / determinant;
43
+ if ([1 + g, 1 + h, 1 + g + h].some((w) => w <= 64 * Number.EPSILON * (1 + Math.abs(g) + Math.abs(h)))) {
44
+ throw new RangeError("Perspective mapping cannot certify a finite source rectangle.");
45
+ }
46
+ const xx = b[0] - a[0] + g * b[0], xy = c[0] - a[0] + h * c[0];
47
+ const yx = b[1] - a[1] + g * b[1], yy = c[1] - a[1] + h * c[1];
48
+ return (span) => {
49
+ const w = span.w.map((weight, i) => g * span.x[i] + h * span.y[i] + weight);
50
+ const x = w.map((weight, i) => ((xx * span.x[i] + xy * span.y[i] + a[0] * span.w[i]) * extent + origin[0] * weight) * scale);
51
+ const y = w.map((weight, i) => ((yx * span.x[i] + yy * span.y[i] + a[1] * span.w[i]) * extent + origin[1] * weight) * scale);
52
+ return { x, y, w };
53
+ };
54
+ }
55
+ function warpPath(path, options) {
56
+ if (!(path instanceof PathGeometry)) throw new TypeError("warpPath requires PathGeometry.");
57
+ const source = options?.source, destination = options?.destination;
58
+ const sx = number(source?.x, "source.x"), sy = number(source?.y, "source.y");
59
+ const width = number(source?.width, "source.width"), height = number(source?.height, "source.height");
60
+ const tolerance = number(options?.tolerance, "tolerance");
61
+ const requestedLimit = options?.maxSegments;
62
+ const maxSegments = number(requestedLimit === void 0 ? 1e6 : requestedLimit, "maxSegments");
63
+ if (width <= 0 || height <= 0 || tolerance <= 0 || !Number.isSafeInteger(maxSegments) || maxSegments <= 0) {
64
+ throw new RangeError("warpPath requires positive dimensions, tolerance, and a positive safe-integer maxSegments.");
65
+ }
66
+ const requestedMode = options?.mode;
67
+ const mode = requestedMode === void 0 ? "bilinear" : requestedMode;
68
+ if (mode !== "bilinear" && mode !== "perspective") throw new TypeError("Unknown warpPath mode.");
69
+ const corners = [
70
+ point(destination?.topLeft, "topLeft"),
71
+ point(destination?.topRight, "topRight"),
72
+ point(destination?.bottomLeft, "bottomLeft"),
73
+ point(destination?.bottomRight, "bottomRight")
74
+ ];
75
+ const project = mode === "perspective" ? perspective(corners) : void 0;
76
+ const map = (span) => {
77
+ const u = span.x.map((x2, i) => (x2 - sx * span.w[i]) / width);
78
+ const v = span.y.map((y2, i) => (y2 - sy * span.w[i]) / height);
79
+ if (project) return project({ x: u, y: v, w: span.w });
80
+ const wu = span.w.map((w2, i) => w2 - u[i]), wv = span.w.map((w2, i) => w2 - v[i]);
81
+ const weights = [product(wu, wv), product(u, wv), product(wu, v), product(u, v)];
82
+ const w = product(span.w, span.w);
83
+ const x = w.map((_, i) => weights.reduce((sum, ws, j) => sum + ws[i] * corners[j][0], 0));
84
+ const y = w.map((_, i) => weights.reduce((sum, ws, j) => sum + ws[i] * corners[j][1], 0));
85
+ return { x, y, w };
86
+ };
87
+ const output = new PathGeometry();
88
+ let count = 0, closed = false;
89
+ const reserve = () => {
90
+ if (++count > maxSegments) throw new RangeError("warpPath exceeded maxSegments.");
91
+ };
92
+ const line = (x, y) => {
93
+ reserve();
94
+ output.lineTo(x, y);
95
+ closed = false;
96
+ };
97
+ const work = { remaining: Math.min(4e6, 2 * maxSegments + 53), pool: [], depths: [], scratch: [] };
98
+ const emit = (span) => {
99
+ if (count >= maxSegments) throw new RangeError("warpPath exceeded maxSegments.");
100
+ emitSpan(map(span), tolerance, work, line);
101
+ };
102
+ let current = [0, 0], start = current;
103
+ for (const segment of path) {
104
+ switch (segment.type) {
105
+ case "move": {
106
+ current = start = [segment.x, segment.y];
107
+ const p = endpoint(map(polynomial([current])), 0);
108
+ reserve();
109
+ output.moveTo(p[0], p[1]);
110
+ closed = false;
111
+ break;
112
+ }
113
+ case "line": {
114
+ const end = [segment.x, segment.y];
115
+ emit(polynomial([current, end]));
116
+ current = end;
117
+ break;
118
+ }
119
+ case "quadratic": {
120
+ const end = [segment.x, segment.y];
121
+ emit(polynomial([current, [segment.cpx, segment.cpy], end]));
122
+ current = end;
123
+ break;
124
+ }
125
+ case "cubic": {
126
+ const end = [segment.x, segment.y];
127
+ emit(polynomial([current, [segment.cp1x, segment.cp1y], [segment.cp2x, segment.cp2y], end]));
128
+ current = end;
129
+ break;
130
+ }
131
+ case "arc": {
132
+ const first = arcPoint(segment, segment.startAngle);
133
+ if (current[0] !== first[0] || current[1] !== first[1]) emit(polynomial([current, first]));
134
+ const pieces = Math.max(1, Math.ceil(Math.abs(segment.sweep) / (Math.PI / 2)));
135
+ for (let i = 0; i < pieces; i++) {
136
+ const a = segment.startAngle + segment.sweep * i / pieces;
137
+ const b = segment.startAngle + segment.sweep * (i + 1) / pieces;
138
+ const mid = (a + b) / 2, weight = Math.cos((b - a) / 2);
139
+ const p = arcPoint(segment, a), q = arcPoint(segment, b);
140
+ emit({
141
+ x: [p[0], segment.cx * weight + segment.ux * Math.cos(mid) + segment.vx * Math.sin(mid), q[0]],
142
+ y: [p[1], segment.cy * weight + segment.uy * Math.cos(mid) + segment.vy * Math.sin(mid), q[1]],
143
+ w: [1, weight, 1]
144
+ });
145
+ }
146
+ current = arcPoint(segment, segment.startAngle + segment.sweep);
147
+ break;
148
+ }
149
+ case "close":
150
+ if (current[0] !== start[0] || current[1] !== start[1]) emit(polynomial([current, start]));
151
+ if (!closed) {
152
+ reserve();
153
+ output.closePath();
154
+ closed = true;
155
+ }
156
+ current = start;
157
+ break;
158
+ }
159
+ }
160
+ return output;
161
+ }
162
+ export {
163
+ warpPath
164
+ };
165
+ //# sourceMappingURL=path-warp.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/geometry/path-warp.ts"],
4
+ "sourcesContent": ["import { arcPoint } from './path-arc.js';\nimport { PathGeometry } from './path-geometry.js';\nimport { emitSpan, endpoint, product, type WarpPoint, type WarpSpan, type WarpWork } from './path-warp-bezier.js';\n\nexport interface PathWarpPoint { readonly x: number; readonly y: number }\nexport interface PathWarpRect { readonly x: number; readonly y: number; readonly width: number; readonly height: number }\nexport interface PathWarpCorners {\n readonly topLeft: PathWarpPoint;\n readonly topRight: PathWarpPoint;\n readonly bottomLeft: PathWarpPoint;\n readonly bottomRight: PathWarpPoint;\n}\nexport type PathWarpMode = 'bilinear' | 'perspective';\nexport interface WarpPathOptions {\n readonly source: PathWarpRect;\n readonly destination: PathWarpCorners;\n readonly mode?: PathWarpMode;\n readonly tolerance: number;\n readonly maxSegments?: number;\n}\n\nfunction number(value: unknown, name: string): number {\n if (typeof value !== 'number') throw new TypeError(`warpPath ${name} must be a number.`);\n if (!Number.isFinite(value)) throw new RangeError(`warpPath ${name} must be finite.`);\n return value;\n}\nfunction point(value: PathWarpPoint | undefined, name: string): WarpPoint {\n return [number(value?.x, `${name}.x`), number(value?.y, `${name}.y`)];\n}\nfunction polynomial(points: readonly WarpPoint[]): WarpSpan {\n return { x: points.map(p => p[0]), y: points.map(p => p[1]), w: points.map(() => 1) };\n}\n\n/** Normalize destination coordinates before solving the unit-square homography. */\nfunction perspective(corners: readonly WarpPoint[]): (span: WarpSpan) => WarpSpan {\n const scale = Math.max(...corners.flatMap(p => [Math.abs(p[0]), Math.abs(p[1])]));\n if (scale === 0) throw new RangeError('Perspective warp requires a strictly convex quadrilateral.');\n const normalized = corners.map(p => [p[0] / scale, p[1] / scale] as const);\n const origin = normalized[0];\n const extent = Math.max(...normalized.flatMap(p => [Math.abs(p[0] - origin[0]), Math.abs(p[1] - origin[1])]));\n if (extent === 0) throw new RangeError('Perspective destination is degenerate.');\n const q = normalized.map(p => [(p[0] - origin[0]) / extent, (p[1] - origin[1]) / extent] as const);\n const perimeter = [q[0], q[1], q[3], q[2]];\n let orientation = 0;\n for (let i = 0; i < 4; i++) {\n const a = perimeter[i], b = perimeter[(i + 1) % 4], c = perimeter[(i + 2) % 4];\n const p = (b[0] - a[0]) * (c[1] - b[1]), r = (b[1] - a[1]) * (c[0] - b[0]);\n const cross = p - r;\n if (Math.abs(cross) <= 32 * Number.EPSILON * (Math.abs(p) + Math.abs(r)) ||\n (orientation !== 0 && Math.sign(cross) !== orientation)) {\n throw new RangeError('Perspective warp requires a strictly convex, nondegenerate quadrilateral.');\n }\n orientation = Math.sign(cross);\n }\n const [a, b, c, d] = q;\n const dx1 = b[0] - d[0], dx2 = c[0] - d[0], dx3 = a[0] - b[0] - c[0] + d[0];\n const dy1 = b[1] - d[1], dy2 = c[1] - d[1], dy3 = a[1] - b[1] - c[1] + d[1];\n const determinant = dx1 * dy2 - dx2 * dy1;\n if (Math.abs(determinant) <= 32 * Number.EPSILON * (Math.abs(dx1 * dy2) + Math.abs(dx2 * dy1))) {\n throw new RangeError('Perspective mapping is numerically singular.');\n }\n const g = (dx3 * dy2 - dx2 * dy3) / determinant;\n const h = (dx1 * dy3 - dx3 * dy1) / determinant;\n if ([1 + g, 1 + h, 1 + g + h].some(w => w <= 64 * Number.EPSILON * (1 + Math.abs(g) + Math.abs(h)))) {\n throw new RangeError('Perspective mapping cannot certify a finite source rectangle.');\n }\n const xx = b[0] - a[0] + g * b[0], xy = c[0] - a[0] + h * c[0];\n const yx = b[1] - a[1] + g * b[1], yy = c[1] - a[1] + h * c[1];\n return span => {\n const w = span.w.map((weight, i) => g * span.x[i] + h * span.y[i] + weight);\n const x = w.map((weight, i) => ((xx * span.x[i] + xy * span.y[i] + a[0] * span.w[i]) * extent + origin[0] * weight) * scale);\n const y = w.map((weight, i) => ((yx * span.x[i] + yy * span.y[i] + a[1] * span.w[i]) * extent + origin[1] * weight) * scale);\n return { x, y, w };\n };\n}\n\n/** Approximate a four-corner warp in destination units, returning independent line geometry. */\nexport function warpPath(path: PathGeometry, options: Readonly<WarpPathOptions>): PathGeometry {\n if (!(path instanceof PathGeometry)) throw new TypeError('warpPath requires PathGeometry.');\n const source = options?.source, destination = options?.destination;\n const sx = number(source?.x, 'source.x'), sy = number(source?.y, 'source.y');\n const width = number(source?.width, 'source.width'), height = number(source?.height, 'source.height');\n const tolerance = number(options?.tolerance, 'tolerance');\n const requestedLimit = options?.maxSegments;\n const maxSegments = number(requestedLimit === undefined ? 1_000_000 : requestedLimit, 'maxSegments');\n if (width <= 0 || height <= 0 || tolerance <= 0 || !Number.isSafeInteger(maxSegments) || maxSegments <= 0) {\n throw new RangeError('warpPath requires positive dimensions, tolerance, and a positive safe-integer maxSegments.');\n }\n const requestedMode = options?.mode;\n const mode = requestedMode === undefined ? 'bilinear' : requestedMode;\n if (mode !== 'bilinear' && mode !== 'perspective') throw new TypeError('Unknown warpPath mode.');\n const corners = [point(destination?.topLeft, 'topLeft'), point(destination?.topRight, 'topRight'),\n point(destination?.bottomLeft, 'bottomLeft'), point(destination?.bottomRight, 'bottomRight')];\n const project = mode === 'perspective' ? perspective(corners) : undefined;\n const map = (span: WarpSpan): WarpSpan => {\n const u = span.x.map((x, i) => (x - sx * span.w[i]) / width);\n const v = span.y.map((y, i) => (y - sy * span.w[i]) / height);\n if (project) return project({ x: u, y: v, w: span.w });\n const wu = span.w.map((w, i) => w - u[i]), wv = span.w.map((w, i) => w - v[i]);\n const weights = [product(wu, wv), product(u, wv), product(wu, v), product(u, v)];\n const w = product(span.w, span.w);\n const x = w.map((_, i) => weights.reduce((sum, ws, j) => sum + ws[i] * corners[j][0], 0));\n const y = w.map((_, i) => weights.reduce((sum, ws, j) => sum + ws[i] * corners[j][1], 0));\n return { x, y, w };\n };\n const output = new PathGeometry();\n let count = 0, closed = false;\n const reserve = () => {\n if (++count > maxSegments) throw new RangeError('warpPath exceeded maxSegments.');\n };\n const line = (x: number, y: number) => { reserve(); output.lineTo(x, y); closed = false; };\n // At most 4M subdivision visits per call, even for a pole with no output.\n const work: WarpWork = { remaining: Math.min(4_000_000, 2 * maxSegments + 53), pool: [], depths: [], scratch: [] };\n const emit = (span: WarpSpan) => {\n if (count >= maxSegments) throw new RangeError('warpPath exceeded maxSegments.');\n emitSpan(map(span), tolerance, work, line);\n };\n let current: WarpPoint = [0, 0], start: WarpPoint = current;\n for (const segment of path) {\n switch (segment.type) {\n case 'move': {\n current = start = [segment.x, segment.y];\n const p = endpoint(map(polynomial([current])), 0);\n reserve(); output.moveTo(p[0], p[1]); closed = false;\n break;\n }\n case 'line': {\n const end: WarpPoint = [segment.x, segment.y];\n emit(polynomial([current, end])); current = end; break;\n }\n case 'quadratic': {\n const end: WarpPoint = [segment.x, segment.y];\n emit(polynomial([current, [segment.cpx, segment.cpy], end])); current = end; break;\n }\n case 'cubic': {\n const end: WarpPoint = [segment.x, segment.y];\n emit(polynomial([current, [segment.cp1x, segment.cp1y], [segment.cp2x, segment.cp2y], end]));\n current = end; break;\n }\n case 'arc': {\n const first = arcPoint(segment, segment.startAngle);\n if (current[0] !== first[0] || current[1] !== first[1]) emit(polynomial([current, first]));\n const pieces = Math.max(1, Math.ceil(Math.abs(segment.sweep) / (Math.PI / 2)));\n for (let i = 0; i < pieces; i++) {\n const a = segment.startAngle + segment.sweep * i / pieces;\n const b = segment.startAngle + segment.sweep * (i + 1) / pieces;\n const mid = (a + b) / 2, weight = Math.cos((b - a) / 2);\n const p = arcPoint(segment, a), q = arcPoint(segment, b);\n emit({\n x: [p[0], segment.cx * weight + segment.ux * Math.cos(mid) + segment.vx * Math.sin(mid), q[0]],\n y: [p[1], segment.cy * weight + segment.uy * Math.cos(mid) + segment.vy * Math.sin(mid), q[1]],\n w: [1, weight, 1],\n });\n }\n current = arcPoint(segment, segment.startAngle + segment.sweep);\n break;\n }\n case 'close':\n if (current[0] !== start[0] || current[1] !== start[1]) emit(polynomial([current, start]));\n if (!closed) { reserve(); output.closePath(); closed = true; }\n current = start; break;\n }\n }\n return output;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["a", "b", "c", "x", "y", "w"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import type { RoundedCornerPathOptions } from './rounded-corners.js';
2
+ /**
3
+ * Geometry and construction options for a polygon path.
4
+ *
5
+ * @see {@link RoundedCornerPathOptions}
6
+ * @see {@link createPolygonPath}
7
+ */
8
+ export interface PolygonPathOptions extends RoundedCornerPathOptions {
9
+ /** Ordered coordinate pairs describing the path vertices. See {@link PolygonPathOptions}. */
10
+ coords: readonly (readonly [number, number])[];
11
+ }
12
+ /**
13
+ * Creates a Canvas Path2D for polygon geometry from validated options.
14
+ *
15
+ * @param options - Ordered polygon vertices and corner rounding settings. See
16
+ * {@link PolygonPathOptions} .
17
+ * @returns A native Canvas path containing the polygon.
18
+ *
19
+ * @see {@link PolygonPathOptions}
20
+ */
21
+ export declare function createPolygonPath(options: Readonly<PolygonPathOptions>): Path2D;
@@ -0,0 +1,12 @@
1
+ import { createRoundedClosedPolygonPath, resolveNumericCornerRadii } from "./rounded-corners.js";
2
+ import { validateCoordinates } from "./validation.js";
3
+ function createPolygonPath(options) {
4
+ const coords = validateCoordinates(options.coords);
5
+ const radii = resolveNumericCornerRadii(coords.length, options);
6
+ if (coords.length < 3) return new Path2D();
7
+ return createRoundedClosedPolygonPath(coords, radii);
8
+ }
9
+ export {
10
+ createPolygonPath
11
+ };
12
+ //# sourceMappingURL=polygon.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/geometry/polygon.ts"],
4
+ "sourcesContent": ["import { createRoundedClosedPolygonPath, resolveNumericCornerRadii } from './rounded-corners.js';\nimport type { RoundedCornerPathOptions } from './rounded-corners.js';\nimport { validateCoordinates } from './validation.js';\n\n/**\n * Geometry and construction options for a polygon path.\n *\n * @see {@link RoundedCornerPathOptions}\n * @see {@link createPolygonPath}\n */\nexport interface PolygonPathOptions extends RoundedCornerPathOptions {\n /** Ordered coordinate pairs describing the path vertices. See {@link PolygonPathOptions}. */\n coords: readonly (readonly [number, number])[];\n}\n\n/**\n * Creates a Canvas Path2D for polygon geometry from validated options.\n *\n * @param options - Ordered polygon vertices and corner rounding settings. See\n * {@link PolygonPathOptions} .\n * @returns A native Canvas path containing the polygon.\n *\n * @see {@link PolygonPathOptions}\n */\nexport function createPolygonPath(\n options: Readonly<PolygonPathOptions>,\n): Path2D {\n const coords = validateCoordinates(options.coords);\n const radii = resolveNumericCornerRadii(coords.length, options);\n if (coords.length < 3) return new Path2D();\n return createRoundedClosedPolygonPath(coords, radii);\n}\n"],
5
+ "mappings": "AAAA,SAAS,gCAAgC,iCAAiC;AAE1E,SAAS,2BAA2B;AAsB7B,SAAS,kBACd,SACQ;AACR,QAAM,SAAS,oBAAoB,QAAQ,MAAM;AACjD,QAAM,QAAQ,0BAA0B,OAAO,QAAQ,OAAO;AAC9D,MAAI,OAAO,SAAS,EAAG,QAAO,IAAI,OAAO;AACzC,SAAO,+BAA+B,QAAQ,KAAK;AACrD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,38 @@
1
+ import { type RoundedCornerPathOptions } from './rounded-corners.js';
2
+ /**
3
+ * Geometry and construction options for a rectangle path.
4
+ *
5
+ * @see {@link RoundedCornerPathOptions}
6
+ * @see {@link createRectanglePath}
7
+ */
8
+ export interface RectanglePathOptions extends RoundedCornerPathOptions {
9
+ /**
10
+ * Horizontal coordinate or displacement in the containing coordinate system. See
11
+ * {@link RectanglePathOptions}.
12
+ */
13
+ x?: number;
14
+ /**
15
+ * Vertical coordinate or displacement in the containing coordinate system. See
16
+ * {@link RectanglePathOptions}.
17
+ */
18
+ y?: number;
19
+ /**
20
+ * Horizontal extent in the units of the containing geometry or surface. See
21
+ * {@link RectanglePathOptions}.
22
+ */
23
+ width: number;
24
+ /**
25
+ * Vertical extent in the units of the containing geometry or surface. See
26
+ * {@link RectanglePathOptions}.
27
+ */
28
+ height: number;
29
+ }
30
+ /**
31
+ * Creates a Canvas Path2D for rectangle geometry from validated options.
32
+ *
33
+ * @param options - Rectangle bounds and corner options. See {@link RectanglePathOptions}.
34
+ * @returns A native Canvas path containing the rectangle.
35
+ *
36
+ * @see {@link RectanglePathOptions}
37
+ */
38
+ export declare function createRectanglePath(options: Readonly<RectanglePathOptions>): Path2D;
@@ -0,0 +1,22 @@
1
+ import {
2
+ resolveNumericCornerRadii
3
+ } from "./rounded-corners.js";
4
+ import { finiteNumber } from "./validation.js";
5
+ function createRectanglePath(options) {
6
+ const x = finiteNumber(options.x ?? 0, "x");
7
+ const y = finiteNumber(options.y ?? 0, "y");
8
+ const width = finiteNumber(options.width, "width");
9
+ const height = finiteNumber(options.height, "height");
10
+ const radii = resolveNumericCornerRadii(4, options);
11
+ const path = new Path2D();
12
+ if (radii.every((radius) => radius === 0)) {
13
+ path.rect(x, y, width, height);
14
+ } else {
15
+ path.roundRect(x, y, width, height, [...radii]);
16
+ }
17
+ return path;
18
+ }
19
+ export {
20
+ createRectanglePath
21
+ };
22
+ //# sourceMappingURL=rectangle.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/geometry/rectangle.ts"],
4
+ "sourcesContent": ["import {\n resolveNumericCornerRadii,\n type RoundedCornerPathOptions,\n} from './rounded-corners.js';\nimport { finiteNumber } from './validation.js';\n\n/**\n * Geometry and construction options for a rectangle path.\n *\n * @see {@link RoundedCornerPathOptions}\n * @see {@link createRectanglePath}\n */\nexport interface RectanglePathOptions extends RoundedCornerPathOptions {\n /**\n * Horizontal coordinate or displacement in the containing coordinate system. See\n * {@link RectanglePathOptions}.\n */\n x?: number;\n /**\n * Vertical coordinate or displacement in the containing coordinate system. See\n * {@link RectanglePathOptions}.\n */\n y?: number;\n /**\n * Horizontal extent in the units of the containing geometry or surface. See\n * {@link RectanglePathOptions}.\n */\n width: number;\n /**\n * Vertical extent in the units of the containing geometry or surface. See\n * {@link RectanglePathOptions}.\n */\n height: number;\n}\n\n/**\n * Creates a Canvas Path2D for rectangle geometry from validated options.\n *\n * @param options - Rectangle bounds and corner options. See {@link RectanglePathOptions}.\n * @returns A native Canvas path containing the rectangle.\n *\n * @see {@link RectanglePathOptions}\n */\nexport function createRectanglePath(\n options: Readonly<RectanglePathOptions>,\n): Path2D {\n const x = finiteNumber(options.x ?? 0, 'x');\n const y = finiteNumber(options.y ?? 0, 'y');\n const width = finiteNumber(options.width, 'width');\n const height = finiteNumber(options.height, 'height');\n const radii = resolveNumericCornerRadii(4, options);\n const path = new Path2D();\n\n if (radii.every(radius => radius === 0)) {\n path.rect(x, y, width, height);\n } else {\n path.roundRect(x, y, width, height, [...radii]);\n }\n\n return path;\n}\n"],
5
+ "mappings": "AAAA;AAAA,EACE;AAAA,OAEK;AACP,SAAS,oBAAoB;AAuCtB,SAAS,oBACd,SACQ;AACR,QAAM,IAAI,aAAa,QAAQ,KAAK,GAAG,GAAG;AAC1C,QAAM,IAAI,aAAa,QAAQ,KAAK,GAAG,GAAG;AAC1C,QAAM,QAAQ,aAAa,QAAQ,OAAO,OAAO;AACjD,QAAM,SAAS,aAAa,QAAQ,QAAQ,QAAQ;AACpD,QAAM,QAAQ,0BAA0B,GAAG,OAAO;AAClD,QAAM,OAAO,IAAI,OAAO;AAExB,MAAI,MAAM,MAAM,YAAU,WAAW,CAAC,GAAG;AACvC,SAAK,KAAK,GAAG,GAAG,OAAO,MAAM;AAAA,EAC/B,OAAO;AACL,SAAK,UAAU,GAAG,GAAG,OAAO,QAAQ,CAAC,GAAG,KAAK,CAAC;AAAA,EAChD;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,88 @@
1
+ import type { LayoutBox } from '../layout/types.js';
2
+ import { type RoundedCornerPathOptions } from './rounded-corners.js';
3
+ import { type GeometryErrorFactory } from './validation.js';
4
+ /**
5
+ * Center, side count, and rotation for a regular polygon path.
6
+ *
7
+ * @see {@link RegularPolygonPathOptions}
8
+ */
9
+ export interface RegularPolygonPathPosition {
10
+ /** Number of sides of the regular polygon. See {@link RegularPolygonPathPosition}. */
11
+ sides: number;
12
+ /** Horizontal coordinate of the center. See {@link RegularPolygonPathPosition}. */
13
+ cx?: number;
14
+ /** Vertical coordinate of the center. See {@link RegularPolygonPathPosition}. */
15
+ cy?: number;
16
+ /** Rotation applied to the containing geometry. See {@link RegularPolygonPathPosition}. */
17
+ rotation?: number;
18
+ }
19
+ /**
20
+ * Exactly one size measure for a regular polygon: circumradius, inradius, or side length.
21
+ *
22
+ * @see {@link RegularPolygonPathOptions}
23
+ */
24
+ export type RegularPolygonNumericSize = {
25
+ /** Distance from the polygon center to a vertex. See {@link RegularPolygonNumericSize}. */
26
+ circumradius: number;
27
+ /**
28
+ * Not accepted in this variant; use the alternative fields instead. See
29
+ * {@link RegularPolygonNumericSize}.
30
+ */
31
+ inradius?: never;
32
+ /**
33
+ * Not accepted in this variant; use the alternative fields instead. See
34
+ * {@link RegularPolygonNumericSize}.
35
+ */
36
+ sideLength?: never;
37
+ } | {
38
+ /**
39
+ * Not accepted in this variant; use the alternative fields instead. See
40
+ * {@link RegularPolygonNumericSize}.
41
+ */
42
+ circumradius?: never;
43
+ /** Distance from the polygon center to an edge. See {@link RegularPolygonNumericSize}. */
44
+ inradius: number;
45
+ /**
46
+ * Not accepted in this variant; use the alternative fields instead. See
47
+ * {@link RegularPolygonNumericSize}.
48
+ */
49
+ sideLength?: never;
50
+ } | {
51
+ /**
52
+ * Not accepted in this variant; use the alternative fields instead. See
53
+ * {@link RegularPolygonNumericSize}.
54
+ */
55
+ circumradius?: never;
56
+ /**
57
+ * Not accepted in this variant; use the alternative fields instead. See
58
+ * {@link RegularPolygonNumericSize}.
59
+ */
60
+ inradius?: never;
61
+ /** Length of one polygon edge. See {@link RegularPolygonNumericSize}. */
62
+ sideLength: number;
63
+ };
64
+ /**
65
+ * Geometry and construction options for a regular polygon path.
66
+ *
67
+ * @see {@link RegularPolygonPathPosition}
68
+ * @see {@link RegularPolygonNumericSize}
69
+ * @see {@link RoundedCornerPathOptions}
70
+ * @see {@link createRegularPolygonPath}
71
+ */
72
+ export type RegularPolygonPathOptions = RegularPolygonPathPosition & RegularPolygonNumericSize & RoundedCornerPathOptions;
73
+ export interface ResolvedRegularPolygonGeometry {
74
+ path: Path2D;
75
+ vertices: readonly (readonly [number, number])[];
76
+ bounds?: LayoutBox;
77
+ }
78
+ export declare function resolveRegularPolygonGeometry(options: Readonly<RegularPolygonPathOptions>, errorFactory?: GeometryErrorFactory): ResolvedRegularPolygonGeometry;
79
+ /**
80
+ * Creates a Canvas Path2D for regular polygon geometry from validated options.
81
+ *
82
+ * @param options - Polygon center, radius, side count, and rotation. See
83
+ * {@link RegularPolygonPathOptions} .
84
+ * @returns A native Canvas path containing the regular polygon.
85
+ *
86
+ * @see {@link RegularPolygonPathOptions}
87
+ */
88
+ export declare function createRegularPolygonPath(options: Readonly<RegularPolygonPathOptions>): Path2D;
@@ -0,0 +1,67 @@
1
+ import { createPolygonPath } from "./polygon.js";
2
+ import {
3
+ resolveNumericCornerRadii
4
+ } from "./rounded-corners.js";
5
+ import {
6
+ finiteNumber,
7
+ integerAtLeast,
8
+ nonnegativeNumber,
9
+ pathRangeError
10
+ } from "./validation.js";
11
+ const SIZE_KEYS = ["circumradius", "inradius", "sideLength"];
12
+ function resolveRegularPolygonGeometry(options, errorFactory = pathRangeError) {
13
+ const sides = integerAtLeast(options.sides, 3, "sides", errorFactory);
14
+ const sizeKeys = SIZE_KEYS.filter((key) => options[key] !== void 0);
15
+ if (sizeKeys.length !== 1) {
16
+ throw errorFactory(
17
+ "circumradius|inradius|sideLength",
18
+ options,
19
+ "must provide exactly one size option"
20
+ );
21
+ }
22
+ const sizeKind = sizeKeys[0];
23
+ const size = nonnegativeNumber(options[sizeKind], sizeKind, errorFactory);
24
+ const cx = finiteNumber(options.cx ?? 0, "cx", errorFactory);
25
+ const cy = finiteNumber(options.cy ?? 0, "cy", errorFactory);
26
+ const rotation = finiteNumber(
27
+ options.rotation ?? -Math.PI / 2,
28
+ "rotation",
29
+ errorFactory
30
+ );
31
+ const radii = resolveNumericCornerRadii(sides, options, errorFactory);
32
+ const circumradius = sizeKind === "circumradius" ? size : sizeKind === "inradius" ? size / Math.cos(Math.PI / sides) : size / (2 * Math.sin(Math.PI / sides));
33
+ let left = Number.POSITIVE_INFINITY;
34
+ let right = Number.NEGATIVE_INFINITY;
35
+ let top = Number.POSITIVE_INFINITY;
36
+ let bottom = Number.NEGATIVE_INFINITY;
37
+ const vertices = Array.from({ length: sides }, (_, index) => {
38
+ const angle = rotation + index * Math.PI * 2 / sides;
39
+ const vertex = [
40
+ cx + circumradius * Math.cos(angle),
41
+ cy + circumradius * Math.sin(angle)
42
+ ];
43
+ left = Math.min(left, vertex[0]);
44
+ right = Math.max(right, vertex[0]);
45
+ top = Math.min(top, vertex[1]);
46
+ bottom = Math.max(bottom, vertex[1]);
47
+ return vertex;
48
+ });
49
+ return {
50
+ path: circumradius === 0 ? new Path2D() : createPolygonPath({ coords: vertices, cornerRadii: radii }),
51
+ vertices,
52
+ bounds: {
53
+ x: left,
54
+ y: top,
55
+ width: right - left,
56
+ height: bottom - top
57
+ }
58
+ };
59
+ }
60
+ function createRegularPolygonPath(options) {
61
+ return resolveRegularPolygonGeometry(options).path;
62
+ }
63
+ export {
64
+ createRegularPolygonPath,
65
+ resolveRegularPolygonGeometry
66
+ };
67
+ //# sourceMappingURL=regular-polygon.js.map