SYMBOL INDEX (555 symbols across 73 files) FILE: bench.ts type Result (line 18) | interface Result { function col (line 33) | function col(value: string, width: number, align: 'left' | 'right' = 'le... function fmtMs (line 38) | function fmtMs(ms: number): string { FILE: dev.ts constant PORT (line 18) | const PORT = 3456 constant ROOT (line 19) | const ROOT = import.meta.dir function rebuild (line 28) | async function rebuild(): Promise { function onFileChange (line 63) | function onFileChange(_event: string, filename: string | null): void { method fetch (line 88) | async fetch(req) { FILE: index.ts function escapeHtml (line 31) | function escapeHtml(text: string): string { function formatDescription (line 40) | function formatDescription(text: string): string { constant THEME_LABELS (line 45) | const THEME_LABELS: Record = { function generateHtml (line 62) | async function generateHtml(): Promise { FILE: samples-data.ts type Sample (line 13) | interface Sample { FILE: src/__tests__/ascii.test.ts type TestCase (line 20) | interface TestCase { function parseTestCase (line 36) | function parseTestCase(content: string): TestCase { function normalizeWhitespace (line 98) | function normalizeWhitespace(s: string): string { function visualizeWhitespace (line 115) | function visualizeWhitespace(s: string): string { function runGoldenTests (line 123) | function runGoldenTests(dir: string, useAscii: boolean): void { FILE: src/__tests__/class-parser.test.ts function parse (line 11) | function parse(text: string) { FILE: src/__tests__/edge-approach-direction.test.ts type Point (line 18) | interface Point { function isVerticalSegment (line 26) | function isVerticalSegment(p1: Point, p2: Point, tolerance = 1): boolean { function isHorizontalSegment (line 35) | function isHorizontalSegment(p1: Point, p2: Point, tolerance = 1): boole... function getFinalSegment (line 44) | function getFinalSegment(points: Point[]): { p1: Point; p2: Point } | nu... function getFirstSegment (line 55) | function getFirstSegment(points: Point[]): { p1: Point; p2: Point } | nu... function getApproachSide (line 66) | function getApproachSide( FILE: src/__tests__/er-integration.test.ts function extractEntityBoxes (line 121) | function extractEntityBoxes(svg: string): Map = {}): Positioned... function makeNode (line 25) | function makeNode(overrides: Partial = {}): PositionedNo... function makeEdge (line 39) | function makeEdge(overrides: Partial = {}): PositionedEd... FILE: src/__tests__/sequence-layout.test.ts function layout (line 13) | function layout(source: string) { FILE: src/__tests__/sequence-parser.test.ts function parse (line 11) | function parse(text: string) { FILE: src/__tests__/xychart-ascii.test.ts function render (line 14) | function render(text: string, useAscii = false): string { FILE: src/__tests__/xychart-integration.test.ts constant BAR_CHART (line 10) | const BAR_CHART = `xychart-beta constant LINE_CHART (line 15) | const LINE_CHART = `xychart-beta constant MIXED_CHART (line 20) | const MIXED_CHART = `xychart-beta FILE: src/ascii/ansi.ts constant DEFAULT_ASCII_THEME (line 23) | const DEFAULT_ASCII_THEME: AsciiTheme = { function mixColors (line 41) | function mixColors(fg: string, bg: string, pct: number): string { function diagramColorsToAsciiTheme (line 53) | function diagramColorsToAsciiTheme(colors: DiagramColors): AsciiTheme { function detectColorMode (line 83) | function detectColorMode(): ColorMode { function parseHex (line 131) | function parseHex(hex: string): { r: number; g: number; b: number } { constant ESC (line 152) | const ESC = '\x1b[' constant RESET (line 154) | const RESET = `${ESC}0m` function truecolorFg (line 160) | function truecolorFg(hex: string): string { function rgbTo256 (line 172) | function rgbTo256(r: number, g: number, b: number): number { function ansi256Fg (line 203) | function ansi256Fg(hex: string): string { function ansi16Fg (line 217) | function ansi16Fg(hex: string): string { function escapeHtml (line 244) | function escapeHtml(text: string): string { function htmlSpan (line 249) | function htmlSpan(hex: string, text: string): string { function getRoleColor (line 260) | function getRoleColor(role: CharRole, theme: AsciiTheme): string { function getAnsiColor (line 275) | function getAnsiColor(role: CharRole, theme: AsciiTheme, mode: ColorMode... function getAnsiReset (line 291) | function getAnsiReset(mode: ColorMode): string { function colorizeChar (line 298) | function colorizeChar( function colorizeLine (line 316) | function colorizeLine( function colorizeLineHtml (line 387) | function colorizeLineHtml( function colorizeText (line 436) | function colorizeText(text: string, hex: string, mode: ColorMode): string { FILE: src/ascii/canvas.ts function mkCanvas (line 16) | function mkCanvas(x: number, y: number): Canvas { function copyCanvas (line 29) | function copyCanvas(source: Canvas): Canvas { function mkRoleCanvas (line 42) | function mkRoleCanvas(x: number, y: number): RoleCanvas { function copyRoleCanvas (line 55) | function copyRoleCanvas(source: RoleCanvas): RoleCanvas { function increaseRoleCanvasSize (line 65) | function increaseRoleCanvasSize(roleCanvas: RoleCanvas, newX: number, ne... function setRole (line 87) | function setRole(roleCanvas: RoleCanvas, x: number, y: number, role: Cha... function mergeRoleCanvases (line 98) | function mergeRoleCanvases( function getCanvasSize (line 142) | function getCanvasSize(canvas: Canvas): [number, number] { function increaseSize (line 150) | function increaseSize(canvas: Canvas, newX: number, newY: number): Canvas { constant JUNCTION_CHARS (line 173) | const JUNCTION_CHARS = new Set([ function isJunctionChar (line 177) | function isJunctionChar(c: string): boolean { function isAlphanumeric (line 182) | function isAlphanumeric(c: string): boolean { constant JUNCTION_MAP (line 191) | const JUNCTION_MAP: Record> = { function mergeJunctions (line 204) | function mergeJunctions(c1: string, c2: string): string { function mergeCanvases (line 217) | function mergeCanvases( type CanvasToStringOptions (line 271) | interface CanvasToStringOptions { function canvasToString (line 284) | function canvasToString(canvas: Canvas, options?: CanvasToStringOptions)... constant VERTICAL_FLIP_MAP (line 327) | const VERTICAL_FLIP_MAP: Record = { function flipCanvasVertically (line 351) | function flipCanvasVertically(canvas: Canvas): Canvas { function flipRoleCanvasVertically (line 372) | function flipRoleCanvasVertically(roleCanvas: RoleCanvas): RoleCanvas { function drawText (line 384) | function drawText( function setCanvasSizeToGrid (line 405) | function setCanvasSizeToGrid( function setRoleCanvasSizeToGrid (line 421) | function setRoleCanvasSizeToGrid( FILE: src/ascii/class-diagram.ts function classifyBoxChar (line 21) | function classifyBoxChar(ch: string): CharRole { function formatMember (line 31) | function formatMember(m: ClassMember): string { function buildClassSections (line 38) | function buildClassSections(cls: ClassNode): string[][] { type RelMarker (line 64) | interface RelMarker { function getRelMarker (line 77) | function getRelMarker(type: RelationshipType, markerAt: 'from' | 'to'): ... function getMarkerShape (line 87) | function getMarkerShape( type PlacedClass (line 137) | interface PlacedClass { function renderClassAscii (line 151) | function renderClassAscii(text: string, config: AsciiConfig, colorMode?:... FILE: src/ascii/converter.ts function convertToAsciiGraph (line 25) | function convertToAsciiGraph(parsed: MermaidGraph, config: AsciiConfig):... function convertSubgraph (line 118) | function convertSubgraph( function deduplicateSubgraphNodes (line 177) | function deduplicateSubgraphNodes( function isAncestorOrSelf (line 241) | function isAncestorOrSelf(candidate: AsciiSubgraph, target: AsciiSubgrap... function buildSgMap (line 251) | function buildSgMap( FILE: src/ascii/draw.ts function drawNode (line 39) | function drawNode(node: AsciiNode, graph: AsciiGraph): Canvas { function drawBoxWithGridDimensions (line 56) | function drawBoxWithGridDimensions(node: AsciiNode, graph: AsciiGraph): ... function drawBox (line 123) | function drawBox(node: AsciiNode, graph: AsciiGraph): Canvas { function drawMultiBox (line 141) | function drawMultiBox( constant LINE_CHARS (line 236) | const LINE_CHARS = { function drawLine (line 260) | function drawLine( function drawArrow (line 380) | function drawArrow( function reverseDirection (line 436) | function reverseDirection(dir: Direction): Direction { function drawPath (line 452) | function drawPath( function drawBoxStart (line 488) | function drawBoxStart( function drawArrowHead (line 517) | function drawArrowHead( function drawCorners (line 575) | function drawCorners(graph: AsciiGraph, path: GridCoord[]): Canvas { function drawArrowLabel (line 612) | function drawArrowLabel(graph: AsciiGraph, edge: AsciiEdge): Canvas { function drawTextOnLine (line 647) | function drawTextOnLine(canvas: Canvas, line: DrawingCoord[], label: str... function getNodeAttachmentPoint (line 691) | function getNodeAttachmentPoint( function drawBundledEdgeSegment (line 731) | function drawBundledEdgeSegment( function drawBundleSharedPath (line 832) | function drawBundleSharedPath(graph: AsciiGraph, bundle: EdgeBundle): [C... function drawBundleArrowhead (line 908) | function drawBundleArrowhead(graph: AsciiGraph, bundle: EdgeBundle): Can... function drawBundledEdgeArrowhead (line 952) | function drawBundledEdgeArrowhead(graph: AsciiGraph, edge: AsciiEdge): C... function drawJunctionCharacter (line 1001) | function drawJunctionCharacter(graph: AsciiGraph, bundle: EdgeBundle): C... function drawSubgraphBox (line 1098) | function drawSubgraphBox(sg: AsciiSubgraph, graph: AsciiGraph): Canvas { function drawSubgraphLabel (line 1131) | function drawSubgraphLabel(sg: AsciiSubgraph, graph: AsciiGraph): [Canva... function sortSubgraphsByDepth (line 1163) | function sortSubgraphsByDepth(subgraphs: AsciiSubgraph[]): AsciiSubgraph... function fillRolesFromCanvas (line 1180) | function fillRolesFromCanvas( function fillRolesFromCanvases (line 1204) | function fillRolesFromCanvases( function fillRolesForNodeBox (line 1219) | function fillRolesForNodeBox( function drawGraph (line 1255) | function drawGraph(graph: AsciiGraph): Canvas { FILE: src/ascii/edge-bundling.ts function analyzeEdgeBundles (line 41) | function analyzeEdgeBundles(graph: AsciiGraph): EdgeBundle[] { function canBundle (line 133) | function canBundle(edges: AsciiEdge[], graph: AsciiGraph): boolean { function calculateJunctionPoint (line 178) | function calculateJunctionPoint( function routeBundledEdges (line 248) | function routeBundledEdges(graph: AsciiGraph, bundle: EdgeBundle): void { function processBundles (line 324) | function processBundles(graph: AsciiGraph): void { FILE: src/ascii/edge-routing.ts function getOpposite (line 21) | function getOpposite(d: Direction): Direction { function dirEquals (line 34) | function dirEquals(a: Direction, b: Direction): boolean { function determineDirection (line 42) | function determineDirection(from: { x: number; y: number }, to: { x: num... function selfReferenceDirection (line 59) | function selfReferenceDirection(graphDirection: string): [Direction, Dir... function determineStartAndEndDir (line 71) | function determineStartAndEndDir( function determinePath (line 155) | function determinePath(graph: AsciiGraph, edge: AsciiEdge): void { function determineLabelLine (line 227) | function determineLabelLine(graph: AsciiGraph, edge: AsciiEdge): void { function calculateLineWidth (line 288) | function calculateLineWidth(graph: AsciiGraph, line: [GridCoord, GridCoo... FILE: src/ascii/er-diagram.ts function classifyBoxChar (line 20) | function classifyBoxChar(ch: string): CharRole { function formatAttribute (line 30) | function formatAttribute(attr: ErAttribute): string { function buildEntitySections (line 36) | function buildEntitySections(entity: ErEntity): string[][] { function getCrowsFootChars (line 62) | function getCrowsFootChars(card: Cardinality, useAscii: boolean, isRight... type PlacedEntity (line 85) | interface PlacedEntity { function findConnectedComponents (line 104) | function findConnectedComponents(diagram: ErDiagram): Set[] { function renderErAscii (line 159) | function renderErAscii(text: string, config: AsciiConfig, colorMode?: Co... FILE: src/ascii/grid.ts function gridToDrawingCoord (line 30) | function gridToDrawingCoord( function lineToDrawing (line 58) | function lineToDrawing(graph: AsciiGraph, line: GridCoord[]): DrawingCoo... function reserveSpotInGrid (line 75) | function reserveSpotInGrid( function setColumnWidth (line 114) | function setColumnWidth(graph: AsciiGraph, node: AsciiNode): void { function increaseGridSizeForPath (line 159) | function increaseGridSizeForPath(graph: AsciiGraph, path: GridCoord[]): ... function isNodeInAnySubgraph (line 174) | function isNodeInAnySubgraph(graph: AsciiGraph, node: AsciiNode): boolean { function getNodeSubgraph (line 182) | function getNodeSubgraph(graph: AsciiGraph, node: AsciiNode): AsciiSubgr... function isAncestorOrSelf (line 197) | function isAncestorOrSelf(candidate: AsciiSubgraph, target: AsciiSubgrap... function getEffectiveDirection (line 211) | function getEffectiveDirection(graph: AsciiGraph, node: AsciiNode): 'LR'... function hasIncomingEdgeFromOutsideSubgraph (line 224) | function hasIncomingEdgeFromOutsideSubgraph(graph: AsciiGraph, node: Asc... function calculateSubgraphBoundingBox (line 266) | function calculateSubgraphBoundingBox(graph: AsciiGraph, sg: AsciiSubgra... function ensureSubgraphSpacing (line 307) | function ensureSubgraphSpacing(graph: AsciiGraph): void { function calculateSubgraphBoundingBoxes (line 336) | function calculateSubgraphBoundingBoxes(graph: AsciiGraph): void { function offsetDrawingForSubgraphs (line 347) | function offsetDrawingForSubgraphs(graph: AsciiGraph): void { function createMapping (line 394) | function createMapping(graph: AsciiGraph): void { function getEdgesFromNode (line 571) | function getEdgesFromNode(graph: AsciiGraph, node: AsciiNode): AsciiGrap... function getChildren (line 576) | function getChildren(graph: AsciiGraph, node: AsciiNode): AsciiNode[] { FILE: src/ascii/index.ts type AsciiRenderOptions (line 35) | interface AsciiRenderOptions { function detectDiagramType (line 63) | function detectDiagramType(text: string): 'flowchart' | 'sequence' | 'cl... function renderMermaidASCII (line 101) | function renderMermaidASCII( FILE: src/ascii/multiline-utils.ts function splitLines (line 16) | function splitLines(label: string): string[] { function maxLineWidth (line 24) | function maxLineWidth(label: string): number { function lineCount (line 33) | function lineCount(label: string): number { function drawMultilineTextCentered (line 42) | function drawMultilineTextCentered( function drawMultilineTextLeft (line 66) | function drawMultilineTextLeft( FILE: src/ascii/pathfinder.ts type PQItem (line 16) | interface PQItem { class MinHeap (line 25) | class MinHeap { method length (line 28) | get length(): number { method push (line 32) | push(item: PQItem): void { method pop (line 37) | pop(): PQItem | undefined { method bubbleUp (line 48) | private bubbleUp(i: number): void { method sinkDown (line 60) | private sinkDown(i: number): void { function heuristic (line 90) | function heuristic(a: GridCoord, b: GridCoord): number { constant MOVE_DIRS (line 104) | const MOVE_DIRS: GridCoord[] = [ function isFreeInGrid (line 112) | function isFreeInGrid(grid: Map, c: GridCoord): boole... function getPath (line 121) | function getPath( function mergePath (line 180) | function mergePath(path: GridCoord[]): GridCoord[] { FILE: src/ascii/sequence.ts function classifyBoxChar (line 19) | function classifyBoxChar(ch: string): CharRole { function renderSequenceAscii (line 29) | function renderSequenceAscii(text: string, config: AsciiConfig, colorMod... FILE: src/ascii/shapes/circle.ts method render (line 21) | render(label, dimensions, options) { FILE: src/ascii/shapes/corners.ts type CornerChars (line 14) | interface CornerChars { type ShapeCorners (line 28) | interface ShapeCorners { constant SHAPE_CORNERS (line 41) | const SHAPE_CORNERS: Record = { function getCorners (line 124) | function getCorners(shape: AsciiNodeShape, useAscii: boolean): CornerCha... FILE: src/ascii/shapes/diamond.ts method render (line 21) | render(label, dimensions, options) { FILE: src/ascii/shapes/hexagon.ts method render (line 21) | render(label, dimensions, options) { FILE: src/ascii/shapes/index.ts function getShapeRenderer (line 59) | function getShapeRenderer(shape: AsciiNodeShape): ShapeRenderer { function renderShape (line 67) | function renderShape( function getShapeDimensions (line 81) | function getShapeDimensions( function getShapeAttachmentPoint (line 93) | function getShapeAttachmentPoint( FILE: src/ascii/shapes/rectangle.ts function getBoxDimensions (line 25) | function getBoxDimensions(label: string, options: ShapeRenderOptions): S... function renderBox (line 68) | function renderBox( function getBoxAttachmentPoint (line 132) | function getBoxAttachmentPoint( method render (line 167) | render(label: string, dimensions: ShapeDimensions, options: ShapeRenderO... FILE: src/ascii/shapes/rounded.ts method render (line 21) | render(label, dimensions, options) { FILE: src/ascii/shapes/special.ts method getDimensions (line 29) | getDimensions(label: string, options: ShapeRenderOptions): ShapeDimensio... method render (line 53) | render(label: string, dimensions: ShapeDimensions, options: ShapeRenderO... method render (line 121) | render(label, dimensions, options) { method getDimensions (line 143) | getDimensions(label: string, options: ShapeRenderOptions): ShapeDimensio... method render (line 167) | render(label: string, dimensions: ShapeDimensions, options: ShapeRenderO... method render (line 239) | render(label, dimensions, options) { method render (line 263) | render(label, dimensions, options) { method render (line 287) | render(label, dimensions, options) { FILE: src/ascii/shapes/stadium.ts method getDimensions (line 31) | getDimensions(label: string, options: ShapeRenderOptions): ShapeDimensio... method render (line 55) | render(label: string, dimensions: ShapeDimensions, options: ShapeRenderO... FILE: src/ascii/shapes/state.ts method getDimensions (line 25) | getDimensions(_label: string, _options: ShapeRenderOptions): ShapeDimens... method render (line 39) | render(_label: string, dimensions: ShapeDimensions, options: ShapeRender... method getAttachmentPoint (line 84) | getAttachmentPoint( method getDimensions (line 117) | getDimensions(_label: string, _options: ShapeRenderOptions): ShapeDimens... method render (line 131) | render(_label: string, dimensions: ShapeDimensions, options: ShapeRender... method getAttachmentPoint (line 176) | getAttachmentPoint( FILE: src/ascii/shapes/types.ts type ShapeDimensions (line 10) | interface ShapeDimensions { type ShapeRenderOptions (line 31) | interface ShapeRenderOptions { type ShapeRenderer (line 42) | interface ShapeRenderer { type ShapeRegistry (line 73) | type ShapeRegistry = Map FILE: src/ascii/types.ts type AsciiNodeShape (line 18) | type AsciiNodeShape = NodeShape type GridCoord (line 21) | interface GridCoord { type DrawingCoord (line 27) | interface DrawingCoord { type Direction (line 41) | interface Direction { constant ALL_DIRECTIONS (line 57) | const ALL_DIRECTIONS: readonly Direction[] = [ type Canvas (line 65) | type Canvas = string[][] type AsciiNode (line 68) | interface AsciiNode { type AsciiStyleClass (line 85) | interface AsciiStyleClass { type AsciiEdgeStyle (line 91) | type AsciiEdgeStyle = 'solid' | 'dotted' | 'thick' type AsciiEdge (line 94) | interface AsciiEdge { type AsciiSubgraph (line 119) | interface AsciiSubgraph { type AsciiConfig (line 133) | interface AsciiConfig { type AsciiGraph (line 147) | interface AsciiGraph { function gridCoordEquals (line 170) | function gridCoordEquals(a: GridCoord, b: GridCoord): boolean { function drawingCoordEquals (line 174) | function drawingCoordEquals(a: DrawingCoord, b: DrawingCoord): boolean { function gridCoordDirection (line 179) | function gridCoordDirection(c: GridCoord, dir: Direction): GridCoord { function gridKey (line 184) | function gridKey(c: GridCoord): string { constant EMPTY_STYLE (line 189) | const EMPTY_STYLE: AsciiStyleClass = { name: '', styles: {} } type CharRole (line 199) | type CharRole = type RoleCanvas (line 212) | type RoleCanvas = (CharRole | null)[][] type AsciiTheme (line 218) | interface AsciiTheme { type ColorMode (line 238) | type ColorMode = type EdgeBundle (line 256) | interface EdgeBundle { FILE: src/ascii/validate.ts constant DIAGONAL_CHARS (line 12) | const DIAGONAL_CHARS = { type DiagonalPosition (line 21) | interface DiagonalPosition { function hasDiagonalLines (line 34) | function hasDiagonalLines(asciiOutput: string): boolean { function findDiagonalLines (line 48) | function findDiagonalLines(asciiOutput: string): DiagonalPosition[] { function assertNoDiagonals (line 104) | function assertNoDiagonals(asciiOutput: string, context?: string): void { FILE: src/ascii/xychart.ts constant PLOT_WIDTH (line 24) | const PLOT_WIDTH = 60 constant PLOT_HEIGHT (line 25) | const PLOT_HEIGHT = 20 constant UNI (line 28) | const UNI = { constant ASC (line 43) | const ASC = { type HexCanvas (line 62) | type HexCanvas = (string | null)[][] function getSeriesColors (line 65) | function getSeriesColors(total: number, theme: AsciiTheme): string[] { function roleToHex (line 72) | function roleToHex(role: CharRole, theme: AsciiTheme): string { function renderXYChartAscii (line 88) | function renderXYChartAscii( function renderVertical (line 108) | function renderVertical( function renderHorizontal (line 270) | function renderHorizontal( function drawStaircaseLine (line 420) | function drawStaircaseLine( function drawHorizontalStaircaseLine (line 532) | function drawHorizontalStaircaseLine( function drawLegend (line 620) | function drawLegend( function createCanvas (line 673) | function createCanvas(width: number, height: number): Canvas { function createRoleCanvas (line 677) | function createRoleCanvas(width: number, height: number): RoleCanvas { function createHexCanvas (line 681) | function createHexCanvas(width: number, height: number): HexCanvas { function set (line 685) | function set( function get (line 697) | function get(canvas: Canvas, row: number, col: number): string { function writeText (line 704) | function writeText(canvas: Canvas, roles: RoleCanvas, row: number, start... function canvasToString (line 714) | function canvasToString( function colorizeRow (line 764) | function colorizeRow( function getDataCount (line 820) | function getDataCount(chart: XYChart): number { function getCategoryLabels (line 828) | function getCategoryLabels(chart: XYChart, count: number): string[] { function niceTickValues (line 839) | function niceTickValues(min: number, max: number): number[] { function formatTickValue (line 860) | function formatTickValue(v: number): string { FILE: src/class/layout.ts constant CLS (line 18) | const CLS = { type ClassSizeMap (line 33) | type ClassSizeMap = Map, id: string): Clas... function parseMember (line 176) | function parseMember(line: string): { member: ClassMember; isMethod: boo... function parseRelationship (line 242) | function parseRelationship(line: string): ClassRelationship | null { function parseArrow (line 271) | function parseArrow(arrow: string): { type: RelationshipType; markerAt: ... FILE: src/class/renderer.ts constant CLS_FONT (line 22) | const CLS_FONT = { function renderClassSvg (line 35) | function renderClassSvg( function relationshipMarkerDefs (line 85) | function relationshipMarkerDefs(): string { function renderClassBox (line 114) | function renderClassBox(cls: PositionedClassNode): string { function renderMember (line 204) | function renderMember(member: ClassMember, x: number, y: number): string { function renderRelationship (line 241) | function renderRelationship(rel: PositionedClassRelationship): string { function getRelationshipMarkers (line 287) | function getRelationshipMarkers(type: RelationshipType, markerAt: 'from'... function getMarkerDefId (line 299) | function getMarkerDefId(type: RelationshipType): string | null { function renderRelationshipLabels (line 317) | function renderRelationshipLabels(rel: PositionedClassRelationship): str... function midpoint (line 358) | function midpoint(points: Array<{ x: number; y: number }>): { x: number;... function cardinalityOffset (line 365) | function cardinalityOffset( function escapeAttr (line 391) | function escapeAttr(value: string): string { FILE: src/class/types.ts type ClassDiagram (line 9) | interface ClassDiagram { type ClassNode (line 18) | interface ClassNode { type ClassMember (line 29) | interface ClassMember { type RelationshipType (line 47) | type RelationshipType = type ClassRelationship (line 55) | interface ClassRelationship { type ClassNamespace (line 74) | interface ClassNamespace { type PositionedClassDiagram (line 83) | interface PositionedClassDiagram { type PositionedClassNode (line 90) | interface PositionedClassNode { type PositionedClassRelationship (line 108) | interface PositionedClassRelationship { FILE: src/elk-instance.ts type RawFakeWorker (line 20) | interface RawFakeWorker { function ensureElk (line 39) | function ensureElk(): void { function elkLayoutSync (line 85) | function elkLayoutSync(graph: ElkNode): ElkNode { FILE: src/er/layout.ts type EntitySizeMap (line 29) | type EntitySizeMap = Map function buildErElkGraph (line 32) | function buildErElkGraph( function extractErLayout (line 85) | function extractErLayout( function layoutErDiagramSync (line 150) | function layoutErDiagramSync( FILE: src/er/parser.ts function parseErDiagram (line 32) | function parseErDiagram(lines: string[]): ErDiagram { function ensureEntity (line 86) | function ensureEntity(entityMap: Map, id: string): ErE... function parseAttribute (line 96) | function parseAttribute(line: string): ErAttribute | null { function parseRelationshipLine (line 137) | function parseRelationshipLine(line: string): ErRelationship | null { function parseCardinality (line 167) | function parseCardinality(str: string): Cardinality | null { FILE: src/er/renderer.ts constant ER_FONT (line 22) | const ER_FONT = { function renderErSvg (line 35) | function renderErSvg( function renderEntityBox (line 81) | function renderEntityBox(entity: PositionedErEntity): string { function renderAttribute (line 147) | function renderAttribute(attr: ErAttribute, boxX: number, y: number, box... function renderRelationshipLine (line 204) | function renderRelationshipLine(rel: PositionedErRelationship): string { function renderRelationshipLabel (line 228) | function renderRelationshipLabel(rel: PositionedErRelationship): string { function renderCardinality (line 255) | function renderCardinality(rel: PositionedErRelationship): string { function renderCrowsFoot (line 276) | function renderCrowsFoot( function midpoint (line 370) | function midpoint(points: Array<{ x: number; y: number }>): { x: number;... function escapeAttr (line 414) | function escapeAttr(value: string): string { FILE: src/er/types.ts type ErDiagram (line 9) | interface ErDiagram { type ErEntity (line 16) | interface ErEntity { type ErAttribute (line 24) | interface ErAttribute { type Cardinality (line 42) | type Cardinality = 'one' | 'zero-one' | 'many' | 'zero-many' type ErRelationship (line 44) | interface ErRelationship { type PositionedErDiagram (line 61) | interface PositionedErDiagram { type PositionedErEntity (line 68) | interface PositionedErEntity { type PositionedErRelationship (line 82) | interface PositionedErRelationship { FILE: src/index.ts function detectDiagramType (line 54) | function detectDiagramType(text: string): 'flowchart' | 'sequence' | 'cl... function buildColors (line 71) | function buildColors(options: RenderOptions): DiagramColors { function renderMermaidSVG (line 111) | function renderMermaidSVG( function renderMermaidSVGAsync (line 162) | async function renderMermaidSVGAsync( FILE: src/layout-engine.ts constant DEFAULTS (line 42) | const DEFAULTS = { function directionToElk (line 52) | function directionToElk(dir: MermaidGraph['direction']): string { function estimateNodeSize (line 67) | function estimateNodeSize(id: string, label: string, shape: string): { w... type ElkGraphNode (line 115) | interface ElkGraphNode extends ElkNode { type HierarchicalEdgeInfo (line 124) | interface HierarchicalEdgeInfo { function mermaidToElk (line 138) | function mermaidToElk( function subgraphToElk (line 335) | function subgraphToElk( function collectSubgraphNodeIds (line 439) | function collectSubgraphNodeIds(sg: MermaidSubgraph, nodeIds: Set): v... function resolveNodeStyle (line 963) | function resolveNodeStyle( function resolveEdgeStyle (line 991) | function resolveEdgeStyle( function alignLayerNodes (line 1031) | function alignLayerNodes( function findGroupsContainingPoint (line 1165) | function findGroupsContainingPoint( function adjustJunctionForGroups (line 1183) | function adjustJunctionForGroups( function bundleEdgePaths (line 1228) | function bundleEdgePaths( function layoutGraphSync (line 1402) | function layoutGraphSync( function convertToElkFormat (line 1415) | function convertToElkFormat( FILE: src/multiline-utils.ts function normalizeBrTags (line 16) | function normalizeBrTags(label: string): string { function stripFormattingTags (line 33) | function stripFormattingTags(text: string): string { function escapeXml (line 40) | function escapeXml(text: string): string { type StyledSegment (line 53) | interface StyledSegment { constant FORMAT_TAG_REGEX (line 62) | const FORMAT_TAG_REGEX = /<(\/)?(?:(b|strong)|(i|em)|(u)|(s|del))\s*>/gi function parseInlineFormatting (line 68) | function parseInlineFormatting(line: string): StyledSegment[] { constant HAS_FORMAT_TAGS (line 101) | const HAS_FORMAT_TAGS = /<\/?(?:b|strong|i|em|u|s|del)\s*>/i function renderLineContent (line 107) | function renderLineContent(line: string): string { function renderMultilineText (line 154) | function renderMultilineText( function renderMultilineTextWithBackground (line 199) | function renderMultilineTextWithBackground( FILE: src/parser.ts function parseMermaid (line 20) | function parseMermaid(text: string): MermaidGraph { function parseFlowchart (line 43) | function parseFlowchart(lines: string[]): MermaidGraph { function parseStateDiagram (line 182) | function parseStateDiagram(lines: string[]): MermaidGraph { function registerStateNode (line 323) | function registerStateNode( function ensureStateNode (line 341) | function ensureStateNode( function parseStyleProps (line 364) | function parseStyleProps(propsStr: string): Record { constant ARROW_REGEX (line 399) | const ARROW_REGEX = /^(<)?(-->|-.->|==>|---|-\.-|===)(?:\|([^|]*)\|)?/ constant TEXT_ARROW_REGEX (line 407) | const TEXT_ARROW_REGEX = /^(<)?(--|-\.|==)\s+(.+?)\s+(-->|---|\.\->|-\.\... constant NODE_PATTERNS (line 413) | const NODE_PATTERNS: Array<{ regex: RegExp; shape: NodeShape }> = [ constant BARE_NODE_REGEX (line 440) | const BARE_NODE_REGEX = /^([\w-]+)/ constant CLASS_SHORTHAND_REGEX (line 443) | const CLASS_SHORTHAND_REGEX = /^:::([\w][\w-]*)/ function parseEdgeLine (line 450) | function parseEdgeLine( type ConsumedNodeGroup (line 518) | interface ConsumedNodeGroup { function consumeNodeGroup (line 527) | function consumeNodeGroup( type ConsumedNode (line 550) | interface ConsumedNode { function consumeNode (line 561) | function consumeNode( function registerNode (line 608) | function registerNode( function trackInSubgraph (line 621) | function trackInSubgraph(subgraphStack: MermaidSubgraph[], nodeId: strin... function arrowStyleFromOp (line 631) | function arrowStyleFromOp(op: string): EdgeStyle { function textArrowStyleFromOps (line 641) | function textArrowStyleFromOps(openOp: string, closeOp: string): EdgeSty... FILE: src/renderer.ts function renderSvg (line 35) | function renderSvg( function arrowMarkerDefs (line 98) | function arrowMarkerDefs(): string { function arrowMarkerDefsForColor (line 121) | function arrowMarkerDefsForColor(color: string): string { function markerSuffix (line 141) | function markerSuffix(color: string): string { function renderGroup (line 149) | function renderGroup(group: PositionedGroup, font: string): string { function renderEdge (line 197) | function renderEdge(edge: PositionedEdge): string { function pointsToPolylinePath (line 238) | function pointsToPolylinePath(points: Point[]): string { function renderEdgeLabel (line 242) | function renderEdgeLabel(edge: PositionedEdge, font: string): string { function edgeMidpoint (line 276) | function edgeMidpoint(points: Point[]): Point { function dist (line 303) | function dist(a: Point, b: Point): number { function renderNode (line 319) | function renderNode(node: PositionedNode, font: string): string { function renderNodeShape (line 338) | function renderNodeShape(node: PositionedNode): string { function renderRect (line 383) | function renderRect(x: number, y: number, w: number, h: number, fill: st... function renderRoundedRect (line 390) | function renderRoundedRect(x: number, y: number, w: number, h: number, f... function renderStadium (line 397) | function renderStadium(x: number, y: number, w: number, h: number, fill:... function renderCircle (line 405) | function renderCircle(x: number, y: number, w: number, h: number, fill: ... function renderDiamond (line 415) | function renderDiamond(x: number, y: number, w: number, h: number, fill:... function renderSubroutine (line 435) | function renderSubroutine(x: number, y: number, w: number, h: number, fi... function renderDoubleCircle (line 448) | function renderDoubleCircle(x: number, y: number, w: number, h: number, ... function renderHexagon (line 462) | function renderHexagon(x: number, y: number, w: number, h: number, fill:... function renderCylinder (line 479) | function renderCylinder(x: number, y: number, w: number, h: number, fill... function renderAsymmetric (line 502) | function renderAsymmetric(x: number, y: number, w: number, h: number, fi... function renderTrapezoid (line 516) | function renderTrapezoid(x: number, y: number, w: number, h: number, fil... function renderTrapezoidAlt (line 529) | function renderTrapezoidAlt(x: number, y: number, w: number, h: number, ... function renderStateStart (line 544) | function renderStateStart(x: number, y: number, w: number, h: number): s... function renderStateEnd (line 552) | function renderStateEnd(x: number, y: number, w: number, h: number): str... function renderNodeLabel (line 568) | function renderNodeLabel(node: PositionedNode, font: string): string { function escapeAttr (line 597) | function escapeAttr(value: string): string { FILE: src/sequence/layout.ts constant SEQ (line 19) | const SEQ = { function layoutSequenceDiagram (line 55) | function layoutSequenceDiagram( FILE: src/sequence/parser.ts function parseSequenceDiagram (line 31) | function parseSequenceDiagram(lines: string[]): SequenceDiagram { function ensureActor (line 202) | function ensureActor(diagram: SequenceDiagram, actorIds: Set, id... FILE: src/sequence/renderer.ts function renderSequenceSvg (line 28) | function renderSequenceSvg( function arrowMarkerDefs (line 83) | function arrowMarkerDefs(): string { function renderActor (line 105) | function renderActor(actor: PositionedActor): string { function renderLifeline (line 161) | function renderLifeline(lifeline: Lifeline): string { function renderActivation (line 173) | function renderActivation(activation: Activation): string { function renderMessage (line 185) | function renderMessage(msg: PositionedMessage): string { function renderBlock (line 234) | function renderBlock(block: PositionedBlock): string { function renderNote (line 294) | function renderNote(note: PositionedNote): string { function escapeAttr (line 340) | function escapeAttr(value: string): string { FILE: src/sequence/types.ts type SequenceDiagram (line 9) | interface SequenceDiagram { type Actor (line 20) | interface Actor { type Message (line 27) | interface Message { type Block (line 41) | interface Block { type Note (line 54) | interface Note { type PositionedSequenceDiagram (line 69) | interface PositionedSequenceDiagram { type PositionedActor (line 80) | interface PositionedActor { type Lifeline (line 93) | interface Lifeline { type PositionedMessage (line 100) | interface PositionedMessage { type Activation (line 117) | interface Activation { type PositionedBlock (line 125) | interface PositionedBlock { type PositionedNote (line 136) | interface PositionedNote { FILE: src/shape-clipping.ts function clipEdgeToShape (line 22) | function clipEdgeToShape( function clipToDiamond (line 67) | function clipToDiamond(endpoint: Point, adjacent: Point, node: Positione... function intersectHorizontalRayWithEdge (line 143) | function intersectHorizontalRayWithEdge(rayY: number, p1: Point, p2: Poi... function intersectVerticalRayWithEdge (line 164) | function intersectVerticalRayWithEdge(rayX: number, p1: Point, p2: Point... FILE: src/styles.ts function estimateTextWidth (line 13) | function estimateTextWidth(text: string, fontSize: number, fontWeight: n... function estimateMonoTextWidth (line 20) | function estimateMonoTextWidth(text: string, fontSize: number): number { constant MONO_FONT (line 29) | const MONO_FONT = "'JetBrains Mono'" as const constant MONO_FONT_STACK (line 32) | const MONO_FONT_STACK = `${MONO_FONT}, 'SF Mono', 'Fira Code', ui-monosp... constant FONT_SIZES (line 35) | const FONT_SIZES = { constant FONT_WEIGHTS (line 45) | const FONT_WEIGHTS = { constant GROUP_HEADER_CONTENT_PAD (line 58) | const GROUP_HEADER_CONTENT_PAD = 12 constant NODE_PADDING (line 61) | const NODE_PADDING = { constant STROKE_WIDTHS (line 71) | const STROKE_WIDTHS = { constant TEXT_BASELINE_SHIFT (line 89) | const TEXT_BASELINE_SHIFT = '0.35em' as const constant ARROW_HEAD (line 92) | const ARROW_HEAD = { FILE: src/text-metrics.ts constant NARROW_CHARS (line 17) | const NARROW_CHARS = new Set(['i', 'l', 't', 'f', 'j', 'I', '1', '!', '|... constant WIDE_CHARS (line 22) | const WIDE_CHARS = new Set(['W', 'M', 'w', 'm', '@', '%']) constant VERY_WIDE_CHARS (line 27) | const VERY_WIDE_CHARS = new Set(['W', 'M']) constant SEMI_NARROW_PUNCT (line 33) | const SEMI_NARROW_PUNCT = new Set(['(', ')', '[', ']', '{', '}', '/', '\... function isCombiningMark (line 38) | function isCombiningMark(code: number): boolean { function isFullwidth (line 57) | function isFullwidth(code: number): boolean { constant EMOJI_REGEX (line 104) | const EMOJI_REGEX = /\p{Emoji_Presentation}|\p{Extended_Pictographic}/u function isEmoji (line 109) | function isEmoji(char: string): boolean { function getCharWidth (line 126) | function getCharWidth(char: string): number { function measureTextWidth (line 175) | function measureTextWidth(text: string, fontSize: number, fontWeight: nu... constant LINE_HEIGHT_RATIO (line 199) | const LINE_HEIGHT_RATIO = 1.3 type MultilineMetrics (line 202) | interface MultilineMetrics { function measureMultilineText (line 224) | function measureMultilineText( FILE: src/theme.ts type DiagramColors (line 26) | interface DiagramColors { constant DEFAULTS (line 51) | const DEFAULTS: Readonly<{ bg: string; fg: string }> = { constant MIX (line 64) | const MIX = { constant THEMES (line 96) | const THEMES: Record = { type ThemeName (line 157) | type ThemeName = keyof typeof THEMES type ShikiThemeLike (line 170) | interface ShikiThemeLike { function fromShikiTheme (line 202) | function fromShikiTheme(theme: ShikiThemeLike): DiagramColors { function buildStyleBlock (line 238) | function buildStyleBlock(font: string, hasMonoFont: boolean): string { function svgOpenTag (line 281) | function svgOpenTag( FILE: src/types.ts type MermaidGraph (line 5) | interface MermaidGraph { type Direction (line 19) | type Direction = 'TD' | 'TB' | 'LR' | 'BT' | 'RL' type MermaidNode (line 21) | interface MermaidNode { type NodeShape (line 27) | type NodeShape = type MermaidEdge (line 46) | interface MermaidEdge { type EdgeStyle (line 57) | type EdgeStyle = 'solid' | 'dotted' | 'thick' type MermaidSubgraph (line 59) | interface MermaidSubgraph { type PositionedGraph (line 72) | interface PositionedGraph { type PositionedNode (line 80) | interface PositionedNode { type PositionedEdge (line 92) | interface PositionedEdge { type Point (line 107) | interface Point { type PositionedGroup (line 112) | interface PositionedGroup { type RenderOptions (line 131) | interface RenderOptions { FILE: src/xychart/colors.ts constant CHART_ACCENT_FALLBACK (line 13) | const CHART_ACCENT_FALLBACK = '#3b82f6' // blue-500 function hexToHsl (line 19) | function hexToHsl(hex: string): [number, number, number] { function hslToHex (line 42) | function hslToHex(h: number, s: number, l: number): string { function hexToRgb (line 66) | function hexToRgb(hex: string): [number, number, number] { function rgbToHex (line 75) | function rgbToHex(r: number, g: number, b: number): string { function isValidHex (line 85) | function isValidHex(color: string): boolean { function isDarkBackground (line 92) | function isDarkBackground(bgHex: string): boolean { function mixHexColors (line 101) | function mixHexColors(bgHex: string, fgHex: string, ratio: number): stri... function getSeriesColor (line 118) | function getSeriesColor(index: number, accentColor: string, bgColor?: st... FILE: src/xychart/layout.ts function layoutXYChart (line 47) | function layoutXYChart( function layoutVertical (line 59) | function layoutVertical(chart: XYChart): PositionedXYChart { function layoutHorizontal (line 154) | function layoutHorizontal(chart: XYChart): PositionedXYChart { function getDataCount (line 297) | function getDataCount(chart: XYChart): number { function getCategoryLabels (line 306) | function getCategoryLabels(chart: XYChart, count: number): string[] { function buildXTicks (line 316) | function buildXTicks(chart: XYChart, xScale: (i: number) => number, axis... function layoutBars (line 328) | function layoutBars( function layoutLines (line 371) | function layoutLines(chart: XYChart, xScale: (i: number) => number, ySca... function niceTickValues (line 386) | function niceTickValues(min: number, max: number): number[] { function formatTickValue (line 408) | function formatTickValue(v: number): string { function buildLegendItems (line 415) | function buildLegendItems(chart: XYChart, centerX: number, y: number, co... FILE: src/xychart/parser.ts function parseXYChart (line 24) | function parseXYChart(lines: string[]): XYChart { function parseNumericArray (line 113) | function parseNumericArray(str: string): number[] { FILE: src/xychart/renderer.ts constant CHART_FONT (line 30) | const CHART_FONT = { constant TIP (line 44) | const TIP = { function renderXYChartSvg (line 58) | function renderXYChartSvg( function chartStyles (line 289) | function chartStyles(chart: PositionedXYChart, interactive: boolean, spa... function roundedTopBarPath (line 349) | function roundedTopBarPath(x: number, y: number, w: number, h: number, r... function roundedRightBarPath (line 371) | function roundedRightBarPath(x: number, y: number, w: number, h: number,... function smoothCurvePath (line 401) | function smoothCurvePath(points: Array<{ x: number; y: number }>): string { function multiTooltipAbove (line 471) | function multiTooltipAbove(cx: number, topY: number, label: string, entr... function tooltipAbove (line 511) | function tooltipAbove(cx: number, topY: number, text: string): string { function formatTipValue (line 532) | function formatTipValue(v: number): string { function r (line 537) | function r(n: number): string { function escapeXml (line 541) | function escapeXml(text: string): string { FILE: src/xychart/types.ts type XYChart (line 10) | interface XYChart { type XYAxis (line 24) | interface XYAxis { type XYChartSeries (line 34) | interface XYChartSeries { type PositionedXYChart (line 45) | interface PositionedXYChart { type LegendItem (line 68) | interface LegendItem { type PositionedTitle (line 82) | interface PositionedTitle { type PositionedAxis (line 88) | interface PositionedAxis { type AxisTick (line 97) | interface AxisTick { type PlotArea (line 113) | interface PlotArea { type PositionedBar (line 120) | interface PositionedBar { type PositionedLine (line 136) | interface PositionedLine { type GridLine (line 145) | interface GridLine { FILE: xychart-samples-data.ts type Sample (line 9) | interface Sample { FILE: xychart-test.ts function escapeHtml (line 16) | function escapeHtml(text: string): string { function formatDescription (line 24) | function formatDescription(text: string): string { constant THEME_LABELS (line 28) | const THEME_LABELS: Record = { function generateHtml (line 45) | async function generateHtml(): Promise {