diff --git a/docs/adding-new-shape.md b/docs/adding-new-shape.md index b409d7c806..64a177237a 100644 --- a/docs/adding-new-shape.md +++ b/docs/adding-new-shape.md @@ -101,7 +101,7 @@ To add a new shape: - **Example**: ```typescript - import { Node, RenderOptions } from '../../types.d.ts'; + import { Node, RenderOptions } from '../../types.ts'; export const myNewShape = async ( parent: SVGAElement, @@ -117,7 +117,7 @@ To add a new shape: ### 2. Register the Shape -- **Register the shape**: Add your shape to the `shapes` object in the main shapes module. This allows your shape to be recognized and used within the system. +- **Register the shape**: Add your shape to the `shapes` object in the [main shapes module](../rendering-util/rendering-elements/shapes.ts). This allows your shape to be recognized and used within the system. - **Example**: @@ -126,9 +126,14 @@ To add a new shape: const shapes = { ..., - 'my-new-shape': myNewShape, - // Shortened alias (if any). - 'm-nsh': myNewShape + { + semanticName: 'My Shape', + name: 'Shape Name', + shortName: '', + description: '', + aliases: ['', '', '', ''], + handler: myNewShape, + }, }; ``` diff --git a/packages/mermaid/src/docs/adding-new-shape.md b/packages/mermaid/src/docs/adding-new-shape.md index b04d5f7941..8ba5d083ca 100644 --- a/packages/mermaid/src/docs/adding-new-shape.md +++ b/packages/mermaid/src/docs/adding-new-shape.md @@ -95,7 +95,7 @@ To add a new shape: - **Example**: ```typescript - import { Node, RenderOptions } from '../../types.d.ts'; + import { Node, RenderOptions } from '../../types.ts'; export const myNewShape = async ( parent: SVGAElement, @@ -111,7 +111,7 @@ To add a new shape: ### 2. Register the Shape -- **Register the shape**: Add your shape to the `shapes` object in the main shapes module. This allows your shape to be recognized and used within the system. +- **Register the shape**: Add your shape to the `shapes` object in the [main shapes module](../rendering-util/rendering-elements/shapes.ts). This allows your shape to be recognized and used within the system. - **Example**: @@ -120,9 +120,14 @@ To add a new shape: const shapes = { ..., - 'my-new-shape': myNewShape, - // Shortened alias (if any). - 'm-nsh': myNewShape + { + semanticName: 'My Shape', + name: 'Shape Name', + shortName: '', + description: '', + aliases: ['', '', '', ''], + handler: myNewShape, + }, }; ``` diff --git a/packages/mermaid/src/rendering-util/rendering-elements/nodes.js b/packages/mermaid/src/rendering-util/rendering-elements/nodes.js index 55deb1b783..2d2b5008f1 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/nodes.js +++ b/packages/mermaid/src/rendering-util/rendering-elements/nodes.js @@ -1,305 +1,5 @@ import { log } from '../../logger.js'; -import { state } from './shapes/state.ts'; -import { roundedRect } from './shapes/roundedRect.ts'; -import { squareRect } from './shapes/squareRect.ts'; -import { stateStart } from './shapes/stateStart.ts'; -import { stateEnd } from './shapes/stateEnd.ts'; -import { forkJoin } from './shapes/forkJoin.ts'; -import { choice } from './shapes/choice.ts'; -import { note } from './shapes/note.ts'; -import { stadium } from './shapes/stadium.js'; -import { rectWithTitle } from './shapes/rectWithTitle.js'; -import { subroutine } from './shapes/subroutine.js'; -import { cylinder } from './shapes/cylinder.js'; -import { circle } from './shapes/circle.js'; -import { doublecircle } from './shapes/doubleCircle.js'; -import { rect_left_inv_arrow } from './shapes/rectLeftInvArrow.js'; -import { question } from './shapes/question.js'; -import { hexagon } from './shapes/hexagon.js'; -import { text } from './shapes/text.js'; -import { card } from './shapes/card.js'; -import { shadedProcess } from './shapes/shadedProcess.js'; -import { anchor } from './shapes/anchor.js'; -import { lean_right } from './shapes/leanRight.js'; -import { lean_left } from './shapes/leanLeft.js'; -import { trapezoid } from './shapes/trapezoid.js'; -import { inv_trapezoid } from './shapes/invertedTrapezoid.js'; -import { labelRect } from './shapes/labelRect.js'; -import { triangle } from './shapes/triangle.js'; -import { halfRoundedRectangle } from './shapes/halfRoundedRectangle.js'; -import { curvedTrapezoid } from './shapes/curvedTrapezoid.js'; -import { slopedRect } from './shapes/slopedRect.js'; -import { bowTieRect } from './shapes/bowTieRect.js'; -import { dividedRectangle } from './shapes/dividedRect.js'; -import { crossedCircle } from './shapes/crossedCircle.js'; -import { waveRectangle } from './shapes/waveRectangle.js'; -import { tiltedCylinder } from './shapes/tiltedCylinder.js'; -import { trapezoidalPentagon } from './shapes/trapezoidalPentagon.js'; -import { flippedTriangle } from './shapes/flippedTriangle.js'; -import { hourglass } from './shapes/hourglass.js'; -import { taggedRect } from './shapes/taggedRect.js'; -import { multiRect } from './shapes/multiRect.js'; -import { linedCylinder } from './shapes/linedCylinder.js'; -import { waveEdgedRectangle } from './shapes/waveEdgedRectangle.js'; -import { lightningBolt } from './shapes/lightningBolt.js'; -import { filledCircle } from './shapes/filledCircle.js'; -import { multiWaveEdgedRectangle } from './shapes/multiWaveEdgedRectangle.js'; -import { windowPane } from './shapes/windowPane.js'; -import { linedWaveEdgedRect } from './shapes/linedWaveEdgedRect.js'; -import { taggedWaveEdgedRectangle } from './shapes/taggedWaveEdgedRectangle.js'; -import { curlyBraceLeft } from './shapes/curlyBraceLeft.js'; -import { curlyBraceRight } from './shapes/curlyBraceRight.js'; -import { curlyBraces } from './shapes/curlyBraces.js'; -import { iconSquare } from './shapes/iconSquare.js'; -import { iconCircle } from './shapes/iconCircle.js'; -import { icon } from './shapes/icon.js'; -import { imageSquare } from './shapes/imageSquare.js'; -import { iconRounded } from './shapes/iconRounded.js'; - -//Use these names as the left side to render shapes. -export const shapes = { - // States - state, - stateStart, - stateEnd, - forkJoin, - choice, - note, - - // Rectangles - rectWithTitle, - roundedRect, - squareRect, - - // Rectangle with alias: 'process', 'rect', 'proc', 'rectangle' - rectangle: squareRect, - rect: squareRect, - process: squareRect, - proc: squareRect, - - // Rounded Rectangle with alias: 'event', 'rounded' - rounded: roundedRect, - event: roundedRect, - - // Stadium with alias: 'terminal','pill', 'stadium' - stadium, - pill: stadium, - terminal: stadium, - - // Subprocess with alias: 'fr-rect', 'subproc', 'subprocess', 'framed-rectangle', 'subroutine' - subroutine, - 'framed-rectangle': subroutine, - 'fr-rect': subroutine, - subprocess: subroutine, - subproc: subroutine, - - // Cylinder with alias: 'db', 'database', 'cylinder', 'cyl' - cylinder, - db: cylinder, - cyl: cylinder, - database: cylinder, - - // Diamond with alias: 'diam', 'decision', 'diamond' - question, - diam: question, - diamond: question, - decision: question, - - // Hexagon with alias: 'hex', 'hexagon', 'prepare' - hexagon, - hex: hexagon, - prepare: hexagon, - - // Lean Right with alias: 'lean-r', 'lean-right', 'in-out' - lean_right, // used in old syntax for flowchart - 'lean-r': lean_right, - 'lean-right': lean_right, - 'in-out': lean_right, - - // Lean Left with alias: 'lean-l', 'lean-left', 'out-in' - lean_left, // used in old syntax for flowchart - 'lean-l': lean_left, - 'lean-left': lean_left, - 'out-in': lean_left, - - // Trapezoid with alias: 'trap-b', 'trapezoid-bottom', 'priority' - trapezoid, // used in old syntax for flowchart - 'trap-b': trapezoid, - 'trapezoid-bottom': trapezoid, - priority: trapezoid, - - // Inverted Trapezoid with alias: 'inv-trapezoid', 'trapezoid-top', 'trap-t', 'manual' - inv_trapezoid, // used in old syntax for flowchart - 'inv-trapezoid': inv_trapezoid, - 'trapezoid-top': inv_trapezoid, - 'trap-t': inv_trapezoid, - manual: inv_trapezoid, - - // Double Circle with alias: 'dbl-circ', 'double-circle' - doublecircle, // used in old syntax for flowchart - 'dbl-circ': doublecircle, - 'double-circle': doublecircle, - - // circle with alias: 'circ', 'circle' - circle, - circ: circle, - - // Rect Left Inv Arrow with alias: 'odd', 'rect-left-inv-arrow' - rect_left_inv_arrow, - odd: rect_left_inv_arrow, - - // Notched Rectangle with alias: 'notched-rectangle', 'notch-rect', 'card' - card, - 'notched-rectangle': card, - 'notch-rect': card, - - // Lined rectangle with alias: 'lin-rect', 'lined-rectangle', 'lin-proc', lined-process', 'shaded-process' - 'lined-rectangle': shadedProcess, - 'lin-rect': shadedProcess, - 'lin-proc': shadedProcess, - 'lined-process': shadedProcess, - 'shaded-process': shadedProcess, - - // Small circle with alias: 'sm-circ', 'small-circle', 'start' - 'small-circle': stateStart, - 'sm-circ': stateStart, - start: stateStart, - - // framed circle with alias: 'stop', 'framed-circle', 'fr-circ' - stop: stateEnd, - 'framed-circle': stateEnd, - 'fr-circ': stateEnd, - - // fork with alias: 'join', 'fork' - join: forkJoin, - fork: forkJoin, - - // comment with alias: 'comment', 'brace-l' - comment: curlyBraceLeft, - 'brace-l': curlyBraceLeft, - - // lightening bolt with alias: 'bolt', 'com-link', 'lightning-bolt' - bolt: lightningBolt, - 'com-link': lightningBolt, - 'lightning-bolt': lightningBolt, - - // document with alias: 'doc', 'document' - doc: waveEdgedRectangle, - document: waveEdgedRectangle, - - // delay with alias: 'delay', 'half-rounded-rectangle' - delay: halfRoundedRectangle, - 'half-rounded-rectangle': halfRoundedRectangle, - - // horizontal cylinder with alias: 'h-cyl', 'das', 'horizontal-cylinder' - 'horizontal-cylinder': tiltedCylinder, - 'h-cyl': tiltedCylinder, - das: tiltedCylinder, - - // lined cylinder with alias: 'lin-cyl', 'lined-cylinder', 'disk' - 'lined-cylinder': linedCylinder, - 'lin-cyl': linedCylinder, - disk: linedCylinder, - - // curved trapezoid with alias: 'curv-trap', 'curved-trapezoid', 'display' - 'curved-trapezoid': curvedTrapezoid, - 'curv-trap': curvedTrapezoid, - display: curvedTrapezoid, - - // divided rectangle with alias: 'div-rect', 'divided-rectangle', 'div-proc', 'divided-process' - 'divided-rectangle': dividedRectangle, - 'div-rect': dividedRectangle, - 'div-proc': dividedRectangle, - 'divided-process': dividedRectangle, - - // triangle with alias: 'tri', 'triangle', 'extract' - triangle, - tri: triangle, - extract: triangle, - - // window pane with alias: 'window-pane', 'win-pane', 'internal-storage' - 'window-pane': windowPane, - 'win-pane': windowPane, - 'internal-storage': windowPane, - - // filled circle with alias: 'f-circ', 'filled-circle', 'junction' - 'f-circ': filledCircle, - junction: filledCircle, - 'filled-circle': filledCircle, - - // lined document with alias: 'lin-doc', 'lined-document' - 'lin-doc': linedWaveEdgedRect, - 'lined-document': linedWaveEdgedRect, - - // notched pentagon with alias: 'notch-pent', 'notched-pentagon', 'loop-limit' - 'notched-pentagon': trapezoidalPentagon, - 'notch-pent': trapezoidalPentagon, - 'loop-limit': trapezoidalPentagon, - - // flipped triangle with alias: 'flip-tri', 'flipped-triangle', 'manual-file' - 'flipped-triangle': flippedTriangle, - 'flip-tri': flippedTriangle, - 'manual-file': flippedTriangle, - - // sloped rectangle with alias: 'sl-rect', 'sloped-rectangle', 'manual-input' - 'sloped-rectangle': slopedRect, - 'sl-rect': slopedRect, - 'manual-input': slopedRect, - - // documents with alias: 'docs', 'documents', 'st-doc', 'stacked-document' - docs: multiWaveEdgedRectangle, - documents: multiWaveEdgedRectangle, - 'st-doc': multiWaveEdgedRectangle, - 'stacked-document': multiWaveEdgedRectangle, - - // 'processes' with alias: 'procs', 'processes', 'st-rect', 'stacked-rectangle' - processes: multiRect, - procs: multiRect, - 'stacked-rectangle': multiRect, - 'st-rect': multiRect, - - // flag with alias: 'flag', 'paper-tape' - flag: waveRectangle, - 'paper-tape': waveRectangle, - - // bow tie rectangle with alias: 'bow-rect', 'bow-tie-rectangle', 'stored-data' - 'bow-tie-rectangle': bowTieRect, - 'bow-rect': bowTieRect, - 'stored-data': bowTieRect, - - // crossed circle with alias: 'cross-circ', 'crossed-circle', 'summary' - 'crossed-circle': crossedCircle, - 'cross-circ': crossedCircle, - summary: crossedCircle, - - // tagged document with alias: 'tag-doc', 'tagged-document' - 'tag-doc': taggedWaveEdgedRectangle, - 'tagged-document': taggedWaveEdgedRectangle, - - // tagged rectangle with alias: 'tag-rect', 'tagged-rectangle', 'tag-proc', 'tagged-process' - 'tag-rect': taggedRect, - 'tagged-rectangle': taggedRect, - 'tag-proc': taggedRect, - 'tagged-process': taggedRect, - - // hourglass with alias: 'hourglass', 'collate' - hourglass, - collate: hourglass, - - text, - anchor, - - brace: curlyBraceLeft, - - labelRect, - 'brace-r': curlyBraceRight, - braces: curlyBraces, - iconSquare, - iconCircle, - icon, - iconRounded, - imageSquare, -}; +import { shapes } from './shapes.js'; const nodeElems = new Map(); @@ -307,8 +7,6 @@ export const insertNode = async (elem, node, renderOptions) => { let newEl; let el; - // console.log("node is ", node.icon, node.shape) - //special check for rect shape (with or without rounded corners) if (node.shape === 'rect') { if (node.rx && node.ry) { @@ -318,7 +16,9 @@ export const insertNode = async (elem, node, renderOptions) => { } } - if (!shapes[node.shape]) { + const shapeHandler = shapes[node.shape]; + + if (!shapeHandler) { throw new Error(`No such shape: ${node.shape}. Please check your syntax.`); } @@ -331,9 +31,9 @@ export const insertNode = async (elem, node, renderOptions) => { target = node.linkTarget || '_blank'; } newEl = elem.insert('svg:a').attr('xlink:href', node.link).attr('target', target); - el = await shapes[node.shape](newEl, node, renderOptions); + el = await shapeHandler(newEl, node, renderOptions); } else { - el = await shapes[node.shape](elem, node, renderOptions); + el = await shapeHandler(elem, node, renderOptions); newEl = el; } if (node.tooltip) { @@ -347,9 +47,11 @@ export const insertNode = async (elem, node, renderOptions) => { } return newEl; }; + export const setNodeElem = (elem, node) => { nodeElems.set(node.id, elem); }; + export const clear = () => { nodeElems.clear(); }; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/nodes.spec.js b/packages/mermaid/src/rendering-util/rendering-elements/nodes.spec.ts similarity index 99% rename from packages/mermaid/src/rendering-util/rendering-elements/nodes.spec.js rename to packages/mermaid/src/rendering-util/rendering-elements/nodes.spec.ts index bb5287cac8..a7a7691e5d 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/nodes.spec.js +++ b/packages/mermaid/src/rendering-util/rendering-elements/nodes.spec.ts @@ -1,5 +1,5 @@ -import exp from 'constants'; -import { shapes } from './nodes.js'; +import { shapes } from './shapes.js'; +import { describe, it, expect } from 'vitest'; describe('Test Alias for shapes', function () { // for each shape in docs/syntax/flowchart.md, along with its semantic name, short name, and alias name, add a test case diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes.ts new file mode 100644 index 0000000000..e2e8d42363 --- /dev/null +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes.ts @@ -0,0 +1,475 @@ +import type { Node, ShapeRenderOptions } from '../types.js'; +import { anchor } from './shapes/anchor.js'; +import { bowTieRect } from './shapes/bowTieRect.js'; +import { card } from './shapes/card.js'; +import { choice } from './shapes/choice.js'; +import { circle } from './shapes/circle.js'; +import { crossedCircle } from './shapes/crossedCircle.js'; +import { curlyBraceLeft } from './shapes/curlyBraceLeft.js'; +import { curlyBraceRight } from './shapes/curlyBraceRight.js'; +import { curlyBraces } from './shapes/curlyBraces.js'; +import { curvedTrapezoid } from './shapes/curvedTrapezoid.js'; +import { cylinder } from './shapes/cylinder.js'; +import { dividedRectangle } from './shapes/dividedRect.js'; +import { doublecircle } from './shapes/doubleCircle.js'; +import { filledCircle } from './shapes/filledCircle.js'; +import { flippedTriangle } from './shapes/flippedTriangle.js'; +import { forkJoin } from './shapes/forkJoin.js'; +import { halfRoundedRectangle } from './shapes/halfRoundedRectangle.js'; +import { hexagon } from './shapes/hexagon.js'; +import { hourglass } from './shapes/hourglass.js'; +import { icon } from './shapes/icon.js'; +import { iconCircle } from './shapes/iconCircle.js'; +import { iconRounded } from './shapes/iconRounded.js'; +import { iconSquare } from './shapes/iconSquare.js'; +import { imageSquare } from './shapes/imageSquare.js'; +import { inv_trapezoid } from './shapes/invertedTrapezoid.js'; +import { labelRect } from './shapes/labelRect.js'; +import { lean_left } from './shapes/leanLeft.js'; +import { lean_right } from './shapes/leanRight.js'; +import { lightningBolt } from './shapes/lightningBolt.js'; +import { linedCylinder } from './shapes/linedCylinder.js'; +import { linedWaveEdgedRect } from './shapes/linedWaveEdgedRect.js'; +import { multiRect } from './shapes/multiRect.js'; +import { multiWaveEdgedRectangle } from './shapes/multiWaveEdgedRectangle.js'; +import { note } from './shapes/note.js'; +import { question } from './shapes/question.js'; +import { rect_left_inv_arrow } from './shapes/rectLeftInvArrow.js'; +import { rectWithTitle } from './shapes/rectWithTitle.js'; +import { roundedRect } from './shapes/roundedRect.js'; +import { shadedProcess } from './shapes/shadedProcess.js'; +import { slopedRect } from './shapes/slopedRect.js'; +import { squareRect } from './shapes/squareRect.js'; +import { stadium } from './shapes/stadium.js'; +import { state } from './shapes/state.js'; +import { stateEnd } from './shapes/stateEnd.js'; +import { stateStart } from './shapes/stateStart.js'; +import { subroutine } from './shapes/subroutine.js'; +import { taggedRect } from './shapes/taggedRect.js'; +import { taggedWaveEdgedRectangle } from './shapes/taggedWaveEdgedRectangle.js'; +import { text } from './shapes/text.js'; +import { tiltedCylinder } from './shapes/tiltedCylinder.js'; +import { trapezoid } from './shapes/trapezoid.js'; +import { trapezoidalPentagon } from './shapes/trapezoidalPentagon.js'; +import { triangle } from './shapes/triangle.js'; +import { waveEdgedRectangle } from './shapes/waveEdgedRectangle.js'; +import { waveRectangle } from './shapes/waveRectangle.js'; +import { windowPane } from './shapes/windowPane.js'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type ShapeHandler = (parent: any, node: Node, options: ShapeRenderOptions) => unknown; + +export interface ShapeDefinition { + semanticName: string; + name: string; + shortName: string; + description: string; + aliases?: string[]; + legacyAliases?: string[]; + handler: ShapeHandler; +} + +export const shapesDefs: ShapeDefinition[] = [ + { + semanticName: 'Process', + name: 'Rectangle', + shortName: 'rect', + description: 'Standard process shape', + aliases: ['proc', 'process', 'rectangle'], + handler: squareRect, + }, + { + semanticName: 'Event', + name: 'Rounded Rectangle', + shortName: 'rounded', + description: 'Represents an event', + aliases: ['event'], + handler: roundedRect, + }, + { + semanticName: 'Terminal Point', + name: 'Stadium', + shortName: 'stadium', + description: 'Terminal point', + aliases: ['terminal', 'pill'], + handler: stadium, + }, + { + semanticName: 'Subprocess', + name: 'Framed Rectangle', + shortName: 'fr-rect', + description: 'Subprocess', + aliases: ['subprocess', 'subproc', 'framed-rectangle', 'subroutine'], + handler: subroutine, + }, + { + semanticName: 'Database', + name: 'Cylinder', + shortName: 'cyl', + description: 'Database storage', + aliases: ['db', 'database', 'cylinder'], + handler: cylinder, + }, + { + semanticName: 'Start', + name: 'Circle', + shortName: 'circle', + description: 'Starting point', + aliases: ['circ'], + handler: circle, + }, + { + semanticName: 'Decision', + name: 'Diamond', + shortName: 'diam', + description: 'Decision-making step', + aliases: ['decision', 'diamond', 'question'], + handler: question, + }, + { + semanticName: 'Prepare Conditional', + name: 'Hexagon', + shortName: 'hex', + description: 'Preparation or condition step', + aliases: ['hexagon', 'prepare'], + handler: hexagon, + }, + { + semanticName: 'Data Input/Output', + name: 'Lean Right', + shortName: 'lean-r', + description: 'Represents input or output', + aliases: ['lean-right', 'in-out'], + legacyAliases: ['lean_right'], + handler: lean_right, + }, + { + semanticName: 'Data Input/Output', + name: 'Lean Left', + shortName: 'lean-l', + description: 'Represents output or input', + aliases: ['lean-left', 'out-in'], + legacyAliases: ['lean_left'], + handler: lean_left, + }, + { + semanticName: 'Priority Action', + name: 'Trapezoid Base Bottom', + shortName: 'trap-b', + description: 'Priority action', + aliases: ['priority', 'trapezoid-bottom', 'trapezoid'], + handler: trapezoid, + }, + { + semanticName: 'Manual Operation', + name: 'Trapezoid Base Top', + shortName: 'trap-t', + description: 'Represents a manual task', + aliases: ['manual', 'trapezoid-top', 'inv-trapezoid'], + legacyAliases: ['inv_trapezoid'], + handler: inv_trapezoid, + }, + { + semanticName: 'Stop', + name: 'Double Circle', + shortName: 'dbl-circ', + description: 'Represents a stop point', + aliases: ['double-circle'], + legacyAliases: ['doublecircle'], + handler: doublecircle, + }, + { + semanticName: 'Text Block', + name: 'Text Block', + shortName: 'text', + description: 'Text block', + handler: text, + }, + { + semanticName: 'Card', + name: 'Notched Rectangle', + shortName: 'notch-rect', + description: 'Represents a card', + aliases: ['card', 'notched-rectangle'], + handler: card, + }, + { + semanticName: 'Lined/Shaded Process', + name: 'Lined Rectangle', + shortName: 'lin-rect', + description: 'Lined process shape', + aliases: ['lined-rectangle', 'lined-process', 'lin-proc', 'shaded-process'], + handler: shadedProcess, + }, + { + semanticName: 'Start', + name: 'Small Circle', + shortName: 'sm-circ', + description: 'Small starting point', + aliases: ['start', 'small-circle'], + handler: stateStart, + }, + { + semanticName: 'Stop', + name: 'Framed Circle', + shortName: 'fr-circ', + description: 'Stop point', + aliases: ['stop', 'framed-circle'], + handler: stateEnd, + }, + { + semanticName: 'Fork/Join', + name: 'Filled Rectangle', + shortName: 'fork', + description: 'Fork or join in process flow', + aliases: ['join'], + handler: forkJoin, + }, + { + semanticName: 'Collate', + name: 'Hourglass', + shortName: 'hourglass', + description: 'Represents a collate operation', + aliases: ['hourglass', 'collate'], + handler: hourglass, + }, + { + semanticName: 'Comment', + name: 'Curly Brace', + shortName: 'brace', + description: 'Adds a comment', + aliases: ['comment', 'brace-l'], + handler: curlyBraceLeft, + }, + { + semanticName: 'Comment Right', + name: 'Curly Brace', + shortName: 'brace-r', + description: 'Adds a comment', + handler: curlyBraceRight, + }, + { + semanticName: 'Comment with braces on both sides', + name: 'Curly Braces', + shortName: 'braces', + description: 'Adds a comment', + handler: curlyBraces, + }, + { + semanticName: 'Com Link', + name: 'Lightning Bolt', + shortName: 'bolt', + description: 'Communication link', + aliases: ['com-link', 'lightning-bolt'], + handler: lightningBolt, + }, + { + semanticName: 'Document', + name: 'Document', + shortName: 'doc', + description: 'Represents a document', + aliases: ['doc', 'document'], + handler: waveEdgedRectangle, + }, + { + semanticName: 'Delay', + name: 'Half-Rounded Rectangle', + shortName: 'delay', + description: 'Represents a delay', + aliases: ['half-rounded-rectangle'], + handler: halfRoundedRectangle, + }, + { + semanticName: 'Direct Access Storage', + name: 'Horizontal Cylinder', + shortName: 'h-cyl', + description: 'Direct access storage', + aliases: ['das', 'horizontal-cylinder'], + handler: tiltedCylinder, + }, + { + semanticName: 'Disk Storage', + name: 'Lined Cylinder', + shortName: 'lin-cyl', + description: 'Disk storage', + aliases: ['disk', 'lined-cylinder'], + handler: linedCylinder, + }, + { + semanticName: 'Display', + name: 'Curved Trapezoid', + shortName: 'curv-trap', + description: 'Represents a display', + aliases: ['curved-trapezoid', 'display'], + handler: curvedTrapezoid, + }, + { + semanticName: 'Divided Process', + name: 'Divided Rectangle', + shortName: 'div-rect', + description: 'Divided process shape', + aliases: ['div-proc', 'divided-rectangle', 'divided-process'], + handler: dividedRectangle, + }, + { + semanticName: 'Extract', + name: 'Triangle', + shortName: 'tri', + description: 'Extraction process', + aliases: ['extract', 'triangle'], + handler: triangle, + }, + { + semanticName: 'Internal Storage', + name: 'Window Pane', + shortName: 'win-pane', + description: 'Internal storage', + aliases: ['internal-storage', 'window-pane'], + handler: windowPane, + }, + { + semanticName: 'Junction', + name: 'Filled Circle', + shortName: 'f-circ', + description: 'Junction point', + aliases: ['junction', 'filled-circle'], + handler: filledCircle, + }, + { + semanticName: 'Loop Limit', + name: 'Trapezoidal Pentagon', + shortName: 'notch-pent', + description: 'Loop limit step', + aliases: ['loop-limit', 'notched-pentagon'], + handler: trapezoidalPentagon, + }, + { + semanticName: 'Manual File', + name: 'Flipped Triangle', + shortName: 'flip-tri', + description: 'Manual file operation', + aliases: ['manual-file', 'flipped-triangle'], + handler: flippedTriangle, + }, + { + semanticName: 'Manual Input', + name: 'Sloped Rectangle', + shortName: 'sl-rect', + description: 'Manual input step', + aliases: ['manual-input', 'sloped-rectangle'], + handler: slopedRect, + }, + { + semanticName: 'Multi-Document', + name: 'Stacked Document', + shortName: 'docs', + description: 'Multiple documents', + aliases: ['documents', 'st-doc', 'stacked-document'], + handler: multiWaveEdgedRectangle, + }, + { + semanticName: 'Multi-Process', + name: 'Stacked Rectangle', + shortName: 'st-rect', + description: 'Multiple processes', + aliases: ['procs', 'processes', 'stacked-rectangle'], + handler: multiRect, + }, + { + semanticName: 'Stored Data', + name: 'Bow Tie Rectangle', + shortName: 'bow-rect', + description: 'Stored data', + aliases: ['stored-data', 'bow-tie-rectangle'], + handler: bowTieRect, + }, + { + semanticName: 'Summary', + name: 'Crossed Circle', + shortName: 'cross-circ', + description: 'Summary', + aliases: ['summary', 'crossed-circle'], + handler: crossedCircle, + }, + { + semanticName: 'Tagged Document', + name: 'Tagged Document', + shortName: 'tag-doc', + description: 'Tagged document', + aliases: ['tag-doc', 'tagged-document'], + handler: taggedWaveEdgedRectangle, + }, + { + semanticName: 'Tagged Process', + name: 'Tagged Rectangle', + shortName: 'tag-rect', + description: 'Tagged process', + aliases: ['tagged-rectangle', 'tag-proc', 'tagged-process'], + handler: taggedRect, + }, + { + semanticName: 'Paper Tape', + name: 'Flag', + shortName: 'flag', + description: 'Paper tape', + aliases: ['paper-tape'], + handler: waveRectangle, + }, + { + semanticName: 'Odd', + name: 'Odd', + shortName: 'odd', + description: 'Odd shape', + legacyAliases: ['rect_left_inv_arrow'], + handler: rect_left_inv_arrow, + }, + { + semanticName: 'Lined Document', + name: 'Lined Document', + shortName: 'lin-doc', + description: 'Lined document', + aliases: ['lined-document'], + handler: linedWaveEdgedRect, + }, +]; + +const generateShapeMap = () => { + // These are the shapes that didn't have documentation present + const shapeMap: Record = { + // States + state, + stateStart, + stateEnd, + forkJoin, + choice, + note, + + // Rectangles + rectWithTitle, + roundedRect, + squareRect, + labelRect, + + // Icons + iconSquare, + iconCircle, + icon, + iconRounded, + imageSquare, + + anchor, + }; + + for (const shape of shapesDefs) { + for (const alias of [ + shape.shortName, + ...(shape.aliases ?? []), + ...(shape.legacyAliases ?? []), + ]) { + shapeMap[alias] = shape.handler; + } + } + return shapeMap; +}; + +export const shapes = generateShapeMap(); diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/anchor.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/anchor.ts index 67ba644d37..af2f1cd638 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/anchor.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/anchor.ts @@ -1,7 +1,7 @@ import { log } from '../../../logger.js'; import { updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/bowTieRect.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/bowTieRect.ts index eb7b305eb0..f125b1baec 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/bowTieRect.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/bowTieRect.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/card.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/card.ts index 683122ba68..e0e7681ad6 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/card.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/card.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts index 7ab0d83973..eb08efe2ca 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/crossedCircle.ts @@ -1,7 +1,7 @@ import { log } from '../../../logger.js'; import { getNodeClasses, updateNodeBounds } from './util.js'; import type { SVG } from '../../../diagram-api/types.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; import intersect from '../intersect/index.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts index da8285976a..32c13e0e95 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts index 369b97bb8d..43f5c65ffc 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraces.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraces.ts index 5c2927b9f5..23471b8300 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraces.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curlyBraces.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts index cc51daf589..aa9c414e24 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts @@ -6,7 +6,7 @@ import { generateCirclePoints, } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/dividedRect.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/dividedRect.ts index 7e00952fdc..0fdc79607f 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/dividedRect.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/dividedRect.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/document.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/document.ts index 05b2cfc2dc..9a76047f42 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/document.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/document.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts index fef522e13f..2d53b8bde1 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/filledCircle.ts @@ -1,7 +1,7 @@ import rough from 'roughjs'; import type { SVG } from '../../../diagram-api/types.js'; import { log } from '../../../logger.js'; -import type { Node, ShapeRenderOptions } from '../../types.d.ts'; +import type { Node, ShapeRenderOptions } from '../../types.ts'; import intersect from '../intersect/index.js'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import { getNodeClasses, updateNodeBounds } from './util.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/flippedTriangle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/flippedTriangle.ts index 74eb956b1c..9c3ad7f187 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/flippedTriangle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/flippedTriangle.ts @@ -1,7 +1,7 @@ import { log } from '../../../logger.js'; import { labelHelper, updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; import { createPathFromPoints } from './util.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts index e61f2c4e27..b3aa59d12e 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts @@ -7,7 +7,7 @@ import { generateCirclePoints, } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/hourglass.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/hourglass.ts index 70f3de4ac3..ed2099df3e 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/hourglass.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/hourglass.ts @@ -1,7 +1,7 @@ import { log } from '../../../logger.js'; import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/icon.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/icon.ts index d87efaad10..7dec23984c 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/icon.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/icon.ts @@ -2,7 +2,7 @@ import rough from 'roughjs'; import type { SVG } from '../../../diagram-api/types.js'; import { log } from '../../../logger.js'; import { getIconSVG } from '../../icons.js'; -import type { Node, ShapeRenderOptions } from '../../types.d.ts'; +import type { Node, ShapeRenderOptions } from '../../types.ts'; import intersect from '../intersect/index.js'; import { compileStyles, styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import { labelHelper, updateNodeBounds } from './util.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconCircle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconCircle.ts index 1e18174dff..26d4bd8ef7 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconCircle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconCircle.ts @@ -2,7 +2,7 @@ import rough from 'roughjs'; import type { SVG } from '../../../diagram-api/types.js'; import { log } from '../../../logger.js'; import { getIconSVG } from '../../icons.js'; -import type { Node, ShapeRenderOptions } from '../../types.d.ts'; +import type { Node, ShapeRenderOptions } from '../../types.ts'; import intersect from '../intersect/index.js'; import { compileStyles, styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import { labelHelper, updateNodeBounds } from './util.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconRounded.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconRounded.ts index 8ec7d6ee01..e45ede9252 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconRounded.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconRounded.ts @@ -2,7 +2,7 @@ import rough from 'roughjs'; import type { SVG } from '../../../diagram-api/types.js'; import { log } from '../../../logger.js'; import { getIconSVG } from '../../icons.js'; -import type { Node, ShapeRenderOptions } from '../../types.d.ts'; +import type { Node, ShapeRenderOptions } from '../../types.ts'; import intersect from '../intersect/index.js'; import { compileStyles, styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import { createRoundedRectPathD } from './roundedRectPath.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconSquare.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconSquare.ts index df9e790dfa..358e130bac 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconSquare.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/iconSquare.ts @@ -2,7 +2,7 @@ import rough from 'roughjs'; import type { SVG } from '../../../diagram-api/types.js'; import { log } from '../../../logger.js'; import { getIconSVG } from '../../icons.js'; -import type { Node, ShapeRenderOptions } from '../../types.d.ts'; +import type { Node, ShapeRenderOptions } from '../../types.ts'; import intersect from '../intersect/index.js'; import { compileStyles, styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import { labelHelper, updateNodeBounds } from './util.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/imageSquare.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/imageSquare.ts index 7cb92da0bd..9e867ed42d 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/imageSquare.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/imageSquare.ts @@ -1,7 +1,7 @@ import rough from 'roughjs'; import type { SVG } from '../../../diagram-api/types.js'; import { log } from '../../../logger.js'; -import type { Node, ShapeRenderOptions } from '../../types.d.ts'; +import type { Node, ShapeRenderOptions } from '../../types.ts'; import intersect from '../intersect/index.js'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import { labelHelper, updateNodeBounds } from './util.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts index dc17fc26aa..53b08e3e7b 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/lightningBolt.ts @@ -1,6 +1,6 @@ import { log } from '../../../logger.js'; import { getNodeClasses, updateNodeBounds } from './util.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import type { SVG } from '../../../diagram-api/types.js'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts index 42597e5f62..f3e7058340 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts @@ -5,7 +5,7 @@ import { generateFullSineWavePoints, } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import rough from 'roughjs'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiRect.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiRect.ts index 33a74b1a47..8df2cf5f1f 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiRect.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiRect.ts @@ -1,5 +1,5 @@ import { labelHelper, getNodeClasses, updateNodeBounds, createPathFromPoints } from './util.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; import intersect from '../intersect/index.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts index 4e7496c243..3d7c306ec9 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts @@ -6,7 +6,7 @@ import { generateFullSineWavePoints, } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import rough from 'roughjs'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/shadedProcess.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/shadedProcess.ts index fff4450fd1..3a5ffac58e 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/shadedProcess.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/shadedProcess.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/slopedRect.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/slopedRect.ts index 10c475b0a9..cc5cf89a77 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/slopedRect.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/slopedRect.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedRect.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedRect.ts index fb894d55dd..174f908423 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedRect.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedRect.ts @@ -1,5 +1,5 @@ import { labelHelper, getNodeClasses, updateNodeBounds, createPathFromPoints } from './util.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; import intersect from '../intersect/index.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts index 809e0babbf..c1d8d29555 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts @@ -6,7 +6,7 @@ import { createPathFromPoints, } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import rough from 'roughjs'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/text.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/text.ts index abc5c17fe0..938e99bba3 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/text.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/text.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String } from './handDrawnShapeStyles.js'; export async function text(parent: SVGAElement, node: Node): Promise { diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts index 8d737431ba..f94073c32b 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts @@ -1,5 +1,5 @@ import { labelHelper, getNodeClasses, updateNodeBounds } from './util.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; import intersect from '../intersect/index.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts index 6c0aec9f57..4bb72f1dd4 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts @@ -1,6 +1,6 @@ import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/triangle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/triangle.ts index d93965664d..7eb019f7ce 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/triangle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/triangle.ts @@ -1,7 +1,7 @@ import { log } from '../../../logger.js'; import { labelHelper, updateNodeBounds, getNodeClasses } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; import { createPathFromPoints } from './util.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts index 66839eb146..c24cdd604d 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts @@ -6,7 +6,7 @@ import { createPathFromPoints, } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import rough from 'roughjs'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveRectangle.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveRectangle.ts index 981ef31d33..e435baa8ed 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveRectangle.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/waveRectangle.ts @@ -6,7 +6,7 @@ import { generateFullSineWavePoints, } from './util.js'; import intersect from '../intersect/index.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/windowPane.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/windowPane.ts index 20df8de4a2..2dd53f4a8e 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/windowPane.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/windowPane.ts @@ -1,5 +1,5 @@ import { labelHelper, getNodeClasses, updateNodeBounds } from './util.js'; -import type { Node } from '../../types.d.ts'; +import type { Node } from '../../types.ts'; import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js'; import rough from 'roughjs'; import intersect from '../intersect/index.js';