@vectojs/core 1.35.0 → 1.35.2
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/dist/{chunk-IFSFHYF7.mjs → chunk-25PS5K7R.mjs} +35 -15
- package/dist/{chunk-TV4ARAC5.mjs → chunk-CHDJEHML.mjs} +2 -0
- package/dist/{chunk-M73XB4ZK.js → chunk-MO24PVGT.js} +42 -22
- package/dist/{chunk-XXU56ZNA.js → chunk-XHPUCU5P.js} +32 -30
- package/dist/components/SplineEntity.d.ts +6 -0
- package/dist/index.js +214 -116
- package/dist/index.mjs +161 -63
- package/dist/renderer/WebGLPointRenderer.d.ts +3 -3
- package/dist/renderer/colorParse.d.ts +2 -2
- package/dist/renderer/url.d.ts +4 -2
- package/dist/renderer.js +2 -2
- package/dist/renderer.mjs +1 -1
- package/dist/text.js +2 -2
- package/dist/text.mjs +1 -1
- package/dist/tree/Entity.d.ts +15 -0
- package/dist/tree/Scene.d.ts +14 -13
- package/dist/wasm/anim-backend.d.ts +13 -3
- package/dist/wasm/backend.d.ts +13 -0
- package/dist/wasm/hit-backend.d.ts +11 -4
- package/dist/wasm/particle-backend.d.ts +6 -0
- package/dist/wasm/vectojs_core.wasm +0 -0
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkMO24PVGTjs = require('./chunk-MO24PVGT.js');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _chunkXHPUCU5Pjs = require('./chunk-XHPUCU5P.js');
|
|
23
23
|
|
|
24
24
|
// src/tree/ComputeParticleEntity.ts
|
|
25
25
|
var PARTICLE_STRIDE_FLOATS = 8;
|
|
@@ -31,7 +31,7 @@ var PARTICLE_OFFSET_ORIGIN_X = 4;
|
|
|
31
31
|
var PARTICLE_OFFSET_ORIGIN_Y = 5;
|
|
32
32
|
var PARTICLE_OFFSET_SIZE = 6;
|
|
33
33
|
var PARTICLE_OFFSET_LIFE = 7;
|
|
34
|
-
var ComputeParticleEntity = (_class = class extends
|
|
34
|
+
var ComputeParticleEntity = (_class = class extends _chunkXHPUCU5Pjs.Entity {
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
@@ -317,6 +317,7 @@ var ComputeParticleEntity = (_class = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
317
317
|
stepWithBackend(backend, dt, mouseX, mouseY, width, height) {
|
|
318
318
|
const count = this.maxParticles;
|
|
319
319
|
backend.ensure(count);
|
|
320
|
+
backend.revalidateViews();
|
|
320
321
|
backend.gather(this.particleData, count, true);
|
|
321
322
|
const pending = backend.step(count, {
|
|
322
323
|
dt,
|
|
@@ -1326,6 +1327,7 @@ var DriverTicker = (_class5 = class {
|
|
|
1326
1327
|
tP.length = tweenCount;
|
|
1327
1328
|
tD.length = tweenCount;
|
|
1328
1329
|
backend.ensure(springCount, tweenCount);
|
|
1330
|
+
backend.revalidateViews();
|
|
1329
1331
|
if (springCount > 0) {
|
|
1330
1332
|
const sv = backend.springView();
|
|
1331
1333
|
for (let i = 0; i < springCount; i++) {
|
|
@@ -1594,6 +1596,7 @@ var HitTester = (_class6 = class {
|
|
|
1594
1596
|
gathered = gatherHitAABBs(this.root, frame);
|
|
1595
1597
|
}
|
|
1596
1598
|
backend.ensure(gathered.count, width, height, 64);
|
|
1599
|
+
backend.revalidateViews();
|
|
1597
1600
|
const view = backend.inputView();
|
|
1598
1601
|
view.minx.set(gathered.minx.subarray(0, gathered.count));
|
|
1599
1602
|
view.miny.set(gathered.miny.subarray(0, gathered.count));
|
|
@@ -2124,10 +2127,15 @@ var ContentProjectionManager = (_class7 = class {
|
|
|
2124
2127
|
}
|
|
2125
2128
|
if (this.phases.enabled) this.phases.record("calibScan", performance.now() - scanStart);
|
|
2126
2129
|
if (measurements.length === 0) {
|
|
2127
|
-
el.dataset.vectoGridCalibration = calibrationKey;
|
|
2128
|
-
el.dataset.vectoGridReady = "true";
|
|
2129
2130
|
el.dataset.vectoGridCalibrationSamples = "0";
|
|
2130
2131
|
delete el.dataset.vectoGridCalibrationPending;
|
|
2132
|
+
const readyFrame = requestAnimationFrame(() => {
|
|
2133
|
+
this.calibrationFrameHandles.delete(entityId);
|
|
2134
|
+
if (!el.isConnected) return;
|
|
2135
|
+
el.dataset.vectoGridCalibration = calibrationKey;
|
|
2136
|
+
el.dataset.vectoGridReady = "true";
|
|
2137
|
+
});
|
|
2138
|
+
this.calibrationFrameHandles.set(entityId, readyFrame);
|
|
2131
2139
|
return;
|
|
2132
2140
|
}
|
|
2133
2141
|
const appendStart = this.phases.enabled ? performance.now() : 0;
|
|
@@ -2370,8 +2378,15 @@ var WASM_STATUS = {
|
|
|
2370
2378
|
/** A kernel ran before `init`. */
|
|
2371
2379
|
UNINITIALIZED: 2,
|
|
2372
2380
|
/** A sibling run addressed a slot or parent outside the store. */
|
|
2373
|
-
BAD_RUN: 3
|
|
2381
|
+
BAD_RUN: 3,
|
|
2382
|
+
/** A requested capacity's size arithmetic overflowed; the previous store
|
|
2383
|
+
* was left untouched. */
|
|
2384
|
+
OVERFLOW: 4
|
|
2374
2385
|
};
|
|
2386
|
+
function viewsStale(cap, probe, memory) {
|
|
2387
|
+
if (cap === 0) return false;
|
|
2388
|
+
return probe.byteLength === 0 || probe.buffer !== memory.buffer;
|
|
2389
|
+
}
|
|
2375
2390
|
var PAD2 = 8;
|
|
2376
2391
|
var WasmTransformBackend = (_class9 = class {
|
|
2377
2392
|
__init40() {this.available = true}
|
|
@@ -2561,9 +2576,15 @@ var WasmTransformBackend = (_class9 = class {
|
|
|
2561
2576
|
}
|
|
2562
2577
|
ensure(count, runCount) {
|
|
2563
2578
|
if (count + PAD2 <= this.cap && runCount <= this.runCap) return;
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
this.ex.init(count,
|
|
2579
|
+
const cap = count + PAD2;
|
|
2580
|
+
const runCap = Math.max(runCount, count, 1);
|
|
2581
|
+
const status = this.ex.init(count, runCap);
|
|
2582
|
+
if (status !== WASM_STATUS.OK) {
|
|
2583
|
+
this.lastStatus = status;
|
|
2584
|
+
return;
|
|
2585
|
+
}
|
|
2586
|
+
this.cap = cap;
|
|
2587
|
+
this.runCap = runCap;
|
|
2567
2588
|
this.refreshViews();
|
|
2568
2589
|
}
|
|
2569
2590
|
/** Rebuild typed-array views after an init() (which may have grown, and thus
|
|
@@ -2631,11 +2652,26 @@ var AnimBackend = (_class10 = class {
|
|
|
2631
2652
|
*/
|
|
2632
2653
|
ensure(springCount, tweenCount) {
|
|
2633
2654
|
if (springCount + PAD3 <= this.springCap && tweenCount + PAD3 <= this.tweenCap) return;
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
this.ex.anim_init(
|
|
2655
|
+
const springCap = springCount + PAD3;
|
|
2656
|
+
const tweenCap = tweenCount + PAD3;
|
|
2657
|
+
const status = this.ex.anim_init(springCap, tweenCap);
|
|
2658
|
+
if (status !== WASM_STATUS.OK) {
|
|
2659
|
+
this.lastStatus = status;
|
|
2660
|
+
return;
|
|
2661
|
+
}
|
|
2662
|
+
this.springCap = springCap;
|
|
2663
|
+
this.tweenCap = tweenCap;
|
|
2637
2664
|
this.refreshViews();
|
|
2638
2665
|
}
|
|
2666
|
+
/**
|
|
2667
|
+
* Re-create the typed-array views if another backend's allocation grew the
|
|
2668
|
+
* shared linear memory and detached them (see {@link viewsStale}). Call after
|
|
2669
|
+
* {@link ensure} and before writing into {@link springView}/{@link tweenView}.
|
|
2670
|
+
*/
|
|
2671
|
+
revalidateViews() {
|
|
2672
|
+
if (this.springCap === 0) return;
|
|
2673
|
+
if (viewsStale(this.springCap, this.sv.val, this.ex.memory)) this.refreshViews();
|
|
2674
|
+
}
|
|
2639
2675
|
/**
|
|
2640
2676
|
* Advance `count` springs (from index 0) by `dtMs` milliseconds, in place.
|
|
2641
2677
|
* Returns `true` when the kernel ran. `false` means it rejected the call
|
|
@@ -2729,15 +2765,26 @@ var HitTestBackend = (_class11 = class {
|
|
|
2729
2765
|
this.gridH = gh;
|
|
2730
2766
|
this.cellSize = cellSize;
|
|
2731
2767
|
}
|
|
2768
|
+
/**
|
|
2769
|
+
* Re-create the typed-array views if another backend's allocation grew the
|
|
2770
|
+
* shared linear memory and detached them (see {@link viewsStale}). Call after
|
|
2771
|
+
* {@link ensure} and before writing into {@link inputView}.
|
|
2772
|
+
*/
|
|
2773
|
+
revalidateViews() {
|
|
2774
|
+
if (this.entityCap === 0) return;
|
|
2775
|
+
if (viewsStale(this.entityCap, this.vminx, this.ex.memory)) this.refreshViews();
|
|
2776
|
+
}
|
|
2732
2777
|
/**
|
|
2733
2778
|
* Run the kernel's bucketing over whatever is currently resident in
|
|
2734
2779
|
* {@link inputView} (write the AABBs there, and call {@link ensure} first).
|
|
2735
|
-
* Returns `false` if the build
|
|
2736
|
-
* not trust {@link candidatesAt} results
|
|
2737
|
-
* to the JS walk instead (never return a
|
|
2780
|
+
* Returns `false` if the build was rejected (no `hit_init` yet) or overflowed
|
|
2781
|
+
* its item budget — the caller must not trust {@link candidatesAt} results
|
|
2782
|
+
* for this build and should fall back to the JS walk instead (never return a
|
|
2783
|
+
* wrong hit).
|
|
2738
2784
|
*/
|
|
2739
2785
|
runBuild(count, vw, vh, cellSize) {
|
|
2740
|
-
this.ex.hit_build(count, vw, vh, cellSize);
|
|
2786
|
+
const status = this.ex.hit_build(count, vw, vh, cellSize);
|
|
2787
|
+
if (status !== WASM_STATUS.OK) return false;
|
|
2741
2788
|
return this.ex.hit_overflow() === 0;
|
|
2742
2789
|
}
|
|
2743
2790
|
/**
|
|
@@ -2763,10 +2810,16 @@ var HitTestBackend = (_class11 = class {
|
|
|
2763
2810
|
if (count + PAD4 <= this.entityCap && cellCount <= this.cellCap && itemCount <= this.itemCap) {
|
|
2764
2811
|
return;
|
|
2765
2812
|
}
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
this.ex.hit_init(count,
|
|
2813
|
+
const entityCap = count + PAD4;
|
|
2814
|
+
const cellCap = Math.max(cellCount, 1);
|
|
2815
|
+
const itemCap = Math.max(itemCount, count, 1);
|
|
2816
|
+
const status = this.ex.hit_init(count, cellCap, itemCap);
|
|
2817
|
+
if (status !== WASM_STATUS.OK) {
|
|
2818
|
+
return;
|
|
2819
|
+
}
|
|
2820
|
+
this.entityCap = entityCap;
|
|
2821
|
+
this.cellCap = cellCap;
|
|
2822
|
+
this.itemCap = itemCap;
|
|
2770
2823
|
this.refreshViews();
|
|
2771
2824
|
}
|
|
2772
2825
|
/** Rebuild typed-array views after a growing `hit_init` (which detaches the
|
|
@@ -2805,10 +2858,24 @@ var ParticleBackend = (_class12 = class {
|
|
|
2805
2858
|
*/
|
|
2806
2859
|
ensure(count) {
|
|
2807
2860
|
if (count + PAD5 <= this.cap) return;
|
|
2808
|
-
|
|
2809
|
-
this.ex.particle_init(
|
|
2861
|
+
const cap = count + PAD5;
|
|
2862
|
+
const status = this.ex.particle_init(cap);
|
|
2863
|
+
if (status !== WASM_STATUS.OK) {
|
|
2864
|
+
this.lastStatus = status;
|
|
2865
|
+
return;
|
|
2866
|
+
}
|
|
2867
|
+
this.cap = cap;
|
|
2810
2868
|
this.refreshViews();
|
|
2811
2869
|
}
|
|
2870
|
+
/**
|
|
2871
|
+
* Re-create the typed-array views if another backend's allocation grew the
|
|
2872
|
+
* shared linear memory and detached them (see {@link viewsStale}). Call after
|
|
2873
|
+
* {@link ensure} and before {@link gather}/{@link scatter}.
|
|
2874
|
+
*/
|
|
2875
|
+
revalidateViews() {
|
|
2876
|
+
if (this.cap === 0) return;
|
|
2877
|
+
if (viewsStale(this.cap, this.view.px, this.ex.memory)) this.refreshViews();
|
|
2878
|
+
}
|
|
2812
2879
|
/**
|
|
2813
2880
|
* Advance `count` particles one step in place. Returns `true` when at least
|
|
2814
2881
|
* one live particle is still moving or off-origin beyond epsilon (the fused
|
|
@@ -3075,9 +3142,17 @@ var WasmBackendFacade = (_class14 = class {
|
|
|
3075
3142
|
* main render walk onto it; passing `null` reverts to the JS path.
|
|
3076
3143
|
*/
|
|
3077
3144
|
setTransform(backend) {
|
|
3145
|
+
const backendChanged = backend !== this._transform && this._transform !== null;
|
|
3078
3146
|
this._transform = backend;
|
|
3079
3147
|
this._mode = backend ? "wasm" : "js";
|
|
3080
3148
|
this._uploadRejections = 0;
|
|
3149
|
+
if (backendChanged) {
|
|
3150
|
+
this._treeStore = null;
|
|
3151
|
+
this._storeStructureVersion = -1;
|
|
3152
|
+
this._inputs = null;
|
|
3153
|
+
this._world = null;
|
|
3154
|
+
this._aabbsFresh = false;
|
|
3155
|
+
}
|
|
3081
3156
|
}
|
|
3082
3157
|
// ── The shared runtime ──────────────────────────────────────────────────────
|
|
3083
3158
|
/**
|
|
@@ -3245,6 +3320,7 @@ var WasmBackendFacade = (_class14 = class {
|
|
|
3245
3320
|
}
|
|
3246
3321
|
if (!backend.uploadRuns(built.store)) {
|
|
3247
3322
|
this.transformReason = "rejected";
|
|
3323
|
+
this._aabbsFresh = false;
|
|
3248
3324
|
this._uploadRejections++;
|
|
3249
3325
|
if (this._uploadRejections >= WASM_UPLOAD_REJECT_LIMIT) {
|
|
3250
3326
|
this._mode = "js";
|
|
@@ -3284,6 +3360,7 @@ var WasmBackendFacade = (_class14 = class {
|
|
|
3284
3360
|
}
|
|
3285
3361
|
if (backend.runKernel("simd") !== WASM_STATUS.OK) {
|
|
3286
3362
|
this.transformReason = "rejected";
|
|
3363
|
+
this._aabbsFresh = false;
|
|
3287
3364
|
return null;
|
|
3288
3365
|
}
|
|
3289
3366
|
this._aabbsFresh = false;
|
|
@@ -4469,23 +4546,23 @@ var Scene = (_class15 = class _Scene {
|
|
|
4469
4546
|
}
|
|
4470
4547
|
/**
|
|
4471
4548
|
* Drop `entity` and its whole subtree from the batched-driver candidate set.
|
|
4472
|
-
* Called by
|
|
4473
|
-
* removed-but-still-animating entity stays pinned in
|
|
4474
|
-
* drivers keep ticking every frame even though it is
|
|
4475
|
-
* re-added, {@link
|
|
4476
|
-
* still has live drivers, so the motion resumes.
|
|
4549
|
+
* Called by `Entity.remove` on detach (which `remove`/`hideOverlay` route
|
|
4550
|
+
* through): without this a removed-but-still-animating entity stays pinned in
|
|
4551
|
+
* the Set (a leak) and its drivers keep ticking every frame even though it is
|
|
4552
|
+
* off-tree. If it is later re-added, {@link _registerActiveDriverSubtree}
|
|
4553
|
+
* re-registers any node that still has live drivers, so the motion resumes.
|
|
4477
4554
|
*/
|
|
4478
|
-
|
|
4555
|
+
_unregisterActiveDriverSubtree(entity) {
|
|
4479
4556
|
this._driverTicker.unregisterSubtree(entity);
|
|
4480
4557
|
}
|
|
4481
4558
|
/**
|
|
4482
4559
|
* Re-register every node in `entity`'s subtree that still has live property
|
|
4483
|
-
* drivers. Called by
|
|
4484
|
-
*
|
|
4485
|
-
*
|
|
4486
|
-
*
|
|
4560
|
+
* drivers. Called by `Entity._addOne` so re-attaching a subtree that was
|
|
4561
|
+
* removed mid-animation resumes its batched drivers (they were dropped from
|
|
4562
|
+
* the candidate set on removal, but the driver state still lives on each
|
|
4563
|
+
* entity).
|
|
4487
4564
|
*/
|
|
4488
|
-
|
|
4565
|
+
_registerActiveDriverSubtree(entity) {
|
|
4489
4566
|
this._driverTicker.registerSubtree(entity);
|
|
4490
4567
|
}
|
|
4491
4568
|
// --- domain: render-scheduler — batched driver tick (extraction 6), reads the anim backend ---
|
|
@@ -4611,7 +4688,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4611
4688
|
}
|
|
4612
4689
|
static set devMode(active) {
|
|
4613
4690
|
_Scene._devMode = active;
|
|
4614
|
-
|
|
4691
|
+
_chunkMO24PVGTjs.setRendererDevMode.call(void 0, active);
|
|
4615
4692
|
}
|
|
4616
4693
|
static _devModeDetected() {
|
|
4617
4694
|
if (_Scene._devMode) return true;
|
|
@@ -4728,7 +4805,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4728
4805
|
this.readingDirection = _nullishCoalesce(options.readingDirection, () => ( "ltr"));
|
|
4729
4806
|
this.renderMode = _nullishCoalesce(options.renderMode, () => ( "always"));
|
|
4730
4807
|
this._devActive = _Scene._devModeDetected();
|
|
4731
|
-
|
|
4808
|
+
_chunkMO24PVGTjs.setRendererDevMode.call(void 0, this._devActive);
|
|
4732
4809
|
this._warnUnknownOptions(options);
|
|
4733
4810
|
this.reducedMotionQuery = typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null;
|
|
4734
4811
|
if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
|
|
@@ -4736,7 +4813,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4736
4813
|
this.forcedColorsChangeHandler = () => this.markDirty();
|
|
4737
4814
|
_optionalChain([this, 'access', _118 => _118.forcedColorsQuery, 'access', _119 => _119.addEventListener, 'optionalCall', _120 => _120("change", this.forcedColorsChangeHandler)]);
|
|
4738
4815
|
}
|
|
4739
|
-
this.root = new class RootEntity extends
|
|
4816
|
+
this.root = new class RootEntity extends _chunkXHPUCU5Pjs.Entity {
|
|
4740
4817
|
isPointInside() {
|
|
4741
4818
|
return false;
|
|
4742
4819
|
}
|
|
@@ -4746,7 +4823,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4746
4823
|
}("root");
|
|
4747
4824
|
this.root._scene = this;
|
|
4748
4825
|
this._wasmBackend = new WasmBackendFacade(this.root);
|
|
4749
|
-
this.overlayRoot = new class OverlayRoot extends
|
|
4826
|
+
this.overlayRoot = new class OverlayRoot extends _chunkXHPUCU5Pjs.Entity {
|
|
4750
4827
|
isPointInside() {
|
|
4751
4828
|
return false;
|
|
4752
4829
|
}
|
|
@@ -4759,7 +4836,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
4759
4836
|
if (options.renderer) {
|
|
4760
4837
|
this.renderer = options.renderer;
|
|
4761
4838
|
} else {
|
|
4762
|
-
this.renderer = new (0,
|
|
4839
|
+
this.renderer = new (0, _chunkMO24PVGTjs.CanvasRenderer)(
|
|
4763
4840
|
canvas,
|
|
4764
4841
|
this.disableWindowResize ? { width: this.width, height: this.height } : void 0,
|
|
4765
4842
|
this.maxDPR
|
|
@@ -5022,7 +5099,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5022
5099
|
*/
|
|
5023
5100
|
add(entity) {
|
|
5024
5101
|
this.root.add(entity);
|
|
5025
|
-
this.registerActiveDriverSubtree(entity);
|
|
5026
5102
|
return this;
|
|
5027
5103
|
}
|
|
5028
5104
|
// --- domain: a11y-projection — subtree pruning, focus preservation on removal ---
|
|
@@ -5067,7 +5143,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5067
5143
|
}
|
|
5068
5144
|
if (this.hoveredA11yElements.has(el)) {
|
|
5069
5145
|
this.hoveredA11yElements.delete(el);
|
|
5070
|
-
node.dispatchEvent(new (0,
|
|
5146
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerleave", node, void 0, false));
|
|
5071
5147
|
}
|
|
5072
5148
|
this.preserveFocusOnRemoval(el);
|
|
5073
5149
|
el.remove();
|
|
@@ -5101,7 +5177,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5101
5177
|
remove(entity) {
|
|
5102
5178
|
this.root.remove(entity);
|
|
5103
5179
|
this.removeA11yRecursively(entity);
|
|
5104
|
-
this.unregisterActiveDriverSubtree(entity);
|
|
5105
5180
|
return this;
|
|
5106
5181
|
}
|
|
5107
5182
|
/**
|
|
@@ -5133,7 +5208,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5133
5208
|
*/
|
|
5134
5209
|
showOverlay(overlay) {
|
|
5135
5210
|
this.overlayRoot.add(overlay);
|
|
5136
|
-
this.registerActiveDriverSubtree(overlay);
|
|
5137
5211
|
this.markDirty();
|
|
5138
5212
|
}
|
|
5139
5213
|
/**
|
|
@@ -5142,7 +5216,6 @@ var Scene = (_class15 = class _Scene {
|
|
|
5142
5216
|
hideOverlay(overlay) {
|
|
5143
5217
|
this.overlayRoot.remove(overlay);
|
|
5144
5218
|
this.removeA11yRecursively(overlay);
|
|
5145
|
-
this.unregisterActiveDriverSubtree(overlay);
|
|
5146
5219
|
this.markDirty();
|
|
5147
5220
|
}
|
|
5148
5221
|
destroyEntitySubtree(entity) {
|
|
@@ -5386,8 +5459,9 @@ var Scene = (_class15 = class _Scene {
|
|
|
5386
5459
|
* workload rendered ~1.0 frames per content change. To measure anything about
|
|
5387
5460
|
* scheduling, use {@link start} and let `requestAnimationFrame` drive.
|
|
5388
5461
|
*
|
|
5389
|
-
* @param dt
|
|
5390
|
-
*
|
|
5462
|
+
* @param dt Milliseconds to advance (same unit as the rAF timestamps `loop`
|
|
5463
|
+
* feeds `render`). Not clamped by `MAX_FRAME_DT` — the caller chooses the
|
|
5464
|
+
* step, since determinism is the point.
|
|
5391
5465
|
*/
|
|
5392
5466
|
step(dt) {
|
|
5393
5467
|
const time = this.lastTime + dt;
|
|
@@ -5658,20 +5732,20 @@ var Scene = (_class15 = class _Scene {
|
|
|
5658
5732
|
el.style.background = "transparent";
|
|
5659
5733
|
}
|
|
5660
5734
|
el.addEventListener("click", (e) => {
|
|
5661
|
-
node.dispatchEvent(new (0,
|
|
5735
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("click", node, e));
|
|
5662
5736
|
});
|
|
5663
5737
|
el.addEventListener("dblclick", (e) => {
|
|
5664
|
-
node.dispatchEvent(new (0,
|
|
5738
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("dblclick", node, e));
|
|
5665
5739
|
});
|
|
5666
5740
|
el.addEventListener("mouseenter", (e) => {
|
|
5667
5741
|
if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.2)";
|
|
5668
5742
|
this.hoveredA11yElements.add(el);
|
|
5669
|
-
node.dispatchEvent(new (0,
|
|
5743
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("hover", node, e, false));
|
|
5670
5744
|
});
|
|
5671
5745
|
el.addEventListener("mouseleave", (e) => {
|
|
5672
5746
|
if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.05)";
|
|
5673
5747
|
this.hoveredA11yElements.delete(el);
|
|
5674
|
-
node.dispatchEvent(new (0,
|
|
5748
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerleave", node, e, false));
|
|
5675
5749
|
});
|
|
5676
5750
|
const capEl = el;
|
|
5677
5751
|
const releasePointer = (event) => {
|
|
@@ -5687,24 +5761,24 @@ var Scene = (_class15 = class _Scene {
|
|
|
5687
5761
|
};
|
|
5688
5762
|
el.addEventListener("pointerdown", (e) => {
|
|
5689
5763
|
if (typeof capEl.setPointerCapture === "function") capEl.setPointerCapture(e.pointerId);
|
|
5690
|
-
node.dispatchEvent(new (0,
|
|
5764
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerdown", node, e));
|
|
5691
5765
|
});
|
|
5692
5766
|
el.addEventListener("pointerup", (e) => {
|
|
5693
5767
|
releasePointer(e);
|
|
5694
|
-
node.dispatchEvent(new (0,
|
|
5768
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointerup", node, e));
|
|
5695
5769
|
});
|
|
5696
5770
|
el.addEventListener("pointercancel", (e) => {
|
|
5697
5771
|
releasePointer(e);
|
|
5698
|
-
node.dispatchEvent(new (0,
|
|
5772
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointercancel", node, e));
|
|
5699
5773
|
});
|
|
5700
5774
|
el.addEventListener(
|
|
5701
5775
|
"pointermove",
|
|
5702
|
-
(e) => node.dispatchEvent(new (0,
|
|
5776
|
+
(e) => node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("pointermove", node, e))
|
|
5703
5777
|
);
|
|
5704
5778
|
el.addEventListener(
|
|
5705
5779
|
"wheel",
|
|
5706
5780
|
(e) => {
|
|
5707
|
-
node.dispatchEvent(new (0,
|
|
5781
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("wheel", node, e));
|
|
5708
5782
|
},
|
|
5709
5783
|
{ passive: false }
|
|
5710
5784
|
);
|
|
@@ -5729,10 +5803,10 @@ var Scene = (_class15 = class _Scene {
|
|
|
5729
5803
|
);
|
|
5730
5804
|
emitInitialScroll = emitScroll;
|
|
5731
5805
|
el.addEventListener("keydown", (e) => {
|
|
5732
|
-
node.dispatchEvent(new (0,
|
|
5806
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("keydown", node, e));
|
|
5733
5807
|
});
|
|
5734
5808
|
el.addEventListener("keyup", (e) => {
|
|
5735
|
-
node.dispatchEvent(new (0,
|
|
5809
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("keyup", node, e));
|
|
5736
5810
|
});
|
|
5737
5811
|
if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {
|
|
5738
5812
|
const input = el;
|
|
@@ -5798,7 +5872,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5798
5872
|
el.addEventListener("keydown", (e) => {
|
|
5799
5873
|
if (e.key === "Enter" || e.key === " ") {
|
|
5800
5874
|
e.preventDefault();
|
|
5801
|
-
node.dispatchEvent(new (0,
|
|
5875
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("click", node, e));
|
|
5802
5876
|
}
|
|
5803
5877
|
});
|
|
5804
5878
|
}
|
|
@@ -5836,7 +5910,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
5836
5910
|
this.syncOptionalAttribute(
|
|
5837
5911
|
el,
|
|
5838
5912
|
"href",
|
|
5839
|
-
attrs.href === void 0 ? void 0 :
|
|
5913
|
+
attrs.href === void 0 ? void 0 : _chunkMO24PVGTjs.sanitizeUrl.call(void 0, attrs.href)
|
|
5840
5914
|
);
|
|
5841
5915
|
this.syncOptionalAttribute(el, "target", attrs.target);
|
|
5842
5916
|
}
|
|
@@ -6235,7 +6309,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6235
6309
|
el.addEventListener(
|
|
6236
6310
|
"wheel",
|
|
6237
6311
|
(e2) => {
|
|
6238
|
-
node.dispatchEvent(new (0,
|
|
6312
|
+
node.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)("wheel", node, e2));
|
|
6239
6313
|
},
|
|
6240
6314
|
{ passive: false }
|
|
6241
6315
|
);
|
|
@@ -6330,26 +6404,43 @@ var Scene = (_class15 = class _Scene {
|
|
|
6330
6404
|
if (mctx) {
|
|
6331
6405
|
mctx.font = lineFont;
|
|
6332
6406
|
const segmenter = new Intl.Segmenter("en", { granularity: "grapheme" });
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
|
|
6336
|
-
|
|
6337
|
-
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6341
|
-
|
|
6342
|
-
|
|
6343
|
-
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6407
|
+
if (line.shapedPaint) {
|
|
6408
|
+
const segments = [...segmenter.segment(line.text)];
|
|
6409
|
+
let runningX = 0;
|
|
6410
|
+
for (let segIdx = 0; segIdx < segments.length; segIdx++) {
|
|
6411
|
+
const { segment, index: index2 } = segments[segIdx];
|
|
6412
|
+
const nextIndex = segIdx + 1 < segments.length ? segments[segIdx + 1].index : line.text.length;
|
|
6413
|
+
const canvasX = mctx.measureText(line.text.slice(0, index2)).width;
|
|
6414
|
+
const canvasWidth = mctx.measureText(line.text.slice(0, nextIndex)).width - canvasX;
|
|
6415
|
+
const carrierEl = document.createElement("span");
|
|
6416
|
+
carrierEl.textContent = segment;
|
|
6417
|
+
carrierEl.style.position = "relative";
|
|
6418
|
+
carrierEl.style.display = "inline-block";
|
|
6419
|
+
carrierEl.style.left = `${canvasX - runningX}px`;
|
|
6420
|
+
carrierEl.style.width = `${canvasWidth}px`;
|
|
6421
|
+
carrierEl.style.boxSizing = "border-box";
|
|
6422
|
+
carrierEl.style.lineHeight = `${lineHeight2}px`;
|
|
6423
|
+
carrierEl.style.whiteSpace = "pre";
|
|
6424
|
+
carrierEl.style.verticalAlign = "top";
|
|
6425
|
+
carrierEl.style.unicodeBidi = "isolate";
|
|
6426
|
+
lineElement.appendChild(carrierEl);
|
|
6427
|
+
runningX += canvasWidth;
|
|
6428
|
+
}
|
|
6429
|
+
} else {
|
|
6430
|
+
for (const { segment } of segmenter.segment(line.text)) {
|
|
6431
|
+
const canvasWidth = mctx.measureText(segment).width;
|
|
6432
|
+
const carrierEl = document.createElement("span");
|
|
6433
|
+
carrierEl.textContent = segment;
|
|
6434
|
+
carrierEl.style.position = "relative";
|
|
6435
|
+
carrierEl.style.display = "inline-block";
|
|
6436
|
+
carrierEl.style.width = `${canvasWidth}px`;
|
|
6437
|
+
carrierEl.style.boxSizing = "border-box";
|
|
6438
|
+
carrierEl.style.lineHeight = `${lineHeight2}px`;
|
|
6439
|
+
carrierEl.style.whiteSpace = "pre";
|
|
6440
|
+
carrierEl.style.verticalAlign = "top";
|
|
6441
|
+
carrierEl.style.unicodeBidi = "isolate";
|
|
6442
|
+
lineElement.appendChild(carrierEl);
|
|
6443
|
+
}
|
|
6353
6444
|
}
|
|
6354
6445
|
} else {
|
|
6355
6446
|
lineElement.textContent = line.text;
|
|
@@ -6685,7 +6776,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6685
6776
|
const hasInteractive = this.frameHadInteractive;
|
|
6686
6777
|
const wantsContentSync = this.contentProjectionEnabled;
|
|
6687
6778
|
const shouldSyncInterval = this.a11ySyncInterval <= 0 || time - this.lastA11ySync >= this.a11ySyncInterval;
|
|
6688
|
-
if ((hasInteractive || this.a11yElements.size > 0 || wantsContentSync) && (shouldSyncInterval || this.a11yPendingSyncAfterAnimation)) {
|
|
6779
|
+
if ((hasInteractive || this.a11yElements.size > 0 || wantsContentSync) && (shouldSyncInterval || !hasActiveAnimation && this.a11yPendingSyncAfterAnimation)) {
|
|
6689
6780
|
this.lastA11ySync = time;
|
|
6690
6781
|
if (hasInteractive || wantsContentSync) {
|
|
6691
6782
|
const userTiming = this.phases.userTiming ? beginVectoUserTiming(VECTO_USER_TIMING.scene.a11ySync) : null;
|
|
@@ -6887,7 +6978,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6887
6978
|
let walkHadAnimation = false;
|
|
6888
6979
|
let walkHadInteractive = false;
|
|
6889
6980
|
const runUpdate = (node) => {
|
|
6890
|
-
const overridesUpdate = node.update !==
|
|
6981
|
+
const overridesUpdate = node.update !== _chunkXHPUCU5Pjs.Entity.prototype.update;
|
|
6891
6982
|
let pending = node.hasPendingAnimations();
|
|
6892
6983
|
if (pending || overridesUpdate) {
|
|
6893
6984
|
node.update(dt, time);
|
|
@@ -6896,7 +6987,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
6896
6987
|
if (pending) walkHadAnimation = true;
|
|
6897
6988
|
if (!walkHadInteractive && node.interactive) walkHadInteractive = true;
|
|
6898
6989
|
if (this._devActive && this._devFrameCount % 120 === 0) {
|
|
6899
|
-
if (overridesUpdate && node.hasPendingAnimations ===
|
|
6990
|
+
if (overridesUpdate && node.hasPendingAnimations === _chunkXHPUCU5Pjs.Entity.prototype.hasPendingAnimations) {
|
|
6900
6991
|
this._devWarn(
|
|
6901
6992
|
`Entity "${node.id}" overrides update() but not hasPendingAnimations(). Custom motion in update() without overriding hasPendingAnimations() causes the idle throttle to drop the animation to ~2fps. Override hasPendingAnimations() to return true while motion is in flight.`
|
|
6902
6993
|
);
|
|
@@ -7109,7 +7200,7 @@ var Scene = (_class15 = class _Scene {
|
|
|
7109
7200
|
* Export the current scene state to a lightweight, flat SVG XML string.
|
|
7110
7201
|
*/
|
|
7111
7202
|
toSVG() {
|
|
7112
|
-
const renderer = new (0,
|
|
7203
|
+
const renderer = new (0, _chunkMO24PVGTjs.SVGRenderer)(this.width, this.height);
|
|
7113
7204
|
this.render(renderer, 0, 0);
|
|
7114
7205
|
return renderer.toXMLString();
|
|
7115
7206
|
}
|
|
@@ -7322,7 +7413,7 @@ function defaultMeasurer() {
|
|
|
7322
7413
|
sharedMeasurer ??= _layout.resolveGlyphMeasurer.call(void 0, "sans-serif");
|
|
7323
7414
|
return sharedMeasurer;
|
|
7324
7415
|
}
|
|
7325
|
-
var TextEntity = (_class16 = class extends
|
|
7416
|
+
var TextEntity = (_class16 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7326
7417
|
|
|
7327
7418
|
|
|
7328
7419
|
|
|
@@ -7526,7 +7617,7 @@ var TextEntity = (_class16 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7526
7617
|
}, _class16);
|
|
7527
7618
|
|
|
7528
7619
|
// src/components/GridTextEntity.ts
|
|
7529
|
-
var GridTextEntity = (_class17 = class extends
|
|
7620
|
+
var GridTextEntity = (_class17 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7530
7621
|
|
|
7531
7622
|
__init184() {this.fillStyle = "#ffffff"}
|
|
7532
7623
|
__init185() {this.grid = []}
|
|
@@ -7545,7 +7636,7 @@ var GridTextEntity = (_class17 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7545
7636
|
updateGrid(ascii) {
|
|
7546
7637
|
this.grid = ascii;
|
|
7547
7638
|
this.rows = ascii.length;
|
|
7548
|
-
this.cols =
|
|
7639
|
+
this.cols = ascii.reduce((widest, row) => Math.max(widest, _nullishCoalesce(_optionalChain([row, 'optionalAccess', _187 => _187.length]), () => ( 0))), 0);
|
|
7549
7640
|
}
|
|
7550
7641
|
isPointInside(_globalX, _globalY) {
|
|
7551
7642
|
return false;
|
|
@@ -7620,7 +7711,7 @@ function distSqToSegment(px, py, x1, y1, x2, y2) {
|
|
|
7620
7711
|
const ey = py - cy;
|
|
7621
7712
|
return ex * ex + ey * ey;
|
|
7622
7713
|
}
|
|
7623
|
-
var SplineEntity = (_class18 = class extends
|
|
7714
|
+
var SplineEntity = (_class18 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7624
7715
|
|
|
7625
7716
|
|
|
7626
7717
|
|
|
@@ -7633,6 +7724,12 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7633
7724
|
/** Logical (CSS-pixel) size of the baked bitmap — the blit destination size. */
|
|
7634
7725
|
__init190() {this.bakedWidth = 0}
|
|
7635
7726
|
__init191() {this.bakedHeight = 0}
|
|
7727
|
+
/**
|
|
7728
|
+
* Device-pixel ratio the bitmap was rasterized at. Tracked so a DPR change
|
|
7729
|
+
* (browser zoom, a monitor move, a renderer whose clamp changed) re-bakes
|
|
7730
|
+
* instead of blitting a bitmap at the wrong device density forever.
|
|
7731
|
+
*/
|
|
7732
|
+
__init192() {this.bakedDPR = 0}
|
|
7636
7733
|
/**
|
|
7637
7734
|
* Gradient strokes can't be baked to a solid-color bitmap; they render
|
|
7638
7735
|
* per-frame. Derived from `_doc`, so it is NOT readonly — assigning a new
|
|
@@ -7640,7 +7737,7 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7640
7737
|
*/
|
|
7641
7738
|
|
|
7642
7739
|
/** Lazily-flattened polylines (one Float32Array of [x,y,...] per segment) for hit-testing. */
|
|
7643
|
-
|
|
7740
|
+
__init193() {this.polylines = null}
|
|
7644
7741
|
/**
|
|
7645
7742
|
* The spline document to render. Assigning a new document invalidates all
|
|
7646
7743
|
* caches (baked canvas, flattened polylines, bounds).
|
|
@@ -7674,9 +7771,9 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7674
7771
|
* local bounds after painting the curves. Useful for drag feedback and
|
|
7675
7772
|
* debugging hit areas. Defaults to `false`.
|
|
7676
7773
|
*/
|
|
7677
|
-
|
|
7774
|
+
__init194() {this.showBounds = false}
|
|
7678
7775
|
constructor(doc, opts = {}) {
|
|
7679
|
-
super();_class18.prototype.__init188.call(this);_class18.prototype.__init189.call(this);_class18.prototype.__init190.call(this);_class18.prototype.__init191.call(this);_class18.prototype.__init192.call(this);_class18.prototype.__init193.call(this);;
|
|
7776
|
+
super();_class18.prototype.__init188.call(this);_class18.prototype.__init189.call(this);_class18.prototype.__init190.call(this);_class18.prototype.__init191.call(this);_class18.prototype.__init192.call(this);_class18.prototype.__init193.call(this);_class18.prototype.__init194.call(this);;
|
|
7680
7777
|
this._doc = doc;
|
|
7681
7778
|
this._lineWidth = _nullishCoalesce(opts.lineWidth, () => ( 2));
|
|
7682
7779
|
this.cache = _nullishCoalesce(opts.cache, () => ( true));
|
|
@@ -7696,7 +7793,7 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7696
7793
|
*/
|
|
7697
7794
|
computeContainsGradient() {
|
|
7698
7795
|
const isGradient = (c) => c !== null && !Array.isArray(c);
|
|
7699
|
-
return (_nullishCoalesce(_optionalChain([this, 'access',
|
|
7796
|
+
return (_nullishCoalesce(_optionalChain([this, 'access', _188 => _188._doc, 'access', _189 => _189.equations, 'optionalAccess', _190 => _190.some, 'call', _191 => _191((eq) => isGradient(eq.color_rgb))]), () => ( false))) || (_nullishCoalesce(_optionalChain([this, 'access', _192 => _192._doc, 'access', _193 => _193.paths, 'optionalAccess', _194 => _194.some, 'call', _195 => _195((p) => isGradient(p.color_rgb))]), () => ( false)));
|
|
7700
7797
|
}
|
|
7701
7798
|
/** Clear cached baked canvas and hit-test polylines. */
|
|
7702
7799
|
invalidateCache() {
|
|
@@ -7856,14 +7953,14 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7856
7953
|
}
|
|
7857
7954
|
}
|
|
7858
7955
|
/** Bake all equations into an OffscreenCanvas once (when available). */
|
|
7859
|
-
bake() {
|
|
7956
|
+
bake(dpr) {
|
|
7860
7957
|
this.baked = true;
|
|
7861
7958
|
const pad = this.lineWidth + 2;
|
|
7862
7959
|
const w = Math.max(1, Math.ceil(this.bounds.width) + pad * 2);
|
|
7863
7960
|
const h = Math.max(1, Math.ceil(this.bounds.height) + pad * 2);
|
|
7864
7961
|
this.bakedWidth = w;
|
|
7865
7962
|
this.bakedHeight = h;
|
|
7866
|
-
|
|
7963
|
+
this.bakedDPR = dpr;
|
|
7867
7964
|
let canvas;
|
|
7868
7965
|
if (typeof OffscreenCanvas !== "undefined") {
|
|
7869
7966
|
canvas = new OffscreenCanvas(w * dpr, h * dpr);
|
|
@@ -7911,7 +8008,8 @@ var SplineEntity = (_class18 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7911
8008
|
render(r) {
|
|
7912
8009
|
let rendered = false;
|
|
7913
8010
|
if (this.cache && !this.containsGradient) {
|
|
7914
|
-
|
|
8011
|
+
const dpr = typeof r.pixelRatio === "number" && r.pixelRatio > 0 ? r.pixelRatio : typeof window !== "undefined" && typeof window.devicePixelRatio === "number" ? window.devicePixelRatio || 1 : 1;
|
|
8012
|
+
if (!this.baked || this.bakedDPR !== dpr) this.bake(dpr);
|
|
7915
8013
|
if (this.offscreen) {
|
|
7916
8014
|
const pad = this.lineWidth + 2;
|
|
7917
8015
|
r.drawImage(
|
|
@@ -7941,7 +8039,7 @@ async function loadSpline(url) {
|
|
|
7941
8039
|
}
|
|
7942
8040
|
|
|
7943
8041
|
// src/components/Rect.ts
|
|
7944
|
-
var Rect = class extends
|
|
8042
|
+
var Rect = class extends _chunkXHPUCU5Pjs.Entity {
|
|
7945
8043
|
|
|
7946
8044
|
|
|
7947
8045
|
|
|
@@ -7997,7 +8095,7 @@ var Rect = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
7997
8095
|
};
|
|
7998
8096
|
|
|
7999
8097
|
// src/components/Circle.ts
|
|
8000
|
-
var Circle = class extends
|
|
8098
|
+
var Circle = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8001
8099
|
|
|
8002
8100
|
|
|
8003
8101
|
|
|
@@ -8061,7 +8159,7 @@ var Circle = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8061
8159
|
};
|
|
8062
8160
|
|
|
8063
8161
|
// src/components/Group.ts
|
|
8064
|
-
var Group = class extends
|
|
8162
|
+
var Group = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8065
8163
|
constructor(...children) {
|
|
8066
8164
|
super();
|
|
8067
8165
|
if (children.length > 0) this.add(...children);
|
|
@@ -8080,21 +8178,21 @@ var _math = require('@vectojs/math'); _createStarExport(_math);
|
|
|
8080
8178
|
|
|
8081
8179
|
|
|
8082
8180
|
// src/tree/DOMPortalEntity.ts
|
|
8083
|
-
var DOMPortalEntity = (_class19 = class extends
|
|
8181
|
+
var DOMPortalEntity = (_class19 = class extends _chunkXHPUCU5Pjs.Entity {
|
|
8084
8182
|
|
|
8085
|
-
|
|
8086
|
-
|
|
8087
|
-
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8183
|
+
__init195() {this.isDOMPortal = true}
|
|
8184
|
+
__init196() {this.domListeners = []}
|
|
8185
|
+
__init197() {this.resizeObserver = null}
|
|
8186
|
+
__init198() {this.domBound = false}
|
|
8187
|
+
__init199() {this.cachedWidth = 100}
|
|
8188
|
+
__init200() {this.cachedHeight = 100}
|
|
8189
|
+
__init201() {this.lastWidth = ""}
|
|
8190
|
+
__init202() {this.lastHeight = ""}
|
|
8191
|
+
__init203() {this.lastTransform = ""}
|
|
8192
|
+
__init204() {this.lastZIndex = ""}
|
|
8193
|
+
__init205() {this.lastOpacity = ""}
|
|
8096
8194
|
constructor(domElement, width, height, id) {
|
|
8097
|
-
super(id);_class19.prototype.
|
|
8195
|
+
super(id);_class19.prototype.__init195.call(this);_class19.prototype.__init196.call(this);_class19.prototype.__init197.call(this);_class19.prototype.__init198.call(this);_class19.prototype.__init199.call(this);_class19.prototype.__init200.call(this);_class19.prototype.__init201.call(this);_class19.prototype.__init202.call(this);_class19.prototype.__init203.call(this);_class19.prototype.__init204.call(this);_class19.prototype.__init205.call(this);;
|
|
8098
8196
|
this.domElement = domElement;
|
|
8099
8197
|
this.width = _nullishCoalesce(width, () => ( 0));
|
|
8100
8198
|
this.height = _nullishCoalesce(height, () => ( 0));
|
|
@@ -8136,7 +8234,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8136
8234
|
];
|
|
8137
8235
|
for (const type of events) {
|
|
8138
8236
|
const handler = (e) => {
|
|
8139
|
-
this.dispatchEvent(new (0,
|
|
8237
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(type, this, e));
|
|
8140
8238
|
};
|
|
8141
8239
|
this.domElement.addEventListener(type, handler);
|
|
8142
8240
|
this.domListeners.push({ type, handler, capture: false });
|
|
@@ -8147,7 +8245,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8147
8245
|
];
|
|
8148
8246
|
for (const { native, vecto } of hoverEvents) {
|
|
8149
8247
|
const handler = (e) => {
|
|
8150
|
-
this.dispatchEvent(new (0,
|
|
8248
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(vecto, this, e, false));
|
|
8151
8249
|
};
|
|
8152
8250
|
this.domElement.addEventListener(native, handler);
|
|
8153
8251
|
this.domListeners.push({ type: native, handler, capture: false });
|
|
@@ -8155,7 +8253,7 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8155
8253
|
const focusEvents = ["focus", "blur"];
|
|
8156
8254
|
for (const type of focusEvents) {
|
|
8157
8255
|
const handler = (e) => {
|
|
8158
|
-
this.dispatchEvent(new (0,
|
|
8256
|
+
this.dispatchEvent(new (0, _chunkXHPUCU5Pjs.VectoJSEvent)(type, this, e, true));
|
|
8159
8257
|
};
|
|
8160
8258
|
this.domElement.addEventListener(type, handler, true);
|
|
8161
8259
|
this.domListeners.push({ type, handler, capture: true });
|
|
@@ -8206,8 +8304,8 @@ var DOMPortalEntity = (_class19 = class extends _chunkXXU56ZNAjs.Entity {
|
|
|
8206
8304
|
}, _class19);
|
|
8207
8305
|
|
|
8208
8306
|
// src/index.ts
|
|
8209
|
-
Scene.registerWebGLPointRendererCreator(
|
|
8210
|
-
Scene.registerWebGPUParticleSystemManager(
|
|
8307
|
+
Scene.registerWebGLPointRendererCreator(_chunkMO24PVGTjs.createWebGLPointRenderer);
|
|
8308
|
+
Scene.registerWebGPUParticleSystemManager(_chunkMO24PVGTjs.WebGPUParticleSystemManager);
|
|
8211
8309
|
|
|
8212
8310
|
|
|
8213
8311
|
|
|
@@ -8253,4 +8351,4 @@ Scene.registerWebGPUParticleSystemManager(_chunkM73XB4ZKjs.WebGPUParticleSystemM
|
|
|
8253
8351
|
|
|
8254
8352
|
|
|
8255
8353
|
|
|
8256
|
-
exports.CanvasRenderer =
|
|
8354
|
+
exports.CanvasRenderer = _chunkMO24PVGTjs.CanvasRenderer; exports.Circle = Circle; exports.ComputeParticleEntity = ComputeParticleEntity; exports.DEFAULT_CONTENT_SEMANTIC_BUDGET = DEFAULT_CONTENT_SEMANTIC_BUDGET; exports.DOMPortalEntity = DOMPortalEntity; exports.Entity = _chunkXHPUCU5Pjs.Entity; exports.GlyphRasterAtlas = _chunkMO24PVGTjs.GlyphRasterAtlas; exports.GridTextEntity = GridTextEntity; exports.Group = Group; exports.MSDFTextEntity = _chunkXHPUCU5Pjs.MSDFTextEntity; exports.PARTICLE_OFFSET_LIFE = PARTICLE_OFFSET_LIFE; exports.PARTICLE_OFFSET_ORIGIN_X = PARTICLE_OFFSET_ORIGIN_X; exports.PARTICLE_OFFSET_ORIGIN_Y = PARTICLE_OFFSET_ORIGIN_Y; exports.PARTICLE_OFFSET_POSITION_X = PARTICLE_OFFSET_POSITION_X; exports.PARTICLE_OFFSET_POSITION_Y = PARTICLE_OFFSET_POSITION_Y; exports.PARTICLE_OFFSET_SIZE = PARTICLE_OFFSET_SIZE; exports.PARTICLE_OFFSET_VELOCITY_X = PARTICLE_OFFSET_VELOCITY_X; exports.PARTICLE_OFFSET_VELOCITY_Y = PARTICLE_OFFSET_VELOCITY_Y; exports.PARTICLE_STRIDE_FLOATS = PARTICLE_STRIDE_FLOATS; exports.REDUCED_MOTION_FPS = REDUCED_MOTION_FPS; exports.Rect = Rect; exports.SCENE_OPTION_KEYS = SCENE_OPTION_KEYS; exports.SVGEntity = _chunkXHPUCU5Pjs.SVGEntity; exports.SVGRenderer = _chunkMO24PVGTjs.SVGRenderer; exports.Scene = Scene; exports.SplineEntity = SplineEntity; exports.TextEntity = TextEntity; exports.TextRasterCache = _chunkMO24PVGTjs.TextRasterCache; exports.VECTO_USER_TIMING = VECTO_USER_TIMING; exports.VectoJSEvent = _chunkXHPUCU5Pjs.VectoJSEvent; exports.WebGPUParticleSystemManager = _chunkMO24PVGTjs.WebGPUParticleSystemManager; exports.beginVectoUserTiming = beginVectoUserTiming; exports.contentLineInHint = _chunkXHPUCU5Pjs.contentLineInHint; exports.createWebGLPointRenderer = _chunkMO24PVGTjs.createWebGLPointRenderer; exports.endVectoUserTiming = endVectoUserTiming; exports.installRendererDevTraps = _chunkMO24PVGTjs.installRendererDevTraps; exports.isRendererDevMode = _chunkMO24PVGTjs.isRendererDevMode; exports.isSafeUrl = _chunkMO24PVGTjs.isSafeUrl; exports.loadSpline = loadSpline; exports.measureVectoUserTiming = measureVectoUserTiming; exports.parseColorToRGBA = _chunkMO24PVGTjs.parseColorToRGBA; exports.polySegmentToBezier = polySegmentToBezier; exports.sanitizeUrl = _chunkMO24PVGTjs.sanitizeUrl; exports.setRendererDevMode = _chunkMO24PVGTjs.setRendererDevMode;
|