@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.
Files changed (82) hide show
  1. package/dist/boundsRectangle.d.ts +12 -1
  2. package/dist/boundsRectangle.d.ts.map +1 -1
  3. package/dist/boundsRectangle.js +51 -5
  4. package/dist/boundsRectangle.js.map +1 -1
  5. package/dist/contract.d.ts +18 -0
  6. package/dist/contract.d.ts.map +1 -0
  7. package/dist/contract.js +18 -0
  8. package/dist/contract.js.map +1 -0
  9. package/dist/hasAppearance.d.ts +1 -1
  10. package/dist/hasAppearance.d.ts.map +1 -1
  11. package/dist/hasBlendMode.d.ts +1 -1
  12. package/dist/hasBlendMode.d.ts.map +1 -1
  13. package/dist/hasBoundsRectangle.d.ts +2 -2
  14. package/dist/hasBoundsRectangle.d.ts.map +1 -1
  15. package/dist/hasBoundsRectangle.js +1 -0
  16. package/dist/hasBoundsRectangle.js.map +1 -1
  17. package/dist/hasClip.d.ts +1 -1
  18. package/dist/hasClip.d.ts.map +1 -1
  19. package/dist/hasMaterial.d.ts +1 -1
  20. package/dist/hasMaterial.d.ts.map +1 -1
  21. package/dist/hasTransform2d.d.ts +1 -1
  22. package/dist/hasTransform2d.d.ts.map +1 -1
  23. package/dist/hasTransform3d.d.ts +1 -1
  24. package/dist/hasTransform3d.d.ts.map +1 -1
  25. package/dist/hasTransform3d.js +1 -1
  26. package/dist/hasTransform3d.js.map +1 -1
  27. package/dist/hierarchy.d.ts +1 -1
  28. package/dist/hierarchy.d.ts.map +1 -1
  29. package/dist/hierarchy.js +2 -2
  30. package/dist/hierarchy.js.map +1 -1
  31. package/dist/index.d.ts +1 -16
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -16
  34. package/dist/index.js.map +1 -1
  35. package/dist/node.d.ts +1 -1
  36. package/dist/node.d.ts.map +1 -1
  37. package/dist/node.js +6 -5
  38. package/dist/node.js.map +1 -1
  39. package/dist/nodeColorAdjustment.d.ts +20 -0
  40. package/dist/nodeColorAdjustment.d.ts.map +1 -0
  41. package/dist/nodeColorAdjustment.js +60 -0
  42. package/dist/nodeColorAdjustment.js.map +1 -0
  43. package/dist/nodeTransform2d.d.ts +1 -1
  44. package/dist/nodeTransform2d.d.ts.map +1 -1
  45. package/dist/nodeTransform2d.js +3 -3
  46. package/dist/nodeTransform2d.js.map +1 -1
  47. package/dist/nodeTransform3d.d.ts +1 -1
  48. package/dist/nodeTransform3d.d.ts.map +1 -1
  49. package/dist/nodeTransform3d.js +2 -2
  50. package/dist/nodeTransform3d.js.map +1 -1
  51. package/dist/revision.d.ts +2 -2
  52. package/dist/revision.d.ts.map +1 -1
  53. package/dist/revision.js +1 -1
  54. package/dist/stageFit.d.ts +1 -1
  55. package/dist/stageFit.d.ts.map +1 -1
  56. package/dist/stageFit.js +1 -3
  57. package/dist/stageFit.js.map +1 -1
  58. package/dist/traversal.d.ts +2 -2
  59. package/dist/traversal.d.ts.map +1 -1
  60. package/dist/traversal.js +1 -1
  61. package/dist/traversal.js.map +1 -1
  62. package/dist/viewport.d.ts +1 -1
  63. package/dist/viewport.d.ts.map +1 -1
  64. package/dist/viewport.js +1 -1
  65. package/dist/viewport.js.map +1 -1
  66. package/package.json +11 -5
  67. package/src/boundsRectangle.test.ts +62 -4
  68. package/src/hasAppearance.test.ts +1 -1
  69. package/src/hasBlendMode.test.ts +2 -2
  70. package/src/hasBoundsRectangle.test.ts +10 -2
  71. package/src/hasClip.test.ts +1 -1
  72. package/src/hasMaterial.test.ts +1 -1
  73. package/src/hasTransform2d.test.ts +1 -1
  74. package/src/hasTransform3d.test.ts +2 -2
  75. package/src/hierarchy.test.ts +5 -5
  76. package/src/node.test.ts +3 -3
  77. package/src/nodeColorAdjustment.test.ts +58 -0
  78. package/src/nodeTransform2d.test.ts +4 -4
  79. package/src/nodeTransform3d.test.ts +8 -2
  80. package/src/revision.test.ts +2 -2
  81. package/src/stageFit.test.ts +8 -2
  82. 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":"AAUA,OAAO,KAAK,EAEV,MAAM,EACN,UAAU,EAEV,eAAe,EACf,eAAe,EACf,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAIzB;;;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"}
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"}
@@ -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 '@flighthq/node';
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":"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"}
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,iBAAiB,CAAC;AAIzB,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"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"nodeTransform3d.js","sourceRoot":"","sources":["../src/nodeTransform3d.ts"],"names":[],"mappings":"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"}
@@ -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
  /**
@@ -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,iBAAiB,CAAC;AAUzD,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"}
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);
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"stageFit.d.ts","sourceRoot":"","sources":["../src/stageFit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,UAAU,EACV,UAAU,EAEV,iBAAiB,EACjB,aAAa,EACd,MAAM,iBAAiB,CAAC;AAQzB,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,CA+CN"}
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;
@@ -1 +1 @@
1
- {"version":3,"file":"stageFit.js","sourceRoot":"","sources":["../src/stageFit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stageFit.js","sourceRoot":"","sources":["../src/stageFit.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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,iBAAiB,CAAC;AAKvF;;;;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,GACxC,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"}
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 (!callback(current))
32
+ if (callback(current) === false)
33
33
  return;
34
34
  current = getNodeParent(current);
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"traversal.js","sourceRoot":"","sources":["../src/traversal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traversal.js","sourceRoot":"","sources":["../src/traversal.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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,iBAAiB,CAAC;AAK9D,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"}
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).
@@ -1 +1 @@
1
- {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,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"}
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.2.1-next.841.373388f",
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/entity": "0.2.1-next.841.373388f",
36
- "@flighthq/geometry": "0.2.1-next.841.373388f",
37
- "@flighthq/signals": "0.2.1-next.841.373388f",
38
- "@flighthq/types": "0.2.1-next.841.373388f"
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);
@@ -1,4 +1,4 @@
1
- import type { HasAppearance } from '@flighthq/types';
1
+ import type { HasAppearance } from '@flighthq/types/contract';
2
2
 
3
3
  import { initAppearanceTrait } from './hasAppearance';
4
4
  import { createNode } from './node';
@@ -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
 
@@ -1,4 +1,4 @@
1
- import type { ClipRegion, HasClip } from '@flighthq/types';
1
+ import type { ClipRegion, HasClip } from '@flighthq/types/contract';
2
2
 
3
3
  import { initClipTrait } from './hasClip';
4
4
  import { createNode } from './node';
@@ -1,4 +1,4 @@
1
- import type { HasMaterial } from '@flighthq/types';
1
+ import type { HasMaterial } from '@flighthq/types/contract';
2
2
 
3
3
  import { initMaterialTrait } from './hasMaterial';
4
4
  import { createNode } from './node';
@@ -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';
@@ -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 {