diff --git a/web/src/elements/utils/unsafe.ts b/web/src/elements/utils/unsafe.ts index 379fa2d666..04ca11abf5 100644 --- a/web/src/elements/utils/unsafe.ts +++ b/web/src/elements/utils/unsafe.ts @@ -63,16 +63,19 @@ export function StrictUnsafe( tagName: T, props?: LitPropertyRecord, ): SlottedTemplateResult; + export function StrictUnsafe( tagName: string, props?: LitPropertyRecord, ): SlottedTemplateResult; + export function StrictUnsafe( tagName: string, props?: T extends CustomElementTagName ? LitPropertyRecord : LitPropertyRecord, ): SlottedTemplateResult; + export function StrictUnsafe( tagName: string, props?: T extends CustomElementTagName @@ -105,10 +108,14 @@ export function StrictUnsafe( for (const [key, value] of Object.entries(props || {})) { const propDeclaration = elementProperties.get(key); - if (propDeclaration) { const prefix = getPrefix(propDeclaration.type, !propDeclaration.attribute); - filteredProps[`${prefix}${key}`] = value; + const name = + "attribute" in propDeclaration && typeof propDeclaration.attribute === "string" + ? propDeclaration.attribute + : key; + + filteredProps[`${prefix}${name}`] = value; continue; }