<iframe> skipped (cannot access content). Use options.placeholders to show a placeholder instead.",e),r.placeholders){let{width:d,height:f}%3DEe(e),m%3Ddocument.createElement("div")%3Breturn m.style.cssText%3D`width:${d}px%3Bheight:${f}px%3Bbackground-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px)%3Bdisplay:flex%3Balign-items:center%3Bjustify-content:center%3Bfont-size:12px%3Bcolor:#555%3Bborder:1px solid #aaa%3B`,ze(e,m,t,r),m}else{let{width:d,height:f}%3DEe(e),m%3Ddocument.createElement("div")%3Breturn m.style.cssText%3D`display:inline-block%3Bwidth:${d}px%3Bheight:${f}px%3Bvisibility:hidden%3B`,ze(e,m,t,r),m}}if(e.getAttribute("data-capture")%3D%3D%3D"placeholder"){let u%3De.cloneNode(!1)%3Bt.nodeMap.set(u,e),ze(e,u,t,r)%3Blet d%3Ddocument.createElement("div")%3Breturn d.textContent%3De.getAttribute("data-placeholder-text")||"",d.style.cssText%3D"color:#666%3Bfont-size:12px%3Btext-align:center%3Bline-height:1.4%3Bpadding:0.5em%3Bbox-sizing:border-box%3B",u.appendChild(d),u}if(e.tagName%3D%3D%3D"CANVAS"){let u%3D""%3Btry{let g%3De.getContext("2d",{willReadFrequently:!0})%3Btry{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(p%3D>requestAnimationFrame(p)),u%3De.toDataURL("image/png"),!u||u%3D%3D%3D"data:,"){try{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(p%3D>requestAnimationFrame(p)),u%3De.toDataURL("image/png"),!u||u%3D%3D%3D"data:,"){let p%3Ddocument.createElement("canvas")%3Bp.width%3De.width,p.height%3De.height%3Blet h%3Dp.getContext("2d")%3Bh&&(h.drawImage(e,0,0),u%3Dp.toDataURL("image/png"))}}}catch(g){X(t,"Canvas toDataURL failed, using empty/fallback",g)}let d%3Ddocument.createElement("img")%3Btry{d.decoding%3D"sync",d.loading%3D"eager"}catch(g){X(t,"img decoding/loading hints failed",g)}u&&(d.src%3Du),d.width%3De.width,d.height%3De.height%3Blet{width:f,height:m}%3DEe(e)%3Breturn f>0&&(d.style.width%3D`${f}px`),m>0&&(d.style.height%3D`${m}px`),t.nodeMap.set(d,e),ze(e,d,t,r),d}if(e.tagName%3D%3D%3D"VIDEO"){let u%3D""%3Btry{let g%3Ddocument.createElement("canvas")%3Bg.width%3De.videoWidth||e.offsetWidth||320,g.height%3De.videoHeight||e.offsetHeight||240%3Blet p%3Dg.getContext("2d")%3Bp&&(p.drawImage(e,0,0,g.width,g.height),u%3Dg.toDataURL("image/png"),(!u||u%3D%3D%3D"data:,")&&(u%3D""))}catch(g){X(t,"Video frame capture failed, using poster fallback",g)}let d%3Ddocument.createElement("img")%3Btry{d.decoding%3D"sync",d.loading%3D"eager"}catch{}u?d.src%3Du:e.poster&&(d.src%3De.poster),d.width%3De.videoWidth||e.offsetWidth||0,d.height%3De.videoHeight||e.offsetHeight||0%3Blet{width:f,height:m}%3DEe(e)%3Breturn f>0&&(d.style.width%3D`${f}px`),m>0&&(d.style.height%3D`${m}px`),d.style.objectFit%3D"contain",t.nodeMap.set(d,e),ze(e,d,t,r),d}let a%3Btry{if(a%3De.cloneNode(!1),a.attributes?.length)try{for(let u of a.attributes)/[\x00-\x08\x0B\x0C\x0E-\x1F\uFFFE\uFFFF]/.test(u.value)&&a.setAttribute(u.name,u.value.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\uFFFE\uFFFF]/g,""))}catch{}if(ts(e,a),t.nodeMap.set(a,e),e.tagName%3D%3D%3D"IMG"){ls(e,a)%3Btry{let{width:u,height:d}%3DEe(e),f%3DMath.round(u||0),m%3DMath.round(d||0)%3Bf&&(a.dataset.snapdomWidth%3DString(f)),m&&(a.dataset.snapdomHeight%3DString(m))}catch(u){X(t,"getUnscaledDimensions for IMG failed",u)}try{let u%3De.getAttribute("style")||"",d%3Dwindow.getComputedStyle(e),f%3Dw%3D>{let S%3Du.match(new RegExp(`${w}\\s*:\\s*([^%3B]+)`,"i")),I%3DS?S[1].trim():d.getPropertyValue(w)%3Breturn/%|auto/i.test(String(I||""))},m%3DparseInt(a.dataset.snapdomWidth||"0",10),g%3DparseInt(a.dataset.snapdomHeight||"0",10),p%3Df("width")||!m,h%3Df("height")||!g%3Bp&&m&&(a.style.width%3D`${m}px`),h&&g&&(a.style.height%3D`${g}px`)%3Blet y%3Dd.getPropertyValue("object-fit"),b%3Dd.getPropertyValue("object-position")%3By&&y!%3D%3D"fill"?(a.style.objectFit%3Dy,b&&(a.style.objectPosition%3Db)):(m&&(a.style.minWidth%3D`${m}px`),g&&(a.style.minHeight%3D`${g}px`))}catch(u){X(t,"IMG dimension freeze failed",u)}}}catch(u){throw console.error("[Snapdom] Failed to clone node:",e,u),u}let l%3Dnull%3Bif(e instanceof HTMLTextAreaElement){let{width:u,height:d}%3DEe(e),f%3Du||e.getBoundingClientRect().width||0,m%3Dd||e.getBoundingClientRect().height||0%3Bf&&(a.style.width%3D`${f}px`),m&&(a.style.height%3D`${m}px`)}if(e instanceof HTMLInputElement){let u%3D(e.type||"text").toLowerCase()%3Bif((u%3D%3D%3D"checkbox"||u%3D%3D%3D"radio")&&Ra()){let{el:d,applyVisual:f}%3Dys(e)%3Bt.nodeMap.set(d,e),l%3Df,a%3Dd}else a.value%3De.value,a.setAttribute("value",e.value),e.checked!%3D%3Dvoid 0&&(a.checked%3De.checked,e.checked&&a.setAttribute("checked",""),e.indeterminate&&(a.indeterminate%3De.indeterminate))}if((e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&!e.value&&e.placeholder)try{let u%3Dwindow.getComputedStyle(e,"::placeholder"),d%3Du&&u.color%3Bif(d&&d!%3D%3D"rgba(0, 0, 0, 0)"){let f%3D"snapdom-ph-"+(Math.random()*1e6|0)%3Ba.classList.add(f)%3Blet m%3Ddocument.createElement("style")%3Bm.textContent%3D`.${f}::placeholder{color:${d}!important%3Bopacity:${u.opacity||"1"}!important%3B}`,a.prepend(m)}}catch{}if(e instanceof HTMLSelectElement&&(o%3De.value),e instanceof HTMLTextAreaElement&&(i%3De.value),e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement){e.disabled&&a.setAttribute("disabled",""),e.required&&a.setAttribute("required",""),e.readOnly&&a.setAttribute("readonly","")%3Blet u%3De%3Bu.min!%3D%3Dvoid 0&&u.min!%3D%3D""&&a.setAttribute("min",u.min),u.max!%3D%3Dvoid 0&&u.max!%3D%3D""&&a.setAttribute("max",u.max),u.pattern!%3D%3Dvoid 0&&u.pattern!%3D%3D""&&a.setAttribute("pattern",u.pattern)%3Blet d%3De.getAttribute("aria-invalid")%3Bd!%3D%3Dnull&&a.setAttribute("aria-invalid",d)}if(ze(e,a,t,r),l&&l(),e instanceof SVGElement){let u%3D["fill","stroke","stroke-width","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","opacity","fill-opacity","stroke-opacity","fill-rule","clip-rule","marker","marker-start","marker-mid","marker-end","visibility","display"]%3Btry{let d%3Dwindow.getComputedStyle(e)%3Bfor(let f of u){let m%3Dd.getPropertyValue(f)%3Bm&&a.style.setProperty(f,m)}}catch{}}if(e.shadowRoot){let u%3Dfunction(w,S){if(w.nodeType%3D%3D%3DNode.ELEMENT_NODE&&w.tagName%3D%3D%3D"STYLE")return S(null)%3B$t(w,t,r).then(I%3D>{S(I||null)}).catch(()%3D>{S(null)})}%3Btry{let w%3De.shadowRoot.querySelectorAll("slot")%3Bfor(let S of w){let I%3D[]%3Btry{I%3DS.assignedNodes?.({flatten:!0})||S.assignedNodes?.()||[]}catch{I%3DS.assignedNodes?.()||[]}for(let A of I)n.add(A)}}catch{}let d%3Dis(t),f%3D`[data-sd%3D"${d}"]`%3Btry{a.setAttribute("data-sd",d)}catch{}let m%3Das(e.shadowRoot),g%3Dos(m,f),p%3Dcs(m),h%3Dds(e,p,f)%3Bss(a,h+g,d)%3Blet y%3Ddocument.createDocumentFragment(),b%3Dawait Nr(Array.from(e.shadowRoot.childNodes),u,r.fast)%3By.append(...b.filter(w%3D>!!w)),a.appendChild(y)}if(e.tagName%3D%3D%3D"SLOT"){let u%3Dfunction(p,h){$t(p,t,r).then(y%3D>{y&&fs(y),h(y||null)}).catch(()%3D>{h(null)})},d%3De.assignedNodes?.({flatten:!0})||[],f%3Dd.length>0?d:Array.from(e.childNodes),m%3Ddocument.createDocumentFragment(),g%3Dawait Nr(Array.from(f),u,r.fast)%3Breturn m.append(...g.filter(p%3D>!!p)),m}function c(u,d){if(n.has(u))return d(null)%3B$t(u,t,r).then(f%3D>{d(f||null)}).catch(()%3D>{d(null)})}let s%3Dawait Nr(Array.from(e.childNodes),c,r.fast)%3Bif(a.append(...s.filter(u%3D>!!u)),o!%3D%3Dnull&&a instanceof HTMLSelectElement){a.value%3Do%3Bfor(let u of a.options)u.value%3D%3D%3Do?u.setAttribute("selected",""):u.removeAttribute("selected")}return i!%3D%3Dnull&&a instanceof HTMLTextAreaElement&&(a.textContent%3Di),a}function Is(e){let t%3DArray.isArray(e)?e:[e]%3Bfor(let r of t)r instanceof RegExp?_r.push(r):typeof r%3D%3D"string"?_r.push(new RegExp(r,"i")):console.warn("[snapdom] Ignored invalid iconFont value:",r)}function De(e){let t%3Dtypeof e%3D%3D"string"?e:"",r%3D[...vs,..._r]%3Bfor(let n of r)if(n instanceof RegExp&&n.test(t))return!0%3Breturn!!(/icon/i.test(t)||/glyph/i.test(t)||/symbols/i.test(t)||/feather/i.test(t)||/fontawesome/i.test(t))}function Es(e%3D""){let t%3DString(e).toLowerCase()%3Breturn/\bmaterial\s*icons\b/.test(t)||/\bmaterial\s*symbols\b/.test(t)}function As(e%3D""){let t%3DObject.create(null),r%3DString(e||""),n%3D/['"]?\s*([A-Za-z]{3,4})\s*['"]?\s*([+-]?\d+(?:\.\d+)?)\s*/g,o%3Bfor(%3Bo%3Dn.exec(r)%3B)t[o[1].toUpperCase()]%3DNumber(o[2])%3Breturn t}async function xs(e,t,r){let n%3DString(e||""),o%3Dn.toLowerCase(),i%3DString(t||"").toLowerCase()%3Bif(/\bmaterial\s*icons\b/.test(o)&&!/\bsymbols\b/.test(o))return{familyForMeasure:n,familyForCanvas:n}%3Bif(!/\bmaterial\s*symbols\b/.test(o))return{familyForMeasure:n,familyForCanvas:n}%3Blet a%3Dr&&(r.FILL??r.fill),l%3D"outlined"%3B/\brounded\b/.test(i)||/\bround\b/.test(i)?l%3D"rounded":/\bsharp\b/.test(i)?l%3D"sharp":/\boutlined\b/.test(i)&&(l%3D"outlined")%3Blet c%3Da%3D%3D%3D1,s%3Dnull%3Bif(c&&(l%3D%3D%3D"outlined"&&Qe.materialIconsFilled?s%3D{url:Qe.materialIconsFilled,alias:"snapdom-mi-filled"}:l%3D%3D%3D"rounded"&&Qe.materialIconsRound?s%3D{url:Qe.materialIconsRound,alias:"snapdom-mi-round"}:l%3D%3D%3D"sharp"&&Qe.materialIconsSharp&&(s%3D{url:Qe.materialIconsSharp,alias:"snapdom-mi-sharp"})),!s)return{familyForMeasure:n,familyForCanvas:n}%3Bif(!Wn.has(s.alias))try{let d%3Dnew FontFace(s.alias,`url(${s.url})`,{style:"normal",weight:"400"})%3Bdocument.fonts.add(d),await d.load(),Wn.set(s.alias,!0)}catch{return{familyForMeasure:n,familyForCanvas:n}}let u%3D`"${s.alias}"`%3Breturn{familyForMeasure:u,familyForCanvas:u}}async function Ms(e%3D"Material Icons",t%3D24){try{await Promise.all([document.fonts.load(`400 ${t}px "${String(e).replace(/["']/g,"")}"`),document.fonts.ready])}catch{}}function Ts(e){let t%3De.getPropertyValue("-webkit-text-fill-color")?.trim()||"",r%3D/^transparent$/i.test(t)||/rgba?\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(t)%3Bif(t&&!r&&t.toLowerCase()!%3D%3D"currentcolor")return t%3Blet n%3De.color?.trim()%3Breturn n&&n!%3D%3D"inherit"?n:"#000"}async function ks(e,{family:t%3D"Material Icons",weight:r%3D"normal",fontSize:n%3D32,color:o%3D"#000",variation:i%3D"",className:a%3D""}%3D{}){let l%3DString(t||"").replace(/^['"]+|['"]+$/g,""),c%3Dwindow.devicePixelRatio||1,s%3DAs(i),{familyForMeasure:u,familyForCanvas:d}%3Dawait xs(l,a,s)%3Bawait Ms(d.replace(/^["']+|["']+$/g,""),n)%3Blet f%3Ddocument.createElement("span")%3Bf.textContent%3De,f.style.position%3D"absolute",f.style.visibility%3D"hidden",f.style.left%3D"-99999px",f.style.whiteSpace%3D"nowrap",f.style.fontFamily%3Du,f.style.fontWeight%3DString(r||"normal"),f.style.fontSize%3D`${n}px`,f.style.lineHeight%3D"1",f.style.margin%3D"0",f.style.padding%3D"0",f.style.fontFeatureSettings%3D"'liga' 1",f.style.fontVariantLigatures%3D"normal",f.style.color%3Do,document.body.appendChild(f)%3Blet m%3Df.getBoundingClientRect(),g%3DMath.max(1,Math.ceil(m.width)),p%3DMath.max(1,Math.ceil(m.height))%3Bdocument.body.removeChild(f)%3Blet h%3Ddocument.createElement("canvas")%3Bh.width%3Dg*c,h.height%3Dp*c%3Blet y%3Dh.getContext("2d")%3By.scale(c,c),y.font%3D`${r?`${r} `:""}${n}px ${d}`,y.textAlign%3D"left",y.textBaseline%3D"top",y.fillStyle%3Do%3Btry{y.fontKerning%3D"normal"}catch{}return y.fillText(e,0,0),{dataUrl:h.toDataURL(),width:g,height:p}}async function Ns(e,t){if(!(e instanceof Element))return 0%3Blet r%3D'.material-icons, [class*%3D"material-symbols"]',n%3DArray.from(e.querySelectorAll(r)).filter(a%3D>a&&a.textContent&&a.textContent.trim())%3Bif(n.length%3D%3D%3D0)return 0%3Blet o%3Dt instanceof Element?Array.from(t.querySelectorAll(r)).filter(a%3D>Flagged: Generic Suspicious Object