6c846716c3
this is take #2 of this PR https://github.com/tldraw/tldraw/pull/3764 This continues the idea kicked off in https://github.com/tldraw/tldraw/pull/3684 to explore LOD and takes it in a different direction. Several things here to call out: - our dotcom version would start to use Cloudflare's image transforms - we don't rewrite non-image assets - we debounce zooming so that we're not swapping out images while zooming (it creates jank) - we load different images based on steps of .25 (maybe we want to make this more, like 0.33). Feels like 0.5 might be a bit too much but we can play around with it. - we take into account network connection speed. if you're on 3g, for example, we have the size of the image. - dpr is taken into account - in our case, Cloudflare handles it. But if it wasn't Cloudflare, we could add it to our width equation. - we use Cloudflare's `fit=scale-down` setting to never scale _up_ an image. - we don't swap the image in until we've finished loading it programatically (to avoid a blank image while it loads) TODO - [x] We need to enable Cloudflare's pricing on image transforms btw @steveruizok 😉 - this won't work quite yet until we do that. ### Change Type <!-- ❗ Please select a 'Scope' label ❗️ --> - [x] `sdk` — Changes the tldraw SDK - [ ] `dotcom` — Changes the tldraw.com web app - [ ] `docs` — Changes to the documentation, examples, or templates. - [ ] `vs code` — Changes to the vscode plugin - [ ] `internal` — Does not affect user-facing stuff <!-- ❗ Please select a 'Type' label ❗️ --> - [ ] `bugfix` — Bug fix - [x] `feature` — New feature - [ ] `improvement` — Improving existing features - [ ] `chore` — Updating dependencies, other boring stuff - [ ] `galaxy brain` — Architectural changes - [ ] `tests` — Changes to any test code - [ ] `tools` — Changes to infrastructure, CI, internal scripts, debugging tools, etc. - [ ] `dunno` — I don't know ### Test Plan 1. Test images on staging, small, medium, large, mega 2. Test videos on staging - [x] Unit Tests - [ ] End to end tests ### Release Notes - Assets: make option to transform urls dynamically to provide different sized images on demand.
1533 lines
46 KiB
Markdown
1533 lines
46 KiB
Markdown
## API Report File for "@tldraw/tlschema"
|
|
|
|
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
|
|
```ts
|
|
|
|
import { BaseRecord } from '@tldraw/store';
|
|
import { Expand } from '@tldraw/utils';
|
|
import { IndexKey } from '@tldraw/utils';
|
|
import { JsonObject } from '@tldraw/utils';
|
|
import { LegacyMigrations } from '@tldraw/store';
|
|
import { MigrationId } from '@tldraw/store';
|
|
import { MigrationSequence } from '@tldraw/store';
|
|
import { RecordId } from '@tldraw/store';
|
|
import { RecordType } from '@tldraw/store';
|
|
import { SerializedStore } from '@tldraw/store';
|
|
import { Signal } from '@tldraw/state';
|
|
import { StandaloneDependsOn } from '@tldraw/store';
|
|
import { Store } from '@tldraw/store';
|
|
import { StoreSchema } from '@tldraw/store';
|
|
import { StoreSnapshot } from '@tldraw/store';
|
|
import { StoreValidator } from '@tldraw/store';
|
|
import { T } from '@tldraw/validate';
|
|
import { UnknownRecord } from '@tldraw/store';
|
|
|
|
// @public (undocumented)
|
|
export const arrowBindingMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const arrowBindingProps: RecordProps<TLArrowBinding>;
|
|
|
|
// @public (undocumented)
|
|
export const ArrowShapeArrowheadEndStyle: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">;
|
|
|
|
// @public (undocumented)
|
|
export const ArrowShapeArrowheadStartStyle: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">;
|
|
|
|
// @public (undocumented)
|
|
export const arrowShapeMigrations: MigrationSequence;
|
|
|
|
// @public (undocumented)
|
|
export const arrowShapeProps: {
|
|
arrowheadEnd: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">;
|
|
arrowheadStart: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">;
|
|
bend: T.Validator<number>;
|
|
color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">;
|
|
end: T.Validator<VecModel>;
|
|
fill: EnumStyleProp<"none" | "pattern" | "semi" | "solid">;
|
|
font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">;
|
|
labelColor: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
labelPosition: T.Validator<number>;
|
|
size: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
start: T.Validator<VecModel>;
|
|
text: T.Validator<string>;
|
|
};
|
|
|
|
// @public
|
|
export const assetIdValidator: T.Validator<TLAssetId>;
|
|
|
|
// @public (undocumented)
|
|
export const assetMigrations: MigrationSequence;
|
|
|
|
// @public (undocumented)
|
|
export const AssetRecordType: RecordType<TLAsset, "props" | "type">;
|
|
|
|
// @public (undocumented)
|
|
export const assetValidator: T.Validator<TLAsset>;
|
|
|
|
// @public (undocumented)
|
|
export const bindingIdValidator: T.Validator<TLBindingId>;
|
|
|
|
// @public (undocumented)
|
|
export const bookmarkShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const bookmarkShapeProps: {
|
|
assetId: T.Validator<TLAssetId | null>;
|
|
h: T.Validator<number>;
|
|
url: T.Validator<string>;
|
|
w: T.Validator<number>;
|
|
};
|
|
|
|
// @public
|
|
export interface BoxModel {
|
|
// (undocumented)
|
|
h: number;
|
|
// (undocumented)
|
|
w: number;
|
|
// (undocumented)
|
|
x: number;
|
|
// (undocumented)
|
|
y: number;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const boxModelValidator: T.Validator<BoxModel>;
|
|
|
|
// @public (undocumented)
|
|
export const CameraRecordType: RecordType<TLCamera, never>;
|
|
|
|
// @public
|
|
export const canvasUiColorTypeValidator: T.Validator<"accent" | "black" | "laser" | "muted-1" | "selection-fill" | "selection-stroke" | "white">;
|
|
|
|
// @public
|
|
export function createAssetValidator<Type extends string, Props extends JsonObject>(type: Type, props: T.Validator<Props>): T.ObjectValidator<{ [P in T.ExtractRequiredKeys<{
|
|
id: TLAssetId;
|
|
meta: JsonObject;
|
|
props: Props;
|
|
type: Type;
|
|
typeName: 'asset';
|
|
}>]: {
|
|
id: TLAssetId;
|
|
meta: JsonObject;
|
|
props: Props;
|
|
type: Type;
|
|
typeName: 'asset';
|
|
}[P]; } & { [P_1 in T.ExtractOptionalKeys<{
|
|
id: TLAssetId;
|
|
meta: JsonObject;
|
|
props: Props;
|
|
type: Type;
|
|
typeName: 'asset';
|
|
}>]?: {
|
|
id: TLAssetId;
|
|
meta: JsonObject;
|
|
props: Props;
|
|
type: Type;
|
|
typeName: 'asset';
|
|
}[P_1] | undefined; }>;
|
|
|
|
// @public (undocumented)
|
|
export function createBindingId(id?: string): TLBindingId;
|
|
|
|
// @public (undocumented)
|
|
export function createBindingPropsMigrationIds<S extends string, T extends Record<string, number>>(bindingType: S, ids: T): {
|
|
[k in keyof T]: `com.tldraw.binding.${S}/${T[k]}`;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export function createBindingPropsMigrationSequence(migrations: TLPropsMigrations): TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export function createBindingValidator<Type extends string, Props extends JsonObject, Meta extends JsonObject>(type: Type, props?: {
|
|
[K in keyof Props]: T.Validatable<Props[K]>;
|
|
}, meta?: {
|
|
[K in keyof Meta]: T.Validatable<Meta[K]>;
|
|
}): T.ObjectValidator<{ [P in T.ExtractRequiredKeys<TLBaseBinding<Type, Props>>]: TLBaseBinding<Type, Props>[P]; } & { [P_1 in T.ExtractOptionalKeys<TLBaseBinding<Type, Props>>]?: TLBaseBinding<Type, Props>[P_1] | undefined; }>;
|
|
|
|
// @public
|
|
export const createPresenceStateDerivation: ($user: Signal<{
|
|
color: string;
|
|
id: string;
|
|
name: string;
|
|
}>, instanceId?: TLInstancePresence['id']) => (store: TLStore) => Signal<null | TLInstancePresence>;
|
|
|
|
// @public (undocumented)
|
|
export function createShapeId(id?: string): TLShapeId;
|
|
|
|
// @public (undocumented)
|
|
export function createShapePropsMigrationIds<const S extends string, const T extends Record<string, number>>(shapeType: S, ids: T): {
|
|
[k in keyof T]: `com.tldraw.shape.${S}/${T[k]}`;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export function createShapePropsMigrationSequence(migrations: TLPropsMigrations): TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export function createShapeValidator<Type extends string, Props extends JsonObject, Meta extends JsonObject>(type: Type, props?: {
|
|
[K in keyof Props]: T.Validatable<Props[K]>;
|
|
}, meta?: {
|
|
[K in keyof Meta]: T.Validatable<Meta[K]>;
|
|
}): T.ObjectValidator<{ [P in T.ExtractRequiredKeys<TLBaseShape<Type, Props>>]: TLBaseShape<Type, Props>[P]; } & { [P_1 in T.ExtractOptionalKeys<TLBaseShape<Type, Props>>]?: TLBaseShape<Type, Props>[P_1] | undefined; }>;
|
|
|
|
// @public
|
|
export function createTLSchema({ shapes, bindings, migrations, }?: {
|
|
bindings?: Record<string, SchemaPropsInfo>;
|
|
migrations?: readonly MigrationSequence[];
|
|
shapes?: Record<string, SchemaPropsInfo>;
|
|
}): TLSchema;
|
|
|
|
// @public (undocumented)
|
|
export const defaultColorNames: readonly ["black", "grey", "light-violet", "violet", "blue", "light-blue", "yellow", "orange", "green", "light-green", "light-red", "red", "white"];
|
|
|
|
// @public (undocumented)
|
|
export const DefaultColorStyle: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
|
|
// @public (undocumented)
|
|
export const DefaultColorThemePalette: {
|
|
darkMode: TLDefaultColorTheme;
|
|
lightMode: TLDefaultColorTheme;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const DefaultDashStyle: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">;
|
|
|
|
// @public (undocumented)
|
|
export const DefaultFillStyle: EnumStyleProp<"none" | "pattern" | "semi" | "solid">;
|
|
|
|
// @public (undocumented)
|
|
export const DefaultFontFamilies: {
|
|
draw: string;
|
|
mono: string;
|
|
sans: string;
|
|
serif: string;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const DefaultFontStyle: EnumStyleProp<"draw" | "mono" | "sans" | "serif">;
|
|
|
|
// @public (undocumented)
|
|
export const DefaultHorizontalAlignStyle: EnumStyleProp<"end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start">;
|
|
|
|
// @public (undocumented)
|
|
export const defaultShapeSchemas: {
|
|
[T in TLDefaultShape['type']]: SchemaPropsInfo;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const DefaultSizeStyle: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
|
|
// @public (undocumented)
|
|
export const DefaultTextAlignStyle: EnumStyleProp<"end" | "middle" | "start">;
|
|
|
|
// @public (undocumented)
|
|
export const DefaultVerticalAlignStyle: EnumStyleProp<"end" | "middle" | "start">;
|
|
|
|
// @public (undocumented)
|
|
export const DocumentRecordType: RecordType<TLDocument, never>;
|
|
|
|
// @public (undocumented)
|
|
export const drawShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const drawShapeProps: {
|
|
color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">;
|
|
fill: EnumStyleProp<"none" | "pattern" | "semi" | "solid">;
|
|
isClosed: T.Validator<boolean>;
|
|
isComplete: T.Validator<boolean>;
|
|
isPen: T.Validator<boolean>;
|
|
segments: T.ArrayOfValidator<TLDrawShapeSegment>;
|
|
size: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const EMBED_DEFINITIONS: readonly [{
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["beta.tldraw.com", "tldraw.com", "localhost:3000"];
|
|
readonly minHeight: 300;
|
|
readonly minWidth: 300;
|
|
readonly overridePermissions: {
|
|
readonly 'allow-top-navigation': true;
|
|
};
|
|
readonly title: "tldraw";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "tldraw";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["figma.com"];
|
|
readonly title: "Figma";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "figma";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["google.*"];
|
|
readonly overridePermissions: {
|
|
readonly 'allow-presentation': true;
|
|
};
|
|
readonly title: "Google Maps";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "google_maps";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["val.town"];
|
|
readonly minHeight: 100;
|
|
readonly minWidth: 260;
|
|
readonly title: "Val Town";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "val_town";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["codesandbox.io"];
|
|
readonly minHeight: 300;
|
|
readonly minWidth: 300;
|
|
readonly title: "CodeSandbox";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "codesandbox";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 400;
|
|
readonly hostnames: readonly ["codepen.io"];
|
|
readonly minHeight: 300;
|
|
readonly minWidth: 300;
|
|
readonly title: "Codepen";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "codepen";
|
|
readonly width: 520;
|
|
}, {
|
|
readonly doesResize: false;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 400;
|
|
readonly hostnames: readonly ["scratch.mit.edu"];
|
|
readonly title: "Scratch";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "scratch";
|
|
readonly width: 520;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 450;
|
|
readonly hostnames: readonly ["*.youtube.com", "youtube.com", "youtu.be"];
|
|
readonly isAspectRatioLocked: true;
|
|
readonly overridePermissions: {
|
|
readonly 'allow-popups-to-escape-sandbox': true;
|
|
readonly 'allow-presentation': true;
|
|
};
|
|
readonly title: "YouTube";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "youtube";
|
|
readonly width: 800;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["calendar.google.*"];
|
|
readonly instructionLink: "https://support.google.com/calendar/answer/41207?hl=en";
|
|
readonly minHeight: 360;
|
|
readonly minWidth: 460;
|
|
readonly overridePermissions: {
|
|
readonly 'allow-popups-to-escape-sandbox': true;
|
|
};
|
|
readonly title: "Google Calendar";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "google_calendar";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["docs.google.*"];
|
|
readonly minHeight: 360;
|
|
readonly minWidth: 460;
|
|
readonly overridePermissions: {
|
|
readonly 'allow-popups-to-escape-sandbox': true;
|
|
};
|
|
readonly title: "Google Slides";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "google_slides";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["gist.github.com"];
|
|
readonly title: "GitHub Gist";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "github_gist";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["replit.com"];
|
|
readonly title: "Replit";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "replit";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["felt.com"];
|
|
readonly title: "Felt";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "felt";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["open.spotify.com"];
|
|
readonly minHeight: 500;
|
|
readonly overrideOutlineRadius: 12;
|
|
readonly title: "Spotify";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "spotify";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 360;
|
|
readonly hostnames: readonly ["vimeo.com", "player.vimeo.com"];
|
|
readonly isAspectRatioLocked: true;
|
|
readonly title: "Vimeo";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "vimeo";
|
|
readonly width: 640;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["excalidraw.com"];
|
|
readonly isAspectRatioLocked: true;
|
|
readonly title: "Excalidraw";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "excalidraw";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly backgroundColor: "#fff";
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 500;
|
|
readonly hostnames: readonly ["observablehq.com"];
|
|
readonly isAspectRatioLocked: false;
|
|
readonly title: "Observable";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "observable";
|
|
readonly width: 720;
|
|
}, {
|
|
readonly doesResize: true;
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
readonly height: 450;
|
|
readonly hostnames: readonly ["desmos.com"];
|
|
readonly title: "Desmos";
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
readonly type: "desmos";
|
|
readonly width: 700;
|
|
}];
|
|
|
|
// @public (undocumented)
|
|
export interface EmbedDefinition {
|
|
// (undocumented)
|
|
readonly backgroundColor?: string;
|
|
// (undocumented)
|
|
readonly doesResize: boolean;
|
|
// (undocumented)
|
|
readonly fromEmbedUrl: (url: string) => string | undefined;
|
|
// (undocumented)
|
|
readonly height: number;
|
|
// (undocumented)
|
|
readonly hostnames: readonly string[];
|
|
// (undocumented)
|
|
readonly instructionLink?: string;
|
|
// (undocumented)
|
|
readonly isAspectRatioLocked?: boolean;
|
|
// (undocumented)
|
|
readonly minHeight?: number;
|
|
// (undocumented)
|
|
readonly minWidth?: number;
|
|
// (undocumented)
|
|
readonly overrideOutlineRadius?: number;
|
|
// (undocumented)
|
|
readonly overridePermissions?: TLEmbedShapePermissions;
|
|
// (undocumented)
|
|
readonly title: string;
|
|
// (undocumented)
|
|
readonly toEmbedUrl: (url: string) => string | undefined;
|
|
// (undocumented)
|
|
readonly type: string;
|
|
// (undocumented)
|
|
readonly width: number;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const embedShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public
|
|
export const embedShapePermissionDefaults: {
|
|
readonly 'allow-downloads-without-user-activation': false;
|
|
readonly 'allow-downloads': false;
|
|
readonly 'allow-forms': true;
|
|
readonly 'allow-modals': false;
|
|
readonly 'allow-orientation-lock': false;
|
|
readonly 'allow-pointer-lock': false;
|
|
readonly 'allow-popups-to-escape-sandbox': false;
|
|
readonly 'allow-popups': true;
|
|
readonly 'allow-presentation': false;
|
|
readonly 'allow-same-origin': true;
|
|
readonly 'allow-scripts': true;
|
|
readonly 'allow-storage-access-by-user-activation': false;
|
|
readonly 'allow-top-navigation-by-user-activation': false;
|
|
readonly 'allow-top-navigation': false;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const embedShapeProps: {
|
|
h: T.Validator<number>;
|
|
url: T.Validator<string>;
|
|
w: T.Validator<number>;
|
|
};
|
|
|
|
// @public
|
|
export class EnumStyleProp<T> extends StyleProp<T> {
|
|
// @internal
|
|
constructor(id: string, defaultValue: T, values: readonly T[]);
|
|
// (undocumented)
|
|
readonly values: readonly T[];
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const frameShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const frameShapeProps: {
|
|
h: T.Validator<number>;
|
|
name: T.Validator<string>;
|
|
w: T.Validator<number>;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const GeoShapeGeoStyle: EnumStyleProp<"arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box">;
|
|
|
|
// @public (undocumented)
|
|
export const geoShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const geoShapeProps: {
|
|
align: EnumStyleProp<"end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start">;
|
|
color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">;
|
|
fill: EnumStyleProp<"none" | "pattern" | "semi" | "solid">;
|
|
font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">;
|
|
geo: EnumStyleProp<"arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box">;
|
|
growY: T.Validator<number>;
|
|
h: T.Validator<number>;
|
|
labelColor: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
size: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
text: T.Validator<string>;
|
|
url: T.Validator<string>;
|
|
verticalAlign: EnumStyleProp<"end" | "middle" | "start">;
|
|
w: T.Validator<number>;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export function getDefaultColorTheme(opts: {
|
|
isDarkMode: boolean;
|
|
}): TLDefaultColorTheme;
|
|
|
|
// @public (undocumented)
|
|
export function getDefaultTranslationLocale(): TLLanguage['locale'];
|
|
|
|
// @internal (undocumented)
|
|
export function getShapePropKeysByStyle(props: Record<string, T.Validatable<any>>): Map<StyleProp<unknown>, string>;
|
|
|
|
// @public (undocumented)
|
|
export const groupShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const groupShapeProps: RecordProps<TLGroupShape>;
|
|
|
|
// @public (undocumented)
|
|
export const highlightShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const highlightShapeProps: {
|
|
color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
isComplete: T.Validator<boolean>;
|
|
isPen: T.Validator<boolean>;
|
|
segments: T.ArrayOfValidator<TLDrawShapeSegment>;
|
|
size: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export function idValidator<Id extends RecordId<UnknownRecord>>(prefix: Id['__type__']['typeName']): T.Validator<Id>;
|
|
|
|
// @public (undocumented)
|
|
export const ImageShapeCrop: T.ObjectValidator<{
|
|
bottomRight: VecModel;
|
|
topLeft: VecModel;
|
|
} & {}>;
|
|
|
|
// @public (undocumented)
|
|
export const imageShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const imageShapeProps: {
|
|
assetId: T.Validator<TLAssetId | null>;
|
|
crop: T.Validator<({
|
|
bottomRight: VecModel;
|
|
topLeft: VecModel;
|
|
} & {}) | null>;
|
|
h: T.Validator<number>;
|
|
playing: T.Validator<boolean>;
|
|
url: T.Validator<string>;
|
|
w: T.Validator<number>;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const InstancePageStateRecordType: RecordType<TLInstancePageState, "pageId">;
|
|
|
|
// @public (undocumented)
|
|
export const InstancePresenceRecordType: RecordType<TLInstancePresence, "currentPageId" | "userId" | "userName">;
|
|
|
|
// @public (undocumented)
|
|
export function isBinding(record?: UnknownRecord): record is TLBinding;
|
|
|
|
// @public (undocumented)
|
|
export function isBindingId(id?: string): id is TLBindingId;
|
|
|
|
// @public (undocumented)
|
|
export function isPageId(id: string): id is TLPageId;
|
|
|
|
// @public (undocumented)
|
|
export function isShape(record?: UnknownRecord): record is TLShape;
|
|
|
|
// @public (undocumented)
|
|
export function isShapeId(id?: string): id is TLShapeId;
|
|
|
|
// @public (undocumented)
|
|
export const LANGUAGES: readonly [{
|
|
readonly label: "Bahasa Indonesia";
|
|
readonly locale: "id";
|
|
}, {
|
|
readonly label: "Català";
|
|
readonly locale: "ca";
|
|
}, {
|
|
readonly label: "Čeština";
|
|
readonly locale: "cs";
|
|
}, {
|
|
readonly label: "Danish";
|
|
readonly locale: "da";
|
|
}, {
|
|
readonly label: "Deutsch";
|
|
readonly locale: "de";
|
|
}, {
|
|
readonly label: "English";
|
|
readonly locale: "en";
|
|
}, {
|
|
readonly label: "Español";
|
|
readonly locale: "es";
|
|
}, {
|
|
readonly label: "Français";
|
|
readonly locale: "fr";
|
|
}, {
|
|
readonly label: "Galego";
|
|
readonly locale: "gl";
|
|
}, {
|
|
readonly label: "Hrvatski";
|
|
readonly locale: "hr";
|
|
}, {
|
|
readonly label: "Italiano";
|
|
readonly locale: "it";
|
|
}, {
|
|
readonly label: "Magyar";
|
|
readonly locale: "hu";
|
|
}, {
|
|
readonly label: "Norwegian";
|
|
readonly locale: "no";
|
|
}, {
|
|
readonly label: "Polski";
|
|
readonly locale: "pl";
|
|
}, {
|
|
readonly label: "Português - Brasil";
|
|
readonly locale: "pt-br";
|
|
}, {
|
|
readonly label: "Português - Europeu";
|
|
readonly locale: "pt-pt";
|
|
}, {
|
|
readonly label: "Română";
|
|
readonly locale: "ro";
|
|
}, {
|
|
readonly label: "Russian";
|
|
readonly locale: "ru";
|
|
}, {
|
|
readonly label: "Slovenščina";
|
|
readonly locale: "sl";
|
|
}, {
|
|
readonly label: "Suomi";
|
|
readonly locale: "fi";
|
|
}, {
|
|
readonly label: "Svenska";
|
|
readonly locale: "sv";
|
|
}, {
|
|
readonly label: "Tiếng Việt";
|
|
readonly locale: "vi";
|
|
}, {
|
|
readonly label: "Türkçe";
|
|
readonly locale: "tr";
|
|
}, {
|
|
readonly label: "Ukrainian";
|
|
readonly locale: "uk";
|
|
}, {
|
|
readonly label: "עברית";
|
|
readonly locale: "he";
|
|
}, {
|
|
readonly label: "عربي";
|
|
readonly locale: "ar";
|
|
}, {
|
|
readonly label: "فارسی";
|
|
readonly locale: "fa";
|
|
}, {
|
|
readonly label: "کوردی";
|
|
readonly locale: "ku";
|
|
}, {
|
|
readonly label: "नेपाली";
|
|
readonly locale: "ne";
|
|
}, {
|
|
readonly label: "हिन्दी";
|
|
readonly locale: "hi-in";
|
|
}, {
|
|
readonly label: "తెలుగు";
|
|
readonly locale: "te";
|
|
}, {
|
|
readonly label: "ภาษาไทย";
|
|
readonly locale: "th";
|
|
}, {
|
|
readonly label: "မြန်မာစာ";
|
|
readonly locale: "my";
|
|
}, {
|
|
readonly label: "한국어";
|
|
readonly locale: "ko-kr";
|
|
}, {
|
|
readonly label: "日本語";
|
|
readonly locale: "ja";
|
|
}, {
|
|
readonly label: "简体中文";
|
|
readonly locale: "zh-cn";
|
|
}, {
|
|
readonly label: "繁體中文 (台灣)";
|
|
readonly locale: "zh-tw";
|
|
}];
|
|
|
|
// @public (undocumented)
|
|
export const lineShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const lineShapeProps: {
|
|
color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">;
|
|
points: T.DictValidator<string, {
|
|
id: string;
|
|
index: IndexKey;
|
|
x: number;
|
|
y: number;
|
|
} & {}>;
|
|
size: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
spline: EnumStyleProp<"cubic" | "line">;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const LineShapeSplineStyle: EnumStyleProp<"cubic" | "line">;
|
|
|
|
// @public (undocumented)
|
|
export const noteShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const noteShapeProps: {
|
|
align: EnumStyleProp<"end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start">;
|
|
color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">;
|
|
fontSizeAdjustment: T.Validator<number>;
|
|
growY: T.Validator<number>;
|
|
size: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
text: T.Validator<string>;
|
|
url: T.Validator<string>;
|
|
verticalAlign: EnumStyleProp<"end" | "middle" | "start">;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export const opacityValidator: T.Validator<number>;
|
|
|
|
// @public (undocumented)
|
|
export const pageIdValidator: T.Validator<TLPageId>;
|
|
|
|
// @public (undocumented)
|
|
export const PageRecordType: RecordType<TLPage, "index" | "name">;
|
|
|
|
// @public (undocumented)
|
|
export const parentIdValidator: T.Validator<TLParentId>;
|
|
|
|
// @internal (undocumented)
|
|
export const pluckPreservingValues: (val?: null | TLInstance) => null | Partial<TLInstance>;
|
|
|
|
// @public (undocumented)
|
|
export const PointerRecordType: RecordType<TLPointer, never>;
|
|
|
|
// @public (undocumented)
|
|
export type RecordProps<R extends UnknownRecord & {
|
|
props: object;
|
|
}> = {
|
|
[K in keyof R['props']]: T.Validatable<R['props'][K]>;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export type RecordPropsType<Config extends Record<string, T.Validatable<any>>> = Expand<{
|
|
[K in keyof Config]: T.TypeOf<Config[K]>;
|
|
}>;
|
|
|
|
// @public (undocumented)
|
|
export const rootBindingMigrations: MigrationSequence;
|
|
|
|
// @public (undocumented)
|
|
export const rootShapeMigrations: MigrationSequence;
|
|
|
|
// @public (undocumented)
|
|
export interface SchemaPropsInfo {
|
|
// (undocumented)
|
|
meta?: Record<string, StoreValidator<any>>;
|
|
// (undocumented)
|
|
migrations?: LegacyMigrations | MigrationSequence | TLPropsMigrations;
|
|
// (undocumented)
|
|
props?: Record<string, StoreValidator<any>>;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const scribbleValidator: T.Validator<TLScribble>;
|
|
|
|
// @public (undocumented)
|
|
export type SetValue<T extends Set<any>> = T extends Set<infer U> ? U : never;
|
|
|
|
// @public (undocumented)
|
|
export const shapeIdValidator: T.Validator<TLShapeId>;
|
|
|
|
// @public
|
|
export class StyleProp<Type> implements T.Validatable<Type> {
|
|
// @internal
|
|
protected constructor(id: string, defaultValue: Type, type: T.Validatable<Type>);
|
|
// (undocumented)
|
|
readonly defaultValue: Type;
|
|
static define<Type>(uniqueId: string, options: {
|
|
defaultValue: Type;
|
|
type?: T.Validatable<Type>;
|
|
}): StyleProp<Type>;
|
|
static defineEnum<const Values extends readonly unknown[]>(uniqueId: string, options: {
|
|
defaultValue: Values[number];
|
|
values: Values;
|
|
}): EnumStyleProp<Values[number]>;
|
|
// (undocumented)
|
|
readonly id: string;
|
|
// (undocumented)
|
|
readonly type: T.Validatable<Type>;
|
|
// (undocumented)
|
|
validate(value: unknown): Type;
|
|
// (undocumented)
|
|
validateUsingKnownGoodVersion(prevValue: Type, newValue: unknown): Type;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type StylePropValue<T extends StyleProp<any>> = T extends StyleProp<infer U> ? U : never;
|
|
|
|
// @public (undocumented)
|
|
export const textShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const textShapeProps: {
|
|
autoSize: T.Validator<boolean>;
|
|
color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">;
|
|
font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">;
|
|
scale: T.Validator<number>;
|
|
size: EnumStyleProp<"l" | "m" | "s" | "xl">;
|
|
text: T.Validator<string>;
|
|
textAlign: EnumStyleProp<"end" | "middle" | "start">;
|
|
w: T.Validator<number>;
|
|
};
|
|
|
|
// @public
|
|
export const TL_CANVAS_UI_COLOR_TYPES: Set<"accent" | "black" | "laser" | "muted-1" | "selection-fill" | "selection-stroke" | "white">;
|
|
|
|
// @public
|
|
export const TL_CURSOR_TYPES: Set<string>;
|
|
|
|
// @public
|
|
export const TL_HANDLE_TYPES: Set<"clone" | "create" | "vertex" | "virtual">;
|
|
|
|
// @public
|
|
export const TL_SCRIBBLE_STATES: Set<"active" | "paused" | "starting" | "stopping">;
|
|
|
|
// @public (undocumented)
|
|
export type TLArrowBinding = TLBaseBinding<'arrow', TLArrowBindingProps>;
|
|
|
|
// @public (undocumented)
|
|
export interface TLArrowBindingProps {
|
|
isExact: boolean;
|
|
isPrecise: boolean;
|
|
// (undocumented)
|
|
normalizedAnchor: VecModel;
|
|
// (undocumented)
|
|
terminal: 'end' | 'start';
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLArrowShape = TLBaseShape<'arrow', TLArrowShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLArrowShapeArrowheadStyle = T.TypeOf<typeof ArrowShapeArrowheadStartStyle>;
|
|
|
|
// @public (undocumented)
|
|
export type TLArrowShapeProps = RecordPropsType<typeof arrowShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLAsset = TLBookmarkAsset | TLImageAsset | TLVideoAsset;
|
|
|
|
// @public (undocumented)
|
|
export type TLAssetId = RecordId<TLBaseAsset<any, any>>;
|
|
|
|
// @public (undocumented)
|
|
export type TLAssetPartial<T extends TLAsset = TLAsset> = T extends T ? {
|
|
id: TLAssetId;
|
|
meta?: Partial<T['meta']>;
|
|
props?: Partial<T['props']>;
|
|
type: T['type'];
|
|
} & Partial<Omit<T, 'id' | 'meta' | 'props' | 'type'>> : never;
|
|
|
|
// @public (undocumented)
|
|
export type TLAssetShape = Extract<TLShape, {
|
|
props: {
|
|
assetId: TLAssetId;
|
|
};
|
|
}>;
|
|
|
|
// @public (undocumented)
|
|
export interface TLBaseAsset<Type extends string, Props> extends BaseRecord<'asset', TLAssetId> {
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
props: Props;
|
|
// (undocumented)
|
|
type: Type;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export interface TLBaseBinding<Type extends string, Props extends object> extends BaseRecord<'binding', TLBindingId> {
|
|
// (undocumented)
|
|
fromId: TLShapeId;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
props: Props;
|
|
// (undocumented)
|
|
toId: TLShapeId;
|
|
// (undocumented)
|
|
type: Type;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export interface TLBaseShape<Type extends string, Props extends object> extends BaseRecord<'shape', TLShapeId> {
|
|
// (undocumented)
|
|
index: IndexKey;
|
|
// (undocumented)
|
|
isLocked: boolean;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
opacity: TLOpacityType;
|
|
// (undocumented)
|
|
parentId: TLParentId;
|
|
// (undocumented)
|
|
props: Props;
|
|
// (undocumented)
|
|
rotation: number;
|
|
// (undocumented)
|
|
type: Type;
|
|
// (undocumented)
|
|
x: number;
|
|
// (undocumented)
|
|
y: number;
|
|
}
|
|
|
|
// @public
|
|
export type TLBinding = TLDefaultBinding | TLUnknownBinding;
|
|
|
|
// @public (undocumented)
|
|
export type TLBindingCreate<T extends TLBinding = TLBinding> = Expand<{
|
|
fromId: T['fromId'];
|
|
id?: TLBindingId;
|
|
meta?: Partial<T['meta']>;
|
|
props?: Partial<T['props']>;
|
|
toId: T['toId'];
|
|
type: T['type'];
|
|
typeName?: T['typeName'];
|
|
}>;
|
|
|
|
// @public
|
|
export type TLBindingId = RecordId<TLUnknownBinding>;
|
|
|
|
// @public (undocumented)
|
|
export type TLBindingUpdate<T extends TLBinding = TLBinding> = Expand<{
|
|
fromId?: T['fromId'];
|
|
id: TLBindingId;
|
|
meta?: Partial<T['meta']>;
|
|
props?: Partial<T['props']>;
|
|
toId?: T['toId'];
|
|
type: T['type'];
|
|
typeName?: T['typeName'];
|
|
}>;
|
|
|
|
// @public
|
|
export type TLBookmarkAsset = TLBaseAsset<'bookmark', {
|
|
description: string;
|
|
favicon: string;
|
|
image: string;
|
|
src: null | string;
|
|
title: string;
|
|
}>;
|
|
|
|
// @public (undocumented)
|
|
export type TLBookmarkShape = TLBaseShape<'bookmark', TLBookmarkShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLBookmarkShapeProps = RecordPropsType<typeof bookmarkShapeProps>;
|
|
|
|
// @public
|
|
export interface TLCamera extends BaseRecord<'camera', TLCameraId> {
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
x: number;
|
|
// (undocumented)
|
|
y: number;
|
|
// (undocumented)
|
|
z: number;
|
|
}
|
|
|
|
// @public
|
|
export type TLCameraId = RecordId<TLCamera>;
|
|
|
|
// @public
|
|
export type TLCanvasUiColor = SetValue<typeof TL_CANVAS_UI_COLOR_TYPES>;
|
|
|
|
// @public
|
|
export interface TLCursor {
|
|
// (undocumented)
|
|
rotation: number;
|
|
// (undocumented)
|
|
type: TLCursorType;
|
|
}
|
|
|
|
// @public
|
|
export type TLCursorType = SetValue<typeof TL_CURSOR_TYPES>;
|
|
|
|
// @public
|
|
export type TLDefaultBinding = TLArrowBinding;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultColorStyle = T.TypeOf<typeof DefaultColorStyle>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultColorTheme = Expand<{
|
|
background: string;
|
|
id: 'dark' | 'light';
|
|
solid: string;
|
|
text: string;
|
|
} & Record<(typeof defaultColorNames)[number], TLDefaultColorThemeColor>>;
|
|
|
|
// @public (undocumented)
|
|
export interface TLDefaultColorThemeColor {
|
|
// (undocumented)
|
|
highlight: {
|
|
p3: string;
|
|
srgb: string;
|
|
};
|
|
// (undocumented)
|
|
note: {
|
|
fill: string;
|
|
text: string;
|
|
};
|
|
// (undocumented)
|
|
pattern: string;
|
|
// (undocumented)
|
|
semi: string;
|
|
// (undocumented)
|
|
solid: string;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultDashStyle = T.TypeOf<typeof DefaultDashStyle>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultFillStyle = T.TypeOf<typeof DefaultFillStyle>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultFontStyle = T.TypeOf<typeof DefaultFontStyle>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultHorizontalAlignStyle = T.TypeOf<typeof DefaultHorizontalAlignStyle>;
|
|
|
|
// @public
|
|
export type TLDefaultShape = TLArrowShape | TLBookmarkShape | TLDrawShape | TLEmbedShape | TLFrameShape | TLGeoShape | TLGroupShape | TLHighlightShape | TLImageShape | TLLineShape | TLNoteShape | TLTextShape | TLVideoShape;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultSizeStyle = T.TypeOf<typeof DefaultSizeStyle>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultTextAlignStyle = T.TypeOf<typeof DefaultTextAlignStyle>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDefaultVerticalAlignStyle = T.TypeOf<typeof DefaultVerticalAlignStyle>;
|
|
|
|
// @public
|
|
export interface TLDocument extends BaseRecord<'document', RecordId<TLDocument>> {
|
|
// (undocumented)
|
|
gridSize: number;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
name: string;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const TLDOCUMENT_ID: RecordId<TLDocument>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDrawShape = TLBaseShape<'draw', TLDrawShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLDrawShapeProps = RecordPropsType<typeof drawShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export interface TLDrawShapeSegment {
|
|
// (undocumented)
|
|
points: VecModel[];
|
|
// (undocumented)
|
|
type: 'free' | 'straight';
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLEmbedShape = TLBaseShape<'embed', TLEmbedShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLEmbedShapePermissions = {
|
|
[K in keyof typeof embedShapePermissionDefaults]?: boolean;
|
|
};
|
|
|
|
// @public (undocumented)
|
|
export type TLEmbedShapeProps = RecordPropsType<typeof embedShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLFrameShape = TLBaseShape<'frame', TLFrameShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLFrameShapeProps = RecordPropsType<typeof frameShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLGeoShape = TLBaseShape<'geo', TLGeoShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLGeoShapeProps = RecordPropsType<typeof geoShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLGroupShape = TLBaseShape<'group', TLGroupShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLGroupShapeProps = {
|
|
[key in never]: undefined;
|
|
};
|
|
|
|
// @public
|
|
export interface TLHandle {
|
|
// (undocumented)
|
|
canSnap?: boolean;
|
|
id: string;
|
|
// (undocumented)
|
|
index: IndexKey;
|
|
// (undocumented)
|
|
type: TLHandleType;
|
|
// (undocumented)
|
|
x: number;
|
|
// (undocumented)
|
|
y: number;
|
|
}
|
|
|
|
// @public
|
|
export type TLHandleType = SetValue<typeof TL_HANDLE_TYPES>;
|
|
|
|
// @public (undocumented)
|
|
export type TLHighlightShape = TLBaseShape<'highlight', TLHighlightShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLHighlightShapeProps = RecordPropsType<typeof highlightShapeProps>;
|
|
|
|
// @public
|
|
export type TLImageAsset = TLBaseAsset<'image', {
|
|
fileSize: number;
|
|
h: number;
|
|
isAnimated: boolean;
|
|
mimeType: null | string;
|
|
name: string;
|
|
src: null | string;
|
|
w: number;
|
|
}>;
|
|
|
|
// @public (undocumented)
|
|
export type TLImageShape = TLBaseShape<'image', TLImageShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLImageShapeCrop = T.TypeOf<typeof ImageShapeCrop>;
|
|
|
|
// @public (undocumented)
|
|
export type TLImageShapeProps = RecordPropsType<typeof imageShapeProps>;
|
|
|
|
// @public
|
|
export interface TLInstance extends BaseRecord<'instance', TLInstanceId> {
|
|
// (undocumented)
|
|
brush: BoxModel | null;
|
|
// (undocumented)
|
|
chatMessage: string;
|
|
// (undocumented)
|
|
currentPageId: TLPageId;
|
|
// (undocumented)
|
|
cursor: TLCursor;
|
|
// (undocumented)
|
|
devicePixelRatio: number;
|
|
// (undocumented)
|
|
duplicateProps: {
|
|
offset: {
|
|
x: number;
|
|
y: number;
|
|
};
|
|
shapeIds: TLShapeId[];
|
|
} | null;
|
|
// (undocumented)
|
|
exportBackground: boolean;
|
|
// (undocumented)
|
|
followingUserId: null | string;
|
|
// (undocumented)
|
|
highlightedUserIds: string[];
|
|
// (undocumented)
|
|
insets: boolean[];
|
|
// (undocumented)
|
|
isChangingStyle: boolean;
|
|
// (undocumented)
|
|
isChatting: boolean;
|
|
isCoarsePointer: boolean;
|
|
// (undocumented)
|
|
isDebugMode: boolean;
|
|
// (undocumented)
|
|
isFocused: boolean;
|
|
// (undocumented)
|
|
isFocusMode: boolean;
|
|
// (undocumented)
|
|
isGridMode: boolean;
|
|
isHoveringCanvas: boolean | null;
|
|
// (undocumented)
|
|
isPenMode: boolean;
|
|
// (undocumented)
|
|
isReadonly: boolean;
|
|
// (undocumented)
|
|
isToolLocked: boolean;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
opacityForNextShape: TLOpacityType;
|
|
// (undocumented)
|
|
openMenus: string[];
|
|
// (undocumented)
|
|
screenBounds: BoxModel;
|
|
// (undocumented)
|
|
scribbles: TLScribble[];
|
|
// (undocumented)
|
|
stylesForNextShape: Record<string, unknown>;
|
|
// (undocumented)
|
|
zoomBrush: BoxModel | null;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const TLINSTANCE_ID: TLInstanceId;
|
|
|
|
// @public (undocumented)
|
|
export type TLInstanceId = RecordId<TLInstance>;
|
|
|
|
// @public
|
|
export interface TLInstancePageState extends BaseRecord<'instance_page_state', TLInstancePageStateId> {
|
|
// (undocumented)
|
|
croppingShapeId: null | TLShapeId;
|
|
// (undocumented)
|
|
editingShapeId: null | TLShapeId;
|
|
// (undocumented)
|
|
erasingShapeIds: TLShapeId[];
|
|
// (undocumented)
|
|
focusedGroupId: null | TLShapeId;
|
|
// (undocumented)
|
|
hintingShapeIds: TLShapeId[];
|
|
// (undocumented)
|
|
hoveredShapeId: null | TLShapeId;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
pageId: RecordId<TLPage>;
|
|
// (undocumented)
|
|
selectedShapeIds: TLShapeId[];
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLInstancePageStateId = RecordId<TLInstancePageState>;
|
|
|
|
// @public (undocumented)
|
|
export interface TLInstancePresence extends BaseRecord<'instance_presence', TLInstancePresenceID> {
|
|
// (undocumented)
|
|
brush: BoxModel | null;
|
|
// (undocumented)
|
|
camera: {
|
|
x: number;
|
|
y: number;
|
|
z: number;
|
|
};
|
|
// (undocumented)
|
|
chatMessage: string;
|
|
// (undocumented)
|
|
color: string;
|
|
// (undocumented)
|
|
currentPageId: TLPageId;
|
|
// (undocumented)
|
|
cursor: {
|
|
rotation: number;
|
|
type: TLCursor['type'];
|
|
x: number;
|
|
y: number;
|
|
};
|
|
// (undocumented)
|
|
followingUserId: null | string;
|
|
// (undocumented)
|
|
lastActivityTimestamp: number;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
screenBounds: BoxModel;
|
|
// (undocumented)
|
|
scribbles: TLScribble[];
|
|
// (undocumented)
|
|
selectedShapeIds: TLShapeId[];
|
|
// (undocumented)
|
|
userId: string;
|
|
// (undocumented)
|
|
userName: string;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLInstancePresenceID = RecordId<TLInstancePresence>;
|
|
|
|
// @public (undocumented)
|
|
export type TLLanguage = (typeof LANGUAGES)[number];
|
|
|
|
// @public (undocumented)
|
|
export type TLLineShape = TLBaseShape<'line', TLLineShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLLineShapeProps = RecordPropsType<typeof lineShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLNoteShape = TLBaseShape<'note', TLNoteShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLNoteShapeProps = RecordPropsType<typeof noteShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLOpacityType = number;
|
|
|
|
// @public
|
|
export interface TLPage extends BaseRecord<'page', TLPageId> {
|
|
// (undocumented)
|
|
index: IndexKey;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
name: string;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLPageId = RecordId<TLPage>;
|
|
|
|
// @public (undocumented)
|
|
export type TLParentId = TLPageId | TLShapeId;
|
|
|
|
// @public
|
|
export interface TLPointer extends BaseRecord<'pointer', TLPointerId> {
|
|
// (undocumented)
|
|
lastActivityTimestamp: number;
|
|
// (undocumented)
|
|
meta: JsonObject;
|
|
// (undocumented)
|
|
x: number;
|
|
// (undocumented)
|
|
y: number;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const TLPOINTER_ID: TLPointerId;
|
|
|
|
// @public (undocumented)
|
|
export type TLPointerId = RecordId<TLPointer>;
|
|
|
|
// @public (undocumented)
|
|
export interface TLPropsMigration {
|
|
// (undocumented)
|
|
readonly dependsOn?: MigrationId[];
|
|
readonly down?: 'none' | 'retired' | ((props: any) => any);
|
|
// (undocumented)
|
|
readonly id: MigrationId;
|
|
// (undocumented)
|
|
readonly up: (props: any) => any;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export interface TLPropsMigrations {
|
|
// (undocumented)
|
|
readonly sequence: Array<StandaloneDependsOn | TLPropsMigration>;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLRecord = TLAsset | TLBinding | TLCamera | TLDocument | TLInstance | TLInstancePageState | TLInstancePresence | TLPage | TLPointer | TLShape;
|
|
|
|
// @public (undocumented)
|
|
export type TLSchema = StoreSchema<TLRecord, TLStoreProps>;
|
|
|
|
// @public
|
|
export interface TLScribble {
|
|
// (undocumented)
|
|
color: TLCanvasUiColor;
|
|
// (undocumented)
|
|
delay: number;
|
|
// (undocumented)
|
|
id: string;
|
|
// (undocumented)
|
|
opacity: number;
|
|
// (undocumented)
|
|
points: VecModel[];
|
|
// (undocumented)
|
|
shrink: number;
|
|
// (undocumented)
|
|
size: number;
|
|
// (undocumented)
|
|
state: SetValue<typeof TL_SCRIBBLE_STATES>;
|
|
// (undocumented)
|
|
taper: boolean;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLSerializedStore = SerializedStore<TLRecord>;
|
|
|
|
// @public
|
|
export type TLShape = TLDefaultShape | TLUnknownShape;
|
|
|
|
// @public (undocumented)
|
|
export type TLShapeId = RecordId<TLUnknownShape>;
|
|
|
|
// @public (undocumented)
|
|
export type TLShapePartial<T extends TLShape = TLShape> = T extends T ? {
|
|
id: TLShapeId;
|
|
meta?: Partial<T['meta']>;
|
|
props?: Partial<T['props']>;
|
|
type: T['type'];
|
|
} & Partial<Omit<T, 'id' | 'meta' | 'props' | 'type'>> : never;
|
|
|
|
// @public (undocumented)
|
|
export type TLStore = Store<TLRecord, TLStoreProps>;
|
|
|
|
// @public (undocumented)
|
|
export interface TLStoreProps {
|
|
// (undocumented)
|
|
defaultName: string;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export type TLStoreSchema = StoreSchema<TLRecord, TLStoreProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLStoreSnapshot = StoreSnapshot<TLRecord>;
|
|
|
|
// @public (undocumented)
|
|
export type TLTextShape = TLBaseShape<'text', TLTextShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLTextShapeProps = RecordPropsType<typeof textShapeProps>;
|
|
|
|
// @public
|
|
export type TLUnknownBinding = TLBaseBinding<string, object>;
|
|
|
|
// @public
|
|
export type TLUnknownShape = TLBaseShape<string, object>;
|
|
|
|
// @public
|
|
export type TLVideoAsset = TLBaseAsset<'video', {
|
|
fileSize: number;
|
|
h: number;
|
|
isAnimated: boolean;
|
|
mimeType: null | string;
|
|
name: string;
|
|
src: null | string;
|
|
w: number;
|
|
}>;
|
|
|
|
// @public (undocumented)
|
|
export type TLVideoShape = TLBaseShape<'video', TLVideoShapeProps>;
|
|
|
|
// @public (undocumented)
|
|
export type TLVideoShapeProps = RecordPropsType<typeof videoShapeProps>;
|
|
|
|
// @public
|
|
export interface VecModel {
|
|
// (undocumented)
|
|
x: number;
|
|
// (undocumented)
|
|
y: number;
|
|
// (undocumented)
|
|
z?: number;
|
|
}
|
|
|
|
// @public (undocumented)
|
|
export const vecModelValidator: T.Validator<VecModel>;
|
|
|
|
// @public (undocumented)
|
|
export const videoShapeMigrations: TLPropsMigrations;
|
|
|
|
// @public (undocumented)
|
|
export const videoShapeProps: {
|
|
assetId: T.Validator<TLAssetId | null>;
|
|
h: T.Validator<number>;
|
|
playing: T.Validator<boolean>;
|
|
time: T.Validator<number>;
|
|
url: T.Validator<string>;
|
|
w: T.Validator<number>;
|
|
};
|
|
|
|
// (No @packageDocumentation comment for this package)
|
|
|
|
```
|