import React from 'react'
const MARKER_RUNES = /\x02|\x03/g
/**
* Splits a snippet string on \x02/\x03 marker runes and interleaves plain text
* with `<mark>` elements for matched segments.
*
* Respects IV2 — no dangerouslySetInnerHTML, marker-rune split with React text
* nodes only, safe against XSS.
*/
export function highlightSnippet(snippet: string): (string | React.JSX.Element)[] {
const parts = snippet.split(MARKER_RUNES)
const out: (string | React.JSX.Element)[] = []
let inMatch = false
for (const p of parts) {
if (p === '') continue
if (inMatch) out.push(React.createElement('mark', { key: out.length }, p))
else out.push(p)
inMatch = !inMatch
}
return out
}