-module(json_canvas@types). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export_type([node_id/0, color/0, file_path/0, subpath/0, url/0, group_label/0, group_background/0, group_background_style/0, node_/0, edge_id/0, side/0, endpoint_shape/0, edge_label/0, edge/0, canvas/0]). -type node_id() :: {node_id, binary()}. -type color() :: {color, binary()}. -type file_path() :: {file_path, binary()}. -type subpath() :: {subpath, binary()}. -type url() :: {url, binary()}. -type group_label() :: {group_label, binary()}. -type group_background() :: {group_background, binary()}. -type group_background_style() :: cover | ratio | repeat. -type node_() :: {text_node, node_id(), integer(), integer(), integer(), integer(), gleam@option:option(color()), binary()} | {file_node, node_id(), integer(), integer(), integer(), integer(), gleam@option:option(color()), file_path(), gleam@option:option(subpath())} | {link_node, node_id(), integer(), integer(), integer(), integer(), gleam@option:option(color()), url()} | {group_node, node_id(), integer(), integer(), integer(), integer(), gleam@option:option(color()), gleam@option:option(group_label()), gleam@option:option(group_background()), gleam@option:option(group_background_style())}. -type edge_id() :: {edge_id, binary()}. -type side() :: top | right | bottom | left. -type endpoint_shape() :: with_arrow | without_arrow. -type edge_label() :: {edge_label, binary()}. -type edge() :: {edge, edge_id(), node_id(), gleam@option:option(side()), endpoint_shape(), node_id(), gleam@option:option(side()), endpoint_shape(), gleam@option:option(color()), gleam@option:option(edge_label())}. -type canvas() :: {canvas, list(node_()), list(edge())}.