@yuzhouu/canvas-standard 0.1.0 → 0.1.2

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 (126) hide show
  1. package/_vendor/plugin-arrow/_vendor/canvas-core/editor/editor.d.ts +1 -1
  2. package/_vendor/plugin-arrow/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  3. package/_vendor/plugin-arrow/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  4. package/_vendor/plugin-arrow/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  5. package/_vendor/plugin-arrow/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  6. package/_vendor/plugin-arrow/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  7. package/_vendor/plugin-arrow/_vendor/canvas-react/host/index.d.ts +2 -0
  8. package/_vendor/plugin-connector/_vendor/canvas-core/editor/editor.d.ts +1 -1
  9. package/_vendor/plugin-connector/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  10. package/_vendor/plugin-connector/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  11. package/_vendor/plugin-connector/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  12. package/_vendor/plugin-connector/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  13. package/_vendor/plugin-connector/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  14. package/_vendor/plugin-connector/_vendor/canvas-react/host/index.d.ts +2 -0
  15. package/_vendor/plugin-connector/index.d.ts +1 -1
  16. package/_vendor/plugin-connector/quickConnect.d.ts +1 -0
  17. package/_vendor/plugin-draw/_vendor/canvas-core/editor/editor.d.ts +1 -1
  18. package/_vendor/plugin-draw/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  19. package/_vendor/plugin-draw/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  20. package/_vendor/plugin-draw/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  21. package/_vendor/plugin-draw/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  22. package/_vendor/plugin-draw/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  23. package/_vendor/plugin-draw/_vendor/canvas-react/host/index.d.ts +2 -0
  24. package/_vendor/plugin-eraser/_vendor/canvas-core/editor/editor.d.ts +1 -1
  25. package/_vendor/plugin-eraser/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  26. package/_vendor/plugin-eraser/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  27. package/_vendor/plugin-eraser/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  28. package/_vendor/plugin-eraser/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  29. package/_vendor/plugin-eraser/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  30. package/_vendor/plugin-eraser/_vendor/canvas-react/host/index.d.ts +2 -0
  31. package/_vendor/plugin-flow/_vendor/canvas-core/editor/editor.d.ts +1 -1
  32. package/_vendor/plugin-flow/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  33. package/_vendor/plugin-flow/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  34. package/_vendor/plugin-flow/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  35. package/_vendor/plugin-flow/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  36. package/_vendor/plugin-flow/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  37. package/_vendor/plugin-flow/_vendor/canvas-react/host/index.d.ts +2 -0
  38. package/_vendor/plugin-flow/_vendor/plugin-connector/index.d.ts +1 -1
  39. package/_vendor/plugin-flow/_vendor/plugin-connector/quickConnect.d.ts +1 -0
  40. package/_vendor/plugin-flow/api.d.ts +13 -0
  41. package/_vendor/plugin-flow/editorRuntime.d.ts +8 -0
  42. package/_vendor/plugin-flow/flowNodeOperations.d.ts +19 -0
  43. package/_vendor/plugin-flow/flowNodeShapeUtil.d.ts +24 -0
  44. package/_vendor/plugin-flow/index.d.ts +8 -2
  45. package/_vendor/plugin-flow/nodeCreation.d.ts +2 -1
  46. package/_vendor/plugin-flow/types.d.ts +9 -1
  47. package/_vendor/plugin-frame/_vendor/canvas-core/editor/editor.d.ts +1 -1
  48. package/_vendor/plugin-frame/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  49. package/_vendor/plugin-frame/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  50. package/_vendor/plugin-frame/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  51. package/_vendor/plugin-frame/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  52. package/_vendor/plugin-frame/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  53. package/_vendor/plugin-frame/_vendor/canvas-react/host/index.d.ts +2 -0
  54. package/_vendor/plugin-geo/_vendor/canvas-core/editor/editor.d.ts +1 -1
  55. package/_vendor/plugin-geo/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  56. package/_vendor/plugin-geo/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  57. package/_vendor/plugin-geo/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  58. package/_vendor/plugin-geo/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  59. package/_vendor/plugin-geo/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  60. package/_vendor/plugin-geo/_vendor/canvas-react/host/index.d.ts +2 -0
  61. package/_vendor/plugin-group/_vendor/canvas-core/editor/editor.d.ts +1 -1
  62. package/_vendor/plugin-group/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  63. package/_vendor/plugin-group/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  64. package/_vendor/plugin-group/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  65. package/_vendor/plugin-group/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  66. package/_vendor/plugin-group/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  67. package/_vendor/plugin-group/_vendor/canvas-react/host/index.d.ts +2 -0
  68. package/_vendor/plugin-group/canvasRender.d.ts +2 -2
  69. package/_vendor/plugin-html/_vendor/canvas-core/editor/editor.d.ts +1 -1
  70. package/_vendor/plugin-html/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  71. package/_vendor/plugin-html/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  72. package/_vendor/plugin-html/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  73. package/_vendor/plugin-html/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  74. package/_vendor/plugin-html/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  75. package/_vendor/plugin-html/_vendor/canvas-react/host/index.d.ts +2 -0
  76. package/_vendor/plugin-image/_vendor/canvas-core/editor/editor.d.ts +1 -1
  77. package/_vendor/plugin-image/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  78. package/_vendor/plugin-image/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  79. package/_vendor/plugin-image/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  80. package/_vendor/plugin-image/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  81. package/_vendor/plugin-image/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  82. package/_vendor/plugin-image/_vendor/canvas-react/host/index.d.ts +2 -0
  83. package/_vendor/plugin-laser/_vendor/canvas-core/editor/editor.d.ts +1 -1
  84. package/_vendor/plugin-laser/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  85. package/_vendor/plugin-laser/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  86. package/_vendor/plugin-laser/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  87. package/_vendor/plugin-laser/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  88. package/_vendor/plugin-laser/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  89. package/_vendor/plugin-laser/_vendor/canvas-react/host/index.d.ts +2 -0
  90. package/_vendor/plugin-path/_vendor/canvas-core/editor/editor.d.ts +1 -1
  91. package/_vendor/plugin-path/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  92. package/_vendor/plugin-path/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  93. package/_vendor/plugin-path/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  94. package/_vendor/plugin-path/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  95. package/_vendor/plugin-path/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  96. package/_vendor/plugin-path/_vendor/canvas-react/host/index.d.ts +2 -0
  97. package/_vendor/plugin-runtime-clipboard/_vendor/canvas-core/editor/editor.d.ts +1 -1
  98. package/_vendor/plugin-runtime-clipboard/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  99. package/_vendor/plugin-runtime-clipboard/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  100. package/_vendor/plugin-runtime-clipboard/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  101. package/_vendor/plugin-runtime-clipboard/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  102. package/_vendor/plugin-runtime-clipboard/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  103. package/_vendor/plugin-runtime-clipboard/_vendor/canvas-react/host/index.d.ts +2 -0
  104. package/_vendor/plugin-runtime-export/_vendor/canvas-core/editor/editor.d.ts +1 -1
  105. package/_vendor/plugin-runtime-export/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  106. package/_vendor/plugin-runtime-export/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  107. package/_vendor/plugin-runtime-export/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  108. package/_vendor/plugin-runtime-export/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  109. package/_vendor/plugin-runtime-export/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  110. package/_vendor/plugin-runtime-export/_vendor/canvas-react/host/index.d.ts +2 -0
  111. package/_vendor/plugin-text/_vendor/canvas-core/editor/editor.d.ts +1 -1
  112. package/_vendor/plugin-text/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  113. package/_vendor/plugin-text/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  114. package/_vendor/plugin-text/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  115. package/_vendor/plugin-text/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  116. package/_vendor/plugin-text/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  117. package/_vendor/plugin-text/_vendor/canvas-react/host/index.d.ts +2 -0
  118. package/_vendor/plugin-video/_vendor/canvas-core/editor/editor.d.ts +1 -1
  119. package/_vendor/plugin-video/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +1 -0
  120. package/_vendor/plugin-video/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +1 -0
  121. package/_vendor/plugin-video/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +0 -2
  122. package/_vendor/plugin-video/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +0 -1
  123. package/_vendor/plugin-video/_vendor/canvas-react/host/ShapeHeadingControl.d.ts +33 -0
  124. package/_vendor/plugin-video/_vendor/canvas-react/host/index.d.ts +2 -0
  125. package/index.mjs +82 -168
  126. package/package.json +6 -2
@@ -164,7 +164,6 @@ export declare class Editor {
164
164
  readonly getEditingSessionSignal: (id: ShapeId) => Signal<ShapeEditingSession | null>;
165
165
  readonly getDropTargetSignal: (id: ShapeId) => Signal<boolean>;
166
166
  readonly getHoveredSignal: (id: ShapeId) => Signal<boolean>;
167
- readonly getSelectedDescendantTransformAncestorSignal: (id: ShapeId) => Signal<boolean>;
168
167
  readonly isHidden: (shapeId: ShapeId) => boolean;
169
168
  readonly getDefaultProps: <TProps extends object = object>(type: ShapeRecord["type"]) => TProps;
170
169
  readonly updateDefaultProps: (type: ShapeRecord["type"], props: ShapePropsPatch) => void;
@@ -176,6 +175,7 @@ export declare class Editor {
176
175
  readonly computeLocalBounds: (shape: ShapeRecord) => Box;
177
176
  readonly computeRenderBounds: (shape: ShapeRecord) => Box;
178
177
  readonly computeExportBounds: (shape: ShapeRecord) => Box;
178
+ readonly computeExportBoundsInShapeSpace: (shape: ShapeRecord, coordinateSpaceShape: ShapeRecord) => Box | null;
179
179
  readonly computeLocalToPageTransform: (shape: ShapeRecord) => Mat;
180
180
  readonly computeRenderToPageTransform: (shape: ShapeRecord) => Mat;
181
181
  readonly computeExportToPageTransform: (shape: ShapeRecord) => Mat;
@@ -39,5 +39,6 @@ export declare function getShapePositionedOutlineVertices<S extends ShapeRecord>
39
39
  export declare function getShapePageCorners<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
40
40
  export declare function getShapePageOutlineVertices<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
41
41
  export declare function getShapePageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
42
+ export declare function getShapeExportTransformedBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, localToTarget: Mat): Box;
42
43
  export declare function getShapeExportPageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
43
44
  export declare function getShapeGeometry<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): ShapeGeometry;
@@ -9,6 +9,7 @@ export declare function computeEditorShapePositionedBounds(editor: Editor, shape
9
9
  export declare function computeEditorShapeLocalBounds(editor: Editor, shape: ShapeRecord): Box;
10
10
  export declare function computeEditorShapeRenderBounds(editor: Editor, shape: ShapeRecord): Box;
11
11
  export declare function computeEditorShapeExportBounds(editor: Editor, shape: ShapeRecord): Box;
12
+ export declare function computeEditorShapeExportBoundsInShapeSpace(editor: Editor, shape: ShapeRecord, coordinateSpaceShape: ShapeRecord): Box | null;
12
13
  export declare function computeEditorShapeLocalToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
13
14
  export declare function computeEditorShapeRenderToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
14
15
  export declare function computeEditorShapeExportToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
@@ -16,7 +16,6 @@ export declare class ShapeSignalManager {
16
16
  private readonly editingSessionSignals;
17
17
  private readonly dropTargetSignals;
18
18
  private readonly hoveredSignals;
19
- private readonly selectedDescendantTransformAncestorSignals;
20
19
  constructor(editor: Editor);
21
20
  dispose(): void;
22
21
  isDocumentHidden(id: ShapeId): boolean;
@@ -30,6 +29,5 @@ export declare class ShapeSignalManager {
30
29
  getEditingSessionSignal(id: ShapeId): Signal<ShapeEditingSession | null>;
31
30
  getDropTargetSignal(id: ShapeId): Signal<boolean>;
32
31
  getHoveredSignal(id: ShapeId): Signal<boolean>;
33
- getSelectedDescendantTransformAncestorSignal(id: ShapeId): Signal<boolean>;
34
32
  private evict;
35
33
  }
@@ -1,2 +1 @@
1
- export declare function TransformDescendantAncestorBoundary(): import("react/jsx-runtime").JSX.Element;
2
1
  export declare function ShapeDropTargetLabel(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from "react";
2
+ import type { Editor, ShapeRecordBase } from "../../canvas-core/index";
3
+ import type { CanvasDomEventGuard } from "./canvasRenderPlugin";
4
+ export interface ShapeHeadingDataUi {
5
+ readonly heading: string;
6
+ readonly dragHandle: string;
7
+ readonly name: string;
8
+ readonly input: string;
9
+ }
10
+ export interface ShapeHeadingControlProps<S extends ShapeRecordBase = ShapeRecordBase> {
11
+ readonly editor: Editor;
12
+ readonly shape: S;
13
+ readonly isEditing: boolean;
14
+ readonly value: string;
15
+ readonly fallback: string;
16
+ readonly bodyWidth: number;
17
+ readonly bodyHeight: number;
18
+ readonly renderHeight: number;
19
+ readonly operationKind: string;
20
+ readonly editAriaLabel: string;
21
+ readonly inputAriaLabel: string;
22
+ readonly dataUi: ShapeHeadingDataUi;
23
+ readonly onValueChange: (value: string) => void;
24
+ readonly leading?: ReactNode;
25
+ readonly editable?: boolean;
26
+ readonly showBackground?: boolean;
27
+ readonly showDragHandle?: boolean;
28
+ }
29
+ export declare function createShapeHeadingDomEventGuard({ id, selector, }: {
30
+ id: string;
31
+ selector: string;
32
+ }): CanvasDomEventGuard;
33
+ export declare function ShapeHeadingControl<S extends ShapeRecordBase>({ editor, shape, isEditing, value, fallback, bodyWidth, bodyHeight, renderHeight, operationKind, editAriaLabel, inputAriaLabel, dataUi, onValueChange, leading, editable, showBackground, showDragHandle, }: ShapeHeadingControlProps<S>): import("react/jsx-runtime").JSX.Element;
@@ -2,4 +2,6 @@ export { CanvasRenderBindingsContext, useCanvasOverlays, useCanvasRenderBindings
2
2
  export type { CanvasDomEventGuards, CanvasOverlayLookup, CanvasRendererLookup, } from "./canvasRenderBindings";
3
3
  export type { AnyRegisteredSelectionCustomHandleRenderer, AnyRegisteredShapeRenderer, CanvasOverlayContribution, CanvasDomEventGuard, CanvasDomEventGuardCursorInput, CanvasDomEventGuardDecision, CanvasDomEventGuardInput, CanvasDomEventGuardName, CanvasRenderPluginComponent, CanvasRenderPlugin, RegisteredSelectionCustomHandleRenderer, RegisteredShapeRenderer, SelectionCustomHandleRendererProps, ShapeHoverRendererProps, ShapeRendererProps, ShapeOpacityModifier, } from "./canvasRenderPlugin";
4
4
  export { SHAPE_HOVER_STROKE, SHAPE_HOVER_STROKE_WIDTH, } from "./canvasRenderPlugin";
5
+ export { ShapeHeadingControl, createShapeHeadingDomEventGuard, } from "./ShapeHeadingControl";
6
+ export type { ShapeHeadingControlProps, ShapeHeadingDataUi, } from "./ShapeHeadingControl";
5
7
  export { createCanvasRenderBindings, type CanvasRenderBindings, } from "./canvasRenderBindings";
@@ -164,7 +164,6 @@ export declare class Editor {
164
164
  readonly getEditingSessionSignal: (id: ShapeId) => Signal<ShapeEditingSession | null>;
165
165
  readonly getDropTargetSignal: (id: ShapeId) => Signal<boolean>;
166
166
  readonly getHoveredSignal: (id: ShapeId) => Signal<boolean>;
167
- readonly getSelectedDescendantTransformAncestorSignal: (id: ShapeId) => Signal<boolean>;
168
167
  readonly isHidden: (shapeId: ShapeId) => boolean;
169
168
  readonly getDefaultProps: <TProps extends object = object>(type: ShapeRecord["type"]) => TProps;
170
169
  readonly updateDefaultProps: (type: ShapeRecord["type"], props: ShapePropsPatch) => void;
@@ -176,6 +175,7 @@ export declare class Editor {
176
175
  readonly computeLocalBounds: (shape: ShapeRecord) => Box;
177
176
  readonly computeRenderBounds: (shape: ShapeRecord) => Box;
178
177
  readonly computeExportBounds: (shape: ShapeRecord) => Box;
178
+ readonly computeExportBoundsInShapeSpace: (shape: ShapeRecord, coordinateSpaceShape: ShapeRecord) => Box | null;
179
179
  readonly computeLocalToPageTransform: (shape: ShapeRecord) => Mat;
180
180
  readonly computeRenderToPageTransform: (shape: ShapeRecord) => Mat;
181
181
  readonly computeExportToPageTransform: (shape: ShapeRecord) => Mat;
@@ -39,5 +39,6 @@ export declare function getShapePositionedOutlineVertices<S extends ShapeRecord>
39
39
  export declare function getShapePageCorners<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
40
40
  export declare function getShapePageOutlineVertices<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
41
41
  export declare function getShapePageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
42
+ export declare function getShapeExportTransformedBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, localToTarget: Mat): Box;
42
43
  export declare function getShapeExportPageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
43
44
  export declare function getShapeGeometry<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): ShapeGeometry;
@@ -9,6 +9,7 @@ export declare function computeEditorShapePositionedBounds(editor: Editor, shape
9
9
  export declare function computeEditorShapeLocalBounds(editor: Editor, shape: ShapeRecord): Box;
10
10
  export declare function computeEditorShapeRenderBounds(editor: Editor, shape: ShapeRecord): Box;
11
11
  export declare function computeEditorShapeExportBounds(editor: Editor, shape: ShapeRecord): Box;
12
+ export declare function computeEditorShapeExportBoundsInShapeSpace(editor: Editor, shape: ShapeRecord, coordinateSpaceShape: ShapeRecord): Box | null;
12
13
  export declare function computeEditorShapeLocalToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
13
14
  export declare function computeEditorShapeRenderToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
14
15
  export declare function computeEditorShapeExportToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
@@ -16,7 +16,6 @@ export declare class ShapeSignalManager {
16
16
  private readonly editingSessionSignals;
17
17
  private readonly dropTargetSignals;
18
18
  private readonly hoveredSignals;
19
- private readonly selectedDescendantTransformAncestorSignals;
20
19
  constructor(editor: Editor);
21
20
  dispose(): void;
22
21
  isDocumentHidden(id: ShapeId): boolean;
@@ -30,6 +29,5 @@ export declare class ShapeSignalManager {
30
29
  getEditingSessionSignal(id: ShapeId): Signal<ShapeEditingSession | null>;
31
30
  getDropTargetSignal(id: ShapeId): Signal<boolean>;
32
31
  getHoveredSignal(id: ShapeId): Signal<boolean>;
33
- getSelectedDescendantTransformAncestorSignal(id: ShapeId): Signal<boolean>;
34
32
  private evict;
35
33
  }
@@ -1,2 +1 @@
1
- export declare function TransformDescendantAncestorBoundary(): import("react/jsx-runtime").JSX.Element;
2
1
  export declare function ShapeDropTargetLabel(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from "react";
2
+ import type { Editor, ShapeRecordBase } from "../../canvas-core/index";
3
+ import type { CanvasDomEventGuard } from "./canvasRenderPlugin";
4
+ export interface ShapeHeadingDataUi {
5
+ readonly heading: string;
6
+ readonly dragHandle: string;
7
+ readonly name: string;
8
+ readonly input: string;
9
+ }
10
+ export interface ShapeHeadingControlProps<S extends ShapeRecordBase = ShapeRecordBase> {
11
+ readonly editor: Editor;
12
+ readonly shape: S;
13
+ readonly isEditing: boolean;
14
+ readonly value: string;
15
+ readonly fallback: string;
16
+ readonly bodyWidth: number;
17
+ readonly bodyHeight: number;
18
+ readonly renderHeight: number;
19
+ readonly operationKind: string;
20
+ readonly editAriaLabel: string;
21
+ readonly inputAriaLabel: string;
22
+ readonly dataUi: ShapeHeadingDataUi;
23
+ readonly onValueChange: (value: string) => void;
24
+ readonly leading?: ReactNode;
25
+ readonly editable?: boolean;
26
+ readonly showBackground?: boolean;
27
+ readonly showDragHandle?: boolean;
28
+ }
29
+ export declare function createShapeHeadingDomEventGuard({ id, selector, }: {
30
+ id: string;
31
+ selector: string;
32
+ }): CanvasDomEventGuard;
33
+ export declare function ShapeHeadingControl<S extends ShapeRecordBase>({ editor, shape, isEditing, value, fallback, bodyWidth, bodyHeight, renderHeight, operationKind, editAriaLabel, inputAriaLabel, dataUi, onValueChange, leading, editable, showBackground, showDragHandle, }: ShapeHeadingControlProps<S>): import("react/jsx-runtime").JSX.Element;
@@ -2,4 +2,6 @@ export { CanvasRenderBindingsContext, useCanvasOverlays, useCanvasRenderBindings
2
2
  export type { CanvasDomEventGuards, CanvasOverlayLookup, CanvasRendererLookup, } from "./canvasRenderBindings";
3
3
  export type { AnyRegisteredSelectionCustomHandleRenderer, AnyRegisteredShapeRenderer, CanvasOverlayContribution, CanvasDomEventGuard, CanvasDomEventGuardCursorInput, CanvasDomEventGuardDecision, CanvasDomEventGuardInput, CanvasDomEventGuardName, CanvasRenderPluginComponent, CanvasRenderPlugin, RegisteredSelectionCustomHandleRenderer, RegisteredShapeRenderer, SelectionCustomHandleRendererProps, ShapeHoverRendererProps, ShapeRendererProps, ShapeOpacityModifier, } from "./canvasRenderPlugin";
4
4
  export { SHAPE_HOVER_STROKE, SHAPE_HOVER_STROKE_WIDTH, } from "./canvasRenderPlugin";
5
+ export { ShapeHeadingControl, createShapeHeadingDomEventGuard, } from "./ShapeHeadingControl";
6
+ export type { ShapeHeadingControlProps, ShapeHeadingDataUi, } from "./ShapeHeadingControl";
5
7
  export { createCanvasRenderBindings, type CanvasRenderBindings, } from "./canvasRenderBindings";
@@ -12,7 +12,7 @@ export type { ConnectorInfo, ConnectorSegment, ConnectorTerminalOffsetInput, Con
12
12
  export { CONNECTOR_ARROW_TERMINAL_PADDING, getConnectorArrowGlyphLength, getConnectorArrowLength, getConnectorArrowMagnification, getConnectorMarkerPath, getConnectorMarkerRefX, } from "./connectorMarker";
13
13
  export { commitConnectorCreation, createConnectorBoundEndpoint, getConnectorCreationInvalidReason, getConnectorParentId, resolveConnectorDraftEndpoint, resolveConnectorDraftParentId, hasDirectedConnector, setConnectorTerminalPagePoint, } from "./connectorModel";
14
14
  export type { CommitConnectorCreationInput, ConnectorBoundEndpoint, ConnectorCreationInvalidReason, ConnectorDraftEndpoint, ResolvedConnectorDraftEndpoint, } from "./connectorModel";
15
- export { chooseFacingPort, createDefaultConnectorQuickCreateNodeFactory, findQuickConnectTargets, getBalancedConnectorBranchNodeInput, getConnectorVisualPortPoint, getNearestConnectorPortAtPoint, quickConnectFromPort, } from "./quickConnect";
15
+ export { chooseFacingPort, chooseOpposingPort, createDefaultConnectorQuickCreateNodeFactory, findQuickConnectTargets, getBalancedConnectorBranchNodeInput, getConnectorVisualPortPoint, getNearestConnectorPortAtPoint, quickConnectFromPort, } from "./quickConnect";
16
16
  export type { ConnectorPortTarget, ConnectorQuickConnectPlan, } from "./quickConnect";
17
17
  export { getConnectorPortInteractionState, getVisibleConnectorSourcePortAtPoint, } from "./connectorPortInteraction";
18
18
  export * from "./constants";
@@ -26,4 +26,5 @@ export declare function getConnectorQuickConnectPlan(editor: Editor, source: Con
26
26
  export declare function getBalancedConnectorBranchNodeInput(editor: Editor, source: ConnectorPortTarget, input: CreateShapeInput): CreateShapeInput;
27
27
  export declare function findQuickConnectTargets(editor: Editor, source: ConnectorPortTarget): ConnectorPortTarget[];
28
28
  export declare function chooseFacingPort(editor: Editor, shape: ShapeRecord, sourcePagePoint: Vec): ResolvedShapeTerminalBindingPort | null;
29
+ export declare function chooseOpposingPort(editor: Editor, shape: ShapeRecord, sourcePort: ResolvedShapeTerminalBindingPort): ResolvedShapeTerminalBindingPort | null;
29
30
  export declare function createDefaultConnectorQuickCreateNodeFactory(): ConnectorQuickCreateNodeFactory;
@@ -164,7 +164,6 @@ export declare class Editor {
164
164
  readonly getEditingSessionSignal: (id: ShapeId) => Signal<ShapeEditingSession | null>;
165
165
  readonly getDropTargetSignal: (id: ShapeId) => Signal<boolean>;
166
166
  readonly getHoveredSignal: (id: ShapeId) => Signal<boolean>;
167
- readonly getSelectedDescendantTransformAncestorSignal: (id: ShapeId) => Signal<boolean>;
168
167
  readonly isHidden: (shapeId: ShapeId) => boolean;
169
168
  readonly getDefaultProps: <TProps extends object = object>(type: ShapeRecord["type"]) => TProps;
170
169
  readonly updateDefaultProps: (type: ShapeRecord["type"], props: ShapePropsPatch) => void;
@@ -176,6 +175,7 @@ export declare class Editor {
176
175
  readonly computeLocalBounds: (shape: ShapeRecord) => Box;
177
176
  readonly computeRenderBounds: (shape: ShapeRecord) => Box;
178
177
  readonly computeExportBounds: (shape: ShapeRecord) => Box;
178
+ readonly computeExportBoundsInShapeSpace: (shape: ShapeRecord, coordinateSpaceShape: ShapeRecord) => Box | null;
179
179
  readonly computeLocalToPageTransform: (shape: ShapeRecord) => Mat;
180
180
  readonly computeRenderToPageTransform: (shape: ShapeRecord) => Mat;
181
181
  readonly computeExportToPageTransform: (shape: ShapeRecord) => Mat;
@@ -39,5 +39,6 @@ export declare function getShapePositionedOutlineVertices<S extends ShapeRecord>
39
39
  export declare function getShapePageCorners<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
40
40
  export declare function getShapePageOutlineVertices<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
41
41
  export declare function getShapePageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
42
+ export declare function getShapeExportTransformedBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, localToTarget: Mat): Box;
42
43
  export declare function getShapeExportPageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
43
44
  export declare function getShapeGeometry<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): ShapeGeometry;
@@ -9,6 +9,7 @@ export declare function computeEditorShapePositionedBounds(editor: Editor, shape
9
9
  export declare function computeEditorShapeLocalBounds(editor: Editor, shape: ShapeRecord): Box;
10
10
  export declare function computeEditorShapeRenderBounds(editor: Editor, shape: ShapeRecord): Box;
11
11
  export declare function computeEditorShapeExportBounds(editor: Editor, shape: ShapeRecord): Box;
12
+ export declare function computeEditorShapeExportBoundsInShapeSpace(editor: Editor, shape: ShapeRecord, coordinateSpaceShape: ShapeRecord): Box | null;
12
13
  export declare function computeEditorShapeLocalToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
13
14
  export declare function computeEditorShapeRenderToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
14
15
  export declare function computeEditorShapeExportToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
@@ -16,7 +16,6 @@ export declare class ShapeSignalManager {
16
16
  private readonly editingSessionSignals;
17
17
  private readonly dropTargetSignals;
18
18
  private readonly hoveredSignals;
19
- private readonly selectedDescendantTransformAncestorSignals;
20
19
  constructor(editor: Editor);
21
20
  dispose(): void;
22
21
  isDocumentHidden(id: ShapeId): boolean;
@@ -30,6 +29,5 @@ export declare class ShapeSignalManager {
30
29
  getEditingSessionSignal(id: ShapeId): Signal<ShapeEditingSession | null>;
31
30
  getDropTargetSignal(id: ShapeId): Signal<boolean>;
32
31
  getHoveredSignal(id: ShapeId): Signal<boolean>;
33
- getSelectedDescendantTransformAncestorSignal(id: ShapeId): Signal<boolean>;
34
32
  private evict;
35
33
  }
@@ -1,2 +1 @@
1
- export declare function TransformDescendantAncestorBoundary(): import("react/jsx-runtime").JSX.Element;
2
1
  export declare function ShapeDropTargetLabel(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from "react";
2
+ import type { Editor, ShapeRecordBase } from "../../canvas-core/index";
3
+ import type { CanvasDomEventGuard } from "./canvasRenderPlugin";
4
+ export interface ShapeHeadingDataUi {
5
+ readonly heading: string;
6
+ readonly dragHandle: string;
7
+ readonly name: string;
8
+ readonly input: string;
9
+ }
10
+ export interface ShapeHeadingControlProps<S extends ShapeRecordBase = ShapeRecordBase> {
11
+ readonly editor: Editor;
12
+ readonly shape: S;
13
+ readonly isEditing: boolean;
14
+ readonly value: string;
15
+ readonly fallback: string;
16
+ readonly bodyWidth: number;
17
+ readonly bodyHeight: number;
18
+ readonly renderHeight: number;
19
+ readonly operationKind: string;
20
+ readonly editAriaLabel: string;
21
+ readonly inputAriaLabel: string;
22
+ readonly dataUi: ShapeHeadingDataUi;
23
+ readonly onValueChange: (value: string) => void;
24
+ readonly leading?: ReactNode;
25
+ readonly editable?: boolean;
26
+ readonly showBackground?: boolean;
27
+ readonly showDragHandle?: boolean;
28
+ }
29
+ export declare function createShapeHeadingDomEventGuard({ id, selector, }: {
30
+ id: string;
31
+ selector: string;
32
+ }): CanvasDomEventGuard;
33
+ export declare function ShapeHeadingControl<S extends ShapeRecordBase>({ editor, shape, isEditing, value, fallback, bodyWidth, bodyHeight, renderHeight, operationKind, editAriaLabel, inputAriaLabel, dataUi, onValueChange, leading, editable, showBackground, showDragHandle, }: ShapeHeadingControlProps<S>): import("react/jsx-runtime").JSX.Element;
@@ -2,4 +2,6 @@ export { CanvasRenderBindingsContext, useCanvasOverlays, useCanvasRenderBindings
2
2
  export type { CanvasDomEventGuards, CanvasOverlayLookup, CanvasRendererLookup, } from "./canvasRenderBindings";
3
3
  export type { AnyRegisteredSelectionCustomHandleRenderer, AnyRegisteredShapeRenderer, CanvasOverlayContribution, CanvasDomEventGuard, CanvasDomEventGuardCursorInput, CanvasDomEventGuardDecision, CanvasDomEventGuardInput, CanvasDomEventGuardName, CanvasRenderPluginComponent, CanvasRenderPlugin, RegisteredSelectionCustomHandleRenderer, RegisteredShapeRenderer, SelectionCustomHandleRendererProps, ShapeHoverRendererProps, ShapeRendererProps, ShapeOpacityModifier, } from "./canvasRenderPlugin";
4
4
  export { SHAPE_HOVER_STROKE, SHAPE_HOVER_STROKE_WIDTH, } from "./canvasRenderPlugin";
5
+ export { ShapeHeadingControl, createShapeHeadingDomEventGuard, } from "./ShapeHeadingControl";
6
+ export type { ShapeHeadingControlProps, ShapeHeadingDataUi, } from "./ShapeHeadingControl";
5
7
  export { createCanvasRenderBindings, type CanvasRenderBindings, } from "./canvasRenderBindings";
@@ -164,7 +164,6 @@ export declare class Editor {
164
164
  readonly getEditingSessionSignal: (id: ShapeId) => Signal<ShapeEditingSession | null>;
165
165
  readonly getDropTargetSignal: (id: ShapeId) => Signal<boolean>;
166
166
  readonly getHoveredSignal: (id: ShapeId) => Signal<boolean>;
167
- readonly getSelectedDescendantTransformAncestorSignal: (id: ShapeId) => Signal<boolean>;
168
167
  readonly isHidden: (shapeId: ShapeId) => boolean;
169
168
  readonly getDefaultProps: <TProps extends object = object>(type: ShapeRecord["type"]) => TProps;
170
169
  readonly updateDefaultProps: (type: ShapeRecord["type"], props: ShapePropsPatch) => void;
@@ -176,6 +175,7 @@ export declare class Editor {
176
175
  readonly computeLocalBounds: (shape: ShapeRecord) => Box;
177
176
  readonly computeRenderBounds: (shape: ShapeRecord) => Box;
178
177
  readonly computeExportBounds: (shape: ShapeRecord) => Box;
178
+ readonly computeExportBoundsInShapeSpace: (shape: ShapeRecord, coordinateSpaceShape: ShapeRecord) => Box | null;
179
179
  readonly computeLocalToPageTransform: (shape: ShapeRecord) => Mat;
180
180
  readonly computeRenderToPageTransform: (shape: ShapeRecord) => Mat;
181
181
  readonly computeExportToPageTransform: (shape: ShapeRecord) => Mat;
@@ -39,5 +39,6 @@ export declare function getShapePositionedOutlineVertices<S extends ShapeRecord>
39
39
  export declare function getShapePageCorners<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
40
40
  export declare function getShapePageOutlineVertices<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
41
41
  export declare function getShapePageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
42
+ export declare function getShapeExportTransformedBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, localToTarget: Mat): Box;
42
43
  export declare function getShapeExportPageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
43
44
  export declare function getShapeGeometry<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): ShapeGeometry;
@@ -9,6 +9,7 @@ export declare function computeEditorShapePositionedBounds(editor: Editor, shape
9
9
  export declare function computeEditorShapeLocalBounds(editor: Editor, shape: ShapeRecord): Box;
10
10
  export declare function computeEditorShapeRenderBounds(editor: Editor, shape: ShapeRecord): Box;
11
11
  export declare function computeEditorShapeExportBounds(editor: Editor, shape: ShapeRecord): Box;
12
+ export declare function computeEditorShapeExportBoundsInShapeSpace(editor: Editor, shape: ShapeRecord, coordinateSpaceShape: ShapeRecord): Box | null;
12
13
  export declare function computeEditorShapeLocalToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
13
14
  export declare function computeEditorShapeRenderToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
14
15
  export declare function computeEditorShapeExportToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
@@ -16,7 +16,6 @@ export declare class ShapeSignalManager {
16
16
  private readonly editingSessionSignals;
17
17
  private readonly dropTargetSignals;
18
18
  private readonly hoveredSignals;
19
- private readonly selectedDescendantTransformAncestorSignals;
20
19
  constructor(editor: Editor);
21
20
  dispose(): void;
22
21
  isDocumentHidden(id: ShapeId): boolean;
@@ -30,6 +29,5 @@ export declare class ShapeSignalManager {
30
29
  getEditingSessionSignal(id: ShapeId): Signal<ShapeEditingSession | null>;
31
30
  getDropTargetSignal(id: ShapeId): Signal<boolean>;
32
31
  getHoveredSignal(id: ShapeId): Signal<boolean>;
33
- getSelectedDescendantTransformAncestorSignal(id: ShapeId): Signal<boolean>;
34
32
  private evict;
35
33
  }
@@ -1,2 +1 @@
1
- export declare function TransformDescendantAncestorBoundary(): import("react/jsx-runtime").JSX.Element;
2
1
  export declare function ShapeDropTargetLabel(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from "react";
2
+ import type { Editor, ShapeRecordBase } from "../../canvas-core/index";
3
+ import type { CanvasDomEventGuard } from "./canvasRenderPlugin";
4
+ export interface ShapeHeadingDataUi {
5
+ readonly heading: string;
6
+ readonly dragHandle: string;
7
+ readonly name: string;
8
+ readonly input: string;
9
+ }
10
+ export interface ShapeHeadingControlProps<S extends ShapeRecordBase = ShapeRecordBase> {
11
+ readonly editor: Editor;
12
+ readonly shape: S;
13
+ readonly isEditing: boolean;
14
+ readonly value: string;
15
+ readonly fallback: string;
16
+ readonly bodyWidth: number;
17
+ readonly bodyHeight: number;
18
+ readonly renderHeight: number;
19
+ readonly operationKind: string;
20
+ readonly editAriaLabel: string;
21
+ readonly inputAriaLabel: string;
22
+ readonly dataUi: ShapeHeadingDataUi;
23
+ readonly onValueChange: (value: string) => void;
24
+ readonly leading?: ReactNode;
25
+ readonly editable?: boolean;
26
+ readonly showBackground?: boolean;
27
+ readonly showDragHandle?: boolean;
28
+ }
29
+ export declare function createShapeHeadingDomEventGuard({ id, selector, }: {
30
+ id: string;
31
+ selector: string;
32
+ }): CanvasDomEventGuard;
33
+ export declare function ShapeHeadingControl<S extends ShapeRecordBase>({ editor, shape, isEditing, value, fallback, bodyWidth, bodyHeight, renderHeight, operationKind, editAriaLabel, inputAriaLabel, dataUi, onValueChange, leading, editable, showBackground, showDragHandle, }: ShapeHeadingControlProps<S>): import("react/jsx-runtime").JSX.Element;
@@ -2,4 +2,6 @@ export { CanvasRenderBindingsContext, useCanvasOverlays, useCanvasRenderBindings
2
2
  export type { CanvasDomEventGuards, CanvasOverlayLookup, CanvasRendererLookup, } from "./canvasRenderBindings";
3
3
  export type { AnyRegisteredSelectionCustomHandleRenderer, AnyRegisteredShapeRenderer, CanvasOverlayContribution, CanvasDomEventGuard, CanvasDomEventGuardCursorInput, CanvasDomEventGuardDecision, CanvasDomEventGuardInput, CanvasDomEventGuardName, CanvasRenderPluginComponent, CanvasRenderPlugin, RegisteredSelectionCustomHandleRenderer, RegisteredShapeRenderer, SelectionCustomHandleRendererProps, ShapeHoverRendererProps, ShapeRendererProps, ShapeOpacityModifier, } from "./canvasRenderPlugin";
4
4
  export { SHAPE_HOVER_STROKE, SHAPE_HOVER_STROKE_WIDTH, } from "./canvasRenderPlugin";
5
+ export { ShapeHeadingControl, createShapeHeadingDomEventGuard, } from "./ShapeHeadingControl";
6
+ export type { ShapeHeadingControlProps, ShapeHeadingDataUi, } from "./ShapeHeadingControl";
5
7
  export { createCanvasRenderBindings, type CanvasRenderBindings, } from "./canvasRenderBindings";
@@ -164,7 +164,6 @@ export declare class Editor {
164
164
  readonly getEditingSessionSignal: (id: ShapeId) => Signal<ShapeEditingSession | null>;
165
165
  readonly getDropTargetSignal: (id: ShapeId) => Signal<boolean>;
166
166
  readonly getHoveredSignal: (id: ShapeId) => Signal<boolean>;
167
- readonly getSelectedDescendantTransformAncestorSignal: (id: ShapeId) => Signal<boolean>;
168
167
  readonly isHidden: (shapeId: ShapeId) => boolean;
169
168
  readonly getDefaultProps: <TProps extends object = object>(type: ShapeRecord["type"]) => TProps;
170
169
  readonly updateDefaultProps: (type: ShapeRecord["type"], props: ShapePropsPatch) => void;
@@ -176,6 +175,7 @@ export declare class Editor {
176
175
  readonly computeLocalBounds: (shape: ShapeRecord) => Box;
177
176
  readonly computeRenderBounds: (shape: ShapeRecord) => Box;
178
177
  readonly computeExportBounds: (shape: ShapeRecord) => Box;
178
+ readonly computeExportBoundsInShapeSpace: (shape: ShapeRecord, coordinateSpaceShape: ShapeRecord) => Box | null;
179
179
  readonly computeLocalToPageTransform: (shape: ShapeRecord) => Mat;
180
180
  readonly computeRenderToPageTransform: (shape: ShapeRecord) => Mat;
181
181
  readonly computeExportToPageTransform: (shape: ShapeRecord) => Mat;
@@ -39,5 +39,6 @@ export declare function getShapePositionedOutlineVertices<S extends ShapeRecord>
39
39
  export declare function getShapePageCorners<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
40
40
  export declare function getShapePageOutlineVertices<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Vec[];
41
41
  export declare function getShapePageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
42
+ export declare function getShapeExportTransformedBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, localToTarget: Mat): Box;
42
43
  export declare function getShapeExportPageBounds<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): Box;
43
44
  export declare function getShapeGeometry<S extends ShapeRecord>(shape: S, util: ShapeUtil<S>, parentToPage: Mat): ShapeGeometry;
@@ -9,6 +9,7 @@ export declare function computeEditorShapePositionedBounds(editor: Editor, shape
9
9
  export declare function computeEditorShapeLocalBounds(editor: Editor, shape: ShapeRecord): Box;
10
10
  export declare function computeEditorShapeRenderBounds(editor: Editor, shape: ShapeRecord): Box;
11
11
  export declare function computeEditorShapeExportBounds(editor: Editor, shape: ShapeRecord): Box;
12
+ export declare function computeEditorShapeExportBoundsInShapeSpace(editor: Editor, shape: ShapeRecord, coordinateSpaceShape: ShapeRecord): Box | null;
12
13
  export declare function computeEditorShapeLocalToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
13
14
  export declare function computeEditorShapeRenderToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
14
15
  export declare function computeEditorShapeExportToPageTransform(editor: Editor, shape: ShapeRecord): Mat;
@@ -16,7 +16,6 @@ export declare class ShapeSignalManager {
16
16
  private readonly editingSessionSignals;
17
17
  private readonly dropTargetSignals;
18
18
  private readonly hoveredSignals;
19
- private readonly selectedDescendantTransformAncestorSignals;
20
19
  constructor(editor: Editor);
21
20
  dispose(): void;
22
21
  isDocumentHidden(id: ShapeId): boolean;
@@ -30,6 +29,5 @@ export declare class ShapeSignalManager {
30
29
  getEditingSessionSignal(id: ShapeId): Signal<ShapeEditingSession | null>;
31
30
  getDropTargetSignal(id: ShapeId): Signal<boolean>;
32
31
  getHoveredSignal(id: ShapeId): Signal<boolean>;
33
- getSelectedDescendantTransformAncestorSignal(id: ShapeId): Signal<boolean>;
34
32
  private evict;
35
33
  }
@@ -1,2 +1 @@
1
- export declare function TransformDescendantAncestorBoundary(): import("react/jsx-runtime").JSX.Element;
2
1
  export declare function ShapeDropTargetLabel(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from "react";
2
+ import type { Editor, ShapeRecordBase } from "../../canvas-core/index";
3
+ import type { CanvasDomEventGuard } from "./canvasRenderPlugin";
4
+ export interface ShapeHeadingDataUi {
5
+ readonly heading: string;
6
+ readonly dragHandle: string;
7
+ readonly name: string;
8
+ readonly input: string;
9
+ }
10
+ export interface ShapeHeadingControlProps<S extends ShapeRecordBase = ShapeRecordBase> {
11
+ readonly editor: Editor;
12
+ readonly shape: S;
13
+ readonly isEditing: boolean;
14
+ readonly value: string;
15
+ readonly fallback: string;
16
+ readonly bodyWidth: number;
17
+ readonly bodyHeight: number;
18
+ readonly renderHeight: number;
19
+ readonly operationKind: string;
20
+ readonly editAriaLabel: string;
21
+ readonly inputAriaLabel: string;
22
+ readonly dataUi: ShapeHeadingDataUi;
23
+ readonly onValueChange: (value: string) => void;
24
+ readonly leading?: ReactNode;
25
+ readonly editable?: boolean;
26
+ readonly showBackground?: boolean;
27
+ readonly showDragHandle?: boolean;
28
+ }
29
+ export declare function createShapeHeadingDomEventGuard({ id, selector, }: {
30
+ id: string;
31
+ selector: string;
32
+ }): CanvasDomEventGuard;
33
+ export declare function ShapeHeadingControl<S extends ShapeRecordBase>({ editor, shape, isEditing, value, fallback, bodyWidth, bodyHeight, renderHeight, operationKind, editAriaLabel, inputAriaLabel, dataUi, onValueChange, leading, editable, showBackground, showDragHandle, }: ShapeHeadingControlProps<S>): import("react/jsx-runtime").JSX.Element;
@@ -2,4 +2,6 @@ export { CanvasRenderBindingsContext, useCanvasOverlays, useCanvasRenderBindings
2
2
  export type { CanvasDomEventGuards, CanvasOverlayLookup, CanvasRendererLookup, } from "./canvasRenderBindings";
3
3
  export type { AnyRegisteredSelectionCustomHandleRenderer, AnyRegisteredShapeRenderer, CanvasOverlayContribution, CanvasDomEventGuard, CanvasDomEventGuardCursorInput, CanvasDomEventGuardDecision, CanvasDomEventGuardInput, CanvasDomEventGuardName, CanvasRenderPluginComponent, CanvasRenderPlugin, RegisteredSelectionCustomHandleRenderer, RegisteredShapeRenderer, SelectionCustomHandleRendererProps, ShapeHoverRendererProps, ShapeRendererProps, ShapeOpacityModifier, } from "./canvasRenderPlugin";
4
4
  export { SHAPE_HOVER_STROKE, SHAPE_HOVER_STROKE_WIDTH, } from "./canvasRenderPlugin";
5
+ export { ShapeHeadingControl, createShapeHeadingDomEventGuard, } from "./ShapeHeadingControl";
6
+ export type { ShapeHeadingControlProps, ShapeHeadingDataUi, } from "./ShapeHeadingControl";
5
7
  export { createCanvasRenderBindings, type CanvasRenderBindings, } from "./canvasRenderBindings";
@@ -12,7 +12,7 @@ export type { ConnectorInfo, ConnectorSegment, ConnectorTerminalOffsetInput, Con
12
12
  export { CONNECTOR_ARROW_TERMINAL_PADDING, getConnectorArrowGlyphLength, getConnectorArrowLength, getConnectorArrowMagnification, getConnectorMarkerPath, getConnectorMarkerRefX, } from "./connectorMarker";
13
13
  export { commitConnectorCreation, createConnectorBoundEndpoint, getConnectorCreationInvalidReason, getConnectorParentId, resolveConnectorDraftEndpoint, resolveConnectorDraftParentId, hasDirectedConnector, setConnectorTerminalPagePoint, } from "./connectorModel";
14
14
  export type { CommitConnectorCreationInput, ConnectorBoundEndpoint, ConnectorCreationInvalidReason, ConnectorDraftEndpoint, ResolvedConnectorDraftEndpoint, } from "./connectorModel";
15
- export { chooseFacingPort, createDefaultConnectorQuickCreateNodeFactory, findQuickConnectTargets, getBalancedConnectorBranchNodeInput, getConnectorVisualPortPoint, getNearestConnectorPortAtPoint, quickConnectFromPort, } from "./quickConnect";
15
+ export { chooseFacingPort, chooseOpposingPort, createDefaultConnectorQuickCreateNodeFactory, findQuickConnectTargets, getBalancedConnectorBranchNodeInput, getConnectorVisualPortPoint, getNearestConnectorPortAtPoint, quickConnectFromPort, } from "./quickConnect";
16
16
  export type { ConnectorPortTarget, ConnectorQuickConnectPlan, } from "./quickConnect";
17
17
  export { getConnectorPortInteractionState, getVisibleConnectorSourcePortAtPoint, } from "./connectorPortInteraction";
18
18
  export * from "./constants";
@@ -26,4 +26,5 @@ export declare function getConnectorQuickConnectPlan(editor: Editor, source: Con
26
26
  export declare function getBalancedConnectorBranchNodeInput(editor: Editor, source: ConnectorPortTarget, input: CreateShapeInput): CreateShapeInput;
27
27
  export declare function findQuickConnectTargets(editor: Editor, source: ConnectorPortTarget): ConnectorPortTarget[];
28
28
  export declare function chooseFacingPort(editor: Editor, shape: ShapeRecord, sourcePagePoint: Vec): ResolvedShapeTerminalBindingPort | null;
29
+ export declare function chooseOpposingPort(editor: Editor, shape: ShapeRecord, sourcePort: ResolvedShapeTerminalBindingPort): ResolvedShapeTerminalBindingPort | null;
29
30
  export declare function createDefaultConnectorQuickCreateNodeFactory(): ConnectorQuickCreateNodeFactory;
@@ -0,0 +1,13 @@
1
+ import type { Editor, ShapeId } from "./_vendor/canvas-core/index";
2
+ import { type CanvasShapeRef } from "./_vendor/canvas-extension-contracts/index";
3
+ export interface FlowNodeRef extends CanvasShapeRef<"flow-node"> {
4
+ readonly contentId: ShapeId;
5
+ }
6
+ export interface FlowApi {
7
+ wrapShape(shapeId: ShapeId): FlowNodeRef | null;
8
+ unwrapNode(nodeId: ShapeId): CanvasShapeRef | null;
9
+ }
10
+ export declare const flowApiToken: import("./_vendor/canvas-extension-contracts/index").CanvasApiToken<FlowApi>;
11
+ export declare function createFlowPluginApi({ editor }: {
12
+ editor: Editor;
13
+ }): FlowApi;
@@ -0,0 +1,8 @@
1
+ import { type EditorPlugin, type ShapeSvgExporter, type SvgExportContext, type SvgNode } from "./_vendor/canvas-core/index";
2
+ import type { FlowNodeShapeRecord } from "./types";
3
+ export declare class FlowNodeSvgExporter implements ShapeSvgExporter<FlowNodeShapeRecord> {
4
+ readonly type: "flow-node";
5
+ toSvg(shape: FlowNodeShapeRecord, _context: SvgExportContext): SvgNode;
6
+ toSvgForeground(shape: FlowNodeShapeRecord, _context: SvgExportContext): SvgNode;
7
+ }
8
+ export declare function createFlowEditorPlugin(): EditorPlugin;
@@ -0,0 +1,19 @@
1
+ import type { CreateShapeInput, Editor, ShapeId, ShapeRecord } from "./_vendor/canvas-core/index";
2
+ import type { FlowNodeKind, FlowNodeShapeRecord } from "./types";
3
+ export interface FlowNodeCreationResult {
4
+ readonly contentId: ShapeId;
5
+ readonly nodeId: ShapeId;
6
+ }
7
+ interface FlowNodeDefinition {
8
+ readonly w: number;
9
+ readonly h: number;
10
+ readonly title: string;
11
+ readonly contentProps: Record<string, unknown>;
12
+ }
13
+ export declare function getDefaultFlowNodeTitle(kind: FlowNodeKind): string;
14
+ export declare function getFlowNodeDefinition(editor: Editor, kind: FlowNodeKind): FlowNodeDefinition;
15
+ export declare function createFlowNodeWithContent(editor: Editor, nodeInput: CreateShapeInput, kind: FlowNodeKind): FlowNodeCreationResult | null;
16
+ export declare function wrapShapeAsFlowNode(editor: Editor, shapeId: ShapeId): FlowNodeCreationResult | null;
17
+ export declare function unwrapFlowNode(editor: Editor, nodeId: ShapeId): ShapeRecord | null;
18
+ export declare function isFlowNodeShape(shape: ShapeRecord | null | undefined): shape is FlowNodeShapeRecord;
19
+ export {};
@@ -0,0 +1,24 @@
1
+ import { Box, ShapeUtil, Vec, type ShapeRecordBase } from "./_vendor/canvas-core/index";
2
+ import type { FlowNodeShapeProps, FlowNodeShapeRecord } from "./types";
3
+ export declare const FLOW_NODE_TITLE_RENDER_HEIGHT = 34;
4
+ export declare function getFlowNodeDisplayTitle(shape: FlowNodeShapeRecord): string;
5
+ export declare function getFlowNodeRenderBounds(shape: FlowNodeShapeRecord): Box;
6
+ export declare class FlowNodeShapeUtil extends ShapeUtil<FlowNodeShapeRecord> {
7
+ readonly type: "flow-node";
8
+ getDefaultProps(): FlowNodeShapeProps;
9
+ validateProps(props: unknown): FlowNodeShapeProps;
10
+ getLocalBounds(shape: FlowNodeShapeRecord): Box;
11
+ getRenderBounds(shape: FlowNodeShapeRecord): Box;
12
+ getPointHitTestBounds(shape: FlowNodeShapeRecord): Box;
13
+ hitTest(shape: FlowNodeShapeRecord, positionedPoint: Vec): boolean;
14
+ hitTestBindingTarget(shape: FlowNodeShapeRecord, positionedPoint: Vec): boolean;
15
+ canEdit(_shape: FlowNodeShapeRecord): boolean;
16
+ canReceiveTerminalBinding(_shape: FlowNodeShapeRecord): boolean;
17
+ canReceiveChildren(_shape: FlowNodeShapeRecord): boolean;
18
+ canReceiveChild(_shape: FlowNodeShapeRecord, child: ShapeRecordBase): boolean;
19
+ canAutomaticallyReceiveChildren(_shape: FlowNodeShapeRecord): boolean;
20
+ getChildClipLocalBounds(shape: FlowNodeShapeRecord): Box;
21
+ isSelectionTransformContainer(_shape: FlowNodeShapeRecord): boolean;
22
+ shouldResizeDescendants(_shape: FlowNodeShapeRecord): boolean;
23
+ getResizeToFitDescendantsProps(shape: FlowNodeShapeRecord, descendantBounds: Box): FlowNodeShapeProps;
24
+ }