src/vs/base/browser/dom.ts/safeInnerHtml
export function safeInnerHtml(node: HTMLElement, value: string): void {

	const options = _extInsaneOptions({
		allowedTags: ['a', 'button', 'blockquote', 'code', 'div', 'h1', 'h2', 'h3', 'input', 'label', 'li', 'p', 'pre', 'select', 'small', 'span', 'strong', 'textarea', 'ul', 'ol'],
		allowedAttributes: {
			'a': ['href', 'x-dispatch'],
			'button': ['data-href', 'x-dispatch'],
			'input': ['type', 'placeholder', 'checked', 'required'],
			'label': ['for'],
			'select': ['required'],
			'span': ['data-command', 'role'],
			'textarea': ['name', 'placeholder', 'required'],
		},
		allowedSchemes: ['http', 'https', 'command']
	}, ['class', 'id', 'role', 'tabindex']);

	const html = _ttpSafeInnerHtml?.createHTML(value, options) ?? insane(value, options);
	node.innerHTML = html as string;
}