@tldraw/editor 4.6.0-canary.ab4e1d4fd85b → 4.6.0-canary.abd30e51f1f3
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.
- package/dist-cjs/index.d.ts +387 -3
- package/dist-cjs/index.js +7 -1
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/components/LiveCollaborators.js +1 -0
- package/dist-cjs/lib/components/LiveCollaborators.js.map +2 -2
- package/dist-cjs/lib/components/MenuClickCapture.js +99 -38
- package/dist-cjs/lib/components/MenuClickCapture.js.map +2 -2
- package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js +7 -0
- package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js.map +3 -3
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js +5 -2
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +1 -1
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicators.js +1 -0
- package/dist-cjs/lib/components/default-components/DefaultShapeIndicators.js.map +2 -2
- package/dist-cjs/lib/editor/Editor.js +79 -5
- package/dist-cjs/lib/editor/Editor.js.map +2 -2
- package/dist-cjs/lib/editor/assets/AssetUtil.js +1 -0
- package/dist-cjs/lib/editor/assets/AssetUtil.js.map +1 -1
- package/dist-cjs/lib/editor/bindings/BindingUtil.js +1 -0
- package/dist-cjs/lib/editor/bindings/BindingUtil.js.map +1 -1
- package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js +1 -0
- package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js +1 -0
- package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js +1 -0
- package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/FontManager/FontManager.js +2 -0
- package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js +2 -0
- package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/InputsManager/InputsManager.js +12 -0
- package/dist-cjs/lib/editor/managers/InputsManager/InputsManager.js.map +2 -2
- package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.js +80 -0
- package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.js.map +7 -0
- package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceManager.js +466 -0
- package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceManager.js.map +7 -0
- package/dist-cjs/lib/editor/managers/PerformanceManager/perf-types.js +17 -0
- package/dist-cjs/lib/editor/managers/PerformanceManager/perf-types.js.map +7 -0
- package/dist-cjs/lib/editor/managers/ScribbleManager/ScribbleManager.js +1 -0
- package/dist-cjs/lib/editor/managers/ScribbleManager/ScribbleManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/SnapManager/BoundsSnaps.js +1 -0
- package/dist-cjs/lib/editor/managers/SnapManager/BoundsSnaps.js.map +1 -1
- package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js +1 -0
- package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js.map +1 -1
- package/dist-cjs/lib/editor/managers/SnapManager/SnapManager.js +2 -1
- package/dist-cjs/lib/editor/managers/SnapManager/SnapManager.js.map +2 -2
- package/dist-cjs/lib/editor/managers/SpatialIndexManager/SpatialIndexManager.js +1 -0
- package/dist-cjs/lib/editor/managers/SpatialIndexManager/SpatialIndexManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/TextManager/TextManager.js +1 -0
- package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/ThemeManager/ThemeManager.js +1 -0
- package/dist-cjs/lib/editor/managers/ThemeManager/ThemeManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/TickManager/TickManager.js +1 -0
- package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +1 -1
- package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +2 -0
- package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +1 -1
- package/dist-cjs/lib/editor/shapes/BaseFrameLikeShapeUtil.js +76 -0
- package/dist-cjs/lib/editor/shapes/BaseFrameLikeShapeUtil.js.map +7 -0
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js +13 -2
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +1 -1
- package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
- package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js +6 -0
- package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js.map +2 -2
- package/dist-cjs/lib/editor/tools/StateNode.js +15 -17
- package/dist-cjs/lib/editor/tools/StateNode.js.map +2 -2
- package/dist-cjs/lib/exports/ExportDelay.js +1 -0
- package/dist-cjs/lib/exports/ExportDelay.js.map +1 -1
- package/dist-cjs/lib/exports/StyleEmbedder.js +1 -0
- package/dist-cjs/lib/exports/StyleEmbedder.js.map +1 -1
- package/dist-cjs/lib/exports/getSvgJsx.js +2 -1
- package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
- package/dist-cjs/lib/hooks/useCanvasEvents.js +25 -4
- package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
- package/dist-cjs/lib/options.js +2 -0
- package/dist-cjs/lib/options.js.map +2 -2
- package/dist-cjs/lib/primitives/Vec.js +3 -0
- package/dist-cjs/lib/primitives/Vec.js.map +1 -1
- package/dist-cjs/lib/primitives/geometry/Circle2d.js +1 -0
- package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +1 -1
- package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +1 -0
- package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +1 -1
- package/dist-cjs/lib/primitives/geometry/Geometry2d.js +2 -0
- package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +1 -1
- package/dist-cjs/lib/primitives/geometry/Stadium2d.js +1 -0
- package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +1 -1
- package/dist-cjs/lib/utils/EditorAtom.js +2 -0
- package/dist-cjs/lib/utils/EditorAtom.js.map +1 -1
- package/dist-cjs/lib/utils/runtime.js +2 -1
- package/dist-cjs/lib/utils/runtime.js.map +2 -2
- package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js +2 -0
- package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js.map +1 -1
- package/dist-cjs/lib/utils/sync/hardReset.js +0 -8
- package/dist-cjs/lib/utils/sync/hardReset.js.map +2 -2
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +387 -3
- package/dist-esm/index.mjs +7 -1
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/components/LiveCollaborators.mjs +1 -0
- package/dist-esm/lib/components/LiveCollaborators.mjs.map +2 -2
- package/dist-esm/lib/components/MenuClickCapture.mjs +100 -39
- package/dist-esm/lib/components/MenuClickCapture.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs +7 -0
- package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs.map +3 -3
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +5 -2
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +1 -1
- package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultShapeIndicators.mjs +1 -0
- package/dist-esm/lib/components/default-components/DefaultShapeIndicators.mjs.map +2 -2
- package/dist-esm/lib/editor/Editor.mjs +80 -6
- package/dist-esm/lib/editor/Editor.mjs.map +2 -2
- package/dist-esm/lib/editor/assets/AssetUtil.mjs +1 -0
- package/dist-esm/lib/editor/assets/AssetUtil.mjs.map +1 -1
- package/dist-esm/lib/editor/bindings/BindingUtil.mjs +1 -0
- package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs +2 -0
- package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs +2 -0
- package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/InputsManager/InputsManager.mjs +12 -0
- package/dist-esm/lib/editor/managers/InputsManager/InputsManager.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.mjs +60 -0
- package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceManager.mjs +438 -0
- package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceManager.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/PerformanceManager/perf-types.mjs +1 -0
- package/dist-esm/lib/editor/managers/PerformanceManager/perf-types.mjs.map +7 -0
- package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/SnapManager/BoundsSnaps.mjs +1 -0
- package/dist-esm/lib/editor/managers/SnapManager/BoundsSnaps.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs +1 -0
- package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/SnapManager/SnapManager.mjs +2 -1
- package/dist-esm/lib/editor/managers/SnapManager/SnapManager.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/SpatialIndexManager/SpatialIndexManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/SpatialIndexManager/SpatialIndexManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/ThemeManager/ThemeManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/ThemeManager/ThemeManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs +1 -0
- package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +1 -1
- package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +2 -0
- package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +1 -1
- package/dist-esm/lib/editor/shapes/BaseFrameLikeShapeUtil.mjs +56 -0
- package/dist-esm/lib/editor/shapes/BaseFrameLikeShapeUtil.mjs.map +7 -0
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +13 -2
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +1 -1
- package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs +6 -0
- package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs.map +2 -2
- package/dist-esm/lib/editor/tools/StateNode.mjs +15 -17
- package/dist-esm/lib/editor/tools/StateNode.mjs.map +2 -2
- package/dist-esm/lib/exports/ExportDelay.mjs +1 -0
- package/dist-esm/lib/exports/ExportDelay.mjs.map +1 -1
- package/dist-esm/lib/exports/StyleEmbedder.mjs +1 -0
- package/dist-esm/lib/exports/StyleEmbedder.mjs.map +1 -1
- package/dist-esm/lib/exports/getSvgJsx.mjs +2 -1
- package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
- package/dist-esm/lib/hooks/useCanvasEvents.mjs +25 -4
- package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
- package/dist-esm/lib/options.mjs +2 -0
- package/dist-esm/lib/options.mjs.map +2 -2
- package/dist-esm/lib/primitives/Vec.mjs +3 -0
- package/dist-esm/lib/primitives/Vec.mjs.map +1 -1
- package/dist-esm/lib/primitives/geometry/Circle2d.mjs +1 -0
- package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +1 -1
- package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +1 -0
- package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +1 -1
- package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +2 -0
- package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +1 -1
- package/dist-esm/lib/primitives/geometry/Stadium2d.mjs +1 -0
- package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +1 -1
- package/dist-esm/lib/utils/EditorAtom.mjs +2 -0
- package/dist-esm/lib/utils/EditorAtom.mjs.map +1 -1
- package/dist-esm/lib/utils/runtime.mjs +2 -1
- package/dist-esm/lib/utils/runtime.mjs.map +2 -2
- package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs +2 -0
- package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs.map +1 -1
- package/dist-esm/lib/utils/sync/hardReset.mjs +0 -8
- package/dist-esm/lib/utils/sync/hardReset.mjs.map +2 -2
- package/dist-esm/version.mjs +3 -3
- package/dist-esm/version.mjs.map +1 -1
- package/editor.css +0 -4
- package/package.json +7 -7
- package/src/index.ts +16 -0
- package/src/lib/components/LiveCollaborators.tsx +8 -2
- package/src/lib/components/MenuClickCapture.tsx +129 -49
- package/src/lib/components/default-components/CanvasShapeIndicators.tsx +11 -0
- package/src/lib/components/default-components/DefaultCanvas.tsx +6 -2
- package/src/lib/components/default-components/DefaultShapeIndicator.tsx +2 -2
- package/src/lib/components/default-components/DefaultShapeIndicators.tsx +2 -0
- package/src/lib/editor/Editor.ts +103 -14
- package/src/lib/editor/managers/InputsManager/InputsManager.ts +12 -0
- package/src/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.ts +82 -0
- package/src/lib/editor/managers/PerformanceManager/PerformanceManager.test.ts +522 -0
- package/src/lib/editor/managers/PerformanceManager/PerformanceManager.ts +583 -0
- package/src/lib/editor/managers/PerformanceManager/perf-types.ts +196 -0
- package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +13 -2
- package/src/lib/editor/managers/SnapManager/SnapManager.ts +1 -1
- package/src/lib/editor/shapes/BaseFrameLikeShapeUtil.tsx +121 -0
- package/src/lib/editor/shapes/ShapeUtil.ts +13 -2
- package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +1 -1
- package/src/lib/editor/shapes/shared/getPerfectDashProps.ts +7 -0
- package/src/lib/editor/tools/StateNode.ts +16 -18
- package/src/lib/exports/getSvgJsx.tsx +2 -1
- package/src/lib/hooks/useCanvasEvents.ts +40 -3
- package/src/lib/options.ts +14 -0
- package/src/lib/utils/runtime.ts +3 -1
- package/src/lib/utils/sync/hardReset.ts +0 -8
- package/src/version.ts +3 -3
package/dist-cjs/index.d.ts
CHANGED
|
@@ -220,6 +220,54 @@ export declare abstract class BaseBoxShapeUtil<Shape extends TLBaseBoxShape> ext
|
|
|
220
220
|
getInterpolatedProps(startShape: Shape, endShape: Shape, t: number): Shape['props'];
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
+
/**
|
|
224
|
+
* A base class for frame-like shapes — containers that clip their children,
|
|
225
|
+
* require full-brush selection, block erasure from inside, and support
|
|
226
|
+
* drag-and-drop reparenting.
|
|
227
|
+
*
|
|
228
|
+
* Extending this class is the easiest way to create a custom frame-like shape.
|
|
229
|
+
* It provides sensible defaults for all frame-like behaviors:
|
|
230
|
+
*
|
|
231
|
+
* - `isFrameLike()` returns `true`
|
|
232
|
+
* - `providesBackgroundForChildren()` returns `true`
|
|
233
|
+
* - `canReceiveNewChildrenOfType()` returns `true` unless the container is locked
|
|
234
|
+
* - `getClipPath()` returns the shape geometry's vertices
|
|
235
|
+
* - `onDragShapesIn()` reparents shapes into the frame (with index restoration)
|
|
236
|
+
* - `onDragShapesOut()` reparents shapes back to the page
|
|
237
|
+
*
|
|
238
|
+
* All methods can be overridden for custom behavior.
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* ```ts
|
|
242
|
+
* class MyContainerUtil extends BaseFrameLikeShapeUtil<MyContainerShape> {
|
|
243
|
+
* static override type = 'my-container' as const
|
|
244
|
+
* static override props = myContainerShapeProps
|
|
245
|
+
*
|
|
246
|
+
* override getDefaultProps() {
|
|
247
|
+
* return { w: 300, h: 200 }
|
|
248
|
+
* }
|
|
249
|
+
*
|
|
250
|
+
* override component(shape: MyContainerShape) {
|
|
251
|
+
* return <SVGContainer>...</SVGContainer>
|
|
252
|
+
* }
|
|
253
|
+
*
|
|
254
|
+
* override indicator(shape: MyContainerShape) {
|
|
255
|
+
* return <rect width={shape.props.w} height={shape.props.h} />
|
|
256
|
+
* }
|
|
257
|
+
* }
|
|
258
|
+
* ```
|
|
259
|
+
*
|
|
260
|
+
* @public
|
|
261
|
+
*/
|
|
262
|
+
export declare abstract class BaseFrameLikeShapeUtil<Shape extends TLBaseBoxShape> extends BaseBoxShapeUtil<Shape> {
|
|
263
|
+
isFrameLike(_shape: Shape): boolean;
|
|
264
|
+
providesBackgroundForChildren(): boolean;
|
|
265
|
+
canReceiveNewChildrenOfType(shape: Shape, _type: TLShape['type']): boolean;
|
|
266
|
+
getClipPath(shape: Shape): undefined | Vec[];
|
|
267
|
+
onDragShapesIn(shape: Shape, draggingShapes: TLShape[], { initialParentIds, initialIndices }: TLDragShapesInInfo): void;
|
|
268
|
+
onDragShapesOut(shape: Shape, draggingShapes: TLShape[], info: TLDragShapesOutInfo): void;
|
|
269
|
+
}
|
|
270
|
+
|
|
223
271
|
/** @public */
|
|
224
272
|
export declare interface BatchMeasurementRequest {
|
|
225
273
|
html: string;
|
|
@@ -996,6 +1044,7 @@ export declare const defaultTldrawOptions: {
|
|
|
996
1044
|
readonly onBeforePasteFromClipboard: undefined;
|
|
997
1045
|
readonly onClipboardPasteRaw: undefined;
|
|
998
1046
|
readonly quickZoomPreservesScreenBounds: true;
|
|
1047
|
+
readonly rightClickPanning: true;
|
|
999
1048
|
readonly snapThreshold: 8;
|
|
1000
1049
|
readonly spacebarPanning: true;
|
|
1001
1050
|
readonly temporaryAssetPreviewLifetimeMs: 180000;
|
|
@@ -1004,6 +1053,7 @@ export declare const defaultTldrawOptions: {
|
|
|
1004
1053
|
readonly tooltipDelayMs: 700;
|
|
1005
1054
|
readonly uiCoarseDragDistanceSquared: 625;
|
|
1006
1055
|
readonly uiDragDistanceSquared: 16;
|
|
1056
|
+
readonly useCanvasIndicators: true;
|
|
1007
1057
|
readonly zoomToFitPadding: 128;
|
|
1008
1058
|
};
|
|
1009
1059
|
|
|
@@ -1166,6 +1216,12 @@ export declare class Editor extends EventEmitter<TLEventMap> {
|
|
|
1166
1216
|
* @public
|
|
1167
1217
|
*/
|
|
1168
1218
|
readonly snaps: SnapManager;
|
|
1219
|
+
/**
|
|
1220
|
+
* A manager for performance measurement hooks.
|
|
1221
|
+
*
|
|
1222
|
+
* @public
|
|
1223
|
+
*/
|
|
1224
|
+
readonly performance: PerformanceManager;
|
|
1169
1225
|
/* Excluded from this release type: _spatialIndex */
|
|
1170
1226
|
/**
|
|
1171
1227
|
* A manager for the any asynchronous events and making sure they're
|
|
@@ -3116,6 +3172,20 @@ export declare class Editor extends EventEmitter<TLEventMap> {
|
|
|
3116
3172
|
type: T['type'];
|
|
3117
3173
|
}>;
|
|
3118
3174
|
isShapeOfType<T extends TLShape = TLShape>(shapeId: TLShapeId, type: T['type']): boolean;
|
|
3175
|
+
/**
|
|
3176
|
+
* Get whether a shape behaves like a frame — a container that has child
|
|
3177
|
+
* shapes, requires full-brush selection, blocks erasure from inside, etc.
|
|
3178
|
+
*
|
|
3179
|
+
* @example
|
|
3180
|
+
* ```ts
|
|
3181
|
+
* const isFrameLike = editor.isShapeFrameLike(someShape)
|
|
3182
|
+
* ```
|
|
3183
|
+
*
|
|
3184
|
+
* @param shape - The shape (or shape id) to test.
|
|
3185
|
+
*
|
|
3186
|
+
* @public
|
|
3187
|
+
*/
|
|
3188
|
+
isShapeFrameLike(shape: TLShape | TLShapeId): boolean;
|
|
3119
3189
|
/**
|
|
3120
3190
|
* Get a shape by its id.
|
|
3121
3191
|
*
|
|
@@ -4775,7 +4845,7 @@ export declare class GroupShapeUtil extends ShapeUtil<TLGroupShape> {
|
|
|
4775
4845
|
static type: "group";
|
|
4776
4846
|
static props: RecordProps<TLGroupShape>;
|
|
4777
4847
|
static migrations: TLPropsMigrations;
|
|
4778
|
-
hideSelectionBoundsFg(): boolean;
|
|
4848
|
+
hideSelectionBoundsFg(shape: TLGroupShape): boolean;
|
|
4779
4849
|
canBind(): boolean;
|
|
4780
4850
|
canResize(): boolean;
|
|
4781
4851
|
canResizeChildren(): boolean;
|
|
@@ -5061,6 +5131,12 @@ export declare class InputsManager {
|
|
|
5061
5131
|
get isPointing(): boolean;
|
|
5062
5132
|
set isPointing(isPointing: boolean);
|
|
5063
5133
|
/* Excluded from this release type: setIsPointing */
|
|
5134
|
+
private _isRightPointing;
|
|
5135
|
+
/**
|
|
5136
|
+
* Whether the user is right-click pointing (before drag threshold).
|
|
5137
|
+
*/
|
|
5138
|
+
getIsRightPointing(): boolean;
|
|
5139
|
+
/* Excluded from this release type: setIsRightPointing */
|
|
5064
5140
|
private _isPinching;
|
|
5065
5141
|
/**
|
|
5066
5142
|
* Whether the user is pinching.
|
|
@@ -5417,6 +5493,94 @@ export declare function parseDeepLinkString(deepLinkString: string): TLDeepLink;
|
|
|
5417
5493
|
/** @public */
|
|
5418
5494
|
export declare type PerfectDashTerminal = 'none' | 'outset' | 'skip';
|
|
5419
5495
|
|
|
5496
|
+
/**
|
|
5497
|
+
* Optional adapter that pipes PerformanceManager events into browser
|
|
5498
|
+
* `performance.mark()` / `performance.measure()` for DevTools integration.
|
|
5499
|
+
*
|
|
5500
|
+
* Tree-shakeable — only included if imported.
|
|
5501
|
+
*
|
|
5502
|
+
* @example
|
|
5503
|
+
* ```ts
|
|
5504
|
+
* const adapter = new PerformanceApiAdapter(editor.performance)
|
|
5505
|
+
* // ... later
|
|
5506
|
+
* adapter.dispose()
|
|
5507
|
+
* ```
|
|
5508
|
+
*
|
|
5509
|
+
* @public
|
|
5510
|
+
*/
|
|
5511
|
+
export declare class PerformanceApiAdapter {
|
|
5512
|
+
private cleanups;
|
|
5513
|
+
constructor(perfManager: PerformanceManager);
|
|
5514
|
+
/** Remove all listeners and stop piping events. @public */
|
|
5515
|
+
dispose(): void;
|
|
5516
|
+
}
|
|
5517
|
+
|
|
5518
|
+
/**
|
|
5519
|
+
* Manages performance event subscriptions for the editor. Available as `editor.performance`.
|
|
5520
|
+
*
|
|
5521
|
+
* Listeners are lazy — internal editor hooks (frame, shape events) are only attached while
|
|
5522
|
+
* at least one subscriber exists, so there is zero overhead when unused.
|
|
5523
|
+
*
|
|
5524
|
+
* @example
|
|
5525
|
+
* ```ts
|
|
5526
|
+
* const unsub = editor.performance.on('interaction-end', (event) => {
|
|
5527
|
+
* console.log(`${event.name}: ${event.fps.toFixed(1)} fps, p95=${event.p95FrameTime.toFixed(1)}ms`)
|
|
5528
|
+
* })
|
|
5529
|
+
* ```
|
|
5530
|
+
*
|
|
5531
|
+
* @public
|
|
5532
|
+
*/
|
|
5533
|
+
export declare class PerformanceManager {
|
|
5534
|
+
/* Excluded from this release type: emitter */
|
|
5535
|
+
private editor;
|
|
5536
|
+
private activeInteraction;
|
|
5537
|
+
private activeCamera;
|
|
5538
|
+
private frameCleanup;
|
|
5539
|
+
private shapeCreatedCleanup;
|
|
5540
|
+
private shapeEditedCleanup;
|
|
5541
|
+
private shapeDeletedCleanup;
|
|
5542
|
+
private loafObserver;
|
|
5543
|
+
constructor(editor: Editor);
|
|
5544
|
+
/**
|
|
5545
|
+
* Subscribe to a performance event. Returns an unsubscribe function.
|
|
5546
|
+
*
|
|
5547
|
+
* @example
|
|
5548
|
+
* ```ts
|
|
5549
|
+
* const unsub = editor.performance.on('interaction-end', (event) => {
|
|
5550
|
+
* sendToAnalytics({ name: event.name, fps: event.fps, p95: event.p95FrameTime })
|
|
5551
|
+
* })
|
|
5552
|
+
* // later: unsub()
|
|
5553
|
+
* ```
|
|
5554
|
+
*
|
|
5555
|
+
* @public
|
|
5556
|
+
*/
|
|
5557
|
+
on<K extends keyof TLPerfEventMap>(event: K, fn: (...args: TLPerfEventMap[K]) => void): () => void;
|
|
5558
|
+
/**
|
|
5559
|
+
* Subscribe to a performance event once. The listener is removed after the first invocation.
|
|
5560
|
+
* Returns an unsubscribe function for early removal.
|
|
5561
|
+
*
|
|
5562
|
+
* @public
|
|
5563
|
+
*/
|
|
5564
|
+
once<K extends keyof TLPerfEventMap>(event: K, fn: (...args: TLPerfEventMap[K]) => void): () => void;
|
|
5565
|
+
/* Excluded from this release type: dispose */
|
|
5566
|
+
/* Excluded from this release type: _notifyInteractionStart */
|
|
5567
|
+
/* Excluded from this release type: _notifyInteractionEnd */
|
|
5568
|
+
/* Excluded from this release type: _notifyCameraOperation */
|
|
5569
|
+
/* Excluded from this release type: _notifyUndoRedo */
|
|
5570
|
+
private _startCameraSession;
|
|
5571
|
+
private _endCameraSession;
|
|
5572
|
+
private _onFrame;
|
|
5573
|
+
private _onShapesCreated;
|
|
5574
|
+
private _onShapesEdited;
|
|
5575
|
+
private _onShapesDeleted;
|
|
5576
|
+
private _startLoafObserver;
|
|
5577
|
+
private _stopLoafObserver;
|
|
5578
|
+
private _needsFrameListener;
|
|
5579
|
+
private _needsLoafObserver;
|
|
5580
|
+
private _maybeAttachLazyListeners;
|
|
5581
|
+
private _maybeDetachLazyListeners;
|
|
5582
|
+
}
|
|
5583
|
+
|
|
5420
5584
|
/**
|
|
5421
5585
|
* Find the approximate perimeter of an ellipse.
|
|
5422
5586
|
*
|
|
@@ -6008,7 +6172,7 @@ export declare abstract class ShapeUtil<Shape extends TLShape = TLShape> {
|
|
|
6008
6172
|
*
|
|
6009
6173
|
* @public
|
|
6010
6174
|
*/
|
|
6011
|
-
canBind(
|
|
6175
|
+
canBind(opts: TLShapeUtilCanBindOpts): boolean;
|
|
6012
6176
|
/**
|
|
6013
6177
|
* Whether the shape can be double clicked to edit.
|
|
6014
6178
|
*
|
|
@@ -6142,6 +6306,14 @@ export declare abstract class ShapeUtil<Shape extends TLShape = TLShape> {
|
|
|
6142
6306
|
* @public
|
|
6143
6307
|
*/
|
|
6144
6308
|
isAspectRatioLocked(shape: Shape): boolean;
|
|
6309
|
+
/**
|
|
6310
|
+
* Whether the shape behaves like a frame — a container that has child shapes,
|
|
6311
|
+
* requires full-brush selection, blocks erasure from inside, etc.
|
|
6312
|
+
*
|
|
6313
|
+
* @param shape - The shape.
|
|
6314
|
+
* @public
|
|
6315
|
+
*/
|
|
6316
|
+
isFrameLike(_shape: Shape): boolean;
|
|
6145
6317
|
/**
|
|
6146
6318
|
* By default, the bounds of an image export are the bounds of all the shapes it contains, plus
|
|
6147
6319
|
* some padding. If an export includes a shape where `isExportBoundsContainer` is true, then the
|
|
@@ -6189,7 +6361,7 @@ export declare abstract class ShapeUtil<Shape extends TLShape = TLShape> {
|
|
|
6189
6361
|
* @param type - The shape type.
|
|
6190
6362
|
* @public
|
|
6191
6363
|
*/
|
|
6192
|
-
canReceiveNewChildrenOfType(shape: Shape,
|
|
6364
|
+
canReceiveNewChildrenOfType(shape: Shape, type: TLShape['type']): boolean;
|
|
6193
6365
|
/**
|
|
6194
6366
|
* Get the shape as an SVG object.
|
|
6195
6367
|
*
|
|
@@ -6632,6 +6804,8 @@ export declare abstract class StateNode implements Partial<TLEventHandlers> {
|
|
|
6632
6804
|
static children?: () => TLStateNodeConstructor[];
|
|
6633
6805
|
static isLockable: boolean;
|
|
6634
6806
|
static useCoalescedEvents: boolean;
|
|
6807
|
+
/** Set to `true` in subclasses to emit interaction-start/end performance events when this state is entered/exited. */
|
|
6808
|
+
static trackPerformance: boolean;
|
|
6635
6809
|
id: string;
|
|
6636
6810
|
type: 'branch' | 'leaf' | 'root';
|
|
6637
6811
|
shapeType?: string;
|
|
@@ -7005,6 +7179,29 @@ export declare interface TLCameraConstraints {
|
|
|
7005
7179
|
};
|
|
7006
7180
|
}
|
|
7007
7181
|
|
|
7182
|
+
/**
|
|
7183
|
+
* Emitted when a camera operation ends (after a 50ms debounce), with aggregated frame time stats.
|
|
7184
|
+
* @public
|
|
7185
|
+
*/
|
|
7186
|
+
export declare interface TLCameraEndPerfEvent extends TLPerfFrameTimeStats {
|
|
7187
|
+
/** Whether this was a pan or zoom operation. */
|
|
7188
|
+
type: 'panning' | 'zooming';
|
|
7189
|
+
/** Total shapes on the current page. */
|
|
7190
|
+
shapeCount: number;
|
|
7191
|
+
/** Number of shapes visible (not culled) in the viewport. */
|
|
7192
|
+
visibleShapeCount: number;
|
|
7193
|
+
/** Number of shapes culled (off-screen) from rendering. */
|
|
7194
|
+
culledShapeCount: number;
|
|
7195
|
+
/** Viewport width in screen pixels. */
|
|
7196
|
+
viewportWidth: number;
|
|
7197
|
+
/** Viewport height in screen pixels. */
|
|
7198
|
+
viewportHeight: number;
|
|
7199
|
+
/** Camera zoom level (`camera.z`) at session end. */
|
|
7200
|
+
zoomLevel: number;
|
|
7201
|
+
/** `performance.now()` when the camera session ended. */
|
|
7202
|
+
timestamp: number;
|
|
7203
|
+
}
|
|
7204
|
+
|
|
7008
7205
|
/** @public */
|
|
7009
7206
|
export declare interface TLCameraMoveOptions {
|
|
7010
7207
|
/** Whether to move the camera immediately, rather than on the next tick. */
|
|
@@ -7043,6 +7240,17 @@ export declare interface TLCameraOptions {
|
|
|
7043
7240
|
constraints?: TLCameraConstraints;
|
|
7044
7241
|
}
|
|
7045
7242
|
|
|
7243
|
+
/**
|
|
7244
|
+
* Emitted when a camera operation (pan or zoom) begins.
|
|
7245
|
+
* @public
|
|
7246
|
+
*/
|
|
7247
|
+
export declare interface TLCameraStartPerfEvent {
|
|
7248
|
+
/** Whether this is a pan or zoom operation. */
|
|
7249
|
+
type: 'panning' | 'zooming';
|
|
7250
|
+
/** `performance.now()` when the camera session started. */
|
|
7251
|
+
timestamp: number;
|
|
7252
|
+
}
|
|
7253
|
+
|
|
7046
7254
|
/** @public */
|
|
7047
7255
|
export declare type TLCancelEvent = (info: TLCancelEventInfo) => void;
|
|
7048
7256
|
|
|
@@ -7530,6 +7738,12 @@ export declare interface TldrawOptions {
|
|
|
7530
7738
|
* When false, the spacebar will not pan the camera.
|
|
7531
7739
|
*/
|
|
7532
7740
|
readonly spacebarPanning: boolean;
|
|
7741
|
+
/**
|
|
7742
|
+
* Whether to allow right-click + drag to pan the camera. When true, right-click + drag pans the
|
|
7743
|
+
* camera and a static right-click opens the context menu at the release position. When false,
|
|
7744
|
+
* right-click opens the context menu on press (no drag-to-pan).
|
|
7745
|
+
*/
|
|
7746
|
+
readonly rightClickPanning: boolean;
|
|
7533
7747
|
/**
|
|
7534
7748
|
* The default padding (in pixels) used when zooming to fit content in the viewport.
|
|
7535
7749
|
* This affects methods like `zoomToFit()`, `zoomToSelection()`, and `zoomToBounds()`.
|
|
@@ -7572,6 +7786,12 @@ export declare interface TldrawOptions {
|
|
|
7572
7786
|
* viewport's page dimensions regardless of overview zoom changes.
|
|
7573
7787
|
*/
|
|
7574
7788
|
readonly quickZoomPreservesScreenBounds: boolean;
|
|
7789
|
+
/**
|
|
7790
|
+
* Whether to use 2D canvas rendering for shape indicators. When true (default),
|
|
7791
|
+
* shapes that support it will render indicators on a 2D canvas for better
|
|
7792
|
+
* performance. When false, all indicators use legacy SVG rendering.
|
|
7793
|
+
*/
|
|
7794
|
+
readonly useCanvasIndicators: boolean;
|
|
7575
7795
|
/**
|
|
7576
7796
|
* Called before content is written to the clipboard during a copy or cut operation.
|
|
7577
7797
|
* Receives the serialized content (shapes, bindings, assets) and can filter or transform
|
|
@@ -7981,6 +8201,21 @@ export declare interface TLFilesExternalContent extends TLBaseExternalContent {
|
|
|
7981
8201
|
ignoreParent?: boolean;
|
|
7982
8202
|
}
|
|
7983
8203
|
|
|
8204
|
+
/**
|
|
8205
|
+
* Emitted every animation frame when at least one `'frame'` listener is registered.
|
|
8206
|
+
* @public
|
|
8207
|
+
*/
|
|
8208
|
+
export declare interface TLFramePerfEvent {
|
|
8209
|
+
/** Time since the last frame in ms. */
|
|
8210
|
+
elapsed: number;
|
|
8211
|
+
/** Total shapes on the current page. */
|
|
8212
|
+
shapeCount: number;
|
|
8213
|
+
/** Number of shapes culled (off-screen) from rendering. */
|
|
8214
|
+
culledShapeCount: number;
|
|
8215
|
+
/** Number of shapes visible (not culled) in the viewport. */
|
|
8216
|
+
visibleShapeCount: number;
|
|
8217
|
+
}
|
|
8218
|
+
|
|
7984
8219
|
/** Additional options for the {@link ShapeUtil.getGeometry} method.
|
|
7985
8220
|
*
|
|
7986
8221
|
* @public
|
|
@@ -8123,6 +8358,38 @@ export declare type TLIndicatorPath = {
|
|
|
8123
8358
|
path: Path2D;
|
|
8124
8359
|
} | Path2D;
|
|
8125
8360
|
|
|
8361
|
+
/**
|
|
8362
|
+
* Emitted when an interaction state is exited, with aggregated frame time stats.
|
|
8363
|
+
* @public
|
|
8364
|
+
*/
|
|
8365
|
+
export declare interface TLInteractionEndPerfEvent extends TLPerfFrameTimeStats {
|
|
8366
|
+
/** The state node id (e.g. `'translating'`). */
|
|
8367
|
+
name: string;
|
|
8368
|
+
/** Full tool path (e.g. `'select.translating'`). */
|
|
8369
|
+
path: string;
|
|
8370
|
+
/** Total shapes on the current page. */
|
|
8371
|
+
shapeCount: number;
|
|
8372
|
+
/** Breakdown of selected shape types at interaction start (e.g. `{ geo: 2, draw: 1 }`). */
|
|
8373
|
+
selectedShapeTypes: Record<string, number>;
|
|
8374
|
+
/** Camera zoom level (`camera.z`) at interaction end. */
|
|
8375
|
+
zoomLevel: number;
|
|
8376
|
+
/** `performance.now()` when the interaction ended. */
|
|
8377
|
+
timestamp: number;
|
|
8378
|
+
}
|
|
8379
|
+
|
|
8380
|
+
/**
|
|
8381
|
+
* Emitted when an interaction state (e.g. translating, resizing) is entered.
|
|
8382
|
+
* @public
|
|
8383
|
+
*/
|
|
8384
|
+
export declare interface TLInteractionStartPerfEvent {
|
|
8385
|
+
/** The state node id (e.g. `'translating'`). */
|
|
8386
|
+
name: string;
|
|
8387
|
+
/** Full tool path (e.g. `'select.translating'`). */
|
|
8388
|
+
path: string;
|
|
8389
|
+
/** `performance.now()` when the interaction started. */
|
|
8390
|
+
timestamp: number;
|
|
8391
|
+
}
|
|
8392
|
+
|
|
8126
8393
|
/** @public */
|
|
8127
8394
|
export declare type TLInterruptEvent = (info: TLInterruptEventInfo) => void;
|
|
8128
8395
|
|
|
@@ -8370,6 +8637,94 @@ export declare const tlmenus: {
|
|
|
8370
8637
|
*/
|
|
8371
8638
|
export declare type TLOnMountHandler = (editor: Editor) => (() => undefined | void) | undefined | void;
|
|
8372
8639
|
|
|
8640
|
+
/**
|
|
8641
|
+
* Map of all performance event names to their payload types.
|
|
8642
|
+
* Used with {@link PerformanceManager.on} and {@link PerformanceManager.once}.
|
|
8643
|
+
* @public
|
|
8644
|
+
*/
|
|
8645
|
+
export declare interface TLPerfEventMap {
|
|
8646
|
+
/** An interaction state was entered. */
|
|
8647
|
+
'interaction-start': [TLInteractionStartPerfEvent];
|
|
8648
|
+
/** An interaction state was exited, with aggregated frame time stats. */
|
|
8649
|
+
'interaction-end': [TLInteractionEndPerfEvent];
|
|
8650
|
+
/** A camera operation (pan/zoom) began. */
|
|
8651
|
+
'camera-start': [TLCameraStartPerfEvent];
|
|
8652
|
+
/** A camera operation ended (after debounce), with aggregated frame time stats. */
|
|
8653
|
+
'camera-end': [TLCameraEndPerfEvent];
|
|
8654
|
+
/** Shapes were created. */
|
|
8655
|
+
'shapes-created': [TLShapeOperationPerfEvent];
|
|
8656
|
+
/** Shapes were updated. */
|
|
8657
|
+
'shapes-updated': [TLShapeOperationPerfEvent];
|
|
8658
|
+
/** Shapes were deleted. */
|
|
8659
|
+
'shapes-deleted': [TLShapeOperationPerfEvent];
|
|
8660
|
+
/** An animation frame was rendered. Only fires when listeners are registered. */
|
|
8661
|
+
frame: [TLFramePerfEvent];
|
|
8662
|
+
/** An undo operation was performed. */
|
|
8663
|
+
undo: [TLUndoRedoPerfEvent];
|
|
8664
|
+
/** A redo operation was performed. */
|
|
8665
|
+
redo: [TLUndoRedoPerfEvent];
|
|
8666
|
+
}
|
|
8667
|
+
|
|
8668
|
+
/**
|
|
8669
|
+
* Common frame time statistics shared by interaction and camera end events.
|
|
8670
|
+
* @public
|
|
8671
|
+
*/
|
|
8672
|
+
export declare interface TLPerfFrameTimeStats {
|
|
8673
|
+
/** Total duration of the session in ms. */
|
|
8674
|
+
duration: number;
|
|
8675
|
+
/** Average frames per second during the session. */
|
|
8676
|
+
fps: number;
|
|
8677
|
+
/** Total number of frames recorded. */
|
|
8678
|
+
frameCount: number;
|
|
8679
|
+
/** Mean frame duration in ms. */
|
|
8680
|
+
avgFrameTime: number;
|
|
8681
|
+
/** Median (p50) frame duration in ms. */
|
|
8682
|
+
medianFrameTime: number;
|
|
8683
|
+
/** 95th percentile frame duration in ms. */
|
|
8684
|
+
p95FrameTime: number;
|
|
8685
|
+
/** 99th percentile frame duration in ms. */
|
|
8686
|
+
p99FrameTime: number;
|
|
8687
|
+
/** Shortest frame duration in ms. */
|
|
8688
|
+
minFrameTime: number;
|
|
8689
|
+
/** Longest frame duration in ms. */
|
|
8690
|
+
maxFrameTime: number;
|
|
8691
|
+
/** Raw frame durations for local analysis. Exclude when sending to analytics. */
|
|
8692
|
+
frameTimes: number[];
|
|
8693
|
+
/**
|
|
8694
|
+
* Long animation frames observed during this period (Chromium 123+).
|
|
8695
|
+
* Only present when the browser supports the Long Animation Frames API and
|
|
8696
|
+
* at least one long frame was observed.
|
|
8697
|
+
* Exclude when sending to analytics — entries are large and contain script URLs.
|
|
8698
|
+
*/
|
|
8699
|
+
longAnimationFrames?: TLPerfLongAnimationFrame[];
|
|
8700
|
+
}
|
|
8701
|
+
|
|
8702
|
+
/**
|
|
8703
|
+
* A long animation frame observed by the browser during an interaction.
|
|
8704
|
+
* Available only in browsers that support the Long Animation Frames API (Chromium 123+).
|
|
8705
|
+
* @public
|
|
8706
|
+
*/
|
|
8707
|
+
export declare interface TLPerfLongAnimationFrame {
|
|
8708
|
+
/** Frame start time (relative to timeOrigin). */
|
|
8709
|
+
startTime: number;
|
|
8710
|
+
/** Total frame duration in ms. */
|
|
8711
|
+
duration: number;
|
|
8712
|
+
/** Time the main thread was blocked in ms. */
|
|
8713
|
+
blockingDuration: number;
|
|
8714
|
+
/** Scripts that contributed to the long frame. */
|
|
8715
|
+
scripts: TLPerfLongAnimationFrameScript[];
|
|
8716
|
+
}
|
|
8717
|
+
|
|
8718
|
+
/** A script attribution entry from a long animation frame. @public */
|
|
8719
|
+
export declare interface TLPerfLongAnimationFrameScript {
|
|
8720
|
+
/** The script source URL (may be empty for inline scripts). */
|
|
8721
|
+
sourceURL: string;
|
|
8722
|
+
/** The function name or invoker description. */
|
|
8723
|
+
invoker: string;
|
|
8724
|
+
/** Time spent in this script in ms. */
|
|
8725
|
+
duration: number;
|
|
8726
|
+
}
|
|
8727
|
+
|
|
8373
8728
|
/** @public */
|
|
8374
8729
|
export declare type TLPinchEvent = (info: TLPinchEventInfo) => void;
|
|
8375
8730
|
|
|
@@ -8557,6 +8912,21 @@ export declare interface TLShapeIndicatorsProps {
|
|
|
8557
8912
|
showAll?: boolean;
|
|
8558
8913
|
}
|
|
8559
8914
|
|
|
8915
|
+
/**
|
|
8916
|
+
* Emitted when shapes are created, updated, or deleted.
|
|
8917
|
+
* @public
|
|
8918
|
+
*/
|
|
8919
|
+
export declare interface TLShapeOperationPerfEvent {
|
|
8920
|
+
/** The operation type. */
|
|
8921
|
+
operation: 'create' | 'delete' | 'update';
|
|
8922
|
+
/** Number of shapes affected. */
|
|
8923
|
+
count: number;
|
|
8924
|
+
/** Breakdown by shape type (e.g. `{ geo: 2, draw: 1 }`). */
|
|
8925
|
+
shapeTypes: Record<string, number>;
|
|
8926
|
+
/** `performance.now()` when the operation occurred. */
|
|
8927
|
+
timestamp: number;
|
|
8928
|
+
}
|
|
8929
|
+
|
|
8560
8930
|
/**
|
|
8561
8931
|
* Options passed to {@link ShapeUtil.canBeLaidOut}.
|
|
8562
8932
|
*
|
|
@@ -8642,6 +9012,7 @@ export declare interface TLStateNodeConstructor {
|
|
|
8642
9012
|
children?(): TLStateNodeConstructor[];
|
|
8643
9013
|
isLockable: boolean;
|
|
8644
9014
|
useCoalescedEvents: boolean;
|
|
9015
|
+
trackPerformance: boolean;
|
|
8645
9016
|
}
|
|
8646
9017
|
|
|
8647
9018
|
/** @public */
|
|
@@ -8819,6 +9190,19 @@ export declare interface TLTldrawExternalContentSource {
|
|
|
8819
9190
|
data: TLContent;
|
|
8820
9191
|
}
|
|
8821
9192
|
|
|
9193
|
+
/**
|
|
9194
|
+
* Emitted after an undo or redo operation.
|
|
9195
|
+
* @public
|
|
9196
|
+
*/
|
|
9197
|
+
export declare interface TLUndoRedoPerfEvent {
|
|
9198
|
+
/** Whether this was an undo or redo. */
|
|
9199
|
+
type: 'redo' | 'undo';
|
|
9200
|
+
/** Number of undo steps remaining. */
|
|
9201
|
+
undoDepth: number;
|
|
9202
|
+
/** Number of redo steps remaining. */
|
|
9203
|
+
redoDepth: number;
|
|
9204
|
+
}
|
|
9205
|
+
|
|
8822
9206
|
/** @public */
|
|
8823
9207
|
export declare interface TLUpdatePointerOptions {
|
|
8824
9208
|
/** Whether to update the pointer immediately, rather than on the next tick. */
|
package/dist-cjs/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __export(index_exports, {
|
|
|
23
23
|
AssetUtil: () => import_AssetUtil.AssetUtil,
|
|
24
24
|
BaseBoxShapeTool: () => import_BaseBoxShapeTool.BaseBoxShapeTool,
|
|
25
25
|
BaseBoxShapeUtil: () => import_BaseBoxShapeUtil.BaseBoxShapeUtil,
|
|
26
|
+
BaseFrameLikeShapeUtil: () => import_BaseFrameLikeShapeUtil.BaseFrameLikeShapeUtil,
|
|
26
27
|
BindingUtil: () => import_BindingUtil.BindingUtil,
|
|
27
28
|
BoundsSnaps: () => import_BoundsSnaps.BoundsSnaps,
|
|
28
29
|
Box: () => import_Box.Box,
|
|
@@ -82,6 +83,8 @@ __export(index_exports, {
|
|
|
82
83
|
OptionalErrorBoundary: () => import_ErrorBoundary.OptionalErrorBoundary,
|
|
83
84
|
PI: () => import_utils2.PI,
|
|
84
85
|
PI2: () => import_utils2.PI2,
|
|
86
|
+
PerformanceApiAdapter: () => import_PerformanceApiAdapter.PerformanceApiAdapter,
|
|
87
|
+
PerformanceManager: () => import_PerformanceManager.PerformanceManager,
|
|
85
88
|
Point2d: () => import_Point2d.Point2d,
|
|
86
89
|
Polygon2d: () => import_Polygon2d.Polygon2d,
|
|
87
90
|
Polyline2d: () => import_Polyline2d.Polyline2d,
|
|
@@ -301,8 +304,11 @@ var import_TextManager = require("./lib/editor/managers/TextManager/TextManager"
|
|
|
301
304
|
var import_defaultThemes = require("./lib/editor/managers/ThemeManager/defaultThemes");
|
|
302
305
|
var import_ThemeManager = require("./lib/editor/managers/ThemeManager/ThemeManager");
|
|
303
306
|
var import_TickManager = require("./lib/editor/managers/TickManager/TickManager");
|
|
307
|
+
var import_PerformanceApiAdapter = require("./lib/editor/managers/PerformanceManager/PerformanceApiAdapter");
|
|
308
|
+
var import_PerformanceManager = require("./lib/editor/managers/PerformanceManager/PerformanceManager");
|
|
304
309
|
var import_UserPreferencesManager = require("./lib/editor/managers/UserPreferencesManager/UserPreferencesManager");
|
|
305
310
|
var import_BaseBoxShapeUtil = require("./lib/editor/shapes/BaseBoxShapeUtil");
|
|
311
|
+
var import_BaseFrameLikeShapeUtil = require("./lib/editor/shapes/BaseFrameLikeShapeUtil");
|
|
306
312
|
var import_GroupShapeUtil = require("./lib/editor/shapes/group/GroupShapeUtil");
|
|
307
313
|
var import_ShapeUtil = require("./lib/editor/shapes/ShapeUtil");
|
|
308
314
|
var import_getPerfectDashProps = require("./lib/editor/shapes/shared/getPerfectDashProps");
|
|
@@ -385,7 +391,7 @@ var import_uniq = require("./lib/utils/uniq");
|
|
|
385
391
|
var import_defaultThemes2 = require("./lib/editor/managers/ThemeManager/defaultThemes");
|
|
386
392
|
(0, import_utils.registerTldrawLibraryVersion)(
|
|
387
393
|
"@tldraw/editor",
|
|
388
|
-
"4.6.0-canary.
|
|
394
|
+
"4.6.0-canary.abd30e51f1f3",
|
|
389
395
|
"cjs"
|
|
390
396
|
);
|
|
391
397
|
//# sourceMappingURL=index.js.map
|