@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,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/render-layer/controller.ts"],
|
|
4
|
+
"sourcesContent": ["import { GLOBAL_STATE, getCurrentPibblInstance } from \"../global-state.js\";\nimport { getCurrentWorldTransform } from \"../render-target.js\";\nimport {\n queueFrameCompletion,\n requestInstanceRender,\n} from \"../scheduler/realm-scheduler.js\";\nimport type { PibblComponentRefs, RenderingContext2D } from \"../types.js\";\nimport type { PibblPointerEvents } from \"../events/types.js\";\nimport {\n PibblHitDisposition,\n PibblPaintEntryKind,\n type PibblHitTestOutput,\n type PibblNestedPaintEntry,\n} from \"../events/paint-entry.js\";\nimport {\n createTarget,\n releaseTarget,\n updateTarget,\n type PibblEventTargetRegistration,\n} from \"../events/registrations.js\";\nimport {\n hasResolverPointerCapture,\n releaseResolverInputWinner,\n releaseResolverPointerCapture,\n setResolverPointerCapture,\n type PibblResolverInputType,\n type PibblResolverInputWinner,\n} from \"../events/resolver-input.js\";\nimport type {\n PibblRenderLayerContext,\n PibblRenderLayerDefinition,\n PibblRenderLayerFrame,\n PibblRenderLayerHit,\n PibblRenderLayerInteractionSnapshot,\n PibblRenderLayerSize,\n PibblRenderLayerTarget,\n} from \"./types.js\";\n\nclass SynchronousLifecycleError extends TypeError {}\n\ninterface StagedInteraction<Target extends object> {\n readonly snapshot: PibblRenderLayerInteractionSnapshot<Target>;\n readonly targets: readonly PibblRenderLayerTarget<Target>[];\n readonly transform: DOMMatrix;\n readonly clippingStack: PibblNestedPaintEntry[\"clippingStack\"];\n}\n\ninterface RenderCandidate<Target extends object> {\n readonly bitmap: ImageBitmap;\n readonly interaction: StagedInteraction<Target>;\n readonly policy: RenderLayerPolicy;\n}\n\ninterface RenderLayerPolicy {\n readonly missBehavior: \"pass-through\" | \"block\" | \"target-layer\";\n readonly pointerEvents: PibblPointerEvents | undefined;\n readonly keyboardFocusable: boolean | undefined;\n readonly keyboardNavigationBounds:\n | Readonly<{\n x: number;\n y: number;\n width: number;\n height: number;\n }>\n | undefined;\n}\n\ninterface WinnerState<Target extends object> {\n readonly point: Readonly<{ x: number; y: number }>;\n readonly hit: PibblRenderLayerHit<Target>;\n}\n\nconst MISS_SNAPSHOT: PibblRenderLayerInteractionSnapshot<object> = Object.freeze({\n targets: Object.freeze([]),\n hitTest: () => Object.freeze({ kind: \"miss\" as const }),\n});\n\nconst RESOLVER_INPUT_TYPES = Object.freeze([\n \"pointerdown\",\n \"pointermove\",\n \"pointerup\",\n \"pointercancel\",\n \"wheel\",\n \"contextmenu\",\n \"click\",\n] as const);\n\nconst RESOLVER_CAPTURE_INPUT_TYPES = Object.freeze([\n \"pointermove\",\n \"pointerup\",\n \"pointercancel\",\n] as const);\n\n// The private target deliberately owns no user callback. This eligibility\n// marker lets the shared keyboard default dispatch its click through the\n// component's one structural listener.\nconst STRUCTURAL_CLICK_ELIGIBILITY = () => {};\n\nexport function assertSynchronous(value: unknown, callback: string): void {\n if (value && typeof (value as { then?: unknown }).then === \"function\") {\n throw new SynchronousLifecycleError(\n `defineRenderLayer ${callback}() must be synchronous.`,\n );\n }\n}\n\nexport class RenderLayerController<Props, Resources, Target extends object> {\n private readonly instance = getCurrentPibblInstance();\n private readonly refs: PibblComponentRefs<any>;\n private readonly canvas: OffscreenCanvas;\n private readonly context: PibblRenderLayerContext;\n private resources: Resources | undefined;\n private created = false;\n private disposed = false;\n private size: PibblRenderLayerSize | undefined;\n private props: Readonly<Props> | undefined;\n private needsRender = true;\n private needsResize = true;\n private inputGated = true;\n private candidate: RenderCandidate<Target> | undefined;\n private committed: ImageBitmap | undefined;\n private committedInteraction:\n PibblRenderLayerInteractionSnapshot<Target> | undefined;\n private committedTargetDescriptors: readonly PibblRenderLayerTarget<Target>[] =\n Object.freeze([]);\n private readonly committedTargets = new Map<\n Target,\n PibblEventTargetRegistration\n >();\n private readonly layerTarget: PibblEventTargetRegistration;\n private committedPolicy: RenderLayerPolicy = Object.freeze({\n missBehavior: \"pass-through\",\n pointerEvents: undefined,\n keyboardFocusable: undefined,\n keyboardNavigationBounds: undefined,\n });\n private resolverTransform = new DOMMatrix();\n private resolverInverseTransform = new DOMMatrix();\n private resolverBounds = new Path2D();\n private resolverSize: PibblRenderLayerSize | undefined;\n private resolutionErrorQueued = false;\n private readonly inputNativeReleases = new Map<\n PibblResolverInputType,\n () => void\n >();\n private readonly resolverEntry: PibblNestedPaintEntry;\n private readonly inputWinner: PibblResolverInputWinner;\n private lastTime: number | undefined;\n\n constructor(\n private readonly definition: PibblRenderLayerDefinition<\n Props,\n Resources,\n Target\n >,\n refs: PibblComponentRefs<any>,\n ) {\n this.refs = refs;\n this.layerTarget = createTarget(this.instance, refs, -1);\n this.inputWinner = {\n eventRoot: this.instance.eventRoot,\n deliver: (type, point, originalEvent, state) =>\n this.deliverInput(type, point, originalEvent, state),\n onPointerCaptureChange: () =>\n this.updateInputNativeOwnership(\n Boolean(this.committedInteraction?.onInput),\n ),\n };\n this.resolverEntry = {\n paintKind: PibblPaintEntryKind.Resolver,\n instance: this.instance,\n bounds: this.resolverBounds,\n transform: this.resolverTransform,\n clippingStack: [],\n resolveLocal: (x, y, output) => this.resolveLocal(x, y, output),\n };\n assertCapability();\n this.canvas = new OffscreenCanvas(1, 1);\n const controller = this;\n this.context = Object.freeze({\n canvas: this.canvas,\n get size() {\n if (!controller.size) {\n throw new Error(\"Render layer size is unavailable before mount.\");\n }\n return controller.size;\n },\n invalidate() {\n controller.invalidate(true);\n },\n });\n refs.teardowns.add(() => this.dispose());\n }\n\n render(\n props: Readonly<Props>,\n size: PibblRenderLayerSize,\n ctx: RenderingContext2D,\n policy: RenderLayerPolicy = this.committedPolicy,\n ): void {\n if (this.disposed) return;\n const initial = !this.created;\n const propsChanged = !initial && !sameProps(this.props, props);\n const sizeChanged = !sameSize(this.size, size);\n const policyChanged = !samePolicy(this.committedPolicy, policy);\n this.size = size;\n this.publishResolver(size);\n if (sizeChanged) {\n this.canvas.width = size.backingWidth;\n this.canvas.height = size.backingHeight;\n this.needsResize = true;\n this.needsRender = true;\n }\n if (initial) {\n const resources = this.definition.create(this.context, props);\n assertSynchronous(resources, \"create\");\n this.resources = resources;\n this.created = true;\n } else {\n try {\n if (propsChanged && this.definition.update) {\n assertSynchronous(\n this.definition.update(this.resources!, props, this.context),\n \"update\",\n );\n }\n if (this.needsResize && this.definition.resize) {\n assertSynchronous(\n this.definition.resize(this.resources!, size, this.context),\n \"resize\",\n );\n this.needsResize = false;\n }\n } catch (error) {\n if (isSynchronousViolation(error)) throw error;\n this.failCandidate(ctx, size, error);\n return;\n }\n }\n if (initial && this.needsResize && this.definition.resize) {\n try {\n assertSynchronous(\n this.definition.resize(this.resources!, size, this.context),\n \"resize\",\n );\n this.needsResize = false;\n } catch (error) {\n if (isSynchronousViolation(error)) throw error;\n this.failCandidate(ctx, size, error);\n return;\n }\n }\n if (!this.definition.resize) this.needsResize = false;\n this.props = snapshotProps(props);\n if (initial || propsChanged || sizeChanged || this.needsRender) {\n const frame = this.createFrame();\n this.needsRender = false;\n try {\n assertSynchronous(\n this.definition.render(this.resources!, frame, this.context),\n \"render\",\n );\n } catch (error) {\n if (isSynchronousViolation(error)) throw error;\n this.failCandidate(ctx, size, error);\n return;\n }\n let interaction: StagedInteraction<Target>;\n try {\n interaction = this.settleInteraction(props);\n } catch (error) {\n if (isSynchronousViolation(error)) throw error;\n this.failCandidate(ctx, size, error);\n return;\n }\n const stagedPolicy = snapshotPolicy(policy);\n const candidate = this.canvas.transferToImageBitmap();\n this.candidate?.bitmap.close();\n const stagedCandidate = {\n bitmap: candidate,\n interaction,\n policy: stagedPolicy,\n };\n this.candidate = stagedCandidate;\n const transaction = GLOBAL_STATE.renderTransaction;\n transaction?.onFinish((success) =>\n this.finishCandidate(stagedCandidate, success),\n );\n if (!transaction) this.finishCandidate(stagedCandidate, true);\n ctx.drawImage(\n candidate,\n 0,\n 0,\n size.backingWidth,\n size.backingHeight,\n 0,\n 0,\n size.width,\n size.height,\n );\n return;\n }\n const transaction = GLOBAL_STATE.renderTransaction;\n transaction?.onFinish((success) => {\n if (success && !this.disposed) {\n if (policyChanged && this.committedInteraction) {\n this.commitInteraction(\n {\n snapshot: this.committedInteraction,\n targets: this.committedTargetDescriptors,\n transform: this.resolverTransform,\n clippingStack: this.resolverEntry.clippingStack,\n },\n snapshotPolicy(policy),\n );\n }\n this.refreshCommittedTargetGeometry();\n }\n });\n if (!transaction && policyChanged && this.committedInteraction) {\n this.commitInteraction(\n {\n snapshot: this.committedInteraction,\n targets: this.committedTargetDescriptors,\n transform: this.resolverTransform,\n clippingStack: this.resolverEntry.clippingStack,\n },\n snapshotPolicy(policy),\n );\n }\n this.drawCommitted(ctx, size);\n }\n\n private publishResolver(size: PibblRenderLayerSize): void {\n if (!sameSize(this.resolverSize, size)) {\n const bounds = new Path2D();\n bounds.rect(0, 0, size.width, size.height);\n this.resolverBounds = bounds;\n this.resolverEntry.bounds = bounds;\n this.resolverSize = size;\n }\n this.resolverTransform = getCurrentWorldTransform();\n this.resolverInverseTransform = this.resolverTransform.inverse();\n this.resolverEntry.transform = this.resolverTransform;\n this.resolverEntry.clippingStack = Array.from(GLOBAL_STATE.clippingStack);\n // Sets preserve insertion order, so refresh the retained entry at its\n // current Canvas paint position on every traversal.\n this.instance.paintEntries.delete(this.resolverEntry);\n this.instance.paintEntries.add(this.resolverEntry);\n }\n\n private drawCommitted(\n ctx: RenderingContext2D,\n size: PibblRenderLayerSize,\n ): void {\n if (this.committed) {\n ctx.drawImage(\n this.committed,\n 0,\n 0,\n size.backingWidth,\n size.backingHeight,\n 0,\n 0,\n size.width,\n size.height,\n );\n }\n }\n\n private createFrame(): PibblRenderLayerFrame {\n const snapshot = GLOBAL_STATE.frameSnapshot;\n const time = snapshot?.logicalTime ?? this.instance.renderTimestamp;\n const delta = this.lastTime === undefined ? 0 : time - this.lastTime;\n this.lastTime = time;\n return Object.freeze({\n frameId: snapshot?.frameId ?? 0,\n time,\n delta,\n deltaSeconds: delta / 1000,\n invalidate: () => this.invalidate(false),\n });\n }\n\n private invalidate(gateInput: boolean): void {\n if (\n this.disposed ||\n this.refs.teardowns.closed ||\n this.instance.mainTeardowns.closed\n )\n return;\n this.needsRender = true;\n if (gateInput) this.inputGated = true;\n requestInstanceRender(this.instance);\n }\n\n private settleInteraction(props: Readonly<Props>): StagedInteraction<Target> {\n const snapshot =\n this.definition.interaction?.settle(this.resources!, props, this.size!) ??\n (MISS_SNAPSHOT as PibblRenderLayerInteractionSnapshot<Target>);\n assertSynchronous(snapshot, \"interaction.settle\");\n const targets: PibblRenderLayerTarget<Target>[] = [];\n const identities = new Set<Target>();\n for (const target of snapshot.targets) {\n if (identities.has(target.target)) {\n throw new Error(\n \"Render layer interaction contains a duplicate target identity.\",\n );\n }\n identities.add(target.target);\n targets.push(\n Object.freeze({\n ...target,\n handlers: target.handlers\n ? Object.freeze({ ...target.handlers })\n : undefined,\n keyboardNavigationBounds: target.keyboardNavigationBounds\n ? Object.freeze({ ...target.keyboardNavigationBounds })\n : undefined,\n }),\n );\n }\n return {\n snapshot,\n targets: Object.freeze(targets),\n transform: this.resolverTransform,\n clippingStack: this.resolverEntry.clippingStack,\n };\n }\n\n private finishCandidate(\n candidate: RenderCandidate<Target>,\n success: boolean,\n ): void {\n if (this.candidate !== candidate) return;\n this.candidate = undefined;\n if (!success || this.disposed) {\n candidate.bitmap.close();\n return;\n }\n this.commitInteraction(candidate.interaction, candidate.policy);\n this.committed?.close();\n this.committed = candidate.bitmap;\n this.resolutionErrorQueued = false;\n this.inputGated = false;\n }\n\n /** Publishes one interaction snapshot only after its bitmap transaction wins. */\n private commitInteraction(\n interaction: StagedInteraction<Target>,\n policy: RenderLayerPolicy,\n ): void {\n const retained = new Set<Target>();\n for (const descriptor of policy.pointerEvents === \"none\"\n ? []\n : interaction.targets) {\n if (descriptor.pointerEvents === \"none\") continue;\n retained.add(descriptor.target);\n let registration = this.committedTargets.get(descriptor.target);\n if (!registration) {\n registration = createTarget(\n this.instance,\n this.refs,\n this.committedTargets.size + 1,\n );\n this.committedTargets.set(descriptor.target, registration);\n }\n updateTarget(\n registration,\n descriptor.handlers ?? {},\n {\n path: new Path2D(),\n cursor: descriptor.cursor,\n keyboardFocusable: descriptor.keyboardFocusable,\n keyboardNavigationBounds: descriptor.keyboardNavigationBounds,\n },\n true,\n );\n this.applyResolverGeometry(registration, interaction);\n this.observeTransactionalFocusTarget(registration);\n }\n for (const [identity, registration] of this.committedTargets) {\n if (retained.has(identity)) continue;\n releaseTarget(registration);\n this.committedTargets.delete(identity);\n }\n if (\n policy.pointerEvents !== \"none\" &&\n policy.missBehavior === \"target-layer\"\n ) {\n updateTarget(\n this.layerTarget,\n { onClick: STRUCTURAL_CLICK_ELIGIBILITY },\n {\n path: new Path2D(),\n keyboardFocusable: policy.keyboardFocusable,\n keyboardNavigationBounds: policy.keyboardNavigationBounds,\n },\n true,\n );\n this.applyResolverGeometry(this.layerTarget, interaction);\n this.observeTransactionalFocusTarget(this.layerTarget);\n } else {\n releaseTarget(this.layerTarget);\n }\n this.committedInteraction = interaction.snapshot;\n this.committedTargetDescriptors = interaction.targets;\n this.committedPolicy = policy;\n this.updateInputNativeOwnership(Boolean(interaction.snapshot.onInput));\n }\n\n private applyResolverGeometry(\n target: PibblEventTargetRegistration,\n interaction: StagedInteraction<Target>,\n ): void {\n if (!target.paintEntry) return;\n target.paintEntry.transform = interaction.transform;\n target.paintEntry.clippingStack = interaction.clippingStack;\n target.owner.paintEntries.delete(target.paintEntry);\n }\n\n private refreshCommittedTargetGeometry(): void {\n const interaction = {\n transform: this.resolverTransform,\n clippingStack: this.resolverEntry.clippingStack,\n } as StagedInteraction<Target>;\n for (const target of this.committedTargets.values()) {\n this.applyResolverGeometry(target, interaction);\n this.instance.eventRoot.focusPolicy?.observeTarget(target);\n this.observeTransactionalFocusTarget(target);\n }\n if (this.layerTarget.live) {\n this.applyResolverGeometry(this.layerTarget, interaction);\n this.instance.eventRoot.focusPolicy?.observeTarget(this.layerTarget);\n this.observeTransactionalFocusTarget(this.layerTarget);\n }\n }\n\n private observeTransactionalFocusTarget(\n target: PibblEventTargetRegistration,\n ): void {\n this.instance.eventRoot.focusPolicy?.observeTransactionalTarget?.(target);\n }\n\n private resolveLocal(\n localX: number,\n localY: number,\n output: PibblHitTestOutput,\n ): void {\n if (this.committedPolicy.pointerEvents === \"none\") {\n output.disposition = PibblHitDisposition.Miss;\n output.target = null;\n return;\n }\n const state = this.resolveWinnerState(localX, localY);\n output.winner = this.inputWinner;\n output.winnerState = state;\n switch (state.hit.kind) {\n case \"miss\":\n if (this.committedPolicy.missBehavior === \"pass-through\") {\n output.disposition = PibblHitDisposition.Miss;\n output.target = null;\n delete output.winner;\n delete output.winnerState;\n } else if (this.committedPolicy.missBehavior === \"block\") {\n output.disposition = PibblHitDisposition.Block;\n output.target = null;\n } else {\n output.disposition = PibblHitDisposition.Target;\n output.target = this.layerTarget.live ? this.layerTarget : null;\n }\n return;\n case \"block\":\n output.disposition = PibblHitDisposition.Block;\n output.target = null;\n return;\n case \"target\": {\n const target = this.committedTargets.get(state.hit.target);\n if (!target?.live) {\n output.disposition = PibblHitDisposition.Block;\n output.target = null;\n output.winnerState = {\n point: state.point,\n hit: Object.freeze({ kind: \"block\" as const }),\n } satisfies WinnerState<Target>;\n this.reportUnknownTarget();\n return;\n }\n output.disposition = PibblHitDisposition.Target;\n output.target = target;\n }\n }\n }\n\n private resolveWinnerState(\n localX: number,\n localY: number,\n ): WinnerState<Target> {\n const point = Object.freeze({ x: localX, y: localY });\n if (this.inputGated || !this.committedInteraction) {\n return { point, hit: Object.freeze({ kind: \"block\" }) };\n }\n const hit = this.committedInteraction.hitTest(point);\n if (hit.kind === \"target\" && !this.committedTargets.has(hit.target)) {\n this.reportUnknownTarget();\n return { point, hit: Object.freeze({ kind: \"block\" }) };\n }\n return { point, hit };\n }\n\n private reportUnknownTarget(): void {\n if (this.resolutionErrorQueued) return;\n this.resolutionErrorQueued = true;\n queueFrameCompletion(() => {\n throw new Error(\n \"Render layer hitTest() returned a target absent from its committed snapshot.\",\n );\n });\n }\n\n private deliverInput(\n type: PibblResolverInputType,\n rootPoint: Readonly<{ x: number; y: number }>,\n originalEvent: PointerEvent | WheelEvent | MouseEvent,\n resolvedState: unknown,\n ): void {\n const snapshot = this.committedInteraction;\n if (!snapshot?.onInput || this.disposed) return;\n let state = resolvedState as WinnerState<Target> | undefined;\n if (!state) {\n const local = this.resolverInverseTransform.transformPoint(\n new DOMPoint(rootPoint.x, rootPoint.y),\n );\n state = this.resolveWinnerState(local.x, local.y);\n }\n snapshot.onInput(\n Object.freeze({\n type,\n point: state.point,\n hit: state.hit,\n originalEvent,\n setPointerCapture: (pointerId: number) =>\n setResolverPointerCapture(this.inputWinner, pointerId),\n releasePointerCapture: (pointerId: number) =>\n releaseResolverPointerCapture(this.inputWinner, pointerId),\n }),\n );\n }\n\n private updateInputNativeOwnership(enabled: boolean): void {\n const required = new Set<PibblResolverInputType>(\n enabled\n ? RESOLVER_INPUT_TYPES\n : hasResolverPointerCapture(this.inputWinner)\n ? RESOLVER_CAPTURE_INPUT_TYPES\n : [],\n );\n for (const [type, release] of this.inputNativeReleases) {\n if (required.has(type)) continue;\n release();\n this.inputNativeReleases.delete(type);\n }\n const hub = this.instance.eventRoot.nativeListeners;\n if (!hub) return;\n for (const type of required) {\n if (!this.inputNativeReleases.has(type)) {\n this.inputNativeReleases.set(type, hub.acquire(type));\n }\n }\n }\n\n private failCandidate(\n ctx: RenderingContext2D,\n size: PibblRenderLayerSize,\n error: unknown,\n ): void {\n this.inputGated = true;\n this.drawCommitted(ctx, size);\n queueFrameCompletion(() => {\n throw error;\n });\n }\n\n private dispose(): void {\n if (this.disposed) return;\n this.disposed = true;\n try {\n if (this.created && this.definition.dispose) {\n assertSynchronous(\n this.definition.dispose(this.resources!, this.context),\n \"dispose\",\n );\n }\n } finally {\n this.canvas.width = this.canvas.height = 0;\n this.candidate?.bitmap.close();\n this.committed?.close();\n for (const target of this.committedTargets.values())\n releaseTarget(target);\n this.committedTargets.clear();\n releaseTarget(this.layerTarget);\n releaseResolverInputWinner(this.inputWinner);\n this.updateInputNativeOwnership(false);\n this.candidate = undefined;\n this.committed = undefined;\n this.committedInteraction = undefined;\n }\n }\n}\n\nfunction assertCapability(): void {\n if (\n typeof OffscreenCanvas !== \"function\" ||\n typeof OffscreenCanvas.prototype.transferToImageBitmap !== \"function\"\n ) {\n throw new Error(\n \"defineRenderLayer requires OffscreenCanvas with transferToImageBitmap().\",\n );\n }\n}\n\nfunction sameSize(\n a: PibblRenderLayerSize | undefined,\n b: PibblRenderLayerSize,\n): boolean {\n return (\n !!a &&\n a.width === b.width &&\n a.height === b.height &&\n a.backingWidth === b.backingWidth &&\n a.backingHeight === b.backingHeight\n );\n}\n\nfunction isSynchronousViolation(error: unknown): boolean {\n return error instanceof SynchronousLifecycleError;\n}\n\nfunction snapshotProps<Props>(props: Readonly<Props>): Readonly<Props> {\n return Object.freeze({ ...props });\n}\n\nfunction sameProps<Props>(\n a: Readonly<Props> | undefined,\n b: Readonly<Props>,\n): boolean {\n if (!a) return false;\n const aKeys = Reflect.ownKeys(a);\n const bKeys = Reflect.ownKeys(b as object);\n return (\n aKeys.length === bKeys.length &&\n aKeys.every(\n (key) =>\n Object.prototype.hasOwnProperty.call(b, key) &&\n Object.is(a[key as keyof Props], b[key as keyof Props]),\n )\n );\n}\n\nfunction snapshotPolicy(policy: RenderLayerPolicy): RenderLayerPolicy {\n return Object.freeze({\n missBehavior: policy.missBehavior,\n pointerEvents: policy.pointerEvents,\n keyboardFocusable: policy.keyboardFocusable,\n keyboardNavigationBounds: policy.keyboardNavigationBounds\n ? Object.freeze({\n ...policy.keyboardNavigationBounds,\n })\n : undefined,\n });\n}\n\nfunction samePolicy(a: RenderLayerPolicy, b: RenderLayerPolicy): boolean {\n return (\n a.missBehavior === b.missBehavior &&\n a.pointerEvents === b.pointerEvents &&\n a.keyboardFocusable === b.keyboardFocusable &&\n a.keyboardNavigationBounds?.x === b.keyboardNavigationBounds?.x &&\n a.keyboardNavigationBounds?.y === b.keyboardNavigationBounds?.y &&\n a.keyboardNavigationBounds?.width === b.keyboardNavigationBounds?.width &&\n a.keyboardNavigationBounds?.height === b.keyboardNavigationBounds?.height\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["transaction"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PibblComponent } from "../types.js";
|
|
2
|
+
import type { PibblRenderLayerDefinition, PibblRenderLayerProps } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Defines a Pibbl component backed by a persistent external-renderer surface and resource lifetime.
|
|
5
|
+
* Pibbl schedules frames and commits the bitmap and interaction snapshot together; the definition
|
|
6
|
+
* owns application-resource cleanup.
|
|
7
|
+
*
|
|
8
|
+
* @param definition - Synchronous resource lifecycle, rendering, and interaction implementation.
|
|
9
|
+
* See {@link PibblRenderLayerDefinition} .
|
|
10
|
+
* @returns A Pibbl component that owns one external-renderer boundary per mounted identity. See
|
|
11
|
+
* {@link PibblComponent} , {@link PibblRenderLayerProps} .
|
|
12
|
+
*
|
|
13
|
+
* @see {@link PibblRenderLayerDefinition}
|
|
14
|
+
* @see {@link PibblComponent}
|
|
15
|
+
* @see {@link PibblRenderLayerProps}
|
|
16
|
+
*/
|
|
17
|
+
export declare function defineRenderLayer<Props, Resources, Target extends object = object>(definition: PibblRenderLayerDefinition<Props, Resources, Target>): PibblComponent<PibblRenderLayerProps<Props>>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { definePrimitive } from "../define-primitive.js";
|
|
2
|
+
import { GLOBAL_STATE } from "../global-state.js";
|
|
3
|
+
import { createLayerSurface } from "../surface/resolve-surface.js";
|
|
4
|
+
import {
|
|
5
|
+
resolveRequiredLength,
|
|
6
|
+
stripLayoutParticipation
|
|
7
|
+
} from "../style/resolve-built-in.js";
|
|
8
|
+
import { PIBBL_EVENT_DEFINITIONS } from "../events/event-definitions.js";
|
|
9
|
+
import { wireStructuralEvents } from "../components/structural-events.js";
|
|
10
|
+
import { RenderLayerController } from "./controller.js";
|
|
11
|
+
function defineRenderLayer(definition) {
|
|
12
|
+
const immutableDefinition = snapshotDefinition(definition);
|
|
13
|
+
const primitive = definePrimitive(
|
|
14
|
+
function renderDefinedRenderLayer(props, style, ctx) {
|
|
15
|
+
wireStructuralEvents(props);
|
|
16
|
+
const refs = GLOBAL_STATE.componentRefs;
|
|
17
|
+
let controller = refs.refs[0];
|
|
18
|
+
if (!controller) {
|
|
19
|
+
controller = new RenderLayerController(immutableDefinition, refs);
|
|
20
|
+
refs.refs[0] = controller;
|
|
21
|
+
}
|
|
22
|
+
const surface = GLOBAL_STATE.currentPibblInstance.surface.snapshot;
|
|
23
|
+
const layerSurface = createLayerSurface(
|
|
24
|
+
style.width,
|
|
25
|
+
style.height,
|
|
26
|
+
surface.backingPixelsPerLogicalUnitX,
|
|
27
|
+
surface.backingPixelsPerLogicalUnitY
|
|
28
|
+
);
|
|
29
|
+
const size = Object.freeze({
|
|
30
|
+
width: style.width,
|
|
31
|
+
height: style.height,
|
|
32
|
+
backingWidth: layerSurface.backingWidth,
|
|
33
|
+
backingHeight: layerSurface.backingHeight,
|
|
34
|
+
pixelRatioX: layerSurface.backingPixelsPerLogicalUnitX,
|
|
35
|
+
pixelRatioY: layerSurface.backingPixelsPerLogicalUnitY
|
|
36
|
+
});
|
|
37
|
+
controller.render(customProps(props), size, ctx, {
|
|
38
|
+
missBehavior: props.missBehavior ?? "pass-through",
|
|
39
|
+
pointerEvents: props.pointerEvents,
|
|
40
|
+
keyboardFocusable: props.keyboardFocusable,
|
|
41
|
+
keyboardNavigationBounds: props.keyboardNavigationBounds
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
{ resolveStyle }
|
|
45
|
+
);
|
|
46
|
+
return primitive;
|
|
47
|
+
}
|
|
48
|
+
const resolveStyle = (style, context) => ({
|
|
49
|
+
...stripLayoutParticipation(style),
|
|
50
|
+
width: resolveRequiredLength(
|
|
51
|
+
style.width ?? context.allocation.width,
|
|
52
|
+
context.percentageBasis.width,
|
|
53
|
+
"width",
|
|
54
|
+
context
|
|
55
|
+
),
|
|
56
|
+
height: resolveRequiredLength(
|
|
57
|
+
style.height ?? context.allocation.height,
|
|
58
|
+
context.percentageBasis.height,
|
|
59
|
+
"height",
|
|
60
|
+
context
|
|
61
|
+
)
|
|
62
|
+
});
|
|
63
|
+
function customProps(props) {
|
|
64
|
+
const custom = { ...props };
|
|
65
|
+
delete custom.missBehavior;
|
|
66
|
+
delete custom.pointerEvents;
|
|
67
|
+
delete custom.keyboardFocusable;
|
|
68
|
+
delete custom.keyboardNavigationBounds;
|
|
69
|
+
for (const definition of PIBBL_EVENT_DEFINITIONS) {
|
|
70
|
+
delete custom[definition.prop];
|
|
71
|
+
delete custom[definition.captureProp];
|
|
72
|
+
}
|
|
73
|
+
return custom;
|
|
74
|
+
}
|
|
75
|
+
function snapshotDefinition(definition) {
|
|
76
|
+
return Object.freeze({
|
|
77
|
+
create: definition.create,
|
|
78
|
+
update: definition.update,
|
|
79
|
+
resize: definition.resize,
|
|
80
|
+
render: definition.render,
|
|
81
|
+
dispose: definition.dispose,
|
|
82
|
+
interaction: definition.interaction ? Object.freeze({
|
|
83
|
+
settle: definition.interaction.settle
|
|
84
|
+
}) : void 0
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
defineRenderLayer
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=define-render-layer.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/render-layer/define-render-layer.ts"],
|
|
4
|
+
"sourcesContent": ["import { definePrimitive } from \"../define-primitive.js\";\nimport { GLOBAL_STATE } from \"../global-state.js\";\nimport { createLayerSurface } from \"../surface/resolve-surface.js\";\nimport {\n resolveRequiredLength,\n stripLayoutParticipation,\n} from \"../style/resolve-built-in.js\";\nimport type {\n PibblComponent,\n PrimitiveCapabilities,\n RenderingContext2D,\n} from \"../types.js\";\nimport { PIBBL_EVENT_DEFINITIONS } from \"../events/event-definitions.js\";\nimport { wireStructuralEvents } from \"../components/structural-events.js\";\nimport { RenderLayerController } from \"./controller.js\";\nimport type {\n PibblRenderLayerDefinition,\n PibblRenderLayerProps,\n PibblRenderLayerSize,\n PibblRenderLayerStyle,\n} from \"./types.js\";\n\ntype ResolvedRenderLayerStyle = PibblRenderLayerStyle & {\n readonly width: number;\n readonly height: number;\n};\n\n/**\n * Defines a Pibbl component backed by a persistent external-renderer surface and resource lifetime.\n * Pibbl schedules frames and commits the bitmap and interaction snapshot together; the definition\n * owns application-resource cleanup.\n *\n * @param definition - Synchronous resource lifecycle, rendering, and interaction implementation.\n * See {@link PibblRenderLayerDefinition} .\n * @returns A Pibbl component that owns one external-renderer boundary per mounted identity. See\n * {@link PibblComponent} , {@link PibblRenderLayerProps} .\n *\n * @see {@link PibblRenderLayerDefinition}\n * @see {@link PibblComponent}\n * @see {@link PibblRenderLayerProps}\n */\nexport function defineRenderLayer<\n Props,\n Resources,\n Target extends object = object,\n>(\n definition: PibblRenderLayerDefinition<Props, Resources, Target>,\n): PibblComponent<PibblRenderLayerProps<Props>> {\n const immutableDefinition = snapshotDefinition(definition);\n const primitive = (definePrimitive as any)(\n function renderDefinedRenderLayer(\n props: Readonly<PibblRenderLayerProps<Props>>,\n style: Readonly<ResolvedRenderLayerStyle>,\n ctx: RenderingContext2D,\n ) {\n wireStructuralEvents(props);\n const refs = GLOBAL_STATE.componentRefs!;\n let controller = refs.refs[0] as\n RenderLayerController<Props, Resources, Target> | undefined;\n if (!controller) {\n controller = new RenderLayerController(immutableDefinition, refs);\n refs.refs[0] = controller;\n }\n const surface = GLOBAL_STATE.currentPibblInstance!.surface.snapshot!;\n const layerSurface = createLayerSurface(\n style.width,\n style.height,\n surface.backingPixelsPerLogicalUnitX,\n surface.backingPixelsPerLogicalUnitY,\n );\n const size: PibblRenderLayerSize = Object.freeze({\n width: style.width,\n height: style.height,\n backingWidth: layerSurface.backingWidth,\n backingHeight: layerSurface.backingHeight,\n pixelRatioX: layerSurface.backingPixelsPerLogicalUnitX,\n pixelRatioY: layerSurface.backingPixelsPerLogicalUnitY,\n });\n controller.render(customProps(props) as Props, size, ctx, {\n missBehavior: props.missBehavior ?? \"pass-through\",\n pointerEvents: props.pointerEvents,\n keyboardFocusable: props.keyboardFocusable,\n keyboardNavigationBounds: props.keyboardNavigationBounds,\n });\n },\n { resolveStyle },\n );\n return primitive as PibblComponent<PibblRenderLayerProps<Props>>;\n}\n\nconst resolveStyle: NonNullable<\n PrimitiveCapabilities<\n PibblRenderLayerProps<any>,\n PibblRenderLayerStyle,\n PibblRenderLayerStyle,\n ResolvedRenderLayerStyle\n >[\"resolveStyle\"]\n> = (style, context) =>\n ({\n ...stripLayoutParticipation(style),\n width: resolveRequiredLength(\n style.width ?? context.allocation.width,\n context.percentageBasis.width,\n \"width\",\n context,\n ),\n height: resolveRequiredLength(\n style.height ?? context.allocation.height,\n context.percentageBasis.height,\n \"height\",\n context,\n ),\n }) as ResolvedRenderLayerStyle;\n\nfunction customProps<Props>(\n props: Readonly<PibblRenderLayerProps<Props>>,\n): Props {\n const custom = { ...props } as Record<PropertyKey, unknown>;\n delete custom.missBehavior;\n delete custom.pointerEvents;\n delete custom.keyboardFocusable;\n delete custom.keyboardNavigationBounds;\n for (const definition of PIBBL_EVENT_DEFINITIONS) {\n delete custom[definition.prop];\n delete custom[definition.captureProp];\n }\n return custom as Props;\n}\n\nfunction snapshotDefinition<Props, Resources, Target extends object>(\n definition: PibblRenderLayerDefinition<Props, Resources, Target>,\n): PibblRenderLayerDefinition<Props, Resources, Target> {\n return Object.freeze({\n create: definition.create,\n update: definition.update,\n resize: definition.resize,\n render: definition.render,\n dispose: definition.dispose,\n interaction: definition.interaction\n ? Object.freeze({\n settle: definition.interaction.settle,\n })\n : undefined,\n });\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,SAAS,+BAA+B;AACxC,SAAS,4BAA4B;AACrC,SAAS,6BAA6B;AA2B/B,SAAS,kBAKd,YAC8C;AAC9C,QAAM,sBAAsB,mBAAmB,UAAU;AACzD,QAAM,YAAa;AAAA,IACjB,SAAS,yBACP,OACA,OACA,KACA;AACA,2BAAqB,KAAK;AAC1B,YAAM,OAAO,aAAa;AAC1B,UAAI,aAAa,KAAK,KAAK,CAAC;AAE5B,UAAI,CAAC,YAAY;AACf,qBAAa,IAAI,sBAAsB,qBAAqB,IAAI;AAChE,aAAK,KAAK,CAAC,IAAI;AAAA,MACjB;AACA,YAAM,UAAU,aAAa,qBAAsB,QAAQ;AAC3D,YAAM,eAAe;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AACA,YAAM,OAA6B,OAAO,OAAO;AAAA,QAC/C,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,cAAc,aAAa;AAAA,QAC3B,eAAe,aAAa;AAAA,QAC5B,aAAa,aAAa;AAAA,QAC1B,aAAa,aAAa;AAAA,MAC5B,CAAC;AACD,iBAAW,OAAO,YAAY,KAAK,GAAY,MAAM,KAAK;AAAA,QACxD,cAAc,MAAM,gBAAgB;AAAA,QACpC,eAAe,MAAM;AAAA,QACrB,mBAAmB,MAAM;AAAA,QACzB,0BAA0B,MAAM;AAAA,MAClC,CAAC;AAAA,IACH;AAAA,IACA,EAAE,aAAa;AAAA,EACjB;AACA,SAAO;AACT;AAEA,MAAM,eAOF,CAAC,OAAO,aACT;AAAA,EACC,GAAG,yBAAyB,KAAK;AAAA,EACjC,OAAO;AAAA,IACL,MAAM,SAAS,QAAQ,WAAW;AAAA,IAClC,QAAQ,gBAAgB;AAAA,IACxB;AAAA,IACA;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,MAAM,UAAU,QAAQ,WAAW;AAAA,IACnC,QAAQ,gBAAgB;AAAA,IACxB;AAAA,IACA;AAAA,EACF;AACF;AAEF,SAAS,YACP,OACO;AACP,QAAM,SAAS,EAAE,GAAG,MAAM;AAC1B,SAAO,OAAO;AACd,SAAO,OAAO;AACd,SAAO,OAAO;AACd,SAAO,OAAO;AACd,aAAW,cAAc,yBAAyB;AAChD,WAAO,OAAO,WAAW,IAAI;AAC7B,WAAO,OAAO,WAAW,WAAW;AAAA,EACtC;AACA,SAAO;AACT;AAEA,SAAS,mBACP,YACsD;AACtD,SAAO,OAAO,OAAO;AAAA,IACnB,QAAQ,WAAW;AAAA,IACnB,QAAQ,WAAW;AAAA,IACnB,QAAQ,WAAW;AAAA,IACnB,QAAQ,WAAW;AAAA,IACnB,SAAS,WAAW;AAAA,IACpB,aAAa,WAAW,cACpB,OAAO,OAAO;AAAA,MACZ,QAAQ,WAAW,YAAY;AAAA,IACjC,CAAC,IACD;AAAA,EACN,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import type { defineRenderLayer } from "./define-render-layer.js";
|
|
2
|
+
import type { PibblComponent } from "../element/types.js";
|
|
3
|
+
import type { LayoutBox } from "../layout/types.js";
|
|
4
|
+
import type { PibblEventFocusOptions, PibblEventHandlers, PibblEventParticipationOptions, PibblPointerEvents } from "../events/types.js";
|
|
5
|
+
import type { BoxStyle, LayoutItemStyle } from "../style/types.js";
|
|
6
|
+
import type { SystemStyle } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Logical surface size, backing-store dimensions, and effective pixel ratios of an external render
|
|
9
|
+
* layer.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link PibblRenderLayerDefinition}
|
|
12
|
+
* @see {@link PibblRenderLayerContext}
|
|
13
|
+
* @see {@link PibblRenderLayerInteraction}
|
|
14
|
+
*/
|
|
15
|
+
export interface PibblRenderLayerSize {
|
|
16
|
+
/**
|
|
17
|
+
* Horizontal extent in the units of the containing geometry or surface. See
|
|
18
|
+
* {@link PibblRenderLayerSize}.
|
|
19
|
+
*/
|
|
20
|
+
readonly width: number;
|
|
21
|
+
/**
|
|
22
|
+
* Vertical extent in the units of the containing geometry or surface. See
|
|
23
|
+
* {@link PibblRenderLayerSize}.
|
|
24
|
+
*/
|
|
25
|
+
readonly height: number;
|
|
26
|
+
/** Width of the backing raster in physical pixels. See {@link PibblRenderLayerSize}. */
|
|
27
|
+
readonly backingWidth: number;
|
|
28
|
+
/** Height of the backing raster in physical pixels. See {@link PibblRenderLayerSize}. */
|
|
29
|
+
readonly backingHeight: number;
|
|
30
|
+
/**
|
|
31
|
+
* Effective ratio of backing pixels to logical units on the x axis. See
|
|
32
|
+
* {@link PibblRenderLayerSize}.
|
|
33
|
+
*/
|
|
34
|
+
readonly pixelRatioX: number;
|
|
35
|
+
/**
|
|
36
|
+
* Effective ratio of backing pixels to logical units on the y axis. See
|
|
37
|
+
* {@link PibblRenderLayerSize}.
|
|
38
|
+
*/
|
|
39
|
+
readonly pixelRatioY: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Shared scheduler timing and invalidation supplied to an external renderer for one frame.
|
|
43
|
+
*
|
|
44
|
+
* @see {@link PibblRenderLayerDefinition}
|
|
45
|
+
*/
|
|
46
|
+
export interface PibblRenderLayerFrame {
|
|
47
|
+
/** Identifier of the shared scheduler frame. See {@link PibblRenderLayerFrame}. */
|
|
48
|
+
readonly frameId: number;
|
|
49
|
+
/** Current shared logical time in milliseconds. See {@link PibblRenderLayerFrame}. */
|
|
50
|
+
readonly time: number;
|
|
51
|
+
/** Elapsed frame time in milliseconds. See {@link PibblRenderLayerFrame}. */
|
|
52
|
+
readonly delta: number;
|
|
53
|
+
/** Elapsed frame time in seconds. See {@link PibblRenderLayerFrame}. */
|
|
54
|
+
readonly deltaSeconds: number;
|
|
55
|
+
/** Requests another Pibbl render through the shared scheduler. See {@link PibblRenderLayerFrame}. */
|
|
56
|
+
invalidate(): void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The Pibbl-owned offscreen canvas, current size, and frame-invalidation capability.
|
|
60
|
+
*
|
|
61
|
+
* @see {@link PibblRenderLayerSize}
|
|
62
|
+
* @see {@link PibblRenderLayerDefinition}
|
|
63
|
+
*/
|
|
64
|
+
export interface PibblRenderLayerContext {
|
|
65
|
+
/** Canvas surface associated with this resource or mount. See {@link PibblRenderLayerContext}. */
|
|
66
|
+
readonly canvas: OffscreenCanvas;
|
|
67
|
+
/** Current logical dimensions, backing-store dimensions, and effective pixel ratios. See {@link PibblRenderLayerSize}. */
|
|
68
|
+
readonly size: PibblRenderLayerSize;
|
|
69
|
+
/**
|
|
70
|
+
* Requests another Pibbl render through the shared scheduler. See {@link PibblRenderLayerContext}.
|
|
71
|
+
*/
|
|
72
|
+
invalidate(): void;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Layout and outer Canvas composition style for an external render layer.
|
|
76
|
+
*
|
|
77
|
+
* @see {@link SystemStyle}
|
|
78
|
+
* @see {@link BoxStyle}
|
|
79
|
+
* @see {@link LayoutItemStyle}
|
|
80
|
+
* @see {@link PibblRenderLayerComponentProps}
|
|
81
|
+
*/
|
|
82
|
+
export interface PibblRenderLayerStyle extends SystemStyle, BoxStyle, LayoutItemStyle {
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A hit-test decision: pass through, block lower paint, or select one logical target.
|
|
86
|
+
*
|
|
87
|
+
* @see {@link PibblRenderLayerInput}
|
|
88
|
+
* @see {@link PibblRenderLayerInteractionSnapshot}
|
|
89
|
+
*/
|
|
90
|
+
export type PibblRenderLayerHit<Target extends object> = {
|
|
91
|
+
/** Selects the kind of geometry, material, or result. See {@link PibblRenderLayerHit}. */
|
|
92
|
+
readonly kind: "miss";
|
|
93
|
+
} | {
|
|
94
|
+
/** Selects the kind of geometry, material, or result. See {@link PibblRenderLayerHit}. */
|
|
95
|
+
readonly kind: "block";
|
|
96
|
+
} | {
|
|
97
|
+
/** Selects the kind of geometry, material, or result. See {@link PibblRenderLayerHit}. */
|
|
98
|
+
readonly kind: "target";
|
|
99
|
+
/** The selected logical target or target configuration. See {@link PibblRenderLayerHit}. */
|
|
100
|
+
readonly target: Target;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Stable target identity with event, cursor, and keyboard-focus metadata.
|
|
104
|
+
*
|
|
105
|
+
* @see {@link PibblEventHandlers}
|
|
106
|
+
* @see {@link PibblPointerEvents}
|
|
107
|
+
* @see {@link LayoutBox}
|
|
108
|
+
* @see {@link PibblRenderLayerInteractionSnapshot}
|
|
109
|
+
*/
|
|
110
|
+
export interface PibblRenderLayerTarget<Target extends object> {
|
|
111
|
+
/** The selected logical target or target configuration. See {@link PibblRenderLayerTarget}. */
|
|
112
|
+
readonly target: Target;
|
|
113
|
+
/** Event handlers dispatched for this logical target. See {@link PibblEventHandlers}. */
|
|
114
|
+
readonly handlers?: PibblEventHandlers;
|
|
115
|
+
/** Whether this content participates in pointer targeting. See {@link PibblPointerEvents}. */
|
|
116
|
+
readonly pointerEvents?: PibblPointerEvents;
|
|
117
|
+
/** Cursor shown while this target owns pointer presentation. See {@link PibblRenderLayerTarget}. */
|
|
118
|
+
readonly cursor?: string;
|
|
119
|
+
/** Whether the target may receive keyboard focus. See {@link PibblRenderLayerTarget}. */
|
|
120
|
+
readonly keyboardFocusable?: boolean;
|
|
121
|
+
/** Logical rectangle used for directional keyboard navigation. See {@link LayoutBox}. */
|
|
122
|
+
readonly keyboardNavigationBounds?: Readonly<LayoutBox>;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Pibbl-routed pointer input in layer-local coordinates with pointer-capture operations.
|
|
126
|
+
*
|
|
127
|
+
* @see {@link PibblRenderLayerHit}
|
|
128
|
+
* @see {@link PibblRenderLayerInteractionSnapshot}
|
|
129
|
+
*/
|
|
130
|
+
export interface PibblRenderLayerInput<Target extends object> {
|
|
131
|
+
/**
|
|
132
|
+
* Selects `"pointerdown"` , `"pointermove"` , `"pointerup"` , `"pointercancel"` , `"wheel"` ,
|
|
133
|
+
* `"contextmenu"` , `"click"` for type. See {@link PibblRenderLayerInput}.
|
|
134
|
+
*/
|
|
135
|
+
readonly type: "pointerdown" | "pointermove" | "pointerup" | "pointercancel" | "wheel" | "contextmenu" | "click";
|
|
136
|
+
/**
|
|
137
|
+
* Pointer position in the external layer's logical local coordinates. See
|
|
138
|
+
* {@link PibblRenderLayerInput}.
|
|
139
|
+
*/
|
|
140
|
+
readonly point: Readonly<{
|
|
141
|
+
/**
|
|
142
|
+
* Horizontal coordinate or displacement in the containing coordinate system. See
|
|
143
|
+
* {@link PibblRenderLayerInput}.
|
|
144
|
+
*/
|
|
145
|
+
x: number;
|
|
146
|
+
/**
|
|
147
|
+
* Vertical coordinate or displacement in the containing coordinate system. See
|
|
148
|
+
* {@link PibblRenderLayerInput}.
|
|
149
|
+
*/
|
|
150
|
+
y: number;
|
|
151
|
+
}>;
|
|
152
|
+
/** Target, block, or miss decision associated with the input. See {@link PibblRenderLayerHit}. */
|
|
153
|
+
readonly hit: PibblRenderLayerHit<Target>;
|
|
154
|
+
/** The originating browser event. See {@link PibblRenderLayerInput}. */
|
|
155
|
+
readonly originalEvent: PointerEvent | WheelEvent | MouseEvent;
|
|
156
|
+
/**
|
|
157
|
+
* Captures the pointer for this logical target until release or cancellation. See
|
|
158
|
+
* {@link PibblRenderLayerInput}.
|
|
159
|
+
* @param pointerId - Pointer identifier from the routed pointer event.
|
|
160
|
+
*/
|
|
161
|
+
setPointerCapture(pointerId: number): void;
|
|
162
|
+
/**
|
|
163
|
+
* Releases this target's capture of the identified pointer. See {@link PibblRenderLayerInput}.
|
|
164
|
+
* @param pointerId - Pointer identifier from the routed pointer event.
|
|
165
|
+
*/
|
|
166
|
+
releasePointerCapture(pointerId: number): void;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Targets and hit testing committed atomically with one rendered bitmap generation.
|
|
170
|
+
*
|
|
171
|
+
* @see {@link PibblRenderLayerTarget}
|
|
172
|
+
* @see {@link PibblRenderLayerHit}
|
|
173
|
+
* @see {@link PibblRenderLayerInput}
|
|
174
|
+
* @see {@link PibblRenderLayerInteraction}
|
|
175
|
+
*/
|
|
176
|
+
export interface PibblRenderLayerInteractionSnapshot<Target extends object> {
|
|
177
|
+
/** Logical targets exposed by this committed generation. See {@link PibblRenderLayerTarget}. */
|
|
178
|
+
readonly targets: Iterable<PibblRenderLayerTarget<Target>>;
|
|
179
|
+
/**
|
|
180
|
+
* Resolves a layer-local point to a target, block, or miss decision. See
|
|
181
|
+
* {@link PibblRenderLayerHit}.
|
|
182
|
+
* @param point - Pointer position in layer-local logical coordinates.
|
|
183
|
+
* @returns A target hit, a blocking hit, or a miss for this interaction generation. See
|
|
184
|
+
* {@link PibblRenderLayerHit} .
|
|
185
|
+
*/
|
|
186
|
+
hitTest(point: Readonly<{
|
|
187
|
+
/**
|
|
188
|
+
* Horizontal coordinate or displacement in the containing coordinate system. See
|
|
189
|
+
* {@link PibblRenderLayerInteractionSnapshot}.
|
|
190
|
+
*/
|
|
191
|
+
x: number;
|
|
192
|
+
/**
|
|
193
|
+
* Vertical coordinate or displacement in the containing coordinate system. See
|
|
194
|
+
* {@link PibblRenderLayerInteractionSnapshot}.
|
|
195
|
+
*/
|
|
196
|
+
y: number;
|
|
197
|
+
}>): PibblRenderLayerHit<Target>;
|
|
198
|
+
/**
|
|
199
|
+
* Receives Pibbl-routed input for this committed interaction generation. See
|
|
200
|
+
* {@link PibblRenderLayerInteractionSnapshot}.
|
|
201
|
+
* @param input - Pibbl-routed input for the committed interaction generation. See
|
|
202
|
+
* {@link PibblRenderLayerInput} .
|
|
203
|
+
*/
|
|
204
|
+
onInput?(input: Readonly<PibblRenderLayerInput<Target>>): void;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Settles renderer resources into the interaction snapshot for a committed generation.
|
|
208
|
+
*
|
|
209
|
+
* @see {@link PibblRenderLayerSize}
|
|
210
|
+
* @see {@link PibblRenderLayerInteractionSnapshot}
|
|
211
|
+
* @see {@link PibblRenderLayerDefinition}
|
|
212
|
+
*/
|
|
213
|
+
export interface PibblRenderLayerInteraction<Props, Resources, Target extends object> {
|
|
214
|
+
/**
|
|
215
|
+
* Captures interaction state corresponding to the generation being committed. See
|
|
216
|
+
* {@link PibblRenderLayerInteractionSnapshot}.
|
|
217
|
+
* @param resources - Resources representing the rendered scene.
|
|
218
|
+
* @param props - Props used for the committed render.
|
|
219
|
+
* @param size - Logical and backing dimensions for this generation. See
|
|
220
|
+
* {@link PibblRenderLayerSize} .
|
|
221
|
+
* @returns The interaction snapshot to commit together with the rendered bitmap. See
|
|
222
|
+
* {@link PibblRenderLayerInteractionSnapshot} .
|
|
223
|
+
*/
|
|
224
|
+
settle(resources: Resources, props: Readonly<Props>, size: Readonly<PibblRenderLayerSize>): PibblRenderLayerInteractionSnapshot<Target>;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Pibbl-owned style, event, focus, and miss-handling props shared by external layers.
|
|
228
|
+
*
|
|
229
|
+
* @see {@link PibblEventHandlers}
|
|
230
|
+
* @see {@link PibblEventParticipationOptions}
|
|
231
|
+
* @see {@link PibblRenderLayerStyle}
|
|
232
|
+
* @see {@link PibblRenderLayerProps}
|
|
233
|
+
*/
|
|
234
|
+
export interface PibblRenderLayerComponentProps extends PibblEventHandlers, PibblEventFocusOptions, PibblEventParticipationOptions {
|
|
235
|
+
/** Declared presentation and layout properties. See {@link PibblRenderLayerStyle}. */
|
|
236
|
+
readonly style?: PibblRenderLayerStyle;
|
|
237
|
+
/**
|
|
238
|
+
* How a layer miss participates in arbitration with lower painted content. See
|
|
239
|
+
* {@link PibblRenderLayerComponentProps}.
|
|
240
|
+
*/
|
|
241
|
+
readonly missBehavior?: "pass-through" | "block" | "target-layer";
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Resource creation, update, resizing, rendering, disposal, and interaction lifecycle of an
|
|
245
|
+
* external layer.
|
|
246
|
+
*
|
|
247
|
+
* @see {@link PibblRenderLayerContext}
|
|
248
|
+
* @see {@link PibblRenderLayerSize}
|
|
249
|
+
* @see {@link PibblRenderLayerFrame}
|
|
250
|
+
* @see {@link PibblRenderLayerInteraction}
|
|
251
|
+
* @see {@link defineRenderLayer}
|
|
252
|
+
*/
|
|
253
|
+
export interface PibblRenderLayerDefinition<Props, Resources, Target extends object = object> {
|
|
254
|
+
/**
|
|
255
|
+
* Allocates application resources once for this mounted layer identity. See
|
|
256
|
+
* {@link PibblRenderLayerDefinition}.
|
|
257
|
+
* @param context - Mount-owned canvas, size, and invalidation services. See
|
|
258
|
+
* {@link PibblRenderLayerContext} .
|
|
259
|
+
* @param initialProps - Props supplied for the first mounted render.
|
|
260
|
+
* @returns Persistent application resources retained until dispose.
|
|
261
|
+
*/
|
|
262
|
+
create(context: Readonly<PibblRenderLayerContext>, initialProps: Readonly<Props>): Resources;
|
|
263
|
+
/**
|
|
264
|
+
* Applies the latest props to existing resources before rendering. See
|
|
265
|
+
* {@link PibblRenderLayerDefinition}.
|
|
266
|
+
* @param resources - Resources previously returned by create.
|
|
267
|
+
* @param props - Latest component props.
|
|
268
|
+
* @param context - Mount-owned canvas, size, and invalidation services. See
|
|
269
|
+
* {@link PibblRenderLayerContext} .
|
|
270
|
+
*/
|
|
271
|
+
update?(resources: Resources, props: Readonly<Props>, context: Readonly<PibblRenderLayerContext>): void;
|
|
272
|
+
/**
|
|
273
|
+
* Adjusts resources to the newly resolved logical and backing-store dimensions. See
|
|
274
|
+
* {@link PibblRenderLayerDefinition}.
|
|
275
|
+
* @param resources - Resources previously returned by create.
|
|
276
|
+
* @param size - New logical and backing dimensions. See {@link PibblRenderLayerSize}.
|
|
277
|
+
* @param context - Mount-owned canvas, size, and invalidation services. See
|
|
278
|
+
* {@link PibblRenderLayerContext} .
|
|
279
|
+
*/
|
|
280
|
+
resize?(resources: Resources, size: Readonly<PibblRenderLayerSize>, context: Readonly<PibblRenderLayerContext>): void;
|
|
281
|
+
/**
|
|
282
|
+
* Draws this generation using Pibbl's frame; invalidate only when another frame is needed. See
|
|
283
|
+
* {@link PibblRenderLayerDefinition}.
|
|
284
|
+
* @param resources - Resources previously returned by create.
|
|
285
|
+
* @param frame - Shared Pibbl frame timing and invalidation service. See
|
|
286
|
+
* {@link PibblRenderLayerFrame} .
|
|
287
|
+
* @param context - Mount-owned canvas, size, and invalidation services. See
|
|
288
|
+
* {@link PibblRenderLayerContext} .
|
|
289
|
+
*/
|
|
290
|
+
render(resources: Resources, frame: Readonly<PibblRenderLayerFrame>, context: Readonly<PibblRenderLayerContext>): void;
|
|
291
|
+
/**
|
|
292
|
+
* Releases application resources when the mounted layer is torn down. See
|
|
293
|
+
* {@link PibblRenderLayerDefinition}.
|
|
294
|
+
* @param resources - Resources previously returned by create, whose application-owned resources
|
|
295
|
+
* must be released.
|
|
296
|
+
* @param context - Mount-owned context for this resource lifetime. See
|
|
297
|
+
* {@link PibblRenderLayerContext} .
|
|
298
|
+
*/
|
|
299
|
+
dispose?(resources: Resources, context: Readonly<PibblRenderLayerContext>): void;
|
|
300
|
+
/**
|
|
301
|
+
* Builds the interaction snapshot committed with the rendered bitmap. See
|
|
302
|
+
* {@link PibblRenderLayerInteraction}.
|
|
303
|
+
*/
|
|
304
|
+
interaction?: PibblRenderLayerInteraction<Props, Resources, Target>;
|
|
305
|
+
}
|
|
306
|
+
type PibblRenderLayerReservedProp = "key" | "style" | "missBehavior" | keyof PibblEventHandlers | keyof PibblEventFocusOptions | keyof PibblEventParticipationOptions;
|
|
307
|
+
/**
|
|
308
|
+
* Application props combined with layer props; reserved Pibbl prop collisions are rejected.
|
|
309
|
+
*
|
|
310
|
+
* @see {@link PibblRenderLayerComponentProps}
|
|
311
|
+
* @see {@link defineRenderLayer}
|
|
312
|
+
*/
|
|
313
|
+
export type PibblRenderLayerProps<Props> = Extract<keyof Props, PibblRenderLayerReservedProp> extends never ? Props & PibblRenderLayerComponentProps : never;
|
|
314
|
+
export type PibblRenderLayerComponent<Props> = PibblComponent<PibblRenderLayerProps<Props>>;
|
|
315
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { LayoutBox } from './layout/types.js';
|
|
2
|
+
import type { PibblSurfaceSnapshot } from './surface/types.js';
|
|
3
|
+
import type { RenderingContext2D } from './types.js';
|
|
4
|
+
export interface RenderTargetSnapshot {
|
|
5
|
+
readonly logicalBounds: Readonly<LayoutBox>;
|
|
6
|
+
readonly backingWidth: number;
|
|
7
|
+
readonly backingHeight: number;
|
|
8
|
+
readonly renderTransform: DOMMatrix;
|
|
9
|
+
readonly inverseRenderTransform: DOMMatrix;
|
|
10
|
+
}
|
|
11
|
+
export declare function rootRenderTarget(surface: PibblSurfaceSnapshot): RenderTargetSnapshot;
|
|
12
|
+
export declare function getCurrentPaintTransform(): DOMMatrix;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the current logical world transform, optionally incorporating a supplied paint
|
|
15
|
+
* transform.
|
|
16
|
+
*
|
|
17
|
+
* @param paintTransform - Optional paint transform to include in the world transform.
|
|
18
|
+
* @returns The transform mapping local geometry into world coordinates.
|
|
19
|
+
*
|
|
20
|
+
* @see {@link LayoutBox}
|
|
21
|
+
*/
|
|
22
|
+
export declare function getCurrentWorldTransform(paintTransform?: DOMMatrix): DOMMatrix;
|
|
23
|
+
/** Whether direct Canvas calls changed paint since the last Pibbl-owned anchor. */
|
|
24
|
+
export declare function hasCurrentWorldTransformCanvasDelta(paintTransform?: DOMMatrix): boolean;
|
|
25
|
+
export declare function setCurrentWorldTransformAnchor(exactWorld: DOMMatrix): void;
|
|
26
|
+
export declare function initializeCurrentWorldTransformAnchor(worldBase: DOMMatrix): void;
|
|
27
|
+
export declare function withRenderTarget<T>(context: RenderingContext2D, target: RenderTargetSnapshot, worldBase: DOMMatrix, work: () => T): T;
|