claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
255 lines • 6.9 kB
TypeScript
export interface NetworkNode {
id: string;
label: string;
type?: string;
group?: string;
weight?: number;
color?: string;
size?: number;
x?: number;
y?: number;
metadata?: Record<string, any>;
}
export interface NetworkEdge {
id: string;
source: string;
target: string;
label?: string;
weight?: number;
color?: string;
width?: number;
type?: 'directed' | 'undirected';
metadata?: Record<string, any>;
}
export interface NetworkLayout {
name: string;
options?: Record<string, any>;
}
export interface NetworkConfig {
layout: NetworkLayout;
nodeColorBy: string;
edgeColorBy: string;
enablePhysics: boolean;
enableClustering: boolean;
theme: 'light' | 'dark' | 'auto';
}
export interface NetworkEvents {
nodeClick: {
node: NetworkNode;
originalEvent: Event;
};
nodeHover: {
node: NetworkNode;
originalEvent: Event;
};
edgeClick: {
edge: NetworkEdge;
originalEvent: Event;
};
edgeHover: {
edge: NetworkEdge;
originalEvent: Event;
};
selectionChange: {
selectedNodes: string[];
selectedEdges: string[];
};
zoomChange: {
zoom: number;
};
panChange: {
pan: {
x: number;
y: number;
};
};
layoutStart: {};
layoutComplete: {};
exported: {
format: string;
blob: Blob;
};
error: {
error: Error;
};
}
export declare const NetworkLayouts: {
readonly FORCE_DIRECTED: {
readonly name: "cose";
readonly options: {
readonly animate: true;
readonly animationDuration: 1000;
readonly nodeRepulsion: 400000;
readonly idealEdgeLength: 100;
readonly edgeElasticity: 100;
readonly nestingFactor: 5;
readonly gravity: 80;
readonly numIter: 1000;
readonly randomize: false;
};
};
readonly HIERARCHICAL: {
readonly name: "dagre";
readonly options: {
readonly animate: true;
readonly animationDuration: 1000;
readonly rankDir: "TB";
readonly nodeSep: 50;
readonly edgeSep: 10;
readonly rankSep: 50;
};
};
readonly CIRCULAR: {
readonly name: "circle";
readonly options: {
readonly animate: true;
readonly animationDuration: 1000;
readonly radius: 200;
readonly startAngle: number;
readonly clockwise: true;
};
};
readonly GRID: {
readonly name: "grid";
readonly options: {
readonly animate: true;
readonly animationDuration: 1000;
readonly rows: undefined;
readonly cols: undefined;
};
};
readonly RANDOM: {
readonly name: "random";
readonly options: {
readonly animate: true;
readonly animationDuration: 1000;
};
};
};
export declare const NodeStyles: {
readonly SMALL: {
readonly size: 20;
readonly fontSize: 10;
};
readonly MEDIUM: {
readonly size: 30;
readonly fontSize: 12;
};
readonly LARGE: {
readonly size: 50;
readonly fontSize: 14;
};
readonly XLARGE: {
readonly size: 80;
readonly fontSize: 16;
};
};
export declare const EdgeStyles: {
readonly THIN: {
readonly width: 1;
};
readonly NORMAL: {
readonly width: 2;
};
readonly THICK: {
readonly width: 4;
};
readonly VERY_THICK: {
readonly width: 6;
};
};
export declare const ColorPalettes: {
readonly CATEGORY_10: readonly ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"];
readonly PASTEL: readonly ["#FFB3BA", "#FFDFBA", "#FFFFBA", "#BAFFC9", "#BAE1FF", "#FFB3FF", "#C9BAFF", "#FFBABA", "#BAFFBA", "#BAFFFF"];
readonly VIBRANT: readonly ["#FF6B6B", "#4ECDC4", "#45B7D1", "#96CEB4", "#FFEAA7", "#DDA0DD", "#98D8C8", "#F7DC6F", "#BB8FCE", "#85C1E9"];
readonly NORD: readonly ["#8fbcbb", "#88c0d0", "#81a1c1", "#5e81ac", "#bf616a", "#d08770", "#ebcb8b", "#a3be8c", "#b48ead", "#2e3440"];
};
export type NetworkLayoutName = keyof typeof NetworkLayouts;
export type NodeStyleName = keyof typeof NodeStyles;
export type EdgeStyleName = keyof typeof EdgeStyles;
export type ColorPaletteName = keyof typeof ColorPalettes;
export interface KnowledgeNode extends NetworkNode {
type: 'concept' | 'entity' | 'relation' | 'document' | 'person' | 'event';
category?: string;
confidence?: number;
importance?: number;
dateCreated?: Date;
dateModified?: Date;
tags?: string[];
}
export interface KnowledgeEdge extends NetworkEdge {
type: 'relates_to' | 'part_of' | 'causes' | 'depends_on' | 'similar_to' | 'references';
confidence?: number;
strength?: number;
bidirectional?: boolean;
temporal?: {
start?: Date;
end?: Date;
};
}
export interface KnowledgeGraphConfig extends NetworkConfig {
enableTemporalFiltering: boolean;
enableConfidenceFiltering: boolean;
minConfidence: number;
showMetadata: boolean;
enableClustering: boolean;
clusterBy: 'type' | 'category' | 'importance';
}
export interface NetworkMetrics {
nodeCount: number;
edgeCount: number;
density: number;
averageDegree: number;
clustering: number;
diameter: number;
connectedComponents: number;
centralityMeasures: {
betweenness: Record<string, number>;
closeness: Record<string, number>;
degree: Record<string, number>;
eigenvector: Record<string, number>;
};
}
export interface ClusteringResult {
clusters: Array<{
id: string;
nodes: string[];
size: number;
cohesion: number;
}>;
modularity: number;
silhouetteScore: number;
}
export interface ExportOptions {
format: 'png' | 'jpg' | 'svg' | 'json' | 'graphml' | 'gexf';
quality?: number;
scale?: number;
background?: string;
includeMetadata?: boolean;
compressed?: boolean;
}
export interface SearchOptions {
query: string;
nodeFields: string[];
edgeFields: string[];
fuzzy: boolean;
caseSensitive: boolean;
maxResults?: number;
}
export interface FilterOptions {
nodeTypes?: string[];
edgeTypes?: string[];
nodeGroups?: string[];
minWeight?: number;
maxWeight?: number;
dateRange?: {
start: Date;
end: Date;
};
customFilters?: Array<{
field: string;
operator: 'equals' | 'contains' | 'greater' | 'less' | 'between';
value: any;
}>;
}
//# sourceMappingURL=network-types.d.ts.map