diff --git a/.changeset/six-planets-rescue.md b/.changeset/six-planets-rescue.md new file mode 100644 index 000000000..8b04a69ed --- /dev/null +++ b/.changeset/six-planets-rescue.md @@ -0,0 +1,5 @@ +--- +'mermaid': patch +--- + +fix: node border style for handdrawn shapes diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts index 99dedd919..16a201e14 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts @@ -104,8 +104,23 @@ export const userNodeOverrides = (node: Node, options: any) => { seed: handDrawnSeed, strokeWidth: stylesMap.get('stroke-width')?.replace('px', '') || 1.3, fillLineDash: [0, 0], + strokeLineDash: getStrokeDashArray(stylesMap.get('stroke-dasharray')), }, options ); return result; }; + +const getStrokeDashArray = (strokeDasharrayStyle?: string) => { + if (!strokeDasharrayStyle) { + return [0, 0]; + } + const dashArray = strokeDasharrayStyle.trim().split(/\s+/).map(Number); + if (dashArray.length === 1) { + const val = isNaN(dashArray[0]) ? 0 : dashArray[0]; + return [val, val]; + } + const first = isNaN(dashArray[0]) ? 0 : dashArray[0]; + const second = isNaN(dashArray[1]) ? 0 : dashArray[1]; + return [first, second]; +};