@graph-render/react 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/.eslintrc.json +6 -0
  2. package/CHANGELOG.md +58 -0
  3. package/README.md +0 -0
  4. package/dist/index.js +2509 -0
  5. package/dist/src/components/EdgePath.d.ts +25 -0
  6. package/dist/src/components/EdgePath.d.ts.map +1 -0
  7. package/dist/src/components/Graph.d.ts +6 -0
  8. package/dist/src/components/Graph.d.ts.map +1 -0
  9. package/dist/src/components/GraphLabels.d.ts +30 -0
  10. package/dist/src/components/GraphLabels.d.ts.map +1 -0
  11. package/dist/src/components/GraphNode.d.ts +35 -0
  12. package/dist/src/components/GraphNode.d.ts.map +1 -0
  13. package/dist/src/constants/defaults.d.ts +3 -0
  14. package/dist/src/constants/defaults.d.ts.map +1 -0
  15. package/dist/src/hooks/useGraphCollapse.d.ts +15 -0
  16. package/dist/src/hooks/useGraphCollapse.d.ts.map +1 -0
  17. package/dist/src/hooks/useGraphHover.d.ts +24 -0
  18. package/dist/src/hooks/useGraphHover.d.ts.map +1 -0
  19. package/dist/src/hooks/useGraphModel.d.ts +51 -0
  20. package/dist/src/hooks/useGraphModel.d.ts.map +1 -0
  21. package/dist/src/hooks/useGraphSearchState.d.ts +29 -0
  22. package/dist/src/hooks/useGraphSearchState.d.ts.map +1 -0
  23. package/dist/src/hooks/useStableConfig.d.ts +25 -0
  24. package/dist/src/hooks/useStableConfig.d.ts.map +1 -0
  25. package/dist/src/index.d.ts +7 -0
  26. package/dist/src/index.d.ts.map +1 -0
  27. package/dist/src/utils/columns.d.ts +7 -0
  28. package/dist/src/utils/columns.d.ts.map +1 -0
  29. package/dist/src/utils/pathHighlight.d.ts +29 -0
  30. package/dist/src/utils/pathHighlight.d.ts.map +1 -0
  31. package/dist/src/utils/viewport.d.ts +14 -0
  32. package/dist/src/utils/viewport.d.ts.map +1 -0
  33. package/dist/tsconfig.tsbuildinfo +1 -0
  34. package/package.json +52 -0
  35. package/project.json +60 -0
  36. package/src/components/EdgePath.tsx +103 -0
  37. package/src/components/Graph.tsx +1545 -0
  38. package/src/components/GraphLabels.tsx +141 -0
  39. package/src/components/GraphNode.tsx +214 -0
  40. package/src/constants/defaults.ts +62 -0
  41. package/src/hooks/useGraphCollapse.ts +53 -0
  42. package/src/hooks/useGraphHover.ts +206 -0
  43. package/src/hooks/useGraphModel.ts +445 -0
  44. package/src/hooks/useGraphSearchState.ts +215 -0
  45. package/src/hooks/useStableConfig.ts +108 -0
  46. package/src/index.ts +57 -0
  47. package/src/utils/columns.ts +51 -0
  48. package/src/utils/pathHighlight.ts +160 -0
  49. package/src/utils/viewport.ts +100 -0
  50. package/tsconfig.json +12 -0
  51. package/tsconfig.node.json +11 -0
  52. package/vite.config.ts +17 -0
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { PositionedEdge } from '@graph-render/core';
3
+ export interface EdgePathProps {
4
+ edge: PositionedEdge;
5
+ color: string;
6
+ width: number;
7
+ curveEdges: boolean;
8
+ curveStrength: number;
9
+ markerEnd?: string;
10
+ isHovered?: boolean;
11
+ isSelected?: boolean;
12
+ hoverColor: string;
13
+ selectionColor?: string;
14
+ labelColor?: string;
15
+ selectionMarker?: string;
16
+ hoverMarker?: string;
17
+ hoverEnabled: boolean;
18
+ hoverStrokeWidth?: number;
19
+ selectedStrokeWidth?: number;
20
+ hitStrokeWidth?: number;
21
+ onHoverChange?: (hovered: boolean) => void;
22
+ onClick?: () => void;
23
+ }
24
+ export declare const EdgePath: React.NamedExoticComponent<EdgePathProps>;
25
+ //# sourceMappingURL=EdgePath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdgePath.d.ts","sourceRoot":"","sources":["../../../src/components/EdgePath.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAiB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,eAAO,MAAM,QAAQ,2CAyEnB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { EdgeData, GraphHandle, GraphProps, NodeData, NxGraphInput, PositionedEdge, PositionedNode } from '@graph-render/types';
3
+ type GraphComponent = <TGraph extends NxGraphInput = NxGraphInput, TNode extends PositionedNode<any, any, any> = PositionedNode, TEdge extends PositionedEdge<any, any> = PositionedEdge, TNodeRecord extends NodeData<any, any, any> = NodeData, TEdgeRecord extends EdgeData<any, any> = EdgeData>(props: GraphProps<TGraph, TNode, TEdge, TNodeRecord, TEdgeRecord> & React.RefAttributes<GraphHandle>) => React.ReactElement | null;
4
+ export declare const Graph: GraphComponent;
5
+ export default Graph;
6
+ //# sourceMappingURL=Graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/components/Graph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,QAAQ,EAER,WAAW,EACX,UAAU,EAMV,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACf,MAAM,qBAAqB,CAAC;AAy9C7B,KAAK,cAAc,GAAG,CACpB,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,KAAK,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,EAC5D,KAAK,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,EACvD,WAAW,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EACtD,WAAW,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAEjD,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,GAC/D,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAC/B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAW/B,eAAO,MAAM,KAAK,EAAgB,cAAc,CAAC;AAEjD,eAAe,KAAK,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { PositionedNode, LayoutType, LayoutDirection } from '@graph-render/types';
2
+ /**
3
+ * Canonical dimensions for column-label pills. Exported so that the parent
4
+ * Graph component can compute label bounds using the same values for fit-view
5
+ * calculations, eliminating the two-source-of-truth problem.
6
+ */
7
+ export declare const LABEL_PILL_MIN_WIDTH = 64;
8
+ export declare const LABEL_PILL_HEIGHT = 20;
9
+ export declare const LABEL_PILL_RADIUS = 8;
10
+ export declare function getLabelPillWidth(label: string): number;
11
+ export declare function getEffectiveGraphLabels(positionedNodes: PositionedNode[], layout: LayoutType, layoutDirection: LayoutDirection, labels?: string[], autoLabels?: boolean): {
12
+ orderedXs: number[];
13
+ orderedLabels: string[];
14
+ };
15
+ export interface GraphLabelsProps {
16
+ positionedNodes: PositionedNode[];
17
+ layout: LayoutType;
18
+ layoutDirection: LayoutDirection;
19
+ labels?: string[];
20
+ autoLabels: boolean;
21
+ labelOffset: number;
22
+ /** Background fill of the label pill. Defaults to `#eef1f6`. */
23
+ pillBackground?: string;
24
+ /** Border stroke of the label pill. Defaults to `#d7dbe3`. */
25
+ pillBorderColor?: string;
26
+ /** Text color inside the label pill. Defaults to `#3f434b`. */
27
+ pillTextColor?: string;
28
+ }
29
+ export declare function GraphLabels({ positionedNodes, layout, layoutDirection, labels, autoLabels, labelOffset, pillBackground, pillBorderColor, pillTextColor, }: GraphLabelsProps): import("react/jsx-runtime").JSX.Element | null;
30
+ //# sourceMappingURL=GraphLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphLabels.d.ts","sourceRoot":"","sources":["../../../src/components/GraphLabels.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGlF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAQnC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,cAAc,EAAE,EACjC,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,UAAU,UAAQ,GACjB;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAyBlD;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,WAAW,CAAC,EAC1B,eAAe,EACf,MAAM,EACN,eAAe,EACf,MAAM,EACN,UAAU,EACV,WAAW,EACX,cAA0B,EAC1B,eAA2B,EAC3B,aAAyB,GAC1B,EAAE,gBAAgB,kDAuDlB"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { PositionedNode, Size, VertexComponent } from '@graph-render/types';
3
+ interface GraphNodeProps {
4
+ node: PositionedNode;
5
+ Vertex: VertexComponent;
6
+ isSelected: boolean;
7
+ isFocused: boolean;
8
+ isHighlighted: boolean;
9
+ activePathKey?: string;
10
+ activePathNodeIds?: Set<string>;
11
+ highlightColor: string;
12
+ selectionColor: string;
13
+ nodeBorderColor?: string;
14
+ nodeBorderWidth: number;
15
+ hoverNodeBorderColor: string;
16
+ hoverNodeBothColor: string;
17
+ hoverNodeInColor: string;
18
+ hoverNodeOutColor: string;
19
+ hoverNodeHighlight: boolean;
20
+ hoveredNodeStates: Map<string, {
21
+ in?: boolean;
22
+ out?: boolean;
23
+ }> | undefined;
24
+ onNodeMeasure?: (nodeId: string, size: Size) => void;
25
+ onNodeFocus?: (nodeId: string) => void;
26
+ onNodeClick?: (node: PositionedNode) => void;
27
+ onNodeDoubleClick?: (node: PositionedNode) => void;
28
+ onNodeMouseEnter: (nodeId: string) => void;
29
+ onNodeMouseLeave: () => void;
30
+ onPathHover: (nodeId: string, sourceIndex: number, playerKey?: string) => void;
31
+ onPathLeave: () => void;
32
+ }
33
+ export declare const GraphNode: React.NamedExoticComponent<GraphNodeProps>;
34
+ export {};
35
+ //# sourceMappingURL=GraphNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphNode.d.ts","sourceRoot":"","sources":["../../../src/components/GraphNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI5E,UAAU,cAAc;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC5E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,4CAkLrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { GraphConfig } from '@graph-render/types';
2
+ export declare const DEFAULT_CONFIG: Required<Pick<GraphConfig, 'width' | 'height' | 'defaultEdgeType' | 'curveEdges' | 'curveStrength' | 'arrowPadding' | 'routingStyle' | 'edgeSeparation' | 'selfLoopRadius' | 'layout' | 'layoutDirection' | 'autoLabels' | 'labelOffset' | 'nodeSizing' | 'labelMeasurementPaddingX' | 'labelMeasurementPaddingY' | 'labelMeasurementCharWidth' | 'labelMeasurementLineHeight' | 'hoverHighlight' | 'hoverEdgeColor' | 'hoverNodeInColor' | 'hoverNodeOutColor' | 'hoverNodeHighlight' | 'edgeLabelColor'>> & Partial<Pick<GraphConfig, 'hoverNodeBorderColor' | 'hoverNodeBothColor' | 'forceRightToLeft'>>;
3
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/constants/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAA+B,MAAM,qBAAqB,CAAC;AAOzF,eAAO,MAAM,cAAc,EAAE,QAAQ,CACnC,IAAI,CACF,WAAW,EACT,OAAO,GACP,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,0BAA0B,GAC1B,0BAA0B,GAC1B,2BAA2B,GAC3B,4BAA4B,GAC5B,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,CACnB,CACF,GACC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,GAAG,oBAAoB,GAAG,kBAAkB,CAAC,CAyB9F,CAAC"}
@@ -0,0 +1,15 @@
1
+ interface UseGraphCollapseOptions {
2
+ collapsedNodeIds?: string[];
3
+ defaultCollapsedNodeIds?: string[];
4
+ onCollapsedNodeIdsChange?: (nodeIds: string[]) => void;
5
+ }
6
+ interface UseGraphCollapseResult {
7
+ collapsedIds: string[];
8
+ collapsedNodeSet: Set<string>;
9
+ pendingExpansionNodeSet: Set<string>;
10
+ updateCollapsedNodeIds: (next: string[] | ((current: string[]) => string[])) => void;
11
+ setPendingExpansionNodeIds: React.Dispatch<React.SetStateAction<string[]>>;
12
+ }
13
+ export declare const useGraphCollapse: ({ collapsedNodeIds, defaultCollapsedNodeIds, onCollapsedNodeIdsChange, }: UseGraphCollapseOptions) => UseGraphCollapseResult;
14
+ export {};
15
+ //# sourceMappingURL=useGraphCollapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGraphCollapse.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphCollapse.ts"],"names":[],"mappings":"AAEA,UAAU,uBAAuB;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACxD;AAED,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IACrF,0BAA0B,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,gBAAgB,GAAI,0EAI9B,uBAAuB,KAAG,sBAgC5B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { PositionedEdge } from '@graph-render/types';
2
+ import { FocusedPath } from '../utils/pathHighlight';
3
+ export declare function useGraphHover(positionedNodes: Array<{
4
+ id: string;
5
+ position: {
6
+ x: number;
7
+ y: number;
8
+ };
9
+ meta?: Record<string, unknown>;
10
+ }>, positionedEdges: PositionedEdge[], hoverHighlight: boolean): {
11
+ hoveredEdgeId: string | null;
12
+ setHoveredEdgeId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
13
+ hoveredNodeId: string | null;
14
+ setHoveredNodeId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
15
+ focusedPath: FocusedPath | null;
16
+ setFocusedPath: import("react").Dispatch<import("react").SetStateAction<FocusedPath | null>>;
17
+ pathHighlight: import("@graph-render/types").PathTraversalResult | null;
18
+ hoveredNodeStates: Map<string, {
19
+ in: boolean;
20
+ out: boolean;
21
+ }> | null;
22
+ edgesForRender: PositionedEdge<Record<string, unknown>, unknown>[];
23
+ };
24
+ //# sourceMappingURL=useGraphHover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGraphHover.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphHover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAU,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAEL,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,aAAa,CAC3B,eAAe,EAAE,KAAK,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC,EACF,eAAe,EAAE,cAAc,EAAE,EACjC,cAAc,EAAE,OAAO;;;;;;;;;YAwDa,OAAO;aAAO,OAAO;;;EAqI1D"}
@@ -0,0 +1,51 @@
1
+ import { EdgeData, GraphConfig, GraphSearchResults, LayoutOptions, NodeData, NxGraphInput, PositionedEdge, PositionedNode, RouteEdgesOptions } from '@graph-render/types';
2
+ import type { NormalizedGraphConfig } from '@graph-render/core';
3
+ interface UseGraphModelOptions {
4
+ graph: NxGraphInput;
5
+ config: NormalizedGraphConfig;
6
+ mergedTheme: NonNullable<GraphConfig['theme']>;
7
+ collapsedIds: string[];
8
+ hiddenNodeIds?: string[];
9
+ searchQuery?: string;
10
+ hideUnmatchedSearch?: boolean;
11
+ searchPredicate?: (node: NodeData, query: string) => boolean;
12
+ highlightedNodeIds?: string[];
13
+ highlightedEdgeIds?: string[];
14
+ highlightStrategy?: (context: {
15
+ nodes: NodeData[];
16
+ edges: EdgeData[];
17
+ query: string;
18
+ matchedNodeIds: string[];
19
+ matchedEdgeIds: string[];
20
+ }) => Partial<GraphSearchResults>;
21
+ onSearchResultsChange?: (results: GraphSearchResults) => void;
22
+ layoutNodesOverride?: (options: LayoutOptions) => PositionedNode[];
23
+ routeEdgesOverride?: (nodes: PositionedNode[], edges: EdgeData[], options?: RouteEdgesOptions) => PositionedEdge[];
24
+ /**
25
+ * Called whenever an internal layout or routing step throws.
26
+ * - `'layout'` — the default `layoutNodes` threw
27
+ * - `'layout-override'` — a `layoutNodesOverride` threw (default was used as fallback)
28
+ * - `'routing'` — the default `routeEdges` threw
29
+ * - `'routing-override'`— a `routeEdgesOverride` threw (default was used as fallback)
30
+ */
31
+ onError?: (error: Error, context: {
32
+ graph: NxGraphInput;
33
+ phase: 'layout' | 'layout-override' | 'routing' | 'routing-override';
34
+ }) => void;
35
+ }
36
+ export interface GraphModelResult {
37
+ childNodeIdsByParent: Map<string, string[]>;
38
+ effectiveHighlightedEdgeSet: Set<string>;
39
+ effectiveHighlightedNodeSet: Set<string>;
40
+ handleNodeMeasure: (nodeId: string, size: {
41
+ width: number;
42
+ height: number;
43
+ }) => void;
44
+ positionedEdges: PositionedEdge[];
45
+ positionedNodes: PositionedNode[];
46
+ visibleEdges: EdgeData[];
47
+ visibleNodesWithMeasuredSize: NodeData[];
48
+ }
49
+ export declare const useGraphModel: ({ graph, config, mergedTheme, collapsedIds, hiddenNodeIds, searchQuery, hideUnmatchedSearch, searchPredicate, highlightedNodeIds, highlightedEdgeIds, highlightStrategy, onSearchResultsChange, layoutNodesOverride, routeEdgesOverride, onError, }: UseGraphModelOptions) => GraphModelResult;
50
+ export {};
51
+ //# sourceMappingURL=useGraphModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGraphModel.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphModel.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAmIhE,UAAU,oBAAoB;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClC,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9D,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,EAAE,CAAC;IACnE,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,cAAc,EAAE,EACvB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,CAAC,EAAE,iBAAiB,KACxB,cAAc,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS,GAAG,kBAAkB,CAAA;KAAE,KAAK,IAAI,CAAC;CAC1I;AAED,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACrF,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,4BAA4B,EAAE,QAAQ,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,aAAa,GAAI,qPAgB3B,oBAAoB,KAAG,gBA6OzB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { EdgeData, GraphSearchResults, NodeData } from '@graph-render/types';
2
+ interface UseGraphSearchStateOptions<TNode extends NodeData<any, any, any> = NodeData, TEdge extends EdgeData<any, any> = EdgeData> {
3
+ nodes: TNode[];
4
+ edges: TEdge[];
5
+ collapsedIds: string[];
6
+ hiddenNodeIds?: string[];
7
+ searchQuery?: string;
8
+ hideUnmatchedSearch?: boolean;
9
+ searchPredicate?: (node: TNode, query: string) => boolean;
10
+ highlightedNodeIds?: string[];
11
+ highlightedEdgeIds?: string[];
12
+ highlightStrategy?: (context: {
13
+ nodes: TNode[];
14
+ edges: TEdge[];
15
+ query: string;
16
+ matchedNodeIds: string[];
17
+ matchedEdgeIds: string[];
18
+ }) => Partial<GraphSearchResults>;
19
+ onSearchResultsChange?: (results: GraphSearchResults) => void;
20
+ }
21
+ export declare const useGraphSearchState: <TNode extends NodeData<any, any, any> = NodeData, TEdge extends EdgeData<any, any> = EdgeData>({ nodes, edges, collapsedIds, hiddenNodeIds, searchQuery, hideUnmatchedSearch, searchPredicate, highlightedNodeIds, highlightedEdgeIds, highlightStrategy, onSearchResultsChange, }: UseGraphSearchStateOptions<TNode, TEdge>) => {
22
+ effectiveHighlightedNodeSet: Set<string>;
23
+ effectiveHighlightedEdgeSet: Set<string>;
24
+ visibleNodes: TNode[];
25
+ visibleEdges: TEdge[];
26
+ childNodeIdsByParent: Map<string, string[]>;
27
+ };
28
+ export {};
29
+ //# sourceMappingURL=useGraphSearchState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGraphSearchState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGraphSearchState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7E,UAAU,0BAA0B,CAClC,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAChD,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ;IAE3C,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,KAAK,EAAE,CAAC;QACf,KAAK,EAAE,KAAK,EAAE,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClC,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/D;AAED,eAAO,MAAM,mBAAmB,GAC9B,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAChD,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,EAC3C,qLAYC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC;;;;;;CA6K1C,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Returns the same reference for a config-like object as long as its
3
+ * serialized form has not changed.
4
+ *
5
+ * This prevents a common foot-gun where consumers pass an inline object
6
+ * literal as the `config` prop:
7
+ *
8
+ * <Graph config={{ layout: 'dag' }} ... />
9
+ *
10
+ * Without stabilization, every parent render creates a new object reference,
11
+ * which invalidates the normalizeGraphConfig memo and cascades through the
12
+ * entire graph model pipeline (layout, edge routing, etc.), causing full
13
+ * recomputes on every keystroke / scroll / hover in the parent tree.
14
+ *
15
+ * `GraphConfig` only contains JSON-serializable values (strings, numbers,
16
+ * booleans, string arrays, and theme objects with the same), so JSON.stringify
17
+ * is a reliable, cheap equality check here.
18
+ *
19
+ * Note: if `config` contains function-typed fields, those are intentionally
20
+ * excluded from the comparison (JSON.stringify omits them). Functions should
21
+ * be passed as separate, memoized props rather than embedded in the config
22
+ * object.
23
+ */
24
+ export declare function useStableConfig<T>(config: T): T;
25
+ //# sourceMappingURL=useStableConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStableConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/useStableConfig.ts"],"names":[],"mappings":"AAyEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAW/C"}
@@ -0,0 +1,7 @@
1
+ export { EdgeType, LayoutType, LayoutDirection, NodeSide } from '@graph-render/types';
2
+ export type { DragState, EdgeComponent, EdgeData, EdgeId, EdgePathProps, EdgeRenderer, EdgeRoutingContext, GraphConfig, GraphControlsPosition, GraphHandle, GraphHoverMeta, GraphProps, GraphRenderContext, GraphSearchResults, GraphSelection, GraphTheme, GraphTopology, GraphViewport, LayoutOptions, NodeData, NodeId, NodeMeasurementHints, NodeRenderer, NodeSizingMode, NxEdgeAttrs, NxGraphInput, NxNodeAttrs, PathHoverOptions, PathTraversalOptions, PathTraversalResult, Point, PositionedEdge, PositionedNode, RenderConfig, RenderGraphToSvgOptions, RenderGraphToSvgResult, RenderTheme, RouteEdgesOptions, Size, TreeMetrics, VertexComponent, VertexComponentProps, } from '@graph-render/types';
3
+ export { Graph } from './components/Graph';
4
+ export { EdgePath } from './components/EdgePath';
5
+ export { groupPositionedNodesByColumn } from './utils/columns';
6
+ export { renderGraphToSvg, layoutNodes, routeEdges, fromNxGraph, buildEdgePath, } from '@graph-render/core';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,MAAM,EACN,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,EACL,cAAc,EACd,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,eAAe,EACf,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { PositionedNode } from '@graph-render/types';
2
+ export interface NodeColumn<TNode extends PositionedNode = PositionedNode> {
3
+ centerX: number;
4
+ nodes: TNode[];
5
+ }
6
+ export declare const groupPositionedNodesByColumn: <TNode extends PositionedNode = PositionedNode>(nodes: TNode[], tolerance?: number) => NodeColumn<TNode>[];
7
+ //# sourceMappingURL=columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/utils/columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,MAAM,WAAW,UAAU,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAMD,eAAO,MAAM,4BAA4B,GAAI,KAAK,SAAS,cAAc,GAAG,cAAc,EACxF,OAAO,KAAK,EAAE,EACd,YAAW,MAAiC,KAC3C,UAAU,CAAC,KAAK,CAAC,EAiCnB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { PathTraversalResult, PositionedEdge } from '@graph-render/types';
2
+ export interface FocusedPath {
3
+ nodeId: string;
4
+ sourceIndex: number | null;
5
+ pathKey?: string;
6
+ }
7
+ type NodeWithPathMeta = {
8
+ id: string;
9
+ meta?: Record<string, unknown>;
10
+ };
11
+ export declare function extractPathKeysFromNodes(nodes: NodeWithPathMeta[]): Map<string, string[]>;
12
+ export declare function traverseHighlightedPath(options: {
13
+ startNodeId: string;
14
+ sourceIndex?: number | null;
15
+ pathKey?: string;
16
+ incomingEdgesByTarget: Map<string, PositionedEdge[]>;
17
+ pathKeysByNode?: Map<string, string[]>;
18
+ /**
19
+ * Hard upper bound on the number of nodes visited. Prevents the traversal
20
+ * from freezing the UI on dense graphs when neither a pathKey nor a valid
21
+ * sourceIndex is supplied and the algorithm falls back to following all
22
+ * incoming edges.
23
+ *
24
+ * Defaults to 500.
25
+ */
26
+ maxNodes?: number;
27
+ }): PathTraversalResult;
28
+ export {};
29
+ //# sourceMappingURL=pathHighlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathHighlight.d.ts","sourceRoot":"","sources":["../../../src/utils/pathHighlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAMF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA4CzF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACrD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,mBAAmB,CAiFtB"}
@@ -0,0 +1,14 @@
1
+ import { GraphViewport, PositionedNode } from '@graph-render/types';
2
+ export interface GraphBounds {
3
+ minX: number;
4
+ minY: number;
5
+ maxX: number;
6
+ maxY: number;
7
+ width: number;
8
+ height: number;
9
+ }
10
+ export declare const clampZoom: (zoom: number, minZoom: number, maxZoom: number) => number;
11
+ export declare const getGraphBounds: (nodes: PositionedNode[]) => GraphBounds | null;
12
+ export declare const getFitViewport: (bounds: GraphBounds | null, width: number, height: number, padding: number, minZoom: number, maxZoom: number) => GraphViewport;
13
+ export declare const centerViewportOnNode: (node: PositionedNode, width: number, height: number, currentZoom: number) => GraphViewport;
14
+ //# sourceMappingURL=viewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/utils/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,MAE1E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,cAAc,EAAE,KAAG,WAAW,GAAG,IAkCtE,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,QAAQ,WAAW,GAAG,IAAI,EAC1B,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,KACd,aAoBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,cAAc,EACpB,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,aAAa,MAAM,KAClB,aAWF,CAAC"}
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../../types/dist/node.d.ts","../../types/dist/config.d.ts","../../types/dist/edge.d.ts","../../types/dist/graph.d.ts","../../types/dist/rendering.d.ts","../../types/dist/routing.d.ts","../../types/dist/layout.d.ts","../../types/dist/react.d.ts","../../types/dist/graph-utils.d.ts","../../types/dist/svg.d.ts","../../types/dist/index.d.ts","../../core-graph-render/dist/rendering/svg.d.ts","../../core-graph-render/dist/rendering/defaultRenderers.d.ts","../../core-graph-render/dist/rendering/utils.d.ts","../../core-graph-render/dist/rendering/index.d.ts","../../core-graph-render/dist/layouts/grid.d.ts","../../core-graph-render/dist/layouts/centered.d.ts","../../core-graph-render/dist/layouts/radialTree.d.ts","../../core-graph-render/dist/layouts/tree.d.ts","../../core-graph-render/dist/layouts/dag.d.ts","../../core-graph-render/dist/layouts/forceDirected.d.ts","../../core-graph-render/dist/layouts/compactBracket.d.ts","../../core-graph-render/dist/layouts/orthogonalFlow.d.ts","../../core-graph-render/dist/layouts/index.d.ts","../../core-graph-render/dist/edges/routing.d.ts","../../core-graph-render/dist/edges/pathBuilder.d.ts","../../core-graph-render/dist/edges/collision.d.ts","../../core-graph-render/dist/edges/index.d.ts","../../core-graph-render/dist/utils/graphParser.d.ts","../../core-graph-render/dist/utils/constants.d.ts","../../core-graph-render/dist/utils/graphTraversal.d.ts","../../core-graph-render/dist/utils/nodeSizing.d.ts","../../core-graph-render/dist/utils/nodeMetrics.d.ts","../../core-graph-render/dist/utils/config.d.ts","../../core-graph-render/dist/utils/index.d.ts","../../core-graph-render/dist/index.d.ts","../src/utils/pathHighlight.ts","../src/hooks/useGraphHover.ts","../src/hooks/useGraphCollapse.ts","../src/hooks/useGraphSearchState.ts","../src/hooks/useGraphModel.ts","../src/hooks/useStableConfig.ts","../src/utils/columns.ts","../src/utils/viewport.ts","../src/components/EdgePath.tsx","../src/components/GraphLabels.tsx","../src/components/GraphNode.tsx","../src/components/Graph.tsx","../src/index.ts","../src/constants/defaults.ts","../../../node_modules/vite/types/hmrPayload.d.ts","../../../node_modules/vite/types/customEvent.d.ts","../../../node_modules/vite/types/hot.d.ts","../../../node_modules/vite/types/importGlob.d.ts","../../../node_modules/vite/types/importMeta.d.ts","../../../node_modules/vite/client.d.ts"],"fileIdsList":[[83,84,85],[86],[142],[138],[139],[140,141],[98],[112,113,114],[98,102,111,115,122],[98,103,104,105,106,107,108,109,110],[99,100,101],[116,117,118,119,120,121],[86,87,123],[86,87,98,123,125,126,128,129,130,131,132,133,134],[86,87,98,130],[86,87,98],[87,98],[86,87],[86,87,98,123,124],[86,87,98,123,127],[87,98,123,130,132,135],[88],[88,89],[90],[88,90],[88,89,90,91,92,93,94,95,96,97],[88,89,90],[86,88,89,90,91,93,94]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"7a3aa194cfd5919c4da251ef04ea051077e22702638d4edcb9579e9101653519","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},"75c71865f1497b01b89a0e1532c5141e47b0fe1be38c24ac175bc70bbd73df53","69c8fd0dd8af7f0308ab72b50995d3561cdb70fa754e2ae6f64247e402813f75","19ffe34683f89c2dbfec459f437123831e94f6e291f1c4be6baa3f5ed013897d","9300ec2ce65001e7ac35cd260d10635fe80be5df44d08879450b1640134cc40b","63b801ebefdd1efb495c45716cb0fb78b851dee9038b8031ba8edfacab71ea92","0620622acb967fe2238d73889f83b05d42b37d7e29f0f8a856cdbfefac1693fc","b61028c5b619470fc15defe13fe4eefd470fce81166e922532ce6492e97be1d9","d33a1bc5b93f6545583f82727b18f92ba38311d101d98674661c158600eed99c","bbe2fcddc256f938a57a97c77ed949e962df916f78173cebe02def9c90a5e570","ce82317866553c55b10f8a869df9a44974a612449e1cee1adda8686f90a79f2f","eb3b16859edc4235a1eb695a04747a1ead5b6823b393a6140a10c3752e1ee356","ec1ba3e2b36a06c72f178ce9a3a8ec82429d7db48dbc87c12c010258b2e00319","fa1e91ceedee4ddc53ae0bf0dc54216a584a6f7f91840ffaae908d9e0dfa416d","a06b8315c444e3834f02d0f17381f70cca5cec5f7129b9319344b0dc25654dee","70ffc1f3efb41595eba467e352a5c61619e683c064a7715023f924cdb0c668bc","a53aa6bcc1ac51407bfa41bd832b11dd615b0e83683da1c5277ce0608183d88e","d6e3d0b0d93998faaea6f83cec1d98b019279abbfe53849f1dfdbc1eaaa53244","3166f64f38e309d784390256e453a31f898aefcd1681488231c4a8a2944f581b","ee38f9cf70ebbbebe3fc387b47060c9f3c2baf0c2ae75d9e1084f75cc26c2a16","e084d4088b67b2646251968f86697b5d7437a70c0cf9b5fb6b268b2be67e8a88","3facd92ab4f724f10c0cac5b8490ca4cce7e0a33ff55f7ec57fd96a6e32457b8","963f7ad729a6c02a1d7d5c357dccb37d8fefc40575762ebee9b1fb41b7ee935f","d48f74a1ddcb27196d1ca9f255182fe05652788c9d83a6fd77091900587544ab","816fdb229bb550091f58d67e1a567991a807c9619ccbbe04882adee7629c7682","e3fae6234cf3b93cf5c0e8e50e8747a5397a207a3f343cf2100c46f4afc732c5","d92d031ebc49efde80a25d16216936f9ca9c19c3365538d686ff6967675872d7","6b69eec8b7bc41bfd7bd25d703293a6cc544b857eafced81b69505e6271362ad","6f6340e35418c0b70b09e857a0c53e83bdd60f903ae65cd7e7e978a71a3365de","68d2509ba61a59772290d2959b30bc1a4789c834e9100776940c4014488e474e","4f0e11a63a83a2c8725cd70e05b163cb2e8cf894e184c3f36a653e117ab50a7b","3161e0c011f048ba77ba682e9b8d22763a15289897e91613490f6da1f58659d2","106a74a591a15556956a5b4ded3ae171b6998e6a6106fc04cf370844ab1baed5","6079455085ded32fcfc0c398f91d87f714a63aaae5a73cc695a3d749842335f1","b91a4de97983a5b4ac10e9c97d03032a39393c695cc7ed7b39e3692afddc83b8","9dcdab99e2856ab507cdcc944dfffda12e7e9ed785e6057845e1a1a177dd6e77","b81c33e40737d8197f930e84863db5191c392ed2bb5c334800befd022881a56e",{"version":"41cbeb0f6797857aaaeab3a083fb255587f252336b6a792ed4dd4383a7116249","signature":"dc712dcd641ca83a118d565e9919599f2e48b870dcd2b09f6d5e15b286f7176a"},{"version":"12a8d34cbb9b28a0150a3631c6e9ff589271275bbc7dc47e2a646394b88921cd","signature":"3638034bf9a510ac54b44013868f592b9e2c7c467380a3e00f48b9ba3ed9d1ca"},{"version":"3d98357e8f15a291c70b69f90a7ccd17b5607c4e95effc9b132ef0120cccdb57","signature":"6a4eb256d20064fe641daf1680857d9260375aa26ef6dd0fa14553d7a423f80e"},{"version":"e8a454ffd6f5121c59b0f503b473de8076f8c0c753f6c08fe8f5fe88461736a8","signature":"e84b112e2aa17695424cbc27c7f454850c4017b4a5650d09fffbf27b9a609262"},{"version":"e6d7f45493ba32560f97592defbf07bf1e8c325bd4fd7fbd7d3d50768bc4ed16","signature":"b5cb0bfe3905797766dbe96c1ddd608d785e49f21c6506e9f949a34e152873a4"},{"version":"4c5d075d9e32c295c6a5fbf92de99aa14a4608c01035d23137bd44963919ac97","signature":"e6327118c7f985508f4a8916360d3a7d65bdeb99193f2dab4102c60a0d76c5d0"},{"version":"0038b17f531123ac2f03466cdf0d596c088c5fd6f3dc3e6923e3ea3ff0774bc3","signature":"30ef62b34911ce251a61d462612ace8accf6a783046a553df2dd9a577bffb9b1"},{"version":"a88177d862414ff5ed7e40f844b8d2a0372fd7cedf779dbc4e249bad8949dc6c","signature":"53bcaae24fabda3e6aecbeeea82c0e5f5fcd5f02bf3f63b5490dba998bb0a9d8"},{"version":"1bb6711e5fd7eb467ebdca292a816075880f014646e19fa58b68e4869c72febc","signature":"d0f5b10b7e850c12a122fd4b7629d7927e57e365388627131aed61f6f54b7376"},{"version":"5cfa96c1bac25b033fd7c183bcd6d52152891819029f12bddb634909856aa393","signature":"c2cbbe2a5c1a9784b6b78f198cf026eef3b88e1a73cab1b3206e7b49fa09a407"},{"version":"44c9571a91179613a3f8b94af4b6990f897f6d038370471bf28d898c598eff20","signature":"3e28072eb0ee412d6ad35700d172fbfe184f2029b3ce0d9c8c1a315cba629c57"},{"version":"e8c940bd8141d4616af013eddac2d0ffc2c9dbcbc94afd400ea8a05f3aab6dfd","signature":"08d02df7ef8c3a2faf65168323cb3016570f7157a713d6f00ebb135d6c8cff14"},{"version":"ba2635c5ecae4dbd297cdbead64d396fadc3f88e6b28e189a96586de3e1ec7a7","signature":"e84b8129597854cede09ef1643e6b7cc2b043340018828e1e3a1467398d22d50"},{"version":"1244a9f8d8931553541bb7febc5a3cbda4f13e15e15f89f5f272112f9f86eb4e","signature":"bb090cbe4ca1d80ca4cb55050f8189fb0be1f9383c4519c3cdb83e35c4f4d1fb"},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99}],"root":[[124,137]],"options":{"allowImportingTsExtensions":false,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":4,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99},"referencedMap":[[86,1],[87,2],[143,3],[139,4],[140,5],[142,6],[114,7],[115,8],[113,7],[112,7],[123,9],[104,7],[109,7],[107,7],[108,7],[103,7],[111,10],[110,7],[105,7],[106,7],[100,7],[102,11],[99,7],[121,7],[117,7],[116,7],[118,7],[122,12],[120,7],[119,7],[132,13],[135,14],[133,15],[134,16],[137,17],[126,18],[125,19],[128,20],[127,16],[129,18],[136,21],[130,17],[124,17],[131,17],[89,22],[90,23],[96,24],[91,25],[98,26],[94,27],[95,28],[92,25],[93,23],[97,7]],"latestChangedDtsFile":"./src/constants/defaults.d.ts","version":"5.9.3"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@graph-render/react",
3
+ "version": "1.0.1",
4
+ "private": false,
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "type": "module",
9
+ "main": "dist/index.js",
10
+ "module": "dist/index.js",
11
+ "types": "dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js",
16
+ "default": "./dist/index.js"
17
+ }
18
+ },
19
+ "scripts": {
20
+ "dev": "vite",
21
+ "build": "vite build && tsc --emitDeclarationOnly --declaration --declarationMap",
22
+ "preview": "vite preview",
23
+ "lint": "eslint src --ext .ts,.tsx",
24
+ "storybook": "storybook dev -p 6006",
25
+ "build-storybook": "storybook build"
26
+ },
27
+ "dependencies": {
28
+ "@graph-render/core": "1.0.1",
29
+ "@graph-render/types": "1.0.1"
30
+ },
31
+ "peerDependencies": {
32
+ "react": "^18.2.0",
33
+ "react-dom": "^18.2.0"
34
+ },
35
+ "devDependencies": {
36
+ "@storybook/addon-essentials": "^8.1.0",
37
+ "@storybook/addon-interactions": "^8.1.0",
38
+ "@storybook/react": "^8.1.0",
39
+ "@storybook/react-vite": "^8.1.0",
40
+ "@storybook/test": "^8.1.0",
41
+ "storybook": "^8.1.0",
42
+ "@types/react": "^18.2.47",
43
+ "@types/react-dom": "^18.2.17",
44
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
45
+ "@typescript-eslint/parser": "^6.0.0",
46
+ "@vitejs/plugin-react": "^5.0.4",
47
+ "eslint": "^8.56.0",
48
+ "eslint-plugin-react": "^7.33.2",
49
+ "typescript": "^5.3.3",
50
+ "vite": "^5.0.10"
51
+ }
52
+ }
package/project.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@graph-render/react",
3
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
+ "sourceRoot": "src/react-graph-render/src",
5
+ "projectType": "library",
6
+ "targets": {
7
+ "build": {
8
+ "executor": "nx:run-commands",
9
+ "outputs": ["{projectRoot}/dist"],
10
+ "options": {
11
+ "commands": ["vite build", "tsc --emitDeclarationOnly --declaration --declarationMap"],
12
+ "cwd": "{projectRoot}",
13
+ "parallel": false
14
+ },
15
+ "dependsOn": ["^build"]
16
+ },
17
+ "dev": {
18
+ "executor": "@nx/vite:dev-server",
19
+ "options": {
20
+ "buildTarget": "@graph-render/react:build"
21
+ }
22
+ },
23
+ "preview": {
24
+ "executor": "@nx/vite:preview-server",
25
+ "options": {
26
+ "buildTarget": "@graph-render/react:build"
27
+ }
28
+ },
29
+ "lint": {
30
+ "executor": "nx:run-commands",
31
+ "options": {
32
+ "command": "eslint src --ext .ts,.tsx",
33
+ "cwd": "{projectRoot}"
34
+ }
35
+ },
36
+ "format": {
37
+ "executor": "nx:run-commands",
38
+ "options": {
39
+ "command": "prettier --write src",
40
+ "cwd": "{projectRoot}"
41
+ }
42
+ },
43
+ "storybook": {
44
+ "executor": "nx:run-commands",
45
+ "options": {
46
+ "command": "storybook dev -p 6006",
47
+ "cwd": "{projectRoot}"
48
+ }
49
+ },
50
+ "build-storybook": {
51
+ "executor": "nx:run-commands",
52
+ "outputs": ["{projectRoot}/storybook-static"],
53
+ "options": {
54
+ "command": "storybook build",
55
+ "cwd": "{projectRoot}"
56
+ }
57
+ }
58
+ },
59
+ "tags": ["type:library", "framework:react"]
60
+ }