@flighthq/shape 0.3.1-next.975.01aea94 → 0.4.0-edge.1908.751021c

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 (50) hide show
  1. package/dist/contract.d.ts +4 -0
  2. package/dist/contract.d.ts.map +1 -1
  3. package/dist/contract.js +4 -0
  4. package/dist/contract.js.map +1 -1
  5. package/dist/enableShapeBoundsGuards.d.ts +4 -0
  6. package/dist/enableShapeBoundsGuards.d.ts.map +1 -0
  7. package/dist/enableShapeBoundsGuards.js +25 -0
  8. package/dist/enableShapeBoundsGuards.js.map +1 -0
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/morphShapePaint.js +9 -10
  14. package/dist/morphShapePaint.js.map +1 -1
  15. package/dist/registerDefaultShapeBoundsCommands.d.ts +2 -0
  16. package/dist/registerDefaultShapeBoundsCommands.d.ts.map +1 -0
  17. package/dist/registerDefaultShapeBoundsCommands.js +80 -0
  18. package/dist/registerDefaultShapeBoundsCommands.js.map +1 -0
  19. package/dist/shape.d.ts +2 -2
  20. package/dist/shape.d.ts.map +1 -1
  21. package/dist/shape.js +27 -269
  22. package/dist/shape.js.map +1 -1
  23. package/dist/shapeBounds.d.ts +18 -0
  24. package/dist/shapeBounds.d.ts.map +1 -0
  25. package/dist/shapeBounds.js +527 -0
  26. package/dist/shapeBounds.js.map +1 -0
  27. package/dist/shapeBoundsRegistry.d.ts +6 -0
  28. package/dist/shapeBoundsRegistry.d.ts.map +1 -0
  29. package/dist/shapeBoundsRegistry.js +24 -0
  30. package/dist/shapeBoundsRegistry.js.map +1 -0
  31. package/dist/shapeCommands.d.ts +2 -2
  32. package/dist/shapeCommands.d.ts.map +1 -1
  33. package/dist/shapeCommands.js +2 -2
  34. package/dist/shapeCommands.js.map +1 -1
  35. package/package.json +9 -8
  36. package/src/enableShapeBoundsGuards.test.ts +64 -0
  37. package/src/explainMorphShapeGradientEndpoints.test.ts +10 -10
  38. package/src/explainShapeTessellation.test.ts +5 -5
  39. package/src/morphShape.test.ts +13 -3
  40. package/src/morphShapeAnimation.test.ts +2 -2
  41. package/src/morphShapePaint.test.ts +19 -19
  42. package/src/registerDefaultShapeBoundsCommands.test.ts +64 -0
  43. package/src/scale9ShapeCommands.test.ts +3 -3
  44. package/src/shape.test.ts +25 -15
  45. package/src/shapeBounds.test.ts +270 -0
  46. package/src/shapeBoundsRegistry.test.ts +76 -0
  47. package/src/shapeCommands.test.ts +18 -18
  48. package/src/shapeFill.test.ts +17 -17
  49. package/src/shapeStroke.test.ts +14 -14
  50. package/src/shapeStrokeOutline.test.ts +3 -3
@@ -4,10 +4,14 @@ export * from './morphShapeAnimation';
4
4
  export { appendMorphShapeBeginFill, appendMorphShapeBeginGradientFill, appendMorphShapeBeginTextureFill, appendMorphShapeLineGradientStyle, appendMorphShapeLineStyle, appendMorphShapeLineTextureStyle, } from './morphShapePaint';
5
5
  export * from './scale9Shape';
6
6
  export * from './shape';
7
+ export * from './shapeBounds';
8
+ export * from './shapeBoundsRegistry';
9
+ export * from './registerDefaultShapeBoundsCommands';
7
10
  export * from './shapeCommands';
8
11
  export * from './shapeFill';
9
12
  export * from './shapeStroke';
10
13
  export * from './shapeStrokeOutline';
11
14
  export * from './scale9ShapeCommands';
12
15
  export * from './explainShapeTessellation';
16
+ export * from './enableShapeBoundsGuards';
13
17
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC"}
package/dist/contract.js CHANGED
@@ -4,10 +4,14 @@ export * from './morphShapeAnimation';
4
4
  export { appendMorphShapeBeginFill, appendMorphShapeBeginGradientFill, appendMorphShapeBeginTextureFill, appendMorphShapeLineGradientStyle, appendMorphShapeLineStyle, appendMorphShapeLineTextureStyle, } from './morphShapePaint';
5
5
  export * from './scale9Shape';
6
6
  export * from './shape';
7
+ export * from './shapeBounds';
8
+ export * from './shapeBoundsRegistry';
9
+ export * from './registerDefaultShapeBoundsCommands';
7
10
  export * from './shapeCommands';
8
11
  export * from './shapeFill';
9
12
  export * from './shapeStroke';
10
13
  export * from './shapeStrokeOutline';
11
14
  export * from './scale9ShapeCommands';
12
15
  export * from './explainShapeTessellation';
16
+ export * from './enableShapeBoundsGuards';
13
17
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function areShapeBoundsGuardsEnabled(): boolean;
2
+ export declare function disableShapeBoundsGuards(): void;
3
+ export declare function enableShapeBoundsGuards(): void;
4
+ //# sourceMappingURL=enableShapeBoundsGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableShapeBoundsGuards.d.ts","sourceRoot":"","sources":["../src/enableShapeBoundsGuards.ts"],"names":[],"mappings":"AAMA,wBAAgB,2BAA2B,IAAI,OAAO,CAErD;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAID,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C"}
@@ -0,0 +1,25 @@
1
+ import { logOnce } from '@flighthq/log/contract';
2
+ import { LogLevel } from '@flighthq/types/contract';
3
+ import { setShapeBoundsGuard } from './shapeBounds';
4
+ export function areShapeBoundsGuardsEnabled() {
5
+ return _enabled;
6
+ }
7
+ export function disableShapeBoundsGuards() {
8
+ setShapeBoundsGuard(null);
9
+ _enabled = false;
10
+ }
11
+ // Installs opt-in missing-command diagnostics. The traversal and its sentinel stay logger-free; an
12
+ // application that omits this module sheds both @flighthq/log and every byte of the warning text.
13
+ export function enableShapeBoundsGuards() {
14
+ setShapeBoundsGuard(warnOnMissingShapeBoundsCommand);
15
+ _enabled = true;
16
+ }
17
+ function warnOnMissingShapeBoundsCommand(_source, mode, missingCommandKey) {
18
+ logOnce(`shape:bounds-command-missing:${mode}:${missingCommandKey}`, LogLevel.Warn, {
19
+ message: `Shape bounds are incomplete because command '${missingCommandKey}' has no registered bounds contribution. Register its CanvasShapeCommand with explicit fillBounds and strokeBounds, or call explainShapeBounds(shape, mode) to inspect every missing key.`,
20
+ missingCommandKey,
21
+ mode,
22
+ }, 'shape');
23
+ }
24
+ let _enabled = false;
25
+ //# sourceMappingURL=enableShapeBoundsGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableShapeBoundsGuards.js","sourceRoot":"","sources":["../src/enableShapeBoundsGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,UAAU,2BAA2B;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,mGAAmG;AACnG,kGAAkG;AAClG,MAAM,UAAU,uBAAuB;IACrC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;IACrD,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,SAAS,+BAA+B,CACtC,OAAwB,EACxB,IAAqB,EACrB,iBAAyB;IAEzB,OAAO,CACL,gCAAgC,IAAI,IAAI,iBAAiB,EAAE,EAC3D,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EAAE,gDAAgD,iBAAiB,2LAA2L;QACrQ,iBAAiB;QACjB,IAAI;KACL,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { PathCommand, applyAnimationClipToMorphShape, applyMorphShapeAnimationSample, appendMorphShapeBeginFill, appendMorphShapeBeginGradientFill, appendMorphShapeBeginTextureFill, appendMorphShapeLineGradientStyle, appendMorphShapeLineStyle, appendMorphShapeLineTextureStyle, appendMorphShapePath, appendShapeArc, appendShapeArcTo, appendShapeBeginTextureFill, appendShapeBeginFill, appendShapeBeginGradientFill, appendShapeCircle, appendShapeCubicCurveTo, appendShapeCurveTo, appendShapeDrawTriangles, appendShapeEllipse, appendShapeEndFill, appendShapeGeometryCommand, appendShapeLineTextureStyle, appendShapeLineGradientStyle, appendShapeLineStyle, appendShapeLineTo, appendShapeMoveTo, appendShapePath, appendShapePolygon, appendShapePolyline, appendShapeRectangle, appendShapeRoundRectangle, appendShapeRoundRectangleVarying, clearShapeCommands, computeShapeLocalBoundsRectangle, copyShapeCommands, createMorphShape, createMorphShapeAnimationTarget, createScale9Shape, createShape, explainMorphShapeGradientEndpoints, getPathCommandOperandCount, getShapeBounds, getShapeCommandCount, getShapeFillRegions, getShapeStrokeRegions, getShapeStrokeOutlineRegions, hasNonSolidShapeFill, hasNonSolidShapeStroke, hasShapeFill, isShapeEmpty, setMorphShapeProgress, } from './contract';
1
+ export { PathCommand, applyAnimationClipToMorphShape, applyMorphShapeAnimationSample, appendMorphShapeBeginFill, appendMorphShapeBeginGradientFill, appendMorphShapeBeginTextureFill, appendMorphShapeLineGradientStyle, appendMorphShapeLineStyle, appendMorphShapeLineTextureStyle, appendMorphShapePath, appendShapeArc, appendShapeArcTo, appendShapeBeginTextureFill, appendShapeBeginFill, appendShapeBeginGradientFill, appendShapeCircle, appendShapeCubicCurveTo, appendShapeCurveTo, appendShapeDrawTriangles, appendShapeEllipse, appendShapeEndFill, appendShapeGeometryCommand, appendShapeLineTextureStyle, appendShapeLineGradientStyle, appendShapeLineStyle, appendShapeLineTo, appendShapeMoveTo, appendShapePath, appendShapePolygon, appendShapePolyline, appendShapeRectangle, appendShapeRoundRectangle, appendShapeRoundRectangleVarying, clearShapeCommands, computeShapeLocalBoundsRectangle, copyShapeCommands, createMorphShape, createMorphShapeAnimationTarget, createScale9Shape, createShape, areShapeBoundsGuardsEnabled, disableShapeBoundsGuards, enableShapeBoundsGuards, explainShapeBounds, explainMorphShapeGradientEndpoints, getPathCommandOperandCount, getShapeBounds, getShapeCommandCount, getShapeFillRegions, getShapeStrokeRegions, getShapeStrokeOutlineRegions, hasNonSolidShapeFill, hasNonSolidShapeStroke, hasShapeFill, isShapeEmpty, registerDefaultShapeBoundsCommands, setMorphShapeProgress, } from './contract';
2
2
  export * from './scale9ShapeCommands';
3
3
  export * from './explainShapeTessellation';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EAChC,kBAAkB,EAClB,gCAAgC,EAChC,iBAAiB,EACjB,gBAAgB,EAChB,+BAA+B,EAC/B,iBAAiB,EACjB,WAAW,EACX,kCAAkC,EAClC,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EAChC,kBAAkB,EAClB,gCAAgC,EAChC,iBAAiB,EACjB,gBAAgB,EAChB,+BAA+B,EAC/B,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,kCAAkC,EAClC,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,kCAAkC,EAClC,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { PathCommand, applyAnimationClipToMorphShape, applyMorphShapeAnimationSample, appendMorphShapeBeginFill, appendMorphShapeBeginGradientFill, appendMorphShapeBeginTextureFill, appendMorphShapeLineGradientStyle, appendMorphShapeLineStyle, appendMorphShapeLineTextureStyle, appendMorphShapePath, appendShapeArc, appendShapeArcTo, appendShapeBeginTextureFill, appendShapeBeginFill, appendShapeBeginGradientFill, appendShapeCircle, appendShapeCubicCurveTo, appendShapeCurveTo, appendShapeDrawTriangles, appendShapeEllipse, appendShapeEndFill, appendShapeGeometryCommand, appendShapeLineTextureStyle, appendShapeLineGradientStyle, appendShapeLineStyle, appendShapeLineTo, appendShapeMoveTo, appendShapePath, appendShapePolygon, appendShapePolyline, appendShapeRectangle, appendShapeRoundRectangle, appendShapeRoundRectangleVarying, clearShapeCommands, computeShapeLocalBoundsRectangle, copyShapeCommands, createMorphShape, createMorphShapeAnimationTarget, createScale9Shape, createShape, explainMorphShapeGradientEndpoints, getPathCommandOperandCount, getShapeBounds, getShapeCommandCount, getShapeFillRegions, getShapeStrokeRegions, getShapeStrokeOutlineRegions, hasNonSolidShapeFill, hasNonSolidShapeStroke, hasShapeFill, isShapeEmpty, setMorphShapeProgress, } from './contract';
1
+ export { PathCommand, applyAnimationClipToMorphShape, applyMorphShapeAnimationSample, appendMorphShapeBeginFill, appendMorphShapeBeginGradientFill, appendMorphShapeBeginTextureFill, appendMorphShapeLineGradientStyle, appendMorphShapeLineStyle, appendMorphShapeLineTextureStyle, appendMorphShapePath, appendShapeArc, appendShapeArcTo, appendShapeBeginTextureFill, appendShapeBeginFill, appendShapeBeginGradientFill, appendShapeCircle, appendShapeCubicCurveTo, appendShapeCurveTo, appendShapeDrawTriangles, appendShapeEllipse, appendShapeEndFill, appendShapeGeometryCommand, appendShapeLineTextureStyle, appendShapeLineGradientStyle, appendShapeLineStyle, appendShapeLineTo, appendShapeMoveTo, appendShapePath, appendShapePolygon, appendShapePolyline, appendShapeRectangle, appendShapeRoundRectangle, appendShapeRoundRectangleVarying, clearShapeCommands, computeShapeLocalBoundsRectangle, copyShapeCommands, createMorphShape, createMorphShapeAnimationTarget, createScale9Shape, createShape, areShapeBoundsGuardsEnabled, disableShapeBoundsGuards, enableShapeBoundsGuards, explainShapeBounds, explainMorphShapeGradientEndpoints, getPathCommandOperandCount, getShapeBounds, getShapeCommandCount, getShapeFillRegions, getShapeStrokeRegions, getShapeStrokeOutlineRegions, hasNonSolidShapeFill, hasNonSolidShapeStroke, hasShapeFill, isShapeEmpty, registerDefaultShapeBoundsCommands, setMorphShapeProgress, } from './contract';
2
2
  export * from './scale9ShapeCommands';
3
3
  export * from './explainShapeTessellation';
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EAChC,kBAAkB,EAClB,gCAAgC,EAChC,iBAAiB,EACjB,gBAAgB,EAChB,+BAA+B,EAC/B,iBAAiB,EACjB,WAAW,EACX,kCAAkC,EAClC,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,EACzB,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,gCAAgC,EAChC,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EAChC,kBAAkB,EAClB,gCAAgC,EAChC,iBAAiB,EACjB,gBAAgB,EAChB,+BAA+B,EAC/B,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,kCAAkC,EAClC,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,kCAAkC,EAClC,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
@@ -116,7 +116,7 @@ function sampleMorphShapePaintBinding(data, binding, progress) {
116
116
  if (binding.kind === 'color') {
117
117
  if (commands[i] !== 'beginFill')
118
118
  return;
119
- commands[i + 2] = interpolateRgb(binding.startColor, binding.endColor, progress);
119
+ commands[i + 2] = interpolateRgba(binding.startColor, binding.endColor, progress);
120
120
  commands[i + 3] = interpolateNumber(binding.startAlpha, binding.endAlpha, progress);
121
121
  return;
122
122
  }
@@ -124,7 +124,7 @@ function sampleMorphShapePaintBinding(data, binding, progress) {
124
124
  if (commands[i] !== 'lineStyle')
125
125
  return;
126
126
  commands[i + 2] = interpolateNumber(binding.startThickness, binding.endThickness, progress);
127
- commands[i + 3] = interpolateRgb(binding.startColor, binding.endColor, progress);
127
+ commands[i + 3] = interpolateRgba(binding.startColor, binding.endColor, progress);
128
128
  commands[i + 4] = interpolateNumber(binding.startAlpha, binding.endAlpha, progress);
129
129
  return;
130
130
  }
@@ -138,7 +138,7 @@ function sampleMorphShapePaintBinding(data, binding, progress) {
138
138
  const alphas = commands[i + 4];
139
139
  const ratios = commands[i + 5];
140
140
  for (let n = 0; n < binding.startColors.length; n++) {
141
- colors[n] = interpolateRgb(binding.startColors[n], binding.endColors[n], progress);
141
+ colors[n] = interpolateRgba(binding.startColors[n], binding.endColors[n], progress);
142
142
  alphas[n] = interpolateNumber(binding.startAlphas[n], binding.endAlphas[n], progress);
143
143
  ratios[n] = interpolateNumber(binding.startRatios[n], binding.endRatios[n], progress);
144
144
  }
@@ -168,13 +168,12 @@ function interpolateNumber(start, end, progress) {
168
168
  return end;
169
169
  return start + (end - start) * progress;
170
170
  }
171
- // Shape colors are packed 0xRRGGBB. Morph them component-wise like existing color tweens and legacy
172
- // vector formats; clamping each packed channel keeps deliberate progress overshoot representable safely.
173
- function interpolateRgb(start, end, progress) {
174
- const r = interpolateByte((start >>> 16) & 0xff, (end >>> 16) & 0xff, progress);
175
- const g = interpolateByte((start >>> 8) & 0xff, (end >>> 8) & 0xff, progress);
176
- const b = interpolateByte(start & 0xff, end & 0xff, progress);
177
- return r * 0x10000 + g * 0x100 + b;
171
+ function interpolateRgba(start, end, progress) {
172
+ const r = interpolateByte((start >>> 24) & 0xff, (end >>> 24) & 0xff, progress);
173
+ const g = interpolateByte((start >>> 16) & 0xff, (end >>> 16) & 0xff, progress);
174
+ const b = interpolateByte((start >>> 8) & 0xff, (end >>> 8) & 0xff, progress);
175
+ const a = interpolateByte(start & 0xff, end & 0xff, progress);
176
+ return ((r << 24) | (g << 16) | (b << 8) | a) >>> 0;
178
177
  }
179
178
  function interpolateByte(start, end, progress) {
180
179
  return Math.max(0, Math.min(0xff, Math.round(interpolateNumber(start, end, progress))));
@@ -1 +1 @@
1
- {"version":3,"file":"morphShapePaint.js","sourceRoot":"","sources":["../src/morphShapePaint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"morphShapePaint.js","sourceRoot":"","sources":["../src/morphShapePaint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerDefaultShapeBoundsCommands(): void;
2
+ //# sourceMappingURL=registerDefaultShapeBoundsCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerDefaultShapeBoundsCommands.d.ts","sourceRoot":"","sources":["../src/registerDefaultShapeBoundsCommands.ts"],"names":[],"mappings":"AAiBA,wBAAgB,kCAAkC,IAAI,IAAI,CAyEzD"}
@@ -0,0 +1,80 @@
1
+ import { defaultShapeBoundsCubicCurveTo, defaultShapeBoundsCurveTo, defaultShapeBoundsDrawCircle, defaultShapeBoundsDrawEllipse, defaultShapeBoundsDrawPath, defaultShapeBoundsDrawRectangle, defaultShapeBoundsFlush, defaultShapeBoundsLineStyle, defaultShapeBoundsLineTo, defaultShapeBoundsMoveTo, } from './shapeBounds';
2
+ import { registerShapeBoundsCommand } from './shapeBoundsRegistry';
3
+ // Standard Shape geometry is useful before a renderer exists (for example while an SVG importer is
4
+ // resolving objectBoundingBox units). Keep installing it explicit: importing @flighthq/shape must not
5
+ // mutate process policy, while a renderer or headless consumer can opt into the same neutral answers.
6
+ export function registerDefaultShapeBoundsCommands() {
7
+ registerShapeBoundsCommand({
8
+ fillBounds: defaultShapeBoundsFlush,
9
+ key: 'beginTextureFill',
10
+ strokeBounds: defaultShapeBoundsFlush,
11
+ });
12
+ registerShapeBoundsCommand({
13
+ fillBounds: defaultShapeBoundsFlush,
14
+ key: 'beginFill',
15
+ strokeBounds: defaultShapeBoundsFlush,
16
+ });
17
+ registerShapeBoundsCommand({
18
+ fillBounds: defaultShapeBoundsFlush,
19
+ key: 'beginGradientFill',
20
+ strokeBounds: defaultShapeBoundsFlush,
21
+ });
22
+ registerShapeBoundsCommand({
23
+ fillBounds: defaultShapeBoundsCubicCurveTo,
24
+ key: 'cubicCurveTo',
25
+ strokeBounds: defaultShapeBoundsCubicCurveTo,
26
+ });
27
+ registerShapeBoundsCommand({
28
+ fillBounds: defaultShapeBoundsCurveTo,
29
+ key: 'curveTo',
30
+ strokeBounds: defaultShapeBoundsCurveTo,
31
+ });
32
+ registerShapeBoundsCommand({
33
+ fillBounds: defaultShapeBoundsDrawCircle,
34
+ key: 'drawCircle',
35
+ strokeBounds: defaultShapeBoundsDrawCircle,
36
+ });
37
+ registerShapeBoundsCommand({
38
+ fillBounds: defaultShapeBoundsDrawEllipse,
39
+ key: 'drawEllipse',
40
+ strokeBounds: defaultShapeBoundsDrawEllipse,
41
+ });
42
+ registerShapeBoundsCommand({
43
+ fillBounds: defaultShapeBoundsDrawPath,
44
+ key: 'drawPath',
45
+ strokeBounds: defaultShapeBoundsDrawPath,
46
+ });
47
+ registerShapeBoundsCommand({
48
+ fillBounds: defaultShapeBoundsDrawRectangle,
49
+ key: 'drawRectangle',
50
+ strokeBounds: defaultShapeBoundsDrawRectangle,
51
+ });
52
+ registerShapeBoundsCommand({
53
+ fillBounds: defaultShapeBoundsDrawRectangle,
54
+ key: 'drawRoundRectangle',
55
+ strokeBounds: defaultShapeBoundsDrawRectangle,
56
+ });
57
+ registerShapeBoundsCommand({
58
+ fillBounds: defaultShapeBoundsFlush,
59
+ key: 'endFill',
60
+ strokeBounds: defaultShapeBoundsFlush,
61
+ });
62
+ registerShapeBoundsCommand({ fillBounds: null, key: 'lineTextureStyle', strokeBounds: null });
63
+ registerShapeBoundsCommand({ fillBounds: null, key: 'lineGradientStyle', strokeBounds: null });
64
+ registerShapeBoundsCommand({
65
+ fillBounds: defaultShapeBoundsFlush,
66
+ key: 'lineStyle',
67
+ strokeBounds: defaultShapeBoundsLineStyle,
68
+ });
69
+ registerShapeBoundsCommand({
70
+ fillBounds: defaultShapeBoundsLineTo,
71
+ key: 'lineTo',
72
+ strokeBounds: defaultShapeBoundsLineTo,
73
+ });
74
+ registerShapeBoundsCommand({
75
+ fillBounds: defaultShapeBoundsMoveTo,
76
+ key: 'moveTo',
77
+ strokeBounds: defaultShapeBoundsMoveTo,
78
+ });
79
+ }
80
+ //# sourceMappingURL=registerDefaultShapeBoundsCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerDefaultShapeBoundsCommands.js","sourceRoot":"","sources":["../src/registerDefaultShapeBoundsCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,EAC1B,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,mGAAmG;AACnG,sGAAsG;AACtG,sGAAsG;AACtG,MAAM,UAAU,kCAAkC;IAChD,0BAA0B,CAAC;QACzB,UAAU,EAAE,uBAAuB;QACnC,GAAG,EAAE,kBAAkB;QACvB,YAAY,EAAE,uBAAuB;KACtC,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,uBAAuB;QACnC,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,uBAAuB;KACtC,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,uBAAuB;QACnC,GAAG,EAAE,mBAAmB;QACxB,YAAY,EAAE,uBAAuB;KACtC,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,8BAA8B;QAC1C,GAAG,EAAE,cAAc;QACnB,YAAY,EAAE,8BAA8B;KAC7C,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,yBAAyB;QACrC,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,yBAAyB;KACxC,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,4BAA4B;QACxC,GAAG,EAAE,YAAY;QACjB,YAAY,EAAE,4BAA4B;KAC3C,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,6BAA6B;QACzC,GAAG,EAAE,aAAa;QAClB,YAAY,EAAE,6BAA6B;KAC5C,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,0BAA0B;QACtC,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,0BAA0B;KACzC,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,+BAA+B;QAC3C,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,+BAA+B;KAC9C,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,+BAA+B;QAC3C,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,+BAA+B;KAC9C,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,uBAAuB;QACnC,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,uBAAuB;KACtC,CAAC,CAAC;IACH,0BAA0B,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,0BAA0B,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,0BAA0B,CAAC;QACzB,UAAU,EAAE,uBAAuB;QACnC,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,2BAA2B;KAC1C,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,wBAAwB;QACpC,GAAG,EAAE,QAAQ;QACb,YAAY,EAAE,wBAAwB;KACvC,CAAC,CAAC;IACH,0BAA0B,CAAC;QACzB,UAAU,EAAE,wBAAwB;QACpC,GAAG,EAAE,QAAQ;QACb,YAAY,EAAE,wBAAwB;KACvC,CAAC,CAAC;AACL,CAAC"}
package/dist/shape.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import type { BoundsNodeAny, PartialNode, Rectangle, Shape, ShapeData, ShapeRuntime } from '@flighthq/types/contract';
1
+ import type { BoundsNodeAny, PartialNode, Rectangle, Shape, ShapeBoundsMode, ShapeData, ShapeRuntime } from '@flighthq/types/contract';
2
2
  export declare function clearShapeCommands(shape: Shape): void;
3
3
  export declare function computeShapeLocalBoundsRectangle(out: Rectangle, source: Readonly<BoundsNodeAny>): void;
4
4
  export declare function copyShapeCommands(out: Shape, source: Readonly<Shape>): void;
5
5
  export declare function createShape(obj?: Readonly<PartialNode<Shape>>): Shape;
6
6
  export declare function createShapeData(data?: Readonly<Partial<ShapeData>>): ShapeData;
7
7
  export declare function createShapeRuntime(): ShapeRuntime;
8
- export declare function getShapeBounds(out: Rectangle, source: Readonly<Shape>): void;
8
+ export declare function getShapeBounds(out: Rectangle, source: Readonly<Shape>, mode?: ShapeBoundsMode): boolean;
9
9
  export declare function getShapeCommandCount(source: Readonly<Shape>): number;
10
10
  export declare function getShapeRuntime(source: Readonly<Shape>): Readonly<ShapeRuntime>;
11
11
  export declare function isShapeEmpty(source: Readonly<Shape>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,aAAa,EAEb,WAAW,EACX,SAAS,EACT,KAAK,EACL,SAAS,EACT,YAAY,EACb,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAIrD;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAyRtG;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAa3E;AAED,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAErE;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAI9E;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAE5E;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAUpE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAE/E;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAGb,WAAW,EACX,SAAS,EACT,KAAK,EACL,eAAe,EACf,SAAS,EACT,YAAY,EACb,MAAM,0BAA0B,CAAC;AAMlC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAIrD;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAEtG;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAa3E;AAED,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAErE;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAI9E;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAIjD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,GAAE,eAAuB,GAAG,OAAO,CAa9G;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAUpE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAE/E;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAE7D"}