modern-canvas 0.7.10 → 0.7.11

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/index.mjs CHANGED
@@ -332,76 +332,59 @@ class RawWeakMap {
332
332
  }
333
333
 
334
334
  class InputEvent {
335
- bubbles = true;
335
+ cursor;
336
+ // Event
337
+ bubbles = false;
338
+ cancelBubble = false;
336
339
  cancelable = false;
337
- which;
338
- cancelBubble = true;
339
- returnValue;
340
- srcElement;
341
340
  composed = false;
342
- currentTarget;
343
341
  defaultPrevented = false;
344
342
  eventPhase = InputEvent.prototype.NONE;
345
- isTrusted;
346
- target;
347
- timeStamp;
348
- type;
349
- nativeEvent;
350
- originalEvent;
351
- propagationStopped = false;
352
- propagationImmediatelyStopped = false;
353
- path;
354
- detail;
355
- view;
356
- layer = { x: 0, y: 0 };
357
- get layerX() {
358
- return this.layer.x;
359
- }
360
- get layerY() {
361
- return this.layer.y;
362
- }
363
- page = { x: 0, y: 0 };
364
- get pageX() {
365
- return this.page.x;
366
- }
367
- get pageY() {
368
- return this.page.y;
343
+ isTrusted = false;
344
+ timeStamp = 0;
345
+ type = "";
346
+ composedPath() {
347
+ return this.path;
369
348
  }
370
349
  initEvent(..._args) {
371
350
  throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.");
372
351
  }
373
- initUIEvent(..._args) {
374
- throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.");
375
- }
376
- composedPath() {
377
- return this.path;
378
- }
379
352
  preventDefault() {
380
- if (this.nativeEvent instanceof Event && this.nativeEvent.cancelable) {
353
+ if ("preventDefault" in this.nativeEvent && this.nativeEvent.cancelable) {
381
354
  this.nativeEvent.preventDefault();
382
355
  }
383
356
  this.defaultPrevented = true;
384
357
  }
358
+ propagationImmediatelyStopped = false;
385
359
  stopImmediatePropagation() {
386
360
  this.propagationImmediatelyStopped = true;
387
361
  }
362
+ propagationStopped = false;
388
363
  stopPropagation() {
364
+ if ("stopPropagation" in this.nativeEvent) {
365
+ this.nativeEvent.stopPropagation();
366
+ }
389
367
  this.propagationStopped = true;
390
368
  }
391
369
  NONE = 0;
392
370
  CAPTURING_PHASE = 1;
393
371
  AT_TARGET = 2;
394
372
  BUBBLING_PHASE = 3;
373
+ initUIEvent(..._args) {
374
+ throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.");
375
+ }
376
+ }
377
+
378
+ class KeyboardInputEvent extends InputEvent {
379
+ getModifierState(..._args) {
380
+ throw new Error("getModifierState() is a legacy DOM API. It is not implemented in the Federated Events API.");
381
+ }
382
+ initKeyboardEvent(..._args) {
383
+ throw new Error("initKeyboardEvent() is a legacy DOM API. It is not implemented in the Federated Events API.");
384
+ }
395
385
  }
396
386
 
397
387
  class MouseInputEvent extends InputEvent {
398
- altKey;
399
- button;
400
- buttons;
401
- ctrlKey;
402
- metaKey;
403
- relatedTarget;
404
- shiftKey;
405
388
  client = { x: 0, y: 0 };
406
389
  get clientX() {
407
390
  return this.client.x;
@@ -409,11 +392,12 @@ class MouseInputEvent extends InputEvent {
409
392
  get clientY() {
410
393
  return this.client.y;
411
394
  }
412
- get x() {
413
- return this.clientX;
395
+ layer = { x: 0, y: 0 };
396
+ get layerX() {
397
+ return this.layer.x;
414
398
  }
415
- get y() {
416
- return this.clientY;
399
+ get layerY() {
400
+ return this.layer.y;
417
401
  }
418
402
  movement = { x: 0, y: 0 };
419
403
  get movementX() {
@@ -429,12 +413,12 @@ class MouseInputEvent extends InputEvent {
429
413
  get offsetY() {
430
414
  return this.offset.y;
431
415
  }
432
- global = { x: 0, y: 0 };
433
- get globalX() {
434
- return this.global.x;
416
+ page = { x: 0, y: 0 };
417
+ get pageX() {
418
+ return this.page.x;
435
419
  }
436
- get globalY() {
437
- return this.global.y;
420
+ get pageY() {
421
+ return this.page.y;
438
422
  }
439
423
  screen = { x: 0, y: 0 };
440
424
  get screenX() {
@@ -443,24 +427,31 @@ class MouseInputEvent extends InputEvent {
443
427
  get screenY() {
444
428
  return this.screen.y;
445
429
  }
430
+ get x() {
431
+ return this.clientX;
432
+ }
433
+ get y() {
434
+ return this.clientY;
435
+ }
446
436
  getModifierState(key) {
447
437
  return "getModifierState" in this.nativeEvent && this.nativeEvent.getModifierState(key);
448
438
  }
449
439
  initMouseEvent(..._args) {
450
440
  throw new Error("Method not implemented.");
451
441
  }
442
+ global = { x: 0, y: 0 };
443
+ get globalX() {
444
+ return this.global.x;
445
+ }
446
+ get globalY() {
447
+ return this.global.y;
448
+ }
452
449
  }
453
450
 
454
451
  class PointerInputEvent extends MouseInputEvent {
455
452
  width = 0;
456
453
  height = 0;
457
454
  isPrimary = false;
458
- pointerType;
459
- pressure;
460
- tangentialPressure;
461
- tiltX;
462
- tiltY;
463
- twist;
464
455
  getCoalescedEvents() {
465
456
  if (this.type === "pointermove" || this.type === "mousemove" || this.type === "touchmove") {
466
457
  return [this];
@@ -473,10 +464,6 @@ class PointerInputEvent extends MouseInputEvent {
473
464
  }
474
465
 
475
466
  class WheelInputEvent extends MouseInputEvent {
476
- deltaMode;
477
- deltaX;
478
- deltaY;
479
- deltaZ;
480
467
  static DOM_DELTA_PIXEL = 0;
481
468
  DOM_DELTA_PIXEL = 0;
482
469
  static DOM_DELTA_LINE = 1;
@@ -493,6 +480,10 @@ const TOUCH_TO_POINTER = {
493
480
  touchcancel: "pointercancel"
494
481
  };
495
482
  class Input extends EventEmitter {
483
+ /**
484
+ * Current event
485
+ */
486
+ event;
496
487
  target;
497
488
  cursor = "default";
498
489
  cursorStyles = {
@@ -500,10 +491,6 @@ class Input extends EventEmitter {
500
491
  pointer: "pointer"
501
492
  };
502
493
  setuped = false;
503
- /**
504
- * Current event
505
- */
506
- event;
507
494
  enableMoveEvent = true;
508
495
  enableWheelEvent = true;
509
496
  enableClickEvent = true;
@@ -524,24 +511,27 @@ class Input extends EventEmitter {
524
511
  style.touchAction = "";
525
512
  }
526
513
  if (SUPPORTS_POINTER_EVENTS) {
527
- this.target.removeEventListener("pointerdown", this.onPointerDown);
528
- this.target.removeEventListener("pointerleave", this.onPointerOver);
529
- this.target.removeEventListener("pointerover", this.onPointerOver);
530
- this.target.removeEventListener("pointermove", this.onPointerMove);
531
- this.target.removeEventListener("pointerup", this.onPointerUp);
514
+ this.target.removeEventListener("pointerdown", this._onPointerDown);
515
+ this.target.removeEventListener("pointerleave", this._onPointerOver);
516
+ this.target.removeEventListener("pointerover", this._onPointerOver);
517
+ this.target.removeEventListener("pointermove", this._onPointerMove);
518
+ this.target.removeEventListener("pointerup", this._onPointerUp);
532
519
  } else {
533
- this.target.removeEventListener("mousedown", this.onPointerDown);
534
- this.target.removeEventListener("mouseout", this.onPointerOver);
535
- this.target.removeEventListener("mouseover", this.onPointerOver);
536
- this.target.removeEventListener("mousemove", this.onPointerMove);
537
- this.target.removeEventListener("mouseup", this.onPointerUp);
520
+ this.target.removeEventListener("mousedown", this._onPointerDown);
521
+ this.target.removeEventListener("mouseout", this._onPointerOver);
522
+ this.target.removeEventListener("mouseover", this._onPointerOver);
523
+ this.target.removeEventListener("mousemove", this._onPointerMove);
524
+ this.target.removeEventListener("mouseup", this._onPointerUp);
538
525
  }
539
526
  if (SUPPORTS_TOUCH_EVENTS) {
540
- this.target.removeEventListener("touchstart", this.onPointerDown);
541
- this.target.removeEventListener("touchmove", this.onPointerMove);
542
- this.target.removeEventListener("touchend", this.onPointerUp);
543
- }
544
- this.target.removeEventListener("wheel", this.onWheel);
527
+ this.target.removeEventListener("touchstart", this._onPointerDown);
528
+ this.target.removeEventListener("touchmove", this._onPointerMove);
529
+ this.target.removeEventListener("touchend", this._onPointerUp);
530
+ }
531
+ this.target.removeEventListener("wheel", this._onWheel);
532
+ document.removeEventListener("keydown", this._onKeyDown);
533
+ document.removeEventListener("keypress", this._onKeyPress);
534
+ document.removeEventListener("keyup", this._onKeyUp);
545
535
  this.target = void 0;
546
536
  this.setuped = false;
547
537
  }
@@ -559,24 +549,27 @@ class Input extends EventEmitter {
559
549
  }
560
550
  }
561
551
  if (SUPPORTS_POINTER_EVENTS) {
562
- this.target.addEventListener("pointerdown", this.onPointerDown);
563
- this.target.addEventListener("pointerleave", this.onPointerOver);
564
- this.target.addEventListener("pointerover", this.onPointerOver);
565
- this.target.addEventListener("pointermove", this.onPointerMove);
566
- this.target.addEventListener("pointerup", this.onPointerUp);
552
+ this.target.addEventListener("pointerdown", this._onPointerDown);
553
+ this.target.addEventListener("pointerleave", this._onPointerOver);
554
+ this.target.addEventListener("pointerover", this._onPointerOver);
555
+ this.target.addEventListener("pointermove", this._onPointerMove);
556
+ this.target.addEventListener("pointerup", this._onPointerUp);
567
557
  } else {
568
- this.target.addEventListener("mousedown", this.onPointerDown);
569
- this.target.addEventListener("mouseout", this.onPointerOver);
570
- this.target.addEventListener("mouseover", this.onPointerOver);
571
- this.target.addEventListener("mousemove", this.onPointerMove);
572
- this.target.addEventListener("mouseup", this.onPointerUp);
558
+ this.target.addEventListener("mousedown", this._onPointerDown);
559
+ this.target.addEventListener("mouseout", this._onPointerOver);
560
+ this.target.addEventListener("mouseover", this._onPointerOver);
561
+ this.target.addEventListener("mousemove", this._onPointerMove);
562
+ this.target.addEventListener("mouseup", this._onPointerUp);
573
563
  }
574
564
  if (SUPPORTS_TOUCH_EVENTS) {
575
- this.target.addEventListener("touchstart", this.onPointerDown);
576
- this.target.addEventListener("touchmove", this.onPointerMove);
577
- this.target.addEventListener("touchend", this.onPointerUp);
578
- }
579
- this.target.addEventListener("wheel", this.onWheel);
565
+ this.target.addEventListener("touchstart", this._onPointerDown);
566
+ this.target.addEventListener("touchmove", this._onPointerMove);
567
+ this.target.addEventListener("touchend", this._onPointerUp);
568
+ }
569
+ this.target.addEventListener("wheel", this._onWheel);
570
+ document.addEventListener("keydown", this._onKeyDown);
571
+ document.addEventListener("keypress", this._onKeyPress);
572
+ document.addEventListener("keyup", this._onKeyUp);
580
573
  this.setuped = true;
581
574
  }
582
575
  normalize(event) {
@@ -646,26 +639,8 @@ class Input extends EventEmitter {
646
639
  }
647
640
  return events;
648
641
  }
649
- cloneWheelEvent(nativeEvent) {
650
- const event = new WheelInputEvent();
651
- this.copyMouseEvent(event, nativeEvent);
652
- event.wheelDeltaY = nativeEvent.wheelDeltaY;
653
- event.deltaX = nativeEvent.deltaX;
654
- event.deltaY = nativeEvent.deltaY;
655
- event.deltaZ = nativeEvent.deltaZ;
656
- event.deltaMode = nativeEvent.deltaMode;
657
- this.mapPositionToPoint(event.screen, nativeEvent.clientX, nativeEvent.clientY);
658
- event.global.x = event.screen.x;
659
- event.global.y = event.screen.y;
660
- event.offset.x = event.screen.x;
661
- event.offset.y = event.screen.y;
662
- event.nativeEvent = nativeEvent;
663
- event.type = nativeEvent.type;
664
- return event;
665
- }
666
- clonePointerEvent(nativeEvent) {
642
+ _clonePointerEvent(nativeEvent) {
667
643
  const event = new PointerInputEvent();
668
- event.originalEvent = null;
669
644
  event.nativeEvent = nativeEvent;
670
645
  event.pointerId = nativeEvent.pointerId;
671
646
  event.width = nativeEvent.width;
@@ -678,7 +653,7 @@ class Input extends EventEmitter {
678
653
  event.tiltY = nativeEvent.tiltY;
679
654
  event.twist = nativeEvent.twist;
680
655
  event.isTrusted = nativeEvent.isTrusted;
681
- this.copyMouseEvent(event, nativeEvent);
656
+ this._copyMouseEvent(event, nativeEvent);
682
657
  this.mapPositionToPoint(event.screen, nativeEvent.clientX, nativeEvent.clientY);
683
658
  event.global.x = event.screen.x;
684
659
  event.global.y = event.screen.y;
@@ -693,12 +668,23 @@ class Input extends EventEmitter {
693
668
  }
694
669
  return event;
695
670
  }
696
- copyMouseEvent(event, nativeEvent) {
697
- event.preventDefault = nativeEvent.preventDefault.bind(nativeEvent);
698
- event.stopPropagation = nativeEvent.stopPropagation.bind(nativeEvent);
671
+ _copyInputEvent(event, nativeEvent) {
672
+ event.nativeEvent = nativeEvent;
673
+ event.bubbles = nativeEvent.bubbles;
674
+ event.cancelBubble = nativeEvent.cancelBubble;
675
+ event.cancelable = nativeEvent.cancelable;
676
+ event.composed = nativeEvent.composed;
677
+ event.currentTarget = nativeEvent.currentTarget;
678
+ event.defaultPrevented = nativeEvent.defaultPrevented;
679
+ event.eventPhase = nativeEvent.eventPhase;
699
680
  event.isTrusted = nativeEvent.isTrusted;
700
- event.timeStamp = performance.now();
681
+ event.returnValue = nativeEvent.returnValue;
682
+ event.srcElement = nativeEvent.srcElement;
683
+ event.timeStamp = nativeEvent.timeStamp;
701
684
  event.type = nativeEvent.type;
685
+ }
686
+ _copyMouseEvent(event, nativeEvent) {
687
+ this._copyInputEvent(event, nativeEvent);
702
688
  event.altKey = nativeEvent.altKey;
703
689
  event.button = nativeEvent.button;
704
690
  event.buttons = nativeEvent.buttons;
@@ -713,10 +699,40 @@ class Input extends EventEmitter {
713
699
  event.relatedTarget = null;
714
700
  event.shiftKey = nativeEvent.shiftKey;
715
701
  }
716
- setCursor(mode) {
702
+ _cloneWheelEvent(nativeEvent) {
703
+ const event = new WheelInputEvent();
704
+ this._copyMouseEvent(event, nativeEvent);
705
+ event.wheelDeltaY = nativeEvent.wheelDeltaY;
706
+ event.deltaX = nativeEvent.deltaX;
707
+ event.deltaY = nativeEvent.deltaY;
708
+ event.deltaZ = nativeEvent.deltaZ;
709
+ event.deltaMode = nativeEvent.deltaMode;
710
+ this.mapPositionToPoint(event.screen, nativeEvent.clientX, nativeEvent.clientY);
711
+ event.global.x = event.screen.x;
712
+ event.global.y = event.screen.y;
713
+ event.offset.x = event.screen.x;
714
+ event.offset.y = event.screen.y;
715
+ return event;
716
+ }
717
+ _cloneKeyboardEvent(nativeEvent) {
718
+ const event = new KeyboardInputEvent();
719
+ this._copyInputEvent(event, nativeEvent);
720
+ event.altKey = nativeEvent.altKey;
721
+ event.charCode = nativeEvent.charCode;
722
+ event.code = nativeEvent.code;
723
+ event.ctrlKey = nativeEvent.ctrlKey;
724
+ event.isComposing = nativeEvent.isComposing;
725
+ event.key = nativeEvent.key;
726
+ event.keyCode = nativeEvent.keyCode;
727
+ event.location = nativeEvent.location;
728
+ event.metaKey = nativeEvent.metaKey;
729
+ event.repeat = nativeEvent.repeat;
730
+ event.shiftKey = nativeEvent.shiftKey;
731
+ return event;
732
+ }
733
+ setCursor(mode = "default") {
717
734
  if (!this.target)
718
735
  return;
719
- mode = mode || "default";
720
736
  if (this.cursor === mode) {
721
737
  return;
722
738
  }
@@ -755,36 +771,71 @@ class Input extends EventEmitter {
755
771
  point.x = (x - rect.left) * (width / rect.width) * multiplier;
756
772
  point.y = (y - rect.top) * (height / rect.height) * multiplier;
757
773
  }
758
- onPointerDown = (nativeEvent) => {
774
+ _onKeyDown = (nativeEvent) => {
775
+ const events = this.normalize(nativeEvent);
776
+ for (let i = 0, len = events.length; i < len; i++) {
777
+ this.emit("keydown", this.event = this._cloneKeyboardEvent(events[i]));
778
+ }
779
+ if (this.event?.cursor) {
780
+ this.setCursor(this.event.cursor);
781
+ }
782
+ };
783
+ _onKeyPress = (nativeEvent) => {
784
+ const events = this.normalize(nativeEvent);
785
+ for (let i = 0, len = events.length; i < len; i++) {
786
+ this.emit("keypress", this.event = this._cloneKeyboardEvent(events[i]));
787
+ }
788
+ if (this.event?.cursor) {
789
+ this.setCursor(this.event.cursor);
790
+ }
791
+ };
792
+ _onKeyUp = (nativeEvent) => {
793
+ const events = this.normalize(nativeEvent);
794
+ for (let i = 0, len = events.length; i < len; i++) {
795
+ this.emit("keyup", this.event = this._cloneKeyboardEvent(events[i]));
796
+ }
797
+ if (this.event?.cursor) {
798
+ this.setCursor(this.event.cursor);
799
+ }
800
+ };
801
+ _onPointerDown = (nativeEvent) => {
759
802
  if (SUPPORTS_TOUCH_EVENTS && nativeEvent.pointerType === "touch")
760
803
  return;
761
804
  const events = this.normalize(nativeEvent);
762
805
  for (let i = 0, len = events.length; i < len; i++) {
763
- this.emit("pointerdown", this.event = this.clonePointerEvent(events[i]));
806
+ this.emit("pointerdown", this.event = this._clonePointerEvent(events[i]));
807
+ }
808
+ if (this.event?.cursor) {
809
+ this.setCursor(this.event.cursor);
764
810
  }
765
- this.setCursor(this.cursor);
766
811
  };
767
- onPointerOver = (nativeEvent) => {
812
+ _onPointerOver = (nativeEvent) => {
768
813
  if (!this.enableClickEvent)
769
814
  return;
770
815
  if (SUPPORTS_TOUCH_EVENTS && nativeEvent.pointerType === "touch")
771
816
  return;
772
817
  const events = this.normalize(nativeEvent);
773
818
  for (let i = 0, len = events.length; i < len; i++) {
774
- this.emit("pointerover", this.event = this.clonePointerEvent(events[i]));
819
+ this.emit("pointerover", this.event = this._clonePointerEvent(events[i]));
820
+ }
821
+ if (this.event?.cursor) {
822
+ this.setCursor(this.event.cursor);
775
823
  }
776
824
  };
777
- onPointerMove = (nativeEvent) => {
825
+ _onPointerMove = (nativeEvent) => {
778
826
  if (!this.enableMoveEvent)
779
827
  return;
780
828
  if (SUPPORTS_TOUCH_EVENTS && nativeEvent.pointerType === "touch")
781
829
  return;
782
830
  const events = this.normalize(nativeEvent);
783
831
  for (let i = 0, len = events.length; i < len; i++) {
784
- this.emit("pointermove", this.event = this.clonePointerEvent(events[i]));
832
+ this.emit("pointermove", this.event = this._clonePointerEvent(events[i]));
833
+ }
834
+ if (this.event?.cursor) {
835
+ this.setCursor(this.event.cursor);
785
836
  }
786
837
  };
787
- onPointerUp = (nativeEvent) => {
838
+ _onPointerUp = (nativeEvent) => {
788
839
  if (!this.enableClickEvent)
789
840
  return;
790
841
  if (SUPPORTS_TOUCH_EVENTS && nativeEvent.pointerType === "touch")
@@ -796,17 +847,23 @@ class Input extends EventEmitter {
796
847
  const outside = target !== this.target ? "outside" : "";
797
848
  const events = this.normalize(nativeEvent);
798
849
  for (let i = 0, len = events.length; i < len; i++) {
799
- const event = this.clonePointerEvent(events[i]);
850
+ const event = this._clonePointerEvent(events[i]);
800
851
  event.type += outside;
801
852
  this.emit("pointerup", this.event = event);
802
853
  }
854
+ if (this.event?.cursor) {
855
+ this.setCursor(this.event.cursor);
856
+ }
803
857
  };
804
- onWheel = (nativeEvent) => {
858
+ _onWheel = (nativeEvent) => {
805
859
  if (!this.enableWheelEvent)
806
860
  return;
807
861
  const events = this.normalize(nativeEvent);
808
862
  for (let i = 0, len = events.length; i < len; i++) {
809
- this.emit("wheel", this.event = this.cloneWheelEvent(events[i]));
863
+ this.emit("wheel", this.event = this._cloneWheelEvent(events[i]));
864
+ }
865
+ if (this.event?.cursor) {
866
+ this.setCursor(this.event.cursor);
810
867
  }
811
868
  };
812
869
  }
@@ -2097,13 +2154,13 @@ class Vector3 extends Vector {
2097
2154
  }
2098
2155
  }
2099
2156
 
2100
- var __defProp$P = Object.defineProperty;
2157
+ var __defProp$Q = Object.defineProperty;
2101
2158
  var __decorateClass$Z = (decorators, target, key, kind) => {
2102
2159
  var result = void 0 ;
2103
2160
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
2104
2161
  if (decorator = decorators[i])
2105
2162
  result = (decorator(target, key, result) ) || result;
2106
- if (result) __defProp$P(target, key, result);
2163
+ if (result) __defProp$Q(target, key, result);
2107
2164
  return result;
2108
2165
  };
2109
2166
  class MainLoop extends CoreObject {
@@ -4298,13 +4355,13 @@ class Geometry extends Resource {
4298
4355
  }
4299
4356
  }
4300
4357
 
4301
- var __defProp$O = Object.defineProperty;
4358
+ var __defProp$P = Object.defineProperty;
4302
4359
  var __decorateClass$Y = (decorators, target, key, kind) => {
4303
4360
  var result = void 0 ;
4304
4361
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4305
4362
  if (decorator = decorators[i])
4306
4363
  result = (decorator(target, key, result) ) || result;
4307
- if (result) __defProp$O(target, key, result);
4364
+ if (result) __defProp$P(target, key, result);
4308
4365
  return result;
4309
4366
  };
4310
4367
  class IndexBuffer extends Resource {
@@ -4355,13 +4412,13 @@ __decorateClass$Y([
4355
4412
  property({ protected: true, fallback: false })
4356
4413
  ], IndexBuffer.prototype, "dynamic");
4357
4414
 
4358
- var __defProp$N = Object.defineProperty;
4415
+ var __defProp$O = Object.defineProperty;
4359
4416
  var __decorateClass$X = (decorators, target, key, kind) => {
4360
4417
  var result = void 0 ;
4361
4418
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4362
4419
  if (decorator = decorators[i])
4363
4420
  result = (decorator(target, key, result) ) || result;
4364
- if (result) __defProp$N(target, key, result);
4421
+ if (result) __defProp$O(target, key, result);
4365
4422
  return result;
4366
4423
  };
4367
4424
  class VertexBuffer extends Resource {
@@ -4412,13 +4469,13 @@ __decorateClass$X([
4412
4469
  property({ protected: true, fallback: false })
4413
4470
  ], VertexBuffer.prototype, "dynamic");
4414
4471
 
4415
- var __defProp$M = Object.defineProperty;
4472
+ var __defProp$N = Object.defineProperty;
4416
4473
  var __decorateClass$W = (decorators, target, key, kind) => {
4417
4474
  var result = void 0 ;
4418
4475
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4419
4476
  if (decorator = decorators[i])
4420
4477
  result = (decorator(target, key, result) ) || result;
4421
- if (result) __defProp$M(target, key, result);
4478
+ if (result) __defProp$N(target, key, result);
4422
4479
  return result;
4423
4480
  };
4424
4481
  class VertexAttribute extends Resource {
@@ -4714,13 +4771,13 @@ class UvGeometry extends Geometry {
4714
4771
  }
4715
4772
  }
4716
4773
 
4717
- var __defProp$L = Object.defineProperty;
4774
+ var __defProp$M = Object.defineProperty;
4718
4775
  var __decorateClass$V = (decorators, target, key, kind) => {
4719
4776
  var result = void 0 ;
4720
4777
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4721
4778
  if (decorator = decorators[i])
4722
4779
  result = (decorator(target, key, result) ) || result;
4723
- if (result) __defProp$L(target, key, result);
4780
+ if (result) __defProp$M(target, key, result);
4724
4781
  return result;
4725
4782
  };
4726
4783
  class Texture2D extends Resource {
@@ -4891,13 +4948,13 @@ class AnimatedTexture extends Resource {
4891
4948
  }
4892
4949
  }
4893
4950
 
4894
- var __defProp$K = Object.defineProperty;
4951
+ var __defProp$L = Object.defineProperty;
4895
4952
  var __decorateClass$U = (decorators, target, key, kind) => {
4896
4953
  var result = void 0 ;
4897
4954
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
4898
4955
  if (decorator = decorators[i])
4899
4956
  result = (decorator(target, key, result) ) || result;
4900
- if (result) __defProp$K(target, key, result);
4957
+ if (result) __defProp$L(target, key, result);
4901
4958
  return result;
4902
4959
  };
4903
4960
  class CanvasTexture extends Texture2D {
@@ -5136,13 +5193,13 @@ class PixelsTexture extends Texture2D {
5136
5193
  }
5137
5194
  }
5138
5195
 
5139
- var __defProp$J = Object.defineProperty;
5196
+ var __defProp$K = Object.defineProperty;
5140
5197
  var __decorateClass$T = (decorators, target, key, kind) => {
5141
5198
  var result = void 0 ;
5142
5199
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
5143
5200
  if (decorator = decorators[i])
5144
5201
  result = (decorator(target, key, result) ) || result;
5145
- if (result) __defProp$J(target, key, result);
5202
+ if (result) __defProp$K(target, key, result);
5146
5203
  return result;
5147
5204
  };
5148
5205
  function resolveOptions(options) {
@@ -5625,14 +5682,14 @@ class Children extends Array {
5625
5682
  }
5626
5683
  }
5627
5684
 
5628
- var __defProp$I = Object.defineProperty;
5685
+ var __defProp$J = Object.defineProperty;
5629
5686
  var __getOwnPropDesc$J = Object.getOwnPropertyDescriptor;
5630
5687
  var __decorateClass$S = (decorators, target, key, kind) => {
5631
5688
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$J(target, key) : target;
5632
5689
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
5633
5690
  if (decorator = decorators[i])
5634
5691
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
5635
- if (kind && result) __defProp$I(target, key, result);
5692
+ if (kind && result) __defProp$J(target, key, result);
5636
5693
  return result;
5637
5694
  };
5638
5695
  const iidMap = {};
@@ -5906,10 +5963,16 @@ let Node = class extends CoreObject {
5906
5963
  }
5907
5964
  }
5908
5965
  input(event, key) {
5966
+ if (event.propagationStopped) {
5967
+ return;
5968
+ }
5909
5969
  const array = this._children.internal;
5910
5970
  for (let i = array.length - 1; i >= 0; i--) {
5911
5971
  array[i].input(event, key);
5912
5972
  }
5973
+ if (event.propagationStopped) {
5974
+ return;
5975
+ }
5913
5976
  this._input(event, key);
5914
5977
  }
5915
5978
  getIndex() {
@@ -6144,14 +6207,14 @@ Node = __decorateClass$S([
6144
6207
  customNode("Node")
6145
6208
  ], Node);
6146
6209
 
6147
- var __defProp$H = Object.defineProperty;
6210
+ var __defProp$I = Object.defineProperty;
6148
6211
  var __getOwnPropDesc$I = Object.getOwnPropertyDescriptor;
6149
6212
  var __decorateClass$R = (decorators, target, key, kind) => {
6150
6213
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$I(target, key) : target;
6151
6214
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6152
6215
  if (decorator = decorators[i])
6153
6216
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6154
- if (kind && result) __defProp$H(target, key, result);
6217
+ if (kind && result) __defProp$I(target, key, result);
6155
6218
  return result;
6156
6219
  };
6157
6220
  let TimelineNode = class extends Node {
@@ -6227,14 +6290,14 @@ TimelineNode = __decorateClass$R([
6227
6290
  customNode("TimelineNode")
6228
6291
  ], TimelineNode);
6229
6292
 
6230
- var __defProp$G = Object.defineProperty;
6293
+ var __defProp$H = Object.defineProperty;
6231
6294
  var __getOwnPropDesc$H = Object.getOwnPropertyDescriptor;
6232
6295
  var __decorateClass$Q = (decorators, target, key, kind) => {
6233
6296
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$H(target, key) : target;
6234
6297
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6235
6298
  if (decorator = decorators[i])
6236
6299
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6237
- if (kind && result) __defProp$G(target, key, result);
6300
+ if (kind && result) __defProp$H(target, key, result);
6238
6301
  return result;
6239
6302
  };
6240
6303
  let CanvasItem = class extends TimelineNode {
@@ -6402,14 +6465,14 @@ CanvasItem = __decorateClass$Q([
6402
6465
  customNode("CanvasItem")
6403
6466
  ], CanvasItem);
6404
6467
 
6405
- var __defProp$F = Object.defineProperty;
6468
+ var __defProp$G = Object.defineProperty;
6406
6469
  var __getOwnPropDesc$G = Object.getOwnPropertyDescriptor;
6407
6470
  var __decorateClass$P = (decorators, target, key, kind) => {
6408
6471
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$G(target, key) : target;
6409
6472
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6410
6473
  if (decorator = decorators[i])
6411
6474
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6412
- if (kind && result) __defProp$F(target, key, result);
6475
+ if (kind && result) __defProp$G(target, key, result);
6413
6476
  return result;
6414
6477
  };
6415
6478
  let Viewport = class extends Node {
@@ -6566,14 +6629,14 @@ Viewport = __decorateClass$P([
6566
6629
  customNode("Viewport")
6567
6630
  ], Viewport);
6568
6631
 
6569
- var __defProp$E = Object.defineProperty;
6632
+ var __defProp$F = Object.defineProperty;
6570
6633
  var __getOwnPropDesc$F = Object.getOwnPropertyDescriptor;
6571
6634
  var __decorateClass$O = (decorators, target, key, kind) => {
6572
6635
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$F(target, key) : target;
6573
6636
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6574
6637
  if (decorator = decorators[i])
6575
6638
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6576
- if (kind && result) __defProp$E(target, key, result);
6639
+ if (kind && result) __defProp$F(target, key, result);
6577
6640
  return result;
6578
6641
  };
6579
6642
  let Effect = class extends TimelineNode {
@@ -6857,14 +6920,14 @@ class RenderStack {
6857
6920
  }
6858
6921
  }
6859
6922
 
6860
- var __defProp$D = Object.defineProperty;
6923
+ var __defProp$E = Object.defineProperty;
6861
6924
  var __getOwnPropDesc$E = Object.getOwnPropertyDescriptor;
6862
6925
  var __decorateClass$N = (decorators, target, key, kind) => {
6863
6926
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$E(target, key) : target;
6864
6927
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6865
6928
  if (decorator = decorators[i])
6866
6929
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6867
- if (kind && result) __defProp$D(target, key, result);
6930
+ if (kind && result) __defProp$E(target, key, result);
6868
6931
  return result;
6869
6932
  };
6870
6933
  let Timeline = class extends Node {
@@ -6940,13 +7003,13 @@ Window = __decorateClass$M([
6940
7003
  customNode("Window")
6941
7004
  ], Window);
6942
7005
 
6943
- var __defProp$C = Object.defineProperty;
7006
+ var __defProp$D = Object.defineProperty;
6944
7007
  var __decorateClass$L = (decorators, target, key, kind) => {
6945
7008
  var result = void 0 ;
6946
7009
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
6947
7010
  if (decorator = decorators[i])
6948
7011
  result = (decorator(target, key, result) ) || result;
6949
- if (result) __defProp$C(target, key, result);
7012
+ if (result) __defProp$D(target, key, result);
6950
7013
  return result;
6951
7014
  };
6952
7015
  class SceneTree extends MainLoop {
@@ -7050,14 +7113,14 @@ Transition = __decorateClass$K([
7050
7113
  })
7051
7114
  ], Transition);
7052
7115
 
7053
- var __defProp$B = Object.defineProperty;
7116
+ var __defProp$C = Object.defineProperty;
7054
7117
  var __getOwnPropDesc$B = Object.getOwnPropertyDescriptor;
7055
7118
  var __decorateClass$J = (decorators, target, key, kind) => {
7056
7119
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$B(target, key) : target;
7057
7120
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7058
7121
  if (decorator = decorators[i])
7059
7122
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7060
- if (kind && result) __defProp$B(target, key, result);
7123
+ if (kind && result) __defProp$C(target, key, result);
7061
7124
  return result;
7062
7125
  };
7063
7126
  let Node2D = class extends CanvasItem {
@@ -7170,18 +7233,21 @@ Node2D = __decorateClass$J([
7170
7233
  customNode("Node2D")
7171
7234
  ], Node2D);
7172
7235
 
7236
+ var __defProp$B = Object.defineProperty;
7173
7237
  var __getOwnPropDesc$A = Object.getOwnPropertyDescriptor;
7174
7238
  var __decorateClass$I = (decorators, target, key, kind) => {
7175
7239
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$A(target, key) : target;
7176
7240
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
7177
7241
  if (decorator = decorators[i])
7178
- result = (decorator(result)) || result;
7242
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7243
+ if (kind && result) __defProp$B(target, key, result);
7179
7244
  return result;
7180
7245
  };
7181
7246
  let Camera2D = class extends Node2D {
7182
7247
  zoom = new Vector2(1, 1).on("update", () => this.updateCanvasTransform());
7183
7248
  maxZoom = new Vector2(6, 6);
7184
7249
  minZoom = new Vector2(0.1, 0.1);
7250
+ _screenOffset = { x: 0, y: 0 };
7185
7251
  constructor(properties, nodes = []) {
7186
7252
  super();
7187
7253
  this.setProperties(properties).append(nodes);
@@ -7202,24 +7268,61 @@ let Camera2D = class extends Node2D {
7202
7268
  }
7203
7269
  _input(event, key) {
7204
7270
  super._input(event, key);
7205
- if (key === "wheel") {
7271
+ if (key === "keydown") {
7206
7272
  const e = event;
7207
- if (e.ctrlKey) {
7208
- const isTouchPad = e.wheelDeltaY ? Math.abs(Math.abs(e.wheelDeltaY) - Math.abs(3 * e.deltaY)) < 3 : e.deltaMode === 0;
7209
- if (!isTouchPad) {
7210
- e.preventDefault();
7211
- const oldZoom = this.zoom.x;
7212
- this.addZoom(e.deltaY * -0.015);
7213
- const ratio = 1 - this.zoom.x / oldZoom;
7214
- this.position.add(
7215
- (e.screenX - this.position.x) * ratio,
7216
- (e.screenY - this.position.y) * ratio
7217
- );
7218
- }
7219
- } else {
7273
+ if (!this.spaceKey && e.code === "Space") {
7274
+ e.cursor = "grab";
7275
+ this.spaceKey = true;
7276
+ }
7277
+ } else if (key === "keyup") {
7278
+ const e = event;
7279
+ if (e.code === "Space") {
7280
+ e.cursor = "default";
7281
+ this.spaceKey = false;
7282
+ this.grabbing = false;
7283
+ }
7284
+ } else if (key === "pointerdown") {
7285
+ const e = event;
7286
+ if (!this.grabbing && this.spaceKey) {
7287
+ this.grabbing = true;
7288
+ e.cursor = "grabbing";
7289
+ this._screenOffset = { x: e.screenX, y: e.screenY };
7290
+ }
7291
+ } else if (key === "pointermove") {
7292
+ const e = event;
7293
+ if (this.grabbing) {
7294
+ this.position.add(
7295
+ -(this._screenOffset.x - e.screenX),
7296
+ -(this._screenOffset.y - e.screenY)
7297
+ );
7298
+ this._screenOffset = { x: e.screenX, y: e.screenY };
7299
+ }
7300
+ } else if (key === "pointerup") {
7301
+ const e = event;
7302
+ if (this.grabbing) {
7303
+ this.grabbing = false;
7304
+ e.cursor = "grab";
7305
+ }
7306
+ } else if (key === "wheel") {
7307
+ this._onWheel(event);
7308
+ }
7309
+ }
7310
+ _onWheel(e) {
7311
+ if (e.ctrlKey) {
7312
+ const isTouchPad = e.wheelDeltaY ? Math.abs(Math.abs(e.wheelDeltaY) - Math.abs(3 * e.deltaY)) < 3 : e.deltaMode === 0;
7313
+ if (!isTouchPad) {
7220
7314
  e.preventDefault();
7221
- this.position.add(-e.deltaX, -e.deltaY);
7315
+ const oldZoom = this.zoom.x;
7316
+ this.addZoom(e.deltaY * -0.015);
7317
+ const ratio = 1 - this.zoom.x / oldZoom;
7318
+ this.position.add(
7319
+ (e.screenX - this.position.x) * ratio,
7320
+ (e.screenY - this.position.y) * ratio
7321
+ );
7222
7322
  }
7323
+ } else {
7324
+ e.preventDefault();
7325
+ this.position.add(-e.deltaX, -e.deltaY);
7223
7326
  }
7224
7327
  }
7225
7328
  updateTransform() {
@@ -7234,6 +7337,12 @@ let Camera2D = class extends Node2D {
7234
7337
  this.emit("updateCanvasTransform");
7235
7338
  }
7236
7339
  };
7340
+ __decorateClass$I([
7341
+ property({ protected: true, fallback: false })
7342
+ ], Camera2D.prototype, "spaceKey", 2);
7343
+ __decorateClass$I([
7344
+ property({ protected: true, fallback: false })
7345
+ ], Camera2D.prototype, "grabbing", 2);
7237
7346
  Camera2D = __decorateClass$I([
7238
7347
  customNode("Camera2D", {
7239
7348
  processMode: "disabled",
@@ -9331,6 +9440,8 @@ class BaseElement2DOutline extends BaseElement2DFill {
9331
9440
  switch (key) {
9332
9441
  case "width":
9333
9442
  case "style":
9443
+ case "lineCap":
9444
+ case "lineJoin":
9334
9445
  case "enabled":
9335
9446
  this.parent.requestRedraw();
9336
9447
  break;
@@ -9347,7 +9458,8 @@ class BaseElement2DOutline extends BaseElement2DFill {
9347
9458
  ctx.lineWidth = this.width || 1;
9348
9459
  ctx.uvTransform = uvTransform;
9349
9460
  ctx.strokeStyle = this._texture ?? this.color;
9350
- ctx.strokeAlignment = 0;
9461
+ ctx.lineCap = this.lineCap;
9462
+ ctx.lineJoin = this.lineJoin;
9351
9463
  ctx.stroke({ disableWrapMode });
9352
9464
  }
9353
9465
  }
@@ -9360,6 +9472,12 @@ __decorateClass$p([
9360
9472
  __decorateClass$p([
9361
9473
  property({ fallback: "solid" })
9362
9474
  ], BaseElement2DOutline.prototype, "style");
9475
+ __decorateClass$p([
9476
+ property({ fallback: "butt" })
9477
+ ], BaseElement2DOutline.prototype, "lineCap");
9478
+ __decorateClass$p([
9479
+ property({ fallback: "miter" })
9480
+ ], BaseElement2DOutline.prototype, "lineJoin");
9363
9481
 
9364
9482
  var __defProp$h = Object.defineProperty;
9365
9483
  var __decorateClass$o = (decorators, target, key, kind) => {
@@ -13848,7 +13966,10 @@ class Engine extends SceneTree {
13848
13966
  "pointerover",
13849
13967
  "pointermove",
13850
13968
  "pointerup",
13851
- "wheel"
13969
+ "wheel",
13970
+ "keydown",
13971
+ "keypress",
13972
+ "keyup"
13852
13973
  ].forEach((key) => {
13853
13974
  this.input.on(key, (event) => {
13854
13975
  this.root.input(event, key);
@@ -13987,4 +14108,4 @@ async function render(options) {
13987
14108
  });
13988
14109
  }
13989
14110
 
13990
- export { AnimatedTexture, Animation, Assets, Audio, AudioPipeline, AudioProcessor, AudioSpectrum, AudioWaveform, BaseElement2D, BaseElement2DBackground, BaseElement2DFill, BaseElement2DForeground, BaseElement2DOutline, BaseElement2DShadow, BaseElement2DShape, BaseElement2DStyle, BaseElement2DText, Camera2D, CanvasContext, CanvasItem, CanvasItemEditor, CanvasTexture, Color, ColorAdjustEffect, ColorFilterEffect, ColorMatrix, ColorOverlayEffect, ColorRemoveEffect, ColorReplaceEffect, ColorTexture, Control, CoreObject, DEG_TO_RAD, DEVICE_PIXEL_RATIO, DropShadowEffect, Effect, EffectMaterial, Element2D, Element2DStyle, EmbossEffect, Engine, FlexElement2D, FlexElement2DStyle, FlexLayout, FontLoader, GIFLoader, GaussianBlurEffect, Geometry, GlitchEffect, GodrayEffect, GradientTexture, HTMLAudio, HTMLAudioContext, HTMLSound, IN_BROWSER, Image2D, ImageTexture, IndexBuffer, Input, InputEvent, JSONLoader, KawaseBlurEffect, KawaseTransition, LeftEraseTransition, Loader, Lottie2D, LottieLoader, MainLoop, MaskEffect, Material, Matrix, Matrix2, Matrix3, Matrix4, MouseInputEvent, Node, Node2D, OutlineEffect, PI, PI_2, PixelateEffect, PixelsTexture, PointerInputEvent, Projection2D, QuadGeometry, QuadUvGeometry, RAD_TO_DEG, Range, RawWeakMap, Rect2, RefCounted, Renderer, Resource, Ruler, SUPPORTS_AUDIO_CONTEXT, SUPPORTS_CLICK_EVENTS, SUPPORTS_CREATE_IMAGE_BITMAP, SUPPORTS_IMAGE_BITMAP, SUPPORTS_MOUSE_EVENTS, SUPPORTS_OFFLINE_AUDIO_CONTEXT, SUPPORTS_POINTER_EVENTS, SUPPORTS_RESIZE_OBSERVER, SUPPORTS_TOUCH_EVENTS, SUPPORTS_WEBGL2, SUPPORTS_WEBKIT_AUDIO_CONTEXT, SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT, SUPPORTS_WEB_AUDIO, SUPPORTS_WHEEL_EVENTS, Scaler, SceneTree, ScrollBar, TextLoader, Texture2D, TextureLoader, TextureRect2D, Ticker, TiltShiftTransition, Timeline, TimelineNode, Transform2D, TransformRect2D, Transition, TwistTransition, UvGeometry, UvMaterial, Vector, Vector2, Vector3, Vector4, VertexAttribute, VertexBuffer, Video2D, VideoLoader, VideoTexture, Viewport, ViewportTexture, WebAudio, WebAudioContext, WebGLBatch2DModule, WebGLBlendMode, WebGLBufferModule, WebGLFramebufferModule, WebGLMaskModule, WebGLModule, WebGLProgramModule, WebGLRenderer, WebGLScissorModule, WebGLState, WebGLStateModule, WebGLStencilModule, WebGLTextureModule, WebGLVertexArrayModule, WebGLViewportModule, WebSound, WheelInputEvent, Window, XScrollBar, YScrollBar, ZoomBlurEffect, assets, clamp, clampFrag, createHTMLCanvas, createNode, crossOrigin, cubicBezier, curves, customNode, customNodes, defaultOptions, determineCrossOrigin, ease, easeIn, easeInOut, easeOut, frag$1 as frag, getDefaultCssPropertyValue, isCanvasElement, isElementNode, isImageElement, isPow2, isVideoElement, isWebgl2, lerp, linear, log2, mapWebGLBlendModes, nextPow2, nextTick, parseCSSFilter, parseCSSTransform, parseCSSTransformOrigin, parseCssFunctions, parseCssProperty, render, timingFunctions, uid };
14111
+ export { AnimatedTexture, Animation, Assets, Audio, AudioPipeline, AudioProcessor, AudioSpectrum, AudioWaveform, BaseElement2D, BaseElement2DBackground, BaseElement2DFill, BaseElement2DForeground, BaseElement2DOutline, BaseElement2DShadow, BaseElement2DShape, BaseElement2DStyle, BaseElement2DText, Camera2D, CanvasContext, CanvasItem, CanvasItemEditor, CanvasTexture, Color, ColorAdjustEffect, ColorFilterEffect, ColorMatrix, ColorOverlayEffect, ColorRemoveEffect, ColorReplaceEffect, ColorTexture, Control, CoreObject, DEG_TO_RAD, DEVICE_PIXEL_RATIO, DropShadowEffect, Effect, EffectMaterial, Element2D, Element2DStyle, EmbossEffect, Engine, FlexElement2D, FlexElement2DStyle, FlexLayout, FontLoader, GIFLoader, GaussianBlurEffect, Geometry, GlitchEffect, GodrayEffect, GradientTexture, HTMLAudio, HTMLAudioContext, HTMLSound, IN_BROWSER, Image2D, ImageTexture, IndexBuffer, Input, InputEvent, JSONLoader, KawaseBlurEffect, KawaseTransition, KeyboardInputEvent, LeftEraseTransition, Loader, Lottie2D, LottieLoader, MainLoop, MaskEffect, Material, Matrix, Matrix2, Matrix3, Matrix4, MouseInputEvent, Node, Node2D, OutlineEffect, PI, PI_2, PixelateEffect, PixelsTexture, PointerInputEvent, Projection2D, QuadGeometry, QuadUvGeometry, RAD_TO_DEG, Range, RawWeakMap, Rect2, RefCounted, Renderer, Resource, Ruler, SUPPORTS_AUDIO_CONTEXT, SUPPORTS_CLICK_EVENTS, SUPPORTS_CREATE_IMAGE_BITMAP, SUPPORTS_IMAGE_BITMAP, SUPPORTS_MOUSE_EVENTS, SUPPORTS_OFFLINE_AUDIO_CONTEXT, SUPPORTS_POINTER_EVENTS, SUPPORTS_RESIZE_OBSERVER, SUPPORTS_TOUCH_EVENTS, SUPPORTS_WEBGL2, SUPPORTS_WEBKIT_AUDIO_CONTEXT, SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT, SUPPORTS_WEB_AUDIO, SUPPORTS_WHEEL_EVENTS, Scaler, SceneTree, ScrollBar, TextLoader, Texture2D, TextureLoader, TextureRect2D, Ticker, TiltShiftTransition, Timeline, TimelineNode, Transform2D, TransformRect2D, Transition, TwistTransition, UvGeometry, UvMaterial, Vector, Vector2, Vector3, Vector4, VertexAttribute, VertexBuffer, Video2D, VideoLoader, VideoTexture, Viewport, ViewportTexture, WebAudio, WebAudioContext, WebGLBatch2DModule, WebGLBlendMode, WebGLBufferModule, WebGLFramebufferModule, WebGLMaskModule, WebGLModule, WebGLProgramModule, WebGLRenderer, WebGLScissorModule, WebGLState, WebGLStateModule, WebGLStencilModule, WebGLTextureModule, WebGLVertexArrayModule, WebGLViewportModule, WebSound, WheelInputEvent, Window, XScrollBar, YScrollBar, ZoomBlurEffect, assets, clamp, clampFrag, createHTMLCanvas, createNode, crossOrigin, cubicBezier, curves, customNode, customNodes, defaultOptions, determineCrossOrigin, ease, easeIn, easeInOut, easeOut, frag$1 as frag, getDefaultCssPropertyValue, isCanvasElement, isElementNode, isImageElement, isPow2, isVideoElement, isWebgl2, lerp, linear, log2, mapWebGLBlendModes, nextPow2, nextTick, parseCSSFilter, parseCSSTransform, parseCSSTransformOrigin, parseCssFunctions, parseCssProperty, render, timingFunctions, uid };