pixi-watchface-engine 0.1.6 → 0.1.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"TextElement.d.ts","sourceRoot":"","sources":["../../src/elements/TextElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAwB;gBAE5B,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB;IAkBxE,IAAI,OAAO,IAAI,OAAO,GAAG,IAAI,CAA0B;IACvD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,EAKhC;IAID,IAAI,IAAI,IAAI,MAAM,CAAuB;IACzC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAMrB;IAED,IAAI,UAAU,IAAI,MAAM,CAA6B;IACrD,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAM3B;IAED,IAAI,QAAQ,IAAI,MAAM,CAA2B;IACjD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAMzB;IAED,IAAI,UAAU,IAAI,mBAAmB,CAA6B;IAClE,IAAI,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAMxC;IAED,IAAI,KAAK,IAAI,cAAc,CAAwB;IACnD,IAAI,KAAK,CAAC,KAAK,EAAE,cAAc,EAM9B;IAED,IAAI,KAAK,IAAI,MAAM,CAAwB;IAC3C,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAMtB;IAED,IAAa,KAAK,IAAI,MAAM,CAG3B;IACD,IAAa,KAAK,CAAC,MAAM,EAAE,MAAM,EAEhC;IAED,IAAa,MAAM,IAAI,MAAM,CAG5B;IACD,IAAa,MAAM,CAAC,MAAM,EAAE,MAAM,EAEjC;cAEkB,MAAM,IAAI,IAAI;IAQjC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,WAAW;IAsDnB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,eAAe;IAKd,MAAM,IAAI,iBAAiB;IAa3B,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAiBjD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW;CAgBtD"}
1
+ {"version":3,"file":"TextElement.d.ts","sourceRoot":"","sources":["../../src/elements/TextElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAwB;gBAE5B,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB;IAkBxE,IAAI,OAAO,IAAI,OAAO,GAAG,IAAI,CAA0B;IACvD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,EAKhC;IAID,IAAI,IAAI,IAAI,MAAM,CAAuB;IACzC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAMrB;IAED,IAAI,UAAU,IAAI,MAAM,CAA6B;IACrD,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAM3B;IAED,IAAI,QAAQ,IAAI,MAAM,CAA2B;IACjD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAMzB;IAED,IAAI,UAAU,IAAI,mBAAmB,CAA6B;IAClE,IAAI,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAMxC;IAED,IAAI,KAAK,IAAI,cAAc,CAAwB;IACnD,IAAI,KAAK,CAAC,KAAK,EAAE,cAAc,EAM9B;IAED,IAAI,KAAK,IAAI,MAAM,CAAwB;IAC3C,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAMtB;IAED,IAAa,KAAK,IAAI,MAAM,CAG3B;IACD,IAAa,KAAK,CAAC,MAAM,EAAE,MAAM,EAEhC;IAED,IAAa,MAAM,IAAI,MAAM,CAG5B;IACD,IAAa,MAAM,CAAC,MAAM,EAAE,MAAM,EAEjC;cAEkB,MAAM,IAAI,IAAI;IAQjC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,WAAW;IAsDnB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,eAAe;IAKd,MAAM,IAAI,iBAAiB;IAa3B,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAiBjD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW;CAgBtD"}
package/dist/index.js CHANGED
@@ -31274,6 +31274,7 @@ class TextElement extends BaseElement {
31274
31274
  makeText(content) {
31275
31275
  return new Text({
31276
31276
  text: content,
31277
+ anchor: 0.5,
31277
31278
  style: new TextStyle({
31278
31279
  fontFamily: this._fontFamily,
31279
31280
  fontSize: this._fontSize,
@@ -31939,9 +31940,16 @@ class SelectionBox {
31939
31940
  this.rotateHandle = new TransformHandle("rotate");
31940
31941
  this.container.addChild(this.rotateHandle.graphics);
31941
31942
  }
31942
- show(bounds, config, showRotation) {
31943
+ show(bounds, config, showRotation, transform) {
31943
31944
  this.container.visible = true;
31944
31945
  const { x: x2, y: y2, width: w2, height: h2 } = bounds;
31946
+ if (transform) {
31947
+ this.container.position.set(transform.x, transform.y);
31948
+ this.container.rotation = transform.rotation;
31949
+ } else {
31950
+ this.container.position.set(0, 0);
31951
+ this.container.rotation = 0;
31952
+ }
31945
31953
  this.outline.clear();
31946
31954
  this.outline.rect(x2, y2, w2, h2).stroke({ color: config.color, width: 1 });
31947
31955
  const positions = [
@@ -32413,8 +32421,14 @@ class SelectionManager {
32413
32421
  this.selectionBox.hide();
32414
32422
  return;
32415
32423
  }
32424
+ if (this.selected.size === 1) {
32425
+ const el = this.getSelected()[0];
32426
+ const b2 = el.getDisplayObject().getLocalBounds();
32427
+ this.selectionBox.show({ x: b2.x, y: b2.y, width: b2.width, height: b2.height }, this.handleConfig, true, { x: el.x, y: el.y, rotation: el.rotation });
32428
+ return;
32429
+ }
32416
32430
  const bounds = this.computeCombinedBounds(this.getSelected());
32417
- this.selectionBox.show(bounds, this.handleConfig, this.selected.size === 1);
32431
+ this.selectionBox.show(bounds, this.handleConfig, false);
32418
32432
  }
32419
32433
  computeCombinedBounds(elements) {
32420
32434
  let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
@@ -13,7 +13,11 @@ export declare class SelectionBox {
13
13
  y: number;
14
14
  width: number;
15
15
  height: number;
16
- }, config: HandleConfig, showRotation: boolean): void;
16
+ }, config: HandleConfig, showRotation: boolean, transform?: {
17
+ x: number;
18
+ y: number;
19
+ rotation: number;
20
+ }): void;
17
21
  hide(): void;
18
22
  getHandle(index: number): TransformHandle | undefined;
19
23
  getRotateHandle(): TransformHandle;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionBox.d.ts","sourceRoot":"","sources":["../../src/selection/SelectionBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,qBAAa,YAAY;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,YAAY,CAAW;IAC/B,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,YAAY,CAAkB;;IAqBtC,IAAI,CACF,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC/D,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,OAAO,GACpB,IAAI;IAwCP,IAAI,IAAI,IAAI;IAIZ,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIrD,eAAe,IAAI,eAAe;IAIlC,aAAa,IAAI,eAAe,EAAE;IAIlC,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"SelectionBox.d.ts","sourceRoot":"","sources":["../../src/selection/SelectionBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,qBAAa,YAAY;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,YAAY,CAAW;IAC/B,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,YAAY,CAAkB;;IAqBtC,IAAI,CACF,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC/D,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,OAAO,EACrB,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACrD,IAAI;IAkDP,IAAI,IAAI,IAAI;IAIZ,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIrD,eAAe,IAAI,eAAe;IAIlC,aAAa,IAAI,eAAe,EAAE;IAIlC,OAAO,IAAI,IAAI;CAGhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionManager.d.ts","sourceRoot":"","sources":["../../src/selection/SelectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,oBAAoB,CAAqC;IAEjE,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,SAAS,CAAgB;IAEjC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAmE;IAGvF,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,gBAAgB,CAAqD;IAC7E,OAAO,CAAC,gBAAgB,CAAqD;IAC7E,OAAO,CAAC,cAAc,CAAqD;gBAE/D,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc;IAQ9D,uBAAuB,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI;IAIvD,IAAI,CACF,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,WAAW,EAChB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,WAAW,CAAC,EAAE,SAAS,GACtB,IAAI;IAsCP,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAoBlF,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAOnF,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAUjF,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKlC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAItC,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM1C,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMpC,WAAW,IAAI,IAAI;IAInB,cAAc,IAAI,IAAI;IAOtB,SAAS,IAAI,IAAI;IAQjB,WAAW,IAAI,WAAW,EAAE;IAI5B,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAMzC,YAAY,IAAI,IAAI;IAIpB,cAAc,IAAI,IAAI;IAkBtB,cAAc,IAAI,IAAI;IAOtB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAU3C,OAAO,CAAC,sBAAsB;IAU9B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,gBAAgB;IAgBxB,8EAA8E;IAC9E,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,aAAa;IAYrB,OAAO,IAAI,IAAI;CAKhB"}
1
+ {"version":3,"file":"SelectionManager.d.ts","sourceRoot":"","sources":["../../src/selection/SelectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,oBAAoB,CAAqC;IAEjE,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,SAAS,CAAgB;IAEjC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAmE;IAGvF,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,gBAAgB,CAAqD;IAC7E,OAAO,CAAC,gBAAgB,CAAqD;IAC7E,OAAO,CAAC,cAAc,CAAqD;gBAE/D,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc;IAQ9D,uBAAuB,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI;IAIvD,IAAI,CACF,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,WAAW,EAChB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,WAAW,CAAC,EAAE,SAAS,GACtB,IAAI;IAsCP,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAoBlF,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAOnF,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAUjF,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKlC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAItC,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM1C,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMpC,WAAW,IAAI,IAAI;IAInB,cAAc,IAAI,IAAI;IAOtB,SAAS,IAAI,IAAI;IAQjB,WAAW,IAAI,WAAW,EAAE;IAI5B,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAMzC,YAAY,IAAI,IAAI;IAIpB,cAAc,IAAI,IAAI;IAkBtB,cAAc,IAAI,IAAI;IAOtB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAU3C,OAAO,CAAC,sBAAsB;IAyB9B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,gBAAgB;IAgBxB,8EAA8E;IAC9E,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,aAAa;IAYrB,OAAO,IAAI,IAAI;CAKhB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixi-watchface-engine",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "A PixiJS v8 watchface editor engine with visual editor, plugin system, and intuitive API",
5
5
  "author": "Eric Schmar (ericschmar@gmail.com)",
6
6
  "type": "module",