` component\'s `shapes` prop. \\n\\n```tsx\\nimport { Tldraw } from \'@tldraw/tldraw\'\\nimport \'@tldraw/tldraw/tldraw.css\'\\n\\nconst MyCardShape = defineShape(\'card\', { util: CardShapeUtil })\\nconst MyCustomShapes = [MyCardShape]\\n\\nexport default function () {\\n\\treturn (\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t)\\n}\\n```\\n\\nThe `defineShape` function can also be used to include a tool that we can use to create this type of shape. For now, let\'s create it using the `Editor` API.\\n\\n```tsx\\nexport default function () {\\n\\treturn (\\n\\t\\t\\n\\t\\t\\t {\\n editor.createShapes([{ type: \\"card\\" }])\\n }}/>\\n\\t\\t
\\n\\t)\\n}\\n```\\n\\nOnce the page refreshes, we should now have our custom shape on the canvas.\\n\\n## Using starter shapes\\n\\nYou can use \\"starter\\" shape utils like `BaseBoxShapeUtil` to get regular rectangular shape behavior.\\n\\n> todo\\n\\n## Flags\\n\\nYou can use flags like `hideRotateHandle` to hide different parts of the UI when the shape is selected, or else to control different behaviors of the shape.\\n\\n> todo\\n\\n## Interaction\\n\\nYou can turn on `pointer-events` to allow users to interact inside of the shape.\\n\\n> todo\\n\\n## Editing\\n\\nYou can make shapes \\"editable\\" to help decide when they\'re interactive or not.\\n\\n> todo","tools":"\\nComing soon. \\n\\nSee the [tldraw repository](https://github.com/tldraw/tldraw/tree/main/apps/examples) for an example of how to create custom tools in tldraw.\\n","user-interface":"\\n## Events\\n\\nThe `` component has a prop, `onUiEvent`, that the user interface will call when certain events occur.\\n\\n```tsx\\nfunction Example() {\\n function handleEvent(name, data) {\\n // do something with the event\\n }\\n\\n return (\\n \\n )\\n}\\n```\\n\\nThe `onUiEvent` callback is called with the name of the event as a string and an object with information about the event\'s source (e.g. `menu` or `context-menu`) and possibly other data specific to each event, such as the direction in an `align-shapes` event.\\n\\nNote that `onUiEvent` is only called when interacting with the user interface. It is not called when running commands manually against the app, e.g. `editor.alignShapes()` will not call `onUiEvent`.\\n\\nSee the [tldraw repository](https://github.com/tldraw/tldraw/tree/main/apps/examples) for an example of how to customize tldraw\'s user interface.\\n","contributing":"\\nInterested in contributing to the open source project? \\n\\nYou can find tldraw on GitHub at [github.com/tldraw/tldraw](https://github.com/tldraw/tldraw). You can [create an issue](https://github.com/tldraw/tldraw/issues/new/choose) and submit pull requests for our review.\\n\\nPlease see our [Contributing guide](https://github.com/tldraw/tldraw/blob/main/CONTRIBUTING.md) for more information.\\n\\nPlease also see our [Code of Conduct](https://github.com/tldraw/tldraw/blob/main/CODE_OF_CONDUCT.md) for our expectations around contributor culture.","embeds":"\\nComing soon.\\n","translations":"\\nThe tldraw user interface (in [@tldraw/ui](/docs/user-interface)) is currently translated into over thirty different languages, with twenty languages at above 70% completion. Where a key\'s translation is missing in the user\'s current language language, the default (English) translation will be used instead.\\n\\nWe manage our translations through [Lokalise](https://www.lokalise.com), a long-time tldraw sponsor. If you would like to help by translating or reviewing translations, please let us know on [Discord](https://discord.gg/sKNgCZyrrf) so that we can add you to the project.\\n","ACCEPTED_ASSET_TYPE-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_ASSET_TYPE: string\\n```\\n\\n","ACCEPTED_IMG_TYPE-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_IMG_TYPE: string[]\\n```\\n\\n","ACCEPTED_VID_TYPE-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_VID_TYPE: string[]\\n```\\n\\n","AllRecords-type":"Public TypeAlias\\n\\nGet the type of all records in a record store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype AllRecords> = ExtractR>\\n```\\n\\n##### References\\n\\n[Store](/gen/store/Store-class), [ExtractR](/gen/store/~ExtractR-type), [ExtractRecordType](/gen/store/~ExtractRecordType-type)\\n\\n","ArrowShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nArrowShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLArrowShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n","ArrowShapeArrowheadEndStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nArrowShapeArrowheadEndStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow\'\\n | \'bar\'\\n | \'diamond\'\\n | \'dot\'\\n | \'inverted\'\\n | \'none\'\\n | \'pipe\'\\n | \'square\'\\n | \'triangle\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","ArrowShapeArrowheadStartStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nArrowShapeArrowheadStartStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow\'\\n | \'bar\'\\n | \'diamond\'\\n | \'dot\'\\n | \'inverted\'\\n | \'none\'\\n | \'pipe\'\\n | \'square\'\\n | \'triangle\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","ArrowShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canBind](#ArrowShapeUtil-canBind-member)\\n - [canEdit](#ArrowShapeUtil-canEdit-member)\\n - [canSnap](#ArrowShapeUtil-canSnap-member)\\n - [hideResizeHandles](#ArrowShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#ArrowShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#ArrowShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#ArrowShapeUtil-hideSelectionBoundsFg-member)\\n - [isClosed](#ArrowShapeUtil-isClosed-member)\\n - [labelBoundsCache](#ArrowShapeUtil-labelBoundsCache-member)\\n - [onDoubleClickHandle](#ArrowShapeUtil-onDoubleClickHandle-member)\\n - [onEditEnd](#ArrowShapeUtil-onEditEnd-member)\\n - [onHandleChange](#ArrowShapeUtil-onHandleChange-member)\\n - [onResize](#ArrowShapeUtil-onResize-member)\\n - [onTranslateStart](#ArrowShapeUtil-onTranslateStart-member)\\n - [type](#ArrowShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#ArrowShapeUtil-component-member-1)\\n - [getArrowInfo](#ArrowShapeUtil-getArrowInfo-member-1)\\n - [getBounds](#ArrowShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#ArrowShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#ArrowShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#ArrowShapeUtil-getDefaultProps-member-1)\\n - [getHandles](#ArrowShapeUtil-getHandles-member-1)\\n - [getLabelBounds](#ArrowShapeUtil-getLabelBounds-member-1)\\n - [getOutline](#ArrowShapeUtil-getOutline-member-1)\\n - [getOutlineWithoutLabel](#ArrowShapeUtil-getOutlineWithoutLabel-member-1)\\n - [hitTestLineSegment](#ArrowShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#ArrowShapeUtil-hitTestPoint-member-1)\\n - [indicator](#ArrowShapeUtil-indicator-member-1)\\n - [snapPoints](#ArrowShapeUtil-snapPoints-member-1)\\n - [toSvg](#ArrowShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ArrowShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#ArrowShapeUtil-canBind-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `canEdit` \\\\{#ArrowShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `canSnap` \\\\{#ArrowShapeUtil-canSnap-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanSnap: () => boolean\\n```\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#ArrowShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#ArrowShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#ArrowShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#ArrowShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `isClosed` \\\\{#ArrowShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: () => boolean\\n```\\n\\n---\\n\\n### `labelBoundsCache` \\\\{#ArrowShapeUtil-labelBoundsCache-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget labelBoundsCache(): ComputedCache\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type), [Box2d](/gen/primitives/Box2d-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onDoubleClickHandle` \\\\{#ArrowShapeUtil-onDoubleClickHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickHandle: (\\n shape: TLArrowShape,\\n handle: TLHandle\\n) => TLShapePartial | void\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#ArrowShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onHandleChange` \\\\{#ArrowShapeUtil-onHandleChange-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange: TLOnHandleChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#ArrowShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onTranslateStart` \\\\{#ArrowShapeUtil-onTranslateStart-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateStart: TLOnTranslateStartHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateStartHandler](/gen/editor/TLOnTranslateStartHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `type` \\\\{#ArrowShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'arrow\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#ArrowShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getArrowInfo()` \\\\{#ArrowShapeUtil-getArrowInfo-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nArrowInfo | undefined\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [ArrowInfo](/gen/editor/~ArrowInfo-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#ArrowShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#ArrowShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#ArrowShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#ArrowShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLArrowShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `getHandles()` \\\\{#ArrowShapeUtil-getHandles-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getLabelBounds()` \\\\{#ArrowShapeUtil-getLabelBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | null\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getOutline()` \\\\{#ArrowShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineWithoutLabel()` \\\\{#ArrowShapeUtil-getOutlineWithoutLabel-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#ArrowShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#ArrowShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#ArrowShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `snapPoints()` \\\\{#ArrowShapeUtil-snapPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `toSvg()` \\\\{#ArrowShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","AssetRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nAssetRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n","BaseBoxShapeTool-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [children](#BaseBoxShapeTool-children-member)\\n - [id](#BaseBoxShapeTool-id-member)\\n - [initial](#BaseBoxShapeTool-initial-member)\\n - [shapeType](#BaseBoxShapeTool-shapeType-member)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class BaseBoxShapeTool extends StateNode {}\\n```\\n\\n##### References\\n\\n[StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#BaseBoxShapeTool-children-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic children: () => (typeof Idle | typeof Pointing)[]\\n```\\n\\n##### References\\n\\n[Idle](/gen/editor/~Idle_4-class), [Pointing](/gen/editor/~Pointing_2-class)\\n\\n---\\n\\n### `id` \\\\{#BaseBoxShapeTool-id-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic id: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#BaseBoxShapeTool-initial-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic initial: string\\n```\\n\\n---\\n\\n### `shapeType` \\\\{#BaseBoxShapeTool-shapeType-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nabstract shapeType: TLShapeUtilConstructor\\n```\\n\\n##### References\\n\\n[TLShapeUtilConstructor](/gen/editor/TLShapeUtilConstructor-interface)\\n\\n---\\n\\n","BaseBoxShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [onResize](#BaseBoxShapeUtil-onResize-member)\\n- [Methods](#methods)\\n - [getBounds](#BaseBoxShapeUtil-getBounds-member-1)\\n - [getCenter](#BaseBoxShapeUtil-getCenter-member-1)\\n - [getOutline](#BaseBoxShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#BaseBoxShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#BaseBoxShapeUtil-hitTestPoint-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class BaseBoxShapeUtil<\\n Shape extends TLBaseBoxShape\\n> extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[TLBaseBoxShape](/gen/editor/TLBaseBoxShape-type), [ShapeUtil](/gen/editor/ShapeUtil-class)\\n\\n---\\n\\n## Properties\\n\\n### `onResize` \\\\{#BaseBoxShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type)\\n\\n---\\n\\n## Methods\\n\\n### `getBounds()` \\\\{#BaseBoxShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#BaseBoxShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutline()` \\\\{#BaseBoxShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#BaseBoxShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#BaseBoxShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n","BaseRecord-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [id](#BaseRecord-id-member)\\n - [typeName](#BaseRecord-typeName-member)\\n \\n\\nThe base record that all records must extend.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface BaseRecord<\\n TypeName extends string,\\n Id extends RecordId\\n> {}\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n## Properties\\n\\n### `id` \\\\{#BaseRecord-id-member}\\n\\nPublic Readonly PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: Id\\n```\\n\\n---\\n\\n### `typeName` \\\\{#BaseRecord-typeName-member}\\n\\nPublic Readonly PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly typeName: TypeName\\n```\\n\\n---\\n\\n","BookmarkShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nBookmarkShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLBookmarkShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n","BookmarkShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canResize](#BookmarkShapeUtil-canResize-member)\\n - [hideSelectionBoundsBg](#BookmarkShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#BookmarkShapeUtil-hideSelectionBoundsFg-member)\\n - [onBeforeCreate](#BookmarkShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#BookmarkShapeUtil-onBeforeUpdate-member)\\n - [type](#BookmarkShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#BookmarkShapeUtil-component-member-1)\\n - [getDefaultProps](#BookmarkShapeUtil-getDefaultProps-member-1)\\n - [indicator](#BookmarkShapeUtil-indicator-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass BookmarkShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canResize` \\\\{#BookmarkShapeUtil-canResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#BookmarkShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#BookmarkShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#BookmarkShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate?: TLOnBeforeCreateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeCreateHandler](/gen/editor/TLOnBeforeCreateHandler-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#BookmarkShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate?: TLOnBeforeUpdateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeUpdateHandler](/gen/editor/TLOnBeforeUpdateHandler-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n### `type` \\\\{#BookmarkShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'bookmark\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#BookmarkShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLBookmarkShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#BookmarkShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLBookmarkShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#BookmarkShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLBookmarkShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","Box2d-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [aspectRatio](#Box2d-aspectRatio-member)\\n - [center](#Box2d-center-member)\\n - [Collides](#Box2d-Collides-member)\\n - [Common](#Box2d-Common-member)\\n - [Contains](#Box2d-Contains-member)\\n - [ContainsPoint](#Box2d-ContainsPoint-member)\\n - [corners](#Box2d-corners-member)\\n - [h](#Box2d-h-member)\\n - [height](#Box2d-height-member)\\n - [Includes](#Box2d-Includes-member)\\n - [maxX](#Box2d-maxX-member)\\n - [maxY](#Box2d-maxY-member)\\n - [midX](#Box2d-midX-member)\\n - [midY](#Box2d-midY-member)\\n - [minX](#Box2d-minX-member)\\n - [minY](#Box2d-minY-member)\\n - [point](#Box2d-point-member)\\n - [sides](#Box2d-sides-member)\\n - [Sides](#Box2d-Sides-member)\\n - [size](#Box2d-size-member)\\n - [snapPoints](#Box2d-snapPoints-member)\\n - [w](#Box2d-w-member)\\n - [width](#Box2d-width-member)\\n - [x](#Box2d-x-member)\\n - [y](#Box2d-y-member)\\n- [Methods](#methods)\\n - [clone](#Box2d-clone-member-1)\\n - [collides](#Box2d-collides-member-1)\\n - [contains](#Box2d-contains-member-1)\\n - [containsPoint](#Box2d-containsPoint-member-1)\\n - [equals](#Box2d-equals-member-1)\\n - [Equals](#Box2d-Equals-member-1)\\n - [expand](#Box2d-expand-member-1)\\n - [Expand](#Box2d-Expand-member-1)\\n - [expandBy](#Box2d-expandBy-member-1)\\n - [ExpandBy](#Box2d-ExpandBy-member-1)\\n - [From](#Box2d-From-member-1)\\n - [FromPoints](#Box2d-FromPoints-member-1)\\n - [getHandlePoint](#Box2d-getHandlePoint-member-1)\\n - [includes](#Box2d-includes-member-1)\\n - [resize](#Box2d-resize-member-1)\\n - [Resize](#Box2d-Resize-member-1)\\n - [scale](#Box2d-scale-member-1)\\n - [set](#Box2d-set-member-1)\\n - [setTo](#Box2d-setTo-member-1)\\n - [snapToGrid](#Box2d-snapToGrid-member-1)\\n - [toFixed](#Box2d-toFixed-member-1)\\n - [toJson](#Box2d-toJson-member-1)\\n - [translate](#Box2d-translate-member-1)\\n - [union](#Box2d-union-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Box2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Box2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`w`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`h`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n---\\n\\n## Properties\\n\\n### `aspectRatio` \\\\{#Box2d-aspectRatio-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget aspectRatio(): number\\n```\\n\\n---\\n\\n### `center` \\\\{#Box2d-center-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget center(): Vec2d\\n\\nset center(v: Vec2d)\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Collides` \\\\{#Box2d-Collides-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Collides: (A: Box2d, B: Box2d) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `Common` \\\\{#Box2d-Common-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Common: (boxes: Box2d[]) => Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `Contains` \\\\{#Box2d-Contains-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Contains: (A: Box2d, B: Box2d) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `ContainsPoint` \\\\{#Box2d-ContainsPoint-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic ContainsPoint: (A: Box2d, B: number | VecLike, y?: number) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `corners` \\\\{#Box2d-corners-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget corners(): Vec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `h` \\\\{#Box2d-h-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nh: number\\n```\\n\\n---\\n\\n### `height` \\\\{#Box2d-height-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget height(): number\\n\\nset height(n: number)\\n```\\n\\n---\\n\\n### `Includes` \\\\{#Box2d-Includes-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Includes: (A: Box2d, B: Box2d) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `maxX` \\\\{#Box2d-maxX-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget maxX(): number\\n```\\n\\n---\\n\\n### `maxY` \\\\{#Box2d-maxY-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget maxY(): number\\n```\\n\\n---\\n\\n### `midX` \\\\{#Box2d-midX-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget midX(): number\\n```\\n\\n---\\n\\n### `midY` \\\\{#Box2d-midY-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget midY(): number\\n```\\n\\n---\\n\\n### `minX` \\\\{#Box2d-minX-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget minX(): number\\n\\nset minX(n: number)\\n```\\n\\n---\\n\\n### `minY` \\\\{#Box2d-minY-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget minY(): number\\n\\nset minY(n: number)\\n```\\n\\n---\\n\\n### `point` \\\\{#Box2d-point-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget point(): Vec2d\\n\\nset point(val: Vec2d)\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `sides` \\\\{#Box2d-sides-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget sides(): Array<[Vec2d, Vec2d]>\\n```\\n\\n##### References\\n\\n[Array](/gen/Array-interface), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Sides` \\\\{#Box2d-Sides-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Sides: (A: Box2d, inset?: number) => Vec2d[][]\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `size` \\\\{#Box2d-size-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget size(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `snapPoints` \\\\{#Box2d-snapPoints-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget snapPoints(): Vec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `w` \\\\{#Box2d-w-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nw: number\\n```\\n\\n---\\n\\n### `width` \\\\{#Box2d-width-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget width(): number\\n\\nset width(n: number)\\n```\\n\\n---\\n\\n### `x` \\\\{#Box2d-x-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Box2d-y-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `clone()` \\\\{#Box2d-clone-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `collides()` \\\\{#Box2d-collides-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `contains()` \\\\{#Box2d-contains-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `containsPoint()` \\\\{#Box2d-containsPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nnumber | VecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `equals()` \\\\{#Box2d-equals-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`other`\\n\\n\\n\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `Equals()` \\\\{#Box2d-Equals-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `expand()` \\\\{#Box2d-expand-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `Expand()` \\\\{#Box2d-Expand-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `expandBy()` \\\\{#Box2d-expandBy-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `ExpandBy()` \\\\{#Box2d-ExpandBy-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `From()` \\\\{#Box2d-From-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `FromPoints()` \\\\{#Box2d-FromPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getHandlePoint()` \\\\{#Box2d-getHandlePoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionCorner | SelectionEdge\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `includes()` \\\\{#Box2d-includes-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `resize()` \\\\{#Box2d-resize-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionCorner | SelectionEdge | string\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dy`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n---\\n\\n### `Resize()` \\\\{#Box2d-Resize-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionCorner | SelectionEdge | string\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dy`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`isAspectRatioLocked`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n box: Box2d\\n scaleX: number\\n scaleY: number\\n}\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n---\\n\\n### `scale()` \\\\{#Box2d-scale-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `set()` \\\\{#Box2d-set-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`w`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`h`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Box2d-setTo-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `snapToGrid()` \\\\{#Box2d-snapToGrid-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`size`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `toFixed()` \\\\{#Box2d-toFixed-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `toJson()` \\\\{#Box2d-toJson-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nBox2dModel\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `translate()` \\\\{#Box2d-translate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `union()` \\\\{#Box2d-union-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n","Box2dModel-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [h](#Box2dModel-h-member)\\n - [w](#Box2dModel-w-member)\\n - [x](#Box2dModel-x-member)\\n - [y](#Box2dModel-y-member)\\n \\n\\nA serializable model for 2D boxes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface Box2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `h` \\\\{#Box2dModel-h-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nh: number\\n```\\n\\n---\\n\\n### `w` \\\\{#Box2dModel-w-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nw: number\\n```\\n\\n---\\n\\n### `x` \\\\{#Box2dModel-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Box2dModel-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","BreakPointProvider-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","Button-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nButton: React.ForwardRefExoticComponent<\\n TLUiButtonProps & React.RefAttributes\\n>\\n```\\n\\n##### References\\n\\n[React.ForwardRefExoticComponent](/gen/@types/react-React-ForwardRefExoticComponent-interface), [TLUiButtonProps](/gen/ui/TLUiButtonProps-interface), [React.RefAttributes](/gen/@types/react-React-RefAttributes-interface), [HTMLButtonElement](/gen/HTMLButtonElement-interface)\\n\\n","CameraRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nCameraRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLCamera](/gen/tlschema/TLCamera-interface)\\n\\n","Canvas-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nCanvas: React.MemoExoticComponent<() => JSX.Element>\\n```\\n\\n##### References\\n\\n[React.MemoExoticComponent](/gen/@types/react-React-MemoExoticComponent-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","CollectionDiff-type":"Public TypeAlias\\n\\nA diff describing the changes to a collection.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype CollectionDiff = {\\n added?: Set\\n removed?: Set\\n}\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface)\\n\\n","ComputedCache-type":"Public TypeAlias\\n\\nA record store is a collection of records of different types.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype ComputedCache = {\\n get(id: IdOf): Data | undefined\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [IdOf](/gen/store/IdOf-type)\\n\\n","ContextMenu-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nContextMenu: ({ children }: { children: any }) => JSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","CubicSegment2d-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [[Symbol.iterator]](#CubicSegment2d-[Symbol-iterator]-member)\\n- [Methods](#methods)\\n - [getPath](#CubicSegment2d-getPath-member-1)\\n - [getPoint](#CubicSegment2d-getPoint-member-1)\\n - [getX](#CubicSegment2d-getX-member-1)\\n - [getY](#CubicSegment2d-getY-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass CubicSegment2d extends BaseSegment2d {}\\n```\\n\\n##### References\\n\\n[BaseSegment2d](/gen/primitives/~BaseSegment2d-class), [CubicSegment2dModel](/gen/primitives/CubicSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `CubicSegment2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`d`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `[Symbol.iterator]` \\\\{#CubicSegment2d-[Symbol-iterator]-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\n[Symbol.iterator]: (\\n this: InstanceType\\n) => Generator\\n```\\n\\n##### References\\n\\n[Symbol.iterator](/gen/SymbolConstructor-iterator), [InstanceType](/gen/InstanceType-type), [CubicSegment2d](/gen/primitives/CubicSegment2d-class), [Generator](/gen/Generator-interface), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Methods\\n\\n### `getPath()` \\\\{#CubicSegment2d-getPath-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`head`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `getPoint()` \\\\{#CubicSegment2d-getPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getX()` \\\\{#CubicSegment2d-getX-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `getY()` \\\\{#CubicSegment2d-getY-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n","CubicSegment2dModel-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [a](#CubicSegment2dModel-a-member)\\n - [b](#CubicSegment2dModel-b-member)\\n - [c](#CubicSegment2dModel-c-member)\\n - [d](#CubicSegment2dModel-d-member)\\n - [p](#CubicSegment2dModel-p-member)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface CubicSegment2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#CubicSegment2dModel-a-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\na: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `b` \\\\{#CubicSegment2dModel-b-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nb: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `c` \\\\{#CubicSegment2dModel-c-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nc: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `d` \\\\{#CubicSegment2dModel-d-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nd: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `p` \\\\{#CubicSegment2dModel-p-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\np: number\\n```\\n\\n---\\n\\n","CubicSpline2d-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [segments](#CubicSpline2d-segments-member)\\n- [Methods](#methods)\\n - [FromPoints](#CubicSpline2d-FromPoints-member-1)\\n - [getSegmentsFromPoints](#CubicSpline2d-getSegmentsFromPoints-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass CubicSpline2d extends BaseSpline2d {}\\n```\\n\\n##### References\\n\\n[BaseSpline2d](/gen/primitives/~BaseSpline2d-class), [CubicSegment2dModel](/gen/primitives/CubicSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `CubicSpline2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`k`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `segments` \\\\{#CubicSpline2d-segments-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nsegments: CubicSegment2d[]\\n```\\n\\n##### References\\n\\n[CubicSegment2d](/gen/primitives/CubicSegment2d-class)\\n\\n---\\n\\n## Methods\\n\\n### `FromPoints()` \\\\{#CubicSpline2d-FromPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nCubicSpline2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [CubicSpline2d](/gen/primitives/CubicSpline2d-class)\\n\\n---\\n\\n### `getSegmentsFromPoints()` \\\\{#CubicSpline2d-getSegmentsFromPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`k`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nCubicSegment2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [CubicSegment2d](/gen/primitives/CubicSegment2d-class)\\n\\n---\\n\\n","DefaultColorStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultColorStyle: import(\'./StyleProp\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultColorThemePalette-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultColorThemePalette: {\\n lightMode: TLDefaultColorTheme\\n darkMode: TLDefaultColorTheme\\n}\\n```\\n\\n##### References\\n\\n[TLDefaultColorTheme](/gen/tlschema/TLDefaultColorTheme-type)\\n\\n","DefaultDashStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultDashStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultFillStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultFillStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultFontFamilies-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultFontFamilies: {\\n draw: string\\n sans: string\\n serif: string\\n mono: string\\n}\\n```\\n\\n","DefaultFontStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultFontStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultHorizontalAlignStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultHorizontalAlignStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'end-legacy\' | \'end\' | \'middle-legacy\' | \'middle\' | \'start-legacy\' | \'start\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultSizeStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultSizeStyle: import(\'./StyleProp\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultVerticalAlignStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultVerticalAlignStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'end\' | \'middle\' | \'start\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","Dialog-namespace":"None Namespace\\n\\n\\n\\tTable of Contents
\\n- [Methods](#methods)\\n - [Body](#Dialog-Body-function-1)\\n - [CloseButton](#Dialog-CloseButton-function-1)\\n - [Footer](#Dialog-Footer-function-1)\\n - [Header](#Dialog-Header-function-1)\\n - [Title](#Dialog-Title-function-1)\\n \\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Methods\\n\\n### `Body` \\\\{#Dialog-Body-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children, style, }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n style?: React.CSSProperties\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[React.CSSProperties](/gen/@types/react-React-CSSProperties-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `CloseButton` \\\\{#Dialog-CloseButton-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Footer` \\\\{#Dialog-Footer-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Header` \\\\{#Dialog-Header-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Title` \\\\{#Dialog-Title-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","DocumentRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDocumentRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n","DrawShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDrawShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLDrawShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n","DrawShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [hideResizeHandles](#DrawShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#DrawShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#DrawShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#DrawShapeUtil-hideSelectionBoundsFg-member)\\n - [isClosed](#DrawShapeUtil-isClosed-member)\\n - [onResize](#DrawShapeUtil-onResize-member)\\n - [type](#DrawShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#DrawShapeUtil-component-member-1)\\n - [expandSelectionOutlinePx](#DrawShapeUtil-expandSelectionOutlinePx-member-1)\\n - [getBounds](#DrawShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#DrawShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#DrawShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#DrawShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#DrawShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#DrawShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#DrawShapeUtil-hitTestPoint-member-1)\\n - [indicator](#DrawShapeUtil-indicator-member-1)\\n - [toSvg](#DrawShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass DrawShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `hideResizeHandles` \\\\{#DrawShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#DrawShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#DrawShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#DrawShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `isClosed` \\\\{#DrawShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#DrawShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `type` \\\\{#DrawShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'draw\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#DrawShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `expandSelectionOutlinePx()` \\\\{#DrawShapeUtil-expandSelectionOutlinePx-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#DrawShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#DrawShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#DrawShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#DrawShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLDrawShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#DrawShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#DrawShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#DrawShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#DrawShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#DrawShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","DropdownMenu-namespace":"None Namespace\\n\\n\\n\\tTable of Contents
\\n- [Methods](#methods)\\n - [CheckboxItem](#DropdownMenu-CheckboxItem-function-1)\\n - [Content](#DropdownMenu-Content-function-1)\\n - [Group](#DropdownMenu-Group-function-1)\\n - [Indicator](#DropdownMenu-Indicator-function-1)\\n - [Item](#DropdownMenu-Item-function-1)\\n - [RadioItem](#DropdownMenu-RadioItem-function-1)\\n - [Root](#DropdownMenu-Root-function-1)\\n - [Sub](#DropdownMenu-Sub-function-1)\\n - [SubContent](#DropdownMenu-SubContent-function-1)\\n - [SubTrigger](#DropdownMenu-SubTrigger-function-1)\\n - [Trigger](#DropdownMenu-Trigger-function-1)\\n \\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Methods\\n\\n### `CheckboxItem` \\\\{#DropdownMenu-CheckboxItem-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, onSelect, ...rest }`\\n\\n\\n\\n\\n```ts\\nDropdownMenuCheckboxItemProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[DropdownMenuCheckboxItemProps](/gen/ui/DropdownMenu-DropdownMenuCheckboxItemProps-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Content` \\\\{#DropdownMenu-Content-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ side, align, sideOffset, alignOffset, children, }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n alignOffset?: number\\n sideOffset?: number\\n align?: \'center\' | \'end\' | \'start\'\\n side?: \'bottom\' | \'left\' | \'right\' | \'top\'\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Group` \\\\{#DropdownMenu-Group-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, size, }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n size?: \'medium\' | \'small\' | \'tiny\' | \'wide\'\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Indicator` \\\\{#DropdownMenu-Indicator-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Item` \\\\{#DropdownMenu-Item-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ noClose, ...props }`\\n\\n\\n\\n\\n```ts\\nDropdownMenuItemProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[DropdownMenuItemProps](/gen/ui/DropdownMenu-DropdownMenuItemProps-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `RadioItem` \\\\{#DropdownMenu-RadioItem-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, onSelect, ...rest }`\\n\\n\\n\\n\\n```ts\\nDropdownMenuCheckboxItemProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[DropdownMenuCheckboxItemProps](/gen/ui/DropdownMenu-DropdownMenuCheckboxItemProps-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Root` \\\\{#DropdownMenu-Root-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ id, children, modal, }`\\n\\n\\n\\n\\n```ts\\n{\\n id: string\\n children: any\\n modal?: boolean\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Sub` \\\\{#DropdownMenu-Sub-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ id, children }`\\n\\n\\n\\n\\n```ts\\n{\\n id: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `SubContent` \\\\{#DropdownMenu-SubContent-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ alignOffset, sideOffset, children, }`\\n\\n\\n\\n\\n```ts\\n{\\n alignOffset?: number\\n sideOffset?: number\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `SubTrigger` \\\\{#DropdownMenu-SubTrigger-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ label, \'data-testid\': testId, \'data-direction\': dataDirection, }`\\n\\n\\n\\n\\n```ts\\n{\\n label: TLUiTranslationKey\\n \'data-testid\'?: string\\n \'data-direction\'?: \'left\' | \'right\'\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Trigger` \\\\{#DropdownMenu-Trigger-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, \'data-testid\': testId, }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n \'data-testid\'?: string\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","EASINGS-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEASINGS: {\\n readonly linear: (t: number) => number\\n readonly easeInQuad: (t: number) => number\\n readonly easeOutQuad: (t: number) => number\\n readonly easeInOutQuad: (t: number) => number\\n readonly easeInCubic: (t: number) => number\\n readonly easeOutCubic: (t: number) => number\\n readonly easeInOutCubic: (t: number) => number\\n readonly easeInQuart: (t: number) => number\\n readonly easeOutQuart: (t: number) => number\\n readonly easeInOutQuart: (t: number) => number\\n readonly easeInQuint: (t: number) => number\\n readonly easeOutQuint: (t: number) => number\\n readonly easeInOutQuint: (t: number) => number\\n readonly easeInSine: (t: number) => number\\n readonly easeOutSine: (t: number) => number\\n readonly easeInOutSine: (t: number) => number\\n readonly easeInExpo: (t: number) => number\\n readonly easeOutExpo: (t: number) => number\\n readonly easeInOutExpo: (t: number) => number\\n}\\n```\\n\\n","EMBED_DEFINITIONS-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEMBED_DEFINITIONS: readonly [\\n {\\n readonly type: \'tldraw\'\\n readonly title: \'tldraw\'\\n readonly hostnames: readonly [\\n \'beta.tldraw.com\',\\n \'lite.tldraw.com\',\\n \'www.tldraw.com\'\\n ]\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'codesandbox\'\\n readonly title: \'CodeSandbox\'\\n readonly hostnames: readonly [\'codesandbox.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'codepen\'\\n readonly title: \'Codepen\'\\n readonly hostnames: readonly [\'codepen.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'scratch\'\\n readonly title: \'Scratch\'\\n readonly hostnames: readonly [\'scratch.mit.edu\']\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: false\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'youtube\'\\n readonly title: \'YouTube\'\\n readonly hostnames: readonly [\'*.youtube.com\', \'youtube.com\', \'youtu.be\']\\n readonly width: 800\\n readonly height: 450\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly overridePermissions: {\\n readonly \'allow-presentation\': true\\n }\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'figma\'\\n readonly title: \'Figma\'\\n readonly hostnames: readonly [\'figma.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'google_maps\'\\n readonly title: \'Google Maps\'\\n readonly hostnames: readonly [\'google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'google_calendar\'\\n readonly title: \'Google Calendar\'\\n readonly hostnames: readonly [\'calendar.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly instructionLink: \'https://support.google.com/calendar/answer/41207?hl=en\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'google_slides\'\\n readonly title: \'Google Slides\'\\n readonly hostnames: readonly [\'docs.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'github_gist\'\\n readonly title: \'GitHub Gist\'\\n readonly hostnames: readonly [\'gist.github.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'replit\'\\n readonly title: \'Replit\'\\n readonly hostnames: readonly [\'replit.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'felt\'\\n readonly title: \'Felt\'\\n readonly hostnames: readonly [\'felt.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'spotify\'\\n readonly title: \'Spotify\'\\n readonly hostnames: readonly [\'open.spotify.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly minHeight: 500\\n readonly overrideOutlineRadius: 12\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'vimeo\'\\n readonly title: \'Vimeo\'\\n readonly hostnames: readonly [\'vimeo.com\', \'player.vimeo.com\']\\n readonly width: 640\\n readonly height: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'excalidraw\'\\n readonly title: \'Excalidraw\'\\n readonly hostnames: readonly [\'excalidraw.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'observable\'\\n readonly title: \'Observable\'\\n readonly hostnames: readonly [\'observablehq.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: false\\n readonly backgroundColor: \'#fff\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n]\\n```\\n\\n","EPSILON-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEPSILON: number\\n```\\n\\n","EVENT_NAME_MAP-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEVENT_NAME_MAP: Record<\\n Exclude,\\n keyof TLEventHandlers\\n>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [Exclude](/gen/Exclude-type), [TLEventName](/gen/editor/TLEventName-type), [TLPinchEventName](/gen/editor/TLPinchEventName-type), [TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n","EasingType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype EasingType = keyof typeof EASINGS\\n```\\n\\n##### References\\n\\n[EASINGS](/gen/primitives/EASINGS-var)\\n\\n","Editor-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [allShapesCommonBounds](#Editor-allShapesCommonBounds-member)\\n - [animationSpeed](#Editor-animationSpeed-member)\\n - [assets](#Editor-assets-member)\\n - [brush](#Editor-brush-member)\\n - [camera](#Editor-camera-member)\\n - [cameraState](#Editor-cameraState-member)\\n - [canMoveCamera](#Editor-canMoveCamera-member)\\n - [canRedo](#Editor-canRedo-member)\\n - [canUndo](#Editor-canUndo-member)\\n - [croppingId](#Editor-croppingId-member)\\n - [currentPage](#Editor-currentPage-member)\\n - [currentPageId](#Editor-currentPageId-member)\\n - [currentPageShapeIds](#Editor-currentPageShapeIds-member)\\n - [currentToolId](#Editor-currentToolId-member)\\n - [cursor](#Editor-cursor-member)\\n - [devicePixelRatio](#Editor-devicePixelRatio-member)\\n - [disposables](#Editor-disposables-member)\\n - [documentSettings](#Editor-documentSettings-member)\\n - [editingId](#Editor-editingId-member)\\n - [editingShape](#Editor-editingShape-member)\\n - [erasingIds](#Editor-erasingIds-member)\\n - [erasingIdsSet](#Editor-erasingIdsSet-member)\\n - [externalContentManager](#Editor-externalContentManager-member)\\n - [focusLayerId](#Editor-focusLayerId-member)\\n - [focusLayerShape](#Editor-focusLayerShape-member)\\n - [getContainer](#Editor-getContainer-member)\\n - [gridSize](#Editor-gridSize-member)\\n - [hintingIds](#Editor-hintingIds-member)\\n - [history](#Editor-history-member)\\n - [hoveredId](#Editor-hoveredId-member)\\n - [hoveredShape](#Editor-hoveredShape-member)\\n - [inputs](#Editor-inputs-member)\\n - [instanceState](#Editor-instanceState-member)\\n - [isChangingStyle](#Editor-isChangingStyle-member)\\n - [isChromeForIos](#Editor-isChromeForIos-member)\\n - [isCoarsePointer](#Editor-isCoarsePointer-member)\\n - [isDarkMode](#Editor-isDarkMode-member)\\n - [isFocused](#Editor-isFocused-member)\\n - [isFocusMode](#Editor-isFocusMode-member)\\n - [isGridMode](#Editor-isGridMode-member)\\n - [isIos](#Editor-isIos-member)\\n - [isMenuOpen](#Editor-isMenuOpen-member)\\n - [isPenMode](#Editor-isPenMode-member)\\n - [isReadOnly](#Editor-isReadOnly-member)\\n - [isSafari](#Editor-isSafari-member)\\n - [isSnapMode](#Editor-isSnapMode-member)\\n - [isToolLocked](#Editor-isToolLocked-member)\\n - [locale](#Editor-locale-member)\\n - [onlySelectedShape](#Editor-onlySelectedShape-member)\\n - [openMenus](#Editor-openMenus-member)\\n - [pages](#Editor-pages-member)\\n - [pageState](#Editor-pageState-member)\\n - [renderingBounds](#Editor-renderingBounds-member)\\n - [renderingBoundsExpanded](#Editor-renderingBoundsExpanded-member)\\n - [renderingShapes](#Editor-renderingShapes-member)\\n - [root](#Editor-root-member)\\n - [scribble](#Editor-scribble-member)\\n - [selectedIds](#Editor-selectedIds-member)\\n - [selectedIdsSet](#Editor-selectedIdsSet-member)\\n - [selectedPageBounds](#Editor-selectedPageBounds-member)\\n - [selectedShapes](#Editor-selectedShapes-member)\\n - [selectionBounds](#Editor-selectionBounds-member)\\n - [selectionPageCenter](#Editor-selectionPageCenter-member)\\n - [selectionRotation](#Editor-selectionRotation-member)\\n - [shapesArray](#Editor-shapesArray-member)\\n - [shapeUtils](#Editor-shapeUtils-member)\\n - [sharedOpacity](#Editor-sharedOpacity-member)\\n - [sharedStyles](#Editor-sharedStyles-member)\\n - [snaps](#Editor-snaps-member)\\n - [sortedShapesArray](#Editor-sortedShapesArray-member)\\n - [store](#Editor-store-member)\\n - [textMeasure](#Editor-textMeasure-member)\\n - [user](#Editor-user-member)\\n - [viewportPageBounds](#Editor-viewportPageBounds-member)\\n - [viewportPageCenter](#Editor-viewportPageCenter-member)\\n - [viewportScreenBounds](#Editor-viewportScreenBounds-member)\\n - [viewportScreenCenter](#Editor-viewportScreenCenter-member)\\n - [zoomBrush](#Editor-zoomBrush-member)\\n - [zoomLevel](#Editor-zoomLevel-member)\\n- [Methods](#methods)\\n - [addOpenMenu](#Editor-addOpenMenu-member-1)\\n - [alignShapes](#Editor-alignShapes-member-1)\\n - [animateCamera](#Editor-animateCamera-member-1)\\n - [animateShapes](#Editor-animateShapes-member-1)\\n - [animateToShape](#Editor-animateToShape-member-1)\\n - [animateToUser](#Editor-animateToUser-member-1)\\n - [bail](#Editor-bail-member-1)\\n - [bailToMark](#Editor-bailToMark-member-1)\\n - [batch](#Editor-batch-member-1)\\n - [blur](#Editor-blur-member-1)\\n - [bringForward](#Editor-bringForward-member-1)\\n - [bringToFront](#Editor-bringToFront-member-1)\\n - [cancel](#Editor-cancel-member-1)\\n - [cancelDoubleClick](#Editor-cancelDoubleClick-member-1)\\n - [centerOnPoint](#Editor-centerOnPoint-member-1)\\n - [complete](#Editor-complete-member-1)\\n - [createAssets](#Editor-createAssets-member-1)\\n - [createPage](#Editor-createPage-member-1)\\n - [createShapes](#Editor-createShapes-member-1)\\n - [deleteAssets](#Editor-deleteAssets-member-1)\\n - [deleteOpenMenu](#Editor-deleteOpenMenu-member-1)\\n - [deletePage](#Editor-deletePage-member-1)\\n - [deleteShapes](#Editor-deleteShapes-member-1)\\n - [deselect](#Editor-deselect-member-1)\\n - [dispatch](#Editor-dispatch-member-1)\\n - [dispose](#Editor-dispose-member-1)\\n - [distributeShapes](#Editor-distributeShapes-member-1)\\n - [duplicatePage](#Editor-duplicatePage-member-1)\\n - [duplicateShapes](#Editor-duplicateShapes-member-1)\\n - [findAncestor](#Editor-findAncestor-member-1)\\n - [findCommonAncestor](#Editor-findCommonAncestor-member-1)\\n - [flipShapes](#Editor-flipShapes-member-1)\\n - [focus](#Editor-focus-member-1)\\n - [getAncestorPageId](#Editor-getAncestorPageId-member-1)\\n - [getAncestors](#Editor-getAncestors-member-1)\\n - [getAncestorsById](#Editor-getAncestorsById-member-1)\\n - [getArrowsBoundTo](#Editor-getArrowsBoundTo-member-1)\\n - [getAssetById](#Editor-getAssetById-member-1)\\n - [getAssetBySrc](#Editor-getAssetBySrc-member-1)\\n - [getBounds](#Editor-getBounds-member-1)\\n - [getBoundsById](#Editor-getBoundsById-member-1)\\n - [getClipPathById](#Editor-getClipPathById-member-1)\\n - [getContent](#Editor-getContent-member-1)\\n - [getDeltaInParentSpace](#Editor-getDeltaInParentSpace-member-1)\\n - [getDeltaInShapeSpace](#Editor-getDeltaInShapeSpace-member-1)\\n - [getDroppingShape](#Editor-getDroppingShape-member-1)\\n - [getHandles](#Editor-getHandles-member-1)\\n - [getHandlesById](#Editor-getHandlesById-member-1)\\n - [getHighestIndexForParent](#Editor-getHighestIndexForParent-member-1)\\n - [getMaskedPageBounds](#Editor-getMaskedPageBounds-member-1)\\n - [getMaskedPageBoundsById](#Editor-getMaskedPageBoundsById-member-1)\\n - [getOutermostSelectableShape](#Editor-getOutermostSelectableShape-member-1)\\n - [getOutline](#Editor-getOutline-member-1)\\n - [getOutlineById](#Editor-getOutlineById-member-1)\\n - [getOutlineSegments](#Editor-getOutlineSegments-member-1)\\n - [getOutlineSegmentsById](#Editor-getOutlineSegmentsById-member-1)\\n - [getPageBounds](#Editor-getPageBounds-member-1)\\n - [getPageBoundsById](#Editor-getPageBoundsById-member-1)\\n - [getPageById](#Editor-getPageById-member-1)\\n - [getPageCenter](#Editor-getPageCenter-member-1)\\n - [getPageCenterById](#Editor-getPageCenterById-member-1)\\n - [getPageCorners](#Editor-getPageCorners-member-1)\\n - [getPageInfoById](#Editor-getPageInfoById-member-1)\\n - [getPageMaskById](#Editor-getPageMaskById-member-1)\\n - [getPagePointById](#Editor-getPagePointById-member-1)\\n - [getPageRotation](#Editor-getPageRotation-member-1)\\n - [getPageRotationById](#Editor-getPageRotationById-member-1)\\n - [getPageStateByPageId](#Editor-getPageStateByPageId-member-1)\\n - [getPageTransform](#Editor-getPageTransform-member-1)\\n - [getPageTransformById](#Editor-getPageTransformById-member-1)\\n - [getParentIdForNewShapeAtPoint](#Editor-getParentIdForNewShapeAtPoint-member-1)\\n - [getParentShape](#Editor-getParentShape-member-1)\\n - [getParentsMappedToChildren](#Editor-getParentsMappedToChildren-member-1)\\n - [getParentTransform](#Editor-getParentTransform-member-1)\\n - [getPointInParentSpace](#Editor-getPointInParentSpace-member-1)\\n - [getPointInShapeSpace](#Editor-getPointInShapeSpace-member-1)\\n - [getShapeAndDescendantIds](#Editor-getShapeAndDescendantIds-member-1)\\n - [getShapeById](#Editor-getShapeById-member-1)\\n - [getShapeIdsInPage](#Editor-getShapeIdsInPage-member-1)\\n - [getShapesAtPoint](#Editor-getShapesAtPoint-member-1)\\n - [getShapeStyleIfExists](#Editor-getShapeStyleIfExists-member-1)\\n - [getShapeUtil](#Editor-getShapeUtil-member-1)\\n - [getShapeUtil](#Editor-getShapeUtil-member-2)\\n - [getSortedChildIds](#Editor-getSortedChildIds-member-1)\\n - [getStateDescendant](#Editor-getStateDescendant-member-1)\\n - [getSvg](#Editor-getSvg-member-1)\\n - [getTransform](#Editor-getTransform-member-1)\\n - [groupShapes](#Editor-groupShapes-member-1)\\n - [hasAncestor](#Editor-hasAncestor-member-1)\\n - [interrupt](#Editor-interrupt-member-1)\\n - [isIn](#Editor-isIn-member-1)\\n - [isInAny](#Editor-isInAny-member-1)\\n - [isPointInShape](#Editor-isPointInShape-member-1)\\n - [isSelected](#Editor-isSelected-member-1)\\n - [isShapeInPage](#Editor-isShapeInPage-member-1)\\n - [isShapeOfType](#Editor-isShapeOfType-member-1)\\n - [isShapeOrAncestorLocked](#Editor-isShapeOrAncestorLocked-member-1)\\n - [isWithinSelection](#Editor-isWithinSelection-member-1)\\n - [mark](#Editor-mark-member-1)\\n - [moveShapesToPage](#Editor-moveShapesToPage-member-1)\\n - [nudgeShapes](#Editor-nudgeShapes-member-1)\\n - [packShapes](#Editor-packShapes-member-1)\\n - [pageToScreen](#Editor-pageToScreen-member-1)\\n - [pan](#Editor-pan-member-1)\\n - [panZoomIntoView](#Editor-panZoomIntoView-member-1)\\n - [popFocusLayer](#Editor-popFocusLayer-member-1)\\n - [putContent](#Editor-putContent-member-1)\\n - [putExternalContent](#Editor-putExternalContent-member-1)\\n - [redo](#Editor-redo-member-1)\\n - [renamePage](#Editor-renamePage-member-1)\\n - [reorderShapes](#Editor-reorderShapes-member-1)\\n - [reparentShapesById](#Editor-reparentShapesById-member-1)\\n - [replaceStoreContentsWithRecordsForOtherDocument](#Editor-replaceStoreContentsWithRecordsForOtherDocument-member-1)\\n - [resetZoom](#Editor-resetZoom-member-1)\\n - [resizeShape](#Editor-resizeShape-member-1)\\n - [rotateShapesBy](#Editor-rotateShapesBy-member-1)\\n - [screenToPage](#Editor-screenToPage-member-1)\\n - [select](#Editor-select-member-1)\\n - [selectAll](#Editor-selectAll-member-1)\\n - [selectNone](#Editor-selectNone-member-1)\\n - [sendBackward](#Editor-sendBackward-member-1)\\n - [sendToBack](#Editor-sendToBack-member-1)\\n - [setAnimationSpeed](#Editor-setAnimationSpeed-member-1)\\n - [setBrush](#Editor-setBrush-member-1)\\n - [setCamera](#Editor-setCamera-member-1)\\n - [setCroppingId](#Editor-setCroppingId-member-1)\\n - [setCurrentPageId](#Editor-setCurrentPageId-member-1)\\n - [setCursor](#Editor-setCursor-member-1)\\n - [setDarkMode](#Editor-setDarkMode-member-1)\\n - [setDevicePixelRatio](#Editor-setDevicePixelRatio-member-1)\\n - [setEditingId](#Editor-setEditingId-member-1)\\n - [setErasingIds](#Editor-setErasingIds-member-1)\\n - [setFocusLayer](#Editor-setFocusLayer-member-1)\\n - [setFocusMode](#Editor-setFocusMode-member-1)\\n - [setGridMode](#Editor-setGridMode-member-1)\\n - [setHintingIds](#Editor-setHintingIds-member-1)\\n - [setHoveredId](#Editor-setHoveredId-member-1)\\n - [setLocale](#Editor-setLocale-member-1)\\n - [setOpacity](#Editor-setOpacity-member-1)\\n - [setPageState](#Editor-setPageState-member-1)\\n - [setPenMode](#Editor-setPenMode-member-1)\\n - [setReadOnly](#Editor-setReadOnly-member-1)\\n - [setScribble](#Editor-setScribble-member-1)\\n - [setSelectedIds](#Editor-setSelectedIds-member-1)\\n - [setSelectedTool](#Editor-setSelectedTool-member-1)\\n - [setSnapMode](#Editor-setSnapMode-member-1)\\n - [setStyle](#Editor-setStyle-member-1)\\n - [setToolLocked](#Editor-setToolLocked-member-1)\\n - [setZoomBrush](#Editor-setZoomBrush-member-1)\\n - [slideCamera](#Editor-slideCamera-member-1)\\n - [stackShapes](#Editor-stackShapes-member-1)\\n - [startFollowingUser](#Editor-startFollowingUser-member-1)\\n - [stopCameraAnimation](#Editor-stopCameraAnimation-member-1)\\n - [stopFollowingUser](#Editor-stopFollowingUser-member-1)\\n - [stretchShapes](#Editor-stretchShapes-member-1)\\n - [toggleLock](#Editor-toggleLock-member-1)\\n - [undo](#Editor-undo-member-1)\\n - [ungroupShapes](#Editor-ungroupShapes-member-1)\\n - [updateAssets](#Editor-updateAssets-member-1)\\n - [updateDocumentSettings](#Editor-updateDocumentSettings-member-1)\\n - [updateInstanceState](#Editor-updateInstanceState-member-1)\\n - [updatePage](#Editor-updatePage-member-1)\\n - [updateShapes](#Editor-updateShapes-member-1)\\n - [updateViewportScreenBounds](#Editor-updateViewportScreenBounds-member-1)\\n - [visitDescendants](#Editor-visitDescendants-member-1)\\n - [zoomIn](#Editor-zoomIn-member-1)\\n - [zoomOut](#Editor-zoomOut-member-1)\\n - [zoomToBounds](#Editor-zoomToBounds-member-1)\\n - [zoomToContent](#Editor-zoomToContent-member-1)\\n - [zoomToFit](#Editor-zoomToFit-member-1)\\n - [zoomToSelection](#Editor-zoomToSelection-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Editor extends EventEmitter {}\\n```\\n\\n##### References\\n\\n[EventEmitter](/gen/eventemitter3-EventEmitter-EventEmitter), [TLEventMap](/gen/editor/TLEventMap-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Editor` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ store, user, shapes, tools, getContainer }`\\n\\n\\n\\n\\n```ts\\nTLEditorOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[TLEditorOptions](/gen/editor/TLEditorOptions-interface)\\n\\n---\\n\\n## Properties\\n\\n### `allShapesCommonBounds` \\\\{#Editor-allShapesCommonBounds-member}\\n\\nPublic Readonly Property\\n\\nThe common bounds of all of the shapes on the page.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget allShapesCommonBounds(): Box2d | null\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `animationSpeed` \\\\{#Editor-animationSpeed-member}\\n\\nPublic Readonly Property\\n\\nThe user\'s chosen animation speed.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget animationSpeed(): number\\n```\\n\\n---\\n\\n### `assets` \\\\{#Editor-assets-member}\\n\\nPublic Readonly Property\\n\\nGet all assets in the editor.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget assets(): (\\n | import(\'@tldraw/tlschema\').TLBookmarkAsset\\n | TLImageAsset\\n | TLVideoAsset\\n)[]\\n```\\n\\n##### References\\n\\n[TLBookmarkAsset](/gen/tlschema/TLBookmarkAsset-type), [TLImageAsset](/gen/tlschema/TLImageAsset-type), [TLVideoAsset](/gen/tlschema/TLVideoAsset-type)\\n\\n---\\n\\n### `brush` \\\\{#Editor-brush-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s brush state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget brush(): Box2dModel | null\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `camera` \\\\{#Editor-camera-member}\\n\\nPublic Readonly Property\\n\\nThe current camera.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget camera(): import(\'@tldraw/tlschema\').TLCamera\\n```\\n\\n##### References\\n\\n[TLCamera](/gen/tlschema/TLCamera-interface)\\n\\n---\\n\\n### `cameraState` \\\\{#Editor-cameraState-member}\\n\\nPublic Readonly Property\\n\\nWhether the camera is moving or idle.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget cameraState(): \'idle\' | \'moving\'\\n```\\n\\n---\\n\\n### `canMoveCamera` \\\\{#Editor-canMoveCamera-member}\\n\\nPublic Property\\n\\nWhether the editor\'s camera can move.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.canMoveCamera = false\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`canMove`\\n\\n\\n\\n\\nWhether the camera can move.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget canMoveCamera(): boolean\\n\\nset canMoveCamera(canMove: boolean)\\n```\\n\\n---\\n\\n### `canRedo` \\\\{#Editor-canRedo-member}\\n\\nPublic Readonly Property\\n\\nWhether the app can redo.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget canRedo(): boolean\\n```\\n\\n---\\n\\n### `canUndo` \\\\{#Editor-canUndo-member}\\n\\nPublic Readonly Property\\n\\nWhether the app can undo.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget canUndo(): boolean\\n```\\n\\n---\\n\\n### `croppingId` \\\\{#Editor-croppingId-member}\\n\\nPublic Readonly Property\\n\\nThe current cropping shape\'s id.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget croppingId(): null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `currentPage` \\\\{#Editor-currentPage-member}\\n\\nPublic Readonly Property\\n\\nThe current page.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentPage(): TLPage\\n```\\n\\n##### References\\n\\n[TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `currentPageId` \\\\{#Editor-currentPageId-member}\\n\\nPublic Readonly Property\\n\\nThe current page id.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentPageId(): TLPageId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `currentPageShapeIds` \\\\{#Editor-currentPageShapeIds-member}\\n\\nPublic Readonly Property\\n\\nAn array of all of the shapes on the current page.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentPageShapeIds(): Set\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `currentToolId` \\\\{#Editor-currentToolId-member}\\n\\nPublic Readonly Property\\n\\nThe id of the current selected tool.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentToolId(): string\\n```\\n\\n---\\n\\n### `cursor` \\\\{#Editor-cursor-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s cursor state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget cursor(): TLCursor\\n```\\n\\n##### References\\n\\n[TLCursor](/gen/tlschema/TLCursor-interface)\\n\\n---\\n\\n### `devicePixelRatio` \\\\{#Editor-devicePixelRatio-member}\\n\\nPublic Readonly Property\\n\\nThe window\'s device pixel ratio.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget devicePixelRatio(): number\\n```\\n\\n---\\n\\n### `disposables` \\\\{#Editor-disposables-member}\\n\\nPublic Readonly Property\\n\\nA set of functions to call when the app is disposed.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly disposables: Set<() => void>\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface)\\n\\n---\\n\\n### `documentSettings` \\\\{#Editor-documentSettings-member}\\n\\nPublic Readonly Property\\n\\nThe global document settings that apply to all users.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget documentSettings(): TLDocument\\n```\\n\\n##### References\\n\\n[TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n---\\n\\n### `editingId` \\\\{#Editor-editingId-member}\\n\\nPublic Readonly Property\\n\\nThe current editing shape\'s id.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget editingId(): null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `editingShape` \\\\{#Editor-editingShape-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget editingShape(): null | TLUnknownShape\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `erasingIds` \\\\{#Editor-erasingIds-member}\\n\\nPublic Readonly Property\\n\\nThe editor\'s current erasing ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget erasingIds(): TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `erasingIdsSet` \\\\{#Editor-erasingIdsSet-member}\\n\\nPublic Readonly Property\\n\\nA derived set containing the current erasing ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget erasingIdsSet(): Set\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `externalContentManager` \\\\{#Editor-externalContentManager-member}\\n\\nPublic Property\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nexternalContentManager: ExternalContentManager\\n```\\n\\n##### References\\n\\n[ExternalContentManager](/gen/editor/PlopManager-class)\\n\\n---\\n\\n### `focusLayerId` \\\\{#Editor-focusLayerId-member}\\n\\nPublic Readonly Property\\n\\nThe shape id of the current focus layer.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget focusLayerId(): TLPageId | TLShapeId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `focusLayerShape` \\\\{#Editor-focusLayerShape-member}\\n\\nPublic Readonly Property\\n\\nThe shape of the current focus layer.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget focusLayerShape(): TLShape | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getContainer` \\\\{#Editor-getContainer-member}\\n\\nPublic Property\\n\\nThe current HTML element containing the editor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst container = editor.getContainer()\\n```\\n\\n\\n##### Signature\\n\\n\\n```ts\\ngetContainer: () => HTMLElement\\n```\\n\\n##### References\\n\\n[HTMLElement](/gen/HTMLElement-interface)\\n\\n---\\n\\n### `gridSize` \\\\{#Editor-gridSize-member}\\n\\nPublic Readonly Property\\n\\nThe document\'s grid size.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget gridSize(): number\\n```\\n\\n---\\n\\n### `hintingIds` \\\\{#Editor-hintingIds-member}\\n\\nPublic Readonly Property\\n\\nThe editor\'s current hinting ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget hintingIds(): TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `history` \\\\{#Editor-history-member}\\n\\nPublic Readonly Property\\n\\nA manager for the app\'s history.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly history: HistoryManager\\n```\\n\\n##### References\\n\\n[HistoryManager](/gen/editor/~HistoryManager-class)\\n\\n---\\n\\n### `hoveredId` \\\\{#Editor-hoveredId-member}\\n\\nPublic Readonly Property\\n\\nThe current hovered shape id.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget hoveredId(): null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `hoveredShape` \\\\{#Editor-hoveredShape-member}\\n\\nPublic Readonly Property\\n\\nThe current hovered shape.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget hoveredShape(): null | TLUnknownShape\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `inputs` \\\\{#Editor-inputs-member}\\n\\nPublic Property\\n\\nThe app\'s current input state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninputs: {\\n originPagePoint: Vec2d\\n originScreenPoint: Vec2d\\n previousPagePoint: Vec2d\\n previousScreenPoint: Vec2d\\n currentPagePoint: Vec2d\\n currentScreenPoint: Vec2d\\n keys: Set\\n buttons: Set\\n isPen: boolean\\n shiftKey: boolean\\n ctrlKey: boolean\\n altKey: boolean\\n isDragging: boolean\\n isPointing: boolean\\n isPinching: boolean\\n isEditing: boolean\\n isPanning: boolean\\n pointerVelocity: Vec2d\\n}\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [Set](/gen/Set-interface)\\n\\n---\\n\\n### `instanceState` \\\\{#Editor-instanceState-member}\\n\\nPublic Readonly Property\\n\\nThe current instance\'s state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget instanceState(): TLInstance\\n```\\n\\n##### References\\n\\n[TLInstance](/gen/tlschema/TLInstance-interface)\\n\\n---\\n\\n### `isChangingStyle` \\\\{#Editor-isChangingStyle-member}\\n\\nPublic Property\\n\\nWhether the user is currently changing the style of a shape. This may cause the UI to change.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isChangingStyle = true\\n```\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isChangingStyle(): boolean\\n\\nset isChangingStyle(v: boolean)\\n```\\n\\n---\\n\\n### `isChromeForIos` \\\\{#Editor-isChromeForIos-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is running on iOS.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly isChromeForIos: boolean\\n```\\n\\n---\\n\\n### `isCoarsePointer` \\\\{#Editor-isCoarsePointer-member}\\n\\nPublic Property\\n\\nWhether the user is using a \\"coarse\\" pointer, such as on a touch screen. This is automatically set by the canvas.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isCoarsePointer(): boolean\\n\\nset isCoarsePointer(v: boolean)\\n```\\n\\n---\\n\\n### `isDarkMode` \\\\{#Editor-isDarkMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the user has dark mode enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isDarkMode(): boolean\\n```\\n\\n---\\n\\n### `isFocused` \\\\{#Editor-isFocused-member}\\n\\nPublic Readonly Property\\n\\nWhether or not the editor is focused.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isFocused(): boolean\\n```\\n\\n---\\n\\n### `isFocusMode` \\\\{#Editor-isFocusMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the instance is in focus mode or not.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isFocusMode(): boolean\\n```\\n\\n---\\n\\n### `isGridMode` \\\\{#Editor-isGridMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the instance\'s grid is enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isGridMode(): boolean\\n```\\n\\n---\\n\\n### `isIos` \\\\{#Editor-isIos-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is running on iOS.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly isIos: boolean\\n```\\n\\n---\\n\\n### `isMenuOpen` \\\\{#Editor-isMenuOpen-member}\\n\\nPublic Readonly Property\\n\\nGet whether any menus are open.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isMenuOpen(): boolean\\n```\\n\\n---\\n\\n### `isPenMode` \\\\{#Editor-isPenMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is in pen mode or not.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isPenMode(): boolean\\n```\\n\\n---\\n\\n### `isReadOnly` \\\\{#Editor-isReadOnly-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is in read-only mode or not.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isReadOnly(): boolean\\n```\\n\\n---\\n\\n### `isSafari` \\\\{#Editor-isSafari-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is running in Safari.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly isSafari: boolean\\n```\\n\\n---\\n\\n### `isSnapMode` \\\\{#Editor-isSnapMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the user has \\"always snap\\" mode enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isSnapMode(): boolean\\n```\\n\\n---\\n\\n### `isToolLocked` \\\\{#Editor-isToolLocked-member}\\n\\nPublic Readonly Property\\n\\nWhether the instance has \\"tool lock\\" mode enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isToolLocked(): boolean\\n```\\n\\n---\\n\\n### `locale` \\\\{#Editor-locale-member}\\n\\nPublic Readonly Property\\n\\nGet the user\'s locale.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget locale(): string\\n```\\n\\n---\\n\\n### `onlySelectedShape` \\\\{#Editor-onlySelectedShape-member}\\n\\nPublic Readonly Property\\n\\nThe app\'s only selected shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.onlySelectedShape\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget onlySelectedShape(): null | TLShape\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `openMenus` \\\\{#Editor-openMenus-member}\\n\\nPublic Readonly Property\\n\\nA set of strings representing any open menus. When menus are open, certain interactions will behave differently; for example, when a draw tool is selected and a menu is open, a pointer-down will not create a dot (because the user is probably trying to close the menu) however a pointer-down event followed by a drag will begin drawing a line (because the user is BOTH trying to close the menu AND start drawing a line).\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget openMenus(): string[]\\n```\\n\\n---\\n\\n### `pages` \\\\{#Editor-pages-member}\\n\\nPublic Readonly Property\\n\\nInfo about the project\'s current pages.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget pages(): TLPage[]\\n```\\n\\n##### References\\n\\n[TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `pageState` \\\\{#Editor-pageState-member}\\n\\nPublic Readonly Property\\n\\nThe current page state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget pageState(): TLInstancePageState\\n```\\n\\n##### References\\n\\n[TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n---\\n\\n### `renderingBounds` \\\\{#Editor-renderingBounds-member}\\n\\nPublic Readonly Property\\n\\nThe current rendering bounds in page space, used for checking which shapes are \\"on screen\\".\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget renderingBounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `renderingBoundsExpanded` \\\\{#Editor-renderingBoundsExpanded-member}\\n\\nPublic Readonly Property\\n\\nThe current rendering bounds in page space, expanded slightly. Used for determining which shapes to render and which to \\"cull\\".\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget renderingBoundsExpanded(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `renderingShapes` \\\\{#Editor-renderingShapes-member}\\n\\nPublic Readonly Property\\n\\nGet the shapes that should be displayed in the current viewport.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget renderingShapes(): {\\n id: TLShapeId\\n index: number\\n backgroundIndex: number\\n opacity: number\\n isCulled: boolean\\n isInViewport: boolean\\n maskedPageBounds: Box2d | undefined\\n}[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `root` \\\\{#Editor-root-member}\\n\\nPublic Readonly Property\\n\\nThe root state of the statechart.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly root: RootState\\n```\\n\\n##### References\\n\\n[RootState](/gen/editor/~RootState-class)\\n\\n---\\n\\n### `scribble` \\\\{#Editor-scribble-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s scribble state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget scribble(): null | TLScribble\\n```\\n\\n##### References\\n\\n[TLScribble](/gen/tlschema/TLScribble-type)\\n\\n---\\n\\n### `selectedIds` \\\\{#Editor-selectedIds-member}\\n\\nPublic Readonly Property\\n\\nThe current selected ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedIds(): TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `selectedIdsSet` \\\\{#Editor-selectedIdsSet-member}\\n\\nPublic Readonly Property\\n\\nThe current selected ids as a set\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedIdsSet(): ReadonlySet\\n```\\n\\n##### References\\n\\n[ReadonlySet](/gen/ReadonlySet-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `selectedPageBounds` \\\\{#Editor-selectedPageBounds-member}\\n\\nPublic Readonly Property\\n\\nThe current page bounds of all the selected shapes (Not the same thing as the page bounds of the selection bounding box when the selection has been rotated)\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedPageBounds(): Box2d | null\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `selectedShapes` \\\\{#Editor-selectedShapes-member}\\n\\nPublic Readonly Property\\n\\nAn array containing all of the currently selected shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.selectedShapes\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedShapes(): TLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `selectionBounds` \\\\{#Editor-selectionBounds-member}\\n\\nPublic Readonly Property\\n\\nThe bounds of the selection bounding box.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectionBounds(): Box2d | undefined\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `selectionPageCenter` \\\\{#Editor-selectionPageCenter-member}\\n\\nPublic Readonly Property\\n\\nThe center of the selection bounding box.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectionPageCenter(): null | Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `selectionRotation` \\\\{#Editor-selectionRotation-member}\\n\\nPublic Readonly Property\\n\\nThe rotation of the selection bounding box.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectionRotation(): number\\n```\\n\\n---\\n\\n### `shapesArray` \\\\{#Editor-shapesArray-member}\\n\\nPublic Readonly Property\\n\\nAn array containing all of the shapes in the current page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.shapesArray\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget shapesArray(): TLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `shapeUtils` \\\\{#Editor-shapeUtils-member}\\n\\nPublic Property\\n\\nA map of shape utility classes (TLShapeUtils) by shape type.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nshapeUtils: {\\n readonly [K in string]?: ShapeUtil\\n}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `sharedOpacity` \\\\{#Editor-sharedOpacity-member}\\n\\nPublic Readonly Property\\n\\nGet the currently selected shared opacity. If any shapes are selected, this returns the shared opacity of the selected shapes. Otherwise, this returns the chosen opacity for the next shape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget sharedOpacity(): SharedStyle\\n```\\n\\n##### References\\n\\n[SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `sharedStyles` \\\\{#Editor-sharedStyles-member}\\n\\nPublic Readonly Property\\n\\nA derived object containing either all current styles among the user\'s selected shapes, or else the user\'s most recent style choices that correspond to the current active state (i.e. the selected tool).\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget sharedStyles(): ReadonlySharedStyleMap\\n```\\n\\n##### References\\n\\n[ReadonlySharedStyleMap](/gen/editor/ReadonlySharedStyleMap-class)\\n\\n---\\n\\n### `snaps` \\\\{#Editor-snaps-member}\\n\\nPublic Readonly Property\\n\\nA manager for the app\'s snapping feature.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly snaps: SnapManager\\n```\\n\\n##### References\\n\\n[SnapManager](/gen/editor/~SnapManager-class)\\n\\n---\\n\\n### `sortedShapesArray` \\\\{#Editor-sortedShapesArray-member}\\n\\nPublic Readonly Property\\n\\nAn array containing all of the shapes in the current page, sorted in z-index order (accounting for nested shapes): e.g. A, B, BA, BB, C.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.sortedShapesArray\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget sortedShapesArray(): TLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `store` \\\\{#Editor-store-member}\\n\\nPublic Readonly Property\\n\\nThe editor\'s store\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly store: TLStore\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type)\\n\\n---\\n\\n### `textMeasure` \\\\{#Editor-textMeasure-member}\\n\\nPublic Readonly Property\\n\\nA helper for measuring text.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly textMeasure: TextManager\\n```\\n\\n##### References\\n\\n[TextManager](/gen/editor/~TextManager-class)\\n\\n---\\n\\n### `user` \\\\{#Editor-user-member}\\n\\nPublic Readonly Property\\n\\nA manager for the user and their preferences.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly user: UserPreferencesManager\\n```\\n\\n##### References\\n\\n[UserPreferencesManager](/gen/editor/~UserPreferencesManager-class)\\n\\n---\\n\\n### `viewportPageBounds` \\\\{#Editor-viewportPageBounds-member}\\n\\nPublic Readonly Property\\n\\nThe current viewport in page space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportPageBounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `viewportPageCenter` \\\\{#Editor-viewportPageCenter-member}\\n\\nPublic Readonly Property\\n\\nThe center of the viewport in page space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportPageCenter(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `viewportScreenBounds` \\\\{#Editor-viewportScreenBounds-member}\\n\\nPublic Readonly Property\\n\\nThe bounds of the editor\'s viewport in screen space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportScreenBounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `viewportScreenCenter` \\\\{#Editor-viewportScreenCenter-member}\\n\\nPublic Readonly Property\\n\\nThe center of the editor\'s viewport in screen space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportScreenCenter(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `zoomBrush` \\\\{#Editor-zoomBrush-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s zoom brush state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget zoomBrush(): Box2dModel | null\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `zoomLevel` \\\\{#Editor-zoomLevel-member}\\n\\nPublic Readonly Property\\n\\nThe current camera zoom level.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget zoomLevel(): number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `addOpenMenu()` \\\\{#Editor-addOpenMenu-member-1}\\n\\nPublic Method\\n\\nAdd an open menu.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.addOpenMenu(\'menu-id\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `alignShapes()` \\\\{#Editor-alignShapes-member-1}\\n\\nPublic Method\\n\\nAlign shape positions.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.alignShapes(\'left\')\\neditor.alignShapes(\'left\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n | \'bottom\'\\n | \'center-horizontal\'\\n | \'center-vertical\'\\n | \'left\'\\n | \'right\'\\n | \'top\'\\n```\\n\\nThe align operation to apply.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to align. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `animateCamera()` \\\\{#Editor-animateCamera-member-1}\\n\\nPublic Method\\n\\nAnimate the camera.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.animateCamera(0, 0)\\neditor.animateCamera(0, 0, 1)\\neditor.animateCamera(0, 0, 1, { duration: 1000, easing: (t) => t * t })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s x position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s y position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s z position. Defaults to the current zoom.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nOptions for the animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `animateShapes()` \\\\{#Editor-animateShapes-member-1}\\n\\nPublic Method\\n\\nAnimate shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.animateShapes([{ id: \'box1\', type: \'box\', x: 100, y: 100 }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partials`\\n\\n\\n\\n\\n```ts\\n(null | TLShapePartial | undefined)[]\\n```\\n\\nThe shape partials to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n duration?: number\\n ease?: (t: number) => number\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `animateToShape()` \\\\{#Editor-animateToShape-member-1}\\n\\nPublic Method\\n\\nAnimate the camera to a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapeId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `animateToUser()` \\\\{#Editor-animateToUser-member-1}\\n\\nPublic Method\\n\\nAnimate the camera to a user\'s cursor position. This also briefly show the user\'s cursor if it\'s not currently visible.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`userId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id of the user to aniamte to.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `bail()` \\\\{#Editor-bail-member-1}\\n\\nPublic Method\\n\\nClear all marks in the undo stack back to the next mark.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bail()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `bailToMark()` \\\\{#Editor-bailToMark-member-1}\\n\\nPublic Method\\n\\nClear all marks in the undo stack back to the mark with the provided mark id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bailToMark(\'creating\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `batch()` \\\\{#Editor-batch-member-1}\\n\\nPublic Method\\n\\nRun a function in a batch, which will be undone/redone as a single action.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.batch(() => {\\n editor.selectAll()\\n editor.deleteShapes()\\n editor.createShapes(myShapes)\\n editor.selectNone()\\n})\\n\\neditor.undo() // will undo all of the above\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`fn`\\n\\n\\n\\n\\n```ts\\n() => void\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `blur()` \\\\{#Editor-blur-member-1}\\n\\nPublic Method\\n\\nBlur the app, cancelling any interaction state.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.blur()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `bringForward()` \\\\{#Editor-bringForward-member-1}\\n\\nPublic Method\\n\\nBring shapes forward in the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bringForward()\\neditor.bringForward([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `bringToFront()` \\\\{#Editor-bringToFront-member-1}\\n\\nPublic Method\\n\\nBring shapes to the front of the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bringToFront()\\neditor.bringToFront([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `cancel()` \\\\{#Editor-cancel-member-1}\\n\\nPublic Method\\n\\nDispatch a cancel event.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.cancel()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `cancelDoubleClick()` \\\\{#Editor-cancelDoubleClick-member-1}\\n\\nPublic Method\\n\\nPrevent a double click event from firing the next time the user clicks\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `centerOnPoint()` \\\\{#Editor-centerOnPoint-member-1}\\n\\nPublic Method\\n\\nCenter the camera on a point (in page space).\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.centerOnPoint(100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe x position of the point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe y position of the point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `complete()` \\\\{#Editor-complete-member-1}\\n\\nPublic Method\\n\\nDispatch a complete event.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.complete()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `createAssets()` \\\\{#Editor-createAssets-member-1}\\n\\nPublic Method\\n\\nCreate one or more assets.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.createAssets([...myAssets])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`assets`\\n\\n\\n\\n\\n```ts\\nTLAsset[]\\n```\\n\\nThe assets to create.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `createPage()` \\\\{#Editor-createPage-member-1}\\n\\nPublic Method\\n\\nCreate a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.createPage(\'New Page\')\\neditor.createPage(\'New Page\', \'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`title`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe new page\'s title.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe new page\'s id.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`belowPageIndex`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `createShapes()` \\\\{#Editor-createShapes-member-1}\\n\\nPublic Method\\n\\nCreate shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.createShapes([{ id: \'box1\', type: \'text\', props: { text: \'ok\' } }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partials`\\n\\n\\n\\n\\n```ts\\nTLShapePartial[]\\n```\\n\\nThe shape partials to create.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`select`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether to select the created shapes. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `deleteAssets()` \\\\{#Editor-deleteAssets-member-1}\\n\\nPublic Method\\n\\nDelete one or more assets.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deleteAssets([\'asset1\', \'asset2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLAssetId[]\\n```\\n\\nThe assets to delete.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n---\\n\\n### `deleteOpenMenu()` \\\\{#Editor-deleteOpenMenu-member-1}\\n\\nPublic Method\\n\\nDelete an open menu.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deleteOpenMenu(\'menu-id\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `deletePage()` \\\\{#Editor-deletePage-member-1}\\n\\nPublic Method\\n\\nDelete a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deletePage(\'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to delete.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `deleteShapes()` \\\\{#Editor-deleteShapes-member-1}\\n\\nPublic Method\\n\\nDelete shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deleteShapes()\\neditor.deleteShapes([\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to delete. Defaults to the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `deselect()` \\\\{#Editor-deselect-member-1}\\n\\nPublic Method\\n\\nRemove a shape from the existing set of selected shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deselect(shape.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `dispatch()` \\\\{#Editor-dispatch-member-1}\\n\\nPublic Method\\n\\nDispatch an event to the editor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.dispatch(myPointerEvent)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nTLEventInfo\\n```\\n\\nThe event info.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLEventInfo](/gen/editor/TLEventInfo-type)\\n\\n---\\n\\n### `dispose()` \\\\{#Editor-dispose-member-1}\\n\\nPublic Method\\n\\nDispose the editor.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `distributeShapes()` \\\\{#Editor-distributeShapes-member-1}\\n\\nPublic Method\\n\\nDistribute shape positions.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.distributeShapes(\'left\')\\neditor.distributeShapes(\'left\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to distribute shapes horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to distribute. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `duplicatePage()` \\\\{#Editor-duplicatePage-member-1}\\n\\nPublic Method\\n\\nDuplicate a page.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to duplicate. Defaults to the current page.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`createId`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the new page. Defaults to a new id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `duplicateShapes()` \\\\{#Editor-duplicateShapes-member-1}\\n\\nPublic Method\\n\\nDuplicate shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.duplicateShapes()\\neditor.duplicateShapes([\'id1\', \'id2\'])\\neditor.duplicateShapes([\'id1\', \'id2\'], { x: 8, y: 8 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to duplicate. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`offset`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe offset (in pixels) to apply to the duplicated shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `findAncestor()` \\\\{#Editor-findAncestor-member-1}\\n\\nPublic Method\\n\\nFind the first ancestor matching the given predicate\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst ancestor = editor.findAncestor(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to check the ancestors for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`predicate`\\n\\n\\n\\n\\n```ts\\n(parent: TLShape) => boolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `findCommonAncestor()` \\\\{#Editor-findCommonAncestor-member-1}\\n\\nPublic Method\\n\\nGet the common ancestor of two or more shapes that matches a predicate.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`predicate`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n(shape: TLShape) => boolean\\n```\\n\\nThe predicate to match.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeId | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `flipShapes()` \\\\{#Editor-flipShapes-member-1}\\n\\nPublic Method\\n\\nFlip shape positions.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.flipShapes(\'horizontal\')\\neditor.flipShapes(\'horizontal\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to flip horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to flip. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `focus()` \\\\{#Editor-focus-member-1}\\n\\nPublic Method\\n\\nFocus the editor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.focus()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `getAncestorPageId()` \\\\{#Editor-getAncestorPageId-member-1}\\n\\nPublic Method\\n\\nGet the id of the containing page for a given shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page id for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPageId | undefined\\n```\\n\\n The id of the page that contains the shape, or undefined if the shape is undefined.\\n\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `getAncestors()` \\\\{#Editor-getAncestors-member-1}\\n\\nPublic Method\\n\\nGet the ancestors of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst ancestors = editor.getAncestors(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the ancestors for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`acc`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getAncestorsById()` \\\\{#Editor-getAncestorsById-member-1}\\n\\nPublic Method\\n\\nGet the ancestors of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst ancestors = editor.getAncestorsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the ancestors for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`acc`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getArrowsBoundTo()` \\\\{#Editor-getArrowsBoundTo-member-1}\\n\\nPublic Method\\n\\nGet all arrows bound to a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapeId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n arrowId: TLShapeId\\n handleId: \'end\' | \'start\'\\n}[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getAssetById()` \\\\{#Editor-getAssetById-member-1}\\n\\nPublic Method\\n\\nGet an asset by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getAssetById(\'asset1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLAssetId\\n```\\n\\nThe id of the asset.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLAsset | undefined\\n```\\n\\n##### References\\n\\n[TLAssetId](/gen/tlschema/TLAssetId-type), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `getAssetBySrc()` \\\\{#Editor-getAssetBySrc-member-1}\\n\\nPublic Method\\n\\nGet an asset by its src property.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getAssetBySource(\'https://example.com/image.png\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`src`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe source value of the asset.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n | import(\'@tldraw/tlschema\').TLBookmarkAsset\\n | TLImageAsset\\n | TLVideoAsset\\n | undefined\\n```\\n\\n##### References\\n\\n[TLBookmarkAsset](/gen/tlschema/TLBookmarkAsset-type), [TLImageAsset](/gen/tlschema/TLImageAsset-type), [TLVideoAsset](/gen/tlschema/TLVideoAsset-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#Editor-getBounds-member-1}\\n\\nPublic Method\\n\\nGet the local bounds of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getBounds(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getBoundsById()` \\\\{#Editor-getBoundsById-member-1}\\n\\nPublic Method\\n\\nGet the local bounds of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getBoundsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nT[\'id\']\\n```\\n\\nThe id of the shape to get the bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getClipPathById()` \\\\{#Editor-getClipPathById-member-1}\\n\\nPublic Method\\n\\nGet the clip path for a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst clipPath = editor.getClipPathById(shape.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring | undefined\\n```\\n\\n The clip path or undefined.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getContent()` \\\\{#Editor-getContent-member-1}\\n\\nPublic Method\\n\\nGet content that can be exported for the given shape ids.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to get content for. Defaults to the selected shape ids.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLContent | undefined\\n```\\n\\n The exported content.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLContent](/gen/editor/TLContent-interface)\\n\\n---\\n\\n### `getDeltaInParentSpace()` \\\\{#Editor-getDeltaInParentSpace-member-1}\\n\\nPublic Method\\n\\nConvert a delta in page space to a delta in the parent space of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getDeltaInParentSpace(myShape, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the delta in the parent space of.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page delta to convert.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDeltaInShapeSpace()` \\\\{#Editor-getDeltaInShapeSpace-member-1}\\n\\nPublic Method\\n\\nConvert a delta in page space to a delta in the local space of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getDeltaInShapeSpace(myShape, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the delta in the local space of.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page delta to convert.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDroppingShape()` \\\\{#Editor-getDroppingShape-member-1}\\n\\nPublic Method\\n\\nGet the shape that some shapes should be dropped on at a given point.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to find the parent for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`droppingShapes`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes that are being dropped.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLUnknownShape | undefined\\n```\\n\\n The shape to drop on.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type), [TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `getHandles()` \\\\{#Editor-getHandles-member-1}\\n\\nPublic Method\\n\\nGet the handles (if any) for a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[] | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getHandlesById()` \\\\{#Editor-getHandlesById-member-1}\\n\\nPublic Method\\n\\nGet the handles (if any) for a shape by its id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nT[\'id\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[] | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getHighestIndexForParent()` \\\\{#Editor-getHighestIndexForParent-member-1}\\n\\nPublic Method\\n\\nGet the index above the highest child of a given parent.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLPageId | TLShapeId\\n```\\n\\nThe id of the parent.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n The index.\\n\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getMaskedPageBounds()` \\\\{#Editor-getMaskedPageBounds-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape, incorporating any masks. For example, if the shape were the child of a frame and was half way out of the frame, the bounds would be the half of the shape that was in the frame.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getMaskedPageBounds(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the masked bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getMaskedPageBoundsById()` \\\\{#Editor-getMaskedPageBoundsById-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape by its id, incorporating any masks. For example, if the shape were the child of a frame and was half way out of the frame, the bounds would be the half of the shape that was in the frame.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getMaskedPageBoundsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the masked page bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getOutermostSelectableShape()` \\\\{#Editor-getOutermostSelectableShape-member-1}\\n\\nPublic Method\\n\\nGet the shape that should be selected when you click on a given shape, assuming there is nothing already selected. It will not return anything higher than or including the current focus layer.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the outermost selectable shape for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`filter`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n(shape: TLShape) => boolean\\n```\\n\\nA function to filter the selectable shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape\\n```\\n\\n The outermost selectable shape.\\n\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#Editor-getOutline-member-1}\\n\\nPublic Method\\n\\nGet the local outline of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutline(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the outline for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineById()` \\\\{#Editor-getOutlineById-member-1}\\n\\nPublic Method\\n\\nGet the local outline of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutlineById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id to get the outline for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegments()` \\\\{#Editor-getOutlineSegments-member-1}\\n\\nPublic Method\\n\\nGet the local outline segments of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutlineSegments(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the outline segments for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegmentsById()` \\\\{#Editor-getOutlineSegmentsById-member-1}\\n\\nPublic Method\\n\\nGet the local outline segments of a shape by its Id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutlineSegmentsById(myShapeId)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageBounds()` \\\\{#Editor-getPageBounds-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageBounds(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getPageBoundsById()` \\\\{#Editor-getPageBoundsById-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageBoundsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getPageById()` \\\\{#Editor-getPageById-member-1}\\n\\nPublic Method\\n\\nGet a page by its ID.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageById(myPage.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPage | undefined\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `getPageCenter()` \\\\{#Editor-getPageCenter-member-1}\\n\\nPublic Method\\n\\nGet the page point (or absolute point) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPagePoint(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page point for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Vec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageCenterById()` \\\\{#Editor-getPageCenterById-member-1}\\n\\nPublic Method\\n\\nGet the page point (or absolute point) of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPagePoint(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id to get the page point for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Vec2d\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageCorners()` \\\\{#Editor-getPageCorners-member-1}\\n\\nPublic Method\\n\\nGet the corners of a shape in page space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst corners = editor.getPageCorners(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the corners for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageInfoById()` \\\\{#Editor-getPageInfoById-member-1}\\n\\nPublic Method\\n\\nGet a page by its ID.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageById(myPage.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPage[\'id\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPage | undefined\\n```\\n\\n##### References\\n\\n[TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `getPageMaskById()` \\\\{#Editor-getPageMaskById-member-1}\\n\\nPublic Method\\n\\nGet the page mask for a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst pageMask = editor.getPageMaskById(shape.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page mask for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nundefined | VecLike[]\\n```\\n\\n The page mask for the shape.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `getPagePointById()` \\\\{#Editor-getPagePointById-member-1}\\n\\nPublic Method\\n\\nGet the page point (or absolute point) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPagePoint(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nundefined | Vec2d\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageRotation()` \\\\{#Editor-getPageRotation-member-1}\\n\\nPublic Method\\n\\nGet the page rotation (or absolute rotation) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageRotation(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page rotation for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getPageRotationById()` \\\\{#Editor-getPageRotationById-member-1}\\n\\nPublic Method\\n\\nGet the page rotation (or absolute rotation) of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageRotationById(myShapeId)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page rotation for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getPageStateByPageId()` \\\\{#Editor-getPageStateByPageId-member-1}\\n\\nPublic Method\\n\\nGet a page state by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageStateByPageId(\'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLInstancePageState | undefined\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n---\\n\\n### `getPageTransform()` \\\\{#Editor-getPageTransform-member-1}\\n\\nPublic Method\\n\\nGet the page transform (or absolute transform) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageTransform(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `getPageTransformById()` \\\\{#Editor-getPageTransformById-member-1}\\n\\nPublic Method\\n\\nGet the page transform (or absolute transform) of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageTransformById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe if of the shape to get the page transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d | undefined\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `getParentIdForNewShapeAtPoint()` \\\\{#Editor-getParentIdForNewShapeAtPoint-member-1}\\n\\nPublic Method\\n\\nGet the id of what should be the parent of a new shape at a given point. The parent can be a page or shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to find the parent for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapeType`\\n\\n\\n\\n\\n```ts\\nTLShape[\'type\']\\n```\\n\\nThe type of shape that will be created.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPageId | TLShapeId\\n```\\n\\n The id of the parent.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type), [TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getParentShape()` \\\\{#Editor-getParentShape-member-1}\\n\\nPublic Method\\n\\nGet the parent shape for a given shape. Returns undefined if the shape is the direct child of the page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getParentShape(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getParentsMappedToChildren()` \\\\{#Editor-getParentsMappedToChildren-member-1}\\n\\nPublic Method\\n\\nFor a given set of ids, get a map containing the ids of their parents and the children of those parents.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getParentsMappedToChildren([\'id1\', \'id2\', \'id3\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to get the parents and children of.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMap>\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Map](/gen/Map-interface), [TLParentId](/gen/tlschema/TLParentId-type), [Set](/gen/Set-interface), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getParentTransform()` \\\\{#Editor-getParentTransform-member-1}\\n\\nPublic Method\\n\\nGet the local transform of a shape\'s parent as a matrix model.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getParentTransform(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the parent transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `getPointInParentSpace()` \\\\{#Editor-getPointInParentSpace-member-1}\\n\\nPublic Method\\n\\nConvert a delta in page space to a point in the local space of a shape. For example, if a shape\'s page point were `{ x: 100, y: 100 }`, a page point at `{ x: 110, y: 110 }` would be at `{ x: 10, y: 10 }` in the shape\'s local space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPointInShapeSpace(myShape.id, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapeId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to get in the local space of the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPointInShapeSpace()` \\\\{#Editor-getPointInShapeSpace-member-1}\\n\\nPublic Method\\n\\nConvert a point in page space to a point in the local space of a shape. For example, if a shape\'s page point were `{ x: 100, y: 100 }`, a page point at `{ x: 110, y: 110 }` would be at `{ x: 10, y: 10 }` in the shape\'s local space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPointInShapeSpace(myShape, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the point in the local space of.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to get in the local space of the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getShapeAndDescendantIds()` \\\\{#Editor-getShapeAndDescendantIds-member-1}\\n\\nPublic Method\\n\\nGet the shape ids of all descendants of the given shapes (including the shapes themselves).\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to get descendants of.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSet\\n```\\n\\n The decscendant ids.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Set](/gen/Set-interface)\\n\\n---\\n\\n### `getShapeById()` \\\\{#Editor-getShapeById-member-1}\\n\\nPublic Method\\n\\nGet a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getShapeById(\'box1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the shape to get.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLParentId](/gen/tlschema/TLParentId-type)\\n\\n---\\n\\n### `getShapeIdsInPage()` \\\\{#Editor-getShapeIdsInPage-member-1}\\n\\nPublic Method\\n\\nGet the ids of shapes on a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst idsOnPage1 = editor.getShapeIdsInPage(\'page1\')\\nconst idsOnPage2 = editor.getShapeIdsInPage(\'page2\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSet\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getShapesAtPoint()` \\\\{#Editor-getShapesAtPoint-member-1}\\n\\nPublic Method\\n\\nGet the shapes, if any, at a given page point.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getShapesAtPoint({ x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to test.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getShapeStyleIfExists()` \\\\{#Editor-getShapeStyleIfExists-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`style`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `getShapeUtil()` \\\\{#Editor-getShapeUtil-member-1}\\n\\nPublic Method\\n\\nGet a shape util by its definition.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getShapeUtil(ArrowShapeUtil)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`util`\\n\\n\\n\\n\\n```ts\\nC\\n```\\n\\nThe shape util.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nInstanceType\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [InstanceType](/gen/InstanceType-type)\\n\\n---\\n\\n### `getShapeUtil()` \\\\{#Editor-getShapeUtil-member-2}\\n\\nPublic Method\\n\\nGet a shape util from a shape itself.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst util = editor.getShapeUtil(myShape)\\nconst util = editor.getShapeUtil(myShape)\\nconst util = editor.getShapeUtil(ArrowShapeUtil)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nS | TLShapePartial\\n```\\n\\nA shape or shape partial.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nShapeUtil\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type), [ShapeUtil](/gen/editor/ShapeUtil-class)\\n\\n---\\n\\n### `getSortedChildIds()` \\\\{#Editor-getSortedChildIds-member-1}\\n\\nPublic Method\\n\\nGet an array of all the children of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getSortedChildIds(\'frame1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the parent shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\n##### References\\n\\n[TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getStateDescendant()` \\\\{#Editor-getStateDescendant-member-1}\\n\\nPublic Method\\n\\nGet a descendant by its path.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nstate.getStateDescendant(\'select\')\\nstate.getStateDescendant(\'select.brushing\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`path`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe descendant\'s path of state ids, separated by periods.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStateNode | undefined\\n```\\n\\n##### References\\n\\n[StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `getSvg()` \\\\{#Editor-getSvg-member-1}\\n\\nPublic Method\\n\\nGet an exported SVG of the given shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to export. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nPartial<{\\n scale: number\\n background: boolean\\n padding: number\\n darkMode?: boolean | undefined\\n preserveAspectRatio: React.SVGAttributes[\'preserveAspectRatio\']\\n}>\\n```\\n\\nOptions for the export.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n The SVG element.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Partial](/gen/Partial-type), [React.SVGAttributes](/gen/@types/react-React-SVGAttributes-interface), [SVGSVGElement](/gen/SVGSVGElement-interface), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `getTransform()` \\\\{#Editor-getTransform-member-1}\\n\\nPublic Method\\n\\nGet the local transform for a shape as a matrix model. This transform reflects both its translation (x, y) from from either its parent\'s top left corner, if the shape\'s parent is another shape, or else from the 0,0 of the page, if the shape\'s parent is the page; and the shape\'s rotation.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getTransform(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the local transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `groupShapes()` \\\\{#Editor-groupShapes-member-1}\\n\\nPublic Method\\n\\nGroup some shapes together.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nIds of the shapes to group. Defaults to the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`groupId`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nId of the group to create. Defaults to a new shape id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `hasAncestor()` \\\\{#Editor-hasAncestor-member-1}\\n\\nPublic Method\\n\\nReturns true if the the given shape has the given ancestor.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape | undefined\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ancestorId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the ancestor.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `interrupt()` \\\\{#Editor-interrupt-member-1}\\n\\nPublic Method\\n\\nDispatch an interrupt event.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.interrupt()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `isIn()` \\\\{#Editor-isIn-member-1}\\n\\nPublic Method\\n\\nGet whether a certain tool (or other state node) is currently active.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isIn(\'select\')\\neditor.isIn(\'select.brushing\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`path`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe path of active states, separated by periods.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `isInAny()` \\\\{#Editor-isInAny-member-1}\\n\\nPublic Method\\n\\nGet whether the state node is in any of the given active paths.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nstate.isInAny(\'select\', \'erase\')\\nstate.isInAny(\'select.brushing\', \'erase.idle\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`paths`\\n\\n\\n\\n\\n```ts\\nstring[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `isPointInShape()` \\\\{#Editor-isPointInShape-member-1}\\n\\nPublic Method\\n\\nTest whether a point (in page space) will will a shape. This method takes into account masks, such as when a shape is the child of a frame and is partially clipped by the frame.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isPointInShape({ x: 100, y: 100 }, myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to test.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to test against.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `isSelected()` \\\\{#Editor-isSelected-member-1}\\n\\nPublic Method\\n\\nDetermine whether or not a shape is selected\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isSelected(\'id1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `isShapeInPage()` \\\\{#Editor-isShapeInPage-member-1}\\n\\nPublic Method\\n\\nGet whether the given shape is the descendant of the given page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isShapeInPage(myShape)\\neditor.isShapeInPage(myShape, \'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to check against. Defaults to the current page.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `isShapeOfType()` \\\\{#Editor-isShapeOfType-member-1}\\n\\nPublic Method\\n\\nGet whether a shape matches the type of a TLShapeUtil.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst isArrowShape = isShapeOfType(someShape, ArrowShapeUtil)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLUnknownShape\\n```\\n\\nthe shape to test\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`util`\\n\\n\\n\\n\\n```ts\\n{\\n new (...args: any): ShapeUtil\\n type: string\\n}\\n```\\n\\nthe TLShapeUtil constructor to test against\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nshape is T\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [ShapeUtil](/gen/editor/ShapeUtil-class), [shape](/gen/editor/~shape)\\n\\n---\\n\\n### `isShapeOrAncestorLocked()` \\\\{#Editor-isShapeOrAncestorLocked-member-1}\\n\\nPublic Method\\n\\nCheck whether a shape or its parent is locked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `isWithinSelection()` \\\\{#Editor-isWithinSelection-member-1}\\n\\nPublic Method\\n\\nDetermine whether a not a shape is within the current selection. A shape is within the selection if it or any of its parents is selected.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `mark()` \\\\{#Editor-mark-member-1}\\n\\nPublic Method\\n\\nCreate a new \\"mark\\", or stopping point, in the undo redo history. Creating a mark will clear any redos.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.mark()\\neditor.mark(\'flip shapes\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`reason`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe reason for the mark.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`onUndo`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether to stop at the mark when undoing.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`onRedo`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether to stop at the mark when redoing.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `moveShapesToPage()` \\\\{#Editor-moveShapesToPage-member-1}\\n\\nPublic Method\\n\\nMove shapes to page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.moveShapesToPage([\'box1\', \'box2\'], \'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page where the shapes will be moved.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `nudgeShapes()` \\\\{#Editor-nudgeShapes-member-1}\\n\\nPublic Method\\n\\nMove shapes by a delta.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.nudgeShapes([\'box1\', \'box2\'], { x: 0, y: 1 })\\neditor.nudgeShapes([\'box1\', \'box2\'], { x: 0, y: 1 }, true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`direction`\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe direction in which to move the shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`major`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether this is a major nudge, e.g. a shift + arrow nudge.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n---\\n\\n### `packShapes()` \\\\{#Editor-packShapes-member-1}\\n\\nPublic Method\\n\\nPack shapes into a grid centered on their current position. Based on potpack (https://github.com/mapbox/potpack)\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to pack. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`padding`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe padding to apply to the packed shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `pageToScreen()` \\\\{#Editor-pageToScreen-member-1}\\n\\nPublic Method\\n\\nConvert a point in page space to a point in screen space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.pageToScreen(100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe x coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe y coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`camera`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe camera to use. Defaults to the current camera.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n x: number\\n y: number\\n z: number\\n}\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n---\\n\\n### `pan()` \\\\{#Editor-pan-member-1}\\n\\nPublic Method\\n\\nPan the camera.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.pan(100, 100)\\neditor.pan(100, 100, { duration: 1000 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`dx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe amount to pan on the x axis.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`dy`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe amount to pan on the y axis.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe animation options\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `panZoomIntoView()` \\\\{#Editor-panZoomIntoView-member-1}\\n\\nPublic Method\\n\\nPan or pan/zoom the selected ids into view. This method tries to not change the zoom if possible.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to pan and zoom into view.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `popFocusLayer()` \\\\{#Editor-popFocusLayer-member-1}\\n\\nPublic Method\\n\\nExit the current focus layer, moving up to the next group if there is one.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `putContent()` \\\\{#Editor-putContent-member-1}\\n\\nPublic Method\\n\\nPlace content into the editor.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`content`\\n\\n\\n\\n\\n```ts\\nTLContent\\n```\\n\\nThe content.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n point?: VecLike\\n select?: boolean\\n preservePosition?: boolean\\n preserveIds?: boolean\\n}\\n```\\n\\nOptions for placing the content.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLContent](/gen/editor/TLContent-interface), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `putExternalContent()` \\\\{#Editor-putExternalContent-member-1}\\n\\nPublic Method\\n\\nHandle external content, such as files, urls, embeds, or plain text which has been put into the app, for example by pasting external text or dropping external images onto canvas.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nTLExternalContent\\n```\\n\\nInfo about the external content.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `redo()` \\\\{#Editor-redo-member-1}\\n\\nPublic Method\\n\\nRedo to the next mark.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.redo()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `renamePage()` \\\\{#Editor-renamePage-member-1}\\n\\nPublic Method\\n\\nRename a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.renamePage(\'page1\', \'My Page\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to rename.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe new name.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `reorderShapes()` \\\\{#Editor-reorderShapes-member-1}\\n\\nPublic Method\\n\\nReorder shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'backward\' | \'forward\' | \'toBack\' | \'toFront\'\\n```\\n\\nThe operation to perform.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to reorder.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `reparentShapesById()` \\\\{#Editor-reparentShapesById-member-1}\\n\\nPublic Method\\n\\nReparent shapes to a new parent. This operation preserves the shape\'s current page positions / rotations.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.reparentShapesById([\'box1\', \'box2\'], \'frame1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to reparent.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the new parent shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`insertIndex`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe index to insert the children.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLParentId](/gen/tlschema/TLParentId-type)\\n\\n---\\n\\n### `replaceStoreContentsWithRecordsForOtherDocument()` \\\\{#Editor-replaceStoreContentsWithRecordsForOtherDocument-member-1}\\n\\nPublic Method\\n\\nReplace the store\'s contents with the given records.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`records`\\n\\n\\n\\n\\n```ts\\nTLRecord[]\\n```\\n\\nThe records to replace the store\'s contents with.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLRecord](/gen/tlschema/TLRecord-type)\\n\\n---\\n\\n### `resetZoom()` \\\\{#Editor-resetZoom-member-1}\\n\\nPublic Method\\n\\nSet the zoom back to 100%.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.resetZoom()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `resizeShape()` \\\\{#Editor-resizeShape-member-1}\\n\\nPublic Method\\n\\nResize a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`scale`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe scale factor to apply to the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n initialBounds?: Box2d\\n scaleOrigin?: VecLike\\n scaleAxisRotation?: number\\n initialShape?: TLShape\\n initialPageTransform?: MatLike\\n dragHandle?: TLResizeHandle\\n mode?: TLResizeMode\\n}\\n```\\n\\nAdditional options.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type), [Box2d](/gen/primitives/Box2d-class), [TLShape](/gen/tlschema/TLShape-type), [MatLike](/gen/primitives/MatLike-type), [TLResizeHandle](/gen/editor/TLResizeHandle-type), [TLResizeMode](/gen/editor/TLResizeMode-type)\\n\\n---\\n\\n### `rotateShapesBy()` \\\\{#Editor-rotateShapesBy-member-1}\\n\\nPublic Method\\n\\nRotate shapes by a delta in radians.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.rotateShapesBy([\'box1\', \'box2\'], Math.PI)\\neditor.rotateShapesBy([\'box1\', \'box2\'], Math.PI / 2)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe delta in radians to apply to the selection rotation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `screenToPage()` \\\\{#Editor-screenToPage-member-1}\\n\\nPublic Method\\n\\nConvert a point in screen space to a point in page space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.screenToPage(100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe x coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe y coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`camera`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe camera to use. Defaults to the current camera.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n x: number\\n y: number\\n z: number\\n}\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n---\\n\\n### `select()` \\\\{#Editor-select-member-1}\\n\\nPublic Method\\n\\nSelect one or more shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.select(\'id1\')\\neditor.select(\'id1\', \'id2\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to select.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `selectAll()` \\\\{#Editor-selectAll-member-1}\\n\\nPublic Method\\n\\nSelect all direct children of the current page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.selectAll()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `selectNone()` \\\\{#Editor-selectNone-member-1}\\n\\nPublic Method\\n\\nClear the selection.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.selectNone()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `sendBackward()` \\\\{#Editor-sendBackward-member-1}\\n\\nPublic Method\\n\\nSend shapes backward in the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.sendBackward()\\neditor.sendBackward([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `sendToBack()` \\\\{#Editor-sendToBack-member-1}\\n\\nPublic Method\\n\\nSend shapes to the back of the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.sendToBack()\\neditor.sendToBack([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setAnimationSpeed()` \\\\{#Editor-setAnimationSpeed-member-1}\\n\\nPublic Method\\n\\nSet the user\'s chosen animation speed. Set to 0.0 to disable animations. Set to 1.0 for full speed.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`animationSpeed`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setBrush()` \\\\{#Editor-setBrush-member-1}\\n\\nPublic Method\\n\\nSet the current brush.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setBrush({ x: 0, y: 0, w: 100, h: 100 })\\neditor.setBrush() // Clears the brush\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`brush`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nBox2dModel | null\\n```\\n\\nThe brush box model to set, or null for no brush model.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `setCamera()` \\\\{#Editor-setCamera-member-1}\\n\\nPublic Method\\n\\nSet the current camera.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setCamera(0, 0)\\neditor.setCamera(0, 0, 1)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s x position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s y position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s z position. Defaults to the current zoom.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ stopFollowing }`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLViewportOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLViewportOptions](/gen/editor/~TLViewportOptions-type)\\n\\n---\\n\\n### `setCroppingId()` \\\\{#Editor-setCroppingId-member-1}\\n\\nPublic Method\\n\\nSet the current cropping shape\'s id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe id of the shape to crop or null to clear the cropping id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setCurrentPageId()` \\\\{#Editor-setCurrentPageId-member-1}\\n\\nPublic Method\\n\\nSet the current page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setCurrentPageId(\'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to set as the current page.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ stopFollowing }`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLViewportOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLViewportOptions](/gen/editor/~TLViewportOptions-type)\\n\\n---\\n\\n### `setCursor()` \\\\{#Editor-setCursor-member-1}\\n\\nPublic Method\\n\\nSet the current cursor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setCursor({ type: \'default\' })\\neditor.setCursor({ type: \'default\', rotation: Math.PI / 2, color: \'red\' })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`cursor`\\n\\n\\n\\n\\n```ts\\nPartial\\n```\\n\\nA partial of the cursor object.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLCursor](/gen/tlschema/TLCursor-interface)\\n\\n---\\n\\n### `setDarkMode()` \\\\{#Editor-setDarkMode-member-1}\\n\\nPublic Method\\n\\nSet whether the user has dark mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isDarkMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setDevicePixelRatio()` \\\\{#Editor-setDevicePixelRatio-member-1}\\n\\nPublic Method\\n\\nSet the window\'s device pixel ratio. This should usually only be set by the Canvas component.\\n\\n\\n```ts\\neditor.setDevicePixelRatio(2)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`dpr`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setEditingId()` \\\\{#Editor-setEditingId-member-1}\\n\\nPublic Method\\n\\nSet the current editing id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe id of the shape to edit or null to clear the editing id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setErasingIds()` \\\\{#Editor-setErasingIds-member-1}\\n\\nPublic Method\\n\\nSet the current erasing shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setErasingIds([\'box1\', \'box2\'])\\neditor.setErasingIds() // Clears the erasing set\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of shapes to set as erasing.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setFocusLayer()` \\\\{#Editor-setFocusLayer-member-1}\\n\\nPublic Method\\n\\nSet the focus layer to the given shape id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe next focus layer id or null to reset the focus layer to the page\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setFocusMode()` \\\\{#Editor-setFocusMode-member-1}\\n\\nPublic Method\\n\\nSet whether the instance is in focus mode or not.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isFocusMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setGridMode()` \\\\{#Editor-setGridMode-member-1}\\n\\nPublic Method\\n\\nSet whether the instance\'s grid is enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isGridMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setHintingIds()` \\\\{#Editor-setHintingIds-member-1}\\n\\nPublic Method\\n\\nSet the hinted shape ids.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to set as hinted.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setHoveredId()` \\\\{#Editor-setHoveredId-member-1}\\n\\nPublic Method\\n\\nSet the current hovered shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setHoveredId(\'box1\')\\neditor.setHoveredId() // Clears the hovered shape.\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe id of the page to set as the current page\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setLocale()` \\\\{#Editor-setLocale-member-1}\\n\\nPublic Method\\n\\nUpdate the user\'s locale. This affects which translations are used when rendering UI elements.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setLocale(\'fr\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`locale`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `setOpacity()` \\\\{#Editor-setOpacity-member-1}\\n\\nPublic Method\\n\\nSet the current opacity. This will effect any selected shapes, or the next-created shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setOpacity(0.5)\\neditor.setOpacity(0.5, true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opacity`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe opacity to set. Must be a number between 0 and 1 inclusive.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the opacity change is ephemeral. Ephemeral changes don\'t get added to the undo/redo stack. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the opacity change will be squashed into the existing history entry rather than creating a new one. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setPageState()` \\\\{#Editor-setPageState-member-1}\\n\\nPublic Method\\n\\nUpdate a page state.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setPageState({ id: \'page1\', editingId: \'shape:123\' })\\neditor.setPageState({ id: \'page1\', editingId: \'shape:123\' }, true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partial`\\n\\n\\n\\n\\n```ts\\nPartial\\n```\\n\\nThe partial of the page state object containing the changes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the command is ephemeral.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n---\\n\\n### `setPenMode()` \\\\{#Editor-setPenMode-member-1}\\n\\nPublic Method\\n\\nSet whether the editor is in pen mode or not.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isPenMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setReadOnly()` \\\\{#Editor-setReadOnly-member-1}\\n\\nPublic Method\\n\\nSet whether the editor is in read-only mode or not.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isReadOnly`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setScribble()` \\\\{#Editor-setScribble-member-1}\\n\\nPublic Method\\n\\nSet the current scribble.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setScribble(nextScribble)\\neditor.setScribble() // clears the scribble\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`scribble`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnull | TLScribble\\n```\\n\\nThe new scribble object.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLScribble](/gen/tlschema/TLScribble-type)\\n\\n---\\n\\n### `setSelectedIds()` \\\\{#Editor-setSelectedIds-member-1}\\n\\nPublic Method\\n\\nSelect one or more shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setSelectedIds([\'id1\'])\\neditor.setSelectedIds([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to select.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change should create a new history entry or combine with the previous (if the previous is the same type).\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setSelectedTool()` \\\\{#Editor-setSelectedTool-member-1}\\n\\nPublic Method\\n\\nSet the selected tool.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setSelectedTool(\'hand\')\\neditor.setSelectedTool(\'hand\', { date: Date.now() })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id of the tool to select.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{}\\n```\\n\\nArbitrary data to pass along into the transition.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setSnapMode()` \\\\{#Editor-setSnapMode-member-1}\\n\\nPublic Method\\n\\nSet whether the user has \\"always snap\\" mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isSnapMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setStyle()` \\\\{#Editor-setStyle-member-1}\\n\\nPublic Method\\n\\nSet the current styles\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setProp(DefaultColorStyle, \'red\')\\neditor.setProp(DefaultColorStyle, \'red\', true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`style`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\nThe style to set.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe value to set.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the style change is ephemeral. Ephemeral changes don\'t get added to the undo/redo stack. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the style change will be squashed into the existing history entry rather than creating a new one. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `setToolLocked()` \\\\{#Editor-setToolLocked-member-1}\\n\\nPublic Method\\n\\nSet whether the instance has \\"tool lock\\" mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isToolLocked`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setZoomBrush()` \\\\{#Editor-setZoomBrush-member-1}\\n\\nPublic Method\\n\\nSet the current zoom brush.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setZoomBrush({ x: 0, y: 0, w: 100, h: 100 })\\neditor.setZoomBrush() // Clears the zoom\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`zoomBrush`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nBox2dModel | null\\n```\\n\\nThe zoom box model to set, or null for no zoom model.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `slideCamera()` \\\\{#Editor-slideCamera-member-1}\\n\\nPublic Method\\n\\nSlide the camera in a certain direction.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n speed: number\\n direction: Vec2d\\n friction: number\\n speedThreshold?: number | undefined\\n}\\n```\\n\\nOptions for the slide\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis | undefined\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `stackShapes()` \\\\{#Editor-stackShapes-member-1}\\n\\nPublic Method\\n\\nStack shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.stackShapes(\'horizontal\')\\neditor.stackShapes(\'horizontal\', [\'box1\', \'box2\'])\\neditor.stackShapes(\'horizontal\', [\'box1\', \'box2\'], 20)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to stack horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to stack. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`gap`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nA specific gap to use when stacking.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `startFollowingUser()` \\\\{#Editor-startFollowingUser-member-1}\\n\\nPublic Method\\n\\nStart viewport-following a user.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`userId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id of the user to follow.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis | undefined\\n```\\n\\n---\\n\\n### `stopCameraAnimation()` \\\\{#Editor-stopCameraAnimation-member-1}\\n\\nPublic Method\\n\\nStop the current camera animation, if any.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `stopFollowingUser()` \\\\{#Editor-stopFollowingUser-member-1}\\n\\nPublic Method\\n\\nStop viewport-following a user.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `stretchShapes()` \\\\{#Editor-stretchShapes-member-1}\\n\\nPublic Method\\n\\nStretch shape sizes and positions to fill their common bounding box.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.stretchShapes(\'horizontal\')\\neditor.stretchShapes(\'horizontal\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to stretch shapes horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to stretch. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `toggleLock()` \\\\{#Editor-toggleLock-member-1}\\n\\nPublic Method\\n\\nToggle the lock state of one or more shapes. If there is a mix of locked and unlocked shapes, all shapes will be locked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to toggle. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `undo()` \\\\{#Editor-undo-member-1}\\n\\nPublic Method\\n\\nUndo to the last mark.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.undo()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nHistoryManager\\n```\\n\\n##### References\\n\\n[HistoryManager](/gen/editor/~HistoryManager-class)\\n\\n---\\n\\n### `ungroupShapes()` \\\\{#Editor-ungroupShapes-member-1}\\n\\nPublic Method\\n\\nUngroup some shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nIds of the shapes to ungroup. Defaults to the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `updateAssets()` \\\\{#Editor-updateAssets-member-1}\\n\\nPublic Method\\n\\nUpdate one or more assets.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updateAssets([{ id: \'asset1\', name: \'New name\' }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`assets`\\n\\n\\n\\n\\n```ts\\nTLAssetPartial[]\\n```\\n\\nThe assets to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAssetPartial](/gen/tlschema/TLAssetPartial-type)\\n\\n---\\n\\n### `updateDocumentSettings()` \\\\{#Editor-updateDocumentSettings-member-1}\\n\\nPublic Method\\n\\nUpdate the global document settings that apply to all users.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`settings`\\n\\n\\n\\n\\n```ts\\nPartial\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n---\\n\\n### `updateInstanceState()` \\\\{#Editor-updateInstanceState-member-1}\\n\\nPublic Method\\n\\nUpdate the instance\'s state.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partial`\\n\\n\\n\\n\\n```ts\\nPartial>\\n```\\n\\nA partial object to update the instance state with.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change is ephemeral. Ephemeral changes don\'t get added to the undo/redo stack. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change will be squashed into the existing history entry rather than creating a new one. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [Omit](/gen/Omit-type), [TLInstance](/gen/tlschema/TLInstance-interface)\\n\\n---\\n\\n### `updatePage()` \\\\{#Editor-updatePage-member-1}\\n\\nPublic Method\\n\\nUpdate a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updatePage({ id: \'page2\', name: \'Page 2\' })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partial`\\n\\n\\n\\n\\n```ts\\nRequiredKeys\\n```\\n\\nThe partial of the shape to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[RequiredKeys](/gen/editor/RequiredKeys-type), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `updateShapes()` \\\\{#Editor-updateShapes-member-1}\\n\\nPublic Method\\n\\nUpdate shapes using partials of each shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updateShapes([{ id: \'box1\', type: \'geo\', props: { w: 100, h: 100 } }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partials`\\n\\n\\n\\n\\n```ts\\n(null | TLShapePartial | undefined)[]\\n```\\n\\nThe shape partials to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change is ephemeral.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `updateViewportScreenBounds()` \\\\{#Editor-updateViewportScreenBounds-member-1}\\n\\nPublic Method\\n\\nUpdate the viewport. The viewport will measure the size and screen position of its container element. This should be done whenever the container\'s position on the screen changes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updateViewportScreenBounds()\\neditor.updateViewportScreenBounds(true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`center`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n(optional) Whether to preserve the viewport page center as the viewport changes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `visitDescendants()` \\\\{#Editor-visitDescendants-member-1}\\n\\nPublic Method\\n\\nRun a visitor function for all descendants of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.visitDescendants(\'frame1\', myCallback)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the parent shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`visitor`\\n\\n\\n\\n\\n```ts\\n(id: TLShapeId) => false | void\\n```\\n\\nThe visitor function.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `zoomIn()` \\\\{#Editor-zoomIn-member-1}\\n\\nPublic Method\\n\\nZoom the camera in.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomIn()\\neditor.zoomIn(editor.viewportScreenCenter, { duration: 120 })\\neditor.zoomIn(editor.inputs.currentScreenPoint, { duration: 120 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomOut()` \\\\{#Editor-zoomOut-member-1}\\n\\nPublic Method\\n\\nZoom the camera out.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomOut()\\neditor.zoomOut(editor.viewportScreenCenter, { duration: 120 })\\neditor.zoomOut(editor.inputs.currentScreenPoint, { duration: 120 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomToBounds()` \\\\{#Editor-zoomToBounds-member-1}\\n\\nPublic Method\\n\\nZoom the camera to fit a bounding box (in page space).\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomToBounds(0, 0, 100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s x position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s y position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`width`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s width.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`height`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s height.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`targetZoom`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe desired zoom level. Defaults to 0.1.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomToContent()` \\\\{#Editor-zoomToContent-member-1}\\n\\nPublic Method\\n\\nMove the camera to the nearest content.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `zoomToFit()` \\\\{#Editor-zoomToFit-member-1}\\n\\nPublic Method\\n\\nZoom the camera to fit the current page\'s content in the viewport.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomToFit()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomToSelection()` \\\\{#Editor-zoomToSelection-member-1}\\n\\nPublic Method\\n\\nZoom the camera to fit the current selection in the viewport.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomToSelection()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n","EmbedDefinition-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype EmbedDefinition = {\\n readonly type: string\\n readonly title: string\\n readonly hostnames: readonly string[]\\n readonly minWidth?: number\\n readonly minHeight?: number\\n readonly width: number\\n readonly height: number\\n readonly doesResize: boolean\\n readonly canUnmount: boolean\\n readonly isAspectRatioLocked?: boolean\\n readonly overridePermissions?: TLEmbedShapePermissions\\n readonly instructionLink?: string\\n readonly backgroundColor?: string\\n readonly overrideOutlineRadius?: number\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n}\\n```\\n\\n##### References\\n\\n[TLEmbedShapePermissions](/gen/tlschema/TLEmbedShapePermissions-type)\\n\\n","EmbedShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEmbedShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLEmbedShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n","EmbedShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canEdit](#EmbedShapeUtil-canEdit-member)\\n - [canResize](#EmbedShapeUtil-canResize-member)\\n - [canUnmount](#EmbedShapeUtil-canUnmount-member)\\n - [hideSelectionBoundsBg](#EmbedShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#EmbedShapeUtil-hideSelectionBoundsFg-member)\\n - [isAspectRatioLocked](#EmbedShapeUtil-isAspectRatioLocked-member)\\n - [onResize](#EmbedShapeUtil-onResize-member)\\n - [type](#EmbedShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#EmbedShapeUtil-component-member-1)\\n - [getDefaultProps](#EmbedShapeUtil-getDefaultProps-member-1)\\n - [indicator](#EmbedShapeUtil-indicator-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass EmbedShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#EmbedShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `canResize` \\\\{#EmbedShapeUtil-canResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: (shape: TLEmbedShape) => boolean\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `canUnmount` \\\\{#EmbedShapeUtil-canUnmount-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanUnmount: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#EmbedShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#EmbedShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#EmbedShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#EmbedShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `type` \\\\{#EmbedShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'embed\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#EmbedShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLEmbedShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#EmbedShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLEmbedShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#EmbedShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLEmbedShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","EnumStyleProp-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [values](#EnumStyleProp-values-member)\\n \\n\\nA `StyleProp` is a property of a shape that follows some special rules.\\n\\n\\n1. The same value can be set on lots of shapes at the same time.\\n\\n\\n2. The last used value is automatically saved and applied to new shapes.\\n\\n\\nFor example, [DefaultColorStyle](/tlschema/DefaultColorStyle-var) is a style prop used by tldraw\'s default shapes to set their color. If you try selecting several shapes on tldraw.com and changing their color, you\'ll see that the color is applied to all of them. Then, if you draw a new shape, it\'ll have the same color as the one you just set.\\n\\n\\nYou can use styles in your own shapes by either defining your own (see [StyleProp.define](/tlschema/StyleProp-define-member-1) and [StyleProp.defineEnum](/tlschema/StyleProp-defineEnum-member-1)) or using tldraw\'s default ones, like [DefaultColorStyle](/tlschema/DefaultColorStyle-var). When you define a shape, pass a `props` object describing all of your shape\'s properties, using `StyleProp`s for the ones you want to be styles. See the [custom styles example](https://github.com/tldraw/tldraw/tree/main/apps/examples/src/16-custom-styles) for more.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass EnumStyleProp extends StyleProp {}\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n## Properties\\n\\n### `values` \\\\{#EnumStyleProp-values-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly values: readonly T[]\\n```\\n\\n---\\n\\n","ErrorBoundary-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [state](#ErrorBoundary-state-member)\\n- [Methods](#methods)\\n - [componentDidCatch](#ErrorBoundary-componentDidCatch-member-1)\\n - [getDerivedStateFromError](#ErrorBoundary-getDerivedStateFromError-member-1)\\n - [render](#ErrorBoundary-render-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ErrorBoundary extends React.Component<\\n React.PropsWithRef>,\\n TLErrorBoundaryState\\n> {}\\n```\\n\\n##### References\\n\\n[React.Component](/gen/@types/react-React-Component-class), [React.PropsWithRef](/gen/@types/react-React-PropsWithRef-type), [React.PropsWithChildren](/gen/@types/react-React-PropsWithChildren-type), [TLErrorBoundaryProps](/gen/editor/TLErrorBoundaryProps-interface), [TLErrorBoundaryState](/gen/editor/~TLErrorBoundaryState-type)\\n\\n---\\n\\n## Properties\\n\\n### `state` \\\\{#ErrorBoundary-state-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nstate: TLErrorBoundaryState\\n```\\n\\n##### References\\n\\n[TLErrorBoundaryState](/gen/editor/~TLErrorBoundaryState-type)\\n\\n---\\n\\n## Methods\\n\\n### `componentDidCatch()` \\\\{#ErrorBoundary-componentDidCatch-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`error`\\n\\n\\n\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `getDerivedStateFromError()` \\\\{#ErrorBoundary-getDerivedStateFromError-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`error`\\n\\n\\n\\n\\n```ts\\nError\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n error: Error\\n}\\n```\\n\\n##### References\\n\\n[Error](/gen/Error-interface)\\n\\n---\\n\\n### `render()` \\\\{#ErrorBoundary-render-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n | boolean\\n | JSX.Element\\n | null\\n | number\\n | React.ReactFragment\\n | string\\n | undefined\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface), [React.ReactFragment](/gen/@types/react-React-ReactFragment-type)\\n\\n---\\n\\n","ErrorScreen-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","FrameShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nFrameShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLFrameShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n","FrameShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canBind](#FrameShapeUtil-canBind-member)\\n - [canDropShapes](#FrameShapeUtil-canDropShapes-member)\\n - [canEdit](#FrameShapeUtil-canEdit-member)\\n - [canReceiveNewChildrenOfType](#FrameShapeUtil-canReceiveNewChildrenOfType-member)\\n - [onDragShapesOut](#FrameShapeUtil-onDragShapesOut-member)\\n - [onDragShapesOver](#FrameShapeUtil-onDragShapesOver-member)\\n - [onResizeEnd](#FrameShapeUtil-onResizeEnd-member)\\n - [type](#FrameShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#FrameShapeUtil-component-member-1)\\n - [getDefaultProps](#FrameShapeUtil-getDefaultProps-member-1)\\n - [indicator](#FrameShapeUtil-indicator-member-1)\\n - [providesBackgroundForChildren](#FrameShapeUtil-providesBackgroundForChildren-member-1)\\n - [toSvg](#FrameShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass FrameShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#FrameShapeUtil-canBind-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `canDropShapes` \\\\{#FrameShapeUtil-canDropShapes-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanDropShapes: (shape: TLFrameShape, _shapes: TLShape[]) => boolean\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `canEdit` \\\\{#FrameShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `canReceiveNewChildrenOfType` \\\\{#FrameShapeUtil-canReceiveNewChildrenOfType-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanReceiveNewChildrenOfType: (\\n shape: TLShape,\\n _type: TLShape[\'type\']\\n) => boolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `onDragShapesOut` \\\\{#FrameShapeUtil-onDragShapesOut-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOut: (_shape: TLFrameShape, shapes: TLShape[]) => void\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `onDragShapesOver` \\\\{#FrameShapeUtil-onDragShapesOver-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOver: (\\n frame: TLFrameShape,\\n shapes: TLShape[]\\n) => {\\n shouldHint: boolean\\n}\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `onResizeEnd` \\\\{#FrameShapeUtil-onResizeEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeEnd: TLOnResizeEndHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeEndHandler](/gen/editor/TLOnResizeEndHandler-type), [TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n---\\n\\n### `type` \\\\{#FrameShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'frame\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#FrameShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#FrameShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLFrameShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#FrameShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `providesBackgroundForChildren()` \\\\{#FrameShapeUtil-providesBackgroundForChildren-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `toSvg()` \\\\{#FrameShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise | SVGElement\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [Promise](/gen/Promise-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n","GRID_STEPS-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGRID_STEPS: {\\n min: number\\n mid: number\\n step: number\\n}[]\\n```\\n\\n","GeoShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGeoShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLGeoShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n","GeoShapeGeoStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGeoShapeGeoStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow-down\'\\n | \'arrow-left\'\\n | \'arrow-right\'\\n | \'arrow-up\'\\n | \'check-box\'\\n | \'diamond\'\\n | \'ellipse\'\\n | \'hexagon\'\\n | \'octagon\'\\n | \'oval\'\\n | \'pentagon\'\\n | \'rectangle\'\\n | \'rhombus-2\'\\n | \'rhombus\'\\n | \'star\'\\n | \'trapezoid\'\\n | \'triangle\'\\n | \'x-box\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","GeoShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canEdit](#GeoShapeUtil-canEdit-member)\\n - [onBeforeCreate](#GeoShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#GeoShapeUtil-onBeforeUpdate-member)\\n - [onDoubleClick](#GeoShapeUtil-onDoubleClick-member)\\n - [onEditEnd](#GeoShapeUtil-onEditEnd-member)\\n - [onResize](#GeoShapeUtil-onResize-member)\\n - [type](#GeoShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#GeoShapeUtil-component-member-1)\\n - [getBounds](#GeoShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#GeoShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#GeoShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#GeoShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#GeoShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#GeoShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#GeoShapeUtil-hitTestPoint-member-1)\\n - [indicator](#GeoShapeUtil-indicator-member-1)\\n - [toSvg](#GeoShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass GeoShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#GeoShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#GeoShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate: (shape: TLGeoShape) =>\\n | {\\n props: {\\n growY: number\\n geo:\\n | \'arrow-down\'\\n | \'arrow-left\'\\n | \'arrow-right\'\\n | \'arrow-up\'\\n | \'check-box\'\\n | \'diamond\'\\n | \'ellipse\'\\n | \'hexagon\'\\n | \'octagon\'\\n | \'oval\'\\n | \'pentagon\'\\n | \'rectangle\'\\n | \'rhombus-2\'\\n | \'rhombus\'\\n | \'star\'\\n | \'trapezoid\'\\n | \'triangle\'\\n | \'x-box\'\\n labelColor:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n fill: \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n dash: \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n w: number\\n h: number\\n text: string\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#GeoShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate: (\\n prev: TLGeoShape,\\n next: TLGeoShape\\n) =>\\n | {\\n props: {\\n growY: number\\n geo:\\n | \'arrow-down\'\\n | \'arrow-left\'\\n | \'arrow-right\'\\n | \'arrow-up\'\\n | \'check-box\'\\n | \'diamond\'\\n | \'ellipse\'\\n | \'hexagon\'\\n | \'octagon\'\\n | \'oval\'\\n | \'pentagon\'\\n | \'rectangle\'\\n | \'rhombus-2\'\\n | \'rhombus\'\\n | \'star\'\\n | \'trapezoid\'\\n | \'triangle\'\\n | \'x-box\'\\n labelColor:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n fill: \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n dash: \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n w: number\\n h: number\\n text: string\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#GeoShapeUtil-onDoubleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick: (shape: TLGeoShape) =>\\n | {\\n props: {\\n geo: \'check-box\'\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | {\\n props: {\\n geo: \'rectangle\'\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#GeoShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#GeoShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n### `type` \\\\{#GeoShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'geo\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#GeoShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#GeoShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#GeoShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#GeoShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#GeoShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLGeoShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#GeoShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#GeoShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#GeoShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#GeoShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#GeoShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGElement\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n","GroupShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGroupShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLGroupShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n","GroupShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canBind](#GroupShapeUtil-canBind-member)\\n - [hideSelectionBoundsBg](#GroupShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#GroupShapeUtil-hideSelectionBoundsFg-member)\\n - [onChildrenChange](#GroupShapeUtil-onChildrenChange-member)\\n - [type](#GroupShapeUtil-type-member)\\n - [type](#GroupShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#GroupShapeUtil-component-member-1)\\n - [getBounds](#GroupShapeUtil-getBounds-member-1)\\n - [getCenter](#GroupShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#GroupShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#GroupShapeUtil-getOutline-member-1)\\n - [indicator](#GroupShapeUtil-indicator-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass GroupShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#GroupShapeUtil-canBind-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#GroupShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#GroupShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onChildrenChange` \\\\{#GroupShapeUtil-onChildrenChange-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonChildrenChange: TLOnChildrenChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnChildrenChangeHandler](/gen/editor/TLOnChildrenChangeHandler-type), [TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n---\\n\\n### `type` \\\\{#GroupShapeUtil-type-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ntype: \'group\'\\n```\\n\\n---\\n\\n### `type` \\\\{#GroupShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'group\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#GroupShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#GroupShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#GroupShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#GroupShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLGroupShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#GroupShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `indicator()` \\\\{#GroupShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","HTMLContainer-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, className, ...rest }`\\n\\n\\n\\n\\n```ts\\nHTMLContainerProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[HTMLContainerProps](/gen/editor/HTMLContainerProps-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","HTMLContainerProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype HTMLContainerProps = React.HTMLAttributes\\n```\\n\\n##### References\\n\\n[React.HTMLAttributes](/gen/@types/react-React-HTMLAttributes-interface), [HTMLDivElement](/gen/HTMLDivElement-interface)\\n\\n","HighlightShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nHighlightShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLHighlightShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n","HighlightShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [hideResizeHandles](#HighlightShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#HighlightShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#HighlightShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#HighlightShapeUtil-hideSelectionBoundsFg-member)\\n - [onResize](#HighlightShapeUtil-onResize-member)\\n - [type](#HighlightShapeUtil-type-member)\\n- [Methods](#methods)\\n - [backgroundComponent](#HighlightShapeUtil-backgroundComponent-member-1)\\n - [component](#HighlightShapeUtil-component-member-1)\\n - [expandSelectionOutlinePx](#HighlightShapeUtil-expandSelectionOutlinePx-member-1)\\n - [getBounds](#HighlightShapeUtil-getBounds-member-1)\\n - [getCenter](#HighlightShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#HighlightShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#HighlightShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#HighlightShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#HighlightShapeUtil-hitTestPoint-member-1)\\n - [indicator](#HighlightShapeUtil-indicator-member-1)\\n - [toBackgroundSvg](#HighlightShapeUtil-toBackgroundSvg-member-1)\\n - [toSvg](#HighlightShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass HighlightShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `hideResizeHandles` \\\\{#HighlightShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#HighlightShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#HighlightShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#HighlightShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#HighlightShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `type` \\\\{#HighlightShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'highlight\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `backgroundComponent()` \\\\{#HighlightShapeUtil-backgroundComponent-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `component()` \\\\{#HighlightShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `expandSelectionOutlinePx()` \\\\{#HighlightShapeUtil-expandSelectionOutlinePx-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#HighlightShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#HighlightShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#HighlightShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLHighlightShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#HighlightShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#HighlightShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#HighlightShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#HighlightShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toBackgroundSvg()` \\\\{#HighlightShapeUtil-toBackgroundSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGPathElement\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [SVGPathElement](/gen/SVGPathElement-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#HighlightShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGPathElement\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [SVGPathElement](/gen/SVGPathElement-interface)\\n\\n---\\n\\n","HistoryEntry-type":"Public TypeAlias\\n\\nAn entry containing changes that originated either by user actions or remote changes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype HistoryEntry = {\\n changes: RecordsDiff\\n source: ChangeSource\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [RecordsDiff](/gen/store/RecordsDiff-type), [ChangeSource](/gen/store/~ChangeSource-type)\\n\\n","INDENT-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nINDENT = \' \'\\n```\\n\\n","Icon-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nIcon: import(\'react\').NamedExoticComponent\\n```\\n\\n##### References\\n\\n[NamedExoticComponent](/gen/@types/react-React-NamedExoticComponent-interface), [TLUiIconProps](/gen/ui/TLUiIconProps-interface)\\n\\n","IdOf-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype IdOf = R[\'id\']\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","ImageShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nImageShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLImageShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n","ImageShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canCrop](#ImageShapeUtil-canCrop-member)\\n - [isAspectRatioLocked](#ImageShapeUtil-isAspectRatioLocked-member)\\n - [onDoubleClick](#ImageShapeUtil-onDoubleClick-member)\\n - [onDoubleClickEdge](#ImageShapeUtil-onDoubleClickEdge-member)\\n - [type](#ImageShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#ImageShapeUtil-component-member-1)\\n - [getDefaultProps](#ImageShapeUtil-getDefaultProps-member-1)\\n - [indicator](#ImageShapeUtil-indicator-member-1)\\n - [toSvg](#ImageShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ImageShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canCrop` \\\\{#ImageShapeUtil-canCrop-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanCrop: () => boolean\\n```\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#ImageShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: () => boolean\\n```\\n\\n---\\n\\n### `onDoubleClick` \\\\{#ImageShapeUtil-onDoubleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick: (shape: TLImageShape) => void\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n### `onDoubleClickEdge` \\\\{#ImageShapeUtil-onDoubleClickEdge-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickEdge: TLOnDoubleClickHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type), [TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n### `type` \\\\{#ImageShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'image\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#ImageShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#ImageShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLImageShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#ImageShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#ImageShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type), [Promise](/gen/Promise-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","Input-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nInput: React.ForwardRefExoticComponent<\\n TLUiInputProps & React.RefAttributes\\n>\\n```\\n\\n##### References\\n\\n[React.ForwardRefExoticComponent](/gen/@types/react-React-ForwardRefExoticComponent-interface), [TLUiInputProps](/gen/ui/TLUiInputProps-interface), [React.RefAttributes](/gen/@types/react-React-RefAttributes-interface), [HTMLInputElement](/gen/HTMLInputElement-interface)\\n\\n","InstancePageStateRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nInstancePageStateRecordType: import(\'@tldraw/store\').RecordType<\\n TLInstancePageState,\\n \'pageId\'\\n>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n","InstancePresenceRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nInstancePresenceRecordType: import(\'@tldraw/store\').RecordType<\\n TLInstancePresence,\\n \'currentPageId\' | \'userId\' | \'userName\'\\n>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLInstancePresence](/gen/tlschema/TLInstancePresence-interface)\\n\\n","LANGUAGES-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nLANGUAGES: readonly [\\n {\\n readonly locale: \'ar\'\\n readonly label: \'عربي\'\\n },\\n {\\n readonly locale: \'ca\'\\n readonly label: \'Català\'\\n },\\n {\\n readonly locale: \'da\'\\n readonly label: \'Danish\'\\n },\\n {\\n readonly locale: \'de\'\\n readonly label: \'Deutsch\'\\n },\\n {\\n readonly locale: \'en\'\\n readonly label: \'English\'\\n },\\n {\\n readonly locale: \'es\'\\n readonly label: \'Español\'\\n },\\n {\\n readonly locale: \'fa\'\\n readonly label: \'فارسی\'\\n },\\n {\\n readonly locale: \'fi\'\\n readonly label: \'Suomi\'\\n },\\n {\\n readonly locale: \'fr\'\\n readonly label: \'Français\'\\n },\\n {\\n readonly locale: \'gl\'\\n readonly label: \'Galego\'\\n },\\n {\\n readonly locale: \'he\'\\n readonly label: \'עברית\'\\n },\\n {\\n readonly locale: \'it\'\\n readonly label: \'Italiano\'\\n },\\n {\\n readonly locale: \'ja\'\\n readonly label: \'日本語\'\\n },\\n {\\n readonly locale: \'ko-kr\'\\n readonly label: \'한국어\'\\n },\\n {\\n readonly locale: \'ku\'\\n readonly label: \'کوردی\'\\n },\\n {\\n readonly locale: \'hi-in\'\\n readonly label: \'हिन्दी\'\\n },\\n {\\n readonly locale: \'hu\'\\n readonly label: \'Magyar\'\\n },\\n {\\n readonly locale: \'my\'\\n readonly label: \'မြန်မာစာ\'\\n },\\n {\\n readonly locale: \'ne\'\\n readonly label: \'नेपाली\'\\n },\\n {\\n readonly locale: \'no\'\\n readonly label: \'Norwegian\'\\n },\\n {\\n readonly locale: \'pl\'\\n readonly label: \'Polski\'\\n },\\n {\\n readonly locale: \'pt-br\'\\n readonly label: \'Português - Brasil\'\\n },\\n {\\n readonly locale: \'pt-pt\'\\n readonly label: \'Português - Europeu\'\\n },\\n {\\n readonly locale: \'ro\'\\n readonly label: \'Română\'\\n },\\n {\\n readonly locale: \'ru\'\\n readonly label: \'Russian\'\\n },\\n {\\n readonly locale: \'sv\'\\n readonly label: \'Svenska\'\\n },\\n {\\n readonly locale: \'te\'\\n readonly label: \'తెలుగు\'\\n },\\n {\\n readonly locale: \'th\'\\n readonly label: \'ภาษาไทย\'\\n },\\n {\\n readonly locale: \'tr\'\\n readonly label: \'Türkçe\'\\n },\\n {\\n readonly locale: \'uk\'\\n readonly label: \'Ukrainian\'\\n },\\n {\\n readonly locale: \'vi\'\\n readonly label: \'Tiếng Việt\'\\n },\\n {\\n readonly locale: \'zh-cn\'\\n readonly label: \'Chinese - Simplified\'\\n },\\n {\\n readonly locale: \'zh-tw\'\\n readonly label: \'繁體中文 (台灣)\'\\n }\\n]\\n```\\n\\n","LineSegment2d-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [a](#LineSegment2d-a-member)\\n - [angle](#LineSegment2d-angle-member)\\n - [b](#LineSegment2d-b-member)\\n - [bounds](#LineSegment2d-bounds-member)\\n - [length](#LineSegment2d-length-member)\\n - [tangent](#LineSegment2d-tangent-member)\\n- [Methods](#methods)\\n - [Angle](#LineSegment2d-Angle-member-1)\\n - [getClosestPointTo](#LineSegment2d-getClosestPointTo-member-1)\\n - [getNormal](#LineSegment2d-getNormal-member-1)\\n - [getPath](#LineSegment2d-getPath-member-1)\\n - [getPoint](#LineSegment2d-getPoint-member-1)\\n - [getX](#LineSegment2d-getX-member-1)\\n - [getY](#LineSegment2d-getY-member-1)\\n - [Length](#LineSegment2d-Length-member-1)\\n - [Tangent](#LineSegment2d-Tangent-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass LineSegment2d extends BaseSegment2d {}\\n```\\n\\n##### References\\n\\n[BaseSegment2d](/gen/primitives/~BaseSegment2d-class), [LineSegment2dModel](/gen/primitives/LineSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `LineSegment2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#LineSegment2d-a-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\na: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `angle` \\\\{#LineSegment2d-angle-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget angle(): number\\n```\\n\\n---\\n\\n### `b` \\\\{#LineSegment2d-b-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nb: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `bounds` \\\\{#LineSegment2d-bounds-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget bounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `length` \\\\{#LineSegment2d-length-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget length(): number\\n```\\n\\n---\\n\\n### `tangent` \\\\{#LineSegment2d-tangent-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget tangent(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n## Methods\\n\\n### `Angle()` \\\\{#LineSegment2d-Angle-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n### `getClosestPointTo()` \\\\{#LineSegment2d-getClosestPointTo-member-1}\\n\\nPublic Method\\n\\nGet the closest point on the segment to an arbitrary point.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe arbitrary point.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n point: Vec2d\\n distance: number\\n}\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getNormal()` \\\\{#LineSegment2d-getNormal-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPath()` \\\\{#LineSegment2d-getPath-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`head`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `getPoint()` \\\\{#LineSegment2d-getPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getX()` \\\\{#LineSegment2d-getX-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `getY()` \\\\{#LineSegment2d-getY-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `Length()` \\\\{#LineSegment2d-Length-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n### `Tangent()` \\\\{#LineSegment2d-Tangent-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n","LineSegment2dModel-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [a](#LineSegment2dModel-a-member)\\n - [b](#LineSegment2dModel-b-member)\\n - [p](#LineSegment2dModel-p-member)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface LineSegment2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#LineSegment2dModel-a-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\na: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `b` \\\\{#LineSegment2dModel-b-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nb: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `p` \\\\{#LineSegment2dModel-p-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\np: number\\n```\\n\\n---\\n\\n","LineShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nLineShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLLineShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n","LineShapeSplineStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nLineShapeSplineStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'cubic\' | \'line\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","LineShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [hideResizeHandles](#LineShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#LineShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#LineShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#LineShapeUtil-hideSelectionBoundsFg-member)\\n - [isClosed](#LineShapeUtil-isClosed-member)\\n - [onHandleChange](#LineShapeUtil-onHandleChange-member)\\n - [onResize](#LineShapeUtil-onResize-member)\\n - [type](#LineShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#LineShapeUtil-component-member-1)\\n - [getBounds](#LineShapeUtil-getBounds-member-1)\\n - [getDefaultProps](#LineShapeUtil-getDefaultProps-member-1)\\n - [getHandles](#LineShapeUtil-getHandles-member-1)\\n - [getOutline](#LineShapeUtil-getOutline-member-1)\\n - [getOutlineSegments](#LineShapeUtil-getOutlineSegments-member-1)\\n - [hitTestLineSegment](#LineShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#LineShapeUtil-hitTestPoint-member-1)\\n - [indicator](#LineShapeUtil-indicator-member-1)\\n - [toSvg](#LineShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass LineShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `hideResizeHandles` \\\\{#LineShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: () => boolean\\n```\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#LineShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#LineShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#LineShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `isClosed` \\\\{#LineShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: () => boolean\\n```\\n\\n---\\n\\n### `onHandleChange` \\\\{#LineShapeUtil-onHandleChange-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange: TLOnHandleChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#LineShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n### `type` \\\\{#LineShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'line\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#LineShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | undefined\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#LineShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nimport(\'@tldraw/primitives\').Box2d\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#LineShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLLineShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n### `getHandles()` \\\\{#LineShapeUtil-getHandles-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[]\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getOutline()` \\\\{#LineShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegments()` \\\\{#LineShapeUtil-getOutlineSegments-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#LineShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#LineShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `indicator()` \\\\{#LineShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#LineShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","LoadingScreen-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","MatLike-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype MatLike = Matrix2d | Matrix2dModel\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n","Matrix2d-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [a](#Matrix2d-a-member)\\n - [b](#Matrix2d-b-member)\\n - [c](#Matrix2d-c-member)\\n - [d](#Matrix2d-d-member)\\n - [e](#Matrix2d-e-member)\\n - [f](#Matrix2d-f-member)\\n - [Scale](#Matrix2d-Scale-member)\\n- [Methods](#methods)\\n - [Absolute](#Matrix2d-Absolute-member-1)\\n - [applyToBounds](#Matrix2d-applyToBounds-member-1)\\n - [applyToPoint](#Matrix2d-applyToPoint-member-1)\\n - [applyToPoint](#Matrix2d-applyToPoint-member-1)\\n - [applyToPoints](#Matrix2d-applyToPoints-member-1)\\n - [applyToPoints](#Matrix2d-applyToPoints-member-1)\\n - [applyToXY](#Matrix2d-applyToXY-member-1)\\n - [clone](#Matrix2d-clone-member-1)\\n - [Compose](#Matrix2d-Compose-member-1)\\n - [decompose](#Matrix2d-decompose-member-1)\\n - [Decompose](#Matrix2d-Decompose-member-1)\\n - [decomposed](#Matrix2d-decomposed-member-1)\\n - [equals](#Matrix2d-equals-member-1)\\n - [From](#Matrix2d-From-member-1)\\n - [identity](#Matrix2d-identity-member-1)\\n - [Identity](#Matrix2d-Identity-member-1)\\n - [Inverse](#Matrix2d-Inverse-member-1)\\n - [invert](#Matrix2d-invert-member-1)\\n - [multiply](#Matrix2d-multiply-member-1)\\n - [Multiply](#Matrix2d-Multiply-member-1)\\n - [rotate](#Matrix2d-rotate-member-1)\\n - [Rotate](#Matrix2d-Rotate-member-1)\\n - [scale](#Matrix2d-scale-member-1)\\n - [setTo](#Matrix2d-setTo-member-1)\\n - [Smooth](#Matrix2d-Smooth-member-1)\\n - [toCssString](#Matrix2d-toCssString-member-1)\\n - [toCssString](#Matrix2d-toCssString-member-1)\\n - [translate](#Matrix2d-translate-member-1)\\n - [Translate](#Matrix2d-Translate-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Matrix2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Matrix2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`d`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`e`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`f`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#Matrix2d-a-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\na: number\\n```\\n\\n---\\n\\n### `b` \\\\{#Matrix2d-b-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nb: number\\n```\\n\\n---\\n\\n### `c` \\\\{#Matrix2d-c-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nc: number\\n```\\n\\n---\\n\\n### `d` \\\\{#Matrix2d-d-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nd: number\\n```\\n\\n---\\n\\n### `e` \\\\{#Matrix2d-e-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ne: number\\n```\\n\\n---\\n\\n### `f` \\\\{#Matrix2d-f-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nf: number\\n```\\n\\n---\\n\\n### `Scale` \\\\{#Matrix2d-Scale-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Scale: {\\n (x: number, y: number): Matrix2dModel\\n (x: number, y: number, cx: number, cy: number): Matrix2dModel\\n}\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n## Methods\\n\\n### `Absolute()` \\\\{#Matrix2d-Absolute-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `applyToBounds()` \\\\{#Matrix2d-applyToBounds-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `applyToPoint()` \\\\{#Matrix2d-applyToPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToPoint()` \\\\{#Matrix2d-applyToPoint-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToPoints()` \\\\{#Matrix2d-applyToPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToPoints()` \\\\{#Matrix2d-applyToPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToXY()` \\\\{#Matrix2d-applyToXY-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber[]\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type)\\n\\n---\\n\\n### `clone()` \\\\{#Matrix2d-clone-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Compose()` \\\\{#Matrix2d-Compose-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`matrices`\\n\\n\\n\\n\\n```ts\\nMatLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `decompose()` \\\\{#Matrix2d-decompose-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrixInfo\\n```\\n\\n##### References\\n\\n[MatrixInfo](/gen/primitives/MatrixInfo-interface)\\n\\n---\\n\\n### `Decompose()` \\\\{#Matrix2d-Decompose-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrixInfo\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [MatrixInfo](/gen/primitives/MatrixInfo-interface)\\n\\n---\\n\\n### `decomposed()` \\\\{#Matrix2d-decomposed-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrixInfo\\n```\\n\\n##### References\\n\\n[MatrixInfo](/gen/primitives/MatrixInfo-interface)\\n\\n---\\n\\n### `equals()` \\\\{#Matrix2d-equals-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatrix2d | Matrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `From()` \\\\{#Matrix2d-From-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `identity()` \\\\{#Matrix2d-identity-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Identity()` \\\\{#Matrix2d-Identity-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Inverse()` \\\\{#Matrix2d-Inverse-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `invert()` \\\\{#Matrix2d-invert-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `multiply()` \\\\{#Matrix2d-multiply-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatrix2d | Matrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `Multiply()` \\\\{#Matrix2d-Multiply-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m1`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`m2`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `rotate()` \\\\{#Matrix2d-rotate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cx`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cy`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Rotate()` \\\\{#Matrix2d-Rotate-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cx`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cy`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `scale()` \\\\{#Matrix2d-scale-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Matrix2d-setTo-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`model`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `Smooth()` \\\\{#Matrix2d-Smooth-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`precision`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatLike\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type)\\n\\n---\\n\\n### `toCssString()` \\\\{#Matrix2d-toCssString-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `toCssString()` \\\\{#Matrix2d-toCssString-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type)\\n\\n---\\n\\n### `translate()` \\\\{#Matrix2d-translate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Translate()` \\\\{#Matrix2d-Translate-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n","Matrix2dModel-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [a](#Matrix2dModel-a-member)\\n - [b](#Matrix2dModel-b-member)\\n - [c](#Matrix2dModel-c-member)\\n - [d](#Matrix2dModel-d-member)\\n - [e](#Matrix2dModel-e-member)\\n - [f](#Matrix2dModel-f-member)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface Matrix2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#Matrix2dModel-a-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\na: number\\n```\\n\\n---\\n\\n### `b` \\\\{#Matrix2dModel-b-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nb: number\\n```\\n\\n---\\n\\n### `c` \\\\{#Matrix2dModel-c-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nc: number\\n```\\n\\n---\\n\\n### `d` \\\\{#Matrix2dModel-d-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nd: number\\n```\\n\\n---\\n\\n### `e` \\\\{#Matrix2dModel-e-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ne: number\\n```\\n\\n---\\n\\n### `f` \\\\{#Matrix2dModel-f-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nf: number\\n```\\n\\n---\\n\\n","MatrixInfo-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [rotation](#MatrixInfo-rotation-member)\\n - [scaleX](#MatrixInfo-scaleX-member)\\n - [scaleY](#MatrixInfo-scaleY-member)\\n - [x](#MatrixInfo-x-member)\\n - [y](#MatrixInfo-y-member)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface MatrixInfo {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `rotation` \\\\{#MatrixInfo-rotation-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrotation: number\\n```\\n\\n---\\n\\n### `scaleX` \\\\{#MatrixInfo-scaleX-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscaleX: number\\n```\\n\\n---\\n\\n### `scaleY` \\\\{#MatrixInfo-scaleY-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscaleY: number\\n```\\n\\n---\\n\\n### `x` \\\\{#MatrixInfo-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#MatrixInfo-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","Migration-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype Migration = {\\n up: (oldState: Before) => After\\n down: (newState: After) => Before\\n}\\n```\\n\\n","MigrationFailureReason-enum":"Public Enum\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nenum MigrationFailureReason {}\\n```\\n\\n","MigrationResult-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype MigrationResult =\\n | {\\n type: \'error\'\\n reason: MigrationFailureReason\\n }\\n | {\\n type: \'success\'\\n value: T\\n }\\n```\\n\\n##### References\\n\\n[MigrationFailureReason](/gen/store/MigrationFailureReason-enum)\\n\\n","Migrations-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [subTypeKey](#Migrations-subTypeKey-member)\\n - [subTypeMigrations](#Migrations-subTypeMigrations-member)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface Migrations extends BaseMigrationsInfo {}\\n```\\n\\n##### References\\n\\n[BaseMigrationsInfo](/gen/store/~BaseMigrationsInfo-interface)\\n\\n---\\n\\n## Properties\\n\\n### `subTypeKey` \\\\{#Migrations-subTypeKey-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nsubTypeKey?: string\\n```\\n\\n---\\n\\n### `subTypeMigrations` \\\\{#Migrations-subTypeMigrations-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nsubTypeMigrations?: Record\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [BaseMigrationsInfo](/gen/store/~BaseMigrationsInfo-interface)\\n\\n---\\n\\n","NoteShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nNoteShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLNoteShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n","NoteShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canEdit](#NoteShapeUtil-canEdit-member)\\n - [hideResizeHandles](#NoteShapeUtil-hideResizeHandles-member)\\n - [hideSelectionBoundsBg](#NoteShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#NoteShapeUtil-hideSelectionBoundsFg-member)\\n - [onBeforeCreate](#NoteShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#NoteShapeUtil-onBeforeUpdate-member)\\n - [onEditEnd](#NoteShapeUtil-onEditEnd-member)\\n - [type](#NoteShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#NoteShapeUtil-component-member-1)\\n - [getBounds](#NoteShapeUtil-getBounds-member-1)\\n - [getCenter](#NoteShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#NoteShapeUtil-getDefaultProps-member-1)\\n - [getHeight](#NoteShapeUtil-getHeight-member-1)\\n - [getOutline](#NoteShapeUtil-getOutline-member-1)\\n - [indicator](#NoteShapeUtil-indicator-member-1)\\n - [toSvg](#NoteShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass NoteShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#NoteShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#NoteShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#NoteShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#NoteShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#NoteShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate: (next: TLNoteShape) =>\\n | {\\n props: {\\n growY: number\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n text: string\\n }\\n type: \'note\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#NoteShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate: (\\n prev: TLNoteShape,\\n next: TLNoteShape\\n) =>\\n | {\\n props: {\\n growY: number\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n text: string\\n }\\n type: \'note\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#NoteShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n### `type` \\\\{#NoteShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'note\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#NoteShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#NoteShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#NoteShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#NoteShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLNoteShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n### `getHeight()` \\\\{#NoteShapeUtil-getHeight-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#NoteShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `indicator()` \\\\{#NoteShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#NoteShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","PI-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPI: number\\n```\\n\\n","PI2-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPI2: number\\n```\\n\\n","PageRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPageRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n","PlopManager-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [editor](#PlopManager-editor-member)\\n - [handleContent](#PlopManager-handleContent-member)\\n - [handleUrl](#PlopManager-handleUrl-member)\\n- [Methods](#methods)\\n - [createAssetFromFile](#PlopManager-createAssetFromFile-member-1)\\n - [createAssetFromUrl](#PlopManager-createAssetFromUrl-member-1)\\n - [createShapesForAssets](#PlopManager-createShapesForAssets-member-1)\\n - [handleEmbed](#PlopManager-handleEmbed-member-1)\\n - [handleFiles](#PlopManager-handleFiles-member-1)\\n - [handleSvgText](#PlopManager-handleSvgText-member-1)\\n - [handleText](#PlopManager-handleText-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ExternalContentManager {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `ExternalContentManager` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n## Properties\\n\\n### `editor` \\\\{#PlopManager-editor-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\neditor: Editor\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n### `handleContent` \\\\{#PlopManager-handleContent-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhandleContent: (info: TLExternalContent) => Promise\\n```\\n\\n##### References\\n\\n[TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleUrl` \\\\{#PlopManager-handleUrl-member}\\n\\nPublic Property\\n\\nHandle urls from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleUrl = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\nThe info object describing the external content.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhandleUrl: (\\n editor: Editor,\\n {\\n point,\\n url,\\n }: Extract<\\n TLExternalContent,\\n {\\n type: \'url\'\\n }\\n >\\n) => Promise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n## Methods\\n\\n### `createAssetFromFile()` \\\\{#PlopManager-createAssetFromFile-member-1}\\n\\nPublic Method\\n\\nOverride this method to change how assets are created from files.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`file`\\n\\n\\n\\n\\n```ts\\nFile\\n```\\n\\nThe file to create the asset from.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [File](/gen/File-interface), [Promise](/gen/Promise-interface), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `createAssetFromUrl()` \\\\{#PlopManager-createAssetFromUrl-member-1}\\n\\nPublic Method\\n\\nOverride me to change the way assets are created from urls.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`url`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe url to create the asset from\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Promise](/gen/Promise-interface), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `createShapesForAssets()` \\\\{#PlopManager-createShapesForAssets-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`assets`\\n\\n\\n\\n\\n```ts\\nTLAsset[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`position`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [TLAsset](/gen/tlschema/TLAsset-type), [VecLike](/gen/primitives/VecLike-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleEmbed()` \\\\{#PlopManager-handleEmbed-member-1}\\n\\nPublic Method\\n\\nHandle embed info from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleEmbed = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, url, embed }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'embed\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleFiles()` \\\\{#PlopManager-handleFiles-member-1}\\n\\nPublic Method\\n\\nHandle files from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleFiles = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, files }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'files\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleSvgText()` \\\\{#PlopManager-handleSvgText-member-1}\\n\\nPublic Method\\n\\nHandle svg text from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleSvgText = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, text }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'svg-text\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleText()` \\\\{#PlopManager-handleText-member-1}\\n\\nPublic Method\\n\\nHandle plain text from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleText = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, text }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'text\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n","PointerRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPointerRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLPointer](/gen/tlschema/~TLPointer-interface)\\n\\n","Polyline2d-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [segments](#Polyline2d-segments-member)\\n- [Methods](#methods)\\n - [FromPoints](#Polyline2d-FromPoints-member-1)\\n - [getSegmentsFromPoints](#Polyline2d-getSegmentsFromPoints-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Polyline2d extends BaseSpline2d {}\\n```\\n\\n##### References\\n\\n[BaseSpline2d](/gen/primitives/~BaseSpline2d-class), [LineSegment2dModel](/gen/primitives/LineSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Polyline2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`k`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `segments` \\\\{#Polyline2d-segments-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nsegments: LineSegment2d[]\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n## Methods\\n\\n### `FromPoints()` \\\\{#Polyline2d-FromPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPolyline2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Polyline2d](/gen/primitives/Polyline2d-class)\\n\\n---\\n\\n### `getSegmentsFromPoints()` \\\\{#Polyline2d-getSegmentsFromPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nLineSegment2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n","ROTATE_CORNER_TO_SELECTION_CORNER-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nROTATE_CORNER_TO_SELECTION_CORNER: {\\n readonly top_left_rotate: \'top_left\'\\n readonly top_right_rotate: \'top_right\'\\n readonly bottom_right_rotate: \'bottom_right\'\\n readonly bottom_left_rotate: \'bottom_left\'\\n readonly mobile_rotate: \'top_left\'\\n}\\n```\\n\\n","ReadonlySharedStyleMap-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [map](#ReadonlySharedStyleMap-map-member)\\n - [size](#ReadonlySharedStyleMap-size-member)\\n- [Methods](#methods)\\n - [[Symbol.iterator]](#ReadonlySharedStyleMap-[Symbol-iterator]-member-1)\\n - [entries](#ReadonlySharedStyleMap-entries-member-1)\\n - [equals](#ReadonlySharedStyleMap-equals-member-1)\\n - [get](#ReadonlySharedStyleMap-get-member-1)\\n - [getAsKnownValue](#ReadonlySharedStyleMap-getAsKnownValue-member-1)\\n - [keys](#ReadonlySharedStyleMap-keys-member-1)\\n - [values](#ReadonlySharedStyleMap-values-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ReadonlySharedStyleMap {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `ReadonlySharedStyleMap` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`entries`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nIterable<\\n [StyleProp, SharedStyle]\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Iterable](/gen/Iterable-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n## Properties\\n\\n### `map` \\\\{#ReadonlySharedStyleMap-map-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nprotected map: Map, SharedStyle>\\n```\\n\\n##### References\\n\\n[Map](/gen/Map-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `size` \\\\{#ReadonlySharedStyleMap-size-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget size(): number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `[Symbol.iterator]()` \\\\{#ReadonlySharedStyleMap-[Symbol-iterator]-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<[StyleProp, SharedStyle]>\\n```\\n\\n##### References\\n\\n[Symbol.iterator](/gen/SymbolConstructor-iterator), [IterableIterator](/gen/IterableIterator-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `entries()` \\\\{#ReadonlySharedStyleMap-entries-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<[StyleProp, SharedStyle]>\\n```\\n\\n##### References\\n\\n[IterableIterator](/gen/IterableIterator-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `equals()` \\\\{#ReadonlySharedStyleMap-equals-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`other`\\n\\n\\n\\n\\n```ts\\nReadonlySharedStyleMap\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[ReadonlySharedStyleMap](/gen/editor/ReadonlySharedStyleMap-class)\\n\\n---\\n\\n### `get()` \\\\{#ReadonlySharedStyleMap-get-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prop`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSharedStyle | undefined\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `getAsKnownValue()` \\\\{#ReadonlySharedStyleMap-getAsKnownValue-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prop`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT | undefined\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `keys()` \\\\{#ReadonlySharedStyleMap-keys-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator>\\n```\\n\\n##### References\\n\\n[IterableIterator](/gen/IterableIterator-interface), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `values()` \\\\{#ReadonlySharedStyleMap-values-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator>\\n```\\n\\n##### References\\n\\n[IterableIterator](/gen/IterableIterator-interface), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n","RecordId-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordId = string & {\\n __type__: R\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","RecordType-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [createDefaultProperties](#RecordType-createDefaultProperties-member)\\n - [isInstance](#RecordType-isInstance-member)\\n - [migrations](#RecordType-migrations-member)\\n - [scope](#RecordType-scope-member)\\n - [typeName](#RecordType-typeName-member)\\n - [validator](#RecordType-validator-member)\\n- [Methods](#methods)\\n - [clone](#RecordType-clone-member-1)\\n - [create](#RecordType-create-member-1)\\n - [createCustomId](#RecordType-createCustomId-member-1)\\n - [createId](#RecordType-createId-member-1)\\n - [isId](#RecordType-isId-member-1)\\n - [parseId](#RecordType-parseId-member-1)\\n - [validate](#RecordType-validate-member-1)\\n - [withDefaultProperties](#RecordType-withDefaultProperties-member-1)\\n \\n\\nA record type is a type that can be stored in a record store. It is created with `createRecordType`.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass RecordType<\\n R extends UnknownRecord,\\n RequiredProperties extends keyof Omit\\n> {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Omit](/gen/Omit-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `RecordType` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`typeName`\\n\\n\\n\\n\\n```ts\\nR[\'typeName\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`config`\\n\\n\\n\\n\\n```ts\\n{\\n readonly createDefaultProperties: () => Exclude<\\n OmitMeta,\\n RequiredProperties\\n >\\n readonly migrations: Migrations\\n readonly validator?:\\n | {\\n validate: (r: unknown) => R\\n }\\n | StoreValidator\\n readonly scope?: RecordScope\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type), [OmitMeta](/gen/store/~OmitMeta-type), [Migrations](/gen/store/Migrations-interface), [StoreValidator](/gen/store/StoreValidator-type), [RecordScope](/gen/store/~RecordScope-type)\\n\\n---\\n\\n## Properties\\n\\n### `createDefaultProperties` \\\\{#RecordType-createDefaultProperties-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly createDefaultProperties: () => Exclude<\\n OmitMeta,\\n RequiredProperties\\n>\\n```\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type), [OmitMeta](/gen/store/~OmitMeta-type)\\n\\n---\\n\\n### `isInstance` \\\\{#RecordType-isInstance-member}\\n\\nPublic Property\\n\\nCheck whether a record is an instance of this record type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst result = recordType.isInstance(someRecord)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\nThe record to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisInstance: (record?: UnknownRecord) => record is R\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [record](/gen/store/~record)\\n\\n---\\n\\n### `migrations` \\\\{#RecordType-migrations-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly migrations: Migrations\\n```\\n\\n##### References\\n\\n[Migrations](/gen/store/Migrations-interface)\\n\\n---\\n\\n### `scope` \\\\{#RecordType-scope-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly scope: RecordScope\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type)\\n\\n---\\n\\n### `typeName` \\\\{#RecordType-typeName-member}\\n\\nPublic Readonly Property\\n\\nThe unique type associated with this record.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly typeName: R[\'typeName\']\\n```\\n\\n---\\n\\n### `validator` \\\\{#RecordType-validator-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly validator:\\n | {\\n validate: (r: unknown) => R\\n }\\n | StoreValidator\\n```\\n\\n##### References\\n\\n[StoreValidator](/gen/store/StoreValidator-type)\\n\\n---\\n\\n## Methods\\n\\n### `clone()` \\\\{#RecordType-clone-member-1}\\n\\nPublic Method\\n\\nClone a record of this type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nR\\n```\\n\\nThe record to clone.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n The cloned record.\\n\\n\\n---\\n\\n### `create()` \\\\{#RecordType-create-member-1}\\n\\nPublic Method\\n\\nCreate a new record of this type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`properties`\\n\\n\\n\\n\\n```ts\\nPick &\\n Omit, RequiredProperties>\\n```\\n\\nThe properties of the record.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n The new record.\\n\\n\\n##### References\\n\\n[Pick](/gen/Pick-type), [Omit](/gen/Omit-type), [Partial](/gen/Partial-type)\\n\\n---\\n\\n### `createCustomId()` \\\\{#RecordType-createCustomId-member-1}\\n\\nPublic Method\\n\\nCreate a new ID for this record type based on the given ID.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst id = recordType.createCustomId(\'myId\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe ID to base the new ID on.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nIdOf\\n```\\n\\n The new ID.\\n\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `createId()` \\\\{#RecordType-createId-member-1}\\n\\nPublic Method\\n\\nCreate a new ID for this record type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst id = recordType.createId()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`customUniquePart`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nIdOf\\n```\\n\\n The new ID.\\n\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `isId()` \\\\{#RecordType-isId-member-1}\\n\\nPublic Method\\n\\nCheck whether an id is an id of this type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst result = recordType.isIn(\'someId\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nid is IdOf\\n```\\n\\n Whether the id is an id of this type.\\n\\n\\n##### References\\n\\n[id](/gen/store/~id), [IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `parseId()` \\\\{#RecordType-parseId-member-1}\\n\\nPublic Method\\n\\nTakes an id like `user:123` and returns the part after the colon `123`\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nIdOf\\n```\\n\\nThe id\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `validate()` \\\\{#RecordType-validate-member-1}\\n\\nPublic Method\\n\\nCheck that the passed in record passes the validations for this type. Returns its input correctly typed if it does, but throws an error otherwise.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n---\\n\\n### `withDefaultProperties()` \\\\{#RecordType-withDefaultProperties-member-1}\\n\\nPublic Method\\n\\nCreate a new RecordType that has the same type name as this RecordType and includes the given default properties.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst authorType = createRecordType(\'author\', () => ({ living: true }))\\nconst deadAuthorType = authorType.withDefaultProperties({ living: false })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`createDefaultProperties`\\n\\n\\n\\n\\n```ts\\n() => DefaultProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordType>\\n```\\n\\n The new RecordType.\\n\\n\\n##### References\\n\\n[Omit](/gen/Omit-type), [Partial](/gen/Partial-type), [RecordType](/gen/store/RecordType-class), [Exclude](/gen/Exclude-type)\\n\\n---\\n\\n","RecordVersion-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordVersion = {\\n rootVersion: number\\n subTypeVersion?: number\\n}\\n```\\n\\n","RecordsDiff-type":"Public TypeAlias\\n\\nA diff describing the changes to a record.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordsDiff = {\\n added: Record, R>\\n updated: Record, [from: R, to: R]>\\n removed: Record, R>\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Record](/gen/Record-type), [IdOf](/gen/store/IdOf-type)\\n\\n","RequiredKeys-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RequiredKeys = Pick & Partial\\n```\\n\\n##### References\\n\\n[Pick](/gen/Pick-type), [Partial](/gen/Partial-type)\\n\\n","RotateCorner-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RotateCorner =\\n | \'bottom_left_rotate\'\\n | \'bottom_right_rotate\'\\n | \'mobile_rotate\'\\n | \'top_left_rotate\'\\n | \'top_right_rotate\'\\n```\\n\\n","SIN-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nSIN: (x: number) => number\\n```\\n\\n","SVGContainer-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, className, ...rest }`\\n\\n\\n\\n\\n```ts\\nSVGContainerProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[SVGContainerProps](/gen/editor/SVGContainerProps-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","SVGContainerProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SVGContainerProps = React.HTMLAttributes\\n```\\n\\n##### References\\n\\n[React.HTMLAttributes](/gen/@types/react-React-HTMLAttributes-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n","SchemaShapeInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SchemaShapeInfo = {\\n migrations?: Migrations\\n props?: Record<\\n string,\\n {\\n validate: (prop: any) => any\\n }\\n >\\n}\\n```\\n\\n##### References\\n\\n[Migrations](/gen/store/Migrations-interface), [Record](/gen/Record-type)\\n\\n","SelectionCorner-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SelectionCorner = \'bottom_left\' | \'bottom_right\' | \'top_left\' | \'top_right\'\\n```\\n\\n","SelectionEdge-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SelectionEdge = \'bottom\' | \'left\' | \'right\' | \'top\'\\n```\\n\\n","SelectionHandle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SelectionHandle = SelectionCorner | SelectionEdge\\n```\\n\\n##### References\\n\\n[SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n","SerializedSchema-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [recordVersions](#SerializedSchema-recordVersions-member)\\n - [schemaVersion](#SerializedSchema-schemaVersion-member)\\n - [storeVersion](#SerializedSchema-storeVersion-member)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface SerializedSchema {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `recordVersions` \\\\{#SerializedSchema-recordVersions-member}\\n\\nPublic PropertySignature\\n\\nRecord versions are the versions for each record type. e.g. adding a new field to a record\\n\\n\\n##### Signature\\n\\n\\n```ts\\nrecordVersions: Record<\\n string,\\n | {\\n version: number\\n subTypeVersions: Record\\n subTypeKey: string\\n }\\n | {\\n version: number\\n }\\n>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type)\\n\\n---\\n\\n### `schemaVersion` \\\\{#SerializedSchema-schemaVersion-member}\\n\\nPublic PropertySignature\\n\\nSchema version is the version for this type you\'re looking at right now\\n\\n\\n##### Signature\\n\\n\\n```ts\\nschemaVersion: number\\n```\\n\\n---\\n\\n### `storeVersion` \\\\{#SerializedSchema-storeVersion-member}\\n\\nPublic PropertySignature\\n\\nStore version is the version for the structure of the store. e.g. higher level structure like removing or renaming a record type.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstoreVersion: number\\n```\\n\\n---\\n\\n","ShapeProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype ShapeProps> = {\\n [K in keyof Shape[\'props\']]: T.Validatable\\n}\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [T.Validatable](/gen/validate/Validatable-type)\\n\\n","ShapeUtil-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [canBind](#ShapeUtil-canBind-member)\\n - [canCrop](#ShapeUtil-canCrop-member)\\n - [canEdit](#ShapeUtil-canEdit-member)\\n - [canResize](#ShapeUtil-canResize-member)\\n - [canScroll](#ShapeUtil-canScroll-member)\\n - [canSnap](#ShapeUtil-canSnap-member)\\n - [canUnmount](#ShapeUtil-canUnmount-member)\\n - [editor](#ShapeUtil-editor-member)\\n - [hideResizeHandles](#ShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#ShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#ShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#ShapeUtil-hideSelectionBoundsFg-member)\\n - [isAspectRatioLocked](#ShapeUtil-isAspectRatioLocked-member)\\n - [isClosed](#ShapeUtil-isClosed-member)\\n - [onBeforeCreate](#ShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#ShapeUtil-onBeforeUpdate-member)\\n - [onChildrenChange](#ShapeUtil-onChildrenChange-member)\\n - [onClick](#ShapeUtil-onClick-member)\\n - [onDoubleClick](#ShapeUtil-onDoubleClick-member)\\n - [onDoubleClickEdge](#ShapeUtil-onDoubleClickEdge-member)\\n - [onDoubleClickHandle](#ShapeUtil-onDoubleClickHandle-member)\\n - [onDragShapesOut](#ShapeUtil-onDragShapesOut-member)\\n - [onDragShapesOver](#ShapeUtil-onDragShapesOver-member)\\n - [onDropShapesOver](#ShapeUtil-onDropShapesOver-member)\\n - [onEditEnd](#ShapeUtil-onEditEnd-member)\\n - [onHandleChange](#ShapeUtil-onHandleChange-member)\\n - [onResize](#ShapeUtil-onResize-member)\\n - [onResizeEnd](#ShapeUtil-onResizeEnd-member)\\n - [onResizeStart](#ShapeUtil-onResizeStart-member)\\n - [onRotate](#ShapeUtil-onRotate-member)\\n - [onRotateEnd](#ShapeUtil-onRotateEnd-member)\\n - [onRotateStart](#ShapeUtil-onRotateStart-member)\\n - [onTranslate](#ShapeUtil-onTranslate-member)\\n - [onTranslateEnd](#ShapeUtil-onTranslateEnd-member)\\n - [onTranslateStart](#ShapeUtil-onTranslateStart-member)\\n - [styleProps](#ShapeUtil-styleProps-member)\\n - [type](#ShapeUtil-type-member)\\n - [type](#ShapeUtil-type-member)\\n- [Methods](#methods)\\n - [canDropShapes](#ShapeUtil-canDropShapes-member-1)\\n - [canReceiveNewChildrenOfType](#ShapeUtil-canReceiveNewChildrenOfType-member-1)\\n - [center](#ShapeUtil-center-member-1)\\n - [component](#ShapeUtil-component-member-1)\\n - [getBounds](#ShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#ShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#ShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#ShapeUtil-getDefaultProps-member-1)\\n - [getHandles](#ShapeUtil-getHandles-member-1)\\n - [getOutline](#ShapeUtil-getOutline-member-1)\\n - [getOutlineSegments](#ShapeUtil-getOutlineSegments-member-1)\\n - [hitTestLineSegment](#ShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#ShapeUtil-hitTestPoint-member-1)\\n - [indicator](#ShapeUtil-indicator-member-1)\\n - [setStyleInPartial](#ShapeUtil-setStyleInPartial-member-1)\\n - [snapPoints](#ShapeUtil-snapPoints-member-1)\\n - [toBackgroundSvg](#ShapeUtil-toBackgroundSvg-member-1)\\n - [toSvg](#ShapeUtil-toSvg-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class ShapeUtil {}\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `ShapeUtil` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nShape[\'type\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`styleProps`\\n\\n\\n\\n\\n```ts\\nReadonlyMap, string>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [ReadonlyMap](/gen/ReadonlyMap-interface), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#ShapeUtil-canBind-member}\\n\\nPublic Property\\n\\nWhether the shape can be bound to by an arrow.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_otherShape`\\n\\n\\n\\n\\nThe other shape attempting to bind to this shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: (_shape: Shape, _otherShape?: K | undefined) => boolean\\n```\\n\\n---\\n\\n### `canCrop` \\\\{#ShapeUtil-canCrop-member}\\n\\nPublic Property\\n\\nWhether the shape can be cropped.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanCrop: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canEdit` \\\\{#ShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\nWhether the shape can be double clicked to edit.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canResize` \\\\{#ShapeUtil-canResize-member}\\n\\nPublic Property\\n\\nWhether the shape can be resized.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canScroll` \\\\{#ShapeUtil-canScroll-member}\\n\\nPublic Property\\n\\nWhether the shape can be scrolled while editing.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanScroll: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canSnap` \\\\{#ShapeUtil-canSnap-member}\\n\\nPublic Property\\n\\nWhether the shape can be snapped to by another shape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanSnap: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canUnmount` \\\\{#ShapeUtil-canUnmount-member}\\n\\nPublic Property\\n\\nWhether the shape should unmount when not visible in the editor. Consider keeping this to false if the shape\'s `component` has local state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanUnmount: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `editor` \\\\{#ShapeUtil-editor-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\neditor: Editor\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#ShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its resize handles when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#ShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its resize handles when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#ShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its selection bounds background when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#ShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its selection bounds foreground when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#ShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\nWhether the shape\'s aspect ratio is locked.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `isClosed` \\\\{#ShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\nWhether the shape\'s outline is closed.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#ShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\nA callback called just before a shape is created. This method provides a last chance to modify the created shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nonBeforeCreate = (next) => {\\n return { ...next, x: next.x + 1 }\\n}\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\nThe next shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate?: TLOnBeforeCreateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeCreateHandler](/gen/editor/TLOnBeforeCreateHandler-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#ShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\nA callback called just before a shape is updated. This method provides a last chance to modify the updated shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nonBeforeUpdate = (prev, next) => {\\n if (prev.x === next.x) {\\n return { ...next, x: next.x + 1 }\\n }\\n}\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe previous shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\nThe next shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate?: TLOnBeforeUpdateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeUpdateHandler](/gen/editor/TLOnBeforeUpdateHandler-type)\\n\\n---\\n\\n### `onChildrenChange` \\\\{#ShapeUtil-onChildrenChange-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s children change.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonChildrenChange?: TLOnChildrenChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnChildrenChangeHandler](/gen/editor/TLOnChildrenChangeHandler-type)\\n\\n---\\n\\n### `onClick` \\\\{#ShapeUtil-onClick-member}\\n\\nPublic Property\\n\\nA callback called when a shape is clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonClick?: TLOnClickHandler\\n```\\n\\n##### References\\n\\n[TLOnClickHandler](/gen/editor/TLOnClickHandler-type)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#ShapeUtil-onDoubleClick-member}\\n\\nPublic Property\\n\\nA callback called when a shape is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick?: TLOnDoubleClickHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type)\\n\\n---\\n\\n### `onDoubleClickEdge` \\\\{#ShapeUtil-onDoubleClickEdge-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s edge is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickEdge?: TLOnDoubleClickHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type)\\n\\n---\\n\\n### `onDoubleClickHandle` \\\\{#ShapeUtil-onDoubleClickHandle-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s handle is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\nThe handle that is double-clicked.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickHandle?: TLOnDoubleClickHandleHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandleHandler](/gen/editor/TLOnDoubleClickHandleHandler-type)\\n\\n---\\n\\n### `onDragShapesOut` \\\\{#ShapeUtil-onDragShapesOut-member}\\n\\nPublic Property\\n\\nA callback called when some other shapes are dragged out of this one.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\nThe shapes that are being dragged out.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOut?: TLOnDragHandler\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onDragShapesOver` \\\\{#ShapeUtil-onDragShapesOver-member}\\n\\nPublic Property\\n\\nA callback called when some other shapes are dragged over this one.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nonDragShapesOver = (shape, shapes) => {\\n return { shouldHint: true }\\n}\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\nThe shapes that are being dragged over this one.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOver?: TLOnDragHandler<\\n Shape,\\n {\\n shouldHint: boolean\\n }\\n>\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onDropShapesOver` \\\\{#ShapeUtil-onDropShapesOver-member}\\n\\nPublic Property\\n\\nA callback called when some other shapes are dropped over this one.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\nThe shapes that are being dropped over this one.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDropShapesOver?: TLOnDragHandler\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#ShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes being editing.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd?: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type)\\n\\n---\\n\\n### `onHandleChange` \\\\{#ShapeUtil-onHandleChange-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s handle changes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\nAn object containing the handle and whether the handle is \'precise\' or not.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange?: TLOnHandleChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type)\\n\\n---\\n\\n### `onResize` \\\\{#ShapeUtil-onResize-member}\\n\\nPublic Property\\n\\nA callback called when a shape changes from a resize.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\nInfo about the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonResize?: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type)\\n\\n---\\n\\n### `onResizeEnd` \\\\{#ShapeUtil-onResizeEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes resizing.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeEnd?: TLOnResizeEndHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeEndHandler](/gen/editor/TLOnResizeEndHandler-type)\\n\\n---\\n\\n### `onResizeStart` \\\\{#ShapeUtil-onResizeStart-member}\\n\\nPublic Property\\n\\nA callback called when a shape starts being resized.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeStart?: TLOnResizeStartHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeStartHandler](/gen/editor/TLOnResizeStartHandler-type)\\n\\n---\\n\\n### `onRotate` \\\\{#ShapeUtil-onRotate-member}\\n\\nPublic Property\\n\\nA callback called when a shape changes from a rotation.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the rotation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonRotate?: TLOnRotateHandler\\n```\\n\\n##### References\\n\\n[TLOnRotateHandler](/gen/editor/TLOnRotateHandler-type)\\n\\n---\\n\\n### `onRotateEnd` \\\\{#ShapeUtil-onRotateEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes rotating.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the rotation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonRotateEnd?: TLOnRotateEndHandler\\n```\\n\\n##### References\\n\\n[TLOnRotateEndHandler](/gen/editor/TLOnRotateEndHandler-type)\\n\\n---\\n\\n### `onRotateStart` \\\\{#ShapeUtil-onRotateStart-member}\\n\\nPublic Property\\n\\nA callback called when a shape starts being rotated.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonRotateStart?: TLOnRotateStartHandler\\n```\\n\\n##### References\\n\\n[TLOnRotateStartHandler](/gen/editor/TLOnRotateStartHandler-type)\\n\\n---\\n\\n### `onTranslate` \\\\{#ShapeUtil-onTranslate-member}\\n\\nPublic Property\\n\\nA callback called when a shape changes from a translation.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the translation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslate?: TLOnTranslateHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateHandler](/gen/editor/TLOnTranslateHandler-type)\\n\\n---\\n\\n### `onTranslateEnd` \\\\{#ShapeUtil-onTranslateEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes translating.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the translation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateEnd?: TLOnTranslateEndHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateEndHandler](/gen/editor/TLOnTranslateEndHandler-type)\\n\\n---\\n\\n### `onTranslateStart` \\\\{#ShapeUtil-onTranslateStart-member}\\n\\nPublic Property\\n\\nA callback called when a shape starts being translated.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateStart?: TLOnTranslateStartHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateStartHandler](/gen/editor/TLOnTranslateStartHandler-type)\\n\\n---\\n\\n### `styleProps` \\\\{#ShapeUtil-styleProps-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly styleProps: ReadonlyMap, string>\\n```\\n\\n##### References\\n\\n[ReadonlyMap](/gen/ReadonlyMap-interface), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `type` \\\\{#ShapeUtil-type-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly type: Shape[\'type\']\\n```\\n\\n---\\n\\n### `type` \\\\{#ShapeUtil-type-member}\\n\\nPublic Static Property\\n\\nThe type of the shape util, which should match the shape\'s type.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: string\\n```\\n\\n---\\n\\n## Methods\\n\\n### `canDropShapes()` \\\\{#ShapeUtil-canDropShapes-member-1}\\n\\nPublic Method\\n\\nGet whether the shape can receive children of a given type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape type.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes that are being dropped.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `canReceiveNewChildrenOfType()` \\\\{#ShapeUtil-canReceiveNewChildrenOfType-member-1}\\n\\nPublic Method\\n\\nGet whether the shape can receive children of a given type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nTLShape[\'type\']\\n```\\n\\nThe shape type.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `center()` \\\\{#ShapeUtil-center-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s cached center.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `component()` \\\\{#ShapeUtil-component-member-1}\\n\\nPublic Method\\n\\nGet a JSX element for the shape (as an HTML element).\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nany\\n```\\n\\n---\\n\\n### `getBounds()` \\\\{#ShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\nGet the (not cached) bounds for the shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#ShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\nReturn elements to be added to the \\\\ section of the canvases SVG context. This can be used to define SVG content (e.g. patterns & masks) that can be referred to by ID from svg elements returned by `component`.\\n\\n\\nEach def should have a unique `key`. If multiple defs from different shapes all have the same key, only one will be used.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#ShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s (not cached) center.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#ShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\nGet the default props for a shape.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nShape[\'props\']\\n```\\n\\n---\\n\\n### `getHandles()` \\\\{#ShapeUtil-getHandles-member-1}\\n\\nPublic Method\\n\\nGet an array of handle models for the shape. This is an optional method.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nutil.getHandles?.(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[]\\n```\\n\\n##### References\\n\\n[TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getOutline()` \\\\{#ShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s (not cached) outline.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegments()` \\\\{#ShapeUtil-getOutlineSegments-member-1}\\n\\nPublic Method\\n\\nGet an array of outline segments for the shape. For most shapes, this will be a single segment that includes the entire outline. For shapes with handles, this might be segments of the outline between each handle.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nutil.getOutlineSegments(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#ShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\nGet whether a point intersects the shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe line segment\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe line segment\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Whether the line segment intersects the shape.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#ShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\nGet whether a point intersects the shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to test.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Whether the point intersects the shape.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#ShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\nGet JSX describing the shape\'s indicator (as an SVG element).\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nany\\n```\\n\\n---\\n\\n### `setStyleInPartial()` \\\\{#ShapeUtil-setStyleInPartial-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`style`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShapePartial\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapePartial\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `snapPoints()` \\\\{#ShapeUtil-snapPoints-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s snap points.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `toBackgroundSvg()` \\\\{#ShapeUtil-toBackgroundSvg-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s background layer as an SVG object.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\nctx - The export context for the SVG - used for adding e.g. \\\\s\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Promise | SVGElement\\n```\\n\\n An SVG element.\\n\\n\\n##### References\\n\\n[SvgExportContext](/gen/editor/~SvgExportContext-interface), [Promise](/gen/Promise-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#ShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\nGet the shape as an SVG object.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\nThe export context for the SVG - used for adding e.g. \\\\s\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise | SVGElement\\n```\\n\\n An SVG element.\\n\\n\\n##### References\\n\\n[SvgExportContext](/gen/editor/~SvgExportContext-interface), [Promise](/gen/Promise-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n","SharedStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SharedStyle =\\n | {\\n readonly type: \'mixed\'\\n }\\n | {\\n readonly type: \'shared\'\\n readonly value: T\\n }\\n```\\n\\n","StateNode-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [children](#StateNode-children-member)\\n - [children](#StateNode-children-member)\\n - [current](#StateNode-current-member)\\n - [editor](#StateNode-editor-member)\\n - [id](#StateNode-id-member)\\n - [id](#StateNode-id-member)\\n - [initial](#StateNode-initial-member)\\n - [initial](#StateNode-initial-member)\\n - [isActive](#StateNode-isActive-member)\\n - [onCancel](#StateNode-onCancel-member)\\n - [onComplete](#StateNode-onComplete-member)\\n - [onDoubleClick](#StateNode-onDoubleClick-member)\\n - [onEnter](#StateNode-onEnter-member)\\n - [onExit](#StateNode-onExit-member)\\n - [onInterrupt](#StateNode-onInterrupt-member)\\n - [onKeyDown](#StateNode-onKeyDown-member)\\n - [onKeyRepeat](#StateNode-onKeyRepeat-member)\\n - [onKeyUp](#StateNode-onKeyUp-member)\\n - [onMiddleClick](#StateNode-onMiddleClick-member)\\n - [onPointerDown](#StateNode-onPointerDown-member)\\n - [onPointerEnter](#StateNode-onPointerEnter-member)\\n - [onPointerLeave](#StateNode-onPointerLeave-member)\\n - [onPointerMove](#StateNode-onPointerMove-member)\\n - [onPointerUp](#StateNode-onPointerUp-member)\\n - [onQuadrupleClick](#StateNode-onQuadrupleClick-member)\\n - [onRightClick](#StateNode-onRightClick-member)\\n - [onTripleClick](#StateNode-onTripleClick-member)\\n - [onWheel](#StateNode-onWheel-member)\\n - [parent](#StateNode-parent-member)\\n - [path](#StateNode-path-member)\\n - [shapeType](#StateNode-shapeType-member)\\n - [type](#StateNode-type-member)\\n- [Methods](#methods)\\n - [enter](#StateNode-enter-member-1)\\n - [exit](#StateNode-exit-member-1)\\n - [handleEvent](#StateNode-handleEvent-member-1)\\n - [transition](#StateNode-transition-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class StateNode implements Partial {}\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `StateNode` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`parent`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStateNode\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#StateNode-children-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: Record\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `children` \\\\{#StateNode-children-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic children?: () => TLStateNodeConstructor[]\\n```\\n\\n##### References\\n\\n[TLStateNodeConstructor](/gen/editor/TLStateNodeConstructor-interface)\\n\\n---\\n\\n### `current` \\\\{#StateNode-current-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncurrent: Atom\\n```\\n\\n##### References\\n\\n[Atom](/gen/state/Atom-interface), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `editor` \\\\{#StateNode-editor-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\neditor: Editor\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n### `id` \\\\{#StateNode-id-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `id` \\\\{#StateNode-id-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic id: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#StateNode-initial-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ninitial?: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#StateNode-initial-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic initial?: string\\n```\\n\\n---\\n\\n### `isActive` \\\\{#StateNode-isActive-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisActive: boolean\\n```\\n\\n---\\n\\n### `onCancel` \\\\{#StateNode-onCancel-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonCancel?: TLEventHandlers[\'onCancel\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onComplete` \\\\{#StateNode-onComplete-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonComplete?: TLEventHandlers[\'onComplete\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#StateNode-onDoubleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick?: TLEventHandlers[\'onDoubleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onEnter` \\\\{#StateNode-onEnter-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEnter?: TLEnterEventHandler\\n```\\n\\n##### References\\n\\n[TLEnterEventHandler](/gen/editor/TLEnterEventHandler-type)\\n\\n---\\n\\n### `onExit` \\\\{#StateNode-onExit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonExit?: TLExitEventHandler\\n```\\n\\n##### References\\n\\n[TLExitEventHandler](/gen/editor/TLExitEventHandler-type)\\n\\n---\\n\\n### `onInterrupt` \\\\{#StateNode-onInterrupt-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonInterrupt?: TLEventHandlers[\'onInterrupt\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onKeyDown` \\\\{#StateNode-onKeyDown-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyDown?: TLEventHandlers[\'onKeyDown\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onKeyRepeat` \\\\{#StateNode-onKeyRepeat-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyRepeat?: TLEventHandlers[\'onKeyRepeat\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onKeyUp` \\\\{#StateNode-onKeyUp-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyUp?: TLEventHandlers[\'onKeyUp\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onMiddleClick` \\\\{#StateNode-onMiddleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonMiddleClick?: TLEventHandlers[\'onMiddleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerDown` \\\\{#StateNode-onPointerDown-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerDown?: TLEventHandlers[\'onPointerDown\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerEnter` \\\\{#StateNode-onPointerEnter-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerEnter?: TLEventHandlers[\'onPointerEnter\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerLeave` \\\\{#StateNode-onPointerLeave-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerLeave?: TLEventHandlers[\'onPointerLeave\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerMove` \\\\{#StateNode-onPointerMove-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerMove?: TLEventHandlers[\'onPointerMove\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerUp` \\\\{#StateNode-onPointerUp-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerUp?: TLEventHandlers[\'onPointerUp\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onQuadrupleClick` \\\\{#StateNode-onQuadrupleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonQuadrupleClick?: TLEventHandlers[\'onQuadrupleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onRightClick` \\\\{#StateNode-onRightClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonRightClick?: TLEventHandlers[\'onRightClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onTripleClick` \\\\{#StateNode-onTripleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonTripleClick?: TLEventHandlers[\'onTripleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onWheel` \\\\{#StateNode-onWheel-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonWheel?: TLEventHandlers[\'onWheel\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `parent` \\\\{#StateNode-parent-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nparent: StateNode\\n```\\n\\n##### References\\n\\n[StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `path` \\\\{#StateNode-path-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\npath: Computed\\n```\\n\\n##### References\\n\\n[Computed](/gen/state/Computed-interface)\\n\\n---\\n\\n### `shapeType` \\\\{#StateNode-shapeType-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nshapeType?: TLShapeUtilConstructor>\\n```\\n\\n##### References\\n\\n[TLShapeUtilConstructor](/gen/editor/TLShapeUtilConstructor-interface), [TLBaseShape](/gen/tlschema/TLBaseShape-interface)\\n\\n---\\n\\n### `type` \\\\{#StateNode-type-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ntype: TLStateNodeType\\n```\\n\\n##### References\\n\\n[TLStateNodeType](/gen/editor/~TLStateNodeType-type)\\n\\n---\\n\\n## Methods\\n\\n### `enter()` \\\\{#StateNode-enter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`from`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `exit()` \\\\{#StateNode-exit-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`from`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `handleEvent()` \\\\{#StateNode-handleEvent-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nExclude\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type), [TLEventInfo](/gen/editor/TLEventInfo-type), [TLPinchEventInfo](/gen/editor/TLPinchEventInfo-type)\\n\\n---\\n\\n### `transition()` \\\\{#StateNode-transition-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n","Store-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [allRecords](#Store-allRecords-member)\\n - [clear](#Store-clear-member)\\n - [createComputedCache](#Store-createComputedCache-member)\\n - [createSelectedComputedCache](#Store-createSelectedComputedCache-member)\\n - [get](#Store-get-member)\\n - [has](#Store-has-member)\\n - [history](#Store-history-member)\\n - [id](#Store-id-member)\\n - [listen](#Store-listen-member)\\n - [mergeRemoteChanges](#Store-mergeRemoteChanges-member)\\n - [onAfterChange](#Store-onAfterChange-member)\\n - [onAfterCreate](#Store-onAfterCreate-member)\\n - [onAfterDelete](#Store-onAfterDelete-member)\\n - [onBeforeDelete](#Store-onBeforeDelete-member)\\n - [props](#Store-props-member)\\n - [put](#Store-put-member)\\n - [query](#Store-query-member)\\n - [remove](#Store-remove-member)\\n - [schema](#Store-schema-member)\\n - [scopedTypes](#Store-scopedTypes-member)\\n - [serialize](#Store-serialize-member)\\n - [unsafeGetWithoutCapture](#Store-unsafeGetWithoutCapture-member)\\n - [update](#Store-update-member)\\n- [Methods](#methods)\\n - [_flushHistory](#Store-_flushHistory-member-1)\\n - [applyDiff](#Store-applyDiff-member-1)\\n - [extractingChanges](#Store-extractingChanges-member-1)\\n - [filterChangesByScope](#Store-filterChangesByScope-member-1)\\n - [getSnapshot](#Store-getSnapshot-member-1)\\n - [loadSnapshot](#Store-loadSnapshot-member-1)\\n - [validate](#Store-validate-member-1)\\n \\n\\nA store of records.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Store {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Store` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`config`\\n\\n\\n\\n\\n```ts\\n{\\n initialData?: StoreSnapshot\\n schema: StoreSchema\\n props: Props\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [StoreSchema](/gen/store/StoreSchema-class)\\n\\n---\\n\\n## Properties\\n\\n### `allRecords` \\\\{#Store-allRecords-member}\\n\\nPublic Property\\n\\nGet an array of all values in the store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nallRecords: () => R[]\\n```\\n\\n---\\n\\n### `clear` \\\\{#Store-clear-member}\\n\\nPublic Property\\n\\nRemoves all records from the store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclear: () => void\\n```\\n\\n---\\n\\n### `createComputedCache` \\\\{#Store-createComputedCache-member}\\n\\nPublic Property\\n\\nCreate a computed cache.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\nThe name of the derivation cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`derive`\\n\\n\\n\\n\\nA function used to derive the value of the cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncreateComputedCache: (\\n name: string,\\n derive: (record: V) => T | undefined\\n) => ComputedCache\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type)\\n\\n---\\n\\n### `createSelectedComputedCache` \\\\{#Store-createSelectedComputedCache-member}\\n\\nPublic Property\\n\\nCreate a computed cache from a selector\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\nThe name of the derivation cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`selector`\\n\\n\\n\\n\\nA function that returns a subset of the original shape\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`derive`\\n\\n\\n\\n\\nA function used to derive the value of the cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncreateSelectedComputedCache: (\\n name: string,\\n selector: (record: V) => T | undefined,\\n derive: (input: T) => J | undefined\\n) => ComputedCache\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type)\\n\\n---\\n\\n### `get` \\\\{#Store-get-member}\\n\\nPublic Property\\n\\nGet the value of a store record by its id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to get.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget: >(id: K) => RecFromId | undefined\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type), [RecFromId](/gen/store/~RecFromId-type)\\n\\n---\\n\\n### `has` \\\\{#Store-has-member}\\n\\nPublic Property\\n\\nGet whether the record store has a id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhas: >(id: K) => boolean\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `history` \\\\{#Store-history-member}\\n\\nPublic Readonly Property\\n\\nAn atom containing the store\'s history.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly history: Atom>\\n```\\n\\n##### References\\n\\n[Atom](/gen/state/Atom-interface), [RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n---\\n\\n### `id` \\\\{#Store-id-member}\\n\\nPublic Readonly Property\\n\\nThe random id of the store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: string\\n```\\n\\n---\\n\\n### `listen` \\\\{#Store-listen-member}\\n\\nPublic Property\\n\\nAdd a new listener to the store.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`onHistory`\\n\\n\\n\\n\\nThe listener to call when the store updates.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`filters`\\n\\n\\n\\n\\nFilters to apply to the listener.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nlisten: (\\n onHistory: StoreListener,\\n filters?: Partial\\n) => () => void\\n```\\n\\n##### References\\n\\n[StoreListener](/gen/store/StoreListener-type), [Partial](/gen/Partial-type), [StoreListenerFilters](/gen/store/~StoreListenerFilters-type)\\n\\n---\\n\\n### `mergeRemoteChanges` \\\\{#Store-mergeRemoteChanges-member}\\n\\nPublic Property\\n\\nMerge changes from a remote source without triggering listeners.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`fn`\\n\\n\\n\\n\\nA function that merges the external changes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nmergeRemoteChanges: (fn: () => void) => void\\n```\\n\\n---\\n\\n### `onAfterChange` \\\\{#Store-onAfterChange-member}\\n\\nPublic Property\\n\\nA callback fired after each record\'s change.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe previous value, if any.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\nThe next value.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterChange?: (prev: R, next: R) => void\\n```\\n\\n---\\n\\n### `onAfterCreate` \\\\{#Store-onAfterCreate-member}\\n\\nPublic Property\\n\\nA callback fired after a record is created. Use this to perform related updates to other records in the store.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\nThe record to be created\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterCreate?: (record: R) => void\\n```\\n\\n---\\n\\n### `onAfterDelete` \\\\{#Store-onAfterDelete-member}\\n\\nPublic Property\\n\\nA callback fired after a record is deleted.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe record that will be deleted.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterDelete?: (prev: R) => void\\n```\\n\\n---\\n\\n### `onBeforeDelete` \\\\{#Store-onBeforeDelete-member}\\n\\nPublic Property\\n\\nA callback fired before a record is deleted.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe record that will be deleted.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeDelete?: (prev: R) => void\\n```\\n\\n---\\n\\n### `props` \\\\{#Store-props-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly props: Props\\n```\\n\\n---\\n\\n### `put` \\\\{#Store-put-member}\\n\\nPublic Property\\n\\nAdd some records to the store. It\'s an error if they already exist.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`records`\\n\\n\\n\\n\\nThe records to add.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nput: (records: R[], phaseOverride?: \'initialize\') => void\\n```\\n\\n---\\n\\n### `query` \\\\{#Store-query-member}\\n\\nPublic Readonly Property\\n\\nA StoreQueries instance for this store.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly query: StoreQueries\\n```\\n\\n##### References\\n\\n[StoreQueries](/gen/store/~StoreQueries-class)\\n\\n---\\n\\n### `remove` \\\\{#Store-remove-member}\\n\\nPublic Property\\n\\nRemove some records from the store via their ids.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\nThe ids of the records to remove.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nremove: (ids: IdOf[]) => void\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `schema` \\\\{#Store-schema-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly schema: StoreSchema\\n```\\n\\n##### References\\n\\n[StoreSchema](/gen/store/StoreSchema-class)\\n\\n---\\n\\n### `scopedTypes` \\\\{#Store-scopedTypes-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly scopedTypes: {\\n readonly [K in RecordScope]: ReadonlySet\\n}\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type), [ReadonlySet](/gen/ReadonlySet-interface)\\n\\n---\\n\\n### `serialize` \\\\{#Store-serialize-member}\\n\\nPublic Property\\n\\nCreates a JSON payload from the record store.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`scope`\\n\\n\\n\\n\\nThe scope of records to serialize. Defaults to \'document\'.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nserialize: (scope?: \'all\' | RecordScope) => StoreSnapshot\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type), [StoreSnapshot](/gen/store/StoreSnapshot-type)\\n\\n---\\n\\n### `unsafeGetWithoutCapture` \\\\{#Store-unsafeGetWithoutCapture-member}\\n\\nPublic Property\\n\\nGet the value of a store record by its id without updating its epoch.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to get.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nunsafeGetWithoutCapture: >(\\n id: K\\n) => RecFromId | undefined\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type), [RecFromId](/gen/store/~RecFromId-type)\\n\\n---\\n\\n### `update` \\\\{#Store-update-member}\\n\\nPublic Property\\n\\nUpdate a record. To update multiple records at once, use the `update` method of the `TypedStore` class.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`updater`\\n\\n\\n\\n\\nA function that updates the record.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nupdate: >(\\n id: K,\\n updater: (record: RecFromId) => RecFromId\\n) => void\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type), [RecFromId](/gen/store/~RecFromId-type)\\n\\n---\\n\\n## Methods\\n\\n### `_flushHistory()` \\\\{#Store-_flushHistory-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `applyDiff()` \\\\{#Store-applyDiff-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`diff`\\n\\n\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`runCallbacks`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n---\\n\\n### `extractingChanges()` \\\\{#Store-extractingChanges-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`fn`\\n\\n\\n\\n\\n```ts\\n() => void\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n---\\n\\n### `filterChangesByScope()` \\\\{#Store-filterChangesByScope-member-1}\\n\\nPublic Method\\n\\nFilters out non-document changes from a diff. Returns null if there are no changes left.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`change`\\n\\n\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\nthe records diff\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`scope`\\n\\n\\n\\n\\n```ts\\nRecordScope\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n added: { [K in IdOf]: R }\\n updated: { [K_1 in IdOf]: [from: R, to: R] }\\n removed: { [K in IdOf]: R }\\n} | null\\n```\\n\\n\\n\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type), [RecordScope](/gen/store/~RecordScope-type), [IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `getSnapshot()` \\\\{#Store-getSnapshot-member-1}\\n\\nPublic Method\\n\\nGet a serialized snapshot of the store and its schema.\\n\\n\\n```ts\\nconst snapshot = store.getSnapshot()\\nstore.loadSnapshot(snapshot)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`scope`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n\'all\' | RecordScope\\n```\\n\\nThe scope of records to serialize. Defaults to \'document\'.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n store: StoreSnapshot\\n schema: SerializedSchema\\n}\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type), [StoreSnapshot](/gen/store/StoreSnapshot-type), [SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `loadSnapshot()` \\\\{#Store-loadSnapshot-member-1}\\n\\nPublic Method\\n\\nLoad a serialized snapshot.\\n\\n\\n```ts\\nconst snapshot = store.getSnapshot()\\nstore.loadSnapshot(snapshot)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`snapshot`\\n\\n\\n\\n\\n```ts\\n{\\n store: StoreSnapshot\\n schema: SerializedSchema\\n}\\n```\\n\\nThe snapshot to load.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `validate()` \\\\{#Store-validate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`phase`\\n\\n\\n\\n\\n```ts\\n | \'createRecord\'\\n | \'initialize\'\\n | \'tests\'\\n | \'updateRecord\'\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n","StoreError-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreError = {\\n error: Error\\n phase: \'createRecord\' | \'initialize\' | \'tests\' | \'updateRecord\'\\n recordBefore?: unknown\\n recordAfter: unknown\\n isExistingValidationIssue: boolean\\n}\\n```\\n\\n##### References\\n\\n[Error](/gen/Error-interface)\\n\\n","StoreListener-type":"Public TypeAlias\\n\\nA function that will be called when the history changes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreListener = (entry: HistoryEntry) => void\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [HistoryEntry](/gen/store/HistoryEntry-type)\\n\\n","StoreSchema-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [currentStoreVersion](#StoreSchema-currentStoreVersion-member)\\n - [types](#StoreSchema-types-member)\\n- [Methods](#methods)\\n - [create](#StoreSchema-create-member-1)\\n - [migratePersistedRecord](#StoreSchema-migratePersistedRecord-member-1)\\n - [migrateStoreSnapshot](#StoreSchema-migrateStoreSnapshot-member-1)\\n - [serialize](#StoreSchema-serialize-member-1)\\n - [serializeEarliestVersion](#StoreSchema-serializeEarliestVersion-member-1)\\n - [validateRecord](#StoreSchema-validateRecord-member-1)\\n \\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass StoreSchema {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n## Properties\\n\\n### `currentStoreVersion` \\\\{#StoreSchema-currentStoreVersion-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget currentStoreVersion(): number\\n```\\n\\n---\\n\\n### `types` \\\\{#StoreSchema-types-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly types: {\\n [Record in R as Record[\'typeName\']]: RecordType\\n}\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class)\\n\\n---\\n\\n## Methods\\n\\n### `create()` \\\\{#StoreSchema-create-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`types`\\n\\n\\n\\n\\n```ts\\n{\\n [TypeName in R[\'typeName\']]: {\\n createId: any\\n }\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStoreSchemaOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStoreSchema\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [StoreSchemaOptions](/gen/store/StoreSchemaOptions-type), [StoreSchema](/gen/store/StoreSchema-class)\\n\\n---\\n\\n### `migratePersistedRecord()` \\\\{#StoreSchema-migratePersistedRecord-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nR\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`persistedSchema`\\n\\n\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`direction`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n\'down\' | \'up\'\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface), [MigrationResult](/gen/store/MigrationResult-type)\\n\\n---\\n\\n### `migrateStoreSnapshot()` \\\\{#StoreSchema-migrateStoreSnapshot-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`storeSnapshot`\\n\\n\\n\\n\\n```ts\\nStoreSnapshot\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`persistedSchema`\\n\\n\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult>\\n```\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [SerializedSchema](/gen/store/SerializedSchema-interface), [MigrationResult](/gen/store/MigrationResult-type)\\n\\n---\\n\\n### `serialize()` \\\\{#StoreSchema-serialize-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `serializeEarliestVersion()` \\\\{#StoreSchema-serializeEarliestVersion-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `validateRecord()` \\\\{#StoreSchema-validateRecord-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`store`\\n\\n\\n\\n\\n```ts\\nStore\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nR\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`phase`\\n\\n\\n\\n\\n```ts\\n | \'createRecord\'\\n | \'initialize\'\\n | \'tests\'\\n | \'updateRecord\'\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`recordBefore`\\n\\n\\n\\n\\n```ts\\nnull | R\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n##### References\\n\\n[Store](/gen/store/Store-class)\\n\\n---\\n\\n","StoreSchemaOptions-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreSchemaOptions = {\\n snapshotMigrations?: Migrations\\n onValidationFailure?: (data: {\\n error: unknown\\n store: Store\\n record: R\\n phase: \'createRecord\' | \'initialize\' | \'tests\' | \'updateRecord\'\\n recordBefore: null | R\\n }) => R\\n createIntegrityChecker?: (store: Store) => void\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Migrations](/gen/store/Migrations-interface), [Store](/gen/store/Store-class)\\n\\n","StoreSnapshot-type":"Public TypeAlias\\n\\nA serialized snapshot of the record store\'s values.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreSnapshot = Record, R>\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Record](/gen/Record-type), [IdOf](/gen/store/IdOf-type)\\n\\n","StoreValidator-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreValidator = {\\n validate: (record: unknown) => R\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","StoreValidators-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreValidators = {\\n [K in R[\'typeName\']]: StoreValidator<\\n Extract<\\n R,\\n {\\n typeName: K\\n }\\n >\\n >\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [StoreValidator](/gen/store/StoreValidator-type), [Extract](/gen/Extract-type)\\n\\n","StrokeOptions-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [easing](#StrokeOptions-easing-member)\\n - [end](#StrokeOptions-end-member)\\n - [last](#StrokeOptions-last-member)\\n - [simulatePressure](#StrokeOptions-simulatePressure-member)\\n - [size](#StrokeOptions-size-member)\\n - [smoothing](#StrokeOptions-smoothing-member)\\n - [start](#StrokeOptions-start-member)\\n - [streamline](#StrokeOptions-streamline-member)\\n - [thinning](#StrokeOptions-thinning-member)\\n \\n\\nThe options object for `getStroke` or `getStrokePoints`.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface StrokeOptions {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `easing` \\\\{#StrokeOptions-easing-member}\\n\\nPublic PropertySignature\\n\\nAn easing function to apply to each point\'s pressure.\\n\\n\\n##### Signature\\n\\n\\n```ts\\neasing?: (pressure: number) => number\\n```\\n\\n---\\n\\n### `end` \\\\{#StrokeOptions-end-member}\\n\\nPublic PropertySignature\\n\\nCap, taper and easing for the end of the line.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nend?: {\\n cap?: boolean\\n taper?: boolean | number\\n easing?: (distance: number) => number\\n}\\n```\\n\\n---\\n\\n### `last` \\\\{#StrokeOptions-last-member}\\n\\nPublic PropertySignature\\n\\nWhether to handle the points as a completed stroke.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nlast?: boolean\\n```\\n\\n---\\n\\n### `simulatePressure` \\\\{#StrokeOptions-simulatePressure-member}\\n\\nPublic PropertySignature\\n\\nWhether to simulate pressure based on velocity.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nsimulatePressure?: boolean\\n```\\n\\n---\\n\\n### `size` \\\\{#StrokeOptions-size-member}\\n\\nPublic PropertySignature\\n\\nThe base size (diameter) of the stroke.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nsize?: number\\n```\\n\\n---\\n\\n### `smoothing` \\\\{#StrokeOptions-smoothing-member}\\n\\nPublic PropertySignature\\n\\nHow much to soften the stroke\'s edges.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nsmoothing?: number\\n```\\n\\n---\\n\\n### `start` \\\\{#StrokeOptions-start-member}\\n\\nPublic PropertySignature\\n\\nCap, taper and easing for the start of the line.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstart?: {\\n cap?: boolean\\n taper?: boolean | number\\n easing?: (distance: number) => number\\n}\\n```\\n\\n---\\n\\n### `streamline` \\\\{#StrokeOptions-streamline-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nstreamline?: number\\n```\\n\\n---\\n\\n### `thinning` \\\\{#StrokeOptions-thinning-member}\\n\\nPublic PropertySignature\\n\\nThe effect of pressure on the stroke\'s size.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nthinning?: number\\n```\\n\\n---\\n\\n","StrokePoint-interface":"Public Interface\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [distance](#StrokePoint-distance-member)\\n - [input](#StrokePoint-input-member)\\n - [point](#StrokePoint-point-member)\\n - [pressure](#StrokePoint-pressure-member)\\n - [radius](#StrokePoint-radius-member)\\n - [runningLength](#StrokePoint-runningLength-member)\\n - [vector](#StrokePoint-vector-member)\\n \\n\\nThe points returned by `getStrokePoints`, and the input for `getStrokeOutlinePoints`\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface StrokePoint {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `distance` \\\\{#StrokePoint-distance-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ndistance: number\\n```\\n\\n---\\n\\n### `input` \\\\{#StrokePoint-input-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ninput: Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `point` \\\\{#StrokePoint-point-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\npoint: Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `pressure` \\\\{#StrokePoint-pressure-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\npressure: number\\n```\\n\\n---\\n\\n### `radius` \\\\{#StrokePoint-radius-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nradius: number\\n```\\n\\n---\\n\\n### `runningLength` \\\\{#StrokePoint-runningLength-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrunningLength: number\\n```\\n\\n---\\n\\n### `vector` \\\\{#StrokePoint-vector-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nvector: Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n","StyleProp-class":"Public Class\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [defaultValue](#StyleProp-defaultValue-member)\\n - [id](#StyleProp-id-member)\\n - [type](#StyleProp-type-member)\\n- [Methods](#methods)\\n - [define](#StyleProp-define-member-1)\\n - [defineEnum](#StyleProp-defineEnum-member-1)\\n - [validate](#StyleProp-validate-member-1)\\n \\n\\nA `StyleProp` is a property of a shape that follows some special rules.\\n\\n\\n1. The same value can be set on lots of shapes at the same time.\\n\\n\\n2. The last used value is automatically saved and applied to new shapes.\\n\\n\\nFor example, [DefaultColorStyle](/tlschema/DefaultColorStyle-var) is a style prop used by tldraw\'s default shapes to set their color. If you try selecting several shapes on tldraw.com and changing their color, you\'ll see that the color is applied to all of them. Then, if you draw a new shape, it\'ll have the same color as the one you just set.\\n\\n\\nYou can use styles in your own shapes by either defining your own (see [StyleProp.define](/tlschema/StyleProp-define-member-1) and [StyleProp.defineEnum](/tlschema/StyleProp-defineEnum-member-1)) or using tldraw\'s default ones, like [DefaultColorStyle](/tlschema/DefaultColorStyle-var). When you define a shape, pass a `props` object describing all of your shape\'s properties, using `StyleProp`s for the ones you want to be styles. See the [custom styles example](https://github.com/tldraw/tldraw/tree/main/apps/examples/src/16-custom-styles) for more.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass StyleProp implements T.Validatable {}\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `StyleProp` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`defaultValue`\\n\\n\\n\\n\\n```ts\\nType\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nT.Validatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n## Properties\\n\\n### `defaultValue` \\\\{#StyleProp-defaultValue-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly defaultValue: Type\\n```\\n\\n---\\n\\n### `id` \\\\{#StyleProp-id-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: string\\n```\\n\\n---\\n\\n### `type` \\\\{#StyleProp-type-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly type: T.Validatable\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n## Methods\\n\\n### `define()` \\\\{#StyleProp-define-member-1}\\n\\nPublic Static Method\\n\\nDefine a new [StyleProp](/tlschema/StyleProp-class).\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nimport { StyleProp } from \'@tldraw/tlschema\'\\nimport { T } from \'@tldraw/validate\'\\n\\nconst MyLineWidthProp = StyleProp.define(\'myApp:lineWidth\', {\\n defaultValue: 1,\\n type: T.number,\\n})\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`uniqueId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nEach StyleProp must have a unique ID. We recommend you prefix this with your app/library name.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n\\n\\n\\n```ts\\n{\\n defaultValue: Type\\n type?: T.Validatable\\n}\\n```\\n\\n- `defaultValue`: The default value for this style prop.\\n\\n\\n- `type`: Optionally, describe what type of data you expect for this style prop.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `defineEnum()` \\\\{#StyleProp-defineEnum-member-1}\\n\\nPublic Static Method\\n\\nDefine a new [StyleProp](/tlschema/StyleProp-class) as a list of possible values.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nimport { StyleProp } from \'@tldraw/tlschema\'\\n\\nconst MySizeProp = StyleProp.defineEnum(\'myApp:size\', {\\n defaultValue: \'medium\',\\n values: [\'small\', \'medium\', \'large\'],\\n})\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`uniqueId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nEach StyleProp must have a unique ID. We recommend you prefix this with your app/library name.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n\\n\\n\\n```ts\\n{\\n defaultValue: Values[number]\\n values: Values\\n}\\n```\\n\\n- `defaultValue`: The default value for this style prop.\\n\\n\\n- `values`: An array of possible values of this style prop.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nEnumStyleProp\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n---\\n\\n### `validate()` \\\\{#StyleProp-validate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nType\\n```\\n\\n---\\n\\n","T-namespace":"None Namespace\\n\\n\\n\\tTable of Contents
\\n- [Properties](#properties)\\n - [any](#T-any-var)\\n - [array](#T-array-var)\\n - [bigint](#T-bigint-var)\\n - [boolean](#T-boolean-var)\\n - [integer](#T-integer-var)\\n - [nonZeroInteger](#T-nonZeroInteger-var)\\n - [nonZeroNumber](#T-nonZeroNumber-var)\\n - [number](#T-number-var)\\n - [positiveInteger](#T-positiveInteger-var)\\n - [positiveNumber](#T-positiveNumber-var)\\n - [string](#T-string-var)\\n - [unknown](#T-unknown-var)\\n - [unknownObject](#T-unknownObject-var)\\n- [Methods](#methods)\\n - [arrayOf](#T-arrayOf-function-1)\\n - [dict](#T-dict-function-1)\\n - [literal](#T-literal-function-1)\\n - [literalEnum](#T-literalEnum-function-1)\\n - [model](#T-model-function-1)\\n - [nullable](#T-nullable-function-1)\\n - [object](#T-object-function-1)\\n - [optional](#T-optional-function-1)\\n - [setEnum](#T-setEnum-function-1)\\n - [union](#T-union-function-1)\\n \\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Properties\\n\\n### `any` \\\\{#T-any-var}\\n\\nPublic Readonly Variable\\n\\nValidation that accepts any value. Generally this should be avoided, but you can use it as an escape hatch if you want to work without validations for e.g. a prototype.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nany: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `array` \\\\{#T-array-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is an array. To check the contents of the array, use T.arrayOf.\\n\\n\\n##### Signature\\n\\n\\n```ts\\narray: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `bigint` \\\\{#T-bigint-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is a bigint.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nbigint: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `boolean` \\\\{#T-boolean-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is boolean.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nboolean: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `integer` \\\\{#T-integer-var}\\n\\nPublic Readonly Variable\\n\\nFails if number is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninteger: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `nonZeroInteger` \\\\{#T-nonZeroInteger-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\<= 0 and is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnonZeroInteger: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `nonZeroNumber` \\\\{#T-nonZeroNumber-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\<= 0\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnonZeroNumber: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `number` \\\\{#T-number-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is a finite non-NaN number.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnumber: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `positiveInteger` \\\\{#T-positiveInteger-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\< 0 and is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\npositiveInteger: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `positiveNumber` \\\\{#T-positiveNumber-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\< 0\\n\\n\\n##### Signature\\n\\n\\n```ts\\npositiveNumber: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `string` \\\\{#T-string-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is a string.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstring: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `unknown` \\\\{#T-unknown-var}\\n\\nPublic Readonly Variable\\n\\nValidation that accepts any value. Useful as a starting point for building your own custom validations.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nunknown: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `unknownObject` \\\\{#T-unknownObject-var}\\n\\nPublic Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nunknownObject: Validator>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class), [Record](/gen/Record-type)\\n\\n---\\n\\n## Methods\\n\\n### `arrayOf` \\\\{#T-arrayOf-function-1}\\n\\nPublic Function\\n\\nValidates that a value is an array whose contents matches the passed-in validator.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n