@pooder/kit 5.3.1 → 5.4.0

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 (90) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/index.d.mts +243 -36
  3. package/dist/index.d.ts +243 -36
  4. package/dist/index.js +2278 -1041
  5. package/dist/index.mjs +2278 -1041
  6. package/package.json +1 -1
  7. package/src/coordinate.ts +106 -106
  8. package/src/extensions/background.ts +323 -230
  9. package/src/extensions/bridgeSelection.ts +17 -17
  10. package/src/extensions/constraints.ts +322 -322
  11. package/src/extensions/dieline.ts +1149 -1076
  12. package/src/extensions/dielineShape.ts +109 -0
  13. package/src/extensions/edgeScale.ts +19 -19
  14. package/src/extensions/feature.ts +1137 -1021
  15. package/src/extensions/featureComplete.ts +46 -46
  16. package/src/extensions/film.ts +266 -194
  17. package/src/extensions/geometry.ts +885 -752
  18. package/src/extensions/image.ts +2054 -1926
  19. package/src/extensions/index.ts +11 -11
  20. package/src/extensions/maskOps.ts +283 -283
  21. package/src/extensions/mirror.ts +128 -128
  22. package/src/extensions/ruler.ts +654 -451
  23. package/src/extensions/sceneLayout.ts +140 -140
  24. package/src/extensions/sceneLayoutModel.ts +364 -352
  25. package/src/extensions/sceneVisibility.ts +64 -71
  26. package/src/extensions/size.ts +389 -389
  27. package/src/extensions/tracer.ts +1019 -1019
  28. package/src/extensions/white-ink.ts +1567 -1514
  29. package/src/extensions/wrappedOffsets.ts +33 -33
  30. package/src/index.ts +2 -2
  31. package/src/services/CanvasService.ts +832 -300
  32. package/src/services/ViewportSystem.ts +95 -95
  33. package/src/services/index.ts +3 -3
  34. package/src/services/renderSpec.ts +53 -18
  35. package/src/units.ts +27 -27
  36. package/tests/run.ts +118 -118
  37. package/tsconfig.test.json +15 -15
  38. package/.test-dist/src/CanvasService.js +0 -249
  39. package/.test-dist/src/ViewportSystem.js +0 -75
  40. package/.test-dist/src/background.js +0 -203
  41. package/.test-dist/src/bridgeSelection.js +0 -20
  42. package/.test-dist/src/constraints.js +0 -237
  43. package/.test-dist/src/coordinate.js +0 -74
  44. package/.test-dist/src/dieline.js +0 -818
  45. package/.test-dist/src/edgeScale.js +0 -12
  46. package/.test-dist/src/extensions/background.js +0 -203
  47. package/.test-dist/src/extensions/bridgeSelection.js +0 -20
  48. package/.test-dist/src/extensions/constraints.js +0 -237
  49. package/.test-dist/src/extensions/dieline.js +0 -828
  50. package/.test-dist/src/extensions/edgeScale.js +0 -12
  51. package/.test-dist/src/extensions/feature.js +0 -825
  52. package/.test-dist/src/extensions/featureComplete.js +0 -32
  53. package/.test-dist/src/extensions/film.js +0 -167
  54. package/.test-dist/src/extensions/geometry.js +0 -545
  55. package/.test-dist/src/extensions/image.js +0 -1529
  56. package/.test-dist/src/extensions/index.js +0 -30
  57. package/.test-dist/src/extensions/maskOps.js +0 -279
  58. package/.test-dist/src/extensions/mirror.js +0 -104
  59. package/.test-dist/src/extensions/ruler.js +0 -345
  60. package/.test-dist/src/extensions/sceneLayout.js +0 -96
  61. package/.test-dist/src/extensions/sceneLayoutModel.js +0 -196
  62. package/.test-dist/src/extensions/sceneVisibility.js +0 -62
  63. package/.test-dist/src/extensions/size.js +0 -331
  64. package/.test-dist/src/extensions/tracer.js +0 -538
  65. package/.test-dist/src/extensions/white-ink.js +0 -1190
  66. package/.test-dist/src/extensions/wrappedOffsets.js +0 -33
  67. package/.test-dist/src/feature.js +0 -826
  68. package/.test-dist/src/featureComplete.js +0 -32
  69. package/.test-dist/src/film.js +0 -167
  70. package/.test-dist/src/geometry.js +0 -506
  71. package/.test-dist/src/image.js +0 -1250
  72. package/.test-dist/src/index.js +0 -18
  73. package/.test-dist/src/maskOps.js +0 -270
  74. package/.test-dist/src/mirror.js +0 -104
  75. package/.test-dist/src/renderSpec.js +0 -2
  76. package/.test-dist/src/ruler.js +0 -343
  77. package/.test-dist/src/sceneLayout.js +0 -99
  78. package/.test-dist/src/sceneLayoutModel.js +0 -196
  79. package/.test-dist/src/sceneView.js +0 -40
  80. package/.test-dist/src/sceneVisibility.js +0 -42
  81. package/.test-dist/src/services/CanvasService.js +0 -249
  82. package/.test-dist/src/services/ViewportSystem.js +0 -76
  83. package/.test-dist/src/services/index.js +0 -24
  84. package/.test-dist/src/services/renderSpec.js +0 -2
  85. package/.test-dist/src/size.js +0 -332
  86. package/.test-dist/src/tracer.js +0 -544
  87. package/.test-dist/src/units.js +0 -30
  88. package/.test-dist/src/white-ink.js +0 -829
  89. package/.test-dist/src/wrappedOffsets.js +0 -33
  90. package/.test-dist/tests/run.js +0 -94
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @pooder/kit
2
2
 
3
+ ## 5.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - spec framework
8
+
3
9
  ## 5.3.1
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -9,6 +9,13 @@ declare class BackgroundTool implements Extension {
9
9
  private color;
10
10
  private url;
11
11
  private canvasService?;
12
+ private specs;
13
+ private renderProducerDisposable?;
14
+ private renderSeq;
15
+ private renderImageUrl;
16
+ private sourceSizeBySrc;
17
+ private pendingSizeBySrc;
18
+ private onCanvasResized;
12
19
  constructor(options?: Partial<{
13
20
  color: string;
14
21
  url: string;
@@ -19,8 +26,12 @@ declare class BackgroundTool implements Extension {
19
26
  [ContributionPointIds.CONFIGURATIONS]: ConfigurationContribution[];
20
27
  [ContributionPointIds.COMMANDS]: CommandContribution[];
21
28
  };
22
- private initLayer;
29
+ private getViewportSize;
30
+ private buildBackgroundSpecs;
31
+ private ensureImageSize;
32
+ private loadImageSize;
23
33
  private updateBackground;
34
+ private updateBackgroundAsync;
24
35
  }
25
36
 
26
37
  interface ImageItem {
@@ -54,6 +65,9 @@ declare class ImageTool implements Extension {
54
65
  private dirtyTrackerDisposable?;
55
66
  private cropShapeHatchPattern?;
56
67
  private cropShapeHatchPatternColor?;
68
+ private cropShapeHatchPatternKey?;
69
+ private overlaySpecs;
70
+ private renderProducerDisposable?;
57
71
  activate(context: ExtensionContext): void;
58
72
  deactivate(context: ExtensionContext): void;
59
73
  private onToolActivated;
@@ -97,6 +111,8 @@ declare class ImageTool implements Extension {
97
111
  private getConfig;
98
112
  private updateConfig;
99
113
  private getFrameRect;
114
+ private getFrameRectScreen;
115
+ private toLayoutSceneRect;
100
116
  private resolveDefaultFitArea;
101
117
  private fitImageToDefaultArea;
102
118
  private getImageObjects;
@@ -115,6 +131,8 @@ declare class ImageTool implements Extension {
115
131
  private buildCropShapeOverlaySpecs;
116
132
  private resolveRenderImageState;
117
133
  private computeCanvasProps;
134
+ private toScreenObjectProps;
135
+ private toSceneObjectScale;
118
136
  private getCurrentSrc;
119
137
  private applyImageControlVisibility;
120
138
  private upsertImageObject;
@@ -163,21 +181,12 @@ declare class SizeTool implements Extension {
163
181
  private getSelectedImageSize;
164
182
  }
165
183
 
166
- interface Point {
167
- x: number;
168
- y: number;
169
- }
170
- interface Size {
171
- width: number;
172
- height: number;
173
- }
174
- type Unit = "px" | "mm" | "cm" | "in";
175
- interface Layout {
176
- scale: number;
177
- offsetX: number;
178
- offsetY: number;
179
- width: number;
180
- height: number;
184
+ declare const DIELINE_SHAPES: readonly ["rect", "circle", "ellipse", "heart", "custom"];
185
+ type DielineShape = (typeof DIELINE_SHAPES)[number];
186
+ type ShapeFitMode = "contain" | "stretch";
187
+ interface DielineShapeStyle {
188
+ fitMode: ShapeFitMode;
189
+ [key: string]: unknown;
181
190
  }
182
191
 
183
192
  type FeatureOperation = "add" | "subtract";
@@ -203,9 +212,9 @@ interface DielineFeature {
203
212
  }
204
213
 
205
214
  interface DielineGeometry {
206
- shape: "rect" | "circle" | "ellipse" | "custom";
207
- unit: "mm";
208
- displayUnit: Unit;
215
+ shape: DielineShape;
216
+ shapeStyle: DielineShapeStyle;
217
+ unit: "px";
209
218
  x: number;
210
219
  y: number;
211
220
  width: number;
@@ -226,8 +235,8 @@ interface LineStyle {
226
235
  style: "solid" | "dashed" | "hidden";
227
236
  }
228
237
  interface DielineState {
229
- displayUnit: Unit;
230
- shape: "rect" | "circle" | "ellipse" | "custom";
238
+ shape: DielineShape;
239
+ shapeStyle: DielineShapeStyle;
231
240
  width: number;
232
241
  height: number;
233
242
  radius: number;
@@ -251,6 +260,9 @@ declare class DielineTool implements Extension {
251
260
  private state;
252
261
  private canvasService?;
253
262
  private context?;
263
+ private specs;
264
+ private renderSeq;
265
+ private renderProducerDisposable?;
254
266
  private onCanvasResized;
255
267
  constructor(options?: Partial<DielineState>);
256
268
  activate(context: ExtensionContext): void;
@@ -268,14 +280,14 @@ declare class DielineTool implements Extension {
268
280
  [ContributionPointIds.CONFIGURATIONS]: ConfigurationContribution[];
269
281
  [ContributionPointIds.COMMANDS]: CommandContribution[];
270
282
  };
271
- private getLayer;
272
- private createLayer;
273
- private destroyLayer;
274
283
  private createHatchPattern;
275
284
  private getConfigService;
276
285
  private syncSizeState;
277
286
  private bringFeatureMarkersToFront;
287
+ private ensureLayerStacking;
288
+ private buildDielineSpecs;
278
289
  updateDieline(_emitEvent?: boolean): void;
290
+ private updateDielineAsync;
279
291
  getGeometry(): DielineGeometry | null;
280
292
  exportCutImage(options?: {
281
293
  debug?: boolean;
@@ -304,6 +316,9 @@ declare class FeatureTool implements Extension {
304
316
  private sessionOriginalFeatures;
305
317
  private hasWorkingChanges;
306
318
  private dirtyTrackerDisposable?;
319
+ private renderProducerDisposable?;
320
+ private specs;
321
+ private renderSeq;
307
322
  private handleMoving;
308
323
  private handleModified;
309
324
  private handleSceneGeometryChange;
@@ -349,9 +364,25 @@ declare class FeatureTool implements Extension {
349
364
  private getGeometryForFeature;
350
365
  private setup;
351
366
  private teardown;
367
+ private getDraggableMarkerTarget;
368
+ private getFeatureForMarker;
352
369
  private constrainPosition;
370
+ private toNormalizedPoint;
353
371
  private syncFeatureFromCanvas;
372
+ private syncGroupFromCanvas;
354
373
  private redraw;
374
+ private redrawAsync;
375
+ private syncOverlayOrder;
376
+ private buildFeatureSpecs;
377
+ private appendMarkerSpecs;
378
+ private buildMarkerData;
379
+ private markerId;
380
+ private bridgeIndicatorId;
381
+ private toFeatureIndex;
382
+ private readGroupIndices;
383
+ private readGroupMemberOffsets;
384
+ private syncMarkerVisualsByTarget;
385
+ private syncMarkerVisualObjectsToCenter;
355
386
  private enforceConstraints;
356
387
  }
357
388
 
@@ -363,6 +394,13 @@ declare class FilmTool implements Extension {
363
394
  private url;
364
395
  private opacity;
365
396
  private canvasService?;
397
+ private specs;
398
+ private renderProducerDisposable?;
399
+ private renderSeq;
400
+ private renderImageUrl;
401
+ private sourceSizeBySrc;
402
+ private pendingSizeBySrc;
403
+ private onCanvasResized;
366
404
  constructor(options?: Partial<{
367
405
  url: string;
368
406
  opacity: number;
@@ -373,8 +411,13 @@ declare class FilmTool implements Extension {
373
411
  [ContributionPointIds.CONFIGURATIONS]: ConfigurationContribution[];
374
412
  [ContributionPointIds.COMMANDS]: CommandContribution[];
375
413
  };
376
- private initLayer;
414
+ private getViewportSize;
415
+ private clampOpacity;
416
+ private buildFilmSpecs;
417
+ private ensureImageSize;
418
+ private loadImageSize;
377
419
  private updateFilm;
420
+ private updateFilmAsync;
378
421
  }
379
422
 
380
423
  declare class MirrorTool implements Extension {
@@ -411,6 +454,10 @@ declare class RulerTool implements Extension {
411
454
  private textColor;
412
455
  private lineColor;
413
456
  private fontSize;
457
+ private renderSeq;
458
+ private readonly numericProps;
459
+ private specs;
460
+ private renderProducerDisposable?;
414
461
  private canvasService?;
415
462
  private context?;
416
463
  private onCanvasResized;
@@ -420,6 +467,7 @@ declare class RulerTool implements Extension {
420
467
  textColor: string;
421
468
  lineColor: string;
422
469
  fontSize: number;
470
+ gap: number;
423
471
  }>);
424
472
  activate(context: ExtensionContext): void;
425
473
  deactivate(context: ExtensionContext): void;
@@ -427,11 +475,19 @@ declare class RulerTool implements Extension {
427
475
  [ContributionPointIds.CONFIGURATIONS]: ConfigurationContribution[];
428
476
  [ContributionPointIds.COMMANDS]: CommandContribution[];
429
477
  };
430
- private getLayer;
431
- private createLayer;
432
- private destroyLayer;
433
- private createArrowLine;
478
+ private log;
479
+ private syncConfig;
480
+ private toFiniteNumber;
481
+ private toSceneDisplayLength;
482
+ private formatLengthMm;
483
+ private buildLinePath;
484
+ private buildStartArrowPath;
485
+ private buildEndArrowPath;
486
+ private createPathSpec;
487
+ private createTextSpec;
488
+ private buildRulerSpecs;
434
489
  private updateRuler;
490
+ private updateRulerAsync;
435
491
  }
436
492
 
437
493
  interface WhiteInkItem {
@@ -459,6 +515,10 @@ declare class WhiteInkTool implements Extension {
459
515
  private previewImageVisible;
460
516
  private renderSeq;
461
517
  private dirtyTrackerDisposable?;
518
+ private whiteSpecs;
519
+ private coverSpecs;
520
+ private overlaySpecs;
521
+ private renderProducerDisposable?;
462
522
  activate(context: ExtensionContext): void;
463
523
  deactivate(context: ExtensionContext): void;
464
524
  contribute(): {
@@ -509,6 +569,7 @@ declare class WhiteInkTool implements Extension {
509
569
  private clearWhiteInks;
510
570
  private completeWhiteInks;
511
571
  private getFrameRect;
572
+ private toLayoutSceneRect;
512
573
  private getImageObjects;
513
574
  private getPrimaryImageObject;
514
575
  private getPrimaryImageSource;
@@ -542,6 +603,22 @@ declare class WhiteInkTool implements Extension {
542
603
  private loadImageElement;
543
604
  }
544
605
 
606
+ interface Point {
607
+ x: number;
608
+ y: number;
609
+ }
610
+ interface Size {
611
+ width: number;
612
+ height: number;
613
+ }
614
+ interface Layout {
615
+ scale: number;
616
+ offsetX: number;
617
+ offsetY: number;
618
+ width: number;
619
+ height: number;
620
+ }
621
+
545
622
  declare class ViewportSystem {
546
623
  private _containerSize;
547
624
  private _physicalSize;
@@ -561,14 +638,44 @@ declare class ViewportSystem {
561
638
  toPhysicalPoint(point: Point): Point;
562
639
  }
563
640
 
564
- type RenderObjectType = "rect" | "image" | "path";
641
+ type RenderObjectType = "rect" | "image" | "path" | "text";
565
642
  type RenderProps = Record<string, any>;
643
+ type RenderCoordinateSpace = "scene" | "screen";
644
+ type RenderLayoutLength = number | string;
645
+ type RenderLayoutAlign = "start" | "center" | "end";
646
+ type RenderLayoutReference = "sceneViewport" | "screenViewport" | "custom";
647
+ interface RenderLayoutInsets {
648
+ top?: RenderLayoutLength;
649
+ right?: RenderLayoutLength;
650
+ bottom?: RenderLayoutLength;
651
+ left?: RenderLayoutLength;
652
+ }
653
+ interface RenderLayoutRect {
654
+ left: number;
655
+ top: number;
656
+ width: number;
657
+ height: number;
658
+ space?: RenderCoordinateSpace;
659
+ }
660
+ interface RenderObjectLayoutSpec {
661
+ reference?: RenderLayoutReference;
662
+ referenceRect?: RenderLayoutRect;
663
+ inset?: RenderLayoutLength | RenderLayoutInsets;
664
+ alignX?: RenderLayoutAlign;
665
+ alignY?: RenderLayoutAlign;
666
+ offsetX?: RenderLayoutLength;
667
+ offsetY?: RenderLayoutLength;
668
+ width?: RenderLayoutLength;
669
+ height?: RenderLayoutLength;
670
+ }
566
671
  interface RenderObjectSpec {
567
672
  id: string;
568
673
  type: RenderObjectType;
569
674
  props: RenderProps;
570
675
  data?: Record<string, any>;
571
676
  src?: string;
677
+ space?: RenderCoordinateSpace;
678
+ layout?: RenderObjectLayoutSpec;
572
679
  }
573
680
  interface RenderLayerSpec {
574
681
  id: string;
@@ -576,14 +683,48 @@ interface RenderLayerSpec {
576
683
  props?: RenderProps;
577
684
  }
578
685
 
686
+ interface RenderProducerResult {
687
+ layerSpecs?: Record<string, RenderObjectSpec[]>;
688
+ rootLayerSpecs?: Record<string, RenderObjectSpec[]>;
689
+ replaceLayerIds?: string[];
690
+ replaceRootLayerIds?: string[];
691
+ }
692
+ type RenderProducer = () => RenderProducerResult | undefined | Promise<RenderProducerResult | undefined>;
693
+ interface RegisterRenderProducerOptions {
694
+ priority?: number;
695
+ }
696
+ interface RectLike {
697
+ left: number;
698
+ top: number;
699
+ width: number;
700
+ height: number;
701
+ }
579
702
  declare class CanvasService implements Service {
580
703
  canvas: Canvas;
581
704
  viewport: ViewportSystem;
582
705
  private eventBus?;
706
+ private renderProducers;
707
+ private producerOrder;
708
+ private producerFlushRequested;
709
+ private producerLoopPending;
710
+ private producerLoopPromise;
711
+ private managedProducerLayerIds;
712
+ private managedProducerRootLayerIds;
583
713
  constructor(el: HTMLCanvasElement | string | Canvas, options?: any);
584
714
  setEventBus(eventBus: EventBus): void;
585
715
  private setupEvents;
586
716
  dispose(): void;
717
+ registerRenderProducer(toolId: string, producer: RenderProducer, options?: RegisterRenderProducerOptions): {
718
+ dispose: () => void;
719
+ };
720
+ unregisterRenderProducer(toolId: string): boolean;
721
+ requestRenderFromProducers(): void;
722
+ flushRenderFromProducers(): Promise<void>;
723
+ private scheduleProducerLoop;
724
+ private runProducerLoop;
725
+ private sortedRenderProducerEntries;
726
+ private appendLayerSpecMap;
727
+ private collectAndApplyProducerSpecs;
587
728
  /**
588
729
  * Get a layer (Group) by its ID.
589
730
  * We assume layers are Groups directly on the canvas with a data.id property.
@@ -599,12 +740,78 @@ declare class CanvasService implements Service {
599
740
  getObject(id: string, layerId?: string): FabricObject | undefined;
600
741
  requestRenderAll(): void;
601
742
  resize(width: number, height: number): void;
743
+ getSceneScale(): number;
744
+ getSceneOffset(): {
745
+ x: number;
746
+ y: number;
747
+ };
748
+ toScreenPoint(point: {
749
+ x: number;
750
+ y: number;
751
+ }): {
752
+ x: number;
753
+ y: number;
754
+ };
755
+ toScenePoint(point: {
756
+ x: number;
757
+ y: number;
758
+ }): {
759
+ x: number;
760
+ y: number;
761
+ };
762
+ toScreenLength(value: number): number;
763
+ toSceneLength(value: number): number;
764
+ toScreenRect(rect: {
765
+ left: number;
766
+ top: number;
767
+ width: number;
768
+ height: number;
769
+ }): {
770
+ left: number;
771
+ top: number;
772
+ width: number;
773
+ height: number;
774
+ };
775
+ toSceneRect(rect: {
776
+ left: number;
777
+ top: number;
778
+ width: number;
779
+ height: number;
780
+ }): {
781
+ left: number;
782
+ top: number;
783
+ width: number;
784
+ height: number;
785
+ };
786
+ getSceneViewportRect(): {
787
+ left: number;
788
+ top: number;
789
+ width: number;
790
+ height: number;
791
+ };
792
+ getScreenViewportRect(): RectLike;
793
+ private toSpaceRect;
794
+ private resolveLayoutLength;
795
+ private resolveLayoutInsets;
796
+ private resolveLayoutReferenceRect;
797
+ private alignFactor;
798
+ private normalizeOriginX;
799
+ private normalizeOriginY;
800
+ private originFactor;
801
+ private resolveLayoutProps;
802
+ setLayerVisibility(layerId: string, visible: boolean): void;
803
+ bringLayerToFront(layerId: string): void;
602
804
  applyLayerSpec(spec: RenderLayerSpec): Promise<void>;
603
- applyObjectSpecsToLayer(layerId: string, objects: RenderObjectSpec[]): Promise<void>;
805
+ applyObjectSpecsToLayer(layerId: string, objects: RenderObjectSpec[], options?: {
806
+ render?: boolean;
807
+ }): Promise<void>;
604
808
  getRootLayerObjects(layerId: string): FabricObject[];
605
- applyObjectSpecsToRootLayer(layerId: string, specs: RenderObjectSpec[]): Promise<void>;
809
+ applyObjectSpecsToRootLayer(layerId: string, specs: RenderObjectSpec[], options?: {
810
+ render?: boolean;
811
+ }): Promise<void>;
606
812
  private applyObjectSpecsToContainer;
607
813
  private patchFabricObject;
814
+ private resolveFabricProps;
608
815
  private moveObjectInContainer;
609
816
  private createFabricObject;
610
817
  }
@@ -633,9 +840,9 @@ interface SceneLayoutSnapshot {
633
840
  cutMarginMm: number;
634
841
  }
635
842
  interface SceneGeometrySnapshot {
636
- shape: "rect" | "circle" | "ellipse" | "custom";
637
- unit: "mm";
638
- displayUnit: Unit;
843
+ shape: DielineShape;
844
+ shapeStyle: DielineShapeStyle;
845
+ unit: "px";
639
846
  x: number;
640
847
  y: number;
641
848
  width: number;
@@ -676,4 +883,4 @@ declare class SceneVisibilityService implements Service {
676
883
  private apply;
677
884
  }
678
885
 
679
- export { BackgroundTool, CanvasService, type DielineGeometry, type DielineState, DielineTool, FeatureTool, FilmTool, type ImageItem, ImageTool, type LineStyle, MirrorTool, type RenderLayerSpec, type RenderObjectSpec, type RenderObjectType, type RenderProps, RulerTool, SceneLayoutService, SceneVisibilityService, SizeTool, ViewportSystem, type WhiteInkItem, WhiteInkTool };
886
+ export { BackgroundTool, CanvasService, type DielineGeometry, type DielineState, DielineTool, FeatureTool, FilmTool, type ImageItem, ImageTool, type LineStyle, MirrorTool, type RenderCoordinateSpace, type RenderLayerSpec, type RenderLayoutAlign, type RenderLayoutInsets, type RenderLayoutLength, type RenderLayoutRect, type RenderLayoutReference, type RenderObjectLayoutSpec, type RenderObjectSpec, type RenderObjectType, type RenderProps, RulerTool, SceneLayoutService, SceneVisibilityService, SizeTool, ViewportSystem, type WhiteInkItem, WhiteInkTool };