@joydle/juice-babylon 0.1.0 → 0.1.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.
@@ -9,5 +9,5 @@ import type { BabylonMesh, BabylonColor } from './types.js';
9
9
  * @param color Flash colour (Babylon Color3/Color4 or any `{r, g, b}`).
10
10
  * @param duration Flash duration in **seconds**.
11
11
  */
12
- export declare function MaterialFlash(mesh: BabylonMesh, color: BabylonColor, duration: number): void;
12
+ export declare function MaterialFlash(mesh: BabylonMesh, color: BabylonColor, duration: number): () => void;
13
13
  //# sourceMappingURL=MaterialFlash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialFlash.d.ts","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AAyBtE;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACf,IAAI,CA0BN"}
1
+ {"version":3,"file":"MaterialFlash.d.ts","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO5D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,IAAI,CA6BZ"}
@@ -1,20 +1,4 @@
1
- // ---------------------------------------------------------------------------
2
- // Resolve gsap at runtime (peer dependency).
3
- // ---------------------------------------------------------------------------
4
- function getGsap() {
5
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
- const g = globalThis;
7
- if (g.gsap)
8
- return g.gsap;
9
- try {
10
- // eslint-disable-next-line @typescript-eslint/no-require-imports
11
- return require('gsap');
12
- }
13
- catch {
14
- throw new Error('[juice-babylon] Could not resolve "gsap". ' +
15
- 'Make sure it is installed as a peer dependency or available as window.gsap.');
16
- }
17
- }
1
+ import { getGsap } from './deps.js';
18
2
  // ---------------------------------------------------------------------------
19
3
  // MaterialFlash
20
4
  // ---------------------------------------------------------------------------
@@ -31,10 +15,11 @@ function getGsap() {
31
15
  export function MaterialFlash(mesh, color, duration) {
32
16
  // Guard: no material or no emissiveColor property.
33
17
  if (!mesh.material)
34
- return;
35
- if (!mesh.material.emissiveColor)
36
- return;
18
+ return () => { };
19
+ if (!('emissiveColor' in mesh.material))
20
+ return () => { };
37
21
  const gsap = getGsap();
22
+ // StandardMaterial and PBRMaterial have emissiveColor; base Material does not.
38
23
  const emissive = mesh.material.emissiveColor;
39
24
  // Save the original emissive values.
40
25
  const origR = emissive.r;
@@ -45,12 +30,13 @@ export function MaterialFlash(mesh, color, duration) {
45
30
  emissive.g = color.g;
46
31
  emissive.b = color.b;
47
32
  // Animate back to the original emissive colour over `duration` seconds.
48
- gsap.to(emissive, {
33
+ const tween = gsap.to(emissive, {
49
34
  r: origR,
50
35
  g: origG,
51
36
  b: origB,
52
37
  duration,
53
38
  overwrite: true,
54
39
  });
40
+ return () => tween.kill();
55
41
  }
56
42
  //# sourceMappingURL=MaterialFlash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialFlash.js","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,SAAS,OAAO;IACd,8DAA8D;IAC9D,MAAM,CAAC,GAAG,UAAiB,CAAC;IAC5B,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC,IAAgB,CAAC;IACtC,IAAI,CAAC;QACH,iEAAiE;QACjE,OAAO,OAAO,CAAC,MAAM,CAAa,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,4CAA4C;YAC1C,6EAA6E,CAChF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAiB,EACjB,KAAmB,EACnB,QAAgB;IAEhB,mDAAmD;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO;IAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa;QAAE,OAAO;IAEzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IAE7C,qCAAqC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEzB,wCAAwC;IACxC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAErB,wEAAwE;IACxE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,QAAQ;QACR,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"MaterialFlash.js","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAiB,EACjB,KAAmB,EACnB,QAAgB;IAEhB,mDAAmD;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,+EAA+E;IAC/E,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAuD,CAAC,aAAa,CAAC;IAE7F,qCAAqC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEzB,wCAAwC;IACxC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAErB,wEAAwE;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC9B,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,QAAQ;QACR,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MeshHelpers.d.ts","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,YAAY,CAAC;AAyBvE,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,mEAAmE;IACnE,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,+CAA+C;IAC/C,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,iEAAiE;IACjE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IACzC,yEAAyE;IACzE,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;CAC5C;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA4HtD"}
1
+ {"version":3,"file":"MeshHelpers.d.ts","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAO7D,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,mEAAmE;IACnE,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,+CAA+C;IAC/C,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,iEAAiE;IACjE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IACzC,yEAAyE;IACzE,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;CAC5C;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA4HtD"}
@@ -1,20 +1,4 @@
1
- // ---------------------------------------------------------------------------
2
- // Resolve gsap at runtime (peer dependency).
3
- // ---------------------------------------------------------------------------
4
- function getGsap() {
5
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
- const g = globalThis;
7
- if (g.gsap)
8
- return g.gsap;
9
- try {
10
- // eslint-disable-next-line @typescript-eslint/no-require-imports
11
- return require('gsap');
12
- }
13
- catch {
14
- throw new Error('[juice-babylon] Could not resolve "gsap". ' +
15
- 'Make sure it is installed as a peer dependency or available as window.gsap.');
16
- }
17
- }
1
+ import { getGsap } from './deps.js';
18
2
  // ---------------------------------------------------------------------------
19
3
  // addMeshHelpers
20
4
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"MeshHelpers.js","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MeshHelpers.js","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ParticleBurst.d.ts","sourceRoot":"","sources":["../src/ParticleBurst.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEb,MAAM,YAAY,CAAC;AAuEpB,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,KAAK,EAAE,YAAY,CAAC;IACpB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAmC;gBAE5C,KAAK,EAAE,YAAY,EAAE,IAAI,GAAE,oBAAyB;IAKhE;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7C,IAAI,EAAE,YAAY,GACjB,IAAI;IAoFP,uDAAuD;IACvD,OAAO,IAAI,IAAI;CAWhB"}
1
+ {"version":3,"file":"ParticleBurst.d.ts","sourceRoot":"","sources":["../src/ParticleBurst.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEb,MAAM,YAAY,CAAC;AAcpB,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,KAAK,EAAE,YAAY,CAAC;IACpB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAmC;gBAE5C,KAAK,EAAE,YAAY,EAAE,IAAI,GAAE,oBAAyB;IAKhE;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7C,IAAI,EAAE,YAAY,GACjB,IAAI;IAoFP,uDAAuD;IACvD,OAAO,IAAI,IAAI;CAWhB"}
@@ -1,24 +1,4 @@
1
- /** Cached reference to the Babylon namespace. */
2
- let BABYLON = null;
3
- function ensureBabylon() {
4
- if (BABYLON)
5
- return BABYLON;
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- const g = globalThis;
8
- if (g.BABYLON) {
9
- BABYLON = g.BABYLON;
10
- return BABYLON;
11
- }
12
- try {
13
- // eslint-disable-next-line @typescript-eslint/no-require-imports
14
- BABYLON = require('@babylonjs/core');
15
- return BABYLON;
16
- }
17
- catch {
18
- throw new Error('[juice-babylon] Could not resolve "@babylonjs/core". ' +
19
- 'Make sure it is installed as a peer dependency or available as window.BABYLON.');
20
- }
21
- }
1
+ import { getBabylon } from './deps.js';
22
2
  // ---------------------------------------------------------------------------
23
3
  // 1x1 white pixel as a minimal default particle texture (base64 PNG).
24
4
  // ---------------------------------------------------------------------------
@@ -47,7 +27,7 @@ export class ParticleBurst {
47
27
  * Emit a burst of particles at a world-space position.
48
28
  */
49
29
  burst(position, opts) {
50
- const B = ensureBabylon();
30
+ const B = getBabylon();
51
31
  const speed = opts.speed ?? 3;
52
32
  const lifetime = opts.lifetime ?? 0.6;
53
33
  const count = opts.count;
@@ -59,7 +39,7 @@ export class ParticleBurst {
59
39
  ps.maxEmitBox = new B.Vector3(0, 0, 0);
60
40
  // -- Colours ----------------------------------------------------------
61
41
  const c = opts.color;
62
- const alpha = c.a ?? 1;
42
+ const alpha = 'a' in c ? c.a : 1;
63
43
  ps.color1 = new B.Color4(c.r, c.g, c.b, alpha);
64
44
  ps.color2 = new B.Color4(c.r * 0.8, c.g * 0.8, c.b * 0.8, alpha);
65
45
  ps.colorDead = new B.Color4(c.r * 0.2, c.g * 0.2, c.b * 0.2, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ParticleBurst.js","sourceRoot":"","sources":["../src/ParticleBurst.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParticleBurst.js","sourceRoot":"","sources":["../src/ParticleBurst.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrailMesh.d.ts","sourceRoot":"","sources":["../src/TrailMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4E1E,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAqC;gBAGnD,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,WAAW,EACjB,IAAI,GAAE,YAAiB;IAqDzB,gDAAgD;IAChD,OAAO,IAAI,IAAI;CAkBhB"}
1
+ {"version":3,"file":"TrailMesh.d.ts","sourceRoot":"","sources":["../src/TrailMesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsD1E,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAqC;gBAGnD,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,WAAW,EACjB,IAAI,GAAE,YAAiB;IAqDzB,gDAAgD;IAChD,OAAO,IAAI,IAAI;CAkBhB"}
package/dist/TrailMesh.js CHANGED
@@ -1,25 +1,4 @@
1
- /** Cached reference. */
2
- let BABYLON = null;
3
- function resolveBabylon() {
4
- if (BABYLON)
5
- return BABYLON;
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- const g = globalThis;
8
- if (g.BABYLON) {
9
- BABYLON = g.BABYLON;
10
- return BABYLON;
11
- }
12
- try {
13
- // eslint-disable-next-line @typescript-eslint/no-require-imports
14
- BABYLON = require('@babylonjs/core');
15
- return BABYLON;
16
- }
17
- catch {
18
- // Return empty namespace -- TrailMesh will be unavailable and we gracefully no-op.
19
- BABYLON = {};
20
- return BABYLON;
21
- }
22
- }
1
+ import { getBabylon } from './deps.js';
23
2
  /**
24
3
  * Wrapper around Babylon's `TrailMesh` that follows a source mesh.
25
4
  *
@@ -37,7 +16,7 @@ export class TrailEffect {
37
16
  trail = null;
38
17
  material = null;
39
18
  constructor(scene, mesh, opts = {}) {
40
- const B = resolveBabylon();
19
+ const B = getBabylon();
41
20
  if (!B.TrailMesh) {
42
21
  // TrailMesh not available in this Babylon build -- graceful no-op.
43
22
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"TrailMesh.js","sourceRoot":"","sources":["../src/TrailMesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrailMesh.js","sourceRoot":"","sources":["../src/TrailMesh.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA8DvC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,WAAW;IACd,KAAK,GAA6B,IAAI,CAAC;IACvC,QAAQ,GAAgC,IAAI,CAAC;IAErD,YACE,KAAmB,EACnB,IAAiB,EACjB,OAAqB,EAAE;QAEvB,MAAM,CAAC,GAAG,UAAU,EAAsC,CAAC;QAE3D,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACjB,mEAAmE;YACnE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;QAEtC,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,SAAS,CAC1B,cAAc,GAAG,IAAI,CAAC,IAAI,EAC1B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,CACL,CAAC;YAEF,6EAA6E;YAC7E,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,gBAAgB,CAChC,kBAAkB,GAAG,IAAI,CAAC,IAAI,EAC9B,KAAK,CACN,CAAC;gBACF,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;oBACb,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;gBAChB,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;gBAE5B,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC9D,8DAA8D;oBAC7D,IAAI,CAAC,KAAa,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,8DAA8D;oBAC7D,IAAI,CAAC,KAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACrC,CAAC;gBAED,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;YAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
package/dist/deps.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ type GsapCore = typeof import('gsap').default;
2
+ type BabylonModule = typeof import('@babylonjs/core');
3
+ /**
4
+ * Provide peer dependencies for juice-babylon.
5
+ * Call once at app startup before using any juice-babylon APIs.
6
+ */
7
+ export declare function configure(deps: {
8
+ gsap?: GsapCore;
9
+ BABYLON?: BabylonModule;
10
+ }): void;
11
+ export declare function getGsap(): GsapCore;
12
+ export declare function getBabylon(): BabylonModule;
13
+ export {};
14
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAIA,KAAK,QAAQ,GAAG,cAAc,MAAM,EAAE,OAAO,CAAC;AAC9C,KAAK,aAAa,GAAG,cAAc,iBAAiB,CAAC,CAAC;AAKtD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAGlF;AAED,wBAAgB,OAAO,IAAI,QAAQ,CAOlC;AAED,wBAAgB,UAAU,IAAI,aAAa,CAO1C"}
package/dist/deps.js ADDED
@@ -0,0 +1,28 @@
1
+ // ---------------------------------------------------------------------------
2
+ // @joydle/juice-babylon — Centralized dependency injection
3
+ // ---------------------------------------------------------------------------
4
+ let _gsap = null;
5
+ let _BABYLON = null;
6
+ /**
7
+ * Provide peer dependencies for juice-babylon.
8
+ * Call once at app startup before using any juice-babylon APIs.
9
+ */
10
+ export function configure(deps) {
11
+ if (deps.gsap)
12
+ _gsap = deps.gsap;
13
+ if (deps.BABYLON)
14
+ _BABYLON = deps.BABYLON;
15
+ }
16
+ export function getGsap() {
17
+ if (!_gsap) {
18
+ throw new Error('[juice-babylon] gsap not configured. Call configure({ gsap }) first.');
19
+ }
20
+ return _gsap;
21
+ }
22
+ export function getBabylon() {
23
+ if (!_BABYLON) {
24
+ throw new Error('[juice-babylon] BABYLON not configured. Call configure({ BABYLON }) first.');
25
+ }
26
+ return _BABYLON;
27
+ }
28
+ //# sourceMappingURL=deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAK9E,IAAI,KAAK,GAAoB,IAAI,CAAC;AAClC,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAkD;IAC1E,IAAI,IAAI,CAAC,IAAI;QAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACjC,IAAI,IAAI,CAAC,OAAO;QAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { configure } from './deps.js';
1
2
  export type { BabylonVec3, BabylonColor, BabylonMaterial, BabylonMesh, BabylonCamera, BabylonScene, BabylonParticleSystemLike, GsapLike, GsapTweenLike, JuiceToolkit, } from './types.js';
2
3
  export { CameraShake } from './CameraShake.js';
3
4
  export { ParticleBurst } from './ParticleBurst.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,QAAQ,EACR,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,QAAQ,EACR,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  // ---------------------------------------------------------------------------
2
2
  // @joydle/juice-babylon -- Public API barrel
3
3
  // ---------------------------------------------------------------------------
4
+ // Dependency injection
5
+ export { configure } from './deps.js';
4
6
  // Camera shake
5
7
  export { CameraShake } from './CameraShake.js';
6
8
  // Particle burst
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAgB9E,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASlD,kBAAkB;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAE9E,uBAAuB;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAgBtC,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASlD,kBAAkB;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC"}
package/dist/toolkit.js CHANGED
@@ -38,10 +38,11 @@ export function createBabylonJuiceToolkit(scene, camera, opts = {}) {
38
38
  // -- shake ---------------------------------------------------------------
39
39
  shake(shakeOpts) {
40
40
  shake.trigger(shakeOpts.intensity, shakeOpts.duration);
41
+ return () => shake.stop();
41
42
  },
42
43
  // -- flash ---------------------------------------------------------------
43
44
  flash(target, flashOpts) {
44
- MaterialFlash(target, flashOpts.color, flashOpts.duration);
45
+ return MaterialFlash(target, flashOpts.color, flashOpts.duration);
45
46
  },
46
47
  // -- particles -----------------------------------------------------------
47
48
  particles(burstOpts) {
@@ -51,6 +52,7 @@ export function createBabylonJuiceToolkit(scene, camera, opts = {}) {
51
52
  speed: burstOpts.speed,
52
53
  lifetime: burstOpts.lifetime,
53
54
  });
55
+ return () => { };
54
56
  },
55
57
  // -- trail ---------------------------------------------------------------
56
58
  trail(target, trailOpts) {
@@ -59,13 +61,11 @@ export function createBabylonJuiceToolkit(scene, camera, opts = {}) {
59
61
  color: trailOpts.color,
60
62
  });
61
63
  activeTrails.push(trail);
62
- return {
63
- dispose() {
64
- trail.dispose();
65
- const idx = activeTrails.indexOf(trail);
66
- if (idx !== -1)
67
- activeTrails.splice(idx, 1);
68
- },
64
+ return () => {
65
+ trail.dispose();
66
+ const idx = activeTrails.indexOf(trail);
67
+ if (idx !== -1)
68
+ activeTrails.splice(idx, 1);
69
69
  };
70
70
  },
71
71
  // -- helpers -------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAmB,EACnB,MAAqB,EACrB,OAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7E,kCAAkC;IAClC,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAiB;QAC5B,2EAA2E;QAC3E,KAAK,CAAC,SAAkD;YACtD,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,2EAA2E;QAC3E,KAAK,CACH,MAAmB,EACnB,SAAoD;YAEpD,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAED,2EAA2E;QAC3E,SAAS,CAAC,SAMT;YACC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAClC,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,KAAK,CACH,MAAmB,EACnB,SAAoD;YAEpD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;gBAC3C,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEzB,OAAO;gBACL,OAAO;oBACL,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,GAAG,KAAK,CAAC,CAAC;wBAAE,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC;aACF,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,UAAU,CAAC,IAAiB;YAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,2EAA2E;QAC3E,OAAO;YACL,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,CAAC;YACD,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAmB,EACnB,MAAqB,EACrB,OAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7E,kCAAkC;IAClC,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAiB;QAC5B,2EAA2E;QAC3E,KAAK,CAAC,SAAkD;YACtD,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAED,2EAA2E;QAC3E,KAAK,CACH,MAAmB,EACnB,SAAoD;YAEpD,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC;QAED,2EAA2E;QAC3E,SAAS,CAAC,SAMT;YACC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAClC,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,2EAA2E;QAC3E,KAAK,CACH,MAAmB,EACnB,SAAoD;YAEpD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;gBAC3C,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEzB,OAAO,GAAG,EAAE;gBACV,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,UAAU,CAAC,IAAiB;YAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,2EAA2E;QAC3E,OAAO;YACL,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,CAAC;YACD,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,110 +1,43 @@
1
- /** Subset of BABYLON.Vector3 we rely on. */
2
- export interface BabylonVec3 {
3
- x: number;
4
- y: number;
5
- z: number;
6
- copyFrom(source: BabylonVec3): void;
7
- }
8
- /** Subset of BABYLON.Color3 / Color4 we rely on. */
9
- export interface BabylonColor {
10
- r: number;
11
- g: number;
12
- b: number;
13
- a?: number;
14
- clone(): BabylonColor;
15
- copyFrom(source: BabylonColor): void;
16
- }
17
- /** Subset of BABYLON.Material we rely on (StandardMaterial / PBRMaterial). */
18
- export interface BabylonMaterial {
19
- emissiveColor?: BabylonColor;
20
- dispose?(): void;
21
- }
22
- /** Subset of BABYLON.AbstractMesh we rely on. */
23
- export interface BabylonMesh {
24
- name: string;
25
- position: BabylonVec3;
26
- scaling: BabylonVec3;
27
- rotation: BabylonVec3;
28
- visibility: number;
29
- material: BabylonMaterial | null;
30
- isDisposed(): boolean;
31
- }
32
- /** Subset of BABYLON.Camera we rely on (any camera type). */
33
- export interface BabylonCamera {
34
- position: BabylonVec3;
35
- }
36
- /** Subset of BABYLON.Scene we rely on. */
37
- export interface BabylonScene {
38
- [key: string]: any;
39
- }
40
- /** Subset of BABYLON.ParticleSystem we construct at runtime. */
41
- export interface BabylonParticleSystemLike {
42
- emitter: BabylonVec3 | {
43
- x: number;
44
- y: number;
45
- z: number;
46
- };
47
- minEmitBox: BabylonVec3;
48
- maxEmitBox: BabylonVec3;
49
- color1: BabylonColor;
50
- color2: BabylonColor;
51
- colorDead: BabylonColor;
52
- minSize: number;
53
- maxSize: number;
54
- minLifeTime: number;
55
- maxLifeTime: number;
56
- emitRate: number;
57
- blendMode: number;
58
- minEmitPower: number;
59
- maxEmitPower: number;
60
- updateSpeed: number;
61
- direction1: BabylonVec3;
62
- direction2: BabylonVec3;
63
- targetStopDuration: number;
64
- disposeOnStop: boolean;
65
- start(): void;
66
- stop(): void;
67
- dispose(): void;
68
- }
69
- export interface GsapLike {
70
- to(target: unknown, vars: Record<string, unknown>): GsapTweenLike;
71
- killTweensOf(target: unknown): void;
72
- }
73
- export interface GsapTweenLike {
74
- kill(): void;
75
- }
1
+ import type { AbstractMesh, Color3 } from '@babylonjs/core';
2
+ export type { Vector3 as BabylonVec3 } from '@babylonjs/core';
3
+ export type { Color3 as BabylonColor } from '@babylonjs/core';
4
+ export type { Material as BabylonMaterial } from '@babylonjs/core';
5
+ export type { AbstractMesh as BabylonMesh } from '@babylonjs/core';
6
+ export type { Camera as BabylonCamera } from '@babylonjs/core';
7
+ export type { Scene as BabylonScene } from '@babylonjs/core';
8
+ export type { ParticleSystem as BabylonParticleSystemLike } from '@babylonjs/core';
9
+ export type GsapTweenLike = gsap.core.Tween;
10
+ export type GsapLike = typeof import('gsap').default;
76
11
  export interface JuiceToolkit {
77
- /** Trigger camera shake. */
12
+ /** Trigger camera shake. Returns a cancel function. */
78
13
  shake(opts: {
79
14
  intensity: number;
80
15
  duration: number;
81
- }): void;
82
- /** Flash an emissive colour on a mesh's material. */
83
- flash(target: BabylonMesh, opts: {
84
- color: BabylonColor;
16
+ }): () => void;
17
+ /** Flash an emissive colour on a mesh's material. Returns a cancel function. */
18
+ flash(target: AbstractMesh, opts: {
19
+ color: Color3;
85
20
  duration: number;
86
- }): void;
87
- /** Emit a burst of particles at a world position. */
21
+ }): () => void;
22
+ /** Emit a burst of particles at a world position. Returns a cancel function. */
88
23
  particles(opts: {
89
24
  position: {
90
25
  x: number;
91
26
  y: number;
92
27
  z: number;
93
28
  };
94
- color: BabylonColor;
29
+ color: Color3;
95
30
  count: number;
96
31
  speed?: number;
97
32
  lifetime?: number;
98
- }): void;
99
- /** Attach a trail to a mesh. Returns a dispose function. */
100
- trail(target: BabylonMesh, opts: {
33
+ }): () => void;
34
+ /** Attach a trail to a mesh. Returns a cleanup function. */
35
+ trail(target: AbstractMesh, opts: {
101
36
  length?: number;
102
- color?: BabylonColor;
103
- }): {
104
- dispose(): void;
105
- };
37
+ color?: Color3;
38
+ }): () => void;
106
39
  /** Add squash/explodeOut/bob/spin helpers to a mesh. */
107
- addHelpers(mesh: BabylonMesh): void;
40
+ addHelpers(mesh: AbstractMesh): void;
108
41
  /** Dispose all internal resources. */
109
42
  dispose(): void;
110
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI5D,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAInF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,cAAc,MAAM,EAAE,OAAO,CAAC;AAIrD,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,KAAK,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,IAAI,CAAC;IAEjE,gFAAgF;IAChF,KAAK,CACH,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACxC,MAAM,IAAI,CAAC;IAEd,gFAAgF;IAChF,SAAS,CAAC,IAAI,EAAE;QACd,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM,IAAI,CAAC;IAEf,4DAA4D;IAC5D,KAAK,CACH,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,MAAM,IAAI,CAAC;IAEd,wDAAwD;IACxD,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAErC,sCAAsC;IACtC,OAAO,IAAI,IAAI,CAAC;CACjB"}
package/dist/types.js CHANGED
@@ -1,9 +1,5 @@
1
1
  // ---------------------------------------------------------------------------
2
- // @joydle/juice-babylon -- Local type definitions
3
- //
4
- // Minimal inline interfaces for Babylon.js and GSAP so this package compiles
5
- // without importing from the peer dependency type roots. Consumers supply
6
- // real Babylon.js / GSAP objects at runtime.
2
+ // @joydle/juice-babylon Type definitions
7
3
  // ---------------------------------------------------------------------------
8
4
  export {};
9
5
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,8CAA8C;AAC9C,8EAA8E"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joydle/juice-babylon",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -10,7 +10,9 @@
10
10
  "import": "./dist/index.js"
11
11
  }
12
12
  },
13
- "files": ["dist"],
13
+ "files": [
14
+ "dist"
15
+ ],
14
16
  "scripts": {
15
17
  "build": "tsc",
16
18
  "typecheck": "tsc --noEmit",
@@ -27,6 +29,8 @@
27
29
  "gsap": "^3.12"
28
30
  },
29
31
  "devDependencies": {
32
+ "@babylonjs/core": "^7.0",
33
+ "gsap": "^3.12",
30
34
  "typescript": "^5.4.0"
31
35
  }
32
36
  }