Skip to main content

@twick/canvas / Exports

@twick/canvas

Table of contents

Type Aliases

Variables

Functions

Type Aliases

CanvasElement

Ƭ CanvasElement: Object

Type declaration

NameType
backgoundColor?string
e?number
frame?{ lineWidth?: number ; radius?: number ; rotation?: number ; scaleX?: number ; scaleY?: number ; size?: [number, number] ; stroke?: string ; x: number ; y: number }
frame.lineWidth?number
frame.radius?number
frame.rotation?number
frame.scaleX?number
frame.scaleY?number
frame.size?[number, number]
frame.stroke?string
frame.xnumber
frame.ynumber
frameEffects?FrameEffect[]
idstring
objectFit?"contain" | "cover" | "fill" | "none"
propsCanvasElementProps
s?number
t?string
timelineType?string
typestring

Defined in

types.ts:44


CanvasElementProps

Ƭ CanvasElementProps: Object

Type declaration

NameType
fill?string
font?{ family?: string ; size?: number ; style?: string ; weight?: string }
font.family?string
font.size?number
font.style?string
font.weight?string
fontFamily?string
fontSize?number
fontStyle?string
fontWeight?string
height?number
lineWidth?number
opacity?number
playbackRate?number
pos?{ x: number ; y: number }
pos.xnumber
pos.ynumber
radius?number
rotation?number
scaleX?number
scaleY?number
shadow?{ blur: number ; color: string ; offsetX: number ; offsetY?: number }
shadow.blurnumber
shadow.colorstring
shadow.offsetXnumber
shadow.offsetY?number
shadowBlur?number
shadowColor?string
shadowOffset?[number, number]
size?[number, number]
src?string
stroke?string
strokeWidth?number
text?string
textAlign?"left" | "center" | "right"
textWrap?boolean
time?number
width?number
x?number
y?number

Defined in

types.ts:68


CanvasMetadata

Ƭ CanvasMetadata: Object

Type declaration

NameType
aspectRationumber
heightnumber
scaleXnumber
scaleYnumber
widthnumber

Defined in

types.ts:21


CanvasProps

Ƭ CanvasProps: Object

Type declaration

NameType
backgroundColor?string
canvasRefHTMLCanvasElement | string
canvasSizeDimensions
enableRetinaScaling?boolean
selectionBorderColor?string
selectionLineWidth?number
touchZoomThreshold?number
uniScaleTransform?boolean
videoSizeDimensions

Defined in

types.ts:9


CaptionProps

Ƭ CaptionProps: Object

Type declaration

NameType
color?{ background?: string ; highlight?: string ; text?: string }
color.background?string
color.highlight?string
color.text?string
font?{ family?: string ; fill?: string ; size?: number }
font.family?string
font.fill?string
font.size?number
pos?{ x: number ; y: number }
pos.xnumber
pos.ynumber

Defined in

types.ts:114


FrameEffect

Ƭ FrameEffect: Object

Type declaration

NameType
enumber
props{ framePosition?: { x: number ; y: number } ; frameSize?: [number, number] ; radius?: number ; rotation?: number ; shape?: "circle" | "rect" }
props.framePosition?{ x: number ; y: number }
props.framePosition.xnumber
props.framePosition.ynumber
props.frameSize?[number, number]
props.radius?number
props.rotation?number
props.shape?"circle" | "rect"
snumber

Defined in

types.ts:29

Variables

CANVAS_OPERATIONS

Const CANVAS_OPERATIONS: Object

Type declaration

NameType
ITEM_ADDEDstring
ITEM_DELETEDstring
ITEM_GROUPEDstring
ITEM_SELECTEDstring
ITEM_UNGROUPEDstring
ITEM_UPDATEDstring

Defined in

helpers/constants.ts:26


disabledControl

Const disabledControl: Control

Defined in

components/element-controls.tsx:3


rotateControl

Const rotateControl: Control

Defined in

components/element-controls.tsx:24

Functions

addBackgroundColor

addBackgroundColor(«destructured»): Rect<{ fill: string ; hasBorders: false = false; hasControls: false = false; height: number = canvasMetadata.height; left: number ; originX: "center" = "center"; originY: "center" = "center"; selectable: false = false; top: number ; width: number = canvasMetadata.width }, SerializedRectProps, ObjectEvents>

Add a background color to the canvas.

Parameters

NameType
«destructured»Object
› canvasCanvas
› canvasMetadataCanvasMetadata
› elementCanvasElement
› indexnumber

Returns

Rect<{ fill: string ; hasBorders: false = false; hasControls: false = false; height: number = canvasMetadata.height; left: number ; originX: "center" = "center"; originY: "center" = "center"; selectable: false = false; top: number ; width: number = canvasMetadata.width }, SerializedRectProps, ObjectEvents>

A Fabric.js Rect object configured with the specified properties.

Defined in

components/elements.tsx:527


addCaptionElement

addCaptionElement(params): FabricText<{ angle: number ; fill: string ; fontFamily: string ; fontSize: number ; fontWeight: number = DEFAULT_CAPTION_PROPS.fontWeight; left: Position = x; originX: "center" = "center"; originY: "center" = "center"; shadow: Shadow ; stroke: string ; strokeWidth: number ; top: Position = y }, SerializedTextProps, ObjectEvents>

Add a caption element for the canvas based on provided props.

Parameters

NameTypeDescription
paramsObjectParameters for creating the caption.
params.canvasCanvasThe Fabric.js canvas instance.
params.canvasMetadataCanvasMetadataMetadata about the canvas, including scale and dimensions.
params.captionPropsCaptionPropsDefault and user-defined caption properties.
params.elementCanvasElementThe canvas element configuration.
params.indexnumberThe z-index of the element.

Returns

FabricText<{ angle: number ; fill: string ; fontFamily: string ; fontSize: number ; fontWeight: number = DEFAULT_CAPTION_PROPS.fontWeight; left: Position = x; originX: "center" = "center"; originY: "center" = "center"; shadow: Shadow ; stroke: string ; strokeWidth: number ; top: Position = y }, SerializedTextProps, ObjectEvents>

The configured Fabric.js caption object.

Defined in

components/elements.tsx:148


addImageElement

addImageElement(«destructured»): Promise<undefined | FabricImage<Partial<ImageProps>, SerializedImageProps, ObjectEvents> | Group>

Add an image element into a Fabric.js image object and optionally groups it with a frame.

Parameters

NameType
«destructured»Object
› canvasCanvas
› canvasMetadataCanvasMetadata
› currentFrameEffect?FrameEffect
› elementCanvasElement
› imageUrl?string
› indexnumber

Returns

Promise<undefined | FabricImage<Partial<ImageProps>, SerializedImageProps, ObjectEvents> | Group>

A Fabric.js image object or a group with an image and frame.

Defined in

components/elements.tsx:279


addRectElement

addRectElement(«destructured»): Rect<{ angle: number ; fill: string ; height: number ; left: Position = x; opacity: number ; originX: "center" = "center"; originY: "center" = "center"; rx: number ; ry: number ; stroke: string ; strokeWidth: number ; top: Position = y; width: number }, SerializedRectProps, ObjectEvents>

Add a rectangular Fabric.js element based on the provided canvas element data.

Parameters

NameType
«destructured»Object
› canvasCanvas
› canvasMetadataCanvasMetadata
› elementCanvasElement
› indexnumber

Returns

Rect<{ angle: number ; fill: string ; height: number ; left: Position = x; opacity: number ; originX: "center" = "center"; originY: "center" = "center"; rx: number ; ry: number ; stroke: string ; strokeWidth: number ; top: Position = y; width: number }, SerializedRectProps, ObjectEvents>

A Fabric.js Rect object configured with the specified properties.

Defined in

components/elements.tsx:472


addTextElement

addTextElement(params): FabricText<{ angle: number ; fill: string ; fontFamily: string ; fontSize: number ; fontStyle: string ; fontWeight: string ; left: Position = x; originX: "center" = "center"; originY: "center" = "center"; shadow: undefined | Shadow ; skipWrapping: boolean = false; stroke: string ; strokeWidth: number ; textAlign: "left" | "center" | "right" ; top: Position = y }, SerializedTextProps, ObjectEvents>

Add a text element for the canvas.

Parameters

NameTypeDescription
paramsObjectThe parameters for creating the text element.
params.canvasCanvas-
params.canvasMetadataCanvasMetadataMetadata about the canvas, including scale and dimensions.
params.elementCanvasElementThe canvas element configuration.
params.indexnumberThe z-index of the element.

Returns

FabricText<{ angle: number ; fill: string ; fontFamily: string ; fontSize: number ; fontStyle: string ; fontWeight: string ; left: Position = x; originX: "center" = "center"; originY: "center" = "center"; shadow: undefined | Shadow ; skipWrapping: boolean = false; stroke: string ; strokeWidth: number ; textAlign: "left" | "center" | "right" ; top: Position = y }, SerializedTextProps, ObjectEvents>

The configured Fabric.js text object.

Defined in

components/elements.tsx:32


addVideoElement

addVideoElement(«destructured»): Promise<undefined | FabricImage<Partial<ImageProps>, SerializedImageProps, ObjectEvents> | Group>

Parameters

NameType
«destructured»Object
› canvasCanvas
› canvasMetadataCanvasMetadata
› currentFrameEffect?FrameEffect
› elementCanvasElement
› indexnumber
› snapTimenumber

Returns

Promise<undefined | FabricImage<Partial<ImageProps>, SerializedImageProps, ObjectEvents> | Group>

Defined in

components/elements.tsx:230


convertToCanvasPosition

convertToCanvasPosition(x, y, canvasMetadata): Position

Converts a position from the video coordinate space to the canvas coordinate space.

Parameters

NameTypeDescription
xnumberX-coordinate in video space.
ynumberY-coordinate in video space.
canvasMetadataCanvasMetadataMetadata containing canvas scaling and dimensions.

Returns

Position

The corresponding position in canvas space.

Defined in

helpers/canvas.util.ts:118


convertToVideoPosition

convertToVideoPosition(x, y, canvasMetadata, videoSize): Position

Converts a position from the canvas coordinate space to the video coordinate space.

Parameters

NameTypeDescription
xnumberX-coordinate in canvas space.
ynumberY-coordinate in canvas space.
canvasMetadataCanvasMetadataMetadata containing canvas scaling and dimensions.
videoSizeDimensionsDimensions of the video.

Returns

Position

The corresponding position in video space.

Defined in

helpers/canvas.util.ts:138


createCanvas

createCanvas(«destructured»): Object

Creates and initializes a Fabric.js canvas with specified configurations.

Parameters

NameType
«destructured»CanvasProps

Returns

Object

An object containing the initialized canvas and its metadata.

NameType
canvasFabricCanvas
canvasMetadataCanvasMetadata

Defined in

helpers/canvas.util.ts:22


getCurrentFrameEffect

getCurrentFrameEffect(item, seekTime): any

Retrieves the current frame effect for a given seek time.

Parameters

NameTypeDescription
itemanyThe item containing frame effects.
seekTimenumberThe current time to match against frame effects.

Returns

any

The current frame effect active at the given seek time, if any.

Defined in

helpers/canvas.util.ts:157


reorderElementsByZIndex

reorderElementsByZIndex(canvas): void

Reorders elements on the canvas based on their zIndex property.

Parameters

NameTypeDescription
canvasCanvasThe Fabric.js canvas instance.

Returns

void

Defined in

helpers/canvas.util.ts:83


useTwickCanvas

useTwickCanvas(«destructured»): Object

Custom hook to manage a Fabric.js canvas and associated operations.

Parameters

NameType
«destructured»Object
› onCanvasOperation?(operation: string, data: any) => void
› onCanvasReady?(canvas: Canvas) => void

Returns

Object

Canvas-related functions and state.

NameType
addElementToCanvas(options: { captionProps?: any ; element: CanvasElement ; index: number ; reorder: boolean = true; seekTime?: number }) => Promise<void>
buildCanvas(props: CanvasProps) => void
onVideoSizeChange(videoSize: Dimensions) => void
setCanvasElements(options: { captionProps?: any ; cleanAndAdd?: boolean = false; elements: CanvasElement[] ; seekTime?: number = 0 }) => Promise<void>
twickCanvasnull | Canvas

Defined in

hooks/use-twick-canvas.ts:29