@flighthq/interaction 0.2.1-next.841.373388f → 0.3.0-next.1032.e2b99fc

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 (78) hide show
  1. package/dist/contract.d.ts +16 -0
  2. package/dist/contract.d.ts.map +1 -0
  3. package/dist/contract.js +16 -0
  4. package/dist/contract.js.map +1 -0
  5. package/dist/cursorBackend.d.ts +1 -1
  6. package/dist/cursorBackend.d.ts.map +1 -1
  7. package/dist/displayHitTests.d.ts +1 -4
  8. package/dist/displayHitTests.d.ts.map +1 -1
  9. package/dist/displayHitTests.js +0 -9
  10. package/dist/displayHitTests.js.map +1 -1
  11. package/dist/displayObjectOverlap.d.ts +1 -1
  12. package/dist/displayObjectOverlap.d.ts.map +1 -1
  13. package/dist/displayObjectOverlap.js +2 -2
  14. package/dist/displayObjectOverlap.js.map +1 -1
  15. package/dist/enableInteractionGuards.d.ts +1 -1
  16. package/dist/enableInteractionGuards.d.ts.map +1 -1
  17. package/dist/enableInteractionGuards.js +3 -3
  18. package/dist/enableInteractionGuards.js.map +1 -1
  19. package/dist/focusManager.d.ts +1 -1
  20. package/dist/focusManager.d.ts.map +1 -1
  21. package/dist/focusManager.js +2 -2
  22. package/dist/focusManager.js.map +1 -1
  23. package/dist/hitTests.d.ts +1 -1
  24. package/dist/hitTests.d.ts.map +1 -1
  25. package/dist/hitTests.js +3 -3
  26. package/dist/hitTests.js.map +1 -1
  27. package/dist/index.d.ts +1 -15
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -15
  30. package/dist/index.js.map +1 -1
  31. package/dist/interactionManager.d.ts +1 -1
  32. package/dist/interactionManager.d.ts.map +1 -1
  33. package/dist/interactionManager.js +3 -3
  34. package/dist/interactionManager.js.map +1 -1
  35. package/dist/interactionSpatialIndex.d.ts +1 -1
  36. package/dist/interactionSpatialIndex.d.ts.map +1 -1
  37. package/dist/interactionSpatialIndex.js +2 -2
  38. package/dist/interactionSpatialIndex.js.map +1 -1
  39. package/dist/nodeInteractionState.d.ts +1 -1
  40. package/dist/nodeInteractionState.d.ts.map +1 -1
  41. package/dist/nodeInteractionState.js +1 -1
  42. package/dist/nodeInteractionState.js.map +1 -1
  43. package/dist/registerDefaultHitTests.d.ts.map +1 -1
  44. package/dist/registerDefaultHitTests.js +2 -5
  45. package/dist/registerDefaultHitTests.js.map +1 -1
  46. package/dist/registerShapeHitTest.js +5 -5
  47. package/dist/registerShapeHitTest.js.map +1 -1
  48. package/dist/{registerBitmapHitTest.d.ts → registerSpriteHitTest.d.ts} +4 -4
  49. package/dist/registerSpriteHitTest.d.ts.map +1 -0
  50. package/dist/registerSpriteHitTest.js +62 -0
  51. package/dist/registerSpriteHitTest.js.map +1 -0
  52. package/dist/registerTextHitTest.js +5 -5
  53. package/dist/registerTextHitTest.js.map +1 -1
  54. package/dist/spatialQuery.d.ts +1 -1
  55. package/dist/spatialQuery.d.ts.map +1 -1
  56. package/dist/spatialQuery.js +2 -2
  57. package/dist/spatialQuery.js.map +1 -1
  58. package/dist/spriteHitTests.d.ts +1 -1
  59. package/dist/spriteHitTests.d.ts.map +1 -1
  60. package/package.json +19 -14
  61. package/src/cursorBackend.test.ts +1 -1
  62. package/src/displayHitTests.test.ts +3 -42
  63. package/src/displayObjectOverlap.test.ts +3 -3
  64. package/src/enableInteractionGuards.test.ts +3 -3
  65. package/src/focusManager.test.ts +5 -5
  66. package/src/hitTests.test.ts +6 -6
  67. package/src/interactionManager.test.ts +11 -6
  68. package/src/interactionSpatialIndex.test.ts +5 -5
  69. package/src/nodeInteractionState.test.ts +2 -2
  70. package/src/registerDefaultHitTests.test.ts +5 -5
  71. package/src/registerShapeHitTest.test.ts +4 -4
  72. package/src/{registerBitmapHitTest.test.ts → registerSpriteHitTest.test.ts} +8 -8
  73. package/src/registerTextHitTest.test.ts +6 -6
  74. package/src/spatialQuery.test.ts +3 -3
  75. package/src/spriteHitTests.test.ts +5 -3
  76. package/dist/registerBitmapHitTest.d.ts.map +0 -1
  77. package/dist/registerBitmapHitTest.js +0 -55
  78. package/dist/registerBitmapHitTest.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nodeInteractionState.js","sourceRoot":"","sources":["../src/nodeInteractionState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,CAAC,CAAC;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAyB,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAC,gBAAgB,KAAK,0BAA0B,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AACzD,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,OAAQ,cAAc,CAAC,MAAM,CAA0B,CAAC,gBAAgB,CAAC;AAC3E,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;AAC7D,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,cAAc,IAAI,KAAK,CAAC;AAClE,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,MAAqB;IAClE,0BAA0B,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;AACrD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,SAAkB;IAClE,0BAA0B,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe,EAAE,OAAuB;IACrE,0BAA0B,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;AACvD,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,qBAAqB,CAAC,MAAe,EAAE,OAAgB;IACrE,0BAA0B,CAAC,MAAM,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9D,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,QAAgB;IAC/D,0BAA0B,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"nodeInteractionState.js","sourceRoot":"","sources":["../src/nodeInteractionState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,CAAC,CAAC;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAyB,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAC,gBAAgB,KAAK,0BAA0B,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AACzD,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,OAAQ,cAAc,CAAC,MAAM,CAA0B,CAAC,gBAAgB,CAAC;AAC3E,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;AAC7D,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,OAAO,uBAAuB,CAAC,MAAM,CAAC,EAAE,cAAc,IAAI,KAAK,CAAC;AAClE,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,MAAqB;IAClE,0BAA0B,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;AACrD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,SAAkB;IAClE,0BAA0B,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe,EAAE,OAAuB;IACrE,0BAA0B,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;AACvD,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,qBAAqB,CAAC,MAAe,EAAE,OAAgB;IACrE,0BAA0B,CAAC,MAAM,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9D,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,QAAgB;IAC/D,0BAA0B,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerDefaultHitTests.d.ts","sourceRoot":"","sources":["../src/registerDefaultHitTests.ts"],"names":[],"mappings":"AAkCA,wBAAgB,uBAAuB,IAAI,IAAI,CAc9C"}
1
+ {"version":3,"file":"registerDefaultHitTests.d.ts","sourceRoot":"","sources":["../src/registerDefaultHitTests.ts"],"names":[],"mappings":"AA4BA,wBAAgB,uBAAuB,IAAI,IAAI,CAW9C"}
@@ -1,20 +1,17 @@
1
- import { BitmapKind, DisplayObjectKind, HtmlViewKind, MovieClipKind, QuadBatchKind, RenderViewKind, RichTextKind, Scale9ShapeKind, ShapeKind, SpriteKind, TextLabelKind, TilemapKind, VideoKind, } from '@flighthq/types';
2
- import { defaultBitmapHitTestHandler, defaultNode2DHitTestHandler, defaultHtmlViewHitTestHandler, defaultMovieClipHitTestHandler, defaultRenderViewHitTestHandler, defaultRichTextHitTestHandler, defaultShapeHitTestHandler, defaultTextHitTestHandler, defaultVideoHitTestHandler, } from './displayHitTests';
1
+ import { DisplayObjectKind, HtmlViewKind, MovieClipKind, QuadBatchKind, RichTextKind, Scale9ShapeKind, ShapeKind, SpriteKind, TextLabelKind, TilemapKind, } from '@flighthq/types/contract';
2
+ import { defaultNode2DHitTestHandler, defaultHtmlViewHitTestHandler, defaultMovieClipHitTestHandler, defaultRichTextHitTestHandler, defaultShapeHitTestHandler, defaultTextHitTestHandler, } from './displayHitTests';
3
3
  import { registerHitTest } from './hitTests';
4
4
  import { defaultQuadBatchHitTestHandler, defaultSpriteHitTestHandler, defaultTilemapHitTestHandler, } from './spriteHitTests';
5
5
  export function registerDefaultHitTests() {
6
- registerHitTest(BitmapKind, defaultBitmapHitTestHandler);
7
6
  registerHitTest(DisplayObjectKind, defaultNode2DHitTestHandler);
8
7
  registerHitTest(HtmlViewKind, defaultHtmlViewHitTestHandler);
9
8
  registerHitTest(MovieClipKind, defaultMovieClipHitTestHandler);
10
9
  registerHitTest(QuadBatchKind, defaultQuadBatchHitTestHandler);
11
- registerHitTest(RenderViewKind, defaultRenderViewHitTestHandler);
12
10
  registerHitTest(RichTextKind, defaultRichTextHitTestHandler);
13
11
  registerHitTest(Scale9ShapeKind, defaultShapeHitTestHandler);
14
12
  registerHitTest(ShapeKind, defaultShapeHitTestHandler);
15
13
  registerHitTest(SpriteKind, defaultSpriteHitTestHandler);
16
14
  registerHitTest(TextLabelKind, defaultTextHitTestHandler);
17
15
  registerHitTest(TilemapKind, defaultTilemapHitTestHandler);
18
- registerHitTest(VideoKind, defaultVideoHitTestHandler);
19
16
  }
20
17
  //# sourceMappingURL=registerDefaultHitTests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerDefaultHitTests.js","sourceRoot":"","sources":["../src/registerDefaultHitTests.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,uBAAuB;IACrC,eAAe,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IACzD,eAAe,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IAChE,eAAe,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;IAC7D,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC/D,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC/D,eAAe,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;IACjE,eAAe,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;IAC7D,eAAe,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;IAC7D,eAAe,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACvD,eAAe,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IACzD,eAAe,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IAC1D,eAAe,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;IAC3D,eAAe,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"registerDefaultHitTests.js","sourceRoot":"","sources":["../src/registerDefaultHitTests.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,uBAAuB;IACrC,eAAe,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IAChE,eAAe,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;IAC7D,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC/D,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC/D,eAAe,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;IAC7D,eAAe,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;IAC7D,eAAe,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACvD,eAAe,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IACzD,eAAe,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IAC1D,eAAe,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,8 +1,8 @@
1
- import { inverseMatrixTransformPointXY } from '@flighthq/geometry';
2
- import { getNodeWorldMatrix } from '@flighthq/node';
3
- import { containsPathPoint } from '@flighthq/path';
4
- import { getShapeFillRegions } from '@flighthq/shape';
5
- import { Scale9ShapeKind, ShapeKind } from '@flighthq/types';
1
+ import { inverseMatrixTransformPointXY } from '@flighthq/geometry/contract';
2
+ import { getNodeWorldMatrix } from '@flighthq/node/contract';
3
+ import { containsPathPoint } from '@flighthq/path/contract';
4
+ import { getShapeFillRegions } from '@flighthq/shape/contract';
5
+ import { Scale9ShapeKind, ShapeKind } from '@flighthq/types/contract';
6
6
  import { registerHitTestPrecise } from './hitTests';
7
7
  /**
8
8
  * Opt-in exact hit provider for shapes: the `*Precise` queries then hit a Shape/Scale9Shape only where
@@ -1 +1 @@
1
- {"version":3,"file":"registerShapeHitTest.js","sourceRoot":"","sources":["../src/registerShapeHitTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACpD,sBAAsB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,gGAAgG;AAChG,SAAS,gBAAgB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC7D,MAAM,OAAO,GAAG,mBAAmB,CAAE,MAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAEhC,6BAA6B,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,MAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"registerShapeHitTest.js","sourceRoot":"","sources":["../src/registerShapeHitTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACpD,sBAAsB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,gGAAgG;AAChG,SAAS,gBAAgB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IAC7D,MAAM,OAAO,GAAG,mBAAmB,CAAE,MAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAEhC,6BAA6B,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,MAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Opt-in exact hit provider for bitmaps: the `*Precise` queries then hit a Bitmap only where its pixel
2
+ * Opt-in exact hit provider for bitmaps: the `*Precise` queries then hit a Sprite only where its pixel
3
3
  * alpha meets `alphaThreshold` (0..255). Within the node's bounds but where the pixels aren't readable
4
4
  * (no image, a GPU-only texture, or a headless environment that can't rasterize), it falls back to a
5
5
  * bounds hit rather than throwing — best-available precision for that instance.
6
6
  *
7
- * Importing this module is the opt-in — it pulls `@flighthq/surface`, so the base interaction bundle
7
+ * Importing this module is the opt-in — it pulls `@flighthq/bitmap`, so the base interaction bundle
8
8
  * stays free of it (tree-shaken unless referenced).
9
9
  */
10
- export declare function registerBitmapHitTest(alphaThreshold?: number): void;
11
- //# sourceMappingURL=registerBitmapHitTest.d.ts.map
10
+ export declare function registerSpriteHitTest(alphaThreshold?: number): void;
11
+ //# sourceMappingURL=registerSpriteHitTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerSpriteHitTest.d.ts","sourceRoot":"","sources":["../src/registerSpriteHitTest.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,GAAE,MAAU,GAAG,IAAI,CAEtE"}
@@ -0,0 +1,62 @@
1
+ import { captureBitmapFromImageResource, getBitmapPixelChannel } from '@flighthq/bitmap/contract';
2
+ import { inverseMatrixTransformPointXY } from '@flighthq/geometry/contract';
3
+ import { getNodeWorldMatrix } from '@flighthq/node/contract';
4
+ import { BitmapTextureBackingKind, ImageChannel, ImageTextureBackingKind, SpriteKind } from '@flighthq/types/contract';
5
+ import { hitTestGraphLocalBounds, registerHitTestPrecise } from './hitTests';
6
+ /**
7
+ * Opt-in exact hit provider for bitmaps: the `*Precise` queries then hit a Sprite only where its pixel
8
+ * alpha meets `alphaThreshold` (0..255). Within the node's bounds but where the pixels aren't readable
9
+ * (no image, a GPU-only texture, or a headless environment that can't rasterize), it falls back to a
10
+ * bounds hit rather than throwing — best-available precision for that instance.
11
+ *
12
+ * Importing this module is the opt-in — it pulls `@flighthq/bitmap`, so the base interaction bundle
13
+ * stays free of it (tree-shaken unless referenced).
14
+ */
15
+ export function registerSpriteHitTest(alphaThreshold = 1) {
16
+ registerHitTestPrecise(SpriteKind, (source, x, y) => hitTestSpriteAlpha(source, x, y, alphaThreshold));
17
+ }
18
+ // Returns 0 on a hit (opaque pixel, or bounds fallback when pixels are unreadable), -1 on a miss.
19
+ function hitTestSpriteAlpha(source, x, y, alphaThreshold) {
20
+ if (!hitTestGraphLocalBounds(source, x, y))
21
+ return -1;
22
+ const sprite = source;
23
+ const texture = sprite.data.texture;
24
+ if (texture === null || texture.storage.dimension !== '2d')
25
+ return 0;
26
+ const image = texture.storage.image;
27
+ if (image === null)
28
+ return 0;
29
+ const bitmap = bitmapForImage(image);
30
+ if (bitmap === null)
31
+ return 0;
32
+ inverseMatrixTransformPointXY(bitmapAlphaLocalPoint, getNodeWorldMatrix(source), x, y);
33
+ const px = Math.floor(texture.uvOffset.x * image.width + bitmapAlphaLocalPoint.x);
34
+ const py = Math.floor(texture.uvOffset.y * image.height + bitmapAlphaLocalPoint.y);
35
+ if (px < 0 || py < 0 || px >= bitmap.width || py >= bitmap.height)
36
+ return -1;
37
+ return getBitmapPixelChannel(bitmap, px, py, ImageChannel.Alpha) >= alphaThreshold ? 0 : -1;
38
+ }
39
+ function bitmapForImage(image) {
40
+ if (image.kind === BitmapTextureBackingKind)
41
+ return image;
42
+ if (image.kind !== ImageTextureBackingKind)
43
+ return null;
44
+ const resource = image;
45
+ const cached = bitmapCache.get(resource);
46
+ if (cached !== undefined)
47
+ return cached;
48
+ let bitmap = null;
49
+ try {
50
+ bitmap = captureBitmapFromImageResource(resource);
51
+ }
52
+ catch {
53
+ bitmap = null;
54
+ }
55
+ // Cache only successes so an image that is not yet readable is retried later.
56
+ if (bitmap !== null)
57
+ bitmapCache.set(resource, bitmap);
58
+ return bitmap;
59
+ }
60
+ const bitmapAlphaLocalPoint = { x: 0, y: 0 };
61
+ const bitmapCache = new WeakMap();
62
+ //# sourceMappingURL=registerSpriteHitTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerSpriteHitTest.js","sourceRoot":"","sources":["../src/registerSpriteHitTest.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { inverseMatrixTransformPointXY } from '@flighthq/geometry';
2
- import { getNodeWorldMatrix } from '@flighthq/node';
3
- import { getTextLayout } from '@flighthq/text';
4
- import { computeRichTextCharIndexAtPoint } from '@flighthq/textlayout';
5
- import { RichTextKind, TextLabelKind } from '@flighthq/types';
1
+ import { inverseMatrixTransformPointXY } from '@flighthq/geometry/contract';
2
+ import { getNodeWorldMatrix } from '@flighthq/node/contract';
3
+ import { getTextLayout } from '@flighthq/text/contract';
4
+ import { computeRichTextCharIndexAtPoint } from '@flighthq/textlayout/contract';
5
+ import { RichTextKind, TextLabelKind } from '@flighthq/types/contract';
6
6
  import { hitTestGraphLocalBounds, registerHitTestPrecise } from './hitTests';
7
7
  /**
8
8
  * Opt-in exact hit provider for text: a text field still hits across its whole box (like coarse), but the
@@ -1 +1 @@
1
- {"version":3,"file":"registerTextHitTest.js","sourceRoot":"","sources":["../src/registerTextHitTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB;IACjC,sBAAsB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAC5D,sBAAsB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC7D,CAAC;AAED,2GAA2G;AAC3G,SAAS,oBAAoB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IACjE,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAmB,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC9B,6BAA6B,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,MAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,OAAO,+BAA+B,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"registerTextHitTest.js","sourceRoot":"","sources":["../src/registerTextHitTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB;IACjC,sBAAsB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAC5D,sBAAsB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC7D,CAAC;AAED,2GAA2G;AAC3G,SAAS,oBAAoB,CAAC,MAAe,EAAE,CAAS,EAAE,CAAS;IACjE,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAmB,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC9B,6BAA6B,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,MAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,OAAO,+BAA+B,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Node2D, Rectangle } from '@flighthq/types';
1
+ import type { Node2D, Rectangle } from '@flighthq/types/contract';
2
2
  export declare function hitTestAreaQuery(root: Node2D, rect: Readonly<Rectangle>, out?: Node2D[]): Node2D[];
3
3
  export declare function hitTestAreaQueryCircle(root: Node2D, cx: number, cy: number, radius: number, out?: Node2D[]): Node2D[];
4
4
  //# sourceMappingURL=spatialQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spatialQuery.d.ts","sourceRoot":"","sources":["../src/spatialQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAgBtG;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAM,EAAO,GACjB,MAAM,EAAE,CAoBV"}
1
+ {"version":3,"file":"spatialQuery.d.ts","sourceRoot":"","sources":["../src/spatialQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAElE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAgBtG;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAM,EAAO,GACjB,MAAM,EAAE,CAoBV"}
@@ -1,5 +1,5 @@
1
- import { intersectsRectangle } from '@flighthq/geometry';
2
- import { getNodeRuntime, getNodeWorldBoundsRectangle } from '@flighthq/node';
1
+ import { intersectsRectangle } from '@flighthq/geometry/contract';
2
+ import { getNodeRuntime, getNodeWorldBoundsRectangle } from '@flighthq/node/contract';
3
3
  export function hitTestAreaQuery(root, rect, out = []) {
4
4
  if (!root.enabled)
5
5
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"spatialQuery.js","sourceRoot":"","sources":["../src/spatialQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAG7E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAyB,EAAE,MAAgB,EAAE;IAC1F,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAE9B,MAAM,WAAW,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,KAAe,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,EAAU,EACV,EAAU,EACV,MAAc,EACd,MAAgB,EAAE;IAElB,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAE9B,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,sBAAsB,CAAC,KAAe,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"spatialQuery.js","sourceRoot":"","sources":["../src/spatialQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGtF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAyB,EAAE,MAAgB,EAAE;IAC1F,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAE9B,MAAM,WAAW,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,KAAe,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,EAAU,EACV,EAAU,EACV,MAAc,EACd,MAAgB,EAAE;IAElB,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAE9B,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,sBAAsB,CAAC,KAAe,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { NodeAny } from '@flighthq/types';
1
+ import type { NodeAny } from '@flighthq/types/contract';
2
2
  export declare function defaultQuadBatchHitTestHandler(source: NodeAny, x: number, y: number): boolean;
3
3
  export declare function defaultSpriteHitTestHandler(source: NodeAny, x: number, y: number): boolean;
4
4
  export declare function defaultTilemapHitTestHandler(source: NodeAny, x: number, y: number): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"spriteHitTests.d.ts","sourceRoot":"","sources":["../src/spriteHitTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1F;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE3F"}
1
+ {"version":3,"file":"spriteHitTests.d.ts","sourceRoot":"","sources":["../src/spriteHitTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAIxD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1F;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE3F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/interaction",
3
- "version": "0.2.1-next.841.373388f",
3
+ "version": "0.3.0-next.1032.e2b99fc",
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,21 +36,22 @@
32
36
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
33
37
  },
34
38
  "dependencies": {
35
- "@flighthq/geometry": "0.2.1-next.841.373388f",
36
- "@flighthq/node": "0.2.1-next.841.373388f",
37
- "@flighthq/scene2d": "0.2.1-next.841.373388f",
38
- "@flighthq/log": "0.2.1-next.841.373388f",
39
- "@flighthq/path": "0.2.1-next.841.373388f",
40
- "@flighthq/shape": "0.2.1-next.841.373388f",
41
- "@flighthq/spatial": "0.2.1-next.841.373388f",
42
- "@flighthq/signals": "0.2.1-next.841.373388f",
43
- "@flighthq/surface": "0.2.1-next.841.373388f",
44
- "@flighthq/text": "0.2.1-next.841.373388f",
45
- "@flighthq/textlayout": "0.2.1-next.841.373388f",
46
- "@flighthq/types": "0.2.1-next.841.373388f"
39
+ "@flighthq/geometry": "0.3.0-next.1032.e2b99fc",
40
+ "@flighthq/node": "0.3.0-next.1032.e2b99fc",
41
+ "@flighthq/scene2d": "0.3.0-next.1032.e2b99fc",
42
+ "@flighthq/log": "0.3.0-next.1032.e2b99fc",
43
+ "@flighthq/path": "0.3.0-next.1032.e2b99fc",
44
+ "@flighthq/shape": "0.3.0-next.1032.e2b99fc",
45
+ "@flighthq/spatial": "0.3.0-next.1032.e2b99fc",
46
+ "@flighthq/signals": "0.3.0-next.1032.e2b99fc",
47
+ "@flighthq/bitmap": "0.3.0-next.1032.e2b99fc",
48
+ "@flighthq/text": "0.3.0-next.1032.e2b99fc",
49
+ "@flighthq/textlayout": "0.3.0-next.1032.e2b99fc",
50
+ "@flighthq/types": "0.3.0-next.1032.e2b99fc"
47
51
  },
48
52
  "devDependencies": {
49
- "@flighthq/sprite": "*",
53
+ "@flighthq/quadbatch": "*",
54
+ "@flighthq/tilemap": "*",
50
55
  "typescript": "^5.3.0"
51
56
  },
52
57
  "description": "Hit testing: point-in-node tests and object overlap detection",
@@ -1,4 +1,4 @@
1
- import type { Cursor } from '@flighthq/types';
1
+ import type { Cursor } from '@flighthq/types/contract';
2
2
 
3
3
  import { createWebCursorBackend } from './cursorBackend';
4
4
 
@@ -1,18 +1,15 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { createDisplayObject } from '@flighthq/scene2d';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { createDisplayObject } from '@flighthq/scene2d/contract';
4
4
 
5
5
  import {
6
- defaultBitmapHitTestHandler,
7
6
  defaultNode2DHitTestHandler,
8
7
  defaultHtmlViewHitTestHandler,
9
8
  defaultMovieClipHitTestHandler,
10
- defaultRenderViewHitTestHandler,
11
9
  defaultRichTextHitTestHandler,
12
10
  defaultShapeHitTestHandler,
13
11
  defaultTextHitTestHandler,
14
12
  defaultTextInputHitTestHandler,
15
- defaultVideoHitTestHandler,
16
13
  } from './displayHitTests';
17
14
 
18
15
  function makeNode2D() {
@@ -21,18 +18,6 @@ function makeNode2D() {
21
18
  return obj;
22
19
  }
23
20
 
24
- describe('defaultBitmapHitTestHandler', () => {
25
- it('returns true when point is within local bounds', () => {
26
- const obj = makeNode2D();
27
- expect(defaultBitmapHitTestHandler(obj, 50, 50)).toBe(true);
28
- });
29
-
30
- it('returns false when point is outside local bounds', () => {
31
- const obj = makeNode2D();
32
- expect(defaultBitmapHitTestHandler(obj, 200, 200)).toBe(false);
33
- });
34
- });
35
-
36
21
  describe('defaultHtmlViewHitTestHandler', () => {
37
22
  it('always returns false — browser manages HtmlView hit testing', () => {
38
23
  const obj = makeNode2D();
@@ -56,18 +41,6 @@ describe('defaultNode2DHitTestHandler', () => {
56
41
  });
57
42
  });
58
43
 
59
- describe('defaultRenderViewHitTestHandler', () => {
60
- it('returns true when point is within local bounds', () => {
61
- const obj = makeNode2D();
62
- expect(defaultRenderViewHitTestHandler(obj, 50, 50)).toBe(true);
63
- });
64
-
65
- it('returns false when point is outside local bounds', () => {
66
- const obj = makeNode2D();
67
- expect(defaultRenderViewHitTestHandler(obj, 200, 200)).toBe(false);
68
- });
69
- });
70
-
71
44
  describe('defaultRichTextHitTestHandler', () => {
72
45
  it('returns true when point is within local bounds', () => {
73
46
  const obj = makeNode2D();
@@ -115,15 +88,3 @@ describe('defaultTextInputHitTestHandler', () => {
115
88
  expect(defaultTextInputHitTestHandler(obj, 200, 200)).toBe(false);
116
89
  });
117
90
  });
118
-
119
- describe('defaultVideoHitTestHandler', () => {
120
- it('returns true when point is within local bounds', () => {
121
- const obj = makeNode2D();
122
- expect(defaultVideoHitTestHandler(obj, 50, 50)).toBe(true);
123
- });
124
-
125
- it('returns false when point is outside local bounds', () => {
126
- const obj = makeNode2D();
127
- expect(defaultVideoHitTestHandler(obj, 200, 200)).toBe(false);
128
- });
129
- });
@@ -1,6 +1,6 @@
1
- import { createRectangle, setRectangle } from '@flighthq/geometry';
2
- import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { createDisplayObject } from '@flighthq/scene2d';
1
+ import { createRectangle, setRectangle } from '@flighthq/geometry/contract';
2
+ import { getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { createDisplayObject } from '@flighthq/scene2d/contract';
4
4
 
5
5
  import { containsNode2D, getNode2DOverlapRectangle, hitTestNode2DsShape } from './displayObjectOverlap';
6
6
 
@@ -1,6 +1,6 @@
1
- import { addLogSink, createMemoryLogSink, getMemoryLogSinkEntries, removeLogSink } from '@flighthq/log';
2
- import { addNodeChild } from '@flighthq/node';
3
- import { createDisplayObject } from '@flighthq/scene2d';
1
+ import { addLogSink, createMemoryLogSink, getMemoryLogSinkEntries, removeLogSink } from '@flighthq/log/contract';
2
+ import { addNodeChild } from '@flighthq/node/contract';
3
+ import { createDisplayObject } from '@flighthq/scene2d/contract';
4
4
 
5
5
  import {
6
6
  disableInteractionGuards,
@@ -1,8 +1,8 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
3
- import { createDisplayObject } from '@flighthq/scene2d';
4
- import { connectSignal, createSignal, emitSignal } from '@flighthq/signals';
5
- import type { Node2D, FocusEventData, InputKeyboardData } from '@flighthq/types';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node/contract';
3
+ import { createDisplayObject } from '@flighthq/scene2d/contract';
4
+ import { connectSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
5
+ import type { Node2D, FocusEventData, InputKeyboardData } from '@flighthq/types/contract';
6
6
 
7
7
  import {
8
8
  clearFocus,
@@ -1,9 +1,9 @@
1
- import { createRectangle, setRectangle } from '@flighthq/geometry';
2
- import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
3
- import { appendPathRectangle, createPath } from '@flighthq/path';
4
- import { createDisplayObject, createNode2D, getNode2DRuntime } from '@flighthq/scene2d';
5
- import type { Node2D, Node2DRuntime, HitTestResult, NodeAny } from '@flighthq/types';
6
- import { DisplayObjectKind } from '@flighthq/types';
1
+ import { createRectangle, setRectangle } from '@flighthq/geometry/contract';
2
+ import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node/contract';
3
+ import { appendPathRectangle, createPath } from '@flighthq/path/contract';
4
+ import { createDisplayObject, createNode2D, getNode2DRuntime } from '@flighthq/scene2d/contract';
5
+ import type { Node2D, Node2DRuntime, HitTestResult, NodeAny } from '@flighthq/types/contract';
6
+ import { DisplayObjectKind } from '@flighthq/types/contract';
7
7
 
8
8
  import {
9
9
  describeGraphHit,
@@ -1,9 +1,14 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { addNodeChild, createNode, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
3
- import { createDisplayObject } from '@flighthq/scene2d';
4
- import { connectSignal, createSignal, emitSignal } from '@flighthq/signals';
5
- import type { Cursor, InputKeyboardData, InputPointerData, InputSignals } from '@flighthq/types';
6
- import { DisplayObjectKind } from '@flighthq/types';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import {
3
+ addNodeChild,
4
+ createNode,
5
+ getNodeLocalBoundsRectangle,
6
+ invalidateNodeLocalTransform,
7
+ } from '@flighthq/node/contract';
8
+ import { createDisplayObject } from '@flighthq/scene2d/contract';
9
+ import { connectSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
10
+ import type { Cursor, InputKeyboardData, InputPointerData, InputSignals } from '@flighthq/types/contract';
11
+ import { DisplayObjectKind } from '@flighthq/types/contract';
7
12
 
8
13
  import { hitTestGraphLocalBounds } from './hitTests';
9
14
  import { registerHitTest } from './hitTests';
@@ -1,8 +1,8 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node';
3
- import { createDisplayObject, createNode2D } from '@flighthq/scene2d';
4
- import { createSpatialIndex, createUniformGridSpatialBackend } from '@flighthq/spatial';
5
- import { DisplayObjectKind } from '@flighthq/types';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { addNodeChild, getNodeLocalBoundsRectangle, invalidateNodeLocalTransform } from '@flighthq/node/contract';
3
+ import { createDisplayObject, createNode2D } from '@flighthq/scene2d/contract';
4
+ import { createSpatialIndex, createUniformGridSpatialBackend } from '@flighthq/spatial/contract';
5
+ import { DisplayObjectKind } from '@flighthq/types/contract';
6
6
 
7
7
  import { hitTestGraphLocalBounds, registerHitTest } from './hitTests';
8
8
  import { createInteractionManager } from './interactionManager';
@@ -1,5 +1,5 @@
1
- import { createRectangle } from '@flighthq/geometry';
2
- import { createDisplayObject } from '@flighthq/scene2d';
1
+ import { createRectangle } from '@flighthq/geometry/contract';
2
+ import { createDisplayObject } from '@flighthq/scene2d/contract';
3
3
 
4
4
  import {
5
5
  createNodeInteractionState,
@@ -1,7 +1,7 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { createBitmap, createScene2D } from '@flighthq/scene2d';
4
- import { createShape } from '@flighthq/shape';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { createSprite, createScene2D } from '@flighthq/scene2d/contract';
4
+ import { createShape } from '@flighthq/shape/contract';
5
5
 
6
6
  import { findGraphHitTarget } from './hitTests';
7
7
  import { setNodeHitTestEnabled } from './nodeInteractionState';
@@ -11,7 +11,7 @@ describe('registerDefaultHitTests', () => {
11
11
  it('registers all built-in kinds so findGraphHitTarget resolves them', () => {
12
12
  registerDefaultHitTests();
13
13
 
14
- const bitmap = createBitmap();
14
+ const bitmap = createSprite();
15
15
  setRectangle(getNodeLocalBoundsRectangle(bitmap), 0, 0, 100, 100);
16
16
  setNodeHitTestEnabled(bitmap, true);
17
17
  expect(findGraphHitTarget(bitmap, 50, 50)).toBe(bitmap);
@@ -1,7 +1,7 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { appendShapeBeginFill, appendShapeCircle, appendShapeEndFill, createShape } from '@flighthq/shape';
4
- import { ShapeKind } from '@flighthq/types';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { appendShapeBeginFill, appendShapeCircle, appendShapeEndFill, createShape } from '@flighthq/shape/contract';
4
+ import { ShapeKind } from '@flighthq/types/contract';
5
5
 
6
6
  import { findGraphHitTargetPrecise, hitTestGraphLocalBounds, hitTestGraphPoint, registerHitTest } from './hitTests';
7
7
  import { setNodeHitTestEnabled } from './nodeInteractionState';
@@ -1,17 +1,17 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { createBitmap } from '@flighthq/scene2d';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { createSprite } from '@flighthq/scene2d/contract';
4
4
 
5
5
  import { findGraphHitTargetPrecise } from './hitTests';
6
6
  import { setNodeHitTestEnabled } from './nodeInteractionState';
7
- import { registerBitmapHitTest } from './registerBitmapHitTest';
7
+ import { registerSpriteHitTest } from './registerSpriteHitTest';
8
8
 
9
- describe('registerBitmapHitTest', () => {
9
+ describe('registerSpriteHitTest', () => {
10
10
  // Positive alpha-accuracy is exercised by the functional suite (jsdom cannot rasterize pixels); this
11
11
  // covers the wiring and the documented bounds fallback when no readable image is present.
12
- it('installs a precise Bitmap provider with a no-image bounds fallback', () => {
13
- registerBitmapHitTest();
14
- const bitmap = createBitmap();
12
+ it('installs a precise Sprite provider with a no-image bounds fallback', () => {
13
+ registerSpriteHitTest();
14
+ const bitmap = createSprite();
15
15
  setRectangle(getNodeLocalBoundsRectangle(bitmap), 0, 0, 100, 100);
16
16
  setNodeHitTestEnabled(bitmap, true);
17
17
 
@@ -1,9 +1,9 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { createTextLabel, setTextLabelString } from '@flighthq/text';
4
- import { setTextLayoutMeasureProvider } from '@flighthq/textlayout';
5
- import type { HitTestResult, TextLabel } from '@flighthq/types';
6
- import { TextLabelKind } from '@flighthq/types';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { createTextLabel, setTextLabelString } from '@flighthq/text/contract';
4
+ import { setTextLayoutMeasureProvider } from '@flighthq/textlayout/contract';
5
+ import type { HitTestResult, TextLabel } from '@flighthq/types/contract';
6
+ import { TextLabelKind } from '@flighthq/types/contract';
7
7
 
8
8
  import { describeGraphHit, findGraphHitTargetPrecise, hitTestGraphLocalBounds, registerHitTest } from './hitTests';
9
9
  import { setNodeHitTestEnabled } from './nodeInteractionState';
@@ -1,6 +1,6 @@
1
- import { createRectangle, setRectangle } from '@flighthq/geometry';
2
- import { addNodeChild, getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { createDisplayObject } from '@flighthq/scene2d';
1
+ import { createRectangle, setRectangle } from '@flighthq/geometry/contract';
2
+ import { addNodeChild, getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { createDisplayObject } from '@flighthq/scene2d/contract';
4
4
 
5
5
  import { hitTestAreaQuery, hitTestAreaQueryCircle } from './spatialQuery';
6
6
 
@@ -1,6 +1,8 @@
1
- import { setRectangle } from '@flighthq/geometry';
2
- import { addNodeChild, getNodeLocalBoundsRectangle } from '@flighthq/node';
3
- import { createQuadBatch, createSprite, createTilemap } from '@flighthq/sprite';
1
+ import { setRectangle } from '@flighthq/geometry/contract';
2
+ import { addNodeChild, getNodeLocalBoundsRectangle } from '@flighthq/node/contract';
3
+ import { createQuadBatch } from '@flighthq/quadbatch/contract';
4
+ import { createSprite } from '@flighthq/scene2d/contract';
5
+ import { createTilemap } from '@flighthq/tilemap/contract';
4
6
 
5
7
  import {
6
8
  defaultQuadBatchHitTestHandler,
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerBitmapHitTest.d.ts","sourceRoot":"","sources":["../src/registerBitmapHitTest.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,GAAE,MAAU,GAAG,IAAI,CAEtE"}