Skip to content

Commit

Permalink
Add JSONCanvas types and interfaces
Browse files Browse the repository at this point in the history
  • Loading branch information
Mearman committed Mar 14, 2024
1 parent 2c4df28 commit 27d5d38
Showing 1 changed file with 79 additions and 0 deletions.
79 changes: 79 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
export type JSONCanvasColor = string | JSONCanvasColorPreset;
export type JSONCanvasColorPreset = 1 | 2 | 3 | 4 | 5 | 6;
export type JSONCanvasEdgeSide = "top" | "right" | "bottom" | "left";
export type JSONCanvasEdgeEnd = "none" | "arrow";
export type JSONCanvasNode =
| JSONCanvasNodeType
| JSONCanvasTextNode
| JSONCanvasFileNode
| JSONCanvasLinkNode
| JSONCanvasGroupNode;

export interface JsonCanvas {
required?: true;
edges?: JSONCanvasEdge[];
nodes?: JSONCanvasNode[];
[k: string]: unknown;
}
export interface JSONCanvasEdge {
color?: JSONCanvasColor;
fromNode: string;
fromSide?: JSONCanvasEdgeSide;
id: string;
label?: string;
toEnd?: JSONCanvasEdgeEnd;
toNode: string;
toSide?: JSONCanvasEdgeSide;
}
export interface JSONCanvasNodeType {
color?: JSONCanvasColor;
height: number;
id: string;
type: "text" | "file" | "link" | "group";
width: number;
x: number;
y: number;
}
export interface JSONCanvasTextNode {
color?: JSONCanvasColor;
height: number;
id: string;
text: string;
type: "text";
width: number;
x: number;
y: number;
}
export interface JSONCanvasFileNode {
color?: JSONCanvasColor;
file: string;
height: number;
id: string;
subpath?: string;
type: "file";
width: number;
x: number;
y: number;
}
export interface JSONCanvasLinkNode {
color?: JSONCanvasColor;
height: number;
id: string;
type: "link";
url: string;
width: number;
x: number;
y: number;
}
export interface JSONCanvasGroupNode {
background?: string;
backgroundStyle?: "cover" | "ratio" | "repeat";
color?: JSONCanvasColor;
height: number;
id: string;
label?: string;
type: "group";
width: number;
x: number;
y: number;
}

0 comments on commit 27d5d38

Please sign in to comment.