@vectojs/core 1.0.1 → 1.3.0

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.
@@ -408,6 +408,7 @@ var Entity = class {
408
408
  child.parent = null;
409
409
  const s = this.scene;
410
410
  if (s) {
411
+ s.detachA11y(child);
411
412
  s.a11yNeedsReorder = true;
412
413
  s.markDirty();
413
414
  }
@@ -408,6 +408,7 @@ var Entity = (_class4 = class {
408
408
  child.parent = null;
409
409
  const s = this.scene;
410
410
  if (s) {
411
+ s.detachA11y(child);
411
412
  s.a11yNeedsReorder = true;
412
413
  s.markDirty();
413
414
  }
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ var _chunkBPMNCGU7js = require('./chunk-BPMNCGU7.js');
24
24
 
25
25
 
26
26
 
27
- var _chunkU4UYRERWjs = require('./chunk-U4UYRERW.js');
27
+ var _chunkNHNOKBD4js = require('./chunk-NHNOKBD4.js');
28
28
 
29
29
 
30
30
 
@@ -41,7 +41,7 @@ var PARTICLE_OFFSET_ORIGIN_X = 4;
41
41
  var PARTICLE_OFFSET_ORIGIN_Y = 5;
42
42
  var PARTICLE_OFFSET_SIZE = 6;
43
43
  var PARTICLE_OFFSET_LIFE = 7;
44
- var ComputeParticleEntity = (_class = class extends _chunkU4UYRERWjs.Entity {
44
+ var ComputeParticleEntity = (_class = class extends _chunkNHNOKBD4js.Entity {
45
45
 
46
46
 
47
47
 
@@ -429,7 +429,7 @@ var Scene = (_class2 = class _Scene {
429
429
  this.a11ySyncInterval = _nullishCoalesce(options.a11ySyncInterval, () => ( 0));
430
430
  this.contentProjectionEnabled = _nullishCoalesce(options.contentProjection, () => ( true));
431
431
  this.reducedMotionQuery = typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null;
432
- this.root = new class RootEntity extends _chunkU4UYRERWjs.Entity {
432
+ this.root = new class RootEntity extends _chunkNHNOKBD4js.Entity {
433
433
  isPointInside() {
434
434
  return false;
435
435
  }
@@ -438,7 +438,7 @@ var Scene = (_class2 = class _Scene {
438
438
  }
439
439
  }("root");
440
440
  this.root._scene = this;
441
- this.overlayRoot = new class OverlayRoot extends _chunkU4UYRERWjs.Entity {
441
+ this.overlayRoot = new class OverlayRoot extends _chunkNHNOKBD4js.Entity {
442
442
  isPointInside() {
443
443
  return false;
444
444
  }
@@ -801,42 +801,42 @@ var Scene = (_class2 = class _Scene {
801
801
  el.style.background = "transparent";
802
802
  }
803
803
  el.addEventListener("click", (e) => {
804
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("click", node, e));
804
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("click", node, e));
805
805
  });
806
806
  el.addEventListener("mouseenter", (e) => {
807
807
  if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.2)";
808
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("hover", node, e, false));
808
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("hover", node, e, false));
809
809
  });
810
810
  el.addEventListener("mouseleave", (e) => {
811
811
  if (this.debugA11y) el.style.backgroundColor = "rgba(56, 189, 248, 0.05)";
812
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("pointerleave", node, e, false));
812
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("pointerleave", node, e, false));
813
813
  });
814
814
  const capEl = el;
815
815
  el.addEventListener("pointerdown", (e) => {
816
816
  if (typeof capEl.setPointerCapture === "function") capEl.setPointerCapture(e.pointerId);
817
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("pointerdown", node, e));
817
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("pointerdown", node, e));
818
818
  });
819
819
  el.addEventListener("pointerup", (e) => {
820
820
  if (typeof capEl.releasePointerCapture === "function")
821
821
  capEl.releasePointerCapture(e.pointerId);
822
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("pointerup", node, e));
822
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("pointerup", node, e));
823
823
  });
824
824
  el.addEventListener(
825
825
  "pointermove",
826
- (e) => node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("pointermove", node, e))
826
+ (e) => node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("pointermove", node, e))
827
827
  );
828
828
  el.addEventListener(
829
829
  "wheel",
830
830
  (e) => {
831
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("wheel", node, e));
831
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("wheel", node, e));
832
832
  },
833
833
  { passive: false }
834
834
  );
835
835
  el.addEventListener("keydown", (e) => {
836
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("keydown", node, e));
836
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("keydown", node, e));
837
837
  });
838
838
  el.addEventListener("keyup", (e) => {
839
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("keyup", node, e));
839
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("keyup", node, e));
840
840
  });
841
841
  if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {
842
842
  const input = el;
@@ -909,7 +909,7 @@ var Scene = (_class2 = class _Scene {
909
909
  el.addEventListener("keydown", (e) => {
910
910
  if (e.key === "Enter" || e.key === " ") {
911
911
  e.preventDefault();
912
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("click", node, e));
912
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("click", node, e));
913
913
  }
914
914
  });
915
915
  }
@@ -936,6 +936,9 @@ var Scene = (_class2 = class _Scene {
936
936
  if (attrs.href !== void 0 && el instanceof HTMLAnchorElement) {
937
937
  const safeHref = _chunkBPMNCGU7js.sanitizeUrl.call(void 0, attrs.href);
938
938
  if (el.getAttribute("href") !== safeHref) el.setAttribute("href", safeHref);
939
+ if (attrs.target !== void 0 && el.getAttribute("target") !== attrs.target) {
940
+ el.setAttribute("target", attrs.target);
941
+ }
939
942
  }
940
943
  if (el instanceof HTMLImageElement) {
941
944
  if (attrs.src !== void 0 && el.src !== attrs.src) el.src = attrs.src;
@@ -1043,7 +1046,7 @@ var Scene = (_class2 = class _Scene {
1043
1046
  el.addEventListener(
1044
1047
  "wheel",
1045
1048
  (e2) => {
1046
- node.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)("wheel", node, e2));
1049
+ node.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)("wheel", node, e2));
1047
1050
  },
1048
1051
  { passive: false }
1049
1052
  );
@@ -1803,7 +1806,7 @@ function defaultMeasurer() {
1803
1806
  if (sharedMeasurer === void 0) sharedMeasurer = _chunkXLZDOFSBjs.createCanvasMeasurer.call(void 0, "sans-serif");
1804
1807
  return sharedMeasurer;
1805
1808
  }
1806
- var TextEntity = (_class3 = class extends _chunkU4UYRERWjs.Entity {
1809
+ var TextEntity = (_class3 = class extends _chunkNHNOKBD4js.Entity {
1807
1810
 
1808
1811
 
1809
1812
 
@@ -1929,7 +1932,7 @@ var TextEntity = (_class3 = class extends _chunkU4UYRERWjs.Entity {
1929
1932
  }, _class3);
1930
1933
 
1931
1934
  // src/components/GridTextEntity.ts
1932
- var GridTextEntity = (_class4 = class extends _chunkU4UYRERWjs.Entity {
1935
+ var GridTextEntity = (_class4 = class extends _chunkNHNOKBD4js.Entity {
1933
1936
 
1934
1937
  __init60() {this.fillStyle = "#ffffff"}
1935
1938
  __init61() {this.grid = []}
@@ -2023,7 +2026,7 @@ function distSqToSegment(px, py, x1, y1, x2, y2) {
2023
2026
  const ey = py - cy;
2024
2027
  return ex * ex + ey * ey;
2025
2028
  }
2026
- var SplineEntity = (_class5 = class extends _chunkU4UYRERWjs.Entity {
2029
+ var SplineEntity = (_class5 = class extends _chunkNHNOKBD4js.Entity {
2027
2030
 
2028
2031
 
2029
2032
 
@@ -2392,7 +2395,7 @@ var SpatialHashGrid = (_class6 = class {
2392
2395
  }, _class6);
2393
2396
 
2394
2397
  // src/tree/DOMPortalEntity.ts
2395
- var DOMPortalEntity = (_class7 = class extends _chunkU4UYRERWjs.Entity {
2398
+ var DOMPortalEntity = (_class7 = class extends _chunkNHNOKBD4js.Entity {
2396
2399
 
2397
2400
  __init72() {this.isDOMPortal = true}
2398
2401
  __init73() {this.domListeners = []}
@@ -2427,7 +2430,7 @@ var DOMPortalEntity = (_class7 = class extends _chunkU4UYRERWjs.Entity {
2427
2430
  const events = ["click", "pointerdown", "pointerup", "pointermove", "wheel"];
2428
2431
  for (const type of events) {
2429
2432
  const handler = (e) => {
2430
- this.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)(type, this, e));
2433
+ this.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)(type, this, e));
2431
2434
  };
2432
2435
  this.domElement.addEventListener(type, handler);
2433
2436
  this.domListeners.push({ type, handler, capture: false });
@@ -2438,7 +2441,7 @@ var DOMPortalEntity = (_class7 = class extends _chunkU4UYRERWjs.Entity {
2438
2441
  ];
2439
2442
  for (const { native, vecto } of hoverEvents) {
2440
2443
  const handler = (e) => {
2441
- this.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)(vecto, this, e, false));
2444
+ this.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)(vecto, this, e, false));
2442
2445
  };
2443
2446
  this.domElement.addEventListener(native, handler);
2444
2447
  this.domListeners.push({ type: native, handler, capture: false });
@@ -2446,7 +2449,7 @@ var DOMPortalEntity = (_class7 = class extends _chunkU4UYRERWjs.Entity {
2446
2449
  const focusEvents = ["focus", "blur"];
2447
2450
  for (const type of focusEvents) {
2448
2451
  const handler = (e) => {
2449
- this.dispatchEvent(new (0, _chunkU4UYRERWjs.VectoJSEvent)(type, this, e, true));
2452
+ this.dispatchEvent(new (0, _chunkNHNOKBD4js.VectoJSEvent)(type, this, e, true));
2450
2453
  };
2451
2454
  this.domElement.addEventListener(type, handler, true);
2452
2455
  this.domListeners.push({ type, handler, capture: true });
@@ -2531,4 +2534,4 @@ Scene.registerWebGPUParticleSystemManager(_chunkBPMNCGU7js.WebGPUParticleSystemM
2531
2534
 
2532
2535
 
2533
2536
 
2534
- exports.ArabicShaper = _chunkCTZQOM5Zjs.ArabicShaper; exports.BidiResolver = _chunkCTZQOM5Zjs.BidiResolver; exports.CanvasRenderer = _chunkBPMNCGU7js.CanvasRenderer; exports.ComputeParticleEntity = ComputeParticleEntity; exports.DOMPortalEntity = DOMPortalEntity; exports.Easing = _chunkU4UYRERWjs.Easing; exports.Entity = _chunkU4UYRERWjs.Entity; exports.GridTextEntity = GridTextEntity; exports.LayoutEngine = _chunkXLZDOFSBjs.LayoutEngine; exports.LayoutResultBuffer = _chunkXLZDOFSBjs.LayoutResultBuffer; exports.LayoutWorkerManager = _chunkCTZQOM5Zjs.LayoutWorkerManager; exports.MSDFFont = _chunkU4UYRERWjs.MSDFFont; exports.MSDFTextEntity = _chunkU4UYRERWjs.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.SVGEntity = _chunkU4UYRERWjs.SVGEntity; exports.SVGRenderer = _chunkBPMNCGU7js.SVGRenderer; exports.Scene = Scene; exports.SpatialHashGrid = SpatialHashGrid; exports.SplineEntity = SplineEntity; exports.SpringDriver = _chunkU4UYRERWjs.SpringDriver; exports.SpringPhysics = _chunkU4UYRERWjs.SpringPhysics; exports.TextEntity = TextEntity; exports.TweenDriver = _chunkU4UYRERWjs.TweenDriver; exports.VectoJSEvent = _chunkU4UYRERWjs.VectoJSEvent; exports.WebGPUParticleSystemManager = _chunkBPMNCGU7js.WebGPUParticleSystemManager; exports.computeLineSegments = _chunkXLZDOFSBjs.computeLineSegments; exports.createCanvasMeasurer = _chunkXLZDOFSBjs.createCanvasMeasurer; exports.createWebGLPointRenderer = _chunkBPMNCGU7js.createWebGLPointRenderer; exports.isSafeUrl = _chunkBPMNCGU7js.isSafeUrl; exports.isTweenConfig = _chunkU4UYRERWjs.isTweenConfig; exports.loadSpline = loadSpline; exports.parseColorToRGBA = _chunkBPMNCGU7js.parseColorToRGBA; exports.polySegmentToBezier = polySegmentToBezier; exports.sanitizeUrl = _chunkBPMNCGU7js.sanitizeUrl;
2537
+ exports.ArabicShaper = _chunkCTZQOM5Zjs.ArabicShaper; exports.BidiResolver = _chunkCTZQOM5Zjs.BidiResolver; exports.CanvasRenderer = _chunkBPMNCGU7js.CanvasRenderer; exports.ComputeParticleEntity = ComputeParticleEntity; exports.DOMPortalEntity = DOMPortalEntity; exports.Easing = _chunkNHNOKBD4js.Easing; exports.Entity = _chunkNHNOKBD4js.Entity; exports.GridTextEntity = GridTextEntity; exports.LayoutEngine = _chunkXLZDOFSBjs.LayoutEngine; exports.LayoutResultBuffer = _chunkXLZDOFSBjs.LayoutResultBuffer; exports.LayoutWorkerManager = _chunkCTZQOM5Zjs.LayoutWorkerManager; exports.MSDFFont = _chunkNHNOKBD4js.MSDFFont; exports.MSDFTextEntity = _chunkNHNOKBD4js.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.SVGEntity = _chunkNHNOKBD4js.SVGEntity; exports.SVGRenderer = _chunkBPMNCGU7js.SVGRenderer; exports.Scene = Scene; exports.SpatialHashGrid = SpatialHashGrid; exports.SplineEntity = SplineEntity; exports.SpringDriver = _chunkNHNOKBD4js.SpringDriver; exports.SpringPhysics = _chunkNHNOKBD4js.SpringPhysics; exports.TextEntity = TextEntity; exports.TweenDriver = _chunkNHNOKBD4js.TweenDriver; exports.VectoJSEvent = _chunkNHNOKBD4js.VectoJSEvent; exports.WebGPUParticleSystemManager = _chunkBPMNCGU7js.WebGPUParticleSystemManager; exports.computeLineSegments = _chunkXLZDOFSBjs.computeLineSegments; exports.createCanvasMeasurer = _chunkXLZDOFSBjs.createCanvasMeasurer; exports.createWebGLPointRenderer = _chunkBPMNCGU7js.createWebGLPointRenderer; exports.isSafeUrl = _chunkBPMNCGU7js.isSafeUrl; exports.isTweenConfig = _chunkNHNOKBD4js.isTweenConfig; exports.loadSpline = loadSpline; exports.parseColorToRGBA = _chunkBPMNCGU7js.parseColorToRGBA; exports.polySegmentToBezier = polySegmentToBezier; exports.sanitizeUrl = _chunkBPMNCGU7js.sanitizeUrl;
package/dist/index.mjs CHANGED
@@ -24,7 +24,7 @@ import {
24
24
  TweenDriver,
25
25
  VectoJSEvent,
26
26
  isTweenConfig
27
- } from "./chunk-PY4KGL5Y.mjs";
27
+ } from "./chunk-N7DNUDVY.mjs";
28
28
  import {
29
29
  ArabicShaper,
30
30
  BidiResolver,
@@ -936,6 +936,9 @@ var Scene = class _Scene {
936
936
  if (attrs.href !== void 0 && el instanceof HTMLAnchorElement) {
937
937
  const safeHref = sanitizeUrl(attrs.href);
938
938
  if (el.getAttribute("href") !== safeHref) el.setAttribute("href", safeHref);
939
+ if (attrs.target !== void 0 && el.getAttribute("target") !== attrs.target) {
940
+ el.setAttribute("target", attrs.target);
941
+ }
939
942
  }
940
943
  if (el instanceof HTMLImageElement) {
941
944
  if (attrs.src !== void 0 && el.src !== attrs.src) el.src = attrs.src;
package/dist/text.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkU4UYRERWjs = require('./chunk-U4UYRERW.js');
5
+ var _chunkNHNOKBD4js = require('./chunk-NHNOKBD4.js');
6
6
 
7
7
 
8
8
 
@@ -13,4 +13,4 @@ var _chunkCTZQOM5Zjs = require('./chunk-CTZQOM5Z.js');
13
13
 
14
14
 
15
15
 
16
- exports.ArabicShaper = _chunkCTZQOM5Zjs.ArabicShaper; exports.BidiResolver = _chunkCTZQOM5Zjs.BidiResolver; exports.MSDFFont = _chunkU4UYRERWjs.MSDFFont; exports.MSDFTextEntity = _chunkU4UYRERWjs.MSDFTextEntity; exports.SVGEntity = _chunkU4UYRERWjs.SVGEntity;
16
+ exports.ArabicShaper = _chunkCTZQOM5Zjs.ArabicShaper; exports.BidiResolver = _chunkCTZQOM5Zjs.BidiResolver; exports.MSDFFont = _chunkNHNOKBD4js.MSDFFont; exports.MSDFTextEntity = _chunkNHNOKBD4js.MSDFTextEntity; exports.SVGEntity = _chunkNHNOKBD4js.SVGEntity;
package/dist/text.mjs CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  MSDFFont,
3
3
  MSDFTextEntity,
4
4
  SVGEntity
5
- } from "./chunk-PY4KGL5Y.mjs";
5
+ } from "./chunk-N7DNUDVY.mjs";
6
6
  import {
7
7
  ArabicShaper,
8
8
  BidiResolver
@@ -89,6 +89,8 @@ export interface A11yAttributes {
89
89
  label?: string;
90
90
  /** Destination URL; only meaningful for `tag: 'a'`. */
91
91
  href?: string;
92
+ /** Link target; only meaningful for `tag: 'a'`. Defaults to current window. */
93
+ target?: string;
92
94
  /** Image source; only meaningful for `tag: 'img'`. */
93
95
  src?: string;
94
96
  /** Alternative text; only meaningful for `tag: 'img'`. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectojs/core",
3
- "version": "1.0.1",
3
+ "version": "1.3.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -58,11 +58,11 @@
58
58
  },
59
59
  "dependencies": {},
60
60
  "devDependencies": {
61
- "@vitest/coverage-v8": "^4.1.9",
61
+ "@vitest/coverage-v8": "^4.1.10",
62
62
  "esbuild": "^0.28.1",
63
63
  "jsdom": "^29.1.1",
64
64
  "tsup": "^8.3.5",
65
- "vitest": "^4.1.9",
65
+ "vitest": "^4.1.10",
66
66
  "puppeteer-core": "^25.3.0"
67
67
  }
68
68
  }