@pibbl/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1069) hide show
  1. package/LICENSE.txt +19 -0
  2. package/README.md +76 -0
  3. package/THIRD_PARTY_NOTICES.txt +205 -0
  4. package/dist/features/particles/index.d.ts +7 -0
  5. package/dist/features/particles/index.js +26 -0
  6. package/dist/features/particles/index.js.map +7 -0
  7. package/dist/features/particles/index.mjs +1 -0
  8. package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
  9. package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
  10. package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
  11. package/dist/features/particles/lib/canvas/component.d.ts +14 -0
  12. package/dist/features/particles/lib/canvas/component.js +249 -0
  13. package/dist/features/particles/lib/canvas/component.js.map +7 -0
  14. package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
  15. package/dist/features/particles/lib/canvas/executor.js +537 -0
  16. package/dist/features/particles/lib/canvas/executor.js.map +7 -0
  17. package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
  18. package/dist/features/particles/lib/canvas/primitive.js +50 -0
  19. package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
  20. package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
  21. package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
  22. package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
  23. package/dist/features/particles/lib/color.d.ts +7 -0
  24. package/dist/features/particles/lib/color.js +159 -0
  25. package/dist/features/particles/lib/color.js.map +7 -0
  26. package/dist/features/particles/lib/compiler.d.ts +134 -0
  27. package/dist/features/particles/lib/compiler.js +443 -0
  28. package/dist/features/particles/lib/compiler.js.map +7 -0
  29. package/dist/features/particles/lib/curve.d.ts +19 -0
  30. package/dist/features/particles/lib/curve.js +129 -0
  31. package/dist/features/particles/lib/curve.js.map +7 -0
  32. package/dist/features/particles/lib/definition-records.d.ts +58 -0
  33. package/dist/features/particles/lib/definition-records.js +500 -0
  34. package/dist/features/particles/lib/definition-records.js.map +7 -0
  35. package/dist/features/particles/lib/definition.d.ts +18 -0
  36. package/dist/features/particles/lib/definition.js +602 -0
  37. package/dist/features/particles/lib/definition.js.map +7 -0
  38. package/dist/features/particles/lib/emission.d.ts +54 -0
  39. package/dist/features/particles/lib/emission.js +184 -0
  40. package/dist/features/particles/lib/emission.js.map +7 -0
  41. package/dist/features/particles/lib/flow/field.d.ts +81 -0
  42. package/dist/features/particles/lib/flow/field.js +585 -0
  43. package/dist/features/particles/lib/flow/field.js.map +7 -0
  44. package/dist/features/particles/lib/flow/hook.d.ts +158 -0
  45. package/dist/features/particles/lib/flow/hook.js +215 -0
  46. package/dist/features/particles/lib/flow/hook.js.map +7 -0
  47. package/dist/features/particles/lib/flow/population.d.ts +25 -0
  48. package/dist/features/particles/lib/flow/population.js +104 -0
  49. package/dist/features/particles/lib/flow/population.js.map +7 -0
  50. package/dist/features/particles/lib/particle.d.ts +113 -0
  51. package/dist/features/particles/lib/particle.js +192 -0
  52. package/dist/features/particles/lib/particle.js.map +7 -0
  53. package/dist/features/particles/lib/random.d.ts +16 -0
  54. package/dist/features/particles/lib/random.js +61 -0
  55. package/dist/features/particles/lib/random.js.map +7 -0
  56. package/dist/features/particles/lib/sample.d.ts +32 -0
  57. package/dist/features/particles/lib/sample.js +397 -0
  58. package/dist/features/particles/lib/sample.js.map +7 -0
  59. package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
  60. package/dist/features/particles/lib/signal-inputs.js +41 -0
  61. package/dist/features/particles/lib/signal-inputs.js.map +7 -0
  62. package/dist/features/particles/lib/system/binding.d.ts +59 -0
  63. package/dist/features/particles/lib/system/binding.js +122 -0
  64. package/dist/features/particles/lib/system/binding.js.map +7 -0
  65. package/dist/features/particles/lib/system/controller.d.ts +58 -0
  66. package/dist/features/particles/lib/system/controller.js +1446 -0
  67. package/dist/features/particles/lib/system/controller.js.map +7 -0
  68. package/dist/features/particles/lib/system/hook.d.ts +13 -0
  69. package/dist/features/particles/lib/system/hook.js +52 -0
  70. package/dist/features/particles/lib/system/hook.js.map +7 -0
  71. package/dist/features/particles/lib/system/ownership.d.ts +26 -0
  72. package/dist/features/particles/lib/system/ownership.js +128 -0
  73. package/dist/features/particles/lib/system/ownership.js.map +7 -0
  74. package/dist/features/particles/lib/types.d.ts +983 -0
  75. package/dist/features/physics/2d-geometry.d.ts +216 -0
  76. package/dist/features/physics/2d-geometry.js +59 -0
  77. package/dist/features/physics/2d-geometry.js.map +7 -0
  78. package/dist/features/physics/2d-geometry.mjs +1 -0
  79. package/dist/features/physics/2d-testing.d.ts +80 -0
  80. package/dist/features/physics/2d-testing.js +141 -0
  81. package/dist/features/physics/2d-testing.js.map +7 -0
  82. package/dist/features/physics/2d-testing.mjs +1 -0
  83. package/dist/features/physics/2d.d.ts +165 -0
  84. package/dist/features/physics/2d.js +119 -0
  85. package/dist/features/physics/2d.js.map +7 -0
  86. package/dist/features/physics/2d.mjs +1 -0
  87. package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
  88. package/dist/features/physics/lib/2d/canvas/components.js +212 -0
  89. package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
  90. package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
  91. package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
  92. package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
  93. package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
  94. package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
  95. package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
  96. package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
  97. package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
  98. package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
  99. package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
  100. package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
  101. package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
  102. package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
  103. package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
  104. package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
  105. package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
  106. package/dist/features/physics/lib/2d/collision/casts.js +631 -0
  107. package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
  108. package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
  109. package/dist/features/physics/lib/2d/collision/epa.js +102 -0
  110. package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
  111. package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
  112. package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
  113. package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
  114. package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
  115. package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
  116. package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
  117. package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
  118. package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
  119. package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
  120. package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
  121. package/dist/features/physics/lib/2d/collision/support.js +155 -0
  122. package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
  123. package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
  124. package/dist/features/physics/lib/2d/math.d.ts +27 -0
  125. package/dist/features/physics/lib/2d/math.js +314 -0
  126. package/dist/features/physics/lib/2d/math.js.map +7 -0
  127. package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
  128. package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
  129. package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
  130. package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
  131. package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
  132. package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
  133. package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
  134. package/dist/features/physics/lib/2d/runtime/context.js +57 -0
  135. package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
  136. package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
  137. package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
  138. package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
  139. package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
  140. package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
  141. package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
  142. package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
  143. package/dist/features/physics/lib/2d/runtime/events.js +153 -0
  144. package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
  145. package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
  146. package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
  147. package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
  148. package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
  149. package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
  150. package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
  151. package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
  152. package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
  153. package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
  154. package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
  155. package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
  156. package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
  157. package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
  158. package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
  159. package/dist/features/physics/lib/2d/shape-records.js +26 -0
  160. package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
  161. package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
  162. package/dist/features/physics/lib/2d/shapes.js +543 -0
  163. package/dist/features/physics/lib/2d/shapes.js.map +7 -0
  164. package/dist/features/physics/lib/2d/types.d.ts +713 -0
  165. package/dist/features/physics/lib/2d/types.js +1 -0
  166. package/dist/features/physics/lib/2d/types.js.map +7 -0
  167. package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
  168. package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
  169. package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
  170. package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
  171. package/dist/features/physics/lib/2d/world/ccd.js +265 -0
  172. package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
  173. package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
  174. package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
  175. package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
  176. package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
  177. package/dist/features/physics/lib/2d/world/integrator.js +99 -0
  178. package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
  179. package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
  180. package/dist/features/physics/lib/2d/world/queries.js +424 -0
  181. package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
  182. package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
  183. package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
  184. package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
  185. package/dist/features/physics/lib/2d/world/rapier.js +655 -0
  186. package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
  187. package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
  188. package/dist/features/physics/lib/2d/world/solver.js +660 -0
  189. package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
  190. package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
  191. package/dist/features/physics/lib/2d/world/storage.js +371 -0
  192. package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
  193. package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
  194. package/dist/features/physics/lib/2d/world/world.js +1713 -0
  195. package/dist/features/physics/lib/2d/world/world.js.map +7 -0
  196. package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
  197. package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
  198. package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
  199. package/dist/features/physics/lib/shared/validation.d.ts +5 -0
  200. package/dist/features/physics/lib/shared/validation.js +48 -0
  201. package/dist/features/physics/lib/shared/validation.js.map +7 -0
  202. package/dist/features/sprites/formats/aseprite.js +23 -0
  203. package/dist/features/sprites/formats/aseprite.js.map +7 -0
  204. package/dist/features/sprites/formats/aseprite.mjs +1 -0
  205. package/dist/features/sprites/formats/texture-packer.js +14 -0
  206. package/dist/features/sprites/formats/texture-packer.js.map +7 -0
  207. package/dist/features/sprites/formats/texture-packer.mjs +1 -0
  208. package/dist/features/sprites/index.js +9 -0
  209. package/dist/features/sprites/index.js.map +7 -0
  210. package/dist/features/sprites/index.mjs +1 -0
  211. package/dist/features/sprites/loader.js +63 -0
  212. package/dist/features/sprites/loader.js.map +7 -0
  213. package/dist/features/sprites/model.js +64 -0
  214. package/dist/features/sprites/model.js.map +7 -0
  215. package/dist/features/sprites/sprite.js +31 -0
  216. package/dist/features/sprites/sprite.js.map +7 -0
  217. package/dist/features/textures/index.d.ts +22 -0
  218. package/dist/features/textures/index.js +31 -0
  219. package/dist/features/textures/index.js.map +7 -0
  220. package/dist/features/textures/index.mjs +1 -0
  221. package/dist/features/textures/lib/definitions.d.ts +117 -0
  222. package/dist/features/textures/lib/definitions.js +179 -0
  223. package/dist/features/textures/lib/definitions.js.map +7 -0
  224. package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
  225. package/dist/features/textures/lib/electric-boundary.js +11 -0
  226. package/dist/features/textures/lib/electric-boundary.js.map +7 -0
  227. package/dist/features/textures/lib/electric-shared.d.ts +69 -0
  228. package/dist/features/textures/lib/electric-shared.js +43 -0
  229. package/dist/features/textures/lib/electric-shared.js.map +7 -0
  230. package/dist/features/textures/lib/electric-sources.d.ts +50 -0
  231. package/dist/features/textures/lib/electric-sources.js +43 -0
  232. package/dist/features/textures/lib/electric-sources.js.map +7 -0
  233. package/dist/features/textures/lib/lightning.d.ts +72 -0
  234. package/dist/features/textures/lib/lightning.js +139 -0
  235. package/dist/features/textures/lib/lightning.js.map +7 -0
  236. package/dist/features/textures/lib/material-field.d.ts +12 -0
  237. package/dist/features/textures/lib/material-field.js +31 -0
  238. package/dist/features/textures/lib/material-field.js.map +7 -0
  239. package/dist/features/textures/lib/palette.d.ts +45 -0
  240. package/dist/features/textures/lib/palette.js +52 -0
  241. package/dist/features/textures/lib/palette.js.map +7 -0
  242. package/dist/features/textures/lib/presentation.d.ts +54 -0
  243. package/dist/features/textures/lib/presentation.js +83 -0
  244. package/dist/features/textures/lib/presentation.js.map +7 -0
  245. package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
  246. package/dist/features/textures/lib/procedural-texture.js +110 -0
  247. package/dist/features/textures/lib/procedural-texture.js.map +7 -0
  248. package/dist/features/textures/lib/rain-drops.d.ts +96 -0
  249. package/dist/features/textures/lib/rain-drops.js +322 -0
  250. package/dist/features/textures/lib/rain-drops.js.map +7 -0
  251. package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
  252. package/dist/features/textures/lib/reaction-diffusion.js +210 -0
  253. package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
  254. package/dist/features/textures/lib/simulation.d.ts +16 -0
  255. package/dist/features/textures/lib/simulation.js +85 -0
  256. package/dist/features/textures/lib/simulation.js.map +7 -0
  257. package/dist/features/textures/lib/tendrils.d.ts +57 -0
  258. package/dist/features/textures/lib/tendrils.js +216 -0
  259. package/dist/features/textures/lib/tendrils.js.map +7 -0
  260. package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
  261. package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
  262. package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
  263. package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
  264. package/dist/features/textures/lib/wasm/electric.js +299 -0
  265. package/dist/features/textures/lib/wasm/electric.js.map +7 -0
  266. package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
  267. package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
  268. package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
  269. package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
  270. package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
  271. package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
  272. package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
  273. package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
  274. package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
  275. package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
  276. package/dist/features/textures/lib/wasm/memory.js +103 -0
  277. package/dist/features/textures/lib/wasm/memory.js.map +7 -0
  278. package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
  279. package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
  280. package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
  281. package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
  282. package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
  283. package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
  284. package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
  285. package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
  286. package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
  287. package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
  288. package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
  289. package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
  290. package/dist/features/textures/lib/water-surface.d.ts +92 -0
  291. package/dist/features/textures/lib/water-surface.js +378 -0
  292. package/dist/features/textures/lib/water-surface.js.map +7 -0
  293. package/dist/features/textures/lib/water-waves.d.ts +60 -0
  294. package/dist/features/textures/lib/water-waves.js +154 -0
  295. package/dist/features/textures/lib/water-waves.js.map +7 -0
  296. package/dist/features/viz/index.d.ts +28 -0
  297. package/dist/features/viz/index.js +45 -0
  298. package/dist/features/viz/index.js.map +7 -0
  299. package/dist/features/viz/index.mjs +1 -0
  300. package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
  301. package/dist/features/viz/lib/anchored-layout.js +166 -0
  302. package/dist/features/viz/lib/anchored-layout.js.map +7 -0
  303. package/dist/features/viz/lib/axis.d.ts +10 -0
  304. package/dist/features/viz/lib/axis.js +116 -0
  305. package/dist/features/viz/lib/axis.js.map +7 -0
  306. package/dist/features/viz/lib/band-scale.d.ts +3 -0
  307. package/dist/features/viz/lib/band-scale.js +57 -0
  308. package/dist/features/viz/lib/band-scale.js.map +7 -0
  309. package/dist/features/viz/lib/bar-fill.d.ts +16 -0
  310. package/dist/features/viz/lib/bar-fill.js +53 -0
  311. package/dist/features/viz/lib/bar-fill.js.map +7 -0
  312. package/dist/features/viz/lib/bar-series.d.ts +150 -0
  313. package/dist/features/viz/lib/bar-series.js +152 -0
  314. package/dist/features/viz/lib/bar-series.js.map +7 -0
  315. package/dist/features/viz/lib/hover-card.d.ts +92 -0
  316. package/dist/features/viz/lib/hover-card.js +146 -0
  317. package/dist/features/viz/lib/hover-card.js.map +7 -0
  318. package/dist/features/viz/lib/hover-data.d.ts +12 -0
  319. package/dist/features/viz/lib/hover-data.js +50 -0
  320. package/dist/features/viz/lib/hover-data.js.map +7 -0
  321. package/dist/features/viz/lib/hover-placement.d.ts +46 -0
  322. package/dist/features/viz/lib/hover-placement.js +51 -0
  323. package/dist/features/viz/lib/hover-placement.js.map +7 -0
  324. package/dist/features/viz/lib/hover-queries.d.ts +60 -0
  325. package/dist/features/viz/lib/hover-queries.js +185 -0
  326. package/dist/features/viz/lib/hover-queries.js.map +7 -0
  327. package/dist/features/viz/lib/hover-types.d.ts +277 -0
  328. package/dist/features/viz/lib/layout-pie.d.ts +13 -0
  329. package/dist/features/viz/lib/layout-pie.js +159 -0
  330. package/dist/features/viz/lib/layout-pie.js.map +7 -0
  331. package/dist/features/viz/lib/line-series.d.ts +11 -0
  332. package/dist/features/viz/lib/line-series.js +89 -0
  333. package/dist/features/viz/lib/line-series.js.map +7 -0
  334. package/dist/features/viz/lib/linear-scale.d.ts +3 -0
  335. package/dist/features/viz/lib/linear-scale.js +70 -0
  336. package/dist/features/viz/lib/linear-scale.js.map +7 -0
  337. package/dist/features/viz/lib/nearest.d.ts +82 -0
  338. package/dist/features/viz/lib/nearest.js +51 -0
  339. package/dist/features/viz/lib/nearest.js.map +7 -0
  340. package/dist/features/viz/lib/paint.d.ts +2 -0
  341. package/dist/features/viz/lib/paint.js +17 -0
  342. package/dist/features/viz/lib/paint.js.map +7 -0
  343. package/dist/features/viz/lib/pie-layout.d.ts +31 -0
  344. package/dist/features/viz/lib/pie-layout.js +324 -0
  345. package/dist/features/viz/lib/pie-layout.js.map +7 -0
  346. package/dist/features/viz/lib/pie-slices.d.ts +51 -0
  347. package/dist/features/viz/lib/pie-slices.js +50 -0
  348. package/dist/features/viz/lib/pie-slices.js.map +7 -0
  349. package/dist/features/viz/lib/pie-types.d.ts +215 -0
  350. package/dist/features/viz/lib/plot-series.d.ts +13 -0
  351. package/dist/features/viz/lib/plot-series.js +53 -0
  352. package/dist/features/viz/lib/plot-series.js.map +7 -0
  353. package/dist/features/viz/lib/plot-types.d.ts +63 -0
  354. package/dist/features/viz/lib/point-data.d.ts +5 -0
  355. package/dist/features/viz/lib/point-data.js +17 -0
  356. package/dist/features/viz/lib/point-data.js.map +7 -0
  357. package/dist/features/viz/lib/point-geometry.d.ts +2 -0
  358. package/dist/features/viz/lib/point-geometry.js +24 -0
  359. package/dist/features/viz/lib/point-geometry.js.map +7 -0
  360. package/dist/features/viz/lib/point-series.d.ts +11 -0
  361. package/dist/features/viz/lib/point-series.js +118 -0
  362. package/dist/features/viz/lib/point-series.js.map +7 -0
  363. package/dist/features/viz/lib/point-types.d.ts +94 -0
  364. package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
  365. package/dist/features/viz/lib/scale-adjust.js +25 -0
  366. package/dist/features/viz/lib/scale-adjust.js.map +7 -0
  367. package/dist/features/viz/lib/scale-context.d.ts +8 -0
  368. package/dist/features/viz/lib/scale-context.js +61 -0
  369. package/dist/features/viz/lib/scale-context.js.map +7 -0
  370. package/dist/features/viz/lib/scale.d.ts +11 -0
  371. package/dist/features/viz/lib/scale.js +80 -0
  372. package/dist/features/viz/lib/scale.js.map +7 -0
  373. package/dist/features/viz/lib/types.d.ts +414 -0
  374. package/dist/features/viz/lib/use-scale.d.ts +20 -0
  375. package/dist/features/viz/lib/use-scale.js +10 -0
  376. package/dist/features/viz/lib/use-scale.js.map +7 -0
  377. package/dist/filters/displacement-gpu.d.ts +38 -0
  378. package/dist/filters/displacement-gpu.js +243 -0
  379. package/dist/filters/displacement-gpu.js.map +7 -0
  380. package/dist/filters/displacement-math.d.ts +5 -0
  381. package/dist/filters/displacement-math.js +22 -0
  382. package/dist/filters/displacement-math.js.map +7 -0
  383. package/dist/filters/displacement.d.ts +13 -0
  384. package/dist/filters/displacement.js +65 -0
  385. package/dist/filters/displacement.js.map +7 -0
  386. package/dist/filters/filter-executor.d.ts +21 -0
  387. package/dist/filters/filter-executor.js +120 -0
  388. package/dist/filters/filter-executor.js.map +7 -0
  389. package/dist/filters/native-canvas-filter.d.ts +4 -0
  390. package/dist/filters/native-canvas-filter.js +105 -0
  391. package/dist/filters/native-canvas-filter.js.map +7 -0
  392. package/dist/filters/native-color.d.ts +2 -0
  393. package/dist/filters/native-color.js +200 -0
  394. package/dist/filters/native-color.js.map +7 -0
  395. package/dist/filters/native-operations.d.ts +8 -0
  396. package/dist/filters/native-operations.js +7 -0
  397. package/dist/filters/native-operations.js.map +7 -0
  398. package/dist/filters/native.d.ts +113 -0
  399. package/dist/filters/native.js +115 -0
  400. package/dist/filters/native.js.map +7 -0
  401. package/dist/filters/reflected-light.d.ts +12 -0
  402. package/dist/filters/reflected-light.js +93 -0
  403. package/dist/filters/reflected-light.js.map +7 -0
  404. package/dist/filters/reflection-gpu.d.ts +58 -0
  405. package/dist/filters/reflection-gpu.js +266 -0
  406. package/dist/filters/reflection-gpu.js.map +7 -0
  407. package/dist/filters/render-displacement-boundary.d.ts +12 -0
  408. package/dist/filters/render-displacement-boundary.js +116 -0
  409. package/dist/filters/render-displacement-boundary.js.map +7 -0
  410. package/dist/filters/render-reflection-boundary.d.ts +15 -0
  411. package/dist/filters/render-reflection-boundary.js +127 -0
  412. package/dist/filters/render-reflection-boundary.js.map +7 -0
  413. package/dist/filters.d.ts +5 -0
  414. package/dist/filters.js +29 -0
  415. package/dist/filters.js.map +7 -0
  416. package/dist/filters.mjs +1 -0
  417. package/dist/index.d.ts +111 -0
  418. package/dist/index.js +300 -0
  419. package/dist/index.js.map +7 -0
  420. package/dist/index.mjs +1 -0
  421. package/dist/internal.d.ts +160 -0
  422. package/dist/internal.js +320 -0
  423. package/dist/internal.js.map +7 -0
  424. package/dist/internal.mjs +1 -0
  425. package/dist/jsx-dev-runtime.d.ts +35 -0
  426. package/dist/jsx-dev-runtime.js +6 -0
  427. package/dist/jsx-dev-runtime.js.map +7 -0
  428. package/dist/jsx-dev-runtime.mjs +1 -0
  429. package/dist/jsx-runtime.d.ts +35 -0
  430. package/dist/jsx-runtime.js +7 -0
  431. package/dist/jsx-runtime.js.map +7 -0
  432. package/dist/jsx-runtime.mjs +1 -0
  433. package/dist/lib/animation/definition.d.ts +140 -0
  434. package/dist/lib/animation/definition.js +605 -0
  435. package/dist/lib/animation/definition.js.map +7 -0
  436. package/dist/lib/animation/easing.d.ts +55 -0
  437. package/dist/lib/animation/easing.js +112 -0
  438. package/dist/lib/animation/easing.js.map +7 -0
  439. package/dist/lib/animation/evaluate.d.ts +118 -0
  440. package/dist/lib/animation/evaluate.js +2398 -0
  441. package/dist/lib/animation/evaluate.js.map +7 -0
  442. package/dist/lib/animation/playback.d.ts +30 -0
  443. package/dist/lib/animation/playback.js +932 -0
  444. package/dist/lib/animation/playback.js.map +7 -0
  445. package/dist/lib/animation/program.d.ts +145 -0
  446. package/dist/lib/animation/program.js +741 -0
  447. package/dist/lib/animation/program.js.map +7 -0
  448. package/dist/lib/animation/spring.d.ts +30 -0
  449. package/dist/lib/animation/spring.js +324 -0
  450. package/dist/lib/animation/spring.js.map +7 -0
  451. package/dist/lib/animation/types.d.ts +418 -0
  452. package/dist/lib/animation/writer-leases.d.ts +47 -0
  453. package/dist/lib/animation/writer-leases.js +314 -0
  454. package/dist/lib/animation/writer-leases.js.map +7 -0
  455. package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
  456. package/dist/lib/backend/canvas-2d-backend.js +97 -0
  457. package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
  458. package/dist/lib/backend/types.d.ts +309 -0
  459. package/dist/lib/backend/types.js +26 -0
  460. package/dist/lib/backend/types.js.map +7 -0
  461. package/dist/lib/components/arc-geometry.d.ts +4 -0
  462. package/dist/lib/components/arc-geometry.js +46 -0
  463. package/dist/lib/components/arc-geometry.js.map +7 -0
  464. package/dist/lib/components/arc.d.ts +55 -0
  465. package/dist/lib/components/arc.js +91 -0
  466. package/dist/lib/components/arc.js.map +7 -0
  467. package/dist/lib/components/circle.d.ts +49 -0
  468. package/dist/lib/components/circle.js +46 -0
  469. package/dist/lib/components/circle.js.map +7 -0
  470. package/dist/lib/components/clip.d.ts +43 -0
  471. package/dist/lib/components/clip.js +24 -0
  472. package/dist/lib/components/clip.js.map +7 -0
  473. package/dist/lib/components/ellipse.d.ts +53 -0
  474. package/dist/lib/components/ellipse.js +59 -0
  475. package/dist/lib/components/ellipse.js.map +7 -0
  476. package/dist/lib/components/g.d.ts +56 -0
  477. package/dist/lib/components/g.js +24 -0
  478. package/dist/lib/components/g.js.map +7 -0
  479. package/dist/lib/components/horizontal-line.d.ts +56 -0
  480. package/dist/lib/components/horizontal-line.js +71 -0
  481. package/dist/lib/components/horizontal-line.js.map +7 -0
  482. package/dist/lib/components/html-box.d.ts +16 -0
  483. package/dist/lib/components/html-box.js +57 -0
  484. package/dist/lib/components/html-box.js.map +7 -0
  485. package/dist/lib/components/img.d.ts +24 -0
  486. package/dist/lib/components/img.js +150 -0
  487. package/dist/lib/components/img.js.map +7 -0
  488. package/dist/lib/components/layer-node-equality.d.ts +65 -0
  489. package/dist/lib/components/layer-node-equality.js +91 -0
  490. package/dist/lib/components/layer-node-equality.js.map +7 -0
  491. package/dist/lib/components/layer.d.ts +34 -0
  492. package/dist/lib/components/layer.js +172 -0
  493. package/dist/lib/components/layer.js.map +7 -0
  494. package/dist/lib/components/line.d.ts +51 -0
  495. package/dist/lib/components/line.js +76 -0
  496. package/dist/lib/components/line.js.map +7 -0
  497. package/dist/lib/components/path.d.ts +28 -0
  498. package/dist/lib/components/path.js +47 -0
  499. package/dist/lib/components/path.js.map +7 -0
  500. package/dist/lib/components/polygon.d.ts +45 -0
  501. package/dist/lib/components/polygon.js +93 -0
  502. package/dist/lib/components/polygon.js.map +7 -0
  503. package/dist/lib/components/rect.d.ts +24 -0
  504. package/dist/lib/components/rect.js +83 -0
  505. package/dist/lib/components/rect.js.map +7 -0
  506. package/dist/lib/components/regular-polygon.d.ts +102 -0
  507. package/dist/lib/components/regular-polygon.js +112 -0
  508. package/dist/lib/components/regular-polygon.js.map +7 -0
  509. package/dist/lib/components/rounded-corner-style.d.ts +7 -0
  510. package/dist/lib/components/rounded-corner-style.js +40 -0
  511. package/dist/lib/components/rounded-corner-style.js.map +7 -0
  512. package/dist/lib/components/shape-style.d.ts +7 -0
  513. package/dist/lib/components/shape-style.js +52 -0
  514. package/dist/lib/components/shape-style.js.map +7 -0
  515. package/dist/lib/components/star.d.ts +56 -0
  516. package/dist/lib/components/star.js +98 -0
  517. package/dist/lib/components/star.js.map +7 -0
  518. package/dist/lib/components/structural-events.d.ts +10 -0
  519. package/dist/lib/components/structural-events.js +8 -0
  520. package/dist/lib/components/structural-events.js.map +7 -0
  521. package/dist/lib/components/svg-path.d.ts +23 -0
  522. package/dist/lib/components/svg-path.js +25 -0
  523. package/dist/lib/components/svg-path.js.map +7 -0
  524. package/dist/lib/components/text-layout.d.ts +31 -0
  525. package/dist/lib/components/text-layout.js +139 -0
  526. package/dist/lib/components/text-layout.js.map +7 -0
  527. package/dist/lib/components/text.d.ts +29 -0
  528. package/dist/lib/components/text.js +174 -0
  529. package/dist/lib/components/text.js.map +7 -0
  530. package/dist/lib/components/vertical-line.d.ts +57 -0
  531. package/dist/lib/components/vertical-line.js +71 -0
  532. package/dist/lib/components/vertical-line.js.map +7 -0
  533. package/dist/lib/components/wedge.d.ts +55 -0
  534. package/dist/lib/components/wedge.js +93 -0
  535. package/dist/lib/components/wedge.js.map +7 -0
  536. package/dist/lib/define-primitive.d.ts +82 -0
  537. package/dist/lib/define-primitive.js +85 -0
  538. package/dist/lib/define-primitive.js.map +7 -0
  539. package/dist/lib/development.d.ts +2 -0
  540. package/dist/lib/development.js +5 -0
  541. package/dist/lib/development.js.map +7 -0
  542. package/dist/lib/element/children.d.ts +16 -0
  543. package/dist/lib/element/children.js +333 -0
  544. package/dist/lib/element/children.js.map +7 -0
  545. package/dist/lib/element/create-element.d.ts +34 -0
  546. package/dist/lib/element/create-element.js +75 -0
  547. package/dist/lib/element/create-element.js.map +7 -0
  548. package/dist/lib/element/fragment.d.ts +15 -0
  549. package/dist/lib/element/fragment.js +11 -0
  550. package/dist/lib/element/fragment.js.map +7 -0
  551. package/dist/lib/element/jsx-runtime.d.ts +48 -0
  552. package/dist/lib/element/jsx-runtime.js +16 -0
  553. package/dist/lib/element/jsx-runtime.js.map +7 -0
  554. package/dist/lib/element/metadata.d.ts +96 -0
  555. package/dist/lib/element/metadata.js +160 -0
  556. package/dist/lib/element/metadata.js.map +7 -0
  557. package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
  558. package/dist/lib/element/resolve-primitive-inputs.js +83 -0
  559. package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
  560. package/dist/lib/element/types.d.ts +123 -0
  561. package/dist/lib/element-enhancers.d.ts +134 -0
  562. package/dist/lib/element-enhancers.js +193 -0
  563. package/dist/lib/element-enhancers.js.map +7 -0
  564. package/dist/lib/events/adapters/clipboard.d.ts +9 -0
  565. package/dist/lib/events/adapters/clipboard.js +23 -0
  566. package/dist/lib/events/adapters/clipboard.js.map +7 -0
  567. package/dist/lib/events/adapters/drag.d.ts +12 -0
  568. package/dist/lib/events/adapters/drag.js +29 -0
  569. package/dist/lib/events/adapters/drag.js.map +7 -0
  570. package/dist/lib/events/adapters/editing.d.ts +15 -0
  571. package/dist/lib/events/adapters/editing.js +41 -0
  572. package/dist/lib/events/adapters/editing.js.map +7 -0
  573. package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
  574. package/dist/lib/events/adapters/keyboard-focus.js +36 -0
  575. package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
  576. package/dist/lib/events/adapters/mouse.d.ts +17 -0
  577. package/dist/lib/events/adapters/mouse.js +32 -0
  578. package/dist/lib/events/adapters/mouse.js.map +7 -0
  579. package/dist/lib/events/adapters/pointer.d.ts +19 -0
  580. package/dist/lib/events/adapters/pointer.js +40 -0
  581. package/dist/lib/events/adapters/pointer.js.map +7 -0
  582. package/dist/lib/events/adapters/touch.d.ts +16 -0
  583. package/dist/lib/events/adapters/touch.js +36 -0
  584. package/dist/lib/events/adapters/touch.js.map +7 -0
  585. package/dist/lib/events/adapters/wheel.d.ts +10 -0
  586. package/dist/lib/events/adapters/wheel.js +16 -0
  587. package/dist/lib/events/adapters/wheel.js.map +7 -0
  588. package/dist/lib/events/boundary-transitions.d.ts +9 -0
  589. package/dist/lib/events/boundary-transitions.js +16 -0
  590. package/dist/lib/events/boundary-transitions.js.map +7 -0
  591. package/dist/lib/events/dispatch.d.ts +21 -0
  592. package/dist/lib/events/dispatch.js +1078 -0
  593. package/dist/lib/events/dispatch.js.map +7 -0
  594. package/dist/lib/events/event-definitions.d.ts +23 -0
  595. package/dist/lib/events/event-definitions.js +74 -0
  596. package/dist/lib/events/event-definitions.js.map +7 -0
  597. package/dist/lib/events/event-facade.d.ts +19 -0
  598. package/dist/lib/events/event-facade.js +188 -0
  599. package/dist/lib/events/event-facade.js.map +7 -0
  600. package/dist/lib/events/event-path.d.ts +3 -0
  601. package/dist/lib/events/event-path.js +43 -0
  602. package/dist/lib/events/event-path.js.map +7 -0
  603. package/dist/lib/events/hit-test.d.ts +13 -0
  604. package/dist/lib/events/hit-test.js +135 -0
  605. package/dist/lib/events/hit-test.js.map +7 -0
  606. package/dist/lib/events/native-listener-hub.d.ts +10 -0
  607. package/dist/lib/events/native-listener-hub.js +72 -0
  608. package/dist/lib/events/native-listener-hub.js.map +7 -0
  609. package/dist/lib/events/paint-entry.d.ts +66 -0
  610. package/dist/lib/events/paint-entry.js +30 -0
  611. package/dist/lib/events/paint-entry.js.map +7 -0
  612. package/dist/lib/events/pointer-capture.d.ts +23 -0
  613. package/dist/lib/events/pointer-capture.js +339 -0
  614. package/dist/lib/events/pointer-capture.js.map +7 -0
  615. package/dist/lib/events/propagation.d.ts +7 -0
  616. package/dist/lib/events/propagation.js +56 -0
  617. package/dist/lib/events/propagation.js.map +7 -0
  618. package/dist/lib/events/registrations.d.ts +120 -0
  619. package/dist/lib/events/registrations.js +397 -0
  620. package/dist/lib/events/registrations.js.map +7 -0
  621. package/dist/lib/events/resolver-input.d.ts +25 -0
  622. package/dist/lib/events/resolver-input.js +62 -0
  623. package/dist/lib/events/resolver-input.js.map +7 -0
  624. package/dist/lib/events/types.d.ts +596 -0
  625. package/dist/lib/execute-render.d.ts +9 -0
  626. package/dist/lib/execute-render.js +195 -0
  627. package/dist/lib/execute-render.js.map +7 -0
  628. package/dist/lib/filter/canvas-state.d.ts +2 -0
  629. package/dist/lib/filter/canvas-state.js +31 -0
  630. package/dist/lib/filter/canvas-state.js.map +7 -0
  631. package/dist/lib/filter/filter-region.d.ts +33 -0
  632. package/dist/lib/filter/filter-region.js +291 -0
  633. package/dist/lib/filter/filter-region.js.map +7 -0
  634. package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
  635. package/dist/lib/filter/filter-surface-pool.js +252 -0
  636. package/dist/lib/filter/filter-surface-pool.js.map +7 -0
  637. package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
  638. package/dist/lib/filter/render-filter-boundary.js +211 -0
  639. package/dist/lib/filter/render-filter-boundary.js.map +7 -0
  640. package/dist/lib/focus/directional-navigation.d.ts +12 -0
  641. package/dist/lib/focus/directional-navigation.js +86 -0
  642. package/dist/lib/focus/directional-navigation.js.map +7 -0
  643. package/dist/lib/focus/dom-focus-host.d.ts +13 -0
  644. package/dist/lib/focus/dom-focus-host.js +352 -0
  645. package/dist/lib/focus/dom-focus-host.js.map +7 -0
  646. package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
  647. package/dist/lib/focus/dom-tab-stops.js +71 -0
  648. package/dist/lib/focus/dom-tab-stops.js.map +7 -0
  649. package/dist/lib/focus/focus-events.d.ts +4 -0
  650. package/dist/lib/focus/focus-events.js +78 -0
  651. package/dist/lib/focus/focus-events.js.map +7 -0
  652. package/dist/lib/focus/focus-manager.d.ts +121 -0
  653. package/dist/lib/focus/focus-manager.js +1131 -0
  654. package/dist/lib/focus/focus-manager.js.map +7 -0
  655. package/dist/lib/focus/geometry.d.ts +4 -0
  656. package/dist/lib/focus/geometry.js +64 -0
  657. package/dist/lib/focus/geometry.js.map +7 -0
  658. package/dist/lib/focus/html-focus-region.d.ts +27 -0
  659. package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
  660. package/dist/lib/focus/keyboard-defaults.js +110 -0
  661. package/dist/lib/focus/keyboard-defaults.js.map +7 -0
  662. package/dist/lib/focus/policy-components.d.ts +45 -0
  663. package/dist/lib/focus/policy-components.js +94 -0
  664. package/dist/lib/focus/policy-components.js.map +7 -0
  665. package/dist/lib/focus/types.d.ts +37 -0
  666. package/dist/lib/focus/types.js +7 -0
  667. package/dist/lib/focus/types.js.map +7 -0
  668. package/dist/lib/geometry/circle.d.ts +22 -0
  669. package/dist/lib/geometry/circle.js +13 -0
  670. package/dist/lib/geometry/circle.js.map +7 -0
  671. package/dist/lib/geometry/circular-sweep.d.ts +54 -0
  672. package/dist/lib/geometry/circular-sweep.js +95 -0
  673. package/dist/lib/geometry/circular-sweep.js.map +7 -0
  674. package/dist/lib/geometry/ellipse.d.ts +26 -0
  675. package/dist/lib/geometry/ellipse.js +17 -0
  676. package/dist/lib/geometry/ellipse.js.map +7 -0
  677. package/dist/lib/geometry/line.d.ts +20 -0
  678. package/dist/lib/geometry/line.js +15 -0
  679. package/dist/lib/geometry/line.js.map +7 -0
  680. package/dist/lib/geometry/path-arc.d.ts +25 -0
  681. package/dist/lib/geometry/path-arc.js +57 -0
  682. package/dist/lib/geometry/path-arc.js.map +7 -0
  683. package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
  684. package/dist/lib/geometry/path-bend-guide.js +282 -0
  685. package/dist/lib/geometry/path-bend-guide.js.map +7 -0
  686. package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
  687. package/dist/lib/geometry/path-bend-spans.js +109 -0
  688. package/dist/lib/geometry/path-bend-spans.js.map +7 -0
  689. package/dist/lib/geometry/path-bending.d.ts +90 -0
  690. package/dist/lib/geometry/path-bending.js +202 -0
  691. package/dist/lib/geometry/path-bending.js.map +7 -0
  692. package/dist/lib/geometry/path-conversion.d.ts +19 -0
  693. package/dist/lib/geometry/path-conversion.js +114 -0
  694. package/dist/lib/geometry/path-conversion.js.map +7 -0
  695. package/dist/lib/geometry/path-geometry.d.ts +218 -0
  696. package/dist/lib/geometry/path-geometry.js +557 -0
  697. package/dist/lib/geometry/path-geometry.js.map +7 -0
  698. package/dist/lib/geometry/path-radial.d.ts +15 -0
  699. package/dist/lib/geometry/path-radial.js +107 -0
  700. package/dist/lib/geometry/path-radial.js.map +7 -0
  701. package/dist/lib/geometry/path-transforms.d.ts +233 -0
  702. package/dist/lib/geometry/path-transforms.js +478 -0
  703. package/dist/lib/geometry/path-transforms.js.map +7 -0
  704. package/dist/lib/geometry/path-utilities.d.ts +78 -0
  705. package/dist/lib/geometry/path-utilities.js +341 -0
  706. package/dist/lib/geometry/path-utilities.js.map +7 -0
  707. package/dist/lib/geometry/path-wang.d.ts +18 -0
  708. package/dist/lib/geometry/path-wang.js +136 -0
  709. package/dist/lib/geometry/path-wang.js.map +7 -0
  710. package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
  711. package/dist/lib/geometry/path-warp-bezier.js +109 -0
  712. package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
  713. package/dist/lib/geometry/path-warp.d.ts +27 -0
  714. package/dist/lib/geometry/path-warp.js +165 -0
  715. package/dist/lib/geometry/path-warp.js.map +7 -0
  716. package/dist/lib/geometry/polygon.d.ts +21 -0
  717. package/dist/lib/geometry/polygon.js +12 -0
  718. package/dist/lib/geometry/polygon.js.map +7 -0
  719. package/dist/lib/geometry/rectangle.d.ts +38 -0
  720. package/dist/lib/geometry/rectangle.js +22 -0
  721. package/dist/lib/geometry/rectangle.js.map +7 -0
  722. package/dist/lib/geometry/regular-polygon.d.ts +88 -0
  723. package/dist/lib/geometry/regular-polygon.js +67 -0
  724. package/dist/lib/geometry/regular-polygon.js.map +7 -0
  725. package/dist/lib/geometry/resolve-path.d.ts +4 -0
  726. package/dist/lib/geometry/resolve-path.js +16 -0
  727. package/dist/lib/geometry/resolve-path.js.map +7 -0
  728. package/dist/lib/geometry/rounded-corners.d.ts +28 -0
  729. package/dist/lib/geometry/rounded-corners.js +118 -0
  730. package/dist/lib/geometry/rounded-corners.js.map +7 -0
  731. package/dist/lib/geometry/star.d.ts +39 -0
  732. package/dist/lib/geometry/star.js +90 -0
  733. package/dist/lib/geometry/star.js.map +7 -0
  734. package/dist/lib/geometry/svg-path.d.ts +21 -0
  735. package/dist/lib/geometry/svg-path.js +7 -0
  736. package/dist/lib/geometry/svg-path.js.map +7 -0
  737. package/dist/lib/geometry/transform-bend.d.ts +46 -0
  738. package/dist/lib/geometry/transform-bend.js +219 -0
  739. package/dist/lib/geometry/transform-bend.js.map +7 -0
  740. package/dist/lib/geometry/transform-guide.d.ts +57 -0
  741. package/dist/lib/geometry/transform-guide.js +157 -0
  742. package/dist/lib/geometry/transform-guide.js.map +7 -0
  743. package/dist/lib/geometry/transform-math.d.ts +21 -0
  744. package/dist/lib/geometry/transform-math.js +91 -0
  745. package/dist/lib/geometry/transform-math.js.map +7 -0
  746. package/dist/lib/geometry/transform-mesh.d.ts +39 -0
  747. package/dist/lib/geometry/transform-mesh.js +129 -0
  748. package/dist/lib/geometry/transform-mesh.js.map +7 -0
  749. package/dist/lib/geometry/validation.d.ts +6 -0
  750. package/dist/lib/geometry/validation.js +42 -0
  751. package/dist/lib/geometry/validation.js.map +7 -0
  752. package/dist/lib/global-state.d.ts +63 -0
  753. package/dist/lib/global-state.js +176 -0
  754. package/dist/lib/global-state.js.map +7 -0
  755. package/dist/lib/hooks/hook-slot.d.ts +30 -0
  756. package/dist/lib/hooks/hook-slot.js +66 -0
  757. package/dist/lib/hooks/hook-slot.js.map +7 -0
  758. package/dist/lib/hooks/use-animated-value.d.ts +24 -0
  759. package/dist/lib/hooks/use-animated-value.js +169 -0
  760. package/dist/lib/hooks/use-animated-value.js.map +7 -0
  761. package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
  762. package/dist/lib/hooks/use-canvas-context.js +13 -0
  763. package/dist/lib/hooks/use-canvas-context.js.map +7 -0
  764. package/dist/lib/hooks/use-computed.d.ts +13 -0
  765. package/dist/lib/hooks/use-computed.js +91 -0
  766. package/dist/lib/hooks/use-computed.js.map +7 -0
  767. package/dist/lib/hooks/use-const.d.ts +10 -0
  768. package/dist/lib/hooks/use-const.js +15 -0
  769. package/dist/lib/hooks/use-const.js.map +7 -0
  770. package/dist/lib/hooks/use-cursor.d.ts +16 -0
  771. package/dist/lib/hooks/use-cursor.js +51 -0
  772. package/dist/lib/hooks/use-cursor.js.map +7 -0
  773. package/dist/lib/hooks/use-event-listener.d.ts +10 -0
  774. package/dist/lib/hooks/use-event-listener.js +24 -0
  775. package/dist/lib/hooks/use-event-listener.js.map +7 -0
  776. package/dist/lib/hooks/use-event-target.d.ts +14 -0
  777. package/dist/lib/hooks/use-event-target.js +30 -0
  778. package/dist/lib/hooks/use-event-target.js.map +7 -0
  779. package/dist/lib/hooks/use-layout-box.d.ts +9 -0
  780. package/dist/lib/hooks/use-layout-box.js +8 -0
  781. package/dist/lib/hooks/use-layout-box.js.map +7 -0
  782. package/dist/lib/hooks/use-line-path.d.ts +14 -0
  783. package/dist/lib/hooks/use-line-path.js +13 -0
  784. package/dist/lib/hooks/use-line-path.js.map +7 -0
  785. package/dist/lib/hooks/use-paint-target.d.ts +3 -0
  786. package/dist/lib/hooks/use-paint-target.js +34 -0
  787. package/dist/lib/hooks/use-paint-target.js.map +7 -0
  788. package/dist/lib/hooks/use-playback.d.ts +21 -0
  789. package/dist/lib/hooks/use-playback.js +87 -0
  790. package/dist/lib/hooks/use-playback.js.map +7 -0
  791. package/dist/lib/hooks/use-reaction.d.ts +19 -0
  792. package/dist/lib/hooks/use-reaction.js +245 -0
  793. package/dist/lib/hooks/use-reaction.js.map +7 -0
  794. package/dist/lib/hooks/use-rect-path.d.ts +20 -0
  795. package/dist/lib/hooks/use-rect-path.js +25 -0
  796. package/dist/lib/hooks/use-rect-path.js.map +7 -0
  797. package/dist/lib/hooks/use-ref.d.ts +17 -0
  798. package/dist/lib/hooks/use-ref.js +8 -0
  799. package/dist/lib/hooks/use-ref.js.map +7 -0
  800. package/dist/lib/hooks/use-region.d.ts +11 -0
  801. package/dist/lib/hooks/use-region.js +34 -0
  802. package/dist/lib/hooks/use-region.js.map +7 -0
  803. package/dist/lib/hooks/use-signal.d.ts +12 -0
  804. package/dist/lib/hooks/use-signal.js +12 -0
  805. package/dist/lib/hooks/use-signal.js.map +7 -0
  806. package/dist/lib/hooks/use-svg-path.d.ts +11 -0
  807. package/dist/lib/hooks/use-svg-path.js +13 -0
  808. package/dist/lib/hooks/use-svg-path.js.map +7 -0
  809. package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
  810. package/dist/lib/hooks/use-value-memo-slot.js +45 -0
  811. package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
  812. package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
  813. package/dist/lib/hooks/use-visibility-transition.js +195 -0
  814. package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
  815. package/dist/lib/html/html-service.d.ts +30 -0
  816. package/dist/lib/html/html-service.js +281 -0
  817. package/dist/lib/html/html-service.js.map +7 -0
  818. package/dist/lib/html/overlay-config.d.ts +3 -0
  819. package/dist/lib/html/overlay-config.js +37 -0
  820. package/dist/lib/html/overlay-config.js.map +7 -0
  821. package/dist/lib/html/portable-clips.d.ts +4 -0
  822. package/dist/lib/html/portable-clips.js +20 -0
  823. package/dist/lib/html/portable-clips.js.map +7 -0
  824. package/dist/lib/html/types.d.ts +110 -0
  825. package/dist/lib/layout/absolute.d.ts +57 -0
  826. package/dist/lib/layout/absolute.js +348 -0
  827. package/dist/lib/layout/absolute.js.map +7 -0
  828. package/dist/lib/layout/box.d.ts +19 -0
  829. package/dist/lib/layout/box.js +209 -0
  830. package/dist/lib/layout/box.js.map +7 -0
  831. package/dist/lib/layout/context.d.ts +13 -0
  832. package/dist/lib/layout/context.js +42 -0
  833. package/dist/lib/layout/context.js.map +7 -0
  834. package/dist/lib/layout/diagnostics.d.ts +15 -0
  835. package/dist/lib/layout/diagnostics.js +30 -0
  836. package/dist/lib/layout/diagnostics.js.map +7 -0
  837. package/dist/lib/layout/flex.d.ts +64 -0
  838. package/dist/lib/layout/flex.js +803 -0
  839. package/dist/lib/layout/flex.js.map +7 -0
  840. package/dist/lib/layout/flow.d.ts +53 -0
  841. package/dist/lib/layout/flow.js +400 -0
  842. package/dist/lib/layout/flow.js.map +7 -0
  843. package/dist/lib/layout/grid.d.ts +64 -0
  844. package/dist/lib/layout/grid.js +597 -0
  845. package/dist/lib/layout/grid.js.map +7 -0
  846. package/dist/lib/layout/measure.d.ts +19 -0
  847. package/dist/lib/layout/measure.js +144 -0
  848. package/dist/lib/layout/measure.js.map +7 -0
  849. package/dist/lib/layout/overlay.d.ts +42 -0
  850. package/dist/lib/layout/overlay.js +151 -0
  851. package/dist/lib/layout/overlay.js.map +7 -0
  852. package/dist/lib/layout/place-child.d.ts +12 -0
  853. package/dist/lib/layout/place-child.js +72 -0
  854. package/dist/lib/layout/place-child.js.map +7 -0
  855. package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
  856. package/dist/lib/layout/positioning-diagnostics.js +15 -0
  857. package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
  858. package/dist/lib/layout/types.d.ts +78 -0
  859. package/dist/lib/manipulation/controller-types.d.ts +299 -0
  860. package/dist/lib/manipulation/controller.d.ts +57 -0
  861. package/dist/lib/manipulation/controller.js +464 -0
  862. package/dist/lib/manipulation/controller.js.map +7 -0
  863. package/dist/lib/manipulation/coordinates.d.ts +9 -0
  864. package/dist/lib/manipulation/coordinates.js +55 -0
  865. package/dist/lib/manipulation/coordinates.js.map +7 -0
  866. package/dist/lib/manipulation/degrees.d.ts +10 -0
  867. package/dist/lib/manipulation/degrees.js +9 -0
  868. package/dist/lib/manipulation/degrees.js.map +7 -0
  869. package/dist/lib/manipulation/frame.d.ts +24 -0
  870. package/dist/lib/manipulation/frame.js +101 -0
  871. package/dist/lib/manipulation/frame.js.map +7 -0
  872. package/dist/lib/manipulation/geometry.d.ts +4 -0
  873. package/dist/lib/manipulation/geometry.js +26 -0
  874. package/dist/lib/manipulation/geometry.js.map +7 -0
  875. package/dist/lib/manipulation/handles.d.ts +298 -0
  876. package/dist/lib/manipulation/handles.js +598 -0
  877. package/dist/lib/manipulation/handles.js.map +7 -0
  878. package/dist/lib/manipulation/manipulable.d.ts +65 -0
  879. package/dist/lib/manipulation/manipulable.js +47 -0
  880. package/dist/lib/manipulation/manipulable.js.map +7 -0
  881. package/dist/lib/manipulation/ownership.d.ts +15 -0
  882. package/dist/lib/manipulation/ownership.js +80 -0
  883. package/dist/lib/manipulation/ownership.js.map +7 -0
  884. package/dist/lib/manipulation/snap.d.ts +6 -0
  885. package/dist/lib/manipulation/snap.js +40 -0
  886. package/dist/lib/manipulation/snap.js.map +7 -0
  887. package/dist/lib/manipulation/solve.d.ts +2 -0
  888. package/dist/lib/manipulation/solve.js +563 -0
  889. package/dist/lib/manipulation/solve.js.map +7 -0
  890. package/dist/lib/manipulation/types.d.ts +178 -0
  891. package/dist/lib/mount-pibbl.d.ts +25 -0
  892. package/dist/lib/mount-pibbl.js +278 -0
  893. package/dist/lib/mount-pibbl.js.map +7 -0
  894. package/dist/lib/optional-services.d.ts +8 -0
  895. package/dist/lib/optional-services.js +11 -0
  896. package/dist/lib/optional-services.js.map +7 -0
  897. package/dist/lib/pibbl.d.ts +17 -0
  898. package/dist/lib/pibbl.js +21 -0
  899. package/dist/lib/pibbl.js.map +7 -0
  900. package/dist/lib/primitive-presentation.d.ts +24 -0
  901. package/dist/lib/primitive-presentation.js +102 -0
  902. package/dist/lib/primitive-presentation.js.map +7 -0
  903. package/dist/lib/render-layer/controller.d.ts +67 -0
  904. package/dist/lib/render-layer/controller.js +603 -0
  905. package/dist/lib/render-layer/controller.js.map +7 -0
  906. package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
  907. package/dist/lib/render-layer/define-render-layer.js +90 -0
  908. package/dist/lib/render-layer/define-render-layer.js.map +7 -0
  909. package/dist/lib/render-layer/types.d.ts +315 -0
  910. package/dist/lib/render-target.d.ts +27 -0
  911. package/dist/lib/render-target.js +118 -0
  912. package/dist/lib/render-target.js.map +7 -0
  913. package/dist/lib/render-transaction.d.ts +10 -0
  914. package/dist/lib/render-transaction.js +46 -0
  915. package/dist/lib/render-transaction.js.map +7 -0
  916. package/dist/lib/render.d.ts +3 -0
  917. package/dist/lib/render.js +385 -0
  918. package/dist/lib/render.js.map +7 -0
  919. package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
  920. package/dist/lib/scheduler/realm-scheduler.js +964 -0
  921. package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
  922. package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
  923. package/dist/lib/scheduler/renderer-participant.js +216 -0
  924. package/dist/lib/scheduler/renderer-participant.js.map +7 -0
  925. package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
  926. package/dist/lib/scheduler/simulation-participant.js +229 -0
  927. package/dist/lib/scheduler/simulation-participant.js.map +7 -0
  928. package/dist/lib/scheduler/testing.d.ts +56 -0
  929. package/dist/lib/scheduler/testing.js +71 -0
  930. package/dist/lib/scheduler/testing.js.map +7 -0
  931. package/dist/lib/scheduler/types.d.ts +103 -0
  932. package/dist/lib/signals/edge.d.ts +44 -0
  933. package/dist/lib/signals/edge.js +245 -0
  934. package/dist/lib/signals/edge.js.map +7 -0
  935. package/dist/lib/signals/graph.d.ts +220 -0
  936. package/dist/lib/signals/graph.js +1035 -0
  937. package/dist/lib/signals/graph.js.map +7 -0
  938. package/dist/lib/signals/input-provision.d.ts +3 -0
  939. package/dist/lib/signals/input-provision.js +67 -0
  940. package/dist/lib/signals/input-provision.js.map +7 -0
  941. package/dist/lib/signals/render-consumer.d.ts +21 -0
  942. package/dist/lib/signals/render-consumer.js +218 -0
  943. package/dist/lib/signals/render-consumer.js.map +7 -0
  944. package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
  945. package/dist/lib/signals/resolve-signal-value.js +17 -0
  946. package/dist/lib/signals/resolve-signal-value.js.map +7 -0
  947. package/dist/lib/signals/types.d.ts +80 -0
  948. package/dist/lib/style/diagnostics.d.ts +83 -0
  949. package/dist/lib/style/diagnostics.js +63 -0
  950. package/dist/lib/style/diagnostics.js.map +7 -0
  951. package/dist/lib/style/empty-style.d.ts +3 -0
  952. package/dist/lib/style/empty-style.js +5 -0
  953. package/dist/lib/style/empty-style.js.map +7 -0
  954. package/dist/lib/style/filter-types.d.ts +243 -0
  955. package/dist/lib/style/filter-types.js +5 -0
  956. package/dist/lib/style/filter-types.js.map +7 -0
  957. package/dist/lib/style/filter.d.ts +7 -0
  958. package/dist/lib/style/filter.js +50 -0
  959. package/dist/lib/style/filter.js.map +7 -0
  960. package/dist/lib/style/normalize.d.ts +18 -0
  961. package/dist/lib/style/normalize.js +50 -0
  962. package/dist/lib/style/normalize.js.map +7 -0
  963. package/dist/lib/style/positioning.d.ts +32 -0
  964. package/dist/lib/style/positioning.js +81 -0
  965. package/dist/lib/style/positioning.js.map +7 -0
  966. package/dist/lib/style/resolve-built-in.d.ts +6 -0
  967. package/dist/lib/style/resolve-built-in.js +58 -0
  968. package/dist/lib/style/resolve-built-in.js.map +7 -0
  969. package/dist/lib/style/resolve-dispatch.d.ts +20 -0
  970. package/dist/lib/style/resolve-dispatch.js +167 -0
  971. package/dist/lib/style/resolve-dispatch.js.map +7 -0
  972. package/dist/lib/style/resolve-length.d.ts +16 -0
  973. package/dist/lib/style/resolve-length.js +54 -0
  974. package/dist/lib/style/resolve-length.js.map +7 -0
  975. package/dist/lib/style/responsive.d.ts +31 -0
  976. package/dist/lib/style/responsive.js +172 -0
  977. package/dist/lib/style/responsive.js.map +7 -0
  978. package/dist/lib/style/types.d.ts +338 -0
  979. package/dist/lib/surface/resolve-surface.d.ts +4 -0
  980. package/dist/lib/surface/resolve-surface.js +184 -0
  981. package/dist/lib/surface/resolve-surface.js.map +7 -0
  982. package/dist/lib/surface/root-surface.d.ts +7 -0
  983. package/dist/lib/surface/root-surface.js +171 -0
  984. package/dist/lib/surface/root-surface.js.map +7 -0
  985. package/dist/lib/surface/transform.d.ts +4 -0
  986. package/dist/lib/surface/transform.js +16 -0
  987. package/dist/lib/surface/transform.js.map +7 -0
  988. package/dist/lib/surface/types.d.ts +132 -0
  989. package/dist/lib/teardowns.d.ts +14 -0
  990. package/dist/lib/teardowns.js +50 -0
  991. package/dist/lib/teardowns.js.map +7 -0
  992. package/dist/lib/textures/texture-protocol.d.ts +124 -0
  993. package/dist/lib/textures/texture-protocol.js +40 -0
  994. package/dist/lib/textures/texture-protocol.js.map +7 -0
  995. package/dist/lib/textures/texture.d.ts +170 -0
  996. package/dist/lib/textures/texture.js +385 -0
  997. package/dist/lib/textures/texture.js.map +7 -0
  998. package/dist/lib/transitions/bifrost.d.ts +47 -0
  999. package/dist/lib/transitions/bifrost.js +91 -0
  1000. package/dist/lib/transitions/bifrost.js.map +7 -0
  1001. package/dist/lib/transitions/binding.d.ts +14 -0
  1002. package/dist/lib/transitions/binding.js +35 -0
  1003. package/dist/lib/transitions/binding.js.map +7 -0
  1004. package/dist/lib/transitions/capture.d.ts +21 -0
  1005. package/dist/lib/transitions/capture.js +91 -0
  1006. package/dist/lib/transitions/capture.js.map +7 -0
  1007. package/dist/lib/transitions/common.d.ts +130 -0
  1008. package/dist/lib/transitions/common.js +57 -0
  1009. package/dist/lib/transitions/common.js.map +7 -0
  1010. package/dist/lib/transitions/define-transition.d.ts +64 -0
  1011. package/dist/lib/transitions/define-transition.js +31 -0
  1012. package/dist/lib/transitions/define-transition.js.map +7 -0
  1013. package/dist/lib/transitions/embers-physics.d.ts +114 -0
  1014. package/dist/lib/transitions/embers-physics.js +161 -0
  1015. package/dist/lib/transitions/embers-physics.js.map +7 -0
  1016. package/dist/lib/transitions/embers.d.ts +67 -0
  1017. package/dist/lib/transitions/embers.js +196 -0
  1018. package/dist/lib/transitions/embers.js.map +7 -0
  1019. package/dist/lib/transitions/fade.d.ts +41 -0
  1020. package/dist/lib/transitions/fade.js +31 -0
  1021. package/dist/lib/transitions/fade.js.map +7 -0
  1022. package/dist/lib/transitions/hologram.d.ts +47 -0
  1023. package/dist/lib/transitions/hologram.js +94 -0
  1024. package/dist/lib/transitions/hologram.js.map +7 -0
  1025. package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
  1026. package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
  1027. package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
  1028. package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
  1029. package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
  1030. package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
  1031. package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
  1032. package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
  1033. package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
  1034. package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
  1035. package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
  1036. package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
  1037. package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
  1038. package/dist/lib/transitions/wasm/kernel.js +26 -0
  1039. package/dist/lib/transitions/wasm/kernel.js.map +7 -0
  1040. package/dist/lib/types.d.ts +570 -0
  1041. package/dist/lib/update.d.ts +8 -0
  1042. package/dist/lib/update.js +20 -0
  1043. package/dist/lib/update.js.map +7 -0
  1044. package/dist/lib/util/get-2d-context.d.ts +2 -0
  1045. package/dist/lib/util/get-2d-context.js +11 -0
  1046. package/dist/lib/util/get-2d-context.js.map +7 -0
  1047. package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
  1048. package/dist/lib/util/get-mouse-coordinates.js +32 -0
  1049. package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
  1050. package/dist/lib/util/is-hit.d.ts +11 -0
  1051. package/dist/lib/util/is-hit.js +52 -0
  1052. package/dist/lib/util/is-hit.js.map +7 -0
  1053. package/dist/lib/util/is-transparent.d.ts +1 -0
  1054. package/dist/lib/util/is-transparent.js +8 -0
  1055. package/dist/lib/util/is-transparent.js.map +7 -0
  1056. package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
  1057. package/dist/lib/util/pixel-grid-adjustments.js +28 -0
  1058. package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
  1059. package/dist/lib/util/push-clipping-path.d.ts +6 -0
  1060. package/dist/lib/util/push-clipping-path.js +28 -0
  1061. package/dist/lib/util/push-clipping-path.js.map +7 -0
  1062. package/dist/lib/util/wire-common-events.d.ts +2 -0
  1063. package/dist/lib/util/wire-common-events.js +15 -0
  1064. package/dist/lib/util/wire-common-events.js.map +7 -0
  1065. package/dist/types.d.ts +1 -0
  1066. package/dist/types.js +1 -0
  1067. package/dist/types.js.map +7 -0
  1068. package/dist/types.mjs +1 -0
  1069. package/package.json +149 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/features/textures/lib/water-waves.ts"],
4
+ "sourcesContent": ["import {\n defineTexture,\n type TextureContext,\n type TextureRecipe,\n} from \"@pibbl/core\";\nimport { bytes } from \"./wasm/water-waves-bytes.js\";\nimport { validateSeed } from \"./palette.js\";\n\n/**\n * Seed, animation speed, feature scale, ripple strength, and initial pause state of water waves.\n *\n * @see {@link waterWaves}\n */\nexport interface WaterWavesOptions {\n /**\n * Seed used for deterministic sampling or simulation initialization. See\n * {@link WaterWavesOptions}.\n */\n readonly seed?: number;\n /** Multiplier controlling the simulation's animation rate. See {@link WaterWavesOptions}. */\n readonly speed?: number;\n /** Spatial scale of the generated wave pattern. See {@link WaterWavesOptions}. */\n readonly scale?: number;\n /** Strength of injected wave disturbances. See {@link WaterWavesOptions}. */\n readonly rippleStrength?: number;\n /** Whether simulation or playback advancement is suspended. See {@link WaterWavesOptions}. */\n readonly paused?: boolean;\n}\n\n/**\n * Ripple, pause, and reset commands for a water-wave texture.\n *\n * @see {@link waterWaves}\n */\nexport type WaterWavesMessage =\n | {\n /** The literal \"pause\" identifying this variant. See {@link WaterWavesMessage}. */\n readonly type: \"pause\";\n /** Whether simulation or playback advancement is suspended. See {@link WaterWavesMessage}. */\n readonly paused: boolean;\n }\n | {\n /** The literal \"reset\" identifying this variant. See {@link WaterWavesMessage}. */\n readonly type: \"reset\";\n }\n | {\n /** The literal \"ripple\" identifying this variant. See {@link WaterWavesMessage}. */\n readonly type: \"ripple\";\n /**\n * Horizontal coordinate or displacement in the containing coordinate system. See\n * {@link WaterWavesMessage}.\n */\n readonly x: number;\n /**\n * Vertical coordinate or displacement in the containing coordinate system. See\n * {@link WaterWavesMessage}.\n */\n readonly y: number;\n };\n\ninterface Config {\n seed: number;\n speed: number;\n scale: number;\n rippleStrength: number;\n paused: boolean;\n}\ninterface State {\n config: Config;\n field: WaveField;\n phase: number;\n paused: boolean;\n fresh: boolean;\n rippleCount: number;\n}\ninterface WaveKernel {\n initializeModes(ptr: number, seed: number, scale: number): void;\n reset(): void;\n ripple(x: number, y: number): void;\n advance(elapsed: number): number;\n raster(\n pixels: number,\n width: number,\n height: number,\n time: number,\n strength: number,\n ): void;\n}\nlet compiled: WebAssembly.Module | undefined;\nclass WaveField {\n readonly kernel: WaveKernel;\n readonly image: ImageData;\n constructor(width: number, height: number, config: Config) {\n const pages = Math.ceil((66024 + width * height * 4) / 65536);\n const memory = new WebAssembly.Memory({ initial: pages, maximum: pages });\n compiled ??= new WebAssembly.Module(\n Uint8Array.from(atob(bytes), (c) => c.charCodeAt(0)),\n );\n this.kernel = new WebAssembly.Instance(compiled, {\n env: {\n memory,\n abort() {\n throw new Error(\"Water waves WASM aborted.\");\n },\n },\n }).exports as unknown as WaveKernel;\n this.image = new ImageData(\n new Uint8ClampedArray(memory.buffer, 66024, width * height * 4),\n width,\n height,\n );\n this.configure(config);\n }\n configure(config: Config) {\n this.kernel.initializeModes(65536, config.seed, config.scale);\n }\n raster(time: number, strength: number) {\n this.kernel.raster(\n 66024,\n this.image.width,\n this.image.height,\n time,\n strength,\n );\n }\n}\n\nfunction config(input: WaterWavesOptions): Config {\n const seed = validateSeed(input.seed ?? 0);\n const speed = input.speed ?? 1;\n const scale = input.scale ?? 4;\n const rippleStrength = input.rippleStrength ?? 1;\n if (!Number.isFinite(speed) || speed < 0)\n throw new RangeError(\"Water wave speed must be finite and nonnegative.\");\n if (!Number.isInteger(scale) || scale < 1 || scale > 32)\n throw new RangeError(\"Water wave scale must be an integer from 1 to 32.\");\n if (!Number.isFinite(rippleStrength) || rippleStrength < 0)\n throw new RangeError(\n \"Water ripple strength must be finite and nonnegative.\",\n );\n return { seed, speed, scale, rippleStrength, paused: input.paused ?? false };\n}\n\nfunction assertDataTexture(context: TextureContext): void {\n if (context.palette !== undefined)\n throw new TypeError(\n \"waterWaves is a numeric displacement map and does not accept a palette.\",\n );\n}\nfunction isAnimating(state: State): boolean {\n return state.config.speed > 0 || state.rippleCount > 0;\n}\nfunction assertRippleCoordinate(value: number, name: \"x\" | \"y\"): void {\n if (!Number.isFinite(value) || value < 0 || value > 1)\n throw new RangeError(\n `Water ripple ${name} must be finite and within [0, 1].`,\n );\n}\n\nconst recipe = /* @__PURE__ */ defineTexture<\n WaterWavesOptions,\n State,\n WaterWavesMessage\n>({\n create(context, input) {\n assertDataTexture(context);\n const next = config(input);\n if (!next.paused && next.speed > 0) context.requestFrame();\n return {\n config: next,\n field: new WaveField(context.canvas.width, context.canvas.height, next),\n phase: 0,\n paused: next.paused,\n fresh: true,\n rippleCount: 0,\n };\n },\n update(state, input, context) {\n assertDataTexture(context);\n const next = config(input);\n const previous = state.config;\n if (next.seed !== previous.seed || next.scale !== previous.scale) {\n state.phase = 0;\n state.field.configure(next);\n context.invalidate();\n }\n if (next.rippleStrength !== previous.rippleStrength) context.invalidate();\n if (next.paused !== previous.paused) state.paused = next.paused;\n if (next.paused !== previous.paused || next.speed !== previous.speed)\n state.fresh = true;\n state.config = next;\n if (!state.paused && isAnimating(state)) context.requestFrame();\n },\n receive(state, message, context) {\n if (message.type === \"pause\") {\n state.paused = message.paused;\n state.fresh = true;\n if (!state.paused && isAnimating(state)) context.requestFrame();\n return;\n }\n if (message.type === \"reset\") {\n state.phase = 0;\n state.field.kernel.reset();\n state.rippleCount = 0;\n state.fresh = true;\n context.invalidate();\n return;\n }\n if (message.type === \"ripple\") {\n assertRippleCoordinate(message.x, \"x\");\n assertRippleCoordinate(message.y, \"y\");\n if (!isAnimating(state)) state.fresh = true;\n state.field.kernel.ripple(message.x, message.y);\n state.rippleCount = Math.min(16, state.rippleCount + 1);\n context.invalidate();\n if (!state.paused) context.requestFrame();\n return;\n }\n throw new TypeError(\"Unknown water wave message.\");\n },\n advance(state, frame, context) {\n if (state.paused || !isAnimating(state)) return;\n if (!state.fresh) {\n const elapsed = frame.delta / 1000;\n state.phase += elapsed * state.config.speed;\n state.rippleCount = state.field.kernel.advance(elapsed);\n context.invalidate();\n }\n state.fresh = false;\n if (isAnimating(state)) context.requestFrame();\n },\n rasterize(state, context) {\n const ctx = context.canvas.getContext(\"2d\")!;\n state.field.raster(state.phase, state.config.rippleStrength);\n ctx.putImageData(state.field.image, 0, 0);\n },\n});\n\n/**\n * Creates an animated water-wave texture recipe that accepts ripple, pause, and reset commands.\n *\n * @param options - Wave simulation and rendering settings. See {@link WaterWavesOptions}.\n * @returns A water-wave texture recipe accepting wave messages. See {@link TextureRecipe} ,\n * {@link WaterWavesMessage} .\n *\n * @see {@link WaterWavesOptions}\n * @see {@link TextureRecipe}\n * @see {@link WaterWavesMessage}\n */\nexport function waterWaves(\n options: WaterWavesOptions = {},\n): TextureRecipe<WaterWavesMessage> {\n return recipe(options);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["config"]
7
+ }
@@ -0,0 +1,28 @@
1
+ export { Scale } from "./lib/scale.js";
2
+ export { useScale } from "./lib/use-scale.js";
3
+ export type { ScaleId, LinearDomain, BandCategory, BandDomain, BandScaleProps, BandScaleRange, ResolvedBandScale, ScaleRange, ScaleLayoutStyle, LinearScaleProps, ScaleProps, ResolvedLinearScale, ResolvedScale, } from "./lib/types.js";
4
+ export { Axis } from "./lib/axis.js";
5
+ export { LineSeries } from "./lib/line-series.js";
6
+ export { ScaleAdjust } from "./lib/scale-adjust.js";
7
+ export type { AxisStyle, AxisProps, LineCoordinate, LineAccessor, LineCurve, LineSeriesStyle, LineSeriesProps, ScaleAdjustProps, } from "./lib/types.js";
8
+ export { PointSeries } from "./lib/point-series.js";
9
+ export type { PointAccessor, PointMarkStyle, PointSeriesStyle, PointStyleResolver, PointSeriesProps, } from "./lib/point-types.js";
10
+ export { PlotSeries } from "./lib/plot-series.js";
11
+ export type { PlotSeriesProps, PlotKeyAccessor } from "./lib/plot-types.js";
12
+ export { nearestDomainValue, nearestPoint } from "./lib/nearest.js";
13
+ export type { NearestPointOptions, NearestPoint } from "./lib/nearest.js";
14
+ export { HoverData } from "./lib/hover-data.js";
15
+ export { defineSeries, closestPoint } from "./lib/hover-queries.js";
16
+ export type { HoverQueryContext, HoverQuery, HoverDataProps, HoverSeries, HoverPoint, HoverHit, HoverSeriesMap, ClosestPointHit, ClosestPointOptions, } from "./lib/hover-types.js";
17
+ export { HoverCard } from "./lib/hover-card.js";
18
+ export type { HoverCardProps, HoverCardStyle, HoverBounds, HoverPlacement, } from "./lib/hover-card.js";
19
+ export { closestX, interpolateX, linearInterpolation, } from "./lib/hover-queries.js";
20
+ export type { ClosestXOptions, ClosestXHit, HoverInterpolation, InterpolateXOptions, HoverSample, } from "./lib/hover-types.js";
21
+ export { AnchoredLayout } from "./lib/anchored-layout.js";
22
+ export type { AnchoredItem, AnchoredPlacement, AnchoredLayoutProps, } from "./lib/anchored-layout.js";
23
+ export { BarSeries } from "./lib/bar-series.js";
24
+ export type { BarThresholdFill, BarCategoryAccessor, BarSeriesStyle, BarStyleResolver, BarSeriesProps, } from "./lib/bar-series.js";
25
+ export { pieSlices } from "./lib/pie-slices.js";
26
+ export type { PieOptions, PieSliceGeometry } from "./lib/pie-slices.js";
27
+ export { PieLayout, PieSlice, PieLabel } from "./lib/pie-layout.js";
28
+ export type { PieLayoutProps, PieLayoutStyle, PieLayoutSlice, PieLabelPlacement, PieLabelLayout, PieSliceProps, PieSliceStyle, PieLabelProps, PieLabelStyle } from "./lib/pie-types.js";
@@ -0,0 +1,45 @@
1
+ import { Scale } from "./lib/scale.js";
2
+ import { useScale } from "./lib/use-scale.js";
3
+ import { Axis } from "./lib/axis.js";
4
+ import { LineSeries } from "./lib/line-series.js";
5
+ import { ScaleAdjust } from "./lib/scale-adjust.js";
6
+ import { PointSeries } from "./lib/point-series.js";
7
+ import { PlotSeries } from "./lib/plot-series.js";
8
+ import { nearestDomainValue, nearestPoint } from "./lib/nearest.js";
9
+ import { HoverData } from "./lib/hover-data.js";
10
+ import { defineSeries, closestPoint } from "./lib/hover-queries.js";
11
+ import { HoverCard } from "./lib/hover-card.js";
12
+ import {
13
+ closestX,
14
+ interpolateX,
15
+ linearInterpolation
16
+ } from "./lib/hover-queries.js";
17
+ import { AnchoredLayout } from "./lib/anchored-layout.js";
18
+ import { BarSeries } from "./lib/bar-series.js";
19
+ import { pieSlices } from "./lib/pie-slices.js";
20
+ import { PieLayout, PieSlice, PieLabel } from "./lib/pie-layout.js";
21
+ export {
22
+ AnchoredLayout,
23
+ Axis,
24
+ BarSeries,
25
+ HoverCard,
26
+ HoverData,
27
+ LineSeries,
28
+ PieLabel,
29
+ PieLayout,
30
+ PieSlice,
31
+ PlotSeries,
32
+ PointSeries,
33
+ Scale,
34
+ ScaleAdjust,
35
+ closestPoint,
36
+ closestX,
37
+ defineSeries,
38
+ interpolateX,
39
+ linearInterpolation,
40
+ nearestDomainValue,
41
+ nearestPoint,
42
+ pieSlices,
43
+ useScale
44
+ };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/viz/index.ts"],
4
+ "sourcesContent": ["export { Scale } from \"./lib/scale.js\";\nexport { useScale } from \"./lib/use-scale.js\";\nexport type {\n ScaleId,\n LinearDomain,\n BandCategory,\n BandDomain,\n BandScaleProps,\n BandScaleRange,\n ResolvedBandScale,\n ScaleRange,\n ScaleLayoutStyle,\n LinearScaleProps,\n ScaleProps,\n ResolvedLinearScale,\n ResolvedScale,\n} from \"./lib/types.js\";\nexport { Axis } from \"./lib/axis.js\";\nexport { LineSeries } from \"./lib/line-series.js\";\nexport { ScaleAdjust } from \"./lib/scale-adjust.js\";\nexport type {\n AxisStyle,\n AxisProps,\n LineCoordinate,\n LineAccessor,\n LineCurve,\n LineSeriesStyle,\n LineSeriesProps,\n ScaleAdjustProps,\n} from \"./lib/types.js\";\nexport { PointSeries } from \"./lib/point-series.js\";\nexport type {\n PointAccessor,\n PointMarkStyle,\n PointSeriesStyle,\n PointStyleResolver,\n PointSeriesProps,\n} from \"./lib/point-types.js\";\nexport { PlotSeries } from \"./lib/plot-series.js\";\nexport type { PlotSeriesProps, PlotKeyAccessor } from \"./lib/plot-types.js\";\nexport { nearestDomainValue, nearestPoint } from \"./lib/nearest.js\";\nexport type { NearestPointOptions, NearestPoint } from \"./lib/nearest.js\";\n\nexport { HoverData } from \"./lib/hover-data.js\";\nexport { defineSeries, closestPoint } from \"./lib/hover-queries.js\";\nexport type {\n HoverQueryContext,\n HoverQuery,\n HoverDataProps,\n HoverSeries,\n HoverPoint,\n HoverHit,\n HoverSeriesMap,\n ClosestPointHit,\n ClosestPointOptions,\n} from \"./lib/hover-types.js\";\n\nexport { HoverCard } from \"./lib/hover-card.js\";\nexport type {\n HoverCardProps,\n HoverCardStyle,\n HoverBounds,\n HoverPlacement,\n} from \"./lib/hover-card.js\";\n\nexport {\n closestX,\n interpolateX,\n linearInterpolation,\n} from \"./lib/hover-queries.js\";\nexport type {\n ClosestXOptions,\n ClosestXHit,\n HoverInterpolation,\n InterpolateXOptions,\n HoverSample,\n} from \"./lib/hover-types.js\";\n\nexport { AnchoredLayout } from \"./lib/anchored-layout.js\";\nexport type {\n AnchoredItem,\n AnchoredPlacement,\n AnchoredLayoutProps,\n} from \"./lib/anchored-layout.js\";\n\nexport { BarSeries } from \"./lib/bar-series.js\";\nexport type {\n BarThresholdFill,\n BarCategoryAccessor,\n BarSeriesStyle,\n BarStyleResolver,\n BarSeriesProps,\n} from \"./lib/bar-series.js\";\n\nexport { pieSlices } from \"./lib/pie-slices.js\";\nexport type { PieOptions, PieSliceGeometry } from \"./lib/pie-slices.js\";\n\nexport { PieLayout, PieSlice, PieLabel } from \"./lib/pie-layout.js\";\nexport type { PieLayoutProps, PieLayoutStyle, PieLayoutSlice, PieLabelPlacement, PieLabelLayout, PieSliceProps, PieSliceStyle, PieLabelProps, PieLabelStyle } from \"./lib/pie-types.js\";\n"],
5
+ "mappings": "AAAA,SAAS,aAAa;AACtB,SAAS,gBAAgB;AAgBzB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAW5B,SAAS,mBAAmB;AAQ5B,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB,oBAAoB;AAGjD,SAAS,iBAAiB;AAC1B,SAAS,cAAc,oBAAoB;AAa3C,SAAS,iBAAiB;AAQ1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,sBAAsB;AAO/B,SAAS,iBAAiB;AAS1B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,UAAU,gBAAgB;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ export * from './index.js';
@@ -0,0 +1,104 @@
1
+ import { type PibblNode, type SignalValue } from "@pibbl/core";
2
+ /**
3
+ * Declared outer box and protected anchor, all in the parent's local coordinates.
4
+ *
5
+ * @see {@link AnchoredLayout}
6
+ * @see {@link AnchoredLayoutProps}
7
+ */
8
+ export interface AnchoredItem {
9
+ /** Stable identity used by the containing protocol. See {@link AnchoredItem}. */
10
+ readonly key: string | number;
11
+ /** Logical point to which the content or result is anchored. See {@link AnchoredItem}. */
12
+ readonly anchor: Readonly<{
13
+ /**
14
+ * Horizontal coordinate or displacement in the containing coordinate system. See
15
+ * {@link AnchoredItem}.
16
+ */
17
+ x: number;
18
+ /**
19
+ * Vertical coordinate or displacement in the containing coordinate system. See
20
+ * {@link AnchoredItem}.
21
+ */
22
+ y: number;
23
+ }>;
24
+ /** Clearance around the anchor before placing the item. See {@link AnchoredItem}. */
25
+ readonly anchorRadius?: number;
26
+ /**
27
+ * Horizontal extent in the units of the containing geometry or surface. See {@link AnchoredItem}
28
+ * .
29
+ */
30
+ readonly width: number;
31
+ /**
32
+ * Vertical extent in the units of the containing geometry or surface. See {@link AnchoredItem}.
33
+ */
34
+ readonly height: number;
35
+ }
36
+ /**
37
+ * The resolved logical rectangle assigned to an anchored item.
38
+ *
39
+ * @see {@link AnchoredLayoutProps}
40
+ */
41
+ export interface AnchoredPlacement {
42
+ /**
43
+ * Horizontal coordinate or displacement in the containing coordinate system. See
44
+ * {@link AnchoredPlacement}.
45
+ */
46
+ readonly x: number;
47
+ /**
48
+ * Vertical coordinate or displacement in the containing coordinate system. See
49
+ * {@link AnchoredPlacement}.
50
+ */
51
+ readonly y: number;
52
+ /**
53
+ * Horizontal extent in the units of the containing geometry or surface. See
54
+ * {@link AnchoredPlacement}.
55
+ */
56
+ readonly width: number;
57
+ /**
58
+ * Vertical extent in the units of the containing geometry or surface. See
59
+ * {@link AnchoredPlacement}.
60
+ */
61
+ readonly height: number;
62
+ }
63
+ /**
64
+ * Authored inputs for AnchoredLayout, including the declared data and presentation options.
65
+ *
66
+ * @see {@link AnchoredItem}
67
+ * @see {@link SignalValue}
68
+ * @see {@link AnchoredPlacement}
69
+ * @see {@link PibblNode}
70
+ * @see {@link AnchoredLayout}
71
+ */
72
+ export interface AnchoredLayoutProps<T extends AnchoredItem> {
73
+ /** Items to place around their declared anchors. See {@link SignalValue}. */
74
+ readonly items: SignalValue<readonly T[]>;
75
+ /** Direction in which this operation proceeds. See {@link AnchoredLayoutProps}. */
76
+ readonly direction?: "vertical" | "horizontal";
77
+ /** Spacing between adjacent items. See {@link SignalValue}. */
78
+ readonly gap?: SignalValue<number>;
79
+ /**
80
+ * Logical region constraining the content or query. See {@link SignalValue},
81
+ * {@link AnchoredPlacement}.
82
+ */
83
+ readonly bounds?: SignalValue<AnchoredPlacement>;
84
+ /**
85
+ * Descendant content or the callback that supplies it. See {@link AnchoredPlacement},
86
+ * {@link PibblNode}.
87
+ * @param item - Item being placed.
88
+ * @param placement - Computed anchor and placement geometry. See {@link AnchoredPlacement}.
89
+ * @returns Pibbl content for that item. See {@link PibblNode}.
90
+ */
91
+ readonly children: (item: T, placement: AnchoredPlacement) => PibblNode;
92
+ }
93
+ /**
94
+ * Arranges keyed Pibbl content together, clear of every supplied anchor.
95
+ *
96
+ * @param props - Anchored items, placement constraints, and child renderer. See
97
+ * {@link AnchoredLayoutProps} .
98
+ * @returns Pibbl content positioned using the computed placements. See {@link PibblNode}.
99
+ *
100
+ * @see {@link AnchoredLayoutProps}
101
+ * @see {@link PibblNode}
102
+ * @see {@link AnchoredItem}
103
+ */
104
+ export declare function AnchoredLayout<T extends AnchoredItem>(props: AnchoredLayoutProps<T>): PibblNode;
@@ -0,0 +1,166 @@
1
+ import { jsx } from "@pibbl/core/jsx-runtime";
2
+ import {
3
+ Group,
4
+ resolveSignalValue,
5
+ useLayoutBox
6
+ } from "@pibbl/core";
7
+ import {
8
+ pushLayoutBox,
9
+ setCurrentComponentAfterRender,
10
+ withHooksForbidden
11
+ } from "@pibbl/core/internal";
12
+ function finite(value, name, nonnegative = false) {
13
+ if (!Number.isFinite(value) || nonnegative && value < 0)
14
+ throw new RangeError(
15
+ `AnchoredLayout ${name} must be finite${nonnegative ? " and nonnegative" : ""}.`
16
+ );
17
+ return value;
18
+ }
19
+ function arrange(items, bounds, gap, vertical) {
20
+ finite(gap, "gap", true);
21
+ finite(bounds.x, "bounds.x");
22
+ finite(bounds.y, "bounds.y");
23
+ finite(bounds.width, "bounds.width", true);
24
+ finite(bounds.height, "bounds.height", true);
25
+ finite(bounds.x + bounds.width, "bounds right");
26
+ finite(bounds.y + bounds.height, "bounds bottom");
27
+ const keys = /* @__PURE__ */ new Set();
28
+ const rows = items.map((item, index) => {
29
+ if (typeof item.key !== "string" && typeof item.key !== "number")
30
+ throw new TypeError("AnchoredLayout keys must be strings or numbers.");
31
+ const key = String(item.key);
32
+ if (keys.has(key))
33
+ throw new Error(`AnchoredLayout duplicate key "${key}".`);
34
+ keys.add(key);
35
+ finite(item.anchor.x, "anchor.x");
36
+ finite(item.anchor.y, "anchor.y");
37
+ finite(item.width, "width", true);
38
+ finite(item.height, "height", true);
39
+ const radius = finite(item.anchorRadius ?? 0, "anchorRadius", true);
40
+ return {
41
+ item,
42
+ index,
43
+ key,
44
+ radius,
45
+ along: vertical ? item.anchor.y : item.anchor.x,
46
+ across: vertical ? item.anchor.x : item.anchor.y,
47
+ size: vertical ? item.height : item.width,
48
+ breadth: vertical ? item.width : item.height,
49
+ position: 0
50
+ };
51
+ });
52
+ if (!rows.length) return [];
53
+ rows.sort(
54
+ (a, b) => a.along - b.along || (a.key < b.key ? -1 : a.key > b.key ? 1 : 0)
55
+ );
56
+ const start = vertical ? bounds.y : bounds.x;
57
+ const end = finite(
58
+ start + (vertical ? bounds.height : bounds.width),
59
+ "packing end"
60
+ );
61
+ const acrossStart = vertical ? bounds.x : bounds.y;
62
+ const acrossEnd = finite(
63
+ acrossStart + (vertical ? bounds.width : bounds.height),
64
+ "cross-axis end"
65
+ );
66
+ let positive = -Infinity, negative = Infinity, breadth = 0, cursor = start;
67
+ for (const row of rows) {
68
+ positive = Math.max(
69
+ positive,
70
+ finite(row.across + row.radius + gap, "anchor clearance")
71
+ );
72
+ negative = Math.min(
73
+ negative,
74
+ finite(row.across - row.radius - gap, "anchor clearance")
75
+ );
76
+ breadth = Math.max(breadth, row.breadth);
77
+ row.position = Math.max(start, row.along - row.size / 2, cursor);
78
+ cursor = finite(row.position + row.size + gap, "packing position");
79
+ }
80
+ let limit = end;
81
+ for (let i = rows.length - 1; i >= 0; i--) {
82
+ const row = rows[i];
83
+ row.position = Math.min(row.position, limit - row.size);
84
+ limit = finite(row.position - gap, "packing limit");
85
+ }
86
+ const shift = Math.max(0, start - rows[0].position);
87
+ const positiveFits = positive >= acrossStart && positive + breadth <= acrossEnd;
88
+ const negativeFits = negative - breadth >= acrossStart && negative <= acrossEnd;
89
+ const usePositive = positiveFits || !negativeFits;
90
+ const placements = new Array(items.length);
91
+ for (const row of rows) {
92
+ const along = finite(row.position + shift, "placement");
93
+ const across = finite(
94
+ usePositive ? positive : negative - row.breadth,
95
+ "placement"
96
+ );
97
+ const x = vertical ? across : along, y = vertical ? along : across;
98
+ finite(x + row.item.width, "placement right");
99
+ finite(y + row.item.height, "placement bottom");
100
+ placements[row.index] = {
101
+ x,
102
+ y,
103
+ width: row.item.width,
104
+ height: row.item.height
105
+ };
106
+ }
107
+ return placements;
108
+ }
109
+ function Item({
110
+ item,
111
+ placement,
112
+ render
113
+ }) {
114
+ const box = { x: 0, y: 0, width: placement.width, height: placement.height };
115
+ const outer = pushLayoutBox(box);
116
+ let inner;
117
+ try {
118
+ inner = pushLayoutBox(box);
119
+ setCurrentComponentAfterRender(() => {
120
+ inner();
121
+ outer();
122
+ });
123
+ } catch (error) {
124
+ inner?.();
125
+ outer();
126
+ throw error;
127
+ }
128
+ return withHooksForbidden(
129
+ "Pibbl hooks cannot be called in AnchoredLayout children; return a component instead.",
130
+ () => render(item, placement)
131
+ );
132
+ }
133
+ function AnchoredLayout(props) {
134
+ const allocation = useLayoutBox();
135
+ const items = resolveSignalValue(props.items);
136
+ if (!Array.isArray(items))
137
+ throw new TypeError("AnchoredLayout items must be an array.");
138
+ if (typeof props.children !== "function")
139
+ throw new TypeError(
140
+ "AnchoredLayout children must be a synchronous function."
141
+ );
142
+ const direction = props.direction ?? "vertical";
143
+ if (direction !== "vertical" && direction !== "horizontal")
144
+ throw new TypeError(
145
+ "AnchoredLayout direction must be vertical or horizontal."
146
+ );
147
+ const bounds = props.bounds === void 0 ? { x: 0, y: 0, width: allocation.width, height: allocation.height } : resolveSignalValue(props.bounds);
148
+ const placements = arrange(
149
+ items,
150
+ bounds,
151
+ resolveSignalValue(props.gap ?? 8),
152
+ direction === "vertical"
153
+ );
154
+ return items.map((item, i) => /* @__PURE__ */ jsx(
155
+ Group,
156
+ {
157
+ style: { translateX: placements[i].x, translateY: placements[i].y },
158
+ children: /* @__PURE__ */ jsx(Item, { item, placement: placements[i], render: props.children })
159
+ },
160
+ String(item.key)
161
+ ));
162
+ }
163
+ export {
164
+ AnchoredLayout
165
+ };
166
+ //# sourceMappingURL=anchored-layout.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/features/viz/lib/anchored-layout.tsx"],
4
+ "sourcesContent": ["import {\n Group,\n resolveSignalValue,\n useLayoutBox,\n type PibblNode,\n type SignalValue,\n} from \"@pibbl/core\";\nimport {\n pushLayoutBox,\n setCurrentComponentAfterRender,\n withHooksForbidden,\n} from \"@pibbl/core/internal\";\n\n/**\n * Declared outer box and protected anchor, all in the parent's local coordinates.\n *\n * @see {@link AnchoredLayout}\n * @see {@link AnchoredLayoutProps}\n */\nexport interface AnchoredItem {\n /** Stable identity used by the containing protocol. See {@link AnchoredItem}. */\n readonly key: string | number;\n /** Logical point to which the content or result is anchored. See {@link AnchoredItem}. */\n readonly anchor: Readonly<{\n /**\n * Horizontal coordinate or displacement in the containing coordinate system. See\n * {@link AnchoredItem}.\n */\n x: number;\n /**\n * Vertical coordinate or displacement in the containing coordinate system. See\n * {@link AnchoredItem}.\n */\n y: number;\n }>;\n /** Clearance around the anchor before placing the item. See {@link AnchoredItem}. */\n readonly anchorRadius?: number;\n /**\n * Horizontal extent in the units of the containing geometry or surface. See {@link AnchoredItem}\n * .\n */\n readonly width: number;\n /**\n * Vertical extent in the units of the containing geometry or surface. See {@link AnchoredItem}.\n */\n readonly height: number;\n}\n/**\n * The resolved logical rectangle assigned to an anchored item.\n *\n * @see {@link AnchoredLayoutProps}\n */\nexport interface AnchoredPlacement {\n /**\n * Horizontal coordinate or displacement in the containing coordinate system. See\n * {@link AnchoredPlacement}.\n */\n readonly x: number;\n /**\n * Vertical coordinate or displacement in the containing coordinate system. See\n * {@link AnchoredPlacement}.\n */\n readonly y: number;\n /**\n * Horizontal extent in the units of the containing geometry or surface. See\n * {@link AnchoredPlacement}.\n */\n readonly width: number;\n /**\n * Vertical extent in the units of the containing geometry or surface. See\n * {@link AnchoredPlacement}.\n */\n readonly height: number;\n}\n/**\n * Authored inputs for AnchoredLayout, including the declared data and presentation options.\n *\n * @see {@link AnchoredItem}\n * @see {@link SignalValue}\n * @see {@link AnchoredPlacement}\n * @see {@link PibblNode}\n * @see {@link AnchoredLayout}\n */\nexport interface AnchoredLayoutProps<T extends AnchoredItem> {\n /** Items to place around their declared anchors. See {@link SignalValue}. */\n readonly items: SignalValue<readonly T[]>;\n /** Direction in which this operation proceeds. See {@link AnchoredLayoutProps}. */\n readonly direction?: \"vertical\" | \"horizontal\";\n /** Spacing between adjacent items. See {@link SignalValue}. */\n readonly gap?: SignalValue<number>;\n /**\n * Logical region constraining the content or query. See {@link SignalValue},\n * {@link AnchoredPlacement}.\n */\n readonly bounds?: SignalValue<AnchoredPlacement>;\n /**\n * Descendant content or the callback that supplies it. See {@link AnchoredPlacement},\n * {@link PibblNode}.\n * @param item - Item being placed.\n * @param placement - Computed anchor and placement geometry. See {@link AnchoredPlacement}.\n * @returns Pibbl content for that item. See {@link PibblNode}.\n */\n readonly children: (item: T, placement: AnchoredPlacement) => PibblNode;\n}\nfunction finite(value: number, name: string, nonnegative = false) {\n if (!Number.isFinite(value) || (nonnegative && value < 0))\n throw new RangeError(\n `AnchoredLayout ${name} must be finite${nonnegative ? \" and nonnegative\" : \"\"}.`,\n );\n return value;\n}\nfunction arrange(\n items: readonly AnchoredItem[],\n bounds: AnchoredPlacement,\n gap: number,\n vertical: boolean,\n): AnchoredPlacement[] {\n finite(gap, \"gap\", true);\n finite(bounds.x, \"bounds.x\");\n finite(bounds.y, \"bounds.y\");\n finite(bounds.width, \"bounds.width\", true);\n finite(bounds.height, \"bounds.height\", true);\n finite(bounds.x + bounds.width, \"bounds right\");\n finite(bounds.y + bounds.height, \"bounds bottom\");\n const keys = new Set<string>();\n const rows = items.map((item, index) => {\n if (typeof item.key !== \"string\" && typeof item.key !== \"number\")\n throw new TypeError(\"AnchoredLayout keys must be strings or numbers.\");\n const key = String(item.key);\n if (keys.has(key))\n throw new Error(`AnchoredLayout duplicate key \"${key}\".`);\n keys.add(key);\n finite(item.anchor.x, \"anchor.x\");\n finite(item.anchor.y, \"anchor.y\");\n finite(item.width, \"width\", true);\n finite(item.height, \"height\", true);\n const radius = finite(item.anchorRadius ?? 0, \"anchorRadius\", true);\n return {\n item,\n index,\n key,\n radius,\n along: vertical ? item.anchor.y : item.anchor.x,\n across: vertical ? item.anchor.x : item.anchor.y,\n size: vertical ? item.height : item.width,\n breadth: vertical ? item.width : item.height,\n position: 0,\n };\n });\n if (!rows.length) return [];\n // Sort a private working list; preserve source paint order when rendering.\n rows.sort(\n (a, b) => a.along - b.along || (a.key < b.key ? -1 : a.key > b.key ? 1 : 0),\n );\n const start = vertical ? bounds.y : bounds.x;\n const end = finite(\n start + (vertical ? bounds.height : bounds.width),\n \"packing end\",\n );\n const acrossStart = vertical ? bounds.x : bounds.y;\n const acrossEnd = finite(\n acrossStart + (vertical ? bounds.width : bounds.height),\n \"cross-axis end\",\n );\n let positive = -Infinity,\n negative = Infinity,\n breadth = 0,\n cursor = start;\n for (const row of rows) {\n positive = Math.max(\n positive,\n finite(row.across + row.radius + gap, \"anchor clearance\"),\n );\n negative = Math.min(\n negative,\n finite(row.across - row.radius - gap, \"anchor clearance\"),\n );\n breadth = Math.max(breadth, row.breadth);\n row.position = Math.max(start, row.along - row.size / 2, cursor);\n cursor = finite(row.position + row.size + gap, \"packing position\");\n }\n // Back-pack at the far edge, then preserve separation by overflowing if needed.\n let limit = end;\n for (let i = rows.length - 1; i >= 0; i--) {\n const row = rows[i];\n row.position = Math.min(row.position, limit - row.size);\n limit = finite(row.position - gap, \"packing limit\");\n }\n const shift = Math.max(0, start - rows[0].position);\n const positiveFits =\n positive >= acrossStart && positive + breadth <= acrossEnd;\n const negativeFits =\n negative - breadth >= acrossStart && negative <= acrossEnd;\n const usePositive = positiveFits || !negativeFits;\n const placements: AnchoredPlacement[] = new Array(items.length);\n for (const row of rows) {\n const along = finite(row.position + shift, \"placement\");\n const across = finite(\n usePositive ? positive : negative - row.breadth,\n \"placement\",\n );\n const x = vertical ? across : along,\n y = vertical ? along : across;\n finite(x + row.item.width, \"placement right\");\n finite(y + row.item.height, \"placement bottom\");\n placements[row.index] = {\n x,\n y,\n width: row.item.width,\n height: row.item.height,\n };\n }\n return placements;\n}\nfunction Item<T extends AnchoredItem>({\n item,\n placement,\n render,\n}: {\n item: T;\n placement: AnchoredPlacement;\n render: AnchoredLayoutProps<T>[\"children\"];\n}): PibblNode {\n const box = { x: 0, y: 0, width: placement.width, height: placement.height };\n // Both the received allocation and percentage basis belong to the declared box.\n const outer = pushLayoutBox(box);\n let inner: (() => void) | undefined;\n try {\n inner = pushLayoutBox(box);\n setCurrentComponentAfterRender(() => {\n inner!();\n outer();\n });\n } catch (error) {\n inner?.();\n outer();\n throw error;\n }\n return withHooksForbidden(\n \"Pibbl hooks cannot be called in AnchoredLayout children; return a component instead.\",\n () => render(item, placement),\n );\n}\n/**\n * Arranges keyed Pibbl content together, clear of every supplied anchor.\n *\n * @param props - Anchored items, placement constraints, and child renderer. See\n * {@link AnchoredLayoutProps} .\n * @returns Pibbl content positioned using the computed placements. See {@link PibblNode}.\n *\n * @see {@link AnchoredLayoutProps}\n * @see {@link PibblNode}\n * @see {@link AnchoredItem}\n */\nexport function AnchoredLayout<T extends AnchoredItem>(\n props: AnchoredLayoutProps<T>,\n): PibblNode {\n const allocation = useLayoutBox();\n const items = resolveSignalValue(props.items);\n if (!Array.isArray(items))\n throw new TypeError(\"AnchoredLayout items must be an array.\");\n if (typeof props.children !== \"function\")\n throw new TypeError(\n \"AnchoredLayout children must be a synchronous function.\",\n );\n const direction = props.direction ?? \"vertical\";\n if (direction !== \"vertical\" && direction !== \"horizontal\")\n throw new TypeError(\n \"AnchoredLayout direction must be vertical or horizontal.\",\n );\n const bounds =\n props.bounds === undefined\n ? { x: 0, y: 0, width: allocation.width, height: allocation.height }\n : resolveSignalValue(props.bounds);\n const placements = arrange(\n items,\n bounds,\n resolveSignalValue(props.gap ?? 8),\n direction === \"vertical\",\n );\n return items.map((item, i) => (\n <Group\n key={String(item.key)}\n style={{ translateX: placements[i].x, translateY: placements[i].y }}\n >\n <Item item={item} placement={placements[i]} render={props.children} />\n </Group>\n ));\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,10 @@
1
+ import type { AxisProps } from "./types.js";
2
+ /**
3
+ * Draws ticks and labels using a named scale and the configured orientation and style.
4
+ *
5
+ * @param props - Scale, orientation, tick, label, and styling options. See {@link AxisProps}.
6
+ * @returns Pibbl nodes drawing the axis.
7
+ *
8
+ * @see {@link AxisProps}
9
+ */
10
+ export declare function Axis(props: AxisProps): (import("../../../jsx-runtime.js").JSX.Element[] | import("../../../jsx-runtime.js").JSX.Element)[];
@@ -0,0 +1,116 @@
1
+ import { jsx } from "@pibbl/core/jsx-runtime";
2
+ import { Path, Text, resolveSignalValue } from "@pibbl/core";
3
+ import { lookupScale } from "./scale-context.js";
4
+ import { width, opacity } from "./paint.js";
5
+ function ticks(scale, props) {
6
+ if (props.tickValues !== void 0 && props.tickCount !== void 0)
7
+ throw new TypeError("Axis tickValues and tickCount are mutually exclusive.");
8
+ const explicit = props.tickValues === void 0 ? void 0 : resolveSignalValue(props.tickValues);
9
+ if (explicit !== void 0) {
10
+ if (!Array.isArray(explicit) || explicit.length > 100)
11
+ throw new RangeError("Axis tickValues must be an array with at most 100 values.");
12
+ const seen = /* @__PURE__ */ new Set();
13
+ for (const value of explicit) {
14
+ if (seen.has(value)) throw new RangeError("Axis tickValues must not contain duplicates.");
15
+ seen.add(value);
16
+ if (scale.type === "linear") {
17
+ if (typeof value !== "number" || !Number.isFinite(value))
18
+ throw new TypeError("Axis tickValues for a linear scale must be finite numbers.");
19
+ const [a, b] = scale.domain;
20
+ if (value < Math.min(a, b) || value > Math.max(a, b))
21
+ throw new RangeError("Axis tickValues must be within the scale domain.");
22
+ } else if (typeof value !== "string" && (typeof value !== "number" || !Number.isFinite(value)) || scale.map(value) === void 0) {
23
+ throw new RangeError("Axis tickValues must be known band categories.");
24
+ }
25
+ }
26
+ return explicit;
27
+ }
28
+ const count = resolveSignalValue(props.tickCount ?? 5);
29
+ if (!Number.isInteger(count) || count < 0 || count > 100)
30
+ throw new RangeError("Axis tickCount must be an integer from 0 to 100.");
31
+ if (count === 0) return [];
32
+ if (scale.type === "linear")
33
+ return count === 1 ? [scale.domain[0]] : scale.ticks(count);
34
+ const n = scale.domain.length;
35
+ if (n === 0) return [];
36
+ if (count === 1) return [scale.domain[0]];
37
+ const m = Math.min(count, n);
38
+ if (m === 1) return [scale.domain[0]];
39
+ return Array.from(
40
+ { length: m },
41
+ (_, index) => scale.domain[Math.round(index * (n - 1) / (m - 1))]
42
+ );
43
+ }
44
+ function position(scale, value) {
45
+ return scale.type === "band" ? scale.map(value) + scale.bandwidth / 2 : scale.map(value);
46
+ }
47
+ function Axis(props) {
48
+ if (props.position !== "bottom" && props.position !== "left" && props.position !== "top" && props.position !== "right")
49
+ throw new TypeError("Axis position must be bottom, left, top, or right.");
50
+ const source = lookupScale(props.scale, "Axis");
51
+ if (!source) throw new TypeError("Axis requires a scale ID.");
52
+ const scale = source.get();
53
+ const style = resolveSignalValue(props.style) ?? {};
54
+ const stroke = resolveSignalValue(style.stroke) ?? "#64748b";
55
+ const strokeWidth = width(resolveSignalValue(style.strokeWidth) ?? 1, "Axis");
56
+ const fill = resolveSignalValue(style.fill) ?? "#64748b";
57
+ const font = resolveSignalValue(style.font) ?? "12px sans-serif";
58
+ const alpha = opacity(resolveSignalValue(style.opacity) ?? 1, "Axis");
59
+ const horizontal = props.position === "bottom" || props.position === "top";
60
+ const outward = props.position === "bottom" || props.position === "right" ? 1 : -1;
61
+ const baseline = horizontal ? props.position === "bottom" ? scale.frame.height : 0 : props.position === "right" ? scale.frame.width : 0;
62
+ const selected = ticks(scale, props);
63
+ const path = new Path2D();
64
+ if (horizontal) {
65
+ path.moveTo(scale.range[0], baseline);
66
+ path.lineTo(scale.range[1], baseline);
67
+ } else {
68
+ path.moveTo(baseline, scale.range[0]);
69
+ path.lineTo(baseline, scale.range[1]);
70
+ }
71
+ const labels = selected.map((value, index) => {
72
+ const p = position(scale, value);
73
+ if (horizontal) {
74
+ path.moveTo(p, baseline);
75
+ path.lineTo(p, baseline + outward * 6);
76
+ } else {
77
+ path.moveTo(baseline, p);
78
+ path.lineTo(baseline + outward * 6, p);
79
+ }
80
+ const label = props.tickFormat ? props.tickFormat(value, index) : typeof value === "number" ? String(Number(value.toPrecision(6))) : value;
81
+ if (typeof label !== "string")
82
+ throw new TypeError("Axis tickFormat must return a string.");
83
+ return /* @__PURE__ */ jsx(
84
+ Text,
85
+ {
86
+ pointerEvents: "none",
87
+ style: {
88
+ left: horizontal ? p : baseline + outward * 10,
89
+ top: horizontal ? baseline + outward * 10 : p,
90
+ fill,
91
+ font,
92
+ opacity: alpha,
93
+ textAlign: horizontal ? "center" : outward < 0 ? "right" : "left",
94
+ textBaseline: horizontal ? outward > 0 ? "top" : "bottom" : "middle"
95
+ },
96
+ children: label
97
+ },
98
+ index
99
+ );
100
+ });
101
+ return [
102
+ /* @__PURE__ */ jsx(
103
+ Path,
104
+ {
105
+ pointerEvents: "none",
106
+ style: { d: path, stroke, strokeWidth, opacity: alpha }
107
+ },
108
+ "axis"
109
+ ),
110
+ labels
111
+ ];
112
+ }
113
+ export {
114
+ Axis
115
+ };
116
+ //# sourceMappingURL=axis.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/features/viz/lib/axis.tsx"],
4
+ "sourcesContent": ["import { Path, Text, resolveSignalValue } from \"@pibbl/core\";\nimport type { AxisProps, BandCategory, ResolvedScale } from \"./types.js\";\nimport { lookupScale } from \"./scale-context.js\";\nimport { width, opacity } from \"./paint.js\";\n\ntype Tick = number | string;\n\nfunction ticks(scale: ResolvedScale, props: AxisProps): readonly Tick[] {\n if (props.tickValues !== undefined && props.tickCount !== undefined)\n throw new TypeError(\"Axis tickValues and tickCount are mutually exclusive.\");\n const explicit = props.tickValues === undefined\n ? undefined\n : resolveSignalValue(props.tickValues);\n if (explicit !== undefined) {\n if (!Array.isArray(explicit) || explicit.length > 100)\n throw new RangeError(\"Axis tickValues must be an array with at most 100 values.\");\n const seen = new Set<Tick>();\n for (const value of explicit) {\n if (seen.has(value)) throw new RangeError(\"Axis tickValues must not contain duplicates.\");\n seen.add(value);\n if (scale.type === \"linear\") {\n if (typeof value !== \"number\" || !Number.isFinite(value))\n throw new TypeError(\"Axis tickValues for a linear scale must be finite numbers.\");\n const [a, b] = scale.domain;\n if (value < Math.min(a, b) || value > Math.max(a, b))\n throw new RangeError(\"Axis tickValues must be within the scale domain.\");\n } else if (\n (typeof value !== \"string\" &&\n (typeof value !== \"number\" || !Number.isFinite(value))) ||\n scale.map(value as BandCategory) === undefined\n ) {\n throw new RangeError(\"Axis tickValues must be known band categories.\");\n }\n }\n return explicit;\n }\n const count = resolveSignalValue(props.tickCount ?? 5);\n if (!Number.isInteger(count) || count < 0 || count > 100)\n throw new RangeError(\"Axis tickCount must be an integer from 0 to 100.\");\n if (count === 0) return [];\n if (scale.type === \"linear\")\n return count === 1 ? [scale.domain[0]] : scale.ticks(count);\n const n = scale.domain.length;\n if (n === 0) return [];\n if (count === 1) return [scale.domain[0]];\n const m = Math.min(count, n);\n if (m === 1) return [scale.domain[0]];\n return Array.from(\n { length: m },\n (_, index) => scale.domain[Math.round((index * (n - 1)) / (m - 1))]!,\n );\n}\n\nfunction position(scale: ResolvedScale, value: Tick): number {\n return scale.type === \"band\"\n ? scale.map(value as BandCategory)! + scale.bandwidth / 2\n : scale.map(value as number);\n}\n\n/**\n * Draws ticks and labels using a named scale and the configured orientation and style.\n *\n * @param props - Scale, orientation, tick, label, and styling options. See {@link AxisProps}.\n * @returns Pibbl nodes drawing the axis.\n *\n * @see {@link AxisProps}\n */\nexport function Axis(props: AxisProps) {\n if (\n props.position !== \"bottom\" &&\n props.position !== \"left\" &&\n props.position !== \"top\" &&\n props.position !== \"right\"\n )\n throw new TypeError(\"Axis position must be bottom, left, top, or right.\");\n const source = lookupScale(props.scale, \"Axis\");\n if (!source) throw new TypeError(\"Axis requires a scale ID.\");\n const scale = source.get();\n const style = resolveSignalValue(props.style) ?? {};\n const stroke = resolveSignalValue(style.stroke) ?? \"#64748b\";\n const strokeWidth = width(resolveSignalValue(style.strokeWidth) ?? 1, \"Axis\");\n const fill = resolveSignalValue(style.fill) ?? \"#64748b\";\n const font = resolveSignalValue(style.font) ?? \"12px sans-serif\";\n const alpha = opacity(resolveSignalValue(style.opacity) ?? 1, \"Axis\");\n const horizontal = props.position === \"bottom\" || props.position === \"top\";\n const outward = props.position === \"bottom\" || props.position === \"right\" ? 1 : -1;\n const baseline = horizontal\n ? props.position === \"bottom\" ? scale.frame.height : 0\n : props.position === \"right\" ? scale.frame.width : 0;\n const selected = ticks(scale, props);\n const path = new Path2D();\n if (horizontal) {\n path.moveTo(scale.range[0], baseline);\n path.lineTo(scale.range[1], baseline);\n } else {\n path.moveTo(baseline, scale.range[0]);\n path.lineTo(baseline, scale.range[1]);\n }\n const labels = selected.map((value, index) => {\n const p = position(scale, value);\n if (horizontal) {\n path.moveTo(p, baseline);\n path.lineTo(p, baseline + outward * 6);\n } else {\n path.moveTo(baseline, p);\n path.lineTo(baseline + outward * 6, p);\n }\n const label = props.tickFormat\n ? props.tickFormat(value, index)\n : typeof value === \"number\"\n ? String(Number(value.toPrecision(6)))\n : value;\n if (typeof label !== \"string\")\n throw new TypeError(\"Axis tickFormat must return a string.\");\n return (\n <Text\n key={index}\n pointerEvents=\"none\"\n style={{\n left: horizontal ? p : baseline + outward * 10,\n top: horizontal ? baseline + outward * 10 : p,\n fill,\n font,\n opacity: alpha,\n textAlign: horizontal ? \"center\" : outward < 0 ? \"right\" : \"left\",\n textBaseline: horizontal ? outward > 0 ? \"top\" : \"bottom\" : \"middle\",\n }}\n >\n {label}\n </Text>\n );\n });\n return [\n <Path\n key=\"axis\"\n pointerEvents=\"none\"\n style={{ d: path, stroke, strokeWidth, opacity: alpha }}\n />,\n labels,\n ];\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { BandDomain, ResolvedBandScale, ScaleRange } from "./types.js";
2
+ /** Explicit category order; padding is measured in step units. */
3
+ export declare function resolveBandScale(input: BandDomain, rangeInput: ScaleRange, reverse: boolean, width: number, height: number, paddingInner: number, paddingOuter: number): ResolvedBandScale;
@@ -0,0 +1,57 @@
1
+ import { resolveLinearScale } from "./linear-scale.js";
2
+ function resolveBandScale(input, rangeInput, reverse, width, height, paddingInner, paddingOuter) {
3
+ if (!Array.isArray(input))
4
+ throw new TypeError("Band scale domain must be an array.");
5
+ const indices = /* @__PURE__ */ new Map();
6
+ for (const category of input) {
7
+ if (typeof category !== "string" && (typeof category !== "number" || !Number.isFinite(category)))
8
+ throw new TypeError(
9
+ "Band scale categories must be strings or finite numbers."
10
+ );
11
+ if (indices.has(category))
12
+ throw new TypeError(
13
+ `Band scale duplicate category: ${String(category)}.`
14
+ );
15
+ indices.set(category, indices.size);
16
+ }
17
+ if (!Number.isFinite(paddingInner) || paddingInner < 0 || paddingInner > 1)
18
+ throw new RangeError("Band scale paddingInner must be between 0 and 1.");
19
+ if (!Number.isFinite(paddingOuter) || paddingOuter < 0)
20
+ throw new RangeError(
21
+ "Band scale paddingOuter must be finite and nonnegative."
22
+ );
23
+ const { range, frame } = resolveLinearScale(
24
+ [0, 1],
25
+ rangeInput,
26
+ reverse,
27
+ width,
28
+ height
29
+ );
30
+ const count = input.length;
31
+ const span = Math.abs(range[1] - range[0]);
32
+ const denominator = Math.max(1, count - paddingInner + 2 * paddingOuter);
33
+ if (!Number.isFinite(denominator))
34
+ throw new RangeError("Band scale padding arithmetic must be finite.");
35
+ const step = count === 0 ? 0 : span / denominator;
36
+ const bandwidth = step * (1 - paddingInner);
37
+ const offset = (span - step * (count - paddingInner)) / 2;
38
+ const start = Math.min(...range) + offset;
39
+ const domain = Object.freeze([...input]);
40
+ return Object.freeze({
41
+ type: "band",
42
+ domain,
43
+ range,
44
+ frame,
45
+ bandwidth,
46
+ step,
47
+ map(value) {
48
+ const index = indices.get(value);
49
+ if (index === void 0) return void 0;
50
+ return start + (range[1] < range[0] ? count - 1 - index : index) * step;
51
+ }
52
+ });
53
+ }
54
+ export {
55
+ resolveBandScale
56
+ };
57
+ //# sourceMappingURL=band-scale.js.map