From c1224e0b747f6e539cc4b5ad0aa27934dd5221be Mon Sep 17 00:00:00 2001 From: Shobhan Karthish <91373483+ShobhanKarthish@users.noreply.github.com> Date: Sat, 5 Sep 2026 09:15:31 +0000 Subject: [PATCH] fix: render SchemaDisplayPath as React nodes Avoid dangerouslySetInnerHTML so path/children cannot inject HTML. Closes #486. --- packages/elements/src/schema-display.tsx | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/elements/src/schema-display.tsx b/packages/elements/src/schema-display.tsx index d3d4c691..990e0c99 100644 --- a/packages/elements/src/schema-display.tsx +++ b/packages/elements/src/schema-display.tsx @@ -97,19 +97,22 @@ export const SchemaDisplayPath = ({ }: SchemaDisplayPathProps) => { const { path } = useContext(SchemaDisplayContext); - // Highlight path parameters - const highlightedPath = path.replaceAll( - /\{([^}]+)\}/g, - '{$1}' - ); + // Highlight path parameters as React nodes (escapes by construction) + const parts = path.split(/(\{[^}]+\})/g); return ( - + + {children ?? + parts.map((part, i) => + /^\{[^}]+\}$/.test(part) ? ( + + {part} + + ) : ( + part + ) + )} + ); };