@smoove/core 0.3.1 → 0.3.3

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 (42) hide show
  1. package/dist/engine/sequence.d.ts +30 -0
  2. package/dist/engine/sequence.d.ts.map +1 -1
  3. package/dist/engine/sequence.js +66 -14
  4. package/dist/engine/sequence.js.map +1 -1
  5. package/dist/index.d.ts +2 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/layout/block.d.ts +3 -0
  10. package/dist/layout/block.d.ts.map +1 -1
  11. package/dist/layout/block.js +5 -0
  12. package/dist/layout/block.js.map +1 -1
  13. package/dist/layout/contract.d.ts +20 -0
  14. package/dist/layout/contract.d.ts.map +1 -1
  15. package/dist/layout/contract.js.map +1 -1
  16. package/dist/layout/flex/flex.d.ts +3 -0
  17. package/dist/layout/flex/flex.d.ts.map +1 -1
  18. package/dist/layout/flex/flex.js +5 -0
  19. package/dist/layout/flex/flex.js.map +1 -1
  20. package/dist/layout/flex/mixin.d.ts +4 -1
  21. package/dist/layout/flex/mixin.d.ts.map +1 -1
  22. package/dist/layout/flex/mixin.js +5 -0
  23. package/dist/layout/flex/mixin.js.map +1 -1
  24. package/dist/layout/image.d.ts +3 -0
  25. package/dist/layout/image.d.ts.map +1 -1
  26. package/dist/layout/image.js +5 -0
  27. package/dist/layout/image.js.map +1 -1
  28. package/dist/layout/measure.d.ts +48 -0
  29. package/dist/layout/measure.d.ts.map +1 -0
  30. package/dist/layout/measure.js +105 -0
  31. package/dist/layout/measure.js.map +1 -0
  32. package/dist/layout/shapes.d.ts +39 -13
  33. package/dist/layout/shapes.d.ts.map +1 -1
  34. package/dist/layout/text/ink.d.ts +25 -0
  35. package/dist/layout/text/ink.d.ts.map +1 -0
  36. package/dist/layout/text/ink.js +62 -0
  37. package/dist/layout/text/ink.js.map +1 -0
  38. package/dist/layout/text/text.d.ts +6 -1
  39. package/dist/layout/text/text.d.ts.map +1 -1
  40. package/dist/layout/text/text.js +33 -0
  41. package/dist/layout/text/text.js.map +1 -1
  42. package/package.json +7 -1
@@ -39,8 +39,23 @@ export declare class Sequence extends Konva.Layer implements MarkerSource {
39
39
  private readonly _updaters;
40
40
  private _active;
41
41
  private _media;
42
+ private _mediaDirty;
42
43
  private _lastLocal;
43
44
  constructor(opts?: SequenceOptions);
45
+ /**
46
+ * Konva's `add`, plus a tickable-cache invalidation: media/text-ticker nodes
47
+ * added to an already-active Sequence (the usual `comp.add(seq)` then
48
+ * `seq.add(video)` order) must still join the frame loop. Direct adds cover
49
+ * the common case; nodes buried inside a subtree that is itself added here are
50
+ * caught too, because {@link _tickables} re-`find()`s the whole subtree.
51
+ */
52
+ add(...children: (Konva.Group | Konva.Shape)[]): this;
53
+ /**
54
+ * The cached media/text-ticker descendants, rebuilt only when the subtree
55
+ * changed since the last walk. Includes media (`MEDIA_MARK`) plus non-media
56
+ * tickers (`TICK_MARK`, e.g. a Text typewriter).
57
+ */
58
+ private _tickables;
44
59
  /**
45
60
  * Composition frame this sequence starts on. Marker-valued `from` resolves
46
61
  * on every read (live, like {@link durationInFrames}), so retiming the
@@ -77,6 +92,21 @@ export declare class Sequence extends Konva.Layer implements MarkerSource {
77
92
  * nothing, or a same-frame re-entry), avoiding a wasted updater + layout + draw.
78
93
  */
79
94
  _apply(frame: number, force?: boolean): void;
95
+ /**
96
+ * Internal — the frame pass shared by {@link _apply} and `measure()`:
97
+ * updaters, ticks, then flex layout of every direct-child layout root. No
98
+ * visibility change, no draw, no `_lastLocal` bookkeeping — callers own
99
+ * that. With `tickMedia: false` (the measure path) media-only nodes
100
+ * (`MEDIA_MARK` without `TICK_MARK`) are skipped: media state never affects
101
+ * layout, and ticking a video at a foreign frame would trigger spurious
102
+ * seeks.
103
+ */
104
+ _kmRunFrame(local: number, tickMedia: boolean): void;
105
+ /**
106
+ * Internal — the live local frame while active, else `null`. `measure()`
107
+ * uses this to restore an active sequence after a foreign-frame pass.
108
+ */
109
+ _kmLiveLocal(): number | null;
80
110
  /**
81
111
  * Internal — force this sequence hidden and inactive, regardless of frame
82
112
  * range. Used by `Composition` while it buffers assets so the stage stays
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EACL,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,GAAG;IAChD;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,IAAI,QAAQ,EAAE,CAAA;CAAE,CAAC;AAQ3D,qBAAa,QAAS,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAmB;IAIjC,OAAO,CAAC,UAAU,CAAM;gBAEZ,IAAI,GAAE,eAAoB;IAyBtC;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;OAQG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAc7B;IAED;;;;OAIG;IACH,MAAM,IAAI,MAAM;IAIhB,8EAA8E;IAC9E,gBAAgB,IAAI,cAAc;IAKlC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI;IAOtC;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,IAAI;IAsC1C;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CAOhB"}
1
+ {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EACL,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,GAAG;IAChD;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,IAAI,QAAQ,EAAE,CAAA;CAAE,CAAC;AAQ3D,qBAAa,QAAS,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAmB;IAOjC,OAAO,CAAC,WAAW,CAAQ;IAI3B,OAAO,CAAC,UAAU,CAAM;gBAEZ,IAAI,GAAE,eAAoB;IAyBtC;;;;;;OAMG;IACM,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI;IAM9D;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;OAQG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAc7B;IAED;;;;OAIG;IACH,MAAM,IAAI,MAAM;IAIhB,8EAA8E;IAC9E,gBAAgB,IAAI,cAAc;IAKlC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI;IAOtC;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,IAAI;IA0B1C;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAiBpD;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CAOhB"}
@@ -11,6 +11,13 @@ export class Sequence extends Konva.Layer {
11
11
  _updaters = new Set();
12
12
  _active = false;
13
13
  _media = [];
14
+ // Tickable cache is rebuilt lazily: `_apply` caches the media/tick subtree once
15
+ // per activation to avoid a `find()` every frame, but the subtree can still
16
+ // change *after* activation — a Composition activates a Sequence the moment it
17
+ // is added (to paint frame 0), and `comp.add(seq)` is commonly followed by
18
+ // `seq.add(video)`. Marking the cache dirty on every `add` keeps late-added
19
+ // media (and text tickers) from being silently dropped from the frame loop.
20
+ _mediaDirty = true;
14
21
  // Last local frame applied while active — used to skip redundant re-applies
15
22
  // (updaters + layout + draw) when nothing about the playhead changed. `-1` is
16
23
  // a sentinel that never equals a real local frame, so the first apply always runs.
@@ -37,6 +44,30 @@ export class Sequence extends Konva.Layer {
37
44
  this._durationInFrames = durationInFrames;
38
45
  this._until = until;
39
46
  }
47
+ /**
48
+ * Konva's `add`, plus a tickable-cache invalidation: media/text-ticker nodes
49
+ * added to an already-active Sequence (the usual `comp.add(seq)` then
50
+ * `seq.add(video)` order) must still join the frame loop. Direct adds cover
51
+ * the common case; nodes buried inside a subtree that is itself added here are
52
+ * caught too, because {@link _tickables} re-`find()`s the whole subtree.
53
+ */
54
+ add(...children) {
55
+ super.add(...children);
56
+ this._mediaDirty = true;
57
+ return this;
58
+ }
59
+ /**
60
+ * The cached media/text-ticker descendants, rebuilt only when the subtree
61
+ * changed since the last walk. Includes media (`MEDIA_MARK`) plus non-media
62
+ * tickers (`TICK_MARK`, e.g. a Text typewriter).
63
+ */
64
+ _tickables() {
65
+ if (this._mediaDirty) {
66
+ this._media = this.find((n) => n.getAttr(MEDIA_MARK) === true || n.getAttr(TICK_MARK) === true);
67
+ this._mediaDirty = false;
68
+ }
69
+ return this._media;
70
+ }
40
71
  /**
41
72
  * Composition frame this sequence starts on. Marker-valued `from` resolves
42
73
  * on every read (live, like {@link durationInFrames}), so retiming the
@@ -106,26 +137,13 @@ export class Sequence extends Konva.Layer {
106
137
  if (becameActive) {
107
138
  this.visible(true);
108
139
  this._active = true;
109
- // Cache tickable nodes once per activation — avoids a subtree walk every
110
- // frame. Includes media (video/audio) plus non-media tickers (Text typewriter).
111
- this._media = this.find((n) => n.getAttr(MEDIA_MARK) === true || n.getAttr(TICK_MARK) === true);
112
140
  }
113
141
  const local = frame - this.from;
114
142
  // Skip redundant work: same playhead, already active, and not forced.
115
143
  if (!becameActive && !force && local === this._lastLocal)
116
144
  return;
117
145
  this._lastLocal = local;
118
- for (const u of this._updaters)
119
- u(local);
120
- // Tick BEFORE layout: a ticked node may change its measured size (e.g. a
121
- // Text typewriter revealing another line), and the flex pass must see the
122
- // up-to-date size this frame rather than lagging one behind.
123
- for (const v of this._media)
124
- v._kmTick?.(local);
125
- for (const c of this.getChildren()) {
126
- if (isKMLayoutRoot(c))
127
- c._kmComputeLayout();
128
- }
146
+ this._kmRunFrame(local, true);
129
147
  // Draw synchronously the frame in which a sequence becomes visible — this
130
148
  // ensures fresh pixels are on the canvas before the browser paints the
131
149
  // newly-displayed layer (avoids a one-frame flash of stale content).
@@ -142,6 +160,40 @@ export class Sequence extends Konva.Layer {
142
160
  v._kmDeactivate?.();
143
161
  }
144
162
  }
163
+ /**
164
+ * Internal — the frame pass shared by {@link _apply} and `measure()`:
165
+ * updaters, ticks, then flex layout of every direct-child layout root. No
166
+ * visibility change, no draw, no `_lastLocal` bookkeeping — callers own
167
+ * that. With `tickMedia: false` (the measure path) media-only nodes
168
+ * (`MEDIA_MARK` without `TICK_MARK`) are skipped: media state never affects
169
+ * layout, and ticking a video at a foreign frame would trigger spurious
170
+ * seeks.
171
+ */
172
+ _kmRunFrame(local, tickMedia) {
173
+ const tickables = this._tickables();
174
+ for (const u of this._updaters)
175
+ u(local);
176
+ // Tick BEFORE layout: a ticked node may change its measured size (e.g. a
177
+ // Text typewriter revealing another line), and the flex pass must see the
178
+ // up-to-date size this frame rather than lagging one behind.
179
+ for (const v of tickables) {
180
+ if (!tickMedia && v.getAttr(MEDIA_MARK) === true && v.getAttr(TICK_MARK) !== true) {
181
+ continue;
182
+ }
183
+ v._kmTick?.(local);
184
+ }
185
+ for (const c of this.getChildren()) {
186
+ if (isKMLayoutRoot(c))
187
+ c._kmComputeLayout();
188
+ }
189
+ }
190
+ /**
191
+ * Internal — the live local frame while active, else `null`. `measure()`
192
+ * uses this to restore an active sequence after a foreign-frame pass.
193
+ */
194
+ _kmLiveLocal() {
195
+ return this._active ? this._lastLocal : null;
196
+ }
145
197
  /**
146
198
  * Internal — force this sequence hidden and inactive, regardless of frame
147
199
  * range. Used by `Composition` while it buffers assets so the stage stays
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/engine/sequence.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,13 +10,14 @@ export { Sequence, type SequenceOptions, type SequenceProvider, type Updater, }
10
10
  export { Series, type SeriesOptions, type SeriesSceneOptions, } from "./engine/series.js";
11
11
  export { createSignal, type ReadonlySignal, type Signal } from "./engine/signal.js";
12
12
  export { type BackgroundValue, Block, type BlockConfig, type EdgeColor, type GradientBackground, type GradientStop, type ShadowProps, } from "./layout/block.js";
13
- export { isKMLayoutNode, isKMLayoutRoot, type KMLayoutNode, type LayoutBox, type MeasureContext, } from "./layout/contract.js";
13
+ export { isKMLayoutNode, isKMLayoutRoot, type KMLayoutNode, type LayoutBox, type LocalMeasuredLine, type MeasureContext, } from "./layout/contract.js";
14
14
  export { applySize, type FlexilyNode, parseSize, } from "./layout/flex/engine.js";
15
15
  export { Flex } from "./layout/flex/flex.js";
16
16
  export { FlexShape, type LeafConfig } from "./layout/flex/mixin.js";
17
17
  export type { Align, AlignSelf, EdgeValue, FlexChildProps, FlexConfig, FlexDirection, FlexProps, Justify, SizeValue, } from "./layout/flex/types.js";
18
18
  export { Group, type GroupConfig, isGroupNode } from "./layout/group.js";
19
19
  export { Image, type ImageConfig, type ObjectFit, type ObjectPosition, } from "./layout/image.js";
20
+ export { type MeasuredLine, type MeasuredRect, type Measurement, type MeasureOptions, measure, } from "./layout/measure.js";
20
21
  export { Arc, type ArcConfig, Arrow, type ArrowConfig, Circle, type CircleConfig, Ellipse, type EllipseConfig, Line, type LineConfig, Path, type PathConfig, Rect, type RectConfig, RegularPolygon, type RegularPolygonConfig, Ring, type RingConfig, Sprite, type SpriteConfig, Star, type StarConfig, TextPath, type TextPathConfig, Wedge, type WedgeConfig, } from "./layout/shapes.js";
21
22
  export { Font, type FontConfig, type FontFace, type FontFaceRef, type FontStyleName, } from "./layout/text/font.js";
22
23
  export { Text } from "./layout/text/text.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EACL,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,UAAU,EACf,WAAW,EACX,KAAK,YAAY,EAEjB,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,oBAAoB,EAEzB,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,YAAY,EACZ,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,OAAO,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,SAAS,EACT,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EACb,SAAS,EACT,OAAO,EACP,SAAS,GACV,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,GAAG,EACH,KAAK,SAAS,EACd,KAAK,EACL,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,YAAY,EACjB,OAAO,EACP,KAAK,aAAa,EAClB,IAAI,EACJ,KAAK,UAAU,EACf,IAAI,EACJ,KAAK,UAAU,EACf,IAAI,EACJ,KAAK,UAAU,EACf,cAAc,EACd,KAAK,oBAAoB,EACzB,IAAI,EACJ,KAAK,UAAU,EACf,MAAM,EACN,KAAK,YAAY,EACjB,IAAI,EACJ,KAAK,UAAU,EACf,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,EACL,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,YAAY,EACV,SAAS,EACT,eAAe,EACf,SAAS,EACT,UAAU,EACV,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -25,6 +25,7 @@ export { FlexShape } from "./layout/flex/mixin.js";
25
25
  // layout use `Flex`/`Block`; `Group` is the manual transform/grouping container.
26
26
  export { Group, isGroupNode } from "./layout/group.js";
27
27
  export { Image, } from "./layout/image.js";
28
+ export { measure, } from "./layout/measure.js";
28
29
  export { Arc, Arrow, Circle, Ellipse, Line, Path, Rect, RegularPolygon, Ring, Sprite, Star, TextPath, Wedge, } from "./layout/shapes.js";
29
30
  export { Font, } from "./layout/text/font.js";
30
31
  export { Text } from "./layout/text/text.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAGL,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAEL,WAAW,EAKX,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EAGjB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,MAAM,EAEN,WAAW;AAEX,+DAA+D;AAC/D,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO;AAEL,2DAA2D;AAC3D,cAAc,GAGf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAG5B,YAAY,EACZ,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,QAAQ,GAIT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,MAAM,GAGP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAoC,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAEL,KAAK,GAMN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,cAAc,GAIf,MAAM,sBAAsB,CAAC;AAC9B,OAAO;AACL,wEAAwE;AACxE,SAAS,EAET,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAC;AAYpE,+EAA+E;AAC/E,8EAA8E;AAC9E,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAoB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,KAAK,GAIN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,GAAG,EAEH,KAAK,EAEL,MAAM,EAEN,OAAO,EAEP,IAAI,EAEJ,IAAI,EAEJ,IAAI,EAEJ,cAAc,EAEd,IAAI,EAEJ,MAAM,EAEN,IAAI,EAEJ,QAAQ,EAER,KAAK,GAEN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,IAAI,GAKL,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAQ7C,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAqB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAoB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAGL,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAEL,WAAW,EAKX,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EAGjB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,MAAM,EAEN,WAAW;AAEX,+DAA+D;AAC/D,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO;AAEL,2DAA2D;AAC3D,cAAc,GAGf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAG5B,YAAY,EACZ,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,QAAQ,GAIT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,MAAM,GAGP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAoC,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAEL,KAAK,GAMN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,cAAc,GAKf,MAAM,sBAAsB,CAAC;AAC9B,OAAO;AACL,wEAAwE;AACxE,SAAS,EAET,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAC;AAYpE,+EAA+E;AAC/E,8EAA8E;AAC9E,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAoB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,KAAK,GAIN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAKL,OAAO,GACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,GAAG,EAEH,KAAK,EAEL,MAAM,EAEN,OAAO,EAEP,IAAI,EAEJ,IAAI,EAEJ,IAAI,EAEJ,cAAc,EAEd,IAAI,EAEJ,MAAM,EAEN,IAAI,EAEJ,QAAQ,EAER,KAAK,GAEN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,IAAI,GAKL,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAQ7C,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAqB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAoB,MAAM,uBAAuB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import Konva from "konva";
2
2
  import type { KMLayoutNode, LayoutBox } from "./contract.js";
3
3
  import type { EdgeValue, FlexChildProps, FlexProps, SizeValue } from "./flex/types.js";
4
+ import { type Measurement, type MeasureOptions } from "./measure.js";
4
5
  export type EdgeColor = string | [string, string] | [string, string, string, string] | {
5
6
  top?: string;
6
7
  right?: string;
@@ -48,6 +49,8 @@ export declare class Block extends Konva.Group implements KMLayoutNode {
48
49
  _kmComputeLayout(): void;
49
50
  /** @internal — {@link KMLayoutNode}: write the computed box back + restyle the background. */
50
51
  _kmPlace(box: LayoutBox): void;
52
+ /** Measure this node's stage-space bounds — see {@link measureNode}. */
53
+ measure(opts?: MeasureOptions): Measurement;
51
54
  /** @internal */
52
55
  _layoutBackground(): void;
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/layout/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEvF,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,CAAC,MAAM,EAAE,MAAM,CAAC,GAChB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,CAAC,GACnE,SAAS,GACT,cAAc,GAAG;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAClC,CAAC;AAsCJ,qBAAa,KAAM,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC5D,QAAQ,CAAC,OAAO,EAAG,WAAW,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,MAAM,EAAE,WAAW;IAuC/B;;;;;OAKG;IACH,aAAa,IAAI,IAAI;IAKrB,2FAA2F;IAC3F,gBAAgB,IAAI,IAAI;IAIxB,8FAA8F;IAC9F,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAQ9B,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;CAmB1B"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/layout/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAA0B,MAAM,cAAc,CAAC;AAE7F,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,CAAC,MAAM,EAAE,MAAM,CAAC,GAChB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,CAAC,GACnE,SAAS,GACT,cAAc,GAAG;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAClC,CAAC;AAsCJ,qBAAa,KAAM,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC5D,QAAQ,CAAC,OAAO,EAAG,WAAW,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,MAAM,EAAE,WAAW;IAuC/B;;;;;OAKG;IACH,aAAa,IAAI,IAAI;IAKrB,2FAA2F;IAC3F,gBAAgB,IAAI,IAAI;IAIxB,8FAA8F;IAC9F,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAQ9B,wEAAwE;IACxE,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,WAAW;IAI3C,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;CAmB1B"}
@@ -1,6 +1,7 @@
1
1
  import Konva from "konva";
2
2
  import { normalizeEdges, parseSize } from "./flex/engine.js";
3
3
  import { layoutRoot } from "./flex/flex.js";
4
+ import { measure as measureNode } from "./measure.js";
4
5
  const BLOCK_KEYS = [
5
6
  "flexDirection",
6
7
  "justifyContent",
@@ -98,6 +99,10 @@ export class Block extends Konva.Group {
98
99
  this.height(box.height);
99
100
  this._layoutBackground();
100
101
  }
102
+ /** Measure this node's stage-space bounds — see {@link measureNode}. */
103
+ measure(opts) {
104
+ return measureNode(this, opts);
105
+ }
101
106
  /** @internal */
102
107
  _layoutBackground() {
103
108
  const w = this.width();
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/layout/block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/layout/block.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,24 @@ export type LayoutBox = {
11
11
  export type MeasureContext = {
12
12
  parentIsColumn: boolean;
13
13
  };
14
+ /**
15
+ * Per-rendered-line geometry in node-local space, produced by
16
+ * {@link KMLayoutNode._kmMeasureLines}. `measure()` transforms these to stage
17
+ * space.
18
+ */
19
+ export type LocalMeasuredLine = {
20
+ /** The line box: rendered width, one lineHeight tall. */
21
+ rect: LayoutBox;
22
+ /** Tight glyph ink rect (falls back to `rect` without canvas metrics). */
23
+ ink: LayoutBox;
24
+ /** Node-local y of the alphabetic baseline. */
25
+ baseline: number;
26
+ /** Char offsets into the displayed text. */
27
+ range: {
28
+ start: number;
29
+ end: number;
30
+ };
31
+ };
14
32
  /**
15
33
  * The open contract that lets the flex engine ({@link buildChildren} /
16
34
  * {@link writeBack} in `flex/flex.ts`) handle a node without an `instanceof`
@@ -34,6 +52,8 @@ export interface KMLayoutNode {
34
52
  _kmPlace(box: LayoutBox): void;
35
53
  /** Container-only: lay self out as a standalone flex root (called by Sequence). */
36
54
  _kmComputeLayout?(): void;
55
+ /** Text-like leaves: per-rendered-line geometry for `measure()`. */
56
+ _kmMeasureLines?(): LocalMeasuredLine[];
37
57
  }
38
58
  export declare function isKMLayoutNode(n: Konva.Node): n is Konva.Node & KMLayoutNode;
39
59
  /** A container that can lay itself out as a flex root (Flex/Block). */
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/layout/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;IACvC,8EAA8E;IAC9E,UAAU,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9D,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,mFAAmF;IACnF,gBAAgB,CAAC,IAAI,IAAI,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,YAAY,CAE5E;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAC5B,CAAC,EAAE,KAAK,CAAC,IAAI,GACZ,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAEpE"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/layout/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yDAAyD;IACzD,IAAI,EAAE,SAAS,CAAC;IAChB,0EAA0E;IAC1E,GAAG,EAAE,SAAS,CAAC;IACf,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;IACvC,8EAA8E;IAC9E,UAAU,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9D,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,mFAAmF;IACnF,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1B,oEAAoE;IACpE,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC;CACzC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,YAAY,CAE5E;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAC5B,CAAC,EAAE,KAAK,CAAC,IAAI,GACZ,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/layout/contract.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,cAAc,CAAC,CAAa;IAC1C,OAAO,OAAQ,CAA2B,CAAC,QAAQ,KAAK,UAAU,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAC5B,CAAa;IAEb,OAAO,OAAQ,CAA2B,CAAC,gBAAgB,KAAK,UAAU,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/layout/contract.ts"],"names":[],"mappings":"AAoDA,MAAM,UAAU,cAAc,CAAC,CAAa;IAC1C,OAAO,OAAQ,CAA2B,CAAC,QAAQ,KAAK,UAAU,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAC5B,CAAa;IAEb,OAAO,OAAQ,CAA2B,CAAC,gBAAgB,KAAK,UAAU,CAAC;AAC7E,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import Konva from "konva";
2
2
  import { type KMLayoutNode, type LayoutBox } from "../contract.js";
3
+ import { type Measurement, type MeasureOptions } from "../measure.js";
3
4
  import { FlexilyNode } from "./engine.js";
4
5
  import type { FlexConfig } from "./types.js";
5
6
  export declare class Flex extends Konva.Group implements KMLayoutNode {
@@ -10,6 +11,8 @@ export declare class Flex extends Konva.Group implements KMLayoutNode {
10
11
  _kmComputeLayout(): void;
11
12
  /** @internal — {@link KMLayoutNode}: write the computed box back (nested in a parent flex). */
12
13
  _kmPlace(box: LayoutBox): void;
14
+ /** Measure this node's stage-space bounds — see {@link measureNode}. */
15
+ measure(opts?: MeasureOptions): Measurement;
13
16
  }
14
17
  /**
15
18
  * Lay out a Konva.Group as a Flexily root: build the layout tree from the
@@ -1 +1 @@
1
- {"version":3,"file":"flex.d.ts","sourceRoot":"","sources":["../../../src/layout/flex/flex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAkB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAIL,WAAW,EAIZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAkB,UAAU,EAAwB,MAAM,YAAY,CAAC;AAyBnF,qBAAa,IAAK,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC3D,QAAQ,CAAC,OAAO,EAAG,WAAW,CAAU;gBAE5B,MAAM,EAAE,UAAU;IAkB9B,aAAa,IAAI,IAAI;IAIrB,2FAA2F;IAC3F,gBAAgB,IAAI,IAAI;IAIxB,+FAA+F;IAC/F,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;CAM/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAkB3E;AAED,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C,CAAC;AAWF,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE,EAC/B,UAAU,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,EACjD,KAAK,EAAE,IAAI,EAAE,EACb,eAAe,SAAQ,GACtB,IAAI,CA+CN;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CA2B7C"}
1
+ {"version":3,"file":"flex.d.ts","sourceRoot":"","sources":["../../../src/layout/flex/flex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAkB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAA0B,MAAM,eAAe,CAAC;AAC9F,OAAO,EAIL,WAAW,EAIZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAkB,UAAU,EAAwB,MAAM,YAAY,CAAC;AAyBnF,qBAAa,IAAK,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC3D,QAAQ,CAAC,OAAO,EAAG,WAAW,CAAU;gBAE5B,MAAM,EAAE,UAAU;IAkB9B,aAAa,IAAI,IAAI;IAIrB,2FAA2F;IAC3F,gBAAgB,IAAI,IAAI;IAIxB,+FAA+F;IAC/F,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAO9B,wEAAwE;IACxE,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,WAAW;CAG5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAkB3E;AAED,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C,CAAC;AAWF,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE,EAC/B,UAAU,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,EACjD,KAAK,EAAE,IAAI,EAAE,EACb,eAAe,SAAQ,GACtB,IAAI,CA+CN;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CA2B7C"}
@@ -1,6 +1,7 @@
1
1
  import { DIRECTION_LTR } from "flexily/classic";
2
2
  import Konva from "konva";
3
3
  import { isKMLayoutNode } from "../contract.js";
4
+ import { measure as measureNode } from "../measure.js";
4
5
  import { applyChildProps, applyContainerProps, applySize, FlexilyNode, parseSize, setImageMeasure, setTextMeasure, } from "./engine.js";
5
6
  const FLEX_KEYS = [
6
7
  "flexDirection",
@@ -57,6 +58,10 @@ export class Flex extends Konva.Group {
57
58
  this.width(box.width);
58
59
  this.height(box.height);
59
60
  }
61
+ /** Measure this node's stage-space bounds — see {@link measureNode}. */
62
+ measure(opts) {
63
+ return measureNode(this, opts);
64
+ }
60
65
  }
61
66
  /**
62
67
  * Lay out a Konva.Group as a Flexily root: build the layout tree from the
@@ -1 +1 @@
1
- {"version":3,"file":"flex.js","sourceRoot":"","sources":["../../../src/layout/flex/flex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flex.js","sourceRoot":"","sources":["../../../src/layout/flex/flex.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Node as FlexilyNode } from "flexily/classic";
2
2
  import type Konva from "konva";
3
3
  import type { KMLayoutNode, LayoutBox } from "../contract.js";
4
+ import { type Measurement, type MeasureOptions } from "../measure.js";
4
5
  import type { FlexChildProps, SizeValue } from "./types.js";
5
6
  /** Common shape-config shape: a Konva config plus flex-child props + size values. */
6
7
  export type LeafConfig = FlexChildProps & {
@@ -48,5 +49,7 @@ export declare function leafPlace(shape: Konva.Shape, box: LayoutBox): void;
48
49
  * The `C` type parameter types the resulting constructor's config, so the
49
50
  * subclass needs no body.
50
51
  */
51
- export declare function FlexShape<N extends Konva.Shape, C extends LeafConfig = LeafConfig>(Base: new (...args: any[]) => N): new (config: C) => N & KMLayoutNode;
52
+ export declare function FlexShape<N extends Konva.Shape, C extends LeafConfig = LeafConfig>(Base: new (...args: any[]) => N): new (config: C) => N & KMLayoutNode & {
53
+ measure(opts?: MeasureOptions): Measurement;
54
+ };
52
55
  //# sourceMappingURL=mixin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mixin.d.ts","sourceRoot":"","sources":["../../../src/layout/flex/mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,qFAAqF;AACrF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAgB5B;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1E;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAU7E;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAUvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAMlE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,EAEhF,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAC9B,KACD,MAAM,EAAE,CAAC,KACN,CAAC,GAAG,YAAY,CAiBpB"}
1
+ {"version":3,"file":"mixin.d.ts","sourceRoot":"","sources":["../../../src/layout/flex/mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAA0B,MAAM,eAAe,CAAC;AAE9F,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,qFAAqF;AACrF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAgB5B;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1E;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAU7E;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAUvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAMlE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,EAEhF,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAC9B,KACD,MAAM,EAAE,CAAC,KACN,CAAC,GAAG,YAAY,GAAG;IAAE,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,WAAW,CAAA;CAAE,CAqBtE"}
@@ -1,3 +1,4 @@
1
+ import { measure as measureNode } from "../measure.js";
1
2
  import { applySize, parseSize } from "./engine.js";
2
3
  // Keys stripped before handing the config to Konva. width/height are included
3
4
  // so they're removed when there's no px size: for radius/points shapes Konva
@@ -108,6 +109,10 @@ Base) {
108
109
  _kmPlace(box) {
109
110
  leafPlace(this, box);
110
111
  }
112
+ /** Measure this node's stage-space bounds — see {@link measureNode}. */
113
+ measure(opts) {
114
+ return measureNode(this, opts);
115
+ }
111
116
  }
112
117
  return Wrapped;
113
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mixin.js","sourceRoot":"","sources":["../../../src/layout/flex/mixin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mixin.js","sourceRoot":"","sources":["../../../src/layout/flex/mixin.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { type ImageLoader } from "../engine/runtime-defaults.js";
3
3
  import type { KMLayoutNode, LayoutBox } from "./contract.js";
4
4
  import type { FlexilyNode } from "./flex/engine.js";
5
5
  import type { FlexChildProps, SizeValue } from "./flex/types.js";
6
+ import { type Measurement, type MeasureOptions } from "./measure.js";
6
7
  export type ObjectFit = "cover" | "contain" | "fill" | "none";
7
8
  export type ObjectPosition = "center" | "top" | "bottom" | "left" | "right" | "top left" | "top right" | "bottom left" | "bottom right";
8
9
  export type ImageConfig = Omit<Konva.GroupConfig, "width" | "height"> & FlexChildProps & {
@@ -40,6 +41,8 @@ export declare class Image extends Konva.Group implements KMLayoutNode {
40
41
  _kmMeasure(node: FlexilyNode): void;
41
42
  /** @internal — {@link KMLayoutNode}: write the computed box back + re-fit the bitmap. */
42
43
  _kmPlace(box: LayoutBox): void;
44
+ /** Measure this node's stage-space bounds — see {@link measureNode}. */
45
+ measure(opts?: MeasureOptions): Measurement;
43
46
  /** @internal */
44
47
  _layoutImage(): void;
45
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/layout/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,CAAC,GACnE,cAAc,GAAG;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAyBJ,qBAAa,KAAM,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC5D,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,OAAO,CAA4B;IAC3C,iFAAiF;IACjF,OAAO,CAAC,YAAY,CAA8B;IAClD,gEAAgE;IAChE,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,WAAW;IAmD/B;;;;OAIG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAWlC,kEAAkE;IAClE,aAAa,IAAI,IAAI;IAErB,yGAAyG;IACzG,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAQnC,yFAAyF;IACzF,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAQ9B,gBAAgB;IAChB,YAAY,IAAI,IAAI;CA0CrB"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/layout/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAA0B,MAAM,cAAc,CAAC;AAE7F,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,CAAC,GACnE,cAAc,GAAG;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAyBJ,qBAAa,KAAM,SAAQ,KAAK,CAAC,KAAM,YAAW,YAAY;IAC5D,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,OAAO,CAA4B;IAC3C,iFAAiF;IACjF,OAAO,CAAC,YAAY,CAA8B;IAClD,gEAAgE;IAChE,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,WAAW;IAmD/B;;;;OAIG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAWlC,kEAAkE;IAClE,aAAa,IAAI,IAAI;IAErB,yGAAyG;IACzG,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAQnC,yFAAyF;IACzF,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAQ9B,wEAAwE;IACxE,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,WAAW;IAI3C,gBAAgB;IAChB,YAAY,IAAI,IAAI;CA0CrB"}
@@ -3,6 +3,7 @@ import { getComposition } from "../engine/composition.js";
3
3
  import { getDefaultImageLoader, } from "../engine/runtime-defaults.js";
4
4
  import { TICK_MARK } from "../markers.js";
5
5
  import { applySize, parseSize } from "./flex/engine.js";
6
+ import { measure as measureNode } from "./measure.js";
6
7
  const IMG_KEYS = [
7
8
  "src",
8
9
  "objectFit",
@@ -110,6 +111,10 @@ export class Image extends Konva.Group {
110
111
  this.height(box.height);
111
112
  this._layoutImage();
112
113
  }
114
+ /** Measure this node's stage-space bounds — see {@link measureNode}. */
115
+ measure(opts) {
116
+ return measureNode(this, opts);
117
+ }
113
118
  /** @internal */
114
119
  _layoutImage() {
115
120
  const w = this.width();