<iframe> skipped (cannot access content). Use options.placeholders to show a placeholder instead.",e),n.placeholders){let{width:d,height:f}%3Dse(e),h%3Ddocument.createElement("div")%3Breturn h.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`,Ne(e,h,t,n),h}else{let{width:d,height:f}%3Dse(e),h%3Ddocument.createElement("div")%3Breturn h.style.cssText%3D`display:inline-block%3Bwidth:${d}px%3Bheight:${f}px%3Bvisibility:hidden%3B`,Ne(e,h,t,n),h}}if(e.getAttribute("data-capture")%3D%3D%3D"placeholder"){let u%3De.cloneNode(!1)%3Bt.nodeMap.set(u,e),Ne(e,u,t,n)%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 m%3Dp.getContext("2d")%3Bm&&(m.drawImage(e,0,0),u%3Dp.toDataURL("image/png"))}}}catch(g){O(t,"Canvas toDataURL failed, using empty/fallback",g)}let d%3Ddocument.createElement("img")%3Btry{d.decoding%3D"sync",d.loading%3D"eager"}catch(g){O(t,"img decoding/loading hints failed",g)}u&&(d.src%3Du),d.width%3De.width,d.height%3De.height%3Blet{width:f,height:h}%3Dse(e)%3Breturn f>0&&(d.style.width%3D`${f}px`),h>0&&(d.style.height%3D`${h}px`),t.nodeMap.set(d,e),Ne(e,d,t,n),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){O(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:h}%3Dse(e)%3Breturn f>0&&(d.style.width%3D`${f}px`),h>0&&(d.style.height%3D`${h}px`),d.style.objectFit%3D"contain",t.nodeMap.set(d,e),Ne(e,d,t,n),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(Ku(e,a),t.nodeMap.set(a,e),e.tagName%3D%3D%3D"IMG"){od(e,a)%3Btry{let{width:u,height:d}%3Dse(e),f%3DMath.round(u||0),h%3DMath.round(d||0)%3Bf&&(a.dataset.snapdomWidth%3DString(f)),h&&(a.dataset.snapdomHeight%3DString(h))}catch(u){O(t,"getUnscaledDimensions for IMG failed",u)}try{let u%3De.getAttribute("style")||"",d%3Dwindow.getComputedStyle(e),f%3Dv%3D>{let w%3Du.match(new RegExp(`${v}\\s*:\\s*([^%3B]+)`,"i")),x%3Dw?w[1].trim():d.getPropertyValue(v)%3Breturn/%|auto/i.test(String(x||""))},h%3DparseInt(a.dataset.snapdomWidth||"0",10),g%3DparseInt(a.dataset.snapdomHeight||"0",10),p%3Df("width")||!h,m%3Df("height")||!g%3Bp&&h&&(a.style.width%3D`${h}px`),m&&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)):(h&&(a.style.minWidth%3D`${h}px`),g&&(a.style.minHeight%3D`${g}px`))}catch(u){O(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}%3Dse(e),f%3Du||e.getBoundingClientRect().width||0,h%3Dd||e.getBoundingClientRect().height||0%3Bf&&(a.style.width%3D`${f}px`),h&&(a.style.height%3D`${h}px`)}if(e instanceof HTMLInputElement){let u%3D(e.type||"text").toLowerCase()%3Bif((u%3D%3D%3D"checkbox"||u%3D%3D%3D"radio")&&Mu()){let{el:d,applyVisual:f}%3Dhd(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 h%3Ddocument.createElement("style")%3Bh.textContent%3D`.${f}::placeholder{color:${d}!important%3Bopacity:${u.opacity||"1"}!important%3B}`,a.prepend(h)}}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(Ne(e,a,t,n),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 h%3Dd.getPropertyValue(f)%3Bh&&a.style.setProperty(f,h)}}catch{}}if(e.shadowRoot){let u%3Dfunction(v,w){if(v.nodeType%3D%3D%3DNode.ELEMENT_NODE&&v.tagName%3D%3D%3D"STYLE")return w(null)%3Bbn(v,t,n).then(x%3D>{w(x||null)}).catch(()%3D>{w(null)})}%3Btry{let v%3De.shadowRoot.querySelectorAll("slot")%3Bfor(let w of v){let x%3D[]%3Btry{x%3Dw.assignedNodes?.({flatten:!0})||w.assignedNodes?.()||[]}catch{x%3Dw.assignedNodes?.()||[]}for(let A of x)r.add(A)}}catch{}let d%3Dtd(t),f%3D`[data-sd%3D"${d}"]`%3Btry{a.setAttribute("data-sd",d)}catch{}let h%3Dnd(e.shadowRoot),g%3Ded(h,f),p%3Did(h),m%3Dld(e,p,f)%3Brd(a,m+g,d)%3Blet y%3Ddocument.createDocumentFragment(),b%3Dawait Ir(Array.from(e.shadowRoot.childNodes),u,n.fast)%3By.append(...b.filter(v%3D>!!v)),a.appendChild(y)}if(e.tagName%3D%3D%3D"SLOT"){let u%3Dfunction(p,m){bn(p,t,n).then(y%3D>{y&&sd(y),m(y||null)}).catch(()%3D>{m(null)})},d%3De.assignedNodes?.({flatten:!0})||[],f%3Dd.length>0?d:Array.from(e.childNodes),h%3Ddocument.createDocumentFragment(),g%3Dawait Ir(Array.from(f),u,n.fast)%3Breturn h.append(...g.filter(p%3D>!!p)),h}function s(u,d){if(r.has(u))return d(null)%3Bbn(u,t,n).then(f%3D>{d(f||null)}).catch(()%3D>{d(null)})}let c%3Dawait Ir(Array.from(e.childNodes),s,n.fast)%3Bif(a.append(...c.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 bd(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vd(e){let t%3DArray.isArray(e)?e:[e]%3Bfor(let n of t)n instanceof RegExp?Wr.push(n):typeof n%3D%3D"string"?Wr.push(new RegExp(bd(n),"i")):console.warn("[snapdom] Ignored invalid iconFont value:",n)}function ve(e){let t%3Dtypeof e%3D%3D"string"?e:"",n%3D[...wd,...Wr]%3Bfor(let r of n)if(r instanceof RegExp&&r.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 Sd(e%3D""){let t%3DString(e).toLowerCase()%3Breturn/\bmaterial\s*icons\b/.test(t)||/\bmaterial\s*symbols\b/.test(t)}function xd(e%3D""){let t%3DObject.create(null),n%3DString(e||""),r%3D/['"]?\s*([A-Za-z]{3,4})\s*['"]?\s*([+-]?\d+(?:\.\d+)?)\s*/g,o%3Bfor(%3Bo%3Dr.exec(n)%3B)t[o[1].toUpperCase()]%3DNumber(o[2])%3Breturn t}async function Ed(e,t,n){let r%3DString(e||""),o%3Dr.toLowerCase(),i%3DString(t||"").toLowerCase()%3Bif(/\bmaterial\s*icons\b/.test(o)&&!/\bsymbols\b/.test(o))return{familyForMeasure:r,familyForCanvas:r}%3Bif(!/\bmaterial\s*symbols\b/.test(o))return{familyForMeasure:r,familyForCanvas:r}%3Blet a%3Dn&&(n.FILL??n.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 s%3Da%3D%3D%3D1,c%3Dnull%3Bif(s&&(l%3D%3D%3D"outlined"&&tt.materialIconsFilled?c%3D{url:tt.materialIconsFilled,alias:"snapdom-mi-filled"}:l%3D%3D%3D"rounded"&&tt.materialIconsRound?c%3D{url:tt.materialIconsRound,alias:"snapdom-mi-round"}:l%3D%3D%3D"sharp"&&tt.materialIconsSharp&&(c%3D{url:tt.materialIconsSharp,alias:"snapdom-mi-sharp"})),!c)return{familyForMeasure:r,familyForCanvas:r}%3Bif(!Xa.has(c.alias))try{let d%3Dnew FontFace(c.alias,`url(${c.url})`,{style:"normal",weight:"400"})%3Bdocument.fonts.add(d),await d.load(),Xa.set(c.alias,!0)}catch{return{familyForMeasure:r,familyForCanvas:r}}let u%3D`"${c.alias}"`%3Breturn{familyForMeasure:u,familyForCanvas:u}}async function Cd(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 Ad(e){let t%3De.getPropertyValue("-webkit-text-fill-color")?.trim()||"",n%3D/^transparent$/i.test(t)||/rgba?\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(t)%3Bif(t&&!n&&t.toLowerCase()!%3D%3D"currentcolor")return t%3Blet r%3De.color?.trim()%3Breturn r&&r!%3D%3D"inherit"?r:"#000"}async function _d(e,{family:t%3D"Material Icons",weight:n%3D"normal",fontSize:r%3D32,color:o%3D"#000",variation:i%3D"",className:a%3D""}%3D{}){let l%3DString(t||"").replace(/^['"]+|['"]+$/g,""),s%3Dwindow.devicePixelRatio||1,c%3Dxd(i),{familyForMeasure:u,familyForCanvas:d}%3Dawait Ed(l,a,c)%3Bawait Cd(d.replace(/^["']+|["']+$/g,""),r)%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(n||"normal"),f.style.fontSize%3D`${r}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 h%3Df.getBoundingClientRect(),g%3DMath.max(1,Math.ceil(h.width)),p%3DMath.max(1,Math.ceil(h.height))%3Bdocument.body.removeChild(f)%3Blet m%3Ddocument.createElement("canvas")%3Bm.width%3Dg*s,m.height%3Dp*s%3Blet y%3Dm.getContext("2d")%3By.scale(s,s),y.font%3D`${n?`${n} `:""}${r}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:m.toDataURL(),width:g,height:p}}async function Md(e,t){if(!(e instanceof Element))return 0%3Blet n%3D'.material-icons, [class*%3D"material-symbols"]',r%3DArray.from(e.querySelectorAll(n)).filter(a%3D>a&&a.textContent&&a.textContent.trim())%3Bif(r.length%3D%3D%3D0)return 0%3Blet o%3Dt instanceof Element?Array.from(t.querySelectorAll(n)).filter(a%3D>Flagged: Generic Suspicious Object