types · types
Interfaces, valeurs et contrats nommés de types.
Les types ci-dessous définissent les objets nommés et leurs relations. Les propriétés héritées sont incluses dans les tableaux. Les types dérivés d’un schéma renvoient à sa structure; une déclaration TypeScript ne remplace pas les contrôles sémantiques du compilateur.
CanvasLeafNodeKind
Closed native object kinds; rendering libraries do not extend this contract.
export type CanvasLeafNodeKind = 'text' | 'rect' | 'ellipse' | 'triangle' | 'line' | 'image';
type CanvasLeafNodeKind = "text" | "rect" | "ellipse" | "triangle" | "line" | "image";
CanvasNodeKind
Closed native leaves, containers and attached connections.
export type CanvasNodeKind = CanvasLeafNodeKind | 'group' | 'frame' | 'connector';
type CanvasNodeKind = CanvasLeafNodeKind | "group" | "frame" | "connector";
CanvasStrokeType
Frame stroke styles shared by shapes and text blocks.
export type CanvasStrokeType = 'none' | 'solid' | 'dashed' | 'dotted';
type CanvasStrokeType = "none" | "solid" | "dashed" | "dotted";
CanvasNodeBase
Geometry is expressed in document units, independently of the viewport zoom.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
x |
number |
Requis. Coordonnée horizontale dans le repère du contenu parent. |
y |
number |
Requis. Coordonnée verticale dans le repère du contenu parent. |
width |
number |
Requis. Largeur de l’élément dans l’unité du contrat parent. |
height |
number |
Requis. Hauteur de l’élément dans l’unité du contrat parent. |
rotation |
number |
Requis. Rotation de l’élément selon l’unité et les limites du format natif. |
opacity |
number |
Requis. Opacité de présentation dans l’intervalle admis. |
locked |
boolean |
Requis. Empêche les opérations d’édition ordinaires sur l’élément concerné. |
strokeType |
CanvasStrokeType |
Requis. Définit « stroke Type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
strokeColor |
string |
Requis. Couleur du trait au format admis par le contenu natif. |
strokeWidth |
number |
Requis. Épaisseur du trait selon les limites de la politique graphique. |
parentId |
string | null |
Requis. Définit « parent Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pinned |
boolean |
Requis. Définit « pinned » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasNodeBase extends CanvasHierarchy {
id: string;
x: number;
y: number;
width: number;
height: number;
rotation: number;
opacity: number;
locked: boolean;
strokeType: CanvasStrokeType;
strokeColor: string;
strokeWidth: number;
}
CanvasTextNode
Text paint, frame stroke and background alpha remain independent values.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
kind |
"text" |
Requis. Sélectionne la variante et les propriétés admises dans cette branche. |
text |
string |
Requis. Définit « text » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
richText |
ProseMirrorSurfaceDocument | undefined |
Facultatif. Native document grammar owns the retained paragraphs, lists and marks. |
fontFamily |
string |
Requis. Famille typographique choisie dans les valeurs admises par la politique. |
fontSize |
number |
Requis. Définit « font Size » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
fontWeight |
400 | 700 |
Requis. Définit « font Weight » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
fontStyle |
"normal" | "italic" |
Requis. Définit « font Style » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
underline |
boolean |
Requis. Définit « underline » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
textAlign |
"left" | "right" | "center" |
Requis. Alignement du texte dans son conteneur. |
lineHeight |
number |
Requis. Définit « line Height » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
letterSpacing |
number |
Requis. Définit « letter Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
textColor |
string |
Requis. Définit « text Color » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
backgroundColor |
string |
Requis. Définit « background Color » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
backgroundOpacity |
number |
Requis. Définit « background Opacity » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
x |
number |
Requis. Coordonnée horizontale dans le repère du contenu parent. |
y |
number |
Requis. Coordonnée verticale dans le repère du contenu parent. |
width |
number |
Requis. Largeur de l’élément dans l’unité du contrat parent. |
height |
number |
Requis. Hauteur de l’élément dans l’unité du contrat parent. |
rotation |
number |
Requis. Rotation de l’élément selon l’unité et les limites du format natif. |
opacity |
number |
Requis. Opacité de présentation dans l’intervalle admis. |
locked |
boolean |
Requis. Empêche les opérations d’édition ordinaires sur l’élément concerné. |
strokeType |
CanvasStrokeType |
Requis. Définit « stroke Type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
strokeColor |
string |
Requis. Couleur du trait au format admis par le contenu natif. |
strokeWidth |
number |
Requis. Épaisseur du trait selon les limites de la politique graphique. |
parentId |
string | null |
Requis. Définit « parent Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pinned |
boolean |
Requis. Définit « pinned » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasTextNode extends CanvasNodeBase {
kind: 'text';
text: string;
/** Native document grammar owns the retained paragraphs, lists and marks. */
richText?: ProseMirrorSurfaceDocument;
fontFamily: string;
fontSize: number;
fontWeight: 400 | 700;
fontStyle: 'normal' | 'italic';
underline: boolean;
textAlign: 'left' | 'center' | 'right';
lineHeight: number;
letterSpacing: number;
textColor: string;
backgroundColor: string;
backgroundOpacity: number;
}
CanvasShapeNode
Closed filled primitives; a line uses the same world geometry and frame stroke.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
kind |
"rect" | "ellipse" | "triangle" | "line" |
Requis. Sélectionne la variante et les propriétés admises dans cette branche. |
fill |
string |
Requis. Remplissage graphique défini par la variante de peinture admise. |
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
x |
number |
Requis. Coordonnée horizontale dans le repère du contenu parent. |
y |
number |
Requis. Coordonnée verticale dans le repère du contenu parent. |
width |
number |
Requis. Largeur de l’élément dans l’unité du contrat parent. |
height |
number |
Requis. Hauteur de l’élément dans l’unité du contrat parent. |
rotation |
number |
Requis. Rotation de l’élément selon l’unité et les limites du format natif. |
opacity |
number |
Requis. Opacité de présentation dans l’intervalle admis. |
locked |
boolean |
Requis. Empêche les opérations d’édition ordinaires sur l’élément concerné. |
strokeType |
CanvasStrokeType |
Requis. Définit « stroke Type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
strokeColor |
string |
Requis. Couleur du trait au format admis par le contenu natif. |
strokeWidth |
number |
Requis. Épaisseur du trait selon les limites de la politique graphique. |
parentId |
string | null |
Requis. Définit « parent Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pinned |
boolean |
Requis. Définit « pinned » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasShapeNode extends CanvasNodeBase {
kind: 'rect' | 'ellipse' | 'triangle' | 'line';
fill: string;
}
CanvasImageNode
Images reference canonical media, never arbitrary URLs or temporary object URLs.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
kind |
"image" |
Requis. Sélectionne la variante et les propriétés admises dans cette branche. |
mediaId |
string |
Requis. Définit « media Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
x |
number |
Requis. Coordonnée horizontale dans le repère du contenu parent. |
y |
number |
Requis. Coordonnée verticale dans le repère du contenu parent. |
width |
number |
Requis. Largeur de l’élément dans l’unité du contrat parent. |
height |
number |
Requis. Hauteur de l’élément dans l’unité du contrat parent. |
rotation |
number |
Requis. Rotation de l’élément selon l’unité et les limites du format natif. |
opacity |
number |
Requis. Opacité de présentation dans l’intervalle admis. |
locked |
boolean |
Requis. Empêche les opérations d’édition ordinaires sur l’élément concerné. |
strokeType |
CanvasStrokeType |
Requis. Définit « stroke Type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
strokeColor |
string |
Requis. Couleur du trait au format admis par le contenu natif. |
strokeWidth |
number |
Requis. Épaisseur du trait selon les limites de la politique graphique. |
parentId |
string | null |
Requis. Définit « parent Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pinned |
boolean |
Requis. Définit « pinned » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasImageNode extends CanvasNodeBase {
kind: 'image';
mediaId: string;
}
CanvasLeafNode
Native Canvas object union, independent of Surface Canvas serialization.
export type CanvasLeafNode = CanvasTextNode | CanvasShapeNode | CanvasImageNode;
CanvasHierarchy
Hierarchy uses local coordinates; no implicit Surface Canvas transform is durable.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
parentId |
string | null |
Requis. Définit « parent Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pinned |
boolean |
Requis. Définit « pinned » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasHierarchy {
parentId: string | null;
pinned: boolean;
}
CanvasLayout
Closed deterministic layout over canonical measured object dimensions.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
kind |
"free" | "row" | "column" | "grid" |
Requis. Sélectionne la variante et les propriétés admises dans cette branche. |
gap |
number |
Requis. Définit « gap » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
padding |
number |
Requis. Définit « padding » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
columns |
number |
Requis. Colonnes ordonnées et leurs sources de valeurs autorisées. |
align |
"center" | "start" | "end" |
Requis. Définit « align » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
sizing |
"fixed" | "hug" |
Requis. Définit « sizing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasLayout {
kind: 'free' | 'row' | 'column' | 'grid';
gap: number;
padding: number;
columns: number;
align: 'start' | 'center' | 'end';
sizing: 'fixed' | 'hug';
}
CanvasContainerNode
A persistent container is an ordinary native object, not a serialized renderer group.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
kind |
"group" | "frame" |
Requis. Sélectionne la variante et les propriétés admises dans cette branche. |
name |
string |
Requis. Nom lisible de l’élément dans le contexte qui le présente. |
fill |
string |
Requis. Remplissage graphique défini par la variante de peinture admise. |
layout |
CanvasLayout |
Requis. Algorithme ou structure d’agencement, configuré par les propriétés de la variante. |
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
x |
number |
Requis. Coordonnée horizontale dans le repère du contenu parent. |
y |
number |
Requis. Coordonnée verticale dans le repère du contenu parent. |
width |
number |
Requis. Largeur de l’élément dans l’unité du contrat parent. |
height |
number |
Requis. Hauteur de l’élément dans l’unité du contrat parent. |
rotation |
number |
Requis. Rotation de l’élément selon l’unité et les limites du format natif. |
opacity |
number |
Requis. Opacité de présentation dans l’intervalle admis. |
locked |
boolean |
Requis. Empêche les opérations d’édition ordinaires sur l’élément concerné. |
strokeType |
CanvasStrokeType |
Requis. Définit « stroke Type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
strokeColor |
string |
Requis. Couleur du trait au format admis par le contenu natif. |
strokeWidth |
number |
Requis. Épaisseur du trait selon les limites de la politique graphique. |
parentId |
string | null |
Requis. Définit « parent Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pinned |
boolean |
Requis. Définit « pinned » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasContainerNode extends CanvasNodeBase, CanvasHierarchy {
kind: 'group' | 'frame';
name: string;
fill: string;
layout: CanvasLayout;
}
CanvasConnectorEndpoint
Exact bounding-box port of a native same-page object, never a fuzzy title/reference.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
nodeId |
string |
Requis. Définit « node Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
port |
"center" | "north" | "east" | "south" | "west" |
Requis. Définit « port » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasConnectorEndpoint {
nodeId: string;
port: 'north' | 'east' | 'south' | 'west' | 'center';
}
CanvasConnectorNode
Attached native connection; its geometry is derived by the shared operation engine.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
kind |
"connector" |
Requis. Sélectionne la variante et les propriétés admises dans cette branche. |
source |
CanvasConnectorEndpoint |
Requis. Définit « source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
target |
CanvasConnectorEndpoint |
Requis. Définit « target » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
routing |
"straight" | "orthogonal" |
Requis. Définit « routing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
label |
string |
Requis. Libellé destiné à l’usager dans l’interface. |
fontFamily |
string |
Requis. Famille typographique choisie dans les valeurs admises par la politique. |
fontSize |
number |
Requis. Définit « font Size » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
fontWeight |
400 | 700 |
Requis. Définit « font Weight » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
fontStyle |
"normal" | "italic" |
Requis. Définit « font Style » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
textColor |
string |
Requis. Définit « text Color » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
startArrow |
"none" | "arrow" |
Requis. Définit « start Arrow » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
endArrow |
"none" | "arrow" |
Requis. Définit « end Arrow » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
x |
number |
Requis. Coordonnée horizontale dans le repère du contenu parent. |
y |
number |
Requis. Coordonnée verticale dans le repère du contenu parent. |
width |
number |
Requis. Largeur de l’élément dans l’unité du contrat parent. |
height |
number |
Requis. Hauteur de l’élément dans l’unité du contrat parent. |
rotation |
number |
Requis. Rotation de l’élément selon l’unité et les limites du format natif. |
opacity |
number |
Requis. Opacité de présentation dans l’intervalle admis. |
locked |
boolean |
Requis. Empêche les opérations d’édition ordinaires sur l’élément concerné. |
strokeType |
CanvasStrokeType |
Requis. Définit « stroke Type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
strokeColor |
string |
Requis. Couleur du trait au format admis par le contenu natif. |
strokeWidth |
number |
Requis. Épaisseur du trait selon les limites de la politique graphique. |
parentId |
string | null |
Requis. Définit « parent Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pinned |
boolean |
Requis. Définit « pinned » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasConnectorNode extends CanvasNodeBase, CanvasHierarchy {
kind: 'connector';
source: CanvasConnectorEndpoint;
target: CanvasConnectorEndpoint;
routing: 'straight' | 'orthogonal';
label: string;
fontFamily: string;
fontSize: number;
fontWeight: 400 | 700;
fontStyle: 'normal' | 'italic';
textColor: string;
startArrow: 'none' | 'arrow';
endArrow: 'none' | 'arrow';
}
CanvasNode
Portable native node union, independent of renderer serialization.
export type CanvasNode = CanvasLeafNode | CanvasContainerNode | CanvasConnectorNode;
CanvasPage
Page array order and node array order are canonical back-to-front order.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
width |
number |
Requis. Largeur de l’élément dans l’unité du contrat parent. |
height |
number |
Requis. Hauteur de l’élément dans l’unité du contrat parent. |
background |
string |
Requis. Définit « background » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
nodes |
CanvasNode[] |
Requis. Définit « nodes » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasPage {
id: string;
width: number;
height: number;
background: string;
nodes: CanvasNode[];
}
CanvasDocument
Complete canonical content accepted by every Surface host and server.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
type |
"surface_canvas" |
Requis. Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
schema_version |
6 |
Requis. Définit « schema_version » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
mode |
"pages" | "whiteboard" |
Requis. Définit « mode » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
pages |
CanvasPage[] |
Requis. Pages du document Canvas ou de l’objet concerné, avec leurs identités stables. |
resourceKind |
"scene" | "component" | "library" |
Requis. Définit « resource Kind » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
componentDefinition |
CanvasComponentDefinition | null |
Requis. Définit « component Definition » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
libraryDefinition |
CanvasLibraryDefinition | null |
Requis. Définit « library Definition » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
instances |
CanvasComponentInstance[] |
Requis. Définit « instances » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
assets |
CanvasAssetBinding[] |
Requis. Each image address binds one immutable authorized Asset Revision. |
sourceRegions |
CanvasSourceRegion[] |
Requis. Définit « source Regions » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
dataObjects |
CanvasDataObject[] |
Requis. Définit « data Objects » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasDocument {
type: 'surface_canvas';
schema_version: 6;
mode: 'pages' | 'whiteboard';
pages: CanvasPage[];
resourceKind: 'scene' | 'component' | 'library';
componentDefinition: CanvasComponentDefinition | null;
libraryDefinition: CanvasLibraryDefinition | null;
instances: CanvasComponentInstance[];
/** Each image address binds one immutable authorized Asset Revision. */
assets: CanvasAssetBinding[];
sourceRegions: CanvasSourceRegion[];
dataObjects: CanvasDataObject[];
}
CanvasSourceRegionPreview
Read-only preparation completes a draft without mutating the saved destination subtree.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
contract |
"SurfaceCanvasDerivedRegionPreview@1" |
Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
surfaceId |
string |
Requis. Définit « surface Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
revisionId |
string |
Requis. Définit « revision Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
version |
number |
Requis. Version déclarée du contenu ou de la publication; elle identifie l’interprétation applicable. |
graphWatermark |
number |
Requis. Définit « graph Watermark » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
region |
CanvasSourceRegion |
Requis. Définit « region » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
querySelection |
{ readonly complete: true; readonly sources: readonly SurfaceRevisionReference[]; } | null |
Requis. Définit « query Selection » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasSourceRegionPreview {
readonly contract: 'SurfaceCanvasDerivedRegionPreview@1';
readonly surfaceId: string;
readonly revisionId: string;
readonly version: number;
readonly graphWatermark: number;
readonly region: CanvasSourceRegion;
readonly querySelection: {
readonly complete: true;
readonly sources: readonly SurfaceRevisionReference[];
} | null;
}
CanvasSourceObservation
Freshness observes native heads and snapshots, never an inferred deletion or automatic pin replacement.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
contract |
"SurfaceCanvasDerivedSourcesObservation@1" |
Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
surfaceId |
string |
Requis. Définit « surface Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
revisionId |
string |
Requis. Définit « revision Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
version |
number |
Requis. Version déclarée du contenu ou de la publication; elle identifie l’interprétation applicable. |
graphWatermark |
number |
Requis. Définit « graph Watermark » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
regions |
readonly { readonly key: string; readonly citations: readonly { readonly reference: SurfaceRevisionReference; readonly anchorId: string | null; readonly currentRevisionId: string; readonly state: "same-head" | "head-advanced"; }[]; readonly querySnapshot: "none" | "same-graph" | "graph-advanced"; }[] |
Requis. Définit « regions » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasSourceObservation {
readonly contract: 'SurfaceCanvasDerivedSourcesObservation@1';
readonly surfaceId: string;
readonly revisionId: string;
readonly version: number;
readonly graphWatermark: number;
readonly regions: readonly {
readonly key: string;
readonly citations: readonly {
readonly reference: SurfaceRevisionReference;
readonly anchorId: string | null;
readonly currentRevisionId: string;
readonly state: 'same-head' | 'head-advanced';
}[];
readonly querySnapshot: 'none' | 'same-graph' | 'graph-advanced';
}[];
}
CanvasPolicy
Model-owned editing policy; font names are references to qualified client assets.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
contract |
"CanvasPolicy@7" |
Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
objects |
CanvasNodeKind[] |
Requis. Objets natifs de la page, avec types, identités et géométrie. |
fontFamilies |
string[] |
Requis. Définit « font Families » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
minimumPages |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
maximumPages |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
pageOperations |
("delete" | "add" | "move" | "duplicate" | "insert")[] |
Requis. Définit « page Operations » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
objectOrderOperations |
("bring-forward" | "send-backward" | "bring-to-front" | "send-to-back")[] |
Requis. Définit « object Order Operations » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
textPaintProperties |
("text-color" | "text-background-color" | "text-background-opacity")[] |
Requis. Définit « text Paint Properties » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
borderStyles |
CanvasStrokeType[] |
Requis. Définit « border Styles » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
borderWeightRange |
{ minimum: number; maximum: number; } |
Requis. Définit « border Weight Range » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
protectedNodeIds |
string[] |
Requis. Définit « protected Node Ids » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
protectedPageIds |
string[] |
Requis. Définit « protected Page Ids » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
hierarchyOperations |
("group" | "ungroup" | "reparent")[] |
Requis. Définit « hierarchy Operations » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
layouts |
("free" | "row" | "column" | "grid")[] |
Requis. Définit « layouts » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
maximumDepth |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
modes |
("pages" | "whiteboard")[] |
Requis. Définit « modes » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
connectorRoutings |
("straight" | "orthogonal")[] |
Requis. Définit « connector Routings » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
resourceKind |
"scene" | "component" | "library" |
Requis. Définit « resource Kind » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
componentOperations |
("define" | "library-edit" | "instance-create" | "instance-update" | "instance-edit" | "instance-detach")[] |
Requis. Définit « component Operations » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
componentSources |
CanvasComponentSourcePolicy[] |
Requis. Définit « component Sources » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
maximumInstances |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
assetSources |
{ modelId: string; assetDefinitionPaths: string[]; }[] |
Requis. Définit « asset Sources » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
maximumAssets |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
fontCatalogue |
CanvasFontCatalogueReference |
Requis. Définit « font Catalogue » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
maximumComponentDepth |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
maximumComponentDependencies |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
visualData |
{ kinds: ("table" | "chart")[]; modes: ("snapshot" | "live")[]; operations: ("create" | "configure" | "refresh" | "remove")[]; maximumObjects: number; maximumRows: number; maximumColumns: number; } | undefined |
Facultatif. Absence denies semantic visual data; this declaration grants neither source access nor Field writes. |
derivedSources |
{ operations: ("bind" | "refresh" | "remove")[]; maximumRegions: number; } | undefined |
Facultatif. Absence grants no source-region operation; ordinary Source8 and DataProtection checks still apply. |
export |
{ formats: ("png" | "jpeg" | "svg" | "pdf")[]; maxPages: number; maxPixels: number; maxArtifactBytes: number; } | undefined |
Facultatif. Politique d’export des contenus concernés. |
export interface CanvasPolicy {
contract: 'CanvasPolicy@7';
objects: CanvasNodeKind[];
fontFamilies: string[];
minimumPages: number;
maximumPages: number;
pageOperations: ('add' | 'duplicate' | 'insert' | 'move' | 'delete')[];
objectOrderOperations: ('bring-forward' | 'send-backward' | 'bring-to-front' | 'send-to-back')[];
textPaintProperties: ('text-color' | 'text-background-color' | 'text-background-opacity')[];
borderStyles: CanvasStrokeType[];
borderWeightRange: { minimum: number; maximum: number };
protectedNodeIds: string[];
protectedPageIds: string[];
hierarchyOperations: ('group' | 'ungroup' | 'reparent')[];
layouts: CanvasLayout['kind'][];
maximumDepth: number;
modes: ('pages' | 'whiteboard')[];
connectorRoutings: CanvasConnectorNode['routing'][];
resourceKind: 'scene' | 'component' | 'library';
componentOperations: (
| 'define'
| 'library-edit'
| 'instance-create'
| 'instance-update'
| 'instance-edit'
| 'instance-detach'
)[];
componentSources: CanvasComponentSourcePolicy[];
maximumInstances: number;
assetSources: { modelId: string; assetDefinitionPaths: string[] }[];
maximumAssets: number;
fontCatalogue: CanvasFontCatalogueReference;
maximumComponentDepth: number;
maximumComponentDependencies: number;
/** Absence denies semantic visual data; this declaration grants neither source access nor Field writes. */
visualData?: {
kinds: ('table' | 'chart')[];
modes: ('snapshot' | 'live')[];
operations: ('create' | 'configure' | 'refresh' | 'remove')[];
maximumObjects: number;
maximumRows: number;
maximumColumns: number;
};
/** Absence grants no source-region operation; ordinary Source8 and DataProtection checks still apply. */
derivedSources?: {
operations: ('bind' | 'refresh' | 'remove')[];
maximumRegions: number;
};
export?: {
formats: ('png' | 'jpeg' | 'svg' | 'pdf')[];
maxPages: number;
maxPixels: number;
maxArtifactBytes: number;
};
}
CanvasAssetBinding
A deterministic media address cannot be reassigned to different bytes behind a protected object.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
mediaId |
string |
Requis. Définit « media Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
reference |
SurfaceAssetReference |
Requis. Définit « reference » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasAssetBinding {
mediaId: string;
reference: SurfaceAssetReference;
}
CanvasNodePatch
A kind-specific partial update cannot mutate an object’s stable identity or kind.
export type CanvasNodePatch =
| Partial<Omit<CanvasTextNode, 'id' | 'kind'>>
| Partial<Omit<CanvasShapeNode, 'id' | 'kind'>>
| Partial<Omit<CanvasImageNode, 'id' | 'kind'>>
| Partial<Omit<CanvasContainerNode, 'id' | 'kind'>>
| Partial<Omit<CanvasConnectorNode, 'id' | 'kind'>>
| Partial<CanvasHierarchy>;
type CanvasNodePatch = Partial<Omit<CanvasTextNode, "kind" | "id">> | Partial<Omit<CanvasShapeNode, "kind" | "id">> | Partial<Omit<CanvasImageNode, "kind" | "id">> | Partial<Omit<CanvasContainerNode, "kind" | "id">> | Partial<Omit<CanvasConnectorNode, "kind" | "id">> | Partial<CanvasHierarchy>;
CanvasOperation
Granular portable operations compiled into the canonical Change Set revision owner.
export type CanvasOperation =
| { kind: 'content.copy'; copy: CanvasContentCopy }
| { kind: 'document.semantic-order'; sourceRegionKeys: string[]; dataObjectIds: string[] }
| { kind: 'data.object.set'; expectedObject: CanvasDataObject | null; object: CanvasDataObject }
| { kind: 'data.object.remove'; expectedObject: CanvasDataObject }
| {
kind: 'source.region.replace';
expectedRegion: CanvasSourceRegion | null;
region: CanvasSourceRegion;
expectedNodeIds: string[];
nodes: CanvasNode[];
}
| { kind: 'source.region.remove'; expectedRegion: CanvasSourceRegion; expectedNodeIds: string[] }
| {
kind: 'source.region.copy';
expectedRegion: CanvasSourceRegion;
nodeMap: Record<string, string>;
newRegionKey: string;
targetPageId: string;
parentId: string | null;
x: number;
y: number;
index: number;
}
| { kind: 'asset.reference.add'; binding: CanvasAssetBinding }
| { kind: 'asset.reference.remove'; mediaId: string }
| { kind: 'component.define'; definition: CanvasComponentDefinition }
| { kind: 'library.update'; definition: CanvasLibraryDefinition }
| {
kind: 'component.instance.create';
pageId: string;
instanceId: string;
reference: CanvasComponentReference;
nodeMap: Record<string, string>;
parameters: Record<string, CanvasComponentValue>;
variantKey: string | null;
overrides: Record<string, CanvasNodePatch>;
x: number;
y: number;
index: number;
}
| {
kind: 'component.instance.update';
instanceId: string;
expectedReference: CanvasComponentReference;
reference: CanvasComponentReference;
nodeMap: Record<string, string>;
parameters: Record<string, CanvasComponentValue>;
variantKey: string | null;
overrides: Record<string, CanvasNodePatch>;
}
| { kind: 'component.instance.detach'; instanceId: string }
| { kind: 'component.instance.remove'; instanceId: string }
| {
kind: 'component.zone.replace';
instanceId: string;
zoneKey: string;
expectedReference: CanvasComponentReference;
expectedNodeIds: string[];
nodes: CanvasNode[];
}
| { kind: 'document.mode'; mode: 'pages' | 'whiteboard' }
| {
kind: 'node.reparent';
pageId: string;
nodeId: string;
parentId: string | null;
index: number;
}
| { kind: 'layout.apply'; pageId: string; nodeId: string; layout: CanvasLayout }
| { kind: 'page.add'; page: CanvasPage; index: number }
| { kind: 'page.remove'; pageId: string }
| {
kind: 'page.update';
pageId: string;
patch: Partial<Pick<CanvasPage, 'width' | 'height' | 'background'>>;
}
| { kind: 'page.reorder'; pageIds: string[] }
| { kind: 'node.add'; pageId: string; node: CanvasNode; index: number }
| { kind: 'node.remove'; pageId: string; nodeId: string }
| { kind: 'node.update'; pageId: string; nodeId: string; patch: CanvasNodePatch }
| { kind: 'node.reorder'; pageId: string; nodeIds: string[] };
type CanvasOperation = { kind: "content.copy"; copy: CanvasContentCopy; } | { kind: "document.semantic-order"; sourceRegionKeys: string[]; dataObjectIds: string[]; } | { kind: "data.object.set"; expectedObject: CanvasDataObject | null; object: CanvasDataObject; } | { kind: "data.object.remove"; expectedObject: CanvasDataObject; } | { kind: "source.region.replace"; expectedRegion: CanvasSourceRegion | null; region: CanvasSourceRegion; expectedNodeIds: string[]; nodes: CanvasNode[]; } | { kind: "source.region.remove"; expectedRegion: CanvasSourceRegion; expectedNodeIds: string[]; } | { kind: "source.region.copy"; expectedRegion: CanvasSourceRegion; nodeMap: Record<string, string>; newRegionKey: string; targetPageId: string; parentId: string | null; x: number; y: number; index: number; } | { kind: "asset.reference.add"; binding: CanvasAssetBinding; } | { kind: "asset.reference.remove"; mediaId: string; } | { kind: "component.define"; definition: CanvasComponentDefinition; } | { kind: "library.update"; definition: CanvasLibraryDefinition; } | { kind: "component.instance.create"; pageId: string; instanceId: string; reference: CanvasComponentReference; nodeMap: Record<string, string>; parameters: Record<string, CanvasComponentValue>; variantKey: string | null; overrides: Record<string, CanvasNodePatch>; x: number; y: number; index: number; } | { kind: "component.instance.update"; instanceId: string; expectedReference: CanvasComponentReference; reference: CanvasComponentReference; nodeMap: Record<string, string>; parameters: Record<string, CanvasComponentValue>; variantKey: string | null; overrides: Record<string, CanvasNodePatch>; } | { kind: "component.instance.detach"; instanceId: string; } | { kind: "component.instance.remove"; instanceId: string; } | { kind: "component.zone.replace"; instanceId: string; zoneKey: string; expectedReference: CanvasComponentReference; expectedNodeIds: string[]; nodes: CanvasNode[]; } | { kind: "document.mode"; mode: "pages" | "whiteboard"; } | { kind: "node.reparent"; pageId: string; nodeId: string; parentId: string | null; index: number; } | { kind: "layout.apply"; pageId: string; nodeId: string; layout: CanvasLayout; } | { kind: "page.add"; page: CanvasPage; index: number; } | { kind: "page.remove"; pageId: string; } | { kind: "page.update"; pageId: string; patch: Partial<Pick<CanvasPage, "width" | "height" | "background">>; } | { kind: "page.reorder"; pageIds: string[]; } | { kind: "node.add"; pageId: string; node: CanvasNode; index: number; } | { kind: "node.remove"; pageId: string; nodeId: string; } | { kind: "node.update"; pageId: string; nodeId: string; patch: CanvasNodePatch; } | { kind: "node.reorder"; pageId: string; nodeIds: string[]; };
CanvasComponentProperty
Only native scalar properties may be exposed; structural identity and protections are never parameters.
export type CanvasComponentProperty =
| 'text'
| 'label'
| 'name'
| 'fill'
| 'textColor'
| 'backgroundColor'
| 'backgroundOpacity'
| 'strokeColor'
| 'strokeWidth'
| 'fontSize'
| 'fontWeight'
| 'fontStyle'
| 'underline'
| 'textAlign'
| 'lineHeight'
| 'letterSpacing'
| 'opacity'
| 'x'
| 'y'
| 'width'
| 'height';
type CanvasComponentProperty = "text" | "label" | "name" | "width" | "fontSize" | "fontWeight" | "fontStyle" | "underline" | "textAlign" | "lineHeight" | "letterSpacing" | "textColor" | "backgroundColor" | "backgroundOpacity" | "x" | "y" | "height" | "opacity" | "strokeColor" | "strokeWidth" | "fill";
CanvasComponentValue
Parameter values are closed native scalars, not expressions, executable bindings or renderer state.
export type CanvasComponentValue = string | number | boolean;
CanvasComponentParameter
One typed exposed property may bind several exact native objects in the reusable subtree.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
key |
string |
Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
label |
string |
Requis. Libellé destiné à l’usager dans l’interface. |
type |
"number" | "boolean" | "text" | "color" |
Requis. Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
default |
CanvasComponentValue |
Requis. Valeur initiale conforme au type déclaré; ne remplace pas une valeur déjà enregistrée. |
minimum |
number | null |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
maximum |
number | null |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
options |
CanvasComponentValue[] |
Requis. Valeurs proposées et admises pour un choix déclaré. |
bindings |
{ nodeId: string; property: CanvasComponentProperty; }[] |
Requis. Définit « bindings » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasComponentParameter {
key: string;
label: string;
type: 'text' | 'number' | 'boolean' | 'color';
default: CanvasComponentValue;
minimum: number | null;
maximum: number | null;
options: CanvasComponentValue[];
bindings: { nodeId: string; property: CanvasComponentProperty }[];
}
CanvasComponentDefinition
Declarative reusable subtree owned by an ordinary versioned Canvas Surface.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
contract |
"CanvasComponentDefinition@2" |
Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
name |
string |
Requis. Nom lisible de l’élément dans le contexte qui le présente. |
description |
string |
Requis. Explication du rôle, du contenu ou de l’effet de cet élément. |
pageId |
string |
Requis. Définit « page Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
rootNodeId |
string |
Requis. Définit « root Node Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
parameters |
CanvasComponentParameter[] |
Requis. Paramètres nommés de l’opération ou de la Query et valeurs associées. |
variants |
{ key: string; label: string; values: Record<string, CanvasComponentValue>; }[] |
Requis. Définit « variants » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
zones |
CanvasComponentZone[] |
Requis. Définit « zones » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasComponentDefinition {
contract: 'CanvasComponentDefinition@2';
name: string;
description: string;
pageId: string;
rootNodeId: string;
parameters: CanvasComponentParameter[];
variants: { key: string; label: string; values: Record<string, CanvasComponentValue> }[];
zones: CanvasComponentZone[];
}
CanvasComponentZone
A zone names one disjoint native container, not HTML, renderer objects or a second document.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
key |
string |
Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
label |
string |
Requis. Libellé destiné à l’usager dans l’interface. |
rootNodeId |
string |
Requis. Définit « root Node Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
minimumChildren |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
maximumChildren |
number |
Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
allowedKinds |
CanvasNodeKind[] |
Requis. Définit « allowed Kinds » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasComponentZone {
key: string;
label: string;
rootNodeId: string;
minimumChildren: number;
maximumChildren: number;
allowedKinds: CanvasNodeKind[];
}
CanvasLibraryDefinition
A private/shared library is ordinary governed content; its references never confer source access.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
contract |
"CanvasLibraryDefinition@1" |
Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
name |
string |
Requis. Nom lisible de l’élément dans le contexte qui le présente. |
description |
string |
Requis. Explication du rôle, du contenu ou de l’effet de cet élément. |
components |
{ key: string; label: string; description: string; reference: CanvasComponentReference; }[] |
Requis. Définit « components » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasLibraryDefinition {
contract: 'CanvasLibraryDefinition@1';
name: string;
description: string;
components: {
key: string;
label: string;
description: string;
reference: CanvasComponentReference;
}[];
}
CanvasComponentInstance
Version-bound native instance; object mappings preserve existing Anchors during explicit upgrades.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
contract |
"CanvasComponentInstance@2" |
Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
id |
string |
Requis. Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
pageId |
string |
Requis. Définit « page Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
reference |
CanvasComponentReference |
Requis. Définit « reference » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
nodeMap |
Record<string, string> |
Requis. Définit « node Map » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
parameters |
Record<string, CanvasComponentValue> |
Requis. Paramètres nommés de l’opération ou de la Query et valeurs associées. |
variantKey |
string | null |
Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
overrides |
Record<string, CanvasNodePatch> |
Requis. Définit « overrides » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
nodeOrigins |
Record<string, CanvasComponentNodeOrigin> |
Requis. Définit « node Origins » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
zoneContainers |
Record<string, string> |
Requis. Définit « zone Containers » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
zones |
Record<string, string[]> |
Requis. Définit « zones » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasComponentInstance {
contract: 'CanvasComponentInstance@2';
id: string;
pageId: string;
reference: CanvasComponentReference;
nodeMap: Record<string, string>;
parameters: Record<string, CanvasComponentValue>;
variantKey: string | null;
overrides: Record<string, CanvasNodePatch>;
nodeOrigins: Record<string, CanvasComponentNodeOrigin>;
zoneContainers: Record<string, string>;
zones: Record<string, string[]>;
}
CanvasComponentNodeOrigin
Every nested node retains its exact defining Revision and complete outer-to-inner ownership chain.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
reference |
CanvasComponentReference |
Requis. Définit « reference » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
sourceNodeId |
string |
Requis. Définit « source Node Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
chain |
CanvasComponentReference[] |
Requis. Définit « chain » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasComponentNodeOrigin {
reference: CanvasComponentReference;
sourceNodeId: string;
chain: CanvasComponentReference[];
}
CanvasContentCopy
An explicit copy intent carries local identities and placement only, never source bodies, values or permission.
export type CanvasContentCopy =
| {
kind: 'selection';
sourcePageId: string;
rootNodeIds: string[];
expectedNodeIds: string[];
nodeMap: Record<string, string>;
regionKeys: Record<string, string>;
targetPageId: string;
placements: { sourceNodeId: string; parentId: string | null; x: number; y: number }[];
index: number;
}
| {
kind: 'page';
sourcePageId: string;
expectedNodeIds: string[];
nodeMap: Record<string, string>;
regionKeys: Record<string, string>;
newPageId: string;
index: number;
};
type CanvasContentCopy = { kind: "selection"; sourcePageId: string; rootNodeIds: string[]; expectedNodeIds: string[]; nodeMap: Record<string, string>; regionKeys: Record<string, string>; targetPageId: string; placements: { sourceNodeId: string; parentId: string | null; x: number; y: number; }[]; index: number; } | { kind: "page"; sourcePageId: string; expectedNodeIds: string[]; nodeMap: Record<string, string>; regionKeys: Record<string, string>; newPageId: string; index: number; };
CanvasContentCopyIntent
Local gesture metadata is an untrusted flat intent; only the native original-body owner can attest retained snapshots.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
copy |
CanvasContentCopy |
Requis. Définit « copy » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
operationsBeforeCopy |
readonly CanvasOperation[] |
Requis. Définit « operations Before Copy » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasContentCopyIntent {
readonly copy: CanvasContentCopy;
readonly operationsBeforeCopy: readonly CanvasOperation[];
}
CanvasDiffOptions
Optional copy gestures retain their true position among authored edits without changing historical body contracts.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
copies |
readonly CanvasContentCopyIntent[] |
Requis. Définit « copies » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasDiffOptions {
readonly copies: readonly CanvasContentCopyIntent[];
}
CanvasComponentResolver
Only a server-authorized or explicitly read definition may satisfy a portable operation.
export type CanvasComponentResolver = (reference: CanvasComponentReference) => CanvasDocument;
CanvasComponentSourcePolicy
A declared source capability is not a grant; CP/Core still authorize each actual target.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
modelId |
string |
Requis. Définit « model Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
componentDefinitionPaths |
string[] |
Requis. Chemin exact du type de définition concerné; chaque référence doit exister dans le Model et respecter le périmètre déclaré. |
libraryDefinitionPaths |
string[] |
Requis. Chemin exact du type de définition concerné; chaque référence doit exister dans le Model et respecter le périmètre déclaré. |
export interface CanvasComponentSourcePolicy {
modelId: string;
componentDefinitionPaths: string[];
libraryDefinitionPaths: string[];
}
CanvasComponentUpdatePreview
Explicit update impact, never an automatic retargeting of removed objects or invalid parameters.
| Champ | Options / valeurs attendues | Description |
|---|---|---|
compatible |
boolean |
Requis. Définit « compatible » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
preservedNodeIds |
string[] |
Requis. Définit « preserved Node Ids » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
addedSourceNodeIds |
string[] |
Requis. Définit « added Source Node Ids » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
removedNodeIds |
string[] |
Requis. Définit « removed Node Ids » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
conflicts |
string[] |
Requis. Définit « conflicts » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
export interface CanvasComponentUpdatePreview {
compatible: boolean;
preservedNodeIds: string[];
addedSourceNodeIds: string[];
removedNodeIds: string[];
conflicts: string[];
}
Exemples appliqués : Un contenu visuel dans la fiche
Insérez l’éditeur Canvas, puis un Asset lorsqu’un support visuel distinct est nécessaire.
Configuration
Propriétés du composant NativeContent.props. Propriétés et valeurs admises.
{
"recordProfileKey": "client",
"contentKind": "canvas"
}
Variante et raccordement
Propriétés du composant NativeContent.props. Propriétés et valeurs admises.
{
"recordProfileKey": "client",
"contentKind": "asset"
}
Exemple de disposition UI
La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.
- Besoin du client
- Options
- Proposition retenue
- Sources