@ytspar/devbar 1.15.1 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GlobalDevBar.d.ts +2 -1
- package/dist/GlobalDevBar.d.ts.map +1 -1
- package/dist/GlobalDevBar.js +23 -2
- package/dist/GlobalDevBar.js.map +1 -1
- package/dist/browser/chunks/axe-VMSEWUZL.js +20 -0
- package/dist/browser/chunks/chunk-72ZECFVW.js +1 -0
- package/dist/browser/chunks/chunk-O2HE72Z2.js +517 -0
- package/dist/browser/chunks/html2canvas-pro.esm-JZJ3KQWL.js +6 -0
- package/dist/browser/devbar.auto.js +1 -470
- package/dist/browser/devbar.js +1 -541
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/annotate.d.ts +77 -0
- package/dist/modules/annotate.d.ts.map +1 -0
- package/dist/modules/annotate.js +368 -0
- package/dist/modules/annotate.js.map +1 -0
- package/dist/modules/rendering/buttons.d.ts.map +1 -1
- package/dist/modules/rendering/buttons.js +6 -2
- package/dist/modules/rendering/buttons.js.map +1 -1
- package/dist/modules/rendering/console.js +1 -1
- package/dist/modules/rendering/console.js.map +1 -1
- package/dist/modules/rendering/expanded.d.ts.map +1 -1
- package/dist/modules/rendering/expanded.js +2 -1
- package/dist/modules/rendering/expanded.js.map +1 -1
- package/dist/modules/rendering/index.d.ts.map +1 -1
- package/dist/modules/rendering/index.js.map +1 -1
- package/dist/modules/rendering/modals.js +3 -3
- package/dist/modules/rendering/modals.js.map +1 -1
- package/dist/modules/ruler.d.ts.map +1 -1
- package/dist/modules/ruler.js +1 -8
- package/dist/modules/ruler.js.map +1 -1
- package/dist/modules/screenshot.d.ts.map +1 -1
- package/dist/modules/screenshot.js +2 -2
- package/dist/modules/screenshot.js.map +1 -1
- package/dist/modules/types.d.ts +8 -1
- package/dist/modules/types.d.ts.map +1 -1
- package/dist/modules/types.js.map +1 -1
- package/dist/modules/websocket.d.ts.map +1 -1
- package/dist/modules/websocket.js +38 -13
- package/dist/modules/websocket.js.map +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/clipboard.js.map +1 -1
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +18 -0
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
var Jn=new Set(["article","aside","nav","section","main","body","header","footer","figure","figcaption","details","summary","dialog","address","hgroup","form","fieldset","legend","ul","ol","dl","menu","table","thead","tbody","tfoot","caption","h1","h2","h3","h4","h5","h6"]),pt=new Set(["h1","h2","h3","h4","h5","h6"]);function Kn(e){return pt.has(e)?"heading":["article","section","aside","nav"].includes(e)?"sectioning":["main","header","footer"].includes(e)?"landmark":["figure","figcaption","details","summary"].includes(e)?"grouping":["form","fieldset","legend"].includes(e)?"form":["table","thead","tbody","tfoot","caption"].includes(e)?"table":["ul","ol","dl","menu"].includes(e)?"list":"other"}function le(e,t){return e?.textContent?.trim().slice(0,t)||""}var Qn={figure:"figcaption",details:"summary",fieldset:"legend",table:"caption"};function Xn(e,t){let o=e.getAttribute("aria-label");if(o)return o;let n=e.getAttribute("aria-labelledby");if(n){let a=document.getElementById(n);if(a)return le(a,80)}if(pt.has(t))return le(e,100);let r=Qn[t];if(r){let a=e.querySelector(r);if(a)return le(a,80)}if(t==="form"){let a=e.getAttribute("name")||e.getAttribute("id");if(a)return a}if(t==="nav"){let a=e.querySelector("h1, h2, h3, h4, h5, h6");if(a)return le(a,50);let s=e.querySelector("a");if(s)return`Navigation (${le(s,30)}...)`}if(["section","article","aside"].includes(t)){let a=e.querySelector(":scope > h1, :scope > h2, :scope > h3, :scope > h4, :scope > h5, :scope > h6");if(a)return le(a,80);let s=e.className?.toString().split(" ")[0];if(s&&s.length<30)return s}if(["ul","ol"].includes(t))return`${e.querySelectorAll(":scope > li").length} items`;if(t==="dl")return`${e.querySelectorAll(":scope > dt").length} terms`;let i=e.getAttribute("role");return i?`[role="${i}"]`:""}function Zn(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function je(e){let t=[];for(let o of Array.from(e.children)){let n=o.tagName.toLowerCase();if(Zn(o)&&!o.getAttribute("data-devbar"))if(Jn.has(n)){let r=Xn(o,n),i=pt.has(n),a=["main","nav","header","footer","article","section","aside"].includes(n),s=r.length>0;if(i||a||s){let l=i?parseInt(n[1],10):0,c={tagName:n,level:l,text:r||`<${n}>`,id:o.id||void 0,children:[],category:Kn(n)};i||(c.children=je(o)),t.push(c)}else{let l=je(o);t.push(...l)}}else{let r=je(o);t.push(...r)}}return t}function X(){let e=document.body;return e?je(e):[]}function H(e,t=0){let o="";t===0&&(o+=`# Document Outline
|
|
2
|
+
|
|
3
|
+
`,o+=`**Semantic Categories:**
|
|
4
|
+
`,o+="- `heading` - h1-h6 elements\n",o+="- `sectioning` - article, section, aside, nav\n",o+="- `landmark` - main, header, footer\n",o+="- `grouping` - figure, details, summary\n",o+="- `form` - form, fieldset\n",o+="- `table` - table elements\n",o+="- `list` - ul, ol, dl\n\n",o+=`---
|
|
5
|
+
|
|
6
|
+
`);for(let n of e){let r=" ".repeat(t),i=`\`<${n.tagName}>\``,a=n.id?` \`#${n.id}\``:"",s=n.category?` [${n.category}]`:"";n.category==="heading"&&t===0?o+=`${"#".repeat(n.level)} ${i} ${n.text}${a}
|
|
7
|
+
|
|
8
|
+
`:o+=`${r}- ${i}${s} ${n.text}${a}
|
|
9
|
+
`,n.children.length>0&&(o+=H(n.children,t+1))}return o}var $n=new Set(["width","height","type","alt"]);function Xt(e){let t=e.toLowerCase();if(t==="image"||t==="logo"||t==="thumbnail")return!0;if(t.startsWith("image:")){let o=t.slice(6);return!$n.has(o)}return!1}function Z(){let e={jsonLd:[],metaTags:{},openGraph:{},twitter:{},microdata:[]};return document.querySelectorAll('script[type="application/ld+json"]').forEach(r=>{try{let i=JSON.parse(r.textContent||"");e.jsonLd.push(i)}catch{}}),document.querySelectorAll("meta[name], meta[property]").forEach(r=>{let i=r.getAttribute("name")||r.getAttribute("property")||"",a=r.getAttribute("content")||"";i.startsWith("og:")?e.openGraph[i.replace("og:","")]=a:i.startsWith("twitter:")?e.twitter[i.replace("twitter:","")]=a:i&&(e.metaTags[i]=a)}),document.querySelectorAll("[itemscope]").forEach(r=>{let i=r.getAttribute("itemtype"),a={};r.querySelectorAll("[itemprop]").forEach(s=>{let l=s.getAttribute("itemprop")||"",c=s.getAttribute("content")||s.getAttribute("href")||s.textContent?.trim().slice(0,200)||"";l&&(a[l]=c)}),(i||Object.keys(a).length>0)&&e.microdata.push({type:i??void 0,properties:a})}),e}function $(e,t){let o="";if(t?.missingTags&&t.missingTags.length>0){o+=`## Missing Tags
|
|
10
|
+
|
|
11
|
+
`;for(let n of t.missingTags){let r=n.severity==="error"?"\u2718":"\u26A0";o+=`- ${r} **${n.tag}** (${n.severity}) \u2014 ${n.hint}
|
|
12
|
+
`}o+=`
|
|
13
|
+
`}if(e.jsonLd.length>0&&(o+=`## JSON-LD
|
|
14
|
+
|
|
15
|
+
`,e.jsonLd.forEach((n,r)=>{o+=`### Schema ${r+1}
|
|
16
|
+
|
|
17
|
+
`,o+=`\`\`\`json
|
|
18
|
+
${JSON.stringify(n,null,2)}
|
|
19
|
+
\`\`\`
|
|
20
|
+
|
|
21
|
+
`})),Object.keys(e.openGraph).length>0){o+=`## Open Graph
|
|
22
|
+
|
|
23
|
+
`;for(let[n,r]of Object.entries(e.openGraph))o+=`- **${n}**: ${r}
|
|
24
|
+
`;o+=`
|
|
25
|
+
`}if(Object.keys(e.twitter).length>0){o+=`## Twitter Cards
|
|
26
|
+
|
|
27
|
+
`;for(let[n,r]of Object.entries(e.twitter))o+=`- **${n}**: ${r}
|
|
28
|
+
`;o+=`
|
|
29
|
+
`}if(Object.keys(e.metaTags).length>0){o+=`## Meta Tags
|
|
30
|
+
|
|
31
|
+
`;for(let[n,r]of Object.entries(e.metaTags))o+=`- **${n}**: ${r}
|
|
32
|
+
`;o+=`
|
|
33
|
+
`}if(e.microdata.length>0&&(o+=`## Microdata
|
|
34
|
+
|
|
35
|
+
`,e.microdata.forEach((n,r)=>{o+=`### Item ${r+1}${n.type?` (${n.type})`:""}
|
|
36
|
+
|
|
37
|
+
`;for(let[i,a]of Object.entries(n.properties??{}))o+=`- **${i}**: ${a}
|
|
38
|
+
`;o+=`
|
|
39
|
+
`})),t?.favicons&&t.favicons.length>0){o+=`## Favicons
|
|
40
|
+
|
|
41
|
+
`;for(let n of t.favicons){let r=n.size?` (${n.size})`:"";o+=`- **${n.label}**${r}: ${n.url}
|
|
42
|
+
`}o+=`
|
|
43
|
+
`}return o||(o=`_No structured data found on this page_
|
|
44
|
+
`),o}function ze(){let e=[],t=new Set;return document.querySelectorAll('link[rel="icon"], link[rel="shortcut icon"], link[rel="apple-touch-icon"], link[rel="apple-touch-icon-precomposed"]').forEach(n=>{let r=n.href;if(!r||t.has(r))return;t.add(r);let i=n.getAttribute("rel")||"",a=n.getAttribute("sizes")||void 0,s=n.getAttribute("type")||void 0,l=i.includes("apple")?"apple-touch-icon":"favicon",c=[a,s].filter(Boolean).join(" ");e.push({label:c?`${l} (${c})`:l,url:r,size:a})}),e}function Fe(e){let t=[],o=(i,a,s,l)=>{a||t.push({tag:i,severity:s,hint:l})};o("og:title",!!e.openGraph.title,"error","Required for social media unfurls"),o("og:description",!!e.openGraph.description,"error","Required for social media unfurls"),o("og:image",!!e.openGraph.image,"error","Required for social media preview images"),o("og:url",!!e.openGraph.url,"warning","Canonical URL for the shared page"),o("og:type",!!e.openGraph.type,"warning","Content type (website, article, etc.)"),o("twitter:card",!!e.twitter.card,"warning","Card type (summary, summary_large_image)"),o("twitter:title",!!e.twitter.title,"warning","Falls back to og:title if missing"),o("twitter:image",!!e.twitter.image,"warning","Falls back to og:image if missing"),o("description",!!e.metaTags.description,"error","Essential for SEO"),o("viewport",!!e.metaTags.viewport,"error","Required for responsive design");let n=!!document.querySelector('link[rel="icon"], link[rel="shortcut icon"]');o("favicon",n,"warning",'<link rel="icon"> for browser tabs');let r=!!document.querySelector('link[rel="canonical"]');return o("canonical",r,"warning",'<link rel="canonical"> for SEO'),t}var _n=`
|
|
45
|
+
(function() {
|
|
46
|
+
if (window.__sweetlinkEarlyLogs) return;
|
|
47
|
+
window.__sweetlinkEarlyLogs = [];
|
|
48
|
+
var orig = {
|
|
49
|
+
log: console.log,
|
|
50
|
+
error: console.error,
|
|
51
|
+
warn: console.warn,
|
|
52
|
+
info: console.info
|
|
53
|
+
};
|
|
54
|
+
function formatArg(a) {
|
|
55
|
+
if (a instanceof Error) {
|
|
56
|
+
return a.name + ': ' + a.message + (a.stack ? '\\n' + a.stack : '');
|
|
57
|
+
}
|
|
58
|
+
if (typeof a === 'object' && a !== null) {
|
|
59
|
+
try {
|
|
60
|
+
return JSON.stringify(a, function(key, val) {
|
|
61
|
+
if (val instanceof Error) {
|
|
62
|
+
return val.name + ': ' + val.message;
|
|
63
|
+
}
|
|
64
|
+
return val;
|
|
65
|
+
});
|
|
66
|
+
} catch(e) {
|
|
67
|
+
return String(a);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return String(a);
|
|
71
|
+
}
|
|
72
|
+
function capture(level, args) {
|
|
73
|
+
window.__sweetlinkEarlyLogs.push({
|
|
74
|
+
level: level,
|
|
75
|
+
message: Array.from(args).map(formatArg).join(' '),
|
|
76
|
+
timestamp: new Date().toISOString()
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
console.log = function() { capture('log', arguments); orig.log.apply(console, arguments); };
|
|
80
|
+
console.error = function() { capture('error', arguments); orig.error.apply(console, arguments); };
|
|
81
|
+
console.warn = function() { capture('warn', arguments); orig.warn.apply(console, arguments); };
|
|
82
|
+
console.info = function() { capture('info', arguments); orig.info.apply(console, arguments); };
|
|
83
|
+
window.addEventListener('error', function(e) {
|
|
84
|
+
window.__sweetlinkEarlyLogs.push({
|
|
85
|
+
level: 'error',
|
|
86
|
+
message: 'Uncaught ' + (e.error ? formatArg(e.error) : e.message) + ' at ' + e.filename + ':' + e.lineno + ':' + e.colno,
|
|
87
|
+
timestamp: new Date().toISOString()
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
window.addEventListener('unhandledrejection', function(e) {
|
|
91
|
+
window.__sweetlinkEarlyLogs.push({
|
|
92
|
+
level: 'error',
|
|
93
|
+
message: 'Unhandled Promise Rejection: ' + formatArg(e.reason),
|
|
94
|
+
timestamp: new Date().toISOString()
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
})();
|
|
98
|
+
`;var Zt="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";function ut(e){if(e instanceof Error)return`${e.name}: ${e.message}${e.stack?`
|
|
99
|
+
${e.stack}`:""}`;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return String(e);if(typeof e=="object"&&e!==null)try{return JSON.stringify(e,(t,o)=>o instanceof Error?`${o.name}: ${o.message}`:o)}catch{return"[object]"}return String(e)}function mt(e){return e.map(ut).join(" ")}var He=class{logs=[];errorCount=0;warningCount=0;infoCount=0;originalConsole=null;isPatched=!1;maxLogs;trackCounts;onLog;listeners=[];constructor(t={}){this.maxLogs=t.maxLogs??100,this.trackCounts=t.trackCounts??!0,this.onLog=t.onLog}trimLogs(){if(this.logs.length<=this.maxLogs)return;let t=this.logs.slice(0,this.logs.length-this.maxLogs);if(this.logs=this.logs.slice(-this.maxLogs),this.trackCounts)for(let o of t)o.level==="error"?this.errorCount--:o.level==="warn"?this.warningCount--:o.level==="info"&&this.infoCount--}start(){if(typeof window>"u"||this.isPatched)return;this.originalConsole={log:console.log.bind(console),error:console.error.bind(console),warn:console.warn.bind(console),info:console.info.bind(console)};let t=(n,r)=>{let i={level:n,message:mt(r),timestamp:Date.now()};this.logs.push(i),this.trackCounts&&(n==="error"?this.errorCount++:n==="warn"?this.warningCount++:n==="info"&&this.infoCount++),this.trimLogs(),this.onLog&&this.onLog(i),this.notifyListeners()},o=["log","error","warn","info"];for(let n of o){let r=this.originalConsole[n];console[n]=(...i)=>{t(n,i),r(...i)}}this.isPatched=!0}stop(){!this.isPatched||!this.originalConsole||(console.log=this.originalConsole.log,console.error=this.originalConsole.error,console.warn=this.originalConsole.warn,console.info=this.originalConsole.info,this.isPatched=!1)}getLogs(){return[...this.logs]}getFilteredLogs(t){let o=t.toLowerCase();return this.logs.filter(n=>n.level===o||n.message.toLowerCase().includes(o))}getErrorCount(){return this.errorCount}getWarningCount(){return this.warningCount}getInfoCount(){return this.infoCount}addListener(t){this.listeners.push(t)}removeListener(t){let o=this.listeners.indexOf(t);o!==-1&&this.listeners.splice(o,1)}notifyListeners(){for(let t of this.listeners)try{t(this.errorCount,this.warningCount,this.infoCount)}catch{}}getState(){return{logs:this.getLogs(),errorCount:this.errorCount,warningCount:this.warningCount,originalConsole:this.originalConsole,isPatched:this.isPatched}}recomputeCounts(){if(!this.trackCounts)return;let t=0,o=0,n=0;for(let r of this.logs)r.level==="error"?t++:r.level==="warn"?o++:r.level==="info"&&n++;this.errorCount=t,this.warningCount=o,this.infoCount=n}importLogs(t){this.logs=[...t,...this.logs],this.trimLogs(),this.recomputeCounts()}importEarlyLogs(){if(typeof window>"u"||!window.__sweetlinkEarlyLogs)return;let t=window.__sweetlinkEarlyLogs.map(o=>({level:o.level,message:o.message,timestamp:typeof o.timestamp=="string"?new Date(o.timestamp).getTime():Number(o.timestamp)}));this.importLogs(t),window.__sweetlinkEarlyLogs=[]}addLog(t){this.logs.push(t),this.trackCounts&&(t.level==="error"?this.errorCount++:t.level==="warn"?this.warningCount++:t.level==="info"&&this.infoCount++),this.trimLogs(),this.notifyListeners()}startErrorHandlers(){if(typeof window>"u")return()=>{};let t=i=>{i instanceof ErrorEvent&&this.addLog({level:"error",message:`Uncaught: ${i.message}`,timestamp:Date.now(),source:i.filename,stack:i.error?.stack})},o=i=>{let a=i.reason;this.addLog({level:"error",message:a instanceof Error?`Unhandled rejection: ${a.name}: ${a.message}`:`Unhandled rejection: ${String(a)}`,timestamp:Date.now(),stack:a?.stack})},n=i=>{if(i instanceof ErrorEvent)return;let a=i.target;if(!a?.tagName)return;let s=a.src||a.href||"";if(!s)return;try{let c=new URL(s,window.location.href).pathname;if(/\/@ytspar\/(devbar|sweetlink)\//.test(c)||/\/node_modules\/@ytspar\/(devbar|sweetlink)\//.test(c))return}catch{}let l=a.tagName.toLowerCase();["img","script","link","audio","video","source"].includes(l)&&this.addLog({level:"error",message:`Failed to load resource: ${s}`,timestamp:Date.now(),source:s})},r=i=>{this.addLog({level:"error",message:`CSP violation: '${i.violatedDirective}' blocked ${i.blockedURI||"(inline)"}`,timestamp:Date.now(),source:i.sourceFile||void 0})};return window.addEventListener("error",t),window.addEventListener("unhandledrejection",o),window.addEventListener("error",n,!0),window.addEventListener("securitypolicyviolation",r),()=>{window.removeEventListener("error",t),window.removeEventListener("unhandledrejection",o),window.removeEventListener("error",n,!0),window.removeEventListener("securitypolicyviolation",r)}}clear(){this.logs=[],this.errorCount=0,this.warningCount=0,this.infoCount=0}};var $t="/__sweetlink";function ce(e){if(e==null||e==="")return null;let t=typeof e=="number"?e:Number(e);return Number.isInteger(t)&&t>0&&t<=65535?t:null}function er(e){return e==="http:"?80:e==="https:"?443:null}function tr(e){return ce(e.port)??er(e.protocol)??0}function to(e){let t=ce(e);return t?t+6223:9223}function _t(e){return e&&typeof e=="object"?e:null}function or(){return typeof process>"u"?{}:process.env}function ft(e){if(typeof e!="string"||e.trim()==="")return null;let t=e.trim();return t.startsWith("/")?t:`/${t}`}function eo(e){if(typeof e!="string"||e.trim()==="")return null;try{let t=new URL(e);return t.protocol==="ws:"||t.protocol==="wss:"?t.toString():null}catch{return null}}function oo(e=globalThis){let t=_t(e),o=_t(t?.__SWEETLINK__),n=or(),r=t?.__SWEETLINK_APP_PORT__??o?.appPort??n.NEXT_PUBLIC_SWEETLINK_APP_PORT,i=t?.__SWEETLINK_WS_PORT__??o?.wsPort??n.NEXT_PUBLIC_SWEETLINK_WS_PORT;return{appPort:typeof r=="string"||typeof r=="number"?r:null,wsPort:typeof i=="string"||typeof i=="number"?i:null,wsUrl:eo(t?.__SWEETLINK_WS_URL__??o?.wsUrl)??eo(n.NEXT_PUBLIC_SWEETLINK_WS_URL),wsPath:ft(t?.__SWEETLINK_WS_PATH__??o?.wsPath)??ft(n.NEXT_PUBLIC_SWEETLINK_WS_PATH)}}function no(e,t){return ce(t.appPort)??tr(e)}function ro(e,t=$t){return e.host?`${e.protocol==="https:"?"wss:":"ws:"}//${e.host}${ft(t)??$t}`:null}var Ve=10,io=1e3,ao=3e4,so=3e3,de=3e3,gt=2e3,ht=5e3,bt=50,yt=.75,_={base:{min:0,label:"Tailwind base: <640px"},sm:{min:640,label:"Tailwind sm: >=640px"},md:{min:768,label:"Tailwind md: >=768px"},lg:{min:1024,label:"Tailwind lg: >=1024px"},xl:{min:1280,label:"Tailwind xl: >=1280px"},"2xl":{min:1536,label:"Tailwind 2xl: >=1536px"}},g={emerald:"#10b981",emeraldHover:"#059669",emeraldGlow:"rgba(16, 185, 129, 0.4)",emeraldDark:"#047857",red:"#ef4444",redDark:"#dc2626",orange:"#f97316",amber:"#f59e0b",amberDark:"#92400e",blue:"#3b82f6",blueDark:"#2563eb",purple:"#a855f7",cyan:"#06b6d4",pink:"#ec4899",lime:"#84cc16",gray:"#6b7280",white:"#ffffff"},x={screenshot:g.emerald,review:g.purple,outline:g.cyan,schema:g.amber,a11y:g.pink,ruler:g.lime,error:g.redDark,warning:g.amberDark,info:g.blueDark},Ue={heading:g.emerald,sectioning:g.blue,landmark:g.purple,grouping:g.cyan,form:g.amber,table:g.pink,list:g.lime,other:g.gray},xt={themeMode:"devbar-theme-mode",compactMode:"devbar-compact-mode"},E={colors:{primary:g.emerald,primaryHover:g.emeraldHover,primaryGlow:g.emeraldGlow,error:g.red,warning:g.amber,info:g.blue,purple:g.purple,cyan:g.cyan,pink:g.pink,lime:g.lime,bg:"#0a0f1a",bgCard:"rgba(17, 24, 39, 0.95)",bgElevated:"rgba(17, 24, 39, 0.98)",bgInput:"rgba(10, 15, 26, 0.8)",text:"#f1f5f9",textSecondary:"#94a3b8",textMuted:g.gray,border:"rgba(16, 185, 129, 0.2)",borderSubtle:"rgba(255, 255, 255, 0.05)"},fonts:{mono:"'Departure Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"},typography:{sizeXs:"0.625rem",sizeSm:"0.6875rem",sizeBase:"0.75rem",sizeMd:"0.8125rem",sizeLg:"0.875rem",sizeXl:"1rem",size2xl:"1.5rem",leadingTight:"1rem",leadingNormal:"1.5",leadingRelaxed:"1.6",weightNormal:"400",weightMedium:"500",weightSemibold:"600",trackingTight:"-0.02em",trackingNormal:"0",trackingWide:"0.05em",trackingWider:"0.1em"},radius:{sm:"4px",md:"6px",lg:"12px"},shadows:{sm:"0 1px 2px rgba(0, 0, 0, 0.4)",md:"0 4px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(16, 185, 129, 0.1)",lg:"0 8px 32px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(16, 185, 129, 0.15)",glow:"0 0 20px rgba(16, 185, 129, 0.15)",dropSm:"0 4px 12px rgba(0, 0, 0, 0.4)",dropLg:"0 8px 32px rgba(0, 0, 0, 0.5)",dropToolbar:"0 4px 12px rgba(0, 0, 0, 0.3)",dropXl:"0 20px 60px rgba(0, 0, 0, 0.6)"},transitions:{fast:"150ms"}},wt={colors:{primary:"#047857",primaryHover:"#065f46",primaryGlow:"rgba(4, 120, 87, 0.25)",error:"#dc2626",warning:"#d97706",info:"#2563eb",purple:"#7c3aed",cyan:"#0891b2",pink:"#db2777",lime:"#65a30d",bg:"#ecfdf5",bgCard:"rgba(255, 255, 255, 0.85)",bgElevated:"rgba(255, 255, 255, 0.95)",bgInput:"rgba(236, 253, 245, 0.9)",text:"#064e3b",textSecondary:"#065f46",textMuted:"#047857",border:"rgba(4, 120, 87, 0.3)",borderSubtle:"rgba(4, 120, 87, 0.1)"},fonts:E.fonts,typography:E.typography,radius:E.radius,shadows:{sm:"0 1px 2px rgba(4, 120, 87, 0.1)",md:"0 4px 12px rgba(4, 120, 87, 0.12), 0 0 0 1px rgba(4, 120, 87, 0.15)",lg:"0 8px 32px rgba(4, 120, 87, 0.15), 0 0 0 1px rgba(4, 120, 87, 0.2)",glow:"0 0 20px rgba(4, 120, 87, 0.15)",dropSm:"0 4px 12px rgba(0, 0, 0, 0.4)",dropLg:"0 8px 32px rgba(0, 0, 0, 0.5)",dropToolbar:"0 4px 12px rgba(0, 0, 0, 0.3)",dropXl:"0 20px 60px rgba(0, 0, 0, 0.6)"},transitions:E.transitions},S=E.fonts.mono,d={primary:"var(--devbar-color-primary)",primaryHover:"var(--devbar-color-primary-hover)",primaryGlow:"var(--devbar-color-primary-glow)",error:"var(--devbar-color-error)",warning:"var(--devbar-color-warning)",info:"var(--devbar-color-info)",purple:"var(--devbar-color-purple)",cyan:"var(--devbar-color-cyan)",pink:"var(--devbar-color-pink)",lime:"var(--devbar-color-lime)",bg:"var(--devbar-color-bg)",bgCard:"var(--devbar-color-bg-card)",bgElevated:"var(--devbar-color-bg-elevated)",bgInput:"var(--devbar-color-bg-input)",text:"var(--devbar-color-text)",textSecondary:"var(--devbar-color-text-secondary)",textMuted:"var(--devbar-color-text-muted)",border:"var(--devbar-color-border)",borderSubtle:"var(--devbar-color-border-subtle)"};function f(e,t){return`color-mix(in srgb, ${e} ${t}%, transparent)`}function nr(e){if(typeof localStorage>"u")return null;try{return localStorage.getItem(e)}catch(t){return console.warn("[devbar] localStorage access failed:",t),null}}function rr(e,t){if(typeof localStorage>"u")return!1;try{return localStorage.setItem(e,t),!0}catch(o){return o instanceof Error&&(o.name==="QuotaExceededError"?console.warn("[devbar] localStorage quota exceeded"):console.warn("[devbar] localStorage access failed:",o.message)),!1}}function ir(){let e=nr(xt.themeMode);return e==="dark"||e==="light"||e==="system"?e:"system"}function vt(e){rr(xt.themeMode,e)}function pe(e){return e==="system"?typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e}function Ct(e){return pe(e)==="light"?wt.colors:E.colors}function ee(e){return pe(e)==="light"?wt:E}function lo(e=E){return`
|
|
100
|
+
/* Departure Mono - retro pixel terminal font */
|
|
101
|
+
/* https://departuremono.com - SIL Open Font License */
|
|
102
|
+
@font-face {
|
|
103
|
+
font-family: 'Departure Mono';
|
|
104
|
+
src: url(data:font/woff2;base64,${Zt}) format('woff2');
|
|
105
|
+
font-weight: normal;
|
|
106
|
+
font-style: normal;
|
|
107
|
+
font-display: swap;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
:root {
|
|
111
|
+
/* Colors - Primary */
|
|
112
|
+
--devbar-color-primary: ${e.colors.primary};
|
|
113
|
+
--devbar-color-primary-hover: ${e.colors.primaryHover};
|
|
114
|
+
--devbar-color-primary-glow: ${e.colors.primaryGlow};
|
|
115
|
+
|
|
116
|
+
/* Colors - Semantic */
|
|
117
|
+
--devbar-color-error: ${e.colors.error};
|
|
118
|
+
--devbar-color-warning: ${e.colors.warning};
|
|
119
|
+
--devbar-color-info: ${e.colors.info};
|
|
120
|
+
|
|
121
|
+
/* Colors - Extended */
|
|
122
|
+
--devbar-color-purple: ${e.colors.purple};
|
|
123
|
+
--devbar-color-cyan: ${e.colors.cyan};
|
|
124
|
+
--devbar-color-pink: ${e.colors.pink};
|
|
125
|
+
--devbar-color-lime: ${e.colors.lime};
|
|
126
|
+
|
|
127
|
+
/* Colors - Backgrounds */
|
|
128
|
+
--devbar-color-bg: ${e.colors.bg};
|
|
129
|
+
--devbar-color-bg-card: ${e.colors.bgCard};
|
|
130
|
+
--devbar-color-bg-elevated: ${e.colors.bgElevated};
|
|
131
|
+
--devbar-color-bg-input: ${e.colors.bgInput};
|
|
132
|
+
|
|
133
|
+
/* Colors - Text */
|
|
134
|
+
--devbar-color-text: ${e.colors.text};
|
|
135
|
+
--devbar-color-text-secondary: ${e.colors.textSecondary};
|
|
136
|
+
--devbar-color-text-muted: ${e.colors.textMuted};
|
|
137
|
+
|
|
138
|
+
/* Colors - Borders */
|
|
139
|
+
--devbar-color-border: ${e.colors.border};
|
|
140
|
+
--devbar-color-border-subtle: ${e.colors.borderSubtle};
|
|
141
|
+
|
|
142
|
+
/* Typography - Font */
|
|
143
|
+
--devbar-font-mono: ${e.fonts.mono};
|
|
144
|
+
|
|
145
|
+
/* Typography - Font Sizes */
|
|
146
|
+
--devbar-text-xs: ${e.typography.sizeXs};
|
|
147
|
+
--devbar-text-sm: ${e.typography.sizeSm};
|
|
148
|
+
--devbar-text-base: ${e.typography.sizeBase};
|
|
149
|
+
--devbar-text-md: ${e.typography.sizeMd};
|
|
150
|
+
--devbar-text-lg: ${e.typography.sizeLg};
|
|
151
|
+
--devbar-text-xl: ${e.typography.sizeXl};
|
|
152
|
+
--devbar-text-2xl: ${e.typography.size2xl};
|
|
153
|
+
|
|
154
|
+
/* Typography - Line Heights */
|
|
155
|
+
--devbar-leading-tight: ${e.typography.leadingTight};
|
|
156
|
+
--devbar-leading-normal: ${e.typography.leadingNormal};
|
|
157
|
+
--devbar-leading-relaxed: ${e.typography.leadingRelaxed};
|
|
158
|
+
|
|
159
|
+
/* Typography - Font Weights */
|
|
160
|
+
--devbar-font-normal: ${e.typography.weightNormal};
|
|
161
|
+
--devbar-font-medium: ${e.typography.weightMedium};
|
|
162
|
+
--devbar-font-semibold: ${e.typography.weightSemibold};
|
|
163
|
+
|
|
164
|
+
/* Typography - Letter Spacing */
|
|
165
|
+
--devbar-tracking-tight: ${e.typography.trackingTight};
|
|
166
|
+
--devbar-tracking-normal: ${e.typography.trackingNormal};
|
|
167
|
+
--devbar-tracking-wide: ${e.typography.trackingWide};
|
|
168
|
+
--devbar-tracking-wider: ${e.typography.trackingWider};
|
|
169
|
+
|
|
170
|
+
/* Radius */
|
|
171
|
+
--devbar-radius-sm: ${e.radius.sm};
|
|
172
|
+
--devbar-radius-md: ${e.radius.md};
|
|
173
|
+
--devbar-radius-lg: ${e.radius.lg};
|
|
174
|
+
|
|
175
|
+
/* Shadows */
|
|
176
|
+
--devbar-shadow-sm: ${e.shadows.sm};
|
|
177
|
+
--devbar-shadow-md: ${e.shadows.md};
|
|
178
|
+
--devbar-shadow-lg: ${e.shadows.lg};
|
|
179
|
+
--devbar-shadow-glow: ${e.shadows.glow};
|
|
180
|
+
--devbar-shadow-drop-sm: ${e.shadows.dropSm};
|
|
181
|
+
--devbar-shadow-drop-lg: ${e.shadows.dropLg};
|
|
182
|
+
--devbar-shadow-drop-toolbar: ${e.shadows.dropToolbar};
|
|
183
|
+
--devbar-shadow-drop-xl: ${e.shadows.dropXl};
|
|
184
|
+
|
|
185
|
+
/* Transitions */
|
|
186
|
+
--devbar-transition-fast: ${e.transitions.fast};
|
|
187
|
+
}
|
|
188
|
+
`.trim()}function te(e=E){if(typeof document>"u")return;let t="devbar-theme-vars",o=document.getElementById(t);o||(o=document.createElement("style"),o.id=t,document.head.appendChild(o)),o.textContent=lo(e)}var co={display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",minWidth:"24px",minHeight:"24px",flexShrink:"0",borderRadius:"50%",border:"1px solid",transition:"all 150ms"},po={position:"fixed",top:"0",left:"0",right:"0",bottom:"0",backgroundColor:"rgba(0, 0, 0, 0.3)",zIndex:"10002",display:"flex",alignItems:"center",justifyContent:"center",paddingBottom:"60px"},uo={backgroundColor:"var(--devbar-color-bg-elevated)",borderRadius:"12px",width:"calc(100% - 32px)",maxWidth:"700px",maxHeight:"80vh",display:"flex",flexDirection:"column",fontFamily:S},mo=`
|
|
189
|
+
.devbar-item {
|
|
190
|
+
transition: opacity 150ms ease-out, color 150ms ease-out;
|
|
191
|
+
}
|
|
192
|
+
.devbar-item:hover {
|
|
193
|
+
opacity: 1 !important;
|
|
194
|
+
color: var(--devbar-color-primary);
|
|
195
|
+
}
|
|
196
|
+
.devbar-clickable {
|
|
197
|
+
transition: transform 150ms ease-out, background-color 150ms ease-out, box-shadow 150ms ease-out;
|
|
198
|
+
}
|
|
199
|
+
.devbar-clickable:hover {
|
|
200
|
+
transform: scale(1.1);
|
|
201
|
+
background-color: var(--devbar-color-primary-glow);
|
|
202
|
+
box-shadow: 0 0 8px var(--devbar-color-primary-glow);
|
|
203
|
+
}
|
|
204
|
+
[data-devbar] button:focus-visible,
|
|
205
|
+
[data-devbar] [role="button"]:focus-visible,
|
|
206
|
+
[data-devbar] [tabindex]:focus-visible,
|
|
207
|
+
[data-devbar-overlay] button:focus-visible,
|
|
208
|
+
[data-devbar-overlay] [role="button"]:focus-visible,
|
|
209
|
+
[data-devbar-overlay] [tabindex]:focus-visible {
|
|
210
|
+
outline: 2px solid var(--devbar-color-primary);
|
|
211
|
+
outline-offset: 3px;
|
|
212
|
+
box-shadow: 0 0 0 4px var(--devbar-color-primary-glow);
|
|
213
|
+
}
|
|
214
|
+
.devbar-badge {
|
|
215
|
+
transition: transform 150ms ease-out, box-shadow 150ms ease-out;
|
|
216
|
+
}
|
|
217
|
+
.devbar-badge:hover {
|
|
218
|
+
transform: scale(1.1);
|
|
219
|
+
box-shadow: 0 0 8px currentColor;
|
|
220
|
+
}
|
|
221
|
+
.devbar-collapse {
|
|
222
|
+
transition: transform 150ms ease-out, background-color 150ms ease-out, box-shadow 150ms ease-out, border-color 150ms ease-out;
|
|
223
|
+
}
|
|
224
|
+
.devbar-collapse:hover {
|
|
225
|
+
transform: scale(1.08);
|
|
226
|
+
background-color: var(--devbar-color-primary-glow);
|
|
227
|
+
box-shadow: 0 0 12px var(--devbar-color-primary-glow);
|
|
228
|
+
border-color: var(--devbar-color-primary);
|
|
229
|
+
}
|
|
230
|
+
@keyframes pulse {
|
|
231
|
+
0%, 100% { opacity: 1; }
|
|
232
|
+
50% { opacity: 0.5; }
|
|
233
|
+
}
|
|
234
|
+
@keyframes devbar-collapse {
|
|
235
|
+
0% { transform: scale(0.8); opacity: 0; }
|
|
236
|
+
100% { transform: scale(1); opacity: 1; }
|
|
237
|
+
}
|
|
238
|
+
@keyframes devbar-collapsed-pulse {
|
|
239
|
+
0%, 100% { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(16, 185, 129, 0.1); }
|
|
240
|
+
50% { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 0 8px rgba(16, 185, 129, 0.4); }
|
|
241
|
+
}
|
|
242
|
+
/* Modal scrollbars */
|
|
243
|
+
[data-devbar-overlay] * {
|
|
244
|
+
scrollbar-width: thin;
|
|
245
|
+
scrollbar-color: var(--devbar-color-primary-glow) transparent;
|
|
246
|
+
}
|
|
247
|
+
[data-devbar-overlay] *::-webkit-scrollbar {
|
|
248
|
+
width: 6px;
|
|
249
|
+
}
|
|
250
|
+
[data-devbar-overlay] *::-webkit-scrollbar-track {
|
|
251
|
+
background: transparent;
|
|
252
|
+
}
|
|
253
|
+
[data-devbar-overlay] *::-webkit-scrollbar-thumb {
|
|
254
|
+
background: var(--devbar-color-primary-glow);
|
|
255
|
+
border-radius: 3px;
|
|
256
|
+
}
|
|
257
|
+
[data-devbar-overlay] *::-webkit-scrollbar-thumb:hover {
|
|
258
|
+
background: var(--devbar-color-primary);
|
|
259
|
+
}
|
|
260
|
+
/* Main row - dense single row by default; metrics collapse before controls wrap. */
|
|
261
|
+
.devbar-main {
|
|
262
|
+
flex-wrap: nowrap;
|
|
263
|
+
max-width: 100%;
|
|
264
|
+
overflow: visible;
|
|
265
|
+
}
|
|
266
|
+
.devbar-status {
|
|
267
|
+
min-width: 0;
|
|
268
|
+
flex: 1 1 auto;
|
|
269
|
+
}
|
|
270
|
+
/* Info section - truncates if needed to fit single row */
|
|
271
|
+
.devbar-info {
|
|
272
|
+
white-space: nowrap;
|
|
273
|
+
min-width: 0;
|
|
274
|
+
max-width: 100%;
|
|
275
|
+
overflow: hidden !important;
|
|
276
|
+
}
|
|
277
|
+
.devbar-info > span {
|
|
278
|
+
flex-shrink: 0;
|
|
279
|
+
}
|
|
280
|
+
/* Actions container - stays on the same row until compact widths. */
|
|
281
|
+
.devbar-actions {
|
|
282
|
+
display: flex;
|
|
283
|
+
align-items: center;
|
|
284
|
+
gap: 0.5rem;
|
|
285
|
+
flex-basis: auto;
|
|
286
|
+
flex-shrink: 0;
|
|
287
|
+
flex-wrap: nowrap;
|
|
288
|
+
justify-content: flex-end;
|
|
289
|
+
min-width: 0;
|
|
290
|
+
max-width: 100%;
|
|
291
|
+
}
|
|
292
|
+
.devbar-actions::before {
|
|
293
|
+
content: "agent tools";
|
|
294
|
+
color: var(--devbar-color-text-muted);
|
|
295
|
+
font-size: 0.5625rem;
|
|
296
|
+
letter-spacing: 0.12em;
|
|
297
|
+
text-transform: uppercase;
|
|
298
|
+
white-space: nowrap;
|
|
299
|
+
opacity: 0.78;
|
|
300
|
+
}
|
|
301
|
+
[data-devbar-custom-controls="true"] .devbar-main {
|
|
302
|
+
flex-wrap: nowrap;
|
|
303
|
+
align-items: center;
|
|
304
|
+
overflow: visible;
|
|
305
|
+
}
|
|
306
|
+
[data-devbar-custom-controls="true"] .devbar-status {
|
|
307
|
+
flex: 0 1 auto;
|
|
308
|
+
max-width: 100%;
|
|
309
|
+
overflow: hidden;
|
|
310
|
+
}
|
|
311
|
+
[data-devbar-custom-controls="true"] .devbar-actions {
|
|
312
|
+
flex: 0 0 auto;
|
|
313
|
+
flex-wrap: nowrap;
|
|
314
|
+
min-width: 0;
|
|
315
|
+
max-width: 100%;
|
|
316
|
+
row-gap: 0.375rem;
|
|
317
|
+
}
|
|
318
|
+
.devbar-custom-controls {
|
|
319
|
+
max-width: 100%;
|
|
320
|
+
min-width: 0;
|
|
321
|
+
box-sizing: border-box;
|
|
322
|
+
overflow: visible;
|
|
323
|
+
}
|
|
324
|
+
.devbar-custom-controls-inline {
|
|
325
|
+
flex-wrap: nowrap !important;
|
|
326
|
+
flex-shrink: 1;
|
|
327
|
+
overflow: hidden;
|
|
328
|
+
}
|
|
329
|
+
.devbar-custom-controls-row {
|
|
330
|
+
width: 100%;
|
|
331
|
+
}
|
|
332
|
+
.devbar-custom-control {
|
|
333
|
+
max-width: min(16rem, 100%);
|
|
334
|
+
min-width: 0;
|
|
335
|
+
box-sizing: border-box;
|
|
336
|
+
overflow: hidden;
|
|
337
|
+
text-overflow: ellipsis;
|
|
338
|
+
white-space: nowrap;
|
|
339
|
+
}
|
|
340
|
+
.devbar-custom-group-label {
|
|
341
|
+
box-sizing: border-box;
|
|
342
|
+
}
|
|
343
|
+
@media (max-width: 1120px) {
|
|
344
|
+
[data-devbar-custom-controls="true"] .devbar-main {
|
|
345
|
+
flex-direction: column;
|
|
346
|
+
flex-wrap: nowrap !important;
|
|
347
|
+
align-items: center !important;
|
|
348
|
+
justify-content: center !important;
|
|
349
|
+
row-gap: 0.5rem;
|
|
350
|
+
width: fit-content !important;
|
|
351
|
+
max-width: 100%;
|
|
352
|
+
}
|
|
353
|
+
[data-devbar-custom-controls="true"] .devbar-status,
|
|
354
|
+
[data-devbar-custom-controls="true"] .devbar-custom-controls-inline,
|
|
355
|
+
[data-devbar-custom-controls="true"] .devbar-actions {
|
|
356
|
+
flex: 0 1 auto !important;
|
|
357
|
+
width: fit-content !important;
|
|
358
|
+
max-width: 100%;
|
|
359
|
+
}
|
|
360
|
+
[data-devbar-custom-controls="true"] .devbar-status {
|
|
361
|
+
justify-content: center !important;
|
|
362
|
+
}
|
|
363
|
+
[data-devbar-custom-controls="true"] .devbar-custom-controls-inline {
|
|
364
|
+
justify-content: center !important;
|
|
365
|
+
}
|
|
366
|
+
[data-devbar-custom-controls="true"] .devbar-actions {
|
|
367
|
+
justify-content: center !important;
|
|
368
|
+
flex-wrap: wrap !important;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
@media (max-width: 860px) {
|
|
372
|
+
.devbar-main {
|
|
373
|
+
flex-wrap: wrap;
|
|
374
|
+
row-gap: 0.5rem;
|
|
375
|
+
overflow: visible;
|
|
376
|
+
}
|
|
377
|
+
.devbar-status {
|
|
378
|
+
flex: 1 1 100%;
|
|
379
|
+
max-width: 100%;
|
|
380
|
+
justify-content: center;
|
|
381
|
+
}
|
|
382
|
+
.devbar-actions {
|
|
383
|
+
flex: 1 1 100%;
|
|
384
|
+
justify-content: center;
|
|
385
|
+
flex-wrap: wrap;
|
|
386
|
+
column-gap: 0.5rem;
|
|
387
|
+
row-gap: 0.375rem;
|
|
388
|
+
min-width: 0;
|
|
389
|
+
}
|
|
390
|
+
.devbar-custom-controls {
|
|
391
|
+
justify-content: center !important;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
/* BASE only (< 640px): fit content, centered horizontally */
|
|
395
|
+
@media (max-width: 639px) {
|
|
396
|
+
/* Expanded state: center and constrain width (exclude overlays and tooltips) */
|
|
397
|
+
[data-devbar]:not(.devbar-collapse):not([data-devbar-overlay]):not([data-devbar-tooltip]) {
|
|
398
|
+
width: auto !important;
|
|
399
|
+
min-width: auto !important;
|
|
400
|
+
max-width: calc(100vw - 24px) !important;
|
|
401
|
+
bottom: calc(env(safe-area-inset-bottom) + 12px) !important;
|
|
402
|
+
left: 50% !important;
|
|
403
|
+
right: auto !important;
|
|
404
|
+
transform: translateX(-50%) !important;
|
|
405
|
+
}
|
|
406
|
+
/* Collapsed state: JS handles positioning based on captured dot location */
|
|
407
|
+
.devbar-main {
|
|
408
|
+
flex-wrap: wrap;
|
|
409
|
+
justify-content: center;
|
|
410
|
+
overflow: visible;
|
|
411
|
+
max-width: calc(100vw - 24px);
|
|
412
|
+
gap: 0.375rem !important;
|
|
413
|
+
padding: 0.375rem 0.5rem !important;
|
|
414
|
+
}
|
|
415
|
+
/* Keep status row (connection dot + info) on same line */
|
|
416
|
+
.devbar-status {
|
|
417
|
+
flex-wrap: nowrap !important;
|
|
418
|
+
justify-content: center;
|
|
419
|
+
flex: 1 1 100%;
|
|
420
|
+
gap: 0.375rem !important;
|
|
421
|
+
}
|
|
422
|
+
.devbar-info {
|
|
423
|
+
justify-content: center;
|
|
424
|
+
flex-wrap: nowrap;
|
|
425
|
+
gap: 0.375rem !important;
|
|
426
|
+
max-width: 100%;
|
|
427
|
+
overflow: hidden;
|
|
428
|
+
white-space: nowrap !important;
|
|
429
|
+
}
|
|
430
|
+
.devbar-actions {
|
|
431
|
+
display: grid;
|
|
432
|
+
grid-template-columns: repeat(5, 32px);
|
|
433
|
+
justify-content: center;
|
|
434
|
+
justify-items: center;
|
|
435
|
+
align-items: center;
|
|
436
|
+
column-gap: 0.25rem;
|
|
437
|
+
row-gap: 0.25rem;
|
|
438
|
+
margin-top: 0;
|
|
439
|
+
flex-wrap: nowrap;
|
|
440
|
+
width: auto;
|
|
441
|
+
flex-shrink: 1;
|
|
442
|
+
}
|
|
443
|
+
.devbar-actions::before {
|
|
444
|
+
content: none;
|
|
445
|
+
display: none;
|
|
446
|
+
}
|
|
447
|
+
.devbar-actions button {
|
|
448
|
+
width: 32px !important;
|
|
449
|
+
height: 32px !important;
|
|
450
|
+
min-width: 32px !important;
|
|
451
|
+
min-height: 32px !important;
|
|
452
|
+
}
|
|
453
|
+
.devbar-actions button svg {
|
|
454
|
+
width: 14px;
|
|
455
|
+
height: 14px;
|
|
456
|
+
}
|
|
457
|
+
.devbar-custom-controls {
|
|
458
|
+
justify-content: center !important;
|
|
459
|
+
gap: 0.25rem !important;
|
|
460
|
+
padding: 0.375rem !important;
|
|
461
|
+
}
|
|
462
|
+
.devbar-custom-controls-inline {
|
|
463
|
+
padding: 0 !important;
|
|
464
|
+
}
|
|
465
|
+
.devbar-custom-control {
|
|
466
|
+
min-height: 0 !important;
|
|
467
|
+
max-width: 100% !important;
|
|
468
|
+
padding: 0.25rem 0.5rem !important;
|
|
469
|
+
font-size: 0.5625rem !important;
|
|
470
|
+
line-height: 1rem !important;
|
|
471
|
+
}
|
|
472
|
+
.devbar-custom-group-label {
|
|
473
|
+
flex-basis: 100% !important;
|
|
474
|
+
margin-left: 0 !important;
|
|
475
|
+
text-align: center;
|
|
476
|
+
}
|
|
477
|
+
.devbar-settings-grid {
|
|
478
|
+
grid-template-columns: 1fr !important;
|
|
479
|
+
}
|
|
480
|
+
.devbar-settings-grid > div {
|
|
481
|
+
border-right: none !important;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
`;var ar=3e4,Ge=null,St=null,Et=null;async function fo(){return Ge||(Ge=import("./axe-VMSEWUZL.js")),Ge}function sr(){return Ge!==null}function Tt(){fo().catch(()=>{})}async function Ce(e=!1){if(!e&&St&&Et&&Date.now()-Et<ar)return St;let t=await fo(),n=await(t.default??t).run({exclude:["[data-devbar]"]},{runOnly:{type:"tag",values:["wcag2a","wcag2aa","wcag21a","wcag21aa","best-practice"]}}),r={violations:n.violations,passes:n.passes.map(i=>({id:i.id,description:i.description})),incomplete:n.incomplete,inapplicable:n.inapplicable.map(i=>({id:i.id})),timestamp:new Date().toISOString(),url:window.location.href};return St=r,Et=Date.now(),r}function qe(e){let t={critical:0,serious:0,moderate:0,minor:0,total:0};for(let o of e)t[o.impact]+=1,t.total+=1;return t}function Ye(e){let t=new Map,o=["critical","serious","moderate","minor"];for(let n of o)t.set(n,[]);for(let n of e){let r=t.get(n.impact);r&&r.push(n)}return t}function Je(e){return{critical:g.red,serious:g.orange,moderate:g.amber,minor:g.lime}[e]??g.gray}function Ke(e){let t=qe(e.violations),o=["# Accessibility Audit Report","",`**URL:** ${e.url}`,`**Timestamp:** ${e.timestamp}`,"","## Summary","",`- **Total violations:** ${t.total}`,`- Critical: ${t.critical}`,`- Serious: ${t.serious}`,`- Moderate: ${t.moderate}`,`- Minor: ${t.minor}`,`- Passes: ${e.passes.length}`,`- Incomplete: ${e.incomplete.length}`,""];if(e.violations.length===0)return o.push("No accessibility violations found."),o.join(`
|
|
485
|
+
`);let n=Ye(e.violations);for(let[r,i]of n)if(i.length!==0){o.push(`## ${r.charAt(0).toUpperCase()+r.slice(1)} (${i.length})`),o.push("");for(let a of i){o.push(`### ${a.id}`),o.push(""),o.push(`**${a.help}**`),o.push(""),o.push(a.description),o.push(""),o.push(`- Help: ${a.helpUrl}`),o.push(`- Elements affected: ${a.nodes.length}`),o.push("");for(let s of a.nodes.slice(0,10)){let l=s.html.length>120?`${s.html.slice(0,120)}...`:s.html;o.push(` - \`${l}\``),s.target.length>0&&o.push(` Selector: \`${s.target.join(", ")}\``)}a.nodes.length>10&&o.push(` - ... and ${a.nodes.length-10} more`),o.push("")}}return o.join(`
|
|
486
|
+
`)}function Ot(e){return e?e===!0?{enabled:!0,logLifecycle:!0,logStateChanges:!0,logWebSocket:!0,logPerformance:!0}:{enabled:e.enabled,logLifecycle:e.logLifecycle??!0,logStateChanges:e.logStateChanges??!0,logWebSocket:e.logWebSocket??!0,logPerformance:e.logPerformance??!0}:{enabled:!1}}var Se=class{config;prefix="[devbar]";constructor(t){this.config=t}setConfig(t){this.config=t}lifecycle(t,o){this.config.enabled&&this.config.logLifecycle&&this.log("lifecycle",t,o)}state(t,o){this.config.enabled&&this.config.logStateChanges&&this.log("state",t,o)}ws(t,o){this.config.enabled&&this.config.logWebSocket&&this.log("ws",t,o)}perf(t,o){this.config.enabled&&this.config.logPerformance&&this.log("perf",t,o)}log(t,o,n){let r=new Date().toISOString().split("T")[1].slice(0,-1),a={lifecycle:g.emerald,state:g.blue,ws:g.purple,perf:g.amber}[t]||g.gray;n!==void 0?console.log(`%c${this.prefix}%c [${t}] %c${r}%c ${o}`,`color: ${g.emerald}; font-weight: bold`,`color: ${a}`,`color: ${g.gray}`,"color: inherit",n):console.log(`%c${this.prefix}%c [${t}] %c${r}%c ${o}`,`color: ${g.emerald}; font-weight: bold`,`color: ${a}`,`color: ${g.gray}`,"color: inherit")}};var lr="http://localhost:3846/api/feedback",go=["fix","question","praise"];function ho(e,t=5){if(e.id)return`#${CSS.escape(e.id)}`;let o=[],n=e,r=0;for(;n&&n.nodeType===1&&r<t;){if(n.id){o.unshift(`#${CSS.escape(n.id)}`);break}let i=n.tagName.toLowerCase(),a=(n.getAttribute("class")??"").split(/\s+/).filter(l=>l&&!l.startsWith("data-")).slice(0,1).map(l=>`.${CSS.escape(l)}`).join("");i+=a;let s=n.parentElement;if(s){let l=Array.from(s.children).filter(c=>c.tagName===n?.tagName);l.length>1&&(i+=`:nth-of-type(${l.indexOf(n)+1})`)}o.unshift(i),n=n.parentElement,r+=1}return o.join(" > ")}function bo(e){return e<=600?"mobile":e<=1024?"tablet":"desktop"}function cr(){return typeof crypto<"u"&&"randomUUID"in crypto?`pin_${crypto.randomUUID()}`:`pin_${Math.floor(Math.random()*1e9).toString(16)}`}async function yo(e,t){try{await fetch(t,{method:"POST",mode:"no-cors",headers:{"content-type":"text/plain"},body:JSON.stringify({pins:[e]})})}catch{}}var dr="http://www.w3.org/1999/xhtml";function xo(e={}){let t=e.endpoint??lr,o=document.createElementNS(dr,"div");o.setAttribute("data-devbar","annotate-overlay"),o.setAttribute("data-devbar-overlay",""),Object.assign(o.style,{position:"fixed",inset:"0",zIndex:"2147483646",pointerEvents:"none"});let n=document.createElement("div");n.setAttribute("data-devbar-overlay",""),Object.assign(n.style,{position:"fixed",border:"2px solid #2f81f7",background:"rgba(47,129,247,0.12)",borderRadius:"3px",pointerEvents:"none",transition:"all 60ms ease-out",display:"none"}),o.appendChild(n);let r=document.createElement("div");r.setAttribute("data-devbar-overlay",""),Object.assign(r.style,{position:"fixed",inset:"0",pointerEvents:"none"}),o.appendChild(r),document.body.appendChild(o),document.body.style.cursor="crosshair";let i=!1,a=null;function s(y){return!!y.closest("[data-devbar], [data-devbar-overlay], [data-devbar-tooltip], [data-devbar-ruler]")}function l(y){if(i)return;let w=y.target;if(!w||s(w)){n.style.display="none",a=null;return}if(w===a)return;a=w;let h=w.getBoundingClientRect();if(h.width===0&&h.height===0){n.style.display="none";return}Object.assign(n.style,{display:"block",left:`${h.left}px`,top:`${h.top}px`,width:`${h.width}px`,height:`${h.height}px`})}function c(y){if(i)return;let w=y.target;if(!w||s(w))return;y.preventDefault(),y.stopPropagation();let h=w.getBoundingClientRect(),v=h.width?(y.clientX-h.left)/h.width:.5,C=h.height?(y.clientY-h.top)/h.height:.5;u(w,y.clientX,y.clientY,v,C)}function p(y){y.key==="Escape"&&(y.preventDefault(),b(),e.onExit?.())}function u(y,w,h,v,C){i=!0,n.style.display="none";let T="fix",j=document.createElement("div");j.setAttribute("data-devbar-overlay",""),Object.assign(j.style,{position:"fixed",left:`${Math.min(w,window.innerWidth-300)}px`,top:`${Math.min(h,window.innerHeight-200)}px`,zIndex:"2147483647",width:"288px",background:"#161b22",color:"#e6edf3",border:"1px solid #2f81f7",borderRadius:"8px",padding:"10px",pointerEvents:"auto",font:"12px ui-monospace, monospace",boxShadow:"0 8px 30px rgba(0,0,0,0.4)"});let Ne=document.createElement("div");Object.assign(Ne.style,{display:"flex",gap:"6px",marginBottom:"8px"});let dt=go.map(Q=>{let F=document.createElement("button");return F.type="button",F.textContent=Q,Object.assign(F.style,{flex:"1",padding:"5px",borderRadius:"5px",border:`1px solid ${Q===T?"#2f81f7":"#2d333b"}`,background:Q===T?"rgba(47,129,247,0.25)":"#1c2230",color:"inherit",cursor:"pointer",font:"inherit"}),F.onclick=()=>{T=Q;for(let[Yn,Kt]of dt.entries()){let Qt=go[Yn]===T;Kt.style.borderColor=Qt?"#2f81f7":"#2d333b",Kt.style.background=Qt?"rgba(47,129,247,0.25)":"#1c2230"}},Ne.appendChild(F),F}),J=document.createElement("textarea");J.placeholder="Comment for Claude \u2014 e.g. 'this gap should be 16px'",Object.assign(J.style,{width:"100%",minHeight:"56px",background:"#0d1117",color:"inherit",border:"1px solid #2d333b",borderRadius:"5px",padding:"7px",font:"inherit",resize:"vertical",boxSizing:"border-box"});let se=document.createElement("div");Object.assign(se.style,{display:"flex",gap:"6px",marginTop:"8px"});let M=document.createElement("button");M.type="button",M.textContent="Pin",Object.assign(M.style,{padding:"5px 12px",borderRadius:"5px",border:"1px solid #2f81f7",background:"#2f81f7",color:"#fff",cursor:"pointer",fontWeight:"600",font:"inherit"});let K=document.createElement("button");K.type="button",K.textContent="Cancel",Object.assign(K.style,{padding:"5px 12px",borderRadius:"5px",border:"1px solid #2d333b",background:"#1c2230",color:"inherit",cursor:"pointer",font:"inherit"});function We(){j.remove(),i=!1}K.onclick=We,M.onclick=()=>{let Q=J.value.trim();if(!Q)return;let F={id:cr(),source:"devbar",kind:T,comment:Q,route:window.location.pathname,domSelector:ho(y),viewport:bo(window.innerWidth),region:{x:Number(v.toFixed(4)),y:Number(C.toFixed(4))},createdAt:new Date().toISOString()};yo(F,t),m(w,h,T),We()},se.append(M,K),j.append(Ne,J,se),o.appendChild(j),J.focus()}function m(y,w,h){let v=document.createElement("div");v.setAttribute("data-devbar-overlay","");let C=h==="fix"?"#f85149":h==="question"?"#a371f7":"#3fb950";Object.assign(v.style,{position:"fixed",left:`${y}px`,top:`${w}px`,width:"14px",height:"14px",marginLeft:"-7px",marginTop:"-7px",borderRadius:"999px",background:C,border:"2px solid #fff",pointerEvents:"none"}),r.appendChild(v)}document.addEventListener("mousemove",l,!0),document.addEventListener("click",c,!0),document.addEventListener("keydown",p,!0);function b(){document.removeEventListener("mousemove",l,!0),document.removeEventListener("click",c,!0),document.removeEventListener("keydown",p,!0),o.remove(),document.body.style.cursor=""}return b}function kt(e,t={}){let o=null;function n(){return{id:"annotate",label:"Annotate",tooltip:"Pin visual feedback for Claude (Esc to exit)",active:o!==null,variant:"info",onClick:()=>{o?(o(),o=null):o=xo({...t,onExit:()=>{o=null,e(n())}}),e(n())}}}e(n())}function O(e){e.showOutlineModal=!1,e.showSchemaModal=!1,e.showA11yModal=!1,e.showSettingsPopover=!1,e.showDesignReviewConfirm=!1,e.consoleFilter=null,e.rulerMode&&(e.rulerMode=!1,e.rulerCleanup&&(e.rulerCleanup(),e.rulerCleanup=null),e.rulerOverlay=null,e.rulerPinnedElements=[])}function wo(e){e.keydownHandler=t=>{if(t.key==="Escape"&&(e.showSettingsPopover||e.consoleFilter||e.showOutlineModal||e.showSchemaModal||e.showA11yModal||e.showDesignReviewConfirm)){O(e),e.render();return}if((t.ctrlKey||t.metaKey)&&t.shiftKey){if(t.key==="M"||t.key==="m"){t.preventDefault(),e.toggleCompactMode();return}if(t.key==="S"||t.key==="s")t.preventDefault(),e.sweetlinkConnected&&!e.capturing&&e.handleScreenshot(!1);else if(t.key==="C"||t.key==="c"){let o=window.getSelection();(!o||o.toString().length===0)&&(t.preventDefault(),e.capturing||e.handleScreenshot(!0))}}},window.addEventListener("keydown",e.keydownHandler)}function vo(e){let t=()=>{let o=window.innerWidth,n=window.innerHeight,i=["2xl","xl","lg","md","sm"].find(a=>o>=_[a].min)??"base";e.breakpointInfo={tailwindBreakpoint:i,dimensions:`${o}x${n}`},e.render()};t(),e.resizeHandler=t,window.addEventListener("resize",e.resizeHandler)}function Co(e){let t=["fcp","lcp","cls","inp","pageSize"],{errorCount:p,warningCount:u,infoCount:m}=e.getLogCounts(),b=(p>0?1:0)+(u>0?1:0)+(m>0?1:0),{showScreenshot:y,position:w}=e.options,h=(y?1:0)+9,v=typeof window<"u"?window.innerWidth:1024,j=v-(w==="bottom-center"?32:96),dt=v<=860?0:h*32+96,J=128+b*30+dt+24,se=j-J,M=Math.floor(se/118);M<t.length&&M>0&&(M=Math.floor((se-24)/118)),M=Math.max(0,Math.min(M,t.length));let K=t.slice(0,M),We=t.slice(M);return{visible:K,hidden:We}}function So(e){let t=()=>{let n=performance.getEntriesByType("paint").find(m=>m.name==="first-contentful-paint"),r=n?`${Math.round(n.startTime)}ms`:"-",i=e.lcpValue!==null?`${Math.round(e.lcpValue)}ms`:"-",a=e.clsValue.toFixed(3),s=e.inpValue>0?`${Math.round(e.inpValue)}ms`:"-",l=performance.getEntriesByType("resource"),c=0,p=performance.getEntriesByType("navigation")[0];p&&(c+=p.transferSize||0),l.forEach(m=>{c+=m.transferSize||0});let u=c>1024*1024?`${(c/(1024*1024)).toFixed(1)} MB`:`${Math.round(c/1024)} KB`;e.perfStats={fcp:r,lcp:i,cls:a,inp:s,totalSize:u},e.debug.perf("Performance stats updated",e.perfStats),e.render()};document.readyState==="complete"?setTimeout(t,100):window.addEventListener("load",()=>setTimeout(t,100));try{e.fcpObserver=new PerformanceObserver(o=>{o.getEntries().forEach(r=>{r.name==="first-contentful-paint"&&t()})}),e.fcpObserver.observe({type:"paint",buffered:!0})}catch(o){console.warn("[GlobalDevBar] FCP PerformanceObserver not supported",o)}try{e.lcpObserver=new PerformanceObserver(o=>{let n=o.getEntries(),r=n[n.length-1];r&&(e.lcpValue=r.startTime,e.debug.perf("LCP updated",{lcp:e.lcpValue}),t())}),e.lcpObserver.observe({type:"largest-contentful-paint",buffered:!0})}catch(o){console.warn("[GlobalDevBar] LCP PerformanceObserver not supported",o)}try{e.clsObserver=new PerformanceObserver(o=>{for(let n of o.getEntries()){let r=n;!r.hadRecentInput&&r.value&&(e.clsValue+=r.value,e.debug.perf("CLS updated",{cls:e.clsValue}),t())}}),e.clsObserver.observe({type:"layout-shift",buffered:!0})}catch(o){console.warn("[GlobalDevBar] CLS PerformanceObserver not supported",o)}try{e.inpObserver=new PerformanceObserver(o=>{for(let n of o.getEntries()){let r=n;r.duration&&r.duration>e.inpValue&&(e.inpValue=r.duration,e.debug.perf("INP updated",{inp:e.inpValue}),t())}}),e.inpObserver.observe({type:"event",buffered:!0,durationThreshold:16})}catch(o){console.warn("[GlobalDevBar] INP PerformanceObserver not supported",o)}}var pr={position:"fixed",zIndex:"10004",backgroundColor:"var(--devbar-color-bg-elevated)",border:`1px solid ${d.border}`,borderRadius:"6px",padding:"10px 12px",fontSize:"0.6875rem",fontFamily:S,maxWidth:"280px",boxShadow:E.shadows.dropSm,pointerEvents:"auto"};function To(e){let t=document.createElement("div");return t.setAttribute("data-devbar","true"),t.setAttribute("data-devbar-tooltip","true"),Object.assign(t.style,pr),e.activeTooltips.add(t),t}function Ee(e,t){t.remove(),e.activeTooltips.delete(t)}function Oo(e){for(let t of e.activeTooltips)t.remove();e.activeTooltips.clear()}function ue(e,t,o,n){let r=document.createElement("div"),i=n||e.settingsManager.get("accentColor")||d.primary;Object.assign(r.style,{color:i,fontWeight:"600",marginBottom:"4px"}),r.textContent=o,t.appendChild(r)}function ko(e,t){let o=document.createElement("div");Object.assign(o.style,{color:d.text,marginBottom:"10px",lineHeight:"1.4"}),o.textContent=t,e.appendChild(o)}function Mt(e,t){let o=document.createElement("div");Object.assign(o.style,{color:d.textMuted,fontSize:"0.625rem",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"6px"}),o.textContent=t,e.appendChild(o)}function At(e,t,o,n,r="70px"){let i=document.createElement("div");Object.assign(i.style,{display:"flex",alignItems:"center",gap:"8px"});let a=document.createElement("span");Object.assign(a.style,{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:n,flexShrink:"0"}),i.appendChild(a);let s=document.createElement("span");Object.assign(s.style,{color:n,fontWeight:"500",minWidth:r}),s.textContent=t,i.appendChild(s);let l=document.createElement("span");Object.assign(l.style,{color:d.textMuted}),l.textContent=o,i.appendChild(l),e.appendChild(i)}function Eo(e,t,o){let n=document.createElement("div");Object.assign(n.style,{display:"flex",gap:"8px",lineHeight:"1.4"});let r=document.createElement("span");Object.assign(r.style,{color:d.textMuted}),r.textContent=t,n.appendChild(r);let i=document.createElement("span");Object.assign(i.style,{color:d.text}),i.textContent=o,n.appendChild(i),e.appendChild(n)}function Ao(e,t){let o=t.getBoundingClientRect(),r=o.left+o.width/2>window.innerWidth/2;e.style.bottom=`${window.innerHeight-o.top+8}px`,document.body.appendChild(e);let i=e.getBoundingClientRect();if(r){let s=o.right-i.width;e.style.left=`${Math.max(10,s)}px`}else e.style.left=`${o.left}px`,e.getBoundingClientRect().right>window.innerWidth-10&&(e.style.left=`${window.innerWidth-i.width-10}px`);e.getBoundingClientRect().left<10&&(e.style.left="10px")}function ur(e,t){return t.style.color||getComputedStyle(t).color||e.settingsManager.get("accentColor")||d.primary}function R(e,t,o,n){Te(e,t,r=>{let a=o().split(`
|
|
487
|
+
`),s=ur(e,t);for(let l of a){let c=document.createElement("div");Object.assign(c.style,{color:s,lineHeight:"1.4"}),c.textContent=l,r.appendChild(c)}},n)}function Te(e,t,o,n){if(!e.options.showTooltips)return;let r=null,i=null,a=()=>{i&&(clearTimeout(i),i=null)},s=()=>{a(),i=setTimeout(()=>{r&&(Ee(e,r),r=null)},100)};t.onmouseenter=()=>{e.overlayElement||(a(),n?.onEnter?.(),r&&(Ee(e,r),r=null),r=To(e),r.onmouseenter=a,r.onmouseleave=s,o(r),Ao(r,t))},t.onmouseleave=()=>{s(),n?.onLeave?.()};let l=t.onclick;t.onclick=c=>{a(),r&&(Ee(e,r),r=null),l&&l.call(t,c)}}function Mo(e,t,o){if(!e.options.showTooltips)return;let n=null,r=!1,i=t.style.opacity||"0.7",a=p=>{t.style.opacity=p?"1":i},s=()=>{n&&Ee(e,n),n=To(e),o(n),Ao(n,t)},l=()=>{n&&(Ee(e,n),n=null)};t.onclick=p=>{p.stopPropagation(),!e.overlayElement&&(r?(r=!1,a(!1),l()):(r=!0,a(!0),s()))},t.onmouseenter=()=>{e.overlayElement||r||(a(!0),s())},t.onmouseleave=()=>{r||(a(!1),l())};let c=p=>{r&&n&&!t.contains(p.target)&&!n.contains(p.target)&&(r=!1,a(!1),l())};document.addEventListener("click",c),t._tooltipCleanup=()=>{document.removeEventListener("click",c),l()}}function mr(e,t,o){let n=document.createElement("div");Object.assign(n.style,{display:"flex",gap:"8px",alignItems:"baseline"});let r=document.createElement("span");Object.assign(r.style,{color:d.textMuted,fontSize:"0.625rem",minWidth:"60px",wordBreak:"break-word"}),r.textContent=t,n.appendChild(r);let i=document.createElement("span");Object.assign(i.style,{color:d.text,wordBreak:"break-word"}),i.textContent=o,n.appendChild(i),e.appendChild(n)}function Qe(e,t,o){let n=document.createElement("div");Object.assign(n.style,{display:"flex",alignItems:"flex-start",gap:"6px",padding:"6px 8px",backgroundColor:f(e,8),border:`1px solid ${f(e,19)}`,borderRadius:"4px",...o});let r=document.createElement("span");return r.textContent=t.text,Object.assign(r.style,{color:t.color,flexShrink:"0",...t.extraStyles}),n.appendChild(r),n}function Ro(e,t,o){let n=document.createElement("div");Object.assign(n.style,{color:d.textMuted,fontSize:"0.625rem",marginTop:"2px",...o}),n.textContent=t,e.appendChild(n)}function fr(e,t){let o=Qe(d.warning,{text:"\u26A0",color:d.warning},{marginTop:"8px",fontSize:"0.625rem"}),n=document.createElement("span");Object.assign(n.style,{color:d.warning}),n.textContent=t,o.appendChild(n),e.appendChild(o)}function gr(e,t,o){let n=Qe(d.primary,{text:"\u2713",color:d.primary,extraStyles:{fontWeight:"600"}}),r=document.createElement("div"),i=document.createElement("div");Object.assign(i.style,{color:d.primary,fontWeight:"500"}),i.textContent=t,r.appendChild(i),o&&Ro(r,o,{wordBreak:"break-all"}),n.appendChild(r),e.appendChild(n)}function hr(e,t,o){let n=Qe(d.error,{text:"\xD7",color:d.error,extraStyles:{fontWeight:"600",fontSize:"0.875rem"}}),r=document.createElement("div"),i=document.createElement("div");Object.assign(i.style,{color:d.error,fontWeight:"500"}),i.textContent=t,r.appendChild(i),Ro(r,o),n.appendChild(r),e.appendChild(n)}function br(e,t){let o=Qe(d.info,{text:"~",color:d.info,extraStyles:{fontWeight:"600",animation:"pulse 1s infinite"}},{alignItems:"center"}),n=document.createElement("span");Object.assign(n.style,{color:d.info}),n.textContent=t,o.appendChild(n),e.appendChild(o)}function yr(e,t,o){return{addTitle:n=>ue(e,t,n,o),addDescription:n=>ko(t,n),addSectionHeader:n=>Mt(t,n),addShortcut:(n,r)=>mr(t,n,r),addWarning:n=>fr(t,n),addSuccess:(n,r)=>gr(t,n,r),addError:(n,r)=>hr(t,n,r),addProgress:n=>br(t,n)}}function D(e,t,o,n){Te(e,t,r=>{n(r,yr(e,r,o))})}function xr(e,t){Mt(e,"Thresholds");let o=document.createElement("div");Object.assign(o.style,{display:"flex",flexDirection:"column",gap:"4px"}),At(o,"Good",t.good,d.primary),At(o,"Needs work",t.needsWork,d.warning),At(o,"Poor",t.poor,d.error),e.appendChild(o)}function Lo(e,t,o,n,r){Te(e,t,i=>{ue(e,i,o),ko(i,n),xr(i,r)})}var wr=Object.entries(_).map(([e,t])=>({name:e,range:t.min===0?"<640px":`\u2265${t.min}px`}));function vr(e,t,o){let n=document.createElement("div");Object.assign(n.style,{display:"flex",gap:"8px"});let r=document.createElement("span");Object.assign(r.style,{color:o?d.primary:d.textMuted,fontWeight:o?"600":"400",minWidth:"32px"}),r.textContent=e,n.appendChild(r);let i=document.createElement("span");return Object.assign(i.style,{color:o?d.text:d.textMuted}),i.textContent=t,n.appendChild(i),n}function Cr(e){let t=document.createElement("div");Object.assign(t.style,{display:"flex",flexDirection:"column",gap:"2px",fontSize:"0.625rem"});for(let o of wr)t.appendChild(vr(o.name,o.range,o.name===e));return t}function Io(e,t,o,n,r){Te(e,t,i=>{ue(e,i,"Tailwind Breakpoint");let a=document.createElement("div");Object.assign(a.style,{marginBottom:"10px"}),Eo(a,"Current:",`${o} (${r})`),Eo(a,"Viewport:",n),i.appendChild(a),Mt(i,"Breakpoints"),i.appendChild(Cr(o))})}function Do(e,t,o,n){Te(e,t,r=>{ue(e,r,o);let i=document.createElement("div");Object.assign(i.style,{color:d.text,lineHeight:"1.4"}),i.textContent=n,r.appendChild(i)})}function B(){return typeof window<"u"&&window.__devbarSweetlinkDemo===!0}function Rt(e){return B()||e.startsWith(".sweetlink/demo/")||e.includes("/.sweetlink/demo/")}function Bo(){return"Demo only: no local file was written."}function me(e,t){return e&&B()?`Sweetlink demo mode: simulated bridge, sample artifacts only${t?` (${t})`:""}`:e?`Sweetlink connected${t?` (${t})`:""}`:`Sweetlink disconnected${t?` (${t})`:""}`}function Po(e){if(!e.container)return;let{position:t,accentColor:o}=e.options,{errorCount:n,warningCount:r}=e.getLogCounts(),i;if(e.lastDotPosition)i=t.startsWith("top")?{top:`${e.lastDotPosition.top-13}px`,left:`${e.lastDotPosition.left-13}px`}:{bottom:`${e.lastDotPosition.bottom-13}px`,left:`${e.lastDotPosition.left-13}px`},e.lastDotPosition=null;else{let p={"bottom-left":{bottom:"27px",left:"86px"},"bottom-right":{bottom:"27px",right:"29px"},"top-left":{top:"27px",left:"86px"},"top-right":{top:"27px",right:"29px"},"bottom-center":{bottom:"19px",left:"50%",transform:"translateX(-50%)"}};i=p[t]??p["bottom-left"]}let a=e.container;a.className="devbar-collapse",e.resetPositionStyles(a),a.style.setProperty("--devbar-color-accent",o),Object.assign(a.style,{position:"fixed",...i,zIndex:"9999",backgroundColor:"var(--devbar-color-bg-card)",border:`1px solid ${o}`,borderRadius:"50%",color:o,boxShadow:`${E.shadows.dropToolbar}, 0 0 0 1px ${f(o,10)}`,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",width:"26px",height:"26px",boxSizing:"border-box",animation:"devbar-collapse 150ms ease-out, devbar-collapsed-pulse 2s ease-in-out 0.2s 3"}),a.onclick=()=>{e.collapsed=!1,e.debug.state("Expanded DevBar"),e.render()};let s=document.createElement("span");Object.assign(s.style,{display:"flex",alignItems:"center",justifyContent:"center",position:"relative"});let l=document.createElement("span");Object.assign(l.style,{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:e.sweetlinkConnected?d.primary:d.textMuted,boxShadow:e.sweetlinkConnected?`0 0 6px ${d.primary}`:"none",transition:"transform 150ms ease-out, opacity 150ms ease-out"}),s.appendChild(l);let c=document.createElement("span");Object.assign(c.style,{position:"absolute",width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",opacity:"0",transition:"opacity 150ms ease-out",fontSize:"10px",color:o}),c.textContent="\u2197",s.appendChild(c),R(e,a,()=>`Click to expand DevBar (${me(e.sweetlinkConnected)})${n>0?`
|
|
488
|
+
${n} console error${n===1?"":"s"}`:""}`,{onEnter:()=>{l.style.opacity="0",l.style.transform="scale(0)",c.style.opacity="1"},onLeave:()=>{l.style.opacity="1",l.style.transform="scale(1)",c.style.opacity="0"}}),a.appendChild(s),n>0&&a.appendChild(e.createCollapsedBadge(n,f(g.red,95),r>0?"12px":"-6px")),r>0&&a.appendChild(e.createCollapsedBadge(r,f(g.amber,95),"-6px"))}var fe={"bottom-left":{bottom:"20px",left:"80px"},"bottom-right":{bottom:"20px",right:"16px"},"top-left":{top:"20px",left:"80px"},"top-right":{top:"20px",right:"16px"},"bottom-center":{bottom:"12px",left:"50%",transform:"translateX(-50%)"}};function Oe(e,t){let o=t.getBoundingClientRect();e.lastDotPosition={left:o.left+o.width/2,top:o.top+o.height/2,bottom:window.innerHeight-(o.top+o.height/2)}}function Xe(e){let t=document.createElement("span");t.className="devbar-clickable",Object.assign(t.style,{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"transparent",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",flexShrink:"0"});let o=document.createElement("span");return o.className="devbar-conn-dot",Object.assign(o.style,{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:e.sweetlinkConnected?d.primary:d.textMuted,boxShadow:e.sweetlinkConnected?`0 0 6px ${d.primary}`:"none",transition:"all 300ms"}),t.appendChild(o),t}var Lt=!1;function It(e){Lt=e}function ge(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function Sr(e,t){return e==="warning"?x.warning:e==="info"?x.info:t}function Er(e){return typeof e.tooltip=="function"?e.tooltip()??"":e.tooltip??""}function ke(e,t,o){let n=Sr(e.variant,t),r=e.active??!1,i=e.disabled??!1,a=!!e.onClick,s=!!e.tooltip,l=document.createElement(a?"button":"span");l.className=a?"devbar-custom-control":"devbar-custom-control devbar-custom-badge",a&&(l.type="button"),Object.assign(l.style,{padding:"4px 10px",boxSizing:"border-box",minWidth:"0",maxWidth:"min(16rem, 100%)",backgroundColor:r?f(n,20):"transparent",border:`1px solid ${r?n:f(n,38)}`,borderRadius:"6px",color:r?n:f(n,60),fontSize:"0.625rem",lineHeight:"1.2",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",cursor:a?i?"not-allowed":"pointer":s?"help":"default",opacity:i?"0.5":"1",transition:a?"all 150ms":"none"}),l.textContent=e.label;let c=()=>{l.style.backgroundColor=f(n,13),l.style.borderColor=n,l.style.color=n},p=()=>{l.style.backgroundColor=r?f(n,20):"transparent",l.style.borderColor=r?n:f(n,38),l.style.color=r?n:f(n,60)};return a&&(l.disabled=i,i||(l.onclick=()=>e.onClick())),o&&s?R(o,l,()=>Er(e),{onEnter:a&&!i?c:void 0,onLeave:a&&!i?p:void 0}):a&&!i&&(l.onmouseenter=c,l.onmouseleave=p),l}function V(e,t){return e==="auto"?t?"local":"download":e}var Tr=d.primary,$e=[{name:"Emerald",value:g.emerald},{name:"Blue",value:g.blue},{name:"Purple",value:g.purple},{name:"Pink",value:g.pink},{name:"Amber",value:g.amber},{name:"Cyan",value:g.cyan}],he={version:1,position:"bottom-left",themeMode:"system",compactMode:!1,accentColor:Tr,showScreenshot:!0,showConsoleBadges:!0,showTooltips:!0,saveLocation:"auto",screenshotQuality:.65,showMetrics:{breakpoint:!0,fcp:!0,lcp:!0,cls:!0,inp:!0,pageSize:!0},debug:!1};function No(e={}){return{...he,...e,version:1,showMetrics:{...he.showMetrics,...e.showMetrics}}}var Dt="devbar-settings",Bt=class e{defaultSettings;settings;ws=null;sweetlinkConnected=!1;changeCallbacks=[];saveTimeout=null;pendingLoadResolvers=[];static SAVE_DEBOUNCE_MS=300;constructor(t={}){this.defaultSettings=No(t),this.settings=this.loadFromLocalStorage()}setDefaultSettings(t){this.defaultSettings=No(t),this.settings=this.hasLocalStorageSettings()?this.migrateSettings(this.settings):{...this.defaultSettings}}setWebSocket(t){this.ws=t,this.sweetlinkConnected=t!==null&&t.readyState===WebSocket.OPEN}setConnected(t){this.sweetlinkConnected=t}getSettings(){return{...this.settings}}get(t){return this.settings[t]}async loadSettings(){let t=this.loadFromLocalStorage();if(this.settings=t,this.sweetlinkConnected&&this.ws&&this.ws.readyState===WebSocket.OPEN)try{let o=await this.loadFromServer();o&&(this.settings=o,this.saveToLocalStorage(this.settings))}catch(o){console.warn("[devbar] Failed to load settings from server, using localStorage:",o)}return this.settings}handleSettingsLoaded(t){t&&(this.settings=this.migrateSettings(t),this.saveToLocalStorage(this.settings),this.notifyChange());let o=this.pendingLoadResolvers;this.pendingLoadResolvers=[];for(let n of o)n(this.settings)}saveSettings(t){this.settings={...this.settings,...t},this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.saveTimeout=null,this.performSave()},e.SAVE_DEBOUNCE_MS)}saveSettingsNow(t){this.saveTimeout&&(clearTimeout(this.saveTimeout),this.saveTimeout=null),this.settings={...this.settings,...t},this.performSave()}resetToDefaults(){this.settings={...this.defaultSettings},this.performSave(),this.notifyChange()}onChange(t){return this.changeCallbacks.push(t),()=>{this.changeCallbacks=this.changeCallbacks.filter(o=>o!==t)}}performSave(){this.saveToLocalStorage(this.settings),this.sweetlinkConnected&&this.saveToServer(this.settings),this.notifyChange()}notifyChange(){for(let t of this.changeCallbacks)try{t(this.settings)}catch(o){console.error("[devbar] Settings change callback error:",o)}}loadFromLocalStorage(){if(typeof localStorage>"u")return{...this.defaultSettings};try{let t=localStorage.getItem(Dt);if(!t)return{...this.defaultSettings};let o=JSON.parse(t);return this.migrateSettings(o)}catch(t){return console.warn("[devbar] Failed to parse localStorage settings:",t),{...this.defaultSettings}}}hasLocalStorageSettings(){if(typeof localStorage>"u")return!1;try{return localStorage.getItem(Dt)!==null}catch{return!1}}saveToLocalStorage(t){if(!(typeof localStorage>"u"))try{localStorage.setItem(Dt,JSON.stringify(t))}catch(o){console.warn("[devbar] Failed to save settings to localStorage:",o)}}async loadFromServer(){return new Promise(t=>{if(!this.ws||this.ws.readyState!==WebSocket.OPEN){t(null);return}this.pendingLoadResolvers.push(t),this.ws.send(JSON.stringify({type:"load-settings"})),setTimeout(()=>{let o=this.pendingLoadResolvers.indexOf(t);o!==-1&&(this.pendingLoadResolvers.splice(o,1),t(null))},5e3)})}saveToServer(t){!this.ws||this.ws.readyState!==WebSocket.OPEN||this.ws.send(JSON.stringify({type:"save-settings",data:{settings:t}}))}migrateSettings(t){return{...this.defaultSettings,...t,version:1,showMetrics:{...this.defaultSettings.showMetrics,...t.showMetrics}}}},Ze=null;function Pt(e={}){return Ze?Object.keys(e).length>0&&Ze.setDefaultSettings(e):Ze=new Bt(e),Ze}function L(e,t,o){return{...co,borderColor:t?e:f(e,50),backgroundColor:t?f(e,20):"transparent",color:t?e:f(e,60),cursor:o?"not-allowed":"pointer",opacity:"1"}}function Or(e,t,o=!1){e.onmouseenter=()=>{e.style.backgroundColor=f(t,13)},e.onmouseleave=()=>{e.style.backgroundColor=o?f(t,20):"transparent"}}function Ae(e,t="\xD7"){let o=d.textMuted,n=document.createElement("button");return n.setAttribute("aria-label",t==="\xD7"?"Close":t),Object.assign(n.style,{padding:"2px 6px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"transparent",border:"1px solid transparent",borderRadius:"6px",color:o,fontFamily:S,fontSize:"0.875rem",cursor:"pointer",transition:"all 150ms"}),n.textContent=t,n.onmouseenter=()=>{n.style.borderColor=f(o,38)},n.onmouseleave=()=>{n.style.borderColor="transparent"},n.onclick=e,n}function P(e){let{color:t,text:o,padding:n="6px 12px",borderRadius:r="6px",fontSize:i="0.75rem",width:a,height:s}=e,l=document.createElement("button");return Object.assign(l.style,{padding:a?void 0:n,width:a,height:s,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"transparent",border:`1px solid ${f(t,38)}`,borderRadius:r,color:t,fontFamily:S,fontSize:i,cursor:"pointer",transition:"all 150ms"}),l.textContent=o,Or(l,t),l}async function z(e){try{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}}catch{}if(!kr(e))throw new Error("Clipboard write failed")}function kr(e){if(typeof document.execCommand!="function")return!1;let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",t.style.left="-1000px",t.style.opacity="0",document.body.appendChild(t);let o=document.getSelection(),n=o&&o.rangeCount>0?o.getRangeAt(0).cloneRange():null,r=document.activeElement instanceof HTMLElement?document.activeElement:null;t.focus(),t.select();let i=!1;try{i=document.execCommand("copy")}finally{t.remove(),n&&o&&(o.removeAllRanges(),o.addRange(n)),r?.focus()}return i}function I(e,t){let o=document.createElementNS("http://www.w3.org/2000/svg","svg");if(o.setAttribute("width","12"),o.setAttribute("height","12"),o.setAttribute("viewBox",t.viewBox||"0 0 24 24"),t.fill&&(o.style.fill="currentColor"),t.stroke&&(o.style.stroke="currentColor",o.style.fill="none",o.setAttribute("stroke-width",t.strokeWidth||"2"),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round")),e){let n=document.createElementNS("http://www.w3.org/2000/svg","path");n.setAttribute("d",e),o.appendChild(n)}if(t.children){for(let n of t.children)if(n.type==="circle"){let r=document.createElementNS("http://www.w3.org/2000/svg","circle");r.setAttribute("cx",n.cx),r.setAttribute("cy",n.cy),r.setAttribute("r",n.r),o.appendChild(r)}else if(n.type==="polyline"){let r=document.createElementNS("http://www.w3.org/2000/svg","polyline");r.setAttribute("points",n.points),o.appendChild(r)}}return o}var Nt="0 0 580.43 167.62",ne={dark:g.emerald,light:g.emeraldDark},Wo={d:"M73.46,161.67l-6.41-.16-.1-7.56-5.52-.09v-21.54s6.94-.1,6.94-.1l.03-29.61,7.14-.19.25-22.45,9.06-.26.22-8.19,8.82-.08.32-5.87,30.1-.03.26,5.83,7.76-.07.08-20.29,6.17-.14-.02-21.58h26.12s.03,11.73.03,11.73l-3.46.3-.05,22.8-6.68.14-.05,32.83-6.94.1-.04,34.47-7.86.33-.05,34.45h-26.66s-.13-6.81-.13-6.81l-3.2.08-.05,1.8-5.88.18-.27,5.94h-29.79s-.13-5.95-.13-5.95ZM109.74,139.54l6.11-.13.07-19.02,6.12-.26.16-12.27,2.82-.52v-12.89s-3.8-.49-3.8-.49l-.37-8.03-15.85.03-.2,6.24-6.19.14-.04,22.21-8.52.15v24.28s3.28.13,3.28.13l.05,7.83,16.17.05.19-7.45Z",e:"M200.68,148.2l.13-8.62,7.57-.15.25-5.78,26.28-.19.04,5.66-4.84.24-.1,11.5-4.74.06-.15,7.09-4.52.16-.33,4.81-9.7.28-.07,4.36-41.06.02-.18-6.21-8.02-.24-.27-7.17-6.21-.21.13-17.79,4.92-.37.02-32.36,8.3-.13.09-19.13,5.63-.15.36-6.19,5.74-.28.27-5.76,6.21-.22.18-5.85h45.06s.35,5.93.35,5.93l5.5.23.31,5.65,6.41.14v28.86s-5.29.2-5.29.2l-.09,15.01h-54.52s-.17,15.16-.17,15.16l-2.48.57v10.93M188.1,106.02l28.63-.03.07-22.28-21.6-.03-.33,10.73-6.93.27.16,11.34Z",v:"M325.06,99.7l-7.88.15-.03,14.96-7.72.07-.04,16.62-6.64.14-.12,16.18-5.95.06-.16,7.13-4.53.12-.29,11.35-30.22-.07v-29.09s-4.87-.31-4.87-.31l-.02-44.28-4.87-.18v-26.98s25.36,0,25.36,0l.17,63.22c3.26.33,6.23.24,9.58-.06l.02-14.7,6.71-.23.05-17.25,7.87-.42.2-16.13,6.28-.32.07-14.13,26.57-.03.18,5.94-2.99.18-.12,11.36-6.39.34-.23,16.35Z",b:"M390.29,158.27l-.23,8.17h-28.6s.2-5.07.2-5.07l-8.04-.22.02-1.68-7.02.08-.19,6.91-21.06-.08-.14-26.82,5.48-.22.27-21.16,5.39-.31.08-21.12,5.46-.18.22-26.59,6.2-.41.26-21.44,4.93-.15.2-18.51,24.28-.18v22.97s-6.52.12-6.52.12l.06,19.15,7.37-.12.16-5.88h28.13s.25,5.77.25,5.77l4.95.13.18,5.76,5.04.45-.07,30.61-4.86.44-.17,22.83-7.23.34-.11,16.6-6.12.39-.19,9.31-8.57.09ZM387.51,93.06l-.14-7.17c-3.48,0-15.85.05-19.09-.09l-.09,8-5.99.29-.02,28.81-6.95.14.03,16.09,4.11.23.12,7.77h16.31s0-7.6,0-7.6l6.41-.11.06-15.85,5.2-.06",a:"M417.64,131.33l5.08-.1.2-9.47,7.45-.4.08-9.51,11.77-.12.21-5.99c3.64-.42,13.39,1.12,16.29-1.73l11.65-.23.32-6.23,8.81-.24.09-15.84-19.56-.04-.18,5.74-5.19.25v7.51s-23.11.1-23.11.1l-.32-7.21,2.65-.48.06-9.69,8.57-.15.22-8.1,7.93-.09.21-5.92h42.51s.43,5.82.43,5.82l5.32.19.4,5.74,5.9.32.16,29.4-7.26.25v30.71s-6.5.14-6.5.14v19.98s5.11.32,5.11.32v8.03s-26.37.03-26.37.03l-.24-9.44-5.85-.1-.2,4.78-6.35.1-.16,5.78-29.43-.02-.09-4.57-5-.14-.15-5.88-5.51-.19.03-23.34ZM461.97,145.81l.23-3.91,5.51-.09.05-8.29,6.01-.1-.04-17.33-10,.04-.12,4.69-10.87.13-.39,6.02-5.98.34v18.47s15.61.04,15.61.04Z",r:"M506.46,149.81l5.3-.22.03-28.17,6.48-.13.15-25.67,6.65-.35.02-29.71,22.63.18c-.07,2.81-.13,8.82-.04,11.59l7.1.1.27-4.36,6.49-.41.17-7.1,18.69-.02.04,24.62-27.68.06-.14,6.53-7.65.21-.14,22.22-6,.42-.06,23.2-5.78.25-.02,23.4-26.5-.03",dLeftEdge:"M59.47,37.37l.06,5.59-8.51.05-.12,6.47-7.89-.1v2.81s-2.22.06-2.22.06l-.1,6.93-9.9.25-.11,6.27-7.16.17-.05,7.97-5.32.18v21.01s11.16.19,11.16.19l.19,6.35,9.28.08.16,6.01,20.67.19.13,6.5-46.46-.14-.48-7.41-7.36-.44-.24-6.74-5.19-.23.13-21.7,6.84-.44.06-8.58,6.33-.23.09-7.19h6.27s.12-5.64.12-5.64l6.01-.1.52-4.41,5.36-.32.34-3.85,5.9-.31.46-3.45,7.54-.18.14-5.53,9.44-.07"},oe={topBar:"214.17 22.67 204.58 22.7 204.66 15.98 196.08 15.68 195.86 7.9 148.96 7.93 148.81 13.79 114.91 13.79 114.94 7.24 143.91 7.19 144.14 0 214.17 0",dStep1:"114.43 21.6 92.3 21.3 92.17 14.42 114.63 14.43 114.43 21.6",dStep2:"91.89 29.07 73.29 29.04 73.34 21.96 91.87 21.65 91.89 29.07",dStep3:"72.95 35.82 59.81 35.85 59.8 29.34 72.79 29.46 72.95 35.82",dCounter:"109.74 139.54 109.55 146.99 93.38 146.94 93.33 139.12 90.04 138.99 90.04 114.71 98.57 114.55 98.61 92.35 104.8 92.21 105 85.97 120.85 85.93 121.22 93.96 125.02 94.45 125.03 107.34 122.21 107.86 122.05 120.14 115.92 120.4 115.85 139.42 109.74 139.54",eCounter:"188.1 106.02 187.94 94.68 194.87 94.41 195.2 83.68 216.81 83.71 216.73 105.99 188.1 106.02"},jo=[...Object.values(Wo).map(e=>({kind:"path",d:e})),{kind:"polyline",points:oe.topBar},{kind:"polygon",points:oe.dStep1},{kind:"polygon",points:oe.dStep2},{kind:"polygon",points:oe.dStep3},{kind:"polygon",points:oe.dCounter,fillNone:!0},{kind:"polygon",points:oe.eCounter,fillNone:!0}];function Ar(){return`<style>
|
|
489
|
+
.devbar-logo-fill { fill: ${ne.dark}; }
|
|
490
|
+
@media (prefers-color-scheme: light) {
|
|
491
|
+
.devbar-logo-fill { fill: ${ne.light}; }
|
|
492
|
+
}
|
|
493
|
+
</style>`}function Mr(e={}){let{width:t=32,height:o=32,fill:n,className:r,themed:i=!0}=e,a=document.createElementNS("http://www.w3.org/2000/svg","svg");if(a.setAttribute("width",String(t)),a.setAttribute("height",String(o)),a.setAttribute("viewBox",Nt),a.setAttribute("fill","none"),a.setAttribute("aria-label","devbar logo"),r&&a.setAttribute("class",r),i&&!n){let p=document.createElementNS("http://www.w3.org/2000/svg","style");p.textContent=`
|
|
494
|
+
.devbar-logo-fill { fill: ${ne.dark}; }
|
|
495
|
+
@media (prefers-color-scheme: light) {
|
|
496
|
+
.devbar-logo-fill { fill: ${ne.light}; }
|
|
497
|
+
}
|
|
498
|
+
`,a.appendChild(p)}let s=n||(i?void 0:ne.dark),l=!n&&i?"devbar-logo-fill":void 0,c=document.createElementNS("http://www.w3.org/2000/svg","g");s?c.setAttribute("fill",s):l&&c.setAttribute("class",l);for(let p of jo){let u=document.createElementNS("http://www.w3.org/2000/svg",p.kind);p.kind==="path"?u.setAttribute("d",p.d):(u.setAttribute("points",p.points),p.kind==="polygon"&&p.fillNone&&u.setAttribute("fill","none")),c.appendChild(u)}return a.appendChild(c),a}function Rr(e={}){let{width:t=32,height:o=32,fill:n,themed:r=!0}=e,i=r&&!n?Ar():"",a=n?`fill="${n}"`:r?'class="devbar-logo-fill"':`fill="${ne.dark}"`,s=jo.map(l=>l.kind==="path"?`<path d="${l.d}"/>`:l.kind==="polyline"?`<polyline points="${l.points}"/>`:`<polygon points="${l.points}"${l.fillNone?' fill="none"':""}/>`).join(`
|
|
499
|
+
`);return`<svg width="${t}" height="${o}" viewBox="${Nt}" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="devbar logo">
|
|
500
|
+
${i}
|
|
501
|
+
<g ${a}>
|
|
502
|
+
${s}
|
|
503
|
+
</g>
|
|
504
|
+
</svg>`}function U(e){let t=document.createElement("div");return t.setAttribute("data-devbar","true"),t.setAttribute("data-devbar-overlay","true"),Object.assign(t.style,po),t.onclick=o=>{o.target===t&&e()},t}function G(e,t){let o=document.createElement("div");return o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),t&&o.setAttribute("aria-label",t),o.tabIndex=-1,Object.assign(o.style,{...uo,border:`1px solid ${e}`,boxShadow:`${E.shadows.dropXl}, 0 0 0 1px ${f(e,20)}`}),o}function q(e){queueMicrotask(()=>{try{e.focus()}catch{}})}function N(e){let{color:t,title:o,onClose:n,onCopyMd:r,onSave:i,onClear:a,sweetlinkConnected:s=!1,saveLocation:l="auto",isSaving:c,savedPath:p,evidenceContext:u}=e,m=V(l,s),b=document.createElement("div");Object.assign(b.style,{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:`1px solid ${f(t,25)}`,flexWrap:"wrap",gap:"8px"});let y=document.createElement("h2");Object.assign(y.style,{color:t,fontSize:"1rem",fontWeight:"600",margin:"0"}),y.textContent=o,b.appendChild(y);let w=document.createElement("div");if(Object.assign(w.style,{display:"flex",gap:"10px",alignItems:"center"}),r){let h=P({color:t,text:"Copy MD"});h.onclick=async()=>{try{await r(),h.textContent="Copied!",setTimeout(()=>{h.textContent="Copy MD"},1500)}catch{console.error("[GlobalDevBar] Failed to copy to clipboard")}},w.appendChild(h)}if(i){let h=m==="download"||s,v;c?v=m==="local"?"Saving...":"Downloading...":v=m==="local"?"Save":"Download";let C=P({color:t,text:v});c||!h?(C.style.opacity="0.6",C.style.cursor="not-allowed",h||(C.title="Sweetlink not connected. Switch save method to Auto or Download.")):C.onclick=i,w.appendChild(C)}if(a){let h=P({color:t,text:"Clear"});h.onclick=a,w.appendChild(h)}if(w.appendChild(Ae(n)),b.appendChild(w),p){let h=p.endsWith("downloaded"),v=document.createElement("div");Object.assign(v.style,{width:"100%",marginTop:"4px",padding:"8px 12px",backgroundColor:f(t,8),border:`1px solid ${f(t,19)}`,borderRadius:"6px",fontSize:"0.75rem",color:t,display:"flex",alignItems:"center",gap:"6px"});let C=document.createElement("span");C.textContent="\u2713",Object.assign(C.style,{fontWeight:"600"}),v.appendChild(C);let T=document.createElement("span");Object.assign(T.style,{color:d.textSecondary,fontFamily:"monospace",fontSize:"0.6875rem",wordBreak:"break-all"}),T.textContent=h?"Downloaded":`Saved to ${p}`,v.appendChild(T),b.appendChild(v)}return u&&b.appendChild(Lr(t,u)),b}function Lr(e,t){let o=document.createElement("div");Object.assign(o.style,{width:"100%",marginTop:"4px",padding:"10px 12px",backgroundColor:f(e,6),border:`1px solid ${f(e,19)}`,borderRadius:"6px",display:"grid",gap:"8px"});let n=document.createElement("div");Object.assign(n.style,{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px"});let r=document.createElement("span");if(Object.assign(r.style,{color:e,fontSize:"0.625rem",fontWeight:"600",letterSpacing:"0.1em",textTransform:"uppercase"}),r.textContent=t.title??"Agent Context",n.appendChild(r),t.copyText){let a=P({color:e,text:"Copy Context",padding:"4px 8px",fontSize:"0.625rem"});a.onclick=async()=>{try{await z(t.copyText??""),a.textContent="Copied!",setTimeout(()=>{a.textContent="Copy Context"},1500)}catch{a.textContent="Copy Failed",setTimeout(()=>{a.textContent="Copy Context"},1500)}},n.appendChild(a)}o.appendChild(n);let i=document.createElement("div");Object.assign(i.style,{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:"6px 10px"});for(let a of t.items){let s=document.createElement("div");Object.assign(s.style,{minWidth:"0"});let l=document.createElement("div");Object.assign(l.style,{color:d.textMuted,fontSize:"0.5625rem",textTransform:"uppercase",letterSpacing:"0.08em",marginBottom:"2px"}),l.textContent=a.label,s.appendChild(l);let c=document.createElement("div");Object.assign(c.style,{color:d.textSecondary,fontFamily:"monospace",fontSize:"0.625rem",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),c.title=a.value,c.textContent=a.value,s.appendChild(c),i.appendChild(s)}return o.appendChild(i),o}function W(){let e=document.createElement("div");return Object.assign(e.style,{flex:"1",overflow:"auto",padding:"16px 20px"}),e}function re(e){let t=document.createElement("div");return Object.assign(t.style,{textAlign:"center",color:d.textMuted,fontSize:"0.875rem",padding:"40px"}),t.textContent=e,t}function be(e,t,o){let n=document.createElement("div");Object.assign(n.style,{backgroundColor:f(e,8),border:`1px solid ${f(e,25)}`,borderRadius:"8px",padding:"14px",marginBottom:"16px"});let r=document.createElement("div");if(Object.assign(r.style,{color:e,fontWeight:"600",marginBottom:"8px"}),r.textContent=t,n.appendChild(r),typeof o=="string"){let i=document.createElement("div");Object.assign(i.style,{color:d.textSecondary}),i.textContent=o,n.appendChild(i)}else o.forEach(i=>n.appendChild(i));return n}var zo="sweetlink-hide-devbar-for-capture",Ir=`
|
|
505
|
+
[data-devbar],
|
|
506
|
+
[data-devbar-overlay],
|
|
507
|
+
[data-devbar-tooltip] {
|
|
508
|
+
visibility: hidden !important;
|
|
509
|
+
pointer-events: none !important;
|
|
510
|
+
}
|
|
511
|
+
`;function Me(e,t={}){let{format:o="jpeg",quality:n=.7}=t;return o==="png"?e.toDataURL("image/png"):e.toDataURL("image/jpeg",n)}function Dr(){if(document.getElementById(zo))return()=>{};let t=document.createElement("style");return t.id=zo,t.textContent=Ir,document.head.appendChild(t),()=>{t.remove()}}function Re(e={}){document.body.classList.add("devbar-capturing"),document.activeElement instanceof HTMLElement&&document.activeElement.blur();let t=e.hideDevbar?Dr():null;return()=>{t?.(),document.body.classList.remove("devbar-capturing")}}function Le(e){return new Promise(t=>setTimeout(t,e))}async function _e(e){return new Promise((t,o)=>{e.toBlob(async n=>{if(!n){o(new Error("Failed to create blob from canvas"));return}try{await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),t()}catch(r){o(r)}},"image/png")})}function et(e){if(typeof e!="string"||e.trim()==="")return!1;try{let t=new URL(e,window.location.origin);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function Fo(e,t,o){let n=new Blob([t],{type:o}),r=URL.createObjectURL(n),i=document.createElement("a");i.href=r,i.download=e,i.click(),URL.revokeObjectURL(r)}function Ho(e,t){let o=document.createElement("a");o.href=t,o.download=e,o.click()}var Ie="10001",ye=x.ruler;function Vo(e,t){let o=document.createElement("div"),n=Math.round(e.width),r=Math.round(e.height),i=Math.round(e.left),a=Math.round(e.top);return Object.assign(o.style,{position:"fixed",zIndex:Ie,pointerEvents:"none",fontFamily:S,fontSize:"10px",lineHeight:"1.2",padding:"2px 5px",borderRadius:"3px",backgroundColor:t?ye:f(ye,90),color:"#000",fontWeight:"600",whiteSpace:"nowrap",left:`${e.left}px`,top:e.top>24?`${e.top-20}px`:`${e.bottom+4}px`}),o.textContent=`${n} \xD7 ${r} @(${i}, ${a})`,o.setAttribute("data-devbar-ruler","label"),o}function Uo(e,t){let o=document.createElement("div");return Object.assign(o.style,{position:"fixed",zIndex:Ie,pointerEvents:"none",left:`${e.left}px`,top:`${e.top}px`,width:`${e.width}px`,height:`${e.height}px`,border:`1.5px ${t?"solid":"dashed"} ${ye}`,backgroundColor:f(ye,8),boxSizing:"border-box"}),o.setAttribute("data-devbar-ruler","box"),o}function Go(e){let t=document.createElement("div");t.setAttribute("data-devbar-ruler","hover-container"),Object.assign(t.style,{position:"fixed",top:"0",left:"0",width:"0",height:"0",pointerEvents:"none",zIndex:Ie}),document.body.appendChild(t);let o=document.createElement("div");o.setAttribute("data-devbar-ruler","pinned-container"),Object.assign(o.style,{position:"fixed",top:"0",left:"0",width:"0",height:"0",pointerEvents:"none",zIndex:Ie}),document.body.appendChild(o);let n=document.createElement("style");n.setAttribute("data-devbar-ruler","cursor-style"),n.textContent=["body[data-devbar-ruler-active] * {"," cursor: crosshair !important;","}"].join(`
|
|
512
|
+
`),document.head.appendChild(n),document.body.setAttribute("data-devbar-ruler-active","");let r=document.createElement("div");Object.assign(r.style,{position:"fixed",top:"8px",left:"50%",transform:"translateX(-50%)",zIndex:Ie,fontFamily:S,fontSize:"11px",padding:"4px 12px",borderRadius:"6px",backgroundColor:f(ye,20),border:`1px solid ${ye}`,color:d.text,pointerEvents:"none"}),r.textContent="RULER MODE \u2014 click to pin, Esc to exit",document.body.appendChild(r);let i=null;function a(p){return!!p.closest("[data-devbar], [data-devbar-ruler], [data-devbar-overlay], [data-devbar-tooltip]")}function s(p){let u=p.target;if(a(u)){ge(t),i=null;return}if(u===i)return;i=u,ge(t);let m=u.getBoundingClientRect();m.width===0&&m.height===0||(t.appendChild(Uo(m,!1)),t.appendChild(Vo(m,!1)))}function l(p){let u=p.target;if(a(u))return;p.preventDefault(),p.stopPropagation();let m=u.getBoundingClientRect();m.width===0&&m.height===0||(o.appendChild(Uo(m,!0)),o.appendChild(Vo(m,!0)))}function c(p){p.key==="Escape"&&(p.preventDefault(),e.rulerMode=!1,e.rulerCleanup&&(e.rulerCleanup(),e.rulerCleanup=null),e.render())}return document.addEventListener("mousemove",s,!0),document.addEventListener("click",l,!0),document.addEventListener("keydown",c,!0),()=>{document.removeEventListener("mousemove",s,!0),document.removeEventListener("click",l,!0),document.removeEventListener("keydown",c,!0),t.remove(),o.remove(),n.remove(),r.remove(),document.body.removeAttribute("data-devbar-ruler-active")}}var Wt=null;async function ie(){return Wt||(Wt=import("./html2canvas-pro.esm-JZJ3KQWL.js").then(e=>e.default??e)),Wt}function tt(e,t){if(V(e.options.saveLocation,e.sweetlinkConnected)==="local"&&e.ws?.readyState===WebSocket.OPEN)e[t.savingFlag]=!0,e.render(),e.ws.send(JSON.stringify({type:t.type,data:t.data}));else{let n=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);Fo(`${t.downloadFilename}-${n}.md`,t.downloadContent,t.downloadMimeType),e.handleNotification(t.notificationKey,t.notificationMessage,de)}}function qo(e,t){return{logging:!1,useCORS:!0,allowTaint:!0,scale:e,windowWidth:window.innerWidth,windowHeight:window.innerHeight,scrollX:t?-window.scrollX:0,scrollY:t?-window.scrollY:0,ignoreElements:o=>o.hasAttribute("data-devbar"),onclone:(o,n)=>{let r=document.createElement("style");r.textContent=["*, *::before, *::after {"," animation: none !important;"," mix-blend-mode: normal !important;","}"].join(`
|
|
513
|
+
`),n.ownerDocument.head.appendChild(r)}}}function Br(e,t){let o=window.innerWidth*t,n=window.innerHeight*t,r=window.scrollX*t,i=window.scrollY*t;if(e.width<=o&&e.height<=n)return e;let a=document.createElement("canvas");a.width=o,a.height=n;let s=a.getContext("2d");return s?(s.drawImage(e,r,i,o,n,0,0,o,n),a):e}async function Yo(e,t){try{await navigator.clipboard.writeText(t),e.copiedPath=!0,e.copiedPathTimeout&&clearTimeout(e.copiedPathTimeout),e.copiedPathTimeout=setTimeout(()=>{e.copiedPath=!1,e.render()},gt),e.render()}catch(o){console.error("[GlobalDevBar] Failed to copy path:",o)}}async function Jo(e,t=!1){if(e.capturing)return;let o=V(e.options.saveLocation,e.sweetlinkConnected);if(!t&&o==="local"&&!e.sweetlinkConnected)return;let n=null;try{e.capturing=!0,e.render(),n=Re(),await Le(bt);let i=await(await ie())(document.body,qo(yt,t));n(),n=null;let a=t?Br(i,yt):i;if(t)try{await _e(a),e.copiedToClipboard=!0,e.render(),e.screenshotTimeout&&clearTimeout(e.screenshotTimeout),e.screenshotTimeout=setTimeout(()=>{e.copiedToClipboard=!1,e.render()},gt)}catch(s){console.error("[GlobalDevBar] Failed to copy to clipboard:",s)}else{let s=Me(a,{format:"jpeg",quality:e.options.screenshotQuality});if(o==="local"&&e.ws?.readyState===WebSocket.OPEN){let l={};e.lcpValue!==null&&(l.lcp=Math.round(e.lcpValue)),e.clsValue>0&&(l.cls=e.clsValue),e.inpValue>0&&(l.inp=Math.round(e.inpValue));let c=performance.getEntriesByType("paint").find(m=>m.name==="first-contentful-paint");c&&(l.fcp=Math.round(c.startTime));let p=0,u=performance.getEntriesByType("navigation")[0];u&&(p+=u.transferSize||0),performance.getEntriesByType("resource").forEach(m=>{p+=m.transferSize||0}),e.ws.send(JSON.stringify({type:"save-screenshot",data:{screenshot:s,width:a.width,height:a.height,logs:e.consoleLogs,url:window.location.href,timestamp:Date.now(),webVitals:Object.keys(l).length>0?l:void 0,pageSize:p>0?p:void 0}}))}else{let l=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);Ho(`devbar-screenshot-${l}.jpg`,s),e.handleNotification("screenshot","screenshot downloaded",de)}}}catch(r){console.error("[GlobalDevBar] Screenshot failed:",r),n&&n()}finally{e.capturing=!1,e.render()}}async function Pr(e){if(e.designReviewInProgress||!e.sweetlinkConnected)return;let t=null;try{e.designReviewInProgress=!0,e.designReviewError=null,e.designReviewErrorTimeout&&(clearTimeout(e.designReviewErrorTimeout),e.designReviewErrorTimeout=null),e.render(),t=Re(),await Le(bt);let n=await(await ie())(document.body,qo(1,!1));t(),t=null;let r=Me(n,{format:"png"});e.ws?.readyState===WebSocket.OPEN&&e.ws.send(JSON.stringify({type:"design-review-screenshot",data:{screenshot:r,width:n.width,height:n.height,logs:e.consoleLogs,url:window.location.href,timestamp:Date.now()}}))}catch(o){console.error("[GlobalDevBar] Design review failed:",o),t&&t(),e.designReviewInProgress=!1,e.render()}}function Ko(e){e.sweetlinkConnected&&(e.ws?.readyState===WebSocket.OPEN&&e.ws.send(JSON.stringify({type:"check-api-key"})),O(e),e.showDesignReviewConfirm=!0,e.render())}function Qo(e){if(!e.apiKeyStatus?.pricing)return null;let t=window.innerWidth,o=window.innerHeight,n=Math.ceil(t*o/750),r=500,i=1500,a=n+r,{input:s,output:l}=e.apiKeyStatus.pricing,c=a/1e6*s,p=i/1e6*l,u=c+p;return{tokens:a+i,cost:u<.01?"<$0.01":`~$${u.toFixed(2)}`}}function Xo(e){e.showDesignReviewConfirm=!1,e.apiKeyStatus=null,e.render()}function Zo(e){e.showDesignReviewConfirm=!1,Pr(e)}function jt(e,t){let o=e[t];O(e),e[t]=!o,e.render()}function $o(e){jt(e,"showOutlineModal")}function _o(e){jt(e,"showSchemaModal")}function en(e){jt(e,"showA11yModal")}function tn(e,t){if(e.savingA11yAudit)return;let o=Ke(t);tt(e,{type:"save-a11y",data:{markdown:o,url:window.location.href,title:document.title,timestamp:Date.now()},savingFlag:"savingA11yAudit",downloadFilename:"a11y-audit",downloadContent:o,downloadMimeType:"text/markdown",notificationKey:"a11y",notificationMessage:"a11y report downloaded"})}function on(e){if(e.savingOutline)return;let t=X(),o=H(t);tt(e,{type:"save-outline",data:{outline:t,markdown:o,url:window.location.href,title:document.title,timestamp:Date.now()},savingFlag:"savingOutline",downloadFilename:"outline",downloadContent:o,downloadMimeType:"text/markdown",notificationKey:"outline",notificationMessage:"outline downloaded"})}function zt(e){return e.length===0?"_No logs_":e.map(t=>`- **[${new Date(t.timestamp).toLocaleTimeString()}]** \`${t.level}\` ${t.message}`).join(`
|
|
514
|
+
`)}function nn(e,t){if(e.savingConsoleLogs)return;let o=zt(t);tt(e,{type:"save-console-logs",data:{logs:t,markdown:o,url:window.location.href,title:document.title,timestamp:Date.now()},savingFlag:"savingConsoleLogs",downloadFilename:"console-logs",downloadContent:o,downloadMimeType:"text/markdown",notificationKey:"consoleLogs",notificationMessage:"console logs downloaded"})}function rn(e){if(e.savingSchema)return;let t=Z(),o=Fe(t),n=ze(),r=$(t,{missingTags:o,favicons:n});tt(e,{type:"save-schema",data:{schema:t,markdown:r,url:window.location.href,title:document.title,timestamp:Date.now()},savingFlag:"savingSchema",downloadFilename:"schema",downloadContent:r,downloadMimeType:"text/markdown",notificationKey:"schema",notificationMessage:"schema downloaded"})}function De(e,t,o){if(Rt(o)){e.addSuccess(`${t} simulated`,o),e.addWarning(Bo());return}let n=o.endsWith("downloaded");e.addSuccess(n?`${t} downloaded!`:`${t} saved!`,n?void 0:o)}function Y(e,t,o,n){let i={error:"error",warn:"warning",info:"info"}[t],a=e.consoleFilter===t,s=document.createElement("span");return s.className="devbar-badge",Object.assign(s.style,{display:"flex",alignItems:"center",justifyContent:"center",minWidth:"18px",height:"18px",padding:"0 5px",borderRadius:"9999px",backgroundColor:n,color:"#fff",fontSize:"0.625rem",fontWeight:"600",cursor:"pointer",boxShadow:a?`0 0 8px ${f(n,80)}`:"none"}),s.textContent=o>99?"99+":String(o),R(e,s,()=>`${o} console ${i}${o===1?"":"s"} (click to view)`),s.onclick=()=>{let l=e.consoleFilter===t?null:t;O(e),e.consoleFilter=l,e.render()},s}function ot(e,t){let o=document.createElement("button");o.type="button",o.setAttribute("aria-label","Screenshot");let n=e.copiedToClipboard||e.copiedPath||e.lastScreenshot,r=e.capturing,i=V(e.options.saveLocation,e.sweetlinkConnected),a=i==="local"&&!e.sweetlinkConnected&&!n;return D(e,o,t,(s,l)=>{if(e.copiedToClipboard){l.addSuccess("Copied to clipboard!");return}if(e.copiedPath){l.addSuccess("Path copied to clipboard!");return}if(e.lastScreenshot){let c=e.lastScreenshot;if(Rt(c)){De(l,"Screenshot",c);return}if(c.endsWith("downloaded"))l.addSuccess("Screenshot downloaded!");else{l.addSuccess("Screenshot saved!",c);let u=document.createElement("div");Object.assign(u.style,{color:t,cursor:"pointer",fontSize:"0.625rem",marginTop:"6px",opacity:"0.8",transition:"opacity 150ms"}),u.textContent="copy path",u.onmouseenter=()=>{u.style.opacity="1"},u.onmouseleave=()=>{u.style.opacity="0.8"},u.onclick=async m=>{m.stopPropagation();try{await navigator.clipboard.writeText(c),u.textContent="\u2713 copied!",u.style.cursor="default",u.onclick=null}catch{u.textContent="\xD7 failed to copy",u.style.color=d.error}},s.appendChild(u)}return}if(l.addTitle("Screenshot"),l.addSectionHeader("Actions"),i==="local"&&!e.sweetlinkConnected)l.addShortcut("Shift+Click","Copy to clipboard"),l.addWarning("Sweetlink not connected. Switch save method to Auto or Download.");else{let c=i==="local"?"Save to file":"Download";l.addShortcut("Click",c),l.addShortcut("Shift+Click","Copy to clipboard"),l.addShortcut("Alt+Click","HiFi screenshot (pixel-perfect via daemon)"),l.addSectionHeader("Keyboard"),l.addShortcut("Cmd or Ctrl+Shift+S",c),l.addShortcut("Cmd or Ctrl+Shift+C","Copy")}}),Object.assign(o.style,{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",minWidth:"24px",minHeight:"24px",flexShrink:"0",borderRadius:"50%",border:"1px solid",borderColor:n?t:f(t,50),backgroundColor:n?f(t,20):"transparent",color:n?t:f(t,60),cursor:r?"not-allowed":"pointer",opacity:a?"0.4":"1",transition:"all 150ms"}),o.disabled=r,o.onclick=s=>{if(s.altKey){if(!e.ws||!e.sweetlinkConnected)return;e.ws.send(JSON.stringify({type:"hifi-screenshot"})),e.capturing=!0,e.render();return}e.lastScreenshot&&!s.shiftKey?Yo(e,e.lastScreenshot):e.handleScreenshot(s.shiftKey)},e.copiedToClipboard||e.copiedPath||e.lastScreenshot?(o.textContent="\u2713",o.style.fontSize="0.6rem"):e.capturing?(o.textContent="...",o.style.fontSize="0.5rem"):o.appendChild(I("M19.844 7.938H7.938v11.905m0 11.113v11.906h11.905m23.019-11.906v11.906H30.956m11.906-23.018V7.938H30.956",{viewBox:"0 0 50.8 50.8",stroke:!0,strokeWidth:"4",children:[{type:"circle",cx:"25.4",cy:"25.4",r:"8.731"}]})),o}function an(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label","AI Design Review");let o=!!e.designReviewError,n=e.designReviewInProgress||!!e.lastDesignReview||o,r=e.designReviewInProgress||!e.sweetlinkConnected,i=o?d.error:x.review;return D(e,t,i,(a,s)=>{if(e.designReviewInProgress){s.addProgress("AI Design Review in progress...");return}if(e.designReviewError){s.addError("Design review failed",e.designReviewError);return}if(e.lastDesignReview){De(s,"Design review",e.lastDesignReview);return}s.addTitle("AI Design Review"),s.addDescription("Captures screenshot and sends to Claude for design analysis."),s.addSectionHeader("Requirements"),s.addShortcut("API Key","ANTHROPIC_API_KEY"),B()&&s.addWarning("Demo mode: no Claude request will be sent."),e.sweetlinkConnected||s.addWarning("Sweetlink not connected")}),Object.assign(t.style,L(i,n,r)),e.sweetlinkConnected||(t.style.opacity="0.5"),t.disabled=r,t.onclick=()=>Ko(e),e.designReviewInProgress?(t.textContent="~",t.style.fontSize="0.5rem",t.style.animation="pulse 1s infinite"):e.designReviewError?(t.textContent="\xD7",t.style.fontSize="0.875rem",t.style.fontWeight="bold"):e.lastDesignReview?(t.textContent="v",t.style.fontSize="0.5rem"):t.appendChild(I("M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09zM18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 00-2.456 2.456zM16.894 20.567L16.5 21.75l-.394-1.183a2.25 2.25 0 00-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 001.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 001.423 1.423l1.183.394-1.183.394a2.25 2.25 0 00-1.423 1.423z",{fill:!0})),t}function sn(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Document Outline");let o=e.showOutlineModal||!!e.lastOutline;return D(e,t,x.outline,(n,r)=>{if(e.lastOutline){De(r,"Outline",e.lastOutline);return}r.addTitle("Document Outline"),r.addDescription("View page heading structure and save as markdown."),B()&&r.addWarning("Demo mode: save actions return example paths only."),e.options.saveLocation==="local"&&!e.sweetlinkConnected&&r.addWarning("Sweetlink not connected. Switch save method to Auto or Download.")}),Object.assign(t.style,L(x.outline,o,!1)),t.onclick=()=>$o(e),e.lastOutline?(t.textContent="v",t.style.fontSize="0.5rem"):t.appendChild(I("M3 4h18v2H3V4zm0 7h12v2H3v-2zm0 7h18v2H3v-2z",{fill:!0})),t}function ln(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Page Schema");let o=e.showSchemaModal||!!e.lastSchema;return D(e,t,x.schema,(n,r)=>{if(e.lastSchema){De(r,"Schema",e.lastSchema);return}r.addTitle("Page Schema"),r.addDescription("View JSON-LD, Open Graph, and other structured data."),B()&&r.addWarning("Demo mode: save actions return example paths only."),e.options.saveLocation==="local"&&!e.sweetlinkConnected&&r.addWarning("Sweetlink not connected. Switch save method to Auto or Download.")}),Object.assign(t.style,L(x.schema,o,!1)),t.onclick=()=>_o(e),e.lastSchema?(t.textContent="v",t.style.fontSize="0.5rem"):t.appendChild(I("M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z",{fill:!0})),t}function cn(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Accessibility Audit");let o=e.showA11yModal||!!e.lastA11yAudit;return D(e,t,x.a11y,(n,r)=>{if(e.lastA11yAudit){De(r,"A11y report",e.lastA11yAudit);return}r.addTitle("Accessibility Audit"),r.addDescription("Run axe-core audit to check WCAG compliance."),B()&&r.addWarning("Demo mode: save actions return example paths only."),e.options.saveLocation==="local"&&!e.sweetlinkConnected&&r.addWarning("Sweetlink not connected. Switch save method to Auto or Download.")}),t.addEventListener("mouseenter",()=>Tt(),{once:!0}),Object.assign(t.style,L(x.a11y,o,!1)),t.onclick=()=>en(e),e.lastA11yAudit?(t.textContent="v",t.style.fontSize="0.5rem"):t.appendChild(I("M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z",{fill:!0})),t}function dn(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Ruler");let o=e.rulerMode;return D(e,t,x.ruler,(n,r)=>{o?(r.addTitle("Ruler Mode Active"),r.addDescription("Click elements to pin measurements. Press Esc or click here to exit.")):(r.addTitle("Ruler"),r.addDescription("Measure element dimensions and positions on page."))}),Object.assign(t.style,L(x.ruler,o,!1)),t.onclick=()=>{e.rulerMode?(e.rulerMode=!1,e.rulerCleanup&&(e.rulerCleanup(),e.rulerCleanup=null)):(O(e),e.rulerMode=!0,e.rulerCleanup=Go(e)),e.render()},o?(t.textContent="\u2716",t.style.fontSize="0.5rem"):t.appendChild(I("M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.4 2.4 0 0 1 0-3.4l2.6-2.6a2.4 2.4 0 0 1 3.4 0zM14.5 12.5l2-2M11.5 9.5l2-2M8.5 6.5l2-2M17.5 15.5l2-2",{stroke:!0,strokeWidth:"2"})),t}function pn(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label",e.recordingActive?"Stop Recording":"Start Recording");let o=e.recordingActive;if(D(e,t,x.error,(n,r)=>{if(o){let i=e.recordingStartedAt?((Date.now()-e.recordingStartedAt)/1e3).toFixed(0):"0";r.addTitle(`Recording: ${i}s`),r.addShortcut("Click","Stop recording & open viewer")}else e.lastViewerPath?(B()?(r.addSuccess("Demo recording simulated",e.lastViewerPath),r.addWarning("Demo only: no recording file was written.")):r.addSuccess("Last session recorded"),r.addShortcut("Click","Start new recording"),r.addShortcut("Shift+Click","Open last viewer")):(r.addTitle("Session Recording"),r.addShortcut("Click","Start recording (video + actions)"),B()&&r.addWarning("Demo mode: no video or action manifest will be recorded."))}),Object.assign(t.style,{...L(g.red,o,!1),borderColor:o?g.red:f(g.red,50),backgroundColor:o?f(g.red,20):"transparent",color:o?g.red:f(g.red,60),...o&&{animation:"devbar-pulse 1.5s ease-in-out infinite"}}),t.onclick=n=>{if(n.shiftKey&&e.lastViewerPath&&!o){et(e.lastViewerPath)&&window.open(e.lastViewerPath,"_blank");return}if(!(!e.ws||!e.sweetlinkConnected))if(o){let r=window.open("about:blank","_blank");e.pendingViewerWindow=r,e.ws.send(JSON.stringify({type:"record-stop"})),e.recordingTimer&&clearInterval(e.recordingTimer),e.recordingActive=!1,e.recordingTimer=null,e.recordingStartedAt=null,e.render()}else e.ws.send(JSON.stringify({type:"record-start"})),e.recordingActive=!0,e.recordingStartedAt=Date.now(),e.recordingSessionId=null,e.recordingTimer=setInterval(()=>e.render(),1e3),e.render()},o){let n=document.createElement("span");Object.assign(n.style,{display:"block",width:"8px",height:"8px",borderRadius:"50%",backgroundColor:g.red}),t.appendChild(n)}else{let n=document.createElement("span");Object.assign(n.style,{display:"block",width:"8px",height:"8px",borderRadius:"50%",border:"2px solid currentColor"}),t.appendChild(n)}return t}function un(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label",e.demoActive?"Demo in progress":"Start Demo");let o=e.demoActive;return D(e,t,x.info,(n,r)=>{o?(r.addTitle(`Demo: "${e.demoTitle??"Untitled"}"`),r.addShortcut(`${e.demoSectionCount} sections`,""),r.addShortcut("Click","Add screenshot to demo")):(r.addTitle("Demo Document"),r.addShortcut("Click","Start demo (prompts for title)"),B()&&r.addWarning("Demo mode: no markdown document will be written."))}),Object.assign(t.style,{...L(x.info,o,!1)}),t.onclick=()=>{if(!(!e.ws||!e.sweetlinkConnected))if(o)e.ws.send(JSON.stringify({type:"demo-screenshot"})),e.demoSectionCount++,e.render();else{let n=prompt("Demo title:");if(!n)return;e.ws.send(JSON.stringify({type:"demo-init",data:{title:n}})),e.demoActive=!0,e.demoTitle=n,e.demoSectionCount=0,e.render()}},o?(t.textContent=String(e.demoSectionCount),t.style.fontSize="0.6rem"):t.appendChild(I("M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4Z",{stroke:!0,strokeWidth:"2"})),t}function nt(e){let t=document.createElement("button");t.type="button",t.setAttribute("data-testid","devbar-settings-button"),t.setAttribute("aria-label","Settings"),D(e,t,d.textSecondary,(r,i)=>{i.addTitle("Settings"),i.addSectionHeader("Keyboard"),i.addShortcut("Cmd or Ctrl+Shift+M","Toggle compact mode")});let o=e.showSettingsPopover,n=d.textSecondary;return Object.assign(t.style,L(n,o,!1)),t.onclick=()=>{let r=e.showSettingsPopover;O(e),e.showSettingsPopover=!r,e.render()},t.appendChild(I("M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",{stroke:!0,children:[{type:"circle",cx:"12",cy:"12",r:"3"}]})),t}function mn(e){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label",e.compactMode?"Switch to expanded mode":"Switch to compact mode");let o=e.compactMode,{accentColor:n}=e.options,r=d.textSecondary;Object.assign(t.style,L(r,!1,!1)),t.style.borderColor=f(n,38),R(e,t,()=>o?"Expand (Cmd or Ctrl+Shift+M)":"Compact (Cmd or Ctrl+Shift+M)",{onEnter:()=>{t.style.borderColor=n,t.style.backgroundColor=f(n,13),t.style.color=r},onLeave:()=>{t.style.borderColor=f(n,38),t.style.backgroundColor="transparent",t.style.color=f(r,60)}}),t.onclick=()=>{e.toggleCompactMode()};let i=o?"9 18 15 12 9 6":"15 18 9 12 15 6";return t.appendChild(I("",{stroke:!0,children:[{type:"polyline",points:i}]})),t}function fn(e,t=[]){if(!e.container)return;let{position:o,accentColor:n}=e.options,{errorCount:r,warningCount:i,infoCount:a}=e.getLogCounts(),s=fe[o]??fe["bottom-left"],l=e.container;t.length>0?l.dataset.devbarCustomControls="true":delete l.dataset.devbarCustomControls,e.resetPositionStyles(l),Object.assign(l.style,{position:"fixed",...s,zIndex:"9999",backgroundColor:"var(--devbar-color-bg-card)",border:`1px solid ${n}`,borderRadius:"20px",color:n,boxShadow:`${E.shadows.dropToolbar}, 0 0 0 1px ${f(n,10)}`,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",padding:"6px 10px",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"8px",boxSizing:"border-box",maxWidth:o==="bottom-center"?"calc(100vw - 32px)":"calc(100vw - 96px)",minWidth:"0",fontFamily:S,fontSize:"0.6875rem"});let c=Xe(e),p=c.querySelector(".devbar-conn-dot");if(R(e,c,()=>me(e.sweetlinkConnected)),c.onclick=m=>{m.stopPropagation(),Oe(e,p),e.collapsed=!0,e.debug.state("Collapsed DevBar from compact mode"),e.render()},l.appendChild(c),r>0&&l.appendChild(Y(e,"error",r,x.error)),i>0&&l.appendChild(Y(e,"warn",i,x.warning)),a>0&&l.appendChild(Y(e,"info",a,x.info)),e.options.showScreenshot&&l.appendChild(ot(e,n)),l.appendChild(nt(e)),t.length>0)for(let m of t)l.appendChild(ke(m,n,e));let u=document.createElement("button");u.type="button",Object.assign(u.style,{display:"flex",alignItems:"center",justifyContent:"center",width:"18px",height:"18px",borderRadius:"50%",border:`1px solid ${f(n,38)}`,backgroundColor:"transparent",color:f(n,60),cursor:"pointer",fontSize:"0.5rem",transition:"all 150ms"}),u.textContent="\u27EB",R(e,u,()=>"Expand DevBar",{onEnter:()=>{u.style.backgroundColor=f(n,13),u.style.borderColor=n,u.style.color=n},onLeave:()=>{u.style.backgroundColor="transparent",u.style.borderColor=f(n,38),u.style.color=f(n,60)}}),u.onclick=()=>{e.toggleCompactMode()},l.appendChild(u)}function xe(e,t,o={}){let n=typeof window<"u"?window.location.href:"unknown",r=typeof window<"u"?`${window.innerWidth}x${window.innerHeight} @${window.devicePixelRatio||1}x`:"unknown",i=e.lastScreenshot??"not captured yet",a=o.artifactPath??"not saved yet",s=`Run pnpm sweetlink inspect --url ${n} before acting to refresh @e refs.`,l=[`# ${t}`,`- URL: ${n}`,`- Viewport: ${r}`,`- Screenshot: ${i}`,`- Artifact: ${a}`,`- Refs: ${s}`];return o.observation&&l.push(`- Observation: ${o.observation}`),{title:"Agent Context",items:[{label:"URL",value:n},{label:"Viewport",value:r},{label:"Screenshot",value:i},{label:"Artifact",value:a},{label:"Refs",value:s}],copyText:l.join(`
|
|
515
|
+
`)}}function gn(e,t){let o=e.consoleFilter;if(!o)return;let n=t.getLogs().filter(b=>b.level===o),i={error:x.error,warn:x.warning,info:x.info}[o],s={error:"Errors",warn:"Warnings",info:"Info"}[o],l=()=>{e.consoleFilter=null,e.render()},c=U(l),p=G(i,`Console ${s}`),u=N({color:i,title:`Console ${s} (${n.length})`,onClose:l,onCopyMd:async()=>{await z(zt(n))},onSave:()=>nn(e,n),onClear:()=>e.clearConsoleLogs(),sweetlinkConnected:e.sweetlinkConnected,saveLocation:e.options.saveLocation,isSaving:e.savingConsoleLogs,savedPath:e.lastConsoleLogs,evidenceContext:xe(e,`Console ${s}`,{artifactPath:e.lastConsoleLogs,observation:`${n.length} ${o} log${n.length===1?"":"s"} in the current filter.`})});p.appendChild(u);let m=W();n.length===0?m.appendChild(re(`No ${o}s recorded`)):Nr(m,n,i),p.appendChild(m),c.appendChild(p),e.overlayElement=c,document.body.appendChild(c),q(p)}function Nr(e,t,o){t.forEach((n,r)=>{let i=document.createElement("div");Object.assign(i.style,{padding:"8px 14px",borderBottom:r<t.length-1?`1px solid ${d.borderSubtle}`:"none"});let a=document.createElement("span");Object.assign(a.style,{color:d.textMuted,fontSize:"0.625rem",marginRight:"8px"}),a.textContent=new Date(n.timestamp).toLocaleTimeString(),i.appendChild(a);let s=document.createElement("span");Object.assign(s.style,{color:o,fontSize:"0.6875rem",wordBreak:"break-word",whiteSpace:"pre-wrap"}),s.textContent=n.message,i.appendChild(s),e.appendChild(i)})}function Wr(e,t,o){if(e.lastDotPosition&&!o){let i=t.endsWith("right"),a;return i?a=t.startsWith("top")?{top:"20px",right:"16px"}:{bottom:"20px",right:"16px"}:a={top:`${e.lastDotPosition.top-15}px`,left:`${e.lastDotPosition.left-19}px`},e.lastDotPosition=null,a}return fe[t]??fe["bottom-left"]}function jr(e,t,o,n,r){e.resetPositionStyles(t);let i=e.options.sizeOverrides,a="fit-content",s="auto",l=r?"calc(100vw - 32px)":"calc(100vw - 96px)";Object.assign(t.style,{position:"fixed",...o,zIndex:"9999",backgroundColor:"var(--devbar-color-bg-card)",border:`1px solid ${n}`,borderRadius:"12px",color:n,boxShadow:`${E.shadows.dropToolbar}, 0 0 0 1px ${f(n,10)}`,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",boxSizing:"border-box",width:i?.width??a,maxWidth:i?.maxWidth??l,minWidth:i?.minWidth??s,cursor:"default"}),t.ondblclick=c=>{if(c.target?.closest("button, input, select, a"))return;let u=t.querySelector(".devbar-status span span");u&&Oe(e,u),e.collapsed=!0,e.debug.state("Collapsed DevBar (double-click)"),e.render()}}function zr(){let e=document.createElement("div");return e.className="devbar-main",Object.assign(e.style,{display:"flex",alignItems:"center",alignContent:"flex-start",justifyContent:"flex-start",gap:"0.5rem",padding:"0.5rem 0.75rem",minWidth:"0",boxSizing:"border-box",fontFamily:S,fontSize:"0.6875rem",lineHeight:"1rem"}),e}function Fr(e){let t=Xe(e);return R(e,t,()=>me(e.sweetlinkConnected,"click to minimize")),t.onclick=o=>{o.stopPropagation(),Oe(e,t),e.collapsed=!0,e.debug.state("Collapsed DevBar (connection dot click)"),e.render()},t}function Hr(e,t){let o=document.createElement("div");return o.className="devbar-info",Object.assign(o.style,{display:"flex",alignItems:"center",gap:"0.5rem",textTransform:"uppercase",letterSpacing:"0.05em",flexShrink:"1",minWidth:"0",overflow:"visible"}),t.breakpoint&&e.breakpointInfo&&Vr(e,o),e.perfStats&&Gr(e,o,t),o}function Vr(e,t){if(!e.breakpointInfo)return;let o=e.breakpointInfo.tailwindBreakpoint,n=_[o],r=document.createElement("span");r.className="devbar-item",Object.assign(r.style,{opacity:"0.9",cursor:"default"}),Io(e,r,o,e.breakpointInfo.dimensions,n?.label||"");let i=o;o!=="base"&&(i=o==="sm"?`${o} - ${e.breakpointInfo.dimensions.split("x")[0]}`:`${o} - ${e.breakpointInfo.dimensions}`),r.textContent=i,t.appendChild(r)}function Ur(e){return{fcp:{label:"FCP",value:e.fcp,title:"First Contentful Paint (FCP)",description:"Time until the first text or image renders on screen.",thresholds:{good:"<1.8s",needsWork:"1.8-3s",poor:">3s"}},lcp:{label:"LCP",value:e.lcp,title:"Largest Contentful Paint (LCP)",description:"Time until the largest visible element renders on screen.",thresholds:{good:"<2.5s",needsWork:"2.5-4s",poor:">4s"}},cls:{label:"CLS",value:e.cls,title:"Cumulative Layout Shift (CLS)",description:"Visual stability score. Higher values mean more unexpected layout shifts.",thresholds:{good:"<0.1",needsWork:"0.1-0.25",poor:">0.25"}},inp:{label:"INP",value:e.inp,title:"Interaction to Next Paint (INP)",description:"Responsiveness to user input. Measures the longest interaction delay.",thresholds:{good:"<200ms",needsWork:"200-500ms",poor:">500ms"}},pageSize:{label:"",value:e.totalSize,title:"Total Page Size",description:"Compressed/transferred size including HTML, CSS, JS, images, and other resources."}}}function Gr(e,t,o){if(!e.perfStats)return;let{visible:n,hidden:r}=Co(e),i=Ur(e.perfStats),a=()=>{let l=document.createElement("span");l.style.opacity="0.4",l.textContent="|",t.appendChild(l)};for(let l of n){if(!o[l])continue;let c=i[l];a();let p=document.createElement("span");p.className="devbar-item",Object.assign(p.style,{opacity:l==="pageSize"?"0.7":"0.85",cursor:"default"}),p.textContent=c.label?`${c.label} ${c.value}`:c.value,c.thresholds?Lo(e,p,c.title,c.description,c.thresholds):Do(e,p,c.title,c.description),t.appendChild(p)}let s=r.filter(l=>o[l]);s.length>0&&(a(),qr(e,t,s,i))}function qr(e,t,o,n){let r=document.createElement("span");r.className="devbar-item devbar-clickable",Object.assign(r.style,{opacity:"0.7",cursor:"pointer",padding:"0 2px"}),r.textContent="\xB7\xB7\xB7",Mo(e,r,i=>{ue(e,i,"More Metrics");let a=document.createElement("div");Object.assign(a.style,{display:"flex",flexDirection:"column",gap:"6px",marginTop:"8px"});for(let s of o){let l=n[s],c=document.createElement("div");Object.assign(c.style,{display:"flex",justifyContent:"space-between",gap:"12px"});let p=document.createElement("span");Object.assign(p.style,{color:d.textMuted}),p.textContent=l.title.split("(")[0].trim();let u=document.createElement("span");Object.assign(u.style,{color:d.text,fontWeight:"500"}),u.textContent=l.value,c.appendChild(p),c.appendChild(u),a.appendChild(c)}i.appendChild(a)}),t.appendChild(r)}function Yr(e,t,o,n,r,i){let a=Fr(e),s=document.createElement("div");s.className="devbar-status",Object.assign(s.style,{display:"flex",alignItems:"center",gap:"0.5rem",flexWrap:"nowrap",flexShrink:"1",minWidth:"0"}),s.appendChild(a);let l=Hr(e,t);return s.appendChild(l),o&&(n>0&&s.appendChild(Y(e,"error",n,x.error)),r>0&&s.appendChild(Y(e,"warn",r,x.warning)),i>0&&s.appendChild(Y(e,"info",i,x.info))),s}function Jr(e,t,o){let n=document.createElement("div");return n.className="devbar-actions",t&&n.appendChild(ot(e,o)),n.appendChild(an(e)),n.appendChild(sn(e)),n.appendChild(ln(e)),n.appendChild(cn(e)),n.appendChild(dn(e)),n.appendChild(pn(e)),n.appendChild(un(e)),n.appendChild(nt(e)),n.appendChild(mn(e)),n}function Kr(e,t,o,n){if(t.length===0)return null;let r=document.createElement("div");r.className=e,Object.assign(r.style,{display:"flex",flexWrap:"wrap",alignItems:"center",alignContent:"flex-start",justifyContent:"flex-start",gap:"0.5rem",padding:"0 0.75rem 0.5rem 0.75rem",borderTop:`1px solid ${f(o,19)}`,marginTop:"0",paddingTop:"0.5rem",width:"100%",maxWidth:"100%",minWidth:"0",overflow:"visible",boxSizing:"border-box",fontFamily:S,fontSize:"0.6875rem"});for(let i of t)r.appendChild(ke(i,o,n));return r}function Qr(e,t,o){let n=e.filter(i=>!i.group),r=Kr("devbar-custom-controls devbar-custom-controls-inline",n,t,o);return r?(Object.assign(r.style,{padding:"0",borderTop:"0",width:"fit-content",flex:"0 1 auto",overflow:"hidden"}),r):null}function Xr(e,t,o){let n=e.filter(a=>a.group);if(n.length===0)return null;let r=document.createElement("div");r.className="devbar-custom-controls devbar-custom-controls-row",Object.assign(r.style,{display:"flex",flexWrap:"wrap",alignItems:"center",alignContent:"flex-start",justifyContent:"flex-start",gap:"0.5rem",padding:"0 0.75rem 0.5rem 0.75rem",borderTop:`1px solid ${f(t,19)}`,marginTop:"0",paddingTop:"0.5rem",width:"100%",maxWidth:"100%",minWidth:"0",overflow:"visible",boxSizing:"border-box",fontFamily:S,fontSize:"0.6875rem"});let i=new Map;for(let a of n){if(!a.group)continue;let s=i.get(a.group)??[];s.push(a),i.set(a.group,s)}for(let[a,s]of i){let l=document.createElement("span");l.className="devbar-custom-group-label",Object.assign(l.style,{color:f(t,50),fontSize:"0.5625rem",textTransform:"uppercase",letterSpacing:"0.05em",flex:"0 1 auto",minWidth:"0",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginLeft:[...i.keys()].indexOf(a)>0?"0.25rem":"0"}),l.textContent=a,r.appendChild(l);for(let c of s)r.appendChild(ke(c,t,o))}return r}function hn(e,t){if(!e.container)return;let{position:o,accentColor:n,showMetrics:r,showScreenshot:i,showConsoleBadges:a}=e.options,{errorCount:s,warningCount:l,infoCount:c}=e.getLogCounts(),p=t.some(T=>T.group),u=o==="bottom-center",m=e.container;p?m.dataset.devbarCustomControls="true":delete m.dataset.devbarCustomControls;let b=Wr(e,o,u);jr(e,m,b,n,u);let y=zr(),w=Yr(e,r,a,s,l,c);y.appendChild(w);let h=Qr(t,n,e);h&&y.appendChild(h);let v=Jr(e,i,n);y.appendChild(v),m.appendChild(y);let C=Xr(t,n,e);C&&m.appendChild(C)}function xn(e){let t=X(),o=x.outline,n=()=>{e.showOutlineModal=!1,e.render()},r=U(n),i=G(o,"Document Outline"),a=N({color:o,title:"Document Outline",onClose:n,onCopyMd:async()=>{let l=H(t);await z(l)},onSave:()=>on(e),sweetlinkConnected:e.sweetlinkConnected,saveLocation:e.options.saveLocation,isSaving:e.savingOutline,savedPath:e.lastOutline,evidenceContext:xe(e,"Document Outline",{artifactPath:e.lastOutline,observation:`${t.length} top-level semantic node${t.length===1?"":"s"} found.`})});i.appendChild(a);let s=W();t.length===0?s.appendChild(re("No semantic elements found in this document")):wn(t,s,0,{lastHeadingLevel:0}),i.appendChild(s),r.appendChild(i),e.overlayElement=r,document.body.appendChild(r),q(i)}function wn(e,t,o,n){for(let r of e){let i=r.category==="heading"&&r.level>0,a=i&&r.level>n.lastHeadingLevel+1;i&&(n.lastHeadingLevel=r.level);let s=document.createElement("div");if(Object.assign(s.style,{padding:`4px 0 4px ${o*16}px`}),a){let m=document.createElement("span");Object.assign(m.style,{color:d.error,fontSize:"0.625rem",marginRight:"4px"}),m.textContent="\u26A0",m.title=`Heading level skipped (expected h${r.level-1} or higher before h${r.level})`,s.appendChild(m)}let l=document.createElement("span"),c=Ue[r.category||"other"]||Ue.other;if(Object.assign(l.style,{color:a?d.error:c,fontSize:"0.6875rem",fontWeight:"500"}),l.textContent=`<${r.tagName}>`,s.appendChild(l),r.category){let m=document.createElement("span");Object.assign(m.style,{color:d.textMuted,fontSize:"0.625rem",marginLeft:"6px"}),m.textContent=`[${r.category}]`,s.appendChild(m)}let p=document.createElement("span");Object.assign(p.style,{color:d.textSecondary,fontSize:"0.6875rem",marginLeft:"8px"});let u=r.text.length>60?`${r.text.slice(0,60)}...`:r.text;if(p.textContent=u,s.appendChild(p),r.id){let m=document.createElement("span");Object.assign(m.style,{color:d.textSecondary,fontSize:"0.625rem",marginLeft:"6px"}),m.textContent=`#${r.id}`,s.appendChild(m)}t.appendChild(s),r.children.length>0&&wn(r.children,t,o+1,n)}}function vn(e){let t=Z(),o=x.schema,n=()=>{e.showSchemaModal=!1,e.render()},r=U(n),i=G(o,"Page Schema"),a=Fe(t),s=ze(),l=N({color:o,title:"Page Schema",onClose:n,onCopyMd:async()=>{let u=$(t,{missingTags:a,favicons:s});await z(u)},onSave:()=>rn(e),sweetlinkConnected:e.sweetlinkConnected,saveLocation:e.options.saveLocation,isSaving:e.savingSchema,savedPath:e.lastSchema,evidenceContext:xe(e,"Page Schema",{artifactPath:e.lastSchema,observation:a.length?`${a.length} recommended metadata item${a.length===1?"":"s"} missing.`:"Schema evidence captured for this page."})});i.appendChild(l);let c=W();t.jsonLd.length>0||Object.keys(t.openGraph).length>0||Object.keys(t.twitter).length>0||Object.keys(t.metaTags).length>0||s.length>0||a.length>0?(a.length>0&&ri(c,a),rt(c,"Open Graph",t.openGraph,d.info),rt(c,"Twitter Cards",t.twitter,d.cyan),s.length>0&&oi(c,s),rt(c,"JSON-LD",t.jsonLd,o),rt(c,"Meta Tags",t.metaTags,d.textMuted)):c.appendChild(re("No structured data found on this page")),i.appendChild(c),r.appendChild(i),e.overlayElement=r,document.body.appendChild(r),q(i)}function Ht(e,t,o,n){let r=document.createElement("div");Object.assign(r.style,{display:"flex",alignItems:"center",gap:"8px",marginBottom:"10px",paddingBottom:"6px",borderBottom:`1px solid ${f(o,19)}`});let i=document.createElement("h3");Object.assign(i.style,{color:o,fontSize:"0.8125rem",fontWeight:"600",margin:"0"}),i.textContent=t,r.appendChild(i);let a=document.createElement("span");Object.assign(a.style,{color:f(o,80),fontSize:"0.5625rem",backgroundColor:f(o,9),padding:"1px 6px",borderRadius:"8px",letterSpacing:"0.03em"}),a.textContent=String(n),r.appendChild(a),e.appendChild(r)}function rt(e,t,o,n){let r=Array.isArray(o)?o.length:Object.keys(o).length;if(r===0)return;let i=document.createElement("div");i.style.marginBottom="20px",Ht(i,t,n,r),Array.isArray(o)?Zr(i,o,n):_r(i,o),e.appendChild(i)}function Zr(e,t,o){t.forEach((n,r)=>{let i=document.createElement("div");i.style.marginBottom="10px";let a=n,s=typeof a?.["@type"]=="string"?a["@type"]:null,l=document.createElement("div");Object.assign(l.style,{display:"flex",alignItems:"center",gap:"6px",marginBottom:"4px"});let c=document.createElement("span");if(Object.assign(c.style,{color:d.textSecondary,fontSize:"0.6875rem"}),c.textContent=`Schema ${r+1}`,l.appendChild(c),s){let u=document.createElement("span");Object.assign(u.style,{color:f(o,80),fontSize:"0.5625rem",backgroundColor:f(o,8),border:`1px solid ${f(o,15)}`,padding:"0 5px",borderRadius:"3px"}),u.textContent=s,l.appendChild(u)}i.appendChild(l);let p=document.createElement("pre");Object.assign(p.style,{backgroundColor:"rgba(0, 0, 0, 0.25)",borderRadius:"4px",borderLeft:`2px solid ${f(o,31)}`,padding:"10px 10px 10px 12px",fontSize:"0.625rem",margin:"0",whiteSpace:"pre-wrap",wordBreak:"break-word"}),$r(p,JSON.stringify(n,null,2)),i.appendChild(p),e.appendChild(i)})}function $r(e,t){let o={key:d.primary,string:d.warning,number:d.purple,boolean:d.info,nullVal:d.error,punct:d.textMuted},n=/("(?:\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*")(\s*:)?|(\btrue\b|\bfalse\b)|(\bnull\b)|(-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)|([{}[\],])|(\s+)/g;for(let r of t.matchAll(n)){let[,i,a,s,l,c,p,u]=r;if(u)e.appendChild(document.createTextNode(u));else if(i!==void 0){let m=document.createElement("span");if(m.style.color=a?o.key:o.string,m.textContent=i,e.appendChild(m),a){let b=document.createElement("span");b.style.color=o.punct,b.textContent=":",e.appendChild(b)}}else if(s){let m=document.createElement("span");m.style.color=o.boolean,m.textContent=s,e.appendChild(m)}else if(l){let m=document.createElement("span");m.style.color=o.nullVal,m.textContent=l,e.appendChild(m)}else if(c){let m=document.createElement("span");m.style.color=o.number,m.textContent=c,e.appendChild(m)}else if(p){let m=document.createElement("span");m.style.color=o.punct,m.textContent=p,e.appendChild(m)}}}function _r(e,t){Object.entries(t).forEach(([n,r],i)=>{let a=Xt(n),s=document.createElement("div");Object.assign(s.style,{display:"flex",padding:a?"6px 8px":"3px 8px",alignItems:"flex-start",borderRadius:"3px",backgroundColor:i%2===0?"rgba(255, 255, 255, 0.02)":"transparent"});let l=document.createElement("span");if(Object.assign(l.style,{color:d.textSecondary,fontSize:"0.6875rem",width:"120px",minWidth:"120px",maxWidth:"120px",flexShrink:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingTop:a?"2px":"0"}),l.textContent=n,n.length>18&&(l.title=n),s.appendChild(l),a&&r){let c=document.createElement("div");Object.assign(c.style,{flex:"1",minWidth:"0"});let p=document.createElement("div");Object.assign(p.style,{display:"inline-block",padding:"4px",backgroundColor:"rgba(0, 0, 0, 0.2)",border:"1px solid rgba(255, 255, 255, 0.06)",borderRadius:"4px",marginBottom:"4px",minHeight:"60px",minWidth:"80px"});let u=document.createElement("img");Object.assign(u.style,{width:"200px",height:"120px",objectFit:"contain",borderRadius:"2px",display:"block"}),u.src=r,u.alt=n,u.onerror=()=>{p.style.display="none"},u.onload=()=>{u.naturalWidth&&(m.textContent=`${u.naturalWidth}\xD7${u.naturalHeight}`)},p.appendChild(u),c.appendChild(p);let m=document.createElement("div");Object.assign(m.style,{color:d.textMuted,fontSize:"0.5625rem",minHeight:"0.75rem",letterSpacing:"0.02em"}),c.appendChild(m);let b=document.createElement("div");Object.assign(b.style,{color:d.textMuted,fontSize:"0.5625rem",wordBreak:"break-all",opacity:"0.7"}),b.textContent=r,c.appendChild(b),s.appendChild(c)}else{let c=document.createElement("span");Object.assign(c.style,{color:d.text,fontSize:"0.6875rem",flex:"1",wordBreak:"break-word",whiteSpace:"pre-wrap",opacity:"0.85"}),c.textContent=String(r),s.appendChild(c)}e.appendChild(s)})}function ei(e,t){let o=parseInt(t||"",10);return e.includes("apple")?{text:"Apple home screen",color:d.info}:t==="any"||e.includes("svg")?{text:"Scalable (any)",color:d.cyan}:o>=192?{text:"Android / PWA",color:d.primary}:o>=48?{text:"Taskbar / shortcut",color:d.purple}:o>0?{text:"Browser tab",color:d.textSecondary}:{text:"General",color:d.textMuted}}function ti(e,t){let o=ei(e.label,e.size),n=document.createElement("div");Object.assign(n.style,{display:"flex",alignItems:"center",padding:"6px 8px",gap:"10px",borderRadius:"3px",backgroundColor:t%2===0?"rgba(255, 255, 255, 0.02)":"transparent"});let r=document.createElement("div");Object.assign(r.style,{width:"32px",height:"32px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.25)",border:"1px solid rgba(255, 255, 255, 0.06)",borderRadius:"4px",flexShrink:"0"});let i=document.createElement("img");Object.assign(i.style,{width:"22px",height:"22px",objectFit:"contain"}),i.src=e.url,i.alt=e.label,i.onerror=()=>{r.style.opacity="0.3"},r.appendChild(i),n.appendChild(r);let a=document.createElement("div");Object.assign(a.style,{flex:"1",minWidth:"0",display:"flex",flexDirection:"column",gap:"2px"});let s=document.createElement("div");Object.assign(s.style,{display:"flex",alignItems:"center",gap:"6px"});let l=document.createElement("span");Object.assign(l.style,{color:d.text,fontSize:"0.6875rem",fontWeight:"500",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),l.textContent=e.label,e.label.length>24&&(l.title=e.label),s.appendChild(l);let c=document.createElement("span");Object.assign(c.style,{color:o.color,fontSize:"0.5rem",backgroundColor:f(o.color,7),padding:"1px 6px",borderRadius:"6px",letterSpacing:"0.03em",whiteSpace:"nowrap",flexShrink:"0"}),c.textContent=o.text,s.appendChild(c),a.appendChild(s);let p=document.createElement("div");if(Object.assign(p.style,{display:"flex",alignItems:"center",gap:"6px",fontSize:"0.5625rem",color:d.textMuted}),e.size){let y=document.createElement("span");y.textContent=e.size,y.style.opacity="0.8",p.appendChild(y)}let u=document.createElement("span");u.style.letterSpacing="0.02em",p.appendChild(u),i.onload=()=>{if(i.naturalWidth){let y=`${i.naturalWidth}\xD7${i.naturalHeight}`;e.size?u.textContent=`\u2192 ${y}`:u.textContent=y}};let m=document.createElement("span");m.textContent="\xB7",m.style.opacity="0.4",p.appendChild(m);let b=document.createElement("span");return Object.assign(b.style,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",opacity:"0.6"}),b.textContent=e.url,b.title=e.url,p.appendChild(b),a.appendChild(p),n.appendChild(a),n}function oi(e,t){let o=d.purple,n=document.createElement("div");n.style.marginBottom="20px",Ht(n,"Favicons",o,t.length),t.forEach((r,i)=>{n.appendChild(ti(r,i))}),e.appendChild(n)}function bn(e,t){let o=document.createElement("span");return Object.assign(o.style,{color:t,fontSize:"0.5625rem",backgroundColor:f(t,8),padding:"2px 8px",borderRadius:"8px",letterSpacing:"0.03em"}),o.textContent=e,o}function ni(e,t){let o=document.createElement("div");return Object.assign(o.style,{display:"flex",alignItems:"center",padding:"4px 8px",gap:"8px",borderRadius:"3px",backgroundColor:e%2===0?"rgba(255, 255, 255, 0.02)":"transparent",...t?{borderLeft:`2px solid ${f(t,25)}`}:{}}),o}function Ft(e,t){let o=document.createElement("span");return Object.assign(o.style,t),o.textContent=e,o}function ri(e,t){let o=document.createElement("div");o.style.marginBottom="20px";let n=t.filter(s=>s.severity==="error").length,r=t.length-n,a=n>0?d.error:d.warning;if(Ht(o,"Missing Tags",a,t.length),n>0||r>0){let s=document.createElement("div");Object.assign(s.style,{display:"flex",gap:"8px",marginBottom:"8px"}),n>0&&s.appendChild(bn(`${n} error${n>1?"s":""}`,d.error)),r>0&&s.appendChild(bn(`${r} warning${r>1?"s":""}`,d.warning)),o.appendChild(s)}t.forEach((s,l)=>{let c=s.severity==="error",p=c?d.error:d.warning,u=ni(l,p),m=Ft(c?"\u2718":"\u26A0",{fontSize:"0.625rem",flexShrink:"0",width:"14px",textAlign:"center",color:p});u.appendChild(m),u.appendChild(Ft(s.tag,{color:d.text,fontSize:"0.6875rem",width:"120px",minWidth:"120px",flexShrink:"0",fontWeight:"500"})),u.appendChild(Ft(s.hint,{color:d.textMuted,fontSize:"0.6875rem",flex:"1",opacity:"0.85"})),o.appendChild(u)}),e.appendChild(o)}function Cn(e){let t=x.a11y,o=()=>{e.showA11yModal=!1,e.render()},n=U(o),r=G(t,"Accessibility Audit");ii(r,t,o,e),n.appendChild(r),e.overlayElement=n,document.body.appendChild(n),q(r),Ce().then(i=>{if(!e.showA11yModal)return;let a=Ke(i);ge(r);let s=i.violations.length,l=s===0?"Accessibility Audit \u2014 No Issues":`Accessibility Audit \u2014 ${s} Violation${s===1?"":"s"}`,c=N({color:t,title:l,onClose:o,onCopyMd:async()=>{await z(a)},onSave:()=>tn(e,i),sweetlinkConnected:e.sweetlinkConnected,saveLocation:e.options.saveLocation,isSaving:e.savingA11yAudit,savedPath:e.lastA11yAudit,evidenceContext:xe(e,l,{artifactPath:e.lastA11yAudit,observation:s===0?`${i.passes.length} axe rule${i.passes.length===1?"":"s"} passed.`:`${s} accessibility violation${s===1?"":"s"} found.`})});r.appendChild(c);let p=W();ai(p,i,t),r.appendChild(p)}).catch(i=>{if(!e.showA11yModal)return;ge(r);let a=N({color:d.error,title:"Accessibility Audit \u2014 Error",onClose:o,onCopyMd:async()=>{},sweetlinkConnected:e.sweetlinkConnected,saveLocation:e.options.saveLocation});r.appendChild(a);let s=W();s.appendChild(be(d.error,"Audit Failed",`${i instanceof Error?i.message:"Unknown error"}`)),r.appendChild(s)})}function ii(e,t,o,n){let r=W(),i=document.createElement("div");Object.assign(i.style,{textAlign:"center",padding:"40px",color:d.textSecondary,fontSize:"0.875rem"}),i.textContent="Running accessibility audit...",i.style.animation="pulse 1.5s ease-in-out infinite",r.appendChild(i);let a=N({color:t,title:"Accessibility Audit",onClose:o,onCopyMd:async()=>{},sweetlinkConnected:n.sweetlinkConnected,saveLocation:n.options.saveLocation});e.appendChild(a),e.appendChild(r)}function ai(e,t,o){if(si(e,t,o),t.violations.length===0){let n=document.createElement("div");if(Object.assign(n.style,{textAlign:"center",padding:"40px",color:d.primary,fontSize:"0.875rem"}),n.textContent="No accessibility violations found!",e.appendChild(n),t.passes.length>0){let r=document.createElement("div");Object.assign(r.style,{textAlign:"center",color:d.textMuted,fontSize:"0.75rem",marginTop:"8px"}),r.textContent=`${t.passes.length} rules passed`,e.appendChild(r)}}else{let n=qe(t.violations),r=document.createElement("div");Object.assign(r.style,{display:"flex",gap:"12px",marginBottom:"16px",padding:"10px 12px",backgroundColor:f(o,6),border:`1px solid ${f(o,19)}`,borderRadius:"6px",flexWrap:"wrap"});for(let a of["critical","serious","moderate","minor"]){if(n[a]===0)continue;let s=document.createElement("span"),l=Je(a);Object.assign(s.style,{display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"0.6875rem",fontWeight:"600",color:l});let c=document.createElement("span");Object.assign(c.style,{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:l}),s.appendChild(c),s.appendChild(document.createTextNode(`${n[a]} ${a}`)),r.appendChild(s)}e.appendChild(r);let i=Ye(t.violations);for(let[a,s]of i)s.length!==0&&ci(e,a,s)}}function si(e,t,o){let n=[`${t.passes.length} axe rule${t.passes.length===1?"":"s"} passed`,`${t.violations.length} violation${t.violations.length===1?"":"s"} found`,"current DOM, focus semantics, names, landmarks, forms, and color contrast where browser APIs expose enough paint data"];e.appendChild(be(o,"What was checked",n.join(" \xB7 ")))}function yn(e){let t=document.createElement("div");return Object.assign(t.style,{padding:"3px 6px",marginBottom:"2px",backgroundColor:"rgba(0,0,0,0.2)",borderRadius:"3px",fontSize:"0.625rem",color:d.textSecondary,fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),t.textContent=e.html.length>100?`${e.html.slice(0,100)}...`:e.html,t.title=e.html,t}function li(e,t){let o=document.createElement("div");Object.assign(o.style,{marginBottom:"12px",padding:"10px 12px",backgroundColor:f(t,3),border:`1px solid ${f(t,13)}`,borderRadius:"6px"});let n=document.createElement("div");Object.assign(n.style,{color:t,fontSize:"0.6875rem",fontWeight:"600",marginBottom:"4px"}),n.textContent=e.id,o.appendChild(n);let r=document.createElement("div");Object.assign(r.style,{color:d.text,fontSize:"0.75rem",marginBottom:"4px"}),r.textContent=e.help,o.appendChild(r);let i=document.createElement("div");Object.assign(i.style,{color:d.textSecondary,fontSize:"0.6875rem",marginBottom:"6px"}),i.textContent=e.description,o.appendChild(i);let a=document.createElement("div");Object.assign(a.style,{color:d.textMuted,fontSize:"0.625rem",marginBottom:"4px"}),a.textContent=`${e.nodes.length} element${e.nodes.length===1?"":"s"} affected`,o.appendChild(a);let s=document.createElement("div");Object.assign(s.style,{marginTop:"6px"});let l=e.nodes.slice(0,3);for(let c of l)s.appendChild(yn(c));if(e.nodes.length>3){let c=document.createElement("button");Object.assign(c.style,{background:"none",border:"none",color:t,fontSize:"0.625rem",cursor:"pointer",padding:"2px 0",fontFamily:S}),c.textContent=`+ ${e.nodes.length-3} more`,c.onclick=()=>{c.remove();for(let p of e.nodes.slice(3))s.appendChild(yn(p))},s.appendChild(c)}return o.appendChild(s),o}function ci(e,t,o){let n=Je(t),r=document.createElement("div");r.style.marginBottom="20px";let i=document.createElement("h3");Object.assign(i.style,{color:n,fontSize:"0.8125rem",fontWeight:"600",marginBottom:"10px",borderBottom:`1px solid ${f(n,25)}`,paddingBottom:"6px",textTransform:"capitalize"}),i.textContent=`${t} (${o.length})`,r.appendChild(i);for(let a of o)r.appendChild(li(a,n));e.appendChild(r)}function Sn(e){let t=x.review,o=()=>Xo(e),n=U(o),r=G(t,"AI Design Review");r.style.maxWidth="450px",r.appendChild(N({color:t,title:"AI Design Review",onClose:o}));let i=W();if(Object.assign(i.style,{color:d.text,fontSize:"0.8125rem",lineHeight:"1.6"}),e.apiKeyStatus===null?i.appendChild(re("Checking API key configuration...")):e.apiKeyStatus.configured?i.appendChild(pi(e)):i.appendChild(di()),r.appendChild(i),e.apiKeyStatus?.configured){let a=document.createElement("div");Object.assign(a.style,{display:"flex",justifyContent:"flex-end",gap:"10px",padding:"14px 18px",borderTop:`1px solid ${d.border}`});let s=P({color:t,text:"Run Review",padding:"8px 16px"});s.style.backgroundColor=f(t,13),s.onclick=()=>Zo(e),a.appendChild(s),r.appendChild(a)}n.appendChild(r),e.overlayElement=n,document.body.appendChild(n),q(r)}function di(){let e=document.createElement("div");e.appendChild(be(d.error,"API Key Not Configured","The ANTHROPIC_API_KEY environment variable is not set."));let t=document.createElement("div");Object.assign(t.style,{marginBottom:"12px"});let o=document.createElement("div");return Object.assign(o.style,{color:d.textSecondary,fontWeight:"600",marginBottom:"8px"}),o.textContent="To configure:",t.appendChild(o),[{text:"1. Get an API key from console.anthropic.com",highlight:!1},{text:"2. Add to your .env file:",highlight:!1},{text:" ANTHROPIC_API_KEY=sk-ant-...",highlight:!0},{text:"3. Restart your dev server",highlight:!1}].forEach(({text:r,highlight:i})=>{let a=document.createElement("div");Object.assign(a.style,{color:i?d.primary:d.textMuted,fontSize:"0.75rem",marginBottom:"4px",fontFamily:S}),a.textContent=r,t.appendChild(a)}),e.appendChild(t),e}function pi(e){let t=document.createElement("div");Object.assign(t.style,{marginBottom:"16px"});let o=document.createElement("p");Object.assign(o.style,{color:d.textSecondary,marginBottom:"12px"}),o.textContent="This will capture a screenshot and send it to Claude for design analysis.",t.appendChild(o);let n=Qo(e);if(n){let r=be(d.primary,"Estimated Cost",[]);r.style.marginBottom="0",r.style.padding="12px";let i=document.createElement("div");Object.assign(i.style,{display:"flex",justifyContent:"space-between",color:d.textSecondary,fontSize:"0.75rem"});let a=document.createElement("span");a.textContent=`~${n.tokens.toLocaleString()} tokens`,i.appendChild(a);let s=document.createElement("span");Object.assign(s.style,{color:d.warning,fontWeight:"600"}),s.textContent=n.cost,i.appendChild(s),r.appendChild(i),t.appendChild(r)}if(e.apiKeyStatus?.model){let r=document.createElement("div");Object.assign(r.style,{color:d.textMuted,fontSize:"0.6875rem",marginTop:"12px"}),r.textContent=`Model: ${e.apiKeyStatus.model}`,t.appendChild(r)}return t}var ui=860;function Vt(e){return e?!0:typeof window>"u"?!1:window.innerWidth<=ui}function En(e){let t=e.settingsManager.getSettings();e.themeMode=e.forcedThemeMode??t.themeMode,e.forcedThemeMode&&t.themeMode!==e.forcedThemeMode&&e.settingsManager.saveSettingsNow({themeMode:e.forcedThemeMode}),te(ee(e.themeMode)),e.debug.state("Theme loaded",{mode:e.themeMode}),typeof window<"u"&&window.matchMedia&&(e.themeMediaQuery=window.matchMedia("(prefers-color-scheme: dark)"),e.themeMediaHandler=()=>{e.themeMode==="system"&&(te(ee(e.themeMode)),e.debug.state("System theme changed",{effectiveTheme:pe(e.themeMode)}),window.dispatchEvent(new CustomEvent("devbar-theme-change",{detail:{mode:e.themeMode}})),e.render())},e.themeMediaQuery.addEventListener("change",e.themeMediaHandler))}function Tn(e){let t=e.settingsManager.getSettings();e.compactMode=Vt(t.compactMode),e.debug.state("Compact mode loaded",{compactMode:e.compactMode})}function it(e,t){let o=e.forcedThemeMode??t;e.themeMode=o,e.settingsManager.saveSettings({themeMode:o}),vt(o),te(ee(o)),e.debug.state("Theme mode changed",{mode:o,effectiveTheme:pe(o)}),typeof window<"u"&&window.dispatchEvent(new CustomEvent("devbar-theme-change",{detail:{mode:o}})),e.render()}function On(e){let{position:t,accentColor:o}=e.options,n=document.createElement("div");n.setAttribute("data-devbar","true"),n.setAttribute("data-devbar-overlay","true"),Object.assign(n.style,{position:"fixed",top:"0",left:"0",right:"0",bottom:"0",zIndex:"10003"}),n.onclick=b=>{b.target===n&&(e.showSettingsPopover=!1,e.render())};let r=document.createElement("div");r.setAttribute("data-devbar","true"),r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label","Settings"),r.tabIndex=-1;let i=t.startsWith("top"),a=480,s=16,l;if(e.container&&window.innerWidth>640){let b=e.container.getBoundingClientRect(),y=b.left+b.width/2;l=Math.max(s,Math.min(y-a/2,window.innerWidth-a-s))}else l=Math.max(s,(window.innerWidth-a)/2);Object.assign(r.style,{position:"fixed",[i?"top":"bottom"]:"70px",left:`${l}px`,zIndex:"10003",backgroundColor:"var(--devbar-color-bg-elevated)",border:`1px solid ${o}`,borderRadius:"8px",boxShadow:`${E.shadows.dropLg}, 0 0 0 1px ${f(o,20)}`,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",width:`${a}px`,maxWidth:"calc(100vw - 32px)",maxHeight:"calc(100vh - 100px)",overflowY:"auto",fontFamily:S}),r.appendChild(mi(e));let c=document.createElement("div");c.className="devbar-settings-grid",Object.assign(c.style,{display:"grid",gridTemplateColumns:"1fr 1fr"});let p=d.textSecondary,u=document.createElement("div");Object.assign(u.style,{borderRight:`1px solid ${f(p,13)}`}),u.appendChild(fi(e)),u.appendChild(gi(e)),c.appendChild(u);let m=document.createElement("div");m.appendChild(Ci(e)),m.appendChild(Ei(e)),c.appendChild(m),r.appendChild(c),r.appendChild(Ti(e)),n.appendChild(r),e.overlayElement=n,document.body.appendChild(n),r.focus()}function mi(e){let{accentColor:t}=e.options,o=document.createElement("div");Object.assign(o.style,{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 14px",borderBottom:`1px solid ${f(t,19)}`,position:"sticky",top:"0",backgroundColor:"var(--devbar-color-bg-elevated)",zIndex:"1"});let n=document.createElement("span");return Object.assign(n.style,{color:t,fontSize:"0.75rem",fontWeight:"600"}),n.textContent="Settings",o.appendChild(n),o.appendChild(Ae(()=>{e.showSettingsPopover=!1,e.render()})),o}function fi(e){let{accentColor:t}=e.options,o=!!e.forcedThemeMode,n=at("Theme");st(n,o?`Theme is controlled by the host app: ${e.forcedThemeMode}.`:"Follow OS/browser preference, force dark, or force light while reviewing.");let r=document.createElement("div");return Object.assign(r.style,{display:"flex",gap:"6px"}),["system","dark","light"].forEach(a=>{let s=kn({label:a,isActive:e.themeMode===a,accentColor:t,disabled:o&&a!==e.forcedThemeMode,disabledTitle:"Theme controlled by host app",onClick:()=>it(e,a)});s.style.textTransform="capitalize",r.appendChild(s)}),n.appendChild(r),n}function gi(e){let t=at("Display & appearance");return st(t,"Change where DevBar lives and how evidence captures are rendered."),t.appendChild(hi(e)),t.appendChild(bi(e)),t.appendChild(yi(e)),t.appendChild(vi(e)),t}function hi(e){let{accentColor:t}=e.options,o=d.textSecondary,n=document.createElement("div");Object.assign(n.style,{marginBottom:"10px"});let r=document.createElement("div");Object.assign(r.style,{color:d.text,fontSize:"0.6875rem",marginBottom:"6px"}),r.textContent="Position",n.appendChild(r);let i=document.createElement("div");return Object.assign(i.style,{position:"relative",width:"100%",height:"70px",backgroundColor:"var(--devbar-color-bg-input)",border:`1px solid ${f(o,19)}`,borderRadius:"4px"}),[{value:"top-left",style:{top:"6px",left:"6px"},title:"Top Left"},{value:"top-right",style:{top:"6px",right:"6px"},title:"Top Right"},{value:"bottom-left",style:{bottom:"6px",left:"6px"},title:"Bottom Left"},{value:"bottom-right",style:{bottom:"6px",right:"6px"},title:"Bottom Right"},{value:"bottom-center",style:{bottom:"6px",left:"50%",transform:"translateX(-50%)"},title:"Bottom Center"}].forEach(({value:s,style:l,title:c})=>{let p=document.createElement("button");p.setAttribute("data-position",s);let u=e.options.position===s;Object.assign(p.style,{position:"absolute",width:"24px",height:"6px",backgroundColor:u?t:d.textMuted,border:`1px solid ${u?t:d.textMuted}`,borderRadius:"2px",cursor:"pointer",padding:"0",transition:"all 150ms",boxShadow:u?`0 0 8px ${f(t,38)}`:"none",opacity:u?"1":"0.5",...l}),p.title=c,p.onclick=()=>{e.options.position=s,e.settingsManager.saveSettings({position:s}),e.render()},p.onmouseenter=()=>{u||(p.style.backgroundColor=t,p.style.borderColor=t,p.style.boxShadow=`0 0 6px ${f(t,25)}`,p.style.opacity="1")},p.onmouseleave=()=>{u||(p.style.backgroundColor=d.textMuted,p.style.borderColor=d.textMuted,p.style.boxShadow="none",p.style.opacity="0.5")},i.appendChild(p)}),n.appendChild(i),n}function bi(e){let{accentColor:t}=e.options,o=document.createDocumentFragment();o.appendChild(Be("Compact Mode",e.compactMode,t,()=>{e.toggleCompactMode()}));let n=document.createElement("div");return Object.assign(n.style,{color:d.textMuted,fontSize:"0.5625rem",marginTop:"2px",marginBottom:"8px"}),n.textContent="Keyboard: Cmd or Ctrl+Shift+M",o.appendChild(n),o}function yi(e){let t=document.createElement("div");Object.assign(t.style,{marginBottom:"6px"});let o=document.createElement("div");Object.assign(o.style,{color:d.text,fontSize:"0.6875rem",marginBottom:"6px"}),o.textContent="Accent Color",t.appendChild(o);let n=document.createElement("div");Object.assign(n.style,{display:"flex",gap:"6px",flexWrap:"wrap",alignItems:"center"});let r=e.options.accentColor,i=r===d.primary,s=!$e.some(l=>l.value===r)&&!i;if($e.forEach(({name:l,value:c})=>{let p=document.createElement("button"),u=r===c||i&&l==="Emerald";Object.assign(p.style,{width:"24px",height:"24px",borderRadius:"50%",backgroundColor:c,border:u?"2px solid #fff":"2px solid transparent",cursor:"pointer",transition:"all 150ms",boxShadow:u?`0 0 8px ${c}`:"none"}),p.title=l,p.onclick=()=>{e.options.accentColor=c,e.settingsManager.saveSettings({accentColor:c}),e.render()},n.appendChild(p)}),s){let l=document.createElement("button");l.type="button",l.setAttribute("data-accent-reset","true"),l.title=`Custom color (${r}). Click to reset to theme default.`,Object.assign(l.style,{marginLeft:"4px",padding:"2px 8px",borderRadius:"10px",border:`1px dashed ${r}`,backgroundColor:"transparent",color:r,fontSize:"0.625rem",fontFamily:S,cursor:"pointer",lineHeight:"1.4"}),l.textContent="custom \xB7 reset",l.onclick=()=>{let c=he.accentColor;e.options.accentColor=c,e.settingsManager.saveSettings({accentColor:c}),e.render()},n.appendChild(l)}return t.appendChild(n),t}function xi(e,t){return[`#${e}::-webkit-slider-thumb {`," -webkit-appearance: none;"," width: 12px; height: 12px;"," border-radius: 50%;",` background: ${t};`,` border: 2px solid ${d.bg};`,` box-shadow: 0 0 4px ${f(t,50)};`," cursor: grab;","}",`#${e}::-webkit-slider-thumb:active { cursor: grabbing; }`,`#${e}::-moz-range-thumb {`," width: 12px; height: 12px;"," border-radius: 50%;",` background: ${t};`,` border: 2px solid ${d.bg};`,` box-shadow: 0 0 4px ${f(t,50)};`," cursor: grab;","}",`#${e}::-webkit-slider-runnable-track { background: transparent; }`,`#${e}::-moz-range-track { background: transparent; }`].join(`
|
|
516
|
+
`)}function wi(e,t,o,n){e.oninput=()=>{let r=parseFloat(e.value);t.textContent=r.toFixed(2),o.style.width=`${r*100}%`,n.options.screenshotQuality=r},e.onchange=()=>{n.settingsManager.saveSettings({screenshotQuality:n.options.screenshotQuality})}}function vi(e){let{accentColor:t}=e.options,o=d.textSecondary,n=document.createElement("div");Object.assign(n.style,{marginTop:"8px"});let r=document.createElement("div");Object.assign(r.style,{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"});let i=document.createElement("span");Object.assign(i.style,{color:d.text,fontSize:"0.6875rem"}),i.textContent="Screenshot Quality",r.appendChild(i);let a=document.createElement("span");Object.assign(a.style,{color:t,fontSize:"0.6875rem",fontFamily:"monospace",minWidth:"28px",textAlign:"right"});let s=e.options.screenshotQuality;a.textContent=s.toFixed(2),r.appendChild(a),n.appendChild(r);let l=document.createElement("div");Object.assign(l.style,{position:"relative",height:"20px"});let c=document.createElement("div");Object.assign(c.style,{position:"absolute",top:"50%",left:"0",right:"0",height:"2px",transform:"translateY(-50%)",borderRadius:"1px",background:f(o,25),pointerEvents:"none"});let p=document.createElement("div");Object.assign(p.style,{height:"100%",width:`${s*100}%`,borderRadius:"1px",background:t}),c.appendChild(p),l.appendChild(c);let u=document.createElement("input");u.type="range",u.min="0",u.max="1",u.step="0.01",u.value=String(s),Object.assign(u.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",appearance:"none",WebkitAppearance:"none",background:"transparent",outline:"none",cursor:"pointer",margin:"0"});let m=`devbar-quality-${Date.now()}`;u.id=m;let b=document.createElement("style");return b.textContent=xi(m,t),l.appendChild(b),wi(u,a,p,e),l.appendChild(u),n.appendChild(l),n}function Ci(e){let{accentColor:t}=e.options,o=at("Evidence workflow");return st(o,"Choose the controls and save behavior an agent sees during inspect, verify, and handoff."),o.appendChild(Si(e)),o.appendChild(Be("Screenshot Button",e.options.showScreenshot,t,()=>{e.options.showScreenshot=!e.options.showScreenshot,e.settingsManager.saveSettings({showScreenshot:e.options.showScreenshot}),e.render()})),o.appendChild(Be("Console Badges",e.options.showConsoleBadges,t,()=>{e.options.showConsoleBadges=!e.options.showConsoleBadges,e.settingsManager.saveSettings({showConsoleBadges:e.options.showConsoleBadges}),e.render()})),o.appendChild(Be("Tooltips",e.options.showTooltips,t,()=>{e.options.showTooltips=!e.options.showTooltips,e.settingsManager.saveSettings({showTooltips:e.options.showTooltips}),e.render()})),o}function Si(e){let{accentColor:t}=e.options,o=document.createElement("div");Object.assign(o.style,{marginBottom:"10px"});let n=document.createElement("div");Object.assign(n.style,{color:d.text,fontSize:"0.6875rem",marginBottom:"6px"}),n.textContent="Save Method",o.appendChild(n);let r=document.createElement("div");Object.assign(r.style,{color:d.textMuted,fontSize:"0.5625rem",lineHeight:"1.4",marginBottom:"8px"}),r.textContent="Auto saves artifacts through Sweetlink when connected, otherwise downloads in-browser.",o.appendChild(r);let i=document.createElement("div");return Object.assign(i.style,{display:"flex",gap:"6px",flexWrap:"wrap"}),[{value:"auto",label:"Auto"},{value:"download",label:"Download"},{value:"local",label:"Local"}].forEach(({value:s,label:l})=>{let c=s==="local"&&!e.sweetlinkConnected,p=kn({label:l,isActive:e.options.saveLocation===s,accentColor:t,disabled:c,disabledTitle:"Sweetlink not connected",onClick:()=>{e.options.saveLocation=s,e.settingsManager.saveSettings({saveLocation:s}),e.render()}});i.appendChild(p)}),o.appendChild(i),o}function Ei(e){let{accentColor:t}=e.options,o=at("Metrics");return st(o,"Keep the toolbar focused by hiding metrics that are not useful now."),[{key:"breakpoint",label:"Breakpoint"},{key:"fcp",label:"FCP"},{key:"lcp",label:"LCP"},{key:"cls",label:"CLS"},{key:"inp",label:"INP"},{key:"pageSize",label:"Page Size"}].forEach(({key:r,label:i})=>{let a=e.options.showMetrics[r]??!0;o.appendChild(Be(i,a,t,()=>{e.options.showMetrics[r]=!e.options.showMetrics[r],e.settingsManager.saveSettings({showMetrics:{breakpoint:e.options.showMetrics.breakpoint??!0,fcp:e.options.showMetrics.fcp??!0,lcp:e.options.showMetrics.lcp??!0,cls:e.options.showMetrics.cls??!0,inp:e.options.showMetrics.inp??!0,pageSize:e.options.showMetrics.pageSize??!0}}),e.render()}))}),o}function Ti(e){let t=d.textSecondary,o=document.createElement("div");Object.assign(o.style,{padding:"10px 14px",borderTop:`1px solid ${f(t,13)}`});let n=P({color:d.textMuted,text:"Reset to Defaults",padding:"6px 12px",fontSize:"0.625rem"});Object.assign(n.style,{width:"100%",justifyContent:"center",border:"1px solid transparent"});let r=d.textMuted;return n.onmouseenter=()=>{n.style.border=`1px solid ${r}`,n.style.backgroundColor=f(r,6)},n.onmouseleave=()=>{n.style.border="1px solid transparent",n.style.backgroundColor="transparent"},n.onclick=()=>{e.settingsManager.resetToDefaults();let i=he;e.applySettings(i)},o.appendChild(n),o}function at(e,t=!0){let o=d.textSecondary,n=document.createElement("div");Object.assign(n.style,{padding:"10px 14px",borderBottom:t?`1px solid ${f(o,13)}`:"none"});let r=document.createElement("div");return Object.assign(r.style,{color:o,fontSize:"0.625rem",textTransform:"uppercase",letterSpacing:"0.1em",marginBottom:"8px"}),r.textContent=e,n.appendChild(r),n}function st(e,t){let o=document.createElement("div");Object.assign(o.style,{color:d.textMuted,fontSize:"0.5625rem",lineHeight:"1.4",margin:"-2px 0 10px"}),o.textContent=t,e.appendChild(o)}function kn(e){let{label:t,isActive:o,accentColor:n,disabled:r,disabledTitle:i,onClick:a}=e,s=d.textSecondary,l=document.createElement("button");return Object.assign(l.style,{padding:"6px 10px",minHeight:"28px",backgroundColor:o?f(n,13):"transparent",border:`1px solid ${o?n:"transparent"}`,borderRadius:"4px",color:o?n:s,fontFamily:S,fontSize:"0.625rem",cursor:r?"not-allowed":"pointer",transition:"all 150ms",opacity:r?"0.5":"1"}),l.textContent=t,r?i&&(l.title=i):o||(l.onmouseenter=()=>{l.style.borderColor=`${s}`,l.style.backgroundColor=f(s,6)},l.onmouseleave=()=>{l.style.borderColor="transparent",l.style.backgroundColor="transparent"}),l.onclick=()=>{r||a()},l}function Be(e,t,o,n){let r=document.createElement("div");Object.assign(r.style,{display:"flex",alignItems:"center",justifyContent:"space-between",minHeight:"28px",marginBottom:"6px",gap:"12px"});let i=document.createElement("span");Object.assign(i.style,{color:d.text,fontSize:"0.6875rem"}),i.textContent=e,r.appendChild(i);let a=document.createElement("button");Object.assign(a.style,{width:"32px",height:"18px",borderRadius:"9px",border:`1px solid ${t?o:d.border}`,backgroundColor:t?o:d.bgInput,position:"relative",cursor:"pointer",transition:"all 150ms",flexShrink:"0",boxSizing:"border-box"});let s=document.createElement("span");return Object.assign(s.style,{position:"absolute",top:"2px",left:t?"14px":"2px",width:"12px",height:"12px",borderRadius:"50%",backgroundColor:t?"#fff":d.textMuted,boxShadow:"0 1px 2px rgba(0,0,0,0.2)",transition:"left 150ms, background-color 150ms"}),a.appendChild(s),a.onclick=n,r.appendChild(a),r}function Oi(e,t){if(e.consoleFilter){let o=e.consoleFilter;O(e),e.consoleFilter=o,gn(e,t)}else e.showOutlineModal?(O(e),e.showOutlineModal=!0,xn(e)):e.showSchemaModal?(O(e),e.showSchemaModal=!0,vn(e)):e.showA11yModal?(O(e),e.showA11yModal=!0,Cn(e)):e.showDesignReviewConfirm?(O(e),e.showDesignReviewConfirm=!0,Sn(e)):e.showSettingsPopover&&(O(e),e.showSettingsPopover=!0,On(e))}function An(e,t,o){if(!e.destroyed&&!(typeof document>"u")&&!Lt){It(!0),Oo(e),e.overlayElement&&(e.overlayElement.remove(),e.overlayElement=null,document.body.style.overflow=""),e.container&&e.container.remove(),e.container=document.createElement("div"),e.container.setAttribute("data-devbar","true"),e.container.setAttribute("role","toolbar"),e.container.setAttribute("aria-label","DevBar"),document.body.appendChild(e.container);try{e.collapsed?Po(e):e.compactMode?fn(e,o):hn(e,o)}catch(n){console.error("[GlobalDevBar] Render failed:",n)}try{Oi(e,t)}catch(n){console.error("[GlobalDevBar] Overlay render failed:",n)}e.overlayElement&&(document.body.style.overflow="hidden"),It(!1)}}function Mn(e){if(e.pendingViewerWindow){try{e.pendingViewerWindow.close()}catch{}e.pendingViewerWindow=null}}function Ln(e){return`ws://localhost:${e.baseWsPort}`}function Ut(e){return e.wsUrlCandidates?.length?e.wsUrlCandidates:[Ln(e)]}function Mi(e,t){return typeof t=="string"?t:typeof t=="number"?`ws://localhost:${t}`:Ut(e)[0]??Ln(e)}function In(e){try{let t=new URL(e);if(t.protocol!=="ws:"&&t.protocol!=="wss:")return null;let o=Number(t.port);return Number.isInteger(o)&&o>0?o:null}catch{return null}}function Rn(e,t,o=100){let n=Ut(e),r=n.indexOf(t);if(r>=0&&r+1<n.length){setTimeout(()=>we(e,n[r+1]),o);return}let i=In(t);if(i!==null){let a=i+1;if(a<e.baseWsPort+10){setTimeout(()=>we(e,a),o);return}}setTimeout(()=>we(e),so)}function we(e,t){if(e.destroyed)return;let o=Mi(e,t),n=In(o);e.debug.ws("Connecting to WebSocket",{url:o,port:n??"same-origin",appPort:e.currentAppPort});let r=new WebSocket(o),i=!1;e.ws=r,e.wsVerified=!1,r.onopen=()=>{e.debug.ws("WebSocket socket opened, awaiting server-info"),r.send(JSON.stringify({type:"browser-client-ready"}))},r.onmessage=async a=>{try{let s=JSON.parse(a.data);if(s.type==="server-info"){let c=s.appPort;if(!(c===null||c===e.currentAppPort)){e.debug.ws("Server mismatch",{serverAppPort:c,currentAppPort:e.currentAppPort,targetUrl:o}),i=!0,r.close(),Rn(e,o);return}e.wsVerified=!0,e.sweetlinkConnected=!0,e.reconnectAttempts=0,e.serverProjectDir=s.projectDir??null,e.serverGitBranch=s.gitBranch??null,e.serverAppName=s.appName??null,e.debug.ws("Server verified",{appPort:c??"any",projectDir:e.serverProjectDir,gitBranch:e.serverGitBranch}),e.settingsManager.setWebSocket(r),e.settingsManager.setConnected(!0),r.send(JSON.stringify({type:"load-settings"})),e.render();return}if(!e.wsVerified){e.debug.ws("Ignoring command before verification",{type:s.type});return}if(s.type==="hifi-screenshot"){e.capturing=!1,e.render();return}if(s.type==="record-start-response"&&s.success){e.recordingActive=!0,e.recordingSessionId=s.sessionId??null,e.recordingStartedAt=Date.now(),e.recordingTimer=setInterval(()=>e.render(),1e3),e.render();return}if(s.type==="record-stop-response"||s.type==="record-stop"){if(e.recordingActive=!1,e.recordingTimer&&clearInterval(e.recordingTimer),e.recordingTimer=null,e.recordingStartedAt=null,s.success){let p=s.viewerUrl,u=p&&et(p)?p:void 0;u&&e.pendingViewerWindow?(e.pendingViewerWindow.location.href=u,e.pendingViewerWindow=null):Mn(e),u&&(e.lastViewerPath=u)}else Mn(e);e.render();return}let l=s;e.debug.ws("Received command",{type:l.type}),await ea(e,l)}catch(s){console.error("[GlobalDevBar] Error handling command:",s)}},r.onclose=()=>{if(e.wsVerified){if(e.sweetlinkConnected=!1,e.wsVerified=!1,e.serverProjectDir=null,e.settingsManager.setConnected(!1),e.recordingTimer&&(clearInterval(e.recordingTimer),e.recordingTimer=null),e.debug.ws("WebSocket disconnected"),e.render(),!e.destroyed&&e.reconnectAttempts<Ve){let a=io*2**e.reconnectAttempts;e.reconnectAttempts++,e.debug.ws("Scheduling reconnect",{attempt:e.reconnectAttempts,delayMs:a}),e.reconnectTimeout=setTimeout(()=>we(e,e.baseWsPort),Math.min(a,ao))}}else if(!e.destroyed&&!i){let a=Ut(e),s=a.indexOf(o);s>=0&&s+1<a.length&&(e.debug.ws("WebSocket closed before verification, trying next candidate"),Rn(e,o))}},r.onerror=()=>{e.debug.ws("WebSocket error")}}function lt(e,t,o=de){return(n,r)=>{Pe(n,e,r[t],o)}}function ct(e,t){return(o,n)=>{t&&(o[t]=!1),console.error(`[GlobalDevBar] ${e} failed:`,n.error),t&&o.render()}}var Ri=lt("outline","outlinePath"),Li=lt("schema","schemaPath"),Ii=lt("consoleLogs","consoleLogsPath"),Di=lt("a11y","a11yPath"),Bi=(e,t)=>{e.capturing=!1,Pe(e,"screenshot",t.path,de)},Pi=ct("Outline save"),Ni=ct("Schema save"),Wi=ct("Console logs save","savingConsoleLogs"),ji=ct("A11y save","savingA11yAudit");async function zi(e,t){let o=t.selector&&document.querySelector(t.selector)||document.body,r=await(await ie())(o,{logging:!1,useCORS:!0,allowTaint:!0});e.send(JSON.stringify({success:!0,data:{screenshot:r.toDataURL("image/png"),width:r.width,height:r.height,selector:t.selector||"body"},timestamp:Date.now()}))}function Fi(e,t,o){let n=e.consoleLogs;if(o.filter){let r=o.filter.toLowerCase();n=n.filter(i=>i.level.includes(r)||i.message.toLowerCase().includes(r))}t.send(JSON.stringify({success:!0,data:n,timestamp:Date.now()}))}function Hi(e,t,o){if(o.selector){let r=Array.from(document.querySelectorAll(o.selector)).map(i=>o.property&&e.allowRemoteExec?i[o.property]??null:{tagName:i.tagName,className:i.className,id:i.id,textContent:i.textContent?.trim().slice(0,100)});t.send(JSON.stringify({success:!0,data:{count:r.length,results:r},timestamp:Date.now()}))}}function Vi(e,t,o){if(!e.allowRemoteExec){t.send(JSON.stringify({success:!1,error:"exec-js is disabled (DEV-4521): remote code execution over the Sweetlink WebSocket is off by default. Enable with initGlobalDevBar({ sweetlink: { allowRemoteExec: true } }) only if you trust everything that can reach the WS port.",timestamp:Date.now()}));return}if(o.code&&typeof o.code=="string"&&o.code.length<=1e4)try{let r=(0,eval)(o.code);t.send(JSON.stringify({success:!0,data:r,timestamp:Date.now()}))}catch(n){t.send(JSON.stringify({success:!1,error:n instanceof Error?n.message:"Execution failed",timestamp:Date.now()}))}}async function Ui(e,t){try{let o=await Ce(t.forceRefresh),n={critical:0,serious:0,moderate:0,minor:0};for(let r of o.violations)n[r.impact]=(n[r.impact]||0)+1;e.send(JSON.stringify({success:!0,data:{result:o,summary:{totalViolations:o.violations.length,totalPasses:o.passes.length,totalIncomplete:o.incomplete.length,byImpact:n},url:window.location.href,title:document.title,timestamp:Date.now()},timestamp:Date.now()}))}catch(o){e.send(JSON.stringify({success:!1,error:o instanceof Error?o.message:"Accessibility audit failed",timestamp:Date.now()}))}}function Gi(e){try{let t=X(),o=H(t);e.send(JSON.stringify({success:!0,data:{outline:t,markdown:o,url:window.location.href,title:document.title,timestamp:Date.now()},timestamp:Date.now()}))}catch(t){e.send(JSON.stringify({success:!1,error:t instanceof Error?t.message:"Outline extraction failed",timestamp:Date.now()}))}}function qi(e){try{let t=Z(),o=$(t);e.send(JSON.stringify({success:!0,data:{schema:t,markdown:o,url:window.location.href,title:document.title,timestamp:Date.now()},timestamp:Date.now()}))}catch(t){e.send(JSON.stringify({success:!1,error:t instanceof Error?t.message:"Schema extraction failed",timestamp:Date.now()}))}}async function Yi(e){try{let o=performance.getEntriesByType("paint").find(h=>h.name==="first-contentful-paint"),n=o?Math.round(o.startTime):null,r=h=>new Promise(v=>{try{let C=[],T=new PerformanceObserver(j=>{C.push(...j.getEntries())});T.observe({type:h,buffered:!0}),setTimeout(()=>{T.disconnect(),v(C)},0)}catch{v([])}}),[i,a,s]=await Promise.all([r("largest-contentful-paint"),r("layout-shift"),r("event")]),l=i.length>0?Math.round(i[i.length-1].startTime):null,c=null;if(a.length>0){let h=0;for(let v of a){let C=v;C.hadRecentInput||(h+=C.value)}c=Math.round(h*1e3)/1e3}let p=null;if(s.length>0){let h=0;for(let v of s){let C=v;C.duration>h&&(h=C.duration)}p=Math.round(h)}let u=null,m=performance.getEntriesByType("resource"),b=0;for(let h of m)b+=h.transferSize||0;b>0&&(u=b);let y={fcp:n,lcp:l,cls:c,inp:p,pageSize:u,url:window.location.href,title:document.title,timestamp:Date.now()},w=[];n!==null&&w.push(`FCP: ${n}ms`),l!==null&&w.push(`LCP: ${l}ms`),c!==null&&w.push(`CLS: ${c}`),p!==null&&w.push(`INP: ${p}ms`),u!==null&&w.push(`Page size: ${Math.round(u/1024)}KB`),e.send(JSON.stringify({success:!0,data:{vitals:y,summary:w.join(", ")||"No metrics available yet"},timestamp:Date.now()}))}catch(t){e.send(JSON.stringify({success:!1,error:t instanceof Error?t.message:"Vitals collection failed",timestamp:Date.now()}))}}function Ji(e){try{window.location.reload(),e.send(JSON.stringify({success:!0,timestamp:Date.now()}))}catch(t){e.send(JSON.stringify({success:!1,error:t instanceof Error?t.message:"Refresh failed",timestamp:Date.now()}))}}function Ki(e,t){e.designReviewInProgress=!1,Pe(e,"designReview",t.reviewPath,ht)}function Qi(e,t){e.designReviewInProgress=!1,e.designReviewError=t.error||"Unknown error",console.error("[GlobalDevBar] Design review failed:",t.error),e.designReviewErrorTimeout&&clearTimeout(e.designReviewErrorTimeout),e.designReviewErrorTimeout=setTimeout(()=>{e.designReviewError=null,e.render()},ht),e.render()}function Xi(e,t){let o=t;e.apiKeyStatus={configured:o.configured??!1,model:o.model,pricing:o.pricing},e.render()}function Zi(e,t){ta(e,t.settings)}function $i(e,t){e.debug.state("Settings saved to server",{path:t.settingsPath})}function _i(e){console.error("[GlobalDevBar] Settings operation failed:",e.error)}async function ea(e,t){let o=e.ws;if(!(!o||o.readyState!==WebSocket.OPEN))switch(t.type){case"screenshot":await zi(o,t);break;case"get-logs":Fi(e,o,t);break;case"query-dom":Hi(e,o,t);break;case"exec-js":Vi(e,o,t);break;case"get-a11y":await Ui(o,t);break;case"get-outline":Gi(o);break;case"get-schema":qi(o);break;case"get-vitals":await Yi(o);break;case"refresh":Ji(o);break;case"screenshot-saved":Bi(e,t);break;case"design-review-saved":Ki(e,t);break;case"design-review-error":Qi(e,t);break;case"api-key-status":Xi(e,t);break;case"outline-saved":Ri(e,t);break;case"outline-error":Pi(e,t);break;case"schema-saved":Li(e,t);break;case"schema-error":Ni(e,t);break;case"console-logs-saved":Ii(e,t);break;case"console-logs-error":Wi(e,t);break;case"a11y-saved":Di(e,t);break;case"a11y-error":ji(e,t);break;case"settings-loaded":Zi(e,t);break;case"settings-saved":$i(e,t);break;case"settings-error":_i(t);break;default:break}}function Pe(e,t,o,n){if(o){switch(t){case"screenshot":e.lastScreenshot=o,e.screenshotTimeout&&clearTimeout(e.screenshotTimeout),e.screenshotTimeout=setTimeout(()=>{e.lastScreenshot=null,e.render()},n);break;case"designReview":e.lastDesignReview=o,e.designReviewTimeout&&clearTimeout(e.designReviewTimeout),e.designReviewTimeout=setTimeout(()=>{e.lastDesignReview=null,e.render()},n);break;case"outline":e.savingOutline=!1,e.lastOutline=o,e.outlineTimeout&&clearTimeout(e.outlineTimeout),e.outlineTimeout=setTimeout(()=>{e.lastOutline=null,e.render()},n);break;case"schema":e.savingSchema=!1,e.lastSchema=o,e.schemaTimeout&&clearTimeout(e.schemaTimeout),e.schemaTimeout=setTimeout(()=>{e.lastSchema=null,e.render()},n);break;case"consoleLogs":e.savingConsoleLogs=!1,e.lastConsoleLogs=o,e.consoleLogsTimeout&&clearTimeout(e.consoleLogsTimeout),e.consoleLogsTimeout=setTimeout(()=>{e.lastConsoleLogs=null,e.render()},n);break;case"a11y":e.savingA11yAudit=!1,e.lastA11yAudit=o,e.a11yTimeout&&clearTimeout(e.a11yTimeout),e.a11yTimeout=setTimeout(()=>{e.lastA11yAudit=null,e.render()},n);break}e.render()}}function ta(e,t){if(!t){e.debug.state("No server settings found, using local");return}e.debug.state("Settings loaded from server",t),e.settingsManager.handleSettingsLoaded(t),e.applySettings(t)}function oa(e,t){let o=[],n=i=>{i&&!o.includes(i)&&o.push(i)};n(t.wsUrl),t.wsPath&&n(ro(e,t.wsPath));let r=ce(t.wsPort)??t.fallbackPort;return n(`ws://localhost:${r}`),o}var A=new He({trackCounts:!0});A.importEarlyLogs();A.start();A.startErrorHandlers();var k=class e{static CONTROLS_KEY="__YTSPAR_DEVBAR_CONTROLS__";static get customControls(){return typeof window>"u"?[]:window[e.CONTROLS_KEY]??[]}static set customControls(t){typeof window<"u"&&(window[e.CONTROLS_KEY]=t)}options;forcedThemeMode;debugConfig;debug;container=null;ws=null;consoleLogs=[];sweetlinkConnected=!1;sweetlinkAutoConnect=!0;allowRemoteExec=!1;collapsed=!1;capturing=!1;copiedToClipboard=!1;copiedPath=!1;lastScreenshot=null;designReviewInProgress=!1;lastDesignReview=null;designReviewError=null;showDesignReviewConfirm=!1;apiKeyStatus=null;lastOutline=null;lastSchema=null;savingOutline=!1;savingSchema=!1;consoleFilter=null;savingConsoleLogs=!1;lastConsoleLogs=null;consoleLogsTimeout;showOutlineModal=!1;showSchemaModal=!1;showA11yModal=!1;a11yLoading=!1;lastA11yAudit=null;savingA11yAudit=!1;a11yTimeout=null;recordingActive=!1;recordingSessionId=null;recordingStartedAt=null;recordingTimer=null;lastViewerPath=null;pendingViewerWindow=null;demoActive=!1;demoTitle=null;demoSectionCount=0;rulerMode=!1;rulerOverlay=null;rulerPinnedElements=[];rulerCleanup=null;activeTooltips=new Set;breakpointInfo=null;perfStats=null;lcpValue=null;clsValue=0;inpValue=0;reconnectAttempts=0;currentAppPort;baseWsPort;wsUrlCandidates;wsVerified=!1;serverProjectDir=null;serverGitBranch=null;serverAppName=null;lastDotPosition=null;reconnectTimeout=null;screenshotTimeout=null;copiedPathTimeout=null;designReviewTimeout=null;designReviewErrorTimeout=null;outlineTimeout=null;schemaTimeout=null;resizeHandler=null;keydownHandler=null;fcpObserver=null;lcpObserver=null;clsObserver=null;inpObserver=null;destroyed=!1;themeMode="system";themeMediaQuery=null;themeMediaHandler=null;compactMode=!1;showSettingsPopover=!1;overlayElement=null;settingsManager;logChangeListener=null;constructor(t={}){if(this.debugConfig=Ot(t.debug),this.debug=new Se(this.debugConfig),this.forcedThemeMode=t.themeMode,this.settingsManager=Pt(t.defaultThemeMode?{themeMode:t.defaultThemeMode}:{}),this.forcedThemeMode&&this.settingsManager.saveSettingsNow({themeMode:this.forcedThemeMode}),typeof window<"u"){let o=oo(window),n=t.sweetlink,r=n?.appPort??no(window.location,o);this.currentAppPort=r,this.baseWsPort=n?.wsPort??ce(o.wsPort)??to(r),this.wsUrlCandidates=oa(window.location,{wsUrl:n?.wsUrl??o.wsUrl,wsPort:n?.wsPort??o.wsPort,wsPath:n?.wsPath??o.wsPath,fallbackPort:this.baseWsPort}),this.sweetlinkAutoConnect=n?.autoConnect??!0,this.allowRemoteExec=n?.allowRemoteExec??!1}else this.currentAppPort=0,this.baseWsPort=9223,this.wsUrlCandidates=[`ws://localhost:${9223}`];this.options={position:t.position??"bottom-left",accentColor:t.accentColor??d.primary,showMetrics:{breakpoint:t.showMetrics?.breakpoint??!0,fcp:t.showMetrics?.fcp??!0,lcp:t.showMetrics?.lcp??!0,cls:t.showMetrics?.cls??!0,inp:t.showMetrics?.inp??!0,pageSize:t.showMetrics?.pageSize??!0},showScreenshot:t.showScreenshot??!0,showConsoleBadges:t.showConsoleBadges??!0,showTooltips:t.showTooltips??!0,saveLocation:t.saveLocation??"auto",screenshotQuality:t.screenshotQuality??.65,sizeOverrides:t.sizeOverrides},this.debug.lifecycle("GlobalDevBar constructed",{options:this.options})}getLogCounts(){return{errorCount:A.getErrorCount(),warningCount:A.getWarningCount(),infoCount:A.getInfoCount()}}resetPositionStyles(t){Object.assign(t.style,{top:"",bottom:"",left:"",right:"",transform:""})}createCollapsedBadge(t,o,n){let r=document.createElement("span");return Object.assign(r.style,{position:"absolute",top:"-6px",right:n,minWidth:"16px",height:"16px",padding:"0 4px",borderRadius:"9999px",backgroundColor:o,color:g.white,fontSize:"0.5625rem",fontWeight:"600",display:"flex",alignItems:"center",justifyContent:"center"}),r.textContent=t>99?"!":String(t),r}static registerControl(t){e.customControls=e.customControls.filter(n=>n.id!==t.id),e.customControls.push(t);let o=ve();o&&o.render()}static unregisterControl(t){e.customControls=e.customControls.filter(n=>n.id!==t);let o=ve();o&&o.render()}static getControls(){return[...e.customControls]}static clearControls(){e.customControls=[];let t=ve();t&&t.render()}init(){typeof window>"u"||this.destroyed||(this.debug.lifecycle("Initializing DevBar"),this.injectStyles(),this.consoleLogs=A.getLogs(),this.debug.lifecycle("Copied console logs",{count:this.consoleLogs.length}),this.logChangeListener=()=>{this.consoleLogs=A.getLogs(),this.overlayElement||this.render()},A.addListener(this.logChangeListener),En(this),Tn(this),this.sweetlinkAutoConnect?this.connectWebSocket():this.debug.ws("Sweetlink autoConnect disabled; skipping initial WebSocket connect"),vo(this),So(this),wo(this),this.render(),this.debug.lifecycle("DevBar initialized successfully"))}getPosition(){return this.options.position}destroy(){this.debug.lifecycle("Destroying DevBar"),this.destroyed=!0,this.reconnectAttempts=Ve,this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.ws&&this.ws.close(),this.screenshotTimeout&&clearTimeout(this.screenshotTimeout),this.copiedPathTimeout&&clearTimeout(this.copiedPathTimeout),this.designReviewTimeout&&clearTimeout(this.designReviewTimeout),this.outlineTimeout&&clearTimeout(this.outlineTimeout),this.schemaTimeout&&clearTimeout(this.schemaTimeout),this.consoleLogsTimeout&&clearTimeout(this.consoleLogsTimeout),this.a11yTimeout&&clearTimeout(this.a11yTimeout),this.designReviewErrorTimeout&&clearTimeout(this.designReviewErrorTimeout),this.recordingTimer&&clearInterval(this.recordingTimer),this.rulerCleanup&&(this.rulerCleanup(),this.rulerCleanup=null),this.resizeHandler&&window.removeEventListener("resize",this.resizeHandler),this.keydownHandler&&window.removeEventListener("keydown",this.keydownHandler),this.fcpObserver&&this.fcpObserver.disconnect(),this.lcpObserver&&this.lcpObserver.disconnect(),this.clsObserver&&this.clsObserver.disconnect(),this.inpObserver&&this.inpObserver.disconnect(),this.themeMediaQuery&&this.themeMediaHandler&&this.themeMediaQuery.removeEventListener("change",this.themeMediaHandler),this.logChangeListener&&(A.removeListener(this.logChangeListener),this.logChangeListener=null),A.stop(),this.container&&(this.container.remove(),this.container=null),this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null,document.body.style.overflow=""),this.debug.lifecycle("DevBar destroyed")}injectStyles(){let t="devbar-styles";if(!document.getElementById(t)){let o=document.createElement("style");o.id=t,o.textContent=mo,document.head.appendChild(o)}}connectWebSocket(t){we(this,t)}handleNotification(t,o,n){Pe(this,t,o,n)}applySettings(t){let o=this.forcedThemeMode?{...t,themeMode:this.forcedThemeMode}:t,n=this.themeMode;this.forcedThemeMode&&this.settingsManager.get("themeMode")!==this.forcedThemeMode&&this.settingsManager.saveSettingsNow({themeMode:this.forcedThemeMode}),this.themeMode=o.themeMode,this.compactMode=Vt(o.compactMode),this.options.position=o.position,this.options.accentColor=o.accentColor,this.options.showScreenshot=o.showScreenshot,this.options.showConsoleBadges=o.showConsoleBadges,this.options.showTooltips=o.showTooltips,this.options.saveLocation=o.saveLocation,this.options.screenshotQuality=o.screenshotQuality??.65,this.options.showMetrics={...o.showMetrics},te(ee(o.themeMode)),n!==o.themeMode&&typeof window<"u"&&window.dispatchEvent(new CustomEvent("devbar-theme-change",{detail:{mode:o.themeMode}})),this.render()}clearConsoleLogs(){A.clear(),this.consoleLogs=[],this.consoleFilter=null,this.render()}handleScreenshot(t){return Jo(this,t)}getThemeMode(){return this.themeMode}setThemeMode(t){it(this,t)}getColors(){return Ct(this.themeMode)}toggleCompactMode(){this.compactMode=!this.compactMode,this.settingsManager.saveSettings({compactMode:this.compactMode}),this.debug.state("Compact mode toggled",{compactMode:this.compactMode}),this.render()}isCompactMode(){return this.compactMode}render(){An(this,A,e.customControls)}},Bn="__YTSPAR_DEVBAR_INSTANCE__";function ve(){return typeof window>"u"?null:window[Bn]??null}function Gt(e){typeof window>"u"||(window[Bn]=e)}function ae(e){let t=ve();if(t){let n=t.getPosition(),r=e?.position??"bottom-left";if(n===r)return t;t.destroy(),Gt(null)}let o=new k(e);if(o.init(),Gt(o),e?.annotate?.enabled!==!1){let n=e?.annotate?.endpoint?{endpoint:e.annotate.endpoint}:{};kt(r=>k.registerControl(r),n)}return o}function qt(){return ve()}function na(){let e=ve();e&&(e.destroy(),Gt(null))}var Yt=class{entries=[];observer=null;listeners=new Set;maxEntries=200;start(){if(typeof PerformanceObserver>"u"){console.warn("[NetworkMonitor] PerformanceObserver not supported");return}let t=performance.getEntriesByType("resource");for(let o of t)this.addEntry(o);try{this.observer=new PerformanceObserver(o=>{for(let n of o.getEntries())this.addEntry(n);this.notifyListeners()}),this.observer.observe({type:"resource",buffered:!0})}catch(o){console.warn("[NetworkMonitor] Failed to start observer",o)}}stop(){this.observer&&(this.observer.disconnect(),this.observer=null)}addEntry(t){let o={url:t.name,name:this.getResourceName(t.name),initiatorType:t.initiatorType,duration:Math.round(t.duration),transferSize:t.transferSize,encodedBodySize:t.encodedBodySize,decodedBodySize:t.decodedBodySize,startTime:Math.round(t.startTime),responseEnd:Math.round(t.responseEnd)};this.entries.push(o),this.entries.length>this.maxEntries&&(this.entries=this.entries.slice(-this.maxEntries))}getResourceName(t){try{let o=new URL(t),r=o.pathname.split("/").filter(Boolean);return r.length>0?r[r.length-1]:o.hostname}catch{return t.slice(0,50)}}getState(){let t=0;for(let o of this.entries)t+=o.transferSize||0;return{entries:[...this.entries],totalRequests:this.entries.length,totalSize:t,pendingCount:0}}getEntriesByType(t){return this.entries.filter(o=>o.initiatorType===t)}search(t){let o=t.toLowerCase();return this.entries.filter(n=>n.url.toLowerCase().includes(o)||n.name.toLowerCase().includes(o)||n.initiatorType.toLowerCase().includes(o))}clear(){this.entries=[],this.notifyListeners()}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyListeners(){let t=this.getState();for(let o of this.listeners)o(t)}};var Pn="devbar-plugin-app-version";function ra(e,t={}){let{prefix:o="v",variant:n="default",onClick:r}=t;return k.registerControl({id:Pn,label:`${o}${e}`,variant:n,onClick:r?()=>r(e):void 0}),()=>{k.unregisterControl(Pn)}}var Jt="devbar-plugin-git-branch",ia=2e3;function aa(e={}){let{prefix:t="\uE0A0",variant:o="info",onClick:n}=e,r=null,i=!1;function a(){if(i)return;let c=qt()?.serverGitBranch??null;c!==r&&(r=c,c?k.registerControl({id:Jt,label:`${t} ${c}`,variant:o,onClick:n?()=>n(c):void 0}):k.unregisterControl(Jt))}a();let s=setInterval(a,ia);return()=>{i=!0,clearInterval(s),k.unregisterControl(Jt)}}var sa="devbar-plugin-release-info";function la(e){let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?null:t}function ca(e){return e instanceof Date?e.toISOString():String(e)}function Nn(e,t={}){let o=la(e);return o?new Intl.DateTimeFormat(t.locale,{dateStyle:"medium",timeStyle:"short",timeZone:t.timeZone}).format(o):ca(e)}function da(e,t={}){if(t.label)return t.label;let o=Nn(e.releasedAt,t);return e.version?`${t.versionPrefix??"v"}${e.version} ${o}`:o}function pa(e,t={}){let o=[e.version?`Release ${t.versionPrefix??"v"}${e.version}`:"Release",`Released: ${Nn(e.releasedAt,t)}`];if(e.changelog&&e.changelog.length>0){o.push("","Changelog");for(let n of e.changelog)o.push(`- ${n}`)}return o.join(`
|
|
517
|
+
`)}function ua(e,t={}){let o=t.id??sa;return k.registerControl({id:o,label:da(e,t),tooltip:()=>pa(e,t),variant:t.variant??"info",onClick:t.onClick?()=>t.onClick?.(e):void 0}),()=>{k.unregisterControl(o)}}var Wn={showMetrics:{breakpoint:!1,fcp:!1,lcp:!1,cls:!1,inp:!1,pageSize:!1},showScreenshot:!1,showConsoleBadges:!0,showTooltips:!1},jn={showMetrics:{breakpoint:!0,fcp:!0,lcp:!0,cls:!0,inp:!0,pageSize:!0},showScreenshot:!0,showConsoleBadges:!0,showTooltips:!0},zn={showMetrics:{breakpoint:!1,fcp:!0,lcp:!0,cls:!0,inp:!0,pageSize:!0},showScreenshot:!1,showConsoleBadges:!1,showTooltips:!0},Fn={showMetrics:{breakpoint:!0,fcp:!1,lcp:!1,cls:!1,inp:!1,pageSize:!1},showScreenshot:!0,showConsoleBadges:!1,showTooltips:!0},Hn={showMetrics:{breakpoint:!0,fcp:!0,lcp:!0,cls:!0,inp:!0,pageSize:!0},showScreenshot:!0,showConsoleBadges:!0,showTooltips:!0,debug:!0};function ma(e){return ae({...Wn,...e})}function fa(e){return ae({...jn,...e})}function ga(e){return ae({...zn,...e})}function ha(e){return ae({...Fn,...e})}function ba(e){return ae({...Hn,...e})}function ya(e){try{return{parsed:JSON.parse(e),success:!0}}catch{return{parsed:void 0,success:!1}}}function Vn(e){let t=[];for(let o=0;o<e.length;o++){let n=e.key(o);if(n===null)continue;let r=e.getItem(n)??"",{parsed:i,success:a}=ya(r);t.push({key:n,value:r,parsedValue:a?i:void 0,isParseable:a,size:new Blob([r]).size})}return t.sort((o,n)=>o.key.localeCompare(n.key))}function Un(){return typeof localStorage>"u"?[]:Vn(localStorage)}function Gn(){return typeof sessionStorage>"u"?[]:Vn(sessionStorage)}function qn(){return typeof document>"u"||!document.cookie?[]:document.cookie.split(";").map(e=>{let[t,...o]=e.trim().split("="),n=o.join("=");return{name:t.trim(),value:decodeURIComponent(n||""),size:new Blob([n||""]).size}}).filter(e=>e.name).sort((e,t)=>e.name.localeCompare(t.name))}function xa(){return{localStorage:Un(),sessionStorage:Gn(),cookies:qn()}}function wa(e,t){typeof localStorage>"u"||localStorage.setItem(e,t)}function va(e){typeof localStorage>"u"||localStorage.removeItem(e)}function Ca(e,t){typeof sessionStorage>"u"||sessionStorage.setItem(e,t)}function Sa(e){typeof sessionStorage>"u"||sessionStorage.removeItem(e)}function Ea(e){typeof document>"u"||(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}export{X as a,H as b,Z as c,$ as d,_n as e,ut as f,mt as g,_ as h,g as i,x as j,Ue as k,xt as l,E as m,wt as n,S as o,ir as p,vt as q,pe as r,Ct as s,ee as t,lo as u,te as v,sr as w,Tt as x,Ce as y,qe as z,Ye as A,Je as B,Ot as C,Se as D,ho as E,bo as F,yo as G,xo as H,kt as I,V as J,$e as K,he as L,Pt as M,Nt as N,ne as O,Wo as P,oe as Q,Mr as R,Rr as S,Me as T,Re as U,Le as V,_e as W,ie as X,A as Y,k as Z,ae as _,qt as $,na as aa,Yt as ba,ra as ca,aa as da,ua as ea,Wn as fa,jn as ga,zn as ha,Fn as ia,Hn as ja,ma as ka,fa as la,ga as ma,ha as na,ba as oa,Un as pa,Gn as qa,qn as ra,xa as sa,wa as ta,va as ua,Ca as va,Sa as wa,Ea as xa};
|