@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.
- package/LICENSE.txt +19 -0
- package/README.md +76 -0
- package/THIRD_PARTY_NOTICES.txt +205 -0
- package/dist/features/particles/index.d.ts +7 -0
- package/dist/features/particles/index.js +26 -0
- package/dist/features/particles/index.js.map +7 -0
- package/dist/features/particles/index.mjs +1 -0
- package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
- package/dist/features/particles/lib/canvas/component.d.ts +14 -0
- package/dist/features/particles/lib/canvas/component.js +249 -0
- package/dist/features/particles/lib/canvas/component.js.map +7 -0
- package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
- package/dist/features/particles/lib/canvas/executor.js +537 -0
- package/dist/features/particles/lib/canvas/executor.js.map +7 -0
- package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
- package/dist/features/particles/lib/canvas/primitive.js +50 -0
- package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
- package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
- package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
- package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
- package/dist/features/particles/lib/color.d.ts +7 -0
- package/dist/features/particles/lib/color.js +159 -0
- package/dist/features/particles/lib/color.js.map +7 -0
- package/dist/features/particles/lib/compiler.d.ts +134 -0
- package/dist/features/particles/lib/compiler.js +443 -0
- package/dist/features/particles/lib/compiler.js.map +7 -0
- package/dist/features/particles/lib/curve.d.ts +19 -0
- package/dist/features/particles/lib/curve.js +129 -0
- package/dist/features/particles/lib/curve.js.map +7 -0
- package/dist/features/particles/lib/definition-records.d.ts +58 -0
- package/dist/features/particles/lib/definition-records.js +500 -0
- package/dist/features/particles/lib/definition-records.js.map +7 -0
- package/dist/features/particles/lib/definition.d.ts +18 -0
- package/dist/features/particles/lib/definition.js +602 -0
- package/dist/features/particles/lib/definition.js.map +7 -0
- package/dist/features/particles/lib/emission.d.ts +54 -0
- package/dist/features/particles/lib/emission.js +184 -0
- package/dist/features/particles/lib/emission.js.map +7 -0
- package/dist/features/particles/lib/flow/field.d.ts +81 -0
- package/dist/features/particles/lib/flow/field.js +585 -0
- package/dist/features/particles/lib/flow/field.js.map +7 -0
- package/dist/features/particles/lib/flow/hook.d.ts +158 -0
- package/dist/features/particles/lib/flow/hook.js +215 -0
- package/dist/features/particles/lib/flow/hook.js.map +7 -0
- package/dist/features/particles/lib/flow/population.d.ts +25 -0
- package/dist/features/particles/lib/flow/population.js +104 -0
- package/dist/features/particles/lib/flow/population.js.map +7 -0
- package/dist/features/particles/lib/particle.d.ts +113 -0
- package/dist/features/particles/lib/particle.js +192 -0
- package/dist/features/particles/lib/particle.js.map +7 -0
- package/dist/features/particles/lib/random.d.ts +16 -0
- package/dist/features/particles/lib/random.js +61 -0
- package/dist/features/particles/lib/random.js.map +7 -0
- package/dist/features/particles/lib/sample.d.ts +32 -0
- package/dist/features/particles/lib/sample.js +397 -0
- package/dist/features/particles/lib/sample.js.map +7 -0
- package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
- package/dist/features/particles/lib/signal-inputs.js +41 -0
- package/dist/features/particles/lib/signal-inputs.js.map +7 -0
- package/dist/features/particles/lib/system/binding.d.ts +59 -0
- package/dist/features/particles/lib/system/binding.js +122 -0
- package/dist/features/particles/lib/system/binding.js.map +7 -0
- package/dist/features/particles/lib/system/controller.d.ts +58 -0
- package/dist/features/particles/lib/system/controller.js +1446 -0
- package/dist/features/particles/lib/system/controller.js.map +7 -0
- package/dist/features/particles/lib/system/hook.d.ts +13 -0
- package/dist/features/particles/lib/system/hook.js +52 -0
- package/dist/features/particles/lib/system/hook.js.map +7 -0
- package/dist/features/particles/lib/system/ownership.d.ts +26 -0
- package/dist/features/particles/lib/system/ownership.js +128 -0
- package/dist/features/particles/lib/system/ownership.js.map +7 -0
- package/dist/features/particles/lib/types.d.ts +983 -0
- package/dist/features/physics/2d-geometry.d.ts +216 -0
- package/dist/features/physics/2d-geometry.js +59 -0
- package/dist/features/physics/2d-geometry.js.map +7 -0
- package/dist/features/physics/2d-geometry.mjs +1 -0
- package/dist/features/physics/2d-testing.d.ts +80 -0
- package/dist/features/physics/2d-testing.js +141 -0
- package/dist/features/physics/2d-testing.js.map +7 -0
- package/dist/features/physics/2d-testing.mjs +1 -0
- package/dist/features/physics/2d.d.ts +165 -0
- package/dist/features/physics/2d.js +119 -0
- package/dist/features/physics/2d.js.map +7 -0
- package/dist/features/physics/2d.mjs +1 -0
- package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
- package/dist/features/physics/lib/2d/canvas/components.js +212 -0
- package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
- package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
- package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
- package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
- package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
- package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
- package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
- package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
- package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
- package/dist/features/physics/lib/2d/collision/casts.js +631 -0
- package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
- package/dist/features/physics/lib/2d/collision/epa.js +102 -0
- package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
- package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
- package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
- package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
- package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
- package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
- package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
- package/dist/features/physics/lib/2d/collision/support.js +155 -0
- package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
- package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
- package/dist/features/physics/lib/2d/math.d.ts +27 -0
- package/dist/features/physics/lib/2d/math.js +314 -0
- package/dist/features/physics/lib/2d/math.js.map +7 -0
- package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
- package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
- package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
- package/dist/features/physics/lib/2d/runtime/context.js +57 -0
- package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
- package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
- package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
- package/dist/features/physics/lib/2d/runtime/events.js +153 -0
- package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
- package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
- package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
- package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
- package/dist/features/physics/lib/2d/shape-records.js +26 -0
- package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
- package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
- package/dist/features/physics/lib/2d/shapes.js +543 -0
- package/dist/features/physics/lib/2d/shapes.js.map +7 -0
- package/dist/features/physics/lib/2d/types.d.ts +713 -0
- package/dist/features/physics/lib/2d/types.js +1 -0
- package/dist/features/physics/lib/2d/types.js.map +7 -0
- package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
- package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
- package/dist/features/physics/lib/2d/world/ccd.js +265 -0
- package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
- package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
- package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
- package/dist/features/physics/lib/2d/world/integrator.js +99 -0
- package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
- package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
- package/dist/features/physics/lib/2d/world/queries.js +424 -0
- package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
- package/dist/features/physics/lib/2d/world/rapier.js +655 -0
- package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
- package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
- package/dist/features/physics/lib/2d/world/solver.js +660 -0
- package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
- package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
- package/dist/features/physics/lib/2d/world/storage.js +371 -0
- package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
- package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
- package/dist/features/physics/lib/2d/world/world.js +1713 -0
- package/dist/features/physics/lib/2d/world/world.js.map +7 -0
- package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
- package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
- package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
- package/dist/features/physics/lib/shared/validation.d.ts +5 -0
- package/dist/features/physics/lib/shared/validation.js +48 -0
- package/dist/features/physics/lib/shared/validation.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.js +23 -0
- package/dist/features/sprites/formats/aseprite.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.mjs +1 -0
- package/dist/features/sprites/formats/texture-packer.js +14 -0
- package/dist/features/sprites/formats/texture-packer.js.map +7 -0
- package/dist/features/sprites/formats/texture-packer.mjs +1 -0
- package/dist/features/sprites/index.js +9 -0
- package/dist/features/sprites/index.js.map +7 -0
- package/dist/features/sprites/index.mjs +1 -0
- package/dist/features/sprites/loader.js +63 -0
- package/dist/features/sprites/loader.js.map +7 -0
- package/dist/features/sprites/model.js +64 -0
- package/dist/features/sprites/model.js.map +7 -0
- package/dist/features/sprites/sprite.js +31 -0
- package/dist/features/sprites/sprite.js.map +7 -0
- package/dist/features/textures/index.d.ts +22 -0
- package/dist/features/textures/index.js +31 -0
- package/dist/features/textures/index.js.map +7 -0
- package/dist/features/textures/index.mjs +1 -0
- package/dist/features/textures/lib/definitions.d.ts +117 -0
- package/dist/features/textures/lib/definitions.js +179 -0
- package/dist/features/textures/lib/definitions.js.map +7 -0
- package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
- package/dist/features/textures/lib/electric-boundary.js +11 -0
- package/dist/features/textures/lib/electric-boundary.js.map +7 -0
- package/dist/features/textures/lib/electric-shared.d.ts +69 -0
- package/dist/features/textures/lib/electric-shared.js +43 -0
- package/dist/features/textures/lib/electric-shared.js.map +7 -0
- package/dist/features/textures/lib/electric-sources.d.ts +50 -0
- package/dist/features/textures/lib/electric-sources.js +43 -0
- package/dist/features/textures/lib/electric-sources.js.map +7 -0
- package/dist/features/textures/lib/lightning.d.ts +72 -0
- package/dist/features/textures/lib/lightning.js +139 -0
- package/dist/features/textures/lib/lightning.js.map +7 -0
- package/dist/features/textures/lib/material-field.d.ts +12 -0
- package/dist/features/textures/lib/material-field.js +31 -0
- package/dist/features/textures/lib/material-field.js.map +7 -0
- package/dist/features/textures/lib/palette.d.ts +45 -0
- package/dist/features/textures/lib/palette.js +52 -0
- package/dist/features/textures/lib/palette.js.map +7 -0
- package/dist/features/textures/lib/presentation.d.ts +54 -0
- package/dist/features/textures/lib/presentation.js +83 -0
- package/dist/features/textures/lib/presentation.js.map +7 -0
- package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
- package/dist/features/textures/lib/procedural-texture.js +110 -0
- package/dist/features/textures/lib/procedural-texture.js.map +7 -0
- package/dist/features/textures/lib/rain-drops.d.ts +96 -0
- package/dist/features/textures/lib/rain-drops.js +322 -0
- package/dist/features/textures/lib/rain-drops.js.map +7 -0
- package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
- package/dist/features/textures/lib/reaction-diffusion.js +210 -0
- package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
- package/dist/features/textures/lib/simulation.d.ts +16 -0
- package/dist/features/textures/lib/simulation.js +85 -0
- package/dist/features/textures/lib/simulation.js.map +7 -0
- package/dist/features/textures/lib/tendrils.d.ts +57 -0
- package/dist/features/textures/lib/tendrils.js +216 -0
- package/dist/features/textures/lib/tendrils.js.map +7 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
- package/dist/features/textures/lib/wasm/electric.js +299 -0
- package/dist/features/textures/lib/wasm/electric.js.map +7 -0
- package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
- package/dist/features/textures/lib/wasm/memory.js +103 -0
- package/dist/features/textures/lib/wasm/memory.js.map +7 -0
- package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
- package/dist/features/textures/lib/water-surface.d.ts +92 -0
- package/dist/features/textures/lib/water-surface.js +378 -0
- package/dist/features/textures/lib/water-surface.js.map +7 -0
- package/dist/features/textures/lib/water-waves.d.ts +60 -0
- package/dist/features/textures/lib/water-waves.js +154 -0
- package/dist/features/textures/lib/water-waves.js.map +7 -0
- package/dist/features/viz/index.d.ts +28 -0
- package/dist/features/viz/index.js +45 -0
- package/dist/features/viz/index.js.map +7 -0
- package/dist/features/viz/index.mjs +1 -0
- package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
- package/dist/features/viz/lib/anchored-layout.js +166 -0
- package/dist/features/viz/lib/anchored-layout.js.map +7 -0
- package/dist/features/viz/lib/axis.d.ts +10 -0
- package/dist/features/viz/lib/axis.js +116 -0
- package/dist/features/viz/lib/axis.js.map +7 -0
- package/dist/features/viz/lib/band-scale.d.ts +3 -0
- package/dist/features/viz/lib/band-scale.js +57 -0
- package/dist/features/viz/lib/band-scale.js.map +7 -0
- package/dist/features/viz/lib/bar-fill.d.ts +16 -0
- package/dist/features/viz/lib/bar-fill.js +53 -0
- package/dist/features/viz/lib/bar-fill.js.map +7 -0
- package/dist/features/viz/lib/bar-series.d.ts +150 -0
- package/dist/features/viz/lib/bar-series.js +152 -0
- package/dist/features/viz/lib/bar-series.js.map +7 -0
- package/dist/features/viz/lib/hover-card.d.ts +92 -0
- package/dist/features/viz/lib/hover-card.js +146 -0
- package/dist/features/viz/lib/hover-card.js.map +7 -0
- package/dist/features/viz/lib/hover-data.d.ts +12 -0
- package/dist/features/viz/lib/hover-data.js +50 -0
- package/dist/features/viz/lib/hover-data.js.map +7 -0
- package/dist/features/viz/lib/hover-placement.d.ts +46 -0
- package/dist/features/viz/lib/hover-placement.js +51 -0
- package/dist/features/viz/lib/hover-placement.js.map +7 -0
- package/dist/features/viz/lib/hover-queries.d.ts +60 -0
- package/dist/features/viz/lib/hover-queries.js +185 -0
- package/dist/features/viz/lib/hover-queries.js.map +7 -0
- package/dist/features/viz/lib/hover-types.d.ts +277 -0
- package/dist/features/viz/lib/layout-pie.d.ts +13 -0
- package/dist/features/viz/lib/layout-pie.js +159 -0
- package/dist/features/viz/lib/layout-pie.js.map +7 -0
- package/dist/features/viz/lib/line-series.d.ts +11 -0
- package/dist/features/viz/lib/line-series.js +89 -0
- package/dist/features/viz/lib/line-series.js.map +7 -0
- package/dist/features/viz/lib/linear-scale.d.ts +3 -0
- package/dist/features/viz/lib/linear-scale.js +70 -0
- package/dist/features/viz/lib/linear-scale.js.map +7 -0
- package/dist/features/viz/lib/nearest.d.ts +82 -0
- package/dist/features/viz/lib/nearest.js +51 -0
- package/dist/features/viz/lib/nearest.js.map +7 -0
- package/dist/features/viz/lib/paint.d.ts +2 -0
- package/dist/features/viz/lib/paint.js +17 -0
- package/dist/features/viz/lib/paint.js.map +7 -0
- package/dist/features/viz/lib/pie-layout.d.ts +31 -0
- package/dist/features/viz/lib/pie-layout.js +324 -0
- package/dist/features/viz/lib/pie-layout.js.map +7 -0
- package/dist/features/viz/lib/pie-slices.d.ts +51 -0
- package/dist/features/viz/lib/pie-slices.js +50 -0
- package/dist/features/viz/lib/pie-slices.js.map +7 -0
- package/dist/features/viz/lib/pie-types.d.ts +215 -0
- package/dist/features/viz/lib/plot-series.d.ts +13 -0
- package/dist/features/viz/lib/plot-series.js +53 -0
- package/dist/features/viz/lib/plot-series.js.map +7 -0
- package/dist/features/viz/lib/plot-types.d.ts +63 -0
- package/dist/features/viz/lib/point-data.d.ts +5 -0
- package/dist/features/viz/lib/point-data.js +17 -0
- package/dist/features/viz/lib/point-data.js.map +7 -0
- package/dist/features/viz/lib/point-geometry.d.ts +2 -0
- package/dist/features/viz/lib/point-geometry.js +24 -0
- package/dist/features/viz/lib/point-geometry.js.map +7 -0
- package/dist/features/viz/lib/point-series.d.ts +11 -0
- package/dist/features/viz/lib/point-series.js +118 -0
- package/dist/features/viz/lib/point-series.js.map +7 -0
- package/dist/features/viz/lib/point-types.d.ts +94 -0
- package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
- package/dist/features/viz/lib/scale-adjust.js +25 -0
- package/dist/features/viz/lib/scale-adjust.js.map +7 -0
- package/dist/features/viz/lib/scale-context.d.ts +8 -0
- package/dist/features/viz/lib/scale-context.js +61 -0
- package/dist/features/viz/lib/scale-context.js.map +7 -0
- package/dist/features/viz/lib/scale.d.ts +11 -0
- package/dist/features/viz/lib/scale.js +80 -0
- package/dist/features/viz/lib/scale.js.map +7 -0
- package/dist/features/viz/lib/types.d.ts +414 -0
- package/dist/features/viz/lib/use-scale.d.ts +20 -0
- package/dist/features/viz/lib/use-scale.js +10 -0
- package/dist/features/viz/lib/use-scale.js.map +7 -0
- package/dist/filters/displacement-gpu.d.ts +38 -0
- package/dist/filters/displacement-gpu.js +243 -0
- package/dist/filters/displacement-gpu.js.map +7 -0
- package/dist/filters/displacement-math.d.ts +5 -0
- package/dist/filters/displacement-math.js +22 -0
- package/dist/filters/displacement-math.js.map +7 -0
- package/dist/filters/displacement.d.ts +13 -0
- package/dist/filters/displacement.js +65 -0
- package/dist/filters/displacement.js.map +7 -0
- package/dist/filters/filter-executor.d.ts +21 -0
- package/dist/filters/filter-executor.js +120 -0
- package/dist/filters/filter-executor.js.map +7 -0
- package/dist/filters/native-canvas-filter.d.ts +4 -0
- package/dist/filters/native-canvas-filter.js +105 -0
- package/dist/filters/native-canvas-filter.js.map +7 -0
- package/dist/filters/native-color.d.ts +2 -0
- package/dist/filters/native-color.js +200 -0
- package/dist/filters/native-color.js.map +7 -0
- package/dist/filters/native-operations.d.ts +8 -0
- package/dist/filters/native-operations.js +7 -0
- package/dist/filters/native-operations.js.map +7 -0
- package/dist/filters/native.d.ts +113 -0
- package/dist/filters/native.js +115 -0
- package/dist/filters/native.js.map +7 -0
- package/dist/filters/reflected-light.d.ts +12 -0
- package/dist/filters/reflected-light.js +93 -0
- package/dist/filters/reflected-light.js.map +7 -0
- package/dist/filters/reflection-gpu.d.ts +58 -0
- package/dist/filters/reflection-gpu.js +266 -0
- package/dist/filters/reflection-gpu.js.map +7 -0
- package/dist/filters/render-displacement-boundary.d.ts +12 -0
- package/dist/filters/render-displacement-boundary.js +116 -0
- package/dist/filters/render-displacement-boundary.js.map +7 -0
- package/dist/filters/render-reflection-boundary.d.ts +15 -0
- package/dist/filters/render-reflection-boundary.js +127 -0
- package/dist/filters/render-reflection-boundary.js.map +7 -0
- package/dist/filters.d.ts +5 -0
- package/dist/filters.js +29 -0
- package/dist/filters.js.map +7 -0
- package/dist/filters.mjs +1 -0
- package/dist/index.d.ts +111 -0
- package/dist/index.js +300 -0
- package/dist/index.js.map +7 -0
- package/dist/index.mjs +1 -0
- package/dist/internal.d.ts +160 -0
- package/dist/internal.js +320 -0
- package/dist/internal.js.map +7 -0
- package/dist/internal.mjs +1 -0
- package/dist/jsx-dev-runtime.d.ts +35 -0
- package/dist/jsx-dev-runtime.js +6 -0
- package/dist/jsx-dev-runtime.js.map +7 -0
- package/dist/jsx-dev-runtime.mjs +1 -0
- package/dist/jsx-runtime.d.ts +35 -0
- package/dist/jsx-runtime.js +7 -0
- package/dist/jsx-runtime.js.map +7 -0
- package/dist/jsx-runtime.mjs +1 -0
- package/dist/lib/animation/definition.d.ts +140 -0
- package/dist/lib/animation/definition.js +605 -0
- package/dist/lib/animation/definition.js.map +7 -0
- package/dist/lib/animation/easing.d.ts +55 -0
- package/dist/lib/animation/easing.js +112 -0
- package/dist/lib/animation/easing.js.map +7 -0
- package/dist/lib/animation/evaluate.d.ts +118 -0
- package/dist/lib/animation/evaluate.js +2398 -0
- package/dist/lib/animation/evaluate.js.map +7 -0
- package/dist/lib/animation/playback.d.ts +30 -0
- package/dist/lib/animation/playback.js +932 -0
- package/dist/lib/animation/playback.js.map +7 -0
- package/dist/lib/animation/program.d.ts +145 -0
- package/dist/lib/animation/program.js +741 -0
- package/dist/lib/animation/program.js.map +7 -0
- package/dist/lib/animation/spring.d.ts +30 -0
- package/dist/lib/animation/spring.js +324 -0
- package/dist/lib/animation/spring.js.map +7 -0
- package/dist/lib/animation/types.d.ts +418 -0
- package/dist/lib/animation/writer-leases.d.ts +47 -0
- package/dist/lib/animation/writer-leases.js +314 -0
- package/dist/lib/animation/writer-leases.js.map +7 -0
- package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
- package/dist/lib/backend/canvas-2d-backend.js +97 -0
- package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
- package/dist/lib/backend/types.d.ts +309 -0
- package/dist/lib/backend/types.js +26 -0
- package/dist/lib/backend/types.js.map +7 -0
- package/dist/lib/components/arc-geometry.d.ts +4 -0
- package/dist/lib/components/arc-geometry.js +46 -0
- package/dist/lib/components/arc-geometry.js.map +7 -0
- package/dist/lib/components/arc.d.ts +55 -0
- package/dist/lib/components/arc.js +91 -0
- package/dist/lib/components/arc.js.map +7 -0
- package/dist/lib/components/circle.d.ts +49 -0
- package/dist/lib/components/circle.js +46 -0
- package/dist/lib/components/circle.js.map +7 -0
- package/dist/lib/components/clip.d.ts +43 -0
- package/dist/lib/components/clip.js +24 -0
- package/dist/lib/components/clip.js.map +7 -0
- package/dist/lib/components/ellipse.d.ts +53 -0
- package/dist/lib/components/ellipse.js +59 -0
- package/dist/lib/components/ellipse.js.map +7 -0
- package/dist/lib/components/g.d.ts +56 -0
- package/dist/lib/components/g.js +24 -0
- package/dist/lib/components/g.js.map +7 -0
- package/dist/lib/components/horizontal-line.d.ts +56 -0
- package/dist/lib/components/horizontal-line.js +71 -0
- package/dist/lib/components/horizontal-line.js.map +7 -0
- package/dist/lib/components/html-box.d.ts +16 -0
- package/dist/lib/components/html-box.js +57 -0
- package/dist/lib/components/html-box.js.map +7 -0
- package/dist/lib/components/img.d.ts +24 -0
- package/dist/lib/components/img.js +150 -0
- package/dist/lib/components/img.js.map +7 -0
- package/dist/lib/components/layer-node-equality.d.ts +65 -0
- package/dist/lib/components/layer-node-equality.js +91 -0
- package/dist/lib/components/layer-node-equality.js.map +7 -0
- package/dist/lib/components/layer.d.ts +34 -0
- package/dist/lib/components/layer.js +172 -0
- package/dist/lib/components/layer.js.map +7 -0
- package/dist/lib/components/line.d.ts +51 -0
- package/dist/lib/components/line.js +76 -0
- package/dist/lib/components/line.js.map +7 -0
- package/dist/lib/components/path.d.ts +28 -0
- package/dist/lib/components/path.js +47 -0
- package/dist/lib/components/path.js.map +7 -0
- package/dist/lib/components/polygon.d.ts +45 -0
- package/dist/lib/components/polygon.js +93 -0
- package/dist/lib/components/polygon.js.map +7 -0
- package/dist/lib/components/rect.d.ts +24 -0
- package/dist/lib/components/rect.js +83 -0
- package/dist/lib/components/rect.js.map +7 -0
- package/dist/lib/components/regular-polygon.d.ts +102 -0
- package/dist/lib/components/regular-polygon.js +112 -0
- package/dist/lib/components/regular-polygon.js.map +7 -0
- package/dist/lib/components/rounded-corner-style.d.ts +7 -0
- package/dist/lib/components/rounded-corner-style.js +40 -0
- package/dist/lib/components/rounded-corner-style.js.map +7 -0
- package/dist/lib/components/shape-style.d.ts +7 -0
- package/dist/lib/components/shape-style.js +52 -0
- package/dist/lib/components/shape-style.js.map +7 -0
- package/dist/lib/components/star.d.ts +56 -0
- package/dist/lib/components/star.js +98 -0
- package/dist/lib/components/star.js.map +7 -0
- package/dist/lib/components/structural-events.d.ts +10 -0
- package/dist/lib/components/structural-events.js +8 -0
- package/dist/lib/components/structural-events.js.map +7 -0
- package/dist/lib/components/svg-path.d.ts +23 -0
- package/dist/lib/components/svg-path.js +25 -0
- package/dist/lib/components/svg-path.js.map +7 -0
- package/dist/lib/components/text-layout.d.ts +31 -0
- package/dist/lib/components/text-layout.js +139 -0
- package/dist/lib/components/text-layout.js.map +7 -0
- package/dist/lib/components/text.d.ts +29 -0
- package/dist/lib/components/text.js +174 -0
- package/dist/lib/components/text.js.map +7 -0
- package/dist/lib/components/vertical-line.d.ts +57 -0
- package/dist/lib/components/vertical-line.js +71 -0
- package/dist/lib/components/vertical-line.js.map +7 -0
- package/dist/lib/components/wedge.d.ts +55 -0
- package/dist/lib/components/wedge.js +93 -0
- package/dist/lib/components/wedge.js.map +7 -0
- package/dist/lib/define-primitive.d.ts +82 -0
- package/dist/lib/define-primitive.js +85 -0
- package/dist/lib/define-primitive.js.map +7 -0
- package/dist/lib/development.d.ts +2 -0
- package/dist/lib/development.js +5 -0
- package/dist/lib/development.js.map +7 -0
- package/dist/lib/element/children.d.ts +16 -0
- package/dist/lib/element/children.js +333 -0
- package/dist/lib/element/children.js.map +7 -0
- package/dist/lib/element/create-element.d.ts +34 -0
- package/dist/lib/element/create-element.js +75 -0
- package/dist/lib/element/create-element.js.map +7 -0
- package/dist/lib/element/fragment.d.ts +15 -0
- package/dist/lib/element/fragment.js +11 -0
- package/dist/lib/element/fragment.js.map +7 -0
- package/dist/lib/element/jsx-runtime.d.ts +48 -0
- package/dist/lib/element/jsx-runtime.js +16 -0
- package/dist/lib/element/jsx-runtime.js.map +7 -0
- package/dist/lib/element/metadata.d.ts +96 -0
- package/dist/lib/element/metadata.js +160 -0
- package/dist/lib/element/metadata.js.map +7 -0
- package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
- package/dist/lib/element/resolve-primitive-inputs.js +83 -0
- package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
- package/dist/lib/element/types.d.ts +123 -0
- package/dist/lib/element-enhancers.d.ts +134 -0
- package/dist/lib/element-enhancers.js +193 -0
- package/dist/lib/element-enhancers.js.map +7 -0
- package/dist/lib/events/adapters/clipboard.d.ts +9 -0
- package/dist/lib/events/adapters/clipboard.js +23 -0
- package/dist/lib/events/adapters/clipboard.js.map +7 -0
- package/dist/lib/events/adapters/drag.d.ts +12 -0
- package/dist/lib/events/adapters/drag.js +29 -0
- package/dist/lib/events/adapters/drag.js.map +7 -0
- package/dist/lib/events/adapters/editing.d.ts +15 -0
- package/dist/lib/events/adapters/editing.js +41 -0
- package/dist/lib/events/adapters/editing.js.map +7 -0
- package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
- package/dist/lib/events/adapters/keyboard-focus.js +36 -0
- package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
- package/dist/lib/events/adapters/mouse.d.ts +17 -0
- package/dist/lib/events/adapters/mouse.js +32 -0
- package/dist/lib/events/adapters/mouse.js.map +7 -0
- package/dist/lib/events/adapters/pointer.d.ts +19 -0
- package/dist/lib/events/adapters/pointer.js +40 -0
- package/dist/lib/events/adapters/pointer.js.map +7 -0
- package/dist/lib/events/adapters/touch.d.ts +16 -0
- package/dist/lib/events/adapters/touch.js +36 -0
- package/dist/lib/events/adapters/touch.js.map +7 -0
- package/dist/lib/events/adapters/wheel.d.ts +10 -0
- package/dist/lib/events/adapters/wheel.js +16 -0
- package/dist/lib/events/adapters/wheel.js.map +7 -0
- package/dist/lib/events/boundary-transitions.d.ts +9 -0
- package/dist/lib/events/boundary-transitions.js +16 -0
- package/dist/lib/events/boundary-transitions.js.map +7 -0
- package/dist/lib/events/dispatch.d.ts +21 -0
- package/dist/lib/events/dispatch.js +1078 -0
- package/dist/lib/events/dispatch.js.map +7 -0
- package/dist/lib/events/event-definitions.d.ts +23 -0
- package/dist/lib/events/event-definitions.js +74 -0
- package/dist/lib/events/event-definitions.js.map +7 -0
- package/dist/lib/events/event-facade.d.ts +19 -0
- package/dist/lib/events/event-facade.js +188 -0
- package/dist/lib/events/event-facade.js.map +7 -0
- package/dist/lib/events/event-path.d.ts +3 -0
- package/dist/lib/events/event-path.js +43 -0
- package/dist/lib/events/event-path.js.map +7 -0
- package/dist/lib/events/hit-test.d.ts +13 -0
- package/dist/lib/events/hit-test.js +135 -0
- package/dist/lib/events/hit-test.js.map +7 -0
- package/dist/lib/events/native-listener-hub.d.ts +10 -0
- package/dist/lib/events/native-listener-hub.js +72 -0
- package/dist/lib/events/native-listener-hub.js.map +7 -0
- package/dist/lib/events/paint-entry.d.ts +66 -0
- package/dist/lib/events/paint-entry.js +30 -0
- package/dist/lib/events/paint-entry.js.map +7 -0
- package/dist/lib/events/pointer-capture.d.ts +23 -0
- package/dist/lib/events/pointer-capture.js +339 -0
- package/dist/lib/events/pointer-capture.js.map +7 -0
- package/dist/lib/events/propagation.d.ts +7 -0
- package/dist/lib/events/propagation.js +56 -0
- package/dist/lib/events/propagation.js.map +7 -0
- package/dist/lib/events/registrations.d.ts +120 -0
- package/dist/lib/events/registrations.js +397 -0
- package/dist/lib/events/registrations.js.map +7 -0
- package/dist/lib/events/resolver-input.d.ts +25 -0
- package/dist/lib/events/resolver-input.js +62 -0
- package/dist/lib/events/resolver-input.js.map +7 -0
- package/dist/lib/events/types.d.ts +596 -0
- package/dist/lib/execute-render.d.ts +9 -0
- package/dist/lib/execute-render.js +195 -0
- package/dist/lib/execute-render.js.map +7 -0
- package/dist/lib/filter/canvas-state.d.ts +2 -0
- package/dist/lib/filter/canvas-state.js +31 -0
- package/dist/lib/filter/canvas-state.js.map +7 -0
- package/dist/lib/filter/filter-region.d.ts +33 -0
- package/dist/lib/filter/filter-region.js +291 -0
- package/dist/lib/filter/filter-region.js.map +7 -0
- package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
- package/dist/lib/filter/filter-surface-pool.js +252 -0
- package/dist/lib/filter/filter-surface-pool.js.map +7 -0
- package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
- package/dist/lib/filter/render-filter-boundary.js +211 -0
- package/dist/lib/filter/render-filter-boundary.js.map +7 -0
- package/dist/lib/focus/directional-navigation.d.ts +12 -0
- package/dist/lib/focus/directional-navigation.js +86 -0
- package/dist/lib/focus/directional-navigation.js.map +7 -0
- package/dist/lib/focus/dom-focus-host.d.ts +13 -0
- package/dist/lib/focus/dom-focus-host.js +352 -0
- package/dist/lib/focus/dom-focus-host.js.map +7 -0
- package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
- package/dist/lib/focus/dom-tab-stops.js +71 -0
- package/dist/lib/focus/dom-tab-stops.js.map +7 -0
- package/dist/lib/focus/focus-events.d.ts +4 -0
- package/dist/lib/focus/focus-events.js +78 -0
- package/dist/lib/focus/focus-events.js.map +7 -0
- package/dist/lib/focus/focus-manager.d.ts +121 -0
- package/dist/lib/focus/focus-manager.js +1131 -0
- package/dist/lib/focus/focus-manager.js.map +7 -0
- package/dist/lib/focus/geometry.d.ts +4 -0
- package/dist/lib/focus/geometry.js +64 -0
- package/dist/lib/focus/geometry.js.map +7 -0
- package/dist/lib/focus/html-focus-region.d.ts +27 -0
- package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
- package/dist/lib/focus/keyboard-defaults.js +110 -0
- package/dist/lib/focus/keyboard-defaults.js.map +7 -0
- package/dist/lib/focus/policy-components.d.ts +45 -0
- package/dist/lib/focus/policy-components.js +94 -0
- package/dist/lib/focus/policy-components.js.map +7 -0
- package/dist/lib/focus/types.d.ts +37 -0
- package/dist/lib/focus/types.js +7 -0
- package/dist/lib/focus/types.js.map +7 -0
- package/dist/lib/geometry/circle.d.ts +22 -0
- package/dist/lib/geometry/circle.js +13 -0
- package/dist/lib/geometry/circle.js.map +7 -0
- package/dist/lib/geometry/circular-sweep.d.ts +54 -0
- package/dist/lib/geometry/circular-sweep.js +95 -0
- package/dist/lib/geometry/circular-sweep.js.map +7 -0
- package/dist/lib/geometry/ellipse.d.ts +26 -0
- package/dist/lib/geometry/ellipse.js +17 -0
- package/dist/lib/geometry/ellipse.js.map +7 -0
- package/dist/lib/geometry/line.d.ts +20 -0
- package/dist/lib/geometry/line.js +15 -0
- package/dist/lib/geometry/line.js.map +7 -0
- package/dist/lib/geometry/path-arc.d.ts +25 -0
- package/dist/lib/geometry/path-arc.js +57 -0
- package/dist/lib/geometry/path-arc.js.map +7 -0
- package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
- package/dist/lib/geometry/path-bend-guide.js +282 -0
- package/dist/lib/geometry/path-bend-guide.js.map +7 -0
- package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
- package/dist/lib/geometry/path-bend-spans.js +109 -0
- package/dist/lib/geometry/path-bend-spans.js.map +7 -0
- package/dist/lib/geometry/path-bending.d.ts +90 -0
- package/dist/lib/geometry/path-bending.js +202 -0
- package/dist/lib/geometry/path-bending.js.map +7 -0
- package/dist/lib/geometry/path-conversion.d.ts +19 -0
- package/dist/lib/geometry/path-conversion.js +114 -0
- package/dist/lib/geometry/path-conversion.js.map +7 -0
- package/dist/lib/geometry/path-geometry.d.ts +218 -0
- package/dist/lib/geometry/path-geometry.js +557 -0
- package/dist/lib/geometry/path-geometry.js.map +7 -0
- package/dist/lib/geometry/path-radial.d.ts +15 -0
- package/dist/lib/geometry/path-radial.js +107 -0
- package/dist/lib/geometry/path-radial.js.map +7 -0
- package/dist/lib/geometry/path-transforms.d.ts +233 -0
- package/dist/lib/geometry/path-transforms.js +478 -0
- package/dist/lib/geometry/path-transforms.js.map +7 -0
- package/dist/lib/geometry/path-utilities.d.ts +78 -0
- package/dist/lib/geometry/path-utilities.js +341 -0
- package/dist/lib/geometry/path-utilities.js.map +7 -0
- package/dist/lib/geometry/path-wang.d.ts +18 -0
- package/dist/lib/geometry/path-wang.js +136 -0
- package/dist/lib/geometry/path-wang.js.map +7 -0
- package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
- package/dist/lib/geometry/path-warp-bezier.js +109 -0
- package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
- package/dist/lib/geometry/path-warp.d.ts +27 -0
- package/dist/lib/geometry/path-warp.js +165 -0
- package/dist/lib/geometry/path-warp.js.map +7 -0
- package/dist/lib/geometry/polygon.d.ts +21 -0
- package/dist/lib/geometry/polygon.js +12 -0
- package/dist/lib/geometry/polygon.js.map +7 -0
- package/dist/lib/geometry/rectangle.d.ts +38 -0
- package/dist/lib/geometry/rectangle.js +22 -0
- package/dist/lib/geometry/rectangle.js.map +7 -0
- package/dist/lib/geometry/regular-polygon.d.ts +88 -0
- package/dist/lib/geometry/regular-polygon.js +67 -0
- package/dist/lib/geometry/regular-polygon.js.map +7 -0
- package/dist/lib/geometry/resolve-path.d.ts +4 -0
- package/dist/lib/geometry/resolve-path.js +16 -0
- package/dist/lib/geometry/resolve-path.js.map +7 -0
- package/dist/lib/geometry/rounded-corners.d.ts +28 -0
- package/dist/lib/geometry/rounded-corners.js +118 -0
- package/dist/lib/geometry/rounded-corners.js.map +7 -0
- package/dist/lib/geometry/star.d.ts +39 -0
- package/dist/lib/geometry/star.js +90 -0
- package/dist/lib/geometry/star.js.map +7 -0
- package/dist/lib/geometry/svg-path.d.ts +21 -0
- package/dist/lib/geometry/svg-path.js +7 -0
- package/dist/lib/geometry/svg-path.js.map +7 -0
- package/dist/lib/geometry/transform-bend.d.ts +46 -0
- package/dist/lib/geometry/transform-bend.js +219 -0
- package/dist/lib/geometry/transform-bend.js.map +7 -0
- package/dist/lib/geometry/transform-guide.d.ts +57 -0
- package/dist/lib/geometry/transform-guide.js +157 -0
- package/dist/lib/geometry/transform-guide.js.map +7 -0
- package/dist/lib/geometry/transform-math.d.ts +21 -0
- package/dist/lib/geometry/transform-math.js +91 -0
- package/dist/lib/geometry/transform-math.js.map +7 -0
- package/dist/lib/geometry/transform-mesh.d.ts +39 -0
- package/dist/lib/geometry/transform-mesh.js +129 -0
- package/dist/lib/geometry/transform-mesh.js.map +7 -0
- package/dist/lib/geometry/validation.d.ts +6 -0
- package/dist/lib/geometry/validation.js +42 -0
- package/dist/lib/geometry/validation.js.map +7 -0
- package/dist/lib/global-state.d.ts +63 -0
- package/dist/lib/global-state.js +176 -0
- package/dist/lib/global-state.js.map +7 -0
- package/dist/lib/hooks/hook-slot.d.ts +30 -0
- package/dist/lib/hooks/hook-slot.js +66 -0
- package/dist/lib/hooks/hook-slot.js.map +7 -0
- package/dist/lib/hooks/use-animated-value.d.ts +24 -0
- package/dist/lib/hooks/use-animated-value.js +169 -0
- package/dist/lib/hooks/use-animated-value.js.map +7 -0
- package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
- package/dist/lib/hooks/use-canvas-context.js +13 -0
- package/dist/lib/hooks/use-canvas-context.js.map +7 -0
- package/dist/lib/hooks/use-computed.d.ts +13 -0
- package/dist/lib/hooks/use-computed.js +91 -0
- package/dist/lib/hooks/use-computed.js.map +7 -0
- package/dist/lib/hooks/use-const.d.ts +10 -0
- package/dist/lib/hooks/use-const.js +15 -0
- package/dist/lib/hooks/use-const.js.map +7 -0
- package/dist/lib/hooks/use-cursor.d.ts +16 -0
- package/dist/lib/hooks/use-cursor.js +51 -0
- package/dist/lib/hooks/use-cursor.js.map +7 -0
- package/dist/lib/hooks/use-event-listener.d.ts +10 -0
- package/dist/lib/hooks/use-event-listener.js +24 -0
- package/dist/lib/hooks/use-event-listener.js.map +7 -0
- package/dist/lib/hooks/use-event-target.d.ts +14 -0
- package/dist/lib/hooks/use-event-target.js +30 -0
- package/dist/lib/hooks/use-event-target.js.map +7 -0
- package/dist/lib/hooks/use-layout-box.d.ts +9 -0
- package/dist/lib/hooks/use-layout-box.js +8 -0
- package/dist/lib/hooks/use-layout-box.js.map +7 -0
- package/dist/lib/hooks/use-line-path.d.ts +14 -0
- package/dist/lib/hooks/use-line-path.js +13 -0
- package/dist/lib/hooks/use-line-path.js.map +7 -0
- package/dist/lib/hooks/use-paint-target.d.ts +3 -0
- package/dist/lib/hooks/use-paint-target.js +34 -0
- package/dist/lib/hooks/use-paint-target.js.map +7 -0
- package/dist/lib/hooks/use-playback.d.ts +21 -0
- package/dist/lib/hooks/use-playback.js +87 -0
- package/dist/lib/hooks/use-playback.js.map +7 -0
- package/dist/lib/hooks/use-reaction.d.ts +19 -0
- package/dist/lib/hooks/use-reaction.js +245 -0
- package/dist/lib/hooks/use-reaction.js.map +7 -0
- package/dist/lib/hooks/use-rect-path.d.ts +20 -0
- package/dist/lib/hooks/use-rect-path.js +25 -0
- package/dist/lib/hooks/use-rect-path.js.map +7 -0
- package/dist/lib/hooks/use-ref.d.ts +17 -0
- package/dist/lib/hooks/use-ref.js +8 -0
- package/dist/lib/hooks/use-ref.js.map +7 -0
- package/dist/lib/hooks/use-region.d.ts +11 -0
- package/dist/lib/hooks/use-region.js +34 -0
- package/dist/lib/hooks/use-region.js.map +7 -0
- package/dist/lib/hooks/use-signal.d.ts +12 -0
- package/dist/lib/hooks/use-signal.js +12 -0
- package/dist/lib/hooks/use-signal.js.map +7 -0
- package/dist/lib/hooks/use-svg-path.d.ts +11 -0
- package/dist/lib/hooks/use-svg-path.js +13 -0
- package/dist/lib/hooks/use-svg-path.js.map +7 -0
- package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
- package/dist/lib/hooks/use-value-memo-slot.js +45 -0
- package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
- package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
- package/dist/lib/hooks/use-visibility-transition.js +195 -0
- package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
- package/dist/lib/html/html-service.d.ts +30 -0
- package/dist/lib/html/html-service.js +281 -0
- package/dist/lib/html/html-service.js.map +7 -0
- package/dist/lib/html/overlay-config.d.ts +3 -0
- package/dist/lib/html/overlay-config.js +37 -0
- package/dist/lib/html/overlay-config.js.map +7 -0
- package/dist/lib/html/portable-clips.d.ts +4 -0
- package/dist/lib/html/portable-clips.js +20 -0
- package/dist/lib/html/portable-clips.js.map +7 -0
- package/dist/lib/html/types.d.ts +110 -0
- package/dist/lib/layout/absolute.d.ts +57 -0
- package/dist/lib/layout/absolute.js +348 -0
- package/dist/lib/layout/absolute.js.map +7 -0
- package/dist/lib/layout/box.d.ts +19 -0
- package/dist/lib/layout/box.js +209 -0
- package/dist/lib/layout/box.js.map +7 -0
- package/dist/lib/layout/context.d.ts +13 -0
- package/dist/lib/layout/context.js +42 -0
- package/dist/lib/layout/context.js.map +7 -0
- package/dist/lib/layout/diagnostics.d.ts +15 -0
- package/dist/lib/layout/diagnostics.js +30 -0
- package/dist/lib/layout/diagnostics.js.map +7 -0
- package/dist/lib/layout/flex.d.ts +64 -0
- package/dist/lib/layout/flex.js +803 -0
- package/dist/lib/layout/flex.js.map +7 -0
- package/dist/lib/layout/flow.d.ts +53 -0
- package/dist/lib/layout/flow.js +400 -0
- package/dist/lib/layout/flow.js.map +7 -0
- package/dist/lib/layout/grid.d.ts +64 -0
- package/dist/lib/layout/grid.js +597 -0
- package/dist/lib/layout/grid.js.map +7 -0
- package/dist/lib/layout/measure.d.ts +19 -0
- package/dist/lib/layout/measure.js +144 -0
- package/dist/lib/layout/measure.js.map +7 -0
- package/dist/lib/layout/overlay.d.ts +42 -0
- package/dist/lib/layout/overlay.js +151 -0
- package/dist/lib/layout/overlay.js.map +7 -0
- package/dist/lib/layout/place-child.d.ts +12 -0
- package/dist/lib/layout/place-child.js +72 -0
- package/dist/lib/layout/place-child.js.map +7 -0
- package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
- package/dist/lib/layout/positioning-diagnostics.js +15 -0
- package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
- package/dist/lib/layout/types.d.ts +78 -0
- package/dist/lib/manipulation/controller-types.d.ts +299 -0
- package/dist/lib/manipulation/controller.d.ts +57 -0
- package/dist/lib/manipulation/controller.js +464 -0
- package/dist/lib/manipulation/controller.js.map +7 -0
- package/dist/lib/manipulation/coordinates.d.ts +9 -0
- package/dist/lib/manipulation/coordinates.js +55 -0
- package/dist/lib/manipulation/coordinates.js.map +7 -0
- package/dist/lib/manipulation/degrees.d.ts +10 -0
- package/dist/lib/manipulation/degrees.js +9 -0
- package/dist/lib/manipulation/degrees.js.map +7 -0
- package/dist/lib/manipulation/frame.d.ts +24 -0
- package/dist/lib/manipulation/frame.js +101 -0
- package/dist/lib/manipulation/frame.js.map +7 -0
- package/dist/lib/manipulation/geometry.d.ts +4 -0
- package/dist/lib/manipulation/geometry.js +26 -0
- package/dist/lib/manipulation/geometry.js.map +7 -0
- package/dist/lib/manipulation/handles.d.ts +298 -0
- package/dist/lib/manipulation/handles.js +598 -0
- package/dist/lib/manipulation/handles.js.map +7 -0
- package/dist/lib/manipulation/manipulable.d.ts +65 -0
- package/dist/lib/manipulation/manipulable.js +47 -0
- package/dist/lib/manipulation/manipulable.js.map +7 -0
- package/dist/lib/manipulation/ownership.d.ts +15 -0
- package/dist/lib/manipulation/ownership.js +80 -0
- package/dist/lib/manipulation/ownership.js.map +7 -0
- package/dist/lib/manipulation/snap.d.ts +6 -0
- package/dist/lib/manipulation/snap.js +40 -0
- package/dist/lib/manipulation/snap.js.map +7 -0
- package/dist/lib/manipulation/solve.d.ts +2 -0
- package/dist/lib/manipulation/solve.js +563 -0
- package/dist/lib/manipulation/solve.js.map +7 -0
- package/dist/lib/manipulation/types.d.ts +178 -0
- package/dist/lib/mount-pibbl.d.ts +25 -0
- package/dist/lib/mount-pibbl.js +278 -0
- package/dist/lib/mount-pibbl.js.map +7 -0
- package/dist/lib/optional-services.d.ts +8 -0
- package/dist/lib/optional-services.js +11 -0
- package/dist/lib/optional-services.js.map +7 -0
- package/dist/lib/pibbl.d.ts +17 -0
- package/dist/lib/pibbl.js +21 -0
- package/dist/lib/pibbl.js.map +7 -0
- package/dist/lib/primitive-presentation.d.ts +24 -0
- package/dist/lib/primitive-presentation.js +102 -0
- package/dist/lib/primitive-presentation.js.map +7 -0
- package/dist/lib/render-layer/controller.d.ts +67 -0
- package/dist/lib/render-layer/controller.js +603 -0
- package/dist/lib/render-layer/controller.js.map +7 -0
- package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
- package/dist/lib/render-layer/define-render-layer.js +90 -0
- package/dist/lib/render-layer/define-render-layer.js.map +7 -0
- package/dist/lib/render-layer/types.d.ts +315 -0
- package/dist/lib/render-target.d.ts +27 -0
- package/dist/lib/render-target.js +118 -0
- package/dist/lib/render-target.js.map +7 -0
- package/dist/lib/render-transaction.d.ts +10 -0
- package/dist/lib/render-transaction.js +46 -0
- package/dist/lib/render-transaction.js.map +7 -0
- package/dist/lib/render.d.ts +3 -0
- package/dist/lib/render.js +385 -0
- package/dist/lib/render.js.map +7 -0
- package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
- package/dist/lib/scheduler/realm-scheduler.js +964 -0
- package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
- package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
- package/dist/lib/scheduler/renderer-participant.js +216 -0
- package/dist/lib/scheduler/renderer-participant.js.map +7 -0
- package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
- package/dist/lib/scheduler/simulation-participant.js +229 -0
- package/dist/lib/scheduler/simulation-participant.js.map +7 -0
- package/dist/lib/scheduler/testing.d.ts +56 -0
- package/dist/lib/scheduler/testing.js +71 -0
- package/dist/lib/scheduler/testing.js.map +7 -0
- package/dist/lib/scheduler/types.d.ts +103 -0
- package/dist/lib/signals/edge.d.ts +44 -0
- package/dist/lib/signals/edge.js +245 -0
- package/dist/lib/signals/edge.js.map +7 -0
- package/dist/lib/signals/graph.d.ts +220 -0
- package/dist/lib/signals/graph.js +1035 -0
- package/dist/lib/signals/graph.js.map +7 -0
- package/dist/lib/signals/input-provision.d.ts +3 -0
- package/dist/lib/signals/input-provision.js +67 -0
- package/dist/lib/signals/input-provision.js.map +7 -0
- package/dist/lib/signals/render-consumer.d.ts +21 -0
- package/dist/lib/signals/render-consumer.js +218 -0
- package/dist/lib/signals/render-consumer.js.map +7 -0
- package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
- package/dist/lib/signals/resolve-signal-value.js +17 -0
- package/dist/lib/signals/resolve-signal-value.js.map +7 -0
- package/dist/lib/signals/types.d.ts +80 -0
- package/dist/lib/style/diagnostics.d.ts +83 -0
- package/dist/lib/style/diagnostics.js +63 -0
- package/dist/lib/style/diagnostics.js.map +7 -0
- package/dist/lib/style/empty-style.d.ts +3 -0
- package/dist/lib/style/empty-style.js +5 -0
- package/dist/lib/style/empty-style.js.map +7 -0
- package/dist/lib/style/filter-types.d.ts +243 -0
- package/dist/lib/style/filter-types.js +5 -0
- package/dist/lib/style/filter-types.js.map +7 -0
- package/dist/lib/style/filter.d.ts +7 -0
- package/dist/lib/style/filter.js +50 -0
- package/dist/lib/style/filter.js.map +7 -0
- package/dist/lib/style/normalize.d.ts +18 -0
- package/dist/lib/style/normalize.js +50 -0
- package/dist/lib/style/normalize.js.map +7 -0
- package/dist/lib/style/positioning.d.ts +32 -0
- package/dist/lib/style/positioning.js +81 -0
- package/dist/lib/style/positioning.js.map +7 -0
- package/dist/lib/style/resolve-built-in.d.ts +6 -0
- package/dist/lib/style/resolve-built-in.js +58 -0
- package/dist/lib/style/resolve-built-in.js.map +7 -0
- package/dist/lib/style/resolve-dispatch.d.ts +20 -0
- package/dist/lib/style/resolve-dispatch.js +167 -0
- package/dist/lib/style/resolve-dispatch.js.map +7 -0
- package/dist/lib/style/resolve-length.d.ts +16 -0
- package/dist/lib/style/resolve-length.js +54 -0
- package/dist/lib/style/resolve-length.js.map +7 -0
- package/dist/lib/style/responsive.d.ts +31 -0
- package/dist/lib/style/responsive.js +172 -0
- package/dist/lib/style/responsive.js.map +7 -0
- package/dist/lib/style/types.d.ts +338 -0
- package/dist/lib/surface/resolve-surface.d.ts +4 -0
- package/dist/lib/surface/resolve-surface.js +184 -0
- package/dist/lib/surface/resolve-surface.js.map +7 -0
- package/dist/lib/surface/root-surface.d.ts +7 -0
- package/dist/lib/surface/root-surface.js +171 -0
- package/dist/lib/surface/root-surface.js.map +7 -0
- package/dist/lib/surface/transform.d.ts +4 -0
- package/dist/lib/surface/transform.js +16 -0
- package/dist/lib/surface/transform.js.map +7 -0
- package/dist/lib/surface/types.d.ts +132 -0
- package/dist/lib/teardowns.d.ts +14 -0
- package/dist/lib/teardowns.js +50 -0
- package/dist/lib/teardowns.js.map +7 -0
- package/dist/lib/textures/texture-protocol.d.ts +124 -0
- package/dist/lib/textures/texture-protocol.js +40 -0
- package/dist/lib/textures/texture-protocol.js.map +7 -0
- package/dist/lib/textures/texture.d.ts +170 -0
- package/dist/lib/textures/texture.js +385 -0
- package/dist/lib/textures/texture.js.map +7 -0
- package/dist/lib/transitions/bifrost.d.ts +47 -0
- package/dist/lib/transitions/bifrost.js +91 -0
- package/dist/lib/transitions/bifrost.js.map +7 -0
- package/dist/lib/transitions/binding.d.ts +14 -0
- package/dist/lib/transitions/binding.js +35 -0
- package/dist/lib/transitions/binding.js.map +7 -0
- package/dist/lib/transitions/capture.d.ts +21 -0
- package/dist/lib/transitions/capture.js +91 -0
- package/dist/lib/transitions/capture.js.map +7 -0
- package/dist/lib/transitions/common.d.ts +130 -0
- package/dist/lib/transitions/common.js +57 -0
- package/dist/lib/transitions/common.js.map +7 -0
- package/dist/lib/transitions/define-transition.d.ts +64 -0
- package/dist/lib/transitions/define-transition.js +31 -0
- package/dist/lib/transitions/define-transition.js.map +7 -0
- package/dist/lib/transitions/embers-physics.d.ts +114 -0
- package/dist/lib/transitions/embers-physics.js +161 -0
- package/dist/lib/transitions/embers-physics.js.map +7 -0
- package/dist/lib/transitions/embers.d.ts +67 -0
- package/dist/lib/transitions/embers.js +196 -0
- package/dist/lib/transitions/embers.js.map +7 -0
- package/dist/lib/transitions/fade.d.ts +41 -0
- package/dist/lib/transitions/fade.js +31 -0
- package/dist/lib/transitions/fade.js.map +7 -0
- package/dist/lib/transitions/hologram.d.ts +47 -0
- package/dist/lib/transitions/hologram.js +94 -0
- package/dist/lib/transitions/hologram.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
- package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
- package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
- package/dist/lib/transitions/wasm/kernel.js +26 -0
- package/dist/lib/transitions/wasm/kernel.js.map +7 -0
- package/dist/lib/types.d.ts +570 -0
- package/dist/lib/update.d.ts +8 -0
- package/dist/lib/update.js +20 -0
- package/dist/lib/update.js.map +7 -0
- package/dist/lib/util/get-2d-context.d.ts +2 -0
- package/dist/lib/util/get-2d-context.js +11 -0
- package/dist/lib/util/get-2d-context.js.map +7 -0
- package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
- package/dist/lib/util/get-mouse-coordinates.js +32 -0
- package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
- package/dist/lib/util/is-hit.d.ts +11 -0
- package/dist/lib/util/is-hit.js +52 -0
- package/dist/lib/util/is-hit.js.map +7 -0
- package/dist/lib/util/is-transparent.d.ts +1 -0
- package/dist/lib/util/is-transparent.js +8 -0
- package/dist/lib/util/is-transparent.js.map +7 -0
- package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
- package/dist/lib/util/pixel-grid-adjustments.js +28 -0
- package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
- package/dist/lib/util/push-clipping-path.d.ts +6 -0
- package/dist/lib/util/push-clipping-path.js +28 -0
- package/dist/lib/util/push-clipping-path.js.map +7 -0
- package/dist/lib/util/wire-common-events.d.ts +2 -0
- package/dist/lib/util/wire-common-events.js +15 -0
- package/dist/lib/util/wire-common-events.js.map +7 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +7 -0
- package/dist/types.mjs +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { jsx, jsxs } from "@pibbl/core/jsx-runtime";
|
|
2
|
+
import {
|
|
3
|
+
Group,
|
|
4
|
+
Rectangle,
|
|
5
|
+
definePrimitive,
|
|
6
|
+
resolveSignalValue,
|
|
7
|
+
resolveBox,
|
|
8
|
+
resolveLength
|
|
9
|
+
} from "@pibbl/core";
|
|
10
|
+
import {
|
|
11
|
+
pushLayoutBox,
|
|
12
|
+
setCurrentComponentAfterRender
|
|
13
|
+
} from "@pibbl/core/internal";
|
|
14
|
+
import {
|
|
15
|
+
placeHoverCard
|
|
16
|
+
} from "./hover-placement.js";
|
|
17
|
+
function Content({
|
|
18
|
+
width,
|
|
19
|
+
height,
|
|
20
|
+
children
|
|
21
|
+
}) {
|
|
22
|
+
const box = { x: 0, y: 0, width, height };
|
|
23
|
+
const outer = pushLayoutBox(box);
|
|
24
|
+
let inner;
|
|
25
|
+
try {
|
|
26
|
+
inner = pushLayoutBox(box);
|
|
27
|
+
setCurrentComponentAfterRender(() => {
|
|
28
|
+
inner();
|
|
29
|
+
outer();
|
|
30
|
+
});
|
|
31
|
+
} catch (error) {
|
|
32
|
+
inner?.();
|
|
33
|
+
outer();
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
return children;
|
|
37
|
+
}
|
|
38
|
+
const Card = definePrimitive(
|
|
39
|
+
function renderHoverCard(props, style, context) {
|
|
40
|
+
context.globalAlpha *= style.opacity;
|
|
41
|
+
const { borderBox: box, contentBox: content } = style.box;
|
|
42
|
+
const at = placeHoverCard({
|
|
43
|
+
anchor: props.anchor,
|
|
44
|
+
anchorRadius: props.anchorRadius,
|
|
45
|
+
gap: props.gap,
|
|
46
|
+
bounds: props.bounds ?? style.bounds,
|
|
47
|
+
width: box.width,
|
|
48
|
+
height: box.height,
|
|
49
|
+
strokeWidth: style.stroke ? style.strokeWidth : 0,
|
|
50
|
+
placement: props.placement ?? "auto"
|
|
51
|
+
});
|
|
52
|
+
return /* @__PURE__ */ jsxs(Group, { style: { translateX: at.x, translateY: at.y }, children: [
|
|
53
|
+
/* @__PURE__ */ jsx(
|
|
54
|
+
Rectangle,
|
|
55
|
+
{
|
|
56
|
+
pointerEvents: "none",
|
|
57
|
+
style: {
|
|
58
|
+
width: box.width,
|
|
59
|
+
height: box.height,
|
|
60
|
+
fill: style.fill,
|
|
61
|
+
stroke: style.stroke,
|
|
62
|
+
strokeWidth: style.strokeWidth,
|
|
63
|
+
cornerRadius: style.cornerRadius
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
),
|
|
67
|
+
/* @__PURE__ */ jsx(Group, { style: { translateX: content.x, translateY: content.y }, children: /* @__PURE__ */ jsx(Content, { width: content.width, height: content.height, children: props.children }) })
|
|
68
|
+
] });
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
resolveStyle(style, context) {
|
|
72
|
+
const width = resolveLength(
|
|
73
|
+
style.width,
|
|
74
|
+
context.allocation.width,
|
|
75
|
+
"width"
|
|
76
|
+
), height = resolveLength(
|
|
77
|
+
style.height,
|
|
78
|
+
context.allocation.height,
|
|
79
|
+
"height"
|
|
80
|
+
);
|
|
81
|
+
if (width === void 0 || height === void 0)
|
|
82
|
+
throw new TypeError("HoverCard requires declared width and height.");
|
|
83
|
+
const box = resolveBox(
|
|
84
|
+
{ width, height, padding: style.padding ?? 10 },
|
|
85
|
+
{ minWidth: 0, maxWidth: Infinity, minHeight: 0, maxHeight: Infinity },
|
|
86
|
+
{ component: "HoverCard" }
|
|
87
|
+
);
|
|
88
|
+
const strokeWidth = style.strokeWidth ?? 1, cornerRadius = style.cornerRadius ?? 7, opacity = style.opacity ?? 1;
|
|
89
|
+
for (const value of [strokeWidth, cornerRadius, opacity])
|
|
90
|
+
if (!Number.isFinite(value) || value < 0)
|
|
91
|
+
throw new RangeError(
|
|
92
|
+
"HoverCard paint dimensions must be finite and nonnegative."
|
|
93
|
+
);
|
|
94
|
+
if (opacity > 1)
|
|
95
|
+
throw new RangeError("HoverCard opacity must be in [0,1].");
|
|
96
|
+
return {
|
|
97
|
+
box,
|
|
98
|
+
bounds: {
|
|
99
|
+
x: 0,
|
|
100
|
+
y: 0,
|
|
101
|
+
width: context.allocation.width,
|
|
102
|
+
height: context.allocation.height
|
|
103
|
+
},
|
|
104
|
+
fill: style.fill ?? "rgba(255,255,255,0.92)",
|
|
105
|
+
stroke: style.stroke ?? "rgba(98,117,139,0.35)",
|
|
106
|
+
strokeWidth,
|
|
107
|
+
cornerRadius,
|
|
108
|
+
opacity
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
const fields = /* @__PURE__ */ new Set([
|
|
114
|
+
"width",
|
|
115
|
+
"height",
|
|
116
|
+
"padding",
|
|
117
|
+
"fill",
|
|
118
|
+
"stroke",
|
|
119
|
+
"strokeWidth",
|
|
120
|
+
"cornerRadius",
|
|
121
|
+
"opacity"
|
|
122
|
+
]);
|
|
123
|
+
function HoverCard(props) {
|
|
124
|
+
const style = resolveSignalValue(props.style);
|
|
125
|
+
if (!style || typeof style !== "object")
|
|
126
|
+
throw new TypeError("HoverCard requires a style with width and height.");
|
|
127
|
+
for (const field of Object.keys(style))
|
|
128
|
+
if (!fields.has(field))
|
|
129
|
+
throw new TypeError(`HoverCard does not support style.${field}.`);
|
|
130
|
+
return /* @__PURE__ */ jsx(
|
|
131
|
+
Card,
|
|
132
|
+
{
|
|
133
|
+
anchor: resolveSignalValue(props.anchor),
|
|
134
|
+
anchorRadius: resolveSignalValue(props.anchorRadius ?? 0),
|
|
135
|
+
gap: resolveSignalValue(props.gap ?? 8),
|
|
136
|
+
bounds: props.bounds === void 0 ? void 0 : resolveSignalValue(props.bounds),
|
|
137
|
+
placement: props.placement,
|
|
138
|
+
style,
|
|
139
|
+
children: props.children
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
export {
|
|
144
|
+
HoverCard
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=hover-card.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/features/viz/lib/hover-card.tsx"],
|
|
4
|
+
"sourcesContent": ["import {\n Group,\n Rectangle,\n definePrimitive,\n resolveSignalValue,\n resolveBox,\n resolveLength,\n type BoxStyle,\n type PibblNode,\n type FillStyle,\n type StrokeStyle,\n type SignalValue,\n} from \"@pibbl/core\";\nimport {\n pushLayoutBox,\n setCurrentComponentAfterRender,\n type SignalStyle,\n} from \"@pibbl/core/internal\";\nimport type { HoverPoint } from \"./hover-types.js\";\nimport {\n placeHoverCard,\n type HoverBounds,\n type HoverPlacement,\n} from \"./hover-placement.js\";\nexport type { HoverBounds, HoverPlacement } from \"./hover-placement.js\";\n/**\n * Supported geometry and presentation properties for HoverCard.\n *\n * @see {@link BoxStyle}\n * @see {@link FillStyle}\n * @see {@link StrokeStyle}\n * @see {@link HoverCardProps}\n */\nexport interface HoverCardStyle {\n /** Horizontal extent in the units of the containing geometry or surface. See {@link BoxStyle}. */\n readonly width: Exclude<BoxStyle[\"width\"], undefined | \"auto\">;\n /** Vertical extent in the units of the containing geometry or surface. See {@link BoxStyle}. */\n readonly height: Exclude<BoxStyle[\"height\"], undefined | \"auto\">;\n /** Insets between the border box and content box. See {@link BoxStyle}. */\n readonly padding?: BoxStyle[\"padding\"];\n /** Paint used for the interior. See {@link FillStyle}. */\n readonly fill?: FillStyle;\n /** Paint used for the outline. See {@link StrokeStyle}. */\n readonly stroke?: StrokeStyle;\n /** Width of the painted outline. See {@link HoverCardStyle}. */\n readonly strokeWidth?: number;\n /**\n * Uniform corner radius used where no per-corner override is supplied. See\n * {@link HoverCardStyle}.\n */\n readonly cornerRadius?: number;\n /** Opacity of the painted result. See {@link HoverCardStyle}. */\n readonly opacity?: number;\n /**\n * Not accepted in this variant; use the alternative fields instead. See {@link HoverCardStyle}.\n */\n readonly filter?: never;\n /**\n * Not accepted in this variant; use the alternative fields instead. See {@link HoverCardStyle}.\n */\n readonly custom?: never;\n}\n/**\n * Authored inputs for HoverCard, including the declared data and presentation options.\n *\n * @see {@link SignalValue}\n * @see {@link HoverPoint}\n * @see {@link HoverBounds}\n * @see {@link HoverPlacement}\n * @see {@link SignalStyle}\n * @see {@link HoverCardStyle}\n * @see {@link PibblNode}\n * @see {@link HoverCard}\n */\nexport interface HoverCardProps {\n /**\n * Logical point to which the content or result is anchored. See {@link SignalValue},\n * {@link HoverPoint}.\n */\n readonly anchor: SignalValue<HoverPoint>;\n /** Clearance around the anchor before placing the item. See {@link SignalValue}. */\n readonly anchorRadius?: SignalValue<number>;\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 HoverBounds}.\n */\n readonly bounds?: SignalValue<HoverBounds>;\n /**\n * Preferred placement relative to the anchor or containing geometry. See {@link HoverPlacement}\n * .\n */\n readonly placement?: HoverPlacement;\n /**\n * Declared presentation and layout properties. See {@link SignalValue}, {@link SignalStyle},\n * {@link HoverCardStyle}.\n */\n readonly style: SignalValue<SignalStyle<HoverCardStyle>>;\n /** Descendant content or the callback that supplies it. See {@link PibblNode}. */\n readonly children?: PibblNode;\n}\ntype CardInputs = Omit<\n HoverCardProps,\n \"style\" | \"anchor\" | \"anchorRadius\" | \"gap\" | \"bounds\"\n> & {\n anchor: HoverPoint;\n anchorRadius: number;\n gap: number;\n bounds?: HoverBounds;\n};\ninterface CardResolved {\n readonly custom?: never;\n readonly box: ReturnType<typeof resolveBox>;\n readonly bounds: HoverBounds;\n readonly fill: FillStyle;\n readonly stroke: StrokeStyle;\n readonly strokeWidth: number;\n readonly cornerRadius: number;\n readonly opacity: number;\n}\nfunction Content({\n width,\n height,\n children,\n}: {\n width: number;\n height: number;\n children?: PibblNode;\n}) {\n // Establish both allocation and percentage basis for arbitrary composed nodes;\n // this is a content box, not a layout parent that requires child dimensions.\n const box = { x: 0, y: 0, width, height };\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 children;\n}\nconst Card = definePrimitive<\n CardInputs,\n HoverCardStyle,\n HoverCardStyle,\n CardResolved\n>(\n function renderHoverCard(props, style, context) {\n context.globalAlpha *= style.opacity;\n const { borderBox: box, contentBox: content } = style.box;\n const at = placeHoverCard({\n anchor: props.anchor,\n anchorRadius: props.anchorRadius,\n gap: props.gap,\n bounds: props.bounds ?? style.bounds,\n width: box.width,\n height: box.height,\n strokeWidth: style.stroke ? style.strokeWidth : 0,\n placement: props.placement ?? \"auto\",\n });\n return (\n <Group style={{ translateX: at.x, translateY: at.y }}>\n <Rectangle\n pointerEvents=\"none\"\n style={{\n width: box.width,\n height: box.height,\n fill: style.fill,\n stroke: style.stroke,\n strokeWidth: style.strokeWidth,\n cornerRadius: style.cornerRadius,\n }}\n />\n <Group style={{ translateX: content.x, translateY: content.y }}>\n <Content width={content.width} height={content.height}>\n {props.children}\n </Content>\n </Group>\n </Group>\n );\n },\n {\n resolveStyle(style, context) {\n const width = resolveLength(\n style.width,\n context.allocation.width,\n \"width\",\n ),\n height = resolveLength(\n style.height,\n context.allocation.height,\n \"height\",\n );\n if (width === undefined || height === undefined)\n throw new TypeError(\"HoverCard requires declared width and height.\");\n const box = resolveBox(\n { width, height, padding: style.padding ?? 10 },\n { minWidth: 0, maxWidth: Infinity, minHeight: 0, maxHeight: Infinity },\n { component: \"HoverCard\" },\n );\n const strokeWidth = style.strokeWidth ?? 1,\n cornerRadius = style.cornerRadius ?? 7,\n opacity = style.opacity ?? 1;\n for (const value of [strokeWidth, cornerRadius, opacity])\n if (!Number.isFinite(value) || value < 0)\n throw new RangeError(\n \"HoverCard paint dimensions must be finite and nonnegative.\",\n );\n if (opacity > 1)\n throw new RangeError(\"HoverCard opacity must be in [0,1].\");\n return {\n box,\n bounds: {\n x: 0,\n y: 0,\n width: context.allocation.width,\n height: context.allocation.height,\n },\n fill: style.fill ?? \"rgba(255,255,255,0.92)\",\n stroke: style.stroke ?? \"rgba(98,117,139,0.35)\",\n strokeWidth,\n cornerRadius,\n opacity,\n };\n },\n },\n);\nconst fields = new Set([\n \"width\",\n \"height\",\n \"padding\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"cornerRadius\",\n \"opacity\",\n]);\n/**\n * Positions a declared card outside a protected anchor, allowing overflow if needed.\n *\n * @param props - Anchor, placement, style, and hover-card content. See {@link HoverCardProps}.\n * @returns Pibbl content placed as a hover card. See {@link PibblNode}.\n *\n * @see {@link HoverCardProps}\n * @see {@link PibblNode}\n */\nexport function HoverCard(props: HoverCardProps): PibblNode {\n const style = resolveSignalValue(props.style);\n if (!style || typeof style !== \"object\")\n throw new TypeError(\"HoverCard requires a style with width and height.\");\n for (const field of Object.keys(style))\n if (!fields.has(field))\n throw new TypeError(`HoverCard does not support style.${field}.`);\n return (\n <Card\n anchor={resolveSignalValue(props.anchor)}\n anchorRadius={resolveSignalValue(props.anchorRadius ?? 0)}\n gap={resolveSignalValue(props.gap ?? 8)}\n bounds={\n props.bounds === undefined\n ? undefined\n : resolveSignalValue(props.bounds)\n }\n placement={props.placement}\n style={style}\n >\n {props.children}\n </Card>\n );\n}\n"],
|
|
5
|
+
"mappings": "AAwKM,SACE,KADF;AAxKN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAMK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAEP;AAAA,EACE;AAAA,OAGK;AAkGP,SAAS,QAAQ;AAAA,EACf;AAAA,EACA;AAAA,EACA;AACF,GAIG;AAGD,QAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,OAAO;AACxC,QAAM,QAAQ,cAAc,GAAG;AAC/B,MAAI;AACJ,MAAI;AACF,YAAQ,cAAc,GAAG;AACzB,mCAA+B,MAAM;AACnC,YAAO;AACP,YAAM;AAAA,IACR,CAAC;AAAA,EACH,SAAS,OAAO;AACd,YAAQ;AACR,UAAM;AACN,UAAM;AAAA,EACR;AACA,SAAO;AACT;AACA,MAAM,OAAO;AAAA,EAMX,SAAS,gBAAgB,OAAO,OAAO,SAAS;AAC9C,YAAQ,eAAe,MAAM;AAC7B,UAAM,EAAE,WAAW,KAAK,YAAY,QAAQ,IAAI,MAAM;AACtD,UAAM,KAAK,eAAe;AAAA,MACxB,QAAQ,MAAM;AAAA,MACd,cAAc,MAAM;AAAA,MACpB,KAAK,MAAM;AAAA,MACX,QAAQ,MAAM,UAAU,MAAM;AAAA,MAC9B,OAAO,IAAI;AAAA,MACX,QAAQ,IAAI;AAAA,MACZ,aAAa,MAAM,SAAS,MAAM,cAAc;AAAA,MAChD,WAAW,MAAM,aAAa;AAAA,IAChC,CAAC;AACD,WACE,qBAAC,SAAM,OAAO,EAAE,YAAY,GAAG,GAAG,YAAY,GAAG,EAAE,GACjD;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,eAAc;AAAA,UACd,OAAO;AAAA,YACL,OAAO,IAAI;AAAA,YACX,QAAQ,IAAI;AAAA,YACZ,MAAM,MAAM;AAAA,YACZ,QAAQ,MAAM;AAAA,YACd,aAAa,MAAM;AAAA,YACnB,cAAc,MAAM;AAAA,UACtB;AAAA;AAAA,MACF;AAAA,MACA,oBAAC,SAAM,OAAO,EAAE,YAAY,QAAQ,GAAG,YAAY,QAAQ,EAAE,GAC3D,8BAAC,WAAQ,OAAO,QAAQ,OAAO,QAAQ,QAAQ,QAC5C,gBAAM,UACT,GACF;AAAA,OACF;AAAA,EAEJ;AAAA,EACA;AAAA,IACE,aAAa,OAAO,SAAS;AAC3B,YAAM,QAAQ;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,WAAW;AAAA,QACnB;AAAA,MACF,GACA,SAAS;AAAA,QACP,MAAM;AAAA,QACN,QAAQ,WAAW;AAAA,QACnB;AAAA,MACF;AACF,UAAI,UAAU,UAAa,WAAW;AACpC,cAAM,IAAI,UAAU,+CAA+C;AACrE,YAAM,MAAM;AAAA,QACV,EAAE,OAAO,QAAQ,SAAS,MAAM,WAAW,GAAG;AAAA,QAC9C,EAAE,UAAU,GAAG,UAAU,UAAU,WAAW,GAAG,WAAW,SAAS;AAAA,QACrE,EAAE,WAAW,YAAY;AAAA,MAC3B;AACA,YAAM,cAAc,MAAM,eAAe,GACvC,eAAe,MAAM,gBAAgB,GACrC,UAAU,MAAM,WAAW;AAC7B,iBAAW,SAAS,CAAC,aAAa,cAAc,OAAO;AACrD,YAAI,CAAC,OAAO,SAAS,KAAK,KAAK,QAAQ;AACrC,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AACJ,UAAI,UAAU;AACZ,cAAM,IAAI,WAAW,qCAAqC;AAC5D,aAAO;AAAA,QACL;AAAA,QACA,QAAQ;AAAA,UACN,GAAG;AAAA,UACH,GAAG;AAAA,UACH,OAAO,QAAQ,WAAW;AAAA,UAC1B,QAAQ,QAAQ,WAAW;AAAA,QAC7B;AAAA,QACA,MAAM,MAAM,QAAQ;AAAA,QACpB,QAAQ,MAAM,UAAU;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AACA,MAAM,SAAS,oBAAI,IAAI;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAUM,SAAS,UAAU,OAAkC;AAC1D,QAAM,QAAQ,mBAAmB,MAAM,KAAK;AAC5C,MAAI,CAAC,SAAS,OAAO,UAAU;AAC7B,UAAM,IAAI,UAAU,mDAAmD;AACzE,aAAW,SAAS,OAAO,KAAK,KAAK;AACnC,QAAI,CAAC,OAAO,IAAI,KAAK;AACnB,YAAM,IAAI,UAAU,oCAAoC,KAAK,GAAG;AACpE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,QAAQ,mBAAmB,MAAM,MAAM;AAAA,MACvC,cAAc,mBAAmB,MAAM,gBAAgB,CAAC;AAAA,MACxD,KAAK,mBAAmB,MAAM,OAAO,CAAC;AAAA,MACtC,QACE,MAAM,WAAW,SACb,SACA,mBAAmB,MAAM,MAAM;AAAA,MAErC,WAAW,MAAM;AAAA,MACjB;AAAA,MAEC,gBAAM;AAAA;AAAA,EACT;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PibblNode } from "@pibbl/core";
|
|
2
|
+
import type { HoverDataProps } from "./hover-types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Evaluates an ordinary synchronous query under the current scale scope.
|
|
5
|
+
*
|
|
6
|
+
* @param props - Hover query and child renderer receiving its result. See {@link HoverDataProps}.
|
|
7
|
+
* @returns Content rendered from the current hover query result. See {@link PibblNode}.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link HoverDataProps}
|
|
10
|
+
* @see {@link PibblNode}
|
|
11
|
+
*/
|
|
12
|
+
export declare function HoverData<T>({ query, children }: HoverDataProps<T>): PibblNode;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { withHooksForbidden } from "@pibbl/core/internal";
|
|
2
|
+
import { readScale } from "./scale-context.js";
|
|
3
|
+
function HoverData({ query, children }) {
|
|
4
|
+
if (typeof query !== "function" || typeof children !== "function")
|
|
5
|
+
throw new TypeError("HoverData requires query and children functions.");
|
|
6
|
+
const snapshots = /* @__PURE__ */ new Map();
|
|
7
|
+
let active = true;
|
|
8
|
+
const context = {
|
|
9
|
+
scale(id) {
|
|
10
|
+
if (!active)
|
|
11
|
+
throw new Error(
|
|
12
|
+
"HoverData query context cannot be retained outside its invocation."
|
|
13
|
+
);
|
|
14
|
+
let snapshot = snapshots.get(id);
|
|
15
|
+
if (!snapshot) {
|
|
16
|
+
const value = readScale(id, "HoverData");
|
|
17
|
+
if (!value) throw new TypeError("HoverData requires a scale ID.");
|
|
18
|
+
const resolved = value.get();
|
|
19
|
+
if (resolved.type !== "linear")
|
|
20
|
+
throw new TypeError(
|
|
21
|
+
"HoverData numeric queries require linear scales."
|
|
22
|
+
);
|
|
23
|
+
snapshot = resolved;
|
|
24
|
+
snapshots.set(id, snapshot);
|
|
25
|
+
}
|
|
26
|
+
return snapshot;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
let result;
|
|
30
|
+
try {
|
|
31
|
+
result = withHooksForbidden(
|
|
32
|
+
"Pibbl hooks cannot be called inside a HoverData query.",
|
|
33
|
+
() => query(context)
|
|
34
|
+
);
|
|
35
|
+
if (result != null && (typeof result === "object" || typeof result === "function") && typeof result.then === "function")
|
|
36
|
+
throw new TypeError(
|
|
37
|
+
"HoverData query must be synchronous; promises are unsupported."
|
|
38
|
+
);
|
|
39
|
+
} finally {
|
|
40
|
+
active = false;
|
|
41
|
+
}
|
|
42
|
+
return withHooksForbidden(
|
|
43
|
+
"Pibbl hooks cannot be called inside a HoverData render callback; return a component instead.",
|
|
44
|
+
() => children(result)
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
HoverData
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=hover-data.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/features/viz/lib/hover-data.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { PibblNode } from \"@pibbl/core\";\nimport { withHooksForbidden } from \"@pibbl/core/internal\";\nimport type { HoverDataProps, HoverQueryContext } from \"./hover-types.js\";\nimport type { ResolvedLinearScale, ScaleId } from \"./types.js\";\nimport { readScale } from \"./scale-context.js\";\n/**\n * Evaluates an ordinary synchronous query under the current scale scope.\n *\n * @param props - Hover query and child renderer receiving its result. See {@link HoverDataProps}.\n * @returns Content rendered from the current hover query result. See {@link PibblNode}.\n *\n * @see {@link HoverDataProps}\n * @see {@link PibblNode}\n */\nexport function HoverData<T>({ query, children }: HoverDataProps<T>): PibblNode {\n if (typeof query !== \"function\" || typeof children !== \"function\")\n throw new TypeError(\"HoverData requires query and children functions.\");\n const snapshots = new Map<ScaleId, ResolvedLinearScale>();\n let active = true;\n const context: HoverQueryContext = {\n scale(id) {\n if (!active)\n throw new Error(\n \"HoverData query context cannot be retained outside its invocation.\",\n );\n let snapshot = snapshots.get(id);\n if (!snapshot) {\n const value = readScale(id, \"HoverData\");\n if (!value) throw new TypeError(\"HoverData requires a scale ID.\");\n const resolved = value.get();\n if (resolved.type !== \"linear\")\n throw new TypeError(\n \"HoverData numeric queries require linear scales.\",\n );\n snapshot = resolved;\n snapshots.set(id, snapshot);\n }\n return snapshot;\n },\n };\n let result: T | undefined;\n try {\n result = withHooksForbidden(\n \"Pibbl hooks cannot be called inside a HoverData query.\",\n () => query(context),\n );\n if (\n result != null &&\n (typeof result === \"object\" || typeof result === \"function\") &&\n typeof (result as { then?: unknown }).then === \"function\"\n )\n throw new TypeError(\n \"HoverData query must be synchronous; promises are unsupported.\",\n );\n } finally {\n active = false;\n }\n return withHooksForbidden(\n \"Pibbl hooks cannot be called inside a HoverData render callback; return a component instead.\",\n () => children(result),\n );\n}\n"],
|
|
5
|
+
"mappings": "AACA,SAAS,0BAA0B;AAGnC,SAAS,iBAAiB;AAUnB,SAAS,UAAa,EAAE,OAAO,SAAS,GAAiC;AAC9E,MAAI,OAAO,UAAU,cAAc,OAAO,aAAa;AACrD,UAAM,IAAI,UAAU,kDAAkD;AACxE,QAAM,YAAY,oBAAI,IAAkC;AACxD,MAAI,SAAS;AACb,QAAM,UAA6B;AAAA,IACjC,MAAM,IAAI;AACR,UAAI,CAAC;AACH,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AACF,UAAI,WAAW,UAAU,IAAI,EAAE;AAC/B,UAAI,CAAC,UAAU;AACb,cAAM,QAAQ,UAAU,IAAI,WAAW;AACvC,YAAI,CAAC,MAAO,OAAM,IAAI,UAAU,gCAAgC;AAChE,cAAM,WAAW,MAAM,IAAI;AAC3B,YAAI,SAAS,SAAS;AACpB,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AACF,mBAAW;AACX,kBAAU,IAAI,IAAI,QAAQ;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,MAAI;AACJ,MAAI;AACF,aAAS;AAAA,MACP;AAAA,MACA,MAAM,MAAM,OAAO;AAAA,IACrB;AACA,QACE,UAAU,SACT,OAAO,WAAW,YAAY,OAAO,WAAW,eACjD,OAAQ,OAA8B,SAAS;AAE/C,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,EACJ,UAAE;AACA,aAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM,SAAS,MAAM;AAAA,EACvB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { HoverCardProps } from "./hover-card.js";
|
|
2
|
+
import type { PieLayoutProps } from "./pie-types.js";
|
|
3
|
+
import type { HoverPoint } from "./hover-types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Preferred side of an anchor, or automatic placement within available bounds.
|
|
6
|
+
*
|
|
7
|
+
* @see {@link HoverCardProps}
|
|
8
|
+
*/
|
|
9
|
+
export type HoverPlacement = "auto" | "above" | "below" | "right" | "left";
|
|
10
|
+
/**
|
|
11
|
+
* Logical bounds used to constrain hover-card placement.
|
|
12
|
+
*
|
|
13
|
+
* @see {@link HoverCardProps}
|
|
14
|
+
* @see {@link PieLayoutProps}
|
|
15
|
+
*/
|
|
16
|
+
export interface HoverBounds {
|
|
17
|
+
/**
|
|
18
|
+
* Horizontal coordinate or displacement in the containing coordinate system. See
|
|
19
|
+
* {@link HoverBounds}.
|
|
20
|
+
*/
|
|
21
|
+
readonly x: number;
|
|
22
|
+
/**
|
|
23
|
+
* Vertical coordinate or displacement in the containing coordinate system. See
|
|
24
|
+
* {@link HoverBounds}.
|
|
25
|
+
*/
|
|
26
|
+
readonly y: number;
|
|
27
|
+
/**
|
|
28
|
+
* Horizontal extent in the units of the containing geometry or surface. See {@link HoverBounds}
|
|
29
|
+
* .
|
|
30
|
+
*/
|
|
31
|
+
readonly width: number;
|
|
32
|
+
/**
|
|
33
|
+
* Vertical extent in the units of the containing geometry or surface. See {@link HoverBounds}.
|
|
34
|
+
*/
|
|
35
|
+
readonly height: number;
|
|
36
|
+
}
|
|
37
|
+
export declare function placeHoverCard(input: {
|
|
38
|
+
anchor: HoverPoint;
|
|
39
|
+
anchorRadius: number;
|
|
40
|
+
gap: number;
|
|
41
|
+
bounds: HoverBounds;
|
|
42
|
+
width: number;
|
|
43
|
+
height: number;
|
|
44
|
+
strokeWidth: number;
|
|
45
|
+
placement: HoverPlacement;
|
|
46
|
+
}): HoverPoint;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
function placeHoverCard(input) {
|
|
2
|
+
const {
|
|
3
|
+
anchor,
|
|
4
|
+
anchorRadius,
|
|
5
|
+
gap,
|
|
6
|
+
bounds,
|
|
7
|
+
width,
|
|
8
|
+
height,
|
|
9
|
+
strokeWidth,
|
|
10
|
+
placement
|
|
11
|
+
} = input;
|
|
12
|
+
for (const [name, value] of Object.entries({
|
|
13
|
+
x: anchor.x,
|
|
14
|
+
y: anchor.y,
|
|
15
|
+
boundsX: bounds.x,
|
|
16
|
+
boundsY: bounds.y,
|
|
17
|
+
anchorRadius,
|
|
18
|
+
gap,
|
|
19
|
+
width,
|
|
20
|
+
height,
|
|
21
|
+
strokeWidth,
|
|
22
|
+
boundsWidth: bounds.width,
|
|
23
|
+
boundsHeight: bounds.height
|
|
24
|
+
})) {
|
|
25
|
+
if (!Number.isFinite(value) || !["x", "y", "boundsX", "boundsY"].includes(name) && value < 0)
|
|
26
|
+
throw new RangeError(
|
|
27
|
+
`HoverCard ${name} must be finite${name.endsWith("X") || name.endsWith("Y") || name === "x" || name === "y" ? "" : " and nonnegative"}.`
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
const sides = ["above", "below", "right", "left"];
|
|
31
|
+
if (placement !== "auto" && !sides.includes(placement))
|
|
32
|
+
throw new TypeError("HoverCard placement is invalid.");
|
|
33
|
+
const order = placement === "auto" ? sides : [placement, ...sides.filter((s) => s !== placement)];
|
|
34
|
+
const half = strokeWidth / 2, clearance = anchorRadius + gap + half;
|
|
35
|
+
const slide = (value, start, available, size) => Math.max(start + half, Math.min(value, start + available - size - half));
|
|
36
|
+
const candidates = order.map((side) => {
|
|
37
|
+
const vertical = side === "above" || side === "below";
|
|
38
|
+
const x = vertical ? slide(anchor.x - width / 2, bounds.x, bounds.width, width) : side === "right" ? anchor.x + clearance : anchor.x - clearance - width;
|
|
39
|
+
const y = !vertical ? slide(anchor.y - height / 2, bounds.y, bounds.height, height) : side === "below" ? anchor.y + clearance : anchor.y - clearance - height;
|
|
40
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(x + width + half) || !Number.isFinite(y + height + half))
|
|
41
|
+
throw new RangeError("HoverCard placement arithmetic must be finite.");
|
|
42
|
+
return { x, y };
|
|
43
|
+
});
|
|
44
|
+
return candidates.find(
|
|
45
|
+
(p) => p.x - half >= bounds.x && p.y - half >= bounds.y && p.x + width + half <= bounds.x + bounds.width && p.y + height + half <= bounds.y + bounds.height
|
|
46
|
+
) ?? candidates[0];
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
placeHoverCard
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=hover-placement.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/features/viz/lib/hover-placement.ts"],
|
|
4
|
+
"sourcesContent": ["import type { HoverCardProps } from './hover-card.js';\nimport type { PieLayoutProps } from './pie-types.js';\nimport type { HoverPoint } from \"./hover-types.js\";\n/**\n * Preferred side of an anchor, or automatic placement within available bounds.\n *\n * @see {@link HoverCardProps}\n */\nexport type HoverPlacement = \"auto\" | \"above\" | \"below\" | \"right\" | \"left\";\n/**\n * Logical bounds used to constrain hover-card placement.\n *\n * @see {@link HoverCardProps}\n * @see {@link PieLayoutProps}\n */\nexport interface HoverBounds {\n /**\n * Horizontal coordinate or displacement in the containing coordinate system. See\n * {@link HoverBounds}.\n */\n readonly x: number;\n /**\n * Vertical coordinate or displacement in the containing coordinate system. See\n * {@link HoverBounds}.\n */\n readonly y: number;\n /**\n * Horizontal extent in the units of the containing geometry or surface. See {@link HoverBounds}\n * .\n */\n readonly width: number;\n /**\n * Vertical extent in the units of the containing geometry or surface. See {@link HoverBounds}.\n */\n readonly height: number;\n}\nexport function placeHoverCard(input: {\n anchor: HoverPoint;\n anchorRadius: number;\n gap: number;\n bounds: HoverBounds;\n width: number;\n height: number;\n strokeWidth: number;\n placement: HoverPlacement;\n}): HoverPoint {\n const {\n anchor,\n anchorRadius,\n gap,\n bounds,\n width,\n height,\n strokeWidth,\n placement,\n } = input;\n for (const [name, value] of Object.entries({\n x: anchor.x,\n y: anchor.y,\n boundsX: bounds.x,\n boundsY: bounds.y,\n anchorRadius,\n gap,\n width,\n height,\n strokeWidth,\n boundsWidth: bounds.width,\n boundsHeight: bounds.height,\n })) {\n if (\n !Number.isFinite(value) ||\n (![\"x\", \"y\", \"boundsX\", \"boundsY\"].includes(name) && value < 0)\n )\n throw new RangeError(\n `HoverCard ${name} must be finite${name.endsWith(\"X\") || name.endsWith(\"Y\") || name === \"x\" || name === \"y\" ? \"\" : \" and nonnegative\"}.`,\n );\n }\n const sides = [\"above\", \"below\", \"right\", \"left\"] as const;\n if (placement !== \"auto\" && !sides.includes(placement))\n throw new TypeError(\"HoverCard placement is invalid.\");\n const order =\n placement === \"auto\"\n ? sides\n : [placement, ...sides.filter((s) => s !== placement)];\n const half = strokeWidth / 2,\n clearance = anchorRadius + gap + half;\n const slide = (\n value: number,\n start: number,\n available: number,\n size: number,\n ) => Math.max(start + half, Math.min(value, start + available - size - half));\n const candidates = order.map((side) => {\n const vertical = side === \"above\" || side === \"below\";\n const x = vertical\n ? slide(anchor.x - width / 2, bounds.x, bounds.width, width)\n : side === \"right\"\n ? anchor.x + clearance\n : anchor.x - clearance - width;\n const y = !vertical\n ? slide(anchor.y - height / 2, bounds.y, bounds.height, height)\n : side === \"below\"\n ? anchor.y + clearance\n : anchor.y - clearance - height;\n if (\n !Number.isFinite(x) ||\n !Number.isFinite(y) ||\n !Number.isFinite(x + width + half) ||\n !Number.isFinite(y + height + half)\n )\n throw new RangeError(\"HoverCard placement arithmetic must be finite.\");\n return { x, y };\n });\n return (\n candidates.find(\n (p) =>\n p.x - half >= bounds.x &&\n p.y - half >= bounds.y &&\n p.x + width + half <= bounds.x + bounds.width &&\n p.y + height + half <= bounds.y + bounds.height,\n ) ?? candidates[0]\n );\n}\n"],
|
|
5
|
+
"mappings": "AAoCO,SAAS,eAAe,OAShB;AACb,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ;AAAA,IACzC,GAAG,OAAO;AAAA,IACV,GAAG,OAAO;AAAA,IACV,SAAS,OAAO;AAAA,IAChB,SAAS,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,OAAO;AAAA,IACpB,cAAc,OAAO;AAAA,EACvB,CAAC,GAAG;AACF,QACE,CAAC,OAAO,SAAS,KAAK,KACrB,CAAC,CAAC,KAAK,KAAK,WAAW,SAAS,EAAE,SAAS,IAAI,KAAK,QAAQ;AAE7D,YAAM,IAAI;AAAA,QACR,aAAa,IAAI,kBAAkB,KAAK,SAAS,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,SAAS,OAAO,SAAS,MAAM,KAAK,kBAAkB;AAAA,MACvI;AAAA,EACJ;AACA,QAAM,QAAQ,CAAC,SAAS,SAAS,SAAS,MAAM;AAChD,MAAI,cAAc,UAAU,CAAC,MAAM,SAAS,SAAS;AACnD,UAAM,IAAI,UAAU,iCAAiC;AACvD,QAAM,QACJ,cAAc,SACV,QACA,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,MAAM,SAAS,CAAC;AACzD,QAAM,OAAO,cAAc,GACzB,YAAY,eAAe,MAAM;AACnC,QAAM,QAAQ,CACZ,OACA,OACA,WACA,SACG,KAAK,IAAI,QAAQ,MAAM,KAAK,IAAI,OAAO,QAAQ,YAAY,OAAO,IAAI,CAAC;AAC5E,QAAM,aAAa,MAAM,IAAI,CAAC,SAAS;AACrC,UAAM,WAAW,SAAS,WAAW,SAAS;AAC9C,UAAM,IAAI,WACN,MAAM,OAAO,IAAI,QAAQ,GAAG,OAAO,GAAG,OAAO,OAAO,KAAK,IACzD,SAAS,UACP,OAAO,IAAI,YACX,OAAO,IAAI,YAAY;AAC7B,UAAM,IAAI,CAAC,WACP,MAAM,OAAO,IAAI,SAAS,GAAG,OAAO,GAAG,OAAO,QAAQ,MAAM,IAC5D,SAAS,UACP,OAAO,IAAI,YACX,OAAO,IAAI,YAAY;AAC7B,QACE,CAAC,OAAO,SAAS,CAAC,KAClB,CAAC,OAAO,SAAS,CAAC,KAClB,CAAC,OAAO,SAAS,IAAI,QAAQ,IAAI,KACjC,CAAC,OAAO,SAAS,IAAI,SAAS,IAAI;AAElC,YAAM,IAAI,WAAW,gDAAgD;AACvE,WAAO,EAAE,GAAG,EAAE;AAAA,EAChB,CAAC;AACD,SACE,WAAW;AAAA,IACT,CAAC,MACC,EAAE,IAAI,QAAQ,OAAO,KACrB,EAAE,IAAI,QAAQ,OAAO,KACrB,EAAE,IAAI,QAAQ,QAAQ,OAAO,IAAI,OAAO,SACxC,EAAE,IAAI,SAAS,QAAQ,OAAO,IAAI,OAAO;AAAA,EAC7C,KAAK,WAAW,CAAC;AAErB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { ClosestPointHit, ClosestPointOptions, HoverQuery, HoverSeries, HoverSeriesMap } from "./hover-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a data descriptor without observing or copying its dataset.
|
|
4
|
+
*
|
|
5
|
+
* @param options - Data, accessors, and scales describing a hoverable series. See
|
|
6
|
+
* {@link HoverSeries} .
|
|
7
|
+
* @returns The series descriptor with its datum type preserved. See {@link HoverSeries}.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link HoverSeries}
|
|
10
|
+
*/
|
|
11
|
+
export declare function defineSeries<D>(options: HoverSeries<D>): HoverSeries<D>;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an ordinary query function for the closest mapped recorded point.
|
|
14
|
+
*
|
|
15
|
+
* @param options - Series and distance policy for the hover query. See {@link ClosestPointOptions}
|
|
16
|
+
* .
|
|
17
|
+
* @returns A query that selects the closest eligible point, or yields undefined when none
|
|
18
|
+
* qualifies. See {@link HoverQuery} , {@link ClosestPointHit} .
|
|
19
|
+
*
|
|
20
|
+
* @see {@link ClosestPointOptions}
|
|
21
|
+
* @see {@link HoverQuery}
|
|
22
|
+
* @see {@link ClosestPointHit}
|
|
23
|
+
* @see {@link HoverSeriesMap}
|
|
24
|
+
*/
|
|
25
|
+
export declare function closestPoint<S extends HoverSeriesMap>(options: ClosestPointOptions<S>): HoverQuery<ClosestPointHit<S>>;
|
|
26
|
+
import type { ClosestXOptions, ClosestXHit, HoverInterpolation, InterpolateXOptions, HoverSample } from "./hover-types.js";
|
|
27
|
+
/**
|
|
28
|
+
* Selects a recorded observation by domain-x distance, independently of pointer y.
|
|
29
|
+
*
|
|
30
|
+
* @param options - Series and horizontal-distance policy. See {@link ClosestXOptions}.
|
|
31
|
+
* @returns A query selecting the nearest horizontal match, or undefined when none qualifies. See
|
|
32
|
+
* {@link HoverQuery} , {@link ClosestXHit} .
|
|
33
|
+
*
|
|
34
|
+
* @see {@link ClosestXOptions}
|
|
35
|
+
* @see {@link HoverQuery}
|
|
36
|
+
* @see {@link ClosestXHit}
|
|
37
|
+
*/
|
|
38
|
+
export declare function closestX<D>(options: ClosestXOptions<D>): HoverQuery<ClosestXHit<D>>;
|
|
39
|
+
/**
|
|
40
|
+
* Returns a plain data-space linear interpolation function.
|
|
41
|
+
*
|
|
42
|
+
* @returns A linear interpolator for values bracketing a sample position. See
|
|
43
|
+
* {@link HoverInterpolation} .
|
|
44
|
+
*
|
|
45
|
+
* @see {@link HoverInterpolation}
|
|
46
|
+
*/
|
|
47
|
+
export declare function linearInterpolation(): HoverInterpolation;
|
|
48
|
+
/**
|
|
49
|
+
* Samples sorted recorded observations without bridging explicit data gaps.
|
|
50
|
+
*
|
|
51
|
+
* @param options - Series, horizontal sampling, and interpolation policy. See
|
|
52
|
+
* {@link InterpolateXOptions} .
|
|
53
|
+
* @returns A query producing an interpolated sample, or undefined when sampling is unavailable.
|
|
54
|
+
* See {@link HoverQuery} , {@link HoverSample} .
|
|
55
|
+
*
|
|
56
|
+
* @see {@link InterpolateXOptions}
|
|
57
|
+
* @see {@link HoverQuery}
|
|
58
|
+
* @see {@link HoverSample}
|
|
59
|
+
*/
|
|
60
|
+
export declare function interpolateX<D>(options: InterpolateXOptions<D>): HoverQuery<HoverSample<D>>;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { resolveSignalValue } from "@pibbl/core";
|
|
2
|
+
import { finiteCoordinate, pointAccessor, pointData } from "./point-data.js";
|
|
3
|
+
function defineSeries(options) {
|
|
4
|
+
return Object.freeze({ ...options });
|
|
5
|
+
}
|
|
6
|
+
function finite(value, name) {
|
|
7
|
+
if (!finiteCoordinate(value)) throw new RangeError(`${name} must be finite.`);
|
|
8
|
+
}
|
|
9
|
+
function limit(value, name) {
|
|
10
|
+
if (value === void 0) return;
|
|
11
|
+
finite(value, name);
|
|
12
|
+
if (value < 0) throw new RangeError(`${name} must be nonnegative.`);
|
|
13
|
+
}
|
|
14
|
+
function closestPoint(options) {
|
|
15
|
+
return (context) => {
|
|
16
|
+
limit(options.maxDistance, "closestPoint maxDistance");
|
|
17
|
+
const position = resolveSignalValue(options.position);
|
|
18
|
+
if (position === null) return void 0;
|
|
19
|
+
finite(position.x, "closestPoint position.x");
|
|
20
|
+
finite(position.y, "closestPoint position.y");
|
|
21
|
+
const xs = context.scale(options.xScale), ys = context.scale(options.yScale);
|
|
22
|
+
let best, distance = Infinity;
|
|
23
|
+
for (const key of Object.keys(options.series)) {
|
|
24
|
+
const series = options.series[key];
|
|
25
|
+
const data = pointData(resolveSignalValue(series.data), "closestPoint");
|
|
26
|
+
const x = pointAccessor(series.x), y = pointAccessor(series.y);
|
|
27
|
+
for (let index = 0; index < data.length; index++) {
|
|
28
|
+
const datum = data[index];
|
|
29
|
+
if (series.defined && !series.defined(datum, index, data)) continue;
|
|
30
|
+
const xv = x(datum, index, data), yv = y(datum, index, data);
|
|
31
|
+
if (!finiteCoordinate(xv) || !finiteCoordinate(yv)) continue;
|
|
32
|
+
const anchor = { x: xs.map(xv), y: ys.map(yv) };
|
|
33
|
+
const next = Math.hypot(anchor.x - position.x, anchor.y - position.y);
|
|
34
|
+
finite(next, "closestPoint distance");
|
|
35
|
+
if (next < distance && (options.maxDistance === void 0 || next <= options.maxDistance)) {
|
|
36
|
+
distance = next;
|
|
37
|
+
best = {
|
|
38
|
+
series: key,
|
|
39
|
+
datum,
|
|
40
|
+
index,
|
|
41
|
+
x: xv,
|
|
42
|
+
y: yv,
|
|
43
|
+
anchor,
|
|
44
|
+
distance
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return best;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function closestX(options) {
|
|
53
|
+
return (context) => {
|
|
54
|
+
limit(options.maxDelta, "closestX maxDelta");
|
|
55
|
+
const query = resolveSignalValue(options.x);
|
|
56
|
+
if (query === null) return void 0;
|
|
57
|
+
finite(query, "closestX x");
|
|
58
|
+
const xs = context.scale(options.xScale), ys = context.scale(options.yScale);
|
|
59
|
+
const series = options.series, data = pointData(resolveSignalValue(series.data), "closestX");
|
|
60
|
+
const x = pointAccessor(series.x), y = pointAccessor(series.y);
|
|
61
|
+
let best, delta = Infinity;
|
|
62
|
+
for (let index = 0; index < data.length; index++) {
|
|
63
|
+
const datum = data[index];
|
|
64
|
+
if (series.defined && !series.defined(datum, index, data)) continue;
|
|
65
|
+
const xv = x(datum, index, data), yv = y(datum, index, data);
|
|
66
|
+
if (!finiteCoordinate(xv) || !finiteCoordinate(yv)) continue;
|
|
67
|
+
const distance = Math.abs(query - xv);
|
|
68
|
+
finite(distance, "closestX delta");
|
|
69
|
+
if (distance < delta && (options.maxDelta === void 0 || distance <= options.maxDelta)) {
|
|
70
|
+
delta = distance;
|
|
71
|
+
best = {
|
|
72
|
+
datum,
|
|
73
|
+
index,
|
|
74
|
+
x: xv,
|
|
75
|
+
y: yv,
|
|
76
|
+
anchor: { x: xs.map(xv), y: ys.map(yv) },
|
|
77
|
+
delta
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return best;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function linearInterpolation() {
|
|
85
|
+
return (before, after, fraction) => {
|
|
86
|
+
finite(before, "linearInterpolation before");
|
|
87
|
+
finite(after, "linearInterpolation after");
|
|
88
|
+
finite(fraction, "linearInterpolation fraction");
|
|
89
|
+
const result = before * (1 - fraction) + after * fraction;
|
|
90
|
+
finite(result, "linearInterpolation result");
|
|
91
|
+
return result;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function interpolateX(options) {
|
|
95
|
+
return (context) => {
|
|
96
|
+
limit(options.maxGap, "interpolateX maxGap");
|
|
97
|
+
const policy = options.duplicateX ?? "error";
|
|
98
|
+
if (!["error", "first", "last"].includes(policy))
|
|
99
|
+
throw new TypeError(
|
|
100
|
+
"interpolateX duplicateX must be error, first, or last."
|
|
101
|
+
);
|
|
102
|
+
if (typeof options.interpolation !== "function")
|
|
103
|
+
throw new TypeError("interpolateX requires an interpolation function.");
|
|
104
|
+
const query = resolveSignalValue(options.x);
|
|
105
|
+
if (query === null) return void 0;
|
|
106
|
+
finite(query, "interpolateX x");
|
|
107
|
+
const xs = context.scale(options.xScale), ys = context.scale(options.yScale);
|
|
108
|
+
const series = options.series, data = pointData(resolveSignalValue(series.data), "interpolateX");
|
|
109
|
+
const x = pointAccessor(series.x), y = pointAccessor(series.y);
|
|
110
|
+
const segments = [];
|
|
111
|
+
let segment = [], previousX = -Infinity;
|
|
112
|
+
const breakSegment = () => {
|
|
113
|
+
if (segment.length) segments.push(segment);
|
|
114
|
+
segment = [];
|
|
115
|
+
};
|
|
116
|
+
for (let index = 0; index < data.length; index++) {
|
|
117
|
+
const datum = data[index];
|
|
118
|
+
if (series.defined && !series.defined(datum, index, data)) {
|
|
119
|
+
breakSegment();
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const xv = x(datum, index, data), yv = y(datum, index, data);
|
|
123
|
+
if (finiteCoordinate(xv)) {
|
|
124
|
+
if (xv < previousX)
|
|
125
|
+
throw new RangeError(
|
|
126
|
+
"interpolateX requires nondecreasing source x order."
|
|
127
|
+
);
|
|
128
|
+
previousX = xv;
|
|
129
|
+
}
|
|
130
|
+
if (!finiteCoordinate(xv) || !finiteCoordinate(yv)) {
|
|
131
|
+
breakSegment();
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const row = { datum, index, x: xv, y: yv }, previous = segment.at(-1);
|
|
135
|
+
if (previous?.x === xv) {
|
|
136
|
+
if (policy === "error")
|
|
137
|
+
throw new RangeError(
|
|
138
|
+
"interpolateX duplicate x requires an explicit first/last policy."
|
|
139
|
+
);
|
|
140
|
+
if (policy === "last") segment[segment.length - 1] = row;
|
|
141
|
+
} else segment.push(row);
|
|
142
|
+
}
|
|
143
|
+
breakSegment();
|
|
144
|
+
for (const rows of segments) {
|
|
145
|
+
for (let i = 0; i < rows.length; i++) {
|
|
146
|
+
const before = rows[i];
|
|
147
|
+
if (before.x === query)
|
|
148
|
+
return {
|
|
149
|
+
kind: "exact",
|
|
150
|
+
...before,
|
|
151
|
+
anchor: { x: xs.map(query), y: ys.map(before.y) }
|
|
152
|
+
};
|
|
153
|
+
const after = rows[i + 1];
|
|
154
|
+
if (!after || query <= before.x || query >= after.x) continue;
|
|
155
|
+
const span = after.x - before.x, offset = query - before.x;
|
|
156
|
+
finite(span, "interpolateX interval");
|
|
157
|
+
finite(offset, "interpolateX offset");
|
|
158
|
+
if (options.maxGap !== void 0 && span > options.maxGap)
|
|
159
|
+
return void 0;
|
|
160
|
+
const fraction = offset / span, value = options.interpolation(before.y, after.y, fraction);
|
|
161
|
+
finite(value, "interpolateX interpolator result");
|
|
162
|
+
return {
|
|
163
|
+
kind: "interpolated",
|
|
164
|
+
x: query,
|
|
165
|
+
y: value,
|
|
166
|
+
before: before.datum,
|
|
167
|
+
after: after.datum,
|
|
168
|
+
beforeIndex: before.index,
|
|
169
|
+
afterIndex: after.index,
|
|
170
|
+
fraction,
|
|
171
|
+
anchor: { x: xs.map(query), y: ys.map(value) }
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return void 0;
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
export {
|
|
179
|
+
closestPoint,
|
|
180
|
+
closestX,
|
|
181
|
+
defineSeries,
|
|
182
|
+
interpolateX,
|
|
183
|
+
linearInterpolation
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=hover-queries.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/features/viz/lib/hover-queries.ts"],
|
|
4
|
+
"sourcesContent": ["import { resolveSignalValue } from \"@pibbl/core\";\nimport { finiteCoordinate, pointAccessor, pointData } from \"./point-data.js\";\nimport type {\n ClosestPointHit,\n ClosestPointOptions,\n HoverQuery,\n HoverSeries,\n HoverSeriesMap,\n} from \"./hover-types.js\";\n/**\n * Creates a data descriptor without observing or copying its dataset.\n *\n * @param options - Data, accessors, and scales describing a hoverable series. See\n * {@link HoverSeries} .\n * @returns The series descriptor with its datum type preserved. See {@link HoverSeries}.\n *\n * @see {@link HoverSeries}\n */\nexport function defineSeries<D>(options: HoverSeries<D>): HoverSeries<D> {\n return Object.freeze({ ...options });\n}\nfunction finite(value: unknown, name: string): asserts value is number {\n if (!finiteCoordinate(value)) throw new RangeError(`${name} must be finite.`);\n}\nfunction limit(value: number | undefined, name: string): void {\n if (value === undefined) return;\n finite(value, name);\n if (value < 0) throw new RangeError(`${name} must be nonnegative.`);\n}\n/**\n * Creates an ordinary query function for the closest mapped recorded point.\n *\n * @param options - Series and distance policy for the hover query. See {@link ClosestPointOptions}\n * .\n * @returns A query that selects the closest eligible point, or yields undefined when none\n * qualifies. See {@link HoverQuery} , {@link ClosestPointHit} .\n *\n * @see {@link ClosestPointOptions}\n * @see {@link HoverQuery}\n * @see {@link ClosestPointHit}\n * @see {@link HoverSeriesMap}\n */\nexport function closestPoint<S extends HoverSeriesMap>(\n options: ClosestPointOptions<S>,\n): HoverQuery<ClosestPointHit<S>> {\n return (context) => {\n limit(options.maxDistance, \"closestPoint maxDistance\");\n const position = resolveSignalValue(options.position);\n if (position === null) return undefined;\n finite(position.x, \"closestPoint position.x\");\n finite(position.y, \"closestPoint position.y\");\n const xs = context.scale(options.xScale),\n ys = context.scale(options.yScale);\n let best: ClosestPointHit<S> | undefined,\n distance = Infinity;\n for (const key of Object.keys(options.series)) {\n const series = options.series[key];\n const data = pointData(resolveSignalValue(series.data), \"closestPoint\");\n const x = pointAccessor(series.x),\n y = pointAccessor(series.y);\n for (let index = 0; index < data.length; index++) {\n const datum = data[index];\n if (series.defined && !series.defined(datum, index, data)) continue;\n const xv = x(datum, index, data),\n yv = y(datum, index, data);\n if (!finiteCoordinate(xv) || !finiteCoordinate(yv)) continue;\n const anchor = { x: xs.map(xv), y: ys.map(yv) };\n const next = Math.hypot(anchor.x - position.x, anchor.y - position.y);\n finite(next, \"closestPoint distance\");\n if (\n next < distance &&\n (options.maxDistance === undefined || next <= options.maxDistance)\n ) {\n distance = next;\n best = {\n series: key,\n datum,\n index,\n x: xv,\n y: yv,\n anchor,\n distance,\n } as ClosestPointHit<S>;\n }\n }\n }\n return best;\n };\n}\n\nimport type {\n ClosestXOptions,\n ClosestXHit,\n HoverInterpolation,\n InterpolateXOptions,\n HoverSample,\n} from \"./hover-types.js\";\n/**\n * Selects a recorded observation by domain-x distance, independently of pointer y.\n *\n * @param options - Series and horizontal-distance policy. See {@link ClosestXOptions}.\n * @returns A query selecting the nearest horizontal match, or undefined when none qualifies. See\n * {@link HoverQuery} , {@link ClosestXHit} .\n *\n * @see {@link ClosestXOptions}\n * @see {@link HoverQuery}\n * @see {@link ClosestXHit}\n */\nexport function closestX<D>(\n options: ClosestXOptions<D>,\n): HoverQuery<ClosestXHit<D>> {\n return (context) => {\n limit(options.maxDelta, \"closestX maxDelta\");\n const query = resolveSignalValue(options.x);\n if (query === null) return undefined;\n finite(query, \"closestX x\");\n const xs = context.scale(options.xScale),\n ys = context.scale(options.yScale);\n const series = options.series,\n data = pointData(resolveSignalValue(series.data), \"closestX\");\n const x = pointAccessor(series.x),\n y = pointAccessor(series.y);\n let best: ClosestXHit<D> | undefined,\n delta = Infinity;\n for (let index = 0; index < data.length; index++) {\n const datum = data[index];\n if (series.defined && !series.defined(datum, index, data)) continue;\n const xv = x(datum, index, data),\n yv = y(datum, index, data);\n if (!finiteCoordinate(xv) || !finiteCoordinate(yv)) continue;\n const distance = Math.abs(query - xv);\n finite(distance, \"closestX delta\");\n if (\n distance < delta &&\n (options.maxDelta === undefined || distance <= options.maxDelta)\n ) {\n delta = distance;\n best = {\n datum,\n index,\n x: xv,\n y: yv,\n anchor: { x: xs.map(xv), y: ys.map(yv) },\n delta,\n };\n }\n }\n return best;\n };\n}\n/**\n * Returns a plain data-space linear interpolation function.\n *\n * @returns A linear interpolator for values bracketing a sample position. See\n * {@link HoverInterpolation} .\n *\n * @see {@link HoverInterpolation}\n */\nexport function linearInterpolation(): HoverInterpolation {\n return (before, after, fraction) => {\n finite(before, \"linearInterpolation before\");\n finite(after, \"linearInterpolation after\");\n finite(fraction, \"linearInterpolation fraction\");\n const result = before * (1 - fraction) + after * fraction;\n finite(result, \"linearInterpolation result\");\n return result;\n };\n}\n/**\n * Samples sorted recorded observations without bridging explicit data gaps.\n *\n * @param options - Series, horizontal sampling, and interpolation policy. See\n * {@link InterpolateXOptions} .\n * @returns A query producing an interpolated sample, or undefined when sampling is unavailable.\n * See {@link HoverQuery} , {@link HoverSample} .\n *\n * @see {@link InterpolateXOptions}\n * @see {@link HoverQuery}\n * @see {@link HoverSample}\n */\nexport function interpolateX<D>(\n options: InterpolateXOptions<D>,\n): HoverQuery<HoverSample<D>> {\n return (context) => {\n limit(options.maxGap, \"interpolateX maxGap\");\n const policy = options.duplicateX ?? \"error\";\n if (![\"error\", \"first\", \"last\"].includes(policy))\n throw new TypeError(\n \"interpolateX duplicateX must be error, first, or last.\",\n );\n if (typeof options.interpolation !== \"function\")\n throw new TypeError(\"interpolateX requires an interpolation function.\");\n const query = resolveSignalValue(options.x);\n if (query === null) return undefined;\n finite(query, \"interpolateX x\");\n const xs = context.scale(options.xScale),\n ys = context.scale(options.yScale);\n const series = options.series,\n data = pointData(resolveSignalValue(series.data), \"interpolateX\");\n const x = pointAccessor(series.x),\n y = pointAccessor(series.y);\n type Row = { datum: D; index: number; x: number; y: number };\n const segments: Row[][] = [];\n let segment: Row[] = [],\n previousX = -Infinity;\n const breakSegment = () => {\n if (segment.length) segments.push(segment);\n segment = [];\n };\n // Validate the complete source before answering even an exact query.\n for (let index = 0; index < data.length; index++) {\n const datum = data[index];\n if (series.defined && !series.defined(datum, index, data)) {\n breakSegment();\n continue;\n }\n const xv = x(datum, index, data),\n yv = y(datum, index, data);\n if (finiteCoordinate(xv)) {\n if (xv < previousX)\n throw new RangeError(\n \"interpolateX requires nondecreasing source x order.\",\n );\n previousX = xv;\n }\n if (!finiteCoordinate(xv) || !finiteCoordinate(yv)) {\n breakSegment();\n continue;\n }\n const row = { datum, index, x: xv, y: yv },\n previous = segment.at(-1);\n if (previous?.x === xv) {\n if (policy === \"error\")\n throw new RangeError(\n \"interpolateX duplicate x requires an explicit first/last policy.\",\n );\n if (policy === \"last\") segment[segment.length - 1] = row;\n } else segment.push(row);\n }\n breakSegment();\n for (const rows of segments) {\n for (let i = 0; i < rows.length; i++) {\n const before = rows[i];\n if (before.x === query)\n return {\n kind: \"exact\",\n ...before,\n anchor: { x: xs.map(query), y: ys.map(before.y) },\n };\n const after = rows[i + 1];\n if (!after || query <= before.x || query >= after.x) continue;\n const span = after.x - before.x,\n offset = query - before.x;\n finite(span, \"interpolateX interval\");\n finite(offset, \"interpolateX offset\");\n if (options.maxGap !== undefined && span > options.maxGap)\n return undefined;\n const fraction = offset / span,\n value = options.interpolation(before.y, after.y, fraction);\n finite(value, \"interpolateX interpolator result\");\n return {\n kind: \"interpolated\",\n x: query,\n y: value,\n before: before.datum,\n after: after.datum,\n beforeIndex: before.index,\n afterIndex: after.index,\n fraction,\n anchor: { x: xs.map(query), y: ys.map(value) },\n };\n }\n }\n return undefined;\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|