@flighthq/node 0.2.1-next.841.373388f → 0.3.0-edge.1516.1b4fb2b
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/boundsRectangle.d.ts +12 -1
- package/dist/boundsRectangle.d.ts.map +1 -1
- package/dist/boundsRectangle.js +51 -5
- package/dist/boundsRectangle.js.map +1 -1
- package/dist/contract.d.ts +18 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +18 -0
- package/dist/contract.js.map +1 -0
- package/dist/hasAppearance.d.ts +1 -1
- package/dist/hasAppearance.d.ts.map +1 -1
- package/dist/hasBlendMode.d.ts +1 -1
- package/dist/hasBlendMode.d.ts.map +1 -1
- package/dist/hasBoundsRectangle.d.ts +2 -2
- package/dist/hasBoundsRectangle.d.ts.map +1 -1
- package/dist/hasBoundsRectangle.js +1 -0
- package/dist/hasBoundsRectangle.js.map +1 -1
- package/dist/hasClip.d.ts +1 -1
- package/dist/hasClip.d.ts.map +1 -1
- package/dist/hasMaterial.d.ts +1 -1
- package/dist/hasMaterial.d.ts.map +1 -1
- package/dist/hasTransform2d.d.ts +1 -1
- package/dist/hasTransform2d.d.ts.map +1 -1
- package/dist/hasTransform3d.d.ts +1 -1
- package/dist/hasTransform3d.d.ts.map +1 -1
- package/dist/hasTransform3d.js +1 -1
- package/dist/hasTransform3d.js.map +1 -1
- package/dist/hierarchy.d.ts +1 -1
- package/dist/hierarchy.d.ts.map +1 -1
- package/dist/hierarchy.js +2 -2
- package/dist/hierarchy.js.map +1 -1
- package/dist/index.d.ts +1 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -16
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +6 -5
- package/dist/node.js.map +1 -1
- package/dist/nodeColorAdjustment.d.ts +20 -0
- package/dist/nodeColorAdjustment.d.ts.map +1 -0
- package/dist/nodeColorAdjustment.js +60 -0
- package/dist/nodeColorAdjustment.js.map +1 -0
- package/dist/nodeTransform2d.d.ts +1 -1
- package/dist/nodeTransform2d.d.ts.map +1 -1
- package/dist/nodeTransform2d.js +3 -3
- package/dist/nodeTransform2d.js.map +1 -1
- package/dist/nodeTransform3d.d.ts +1 -1
- package/dist/nodeTransform3d.d.ts.map +1 -1
- package/dist/nodeTransform3d.js +2 -2
- package/dist/nodeTransform3d.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.d.ts.map +1 -1
- package/dist/revision.js +1 -1
- package/dist/stageFit.d.ts +1 -1
- package/dist/stageFit.d.ts.map +1 -1
- package/dist/stageFit.js +1 -3
- package/dist/stageFit.js.map +1 -1
- package/dist/traversal.d.ts +2 -2
- package/dist/traversal.d.ts.map +1 -1
- package/dist/traversal.js +1 -1
- package/dist/traversal.js.map +1 -1
- package/dist/viewport.d.ts +1 -1
- package/dist/viewport.d.ts.map +1 -1
- package/dist/viewport.js +1 -1
- package/dist/viewport.js.map +1 -1
- package/package.json +11 -5
- package/src/boundsRectangle.test.ts +62 -4
- package/src/hasAppearance.test.ts +1 -1
- package/src/hasBlendMode.test.ts +2 -2
- package/src/hasBoundsRectangle.test.ts +10 -2
- package/src/hasClip.test.ts +1 -1
- package/src/hasMaterial.test.ts +1 -1
- package/src/hasTransform2d.test.ts +1 -1
- package/src/hasTransform3d.test.ts +2 -2
- package/src/hierarchy.test.ts +5 -5
- package/src/node.test.ts +3 -3
- package/src/nodeColorAdjustment.test.ts +58 -0
- package/src/nodeTransform2d.test.ts +4 -4
- package/src/nodeTransform3d.test.ts +8 -2
- package/src/revision.test.ts +2 -2
- package/src/stageFit.test.ts +8 -2
- package/src/traversal.test.ts +2 -3
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { COLOR_ADJUSTMENT_CHANNEL_MIXING, COLOR_ADJUSTMENT_NONE, createTintAdjustment, resolveColorAdjustmentsColorMatrix, resolveColorAdjustmentsColorScaleBias, } from '@flighthq/adjustments/contract';
|
|
2
|
+
import { createColorScaleBias } from '@flighthq/materials/contract';
|
|
3
|
+
import { getNodeRuntime } from './node';
|
|
4
|
+
import { invalidateNodeAppearance } from './revision';
|
|
5
|
+
/**
|
|
6
|
+
* Appends one pointwise adjustment without replacing the existing stack.
|
|
7
|
+
*
|
|
8
|
+
* For explicit per-channel scale/bias authoring, use
|
|
9
|
+
* `createColorScaleBiasAdjustment` from `@flighthq/adjustments`.
|
|
10
|
+
*/
|
|
11
|
+
export function addNodeColorAdjustment(source, adjustment) {
|
|
12
|
+
const runtime = getNodeRuntime(source);
|
|
13
|
+
const current = runtime.colorAdjustments;
|
|
14
|
+
runtime.colorAdjustments = current === null ? [adjustment] : [...current, adjustment];
|
|
15
|
+
resolveNodeColorAdjustments(runtime);
|
|
16
|
+
invalidateNodeAppearance(source);
|
|
17
|
+
}
|
|
18
|
+
/** Returns the complete authored adjustment stack, or null for the untinted default. */
|
|
19
|
+
export function getNodeColorAdjustments(source) {
|
|
20
|
+
return getNodeRuntime(source).colorAdjustments;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Replaces the complete pointwise adjustment stack; null clears it.
|
|
24
|
+
*
|
|
25
|
+
* Tint's golden path is `setNodeColorAdjustmentsTint`. Use `createColorScaleBiasAdjustment` for
|
|
26
|
+
* explicit per-channel `out = in * scale + bias` values with normalized-linear bias.
|
|
27
|
+
*/
|
|
28
|
+
export function setNodeColorAdjustments(source, value) {
|
|
29
|
+
const runtime = getNodeRuntime(source);
|
|
30
|
+
runtime.colorAdjustments = value;
|
|
31
|
+
resolveNodeColorAdjustments(runtime);
|
|
32
|
+
invalidateNodeAppearance(source);
|
|
33
|
+
}
|
|
34
|
+
/** Replaces the complete stack with one packed-RGBA tint adjustment. */
|
|
35
|
+
export function setNodeColorAdjustmentsTint(source, tint) {
|
|
36
|
+
setNodeColorAdjustments(source, [createTintAdjustment(tint)]);
|
|
37
|
+
}
|
|
38
|
+
function resolveNodeColorAdjustments(runtime) {
|
|
39
|
+
const adjustments = runtime.colorAdjustments;
|
|
40
|
+
if (adjustments === null || adjustments.length === 0) {
|
|
41
|
+
runtime.resolvedColorScaleBias = null;
|
|
42
|
+
runtime.resolvedColorMatrix = null;
|
|
43
|
+
runtime.colorAdjustmentsUnsupported = false;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const out = runtime.resolvedColorScaleBias ?? createColorScaleBias();
|
|
47
|
+
const status = resolveColorAdjustmentsColorScaleBias(adjustments, out);
|
|
48
|
+
if (status === COLOR_ADJUSTMENT_NONE) {
|
|
49
|
+
runtime.resolvedColorScaleBias = null;
|
|
50
|
+
runtime.resolvedColorMatrix = null;
|
|
51
|
+
runtime.colorAdjustmentsUnsupported = false;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
runtime.resolvedColorScaleBias = out;
|
|
55
|
+
runtime.resolvedColorMatrix =
|
|
56
|
+
status === COLOR_ADJUSTMENT_CHANNEL_MIXING ? resolveColorAdjustmentsColorMatrix(adjustments) : null;
|
|
57
|
+
runtime.colorAdjustmentsUnsupported =
|
|
58
|
+
status === COLOR_ADJUSTMENT_CHANNEL_MIXING && runtime.resolvedColorMatrix === null;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=nodeColorAdjustment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeColorAdjustment.js","sourceRoot":"","sources":["../src/nodeColorAdjustment.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,oBAAoB,EACpB,kCAAkC,EAClC,qCAAqC,GACtC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAwB,MAAoB,EAAE,UAAsB;IACxG,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAwB,CAAC;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACzC,OAAO,CAAC,gBAAgB,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC;IACtF,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CACrC,MAA8B;IAE9B,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAoB,EACpB,KAAmC;IAEnC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAwB,CAAC;IAC9D,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACjC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,2BAA2B,CAAwB,MAAoB,EAAE,IAAY;IACnG,uBAAuB,CAAC,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA+B;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC7C,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACtC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACnC,OAAO,CAAC,2BAA2B,GAAG,KAAK,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,sBAAsB,IAAI,oBAAoB,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,qCAAqC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvE,IAAI,MAAM,KAAK,qBAAqB,EAAE,CAAC;QACrC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACtC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACnC,OAAO,CAAC,2BAA2B,GAAG,KAAK,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,sBAAsB,GAAG,GAAG,CAAC;IACrC,OAAO,CAAC,mBAAmB;QACzB,MAAM,KAAK,+BAA+B,CAAC,CAAC,CAAC,kCAAkC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtG,OAAO,CAAC,2BAA2B;QACjC,MAAM,KAAK,+BAA+B,IAAI,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC;AACvF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Matrix, MatrixLike, Transform2DLike, Transform2DNode, Vector2Like } from '@flighthq/types';
|
|
1
|
+
import type { Matrix, MatrixLike, Transform2DLike, Transform2DNode, Vector2Like } from '@flighthq/types/contract';
|
|
2
2
|
/**
|
|
3
3
|
* Converts the `vector` object from the Scene2D (global) coordinates
|
|
4
4
|
* to the display object's (local) coordinates.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeTransform2d.d.ts","sourceRoot":"","sources":["../src/nodeTransform2d.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodeTransform2d.d.ts","sourceRoot":"","sources":["../src/nodeTransform2d.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,MAAM,EACN,UAAU,EAEV,eAAe,EACf,eAAe,EACf,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAKlC;;;IAGI;AACJ,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,MAAM,EACnE,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAEN;AAED;;;IAGI;AACJ,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,MAAM,EACnE,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAEN;AAED,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAKlG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAmBlG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAG3G;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAUrH;AAED,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAG3G;AAKD,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EACtD,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC3B,IAAI,CAGN;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EACtD,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAWN"}
|
package/dist/nodeTransform2d.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getEntityRuntime } from '@flighthq/entity';
|
|
2
|
-
import { copyMatrix, createMatrix, decomposeMatrixToTransform2D, inverseMatrixTransformPointXY, matrixTransformPointXY, multiplyMatrix, } from '@flighthq/geometry';
|
|
3
|
-
import { computeNodeWorldTransformRevision } from '
|
|
1
|
+
import { getEntityRuntime } from '@flighthq/entity/contract';
|
|
2
|
+
import { copyMatrix, createMatrix, decomposeMatrixToTransform2D, inverseMatrixTransformPointXY, matrixTransformPointXY, multiplyMatrix, } from '@flighthq/geometry/contract';
|
|
3
|
+
import { computeNodeWorldTransformRevision } from './revision';
|
|
4
4
|
import { invalidateNodeLocalTransform } from './revision';
|
|
5
5
|
/**
|
|
6
6
|
* Converts the `vector` object from the Scene2D (global) coordinates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeTransform2d.js","sourceRoot":"","sources":["../src/nodeTransform2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"nodeTransform2d.js","sourceRoot":"","sources":["../src/nodeTransform2d.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Matrix4Like, Transform3DLike, Transform3DNode, Vector3Like } from '@flighthq/types';
|
|
1
|
+
import type { Matrix4Like, Transform3DLike, Transform3DNode, Vector3Like } from '@flighthq/types/contract';
|
|
2
2
|
export declare function convertNodeVector3GlobalToLocal<Traits extends object>(out: Vector3Like, source: Transform3DNode<Traits>, point: Readonly<Vector3Like>): void;
|
|
3
3
|
export declare function convertNodeVector3LocalToGlobal<Traits extends object>(out: Vector3Like, source: Transform3DNode<Traits>, point: Readonly<Vector3Like>): void;
|
|
4
4
|
export declare function ensureNodeLocalMatrix4<Traits extends object>(target: Transform3DNode<Traits>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeTransform3d.d.ts","sourceRoot":"","sources":["../src/nodeTransform3d.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAEV,WAAW,EAEX,eAAe,EACf,eAAe,EACf,WAAW,EACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"nodeTransform3d.d.ts","sourceRoot":"","sources":["../src/nodeTransform3d.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAEV,WAAW,EAEX,eAAe,EACf,eAAe,EACf,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAIlC,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,MAAM,EACnE,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC3B,IAAI,CAMN;AAED,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,MAAM,EACnE,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC3B,IAAI,CAEN;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAKnG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAmBnG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAGjH;AAKD,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAIrH;AAED,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAGjH;AAKD,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAG1G;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,EACvD,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,IAAI,CAON;AAID,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EACtD,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAChC,IAAI,CAKN;AAKD,wBAAgB,8BAA8B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAK3G"}
|
package/dist/nodeTransform3d.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getEntityRuntime } from '@flighthq/entity';
|
|
2
|
-
import { acquireMatrix4, composeMatrix4, copyMatrix4, copyQuaternion, copyVector3, createMatrix4, decomposeMatrix4, inverseMatrix4, matrix4TransformPoint, multiplyMatrix4, releaseMatrix4, } from '@flighthq/geometry';
|
|
1
|
+
import { getEntityRuntime } from '@flighthq/entity/contract';
|
|
2
|
+
import { acquireMatrix4, composeMatrix4, copyMatrix4, copyQuaternion, copyVector3, createMatrix4, decomposeMatrix4, inverseMatrix4, matrix4TransformPoint, multiplyMatrix4, releaseMatrix4, } from '@flighthq/geometry/contract';
|
|
3
3
|
import { computeNodeWorldTransformRevision, invalidateNodeLocalTransform } from './revision';
|
|
4
4
|
export function convertNodeVector3GlobalToLocal(out, source, point) {
|
|
5
5
|
// Acquire from pool instead of allocating to avoid hot-path GC pressure.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeTransform3d.js","sourceRoot":"","sources":["../src/nodeTransform3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"nodeTransform3d.js","sourceRoot":"","sources":["../src/nodeTransform3d.ts"],"names":[],"mappings":"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"}
|
package/dist/revision.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Node, NodeRuntime } from '@flighthq/types';
|
|
1
|
+
import type { Node, NodeRuntime } from '@flighthq/types/contract';
|
|
2
2
|
export declare function computeNodeWorldTransformRevision<Traits extends object>(runtime: NodeRuntime<Traits>, parentRuntime?: Readonly<NodeRuntime<Traits>>): void;
|
|
3
3
|
export declare function getNodeAppearanceRevision<Traits extends object>(source: Readonly<Node<Traits>>): number;
|
|
4
4
|
export declare function getNodeLocalBoundsRevision<Traits extends object>(source: Readonly<Node<Traits>>): number;
|
|
@@ -29,7 +29,7 @@ export declare function invalidateNodeLocalBounds<Traits extends object>(target:
|
|
|
29
29
|
*/
|
|
30
30
|
export declare function invalidateNodeLocalContent<Traits extends object>(target: Node<Traits>): void;
|
|
31
31
|
/**
|
|
32
|
-
* Target object's own transform (x, y, rotation, scaleX, scaleY) changed.
|
|
32
|
+
* Target object's own transform (x, y, rotation, scaleX, scaleY, skewX, skewY, or pivot) changed.
|
|
33
33
|
*/
|
|
34
34
|
export declare function invalidateNodeLocalTransform<Traits extends object>(target: Node<Traits>): void;
|
|
35
35
|
/**
|
package/dist/revision.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revision.d.ts","sourceRoot":"","sources":["../src/revision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"revision.d.ts","sourceRoot":"","sources":["../src/revision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAUlE,wBAAgB,iCAAiC,CAAC,MAAM,SAAS,MAAM,EACrE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAC5B,aAAa,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAC5C,IAAI,CAON;AAED,wBAAgB,yBAAyB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAEvG;AAED,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAExG;AAED,wBAAgB,2BAA2B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAEzG;AAED,wBAAgB,6BAA6B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAE3G;AAED,wBAAgB,6BAA6B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAE3G;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAGnF;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAOhF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAG1F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAG3F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAG5F;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAG9F;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAG/F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAGtF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAI3F"}
|
package/dist/revision.js
CHANGED
|
@@ -72,7 +72,7 @@ export function invalidateNodeLocalContent(target) {
|
|
|
72
72
|
runtime.localContentId = (runtime.localContentId + 1) >>> 0;
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
|
-
* Target object's own transform (x, y, rotation, scaleX, scaleY) changed.
|
|
75
|
+
* Target object's own transform (x, y, rotation, scaleX, scaleY, skewX, skewY, or pivot) changed.
|
|
76
76
|
*/
|
|
77
77
|
export function invalidateNodeLocalTransform(target) {
|
|
78
78
|
const runtime = getNodeRuntime(target);
|
package/dist/stageFit.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MatrixLike, NodeTraits, Scene2DFitContext, ViewportAlign } from '@flighthq/types';
|
|
1
|
+
import type { MatrixLike, NodeTraits, Scene2DFitContext, ViewportAlign } from '@flighthq/types/contract';
|
|
2
2
|
export declare function computeScene2DFitAlignX(scaledContentWidth: number, viewWidth: number, align: ViewportAlign): number;
|
|
3
3
|
export declare function computeScene2DFitAlignY(scaledContentHeight: number, viewHeight: number, align: ViewportAlign): number;
|
|
4
4
|
export declare function computeScene2DFitFillScale(contentWidth: number, contentHeight: number, viewWidth: number, viewHeight: number): number;
|
package/dist/stageFit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stageFit.d.ts","sourceRoot":"","sources":["../src/stageFit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"stageFit.d.ts","sourceRoot":"","sources":["../src/stageFit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,UAAU,EACV,UAAU,EAEV,iBAAiB,EACjB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAInH;AAGD,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAIrH;AAGD,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAGD,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAMD,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EAC3E,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAC5C,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,IAAI,CA6CN"}
|
package/dist/stageFit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createRectangle } from '@flighthq/geometry';
|
|
1
|
+
import { createRectangle } from '@flighthq/geometry/contract';
|
|
2
2
|
import { getNodeRuntime } from './node';
|
|
3
3
|
// The structural fit context these functions read: a root node plus how it maps into the view. `Scene2D`
|
|
4
4
|
// satisfies it (its `align`/`scaleMode`/`root` fields); kept structural and generic so the fit math stays in
|
|
@@ -35,12 +35,10 @@ export function computeScene2DFitTransform(out, scene2d, viewWidth, viewHeight)
|
|
|
35
35
|
let contentWidth = 0;
|
|
36
36
|
let contentHeight = 0;
|
|
37
37
|
if (scene2d.root !== null) {
|
|
38
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
38
|
const runtime = getNodeRuntime(scene2d.root);
|
|
40
39
|
if (runtime?.computeLocalBoundsRectangle !== undefined) {
|
|
41
40
|
_tempRectangle.width = 0;
|
|
42
41
|
_tempRectangle.height = 0;
|
|
43
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
42
|
runtime.computeLocalBoundsRectangle(_tempRectangle, scene2d.root);
|
|
45
43
|
contentWidth = _tempRectangle.width;
|
|
46
44
|
contentHeight = _tempRectangle.height;
|
package/dist/stageFit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stageFit.js","sourceRoot":"","sources":["../src/stageFit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"stageFit.js","sourceRoot":"","sources":["../src/stageFit.ts"],"names":[],"mappings":"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"}
|
package/dist/traversal.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Node, NodeDescendantVisitor, NodeOf, NodeTraits } from '@flighthq/types';
|
|
1
|
+
import type { Node, NodeDescendantVisitor, NodeOf, NodeTraits } from '@flighthq/types/contract';
|
|
2
2
|
/**
|
|
3
3
|
* Finds the first descendant of `source` (depth-first pre-order) that satisfies `predicate`.
|
|
4
4
|
* Returns `null` if no descendant matches. When `predicate` is a type guard, the result is
|
|
@@ -16,7 +16,7 @@ export declare function findNodeByName<Traits extends object = NodeTraits>(sourc
|
|
|
16
16
|
* Walks upward from `source` toward the root, calling `callback` for each ancestor. If `callback`
|
|
17
17
|
* returns `false`, the walk stops early. The source node itself is not visited.
|
|
18
18
|
*/
|
|
19
|
-
export declare function forEachNodeAncestor<Traits extends object = NodeTraits>(source: Readonly<Node<Traits>>, callback: (node: Node<Traits>) => boolean): void;
|
|
19
|
+
export declare function forEachNodeAncestor<Traits extends object = NodeTraits>(source: Readonly<Node<Traits>>, callback: (node: Node<Traits>) => boolean | void): void;
|
|
20
20
|
/**
|
|
21
21
|
* Calls `callback` for every descendant of `source` in depth-first pre-order. Unlike
|
|
22
22
|
* `walkNodeDescendants`, this variant never stops early — every descendant is visited regardless
|
package/dist/traversal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traversal.d.ts","sourceRoot":"","sources":["../src/traversal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"traversal.d.ts","sourceRoot":"","sources":["../src/traversal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKhG;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,SAAS,IAAI,CAAC,MAAM,CAAC,EACzE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,MAAM,GAChD,MAAM,GAAG,IAAI,CAAC;AACjB,wBAAgB,QAAQ,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACzD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,GACzC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAgBzB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EAC/D,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAEvB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACpE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,GAAG,IAAI,GAC/C,IAAI,CAMN;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACtE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,GACrC,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EAChE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAC7B,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,CAI3B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAQvG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACnE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAQvB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACvE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAQvB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,GAAG,UAAU,EACpE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9B,KAAK,EAAE,qBAAqB,CAAC,MAAM,CAAC,GACnC,OAAO,CAST"}
|
package/dist/traversal.js
CHANGED
|
@@ -29,7 +29,7 @@ export function findNodeByName(source, name) {
|
|
|
29
29
|
export function forEachNodeAncestor(source, callback) {
|
|
30
30
|
let current = getNodeParent(source);
|
|
31
31
|
while (current !== null) {
|
|
32
|
-
if (
|
|
32
|
+
if (callback(current) === false)
|
|
33
33
|
return;
|
|
34
34
|
current = getNodeParent(current);
|
|
35
35
|
}
|
package/dist/traversal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traversal.js","sourceRoot":"","sources":["../src/traversal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAexC,MAAM,UAAU,QAAQ,CACtB,MAA8B,EAC9B,SAA0C;IAE1C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAiB,CAAC;QAC1C,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,KAAuB,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA8B,EAC9B,IAAY;IAEZ,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA8B,EAC9B,
|
|
1
|
+
{"version":3,"file":"traversal.js","sourceRoot":"","sources":["../src/traversal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAexC,MAAM,UAAU,QAAQ,CACtB,MAA8B,EAC9B,SAA0C;IAE1C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAiB,CAAC;QAC1C,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,KAAuB,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA8B,EAC9B,IAAY;IAEZ,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA8B,EAC9B,QAAgD;IAEhD,IAAI,OAAO,GAAG,aAAa,CAAC,MAAsB,CAAC,CAAC;IACpD,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK;YAAE,OAAO;QACxC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA8B,EAC9B,QAAsC;IAEtC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAiB,CAAC,CAAC;QACtC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAiB,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA8B;IAE9B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,cAA2C,CAAC;IAC1E,OAAO,QAAQ,CAAC,KAAK,EAAsB,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAqC,MAA8B;IAC7F,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,aAAa,CAAC,MAAsB,CAAC,CAAC;IACpD,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,KAAK,EAAE,CAAC;QACR,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA8B;IAE9B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAsB,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAsB,CAAC,CAAC;IACrD,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAmB,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAA8B;IAE9B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAsB,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAsB,CAAC,CAAC;IACrD,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAmB,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA8B,EAC9B,KAAoC;IAEpC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAiB,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,cAAc,GAAqB,EAAE,CAAC"}
|
package/dist/viewport.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Viewport, ViewportLike } from '@flighthq/types';
|
|
1
|
+
import type { Viewport, ViewportLike } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createViewport(obj?: Readonly<ViewportLike>): Viewport;
|
|
3
3
|
export declare function getViewportAspect(viewport: Readonly<Viewport>): number;
|
|
4
4
|
//# sourceMappingURL=viewport.d.ts.map
|
package/dist/viewport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKvE,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAQrE;AAID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAEtE"}
|
package/dist/viewport.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createEntity } from '@flighthq/entity';
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
2
2
|
// Allocates a Viewport — the bedrock drawable rectangle a scene renders into. Defaults to a zero-origin
|
|
3
3
|
// rect at unit device-pixel ratio; pass fields to override. Passive plain data: a Viewport does not own a
|
|
4
4
|
// drawable (a renderable surface is a Viewport paired with a RenderTarget).
|
package/dist/viewport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,wGAAwG;AACxG,0GAA0G;AAC1G,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,GAA4B;IACzD,OAAO,YAAY,CAAC;QAClB,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,IAAI,CAAC;QAC5C,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;QACxB,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QACtB,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;QACd,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;KACf,CAAC,CAAC;AACL,CAAC;AAED,uGAAuG;AACvG,2GAA2G;AAC3G,MAAM,UAAU,iBAAiB,CAAC,QAA4B;IAC5D,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-edge.1516.1b4fb2b",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/flighthq/flight.git",
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
".": {
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
15
15
|
"default": "./dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./contract": {
|
|
18
|
+
"types": "./dist/contract.d.ts",
|
|
19
|
+
"default": "./dist/contract.js"
|
|
16
20
|
}
|
|
17
21
|
},
|
|
18
22
|
"files": [
|
|
@@ -32,10 +36,12 @@
|
|
|
32
36
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
33
37
|
},
|
|
34
38
|
"dependencies": {
|
|
35
|
-
"@flighthq/
|
|
36
|
-
"@flighthq/
|
|
37
|
-
"@flighthq/
|
|
38
|
-
"@flighthq/
|
|
39
|
+
"@flighthq/adjustments": "0.3.0-edge.1516.1b4fb2b",
|
|
40
|
+
"@flighthq/entity": "0.3.0-edge.1516.1b4fb2b",
|
|
41
|
+
"@flighthq/geometry": "0.3.0-edge.1516.1b4fb2b",
|
|
42
|
+
"@flighthq/materials": "0.3.0-edge.1516.1b4fb2b",
|
|
43
|
+
"@flighthq/signals": "0.3.0-edge.1516.1b4fb2b",
|
|
44
|
+
"@flighthq/types": "0.3.0-edge.1516.1b4fb2b"
|
|
39
45
|
},
|
|
40
46
|
"devDependencies": {
|
|
41
47
|
"typescript": "^5.3.0"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { getEntityRuntime as _getRuntime } from '@flighthq/entity';
|
|
1
|
+
import { getEntityRuntime as _getRuntime } from '@flighthq/entity/contract';
|
|
2
2
|
import {
|
|
3
3
|
cloneRectangle,
|
|
4
4
|
createRectangle,
|
|
5
5
|
equalsRectangle,
|
|
6
6
|
setEmptyRectangle as setEmpty,
|
|
7
7
|
setRectangle,
|
|
8
|
-
} from '@flighthq/geometry';
|
|
8
|
+
} from '@flighthq/geometry/contract';
|
|
9
9
|
import {
|
|
10
10
|
addNodeChild,
|
|
11
11
|
createNode,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
initTransform2DRuntimeTrait,
|
|
14
14
|
initTransform2DTrait,
|
|
15
15
|
invalidateNodeLocalTransform,
|
|
16
|
-
} from '@flighthq/node';
|
|
16
|
+
} from '@flighthq/node/contract';
|
|
17
17
|
import type {
|
|
18
18
|
HasBoundsRectangle,
|
|
19
19
|
HasBoundsRectangleRuntime,
|
|
@@ -22,10 +22,11 @@ import type {
|
|
|
22
22
|
Node,
|
|
23
23
|
NodeRuntime,
|
|
24
24
|
Rectangle,
|
|
25
|
-
} from '@flighthq/types';
|
|
25
|
+
} from '@flighthq/types/contract';
|
|
26
26
|
|
|
27
27
|
import {
|
|
28
28
|
computeNodeBoundsRectangle,
|
|
29
|
+
computeNodeRootLocalBoundsRectangle,
|
|
29
30
|
ensureNodeLocalBoundsRectangle,
|
|
30
31
|
ensureNodeParentBoundsRectangle,
|
|
31
32
|
ensureNodeWorldBoundsRectangle,
|
|
@@ -159,7 +160,64 @@ describe('computeNodeBoundsRectangle', () => {
|
|
|
159
160
|
});
|
|
160
161
|
});
|
|
161
162
|
|
|
163
|
+
describe('computeNodeRootLocalBoundsRectangle', () => {
|
|
164
|
+
it('ignores the detached root transform while preserving negative local extents', () => {
|
|
165
|
+
const root = createTestNode();
|
|
166
|
+
root.x = 120;
|
|
167
|
+
root.y = -35;
|
|
168
|
+
root.rotation = 37;
|
|
169
|
+
root.scaleX = 2;
|
|
170
|
+
root.scaleY = 0.5;
|
|
171
|
+
setRectangle(getNodeLocalBoundsRectangle(root), -10, -5, 30, 20);
|
|
172
|
+
|
|
173
|
+
const out = createRectangle();
|
|
174
|
+
computeNodeRootLocalBoundsRectangle(out, root);
|
|
175
|
+
|
|
176
|
+
expect(out).toMatchObject({ x: -10, y: -5, width: 30, height: 20 });
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
it('composes nested transforms relative to an identity root', () => {
|
|
180
|
+
const root = createTestNode();
|
|
181
|
+
const child = createTestNode();
|
|
182
|
+
root.x = 500;
|
|
183
|
+
root.rotation = 90;
|
|
184
|
+
child.x = 20;
|
|
185
|
+
child.y = 3;
|
|
186
|
+
child.scaleX = 2;
|
|
187
|
+
child.scaleY = 3;
|
|
188
|
+
setRectangle(getNodeLocalBoundsRectangle(root), 0, 0, 10, 10);
|
|
189
|
+
setRectangle(getNodeLocalBoundsRectangle(child), -5, -2, 4, 8);
|
|
190
|
+
addNodeChild(root, child);
|
|
191
|
+
|
|
192
|
+
const out = createRectangle();
|
|
193
|
+
computeNodeRootLocalBoundsRectangle(out, root);
|
|
194
|
+
|
|
195
|
+
expect(out.x).toBeCloseTo(0);
|
|
196
|
+
expect(out.y).toBeCloseTo(-3);
|
|
197
|
+
expect(out.width).toBeCloseTo(18);
|
|
198
|
+
expect(out.height).toBeCloseTo(24);
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
|
|
162
202
|
describe('ensureNodeLocalBoundsRectangle', () => {
|
|
203
|
+
it('recalculates when the kind-owned validity hook rejects an unchanged revision', () => {
|
|
204
|
+
const object = createTestNode();
|
|
205
|
+
const runtime = getEntityRuntime(object);
|
|
206
|
+
let input = { width: 10 };
|
|
207
|
+
let stampedInput = input;
|
|
208
|
+
runtime.computeLocalBoundsRectangle = (out: Rectangle) => {
|
|
209
|
+
out.width = input.width;
|
|
210
|
+
stampedInput = input;
|
|
211
|
+
};
|
|
212
|
+
runtime.isLocalBoundsRectangleValid = () => stampedInput === input;
|
|
213
|
+
ensureNodeLocalBoundsRectangle(object);
|
|
214
|
+
|
|
215
|
+
input = { width: 20 };
|
|
216
|
+
ensureNodeLocalBoundsRectangle(object);
|
|
217
|
+
|
|
218
|
+
expect(runtime.localBoundsRectangle?.width).toBe(20);
|
|
219
|
+
});
|
|
220
|
+
|
|
163
221
|
it('should ensure localBoundsRectangle is defined', () => {
|
|
164
222
|
const object = createTestNode();
|
|
165
223
|
const runtime = getEntityRuntime(object);
|
package/src/hasBlendMode.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { HasBlendMode } from '@flighthq/types';
|
|
2
|
-
import { BlendMode } from '@flighthq/types';
|
|
1
|
+
import type { HasBlendMode } from '@flighthq/types/contract';
|
|
2
|
+
import { BlendMode } from '@flighthq/types/contract';
|
|
3
3
|
|
|
4
4
|
import { initBlendModeTrait } from './hasBlendMode';
|
|
5
5
|
import { createNode } from './node';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createRectangle } from '@flighthq/geometry';
|
|
2
|
-
import type { HasBoundsRectangle, HasBoundsRectangleRuntime, Node, NodeRuntime } from '@flighthq/types';
|
|
1
|
+
import { createRectangle } from '@flighthq/geometry/contract';
|
|
2
|
+
import type { HasBoundsRectangle, HasBoundsRectangleRuntime, Node, NodeRuntime } from '@flighthq/types/contract';
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
defaultComputeLocalBoundsRectangle,
|
|
@@ -34,6 +34,14 @@ describe('initBoundsRectangleRuntimeTrait', () => {
|
|
|
34
34
|
expect(runtime.localBoundsRectangle).toBeNull();
|
|
35
35
|
expect(runtime.worldBoundsRectangle).toBeNull();
|
|
36
36
|
expect(runtime.computeLocalBoundsRectangle).toStrictEqual(defaultComputeLocalBoundsRectangle);
|
|
37
|
+
expect(runtime.isLocalBoundsRectangleValid).toBeNull();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('installs a kind-owned local-bounds validity hook', () => {
|
|
41
|
+
const isLocalBoundsRectangleValid = vi.fn(() => true);
|
|
42
|
+
initBoundsRectangleRuntimeTrait(runtime, { isLocalBoundsRectangleValid });
|
|
43
|
+
|
|
44
|
+
expect(runtime.isLocalBoundsRectangleValid).toBe(isLocalBoundsRectangleValid);
|
|
37
45
|
});
|
|
38
46
|
});
|
|
39
47
|
|
package/src/hasClip.test.ts
CHANGED
package/src/hasMaterial.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HasTransform2D, HasTransform2DRuntime, Node, NodeRuntime } from '@flighthq/types';
|
|
1
|
+
import type { HasTransform2D, HasTransform2DRuntime, Node, NodeRuntime } from '@flighthq/types/contract';
|
|
2
2
|
|
|
3
3
|
import { initTransform2DRuntimeTrait, initTransform2DTrait } from './hasTransform2d';
|
|
4
4
|
import { createNode, createNodeRuntime } from './node';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createQuaternion, createVector3 } from '@flighthq/geometry';
|
|
2
|
-
import type { HasTransform3D, HasTransform3DRuntime } from '@flighthq/types';
|
|
1
|
+
import { createQuaternion, createVector3 } from '@flighthq/geometry/contract';
|
|
2
|
+
import type { HasTransform3D, HasTransform3DRuntime } from '@flighthq/types/contract';
|
|
3
3
|
import { describe, expect, it } from 'vitest';
|
|
4
4
|
|
|
5
5
|
import { initTransform3DRuntimeTrait, initTransform3DTrait } from './hasTransform3d';
|
package/src/hierarchy.test.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { getEntityRuntime as getRawEntityRuntime } from '@flighthq/entity';
|
|
2
|
-
import { cloneMatrix } from '@flighthq/geometry';
|
|
3
|
-
import { connectSignal } from '@flighthq/signals';
|
|
4
|
-
import type { HasTransform2D, HasTransform2DRuntime, Node, NodeRuntime, NodeTraits } from '@flighthq/types';
|
|
5
|
-
import { NodeKind } from '@flighthq/types';
|
|
1
|
+
import { getEntityRuntime as getRawEntityRuntime } from '@flighthq/entity/contract';
|
|
2
|
+
import { cloneMatrix } from '@flighthq/geometry/contract';
|
|
3
|
+
import { connectSignal } from '@flighthq/signals/contract';
|
|
4
|
+
import type { HasTransform2D, HasTransform2DRuntime, Node, NodeRuntime, NodeTraits } from '@flighthq/types/contract';
|
|
5
|
+
import { NodeKind } from '@flighthq/types/contract';
|
|
6
6
|
|
|
7
7
|
import { initTransform2DRuntimeTrait, initTransform2DTrait } from './hasTransform2d';
|
|
8
8
|
import {
|
package/src/node.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { connectSignal } from '@flighthq/signals';
|
|
2
|
-
import type { Node, NodeData, NodeRuntime, PartialNode } from '@flighthq/types';
|
|
3
|
-
import { NodeKind } from '@flighthq/types';
|
|
1
|
+
import { connectSignal } from '@flighthq/signals/contract';
|
|
2
|
+
import type { Node, NodeData, NodeRuntime, PartialNode } from '@flighthq/types/contract';
|
|
3
|
+
import { NodeKind } from '@flighthq/types/contract';
|
|
4
4
|
|
|
5
5
|
import { addNodeChild, getNodeChildCount, getNodeParent } from './hierarchy';
|
|
6
6
|
import {
|