@mp70/react-networks 0.5.0-alpha.0 → 0.5.0-rc.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.
package/dist/index.d.mts CHANGED
@@ -65,7 +65,7 @@ interface NetBoxDeviceTransformOptions {
65
65
  includeInterfacePorts?: boolean;
66
66
  /** Include per-port position metadata when provided */
67
67
  includePortPositions?: boolean;
68
- /** Optional mapper for full control over interface->port mapping */
68
+ /** Optional mapper for full control over interface-to-port mapping */
69
69
  mapInterfaceToPort?: (args: {
70
70
  device: NetBoxDevice;
71
71
  iface: NetBoxInterface;
@@ -78,6 +78,7 @@ interface NetBoxDevice {
78
78
  device_type: {
79
79
  id: number;
80
80
  model: string;
81
+ u_height?: number;
81
82
  manufacturer: {
82
83
  name: string;
83
84
  };
@@ -296,6 +297,10 @@ interface PortPosition {
296
297
  xPercent?: number;
297
298
  /** Absolute Y position as percentage (0-100) */
298
299
  yPercent?: number;
300
+ /** Authored port width as a percentage of the rendered image frame */
301
+ widthPercent?: number;
302
+ /** Authored port height as a percentage of the rendered image frame */
303
+ heightPercent?: number;
299
304
  }
300
305
  /**
301
306
  * Recommended simple port input for device and PDU rendering.
@@ -309,9 +314,11 @@ interface DevicePort {
309
314
  /** Display label for the port */
310
315
  label: string;
311
316
  /** Front/rear device face. `back` is accepted as an alias for `rear`. */
312
- face?: DeviceView | 'back';
317
+ face?: DeviceFace | 'back';
313
318
  /** Optional block/group name (for example `Network Ports`, `QSFP28`, `Power Ports`) */
314
319
  group?: string;
320
+ /** Optional source/detected family label used for visual kind inference */
321
+ sourceTypeLabel?: string;
315
322
  /** Whether the port is currently connected */
316
323
  connected?: boolean;
317
324
  /** Type of port for styling and validation */
@@ -336,6 +343,8 @@ interface Port {
336
343
  id?: string;
337
344
  /** Display label for the port */
338
345
  label: string;
346
+ /** Optional source/detected family label used for visual kind inference */
347
+ sourceTypeLabel?: string;
339
348
  /** Whether the port is currently connected */
340
349
  connected: boolean;
341
350
  /** Type of port for styling and validation */
@@ -370,10 +379,10 @@ type NetworkNodeType = 'rack' | 'switch' | 'router' | 'server' | 'fiber' | 'patc
370
379
  */
371
380
  type DeviceStatus = 'active' | 'inactive' | 'maintenance';
372
381
  /**
373
- * Device view orientations
382
+ * Device face orientations
374
383
  * @public
375
384
  */
376
- type DeviceView = 'front' | 'rear';
385
+ type DeviceFace = 'front' | 'rear';
377
386
  /**
378
387
  * Rack rendering layout modes.
379
388
  * @public
@@ -426,10 +435,8 @@ interface NetworkNodeDataBase extends DeviceImageOptions {
426
435
  uPosition?: number;
427
436
  /** Whether this node is currently mounted inside a rack container */
428
437
  isRackMounted?: boolean;
429
- /** Current front/rear view orientation */
430
- view?: DeviceView;
431
- /** Rack face orientation */
432
- face?: DeviceView;
438
+ /** Front/rear orientation for devices and rack faces */
439
+ face?: DeviceFace;
433
440
  /** Rack rendering layout mode */
434
441
  rackLayout?: RackLayoutMode;
435
442
  /** Gap in pixels between front and rear faces in split-face mode */
@@ -444,7 +451,7 @@ interface NetworkNodeDataBase extends DeviceImageOptions {
444
451
  role?: string;
445
452
  /** Device width configuration */
446
453
  width?: Width | number;
447
- /** Power port side for rear view */
454
+ /** Power port side for rear face */
448
455
  powerSide?: PowerSide;
449
456
  /** Vertical PDU height in centimeters */
450
457
  heightCm?: number;
@@ -552,7 +559,7 @@ interface NetworkNodeDataBase extends DeviceImageOptions {
552
559
  height?: number;
553
560
  headerHeight?: number;
554
561
  /** Optional precomputed map for handle-to-face resolution */
555
- handleSideMap?: Record<string, DeviceView>;
562
+ handleSideMap?: Record<string, DeviceFace>;
556
563
  /** Additional extension metadata */
557
564
  metadata?: Record<string, unknown>;
558
565
  }
@@ -714,7 +721,9 @@ type NetworkEdge<TData extends NetworkEdgeData = NetworkEdgeData> = {
714
721
  data?: TData;
715
722
  };
716
723
  /**
717
- * High-level document format independent from React Flow handle ids.
724
+ * Canonical persisted/editor document schema independent from React Flow handle ids.
725
+ * Prefer this model for saving diagrams, syncing external systems, and controlled
726
+ * document-mode usage via `document` / `onDocumentChange`.
718
727
  * @public
719
728
  */
720
729
  interface DiagramDocument {
@@ -758,7 +767,7 @@ interface DiagramNodePlacement {
758
767
  interface DiagramEndpoint {
759
768
  id: string;
760
769
  label: string;
761
- face?: DeviceView | 'internal';
770
+ face?: DeviceFace | 'internal';
762
771
  group?: string;
763
772
  role?: 'network' | 'power' | 'fiber' | 'tube' | 'splice' | 'coupler' | 'splitter' | 'cable' | 'generic';
764
773
  medium?: 'ethernet' | 'fiber' | 'power' | 'tube' | 'generic';
@@ -774,8 +783,7 @@ interface DiagramEndpoint {
774
783
  */
775
784
  interface DiagramNodeRender {
776
785
  status?: DeviceStatus | string;
777
- view?: DeviceView;
778
- face?: DeviceView;
786
+ face?: DeviceFace;
779
787
  width?: Width | number;
780
788
  widthPx?: number;
781
789
  height?: number;
@@ -844,9 +852,8 @@ interface DiagramEdge {
844
852
  */
845
853
  interface DiagramUiState {
846
854
  nodeState?: Record<string, {
847
- view?: DeviceView;
848
- face?: DeviceView;
849
- handleSideMap?: Record<string, DeviceView>;
855
+ face?: DeviceFace;
856
+ handleSideMap?: Record<string, DeviceFace>;
850
857
  }>;
851
858
  metadata?: Record<string, unknown>;
852
859
  }
@@ -913,7 +920,7 @@ interface RackDevice extends DeviceImageOptions {
913
920
  portGroups?: PortBlock[];
914
921
  /** Advanced grouped rear port input */
915
922
  rearPortGroups?: PortBlock[];
916
- /** Power port side for rear view */
923
+ /** Power port side for rear face */
917
924
  powerSide?: PowerSide;
918
925
  /** Connected device IDs */
919
926
  connections?: string[];
@@ -1081,36 +1088,43 @@ interface NetworkDiagramFlowMethods {
1081
1088
  getEdges: () => NetworkEdge[];
1082
1089
  fitView: (options?: NetworkDiagramFitViewOptions) => void;
1083
1090
  }
1091
+ /**
1092
+ * Store state shape used by `NetworkDiagramStoreApi`.
1093
+ * @public
1094
+ */
1095
+ interface NetworkDiagramStoreState {
1096
+ nodes: NetworkNode[];
1097
+ edges: NetworkEdge[];
1098
+ debug?: boolean;
1099
+ }
1100
+ /**
1101
+ * Store connection validation parameters.
1102
+ * @public
1103
+ */
1104
+ interface NetworkDiagramValidateConnectionParams {
1105
+ source: string | null;
1106
+ target: string | null;
1107
+ sourceHandle?: string | null;
1108
+ targetHandle?: string | null;
1109
+ }
1110
+ /**
1111
+ * Store connection validation result.
1112
+ * @public
1113
+ */
1114
+ interface NetworkDiagramValidationResult {
1115
+ valid: boolean;
1116
+ reason?: string;
1117
+ }
1084
1118
  /**
1085
1119
  * Store contract accepted by `NetworkDiagram`.
1086
1120
  * @public
1087
1121
  */
1088
1122
  interface NetworkDiagramStoreApi {
1089
- getState: () => {
1090
- nodes: NetworkNode[];
1091
- edges: NetworkEdge[];
1092
- debug?: boolean;
1093
- };
1094
- setState: (partial: Partial<{
1095
- nodes: NetworkNode[];
1096
- edges: NetworkEdge[];
1097
- debug?: boolean;
1098
- }>) => void;
1099
- subscribe: (listener: (state: {
1100
- nodes: NetworkNode[];
1101
- edges: NetworkEdge[];
1102
- debug?: boolean;
1103
- }) => void) => () => void;
1123
+ getState: () => NetworkDiagramStoreState;
1124
+ setState: (partial: Partial<NetworkDiagramStoreState>) => void;
1125
+ subscribe: (listener: (state: NetworkDiagramStoreState) => void) => () => void;
1104
1126
  selectEdgeZIndex: (edge: NetworkEdge) => number;
1105
- validateConnection: (params: {
1106
- source: string | null;
1107
- target: string | null;
1108
- sourceHandle?: string | null;
1109
- targetHandle?: string | null;
1110
- }) => {
1111
- valid: boolean;
1112
- reason?: string;
1113
- };
1127
+ validateConnection: (params: NetworkDiagramValidateConnectionParams) => NetworkDiagramValidationResult;
1114
1128
  selectNodeById: (id: string) => NetworkNode | undefined;
1115
1129
  selectConnectedEdges: (nodeId: string) => NetworkEdge[];
1116
1130
  }
@@ -1157,10 +1171,10 @@ interface NetworkDiagramProps {
1157
1171
  isValidConnection?: (connection: Connection) => boolean;
1158
1172
  /** Optional connection mode override */
1159
1173
  connectionMode?: ConnectionMode;
1160
- /** Callback when device view changes */
1161
- onViewChange?: (nodeId: string, view: DeviceView) => void;
1174
+ /** Callback when a device face changes */
1175
+ onFaceChange?: (nodeId: string, face: DeviceFace) => void;
1162
1176
  /** Callback when rack face changes */
1163
- onRackFaceChange?: (rackId: string, face: DeviceView) => void;
1177
+ onRackFaceChange?: (rackId: string, face: DeviceFace) => void;
1164
1178
  /** CSS class name */
1165
1179
  className?: string;
1166
1180
  /** Inline styles */
@@ -1191,16 +1205,13 @@ interface NetworkDiagramProps {
1191
1205
  interaction?: NetworkDiagramInteractionOptions;
1192
1206
  /** Configuration for the floating action panel shown on selected rack/device nodes. */
1193
1207
  actionPanel?: NetworkDiagramActionPanelOptions;
1194
- /** Enable connecting edges by clicking on handles. When true, increases handle sizes for better touch targets. Default is true. */
1195
- connectOnClick?: boolean;
1196
- /** Disable panning on drag. Default is false. */
1197
- panOnDrag?: boolean;
1198
- /** Disable panning on scroll. Default is true. */
1199
- panOnScroll?: boolean;
1200
- /** Disable zooming on scroll. Default is true. */
1201
- zoomOnScroll?: boolean;
1202
1208
  /** Optional fitView options passed to React Flow */
1203
1209
  fitViewOptions?: FitViewOptions;
1210
+ /**
1211
+ * Let React Flow render only viewport-visible nodes and edges.
1212
+ * Defaults to true, matching the library's existing large-diagram behavior.
1213
+ */
1214
+ onlyRenderVisibleElements?: boolean;
1204
1215
  }
1205
1216
 
1206
1217
  declare const NetworkDiagram: React$1.FC<NetworkDiagramProps>;
@@ -1213,7 +1224,7 @@ interface DiagramErrorBoundaryProps {
1213
1224
  /** Optional callback when an error is caught (e.g. for logging) */
1214
1225
  onError?: (error: Error, errorInfo: ErrorInfo) => void;
1215
1226
  }
1216
- interface State {
1227
+ interface DiagramErrorBoundaryState {
1217
1228
  error: Error | null;
1218
1229
  }
1219
1230
  /**
@@ -1236,23 +1247,23 @@ interface State {
1236
1247
  * </DiagramErrorBoundary>
1237
1248
  * ```
1238
1249
  */
1239
- declare class DiagramErrorBoundary extends Component<DiagramErrorBoundaryProps, State> {
1240
- state: State;
1241
- static getDerivedStateFromError(error: Error): State;
1250
+ declare class DiagramErrorBoundary extends Component<DiagramErrorBoundaryProps, DiagramErrorBoundaryState> {
1251
+ state: DiagramErrorBoundaryState;
1252
+ static getDerivedStateFromError(error: Error): DiagramErrorBoundaryState;
1242
1253
  componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
1243
1254
  reset: () => void;
1244
1255
  render(): ReactNode;
1245
1256
  }
1246
1257
 
1247
1258
  interface RackNodeProps extends NodeProps<NetworkNode['data']> {
1248
- onViewChange?: (nodeId: string, view: 'front' | 'rear') => void;
1259
+ onFaceChange?: (nodeId: string, face: 'front' | 'rear') => void;
1249
1260
  onRackFaceChange?: (rackId: string, face: 'front' | 'rear') => void;
1250
1261
  isDragOver?: boolean;
1251
1262
  }
1252
1263
  /**
1253
1264
  * Rack visualization component with U positioning support.
1254
1265
  *
1255
- * Displays a 19" rack with configurable height, front/rear view switching,
1266
+ * Displays a 19" rack with configurable height, front/rear face switching,
1256
1267
  * and support for mounting devices at specific U positions.
1257
1268
  *
1258
1269
  * @example
@@ -1400,9 +1411,7 @@ interface FibreFlowMapProps {
1400
1411
  className?: string;
1401
1412
  style?: React$1.CSSProperties;
1402
1413
  readOnly?: boolean;
1403
- panOnDrag?: boolean;
1404
- panOnScroll?: boolean;
1405
- zoomOnScroll?: boolean;
1414
+ interaction?: NetworkDiagramInteractionOptions;
1406
1415
  }
1407
1416
  declare const FibreFlowMap: React$1.FC<FibreFlowMapProps>;
1408
1417
 
@@ -1543,6 +1552,14 @@ declare const inventoryToNetworkDiagram: (data: {
1543
1552
  nodes: NetworkNode[];
1544
1553
  edges: NetworkEdge[];
1545
1554
  };
1555
+ /**
1556
+ * Convert inventory data directly into the canonical DiagramDocument model.
1557
+ */
1558
+ declare const inventoryToDiagramDocument: (data: {
1559
+ racks: InventoryRackDTO[];
1560
+ devices: InventoryDeviceDTO[];
1561
+ cables: InventoryCableDTO[];
1562
+ }) => DiagramDocument;
1546
1563
  /**
1547
1564
  * Generate simple layout positions for nodes array
1548
1565
  */
@@ -1571,6 +1588,14 @@ declare const netboxToNetworkDiagram: (data: {
1571
1588
  nodes: NetworkNode[];
1572
1589
  edges: NetworkEdge[];
1573
1590
  };
1591
+ /**
1592
+ * Convert NetBox data directly into the canonical DiagramDocument model.
1593
+ */
1594
+ declare const netboxToDiagramDocument: (data: {
1595
+ racks: NetBoxRack[];
1596
+ devices: NetBoxDevice[];
1597
+ cables: NetBoxCable[];
1598
+ }, options?: NetBoxDeviceTransformOptions) => DiagramDocument;
1574
1599
  /**
1575
1600
  * Calculate U position for devices in a rack
1576
1601
  */
@@ -2088,18 +2113,50 @@ declare function addSpliceToTray(trays: SpliceTrayConfig[], trayId: string, spli
2088
2113
  */
2089
2114
  declare function removeSpliceFromTray(trays: SpliceTrayConfig[], trayId: string, spliceId: string): SpliceTrayConfig[];
2090
2115
 
2091
- type PortFaces = {
2116
+ /**
2117
+ * Normalize flat `DevicePort[]` input into explicit front/rear grouped blocks.
2118
+ * This is the bridge between the recommended simple port schema and the
2119
+ * lower-level grouped renderer input.
2120
+ * @public
2121
+ */
2122
+ declare function buildPortBlocksFromPorts(devicePorts: DevicePort[]): {
2092
2123
  ports: PortBlock[];
2093
2124
  rearPorts: PortBlock[];
2094
2125
  };
2095
- type PortFaceData = Pick<NetworkNode['data'], 'ports' | 'portGroups' | 'rearPortGroups'>;
2096
- declare function buildPortBlocksFromPorts(devicePorts: DevicePort[]): PortFaces;
2097
- declare function getResolvedPortBlocks(data: PortFaceData | undefined): PortFaces;
2098
- declare function getFrontPortBlocks(data: PortFaceData | undefined): PortBlock[];
2099
- declare function getRearPortBlocks(data: PortFaceData | undefined): PortBlock[];
2100
- declare function hasFrontPorts(data: PortFaceData | undefined): boolean;
2101
- declare function hasRearPorts(data: PortFaceData | undefined): boolean;
2102
- declare function getDefaultDeviceView(data: PortFaceData | undefined): DeviceView;
2126
+ /**
2127
+ * Resolve the grouped front/rear port blocks from either supported input form:
2128
+ * flat `ports: DevicePort[]` or explicit `portGroups` / `rearPortGroups`.
2129
+ * @public
2130
+ */
2131
+ declare function getResolvedPortBlocks(data: Pick<NetworkNode['data'], 'ports' | 'portGroups' | 'rearPortGroups'> | undefined): {
2132
+ ports: PortBlock[];
2133
+ rearPorts: PortBlock[];
2134
+ };
2135
+ /**
2136
+ * Resolve the front-facing grouped port blocks for a node/device data object.
2137
+ * @public
2138
+ */
2139
+ declare function getFrontPortBlocks(data: Pick<NetworkNode['data'], 'ports' | 'portGroups' | 'rearPortGroups'> | undefined): PortBlock[];
2140
+ /**
2141
+ * Resolve the rear-facing grouped port blocks for a node/device data object.
2142
+ * @public
2143
+ */
2144
+ declare function getRearPortBlocks(data: Pick<NetworkNode['data'], 'ports' | 'portGroups' | 'rearPortGroups'> | undefined): PortBlock[];
2145
+ /**
2146
+ * Determine whether a node/device data object resolves to any front ports.
2147
+ * @public
2148
+ */
2149
+ declare function hasFrontPorts(data: Pick<NetworkNode['data'], 'ports' | 'portGroups' | 'rearPortGroups'> | undefined): boolean;
2150
+ /**
2151
+ * Determine whether a node/device data object resolves to any rear ports.
2152
+ * @public
2153
+ */
2154
+ declare function hasRearPorts(data: Pick<NetworkNode['data'], 'ports' | 'portGroups' | 'rearPortGroups'> | undefined): boolean;
2155
+ /**
2156
+ * Choose the default device face based on the resolved front/rear port data.
2157
+ * @public
2158
+ */
2159
+ declare function getDefaultDeviceFace(data: Pick<NetworkNode['data'], 'ports' | 'portGroups' | 'rearPortGroups'> | undefined): DeviceFace;
2103
2160
 
2104
2161
  interface NetworkGraphSnapshot {
2105
2162
  nodes: NetworkNode[];
@@ -2111,7 +2168,7 @@ declare function diagramDocumentToNetworkGraph(document: DiagramDocument): Netwo
2111
2168
  type EndpointConnectionKind = 'power' | 'network' | 'unknown';
2112
2169
  interface EndpointMetadata {
2113
2170
  normalizedHandle: string;
2114
- face?: DeviceView;
2171
+ face?: DeviceFace;
2115
2172
  kind: EndpointConnectionKind;
2116
2173
  compatibility: string[];
2117
2174
  }
@@ -2125,6 +2182,23 @@ declare function resolveEndpointCompatibilityKeys(input: {
2125
2182
  }): string[];
2126
2183
  declare function getEndpointMetadata(node?: NetworkNode, handle?: string | null): EndpointMetadata;
2127
2184
 
2185
+ type PortVisualKind = 'generic' | 'rj45' | 'sfp' | 'qsfp' | 'osfp' | 'console' | 'usb' | 'power_c13' | 'power_c19' | 'power_ac';
2186
+ interface PortVisualInput {
2187
+ type?: PortType | string;
2188
+ label?: string;
2189
+ id?: string;
2190
+ group?: string;
2191
+ sourceTypeLabel?: string;
2192
+ connectorType?: string;
2193
+ }
2194
+ interface PortVisualDimensions {
2195
+ width: number;
2196
+ height: number;
2197
+ borderRadius: string;
2198
+ }
2199
+ declare function resolvePortVisualKind(input: PortVisualInput): PortVisualKind;
2200
+ declare function getStandardPortVisualDimensions(inputOrKind: PortVisualInput | PortVisualKind): PortVisualDimensions | undefined;
2201
+
2128
2202
  /**
2129
2203
  * Power connector utilities for consistent styling across devices and PDUs
2130
2204
  */
@@ -2600,4 +2674,4 @@ declare function useNetworkDiagram(store: NetworkDiagramStore): NetworkDiagramSt
2600
2674
  declare function useNodes(store: NetworkDiagramStore): NetworkNode[];
2601
2675
  declare function useEdges(store: NetworkDiagramStore): NetworkEdge[];
2602
2676
 
2603
- export { COUPLERS_PER_PANEL, COUPLER_SLOT_HEIGHT_PX, COUPLER_WIDTH_PX, CableNode, ClosureNode, CouplerNode, type DeviceImageFit, type DeviceImageOptions, type DeviceImageRepeat, DeviceNode, DevicePlacementError, type DevicePlacementValidation, type DevicePort, type DeviceStatus, type DeviceTemplateV2, type DeviceView, type DiagramDocument, type DiagramEdge, type DiagramEdgeEndpoint, type DiagramEndpoint, DiagramErrorBoundary, type DiagramErrorBoundaryProps, type DiagramExternalRef, type DiagramNode, type DiagramNodeKind, type DiagramNodePlacement, type DiagramNodeRender, type DiagramUiState, FIBER_COLORS_12, type FiberCable, type FiberCableType, type FiberColorId, FiberEdge, FiberNode, FibreCableWithTubesExpanded, type FibreFlowCable, type FibreFlowCableKind, type FibreFlowCableNodeData, type FibreFlowCircuit, type FibreFlowClosure, type FibreFlowClosureNodeData, type FibreFlowEndpoint, FibreFlowMap, type FibreFlowMapProps, type FibreFlowSplice, FibreSplitNode, HANDLE_EXTENSION_PX, type MountClass, MultiTubeCableNode, NetworkDiagram, type NetworkDiagramFitViewOptions, type NetworkDiagramFlowMethods, type NetworkDiagramFlowObject, type NetworkDiagramOptions, type NetworkDiagramProps, type NetworkDiagramStoreApi, type NetworkDiagramToImageOptions, type NetworkEdge, type NetworkEdgeData, type NetworkGraphSnapshot, type NetworkNode, type NetworkNodeData, type NetworkNodeDataBase, type NetworkNodeDataByType, PANEL_BORDER_WIDTH, PANEL_HEADER_HEIGHT, PANEL_HEIGHT_PX, PANEL_PADDING, PANEL_TUBE_TRAY_SPACING, PANEL_WIDTH_PX, POWER_CONNECTORS, PatchPanelNode, type Port, type PortBlock, type PortCableType, type PortPosition, type PortType, PowerEdge, type PowerSide, RACK_HEADER_HEIGHT, RACK_WIDTH_PX, type RackConfig, type RackDevice, type RackDeviceType, type RackLayoutMode, type RackMountMode, RackNode, type RackSchemaOptions, type RawNetboxTemplate, type RawTemplatePort, type RawTemplatePortBlock, type ReplaceEdgeOptions, type SpliceConfig, SpliceNode, SplicePlacementError, type SplicePlacementValidation, type SpliceSchemaOptions, type SpliceTrayConfig, SpliceTrayNode, TEMPLATE_SCHEMA_VERSION, type TemplateFaceData, type TemplateFrontRearPortLink, type TemplateParseResult, type TemplatePort, type TemplatePortBlock, type TemplateSource, type TemplateValidationIssue, type TemplateValidationReport, type TemplateWidth, TubeNode, type UNumberingDirection, U_HEIGHT_PX, type ValidateConnectionParams, type ValidationResult, VerticalPDU, Width, addDeviceToRack, addSpliceToTray, baseColorFor, buildNodesFromRackConfig, buildNodesFromSpliceConfig, buildPortBlocksFromPorts, calculateClosureDimensions, calculateCouplerRightX, calculateCouplerSlotSpacing, calculateCouplerSpacing, calculateDevicePositionFromU, calculatePanelDimensions, calculateSlotPositionFromY, calculateSplicePositionFromNumber, calculateUPositions, calculateYFromSlotPosition, countTemplateFacePorts, createNetworkDiagramStore, createRackConfigFromNodes, createSpliceConfigFromNodes, diagramDocumentToNetworkGraph, fiberSolidOrStriped, findNearestRack, findNextAvailableHolderPosition, findNextAvailableUPosition, generateLayout, getConnectorConfig, getCouplerDimensions, getDefaultDeviceView, getDeviceConnectorType, getEndpointMetadata, getFiberColor, getFrontPortBlocks, getInnerContentWidth, getPDUPortType, getPanelHeight, getPanelWidth, getPowerPortStyle, getRackBounds, getRearPortBlocks, getResolvedPortBlocks, getStatusColor, getTrayDimensions, getTubeDimensions, hasFrontPorts, hasRearPorts, inventoryCableToNetworkEdge, inventoryDeviceToNetworkNode, inventoryRackToNetworkNode, inventoryToNetworkDiagram, isHighPowerConnector, isPointInRack, isStriped, isUPositionAvailable, netboxCableToNetworkEdge, netboxDeviceToNetworkNode, netboxRackToNetworkNode, netboxToNetworkDiagram, networkGraphToDiagramDocument, parseNetboxTemplate, removeDeviceFromRack, removeSpliceFromTray, replaceEdge, resolveEndpointCompatibilityKeys, snapToCouplerPosition, snapToSplicePosition, snapToUPosition, updateDeviceUPosition$1 as updateDeviceUPosition, updateDeviceUPosition as updateDeviceUPositionInSchema, updateSpliceHolderPosition, useEdges as useDiagramEdges, useNodes as useDiagramNodes, useNetworkDiagram, validateAndSnapDevice, validateRackDevicePlacements, validateRenderFidelity, validateSplicePlacements };
2677
+ export { COUPLERS_PER_PANEL, COUPLER_SLOT_HEIGHT_PX, COUPLER_WIDTH_PX, CableNode, ClosureNode, CouplerNode, type DeviceFace, type DeviceImageFit, type DeviceImageOptions, type DeviceImageRepeat, DeviceNode, type DeviceNodeData, DevicePlacementError, type DevicePlacementValidation, type DevicePort, type DeviceStatus, type DeviceTemplateV2, type DiagramDocument, type DiagramEdge, type DiagramEdgeEndpoint, type DiagramEndpoint, DiagramErrorBoundary, type DiagramErrorBoundaryProps, type DiagramErrorBoundaryState, type DiagramExternalRef, type DiagramNode, type DiagramNodeKind, type DiagramNodePlacement, type DiagramNodeRender, type DiagramUiState, type EndpointConnectionKind, type EndpointMetadata, FIBER_COLORS_12, type FiberCable, type FiberCableType, type FiberColorId, FiberEdge, FiberNode, FibreCableWithTubesExpanded, type FibreCableWithTubesExpandedProps, type FibreFlowCable, type FibreFlowCableKind, type FibreFlowCableLayout, type FibreFlowCableNodeData, type FibreFlowCircuit, type FibreFlowClosure, type FibreFlowClosureNodeData, type FibreFlowColorMode, type FibreFlowEndpoint, type FibreFlowLayoutDirection, FibreFlowMap, type FibreFlowMapProps, type FibreFlowRow, type FibreFlowSplice, type FibreFlowTubeLabel, FibreSplitNode, HANDLE_EXTENSION_PX, type InventoryCableDTO, type InventoryDeviceDTO, type InventoryRackDTO, type MountClass, MultiTubeCableNode, type NetBoxCable, type NetBoxDevice, type NetBoxDeviceTransformOptions, type NetBoxInterface, type NetBoxMappedPort, type NetBoxPortPosition, type NetBoxRack, NetworkDiagram, type NetworkDiagramActionPanelOptions, type NetworkDiagramFitViewOptions, type NetworkDiagramFlowMethods, type NetworkDiagramFlowObject, type NetworkDiagramInteractionOptions, type NetworkDiagramOptions, type NetworkDiagramProps, type NetworkDiagramState, type NetworkDiagramStore, type NetworkDiagramStoreApi, type NetworkDiagramStoreState, type NetworkDiagramToImageOptions, type NetworkDiagramValidateConnectionParams, type NetworkDiagramValidationResult, type NetworkEdge, type NetworkEdgeData, type NetworkEdgeType, type NetworkGraphSnapshot, type NetworkNode, type NetworkNodeData, type NetworkNodeDataBase, type NetworkNodeDataByType, type NetworkNodeType, PANEL_BORDER_WIDTH, PANEL_HEADER_HEIGHT, PANEL_HEIGHT_PX, PANEL_PADDING, PANEL_TUBE_TRAY_SPACING, PANEL_WIDTH_PX, POWER_CONNECTORS, PatchPanelNode, type Port, type PortBlock, type PortCableType, type PortPosition, type PortType, type PortVisualDimensions, type PortVisualInput, type PortVisualKind, type PowerConnectorConfig, PowerEdge, type PowerPortStyle, type PowerSide, RACK_HEADER_HEIGHT, RACK_WIDTH_PX, type RackConfig, type RackDevice, type RackDeviceType, type RackLayoutMode, type RackMountMode, type RackMountedNodeType, RackNode, type RackNodeData, type RackNodeProps, type RackSchemaOptions, type RawNetboxTemplate, type RawTemplatePort, type RawTemplatePortBlock, type ReplaceEdgeOptions, type SpliceConfig, SpliceNode, SplicePlacementError, type SplicePlacementValidation, type SpliceSchemaOptions, type SpliceTrayConfig, SpliceTrayNode, TEMPLATE_SCHEMA_VERSION, type TemplateFaceData, type TemplateFrontRearPortLink, type TemplateParseResult, type TemplatePort, type TemplatePortBlock, type TemplateSource, type TemplateValidationIssue, type TemplateValidationReport, type TemplateWidth, TubeNode, type UNumberingDirection, U_HEIGHT_PX, type ValidateConnectionParams, type ValidationResult, VerticalPDU, Width, addDeviceToRack, addSpliceToTray, baseColorFor, buildNodesFromRackConfig, buildNodesFromSpliceConfig, buildPortBlocksFromPorts, calculateClosureDimensions, calculateCouplerRightX, calculateCouplerSlotSpacing, calculateCouplerSpacing, calculateDevicePositionFromU, calculatePanelDimensions, calculateSlotPositionFromY, calculateSplicePositionFromNumber, calculateUPositions, calculateYFromSlotPosition, countTemplateFacePorts, createNetworkDiagramStore, createRackConfigFromNodes, createSpliceConfigFromNodes, diagramDocumentToNetworkGraph, fiberSolidOrStriped, findNearestRack, findNextAvailableHolderPosition, findNextAvailableUPosition, generateLayout, getConnectorConfig, getCouplerDimensions, getDefaultDeviceFace, getDeviceConnectorType, getEndpointMetadata, getFiberColor, getFrontPortBlocks, getInnerContentWidth, getPDUPortType, getPanelHeight, getPanelWidth, getPowerPortStyle, getRackBounds, getRearPortBlocks, getResolvedPortBlocks, getStandardPortVisualDimensions, getStatusColor, getTrayDimensions, getTubeDimensions, hasFrontPorts, hasRearPorts, inventoryCableToNetworkEdge, inventoryDeviceToNetworkNode, inventoryRackToNetworkNode, inventoryToDiagramDocument, inventoryToNetworkDiagram, isHighPowerConnector, isPointInRack, isStriped, isUPositionAvailable, netboxCableToNetworkEdge, netboxDeviceToNetworkNode, netboxRackToNetworkNode, netboxToDiagramDocument, netboxToNetworkDiagram, networkGraphToDiagramDocument, parseNetboxTemplate, removeDeviceFromRack, removeSpliceFromTray, replaceEdge, resolveEndpointCompatibilityKeys, resolvePortVisualKind, snapToCouplerPosition, snapToSplicePosition, snapToUPosition, updateDeviceUPosition$1 as updateDeviceUPosition, updateDeviceUPosition as updateDeviceUPositionInSchema, updateSpliceHolderPosition, useEdges as useDiagramEdges, useNodes as useDiagramNodes, useNetworkDiagram, validateAndSnapDevice, validateRackDevicePlacements, validateRenderFidelity, validateSplicePlacements };