mesurer-solid 0.2.3-beta.12 → 0.2.3-beta.13
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/index.js +214 -205
- package/dist/inject-script.js +4 -4
- package/dist/inject.js +221 -212
- package/dist/plugins.js +172 -163
- package/package.json +1 -1
package/dist/inject-script.js
CHANGED
|
@@ -2315,7 +2315,7 @@ body:has([data-mesurer-text-editor="true"]) [data-mesurer-hover-measurement="tru
|
|
|
2315
2315
|
opacity: 0 !important;
|
|
2316
2316
|
}
|
|
2317
2317
|
`,r.head.append(l);let u=t.createWorkspaceRuntime(),d=new Map,f=new Map,p=new Set,m=new Set,h=!1,g=!1,_=!1,v=null,y=()=>{let e=[a];return n!==a&&e.push(n),r.body&&!e.includes(r.body)&&e.push(r.body),e},b=e=>{e.matches(nC)&&p.add(e),e.matches(rC)&&m.add(e)},x=e=>{if(e instanceof o.HTMLElement){b(e);for(let t of e.querySelectorAll(`${nC}, ${rC}`))b(t)}},S=e=>{for(let t of e.querySelectorAll(`${nC}, ${rC}`))b(t)};for(let e of y())S(e);let C=(e,t,n)=>{t.has(e)||t.set(e,{value:e.style.getPropertyValue(`opacity`),priority:e.style.getPropertyPriority(`opacity`),marker:e.getAttribute(n)}),e.getAttribute(n)!==`true`&&e.setAttribute(n,`true`),(e.style.getPropertyValue(`opacity`)!==`0`||e.style.getPropertyPriority(`opacity`)!==`important`)&&e.style.setProperty(`opacity`,`0`,`important`)},w=(e,t,n,r)=>{e.isConnected&&(t.value||t.priority?e.style.setProperty(`opacity`,t.value,t.priority):e.style.removeProperty(`opacity`),t.marker===null?e.removeAttribute(r):e.setAttribute(r,t.marker)),n.delete(e)},T=(e,t)=>{for(let[n,r]of Array.from(e))w(n,r,e,t)},E=()=>{for(let e of Array.from(p)){if(!e.isConnected){p.delete(e);let t=d.get(e);t&&w(e,t,d,aC);continue}C(e,d,aC)}for(let[e,t]of Array.from(d))(!e.isConnected||!p.has(e))&&w(e,t,d,aC)},D=()=>{for(let e of Array.from(m)){if(!e.isConnected){m.delete(e);let t=f.get(e);t&&w(e,t,f,oC);continue}C(e,f,oC)}for(let[e,t]of Array.from(f))(!e.isConnected||!m.has(e))&&w(e,t,f,oC)},O=()=>{_||g||(g=!0,i.queueMicrotask(()=>{g=!1,M()}))},k=e=>{for(let t of e)for(let e of t.addedNodes)x(e);O()},A=()=>{if(v)return;v=new o.MutationObserver(k);let e=new Set,t=(t,n)=>{e.has(t)||(e.add(t),v.observe(t,{childList:!0,subtree:n}))};for(let e of y())S(e);t(a,a!==r.body),n!==a&&t(n,!0),r.body&&t(r.body,!1)},j=()=>{v?.disconnect(),v=null},M=()=>{if(!_){if(c.querySelector(iC)){h=!0,E(),D(),A();return}!h&&d.size===0&&f.size===0||(h=!1,j(),T(d,aC),T(f,oC))}},N=new o.MutationObserver(k);N.observe(c,{childList:!0,subtree:!0});let P=u.subscribe(O);M(),e.lifecycle.onDispose(()=>{_=!0,N.disconnect(),j(),P(),u.dispose(),T(d,aC),T(f,oC),p.clear(),m.clear(),l.remove()})}var cC=`[data-mesurer-text-editor='true']`,lC=`[data-mesurer-text-edit-ring='true']`,uC=`[data-mesurer-text-inspector-info='true']`,dC=`[data-mesurer-text-inspector-placement-shell='true']`,fC=`[data-mesurer-measurement='true']`,pC=`[data-mesurer-measurement-chrome='true']`,mC=`[data-mesurer-measurement-label='true']`,hC=20,gC=.75,_C=`data-mesurer-symmetric-measurement-spacing`,vC=`mesurerSymmetricCardOffsetY`,yC=e=>({left:e.left,top:e.top,right:e.right,bottom:e.bottom,width:e.width,height:e.height}),bC=(e,t)=>Math.abs(e.left-t.left)+Math.abs(e.top-t.top)+Math.abs(e.width-t.width)+Math.abs(e.height-t.height),xC=e=>({left:e.left,top:e.bottom+2,right:e.right,bottom:e.bottom+2+hC,width:e.width,height:hC}),SC=(e,t,n)=>e.style.getPropertyValue(t)!==n&&(e.style.setProperty(t,n),!0);function CC(e,t,n=t.portalTarget){let{ownerDocument:r,ownerWindow:i,portalTarget:a}=t,o=i,s=a.querySelectorAll(`[data-mesurer-text-edit-runtime='true']`),c=s.item(s.length-1);if(!c)return;let l=new Set,u=null,d=null,f=null,p=null,m=!1,h=0,g=!1,_=e=>{e instanceof o.HTMLTextAreaElement&&e.matches(cC)&&(u=e),e.matches(lC)&&(d=e),e.matches(dC)&&(f=e),e.matches(uC)&&(p=e),e.matches(mC)&&l.add(e)},v=e=>{if(e instanceof o.HTMLElement&&(_(e),e===c||e.matches(`${fC}, [data-mesurer-text-edit-runtime='true'], [data-mesurer-root='true']`)))for(let t of[cC,lC,dC,uC,mC])for(let n of e.querySelectorAll(t))_(n)},y=e=>{for(let t of e.querySelectorAll(fC))v(t)};v(c),y(a),n!==a&&y(n);let b=e=>{let t=null;for(let n of Array.from(l)){if(!n.isConnected){l.delete(n);continue}let r=n.closest(fC);if(!(r instanceof o.HTMLElement)||r.getAttribute(`data-mesurer-selected-measurement`)!==`true`)continue;let i=yC(n.getBoundingClientRect());if(i.width<=0||i.height<=0)continue;let a=r.querySelector(pC),s=a?.isConnected?yC(a.getBoundingClientRect()):null,c=e.bottom+2,u=e.left+e.width/2,d=i.left+i.width/2,f=s&&s.width>0&&s.height>0?bC(s,e):Math.abs(i.top-c)+Math.abs(d-u);f>32||(!t||f<t.score)&&(t={rect:i,score:f})}return t?.rect??xC(e)},x=()=>{if(g||!u?.isConnected||!d?.isConnected||!f?.isConnected||!p?.isConnected)return;let e=yC(d.getBoundingClientRect());if(e.width<=0||e.height<=0||!(e.right>0&&e.bottom>0&&e.left<i.innerWidth&&e.top<i.innerHeight))return;let t=yC(p.getBoundingClientRect());if(t.width<=0||t.height<=0||t.top<e.bottom)return;y(a),n!==a&&y(n),r.body&&r.body!==a&&y(r.body);let o=b(e),s=o.top-e.bottom,c=t.top-o.bottom,l=c-s;if(f.setAttribute(_C,`true`),f.dataset.mesurerSymmetricSourceGap=s.toFixed(3),f.dataset.mesurerSymmetricTypographyGap=c.toFixed(3),Math.abs(l)<=gC)return;let m=Number.parseFloat(p.dataset[vC]??`0`),h=(Number.isFinite(m)?m:0)-l;p.dataset[vC]=h.toFixed(3),SC(p,`translate`,`0px ${h}px`)},S=()=>{g||m||(m=!0,i.queueMicrotask(()=>{m=!1,!h&&(h=i.requestAnimationFrame(()=>{h=0,x()}))}))},C=new o.MutationObserver(e=>{let t=!1;for(let n of e){if(n.type===`childList`){for(let e of n.addedNodes)v(e);t=!0;continue}n.target instanceof o.HTMLElement&&n.target.matches(dC)&&(_(n.target),t=!0)}t&&S()});C.observe(c,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`style`,`data-mesurer-native-scroll-owner`,`data-mesurer-native-scroll-anchor`]});let w=new o.MutationObserver(e=>{let t=!1;for(let n of e)for(let e of n.addedNodes)e instanceof o.HTMLElement&&e.matches(`${fC}, [data-mesurer-root='true']`)&&(v(e),t=!0);t&&S()}),T=new Set,E=(e,t)=>{T.has(e)||e===c||(T.add(e),w.observe(e,{childList:!0,subtree:t}))};E(a,a!==r.body),n!==a&&E(n,!0),r.body&&E(r.body,!1),i.addEventListener(`resize`,S,!0),i.addEventListener(`dblclick`,S,!0),S(),e.lifecycle.onDispose(()=>{g=!0,C.disconnect(),w.disconnect(),i.removeEventListener(`resize`,S,!0),i.removeEventListener(`dblclick`,S,!0),h&&i.cancelAnimationFrame(h),l.clear(),f?.removeAttribute(_C),p&&(p.style.removeProperty(`translate`),delete p.dataset[vC])})}var wC=(e,t)=>{let n={document:e.document,location:e.location,crypto:e.crypto,navigator:e.navigator,performance:e.performance,CSS:e.CSS,Node:e.Node,Text:e.Text,Element:e.Element,HTMLElement:e.HTMLElement,ShadowRoot:e.ShadowRoot,MouseEvent:e.MouseEvent,MutationObserver:e.MutationObserver,get innerWidth(){return e.innerWidth},get innerHeight(){return e.innerHeight},get scrollX(){return e.scrollX},get scrollY(){return e.scrollY},getComputedStyle:(t,n)=>e.getComputedStyle(t,n),matchMedia:t=>e.matchMedia(t),setTimeout:e.setTimeout.bind(e),clearTimeout:e.clearTimeout.bind(e),cancelAnimationFrame:e.cancelAnimationFrame.bind(e),addEventListener:e.addEventListener.bind(e),removeEventListener:e.removeEventListener.bind(e),requestAnimationFrame:t};return Object.defineProperties(Object.create(null),Object.getOwnPropertyDescriptors(n))},TC=(e,t)=>{let n=t.ownerWindow,r=!1,i=!1,a=null,o=wC(n,e=>n.requestAnimationFrame(t=>{r=!0;try{e(t)}finally{r=!1}})),s=()=>{let n=t.currentToolMode?.()??`none`;return!r||e.state.get(`mesurer.presentation.preferences`)===void 0?n:i?`text-inspector`:t.currentToolbarMode?t.currentToolbarMode()===`edit`||Vy(e).keepTextChanges?`text-inspector`:`none`:n===`text-inspector`||Vy(e).keepTextChanges?`text-inspector`:`none`},c=()=>{let e=t.createInspectorMount();a?.disconnect();let r=()=>{i=!!e.element.querySelector(`[data-mesurer-text-editor='true']`)};return a=new n.MutationObserver(r),a.observe(e.element,{childList:!0,subtree:!0}),r(),{element:e.element,dispose(){a?.disconnect(),a=null,i=!1,e.dispose()}}};return e.lifecycle.onDispose(()=>{a?.disconnect(),a=null,i=!1,r=!1}),{...t,ownerWindow:o,currentToolMode:s,createInspectorMount:c}},EC=`var(--msr-color-ink-50, #f8fafc)`,DC=`var(--msr-color-ink-100, #f1f5f9)`,OC=`var(--msr-color-ink-200, #e2e8f0)`,kC=`var(--msr-color-ink-500, #64748b)`,AC=`var(--msr-color-ink-700, #334155)`,jC=`var(--msr-content, #0f172a)`,MC=`var(--msr-accent, #0d99ff)`,NC=8,PC=8,FC=(e,t)=>{let n=new Map,r=Array.from(e.children).filter(e=>e instanceof t.HTMLElement);for(let e=0;e+1<r.length;e+=2){let t=r[e],i=r[e+1],a=t.textContent?.trim();a&&n.set(a,{label:t,value:i})}return n},IC=e=>Array.from(e.querySelectorAll(`span`)).map(e=>e.textContent?.trim()??``).find(e=>e.startsWith(`--`))??null;function LC(e,t){let{ownerDocument:n,ownerWindow:r,portalTarget:i}=t,a=r,o=i.querySelectorAll(`[data-mesurer-text-edit-runtime='true']`),s=o.item(o.length-1);if(!s)return;let c=!1,l=!1,u=0,d=0,f=null,p=()=>{if(c)return;let e=s.querySelector(`[data-mesurer-text-editor='true']`);e?.isConnected&&e.focus({preventScroll:!0})},m=()=>{r.setTimeout(p,0)},h=e=>{if(f?.isConnected&&f.contains(e))return f;f?.remove();let t=n.createElement(`div`);return t.dataset.mesurerTextInspectorPlacementShell=`true`,t.dataset.mesurerInspectorUi=`true`,Object.assign(t.style,{position:`fixed`,left:`0px`,top:`0px`,zIndex:`2147483647`,width:`max-content`,maxWidth:`calc(100vw - 16px)`,overflow:`visible`,pointerEvents:`auto`,transition:`none`,animation:`none`}),e.before(t),t.append(e),Object.assign(e.style,{position:`static`,left:`auto`,top:`auto`,transform:`none`,zIndex:`auto`,transition:`none`,animation:`none`}),f=t,t},g=()=>{f?.remove(),f=null},_=()=>{if(c)return;let e=s.querySelector(`[data-mesurer-text-inspector-info='true']`),t=i.querySelectorAll(`[data-mesurer-text-edit-ring='true']`),n=t.item(t.length-1);if(!e?.isConnected||!n?.isConnected)return;let a=h(e);if(a.dataset.mesurerNativeScrollOwner===`typography`&&a.dataset.mesurerNativeScrollAnchor===`offset`)return;Object.assign(e.style,{position:`static`,left:`auto`,top:`auto`,transform:`none`,boxSizing:`border-box`,maxHeight:`calc(100vh - 16px)`,overflowY:`auto`,transition:`none`,animation:`none`});let o=n.getBoundingClientRect(),l=e.getBoundingClientRect();if(l.width<=0||l.height<=0)return;let u=l.width,d=l.height,f=r.innerWidth-NC,p=r.innerHeight-NC,m=Math.max(NC,f-u),g=Math.max(NC,p-d),_=Math.min(Math.max(o.left+o.width/2-u/2,NC),m),v=Math.min(Math.max(o.top+o.height/2-d/2,NC),g),y=[{left:_,top:o.top-PC-d,placement:`above`},{left:_,top:o.bottom+PC,placement:`below`},{left:o.right+PC,top:v,placement:`side`},{left:o.left-PC-u,top:v,placement:`side`}],b=(e,t)=>e>=NC&&t>=NC&&e+u<=f&&t+d<=p,x=(e,t)=>{let n=Math.max(0,Math.min(e+u,o.right)-Math.max(e,o.left)),r=Math.max(0,Math.min(t+d,o.bottom)-Math.max(t,o.top));return n>0&&r>0},S=y.find(e=>b(e.left,e.top)&&!x(e.left,e.top));if(S){a.style.left=`${S.left}px`,a.style.top=`${S.top}px`,e.dataset.mesurerTextInspectorPlacement=S.placement;return}let C=[{name:`above`,top:NC,height:Math.max(0,o.top-PC-NC)},{name:`below`,top:o.bottom+PC,height:Math.max(0,p-o.bottom-PC)}].sort((e,t)=>t.height-e.height)[0];if(C&&C.height>0){e.style.maxHeight=`${C.height}px`,a.style.left=`${_}px`,a.style.top=`${C.top}px`,e.dataset.mesurerTextInspectorPlacement=C.name;return}a.style.left=`${_}px`,a.style.top=`${NC}px`,e.dataset.mesurerTextInspectorPlacement=`viewport`},v=()=>{c||u||(u=r.requestAnimationFrame(()=>{u=0,_()}))},y=()=>{(f?.dataset.mesurerNativeScrollOwner!==`typography`||f.dataset.mesurerNativeScrollAnchor!==`offset`)&&v()},b=()=>{_(),v(),d&&r.clearTimeout(d),d=r.setTimeout(()=>{d=0,_(),v()},0)},x=e=>{Object.assign(e.style,{boxSizing:`border-box`,border:`1px solid transparent`,borderRadius:`5px`,background:EC,color:AC,outline:`none`,transition:`border-color 120ms ease, box-shadow 120ms ease, background 120ms ease`}),e.addEventListener(`mouseenter`,()=>{e.style.borderColor=OC}),e.addEventListener(`mouseleave`,()=>{n.activeElement!==e&&(e.style.borderColor=`transparent`)}),e.addEventListener(`focus`,()=>{e.style.borderColor=`transparent`,e.style.boxShadow=`inset 0 0 0 1px ${MC}`}),e.addEventListener(`blur`,()=>{e.style.boxShadow=`none`,e.style.borderColor=`transparent`})},S=e=>{let t=n.createElement(`div`);t.dataset.mesurerUnifiedSelectShell=`true`,Object.assign(t.style,{position:`relative`,width:`100%`,minWidth:`0`,height:`28px`,border:`1px solid transparent`,borderRadius:`5px`,background:EC,transition:`border-color 120ms ease, box-shadow 120ms ease, background 120ms ease`}),Object.assign(e.style,{appearance:`none`,WebkitAppearance:`none`,width:`100%`,minWidth:`0`,height:`100%`,boxSizing:`border-box`,border:`0`,borderRadius:`5px`,background:`transparent`,color:AC,font:`500 11px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif`,padding:`0 27px 0 8px`,outline:`none`,cursor:`pointer`});let r=n.createElement(`span`);return r.dataset.mesurerUnifiedSelectChevron=`true`,r.setAttribute(`aria-hidden`,`true`),Object.assign(r.style,{position:`absolute`,right:`9px`,top:`8px`,width:`7px`,height:`7px`,borderRight:`1.5px solid ${kC}`,borderBottom:`1.5px solid ${kC}`,transform:`rotate(45deg)`,transformOrigin:`center`,pointerEvents:`none`}),t.addEventListener(`mouseenter`,()=>{t.style.borderColor=OC}),t.addEventListener(`mouseleave`,()=>{n.activeElement!==e&&(t.style.borderColor=`transparent`)}),e.addEventListener(`focus`,()=>{t.style.borderColor=`transparent`,t.style.boxShadow=`inset 0 0 0 1px ${MC}`}),e.addEventListener(`blur`,()=>{t.style.boxShadow=`none`,t.style.borderColor=`transparent`}),t.append(e,r),t},C=e=>{Object.assign(e.style,{width:`100%`,minWidth:`0`,height:`28px`,font:`500 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace`,padding:`0 8px`}),x(e)},w=e=>{let t=e.getAttribute(`aria-pressed`)===`true`;Object.assign(e.style,{width:`28px`,height:`28px`,border:`1px solid ${t?MC:`transparent`}`,borderRadius:`5px`,background:t?`rgba(13, 153, 255, 0.10)`:EC,color:jC,padding:`0`,fontSize:`12px`,cursor:`pointer`,transition:`border-color 120ms ease, background 120ms ease`}),e.addEventListener(`mouseenter`,()=>{t||(e.style.borderColor=OC)}),e.addEventListener(`mouseleave`,()=>{e.style.borderColor=t?MC:`transparent`})},T=e=>{Object.assign(e.style,{display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:`5px`,margin:`0`,padding:`0`,border:`0`});let t=Array.from(e.querySelectorAll(`[data-mesurer-text-color]`));for(let[e,n]of t.entries())Object.assign(n.style,{display:e<7?`block`:`none`,width:`20px`,height:`20px`,padding:`0`});let n=e.querySelector(`[data-mesurer-text-custom-color='true']`);n&&(Object.assign(n.style,{display:`block`,width:`28px`,height:`28px`,border:`1px solid transparent`,borderRadius:`5px`,background:EC,padding:`3px`}),n.addEventListener(`mouseenter`,()=>{n.style.borderColor=OC}),n.addEventListener(`mouseleave`,()=>{n.style.borderColor=`transparent`}))},E=e=>{Object.assign(e.style,{width:`100%`,minWidth:`0`,height:`28px`,border:`1px solid transparent`,borderRadius:`5px`,background:EC,color:AC,padding:`0 8px`,font:`500 11px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif`,transition:`border-color 120ms ease, box-shadow 120ms ease, background 120ms ease`}),e.addEventListener(`mouseenter`,()=>{e.style.borderColor=OC}),e.addEventListener(`mouseleave`,()=>{e.style.borderColor=`transparent`}),e.addEventListener(`focus`,()=>{e.style.boxShadow=`inset 0 0 0 1px ${MC}`}),e.addEventListener(`blur`,()=>{e.style.boxShadow=`none`})},D=(e,t)=>{let r=n.createElement(`div`);if(Object.assign(r.style,{display:`flex`,alignItems:`center`,gap:`7px`,minWidth:`0`}),e.style.flex=`1 1 auto`,r.append(e),t){let e=n.createElement(`span`);e.textContent=t,e.title=t,Object.assign(e.style,{flex:`0 1 auto`,minWidth:`0`,maxWidth:`104px`,overflow:`hidden`,textOverflow:`ellipsis`,color:`#0369a1`,font:`500 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace`}),r.append(e)}return r},O=(e,t,n)=>{if(!n)return;let r=e.get(t);if(!r)return;let i=IC(r.value);r.value.replaceChildren(D(n,i)),Object.assign(r.value.style,{overflow:`visible`,textOverflow:`clip`,whiteSpace:`normal`,fontFamily:`inherit`})},k=(e,t,r)=>{if(!r)return;let i=n.createElement(`span`);i.textContent=t,i.dataset.mesurerUnifiedTextRow=`true`,Object.assign(i.style,{color:kC,fontSize:`11px`,alignSelf:`center`});let a=n.createElement(`div`);a.dataset.mesurerUnifiedTextRow=`true`,a.append(r),Object.assign(a.style,{minWidth:`0`,display:`flex`,alignItems:`center`}),e.append(i,a)},A=e=>{let t=e.target instanceof a.HTMLElement?e.target:null;if(!t||!s.contains(t))return;let n=t.closest(`[data-mesurer-text-style-menu-button='true']`);if(n){n.getAttribute(`aria-expanded`)===`true`&&p(),r.setTimeout(()=>{c||s.querySelector(`[data-mesurer-text-style-menu-button='true']`)?.getAttribute(`aria-expanded`)===`false`&&p()},0);return}t.closest(`[data-mesurer-text-style-button], [data-mesurer-text-color], [data-mesurer-text-style-preset]`)&&(p(),m())},j=e=>{let t=e.target instanceof a.HTMLElement?e.target:null;!t||!s.contains(t)||t.matches(`[data-mesurer-text-style-select], [data-mesurer-text-custom-color='true']`)&&(p(),m())},M=e=>{if(e.key!==`Enter`)return;let t=e.target instanceof a.HTMLElement?e.target:null;!t||!s.contains(t)||t.matches(`[data-mesurer-text-style-input]`)&&m()},N=()=>{if(!(c||l)){l=!0;try{let e=s.querySelector(`[data-mesurer-text-editor='true']`),t=s.querySelector(`[data-mesurer-text-style-toolbar='true']`),r=s.querySelector(`[data-mesurer-text-style-menu='true']`),i=s.querySelector(`[data-mesurer-text-inspector-info='true']`);if(!i){g();return}if(!e||!t||!r)return;let o=i.children.item(1);if(!(o instanceof a.HTMLElement))return;if(t.querySelector(`[data-mesurer-text-style-menu-button='true']`))for(let e of i.querySelectorAll(`[data-mesurer-unified-text-row='true'], [data-mesurer-unified-text-presets='true']`))e.remove();let c=FC(o,a);i.dataset.mesurerTextInspectorUnified=`true`,i.setAttribute(`aria-label`,`Typography editor`),i.removeAttribute(`aria-hidden`),i.style.removeProperty(`visibility`),Object.assign(i.style,{pointerEvents:`auto`,position:`static`,left:`auto`,top:`auto`,transform:`none`,zIndex:`auto`,boxSizing:`border-box`,width:`min(360px, calc(100vw - 16px))`,minWidth:`0`,maxWidth:`calc(100vw - 16px)`,maxHeight:`calc(100vh - 16px)`,overflowY:`auto`,padding:`11px 12px 12px`,whiteSpace:`normal`,transition:`none`,animation:`none`}),h(i),Object.assign(o.style,{gridTemplateColumns:`72px minmax(0, 1fr)`,columnGap:`10px`,rowGap:`7px`,alignItems:`center`});let l=t.querySelector(`[data-mesurer-text-style-select='font']`),u=t.querySelector(`[data-mesurer-text-style-select='size']`),d=t.querySelector(`[data-mesurer-text-style-select='weight']`),f=t.querySelector(`[data-mesurer-text-style-input='line']`),p=t.querySelector(`[data-mesurer-text-style-input='tracking']`),m=l?S(l):null,_=u?S(u):null,v=d?S(d):null;for(let e of[f,p])e&&C(e);O(c,`Family`,m),O(c,`Size`,_),O(c,`Weight`,v),O(c,`Line`,f),O(c,`Tracking`,p);let y=n.createElement(`div`);y.dataset.mesurerUnifiedTextFormat=`true`,Object.assign(y.style,{display:`flex`,alignItems:`center`,gap:`5px`});for(let e of Array.from(t.querySelectorAll(`[data-mesurer-text-style-button]`)))w(e),y.append(e);k(o,`Format`,y.childElementCount?y:null);let x=t.querySelector(`[data-mesurer-text-color-swatches='true']`);x&&T(x),k(o,`Color`,x);let D=t.querySelector(`[data-mesurer-text-style-menu-button='true']`);if(D&&E(D),k(o,`Style`,D),D?.getAttribute(`aria-expanded`)===`true`){let e=n.createElement(`div`);e.dataset.mesurerUnifiedTextPresets=`true`,Object.assign(e.style,{display:`grid`,gap:`3px`,marginTop:`9px`,paddingTop:`8px`,borderTop:`1px solid ${DC}`});for(let t of Array.from(r.querySelectorAll(`[data-mesurer-text-style-preset]`)))t.style.width=`100%`,t.style.minHeight=`34px`,e.append(t);e.childElementCount&&i.append(e)}t.style.display=`none`,t.setAttribute(`aria-hidden`,`true`),r.style.display=`none`,r.setAttribute(`aria-hidden`,`true`),b()}finally{l=!1}}};s.addEventListener(`click`,A,!0),s.addEventListener(`change`,j,!0),s.addEventListener(`keydown`,M,!0),r.addEventListener(`resize`,v),r.addEventListener(`scroll`,y,{capture:!0,passive:!0});let P=new a.MutationObserver(N);P.observe(s,{childList:!0,subtree:!0}),N(),e.lifecycle.onDispose(()=>{c=!0,P.disconnect(),u&&r.cancelAnimationFrame(u),d&&r.clearTimeout(d),s.removeEventListener(`click`,A,!0),s.removeEventListener(`change`,j,!0),s.removeEventListener(`keydown`,M,!0),r.removeEventListener(`resize`,v),r.removeEventListener(`scroll`,y,!0),g()})}var RC=4,zC=4,BC=220,VC=60,HC=(e,t,n)=>Math.min(Math.max(e,t),n);function UC(e,t){let{ownerWindow:n,portalTarget:r}=t,i=n,a=e=>{if(e.key!==`Escape`)return;let t=e.composedPath().find(e=>e instanceof i.HTMLElement&&e.dataset.mesurerUnifiedSelectPopup===`true`),n=t instanceof i.HTMLElement?t:r.querySelector(`[data-mesurer-unified-select-popup='true']`);if(!n)return;let a=n.dataset.mesurerUnifiedSelectKind;if(!a)return;let o=n.closest(`[data-mesurer-text-inspector-info='true']`)?.querySelectorAll(`[data-mesurer-unified-select-trigger]`)??r.querySelectorAll(`[data-mesurer-unified-select-trigger]`),s=Array.from(o).find(e=>e.dataset.mesurerUnifiedSelectTrigger===a);s&&(e.preventDefault(),e.stopImmediatePropagation(),s.click())};n.addEventListener(`keydown`,a,!0),e.lifecycle.onDispose(()=>{n.removeEventListener(`keydown`,a,!0)})}function WC(e,t){let{ownerDocument:n,ownerWindow:r,portalTarget:i}=t,a=r,o=i.querySelectorAll(`[data-mesurer-text-edit-runtime='true']`),s=o.item(o.length-1);if(!s)return;let c=!1,l=!1,u=0,d=null,f=new Map,p=e=>{let t=e.dataset.mesurerUnifiedSelectKind;return t?Array.from(s.querySelectorAll(`[data-mesurer-unified-select-trigger]`)).find(e=>e.dataset.mesurerUnifiedSelectTrigger===t)??null:null},m=e=>{if(e.dataset.mesurerUnifiedSelectKind===`font`)for(let t of e.querySelectorAll(`[data-mesurer-unified-select-option]`)){let e=t.dataset.mesurerUnifiedSelectOption;e&&t.setAttribute(`aria-label`,e)}},h=()=>{let e=d;if(e?.isConnected)for(let[t,n]of f){if(!t.isConnected||!e.contains(t)){f.delete(t);continue}let r=n.left-e.scrollLeft,i=n.top-e.scrollTop;t.style.transform=r===0&&i===0?`none`:`translate(${r}px, ${i}px)`}},g=e=>{d!==e&&(d?.removeEventListener(`scroll`,h),f.clear(),d=e,d?.addEventListener(`scroll`,h,{passive:!0}))},_=(e,t,n)=>{let r=p(e);if(!r?.isConnected)return;let i=r.getBoundingClientRect(),a=t.getBoundingClientRect(),o=n.getBoundingClientRect();if(i.width<=0||i.height<=0||a.width<=0||a.height<=0||o.width<=0||o.height<=0)return;e.style.position=`absolute`,e.style.inset=`auto`,e.style.margin=`0`,e.style.pointerEvents=`auto`,e.style.zIndex=`2147483647`,e.style.transform=`none`;let s=Math.max(1,o.width-8),c=Math.min(Math.max(i.width,120),s);e.style.width=`${c}px`,e.style.maxWidth=`${s}px`;let l=Math.max(1,o.height-8),u=Math.min(BC,Math.max(VC,e.scrollHeight)),d=Math.min(u,l);e.style.maxHeight=`${d}px`;let m=o.left-a.left,h=o.top-a.top,g=i.left-a.left,_=i.top-a.top,v=i.bottom-a.top,y=Math.max(0,_-h-RC-zC),b=o.bottom-a.top,x=Math.max(0,b-v-RC-zC),S=x>=d||x>=y?v+RC:_-RC-d,C=m+zC,w=Math.max(C,m+o.width-zC-c),T=h+zC,E=Math.max(T,h+o.height-zC-d);e.style.left=`${HC(g,C,w)}px`,e.style.top=`${HC(S,T,E)}px`,f.set(e,{left:n.scrollLeft,top:n.scrollTop})},v=()=>{if(!(c||l)){l=!0;try{let e=s.querySelector(`[data-mesurer-text-inspector-placement-shell='true']`),t=s.querySelector(`[data-mesurer-text-inspector-info='true'][data-mesurer-text-inspector-unified='true']`);if(!e||!t){g(null);return}g(t);for(let e of Array.from(f.keys()))(!e.isConnected||!t.contains(e))&&f.delete(e);for(let r of Array.from(s.querySelectorAll(`[data-mesurer-unified-select-popup='true']`))){let i=n.activeElement,o=i instanceof a.HTMLElement&&r.contains(i)?i:null;(r.parentElement!==t||t.lastElementChild!==r)&&(t.append(r),o?.isConnected&&o.focus({preventScroll:!0})),m(r),_(r,e,t)}}finally{l=!1}}},y=()=>{v(),!(c||u)&&(u=r.requestAnimationFrame(()=>{u=0,v()}))},b=new a.MutationObserver(y);b.observe(s,{childList:!0,subtree:!0}),r.addEventListener(`resize`,y),y(),e.lifecycle.onDispose(()=>{c=!0,b.disconnect(),u&&r.cancelAnimationFrame(u),r.removeEventListener(`resize`,y),g(null)})}var GC=`var(--msr-color-ink-50, #f8fafc)`,KC=`var(--msr-color-ink-100, #f1f5f9)`,qC=`var(--msr-color-ink-200, #e2e8f0)`,JC=`var(--msr-color-ink-500, #64748b)`,YC=`var(--msr-color-ink-700, #334155)`,XC=`var(--msr-content, #0f172a)`,ZC=`var(--msr-accent, #0d99ff)`,QC=8,$C=4;function ew(e,t){let{ownerDocument:n,ownerWindow:r,portalTarget:i}=t,a=r,o=i.querySelectorAll(`[data-mesurer-text-edit-runtime='true']`),s=o.item(o.length-1);if(!s)return;let c=!1,l=!1,u=null,d=(e=!1)=>{let t=u;if(!t)return;t.popup.remove(),t.trigger.setAttribute(`aria-expanded`,`false`),t.chevron?.style.setProperty(`transform`,`rotate(45deg)`);let n=t.trigger.closest(`[data-mesurer-unified-select-shell='true'], [data-mesurer-unified-style-shell='true']`);n&&(n.style.boxShadow=`none`,n.style.borderColor=`transparent`),u=null,e&&t.trigger.isConnected&&t.trigger.focus({preventScroll:!0})},f=()=>{if(!u?.trigger.isConnected||!u.popup.isConnected){d();return}let e=u.trigger.getBoundingClientRect(),t=u.popup.getBoundingClientRect(),n=Math.max(e.width,Math.min(260,t.width||e.width));u.popup.style.width=`${n}px`;let i=u.popup.getBoundingClientRect(),a=r.innerWidth-QC,o=r.innerHeight-QC,s=Math.max(QC,a-i.width),c=Math.min(Math.max(e.left,QC),s),l=e.bottom+$C,f=e.top-$C-i.height,p=l+i.height<=o||f<QC?Math.min(l,Math.max(QC,o-i.height)):f;u.popup.style.left=`${c}px`,u.popup.style.top=`${Math.max(QC,p)}px`},p=e=>{let t=n.createElement(`button`);t.type=`button`,t.dataset.mesurerUnifiedSelectOption=e.key,t.setAttribute(`role`,`option`),t.setAttribute(`aria-selected`,e.selected?`true`:`false`),t.disabled=e.disabled,Object.assign(t.style,{width:`100%`,minHeight:`30px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`12px`,boxSizing:`border-box`,border:`0`,borderRadius:`5px`,background:e.selected?KC:`transparent`,color:e.disabled?JC:XC,padding:`0 9px`,textAlign:`left`,font:`${e.selected?`600`:`500`} 11px/1.2 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif`,cursor:e.disabled?`default`:`pointer`,opacity:e.disabled?`0.55`:`1`,pointerEvents:`auto`});let r=n.createElement(`span`);if(r.textContent=e.label,Object.assign(r.style,{minWidth:`0`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`}),t.append(r),e.shortcut){let r=n.createElement(`span`);r.textContent=e.shortcut,Object.assign(r.style,{flex:`0 0 auto`,color:JC,font:`500 10px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif`,whiteSpace:`nowrap`}),t.append(r)}return t.addEventListener(`mouseenter`,()=>{e.disabled||(t.style.background=e.selected?KC:GC)}),t.addEventListener(`mouseleave`,()=>{t.style.background=e.selected?KC:`transparent`}),t.addEventListener(`click`,()=>{e.disabled||(e.activate(),d())}),t.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),d(!0);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;e.preventDefault();let n=t.closest(`[data-mesurer-unified-select-popup='true']`);if(!n)return;let r=Array.from(n.querySelectorAll(`[data-mesurer-unified-select-option]`)).filter(e=>!e.disabled),i=r.indexOf(t);i<0||r.length===0||r[(i+(e.key===`ArrowDown`?1:-1)+r.length)%r.length]?.focus({preventScroll:!0})}),t},m=(e,t,r)=>{if(u?.trigger===e){d(!0);return}d();let i=n.createElement(`div`);i.dataset.mesurerUnifiedSelectPopup=`true`,i.dataset.mesurerUnifiedSelectKind=e.dataset.mesurerUnifiedSelectTrigger??`select`,i.dataset.mesurerInspectorUi=`true`,i.setAttribute(`role`,`listbox`),Object.assign(i.style,{position:`fixed`,zIndex:`2147483647`,minWidth:`120px`,maxWidth:`min(260px, calc(100vw - 16px))`,maxHeight:`220px`,overflowY:`auto`,boxSizing:`border-box`,border:`1px solid ${qC}`,borderRadius:`8px`,background:`var(--msr-surface-raised, #ffffff)`,padding:`4px`,boxShadow:`var(--msr-shadow-select-menu, 0 8px 24px rgba(15, 23, 42, 0.14), 0 2px 6px rgba(15, 23, 42, 0.08))`,pointerEvents:`auto`});for(let e of r)i.append(p(e));s.append(i),e.setAttribute(`aria-expanded`,`true`),t?.style.setProperty(`transform`,`rotate(225deg)`);let a=e.closest(`[data-mesurer-unified-select-shell='true'], [data-mesurer-unified-style-shell='true']`);a&&(a.style.borderColor=`transparent`,a.style.boxShadow=`inset 0 0 0 1px ${ZC}`),u={popup:i,trigger:e,chevron:t},f(),(i.querySelector(`[aria-selected='true']:not(:disabled)`)??i.querySelector(`[data-mesurer-unified-select-option]:not(:disabled)`))?.focus({preventScroll:!0})},h=(e,t)=>{Object.assign(e.style,{position:`absolute`,inset:`0`,zIndex:`1`,width:`100%`,height:`100%`,boxSizing:`border-box`,border:`0`,borderRadius:`5px`,background:`transparent`,color:YC,padding:`0 28px 0 8px`,textAlign:`left`,font:`500 11px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif`,cursor:`pointer`,outline:`none`}),e.addEventListener(`focus`,()=>{t.style.borderColor=`transparent`,t.style.boxShadow=`inset 0 0 0 1px ${ZC}`}),e.addEventListener(`blur`,()=>{u?.trigger!==e&&(t.style.boxShadow=`none`)})},g=e=>{let t=e.closest(`[data-mesurer-unified-select-shell='true']`);if(!t||t.dataset.mesurerUnifiedCustomSelect===`true`)return;t.dataset.mesurerUnifiedCustomSelect=`true`,Object.assign(e.style,{position:`absolute`,inset:`0`,width:`100%`,height:`100%`,opacity:`0`,pointerEvents:`none`}),e.tabIndex=-1,e.setAttribute(`aria-hidden`,`true`);let r=e.dataset.mesurerTextStyleSelect??e.getAttribute(`aria-label`)??`select`,i=n.createElement(`button`);i.type=`button`,i.dataset.mesurerUnifiedSelectTrigger=r,i.setAttribute(`aria-haspopup`,`listbox`),i.setAttribute(`aria-expanded`,`false`),i.setAttribute(`aria-label`,e.getAttribute(`aria-label`)??r);let o=t.querySelector(`[data-mesurer-unified-select-chevron='true']`);o&&(o.style.zIndex=`2`),h(i,t);let s=()=>{let t=e.selectedOptions.item(0);i.textContent=t?.textContent?.trim()||e.value};s(),e.addEventListener(`change`,s);let c=()=>Array.from(e.options).map(t=>({key:t.value,label:t.textContent?.trim()||t.value,shortcut:null,selected:t.selected,disabled:t.disabled,activate:()=>{if(e.value===t.value){d();return}e.value=t.value,e.dispatchEvent(new a.Event(`input`,{bubbles:!0})),e.dispatchEvent(new a.Event(`change`,{bubbles:!0})),s()}}));i.addEventListener(`click`,()=>m(i,o,c())),i.addEventListener(`keydown`,e=>{if(e.key===`Escape`){d(!0);return}[`Enter`,` `,`ArrowDown`,`ArrowUp`].includes(e.key)&&(e.preventDefault(),m(i,o,c()))}),o?t.insertBefore(i,o):t.append(i)},_=e=>{let t=e.querySelector(`[data-mesurer-text-style-menu-button='true']:not([data-mesurer-unified-select-trigger='style'])`);if(!t||t.dataset.mesurerUnifiedCustomStyle===`true`)return;t.dataset.mesurerUnifiedCustomStyle=`true`,delete t.dataset.mesurerTextStyleMenuButton,t.style.display=`none`,t.tabIndex=-1,t.setAttribute(`aria-hidden`,`true`);for(let t of e.querySelectorAll(`[data-mesurer-unified-text-presets='true']`))t.remove();let r=t.parentElement;if(!r)return;let i=n.createElement(`div`);i.dataset.mesurerUnifiedStyleShell=`true`,Object.assign(i.style,{position:`relative`,width:`100%`,minWidth:`0`,height:`28px`,boxSizing:`border-box`,border:`1px solid transparent`,borderRadius:`5px`,background:GC,transition:`border-color 120ms ease, box-shadow 120ms ease, background 120ms ease`});let a=n.createElement(`button`);a.type=`button`,a.dataset.mesurerUnifiedSelectTrigger=`style`,a.dataset.mesurerTextStyleMenuButton=`true`,a.setAttribute(`aria-haspopup`,`listbox`),a.setAttribute(`aria-expanded`,`false`),a.setAttribute(`aria-label`,`Text style`),h(a,i),i.addEventListener(`mouseenter`,()=>{i.style.borderColor=qC}),i.addEventListener(`mouseleave`,()=>{u?.trigger!==a&&n.activeElement!==a&&(i.style.borderColor=`transparent`)});let o=n.createElement(`span`);o.dataset.mesurerUnifiedSelectChevron=`true`,o.setAttribute(`aria-hidden`,`true`),Object.assign(o.style,{position:`absolute`,zIndex:`2`,right:`9px`,top:`8px`,width:`7px`,height:`7px`,borderRight:`1.5px solid ${JC}`,borderBottom:`1.5px solid ${JC}`,transform:`rotate(45deg)`,transformOrigin:`center`,pointerEvents:`none`});let c=s.querySelector(`[data-mesurer-text-style-menu='true']`),l=()=>c?Array.from(c.querySelectorAll(`[data-mesurer-text-style-preset]`)):[],f=()=>{let e=l(),t=e.find(e=>e.getAttribute(`aria-current`)===`true`)??e[0];a.textContent=t?.getAttribute(`aria-label`)??`Text`};f();let p=()=>l().map(e=>({key:e.dataset.mesurerTextStylePreset??e.getAttribute(`aria-label`)??`preset`,label:e.getAttribute(`aria-label`)??e.textContent?.trim()??`Text`,shortcut:e.lastElementChild?.textContent?.trim()||null,selected:e.getAttribute(`aria-current`)===`true`,disabled:e.disabled,activate:()=>{e.click(),f()}}));a.addEventListener(`click`,()=>m(a,o,p())),a.addEventListener(`keydown`,e=>{if(e.key===`Escape`){d(!0);return}[`Enter`,` `,`ArrowDown`,`ArrowUp`].includes(e.key)&&(e.preventDefault(),m(a,o,p()))}),i.append(a,o),r.append(i)},v=()=>{if(!(c||l)){l=!0;try{let e=s.querySelector(`[data-mesurer-text-inspector-info='true'][data-mesurer-text-inspector-unified='true']`);if(!e){d();return}for(let t of Array.from(e.querySelectorAll(`[data-mesurer-text-style-select]`)))g(t);_(e)}finally{l=!1}}},y=e=>{if(!u)return;let t=e.composedPath();t.includes(u.popup)||t.includes(u.trigger)||d()},b=()=>f();r.addEventListener(`pointerdown`,y,!0),r.addEventListener(`resize`,b);let x=new a.MutationObserver(v);x.observe(s,{childList:!0,subtree:!0}),v(),e.lifecycle.onDispose(()=>{c=!0,x.disconnect(),d(),r.removeEventListener(`pointerdown`,y,!0),r.removeEventListener(`resize`,b)})}function tw(e,t){Ex(e,t);let{runtime:n}=xx(t);eC(e,n),UC(e,n),cS(e,TC(e,n)),qS(e,n),LC(e,n),sC(e,n,t.portalTarget),pS(e,n,t),tC(e,n),ew(e,n),WC(e,n),yx(e,n),kx(e,n),zS(e,n,t.portalTarget),CC(e,n,t.portalTarget)}function nw(e){let t=e,n=[];for(;;){let e=t.getRootNode();if(`host`in e){let r=e.host;n.unshift({kind:`shadow`,selector:hu(r)}),t=r;continue}let r=t.ownerDocument,i=r.defaultView?.frameElement;if(!i)return{};if(i.hasAttribute(`data-mesurer-responsive-frame`)){let e=r.defaultView;return{viewport:{url:e.location.href.split(`#`)[0],width:e.innerWidth,height:e.innerHeight,previewId:i.getAttribute(`data-mesurer-responsive-preview-id`)},domPath:n}}n.unshift({kind:`frame`,selector:hu(i)}),t=i}}function rw(e,t){let n=t.viewport;if(!n||!e)return null;let r=[...e.querySelectorAll(`iframe[data-mesurer-responsive-frame]`)].filter(e=>{let t=Pu(e)?.defaultView;return t&&t.location.href.split(`#`)[0]===n.url&&t.innerWidth===n.width&&t.innerHeight===n.height}),i=r.find(e=>e.getAttribute(`data-mesurer-responsive-preview-id`)===n.previewId)??(r.length===1?r[0]:void 0),a=i?Pu(i):null;for(let e of t.domPath??[]){let t=a?.querySelectorAll(e.selector);if(t?.length!==1)return null;a=e.kind===`frame`?Pu(t[0]):t[0].shadowRoot}return a}function iw(e){return[...e?.querySelectorAll(`iframe[data-mesurer-responsive-frame]`)??[]].flatMap(e=>{let t=Pu(e);return t?nv(t):[]})}var aw=1,ow=e=>{if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return typeof t.id==`string`&&!!t.id.trim()&&typeof t.text==`string`&&!!t.text.trim()&&Number.isFinite(t.createdAt)},sw=(e,t)=>{if(!t)return[];try{let n=e.sessionStorage.getItem(t);if(!n)return[];let r=JSON.parse(n);return r.version!==aw||!Array.isArray(r.annotations)?[]:r.annotations.map(e=>{let t=new Set,n=Array.isArray(e.replies)?e.replies.flatMap(e=>!ow(e)||t.has(e.id)?[]:(t.add(e.id),[{id:e.id,text:e.text,createdAt:e.createdAt}])):void 0,r={...e};return n?.length?r.replies=n:delete r.replies,e.status===`resolved`?(r.status=`resolved`,Number.isFinite(e.resolvedAt)&&(r.resolvedAt=e.resolvedAt)):e.status===`open`&&(r.status=`open`),cw(r)})}catch{return[]}},cw=e=>{let t={...e,anchor:e.anchor.kind===`elements`?{kind:`elements`,region:e.anchor.region?ac(e.anchor.region):null,targets:e.anchor.targets.map(e=>{let t={...e,fingerprint:{...e.fingerprint,classes:[...e.fingerprint.classes]},lastRect:ac(e.lastRect)};return e.viewport&&(t.viewport={...e.viewport}),e.domPath&&(t.domPath=e.domPath.map(e=>({...e}))),t})}:{kind:`region`,rect:ac(e.anchor.rect)},baseline:{targets:e.baseline.targets.map(e=>({...e,rect:ac(e.rect)})),guides:e.baseline.guides.map(e=>({...e})),measurements:e.baseline.measurements.map(e=>({...e,rect:ac(e.rect)})),distances:e.baseline.distances.map(e=>({...e,rectA:ac(e.rectA),rectB:ac(e.rectB),horizontal:e.horizontal?{...e.horizontal}:null,vertical:e.vertical?{...e.vertical}:null}))}};return e.replies?t.replies=e.replies.map(e=>({...e})):delete t.replies,t},lw=(e,t)=>`${t}-${e.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}`,uw=e=>{let t=new Set,n=[];for(let r of e.current.selectedMeasurements){let e=r.elementRef;!e?.isConnected||t.has(e)||(t.add(e),n.push(e))}let r=e.current.selectedMeasurement?.elementRef;return r?.isConnected&&!t.has(r)&&n.push(r),n};function dw(e){let{model:t,ownerDocument:n,ownerWindow:r,uiRoot:i}=e,a=r,o=e.pageTarget??n.body??n.documentElement,s=o instanceof a.ShadowRoot?o:o.getRootNode(),c=s instanceof a.ShadowRoot?s:n,l=Rl(r),u=()=>e.persistenceKey?`${e.persistenceKey}:${l}`:void 0,d=()=>e.persistenceKey?`${e.persistenceKey}${r.location.pathname}`:void 0,f=()=>{let e=u();if(!e)return{annotations:[],migrated:!1};try{if(r.sessionStorage.getItem(e)!==null)return{annotations:sw(r,e),migrated:!1}}catch{return{annotations:[],migrated:!1}}let t=d();if(!t)return{annotations:[],migrated:!1};let n=sw(r,t);return{annotations:n,migrated:n.length>0}},p=f(),m=p.annotations,h=p.migrated,g=new Set,_=new Map,v=new Map,y=new Map,b=!1,x=0,S=new Map,C=new Map,w=!1,T=(e,t)=>`${e}:${t}`,E=e=>iv(e,o)||iw(i).includes(e.ownerDocument),D=(e,t)=>t.viewport?e.getRootNode()===rw(i,t):!rv(e.ownerDocument),O=e=>{let t=[],r=new Set,i=e=>{r.has(e)||!E(e)||(r.add(e),t.push(e))};o instanceof a.HTMLElement&&o.matches(e)&&i(o);for(let t of nv(o)){let r=t===n?c:t;for(let t of r.querySelectorAll(e))i(t)}return t},k=()=>{let e=u();if(e)try{if(m.length===0){r.sessionStorage.removeItem(e);return}r.sessionStorage.setItem(e,JSON.stringify({version:aw,annotations:m.map(cw)}))}catch{}};h&&=(k(),!1);let A=()=>{for(let e of g)e()},j=e=>{if(!_u(e.fingerprint))return null;let t=[];try{let n=e.viewport?rw(i,e):null;t=e.viewport?[...n?.querySelectorAll(e.selector)??[]]:O(e.selector).filter(t=>D(t,e))}catch{return null}let n=t.filter(t=>vu(t,e.fingerprint));if(t.length===1&&n.length===1)return n[0]??null;if(t.length!==1||e.fingerprint.id||e.fingerprint.testId)return null;let r=t[0];if(!r||r.localName!==e.fingerprint.tag)return null;let a=qu(r),o=e.lastRect,s=Math.max(4,Math.max(o.width,o.height)*.05),c=Math.max(2,Math.max(o.width,o.height)*.03);return Math.abs(a.left-o.left)<=s&&Math.abs(a.top-o.top)<=s&&Math.abs(a.width-o.width)<=c&&Math.abs(a.height-o.height)<=c?r:null},M=(e,t)=>{let n=T(e,t.id),r=v.get(n);if(r?.isConnected&&E(r)&&D(r,t))return r;r&&v.delete(n);let i=j(t);return i&&v.set(n,i),i},N=()=>{let e=!1;for(let t of m)if(t.anchor.kind===`elements`)for(let n of t.anchor.targets){let r=T(t.id,n.id),i=M(t.id,n),a=!!i;if(y.get(r)!==a&&(y.set(r,a),e=!0),!i)continue;let o=qu(i);(o.left!==n.lastRect.left||o.top!==n.lastRect.top||o.width!==n.lastRect.width||o.height!==n.lastRect.height)&&(n.lastRect=o,e=!0)}e&&(k(),A())},P=()=>{x||b||m.length===0||(x=r.requestAnimationFrame(()=>{x=0,N()}))},F=e=>{let t=S.get(e);t&&(e.removeEventListener(`load`,t.load,!0),e.removeEventListener(`scroll`,P,!0),t.removeResizeListener(),t.unsubscribeLocation(),t.observer?.disconnect(),S.delete(e))},I=()=>{let e=new Set;for(let t of m)if(t.anchor.kind===`elements`)for(let n of t.anchor.targets){if(!n.viewport)continue;let t=rw(i,{...n,domPath:[]});for(let r of n.domPath??[]){let n=t?.querySelectorAll(r.selector);if(n?.length!==1)break;let i=n[0],a=r.kind===`shadow`?i.shadowRoot:null;t=r.kind===`frame`?Pu(i):a,a&&e.add(a)}}for(let t of e){if(C.has(t))continue;let e=t.ownerDocument.defaultView?.MutationObserver;if(!e)continue;let n=new e(()=>{L(),P()});n.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`,`class`,`data-testid`,`role`,`aria-label`,`style`]}),C.set(t,n)}for(let[t,n]of C)e.has(t)||(n.disconnect(),C.delete(t))},L=()=>{if(!w)return;let e=new Set([...nv(o),...iw(i)]);for(let t of e){if(S.has(t))continue;let e=()=>{L(),P()},n=t.defaultView?.MutationObserver,r=n&&t.body?new n(()=>{L(),I(),P()}):null;t.addEventListener(`load`,e,!0),t.addEventListener(`scroll`,P,!0);let i=t.defaultView;i?.addEventListener(`resize`,P);let a=i?.removeEventListener.bind(i);r?.observe(t.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`,`class`,`data-testid`,`role`,`aria-label`,`style`]}),S.set(t,{load:e,observer:r,removeResizeListener:()=>a?.(`resize`,P),unsubscribeLocation:t.defaultView&&rv(t)?Hl(t.defaultView,P):()=>{}})}for(let t of S.keys())e.has(t)||F(t);I()},R=()=>{b||m.length===0||(w=!0,L())},z=()=>{if(w){w=!1;for(let e of S.keys())F(e);for(let e of C.values())e.disconnect();C.clear(),x&&r.cancelAnimationFrame(x),x=0}},B=()=>{L(),N(),A()};r.addEventListener(`mesurer:responsive-stage-change`,B),i?.addEventListener(`scroll`,P,!0),m.length>0&&(N(),R());let V=Hl(r,e=>{if(e===l||b)return;k(),z(),v.clear(),y.clear(),l=e,m.length=0;let t=f();m.push(...t.annotations),t.migrated&&k(),m.length>0&&(N(),R()),A()}),H=t.subscribe(A),U=()=>({guides:t.current.guides,measurements:t.current.measurements,activeMeasurement:t.current.activeMeasurement,distances:t.current.heldDistances}),ee=e=>dc({...e,workspace:U(),guideTolerance:10}),W=(e,t)=>({id:`target-${t+1}`,selector:hu(e),fingerprint:gu(e),lastRect:qu(e),...nw(e)}),te=e=>{let n=[],i=new Set;for(let t of e){let e=t.trim();!e||i.has(e)||(i.add(e),n.push(e))}if(!n.length)throw Error(`Mesurer select() requires at least one selector.`);let a=n.map(e=>{let t;try{t=O(e)}catch{throw Error(`Invalid Mesurer selection selector: ${e}`)}if(t.length===0)throw Error(`Mesurer selection target not found: ${e}`);if(t.length>1)throw Error(`Mesurer selection target is ambiguous (${t.length} matches): ${e}`);return t[0]});t.checkpoint(),t.setEnabled(!0),t.setToolMode(`select`);let o=a.map(e=>nd(e,r));return t.setSelectedMeasurements(o,o.at(-1)??null),t.setTransient({selectionOriginRect:null}),a},ne=(e,t=[])=>(m.push(e),e.anchor.kind===`elements`&&e.anchor.targets.forEach((n,r)=>{let i=t[r],a=T(e.id,n.id);i&&E(i)&&v.set(a,i),y.set(a,!!(i&&E(i)))}),R(),k(),A(),cw(e)),re=(e,t)=>{if(i?.querySelector(`[data-mesurer-responsive-stage]`))throw Error(`Select a preview element before adding a Responsive annotation.`);let n=e.trim();if(!n)throw Error(`Annotation note cannot be empty.`);let a=ac(t);return ne({id:lw(r,`annotation`),note:n,createdAt:Date.now(),anchor:{kind:`region`,rect:a},baseline:ee({targets:[],region:a})})},ie=e=>{let n=e.trim();if(!n)throw Error(`Annotation note cannot be empty.`);let i=uw(t).filter(E),a=t.current.selectionOriginRect?ac(t.current.selectionOriginRect):null;if(!i.length){if(!a)throw Error(`Select a page element or drag a region before adding an annotation.`);return re(n,a)}let o=i.map(W);if(new Set(o.map(e=>JSON.stringify(e.viewport))).size>1)throw Error(`Select elements within one Responsive preview before adding an annotation.`);return ne({id:lw(r,`annotation`),note:n,createdAt:Date.now(),anchor:{kind:`elements`,targets:o,region:a},baseline:ee({targets:o,elements:i})},i)},ae=()=>{for(let[e,t]of _)t.value||t.priority?e.style.setProperty(`display`,t.value,t.priority):e.style.removeProperty(`display`);_.clear()};return{snapshot(){return{enabled:t.current.enabled,rulersVisible:t.current.rulersVisible,xrayVisible:t.current.xrayVisible,guideRelevanceTolerance:10,selectedMeasurements:[...t.current.selectedMeasurements],selectionOriginRect:t.current.selectionOriginRect?ac(t.current.selectionOriginRect):null,measurements:[...t.current.measurements],activeMeasurement:t.current.activeMeasurement,heldDistances:[...t.current.heldDistances],guides:t.current.guides.map(e=>({...e})),annotations:m.map(cw)}},elementRect(e){return qu(e)},targetScope:nw,annotationVisible(e){let t=m.find(t=>t.id===e);if(!t)return!1;let n=!!i?.querySelector(`[data-mesurer-responsive-stage]`),r=t.anchor.kind===`elements`&&t.anchor.targets.some(e=>e.viewport);return n===r&&(!r||t.anchor.kind===`elements`&&t.anchor.targets.some(e=>M(t.id,e)))},currentSelection(){return{elements:uw(t).filter(E),region:t.current.selectionOriginRect?ac(t.current.selectionOriginRect):null}},refreshSelectionGeometry(){let e=t.current.selectedMeasurements;if(!e.length)return;let n=(e,t)=>e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height,i=!1,a=e.flatMap(e=>{if(!e.elementRef?.isConnected)return[];let t={...nd(e.elementRef,r),id:e.id,originRect:e.originRect};return(!n(t.rect,e.rect)||!n(t.paddingRect,e.paddingRect)||!n(t.marginRect,e.marginRect))&&(i=!0),[t]});if(a.length!==e.length&&(i=!0),!i)return;let o=t.current.selectedMeasurement?.id;t.setSelectedMeasurements(a,a.find(e=>e.id===o)??a.at(-1)??null)},clearSelection(){t.checkpoint(),t.setSelectedMeasurements([],null),t.setSelectedGuideIds([]),t.setHoverTarget(null,null),t.setTransient({start:null,end:null,isDragging:!1,selectionOriginRect:null})},toggleSelection(e){if(!e.isConnected||!E(e))return;let n=t.current.selectedMeasurements.some(t=>t.elementRef===e)?t.current.selectedMeasurements.filter(t=>t.elementRef!==e):[...t.current.selectedMeasurements,nd(e,r)];t.checkpoint(),t.setSelectedMeasurements(n,n.at(-1)??null),t.setTransient({selectionOriginRect:null})},selectGestureActive(){return t.current.toolMode===`select`&&t.current.start!==null},select:te,setHover(e){if(!e?.isConnected||!E(e)){t.setHoverTarget(null,null);return}let n=qu(e);t.setHoverTarget(e,t.current.settings.hoverHighlightEnabled?{left:n.left,top:n.top,width:n.width,height:n.height}:null)},clearHover(){t.setHoverTarget(null,null)},hoveredElement(){return t.current.hoverElement?.isConnected&&E(t.current.hoverElement)?t.current.hoverElement:null},annotations(){return m.map(cw)},annotation(e){let t=m.find(t=>t.id===e);if(!t)return null;let n=cw(t),r=[];if(n.anchor.kind===`elements`&&t.anchor.kind===`elements`){let e=t.anchor.targets;r=n.anchor.targets.map((n,r)=>({target:n,element:M(t.id,e[r])}))}return{...n,resolvedTargets:r}},annotationRect(e){let t=m.find(t=>t.id===e);if(!t)return null;if(t.anchor.kind===`region`)return ac(t.anchor.rect);let n=t.anchor.targets.map(e=>{let n=M(t.id,e);return n?qu(n):void 0}).filter(e=>e!==void 0);if(!n.length){let e=sc(t.anchor.targets.map(e=>e.lastRect));return e?ac(e):null}return sc(n.map(e=>({left:e.left,top:e.top,width:e.width,height:e.height})))},addSelectionAnnotation:ie,addRegionAnnotation:re,removeAnnotation(e,t){let n=m.findIndex(t=>t.id===e);if(n<0)return!1;let r=m[n];if(t){let e=r.replies??[];if(r.note!==t.note||e.length!==t.replies.length||e.some((e,n)=>{let r=t.replies[n];return!r||e.id!==r.id||e.text!==r.text||e.createdAt!==r.createdAt}))return!1}let[i]=m.splice(n,1);if(i.anchor.kind===`elements`)for(let e of i.anchor.targets){let t=T(i.id,e.id);v.delete(t),y.delete(t)}return m.length===0&&z(),k(),A(),!0},addAnnotationReply(e,t){let n=m.find(t=>t.id===e),i=t.trim();if(!n)throw Error(`Mesurer annotation not found: ${e}`);if(!i)throw Error(`Annotation reply cannot be empty.`);let a={id:lw(r,`reply`),text:i,createdAt:Date.now()};return n.replies=[...n.replies??[],a],k(),A(),{...a}},updateAnnotationReply(e,t,n){let r=m.find(t=>t.id===e),i=n.trim();if(!r)throw Error(`Mesurer annotation not found: ${e}`);if(!i)throw Error(`Annotation reply cannot be empty.`);let a=r.replies??[],o=a.findIndex(e=>e.id===t);if(o<0)throw Error(`Mesurer annotation reply not found: ${t}`);let s={...a[o],text:i};return r.replies=a.map((e,t)=>t===o?s:e),k(),A(),{...s}},removeAnnotationReply(e,t){let n=m.find(t=>t.id===e);if(!n)throw Error(`Mesurer annotation not found: ${e}`);let r=n.replies??[];if(!r.some(e=>e.id===t))throw Error(`Mesurer annotation reply not found: ${t}`);let i=r.filter(e=>e.id!==t);i.length?n.replies=i:delete n.replies,k(),A()},setAnnotationStatus(e,t){let n=m.find(t=>t.id===e);if(!n)throw Error(`Mesurer annotation not found: ${e}`);n.status=t,t===`resolved`?n.resolvedAt=Date.now():delete n.resolvedAt,k(),A()},subscribe(e){return g.add(e),()=>g.delete(e)},prepareCapture(){let e=[`[data-mesurer-layer='chrome']`,`[data-mesurer-toolbar='true']`,`[data-mesurer-extension-toolbar='true']`,`[data-mesurer-inspector-ui='true']:not([data-mesurer-layer='evidence'])`,`.mesurer-color-picker`].join(`,`),t=new Set;i&&t.add(i),t.add(n);for(let n of t)for(let t of n.querySelectorAll(e))_.has(t)||(_.set(t,{value:t.style.getPropertyValue(`display`),priority:t.style.getPropertyPriority(`display`)}),t.style.setProperty(`display`,`none`,`important`))},finishCapture(){ae()},dispose(){b||(b=!0,z(),V(),H(),r.removeEventListener(`mesurer:responsive-stage-change`,B),i?.removeEventListener(`scroll`,P,!0),ae(),v.clear(),y.clear(),m.length=0,g.clear())}}}var fw=[`select`,`xray`,`color-picker`,`rulers`,`responsive`,`text-inspector`,`guides`,`settings`],pw=`mesurer-plugin-settings`,mw=e=>(e.startsWith(`mesurer.`)?e.slice(8):e).split(/[.-]/g).filter(Boolean).map(e=>e[0]?.toUpperCase()+e.slice(1)).join(` `)||e,hw=e=>`create`in e&&typeof e.create==`function`,gw=e=>e===`select`||e===`xray`||e===`color-picker`||e===`rulers`||e===`responsive`||e===`text-inspector`||e===`guides`||e===`distance`||e===`settings`,_w=e=>`builtin.${e}`,vw=(e,t)=>{let n=t.toLowerCase().replaceAll(`cmd`,`meta`).split(`+`).map(e=>e.trim()).filter(Boolean);if(!n.length)return!1;let r=n.at(-1),i=new Set(n.slice(0,-1)),a=i.has(`mod`),o=i.has(`meta`),s=i.has(`ctrl`)||i.has(`control`),c=i.has(`shift`),l=i.has(`alt`)||i.has(`option`);return(a?!(e.metaKey||e.ctrlKey):o!==e.metaKey||s!==e.ctrlKey)||c!==e.shiftKey||l!==e.altKey||!a&&!o&&!s&&(e.metaKey||e.ctrlKey)?!1:e.key.toLowerCase()===r},yw=({host:e,getBuiltinController:t,getModel:n,arrangeActive:r,isBuiltinPluginId:i,onPluginError:a})=>{let o=()=>e.tools().find(e=>e.modeSwitch===!0&&e.toolbarMode===`edit`),s=null,c=async()=>{let r=s;if(s=null,!r)return;let i=t(),a=n();i&&a&&(r.toolMode===`none`&&a.current.toolMode===`select`?i.deactivate(`select`):r.toolMode&&r.toolMode!==`none`&&a.current.toolMode!==r.toolMode&&await i.run(r.toolMode),r.xrayVisible&&!a.current.xrayVisible&&await i.run(`xray`),r.rulersVisible&&!a.current.rulersVisible&&await i.run(`rulers`));for(let t of r.pluginToolIds){let n=e.tools().find(e=>e.id===t);!n||n.toolbarMode!==`select`||(n.active?.()??!1)||await e.command.execute(n.command,void 0,{source:`select-mode-restore`,toolId:n.id})}},l=async t=>{let n=o();n?.active?.()&&(await e.command.execute(n.command,void 0,{source:t,toolId:n.id}),await c())},u=async()=>{let r=t(),a=n(),o=e.tools().filter(e=>e.modeSwitch!==!0&&e.toolbarMode===`select`&&!(e.builtin&&i(e.builtin))&&!i(e.id)&&(e.active?.()??!1)).map(e=>e.id),c=a?.current.toolMode;s={toolMode:c===`none`||c===`select`||c===`text-inspector`||c===`guides`?c:null,xrayVisible:a?.current.xrayVisible??!1,rulersVisible:a?.current.rulersVisible??!1,pluginToolIds:o},r&&a&&(a.current.xrayVisible&&r.deactivate(`xray`),a.current.colorPickerActive&&r.deactivate(`color-picker`),a.current.toolMode===`text-inspector`&&r.deactivate(`text-inspector`));for(let t of o){let n=e.tools().find(e=>e.id===t);!n||!(n.active?.()??!1)||await e.command.execute(n.command,void 0,{source:`edit-mode-suspend`,toolId:n.id})}},d=async(t,n=`toolbar`)=>{if(!t.disabled?.())try{let i=t.modeSwitch===!0&&t.toolbarMode===`edit`&&!(t.active?.()??!1),a=t.modeSwitch===!0&&t.toolbarMode===`edit`&&(t.active?.()??!1);i&&await u(),t.toolbarMode===`select`&&r()&&await l(`select-mode-tool`),await e.command.execute(t.command,void 0,{source:n,toolId:t.id}),a&&!r()&&await c()}catch(e){throw a?.(e,t.id),e}};return{editModeTool:o,executeTool:d,leaveEditMode:l,runTool:(e,t=`toolbar`)=>{d(e,t).catch(()=>void 0)}}};function bw(e){let t=en(()=>e.pluginHost),n=t??Ec(),r=!t,i=en(()=>e.version??`0.1.0`),a=t=>e.version&&t.id.startsWith(`mesurer.`)?{...t,version:i}:t,o=new Set(en(()=>e.excludePlugins??[])),s=en(()=>[...e.plugins??[]]),c=s.some(e=>e.id===`mesurer.responsive`),l=en(()=>Qb([],e.excludePlugins??[]).filter(e=>!c||e.id!==`mesurer.responsive`).map(a)),u=new Map,d=new Map,f=l.find(e=>e.id===`mesurer.responsive`);f&&!u.has(f.id)&&u.set(f.id,{id:f.id,label:mw(f.id),order:-100,enabled:!0,create:()=>f});for(let[e,t]of s.entries()){if(hw(t)){u.set(t.id,{...t,label:t.label??mw(t.id),order:t.order??1e3+e});continue}let n=a(t);u.set(n.id,{id:n.id,label:mw(n.id),order:1e3+e,enabled:!0,create:()=>n})}let p=new Set;for(let e of u.values())e.enabled!==!1&&p.add(e.id);let m=new Map([...u.values()].map(e=>[e.id,new Set(e.settingsIds??[])])),h=new Map,g=new Map,_=new Set,v=new Map,y=null,b=null,x=()=>void 0,S=async()=>void 0,[C,w]=G(0),[T,E]=G(!1),[D,O]=G(!1),k=e=>(C(),n.tools().find(t=>(t.builtin===e||t.id===e)&&t.command!==_w(e))),A=e=>(C(),T()?e===`distance`?n.overlays().some(t=>t.builtin===e||t.id===e):n.tools().some(t=>t.builtin===e||t.id===e):!o.has(e)),j=()=>(C(),n.state.get(`mesurer.arrange.active`)??!1),M=e=>!1;mo(j,e=>{e&&O(!1)});let N=lo(()=>(C(),n.tools().filter(e=>e.hidden?.()?!1:!e.builtin||!gw(e.builtin)||e.command!==_w(e.builtin)))),P=lo(()=>{C();let e=n.settings();return[...u.values()].sort((e,t)=>(e.order??0)-(t.order??0)).map(t=>{let r=m.get(t.id)??new Set,i=new Set(t.hiddenSettingsControlIds??[]),a=e.filter(e=>r.has(e.id)).map(e=>({...e,controls:(e.controls??[]).filter(e=>!i.has(e.id))})).filter(e=>(e.controls?.length??0)>0);return{id:t.id,label:t.label??mw(t.id),description:t.description,error:d.get(t.id),enabled:n.has(t.id),busy:_.has(t.id),sections:a}})}),F=lo(()=>(C(),n.settings().filter(e=>e.id===zy))),I=()=>{C();let e=[];for(let t of fw)(!A(t)||k(t))&&e.push(`[data-mesurer-builtin='${t}']{display:none!important}`);return(!A(`guides`)||k(`guides`))&&e.push(`[data-mesurer-builtin='guides-menu']{display:none!important}`),A(`guides`)||e.push(`[data-mesurer-guide='true']{display:none!important}`),A(`distance`)||e.push(`[data-mesurer-distance='true']{display:none!important}`),A(`rulers`)||e.push(`[data-mesurer-rulers='true']{display:none!important}`),A(`color-picker`)||e.push(`.mesurer-color-picker{display:none!important}`),e.join(`
|
|
2318
|
-
`)},{editModeTool:L,executeTool:R,leaveEditMode:z,runTool:B}=yw({host:n,getBuiltinController:()=>b,getModel:()=>y,arrangeActive:j,isBuiltinPluginId:gw,onPluginError:e.onPluginError}),V=e=>{D()&&[`arrange`,`edit`,`rulers`].includes(e)&&O(!1)},H=async()=>{if(A(`responsive`)){if(D()){O(!1);return}j()&&await z(`responsive-open`),y?.current.toolMode!==`select`&&y?.current.toolMode!==`text-inspector`&&await b?.run(`select`),b?.clearSelection(),O(!0)}},U=(e,t)=>{V(e.id),B(e,t)},ee=U,W=(t,n)=>{n.disabled?.()||(V(t.id),Promise.resolve(n.run()).catch(r=>{e.onPluginError?.(r,`${t.id}.${n.id}`)}))},te=async(t,n,r)=>{try{await n.set(r)}catch(r){e.onPluginError?.(r,`${t}.${n.id}`)}},ne=(e,t,n)=>{te(e,t,n)},re=async e=>{for(let t of n.settings()){if(e&&!e.has(t.id))continue;let n=v.get(t.id);if(n)for(let e of t.controls??[]){let r=n.get(e.id);r!==void 0&&await te(t.id,e,r)}}};return Nn(()=>{let t=!0,o=0,s=!1,c=Promise.resolve(),f=new Set,C=n,P=e,F=P.portalTarget??document.body,B=F.ownerDocument??document,V=B.defaultView??window,W=P.pageTarget??B.body,te=()=>{if(!y)throw Error(`Mesurer renderer model is unavailable for runtime bridge setup.`);return y},ne=()=>{let e=te().rendererRoot;if(!e?.isConnected)throw Error(`Mesurer renderer root is unavailable for runtime bridge setup.`);return e},ie=()=>{if(!b)throw Error(`Mesurer built-in controller is unavailable for runtime bridge setup.`);return b},ae=()=>te().current.settings.theme,oe=e=>{let t=ae();return e(t),te().subscribe(()=>{let n=ae();n!==t&&(t=n,e(n))})},se=()=>{let e=B.createElement(`div`);e.dataset.mesurerInspectorUi=`true`;let t=oe(t=>{e.dataset.theme=t});ne().append(e);let n=!1;return{element:e,dispose(){n||(n=!0,t(),e.remove())}}},ce=e=>dw({model:te(),ownerDocument:B,ownerWindow:V,uiRoot:F,pageTarget:W,persistenceKey:e?`${P.persistKey??`mesurer-plugin-settings`}:${e}:${V.location.origin}`:void 0}),le=B.createElement(`style`);le.dataset.mesurerPluginVisibility=`true`,le.dataset.mesurerInspectorUi=`true`,le.textContent=I(),F.append(le);let ue=P.persistKey?`${P.persistKey}:plugins`:pw,de=`${ue}:availability`,fe=new Map;try{let e=V.localStorage.getItem(de);if(e){let t=JSON.parse(e);if(t?.version===1||t?.version===2||t?.version===3){for(let[e,n]of Object.entries(t.enabled??{}))(t.version!==2||e!==`mesurer.codex`)&&fe.set(e,n);for(let[e,n]of Object.entries(t.state??{}))g.set(e,n)}}}catch(e){P.onPluginError?.(e,`plugin-registry-persistence`)}let pe=()=>{let e=Object.fromEntries([...u.keys()].map(e=>[e,C.has(e)])),t=Object.fromEntries(g);try{V.localStorage.setItem(de,JSON.stringify({version:3,enabled:e,state:t}))}catch(e){P.onPluginError?.(e,`plugin-registry-persistence`)}},me=()=>{o=0;try{V.localStorage.setItem(ue,JSON.stringify(C.state.serialize(`persist`)))}catch(e){P.onPluginError?.(e,`plugin-persistence`)}},he=()=>{V.clearTimeout(o),o=V.setTimeout(me,50)},ge=()=>{o&&(V.clearTimeout(o),me())},_e=()=>ge();V.addEventListener(`pagehide`,_e);let ve=C.subscribe(e=>{if(w(e=>e+1),le.textContent=I(),D()&&(j()||n.tools().some(e=>e.id===`rulers`&&(e.active?.()??!1)))&&O(!1),(e.reason===`state`||e.reason===`history`||e.reason===`remove`||e.reason===`replace`)&&he(),T()&&!s&&(e.reason===`load`||e.reason===`remove`||e.reason===`replace`)&&pe(),e.reason===`remove`&&e.pluginId?.startsWith(`mesurer.`)){let t=e.pluginId.slice(8);gw(t)&&t!==`responsive`&&b?.deactivate(t),t===`responsive`&&O(!1)}});P.onPluginHost?.(C);let ye=async(e,n=e.id)=>{if(!t)return!1;f.add(e);try{await C.load(e),d.delete(n)}catch(e){return t&&(d.set(n,e instanceof Error?e.message:String(e)),w(e=>e+1),P.onPluginError?.(e,n)),!1}finally{f.delete(e)}return t?!0:(C.plugin(e.id)===e&&C.remove(e.id),!1)},be=e=>ye(e),xe=e=>{for(let t of C.settings())!e.has(t.id)||v.has(t.id)||v.set(t.id,new Map((t.controls??[]).map(e=>[e.id,e.value()])))},Se=async e=>{if(!t||C.has(e.id))return C.has(e.id);let n=new Set(C.settings().map(e=>e.id)),r=new Set(C.describe().state.map(e=>e.id));try{let i=a(await e.create());if(!t)return!1;if(i.id!==e.id)throw Error(`Plugin registration ${e.id} created mismatched plugin ${i.id}.`);if(!await ye(i,e.id))return!1;let o=new Set(m.get(e.id)??e.settingsIds??[]);for(let e of C.settings())n.has(e.id)||o.add(e.id);m.set(e.id,o);let s=new Set(h.get(e.id)??[]);for(let e of C.describe().state)r.has(e.id)||s.add(e.id);h.set(e.id,s),xe(o);let c=g.get(e.id);return c&&(C.state.restore(c,`persist`),g.delete(e.id)),!0}catch(n){return t&&P.onPluginError?.(n,e.id),!1}},Ce=e=>{let t=h.get(e);if(!t?.size)return;let n=C.state.serialize(`persist`),r={};for(let e of t)Object.prototype.hasOwnProperty.call(n,e)&&(r[e]=n[e]);Object.keys(r).length&&g.set(e,r)},we=async(e,t=!0)=>C.has(e)?(await C.hook.emit(Cc,e),t?Ce(e):g.delete(e),C.remove(e)):!1,Te=async(e,t,n=!0)=>{let r=u.get(e);if(!(!r||_.has(e)||C.has(e)===t)){_.add(e),d.delete(e),w(e=>e+1);try{t?await Se(r):await we(e,n),s||pe()}finally{_.delete(e),w(e=>e+1)}}},Ee=e=>{let t=c.then(e,e);return c=t.catch(()=>void 0),t};x=(e,t)=>{Ee(async()=>{await Te(e,t)}).catch(t=>{d.set(e,t instanceof Error?t.message:String(t)),w(e=>e+1),P.onPluginError?.(t,e)})},S=()=>Ee(async()=>{s=!0;try{await re();let e=[...u.values()].sort((e,t)=>(e.order??0)-(t.order??0));for(let t of e){let e=p.has(t.id);!C.has(t.id)&&(g.delete(t.id),!e||!await Se(t))||(await re(m.get(t.id)),e?g.delete(t.id):await we(t.id))}}finally{s=!1}o&&V.clearTimeout(o),me(),pe()});let De=e=>{let t=y?.current;return t?e===`select`?t.toolMode===`select`:e===`xray`?t.xrayVisible:e===`color-picker`?t.colorPickerActive:e===`rulers`?t.rulersVisible:e===`text-inspector`?t.toolMode===`text-inspector`:e===`guides`?t.toolMode===`guides`:e===`settings`?t.settingsOpen:e===`responsive`&&D():!1},Oe=async e=>{if(M(e))return;if(e===`responsive`){H();return}if(D()&&e===`rulers`&&O(!1),e!==`settings`&&e!==`rulers`&&e!==`guides`&&j()&&(await z(`select-mode-builtin`),e===`select`||De(e)))return;let t=k(e);if(t){await R(t,{source:`builtin-command`,builtin:e});return}if(!A(e))return;let n=ie();if(e===`guides`&&j()&&De(`guides`)){await n.run(`select`);return}await n.run(e)};(async()=>{for(let e of l)await be(e);if(t&&(await be({id:`mesurer.runtime-bridge`,version:i,provides:[`runtime:solid`],setup(e){let t={ownerDocument:B,ownerWindow:V,portalTarget:F,pageTarget:W,rendererRoot:ne(),currentToolMode:()=>te().current.toolMode,currentToolbarMode:()=>j()?`edit`:`select`,theme:ae,subscribeTheme:oe,createWorkspaceRuntime:ce,createInspectorMount:se,createAnnotationRevealCoordinator:e=>Bd({root:ne(),ownerWindow:V,runtime:e,responsiveEnabled:()=>A(`responsive`),responsiveOpen:D,openResponsive:async()=>{D()||await H(),await new Promise(e=>V.requestAnimationFrame(()=>e()))},closeResponsive:async()=>{D()&&O(!1),await new Promise(e=>V.requestAnimationFrame(()=>e()))}})};e.service.provide(`runtime:solid`,t),Uy(e),tx(e,t),tw(e,t);for(let t of fw)e.command.register(_w(t),()=>Oe(t))}}),t)){for(let e of[...u.values()].sort((e,t)=>(e.order??0)-(t.order??0))){let n=fe.has(e.id)?fe.get(e.id)===!0:e.enabled!==!1;if(C.has(e.id)){n||await we(e.id);continue}if(n&&await Se(e),!t)return}v.clear();for(let e of C.settings())v.set(e.id,new Map((e.controls??[]).map(e=>[e.id,e.value()])));try{let e=V.localStorage.getItem(ue);if(e){let t=JSON.parse(e);C.state.restore(t,`persist`)}}catch(e){P.onPluginError?.(e,`plugin-persistence`)}t&&(E(!0),le.textContent=I(),P.onPluginsReady?.(C))}})();let ke=e=>{let t=e.key.toLowerCase(),n=e.metaKey||e.ctrlKey;return n&&!e.shiftKey&&!e.altKey&&t===`,`?`settings`:n||e.shiftKey||e.altKey?null:t===`s`?`select`:t===`a`?`text-inspector`:t===`g`?`guides`:t===`p`?`color-picker`:t===`x`?`xray`:t===`r`?`rulers`:t===`b`?`responsive`:null},Ae=e=>{if(Pl(e,V)||y?.current.settings.shortcutsEnabled===!1)return;let t=e.key.toLowerCase(),n=e.metaKey||e.ctrlKey;if(!n&&!e.shiftKey&&!e.altKey&&(t===`1`||t===`2`)){let n=L();if(t===`1`&&n?.active?.()){e.preventDefault(),e.stopImmediatePropagation(),ee(n,`toolbar-mode-shortcut`);return}if(t===`2`&&n&&!n.disabled?.()&&!n.active?.()){e.preventDefault(),e.stopImmediatePropagation(),ee(n,`toolbar-mode-shortcut`);return}}let r=ke(e);if(r===`responsive`){if(!A(`responsive`)){e.preventDefault(),e.stopImmediatePropagation();return}e.preventDefault(),e.stopImmediatePropagation(),e.repeat||Oe(`responsive`).catch(()=>void 0);return}if(r&&r!==`settings`&&j()){e.preventDefault(),e.stopImmediatePropagation(),Oe(r).catch(()=>void 0);return}if(r&&M(r)){e.preventDefault(),e.stopImmediatePropagation();return}let i=r?k(r):void 0;if(r&&i){e.preventDefault(),e.stopImmediatePropagation(),ee(i,{source:`builtin-shortcut`,builtin:r});return}if((t===`h`||t===`v`)&&M(`guides`)){e.preventDefault(),e.stopImmediatePropagation();return}if((t===`h`||t===`v`)&&k(`guides`)){e.preventDefault(),e.stopImmediatePropagation();return}let a=N().find(t=>t.shortcut&&!t.disabled?.()&&vw(e,t.shortcut));if(a){e.preventDefault(),e.stopImmediatePropagation(),U(a);return}if(n&&t===`z`&&(e.shiftKey?C.redo():C.undo())){e.preventDefault(),e.stopImmediatePropagation();return}(n&&t===`,`&&!A(`settings`)||t===`s`&&!A(`select`)||t===`a`&&!A(`text-inspector`)||t===`g`&&!A(`guides`)||(t===`h`||t===`v`)&&!A(`guides`)||t===`p`&&!A(`color-picker`)||t===`x`&&!A(`xray`)||t===`r`&&!A(`rulers`)||e.key===`Alt`&&!A(`distance`))&&(e.preventDefault(),e.stopImmediatePropagation())};return V.addEventListener(`keydown`,Ae,!0),()=>{t=!1;for(let e of f)C.cancelLoad(e);f.clear(),ge(),V.removeEventListener(`pagehide`,_e),V.removeEventListener(`keydown`,Ae,!0),ve(),le.remove(),y=null,b=null,x=()=>void 0,S=async()=>void 0,r&&C.dispose()}}),Y(m_,{runtime:{plugins:P,generalSections:F,version:()=>i,setEnabled:(e,t)=>x(e,t),update:ne,reset:async()=>{await S()}},get children(){return Y(Hv,{value:e=>{y=e},get children(){return Y(Ly,nc(e,{get pluginTools(){return N()},onPluginTool:e=>{U(e)},onPluginToolMenuItem:W,isBuiltinActionDisabled:M,onBuiltinController:e=>{b=e},get responsiveOpen(){return D()},responsiveShortcutsEnabled:()=>y?.current.settings.shortcutsEnabled!==!1,onResponsiveClose:()=>O(!1),onResponsiveToggle:()=>{H()},editSelectionHover:j}))}})}})}var xw=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),Sw=(e,t,n=0)=>!(e.left+e.width+n<=t.left||t.left+t.width+n<=e.left||e.top+e.height+n<=t.top||t.top+t.height+n<=e.top),Cw=(e,t,n,r,i)=>{let a=e.left+e.width,o=e.top+e.height,s=[{axis:`vertical`,space:t.width-a,points:[{left:a+r,top:e.top},{left:a+r,top:o-n}]},{axis:`vertical`,space:e.left,points:[{left:e.left-n-r,top:e.top},{left:e.left-n-r,top:o-n}]},{axis:`horizontal`,space:t.height-o,points:[{left:a-n,top:o+r},{left:e.left,top:o+r}]},{axis:`horizontal`,space:e.top,points:[{left:a-n,top:e.top-n-r},{left:e.left,top:e.top-n-r}]}];return i?s.sort((e,t)=>t.space-e.space):s},ww=(e,t,n)=>{let r=[];for(let i=0;i<=n;i+=1){let n=i*t;for(let t of e)for(let e of t.points){if(i===0){r.push(e);continue}t.axis===`vertical`?r.push({left:e.left,top:e.top+n},{left:e.left,top:e.top-n}):r.push({left:e.left+n,top:e.top},{left:e.left-n,top:e.top})}}return r};function Tw(e,t,n={}){let r=n.markerSize??24,i=n.markerGap??4,a=n.targetGap??6,o=n.targetClearance??2,s=n.viewportPadding??4,c=n.obstacles??[],l=Math.max(0,n.maxShiftRings??2),u=n.viewportAware??!1,d=r+i,f=Math.max(s,t.width-r-s),p=Math.max(s,t.height-r-s),m=[],h=e.map(e=>e.rect),g=[];for(let n of e){let e=new Set,_=[],v=Cw(n.rect,t,r,a,u);for(let t of ww(v,d,l)){let n=u?{left:xw(t.left,s,f),top:xw(t.top,s,p)}:t,r=`${n.left}:${n.top}`;e.has(r)||(e.add(r),_.push(n))}let y=_.filter(e=>{let t={...e,width:r,height:r};return h.every(e=>!Sw(t,e,o))&&c.every(e=>!Sw(t,e,i))}),b=y.find(e=>{let t={...e,width:r,height:r};return m.every(e=>!Sw(t,e,i))})??y.find(e=>{let t={...e,width:r,height:r};return m.every(e=>!Sw(t,e))})??y[0]??_[0]??{left:s,top:s};m.push({...b,width:r,height:r}),g.push({id:n.id,...b})}return g}function Ew(e){let[t,n]=G(``),[r,i]=G(!1),a,o=()=>{let r=t().trim();r&&(e.onSubmit(r),n(``),i(!1),e.onDraftChange?.(``),a&&(a.style.height=`34px`,a.scrollTop=0,a.style.overflowY=`hidden`,a.focus()))},s=()=>{n(``),i(!1),e.onDraftChange?.(``),a&&(a.style.height=`34px`,a.scrollTop=0,a.style.overflowY=`hidden`),e.onEscape?.()};var c=X(`div`,{class:`msr:relative msr:mt-2`}),l=X(`textarea`,{rows:1,class:`msr:block msr:box-border msr:min-h-[34px] msr:max-h-32 msr:w-full msr:resize-none msr:rounded-[5px] msr:border msr:border-ink-200 msr:px-2 msr:py-1.5 msr:text-[12px] msr:leading-5 msr:outline-none msr:placeholder:text-ink-400 msr:focus:border-[#0d99ff]`,onInput:t=>{let r=t.currentTarget;n(r.value),e.onDraftChange?.(r.value),r.style.height=`auto`;let a=r.scrollHeight>34;i(a),r.style.height=`${Math.min(128,Math.max(34,r.scrollHeight))}px`},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.stopPropagation(),e.preventDefault(),o()),e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),s())}}),u=X(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),o()},onClick:o});return Z(c,l),Z(c,u),ic(()=>e=>{a=e},l),Q(u,Y($m,{size:16,class:`mesurer-send-icon`})),q(()=>({e:e.label,t:e.placeholder,a:t(),o:{height:`34px`,"padding-right":r()?`8px`:`36px`,"padding-bottom":r()?`32px`:`6px`,"overflow-y":`auto`,"overflow-wrap":`anywhere`,background:`var(--msr-surface)`,color:`var(--msr-content)`},i:e.label===`Reply to note`?`Send reply`:e.label,n:`${e.label===`Reply to note`?`Send reply`:e.label} · Enter`,s:!t().trim(),h:`msr:absolute msr:right-1.5 msr:outline-none msr:disabled:opacity-40 ${r()?`msr:bottom-1.5`:`msr:top-1/2 msr:-translate-y-1/2`}`}),({e,t,a:n,o:r,i,n:a,s:o,h:s},c)=>{e!==c?.e&&$(l,`aria-label`,e,c?.e),t!==c?.t&&$(l,`placeholder`,t,c?.t),n!==c?.a&&$(l,`value`,n,c?.a),r!==c?.o&&$(l,`style`,r,c?.o),i!==c?.i&&$(u,`aria-label`,i,c?.i),a!==c?.n&&$(u,`title`,a,c?.n),o!==c?.s&&$(u,`disabled`,o,c?.s),s!==c?.h&&$(u,`class`,s,c?.h)}),c}function Dw(e){let[t,n]=G(null),[r,i]=G(``),[a,o]=G(null),[s,c]=G(null),[l,u]=G(``),[d,f]=G(!1),[p,m]=G([]),h=new Map,g=new Map,_=!1,v=new WeakSet;mo(()=>({id:e.annotation.id,replies:e.annotation.replies}),(e,t)=>{t&&e.id!==t.id&&(n(null),i(``),o(null),c(null),u(``),f(!1));let r=new Set,a=(e.replies??[]).map(e=>{r.add(e.id);let t=h.get(e.id);if(t)t.update(e);else{let[n,r]=G({...e});t={id:e.id,get text(){return n().text},get createdAt(){return n().createdAt},update:r},h.set(e.id,t)}return t});for(let e of h.keys())r.has(e)||h.delete(e);m(a)});let y=e=>{queueMicrotask(()=>g.get(e)?.focus())},b=()=>{queueMicrotask(()=>{let t=[...g.values()].find(e=>e.isConnected);t?t.focus():e.panelElement()?.querySelector(`[aria-label='Reply to note']`)?.focus()})};e.onGlobalHandlers({pointerdown:n=>{let i=e.panelElement();if(i&&n.composedPath().includes(i)){f(!1);return}if(!l().trim()&&!(t()&&r().trim())){e.onClose();return}n.preventDefault(),n.stopImmediatePropagation(),_=!0,d()?e.onClose():f(!0)},click:t=>{if(!_)return;_=!1;let n=e.panelElement();n&&t.composedPath().includes(n)||(t.preventDefault(),t.stopImmediatePropagation())},keydown:r=>{if(r.key!==`Escape`)return;let l=e.panelElement();r.preventDefault(),r.stopImmediatePropagation();let d=t();if(d){n(null),i(``),y(d);return}if(s()){let e=s();c(null),y(e);return}if(a()){let e=a();o(null),y(e);return}let f=l?.querySelector(`[aria-label='Reply to note']`);f&&(f.value=``,f.style.height=`34px`,f.scrollTop=0,f.style.overflowY=`hidden`),u(``),e.onClose()}});let x=(e,t)=>{e.preventDefault(),e.stopPropagation(),v.add(e.currentTarget),t()},S=(e,t)=>{e.stopPropagation(),!v.delete(e.currentTarget)&&t()};var C=X(`div`,{class:`msr:flex msr:min-h-0 msr:flex-1 msr:flex-col`}),w=X(`div`,{class:`msr:min-h-0 msr:flex-1 msr:overflow-y-auto msr:px-1 msr:pb-1`,"data-mesurer-annotation-thread-history":`true`}),T=X(`div`,{class:`msr:whitespace-pre-wrap msr:break-words msr:px-2 msr:py-2 msr:text-[12px] msr:leading-[1.45]`}),E=X(`div`,{class:`msr:border-t msr:border-ink-100 msr:px-1 msr:pt-2`});return Z(C,w),Z(C,E),Z(w,T),Q(T,()=>e.annotation.note),Q(w,Y(_o,{get each(){return p()},keyed:!0,children:l=>(()=>{var u=X(`div`,{class:`msr:mt-3 msr:rounded-[5px] msr:px-2 msr:py-1.5`}),d=X(`div`,{class:`msr:flex msr:items-center msr:gap-1 msr:text-[11px] msr:text-ink-500`}),f=X(`span`,{class:`msr:flex-1`}),p=ec(`You · `),m=X(`button`,{type:`button`,onPointerDown:e=>x(e,()=>o(a()===l.id?null:l.id)),onClick:e=>S(e,()=>o(a()===l.id?null:l.id))});return Z(u,d),Z(d,f),Z(d,m),Z(f,p),Q(f,()=>new Date(l.createdAt).toLocaleString(),null),Z(m,ec(`•••`)),ic(()=>e=>g.set(l.id,e),m),Q(u,Y(K,{get when(){return t()===l.id},get fallback(){var e=X(`div`,{class:`msr:whitespace-pre-wrap msr:break-words msr:py-1 msr:text-[12px] msr:leading-[1.45]`});return Q(e,()=>l.text),e},get children(){var t=X(`textarea`,{"aria-label":`Edit reply`,class:`msr:mt-1 msr:box-border msr:min-h-[34px] msr:max-h-32 msr:w-full msr:resize-y msr:rounded-[5px] msr:border msr:border-ink-200 msr:bg-[var(--msr-surface)] msr:px-2 msr:py-1.5 msr:text-[12px] msr:text-[var(--msr-content)]`,onInput:e=>i(e.currentTarget.value),onKeyDown:t=>{t.stopPropagation(),t.key===`Enter`&&!t.shiftKey&&!t.isComposing&&(t.preventDefault(),r().trim()&&e.runtime.updateAnnotationReply(e.annotation.id,l.id,r()),n(null),y(l.id))}});return q(()=>r(),(e,n)=>{$(t,`value`,e,n)}),t}}),null),Q(u,Y(K,{get when(){return a()===l.id},get children(){var t=X(`div`,{class:`msr:flex msr:gap-2 msr:text-[11px]`}),r=X(`button`,{type:`button`,onPointerDown:t=>x(t,()=>{i(l.text),n(l.id),o(null),queueMicrotask(()=>e.panelElement()?.querySelector(`[aria-label='Edit reply']`)?.focus())}),onClick:t=>S(t,()=>{i(l.text),n(l.id),o(null),queueMicrotask(()=>e.panelElement()?.querySelector(`[aria-label='Edit reply']`)?.focus())})}),a=X(`button`,{type:`button`,onPointerDown:e=>x(e,()=>{c(l.id),o(null)}),onClick:e=>S(e,()=>{c(l.id),o(null)})});return Z(t,r),Z(t,a),Z(r,ec(`Edit`)),Z(a,ec(`Delete`)),t}}),null),Q(u,Y(K,{get when(){return s()===l.id},get children(){var t=X(`div`,{class:`msr:flex msr:items-center msr:gap-2 msr:text-[11px]`,role:`group`,"aria-label":`Confirm delete reply`}),n=X(`span`),r=X(`button`,{type:`button`,onPointerDown:e=>x(e,()=>{c(null),y(l.id)}),onClick:e=>S(e,()=>{c(null),y(l.id)})}),i=X(`button`,{type:`button`,onPointerDown:t=>x(t,()=>{e.runtime.removeAnnotationReply(e.annotation.id,l.id),c(null),b()}),onClick:t=>S(t,()=>{e.runtime.removeAnnotationReply(e.annotation.id,l.id),c(null),b()})});return Z(t,n),Z(t,r),Z(t,i),Z(n,ec(`Delete this reply?`)),Z(r,ec(`Cancel`)),Z(i,ec(`Confirm`)),t}}),null),q(()=>({e:l.id,t:`More actions for reply ${l.id}`}),({e,t},n)=>{e!==n?.e&&$(u,`data-mesurer-annotation-reply`,e,n?.e),t!==n?.t&&$(m,`aria-label`,t,n?.t)}),u})()}),null),Q(E,Y(K,{get when(){return e.annotation.id},keyed:!0,children:t=>Y(Ew,{label:`Reply to note`,placeholder:`Reply to note`,onSubmit:n=>{e.annotation.id===t&&e.runtime.addAnnotationReply(t,n)},onDraftChange:u,get onEscape(){return e.onClose}})}),null),Q(E,Y(K,{get when(){return d()},get children(){var e=X(`div`,{class:`msr:px-1 msr:pt-1 msr:text-[10px] msr:text-ink-500`,role:`status`});return Z(e,ec(`Press Enter or Send to save, or click outside again to discard.`)),e}}),null),C}var Ow=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),kw=0,Aw=e=>e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0&&e!==`none`),jw=e=>{let t=e.ownerDocument.defaultView?.HTMLElement;return!!(t&&e instanceof t)},Mw=(e,t)=>{let n=e.style.getPropertyValue(`anchor-name`),r=e.style.getPropertyPriority(`anchor-name`),i=Aw(n);i.includes(t)||e.style.setProperty(`anchor-name`,[...i,t].join(`, `),r);let a=!1;return()=>{if(a)return;a=!0;let i=Aw(e.style.getPropertyValue(`anchor-name`)).filter(e=>e!==t);i.length?e.style.setProperty(`anchor-name`,i.join(`, `),e.style.getPropertyPriority(`anchor-name`)):n.trim()===`none`?e.style.setProperty(`anchor-name`,n,r):e.style.removeProperty(`anchor-name`)}},Nw=e=>{if(!e.length)return null;let t=Math.min(...e.map(e=>e.left)),n=Math.min(...e.map(e=>e.top)),r=Math.max(...e.map(e=>e.left+e.width)),i=Math.max(...e.map(e=>e.top+e.height));return{left:t,top:n,width:r-t,height:i-n}},Pw=(e,t,n,r,i=8)=>{let a=r.innerWidth-t-8,o=r.innerHeight-n-8,s=e.left+e.width+i,c=e.left-t-i;return{left:s+t<=r.innerWidth-8?s:c>=8?c:Ow(e.left+e.width-t,8,a),top:Ow(e.top,8,o)}},Fw=(e,t,n,r,i=8)=>{let a=r.innerWidth-t-8,o=Ow(e.left+e.width/2-t/2,8,a),s=e.top+e.height+i;if(s+n<=r.innerHeight-8)return{left:o,top:s};let c=e.top-n-i;return c>=8?{left:o,top:c}:Pw(e,t,n,r,i)};function Iw(e){let[t,n]=G(0),[r,i]=G(0),[a,o]=G(null),[s,c]=G(null),[l,u]=G(null),[d,f]=G({}),[p,m]=G(!1),[h,g]=G(``),[_,v]=G(!1),[y,b]=G(null),[x,S]=G(!1),[C,w]=G(null),[T,E]=G(null),D=`--mesurer-annotation-trigger-${++kw}`,O=null,k=e.initialTriggerFallback===`current-and-next`,A=null,j=null,M=null,N,P,F=null,I=null,L=!1,R=null,z=null,B=null,V=null,H=null,U=null,ee=new Map,W=()=>N?.ownerDocument.defaultView??window,te=null,ne=e=>{a()&&te?.pointerdown(e)},re=e=>{a()&&te?.click(e)},ie=e=>{a()&&te?.keydown(e)};W().document.addEventListener(`pointerdown`,ne,!0),W().document.addEventListener(`click`,re,!0),W().addEventListener(`keydown`,ie,!0),Dn(()=>{W().document.removeEventListener(`pointerdown`,ne,!0),W().document.removeEventListener(`click`,re,!0),W().removeEventListener(`keydown`,ie,!0)});let ae=Sl(W()),oe=`context-annotation-send`,se=()=>e.coordinateSpace===`viewport`,ce=e=>e?`native-anchor`:se()?`cached-delta`:`document`,le=e=>{if(se())return e;let t=W();return{left:e.left+t.scrollX,top:e.top+t.scrollY}},ue=()=>{let t=e.runtime.currentSelection();return{elements:[...t.elements],region:t.region?{...t.region}:null}},de=(e,t)=>e.elements.length!==t.elements.length||e.elements.some((e,n)=>e!==t.elements[n])?!1:e.region===t.region?!0:!e.region||!t.region?!1:e.region.left===t.region.left&&e.region.top===t.region.top&&e.region.width===t.region.width&&e.region.height===t.region.height,fe=()=>{F&&=(W().document.removeEventListener(`pointerdown`,F,!0),null)},pe=()=>{fe(),A=null,g(``),v(!1),m(!1),b(null)},me=()=>{let e=W();return!!(e.CSS?.supports(`anchor-name: --mesurer-annotation-trigger`)&&e.CSS.supports(`position-anchor: --mesurer-annotation-trigger`)&&e.CSS.supports(`left: anchor(left)`))},he=()=>{let t=e.runtime.currentSelection().elements;if(!t.length)return null;let n=e.runtime.hoveredElement();return t.find(e=>e===n)??t.find(e=>n&&e.contains(n))??t[0]},ge=()=>N?.parentElement,_e=()=>{let e=ge();return e?[...e.querySelectorAll(`[data-mesurer-annotation-trigger='true'], [data-mesurer-annotation-composer='true']`)].filter(e=>e!==P||z===null):[]},ve=e=>{let t=ge();return t?[...t.querySelectorAll(`[data-mesurer-annotation-id]`)].filter(t=>t.dataset.mesurerAnnotationId===e):[]},ye=e=>{let t=ee.get(e);t&&(t.scroll.release(),t.releaseAnchor?.(),ee.delete(e))},be=t=>{let n=e.runtime.annotation(t);return!n||n.anchor.kind!==`elements`||!e.runtime.annotationVisible(t)?null:n.resolvedTargets.find(({element:e})=>e?.isConnected&&!rv(e.ownerDocument))?.element??null},xe=e=>!!(jw(e)&&se()&&N&&me()&&e.getRootNode()===N.getRootNode()),Se=e=>{let t=be(e),n=ee.get(e);if(!t){n&&(ye(e),i(e=>e+1));return}let r=xe(t);if(n?.target===t&&!!n.anchorName===r){n.scroll.sync();return}ye(e);let a=t.ownerDocument.defaultView;if(a){if(r&&jw(t)){let n=`--mesurer-annotation-${++kw}`;ee.set(e,{target:t,anchorName:n,releaseAnchor:Mw(t,n),scroll:tm(a,t,()=>ve(e),{trackWindow:!1})})}else ee.set(e,{target:t,anchorName:null,releaseAnchor:null,scroll:tm(a,t,()=>ve(e),{trackWindow:se()})});i(e=>e+1)}},Ce=()=>{let t=new Set(e.runtime.annotations().map(e=>e.id));for(let e of ee.keys())t.has(e)||ye(e);for(let e of t)Se(e)},we=e=>{W().queueMicrotask(()=>Se(e))},Te=()=>{W().queueMicrotask(()=>{Ce();for(let e of ee.values())e.anchorName||e.scroll.rebase()})};e.initialTriggerFallback&&(O=he());let Ee=()=>{V?.release(),V=null,B?.(),B=null,R=null,z=null},De=e=>!!(jw(e)&&se()&&N&&e!==O&&me()&&e.getRootNode()===N.getRootNode()),Oe=()=>{let e=he();if(e&&rv(e.ownerDocument)){Ee();return}O&&e!==O&&(O=null);let t=R,n=!!(e?.isConnected&&De(e)),r=z===e;if(e===R&&e?.isConnected&&n===r){V?.sync();return}let i=e===t?D:`--mesurer-annotation-trigger-${++kw}`;if(Ee(),!e?.isConnected)return;R=e;let a=e.ownerDocument.defaultView;if(a){if(n&&jw(e)){B=Mw(e,i),z=e,D=i,V=tm(a,e,_e,{trackWindow:!1});return}D=i,V=tm(a,e,_e,{trackWindow:se()})}},ke=e=>{if(H?.disconnect(),H=null,!e?.isConnected)return;let t=e.ownerDocument.defaultView;t&&(H=new t.ResizeObserver(()=>{i(e=>e+1)}),H.observe(e))},Ae=()=>{let e=W();U!==e&&(U?.removeEventListener(`resize`,je),U=e,U.addEventListener(`resize`,je,{passive:!0}))};function je(){i(e=>e+1)}let Me=()=>{let t=e.rendererRoot;return t?[...t.querySelectorAll(`[data-mesurer-motion-surface='true']`)].flatMap(e=>{if(!e.isConnected)return[];let t=e.getBoundingClientRect();return t.width<=0||t.height<=0?[]:[{left:t.left,top:t.top,width:t.width,height:t.height}]}):[]},Ne=e.rendererRoot,Pe=Ne?.ownerDocument.defaultView,Fe=Pe?.MutationObserver,Ie=Pe?.Element,Le=`[data-mesurer-motion-surface='true']`,Re=Fe&&Ie?new Fe(e=>{let t=e=>e instanceof Ie&&(e.matches(Le)||!!e.querySelector(Le));e.some(e=>e.type===`attributes`?e.target instanceof Ie&&e.target.matches(Le):e.target instanceof Ie&&e.target.closest(Le)?!0:[...e.addedNodes,...e.removedNodes].some(t))&&je()}):null;Ne&&Re&&Re.observe(Ne,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`hidden`]});let ze=he();ke(ze);let Be=e.runtime.subscribe(()=>en(()=>{let t=e.runtime.selectGestureActive();p()&&t?(k=!0,pe()):p()&&A!==null&&!de(A,ue())&&(O=he(),k=!1,pe());let r=he(),i=r!==ze;i&&(ze=r,ke(ze),k&&(k=!1,O=r)),Oe(),(i||r&&rv(r.ownerDocument))&&je(),n(e=>e+1),Te()}));Oe(),W().queueMicrotask(Ce),Dn(()=>{H?.disconnect(),H=null,fe(),U?.removeEventListener(`resize`,je),U=null,Re?.disconnect(),Ee();for(let e of ee.keys())ye(e);Be()});let Ve=lo(()=>(t(),e.runtime.currentSelection())),He=lo(()=>(t(),e.runtime.annotations().filter(t=>e.runtime.annotationVisible(t.id)))),Ue=lo(()=>{let e=a();return e?He().find(t=>t.id===e)??null:null}),We=lo(()=>s()??l()??a()),Ge=e=>He().findIndex(t=>t.id===e)+1,Ke=lo(()=>{t(),r();let n=We();if(!n||!e.runtime.annotationVisible(n))return[];let i=e.runtime.annotation(n);if(!i)return[];if(i.anchor.kind===`region`)return[{...i.anchor.rect}];let a=i.resolvedTargets.flatMap(({element:e})=>{if(!e?.isConnected)return[];let t=qu(e);return[{left:t.left,top:t.top,width:t.width,height:t.height}]});if(a.length)return a;let o=e.runtime.annotationRect(n);return o?[{...o}]:[]}),qe=()=>Ve().elements.length>0||Ve().region!==null,Je=()=>{t();let e=A;return e!==null&&de(e,ue())},Ye=lo(()=>{let e=Ve(),t=e.elements.filter(e=>e.isConnected).map(e=>{let t=qu(e);return{left:t.left,top:t.top,width:t.width,height:t.height}});return e.region&&t.push({...e.region}),t}),Xe=lo(()=>Nw(Ye())),Ze=e=>e.anchor.kind===`elements`?`${e.anchor.targets.length} selected ${e.anchor.targets.length===1?`element`:`elements`}`:`Selected region`,Qe=lo(()=>{r();let t=e.runtime.currentSelection().elements;if(!t.length)return null;let n=e.runtime.hoveredElement();return t.find(e=>e===n)??t.find(e=>n&&e.contains(n))??t[0]}),$e=()=>{r();let e=Qe();if(!e?.isConnected)return null;let t=qu(e),n={left:t.left,top:t.top,width:t.width,height:t.height},i=W(),a=[...en(et).values()].map(e=>({left:e.left,top:e.top,width:24,height:24})),[o]=Tw([{id:`selection-note-trigger`,rect:n}],{width:i.innerWidth,height:i.innerHeight},{obstacles:[...a,...Me()],maxShiftRings:Math.ceil(Math.max(i.innerWidth,i.innerHeight)/28),viewportAware:!0}),s=o?.left??Ow(n.left+n.width+6,4,i.innerWidth-24-4),c=o?.top??Ow(n.top,4,i.innerHeight-24-4),l=z===e,u=se()&&!l;return{left:l||u?s:s+i.scrollX,top:l||u?c:c+i.scrollY,anchorX:s-n.left,anchorY:c-n.top,nativeAnchor:l,viewportOwned:u}},et=lo(()=>{t(),r();let n=W(),i=He().flatMap(t=>{let n=e.runtime.annotationRect(t.id);return n?[{id:t.id,rect:n}]:[]});return new Map(Tw(i,{width:n.innerWidth,height:n.innerHeight},{obstacles:Ye()}).map(e=>[e.id,e]))}),tt=e=>et().get(e)??null,nt=(e,t)=>{r();let n=ee.get(e);if(!n?.anchorName||!n.target.isConnected)return{...le(t),nativeAnchor:!1};let i=qu(n.target);return{...t,nativeAnchor:!0,anchorName:n.anchorName,anchorX:t.left-i.left,anchorY:t.top-i.top}},rt=()=>{let e=Xe(),t=W();return e?Fw(e,256,160,t):{left:8,top:8}},it=()=>{r();let e=rt(),t=Qe();if(!t?.isConnected||z!==t)return{...le(e),nativeAnchor:!1};let n=qu(t);return{...e,nativeAnchor:!0,anchorName:D,anchorX:e.left-n.left,anchorY:e.top-n.top}},at=(e,t)=>{let n=W(),r=et(),i=r.get(e);if(!i)return Pw(t,272,176,n);let a=n.innerWidth-272-8,o=n.innerHeight-176-8,s=[...r.values()].map(e=>({left:e.left,top:e.top,width:24,height:24})),c=(e,t)=>Math.max(0,Math.min(e.left+e.width,t.left+t.width)-Math.max(e.left,t.left))*Math.max(0,Math.min(e.top+e.height,t.top+t.height)-Math.max(e.top,t.top)),l=new Set,u=[];for(let e of[{left:i.left+24+8,top:i.top},{left:i.left-272-8,top:i.top},{left:i.left,top:i.top+24+8},{left:i.left,top:i.top-176-8}]){let t={left:Ow(e.left,8,a),top:Ow(e.top,8,o)},n=`${t.left}:${t.top}`;l.has(n)||(l.add(n),u.push(t))}return u.map((e,n)=>{let r={...e,width:272,height:176};return{candidate:e,markerOverlap:s.reduce((e,t)=>e+c(r,t),0),targetOverlap:c(r,t),index:n}}).sort((e,t)=>e.markerOverlap-t.markerOverlap||e.targetOverlap-t.targetOverlap||e.index-t.index)[0]?.candidate??Pw(t,272,176,n)},ot=t=>{let n=e.runtime.annotationRect(t);if(!n)return{left:8,top:8};let r=d()[t];return r?{left:n.left+r.left,top:n.top+r.top}:at(t,n)},st=t=>{W().queueMicrotask(()=>{let n=e.runtime.annotationRect(t);n&&f(e=>{if(e[t])return e;let r=at(t,n);return{...e,[t]:{left:r.left-n.left,top:r.top-n.top}}})})},ct=e=>nt(e,ot(e)),lt=e=>{k=!1,A=null,m(!1),Se(e),st(e),o(e),w(null),we(e)},ut=e=>{e.stopPropagation();let t=e.currentTarget.ownerDocument.defaultView?.HTMLButtonElement,n=e.composedPath().find(e=>t&&e instanceof t);!t||!(n instanceof t)||!e.currentTarget.contains(n)||Il(n,e.pointerId)},dt=(t,n)=>{let r=t.currentTarget.ownerDocument.defaultView?.Element,i=t.target;if(t.button!==0||r&&i instanceof r&&i.closest(`button`))return;let a=t.currentTarget.parentElement;if(!a)return;let o=a.getBoundingClientRect(),s=W(),c=s.document.documentElement,l=c.style.userSelect;c.style.setProperty(`user-select`,`none`,`important`),j={surfaceId:n,pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,originLeft:o.left,originTop:o.top,width:o.width,height:o.height},E(n),t.preventDefault(),t.stopPropagation();let u=t=>{if(!j||t.pointerId!==j.pointerId)return;let r=j,i=Math.max(8,s.innerWidth-r.width-8),a=Math.max(8,s.innerHeight-r.height-8),o={left:Ow(r.originLeft+t.clientX-r.startX,8,i),top:Ow(r.originTop+t.clientY-r.startY,8,a)},c=e.runtime.annotationRect(n);c&&f(e=>({...e,[n]:{left:o.left-c.left,top:o.top-c.top}}))},d=e=>{!j||e.pointerId!==t.pointerId||(c.style.userSelect=l,s.removeEventListener(`pointermove`,u),s.removeEventListener(`pointerup`,d),s.removeEventListener(`pointercancel`,d),j=null,E(null),M=null)};s.addEventListener(`pointermove`,u),s.addEventListener(`pointerup`,d),s.addEventListener(`pointercancel`,d),M=()=>{c.style.userSelect=l,s.removeEventListener(`pointermove`,u),s.removeEventListener(`pointerup`,d),s.removeEventListener(`pointercancel`,d),E(null)}};Dn(()=>{M?.(),M=null,j=null});let ft=async(e,t)=>{if(!x()){S(!0),w(null);try{await e(),w(t)}catch(e){w(e instanceof Error?e.message:String(e))}finally{S(!1)}}},pt=pe,mt=()=>{qe()&&(k=!1,A=ue(),g(``),v(!1),b(null),w(null),o(null),m(!0),F=e=>{let t=ge()?.querySelector(`[data-mesurer-annotation-composer='true']`),n=W().Node;if(!(t&&n&&e.target instanceof n&&t.contains(e.target))){if(h().trim()&&!y()){b(`Press Enter or Send to save, or Escape to discard.`);return}ht()}},W().document.addEventListener(`pointerdown`,F,!0),W().queueMicrotask(()=>V?.sync()))},ht=()=>{let e=p();A!==null&&!de(A,ue())?(O=he(),k=!1,Oe(),je()):e&&(k=!1),pt()},gt=()=>{p()&&(k=!0,pt())},_t=()=>{if(!(!h().trim()||x()))try{let t=e.runtime.addSelectionAnnotation(h());k=!1,A=null,g(``),v(!1),b(null),m(!1),fe(),Se(t.id),st(t.id),o(t.id),w(null),we(t.id)}catch(e){b(e instanceof Error?e.message:String(e))}},vt={openNoteComposer:mt,closeNoteComposer:ht,abandonNoteComposer:gt,openAnnotation:lt};return e.onController?.(vt),Dn(()=>e.onController?.(null)),[(()=>{var e=X(`span`,{"aria-hidden":`true`,style:{display:`none`}});return ic(()=>e=>{N=e,Ae(),Oe()},e),e})(),Y(K,{get when(){return J(()=>Ve().elements.length>0)()&&!p()},get children(){return Y(K,{get when(){return Qe()},keyed:!0,children:e=>Y(K,{get when(){return $e()},children:e=>(()=>{var t=X(`button`,{type:`button`,"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-trigger":`true`,"aria-label":`Annotate selection`,title:`Annotate selection`,class:`msr:pointer-events-auto msr:z-[95] msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border msr:border-ink-200 msr:bg-white msr:text-black msr:outline-none msr:hover:bg-ink-50 msr:focus-visible:border-[#0d99ff]`,onPointerDown:e=>{e.stopPropagation(),I=e.pointerId,L=!1,Il(e.currentTarget,e.pointerId)},onPointerMove:e=>{if(I!==e.pointerId)return;let t=e.currentTarget.getBoundingClientRect();L=e.clientX<t.left||e.clientX>t.right||e.clientY<t.top||e.clientY>t.bottom},onPointerUp:e=>{if(e.stopPropagation(),I===e.pointerId){let t=e.currentTarget.getBoundingClientRect();L=e.clientX<t.left||e.clientX>t.right||e.clientY<t.top||e.clientY>t.bottom,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),I=null}},onPointerCancel:e=>{e.stopPropagation(),L=!0,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),I===e.pointerId&&(I=null)},onClick:e=>{if(e.stopPropagation(),L){L=!1;return}mt()}});return ic(()=>e=>{P=e,V?.sync()},t),Q(t,Y(Qm,{size:14})),q(()=>({e:se()?`viewport`:`document`,t:ce(e().nativeAnchor),a:{position:e().nativeAnchor||e().viewportOwned?`fixed`:`absolute`,left:e().nativeAnchor?`calc(anchor(left) + ${e().anchorX}px)`:`${e().left}px`,top:e().nativeAnchor?`calc(anchor(top) + ${e().anchorY}px)`:`${e().top}px`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":e().nativeAnchor?D:void 0,"z-index":`2147483647`}}),({e,t:n,a:r},i)=>{e!==i?.e&&$(t,`data-mesurer-context-coordinate-space`,e,i?.e),n!==i?.t&&$(t,`data-mesurer-annotation-scroll-mode`,n,i?.t),r!==i?.a&&$(t,`style`,r,i?.a)}),t})()})})}}),Y(K,{get when(){return J(()=>!!(p()&&Je()))()?Xe():p()&&Je()},get children(){return Y(K,{get when(){return it()},children:e=>(()=>{var t=X(`div`,{"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-composer":`true`,class:`mesurer-menu-surface msr:pointer-events-auto msr:z-[95] msr:w-64 msr:max-w-[calc(100vw-16px)] msr:rounded-lg msr:border msr:border-ink-200 msr:bg-white msr:p-2 msr:text-black`,onPointerDown:ut,onClick:e=>e.stopPropagation()}),n=X(`div`,{class:`msr:relative`}),r=X(`textarea`,{autofocus:!0,rows:1,"aria-label":`Note`,placeholder:`Add a note`,onInput:e=>{let t=e.currentTarget;g(t.value),b(null),t.style.height=`auto`,t.style.paddingRight=`36px`,t.style.paddingBottom=`6px`;let n=t.scrollHeight>34;t.style.paddingRight=n?`8px`:`36px`,t.style.paddingBottom=n?`32px`:`6px`,v(n),t.style.height=`${Math.min(128,Math.max(34,t.scrollHeight))}px`,t.style.overflowY=t.scrollHeight>128?`auto`:`hidden`},onKeyDown:e=>{if(e.stopPropagation(),e.key===`Enter`&&!e.shiftKey&&!e.isComposing){e.preventDefault(),_t();return}e.key===`Escape`&&(e.preventDefault(),ht())},class:`msr:block msr:box-border msr:min-h-[34px] msr:max-h-32 msr:w-full msr:resize-none msr:rounded-[7px] msr:border msr:border-ink-200 msr:px-2 msr:py-1.5 msr:text-[12px] msr:leading-5 msr:outline-none msr:placeholder:text-ink-400 msr:focus:border-[#0d99ff]`,style:{height:`34px`,"padding-right":`36px`,"padding-bottom":`6px`,"overflow-y":`hidden`,"overflow-wrap":`anywhere`,"word-break":`break-word`,background:`var(--msr-surface)`,color:`var(--msr-content)`}}),i=X(`button`,{type:`button`,"aria-label":`Add note`,title:`Add note · Enter`,"data-mesurer-annotation-send":`true`,onPointerDown:e=>e.stopPropagation(),onMouseEnter:()=>h().trim()&&ae.onTooltipEnter(oe),onMouseLeave:()=>ae.onTooltipLeave(),onFocus:()=>h().trim()&&ae.onTooltipEnter(oe),onBlur:()=>ae.onTooltipLeave(),onClick:_t});return Z(t,n),Z(n,r),Z(n,i),ic(()=>e=>W().queueMicrotask(()=>e.focus()),r),Q(i,Y($m,{size:16,class:`mesurer-send-icon`}),null),Q(i,Y(xl,{label:`Add note`,shortcut:`Enter`,get visible(){return ae.visibleTooltipId()===oe},get instant(){return ae.tooltipInstant()},class:`msr:z-10`}),null),Q(t,Y(K,{get when(){return y()},children:e=>(()=>{var t=X(`div`,{class:`msr:mt-1.5 msr:px-1 msr:text-[10px] msr:text-red-600`});return Q(t,e),t})()}),null),q(()=>({e:se()?`viewport`:`document`,t:ce(e().nativeAnchor),a:{position:e().nativeAnchor||se()?`fixed`:`absolute`,left:e().nativeAnchor?`calc(anchor(left) + ${e().anchorX}px)`:`${e().left}px`,top:e().nativeAnchor?`calc(anchor(top) + ${e().anchorY}px)`:`${e().top}px`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":e().nativeAnchor?e().anchorName:void 0,"z-index":`2147483647`},o:h(),i:!h().trim()||x(),n:`msr:absolute msr:right-1.5 msr:outline-none msr:disabled:cursor-default ${_()?`msr:bottom-1.5`:`msr:top-1/2 msr:-translate-y-1/2`}`}),({e,t:n,a,o,i:s,n:c},l)=>{e!==l?.e&&$(t,`data-mesurer-context-coordinate-space`,e,l?.e),n!==l?.t&&$(t,`data-mesurer-annotation-scroll-mode`,n,l?.t),a!==l?.a&&$(t,`style`,a,l?.a),o!==l?.o&&$(r,`value`,o,l?.o),s!==l?.i&&$(i,`disabled`,s,l?.i),c!==l?.n&&$(i,`class`,c,l?.n)}),t})()})}}),Y(_o,{get each(){return Ke()},children:e=>{let t=()=>We(),n=()=>{let n=t();return n?nt(n,{left:e.left,top:e.top}):{...le({left:e.left,top:e.top}),nativeAnchor:!1}};var r=X(`div`,{"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-target-highlight":`true`,"aria-hidden":`true`,class:`msr:pointer-events-none`});return q(()=>({e:t()??void 0,t:ce(n().nativeAnchor),a:{position:n().nativeAnchor||se()?`fixed`:`absolute`,left:n().nativeAnchor?`calc(anchor(left) + ${n().anchorX}px)`:`${n().left}px`,top:n().nativeAnchor?`calc(anchor(top) + ${n().anchorY}px)`:`${n().top}px`,width:`${e.width}px`,height:`${e.height}px`,"box-sizing":`border-box`,border:`1.5px solid #0d99ff`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":n().nativeAnchor?n().anchorName:void 0,"z-index":`2147483645`}}),({e,t,a:n},i)=>{e!==i?.e&&$(r,`data-mesurer-annotation-id`,e,i?.e),t!==i?.t&&$(r,`data-mesurer-annotation-scroll-mode`,t,i?.t),n!==i?.a&&$(r,`style`,n,i?.a)}),r}}),Y(_o,{get each(){return He()},children:(e,t)=>{let n=()=>tt(e.id),r=()=>{let t=n();return t?nt(e.id,t):null},i=()=>We()===e.id,o=()=>We()!==null&&!i();return Y(K,{get when(){return r()},children:n=>(()=>{var r=X(`button`,{type:`button`,"data-mesurer-layer":`evidence`,"data-mesurer-annotation-marker":`true`,onPointerEnter:()=>{c(e.id),we(e.id)},onPointerLeave:()=>c(t=>t===e.id?null:t),onFocus:()=>{u(e.id),we(e.id)},onBlur:()=>u(t=>t===e.id?null:t),onPointerDown:t=>{t.preventDefault(),t.stopPropagation(),lt(e.id)},onPointerUp:e=>e.stopPropagation(),onClick:t=>{t.preventDefault(),t.stopPropagation(),lt(e.id)},class:`msr:pointer-events-auto msr:z-[94] msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:border-0 msr:bg-transparent msr:p-0 msr:outline-none`}),s=X(`span`,{"data-mesurer-annotation-badge":`true`,"aria-hidden":`true`,class:`msr:flex msr:h-5 msr:w-5 msr:items-center msr:justify-center msr:rounded-[6px] msr:border msr:text-[10px] msr:font-semibold msr:leading-none`});return Z(r,s),Q(s,()=>t()+1),q(()=>({e:e.id,t:t()+1,a:i()?`true`:void 0,o:o()?`true`:void 0,i:e.status??`open`,n:ce(n().nativeAnchor),s:se()?`viewport`:`document`,h:`Mesurer annotation ${t()+1}: ${e.note}`,r:e.note,d:a()===e.id?`true`:`false`,l:{position:n().nativeAnchor||se()?`fixed`:`absolute`,left:n().nativeAnchor?`calc(anchor(left) + ${n().anchorX}px)`:`${n().left}px`,top:n().nativeAnchor?`calc(anchor(top) + ${n().anchorY}px)`:`${n().top}px`,opacity:o()||e.status===`resolved`?`0.48`:`1`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":n().nativeAnchor?n().anchorName:void 0,transition:`opacity 150ms ease`,"z-index":`2147483647`},u:{border:e.status===`resolved`?`1px solid #8b919a`:`1px solid #0d99ff`,color:i()&&e.status!==`resolved`?`white`:e.status===`resolved`?`#747b84`:`#0d99ff`,background:i()&&e.status!==`resolved`?`#0d99ff`:`var(--msr-surface)`,transform:i()?`scale(1.2)`:`scale(1)`,"box-shadow":i()?`0 3px 10px rgba(13, 153, 255, 0.28)`:`0 1px 3px rgba(15, 23, 42, 0.12)`,transition:`transform 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease`,"font-variant-numeric":`tabular-nums`}}),({e,t,a:n,o:i,i:a,n:o,s:c,h:l,r:u,d,l:f,u:p},m)=>{e!==m?.e&&$(r,`data-mesurer-annotation-id`,e,m?.e),t!==m?.t&&$(r,`data-mesurer-annotation-number`,t,m?.t),n!==m?.a&&$(r,`data-mesurer-annotation-highlighted`,n,m?.a),i!==m?.o&&$(r,`data-mesurer-annotation-muted`,i,m?.o),a!==m?.i&&$(r,`data-mesurer-annotation-status`,a,m?.i),o!==m?.n&&$(r,`data-mesurer-annotation-scroll-mode`,o,m?.n),c!==m?.s&&$(r,`data-mesurer-context-coordinate-space`,c,m?.s),l!==m?.h&&$(r,`aria-label`,l,m?.h),u!==m?.r&&$(r,`title`,u,m?.r),d!==m?.d&&$(r,`aria-expanded`,d,m?.d),f!==m?.l&&$(r,`style`,f,m?.l),p!==m?.u&&$(s,`style`,p,m?.u)}),r})()})}}),Y(K,{get when(){return Ue()},children:t=>{let n=()=>ct(t().id),r=()=>Ge(t().id),i=!1,a=null,s=()=>{let e=a?.querySelector(`[aria-label='Reply to note']`);e&&(e.value=``,e.style.height=`34px`,e.scrollTop=0,e.style.overflowY=`hidden`),o(null),w(null)},l=()=>e.runtime.setAnnotationStatus(t().id,t().status===`resolved`?`open`:`resolved`);var d=X(`div`,{"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-panel":`true`,class:`mesurer-menu-surface msr:pointer-events-auto msr:z-[95] msr:flex msr:w-[272px] msr:max-h-[calc(100vh-16px)] msr:flex-col msr:rounded-[10px] msr:border msr:border-ink-200 msr:p-1.5`,onClick:e=>e.stopPropagation()}),p=X(`div`,{class:`msr:flex msr:h-7 msr:items-center msr:gap-1.5 msr:px-1`,"aria-label":`Drag annotation panel`,onPointerDown:e=>dt(e,t().id)}),m=X(`span`,{"data-mesurer-annotation-panel-badge":`true`,"aria-hidden":`true`,class:`msr:flex msr:h-[18px] msr:w-[18px] msr:items-center msr:justify-center msr:rounded-[5px] msr:text-[9px] msr:font-semibold msr:leading-none msr:text-white`,style:{background:`#0d99ff`,"font-variant-numeric":`tabular-nums`}}),h=X(`div`,{class:`msr:min-w-0 msr:flex-1`}),g=X(`div`,{class:`msr:text-[11px] msr:font-medium msr:text-ink-700`}),_=ec(`Note `),v=X(`div`,{class:`msr:text-[9px] msr:text-ink-500`}),y=X(`div`,{class:`msr:flex msr:items-center msr:gap-0.5`}),b=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,"aria-label":`Copy annotation context`,title:`Copy context`,onClick:()=>void ft(()=>e.onCopy({annotation:t().id}),`Copied`)}),S=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),i=!0,l()},onClick:()=>{if(i){i=!1;return}l()}}),E=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,"aria-label":`Delete annotation`,title:`Delete`,onClick:()=>{let n=t().id;e.runtime.removeAnnotation(n),f(e=>{let t={...e};return delete t[n],t}),ye(n),c(e=>e===n?null:e),u(e=>e===n?null:e),s()}}),D=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,"aria-label":`Close annotation`,title:`Close`,onClick:()=>{s()}});return Z(d,p),ic(()=>e=>{a=e},d),Z(p,m),Z(p,h),Z(p,y),Q(m,r),Z(h,g),Z(h,v),Z(g,_),Q(g,r,null),Q(v,()=>Ze(t()),null),Q(v,(()=>{var e=J(()=>!!t().replies?.length);return()=>e()?` · ${t().replies.length} replies`:``})(),null),Z(y,b),Z(y,S),Z(y,E),Z(y,D),Q(b,Y(Zm,{size:14})),Q(S,()=>t().status===`resolved`?`↶`:`✓`),Q(E,Y(eh,{size:14})),Q(D,Y(th,{size:14})),Q(d,Y(Dw,{get annotation(){return t()},get runtime(){return e.runtime},panelElement:()=>a,onGlobalHandlers:e=>{te=e},onClose:s}),null),Q(d,Y(K,{get when(){return C()},children:e=>(()=>{var t=X(`div`,{class:`msr:mt-1.5 msr:px-1 msr:text-[10px] msr:text-ink-500`,role:`status`});return Q(t,e),t})()}),null),q(()=>({e:t().id,t:ce(n().nativeAnchor),a:se()?`viewport`:`document`,o:{position:n().nativeAnchor||se()?`fixed`:`absolute`,left:n().nativeAnchor?`calc(anchor(left) + ${n().anchorX}px)`:`${n().left}px`,top:n().nativeAnchor?`calc(anchor(top) + ${n().anchorY}px)`:`${n().top}px`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":n().nativeAnchor?n().anchorName:void 0,"z-index":`2147483646`,background:`var(--msr-surface)`,color:`var(--msr-content)`,"box-shadow":`var(--msr-shadow-floating)`},i:{cursor:T()===t().id?`grabbing`:`grab`},n:x(),s:t().status===`resolved`?`Reopen note`:`Resolve note`,h:t().status===`resolved`?`Reopen`:`Resolve`}),({e,t,a:n,o:r,i,n:a,s:o,h:s},c)=>{e!==c?.e&&$(d,`data-mesurer-annotation-id`,e,c?.e),t!==c?.t&&$(d,`data-mesurer-annotation-scroll-mode`,t,c?.t),n!==c?.a&&$(d,`data-mesurer-context-coordinate-space`,n,c?.a),r!==c?.o&&$(d,`style`,r,c?.o),i!==c?.i&&$(p,`style`,i,c?.i),a!==c?.n&&$(b,`disabled`,a,c?.n),o!==c?.s&&$(S,`aria-label`,o,c?.s),s!==c?.h&&$(S,`title`,s,c?.h)}),d}})]}function Lw(e){let t=null;return Dn(Bv(e.ownerWindow,()=>{t?.abandonNoteComposer()})),Y(Iw,{get runtime(){return e.runtime},get onCopy(){return e.onCopy},get initialTriggerFallback(){return e.initialTriggerFallback},get coordinateSpace(){return e.coordinateSpace},get rendererRoot(){return e.rendererRoot},onController:n=>{t=n,e.onController?.(n)}})}var Rw={border:`0`,borderRadius:`5px`,background:`transparent`,color:`var(--msr-content)`,cursor:`pointer`,font:`inherit`};function zw(e){let[t,n]=G(0),[r,i]=G(``),[a,o]=G(`open`),[s,c]=G(null),[l,u]=G({}),d=null,f=null;Dn(e.runtime.subscribe(()=>{n(e=>e+1);let t=en(s);t&&!e.runtime.annotations().some(e=>e.id===t)&&(e.onCancel(),c(null))}));let p=lo(()=>(t(),e.runtime.annotations().map((e,t)=>({annotation:e,index:t})).filter(({annotation:e})=>a()===`all`||(e.status??`open`)===a()).filter(({annotation:e})=>{let t=r().trim().toLocaleLowerCase();return!t||[e.note,...(e.replies??[]).map(({text:e})=>e)].some(e=>e.toLocaleLowerCase().includes(t))}).sort((e,t)=>{let n=e=>e.replies?.at(-1)?.createdAt??e.createdAt;return n(t.annotation)-n(e.annotation)||e.index-t.index}).map(({annotation:e})=>e))),m=()=>{let t=(e.rendererRoot?.querySelector(`[data-mesurer-tool-id="context.notes"]`))?.getBoundingClientRect(),n=e.ownerWindow,r=t?Math.max(8,Math.min(n.innerWidth-288-8,t.left)):Math.max(8,n.innerWidth-288-16),i=t?Math.max(8,Math.min(n.innerHeight-280,t.bottom+8)):72;return{left:`${r}px`,top:`${i}px`}},h=async t=>{c(t.id),u(e=>({...e,[t.id]:`Opening…`}));let n;try{n=await e.onReveal(t)}catch(e){n={status:`refused`,message:e instanceof Error?e.message:`This note could not be revealed.`}}n.status===`revealed`?(u(e=>{let n={...e};return delete n[t.id],n}),e.onOpenAnnotation(t.id)):n.status===`cancelled`?u(e=>{let n={...e};return delete n[t.id],n}):u(e=>({...e,[t.id]:n.message})),s()===t.id&&c(null)},g=t=>{let n=d;if(!n)return;d=null;let r=Math.hypot(t.clientX-n.x,t.clientY-n.y),i=e.runtime.annotations().find(e=>e.id===n.id);r>8||!i||(f=n.id,h(i))},_=()=>{e.onCancel(),e.onOpenChange(!1),e.rendererRoot?.querySelector(`button[data-mesurer-tool-id="context.notes"]`)?.focus()};e.ownerWindow.addEventListener(`pointerup`,g,!0),Dn(()=>e.ownerWindow.removeEventListener(`pointerup`,g,!0));let v=t=>{if(t.key!==`Escape`||!e.open||e.rendererRoot?.querySelector(`[data-mesurer-annotation-panel='true']`))return;let n=t.target;if(n instanceof HTMLInputElement&&n.type===`search`&&n.value){n.value=``,n.dispatchEvent(new Event(`input`,{bubbles:!0})),t.preventDefault(),t.stopImmediatePropagation();return}t.stopPropagation(),t.stopImmediatePropagation(),t.preventDefault(),_()};return e.ownerWindow.addEventListener(`keydown`,v,!0),Dn(()=>e.ownerWindow.removeEventListener(`keydown`,v,!0)),Y(K,{get when(){return e.open},get children(){var t=X(`section`,{role:`dialog`,"aria-label":`Notes`,"data-mesurer-inspector-ui":`true`,"data-mesurer-notes-panel":`true`,onPointerDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation()}),c=X(`header`,{style:{display:`flex`,"align-items":`center`,gap:`8px`,padding:`10px 12px`,"border-bottom":`1px solid var(--msr-color-ink-100)`}}),u=X(`strong`,{style:{flex:`1`,"font-size":`12px`}}),g=X(`select`,{"aria-label":`Filter notes`,onChange:e=>{let t=e.currentTarget.value;(t===`open`||t===`resolved`||t===`all`)&&o(t),n(e=>e+1)},style:{border:`0`,background:`transparent`,color:`inherit`,"font-size":`11px`}}),v=X(`option`,{value:`open`}),y=X(`option`,{value:`resolved`}),b=X(`option`,{value:`all`}),x=X(`button`,{type:`button`,"aria-label":`Close Notes`,onClick:_}),S=X(`div`,{style:{padding:`8px 10px`}}),C=X(`input`,{type:`search`,"aria-label":`Search notes`,placeholder:`Search notes`,onInput:e=>i(e.currentTarget.value),style:{width:`100%`,"box-sizing":`border-box`,height:`30px`,padding:`0 8px`,border:`1px solid var(--msr-color-ink-200)`,"border-radius":`5px`,background:`var(--msr-surface-raised)`,color:`inherit`,"font-size":`11px`}});return Z(t,c),Z(t,S),Z(c,u),Z(c,g),Z(c,x),Q(c,Y(Qm,{size:14}),u),Z(u,ec(`Notes`)),Z(g,v),Z(g,y),Z(g,b),Z(v,ec(`Open`)),Z(y,ec(`Resolved`)),Z(b,ec(`All`)),Q(x,Y(th,{size:12})),Z(S,C),Q(t,Y(K,{get when(){return p().length},get fallback(){var e=X(`p`,{style:{padding:`18px 12px`,margin:`0`,"text-align":`center`,color:`var(--msr-color-ink-500)`}});return Q(e,(()=>{var e=J(()=>!!r().trim());return()=>e()?`No matching notes.`:J(()=>a()===`resolved`)()?`No resolved notes.`:a()===`open`?`No open notes.`:`No notes yet.`})()),e},get children(){var t=X(`ul`,{"aria-label":`Saved notes`,style:{margin:`0`,padding:`0`,"min-height":`0`,overflow:`auto`,"list-style":`none`}});return Q(t,Y(_o,{get each(){return p()},children:(t,n)=>{let r=t.anchor.kind===`elements`?t.anchor.targets.find(e=>e.viewport)?.viewport:void 0,i=(t.status??`open`)===`resolved`,a=e.runtime.annotation(t.id)?.resolvedTargets.some(({element:e})=>e?.isConnected)??!1,o=!!e.rendererRoot?.querySelector(`[data-mesurer-responsive-stage]`),c=r?o?a?``:`Target not found`:`Preview not open`:a||t.anchor.kind===`region`?``:`Target not found`;var u=X(`li`,{style:{padding:`8px 12px`,"border-top":`1px solid var(--msr-color-ink-100)`,opacity:i?`0.62`:`1`}}),p=X(`button`,{type:`button`,onPointerDown:e=>{d={id:t.id,x:e.clientX,y:e.clientY},f=null},onClick:()=>{if(f===t.id){f=null;return}h(t)}}),m=X(`span`,{style:{width:`100%`,overflow:`hidden`,display:`-webkit-box`,"-webkit-line-clamp":`2`,"-webkit-box-orient":`vertical`,"overflow-wrap":`anywhere`,"line-height":`16px`}}),g=X(`span`,{style:{color:`var(--msr-color-ink-500)`,"font-size":`10px`}}),_=ec(` `);return Z(u,p),Z(p,m),Z(p,g),Q(m,()=>t.note),Z(g,_),Q(g,()=>t.replies?.length??0,_),Q(g,()=>(t.replies?.length??0)===1?`reply`:`replies`,null),Q(g,()=>r?` · ${r.width} × ${r.height} preview`:``,null),Q(g,i?` · Resolved`:``,null),Q(g,c?` · ${c}`:``,null),Q(u,Y(K,{get when(){return l()[t.id]},get children(){var e=X(`span`,{role:`status`,style:{display:`block`,"margin-top":`4px`,color:`var(--msr-color-ink-500)`,"font-size":`10px`}});return Q(e,()=>l()[t.id]),e}}),null),q(()=>({e:t.id,t:`Note ${n()+1}: ${t.note}`,a:s()===t.id,o:{...Rw,display:`flex`,width:`100%`,"flex-direction":`column`,"align-items":`flex-start`,gap:`4px`,padding:`0`,"text-align":`left`}}),({e,t,a:n,o:r},i)=>{e!==i?.e&&$(p,`data-mesurer-note-id`,e,i?.e),t!==i?.t&&$(p,`aria-label`,t,i?.t),n!==i?.a&&$(p,`disabled`,n,i?.a),r!==i?.o&&$(p,`style`,r,i?.o)}),u}})),t}}),null),q(()=>({e:{position:`fixed`,...m(),width:`288px`,"max-height":`min(70vh, 560px)`,display:`flex`,"flex-direction":`column`,overflow:`hidden`,"box-sizing":`border-box`,"z-index":`2147483647`,background:`var(--msr-surface)`,color:`var(--msr-content)`,border:`1px solid var(--msr-color-ink-100)`,"border-radius":`9px`,"box-shadow":`var(--msr-shadow-floating)`,"font-family":`ui-sans-serif, system-ui, sans-serif`,"font-size":`12px`,"pointer-events":`auto`},t:a(),a:{...Rw,width:`24px`,height:`24px`},o:r()}),({e,t:n,a:r,o:i},a)=>{e!==a?.e&&$(t,`style`,e,a?.e),n!==a?.t&&$(g,`value`,n,a?.t),r!==a?.a&&$(x,`style`,r,a?.a),i!==a?.o&&$(C,`value`,i,a?.o)}),t}})}var Bw=`2147482950`,Vw=`2147483646`,Hw=`2147483647`;function Uw(e){let{ownerDocument:t,ownerWindow:n,pageTarget:r}=e,i=t.body;if(!(i&&!(r instanceof n.ShadowRoot)&&r.getRootNode()===t))return e.createInspectorMount();_f(vf,i);let a=t.createElement(`div`);a.dataset.mesurerInspectorUi=`true`,a.dataset.mesurerDocumentInspectorMount=`true`,a.dataset.theme=e.theme?.()??`system`;let o=e.subscribeTheme?.(e=>{a.dataset.theme=e})??(()=>void 0);Object.assign(a.style,{position:`absolute`,left:`0px`,top:`0px`,width:`0px`,height:`0px`,overflow:`visible`});let s=t.createElement(`style`);s.dataset.mesurerDocumentInspectorLayerStyle=`true`,s.textContent=`
|
|
2318
|
+
`)},{editModeTool:L,executeTool:R,leaveEditMode:z,runTool:B}=yw({host:n,getBuiltinController:()=>b,getModel:()=>y,arrangeActive:j,isBuiltinPluginId:gw,onPluginError:e.onPluginError}),V=e=>{D()&&[`arrange`,`edit`,`rulers`].includes(e)&&O(!1)},H=async()=>{if(A(`responsive`)){if(D()){O(!1);return}j()&&await z(`responsive-open`),y?.current.toolMode!==`select`&&y?.current.toolMode!==`text-inspector`&&await b?.run(`select`),b?.clearSelection(),O(!0)}},U=(e,t)=>{V(e.id),B(e,t)},ee=U,W=(t,n)=>{n.disabled?.()||(V(t.id),Promise.resolve(n.run()).catch(r=>{e.onPluginError?.(r,`${t.id}.${n.id}`)}))},te=async(t,n,r)=>{try{await n.set(r)}catch(r){e.onPluginError?.(r,`${t}.${n.id}`)}},ne=(e,t,n)=>{te(e,t,n)},re=async e=>{for(let t of n.settings()){if(e&&!e.has(t.id))continue;let n=v.get(t.id);if(n)for(let e of t.controls??[]){let r=n.get(e.id);r!==void 0&&await te(t.id,e,r)}}};return Nn(()=>{let t=!0,o=0,s=!1,c=Promise.resolve(),f=new Set,C=n,P=e,F=P.portalTarget??document.body,B=F.ownerDocument??document,V=B.defaultView??window,W=P.pageTarget??B.body,te=()=>{if(!y)throw Error(`Mesurer renderer model is unavailable for runtime bridge setup.`);return y},ne=()=>{let e=te().rendererRoot;if(!e?.isConnected)throw Error(`Mesurer renderer root is unavailable for runtime bridge setup.`);return e},ie=()=>{if(!b)throw Error(`Mesurer built-in controller is unavailable for runtime bridge setup.`);return b},ae=()=>te().current.settings.theme,oe=e=>{let t=ae();return e(t),te().subscribe(()=>{let n=ae();n!==t&&(t=n,e(n))})},se=()=>{let e=B.createElement(`div`);e.dataset.mesurerInspectorUi=`true`;let t=oe(t=>{e.dataset.theme=t});ne().append(e);let n=!1;return{element:e,dispose(){n||(n=!0,t(),e.remove())}}},ce=e=>dw({model:te(),ownerDocument:B,ownerWindow:V,uiRoot:F,pageTarget:W,persistenceKey:e?`${P.persistKey??`mesurer-plugin-settings`}:${e}:${V.location.origin}`:void 0}),le=B.createElement(`style`);le.dataset.mesurerPluginVisibility=`true`,le.dataset.mesurerInspectorUi=`true`,le.textContent=I(),F.append(le);let ue=P.persistKey?`${P.persistKey}:plugins`:pw,de=`${ue}:availability`,fe=new Map;try{let e=V.localStorage.getItem(de);if(e){let t=JSON.parse(e);if(t?.version===1||t?.version===2||t?.version===3){for(let[e,n]of Object.entries(t.enabled??{}))(t.version!==2||e!==`mesurer.codex`)&&fe.set(e,n);for(let[e,n]of Object.entries(t.state??{}))g.set(e,n)}}}catch(e){P.onPluginError?.(e,`plugin-registry-persistence`)}let pe=()=>{let e=Object.fromEntries([...u.keys()].map(e=>[e,C.has(e)])),t=Object.fromEntries(g);try{V.localStorage.setItem(de,JSON.stringify({version:3,enabled:e,state:t}))}catch(e){P.onPluginError?.(e,`plugin-registry-persistence`)}},me=()=>{o=0;try{V.localStorage.setItem(ue,JSON.stringify(C.state.serialize(`persist`)))}catch(e){P.onPluginError?.(e,`plugin-persistence`)}},he=()=>{V.clearTimeout(o),o=V.setTimeout(me,50)},ge=()=>{o&&(V.clearTimeout(o),me())},_e=()=>ge();V.addEventListener(`pagehide`,_e);let ve=C.subscribe(e=>{if(w(e=>e+1),le.textContent=I(),D()&&(j()||n.tools().some(e=>e.id===`rulers`&&(e.active?.()??!1)))&&O(!1),(e.reason===`state`||e.reason===`history`||e.reason===`remove`||e.reason===`replace`)&&he(),T()&&!s&&(e.reason===`load`||e.reason===`remove`||e.reason===`replace`)&&pe(),e.reason===`remove`&&e.pluginId?.startsWith(`mesurer.`)){let t=e.pluginId.slice(8);gw(t)&&t!==`responsive`&&b?.deactivate(t),t===`responsive`&&O(!1)}});P.onPluginHost?.(C);let ye=async(e,n=e.id)=>{if(!t)return!1;f.add(e);try{await C.load(e),d.delete(n)}catch(e){return t&&(d.set(n,e instanceof Error?e.message:String(e)),w(e=>e+1),P.onPluginError?.(e,n)),!1}finally{f.delete(e)}return t?!0:(C.plugin(e.id)===e&&C.remove(e.id),!1)},be=e=>ye(e),xe=e=>{for(let t of C.settings())!e.has(t.id)||v.has(t.id)||v.set(t.id,new Map((t.controls??[]).map(e=>[e.id,e.value()])))},Se=async e=>{if(!t||C.has(e.id))return C.has(e.id);let n=new Set(C.settings().map(e=>e.id)),r=new Set(C.describe().state.map(e=>e.id));try{let i=a(await e.create());if(!t)return!1;if(i.id!==e.id)throw Error(`Plugin registration ${e.id} created mismatched plugin ${i.id}.`);if(!await ye(i,e.id))return!1;let o=new Set(m.get(e.id)??e.settingsIds??[]);for(let e of C.settings())n.has(e.id)||o.add(e.id);m.set(e.id,o);let s=new Set(h.get(e.id)??[]);for(let e of C.describe().state)r.has(e.id)||s.add(e.id);h.set(e.id,s),xe(o);let c=g.get(e.id);return c&&(C.state.restore(c,`persist`),g.delete(e.id)),!0}catch(n){return t&&P.onPluginError?.(n,e.id),!1}},Ce=e=>{let t=h.get(e);if(!t?.size)return;let n=C.state.serialize(`persist`),r={};for(let e of t)Object.prototype.hasOwnProperty.call(n,e)&&(r[e]=n[e]);Object.keys(r).length&&g.set(e,r)},we=async(e,t=!0)=>C.has(e)?(await C.hook.emit(Cc,e),t?Ce(e):g.delete(e),C.remove(e)):!1,Te=async(e,t,n=!0)=>{let r=u.get(e);if(!(!r||_.has(e)||C.has(e)===t)){_.add(e),d.delete(e),w(e=>e+1);try{t?await Se(r):await we(e,n),s||pe()}finally{_.delete(e),w(e=>e+1)}}},Ee=e=>{let t=c.then(e,e);return c=t.catch(()=>void 0),t};x=(e,t)=>{Ee(async()=>{await Te(e,t)}).catch(t=>{d.set(e,t instanceof Error?t.message:String(t)),w(e=>e+1),P.onPluginError?.(t,e)})},S=()=>Ee(async()=>{s=!0;try{await re();let e=[...u.values()].sort((e,t)=>(e.order??0)-(t.order??0));for(let t of e){let e=p.has(t.id);!C.has(t.id)&&(g.delete(t.id),!e||!await Se(t))||(await re(m.get(t.id)),e?g.delete(t.id):await we(t.id))}}finally{s=!1}o&&V.clearTimeout(o),me(),pe()});let De=e=>{let t=y?.current;return t?e===`select`?t.toolMode===`select`:e===`xray`?t.xrayVisible:e===`color-picker`?t.colorPickerActive:e===`rulers`?t.rulersVisible:e===`text-inspector`?t.toolMode===`text-inspector`:e===`guides`?t.toolMode===`guides`:e===`settings`?t.settingsOpen:e===`responsive`&&D():!1},Oe=async e=>{if(M(e))return;if(e===`responsive`){H();return}if(D()&&e===`rulers`&&O(!1),e!==`settings`&&e!==`rulers`&&e!==`guides`&&j()&&(await z(`select-mode-builtin`),e===`select`||De(e)))return;let t=k(e);if(t){await R(t,{source:`builtin-command`,builtin:e});return}if(!A(e))return;let n=ie();if(e===`guides`&&j()&&De(`guides`)){await n.run(`select`);return}await n.run(e)};(async()=>{for(let e of l)await be(e);if(t&&(await be({id:`mesurer.runtime-bridge`,version:i,provides:[`runtime:solid`],setup(e){let t={ownerDocument:B,ownerWindow:V,portalTarget:F,pageTarget:W,rendererRoot:ne(),currentToolMode:()=>te().current.toolMode,currentToolbarMode:()=>j()?`edit`:`select`,theme:ae,subscribeTheme:oe,createWorkspaceRuntime:ce,createInspectorMount:se,createAnnotationRevealCoordinator:e=>Bd({root:ne(),ownerWindow:V,runtime:e,responsiveEnabled:()=>A(`responsive`),responsiveOpen:D,openResponsive:async()=>{D()||await H(),await new Promise(e=>V.requestAnimationFrame(()=>e()))},closeResponsive:async()=>{D()&&O(!1),await new Promise(e=>V.requestAnimationFrame(()=>e()))}})};e.service.provide(`runtime:solid`,t),Uy(e),tx(e,t),tw(e,t);for(let t of fw)e.command.register(_w(t),()=>Oe(t))}}),t)){for(let e of[...u.values()].sort((e,t)=>(e.order??0)-(t.order??0))){let n=fe.has(e.id)?fe.get(e.id)===!0:e.enabled!==!1;if(C.has(e.id)){n||await we(e.id);continue}if(n&&await Se(e),!t)return}v.clear();for(let e of C.settings())v.set(e.id,new Map((e.controls??[]).map(e=>[e.id,e.value()])));try{let e=V.localStorage.getItem(ue);if(e){let t=JSON.parse(e);C.state.restore(t,`persist`)}}catch(e){P.onPluginError?.(e,`plugin-persistence`)}t&&(E(!0),le.textContent=I(),P.onPluginsReady?.(C))}})();let ke=e=>{let t=e.key.toLowerCase(),n=e.metaKey||e.ctrlKey;return n&&!e.shiftKey&&!e.altKey&&t===`,`?`settings`:n||e.shiftKey||e.altKey?null:t===`s`?`select`:t===`a`?`text-inspector`:t===`g`?`guides`:t===`p`?`color-picker`:t===`x`?`xray`:t===`r`?`rulers`:t===`b`?`responsive`:null},Ae=e=>{if(Pl(e,V)||y?.current.settings.shortcutsEnabled===!1)return;let t=e.key.toLowerCase(),n=e.metaKey||e.ctrlKey;if(!n&&!e.shiftKey&&!e.altKey&&(t===`1`||t===`2`)){let n=L();if(t===`1`&&n?.active?.()){e.preventDefault(),e.stopImmediatePropagation(),ee(n,`toolbar-mode-shortcut`);return}if(t===`2`&&n&&!n.disabled?.()&&!n.active?.()){e.preventDefault(),e.stopImmediatePropagation(),ee(n,`toolbar-mode-shortcut`);return}}let r=ke(e);if(r===`responsive`){if(!A(`responsive`)){e.preventDefault(),e.stopImmediatePropagation();return}e.preventDefault(),e.stopImmediatePropagation(),e.repeat||Oe(`responsive`).catch(()=>void 0);return}if(r&&r!==`settings`&&j()){e.preventDefault(),e.stopImmediatePropagation(),Oe(r).catch(()=>void 0);return}if(r&&M(r)){e.preventDefault(),e.stopImmediatePropagation();return}let i=r?k(r):void 0;if(r&&i){e.preventDefault(),e.stopImmediatePropagation(),ee(i,{source:`builtin-shortcut`,builtin:r});return}if((t===`h`||t===`v`)&&M(`guides`)){e.preventDefault(),e.stopImmediatePropagation();return}if((t===`h`||t===`v`)&&k(`guides`)){e.preventDefault(),e.stopImmediatePropagation();return}let a=N().find(t=>t.shortcut&&!t.disabled?.()&&vw(e,t.shortcut));if(a){e.preventDefault(),e.stopImmediatePropagation(),U(a);return}if(n&&t===`z`&&(e.shiftKey?C.redo():C.undo())){e.preventDefault(),e.stopImmediatePropagation();return}(n&&t===`,`&&!A(`settings`)||t===`s`&&!A(`select`)||t===`a`&&!A(`text-inspector`)||t===`g`&&!A(`guides`)||(t===`h`||t===`v`)&&!A(`guides`)||t===`p`&&!A(`color-picker`)||t===`x`&&!A(`xray`)||t===`r`&&!A(`rulers`)||e.key===`Alt`&&!A(`distance`))&&(e.preventDefault(),e.stopImmediatePropagation())};return V.addEventListener(`keydown`,Ae,!0),()=>{t=!1;for(let e of f)C.cancelLoad(e);f.clear(),ge(),V.removeEventListener(`pagehide`,_e),V.removeEventListener(`keydown`,Ae,!0),ve(),le.remove(),y=null,b=null,x=()=>void 0,S=async()=>void 0,r&&C.dispose()}}),Y(m_,{runtime:{plugins:P,generalSections:F,version:()=>i,setEnabled:(e,t)=>x(e,t),update:ne,reset:async()=>{await S()}},get children(){return Y(Hv,{value:e=>{y=e},get children(){return Y(Ly,nc(e,{get pluginTools(){return N()},onPluginTool:e=>{U(e)},onPluginToolMenuItem:W,isBuiltinActionDisabled:M,onBuiltinController:e=>{b=e},get responsiveOpen(){return D()},responsiveShortcutsEnabled:()=>y?.current.settings.shortcutsEnabled!==!1,onResponsiveClose:()=>O(!1),onResponsiveToggle:()=>{H()},editSelectionHover:j}))}})}})}var xw=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),Sw=(e,t,n=0)=>!(e.left+e.width+n<=t.left||t.left+t.width+n<=e.left||e.top+e.height+n<=t.top||t.top+t.height+n<=e.top),Cw=(e,t,n,r,i)=>{let a=e.left+e.width,o=e.top+e.height,s=[{axis:`vertical`,space:t.width-a,points:[{left:a+r,top:e.top},{left:a+r,top:o-n}]},{axis:`vertical`,space:e.left,points:[{left:e.left-n-r,top:e.top},{left:e.left-n-r,top:o-n}]},{axis:`horizontal`,space:t.height-o,points:[{left:a-n,top:o+r},{left:e.left,top:o+r}]},{axis:`horizontal`,space:e.top,points:[{left:a-n,top:e.top-n-r},{left:e.left,top:e.top-n-r}]}];return i?s.sort((e,t)=>t.space-e.space):s},ww=(e,t,n)=>{let r=[];for(let i=0;i<=n;i+=1){let n=i*t;for(let t of e)for(let e of t.points){if(i===0){r.push(e);continue}t.axis===`vertical`?r.push({left:e.left,top:e.top+n},{left:e.left,top:e.top-n}):r.push({left:e.left+n,top:e.top},{left:e.left-n,top:e.top})}}return r};function Tw(e,t,n={}){let r=n.markerSize??24,i=n.markerGap??4,a=n.targetGap??6,o=n.targetClearance??2,s=n.viewportPadding??4,c=n.obstacles??[],l=Math.max(0,n.maxShiftRings??2),u=n.viewportAware??!1,d=r+i,f=Math.max(s,t.width-r-s),p=Math.max(s,t.height-r-s),m=[],h=e.map(e=>e.rect),g=[];for(let n of e){let e=new Set,_=[],v=Cw(n.rect,t,r,a,u);for(let t of ww(v,d,l)){let n=u?{left:xw(t.left,s,f),top:xw(t.top,s,p)}:t,r=`${n.left}:${n.top}`;e.has(r)||(e.add(r),_.push(n))}let y=_.filter(e=>{let t={...e,width:r,height:r};return h.every(e=>!Sw(t,e,o))&&c.every(e=>!Sw(t,e,i))}),b=y.find(e=>{let t={...e,width:r,height:r};return m.every(e=>!Sw(t,e,i))})??y.find(e=>{let t={...e,width:r,height:r};return m.every(e=>!Sw(t,e))})??y[0]??_[0]??{left:s,top:s};m.push({...b,width:r,height:r}),g.push({id:n.id,...b})}return g}function Ew(e){let[t,n]=G(``),[r,i]=G(!1),a,o=()=>{let r=t().trim();r&&(e.onSubmit(r),n(``),i(!1),e.onDraftChange?.(``),a&&(a.style.height=`34px`,a.scrollTop=0,a.style.overflowY=`hidden`,a.focus()))},s=()=>{n(``),i(!1),e.onDraftChange?.(``),a&&(a.style.height=`34px`,a.scrollTop=0,a.style.overflowY=`hidden`),e.onEscape?.()};var c=X(`div`,{class:`msr:relative msr:mt-2`}),l=X(`textarea`,{rows:1,class:`msr:block msr:box-border msr:min-h-[34px] msr:max-h-32 msr:w-full msr:resize-none msr:rounded-[5px] msr:border msr:border-ink-200 msr:px-2 msr:py-1.5 msr:text-[12px] msr:leading-5 msr:outline-none msr:placeholder:text-ink-400 msr:focus:border-[#0d99ff]`,onInput:t=>{let r=t.currentTarget;n(r.value),e.onDraftChange?.(r.value),r.style.height=`auto`;let a=r.scrollHeight>34;i(a),r.style.height=`${Math.min(128,Math.max(34,r.scrollHeight))}px`},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.stopPropagation(),e.preventDefault(),o()),e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),s())}}),u=X(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),o()},onClick:o});return Z(c,l),Z(c,u),ic(()=>e=>{a=e},l),Q(u,Y($m,{size:16,class:`mesurer-send-icon`})),q(()=>({e:e.label,t:e.placeholder,a:t(),o:{height:`34px`,"padding-right":r()?`8px`:`36px`,"padding-bottom":r()?`32px`:`6px`,"overflow-y":`auto`,"overflow-wrap":`anywhere`,background:`var(--msr-surface)`,color:`var(--msr-content)`},i:e.label===`Reply to note`?`Send reply`:e.label,n:`${e.label===`Reply to note`?`Send reply`:e.label} · Enter`,s:!t().trim(),h:`msr:absolute msr:right-1.5 msr:outline-none msr:disabled:opacity-40 ${r()?`msr:bottom-1.5`:`msr:top-1/2 msr:-translate-y-1/2`}`}),({e,t,a:n,o:r,i,n:a,s:o,h:s},c)=>{e!==c?.e&&$(l,`aria-label`,e,c?.e),t!==c?.t&&$(l,`placeholder`,t,c?.t),n!==c?.a&&$(l,`value`,n,c?.a),r!==c?.o&&$(l,`style`,r,c?.o),i!==c?.i&&$(u,`aria-label`,i,c?.i),a!==c?.n&&$(u,`title`,a,c?.n),o!==c?.s&&$(u,`disabled`,o,c?.s),s!==c?.h&&$(u,`class`,s,c?.h)}),c}function Dw(e){let[t,n]=G(null),[r,i]=G(``),[a,o]=G(null),[s,c]=G(null),[l,u]=G(``),[d,f]=G(!1),[p,m]=G([]),h=new Map,g=new Map,_=!1,v=new WeakSet;mo(()=>({id:e.annotation.id,replies:e.annotation.replies}),(e,t)=>{t&&e.id!==t.id&&(n(null),i(``),o(null),c(null),u(``),f(!1));let r=new Set,a=(e.replies??[]).map(e=>{r.add(e.id);let t=h.get(e.id);if(t)t.update(e);else{let[n,r]=G({...e});t={id:e.id,get text(){return n().text},get createdAt(){return n().createdAt},update:r},h.set(e.id,t)}return t});for(let e of h.keys())r.has(e)||h.delete(e);m(a)});let y=e=>{queueMicrotask(()=>g.get(e)?.focus())},b=()=>{queueMicrotask(()=>{let t=[...g.values()].find(e=>e.isConnected);t?t.focus():e.panelElement()?.querySelector(`[aria-label='Reply to note']`)?.focus()})};e.onGlobalHandlers({pointerdown:n=>{let i=e.panelElement();if(i&&n.composedPath().includes(i)){f(!1);return}if(!l().trim()&&!(t()&&r().trim())){e.onClose();return}n.preventDefault(),n.stopImmediatePropagation(),_=!0,d()?e.onClose():f(!0)},click:t=>{if(!_)return;_=!1;let n=e.panelElement();n&&t.composedPath().includes(n)||(t.preventDefault(),t.stopImmediatePropagation())},keydown:r=>{if(r.key!==`Escape`)return;let l=e.panelElement();r.preventDefault(),r.stopImmediatePropagation();let d=t();if(d){n(null),i(``),y(d);return}if(s()){let e=s();c(null),y(e);return}if(a()){let e=a();o(null),y(e);return}let f=l?.querySelector(`[aria-label='Reply to note']`);f&&(f.value=``,f.style.height=`34px`,f.scrollTop=0,f.style.overflowY=`hidden`),u(``),e.onClose()}});let x=(e,t)=>{e.preventDefault(),e.stopPropagation(),v.add(e.currentTarget),t()},S=(e,t)=>{e.stopPropagation(),!v.delete(e.currentTarget)&&t()};var C=X(`div`,{class:`msr:flex msr:min-h-0 msr:flex-1 msr:flex-col`}),w=X(`div`,{class:`msr:min-h-0 msr:flex-1 msr:overflow-y-auto msr:px-1 msr:pb-1`,"data-mesurer-annotation-thread-history":`true`}),T=X(`div`,{class:`msr:whitespace-pre-wrap msr:break-words msr:px-2 msr:py-2 msr:text-[12px] msr:leading-[1.45]`}),E=X(`div`,{class:`msr:border-t msr:border-ink-100 msr:px-1 msr:pt-2`});return Z(C,w),Z(C,E),Z(w,T),Q(T,()=>e.annotation.note),Q(w,Y(_o,{get each(){return p()},keyed:!0,children:l=>(()=>{var u=X(`div`,{class:`msr:mt-3 msr:rounded-[5px] msr:px-2 msr:py-1.5`}),d=X(`div`,{class:`msr:flex msr:items-center msr:gap-1 msr:text-[11px] msr:text-ink-500`}),f=X(`span`,{class:`msr:flex-1`}),p=ec(`You · `),m=X(`button`,{type:`button`,onPointerDown:e=>x(e,()=>o(a()===l.id?null:l.id)),onClick:e=>S(e,()=>o(a()===l.id?null:l.id))});return Z(u,d),Z(d,f),Z(d,m),Z(f,p),Q(f,()=>new Date(l.createdAt).toLocaleString(),null),Z(m,ec(`•••`)),ic(()=>e=>g.set(l.id,e),m),Q(u,Y(K,{get when(){return t()===l.id},get fallback(){var e=X(`div`,{class:`msr:whitespace-pre-wrap msr:break-words msr:py-1 msr:text-[12px] msr:leading-[1.45]`});return Q(e,()=>l.text),e},get children(){var t=X(`textarea`,{"aria-label":`Edit reply`,class:`msr:mt-1 msr:box-border msr:min-h-[34px] msr:max-h-32 msr:w-full msr:resize-y msr:rounded-[5px] msr:border msr:border-ink-200 msr:bg-[var(--msr-surface)] msr:px-2 msr:py-1.5 msr:text-[12px] msr:text-[var(--msr-content)]`,onInput:e=>i(e.currentTarget.value),onKeyDown:t=>{t.stopPropagation(),t.key===`Enter`&&!t.shiftKey&&!t.isComposing&&(t.preventDefault(),r().trim()&&e.runtime.updateAnnotationReply(e.annotation.id,l.id,r()),n(null),y(l.id))}});return q(()=>r(),(e,n)=>{$(t,`value`,e,n)}),t}}),null),Q(u,Y(K,{get when(){return a()===l.id},get children(){var t=X(`div`,{class:`msr:flex msr:gap-2 msr:text-[11px]`}),r=X(`button`,{type:`button`,onPointerDown:t=>x(t,()=>{i(l.text),n(l.id),o(null),queueMicrotask(()=>e.panelElement()?.querySelector(`[aria-label='Edit reply']`)?.focus())}),onClick:t=>S(t,()=>{i(l.text),n(l.id),o(null),queueMicrotask(()=>e.panelElement()?.querySelector(`[aria-label='Edit reply']`)?.focus())})}),a=X(`button`,{type:`button`,onPointerDown:e=>x(e,()=>{c(l.id),o(null)}),onClick:e=>S(e,()=>{c(l.id),o(null)})});return Z(t,r),Z(t,a),Z(r,ec(`Edit`)),Z(a,ec(`Delete`)),t}}),null),Q(u,Y(K,{get when(){return s()===l.id},get children(){var t=X(`div`,{class:`msr:flex msr:items-center msr:gap-2 msr:text-[11px]`,role:`group`,"aria-label":`Confirm delete reply`}),n=X(`span`),r=X(`button`,{type:`button`,onPointerDown:e=>x(e,()=>{c(null),y(l.id)}),onClick:e=>S(e,()=>{c(null),y(l.id)})}),i=X(`button`,{type:`button`,onPointerDown:t=>x(t,()=>{e.runtime.removeAnnotationReply(e.annotation.id,l.id),c(null),b()}),onClick:t=>S(t,()=>{e.runtime.removeAnnotationReply(e.annotation.id,l.id),c(null),b()})});return Z(t,n),Z(t,r),Z(t,i),Z(n,ec(`Delete this reply?`)),Z(r,ec(`Cancel`)),Z(i,ec(`Confirm`)),t}}),null),q(()=>({e:l.id,t:`More actions for reply ${l.id}`}),({e,t},n)=>{e!==n?.e&&$(u,`data-mesurer-annotation-reply`,e,n?.e),t!==n?.t&&$(m,`aria-label`,t,n?.t)}),u})()}),null),Q(E,Y(K,{get when(){return e.annotation.id},keyed:!0,children:t=>Y(Ew,{label:`Reply to note`,placeholder:`Reply to note`,onSubmit:n=>{e.annotation.id===t&&e.runtime.addAnnotationReply(t,n)},onDraftChange:u,get onEscape(){return e.onClose}})}),null),Q(E,Y(K,{get when(){return d()},get children(){var e=X(`div`,{class:`msr:px-1 msr:pt-1 msr:text-[10px] msr:text-ink-500`,role:`status`});return Z(e,ec(`Press Enter or Send to save, or click outside again to discard.`)),e}}),null),C}var Ow=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),kw=0,Aw=e=>e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0&&e!==`none`),jw=e=>{let t=e.ownerDocument.defaultView?.HTMLElement;return!!(t&&e instanceof t)},Mw=(e,t)=>{let n=e.style.getPropertyValue(`anchor-name`),r=e.style.getPropertyPriority(`anchor-name`),i=Aw(n);i.includes(t)||e.style.setProperty(`anchor-name`,[...i,t].join(`, `),r);let a=!1;return()=>{if(a)return;a=!0;let i=Aw(e.style.getPropertyValue(`anchor-name`)).filter(e=>e!==t);i.length?e.style.setProperty(`anchor-name`,i.join(`, `),e.style.getPropertyPriority(`anchor-name`)):n.trim()===`none`?e.style.setProperty(`anchor-name`,n,r):e.style.removeProperty(`anchor-name`)}},Nw=e=>{if(!e.length)return null;let t=Math.min(...e.map(e=>e.left)),n=Math.min(...e.map(e=>e.top)),r=Math.max(...e.map(e=>e.left+e.width)),i=Math.max(...e.map(e=>e.top+e.height));return{left:t,top:n,width:r-t,height:i-n}},Pw=(e,t,n,r,i=8)=>{let a=r.innerWidth-t-8,o=r.innerHeight-n-8,s=e.left+e.width+i,c=e.left-t-i;return{left:s+t<=r.innerWidth-8?s:c>=8?c:Ow(e.left+e.width-t,8,a),top:Ow(e.top,8,o)}},Fw=(e,t,n,r,i=8)=>{let a=r.innerWidth-t-8,o=Ow(e.left+e.width/2-t/2,8,a),s=e.top+e.height+i;if(s+n<=r.innerHeight-8)return{left:o,top:s};let c=e.top-n-i;return c>=8?{left:o,top:c}:Pw(e,t,n,r,i)};function Iw(e){let[t,n]=G(0),[r,i]=G(0),[a,o]=G(null),[s,c]=G(null),[l,u]=G(null),[d,f]=G({}),[p,m]=G(!1),[h,g]=G(``),[_,v]=G(!1),[y,b]=G(null),[x,S]=G(!1),[C,w]=G(null),[T,E]=G(null),D=`--mesurer-annotation-trigger-${++kw}`,O=null,k=e.initialTriggerFallback===`current-and-next`,A=null,j=null,M=null,N,P,F=null,I=null,L=!1,R=null,z=null,B=null,V=null,H=null,U=null,ee=new Map,W=()=>N?.ownerDocument.defaultView??window,te=null,ne=e=>{a()&&te?.pointerdown(e)},re=e=>{a()&&te?.click(e)},ie=e=>{a()&&te?.keydown(e)};W().document.addEventListener(`pointerdown`,ne,!0),W().document.addEventListener(`click`,re,!0),W().addEventListener(`keydown`,ie,!0),Dn(()=>{W().document.removeEventListener(`pointerdown`,ne,!0),W().document.removeEventListener(`click`,re,!0),W().removeEventListener(`keydown`,ie,!0)});let ae=Sl(W()),oe=`context-annotation-send`,se=()=>e.coordinateSpace===`viewport`,ce=e=>e?`native-anchor`:se()?`cached-delta`:`document`,le=e=>{if(se())return e;let t=W();return{left:e.left+t.scrollX,top:e.top+t.scrollY}},ue=()=>{let t=e.runtime.currentSelection();return{elements:[...t.elements],region:t.region?{...t.region}:null}},de=(e,t)=>e.elements.length!==t.elements.length||e.elements.some((e,n)=>e!==t.elements[n])?!1:e.region===t.region?!0:!e.region||!t.region?!1:e.region.left===t.region.left&&e.region.top===t.region.top&&e.region.width===t.region.width&&e.region.height===t.region.height,fe=()=>{F&&=(W().document.removeEventListener(`pointerdown`,F,!0),null)},pe=()=>{fe(),A=null,g(``),v(!1),m(!1),b(null)},me=()=>{let e=W();return!!(e.CSS?.supports(`anchor-name: --mesurer-annotation-trigger`)&&e.CSS.supports(`position-anchor: --mesurer-annotation-trigger`)&&e.CSS.supports(`left: anchor(left)`))},he=()=>{let t=e.runtime.currentSelection().elements;if(!t.length)return null;let n=e.runtime.hoveredElement();return t.find(e=>e===n)??t.find(e=>n&&e.contains(n))??t[0]},ge=()=>N?.parentElement,_e=()=>{let e=ge();return e?[...e.querySelectorAll(`[data-mesurer-annotation-trigger='true'], [data-mesurer-annotation-composer='true']`)].filter(e=>e!==P||z===null):[]},ve=e=>{let t=ge();return t?[...t.querySelectorAll(`[data-mesurer-annotation-id]`)].filter(t=>t.dataset.mesurerAnnotationId===e):[]},ye=e=>{let t=ee.get(e);t&&(t.scroll.release(),t.releaseAnchor?.(),ee.delete(e))},be=t=>{let n=e.runtime.annotation(t);return!n||n.anchor.kind!==`elements`||!e.runtime.annotationVisible(t)?null:n.resolvedTargets.find(({element:e})=>e?.isConnected&&!rv(e.ownerDocument))?.element??null},xe=e=>!!(jw(e)&&se()&&N&&me()&&e.getRootNode()===N.getRootNode()),Se=e=>{let t=be(e),n=ee.get(e);if(!t){n&&(ye(e),i(e=>e+1));return}let r=xe(t);if(n?.target===t&&!!n.anchorName===r){n.scroll.sync();return}ye(e);let a=t.ownerDocument.defaultView;if(a){if(r&&jw(t)){let n=`--mesurer-annotation-${++kw}`;ee.set(e,{target:t,anchorName:n,releaseAnchor:Mw(t,n),scroll:tm(a,t,()=>ve(e),{trackWindow:!1})})}else ee.set(e,{target:t,anchorName:null,releaseAnchor:null,scroll:tm(a,t,()=>ve(e),{trackWindow:se()})});i(e=>e+1)}},Ce=()=>{let t=new Set(e.runtime.annotations().map(e=>e.id));for(let e of ee.keys())t.has(e)||ye(e);for(let e of t)Se(e)},we=e=>{W().queueMicrotask(()=>Se(e))},Te=()=>{W().queueMicrotask(()=>{Ce();for(let e of ee.values())e.anchorName||e.scroll.rebase()})};e.initialTriggerFallback&&(O=he());let Ee=()=>{V?.release(),V=null,B?.(),B=null,R=null,z=null},De=e=>!!(jw(e)&&se()&&N&&e!==O&&me()&&e.getRootNode()===N.getRootNode()),Oe=()=>{let e=he();if(e&&rv(e.ownerDocument)){Ee();return}O&&e!==O&&(O=null);let t=R,n=!!(e?.isConnected&&De(e)),r=z===e;if(e===R&&e?.isConnected&&n===r){V?.sync();return}let i=e===t?D:`--mesurer-annotation-trigger-${++kw}`;if(Ee(),!e?.isConnected)return;R=e;let a=e.ownerDocument.defaultView;if(a){if(n&&jw(e)){B=Mw(e,i),z=e,D=i,V=tm(a,e,_e,{trackWindow:!1});return}D=i,V=tm(a,e,_e,{trackWindow:se()})}},ke=e=>{if(H?.disconnect(),H=null,!e?.isConnected)return;let t=e.ownerDocument.defaultView;t&&(H=new t.ResizeObserver(()=>{i(e=>e+1)}),H.observe(e))},Ae=()=>{let e=W();U!==e&&(U?.removeEventListener(`resize`,je),U=e,U.addEventListener(`resize`,je,{passive:!0}))};function je(){i(e=>e+1)}let Me=()=>{let t=e.rendererRoot;return t?[...t.querySelectorAll(`[data-mesurer-motion-surface='true']`)].flatMap(e=>{if(!e.isConnected)return[];let t=e.getBoundingClientRect();return t.width<=0||t.height<=0?[]:[{left:t.left,top:t.top,width:t.width,height:t.height}]}):[]},Ne=e.rendererRoot,Pe=Ne?.ownerDocument.defaultView,Fe=Pe?.MutationObserver,Ie=Pe?.Element,Le=`[data-mesurer-motion-surface='true']`,Re=Fe&&Ie?new Fe(e=>{let t=e=>e instanceof Ie&&(e.matches(Le)||!!e.querySelector(Le));e.some(e=>e.type===`attributes`?e.target instanceof Ie&&e.target.matches(Le):e.target instanceof Ie&&e.target.closest(Le)?!0:[...e.addedNodes,...e.removedNodes].some(t))&&je()}):null;Ne&&Re&&Re.observe(Ne,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`hidden`]});let ze=he();ke(ze);let Be=e.runtime.subscribe(()=>en(()=>{let t=e.runtime.selectGestureActive();p()&&t?(k=!0,pe()):p()&&A!==null&&!de(A,ue())&&(O=he(),k=!1,pe());let r=he(),i=r!==ze;i&&(ze=r,ke(ze),k&&(k=!1,O=r)),Oe(),(i||r&&rv(r.ownerDocument))&&je(),n(e=>e+1),Te()}));Oe(),W().queueMicrotask(Ce),Dn(()=>{H?.disconnect(),H=null,fe(),U?.removeEventListener(`resize`,je),U=null,Re?.disconnect(),Ee();for(let e of ee.keys())ye(e);Be()});let Ve=lo(()=>(t(),e.runtime.currentSelection())),He=lo(()=>(t(),e.runtime.annotations().filter(t=>e.runtime.annotationVisible(t.id)))),Ue=lo(()=>{let e=a();return e?He().find(t=>t.id===e)??null:null}),We=lo(()=>s()??l()??a()),Ge=e=>He().findIndex(t=>t.id===e)+1,Ke=lo(()=>{t(),r();let n=We();if(!n||!e.runtime.annotationVisible(n))return[];let i=e.runtime.annotation(n);if(!i)return[];if(i.anchor.kind===`region`)return[{...i.anchor.rect}];let a=i.resolvedTargets.flatMap(({element:e})=>{if(!e?.isConnected)return[];let t=qu(e);return[{left:t.left,top:t.top,width:t.width,height:t.height}]});if(a.length)return a;let o=e.runtime.annotationRect(n);return o?[{...o}]:[]}),qe=()=>Ve().elements.length>0||Ve().region!==null,Je=()=>{t();let e=A;return e!==null&&de(e,ue())},Ye=lo(()=>{let e=Ve(),t=e.elements.filter(e=>e.isConnected).map(e=>{let t=qu(e);return{left:t.left,top:t.top,width:t.width,height:t.height}});return e.region&&t.push({...e.region}),t}),Xe=lo(()=>Nw(Ye())),Ze=e=>e.anchor.kind===`elements`?`${e.anchor.targets.length} selected ${e.anchor.targets.length===1?`element`:`elements`}`:`Selected region`,Qe=lo(()=>{r();let t=e.runtime.currentSelection().elements;if(!t.length)return null;let n=e.runtime.hoveredElement();return t.find(e=>e===n)??t.find(e=>n&&e.contains(n))??t[0]}),$e=()=>{r();let e=Qe();if(!e?.isConnected)return null;let t=qu(e),n={left:t.left,top:t.top,width:t.width,height:t.height},i=W(),a=[...en(et).values()].map(e=>({left:e.left,top:e.top,width:24,height:24})),[o]=Tw([{id:`selection-note-trigger`,rect:n}],{width:i.innerWidth,height:i.innerHeight},{obstacles:[...a,...Me()],maxShiftRings:Math.ceil(Math.max(i.innerWidth,i.innerHeight)/28),viewportAware:!0}),s=o?.left??Ow(n.left+n.width+6,4,i.innerWidth-24-4),c=o?.top??Ow(n.top,4,i.innerHeight-24-4),l=z===e,u=se()&&!l;return{left:l||u?s:s+i.scrollX,top:l||u?c:c+i.scrollY,anchorX:s-n.left,anchorY:c-n.top,nativeAnchor:l,viewportOwned:u}},et=lo(()=>{t(),r();let n=W(),i=He().flatMap(t=>{let n=e.runtime.annotationRect(t.id);return n?[{id:t.id,rect:n}]:[]});return new Map(Tw(i,{width:n.innerWidth,height:n.innerHeight},{obstacles:Ye()}).map(e=>[e.id,e]))}),tt=e=>et().get(e)??null,nt=(e,t)=>{r();let n=ee.get(e);if(!n?.anchorName||!n.target.isConnected)return{...le(t),nativeAnchor:!1};let i=qu(n.target);return{...t,nativeAnchor:!0,anchorName:n.anchorName,anchorX:t.left-i.left,anchorY:t.top-i.top}},rt=()=>{let e=Xe(),t=W();return e?Fw(e,256,160,t):{left:8,top:8}},it=()=>{r();let e=rt(),t=Qe();if(!t?.isConnected||z!==t)return{...le(e),nativeAnchor:!1};let n=qu(t);return{...e,nativeAnchor:!0,anchorName:D,anchorX:e.left-n.left,anchorY:e.top-n.top}},at=(e,t)=>{let n=W(),r=et(),i=r.get(e);if(!i)return Pw(t,272,176,n);let a=n.innerWidth-272-8,o=n.innerHeight-176-8,s=[...r.values()].map(e=>({left:e.left,top:e.top,width:24,height:24})),c=(e,t)=>Math.max(0,Math.min(e.left+e.width,t.left+t.width)-Math.max(e.left,t.left))*Math.max(0,Math.min(e.top+e.height,t.top+t.height)-Math.max(e.top,t.top)),l=new Set,u=[];for(let e of[{left:i.left+24+8,top:i.top},{left:i.left-272-8,top:i.top},{left:i.left,top:i.top+24+8},{left:i.left,top:i.top-176-8}]){let t={left:Ow(e.left,8,a),top:Ow(e.top,8,o)},n=`${t.left}:${t.top}`;l.has(n)||(l.add(n),u.push(t))}return u.map((e,n)=>{let r={...e,width:272,height:176};return{candidate:e,markerOverlap:s.reduce((e,t)=>e+c(r,t),0),targetOverlap:c(r,t),index:n}}).sort((e,t)=>e.markerOverlap-t.markerOverlap||e.targetOverlap-t.targetOverlap||e.index-t.index)[0]?.candidate??Pw(t,272,176,n)},ot=t=>{let n=e.runtime.annotationRect(t);if(!n)return{left:8,top:8};let r=d()[t];return r?{left:n.left+r.left,top:n.top+r.top}:at(t,n)},st=t=>{W().queueMicrotask(()=>{let n=e.runtime.annotationRect(t);n&&f(e=>{if(e[t])return e;let r=at(t,n);return{...e,[t]:{left:r.left-n.left,top:r.top-n.top}}})})},ct=e=>nt(e,ot(e)),lt=e=>{k=!1,A=null,m(!1),Se(e),st(e),o(e),w(null),we(e)},ut=e=>{e.stopPropagation();let t=e.currentTarget.ownerDocument.defaultView?.HTMLButtonElement,n=e.composedPath().find(e=>t&&e instanceof t);!t||!(n instanceof t)||!e.currentTarget.contains(n)||Il(n,e.pointerId)},dt=(t,n)=>{let r=t.currentTarget.ownerDocument.defaultView?.Element,i=t.target;if(t.button!==0||r&&i instanceof r&&i.closest(`button`))return;let a=t.currentTarget.parentElement;if(!a)return;let o=a.getBoundingClientRect(),s=W(),c=s.document.documentElement,l=c.style.userSelect;c.style.setProperty(`user-select`,`none`,`important`),j={surfaceId:n,pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,originLeft:o.left,originTop:o.top,width:o.width,height:o.height},E(n),t.preventDefault(),t.stopPropagation();let u=t=>{if(!j||t.pointerId!==j.pointerId)return;let r=j,i=Math.max(8,s.innerWidth-r.width-8),a=Math.max(8,s.innerHeight-r.height-8),o={left:Ow(r.originLeft+t.clientX-r.startX,8,i),top:Ow(r.originTop+t.clientY-r.startY,8,a)},c=e.runtime.annotationRect(n);c&&f(e=>({...e,[n]:{left:o.left-c.left,top:o.top-c.top}}))},d=e=>{!j||e.pointerId!==t.pointerId||(c.style.userSelect=l,s.removeEventListener(`pointermove`,u),s.removeEventListener(`pointerup`,d),s.removeEventListener(`pointercancel`,d),j=null,E(null),M=null)};s.addEventListener(`pointermove`,u),s.addEventListener(`pointerup`,d),s.addEventListener(`pointercancel`,d),M=()=>{c.style.userSelect=l,s.removeEventListener(`pointermove`,u),s.removeEventListener(`pointerup`,d),s.removeEventListener(`pointercancel`,d),E(null)}};Dn(()=>{M?.(),M=null,j=null});let ft=async(e,t)=>{if(!x()){S(!0),w(null);try{await e(),w(t)}catch(e){w(e instanceof Error?e.message:String(e))}finally{S(!1)}}},pt=pe,mt=()=>{qe()&&(k=!1,A=ue(),g(``),v(!1),b(null),w(null),o(null),m(!0),F=e=>{let t=ge()?.querySelector(`[data-mesurer-annotation-composer='true']`),n=W().Node;if(!(t&&n&&e.target instanceof n&&t.contains(e.target))){if(h().trim()&&!y()){b(`Press Enter or Send to save, or Escape to discard.`);return}ht()}},W().document.addEventListener(`pointerdown`,F,!0),W().queueMicrotask(()=>V?.sync()))},ht=()=>{let e=p();A!==null&&!de(A,ue())?(O=he(),k=!1,Oe(),je()):e&&(k=!1),pt()},gt=()=>{p()&&(k=!0,pt())},_t=()=>{if(!(!h().trim()||x()))try{let t=e.runtime.addSelectionAnnotation(h());k=!1,A=null,g(``),v(!1),b(null),m(!1),fe(),Se(t.id),st(t.id),o(t.id),w(null),we(t.id)}catch(e){b(e instanceof Error?e.message:String(e))}},vt={openNoteComposer:mt,closeNoteComposer:ht,abandonNoteComposer:gt,openAnnotation:lt};return e.onController?.(vt),Dn(()=>e.onController?.(null)),[(()=>{var e=X(`span`,{"aria-hidden":`true`,style:{display:`none`}});return ic(()=>e=>{N=e,Ae(),Oe()},e),e})(),Y(K,{get when(){return J(()=>Ve().elements.length>0)()&&!p()},get children(){return Y(K,{get when(){return Qe()},keyed:!0,children:e=>Y(K,{get when(){return $e()},children:e=>(()=>{var t=X(`button`,{type:`button`,"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-trigger":`true`,"aria-label":`Annotate selection`,title:`Annotate selection`,class:`msr:pointer-events-auto msr:z-[95] msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border msr:border-ink-200 msr:bg-white msr:text-black msr:outline-none msr:hover:bg-ink-50 msr:focus-visible:border-[#0d99ff]`,onPointerDown:e=>{e.stopPropagation(),I=e.pointerId,L=!1,Il(e.currentTarget,e.pointerId)},onPointerMove:e=>{if(I!==e.pointerId)return;let t=e.currentTarget.getBoundingClientRect();L=e.clientX<t.left||e.clientX>t.right||e.clientY<t.top||e.clientY>t.bottom},onPointerUp:e=>{if(e.stopPropagation(),I===e.pointerId){let t=e.currentTarget.getBoundingClientRect();L=e.clientX<t.left||e.clientX>t.right||e.clientY<t.top||e.clientY>t.bottom,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),I=null}},onPointerCancel:e=>{e.stopPropagation(),L=!0,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),I===e.pointerId&&(I=null)},onClick:e=>{if(e.stopPropagation(),L){L=!1;return}mt()}});return ic(()=>e=>{P=e,V?.sync()},t),Q(t,Y(Qm,{size:14})),q(()=>({e:se()?`viewport`:`document`,t:ce(e().nativeAnchor),a:{position:e().nativeAnchor||e().viewportOwned?`fixed`:`absolute`,left:e().nativeAnchor?`calc(anchor(left) + ${e().anchorX}px)`:`${e().left}px`,top:e().nativeAnchor?`calc(anchor(top) + ${e().anchorY}px)`:`${e().top}px`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":e().nativeAnchor?D:void 0,"z-index":`2147483647`}}),({e,t:n,a:r},i)=>{e!==i?.e&&$(t,`data-mesurer-context-coordinate-space`,e,i?.e),n!==i?.t&&$(t,`data-mesurer-annotation-scroll-mode`,n,i?.t),r!==i?.a&&$(t,`style`,r,i?.a)}),t})()})})}}),Y(K,{get when(){return J(()=>!!(p()&&Je()))()?Xe():p()&&Je()},get children(){return Y(K,{get when(){return it()},children:e=>(()=>{var t=X(`div`,{"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-composer":`true`,class:`mesurer-menu-surface msr:pointer-events-auto msr:z-[95] msr:w-64 msr:max-w-[calc(100vw-16px)] msr:rounded-lg msr:border msr:border-ink-200 msr:bg-white msr:p-2 msr:text-black`,onPointerDown:ut,onClick:e=>e.stopPropagation()}),n=X(`div`,{class:`msr:relative`}),r=X(`textarea`,{autofocus:!0,rows:1,"aria-label":`Note`,placeholder:`Add a note`,onInput:e=>{let t=e.currentTarget;g(t.value),b(null),t.style.height=`auto`,t.style.paddingRight=`36px`,t.style.paddingBottom=`6px`;let n=t.scrollHeight>34;t.style.paddingRight=n?`8px`:`36px`,t.style.paddingBottom=n?`32px`:`6px`,v(n),t.style.height=`${Math.min(128,Math.max(34,t.scrollHeight))}px`,t.style.overflowY=t.scrollHeight>128?`auto`:`hidden`},onKeyDown:e=>{if(e.stopPropagation(),e.key===`Enter`&&!e.shiftKey&&!e.isComposing){e.preventDefault(),_t();return}e.key===`Escape`&&(e.preventDefault(),ht())},class:`msr:block msr:box-border msr:min-h-[34px] msr:max-h-32 msr:w-full msr:resize-none msr:rounded-[7px] msr:border msr:border-ink-200 msr:px-2 msr:py-1.5 msr:text-[12px] msr:leading-5 msr:outline-none msr:placeholder:text-ink-400 msr:focus:border-[#0d99ff]`,style:{height:`34px`,"padding-right":`36px`,"padding-bottom":`6px`,"overflow-y":`hidden`,"overflow-wrap":`anywhere`,"word-break":`break-word`,background:`var(--msr-surface)`,color:`var(--msr-content)`}}),i=X(`button`,{type:`button`,"aria-label":`Add note`,title:`Add note · Enter`,"data-mesurer-annotation-send":`true`,onPointerDown:e=>e.stopPropagation(),onMouseEnter:()=>h().trim()&&ae.onTooltipEnter(oe),onMouseLeave:()=>ae.onTooltipLeave(),onFocus:()=>h().trim()&&ae.onTooltipEnter(oe),onBlur:()=>ae.onTooltipLeave(),onClick:_t});return Z(t,n),Z(n,r),Z(n,i),ic(()=>e=>W().queueMicrotask(()=>e.focus()),r),Q(i,Y($m,{size:16,class:`mesurer-send-icon`}),null),Q(i,Y(xl,{label:`Add note`,shortcut:`Enter`,get visible(){return ae.visibleTooltipId()===oe},get instant(){return ae.tooltipInstant()},class:`msr:z-10`}),null),Q(t,Y(K,{get when(){return y()},children:e=>(()=>{var t=X(`div`,{class:`msr:mt-1.5 msr:px-1 msr:text-[10px] msr:text-red-600`});return Q(t,e),t})()}),null),q(()=>({e:se()?`viewport`:`document`,t:ce(e().nativeAnchor),a:{position:e().nativeAnchor||se()?`fixed`:`absolute`,left:e().nativeAnchor?`calc(anchor(left) + ${e().anchorX}px)`:`${e().left}px`,top:e().nativeAnchor?`calc(anchor(top) + ${e().anchorY}px)`:`${e().top}px`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":e().nativeAnchor?e().anchorName:void 0,"z-index":`2147483647`},o:h(),i:!h().trim()||x(),n:`msr:absolute msr:right-1.5 msr:outline-none msr:disabled:cursor-default ${_()?`msr:bottom-1.5`:`msr:top-1/2 msr:-translate-y-1/2`}`}),({e,t:n,a,o,i:s,n:c},l)=>{e!==l?.e&&$(t,`data-mesurer-context-coordinate-space`,e,l?.e),n!==l?.t&&$(t,`data-mesurer-annotation-scroll-mode`,n,l?.t),a!==l?.a&&$(t,`style`,a,l?.a),o!==l?.o&&$(r,`value`,o,l?.o),s!==l?.i&&$(i,`disabled`,s,l?.i),c!==l?.n&&$(i,`class`,c,l?.n)}),t})()})}}),Y(_o,{get each(){return Ke()},children:e=>{let t=()=>We(),n=()=>{let n=t();return n?nt(n,{left:e.left,top:e.top}):{...le({left:e.left,top:e.top}),nativeAnchor:!1}};var r=X(`div`,{"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-target-highlight":`true`,"aria-hidden":`true`,class:`msr:pointer-events-none`});return q(()=>({e:t()??void 0,t:ce(n().nativeAnchor),a:{position:n().nativeAnchor||se()?`fixed`:`absolute`,left:n().nativeAnchor?`calc(anchor(left) + ${n().anchorX}px)`:`${n().left}px`,top:n().nativeAnchor?`calc(anchor(top) + ${n().anchorY}px)`:`${n().top}px`,width:`${e.width}px`,height:`${e.height}px`,"box-sizing":`border-box`,border:`1.5px solid #0d99ff`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":n().nativeAnchor?n().anchorName:void 0,"z-index":`2147483645`}}),({e,t,a:n},i)=>{e!==i?.e&&$(r,`data-mesurer-annotation-id`,e,i?.e),t!==i?.t&&$(r,`data-mesurer-annotation-scroll-mode`,t,i?.t),n!==i?.a&&$(r,`style`,n,i?.a)}),r}}),Y(_o,{get each(){return He()},children:(e,t)=>{let n=()=>tt(e.id),r=()=>{let t=n();return t?nt(e.id,t):null},i=()=>We()===e.id,o=()=>We()!==null&&!i();return Y(K,{get when(){return r()},children:n=>(()=>{var r=X(`button`,{type:`button`,"data-mesurer-layer":`evidence`,"data-mesurer-annotation-marker":`true`,onPointerEnter:()=>{c(e.id),we(e.id)},onPointerLeave:()=>c(t=>t===e.id?null:t),onFocus:()=>{u(e.id),we(e.id)},onBlur:()=>u(t=>t===e.id?null:t),onPointerDown:t=>{t.preventDefault(),t.stopPropagation(),lt(e.id)},onPointerUp:e=>e.stopPropagation(),onClick:t=>{t.preventDefault(),t.stopPropagation(),lt(e.id)},class:`msr:pointer-events-auto msr:z-[94] msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:border-0 msr:bg-transparent msr:p-0 msr:outline-none`}),s=X(`span`,{"data-mesurer-annotation-badge":`true`,"aria-hidden":`true`,class:`msr:flex msr:h-5 msr:w-5 msr:items-center msr:justify-center msr:rounded-[6px] msr:border msr:text-[10px] msr:font-semibold msr:leading-none`});return Z(r,s),Q(s,()=>t()+1),q(()=>({e:e.id,t:t()+1,a:i()?`true`:void 0,o:o()?`true`:void 0,i:e.status??`open`,n:ce(n().nativeAnchor),s:se()?`viewport`:`document`,h:`Mesurer annotation ${t()+1}: ${e.note}`,r:e.note,d:a()===e.id?`true`:`false`,l:{position:n().nativeAnchor||se()?`fixed`:`absolute`,left:n().nativeAnchor?`calc(anchor(left) + ${n().anchorX}px)`:`${n().left}px`,top:n().nativeAnchor?`calc(anchor(top) + ${n().anchorY}px)`:`${n().top}px`,opacity:o()||e.status===`resolved`?`0.48`:`1`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":n().nativeAnchor?n().anchorName:void 0,transition:`opacity 150ms ease`,"z-index":`2147483647`},u:{border:e.status===`resolved`?`1px solid #8b919a`:`1px solid #0d99ff`,color:i()&&e.status!==`resolved`?`white`:e.status===`resolved`?`#747b84`:`#0d99ff`,background:i()&&e.status!==`resolved`?`#0d99ff`:`var(--msr-surface)`,transform:i()?`scale(1.2)`:`scale(1)`,"box-shadow":i()?`0 3px 10px rgba(13, 153, 255, 0.28)`:`0 1px 3px rgba(15, 23, 42, 0.12)`,transition:`transform 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease`,"font-variant-numeric":`tabular-nums`}}),({e,t,a:n,o:i,i:a,n:o,s:c,h:l,r:u,d,l:f,u:p},m)=>{e!==m?.e&&$(r,`data-mesurer-annotation-id`,e,m?.e),t!==m?.t&&$(r,`data-mesurer-annotation-number`,t,m?.t),n!==m?.a&&$(r,`data-mesurer-annotation-highlighted`,n,m?.a),i!==m?.o&&$(r,`data-mesurer-annotation-muted`,i,m?.o),a!==m?.i&&$(r,`data-mesurer-annotation-status`,a,m?.i),o!==m?.n&&$(r,`data-mesurer-annotation-scroll-mode`,o,m?.n),c!==m?.s&&$(r,`data-mesurer-context-coordinate-space`,c,m?.s),l!==m?.h&&$(r,`aria-label`,l,m?.h),u!==m?.r&&$(r,`title`,u,m?.r),d!==m?.d&&$(r,`aria-expanded`,d,m?.d),f!==m?.l&&$(r,`style`,f,m?.l),p!==m?.u&&$(s,`style`,p,m?.u)}),r})()})}}),Y(K,{get when(){return Ue()},children:t=>{let n=()=>ct(t().id),r=()=>Ge(t().id),i=!1,a=null,s=()=>{let e=a?.querySelector(`[aria-label='Reply to note']`);e&&(e.value=``,e.style.height=`34px`,e.scrollTop=0,e.style.overflowY=`hidden`),o(null),w(null)},l=()=>e.runtime.setAnnotationStatus(t().id,t().status===`resolved`?`open`:`resolved`);var d=X(`div`,{"data-mesurer-layer":`chrome`,"data-mesurer-inspector-ui":`true`,"data-mesurer-annotation-panel":`true`,class:`mesurer-menu-surface msr:pointer-events-auto msr:z-[95] msr:flex msr:w-[272px] msr:max-h-[calc(100vh-16px)] msr:flex-col msr:rounded-[10px] msr:border msr:border-ink-200 msr:p-1.5`,onClick:e=>e.stopPropagation()}),p=X(`div`,{class:`msr:flex msr:h-7 msr:items-center msr:gap-1.5 msr:px-1`,"aria-label":`Drag annotation panel`,onPointerDown:e=>dt(e,t().id)}),m=X(`span`,{"data-mesurer-annotation-panel-badge":`true`,"aria-hidden":`true`,class:`msr:flex msr:h-[18px] msr:w-[18px] msr:items-center msr:justify-center msr:rounded-[5px] msr:text-[9px] msr:font-semibold msr:leading-none msr:text-white`,style:{background:`#0d99ff`,"font-variant-numeric":`tabular-nums`}}),h=X(`div`,{class:`msr:min-w-0 msr:flex-1`}),g=X(`div`,{class:`msr:text-[11px] msr:font-medium msr:text-ink-700`}),_=ec(`Note `),v=X(`div`,{class:`msr:text-[9px] msr:text-ink-500`}),y=X(`div`,{class:`msr:flex msr:items-center msr:gap-0.5`}),b=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,"aria-label":`Copy annotation context`,title:`Copy context`,onClick:()=>void ft(()=>e.onCopy({annotation:t().id}),`Copied`)}),S=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),i=!0,l()},onClick:()=>{if(i){i=!1;return}l()}}),E=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,"aria-label":`Delete annotation`,title:`Delete`,onClick:()=>{let n=t().id;e.runtime.removeAnnotation(n),f(e=>{let t={...e};return delete t[n],t}),ye(n),c(e=>e===n?null:e),u(e=>e===n?null:e),s()}}),D=X(`button`,{type:`button`,class:`msr:flex msr:w-6 msr:h-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border-0 msr:bg-transparent msr:text-black msr:outline-none msr:hover:bg-black/4 msr:disabled:cursor-default msr:disabled:opacity-40`,"aria-label":`Close annotation`,title:`Close`,onClick:()=>{s()}});return Z(d,p),ic(()=>e=>{a=e},d),Z(p,m),Z(p,h),Z(p,y),Q(m,r),Z(h,g),Z(h,v),Z(g,_),Q(g,r,null),Q(v,()=>Ze(t()),null),Q(v,(()=>{var e=J(()=>!!t().replies?.length);return()=>e()?` · ${t().replies.length} replies`:``})(),null),Z(y,b),Z(y,S),Z(y,E),Z(y,D),Q(b,Y(Zm,{size:14})),Q(S,()=>t().status===`resolved`?`↶`:`✓`),Q(E,Y(eh,{size:14})),Q(D,Y(th,{size:14})),Q(d,Y(Dw,{get annotation(){return t()},get runtime(){return e.runtime},panelElement:()=>a,onGlobalHandlers:e=>{te=e},onClose:s}),null),Q(d,Y(K,{get when(){return C()},children:e=>(()=>{var t=X(`div`,{class:`msr:mt-1.5 msr:px-1 msr:text-[10px] msr:text-ink-500`,role:`status`});return Q(t,e),t})()}),null),q(()=>({e:t().id,t:ce(n().nativeAnchor),a:se()?`viewport`:`document`,o:{position:n().nativeAnchor||se()?`fixed`:`absolute`,left:n().nativeAnchor?`calc(anchor(left) + ${n().anchorX}px)`:`${n().left}px`,top:n().nativeAnchor?`calc(anchor(top) + ${n().anchorY}px)`:`${n().top}px`,translate:`var(--mesurer-nested-scroll-x, 0px) var(--mesurer-nested-scroll-y, 0px)`,"position-anchor":n().nativeAnchor?n().anchorName:void 0,"z-index":`2147483646`,background:`var(--msr-surface)`,color:`var(--msr-content)`,"box-shadow":`var(--msr-shadow-floating)`},i:{cursor:T()===t().id?`grabbing`:`grab`},n:x(),s:t().status===`resolved`?`Reopen note`:`Resolve note`,h:t().status===`resolved`?`Reopen`:`Resolve`}),({e,t,a:n,o:r,i,n:a,s:o,h:s},c)=>{e!==c?.e&&$(d,`data-mesurer-annotation-id`,e,c?.e),t!==c?.t&&$(d,`data-mesurer-annotation-scroll-mode`,t,c?.t),n!==c?.a&&$(d,`data-mesurer-context-coordinate-space`,n,c?.a),r!==c?.o&&$(d,`style`,r,c?.o),i!==c?.i&&$(p,`style`,i,c?.i),a!==c?.n&&$(b,`disabled`,a,c?.n),o!==c?.s&&$(S,`aria-label`,o,c?.s),s!==c?.h&&$(S,`title`,s,c?.h)}),d}})]}function Lw(e){let t=null;return Dn(Bv(e.ownerWindow,()=>{t?.abandonNoteComposer()})),Y(Iw,{get runtime(){return e.runtime},get onCopy(){return e.onCopy},get initialTriggerFallback(){return e.initialTriggerFallback},get coordinateSpace(){return e.coordinateSpace},get rendererRoot(){return e.rendererRoot},onController:n=>{t=n,e.onController?.(n)}})}var Rw={border:`0`,borderRadius:`5px`,background:`transparent`,color:`var(--msr-content)`,cursor:`pointer`,font:`inherit`};function zw(e){let[t,n]=G(0),[r,i]=G(``),[a,o]=G(`open`),[s,c]=G(null),[l,u]=G({}),d=null,f=null;Dn(e.runtime.subscribe(()=>{n(e=>e+1);let t=en(s);t&&!e.runtime.annotations().some(e=>e.id===t)&&(e.onCancel(),c(null))}));let p=lo(()=>(t(),e.runtime.annotations().map((e,t)=>({annotation:e,index:t})).filter(({annotation:e})=>a()===`all`||(e.status??`open`)===a()).filter(({annotation:e})=>{let t=r().trim().toLocaleLowerCase();return!t||[e.note,...(e.replies??[]).map(({text:e})=>e)].some(e=>e.toLocaleLowerCase().includes(t))}).sort((e,t)=>{let n=e=>e.replies?.at(-1)?.createdAt??e.createdAt;return n(t.annotation)-n(e.annotation)||e.index-t.index}).map(({annotation:e})=>e))),m=()=>{let t=(e.rendererRoot?.querySelector(`[data-mesurer-tool-id="context.notes"]`))?.getBoundingClientRect(),n=e.ownerWindow,r=t?Math.max(8,Math.min(n.innerWidth-288-8,t.left)):Math.max(8,n.innerWidth-288-16),i=t?Math.max(8,Math.min(n.innerHeight-280,t.bottom+8)):72;return{left:`${r}px`,top:`${i}px`}},h=async t=>{c(t.id),u(e=>({...e,[t.id]:`Opening…`}));let n;try{n=await e.onReveal(t)}catch(e){n={status:`refused`,message:e instanceof Error?e.message:`This note could not be revealed.`}}n.status===`revealed`?(u(e=>{let n={...e};return delete n[t.id],n}),e.onOpenAnnotation(t.id)):n.status===`cancelled`?u(e=>{let n={...e};return delete n[t.id],n}):u(e=>({...e,[t.id]:n.message})),s()===t.id&&c(null)},g=t=>{let n=d;if(!n)return;d=null;let r=Math.hypot(t.clientX-n.x,t.clientY-n.y),i=e.runtime.annotations().find(e=>e.id===n.id);r>8||!i||(f=n.id,h(i))},_=()=>{e.onCancel(),e.onOpenChange(!1),e.ownerWindow.queueMicrotask(()=>{e.rendererRoot?.querySelector(`button[data-mesurer-tool-id="context.notes"]`)?.focus()})};e.ownerWindow.addEventListener(`pointerup`,g,!0),Dn(()=>e.ownerWindow.removeEventListener(`pointerup`,g,!0));let v=t=>{if(t.key!==`Escape`||!e.open||e.rendererRoot?.querySelector(`[data-mesurer-annotation-panel='true']`))return;let n=t.target;if(n instanceof HTMLInputElement&&n.type===`search`&&n.value){n.value=``,n.dispatchEvent(new Event(`input`,{bubbles:!0})),t.preventDefault(),t.stopImmediatePropagation();return}t.stopPropagation(),t.stopImmediatePropagation(),t.preventDefault(),_()};return e.ownerWindow.addEventListener(`keydown`,v,!0),Dn(()=>e.ownerWindow.removeEventListener(`keydown`,v,!0)),Y(K,{get when(){return e.open},get children(){var t=X(`section`,{role:`dialog`,"aria-label":`Notes`,"data-mesurer-inspector-ui":`true`,"data-mesurer-notes-panel":`true`,onPointerDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation()}),c=X(`header`,{style:{display:`flex`,"align-items":`center`,gap:`8px`,padding:`10px 12px`,"border-bottom":`1px solid var(--msr-color-ink-100)`}}),u=X(`strong`,{style:{flex:`1`,"font-size":`12px`}}),g=X(`select`,{"aria-label":`Filter notes`,onChange:e=>{let t=e.currentTarget.value;(t===`open`||t===`resolved`||t===`all`)&&o(t),n(e=>e+1)},style:{border:`0`,background:`transparent`,color:`inherit`,"font-size":`11px`}}),v=X(`option`,{value:`open`}),y=X(`option`,{value:`resolved`}),b=X(`option`,{value:`all`}),x=X(`button`,{type:`button`,"aria-label":`Close Notes`,onClick:_}),S=X(`div`,{style:{padding:`8px 10px`}}),C=X(`input`,{type:`search`,"aria-label":`Search notes`,placeholder:`Search notes`,onInput:e=>i(e.currentTarget.value),style:{width:`100%`,"box-sizing":`border-box`,height:`30px`,padding:`0 8px`,border:`1px solid var(--msr-color-ink-200)`,"border-radius":`5px`,background:`var(--msr-surface-raised)`,color:`inherit`,"font-size":`11px`}});return Z(t,c),Z(t,S),Z(c,u),Z(c,g),Z(c,x),Q(c,Y(Qm,{size:14}),u),Z(u,ec(`Notes`)),Z(g,v),Z(g,y),Z(g,b),Z(v,ec(`Open`)),Z(y,ec(`Resolved`)),Z(b,ec(`All`)),Q(x,Y(th,{size:12})),Z(S,C),Q(t,Y(K,{get when(){return p().length},get fallback(){var e=X(`p`,{style:{padding:`18px 12px`,margin:`0`,"text-align":`center`,color:`var(--msr-color-ink-500)`}});return Q(e,(()=>{var e=J(()=>!!r().trim());return()=>e()?`No matching notes.`:J(()=>a()===`resolved`)()?`No resolved notes.`:a()===`open`?`No open notes.`:`No notes yet.`})()),e},get children(){var t=X(`ul`,{"aria-label":`Saved notes`,style:{margin:`0`,padding:`0`,"min-height":`0`,overflow:`auto`,"list-style":`none`}});return Q(t,Y(_o,{get each(){return p()},children:(t,n)=>{let r=t.anchor.kind===`elements`?t.anchor.targets.find(e=>e.viewport)?.viewport:void 0,i=(t.status??`open`)===`resolved`,a=e.runtime.annotation(t.id)?.resolvedTargets.some(({element:e})=>e?.isConnected)??!1,o=!!e.rendererRoot?.querySelector(`[data-mesurer-responsive-stage]`),c=r?o?a?``:`Target not found`:`Preview not open`:a||t.anchor.kind===`region`?``:`Target not found`;var u=X(`li`,{style:{padding:`8px 12px`,"border-top":`1px solid var(--msr-color-ink-100)`,opacity:i?`0.62`:`1`}}),p=X(`button`,{type:`button`,onPointerDown:e=>{d={id:t.id,x:e.clientX,y:e.clientY},f=null},onClick:()=>{if(f===t.id){f=null;return}h(t)}}),m=X(`span`,{style:{width:`100%`,overflow:`hidden`,display:`-webkit-box`,"-webkit-line-clamp":`2`,"-webkit-box-orient":`vertical`,"overflow-wrap":`anywhere`,"line-height":`16px`}}),g=X(`span`,{style:{color:`var(--msr-color-ink-500)`,"font-size":`10px`}}),_=ec(` `);return Z(u,p),Z(p,m),Z(p,g),Q(m,()=>t.note),Z(g,_),Q(g,()=>t.replies?.length??0,_),Q(g,()=>(t.replies?.length??0)===1?`reply`:`replies`,null),Q(g,()=>r?` · ${r.width} × ${r.height} preview`:``,null),Q(g,i?` · Resolved`:``,null),Q(g,c?` · ${c}`:``,null),Q(u,Y(K,{get when(){return l()[t.id]},get children(){var e=X(`span`,{role:`status`,style:{display:`block`,"margin-top":`4px`,color:`var(--msr-color-ink-500)`,"font-size":`10px`}});return Q(e,()=>l()[t.id]),e}}),null),q(()=>({e:t.id,t:`Note ${n()+1}: ${t.note}`,a:s()===t.id,o:{...Rw,display:`flex`,width:`100%`,"flex-direction":`column`,"align-items":`flex-start`,gap:`4px`,padding:`0`,"text-align":`left`}}),({e,t,a:n,o:r},i)=>{e!==i?.e&&$(p,`data-mesurer-note-id`,e,i?.e),t!==i?.t&&$(p,`aria-label`,t,i?.t),n!==i?.a&&$(p,`disabled`,n,i?.a),r!==i?.o&&$(p,`style`,r,i?.o)}),u}})),t}}),null),q(()=>({e:{position:`fixed`,...m(),width:`288px`,"max-height":`min(70vh, 560px)`,display:`flex`,"flex-direction":`column`,overflow:`hidden`,"box-sizing":`border-box`,"z-index":`2147483647`,background:`var(--msr-surface)`,color:`var(--msr-content)`,border:`1px solid var(--msr-color-ink-100)`,"border-radius":`9px`,"box-shadow":`var(--msr-shadow-floating)`,"font-family":`ui-sans-serif, system-ui, sans-serif`,"font-size":`12px`,"pointer-events":`auto`},t:a(),a:{...Rw,width:`24px`,height:`24px`},o:r()}),({e,t:n,a:r,o:i},a)=>{e!==a?.e&&$(t,`style`,e,a?.e),n!==a?.t&&$(g,`value`,n,a?.t),r!==a?.a&&$(x,`style`,r,a?.a),i!==a?.o&&$(C,`value`,i,a?.o)}),t}})}var Bw=`2147482950`,Vw=`2147483646`,Hw=`2147483647`;function Uw(e){let{ownerDocument:t,ownerWindow:n,pageTarget:r}=e,i=t.body;if(!(i&&!(r instanceof n.ShadowRoot)&&r.getRootNode()===t))return e.createInspectorMount();_f(vf,i);let a=t.createElement(`div`);a.dataset.mesurerInspectorUi=`true`,a.dataset.mesurerDocumentInspectorMount=`true`,a.dataset.theme=e.theme?.()??`system`;let o=e.subscribeTheme?.(e=>{a.dataset.theme=e})??(()=>void 0);Object.assign(a.style,{position:`absolute`,left:`0px`,top:`0px`,width:`0px`,height:`0px`,overflow:`visible`});let s=t.createElement(`style`);s.dataset.mesurerDocumentInspectorLayerStyle=`true`,s.textContent=`
|
|
2319
2319
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-target-highlight="true"] {
|
|
2320
2320
|
position: absolute !important;
|
|
2321
2321
|
z-index: ${Bw} !important;
|
|
@@ -2330,7 +2330,7 @@ body:has([data-mesurer-text-editor="true"]) [data-mesurer-hover-measurement="tru
|
|
|
2330
2330
|
position: absolute !important;
|
|
2331
2331
|
z-index: ${Hw} !important;
|
|
2332
2332
|
}
|
|
2333
|
-
`,t.head.append(s),i.append(a);let c=!1;return{element:a,dispose(){c||(c=!0,o(),s.remove(),a.remove())}}}var Ww=e=>`color-mix(in srgb, ${e.color} ${e.opacity*100}%, transparent)`,Gw=e=>e===`max`?`end`:e===`center`?`center`:`start`,Kw=e=>{let t=e.kind===`columns`,n=e.align===`stretch`,r=n?`repeat(${e.count}, minmax(0, 1fr))`:`repeat(${e.count}, ${e.size}px)`,i=Gw(e.align);return{position:`absolute`,inset:`0`,display:`grid`,...t?{"grid-template-columns":r,"column-gap":`${e.gutter}px`,"justify-content":n?void 0:i,"padding-left":n||e.align===`min`?`${e.offset}px`:`0`,"padding-right":n||e.align===`max`?`${e.offset}px`:`0`}:{"grid-template-rows":r,"row-gap":`${e.gutter}px`,"align-content":n?void 0:i,"padding-top":n||e.align===`min`?`${e.offset}px`:`0`,"padding-bottom":n||e.align===`max`?`${e.offset}px`:`0`},transform:e.align===`center`?t?`translateX(${e.offset}px)`:`translateY(${e.offset}px)`:void 0}};function qw(e){let t=()=>e.guides.filter(e=>e.visible);return Y(K,{get when(){return t().length>0},get children(){var e=X(`div`,{"data-mesurer-layout-guides":`true`,"data-mesurer-layer":`evidence`,class:`msr:pointer-events-none msr:absolute msr:inset-0 msr:overflow-hidden`,style:{"z-index":`2`},"aria-hidden":`true`});return Q(e,Y(_o,{get each(){return t()},children:e=>Y(K,{get when(){return e.kind===`grid`},get fallback(){var t=X(`div`,{class:`msr:pointer-events-none msr:absolute msr:inset-0`});return Q(t,Y(_o,{get each(){return Array.from({length:e.count})},children:()=>(()=>{var t=X(`div`,{"data-mesurer-layout-band":`true`});return q(()=>({"min-width":`0`,"min-height":`0`,width:`100%`,height:`100%`,"background-color":Ww(e)}),(e,n)=>{$(t,`style`,e,n)}),t})()})),q(()=>({e:e.id,t:e.kind,a:Kw(e)}),({e,t:n,a:r},i)=>{e!==i?.e&&$(t,`data-mesurer-layout-guide`,e,i?.e),n!==i?.t&&$(t,`data-mesurer-layout-guide-kind`,n,i?.t),r!==i?.a&&$(t,`style`,r,i?.a)}),t},get children(){var t=X(`div`,{"data-mesurer-layout-guide-kind":`grid`,class:`msr:pointer-events-none msr:absolute msr:inset-0`});return q(()=>({e:e.id,t:{"background-image":`linear-gradient(to right, ${Ww(e)} 1px, transparent 1px), linear-gradient(to bottom, ${Ww(e)} 1px, transparent 1px)`,"background-size":`${e.size}px ${e.size}px`}}),({e,t:n},r)=>{e!==r?.e&&$(t,`data-mesurer-layout-guide`,e,r?.e),n!==r?.t&&$(t,`style`,n,r?.t)}),t}})})),e}})}var Jw=`#FF0000`,Yw=.1,Xw=new Set([`columns`,`rows`,`grid`]),Zw=new Set([`stretch`,`min`,`center`,`max`]),Qw=(e,t,n)=>Math.min(n,Math.max(t,e)),$w=(e,t)=>e!==void 0&&Number.isFinite(e)?e:t,eT=(e={})=>{let t=e.kind&&Xw.has(e.kind)?e.kind:`columns`,n=e.align&&Zw.has(e.align)?e.align:t===`grid`?`min`:`stretch`,r=e.id?.trim(),i=e.color?.trim();return{id:r||Ku(),kind:t,visible:e.visible??!0,color:i||`#FF0000`,opacity:Qw($w(e.opacity,Yw),0,1),count:Qw(Math.round($w(e.count,5)),1,24),size:Qw($w(e.size,72),1,4096),gutter:Qw($w(e.gutter,20),0,800),offset:Qw($w(e.offset,0),0,4096),align:n}},tT=e=>(e??[]).map(eT),nT=e=>{if(e.kind===`grid`)return`Grid ${Math.round(e.size)}px`;let t=e.kind===`columns`?`columns`:`rows`;return e.align===`stretch`?`${e.count} ${t}`:`${e.count} ${t} (${Math.round(e.size)}px)`},rT=e=>(()=>{var t=X(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,class:`msr:block`});return Z(t,X(`path`,{d:`m6 6 12 12M18 6 6 18`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})),q(()=>({e:e.size??14,t:e.size??14}),({e,t:n},r)=>{e!==r?.e&&$(t,`width`,e,r?.e),n!==r?.t&&$(t,`height`,n,r?.t)}),t})(),iT=e=>e.kind===`rows`?Y(Km,{size:14}):e.kind===`grid`?Y(Wm,{size:14}):Y(Gm,{size:14}),aT=`msr:grid-cols-[78px_minmax(0,1fr)]`,oT=e=>(()=>{var t=X(`label`,{class:`msr:col-span-2 msr:grid msr:h-8 msr:w-full msr:grid-cols-[78px_minmax(0,1fr)] msr:items-center msr:gap-0 msr:text-[12px] msr:text-ink-700`}),n=X(`span`);return Z(t,n),Q(n,()=>e.label),Q(t,()=>e.children,null),t})(),sT=e=>(()=>{var t=X(`span`,{class:`msr:relative msr:block msr:w-full`}),n=X(`select`,{class:Jg,onPointerDown:e=>e.stopPropagation(),onChange:t=>e.onChange(t.currentTarget.value)});return Z(t,n),Q(n,()=>e.children),Q(t,Y(Yg,{}),null),q(()=>({e:e.label,t:e.value}),({e,t},r)=>{e!==r?.e&&$(n,`aria-label`,e,r?.e),t!==r?.t&&$(n,`value`,t,r?.t)}),t})(),cT=e=>{let[t,n]=G(!1),[r,i]=G(String(e.value)),a=()=>e.min??0,o=()=>e.max??9999,s=e=>Math.min(o(),Math.max(a(),e)),c=t=>{let n=Number(t.replace(/[^\d.-]/g,``));if(!Number.isFinite(n)){i(String(e.value));return}e.onChange(s(n))};return Y(Xg,{get left(){var a=X(`input`,{type:`text`,inputmode:`numeric`,class:`msr:h-full msr:w-full msr:min-w-0 msr:border-0 msr:bg-transparent msr:px-2 msr:font-mono msr:text-[12px] msr:font-medium msr:tabular-nums msr:text-ink-700 msr:outline-none`,onFocus:()=>{i(String(e.value)),n(!0)},onBlur:()=>{c(r()),n(!1)},onInput:t=>{let n=t.currentTarget.value.replace(/[^\d.-]/g,``);i(n);let r=Number(n);Number.isFinite(r)&&e.onChange(s(r))},onKeyDown:t=>{if(t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let n=Number(r()),a=Number.isFinite(n)?n:e.value,o=s(a+(t.key===`ArrowUp`?1:-1));i(String(o)),e.onChange(o)},onPointerDown:e=>e.stopPropagation()});return q(()=>({e:e.label,t:t()?r():String(e.value)}),({e,t},n)=>{e!==n?.e&&$(a,`aria-label`,e,n?.e),t!==n?.t&&$(a,`value`,t,n?.t)}),a}})},lT=e=>e===`rows`||e===`grid`?e:`columns`,uT=e=>e===`min`||e===`center`||e===`max`?e:`stretch`,dT=e=>{let t=lo(()=>e.guide.kind===`rows`?{stretch:`Stretch`,min:`Top`,center:`Center`,max:`Bottom`}:{stretch:`Stretch`,min:`Left`,center:`Center`,max:`Right`}),n=lo(()=>e.guide.kind===`rows`?`Height`:e.guide.kind===`grid`?`Size`:`Width`);var r=X(`div`,{class:`mesurer-thin-scrollbar msr:flex msr:min-h-0 msr:flex-1 msr:flex-col msr:gap-2 msr:overflow-y-auto msr:p-3`}),i=X(`div`,{class:`msr:flex msr:items-center msr:justify-between msr:gap-2`}),a=X(`button`,{type:`button`,"aria-label":`Back to layout guides`,class:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900`});return Z(r,i),Z(i,a),Q(i,Y(sT,{label:`Layout guide type`,get value(){return e.guide.kind},onChange:t=>{let n=lT(t);e.onUpdate({kind:n,align:n===`grid`?`min`:e.guide.align===`stretch`||n===e.guide.kind?e.guide.align:`stretch`})},get children(){return[(()=>{var e=X(`option`,{value:`columns`});return Z(e,ec(`Columns`)),e})(),(()=>{var e=X(`option`,{value:`rows`});return Z(e,ec(`Rows`)),e})(),(()=>{var e=X(`option`,{value:`grid`});return Z(e,ec(`Grid`)),e})()]}}),a),Q(a,Y(rT,{})),Q(r,Y(K,{get when(){return e.guide.kind!==`grid`},get children(){return Y(oT,{label:`Count`,get children(){return Y(cT,{label:`Count`,get value(){return e.guide.count},min:1,max:24,onChange:t=>e.onUpdate({count:t})})}})}}),null),Q(r,Y(Zg,{label:`Color`,columns:aT,get value(){return Nc({...jc(e.guide.color)??jc(`#FF0000`),alpha:e.guide.opacity})},fallback:Jw,get ownerWindow(){return e.ownerWindow},onChange:t=>{let n=jc(t);e.onUpdate({color:n?Nc({...n,alpha:1}).slice(0,7):t,opacity:n?.alpha??e.guide.opacity})}}),null),Q(r,Y(K,{get when(){return e.guide.kind!==`grid`},get children(){return Y(oT,{label:`Type`,get children(){return Y(sT,{label:`Alignment`,get value(){return e.guide.align},onChange:t=>e.onUpdate({align:uT(t)}),get children(){return Y(_o,{each:[`stretch`,`min`,`center`,`max`],children:e=>(()=>{var n=X(`option`,{value:e});return Q(n,()=>t()[e]),n})()})}})}})}}),null),Q(r,Y(K,{get when(){return e.guide.kind===`grid`||e.guide.align!==`stretch`},get children(){return Y(oT,{get label(){return n()},get children(){return Y(cT,{get label(){return n()},get value(){return e.guide.size},min:1,max:4096,onChange:t=>e.onUpdate({size:t})})}})}}),null),Q(r,Y(K,{get when(){return e.guide.kind!==`grid`},get children(){return[Y(oT,{label:`Offset`,get children(){return Y(cT,{label:`Offset`,get value(){return e.guide.offset},min:0,max:4096,onChange:t=>e.onUpdate({offset:t})})}}),Y(oT,{label:`Gutter`,get children(){return Y(cT,{label:`Gutter`,get value(){return e.guide.gutter},min:0,max:800,onChange:t=>e.onUpdate({gutter:t})})}})]}}),null),q(()=>e.onBack,(e,t)=>{$(a,`onClick`,e,t)}),r};function fT(e){let[t,n]=G(null),r=lo(()=>e.guides.find(e=>e.id===t())??null);var i=X(`div`,{"data-mesurer-layout-guides-panel":`true`,role:`dialog`,"aria-label":`Layout guides`,class:`mesurer-menu-surface msr:pointer-events-auto msr:flex msr:max-h-[min(320px,calc(100vh-16px))] msr:w-60 msr:flex-col msr:overflow-hidden msr:rounded-lg msr:bg-white msr:p-0 msr:text-[12px] msr:leading-[18px]`,onPointerDown:e=>e.stopPropagation(),onPointerMove:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),onClick:e=>e.stopPropagation()});return Q(i,Y(K,{get when(){return r()},get fallback(){var t=X(`div`,{class:`msr:flex msr:min-h-0 msr:flex-1 msr:flex-col msr:gap-1 msr:p-2`}),r=X(`div`,{class:`msr:flex msr:h-7 msr:shrink-0 msr:items-center msr:justify-between msr:px-1`}),i=X(`h2`,{class:`msr:text-[11px] msr:font-semibold msr:text-ink-700`}),a=X(`button`,{type:`button`,"aria-label":`Add layout guide`,class:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900`});return Z(t,r),Z(r,i),Z(r,a),Z(i,ec(`Layout guides`)),Q(a,Y(qm,{})),Q(t,Y(K,{get when(){return e.guides.length>0},get fallback(){var e=X(`p`,{class:`msr:px-1 msr:pb-2 msr:text-[11px] msr:text-ink-500`});return Z(e,ec(`Add columns, rows, or a pixel grid on the page.`)),e},get children(){var t=X(`ul`,{class:`mesurer-thin-scrollbar msr:m-0 msr:flex msr:min-h-0 msr:flex-1 msr:list-none msr:flex-col msr:gap-0.5 msr:overflow-y-auto msr:p-0`});return Q(t,Y(_o,{get each(){return e.guides},children:t=>(()=>{var r=X(`li`,{class:`msr:flex msr:items-center msr:gap-0.5`}),i=X(`button`,{type:`button`,class:`msr:flex msr:min-w-0 msr:flex-1 msr:items-center msr:gap-2 msr:rounded-control msr:px-1 msr:py-1 msr:text-left msr:text-[11px] msr:text-ink-700 msr:outline-none msr:hover:bg-ink-100`,onClick:()=>n(t.id)}),a=X(`span`,{class:`msr:flex msr:h-[19px] msr:items-start msr:text-ink-500`}),o=X(`span`,{class:`msr:min-w-0 msr:flex-1 msr:truncate`}),s=X(`button`,{type:`button`,onClick:()=>e.onUpdate(t.id,{visible:!t.visible})}),c=X(`button`,{type:`button`,class:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-400 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900`,onClick:()=>e.onRemove(t.id)});return Z(r,i),Z(r,s),Z(r,c),Z(i,a),Z(i,o),Q(a,Y(iT,{get kind(){return t.kind}})),Q(o,()=>nT(t)),Q(i,Y(Im,{size:8,class:`msr:block msr:-rotate-90 msr:text-ink-400`}),null),Q(s,(()=>{var e=J(()=>!!t.visible);return()=>e()?Y(Jm,{}):Y(Ym,{})})()),Q(c,Y(Rm,{size:10,class:`msr:block`})),q(()=>({e:t.visible?`Hide ${nT(t)}`:`Show ${nT(t)}`,t:t.visible?`true`:`false`,a:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:outline-none msr:hover:bg-ink-100 ${t.visible?`msr:text-ink-700`:`msr:text-ink-400`}`,o:`Remove ${nT(t)}`}),({e,t,a:n,o:r},i)=>{e!==i?.e&&$(s,`aria-label`,e,i?.e),t!==i?.t&&$(s,`aria-pressed`,t,i?.t),n!==i?.a&&$(s,`class`,n,i?.a),r!==i?.o&&$(c,`aria-label`,r,i?.o)}),r})()})),t}}),null),q(()=>e.onAdd,(e,t)=>{$(a,`onClick`,e,t)}),t},children:t=>Y(dT,{get guide(){return t()},get ownerWindow(){return e.ownerWindow},onBack:()=>n(null),onUpdate:n=>e.onUpdate(t().id,n)})})),i}var pT=`mesurer.layout-guides`,mT=`layout-guides:v1`,hT=`mesurer.layout-guides.pages`,gT=`mesurer.layout-guides.active`,_T=`runtime:solid`,vT=`layout-guides.toggle`,yT=`layout-guides.add`,bT=`layout-guides.update`,xT=`layout-guides.remove`,ST=`layout-guides.clear`,CT=240,wT=8,TT=8,ET=()=>({pages:{}}),DT=(e,t)=>e.pages[t]??[],OT=e=>typeof e==`object`&&!!e&&!Array.isArray(e),kT=e=>typeof e==`string`,AT=e=>typeof e==`boolean`,jT=e=>typeof e==`number`,MT=e=>e===`columns`||e===`rows`||e===`grid`,NT=e=>e===`stretch`||e===`min`||e===`center`||e===`max`,PT=e=>({...e}),FT=e=>e.map(PT),IT=e=>OT(e)?e:null,LT=e=>{if(!e)return{};let t={};return kT(e.id)&&(t.id=e.id),MT(e.kind)&&(t.kind=e.kind),AT(e.visible)&&(t.visible=e.visible),kT(e.color)&&(t.color=e.color),jT(e.opacity)&&(t.opacity=e.opacity),jT(e.count)&&(t.count=e.count),jT(e.size)&&(t.size=e.size),jT(e.gutter)&&(t.gutter=e.gutter),jT(e.offset)&&(t.offset=e.offset),NT(e.align)&&(t.align=e.align),t},RT=e=>{let t={};return e.id!==void 0&&(t.id=e.id),e.kind!==void 0&&(t.kind=e.kind),e.visible!==void 0&&(t.visible=e.visible),e.color!==void 0&&(t.color=e.color),e.opacity!==void 0&&(t.opacity=e.opacity),e.count!==void 0&&(t.count=e.count),e.size!==void 0&&(t.size=e.size),e.gutter!==void 0&&(t.gutter=e.gutter),e.offset!==void 0&&(t.offset=e.offset),e.align!==void 0&&(t.align=e.align),t},zT={viewBox:`0 0 256 256`,paths:[`M48 48h160v8H48zM48 200h160v8H48zM48 56h8v144h-8zM200 56h8v144h-8z`,`M101 56h8v144h-8zM147 56h8v144h-8z`]},BT=()=>wc({id:pT,version:`0.1.0`,requires:[_T],provides:[mT,`tool:layout-guides`],setup(e){let t=e.service.get(_T);if(!t)throw Error(`Layout Guides requires the Solid renderer runtime.`);let n=t.rendererRoot;if(!n)throw Error(`Layout Guides requires a mounted renderer root.`);e.state.register({id:hT,initial:ET(),history:!0,persist:!0}),e.state.register({id:gT,initial:!1});let r=Rl(t.ownerWindow),i=!1,[a,o]=G(0),s=new Set,c=0,l=()=>e.state.get(`mesurer.layout-guides.pages`)??ET(),u=()=>e.state.get(`mesurer.layout-guides.active`)??!1,d=()=>tT(DT(l(),r)),f=()=>(a(),u()?d():[]),p=t=>{e.state.update(gT,()=>t)},m=t=>{e.state.update(hT,e=>({...e,pages:{...e.pages,[r]:FT(t(tT(e.pages[r])))}}))};e.command.register(vT,()=>{let e=!u();return e&&d().length===0&&m(()=>[eT()]),i=e,p(e),u()}),e.command.register(yT,e=>{let t=eT(LT(IT(e)));return m(e=>[...e,t]),{...t}}),e.command.register(bT,e=>{let t=IT(e),n=t&&kT(t.id)?t.id:null,r=LT(IT(t?.patch));if(!n)throw Error(`layout-guides.update requires a guide id.`);m(e=>e.map(e=>e.id===n?eT({...e,...r,id:e.id}):e));let i=d().find(e=>e.id===n);if(!i)throw Error(`Layout guide not found: ${n}`);return{...i}}),e.command.register(xT,e=>{let t=IT(e),n=t&&kT(t.id)?t.id:null;if(!n)throw Error(`layout-guides.remove requires a guide id.`);let r=d().length;return m(e=>e.filter(e=>e.id!==n)),d().length!==r}),e.command.register(ST,()=>{m(()=>[])});let h=async(t,n)=>{let r=IT(await e.command.execute(t,n));if(!r)throw Error(`${t} did not return a layout guide.`);return eT(LT(r))},g={list:()=>d().map(e=>({...e})),add:(e={})=>h(yT,RT(e)),update:(e,t)=>h(bT,{id:e,patch:RT(t)}),async remove(t){return await e.command.execute(xT,{id:t})===!0},async clear(){await e.command.execute(ST)},subscribe(e){s.add(e);let t=!1;return()=>{t||(t=!0,s.delete(e))}}};e.service.provide(mT,g),e.tool.register({id:`layout-guides`,label:`Layout guides`,shortcut:`L`,command:vT,order:38,toolbarMode:`always`,compactPinned:!0,icon:zT,active:u});let _=t.ownerDocument.createElement(`div`);_.dataset.mesurerLayoutGuidesRoot=`true`,_.dataset.mesurerLayer=`evidence`,_.style.position=`absolute`,_.style.inset=`0`,_.style.pointerEvents=`none`,n.prepend(_);let v=$s(()=>Y(qw,{get guides(){return f()}}),_),y=t.createInspectorMount();y.element.dataset.mesurerLayoutGuidesPanelRoot=`true`,Object.assign(y.element.style,{position:`fixed`,left:`0`,top:`0`,width:`${CT}px`,zIndex:`100`,pointerEvents:`none`,display:`none`});let b=()=>{if(c=0,!i)return;let e=t.portalTarget.querySelector(`[data-mesurer-tool-id='layout-guides']`);if(!e)return;let n=e.getBoundingClientRect(),r=Math.min(Math.max(TT,n.right-CT),Math.max(TT,t.ownerWindow.innerWidth-CT-TT)),a=t.ownerWindow.innerHeight-n.bottom-wT-TT,o=Math.min(320,t.ownerWindow.innerHeight-16),s=a>=Math.min(o,320)?n.bottom+wT:Math.max(TT,n.top-wT-o);y.element.style.left=`${r}px`,y.element.style.top=`${s}px`},x=()=>{c||=t.ownerWindow.requestAnimationFrame(b)},S=()=>{y.element.style.display=i?`block`:`none`,i&&x()},C=$s(()=>Y(fT,{get guides(){return f()},get ownerWindow(){return t.ownerWindow},onAdd:()=>{g.add().catch(()=>void 0)},onUpdate:(e,t)=>{g.update(e,t).catch(()=>void 0)},onRemove:e=>{g.remove(e).catch(()=>void 0)}}),y.element),w=()=>{o(e=>e+1);for(let e of s)e();S()},T=e.state.subscribe(w),E=Hl(t.ownerWindow,e=>{r!==e&&(r=e,w())}),D=e=>{if(!i)return;let n=e.composedPath();if(n.includes(y.element))return;let r=t.portalTarget.querySelector(`[data-mesurer-tool-id='layout-guides']`);r&&n.includes(r)||(i=!1,S())},O=e=>{e.key!==`Escape`||!i||(i=!1,S())};S(),t.ownerDocument.addEventListener(`pointerdown`,D,!0),t.ownerDocument.addEventListener(`keydown`,O,!0),t.ownerWindow.addEventListener(`resize`,x),t.ownerWindow.addEventListener(`pointerup`,x,!0),e.lifecycle.onDispose(()=>{t.ownerDocument.removeEventListener(`pointerdown`,D,!0),t.ownerDocument.removeEventListener(`keydown`,O,!0),t.ownerWindow.removeEventListener(`resize`,x),t.ownerWindow.removeEventListener(`pointerup`,x,!0),c&&t.ownerWindow.cancelAnimationFrame(c),c=0,s.clear(),T.dispose(),E(),C(),y.dispose(),v(),_.remove()})}}),VT=`mesurer:recording-bridge-ping`,HT=`mesurer:recording-bridge-request`,UT=`mesurer:recording-bridge-response`,WT=`position:fixed;left:0;top:0;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none`,GT=.01,KT=e=>({width:e.innerWidth,height:e.innerHeight}),qT=(e,t,n,r)=>{let i=Math.max(1,r.width),a=Math.max(1,r.height),o=t/i,s=n/a,c=Math.abs(o-s)<=GT*Math.max(o,s),l=c?o:Math.min(o,s),u=c?0:(t-i*l)/2,d=c?0:(n-a*l)/2,f=c?o:l,p=c?s:l,m=u+e.left*f,h=d+e.top*p,g=u+(e.left+e.width)*f,_=d+(e.top+e.height)*p,v=Math.max(g-m,1e-6),y=Math.max(_-h,1e-6),b=Math.max(0,Math.min(t,m)),x=Math.max(0,Math.min(n,h)),S=Math.max(0,Math.min(t,g)),C=Math.max(0,Math.min(n,_)),w=Math.max(0,Math.round(b)),T=Math.max(0,Math.round(x)),E=Math.min(t,Math.round(S)),D=Math.min(n,Math.round(C));return{sx:w,sy:T,sw:Math.max(1,E-w),sh:Math.max(1,D-T),dx:(b-m)/v,dy:(x-h)/y,dw:Math.max(0,S-b)/v,dh:Math.max(0,C-x)/y}},JT=(e,t)=>{let n=e.createElement(`div`);return n.dataset.mesurerRecordingCrop=`true`,n.setAttribute(`aria-hidden`,`true`),n.style.position=`fixed`,n.style.left=`${t.left}px`,n.style.top=`${t.top}px`,n.style.width=`${t.width}px`,n.style.height=`${t.height}px`,n.style.margin=`0`,n.style.padding=`0`,n.style.border=`0`,n.style.background=`transparent`,n.style.opacity=`0`,n.style.pointerEvents=`none`,e.body.append(n),n},YT=async(e,t)=>{let n=e.cropTo,r=globalThis.CropTarget;if(!n||!r)return!1;let i=await r.fromElement(t);return await n.call(e,i),!0},XT=(e,t)=>new Promise(n=>{let r=!1,i=()=>{r||(r=!0,t.clearTimeout(a),n())},a=t.setTimeout(i,250),o=e;if(o.requestVideoFrameCallback){o.requestVideoFrameCallback(i);return}t.requestAnimationFrame(i)}),ZT=e=>e.location.origin===`null`?`*`:e.location.origin,QT=(e,t,n=``)=>`${e}:${t}:${n}`,$T=(e,t,n)=>{let r=`${t}:${n}:`;return e.startsWith(r)?e.slice(r.length):null},eE=e=>e.crypto?.randomUUID?.()??`mesurer-recording-${Date.now()}-${Math.random().toString(36).slice(2)}`,tE=e=>new Promise(t=>{let n=eE(e),r=e.location.origin,i=o=>{o.source===e&&o.origin===r&&$T(String(o.data??``),`mesurer:recording-bridge-pong`,n)!==null&&(e.removeEventListener(`message`,i),e.clearTimeout(a),t(!0))},a=e.setTimeout(()=>{e.removeEventListener(`message`,i),t(!1)},80);e.addEventListener(`message`,i),e.postMessage(QT(VT,n),ZT(e))}),nE=e=>new Promise(t=>{let n=eE(e),r=e.location.origin,i=o=>{if(o.source!==e||o.origin!==r)return;let s=$T(String(o.data??``),UT,n);if(s!==null){if(e.removeEventListener(`message`,i),e.clearTimeout(a),!s.startsWith(`ok:`)){t(null);return}t(s.slice(3)||null)}},a=e.setTimeout(()=>{e.removeEventListener(`message`,i),t(null)},1500);e.addEventListener(`message`,i),e.postMessage(QT(HT,n),ZT(e))}),rE=e=>e.__MESURER_RECORDING_HOST__?.captureRecordingStream??e.__MESURER_HOST__?.captureRecordingStream,iE=async(e,t)=>{let n=rE(e);if(!n)throw Error(`Native recording capture is unavailable.`);let r=(await n())?.streamId?.trim();if(!r)throw Error(`Native recording capture returned no stream id.`);let i={mandatory:{chromeMediaSource:`tab`,chromeMediaSourceId:r}};return t.getUserMedia({audio:!1,video:i})},aE=async(e,t)=>{if(!e.isSecureContext||!await tE(e))return null;let n=await nE(e);if(!n)return null;let r={mandatory:{chromeMediaSource:`tab`,chromeMediaSourceId:n}};return t.getUserMedia({audio:!1,video:r})},oE=async(e,t)=>{let n=e.getVideoTracks()[0];if(!n?.applyConstraints)return e;try{await n.applyConstraints({frameRate:{ideal:t,max:t}})}catch{}return e},sE=async(e,t)=>{let n=e.navigator.mediaDevices;if(!n)throw Error(`Screen recording is unavailable in this browser.`);if(rE(e))return oE(await iE(e,n),t);try{let r=await aE(e,n);if(r)return oE(r,t)}catch{}if(!n.getDisplayMedia)throw Error(`Screen recording is unavailable in this browser.`);let r={ideal:t,max:t},i={audio:!1,video:{displaySurface:`browser`,frameRate:r},preferCurrentTab:!0,selfBrowserSurface:`include`};try{return oE(await n.getDisplayMedia(i),t)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)throw e;return oE(await n.getDisplayMedia({audio:!1,video:{frameRate:r}}),t)}},cE=async(e,t,n,r=60)=>{let i=await sE(t,r),a=i.getVideoTracks()[0];if(!a)throw i.getTracks().forEach(e=>e.stop()),Error(`No video track was selected.`);if(a.getSettings().displaySurface&&a.getSettings().displaySurface!==`browser`)throw i.getTracks().forEach(e=>e.stop()),Error(`Select the current browser tab to record this region.`);let o=e.createElement(`video`);o.autoplay=!0,o.muted=!0,o.playsInline=!0,o.srcObject=i,o.setAttribute(`playsinline`,``),o.setAttribute(`aria-hidden`,`true`),o.style.cssText=WT,e.body.append(o);try{await o.play(),(o.videoWidth<=0||o.videoHeight<=0)&&await new Promise((e,t)=>{o.addEventListener(`loadeddata`,()=>e(),{once:!0}),o.addEventListener(`error`,()=>t(Error(`Could not read the selected video track.`)),{once:!0})});let r=JT(e,n),s=!1;try{s=await YT(a,r)}catch{s=!1}s||r.remove(),await XT(o,t);let c=t.devicePixelRatio||1,l=qT(n,o.videoWidth,o.videoHeight,KT(t)),u=e.createElement(`canvas`);u.width=s?Math.max(2,Math.round(n.width*c)):l.sw,u.height=s?Math.max(2,Math.round(n.height*c)):l.sh,u.setAttribute(`aria-hidden`,`true`),u.style.cssText=WT,e.body.append(u);let d=u.getContext(`2d`,{alpha:!1});if(!d)throw u.remove(),Error(`Screen recording requires a 2D canvas.`);let f={stream:i,track:a,source:o,canvas:u,context:d,cropTarget:s?r:null,regionLocked:s};return lE(f,n,KT(t)),f}catch(e){throw o.pause(),o.srcObject=null,o.remove(),i.getTracks().forEach(e=>e.stop()),e}},lE=(e,t,n)=>{let{source:r,canvas:i,context:a,regionLocked:o}=e;if(r.videoWidth<=0||r.videoHeight<=0)return;if(o){a.drawImage(r,0,0,i.width,i.height);return}let s=qT(t,r.videoWidth,r.videoHeight,n),c=s.dx<=.001&&s.dy<=.001&&s.dw>=.999&&s.dh>=.999,l=c?0:s.dx*i.width,u=c?0:s.dy*i.height,d=c?i.width:s.dw*i.width,f=c?i.height:s.dh*i.height;c||(a.fillStyle=`#000`,a.fillRect(0,0,i.width,i.height)),!(d<1||f<1||s.dw<=0||s.dh<=0)&&a.drawImage(r,s.sx,s.sy,s.sw,s.sh,l,u,d,f)},uE=e=>{e.source.pause(),e.source.srcObject=null,e.stream.getTracks().forEach(e=>e.stop()),e.cropTarget?.remove(),e.canvas.remove(),e.source.remove()},dE={webm:`video/webm`,mp4:`video/mp4`},fE=[`vp9`,`vp8`],pE=[`avc`],mE=t=>new e.Quality(t),hE=(e,t)=>Number.isFinite(e)&&e>0?e:t,gE=(e,t,n)=>{let r=Math.max(2,Math.round(hE(e,2))),i=Math.max(2,Math.round(hE(t,2)));return n===`mp4`&&(r%2!=0&&(r+=1),i%2!=0&&(i+=1)),{width:r,height:i}},_E=(e,t={})=>{let n=Math.max(.001,hE(e.duration,.001)),r=Math.min(n,Math.max(0,Number.isFinite(t.startTime)?t.startTime??0:0)),i=Number.isFinite(t.endTime)?t.endTime??n:n,a=Math.min(n,Math.max(r+.001,i));return{format:t.format??`webm`,startTime:r,endTime:a,scale:t.scale??1,quality:t.quality??`medium`}},vE=e=>e===`webm`?fE:pE,yE=async(t,n,r,i,a=`medium`)=>{let o=gE(n,r,t),s=mE(a);for(let n of vE(t))if(await(0,e.canEncodeVideo)(n,{width:o.width,height:o.height,frameRate:i,quality:s}))return n;return null},bE=async(e,t,n=30)=>{let r=[];return await yE(`webm`,e,t,n)&&r.push(`webm`),await yE(`mp4`,e,t,n)&&r.push(`mp4`),r},xE=t=>t===`webm`?new e.WebMOutputFormat:new e.Mp4OutputFormat,SE=async(t,n={})=>{let r=n.format??`webm`,i=Math.max(1,Math.min(120,Math.round(n.frameRate??30))),a=n.quality??`medium`,o=t.width,s=t.height,c=await yE(r,o,s,i,a);if(!c)throw Error(`MediaBunny cannot encode ${r.toUpperCase()} at ${o}×${s} in this runtime.`);let l=new e.BufferTarget,u=new e.Output({format:xE(r),target:l}),d=new e.CanvasSource(t,{codec:c,quality:mE(a)});u.addVideoTrack(d,{frameRate:i}),await u.start();let f=!1,p=-1;return{format:r,mimeType:dE[r],codec:c,async addFrame(e,t=1/i){if(f)throw Error(`Recording session is already closed.`);if(!Number.isFinite(e)||e<0)throw TypeError(`Recording frame timestamp must be a non-negative finite number.`);if(!Number.isFinite(t)||t<0)throw TypeError(`Recording frame duration must be a non-negative finite number.`);if(e<=p)throw Error(`Recording frame timestamps must increase monotonically.`);p=e,await d.add(e,t)},finalize:async()=>{if(f)throw Error(`Recording session is already closed.`);if(f=!0,d.close(),await u.finalize(),!l.buffer||l.buffer.byteLength===0)throw Error(`MediaBunny produced an empty recording.`);return new Blob([l.buffer],{type:dE[r]})},async cancel(){if(!f){f=!0,d.close();try{await u.cancel()}catch{}}}}},CE=async t=>{let n=new e.Input({source:new e.BlobSource(t),formats:e.ALL_FORMATS});try{if(!await n.canRead())throw Error(`MediaBunny cannot read the recording.`);let e=await n.getPrimaryVideoTrack();if(!e)throw Error(`Recording has no video track.`);let[t,r,i]=await Promise.all([n.computeDuration(),e.getCodedWidth(),e.getCodedHeight()]);return{duration:Math.max(.001,t),width:r,height:i}}finally{n.dispose()}},wE=async(t,n={})=>{let r=await CE(t),i=_E(r,n),a=gE(r.width*i.scale,r.height*i.scale,i.format),o=await yE(i.format,a.width,a.height,30,i.quality);if(!o)throw Error(`MediaBunny cannot export ${i.format.toUpperCase()} in this runtime.`);let s=new e.Input({source:new e.BlobSource(t),formats:e.ALL_FORMATS}),c=new e.BufferTarget,l=new e.Output({format:xE(i.format),target:c});try{let t=await e.Conversion.init({input:s,output:l,trim:{start:i.startTime,end:i.endTime},video:{codec:o,width:a.width,height:a.height,fit:`fill`,quality:mE(i.quality),forceTranscode:!0},audio:{discard:!0}});if(!t.isValid)throw Error(`MediaBunny cannot convert this recording to ${i.format.toUpperCase()}.`);if(await t.execute(),!c.buffer||c.buffer.byteLength===0)throw Error(`MediaBunny produced an empty export.`);let n=new Blob([c.buffer],{type:dE[i.format]}),r=await CE(n);return{blob:n,format:i.format,duration:r.duration,width:r.width,height:r.height}}finally{s.dispose()}},TE=(e,t=new Date)=>`mesurer-recording-${t.toISOString().replace(/[:.]/g,`-`)}.${e}`,EE=10,DE=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},OE=(e,t,n)=>{let r=e.createElement(`button`);return r.type=`button`,r.setAttribute(`aria-label`,t),r.title=t,r.textContent=n,DE(r,{display:`inline-flex`,width:`20px`,height:`20px`,padding:`0`,border:`0`,"border-radius":`5px`,background:`transparent`,color:`var(--msr-content, #18181b)`,"align-items":`center`,"justify-content":`center`,"font-family":`inherit`,"font-size":`11px`,"line-height":`1`,cursor:`pointer`}),r},kE=(e,t)=>{let n=e.createElement(`button`);n.type=`button`,n.setAttribute(`role`,`menuitemradio`),DE(n,{display:`grid`,width:`100%`,height:`28px`,padding:`0 8px`,border:`0`,"border-radius":`6px`,background:`transparent`,color:`var(--msr-content, #18181b)`,"grid-template-columns":`14px minmax(0, 1fr)`,gap:`6px`,"align-items":`center`,"text-align":`left`,"font-family":`inherit`,"font-size":`11px`,cursor:`pointer`});let r=e.createElement(`span`);r.setAttribute(`aria-hidden`,`true`),r.textContent=`✓`,r.style.opacity=`0`;let i=e.createElement(`span`);return i.textContent=t,n.append(r,i),{button:n,check:r,text:i}},AE=({ownerDocument:e,root:t})=>{let n=e.createElement(`section`);n.dataset.mesurerRecordingPreview=`true`,n.dataset.mesurerInspectorUi=`true`,n.setAttribute(`role`,`dialog`),n.setAttribute(`aria-label`,`Screen recording editor`),n.tabIndex=0,DE(n,{position:`fixed`,display:`none`,width:`352px`,"max-width":`calc(100vw - 16px)`,padding:`8px`,"z-index":`98`,"box-sizing":`border-box`,overflow:`visible`,"border-radius":`13px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`,"font-size":`11px`,"pointer-events":`auto`,outline:`none`,transform:`translateX(-50%)`,transition:`width 200ms ease`}),t.append(n);let r=e.createElement(`div`);DE(r,{position:`relative`,display:`flex`,width:`100%`,"min-height":`72px`,"max-height":`144px`,overflow:`hidden`,"border-radius":`8px`,background:`var(--msr-surface-muted, #f8fafc)`,"align-items":`center`,"justify-content":`center`,transition:`max-height 200ms ease`,cursor:`default`}),n.append(r);let i=e.createElement(`video`);i.muted=!0,i.playsInline=!0,i.preload=`auto`,DE(i,{display:`block`,width:`100%`,height:`100%`,"max-width":`100%`,"max-height":`144px`,"object-fit":`contain`,transition:`max-height 200ms ease`}),r.append(i);let a=e.createElement(`div`);a.dataset.mesurerRecordingExporting=`true`,a.textContent=`Exporting…`,DE(a,{position:`absolute`,inset:`0`,display:`none`,"align-items":`center`,"justify-content":`center`,"z-index":`30`,background:`rgb(15 23 42 / 45%)`,color:`#fff`,"font-size":`11px`,"pointer-events":`none`}),r.append(a);let o=OE(e,`Close`,`×`);o.dataset.mesurerRecordingDiscard=`true`,DE(o,{position:`absolute`,top:`6px`,right:`6px`,width:`24px`,height:`24px`,"z-index":`40`,background:`rgb(15 23 42 / 78%)`,color:`#fff`,opacity:`0`,"pointer-events":`none`,transition:`opacity 150ms ease`}),r.append(o),r.addEventListener(`mouseenter`,()=>{o.style.opacity=`1`,o.style.pointerEvents=`auto`}),r.addEventListener(`mouseleave`,()=>{e.activeElement!==o&&(o.style.opacity=`0`,o.style.pointerEvents=`none`)}),o.addEventListener(`focus`,()=>{o.style.opacity=`1`,o.style.pointerEvents=`auto`}),o.addEventListener(`blur`,()=>{o.style.opacity=`0`,o.style.pointerEvents=`none`});let s=e.createElement(`div`);DE(s,{display:`flex`,height:`28px`,"align-items":`center`,gap:`8px`,"margin-top":`8px`}),n.append(s);let c=OE(e,`Play`,`▶`);c.dataset.mesurerRecordingPlay=`true`,s.append(c);let l=e.createElement(`span`);l.dataset.mesurerRecordingCurrentTime=`true`,l.textContent=`0:00.00`,DE(l,{display:`flex`,width:`8ch`,"min-width":`8ch`,height:`20px`,"align-items":`center`,"flex-shrink":`0`,color:`var(--msr-color-ink-500, #64748b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"white-space":`nowrap`}),s.append(l);let u=e.createElement(`div`);u.dataset.mesurerRecordingTimeline=`true`,DE(u,{position:`relative`,height:`28px`,"min-width":`0`,flex:`1 1 0`,cursor:`pointer`,"user-select":`none`}),s.append(u);let d=e.createElement(`div`);d.dataset.mesurerRecordingTimelineTrack=`true`,DE(d,{position:`absolute`,left:`${EE}px`,right:`${EE}px`,top:`0`,bottom:`0`}),u.append(d);let f=e.createElement(`div`);f.dataset.mesurerRecordingTimelineRail=`true`,DE(f,{position:`absolute`,left:`0`,right:`0`,top:`21px`,height:`3px`,transform:`translateY(-50%)`,"border-radius":`999px`,background:`var(--msr-color-ink-200, #e2e8f0)`,"pointer-events":`none`}),d.append(f);let p=e.createElement(`div`);p.dataset.mesurerRecordingTimelineClip=`true`,DE(p,{position:`absolute`,top:`21px`,height:`3px`,transform:`translateY(-50%)`,"border-radius":`999px`,background:`var(--msr-color-ink-300, #cbd5e1)`,"pointer-events":`none`}),d.append(p);let m=e.createElement(`div`);DE(m,{position:`absolute`,display:`none`,top:`21px`,width:`2px`,height:`10px`,transform:`translate(-50%, -50%)`,"border-radius":`999px`,background:`var(--msr-color-ink-500, #64748b)`,opacity:`0.5`,"pointer-events":`none`}),d.append(m);let h=e.createElement(`div`);h.dataset.mesurerRecordingPlayhead=`true`,DE(h,{position:`absolute`,top:`21px`,left:`0`,width:`2px`,height:`9px`,transform:`translate(-50%, -50%)`,"border-radius":`999px`,background:`var(--msr-content, #18181b)`,"z-index":`25`,"pointer-events":`none`,transition:`height 150ms ease`}),d.append(h);let g=(t,n)=>{let r=e.createElement(`button`);r.type=`button`,r.dataset.mesurerRecordingTrimHandle=t,r.setAttribute(`role`,`slider`),r.setAttribute(`aria-label`,n),r.setAttribute(`aria-valuemin`,`0`),DE(r,{position:`absolute`,top:`0`,display:`flex`,width:`20px`,height:`16px`,padding:`0`,border:`0`,"border-radius":`4px`,background:`transparent`,color:`var(--msr-content, #18181b)`,transform:`translateX(-50%)`,"z-index":`30`,"align-items":`center`,"justify-content":`center`,cursor:`ew-resize`,"touch-action":`none`});let i=e.createElementNS(`http://www.w3.org/2000/svg`,`svg`);i.dataset.mesurerRecordingTrimChevron=t,i.setAttribute(`aria-hidden`,`true`),i.setAttribute(`viewBox`,`0 0 12 14`),i.setAttribute(`width`,`12`),i.setAttribute(`height`,`14`);let a=e.createElementNS(`http://www.w3.org/2000/svg`,`path`);a.setAttribute(`d`,t===`start`?`M3.5 2.5L8.5 7L3.5 11.5`:`M8.5 2.5L3.5 7L8.5 11.5`),a.setAttribute(`fill`,`none`),a.setAttribute(`stroke`,`currentColor`),a.setAttribute(`stroke-width`,`2`),a.setAttribute(`stroke-linecap`,`round`),a.setAttribute(`stroke-linejoin`,`round`),i.append(a),r.append(i);let o=e.createElement(`span`);return o.setAttribute(`aria-hidden`,`true`),DE(o,{position:`absolute`,left:`50%`,top:`15px`,width:`1px`,height:`4px`,background:`var(--msr-content, #18181b)`,transform:`translateX(-50%)`,"pointer-events":`none`}),r.append(o),d.append(r),r},_=g(`start`,`Trim start`),v=g(`end`,`Trim end`),y=e.createElement(`span`);y.dataset.mesurerRecordingDuration=`true`,DE(y,{display:`flex`,width:`8ch`,"min-width":`8ch`,height:`20px`,"align-items":`center`,"justify-content":`flex-end`,"flex-shrink":`0`,color:`var(--msr-color-ink-500, #64748b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"white-space":`nowrap`}),s.append(y);let b=e.createElement(`div`);DE(b,{position:`relative`,display:`flex`,height:`20px`,"align-items":`center`}),s.append(b);let x=OE(e,`Export options`,`1×`);x.dataset.mesurerRecordingExportOptions=`true`,x.setAttribute(`aria-haspopup`,`menu`),x.setAttribute(`aria-expanded`,`false`),DE(x,{width:`28px`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`}),b.append(x);let S=e.createElement(`div`);S.dataset.mesurerRecordingExportMenu=`true`,S.setAttribute(`role`,`menu`),DE(S,{position:`absolute`,display:`none`,right:`0`,bottom:`24px`,width:`176px`,padding:`4px`,"z-index":`120`,border:`1px solid var(--msr-color-ink-200, #e2e8f0)`,"border-radius":`9px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))`,"pointer-events":`auto`}),b.append(S);let C=e.createElement(`p`);C.textContent=`Format`,DE(C,{margin:`0`,padding:`4px 8px`,color:`var(--msr-color-ink-500, #64748b)`,"font-size":`10px`,"font-weight":`500`}),S.append(C);let w=e.createElement(`div`);S.append(w);let T=e.createElement(`p`);T.textContent=`Size`,DE(T,{margin:`0`,padding:`6px 8px 4px`,color:`var(--msr-color-ink-500, #64748b)`,"font-size":`10px`,"font-weight":`500`}),S.append(T);let E=e.createElement(`div`);S.append(E);let D=[1,2,3].map(t=>{let n=kE(e,`${t}×`);return n.button.dataset.mesurerRecordingScale=String(t),E.append(n.button),{scale:t,...n}}),O=OE(e,`Download`,`↓`);O.dataset.mesurerRecordingExport=`true`,s.append(O);let k=OE(e,`Grow preview`,`↗`);k.dataset.mesurerRecordingExpand=`true`,s.append(k);let A=e.createElement(`p`);return A.dataset.mesurerRecordingPreviewStatus=`true`,A.setAttribute(`role`,`status`),DE(A,{display:`none`,margin:`8px 0 0`,color:`var(--msr-color-ink-500, #64748b)`,"font-size":`11px`,"line-height":`16px`}),n.append(A),{panel:n,previewShell:r,video:i,exportingOverlay:a,close:o,play:c,currentTime:l,timeline:u,track:d,clip:p,hoverMarker:m,playhead:h,trimStart:_,trimEnd:v,durationLabel:y,exportAnchor:b,exportOptions:x,exportMenu:S,formatRows:w,scaleRows:D,download:O,expand:k,status:A}},jE=8,ME=8,NE=.05,PE=200,FE=e=>{let t=Number.isFinite(e)?Math.max(0,e):0,n=Math.floor(t/60);return`${n}:${(t-n*60).toFixed(2).padStart(5,`0`)}`},IE=(e,t,n,r)=>{let i=globalThis.URL.createObjectURL(e),a=n.createElement(`a`);a.href=i,a.download=t,a.rel=`noopener`,n.documentElement.append(a),a.click(),a.remove(),r.setTimeout(()=>globalThis.URL.revokeObjectURL(i),1e3)},LE=({ownerDocument:e,ownerWindow:t,root:n,formats:r,onDiscard:i,onExport:a})=>{let{panel:o,previewShell:s,video:c,exportingOverlay:l,close:u,play:d,currentTime:f,timeline:p,track:m,clip:h,hoverMarker:g,playhead:_,trimStart:v,trimEnd:y,durationLabel:b,exportAnchor:x,exportOptions:S,exportMenu:C,formatRows:w,scaleRows:T,download:E,expand:D,status:O}=AE({ownerDocument:e,root:n}),k=null,A=null,j=!1,M=!1,N=0,P=[`webm`],F=`webm`,I=1,L=0,R=0,z=null,B=null,V=null,H=e=>{let t=k?.duration??0;return t<=0?0:Math.min(1,Math.max(0,e/t))},U=()=>({start:L,end:R}),ee=e=>{let t=k?.duration??0,n=m.getBoundingClientRect();return t<=0||n.width<=0?0:Math.min(t,Math.max(0,(e-n.left)/n.width*t))},W=()=>{let e=k?.duration??0,t=Math.min(e,Math.max(0,c.currentTime||0)),n=H(L)*100,r=H(R)*100;v.style.left=`${n}%`,y.style.left=`${r}%`,h.style.left=`${n}%`,h.style.width=`${Math.max(0,r-n)}%`,_.style.left=`${H(t)*100}%`,v.setAttribute(`aria-valuemax`,String(Math.max(0,R-NE))),v.setAttribute(`aria-valuenow`,String(L)),v.setAttribute(`aria-valuetext`,FE(L)),y.setAttribute(`aria-valuemin`,String(Math.min(e,L+NE))),y.setAttribute(`aria-valuemax`,String(e)),y.setAttribute(`aria-valuenow`,String(R)),y.setAttribute(`aria-valuetext`,FE(R)),f.textContent=FE(t),b.textContent=FE(e)},te=(e,t=!0)=>{if(!k)return;let n=Math.min(R,Math.max(L,e));t&&!c.paused&&c.pause(),c.currentTime=n,W()},ne=(e,t=!1)=>{k&&(L=Math.min(Math.max(0,e),Math.max(0,R-NE)),(t||c.currentTime<L)&&te(L),W())},re=(e,t=!1)=>{k&&(R=Math.max(Math.min(k.duration,e),Math.min(k.duration,L+NE)),t?te(R):c.currentTime>R&&te(L),W())},ie=()=>{S.textContent=`${I}×`;for(let e of T){let t=e.scale===I;e.button.setAttribute(`aria-checked`,t?`true`:`false`),e.check.style.opacity=t?`1`:`0`,e.text.textContent=k?`${e.scale}× ${Math.round(k.width*e.scale)} × ${Math.round(k.height*e.scale)}`:`${e.scale}×`}},ae=()=>{w.replaceChildren();for(let t of P){let n=kE(e,t===`mp4`?`MP4`:`WebM`),r=t===F;n.button.dataset.mesurerRecordingFormat=t,n.button.setAttribute(`aria-checked`,r?`true`:`false`),n.check.style.opacity=r?`1`:`0`,n.button.addEventListener(`click`,()=>{F=t,ae()}),w.append(n.button)}},oe=()=>{if(C.style.display===`none`)return;let e=x.getBoundingClientRect(),n=Math.max(1,C.offsetHeight),r=e.top-jE,i=t.innerHeight-e.bottom-jE;r>=n||r>=i?(C.style.top=`auto`,C.style.bottom=`24px`):(C.style.top=`24px`,C.style.bottom=`auto`)},se=e=>{C.style.display=e?`block`:`none`,S.setAttribute(`aria-expanded`,e?`true`:`false`),e&&oe()},ce=e=>{M=e,l.style.display=e?`flex`:`none`;for(let t of[d,u,v,y,S,E,D,...T.map(e=>e.button)])t.toggleAttribute(`disabled`,e)},le=()=>n.closest(`[data-mesurer-root='true']`)?.querySelector(`[data-mesurer-tool-id='recording']`)??e.querySelector(`[data-mesurer-tool-id='recording']`),ue=()=>{if(o.style.display===`none`)return;let e=Math.min(j?576:352,Math.max(1,t.innerWidth-16)),n=Math.max(180,o.offsetHeight),r=le()?.getBoundingClientRect(),i=r?r.left+r.width/2:t.innerWidth-jE-e/2,a=jE+e/2,s=Math.max(a,t.innerWidth-jE-e/2),c=Math.min(Math.max(a,i),s),l=r?r.bottom+ME:jE;l+n>t.innerHeight-jE&&(l=r?r.top-n-ME:t.innerHeight-n-jE),o.style.left=`${c}px`,o.style.top=`${Math.max(jE,l)}px`,C.style.display!==`none`&&oe()},de=()=>{c.pause(),c.removeAttribute(`src`),c.load(),A&&=(globalThis.URL.revokeObjectURL(A),null)},fe=()=>{N+=1,V&&=(V.cancel(),null),de(),k=null,z=null,B=null,se(!1),o.style.display=`none`,o.style.pointerEvents=`auto`,o.style.opacity=`1`,o.style.transform=`translateX(-50%)`,o.style.removeProperty(`transform-origin`),o.style.removeProperty(`will-change`),O.style.display=`none`,ce(!1)},pe=()=>{if(!k||o.style.display===`none`||V)return;let e=o.getBoundingClientRect(),t=le()?.getBoundingClientRect(),n=t?t.left+t.width/2:e.left+e.width/2,r=t?t.top+t.height/2:e.top+e.height/2;c.pause(),se(!1),o.style.pointerEvents=`none`,o.style.left=`${e.left}px`,o.style.top=`${e.top}px`,o.style.transform=`none`,o.style.transformOrigin=`${n-e.left}px ${r-e.top}px`,o.style.willChange=`transform, opacity`;let a=o.animate([{transform:`scale(1)`,opacity:1},{transform:`scale(0.08)`,opacity:0}],{duration:PE,easing:`ease`,fill:`forwards`});V=a,a.finished.catch(()=>void 0).then(()=>{V===a&&(a.cancel(),V=null,o.style.removeProperty(`will-change`),i())})},me=()=>{if(!(!k||M)){if(!c.paused){c.pause();return}(c.currentTime<L||c.currentTime>=R)&&(c.currentTime=L),c.play()}},he=()=>{z=null,B=null,_.style.height=`8px`},ge=e=>{if(!z)return;let t=ee(e);z===`start`?ne(t,!0):z===`end`?re(t,!0):te(t)},_e=(e,t)=>{!k||M||t.button!==0||(t.preventDefault(),t.stopPropagation(),z=e,B=t.pointerId,_.style.height=`10px`,ge(t.clientX))},ve=e=>{B!==null&&e.pointerId===B&&ge(e.clientX)},ye=e=>{B!==null&&e.pointerId===B&&he()};v.addEventListener(`pointerdown`,e=>_e(`start`,e)),y.addEventListener(`pointerdown`,e=>_e(`end`,e)),p.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-trim-handle]`)||_e(`playhead`,e)}),p.addEventListener(`pointermove`,e=>{B===null&&(g.style.display=`block`,g.style.left=`${H(ee(e.clientX))*100}%`)}),p.addEventListener(`pointerleave`,()=>{g.style.display=`none`});for(let[e,t]of[[`start`,v],[`end`,y]])t.addEventListener(`keydown`,t=>{if(!k||t.key!==`ArrowLeft`&&t.key!==`ArrowRight`)return;t.preventDefault();let n=t.key===`ArrowLeft`?-1:1,r=(e===`start`?L:R)+n*.05;e===`start`?ne(r,!0):re(r,!0)});t.addEventListener(`pointermove`,ve,!0),t.addEventListener(`pointerup`,ye,!0),t.addEventListener(`pointercancel`,ye,!0),u.addEventListener(`click`,e=>{e.stopPropagation(),pe()}),s.addEventListener(`click`,e=>{let t=e.target;t instanceof Element&&t.closest(`button`)||me()}),d.addEventListener(`click`,me),c.addEventListener(`play`,()=>{d.textContent=`Ⅱ`,d.setAttribute(`aria-label`,`Pause`),d.title=`Pause`}),c.addEventListener(`pause`,()=>{d.textContent=`▶`,d.setAttribute(`aria-label`,`Play`),d.title=`Play`}),c.addEventListener(`timeupdate`,()=>{k&&(c.currentTime>=R-.01?(c.pause(),c.currentTime=L):c.currentTime<L&&(c.currentTime=L),W())}),c.addEventListener(`loadedmetadata`,()=>{W()}),S.addEventListener(`click`,()=>{M||se(C.style.display===`none`)});for(let e of T)e.button.addEventListener(`click`,()=>{I=e.scale,ie()});let be=e=>{C.style.display!==`none`&&(e.composedPath().includes(x)||se(!1))};e.addEventListener(`pointerdown`,be,!0),D.addEventListener(`click`,()=>{j=!j,o.style.width=`${j?576:352}px`,s.style.maxHeight=j?`448px`:`144px`,c.style.maxHeight=j?`448px`:`144px`,D.textContent=j?`↙`:`↗`,D.setAttribute(`aria-label`,j?`Shrink preview`:`Grow preview`),D.title=j?`Shrink preview`:`Grow preview`,t.requestAnimationFrame(ue)}),E.addEventListener(`click`,()=>{if(!k||M||P.length===0)return;let n=++N,{start:r,end:i}=U();ce(!0),se(!1),O.style.display=`none`,a({format:F,startTime:r,endTime:i,scale:I}).then(r=>{n===N&&IE(r.blob,r.filename,e,t)}).catch(e=>{n===N&&(O.style.display=`block`,O.style.color=`var(--msr-danger-text, #dc2626)`,O.textContent=e instanceof Error?e.message:`Could not export the recording.`)}).finally(()=>{n===N&&ce(!1)})}),o.addEventListener(`keydown`,e=>{if(e.key===`Escape`){if(C.style.display!==`none`){e.preventDefault(),se(!1);return}e.preventDefault(),pe();return}(e.key===` `||e.code===`Space`)&&e.target===o&&(e.preventDefault(),me())});let xe=()=>ue();return t.addEventListener(`resize`,xe),{show(e){N+=1,V&&=(V.cancel(),null),o.style.pointerEvents=`auto`,o.style.opacity=`1`,o.style.transform=`translateX(-50%)`,o.style.removeProperty(`transform-origin`),o.style.removeProperty(`will-change`),de(),k=e,j=!1,I=1,F=`webm`,P=[`webm`],L=0,R=e.duration,z=null,B=null;let n=globalThis.URL.createObjectURL(e.blob);A=n,c.src=n,c.currentTime=0,s.style.aspectRatio=e.width>0&&e.height>0?`${e.width} / ${e.height}`:`16 / 9`,o.style.width=`352px`,s.style.maxHeight=`144px`,c.style.maxHeight=`144px`,D.textContent=`↗`,D.setAttribute(`aria-label`,`Grow preview`),D.title=`Grow preview`,f.textContent=`0:00.00`,b.textContent=FE(e.duration),O.style.display=`none`,O.style.color=`var(--msr-color-ink-500, #64748b)`,se(!1),ae(),ie(),W(),ce(!1),o.style.display=`block`,ue(),o.focus({preventScroll:!0});let i=N;r(e).then(e=>{i!==N||!k||(P=e,F=e.includes(F)?F:e[0]??`webm`,ae(),E.disabled=e.length===0,e.length===0&&(O.style.display=`block`,O.style.color=`var(--msr-danger-text, #dc2626)`,O.textContent=`No MediaBunny video encoder is available in this runtime.`))}).catch(e=>{i===N&&(P=[],ae(),E.disabled=!0,O.style.display=`block`,O.style.color=`var(--msr-danger-text, #dc2626)`,O.textContent=e instanceof Error?e.message:`Could not inspect export support.`)}),t.requestAnimationFrame(ue)},dismiss:fe,dispose(){fe(),t.removeEventListener(`resize`,xe),t.removeEventListener(`pointermove`,ve,!0),t.removeEventListener(`pointerup`,ye,!0),t.removeEventListener(`pointercancel`,ye,!0),e.removeEventListener(`pointerdown`,be,!0),o.remove()}}},RE=3e3,zE=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},BE=({ownerDocument:e,ownerWindow:t,root:n,statusRoot:r,rendererRoot:i,isSelecting:a,isRecording:o,onRectChange:s,onConfirm:c,onCancel:l,onStop:u,setRecordingInteractionActive:d})=>{let f=e.createElement(`div`);f.dataset.mesurerRecordingSelect=`true`,f.dataset.mesurerInspectorUi=`true`,f.setAttribute(`role`,`application`),f.setAttribute(`aria-label`,`Recording selection`),zE(f,{position:`fixed`,inset:`0`,display:`none`,"z-index":`86`,cursor:`crosshair`,"pointer-events":`auto`,"user-select":`none`,"touch-action":`none`}),n.append(f);let p=Array.from({length:4},()=>{let t=e.createElement(`div`);return t.dataset.mesurerRecordingShade=`true`,zE(t,{position:`fixed`,background:`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),f.append(t),t}),m=e.createElement(`div`);m.dataset.mesurerRecordingMask=`true`,zE(m,{position:`fixed`,display:`none`,background:`transparent`,outline:`2px solid var(--msr-accent, #0d99ff)`,"outline-offset":`-1px`,"box-shadow":`0 0 0 100vmax rgb(0 0 0 / 40%)`,"pointer-events":`none`}),f.append(m);let h=e.createElement(`div`);h.dataset.mesurerRecordingSelection=`true`,zE(h,{position:`fixed`,display:`none`,border:`1px solid var(--msr-accent, #0d99ff)`,"box-sizing":`border-box`,"pointer-events":`none`}),f.append(h);let g=e.createElement(`div`);zE(g,{position:`fixed`,display:`none`,transform:`translateX(-50%)`,padding:`2px 5px`,"border-radius":`4px`,background:`var(--msr-accent, #0d99ff)`,color:`#fff`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"pointer-events":`none`}),f.append(g);let _=e.createElement(`div`);_.textContent=`Drag a region to record · Esc to cancel`,zE(_,{position:`fixed`,left:`50%`,bottom:`16px`,transform:`translateX(-50%)`,padding:`5px 8px`,"border-radius":`6px`,background:`var(--msr-content, #18181b)`,color:`var(--msr-surface, #fff)`,"font-size":`11px`,"pointer-events":`none`}),f.append(_);let v=e.createElement(`div`);v.dataset.mesurerRecordingRegion=`true`,v.dataset.mesurerInspectorUi=`true`,v.setAttribute(`role`,`dialog`),v.setAttribute(`aria-label`,`Recording region`),zE(v,{position:`fixed`,display:`none`,width:`220px`,padding:`8px`,"z-index":`90`,"box-sizing":`border-box`,overflow:`hidden`,"border-radius":`10px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 10px 30px rgba(0,0,0,.12))`,"font-size":`11px`,"pointer-events":`auto`,transform:`translateX(-50%)`}),f.append(v);let y=t=>{let n=e.createElement(`label`);zE(n,{display:`grid`,"grid-template-columns":`44px minmax(0,1fr)`,"align-items":`center`,gap:`8px`});let r=e.createElement(`span`);r.textContent=t,r.style.color=`var(--msr-color-ink-500, #64748b)`,n.append(r);let i=e.createElement(`div`);return zE(i,{display:`flex`,"align-items":`center`,gap:`4px`,"min-width":`0`}),n.append(i),v.append(n),i},b=t=>{let n=e.createElement(`input`);return n.type=`number`,n.setAttribute(`aria-label`,t),n.step=`1`,zE(n,{width:`0`,"min-width":`0`,flex:`1 1 0`,height:`26px`,padding:`0 6px`,border:`1px solid var(--msr-color-ink-200, #e2e8f0)`,"border-radius":`6px`,background:`var(--msr-surface, #fff)`,color:`var(--msr-content, #18181b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`}),n},x=y(`Size`),S=b(`Width`),C=b(`Height`);x.append(S);let w=e.createElement(`span`);w.textContent=`×`,w.style.color=`var(--msr-color-ink-500, #64748b)`,x.append(w,C);let T=e.createElement(`span`);T.textContent=`px`,T.style.color=`var(--msr-color-ink-500, #64748b)`,x.append(T);let E=y(`Position`);E.style.marginTop=`8px`;let D=b(`Left`),O=b(`Top`);E.append(D,O);let k=e.createElement(`span`);k.textContent=`px`,k.style.color=`var(--msr-color-ink-500, #64748b)`,E.append(k);let A=e.createElement(`button`);A.type=`button`,A.dataset.mesurerRecordingStart=`true`,A.textContent=`● Start recording`,zE(A,{width:`100%`,height:`28px`,"margin-top":`8px`,border:`1px solid var(--msr-color-ink-200, #e2e8f0)`,"border-radius":`7px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"font-family":`inherit`,"font-size":`11px`,"font-weight":`500`,cursor:`pointer`}),v.append(A);let j=e.createElement(`div`);j.dataset.mesurerRecordingGrid=`true`,zE(j,{position:`absolute`,inset:`0`,display:`none`,"pointer-events":`none`}),h.append(j);let M=t=>{let n=e.createElement(`div`);zE(n,{position:`absolute`,opacity:`0.3`,...t}),j.append(n)};M({left:`33.333%`,top:`0`,bottom:`0`,borderLeft:`1px dashed var(--msr-color-ink-500, #64748b)`}),M({left:`66.666%`,top:`0`,bottom:`0`,borderLeft:`1px dashed var(--msr-color-ink-500, #64748b)`}),M({top:`33.333%`,left:`0`,right:`0`,borderTop:`1px dashed var(--msr-color-ink-500, #64748b)`}),M({top:`66.666%`,left:`0`,right:`0`,borderTop:`1px dashed var(--msr-color-ink-500, #64748b)`});let N=Object.entries({nw:{left:`0`,top:`0`},n:{left:`50%`,top:`0`},ne:{left:`100%`,top:`0`},e:{left:`100%`,top:`50%`},se:{left:`100%`,top:`100%`},s:{left:`50%`,top:`100%`},sw:{left:`0`,top:`100%`},w:{left:`0`,top:`50%`}}).map(([t,n])=>{let r=e.createElement(`button`);return r.type=`button`,r.dataset.mesurerRecordingResize=t,r.setAttribute(`aria-label`,`Resize ${t}`),zE(r,{position:`absolute`,display:`none`,left:n.left,top:n.top,width:`8px`,height:`8px`,padding:`0`,border:`1px solid var(--msr-color-white, #fff)`,"border-radius":`999px`,background:`var(--msr-color-ink-900, #18181b)`,"box-shadow":`0 0 0 1px rgb(0 0 0 / 25%)`,transform:`translate(-50%, -50%)`,cursor:t===`n`||t===`s`?`ns-resize`:t===`e`||t===`w`?`ew-resize`:t===`nw`||t===`se`?`nwse-resize`:`nesw-resize`,"pointer-events":`auto`}),h.append(r),r}),P=e.createElement(`section`);P.dataset.mesurerRecordingStatus=`true`,P.dataset.mesurerInspectorUi=`true`,P.setAttribute(`aria-label`,`Screen recording`),zE(P,{position:`fixed`,display:`none`,height:`34px`,padding:`0 8px`,"align-items":`center`,gap:`8px`,border:`0`,"border-radius":`9px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 8px 24px rgba(0,0,0,.14))`,"font-family":`inherit`,"font-size":`11px`,"pointer-events":`auto`});let F=e.createElement(`span`);F.setAttribute(`aria-hidden`,`true`),zE(F,{width:`6px`,height:`6px`,"border-radius":`999px`,background:`var(--msr-danger-solid-bg, #dc2626)`,"flex-shrink":`0`}),P.append(F);let I=e.createElement(`span`);I.dataset.mesurerRecordingTime=`true`,I.textContent=`00:00`,zE(I,{color:`var(--msr-content, #18181b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`11px`,"font-variant-numeric":`tabular-nums`}),P.append(I);let L=e.createElement(`button`);L.type=`button`,L.dataset.mesurerRecordingStop=`true`,L.textContent=`Stop`,L.setAttribute(`aria-label`,`Stop recording`),zE(L,{height:`24px`,padding:`0 8px`,border:`0`,"border-radius":`6px`,background:`var(--msr-danger-solid-bg, #dc2626)`,color:`var(--msr-danger-solid-text, #fff)`,"font-family":`inherit`,"font-size":`11px`,"font-weight":`500`,cursor:`pointer`}),P.append(L),r.append(P);let R=e.createElement(`div`);R.dataset.mesurerRecordingError=`true`,R.dataset.mesurerInspectorUi=`true`,R.setAttribute(`role`,`status`),zE(R,{position:`fixed`,display:`none`,left:`8px`,top:`8px`,"z-index":`99`,padding:`6px 8px`,"border-radius":`6px`,background:`var(--msr-danger, #b42318)`,color:`#fff`,"font-size":`11px`,"pointer-events":`none`}),r.append(R);let z=null,B=null,V=!1,H=null,U=0,ee=()=>{z=null,B=null,V=!1,H=null},W=(e,t)=>{for(let n of[`left`,`top`,`width`,`height`]){let r=t[n];r===void 0?e.style.removeProperty(n):e.style.setProperty(n,`${r}px`)}},te=e=>{let n=t.innerWidth,r=t.innerHeight,i=Math.min(n,Math.max(4,Math.round(e.width))),a=Math.min(r,Math.max(4,Math.round(e.height)));return{left:Math.min(Math.max(0,Math.round(e.left)),Math.max(0,n-i)),top:Math.min(Math.max(0,Math.round(e.top)),Math.max(0,r-a)),width:i,height:a}},ne=(e,t)=>t.x>=e.left&&t.x<=e.left+e.width&&t.y>=e.top&&t.y<=e.top+e.height,re=e=>{let n=t.innerWidth,r=t.innerHeight;if(!e||e.width<=0||e.height<=0){W(p[0],{left:0,top:0,width:n,height:r});for(let e of p.slice(1))W(e,{left:0,top:0,width:0,height:0});h.style.display=`none`,h.style.pointerEvents=`none`,j.style.display=`none`;for(let e of N)e.style.display=`none`;g.style.display=`none`,v.style.display=`none`,_.textContent=`Drag to select a region · Esc to cancel`;return}if(W(p[0],{left:0,top:0,width:n,height:e.top}),W(p[1],{left:0,top:e.top,width:e.left,height:e.height}),W(p[2],{left:e.left+e.width,top:e.top,width:Math.max(0,n-e.left-e.width),height:e.height}),W(p[3],{left:0,top:e.top+e.height,width:n,height:Math.max(0,r-e.top-e.height)}),h.style.display=`block`,W(h,e),V){h.style.pointerEvents=`auto`,h.style.cursor=`move`,j.style.display=`block`;for(let e of N)e.style.display=`block`;g.style.display=`none`,S.value=String(Math.round(e.width)),C.value=String(Math.round(e.height)),D.value=String(Math.round(e.left)),O.value=String(Math.round(e.top)),S.max=String(n),C.max=String(r),D.max=String(Math.max(0,n-e.width)),O.max=String(Math.max(0,r-e.height));let t=Math.min(Math.max(118,e.left+e.width/2),Math.max(118,n-110-8)),i=e.top+e.height+12,a=i+112<=r?i:Math.max(8,e.top-112);v.style.left=`${t}px`,v.style.top=`${a}px`,v.style.display=`block`,_.textContent=`Adjust region · Enter to start · Esc to cancel`}else{h.style.pointerEvents=`none`,h.style.cursor=``,j.style.display=`none`;for(let e of N)e.style.display=`none`;v.style.display=`none`,g.style.display=`block`,g.textContent=`${Math.round(e.width)} × ${Math.round(e.height)}`,W(g,{left:e.left+e.width/2,top:Math.min(r-22,e.top+e.height+6)}),_.textContent=`Drag to select a region · Esc to cancel`}},ie=e=>{let t=te(e);B=t,s(t),re(t)},ae=e=>{ee();for(let e of p)W(e,{left:0,top:0,width:0,height:0});W(m,e),m.style.display=`block`,h.style.display=`none`,g.style.display=`none`,v.style.display=`none`,j.style.display=`none`,_.style.display=`none`;for(let e of N)e.style.display=`none`;f.style.display=`block`,f.style.pointerEvents=`none`,f.style.cursor=`default`},oe=()=>{d(!1),m.style.display=`none`,f.style.display=`none`,f.style.pointerEvents=`auto`,f.style.cursor=`crosshair`,_.style.removeProperty(`display`)},se=()=>{ee(),re(null),f.style.display=`none`,f.style.cursor=`crosshair`,n.style.pointerEvents=`none`},ce=e=>{let n=t.innerHeight,r=t.innerWidth;P.style.visibility=`hidden`,P.style.display=`flex`;let a=Math.max(112,P.offsetWidth||112),o=Math.min(r-a-8,Math.max(8,e.left+e.width/2-a/2)),s=i?.querySelector(`[data-mesurer-toolbar='true']`)?.getBoundingClientRect(),c=[e.top>=50?e.top-34-8:null,n-(e.top+e.height)>=50?e.top+e.height+8:null].filter(e=>e!==null),l=e=>s?o<s.right&&o+a>s.left&&e<s.bottom&&e+34>s.top:!1,u=c.find(e=>!l(e))??c[0]??null;if(u===null){P.style.display=`none`,P.style.removeProperty(`visibility`);return}P.style.left=`${o}px`,P.style.top=`${u}px`,P.style.removeProperty(`visibility`)},le=()=>{P.style.display=`none`},ue=e=>{U&&t.clearTimeout(U);let n=e instanceof Error?e.message:`Could not record this region.`;R.textContent=n,R.style.display=`block`,U=t.setTimeout(()=>{U=0,R.style.display=`none`},RE)},de=(e,t,n)=>{let r=B;!V||!r||e.button!==0||(e.preventDefault(),e.stopPropagation(),H={kind:t,handle:n,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,rect:{...r}},f.setPointerCapture?.(e.pointerId))},fe=e=>{!a()||e.button!==0||V&&B&&ne(B,{x:e.clientX,y:e.clientY})||(e.preventDefault(),e.stopPropagation(),V=!1,B=null,s(null),f.style.cursor=`crosshair`,z={x:e.clientX,y:e.clientY},re(Yc(z,z,{width:t.innerWidth,height:t.innerHeight})),f.setPointerCapture?.(e.pointerId))},pe=e=>{if(a()){if(H){let n=H,r=e.clientX-n.startX,i=e.clientY-n.startY,a=t.innerWidth,o=t.innerHeight;if(n.kind===`move`){ie({...n.rect,left:n.rect.left+r,top:n.rect.top+i});return}let s=n.handle??``,c=n.rect.left,l=n.rect.top,u=n.rect.left+n.rect.width,d=n.rect.top+n.rect.height;s.includes(`w`)&&(c=Math.min(u-4,Math.max(0,n.rect.left+r))),s.includes(`e`)&&(u=Math.max(c+4,Math.min(a,n.rect.left+n.rect.width+r))),s.includes(`n`)&&(l=Math.min(d-4,Math.max(0,n.rect.top+i))),s.includes(`s`)&&(d=Math.max(l+4,Math.min(o,n.rect.top+n.rect.height+i))),ie({left:c,top:l,width:u-c,height:d-l});return}z&&re(Yc(z,{x:e.clientX,y:e.clientY},{width:t.innerWidth,height:t.innerHeight}))}},me=e=>{if(H){H=null,f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId),B&&re(B);return}let n=z;if(z=null,!a()||!n)return;f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId);let r=Yc(n,{x:e.clientX,y:e.clientY},{width:t.innerWidth,height:t.innerHeight});if(r.width<4||r.height<4){B=null,V=!1,s(null),re(null);return}B=te(r),V=!0,f.style.cursor=`default`,s(B),re(B)},he=e=>{z=null,H=null,f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId),re(B&&V?B:null)},ge=e=>{if(e.key===`Enter`&&a()&&V&&B){e.preventDefault(),e.stopImmediatePropagation(),c(B).catch(()=>void 0);return}if(e.key===`Escape`){if(a()){e.preventDefault(),e.stopImmediatePropagation(),l().catch(()=>void 0);return}o()&&(e.preventDefault(),e.stopImmediatePropagation(),u().catch(()=>void 0))}};f.addEventListener(`pointerdown`,fe),f.addEventListener(`pointermove`,pe),f.addEventListener(`pointerup`,me),f.addEventListener(`pointercancel`,he),t.addEventListener(`keydown`,ge,!0),h.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-resize]`)||de(e,`move`)});for(let e of N)e.addEventListener(`pointerdown`,t=>{de(t,`resize`,e.dataset.mesurerRecordingResize)});v.addEventListener(`pointerdown`,e=>{e.stopPropagation()}),v.addEventListener(`click`,e=>{e.stopPropagation()});let _e=(e,t)=>{let n=B,r=Number(e.value);!n||!Number.isFinite(r)||ie({...n,[t]:r})};return S.addEventListener(`change`,()=>_e(S,`width`)),C.addEventListener(`change`,()=>_e(C,`height`)),D.addEventListener(`change`,()=>_e(D,`left`)),O.addEventListener(`change`,()=>_e(O,`top`)),A.addEventListener(`click`,()=>{a()&&V&&B&&c(B).catch(()=>void 0)}),L.addEventListener(`click`,()=>{if(o()){u().catch(()=>void 0);return}a()&&P.style.display!==`none`&&l().catch(()=>void 0)}),{startSelection:()=>{ee(),re(null),f.style.display=`block`,f.style.pointerEvents=`auto`,_.style.removeProperty(`display`),n.style.pointerEvents=`auto`},finishSelection:se,showRecordingMask:ae,hideRecordingMask:oe,placeRecordingStatus:ce,hideRecordingStatus:le,setRecordingTime(e){I.textContent=e},flashError:ue,dispose(){f.removeEventListener(`pointerdown`,fe),f.removeEventListener(`pointermove`,pe),f.removeEventListener(`pointerup`,me),f.removeEventListener(`pointercancel`,he),t.removeEventListener(`keydown`,ge,!0),U&&t.clearTimeout(U),se()}}},VE=e=>{let t=null,n=()=>{let e=t;e&&(t=null,e.pointerEvents||e.pointerEventsPriority?e.element.style.setProperty(`pointer-events`,e.pointerEvents,e.pointerEventsPriority):e.element.style.removeProperty(`pointer-events`),e.cursor||e.cursorPriority?e.element.style.setProperty(`cursor`,e.cursor,e.cursorPriority):e.element.style.removeProperty(`cursor`))};return{setActive(r){if(e?.toggleAttribute(`data-mesurer-recording-active`,r),!r){n();return}let i=e?.querySelector(`[data-mesurer-interaction-overlay='true']`);i&&((!t||t.element!==i)&&(n(),t={element:i,pointerEvents:i.style.getPropertyValue(`pointer-events`),pointerEventsPriority:i.style.getPropertyPriority(`pointer-events`),cursor:i.style.getPropertyValue(`cursor`),cursorPriority:i.style.getPropertyPriority(`cursor`)}),i.style.setProperty(`pointer-events`,`none`,`important`),i.style.setProperty(`cursor`,`default`,`important`))}}},HE=`mesurer.recording`,UE=`recording:v1`,WE=`mesurer.recording.settings`,GE=`runtime:solid`,KE=`recording.toggle`,qE=`recording.stop`,JE=`recording.discard`,YE=`recording.export`,XE=60,ZE=60,QE={viewBox:`0 0 24 24`,paths:[`M7 5.75A3.25 3.25 0 0 0 3.75 9v6A3.25 3.25 0 0 0 7 18.25h7A3.25 3.25 0 0 0 17.25 15v-1.03l2.13 1.42a.75.75 0 0 0 1.17-.624V9.234a.75.75 0 0 0-1.17-.624l-2.13 1.42V9A3.25 3.25 0 0 0 14 5.75H7Zm10.25 6.082 1.8-1.2v2.736l-1.8-1.2v-.336Z`,`M10.5 9.25a2.75 2.75 0 1 0 0 5.5 2.75 2.75 0 0 0 0-5.5Z`]},$E=e=>e?{...e}:null,eD=e=>({...e,rect:$E(e.rect)}),tD=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},nD=e=>e!=null&&!Array.isArray(e)&&typeof e==`object`,rD=e=>typeof e==`number`&&Number.isFinite(e),iD=e=>{if(!nD(e))return{};let t={};return(e.format===`webm`||e.format===`mp4`)&&(t.format=e.format),rD(e.startTime)&&(t.startTime=e.startTime),rD(e.endTime)&&(t.endTime=e.endTime),(e.scale===1||e.scale===2||e.scale===3)&&(t.scale=e.scale),t},aD=e=>({status:e.status,elapsed:e.elapsed,rect:e.rect?{...e.rect}:null,duration:e.duration,width:e.width,height:e.height,error:e.error}),oD=e=>({filename:e.filename,format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size}),sD=e=>({format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size,createdAt:e.createdAt}),cD=(e,t,n)=>{let r=globalThis.URL.createObjectURL(e.blob),i=t.createElement(`a`);i.href=r,i.download=e.filename,i.rel=`noopener`,t.documentElement.append(i),i.click(),i.remove(),n.setTimeout(()=>globalThis.URL.revokeObjectURL(r),1e3)},lD=(e={})=>wc({id:HE,version:`0.1.0`,requires:[GE],provides:[`tool:recording`,UE],setup(t){let n=t.service.get(GE);if(!n)throw Error(`Recording plugin requires the Solid renderer runtime.`);let{ownerDocument:r,ownerWindow:i}=n,a=n.createInspectorMount(),o=a.element,s=n.createInspectorMount(),c=s.element,l=n.rendererRoot??n.portalTarget.querySelector(`[data-mesurer-root='true']`),u=VE(l);o.dataset.mesurerRecording=`true`,c.dataset.mesurerRecordingStatusRoot=`true`,tD(o,{position:`fixed`,inset:`0`,"z-index":`86`,"pointer-events":`none`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`}),tD(c,{position:`fixed`,inset:`0`,"z-index":`96`,"pointer-events":`none`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`});let d=Math.max(1,Math.min(600,e.maxDurationSeconds??ZE)),f=e.quality??`medium`;t.state.register({id:WE,initial:{toolEnabled:e.toolEnabled??!0,frameRate:e.frameRate??XE},persist:!0});let p=()=>{let e=t.state.get(WE);return{toolEnabled:e?.toolEnabled??!0,frameRate:e?.frameRate===120?120:60}},m=e=>{t.state.update(WE,t=>{let n={...t};return e.toolEnabled!==void 0&&(n.toolEnabled=e.toolEnabled),(e.frameRate===60||e.frameRate===120)&&(n.frameRate=e.frameRate),n})},h={status:`idle`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null},g=new Set,_=null,v=null,y=null,b=null,x,S=null,C=0,w=0,T=0,E=0,D=-1,O=!1,k=null,A=()=>{let e=eD(h);for(let t of g)t(e)},j=e=>{h={...h,...e,rect:e.rect===void 0?h.rect:$E(e.rect)},A()},M=()=>h.status===`selecting`||h.status===`recording`||h.status===`exporting`,N=()=>{if(S)return;let e=n.portalTarget.querySelector(`[data-mesurer-toolbar='true']`);e&&(S={element:e,value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)},e.style.setProperty(`visibility`,`hidden`,`important`))},P=()=>{if(!S)return;let e=S;S=null,e.value||e.priority?e.element.style.setProperty(`visibility`,e.value,e.priority):e.element.style.removeProperty(`visibility`)},F=async e=>{C&&i.cancelAnimationFrame(C),C=0,w&&i.clearTimeout(w),w=0;let t=b;if(b=null,t)try{await t}catch{}let n=y;y=null,e&&await n?.cancel();let r=v;v=null,r&&uE(r),x.hideRecordingMask(),x.hideRecordingStatus()},I=()=>{_=null,z.dismiss(),j({status:`idle`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null}),t.hook.emit(`recording:discard`,{})},L=async()=>{let e=_;return bE(e?.width??Math.max(2,Math.round(i.innerWidth)),e?.height??Math.max(2,Math.round(i.innerHeight)),p().frameRate)},R=async(e={})=>{let n=_;if(!n)throw Error(`No recording is ready to export.`);let r=h.status;j({status:`exporting`,error:null});try{let r=await wE(n.blob,e),i={...r,filename:TE(r.format)};return j({status:`ready`,duration:n.duration,width:n.width,height:n.height,error:null}),await t.hook.emit(`recording:export`,{filename:i.filename,format:i.format,duration:i.duration,width:i.width,height:i.height,bytes:i.blob.size}),i}catch(e){throw j({status:r===`ready`?`ready`:`error`,error:e instanceof Error?e.message:`Could not export the recording.`}),e}},z=LE({ownerDocument:r,ownerWindow:i,root:o,formats:async()=>L(),onDiscard:I,onExport:R}),B=async()=>{if(k)return k;if(h.status!==`recording`||!y||!v)throw Error(`No recording is active.`);let e=T,n=y,r=v,a=$E(h.rect);if(!a)throw Error(`Recording region is unavailable.`);return k=(async()=>{C&&i.cancelAnimationFrame(C),C=0,w&&i.clearTimeout(w),w=0;let s=b;b=null,s&&await s;let c=await n.finalize();if(y=null,v=null,uE(r),T!==e||O)throw Error(`Recording was cancelled.`);let l=await CE(c),u={blob:c,format:`webm`,duration:l.duration,width:l.width,height:l.height,createdAt:Date.now()};return _=u,x.hideRecordingMask(),x.hideRecordingStatus(),P(),o.style.pointerEvents=`none`,j({status:`ready`,elapsed:l.duration,duration:l.duration,width:l.width,height:l.height,error:null}),z.show(u),await t.hook.emit(`recording:ready`,{rect:a,duration:l.duration,width:l.width,height:l.height,bytes:c.size}),u})().catch(async t=>{if(await F(!0),P(),T===e&&!O){let e=t instanceof Error?t.message:`Could not finish the recording.`;j({status:`error`,error:e}),x.flashError(t)}throw t}).finally(()=>{k=null}),k},V=(e,t,n,r)=>{let a=1/r,o=r=>{if(O||T!==n||h.status!==`recording`||y!==t||v!==e)return;let s=Math.max(0,(r-E)/1e3);j({elapsed:s}),x.setRecordingTime(`${String(Math.floor(s/60)).padStart(2,`0`)}:${String(Math.floor(s%60)).padStart(2,`0`)}`);let c=s;!b&&c-D>=a*.8&&(lE(e,h.rect??{left:0,top:0,width:i.innerWidth,height:i.innerHeight},KT(i)),D=c,b=t.addFrame(c,a).catch(e=>{throw T===n&&!O&&F(!0).then(()=>{P();let t=e instanceof Error?e.message:`MediaBunny could not encode the recording.`;j({status:`error`,error:t}),x.flashError(e)}),e}).finally(()=>{b=null})),C=i.requestAnimationFrame(o)};C=i.requestAnimationFrame(o)},H=async e=>{let n=++T,a=p().frameRate;z.dismiss(),_=null,x.showRecordingMask(e),o.style.pointerEvents=`none`,u.setActive(!0),P(),j({status:`selecting`,elapsed:0,rect:e,duration:null,width:null,height:null,error:null}),x.setRecordingTime(`00:00`),x.placeRecordingStatus(e);try{let s=await cE(r,i,e,a);if(O||T!==n){uE(s);return}let c=await SE(s.canvas,{format:`webm`,frameRate:a,quality:f});if(O||T!==n){await c.cancel(),uE(s);return}if(v=s,y=c,E=i.performance.now(),D=0,lE(s,e,KT(i)),await c.addFrame(0,1/a),O||T!==n){await F(!0);return}j({status:`recording`,elapsed:0}),o.style.pointerEvents=`none`,u.setActive(!0),x.showRecordingMask(e),x.setRecordingTime(`00:00`),x.placeRecordingStatus(e),V(s,c,n,a),s.track.addEventListener(`ended`,()=>{T===n&&h.status===`recording`&&B().catch(()=>void 0)},{once:!0}),w=i.setTimeout(()=>{T===n&&h.status===`recording`&&B().catch(()=>void 0)},d*1e3),await t.hook.emit(`recording:start`,{rect:{...e},frameRate:a,maxDurationSeconds:d})}catch(t){if(await F(!0),P(),T!==n||O)return;let r=t instanceof DOMException&&t.name===`AbortError`,i=r?null:t instanceof Error?t.message:`Could not start the recording.`;throw j({status:r?`idle`:`error`,rect:r?null:e,error:i}),r||x.flashError(t),t}},U=()=>{h.status!==`selecting`&&(++T,z.dismiss(),_=null,N(),x.startSelection(),j({status:`selecting`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null}))},ee=async e=>{if(h.status===`recording`){await B();return}if(h.status===`selecting`){await W();return}if(!e){U();return}if(e.width<4||e.height<4)throw Error(`Recording selection must be at least 4px by 4px.`);await H(e)},W=async()=>{++T,x.finishSelection(),await F(!0),P(),h.status!==`ready`&&j({status:`idle`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null})};x=BE({ownerDocument:r,ownerWindow:i,root:o,statusRoot:c,rendererRoot:l,isSelecting:()=>h.status===`selecting`,isRecording:()=>h.status===`recording`,onRectChange:e=>j({rect:e}),onConfirm:H,onCancel:W,onStop:async()=>{await B()},setRecordingInteractionActive:u.setActive});let te={snapshot:()=>eD(h),subscribe(e){return g.add(e),()=>g.delete(e)},settings:p,setSettings:m,formats:L,start:ee,stop:B,cancel:W,discard:I,export:R};t.tool.register({id:`recording`,label:`Record`,shortcut:`Shift+R`,order:72,command:KE,toolbarMode:`select`,compactPinned:!0,icon:QE,active:M,hidden:()=>!p().toolEnabled,menu:{label:`Recording options`,items:[{id:`new`,label:`New recording`,disabled:()=>h.status===`recording`||h.status===`exporting`,run:()=>ee()},{id:`stop`,label:`Stop recording`,disabled:()=>h.status!==`recording`,run:()=>B().then(()=>void 0)},{id:`discard`,label:`Discard clip`,disabled:()=>_===null,run:I}]}}),t.settings.register({id:`recording`,label:`Recording`,order:42,controls:[{type:`toggle`,id:`tool`,label:`Recording tool`,description:`Show selected-region video recording in the Select toolbar.`,value:()=>p().toolEnabled,set:async e=>{m({toolEnabled:e}),!e&&M()&&await W()}},{type:`toggle`,id:`120-fps`,label:`120 fps`,description:`Record at 120 fps when the capture source supports it. Off records at 60 fps.`,value:()=>p().frameRate===120,disabled:M,set:e=>{m({frameRate:e?120:60})}}]}),t.command.register(KE,async()=>(await ee(),aD(h))),t.command.register(qE,async()=>sD(await B())),t.command.register(JE,()=>(I(),aD(h))),t.command.register(YE,async e=>{let t=await R(iD(e));return cD(t,r,i),oD(t)}),t.service.provide(UE,te),t.lifecycle.onDispose(()=>{O=!0,++T,g.clear(),z.dispose(),x.dispose(),P(),F(!0),s.dispose(),a.dispose()})}}),uD=144,dD=96,fD=8,pD=4,mD=1800,hD=200,gD=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},_D=(e,t)=>({left:Math.min(Math.max(fD,e.left),Math.max(fD,t.innerWidth-uD-fD)),top:Math.min(Math.max(fD,e.top),Math.max(fD,t.innerHeight-dD-fD))}),vD=(e,t)=>{let n=e.createElement(`button`);return n.type=`button`,n.textContent=t,gD(n,{height:`32px`,padding:`0 12px`,border:`1px solid rgb(255 255 255 / 18%)`,"border-radius":`8px`,"background-color":`rgb(28 28 30 / 84%)`,color:`white`,"font-family":`inherit`,"font-size":`12px`,"font-weight":`500`,cursor:`pointer`}),n},yD=({copied:e,downloaded:t,copyFailed:n,downloadFailed:r})=>e&&t?`Copied and saved screenshot`:e&&r?`Copied screenshot · Save unavailable`:t&&n?`Saved screenshot · Copy unavailable`:e?`Copied screenshot`:t?`Saved screenshot`:n&&r?`Screenshot captured · Copy and save unavailable`:n?`Screenshot captured · Copy unavailable`:r?`Screenshot captured · Save unavailable`:`Screenshot captured`,bD=e=>e!==null&&(e.nodeType===1||e.nodeType===11),xD=({ownerDocument:e,ownerWindow:t,root:n,previewDurationMs:r})=>{let i=n.closest(`[data-mesurer-root='true']`)??n.parentNode;if(!bD(i))throw Error(`Screenshot preview requires a mounted Mesurer host.`);let a=e.createElement(`div`);a.dataset.mesurerInspectorUi=`true`,a.dataset.mesurerScreenshotInteractive=`true`,gD(a,{position:`fixed`,left:`0`,top:`0`,width:`0`,height:`0`,overflow:`visible`,"z-index":`96`,"pointer-events":`auto`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`}),i.append(a);let o=e.createElement(`div`);o.dataset.mesurerScreenshotPreview=`true`,o.setAttribute(`role`,`button`),o.setAttribute(`aria-label`,`Open captured screenshot`),o.tabIndex=0,gD(o,{position:`fixed`,display:`none`,"z-index":`96`,width:`${uD}px`,height:`${dD}px`,"box-sizing":`border-box`,overflow:`hidden`,"border-radius":`10px`,border:`1px solid rgb(0 0 0 / 14%)`,"background-color":`white`,"box-shadow":`0 2px 8px rgb(0 0 0 / 12%)`,"pointer-events":`auto`,cursor:`grab`,"user-select":`none`,"touch-action":`none`});let s=e.createElement(`img`);s.dataset.mesurerScreenshotPreviewImage=`true`,s.alt=`Captured screenshot`,s.draggable=!1,s.title=`Click to open · Right-click for browser image actions`,gD(s,{display:`block`,width:`100%`,height:`100%`,"object-fit":`contain`,"background-color":`white`}),o.append(s);let c=e.createElement(`button`);c.dataset.mesurerScreenshotPreviewDismiss=`true`,c.type=`button`,c.setAttribute(`aria-label`,`Dismiss screenshot preview`),c.title=`Dismiss`,gD(c,{position:`absolute`,top:`8px`,right:`8px`,width:`20px`,height:`20px`,display:`flex`,"align-items":`center`,"justify-content":`center`,"box-sizing":`border-box`,padding:`0`,border:`0`,"border-radius":`999px`,"background-color":`rgb(48 51 64)`,color:`white`,"font-family":`inherit`,"font-size":`14px`,"line-height":`1`,"z-index":`2`,cursor:`pointer`,"touch-action":`none`});let l=e.createElementNS(`http://www.w3.org/2000/svg`,`svg`);l.setAttribute(`viewBox`,`0 0 16 16`),l.setAttribute(`width`,`12`),l.setAttribute(`height`,`12`),l.setAttribute(`fill`,`none`),l.setAttribute(`aria-hidden`,`true`);let u=e.createElementNS(`http://www.w3.org/2000/svg`,`path`);u.setAttribute(`d`,`m4 4 8 8M12 4l-8 8`),u.setAttribute(`stroke`,`currentColor`),u.setAttribute(`stroke-width`,`1.75`),u.setAttribute(`stroke-linecap`,`round`),l.append(u),c.append(l),o.append(c),a.append(o);let d=e.createElement(`div`);d.dataset.mesurerScreenshotViewer=`true`,d.setAttribute(`role`,`dialog`),d.setAttribute(`aria-modal`,`true`),d.setAttribute(`aria-label`,`Screenshot viewer`),gD(d,{position:`fixed`,inset:`0`,display:`none`,"z-index":`110`,"align-items":`center`,"justify-content":`center`,padding:`56px 48px 40px`,"box-sizing":`border-box`,"background-color":`rgb(0 0 0 / 72%)`,"backdrop-filter":`blur(8px)`,"pointer-events":`auto`});let f=e.createElement(`img`);f.dataset.mesurerScreenshotViewerImage=`true`,f.alt=`Captured screenshot`,gD(f,{display:`block`,"max-width":`calc(100vw - 96px)`,"max-height":`calc(100vh - 112px)`,width:`auto`,height:`auto`,"object-fit":`contain`,"border-radius":`8px`,"box-shadow":`0 8px 30px rgb(0 0 0 / 28%)`}),d.append(f);let p=e.createElement(`div`);p.dataset.mesurerScreenshotViewerControls=`true`,gD(p,{position:`fixed`,top:`16px`,right:`16px`,display:`flex`,gap:`8px`,"pointer-events":`auto`});let m=vD(e,`Copy`);m.dataset.mesurerScreenshotViewerCopy=`true`,m.setAttribute(`aria-label`,`Copy screenshot`);let h=vD(e,`Save`);h.dataset.mesurerScreenshotViewerSave=`true`,h.setAttribute(`aria-label`,`Save screenshot`);let g=vD(e,`Close`);g.dataset.mesurerScreenshotViewerClose=`true`,g.setAttribute(`aria-label`,`Close screenshot viewer`),p.append(m,h,g),d.append(p),a.append(d);let _=e.createElement(`div`);_.dataset.mesurerScreenshotToast=`true`,_.setAttribute(`role`,`status`),gD(_,{position:`fixed`,left:`50%`,bottom:`20px`,display:`none`,"z-index":`120`,transform:`translateX(-50%)`,padding:`7px 10px`,"border-radius":`8px`,"background-color":`rgb(28 28 30 / 90%)`,color:`white`,"font-size":`12px`,"font-weight":`500`,"pointer-events":`none`}),a.append(_);let v=null,y=null,b=null,x=null,S=0,C=0,w=null,T=!1,E=()=>{S&&t.clearTimeout(S),S=0},D=()=>{C&&t.clearTimeout(C),C=0},O=(e,n=!1)=>{D(),_.textContent=e,_.style.backgroundColor=n?`#b42318`:`rgb(28 28 30 / 90%)`,_.style.display=`block`,C=t.setTimeout(()=>{C=0,_.style.display=`none`},mD)},k=()=>{d.style.display=`none`},A=()=>{y&&globalThis.URL.revokeObjectURL(y),y=null,v=null,s.removeAttribute(`src`),f.removeAttribute(`src`)},j=()=>{E(),k(),w&&=(w.cancel(),null),o.style.display=`none`,o.style.opacity=`1`,o.style.transform=`none`,o.style.removeProperty(`will-change`),o.style.pointerEvents=`auto`,A()},M=()=>{if(!v||o.style.display===`none`||w)return;E(),k();let e=o.getBoundingClientRect(),n=Math.max(152,t.innerWidth-e.left+fD);o.style.pointerEvents=`none`,o.style.willChange=`transform, opacity`;let r=o.animate([{transform:`translateX(0) scale(1)`,opacity:1},{transform:`translateX(${n}px) scale(0.92)`,opacity:0}],{duration:hD,easing:`ease`,fill:`forwards`});w=r,r.finished.catch(()=>void 0).then(()=>{w===r&&(r.cancel(),w=null,j())})},N=()=>_D({left:t.innerWidth-uD-fD,top:t.innerHeight-dD-fD},t),P=e=>{let n=_D(e,t);b=n,o.style.left=`${n.left}px`,o.style.top=`${n.top}px`},F=()=>{!v||!y||(E(),d.style.display=`flex`,g.focus())},I=async()=>{let e=v;if(e)try{await Zc(Promise.resolve(e),t),O(`Copied screenshot`)}catch{O(`Could not copy screenshot`,!0)}},L=()=>{let n=v;if(n)try{$c(n,Qc(),e,t),O(`Saved screenshot`)}catch{O(`Could not save screenshot`,!0)}},R=(e,t,n)=>{if(!v)return!1;E();let r=o.getBoundingClientRect();return x={pointerId:n,startX:e,startY:t,left:r.left,top:r.top,moved:!1},o.style.cursor=`grabbing`,!0},z=(e,t)=>{let n=x;if(!n)return;let r=e-n.startX,i=t-n.startY;!n.moved&&Math.hypot(r,i)>=pD&&(n.moved=!0),n.moved&&P({left:n.left+r,top:n.top+i})},B=()=>{let e=x;e&&(x=null,o.style.cursor=`grab`,e.moved||F())},V=()=>{x&&(x=null,o.style.cursor=`grab`)},H=e=>{e.button!==0||!R(e.clientX,e.clientY,null)||e.preventDefault()},U=e=>{x?.pointerId===null&&z(e.clientX,e.clientY)},ee=e=>{e.button===0&&x?.pointerId===null&&B()},W=e=>{e.pointerType!==`mouse`&&e.button===0&&R(e.clientX,e.clientY,e.pointerId)&&(o.setPointerCapture?.(e.pointerId),e.preventDefault())},te=e=>{let t=x?.pointerId;t!=null&&t===e.pointerId&&z(e.clientX,e.clientY)},ne=e=>{let t=x?.pointerId;t!=null&&t===e.pointerId&&(o.hasPointerCapture?.(e.pointerId)&&o.releasePointerCapture(e.pointerId),B())},re=e=>{let t=x?.pointerId;t!=null&&t===e.pointerId&&(o.hasPointerCapture?.(e.pointerId)&&o.releasePointerCapture(e.pointerId),V())},ie=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),F())},ae=e=>{e.target!==s&&e.preventDefault()},oe=e=>{e.target===d&&k()},se=e=>{e.key===`Escape`&&d.style.display!==`none`&&(e.preventDefault(),e.stopImmediatePropagation(),k())};return c.addEventListener(`pointerdown`,e=>e.stopPropagation()),c.addEventListener(`mousedown`,e=>e.stopPropagation()),c.addEventListener(`click`,e=>{e.stopPropagation(),M()}),o.addEventListener(`mousedown`,H),o.addEventListener(`pointerdown`,W),o.addEventListener(`keydown`,ie),o.addEventListener(`contextmenu`,ae),d.addEventListener(`click`,oe),m.addEventListener(`click`,()=>{I()}),h.addEventListener(`click`,L),g.addEventListener(`click`,k),t.addEventListener(`mousemove`,U,!0),t.addEventListener(`mouseup`,ee,!0),t.addEventListener(`pointermove`,te,!0),t.addEventListener(`pointerup`,ne,!0),t.addEventListener(`pointercancel`,re,!0),t.addEventListener(`keydown`,se,!0),{show(e,n){if(T)return;E(),k(),w&&=(w.cancel(),null),o.style.opacity=`1`,o.style.transform=`none`,o.style.willChange=`transform, opacity`,o.style.pointerEvents=`auto`,A(),v=e;let i=globalThis.URL.createObjectURL(e);y=i,s.src=i,f.src=i,o.style.display=`block`,P(b??N()),O(yD(n)),r>0&&(S=t.setTimeout(j,r))},dismiss:j,dispose(){T||(T=!0,E(),D(),j(),t.removeEventListener(`mousemove`,U,!0),t.removeEventListener(`mouseup`,ee,!0),t.removeEventListener(`pointermove`,te,!0),t.removeEventListener(`pointerup`,ne,!0),t.removeEventListener(`pointercancel`,re,!0),t.removeEventListener(`keydown`,se,!0),o.removeEventListener(`mousedown`,H),o.removeEventListener(`pointerdown`,W),o.removeEventListener(`keydown`,ie),o.removeEventListener(`contextmenu`,ae),d.removeEventListener(`click`,oe),a.remove())}}},SD=`mesurer.screenshot`,CD=`screenshot`,wD=`mesurer.screenshot.settings`,TD=`mesurer.screenshot.active`,ED=`runtime:solid`,DD=`screenshot.toggle`,OD=2500,kD=0,AD=[`[data-mesurer-measurement='true']`,`[data-mesurer-selected-measurement='true']`,`[data-mesurer-selection-spacing-target='true']`,`[data-mesurer-guide='true']`,`[data-mesurer-distance='true']`].join(`,`),jD=`${AD},[data-mesurer-rulers='true'],[data-mesurer-multi-selection-document-layer='true']`,MD={viewBox:`0 0 256 256`,paths:[`m 96,50 a 6.0006,6.0006 0 0 0 -4.992188,2.671875 L 76.789062,74 H 40 C 27.920803,74 18,83.920803 18,96 v 96 c 0,12.0792 9.920803,22 22,22 h 176 c 12.0792,0 22,-9.9208 22,-22 V 96 C 238,83.920803 228.0792,74 216,74 H 179.21094 L 164.99219,52.671875 A 6.0006,6.0006 0 0 0 160,50 Z m 3.210937,12 h 57.578123 l 14.21875,21.328125 A 6.0006,6.0006 0 0 0 176,86 h 40 c 5.59392,0 10,4.406085 10,10 v 96 c 0,5.59392 -4.40608,10 -10,10 H 40 c -5.593915,0 -10,-4.40608 -10,-10 V 96 c 0,-5.593915 4.406085,-10 10,-10 h 40 a 6.0006,6.0006 0 0 0 4.992187,-2.671875 z`,`m 128,94 c -23.12489,0 -42,18.87511 -42,42 0,23.12489 18.87511,42 42,42 23.12489,0 42,-18.87511 42,-42 0,-23.12489 -18.87511,-42 -42,-42 z m 0,12 c 16.63961,0 30,13.36039 30,30 0,16.63961 -13.36039,30 -30,30 -16.63961,0 -30,-13.36039 -30,-30 0,-16.63961 13.36039,-30 30,-30 z`]},ND=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},PD=(e,t)=>{for(let n of[`left`,`top`,`right`,`bottom`,`width`,`height`]){let r=t[n];r===void 0?e.style.removeProperty(n):e.style.setProperty(n,`${r}px`)}},FD=e=>{let t=e(wD);return{toolEnabled:t?.toolEnabled??!0,copy:t?.copy??!0,download:t?.download??!1,includeMeasurements:t?.includeMeasurements??!1}},ID=e=>({value:e.style.getPropertyValue(`display`),priority:e.style.getPropertyPriority(`display`)}),LD=(e,t)=>{t.value||t.priority?e.style.setProperty(`display`,t.value,t.priority):e.style.removeProperty(`display`)},RD=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},zD=e=>{let t=e.querySelector(`[data-mesurer-root='true']`);if(!t)return()=>void 0;let n=new Set;for(let e of t.querySelectorAll(`[data-mesurer-rulers='true']`)){let r=RD(e,t);r&&n.add(r)}for(let e of t.querySelectorAll(AD)){let r=RD(e,t);r&&n.add(r)}let r=[];for(let e of n)e.dataset.mesurerInspectorUi!==`true`&&(r.push({element:e,display:ID(e)}),e.style.setProperty(`display`,`none`,`important`));return()=>{for(let e of r)LD(e.element,e.display)}},BD=e=>Array.from(e.querySelectorAll(jD)).filter(e=>e.dataset.mesurerInspectorUi===`true`).map(e=>({element:e,display:ID(e)})),VD=e=>{for(let t of e)t.element.isConnected&&LD(t.element,t.display)},HD=(e={})=>wc({id:SD,version:`0.1.0`,requires:[ED],provides:[`tool:screenshot`,`capture:screenshot`,`settings:screenshot`],setup(t){let n=t.service.get(ED);if(!n)throw Error(`Screenshot plugin requires the Solid renderer runtime.`);let{ownerDocument:r,ownerWindow:i}=n,a=n.createWorkspaceRuntime(),o=n.createInspectorMount(),s=e.capture??e.captureVisibleTab,c=s??vl,l=e.previewDurationMs??kD;t.state.register({id:wD,initial:{toolEnabled:e.toolEnabled??!0,copy:e.copy??!0,download:e.download??!1,includeMeasurements:e.includeMeasurements??!1},persist:!0}),t.state.register({id:TD,initial:!1});let u=o.element;u.dataset.mesurerScreenshot=`true`,ND(u,{position:`fixed`,inset:`0`,"z-index":`85`,"pointer-events":`none`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`});let d=r.createElement(`div`);d.dataset.mesurerScreenshotSelect=`true`,d.setAttribute(`role`,`application`),d.setAttribute(`aria-label`,`Screenshot selection`),ND(d,{position:`fixed`,inset:`0`,display:`none`,"z-index":`85`,cursor:`crosshair`,"pointer-events":`auto`,"user-select":`none`,"touch-action":`none`}),u.append(d);let f=Array.from({length:4},()=>{let e=r.createElement(`div`);return ND(e,{position:`fixed`,"background-color":`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),d.append(e),e}),p=r.createElement(`div`);ND(p,{position:`fixed`,display:`none`,border:`1px solid #0d99ff`,"box-sizing":`border-box`,"pointer-events":`none`}),d.append(p);let m=r.createElement(`div`);ND(m,{position:`fixed`,display:`none`,"z-index":`86`,transform:`translateX(-50%)`,"border-radius":`4px`,padding:`2px 4px`,"background-color":`#0d99ff`,color:`white`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"pointer-events":`none`}),d.append(m);let h=r.createElement(`div`);h.textContent=`Drag to select · Esc to cancel`,ND(h,{position:`fixed`,left:`50%`,bottom:`16px`,transform:`translateX(-50%)`,"border-radius":`4px`,padding:`4px 8px`,"background-color":`black`,color:`white`,"font-size":`11px`,"pointer-events":`none`}),d.append(h);let g=r.createElement(`div`);g.dataset.mesurerScreenshotError=`true`,g.setAttribute(`role`,`status`),g.textContent=`Could not save screenshot`,ND(g,{position:`fixed`,display:`none`,"z-index":`97`,"border-radius":`6px`,padding:`6px 8px`,"background-color":`#b42318`,color:`white`,"font-size":`11px`,"pointer-events":`none`}),u.append(g);let _=null,v=null,y=0,b=0,x=!1,S=!1,C=!1,w=()=>t.state.get(`mesurer.screenshot.active`)??!1,T=()=>FD(t.state.get),E=e=>{t.state.update(wD,t=>{let n={...t};return e.toolEnabled!==void 0&&(n.toolEnabled=e.toolEnabled),e.copy!==void 0&&(n.copy=e.copy),e.download!==void 0&&(n.download=e.download),e.includeMeasurements!==void 0&&(n.includeMeasurements=e.includeMeasurements),n})},D=e=>{w()!==e&&t.state.update(`mesurer.screenshot.active`,()=>e)},O=()=>{if(v)return;let e=n.portalTarget.querySelector(`[data-mesurer-toolbar='true']`);e&&(v={element:e,visibility:{value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)}},e.style.setProperty(`visibility`,`hidden`,`important`))},k=()=>{if(!v)return;let{element:e,visibility:t}=v;v=null,t.value||t.priority?e.style.setProperty(`visibility`,t.value,t.priority):e.style.removeProperty(`visibility`)},A=e=>{let t=i.innerWidth,n=i.innerHeight;if(!e||e.width<=0||e.height<=0){PD(f[0],{left:0,top:0,width:t,height:n});for(let e of f.slice(1))PD(e,{left:0,top:0,width:0,height:0});p.style.display=`none`,m.style.display=`none`;return}PD(f[0],{left:0,top:0,width:t,height:e.top}),PD(f[1],{left:0,top:e.top,width:e.left,height:e.height}),PD(f[2],{left:e.left+e.width,top:e.top,width:Math.max(0,t-e.left-e.width),height:e.height}),PD(f[3],{left:0,top:e.top+e.height,width:t,height:Math.max(0,n-e.top-e.height)}),p.style.display=`block`,PD(p,e),m.style.display=`block`,m.textContent=`${Math.round(e.width)} × ${Math.round(e.height)}`,PD(m,{left:e.left+e.width/2,top:Math.min(n-22,e.top+e.height+6)})},j=()=>n.portalTarget.querySelector(`[data-mesurer-tool-id='screenshot']`)?.getBoundingClientRect()??null,M=xD({ownerDocument:r,ownerWindow:i,root:u,previewDurationMs:l}),N=e=>{let t=j(),n=Math.max(140,e.offsetWidth||140),r=Math.max(26,e.offsetHeight||26),a=t?Math.min(i.innerWidth-n-8,Math.max(8,t.left+t.width/2-n/2)):8,o=t?t.bottom+8:8,s=o+r<=i.innerHeight-8?o:Math.max(8,(t?.top??i.innerHeight)-r-8);e.style.left=`${a}px`,e.style.top=`${s}px`},P=()=>{y&&i.clearTimeout(y),g.style.display=`block`,N(g),y=i.setTimeout(()=>{y=0,g.style.display=`none`},OD)},F=()=>{_=null,A(null),d.style.visibility=``,d.style.display=`none`,u.style.pointerEvents=`none`,D(!1),k()},I=()=>{b+=1,F(),yl(i)},L=async e=>{if(x)throw Error(`A screenshot capture is already running.`);if(e.width<4||e.height<4)throw Error(`Screenshot selection must be at least 4px by 4px.`);x=!0;let o=++b,s=T(),l=s.includeMeasurements?BD(r):[],u=s.includeMeasurements?()=>void 0:zD(n.portalTarget);a.prepareCapture(),s.includeMeasurements&&VD(l);try{d.style.visibility=`hidden`,await el(i);let n=await Xc(await c({ownerDocument:r,ownerWindow:i}),e,{width:i.innerWidth,height:i.innerHeight},r,Jc(r));if(b!==o)throw Error(`Screenshot capture was cancelled.`);let a=!1,l=!1,u=s.copy?Zc(Promise.resolve(n),i).then(()=>{a=!0}):Promise.resolve(),f=s.download?Promise.resolve().then(()=>{$c(n,Qc(),r,i),l=!0}):Promise.resolve(),p=await Promise.allSettled([u,f]),m=s.copy&&p[0]?.status===`rejected`,h=s.download&&p[1]?.status===`rejected`;if(b!==o)throw Error(`Screenshot capture was cancelled.`);return w()&&F(),M.show(n,{copied:a,downloaded:l,copyFailed:m,downloadFailed:h}),await t.hook.emit(`screenshot:capture`,{rect:{...e},copied:a,downloaded:l}),{blob:n,rect:{...e},copied:a,downloaded:l}}catch(e){throw b===o&&P(),e}finally{d.style.visibility=``,u(),a.finishCapture(),x=!1}},R=async()=>{if(T().toolEnabled){if(w()){I();return}if(!S){S=!0,M.dismiss();try{if(s||await _l(r,i),C)return;O(),A(null),d.style.visibility=`visible`,u.style.pointerEvents=`auto`,d.style.display=`block`,D(!0)}catch(e){throw e instanceof Error&&e.name===`AbortError`||P(),e}finally{S=!1}}}},z=e=>{!w()||e.button!==0||(e.preventDefault(),e.stopPropagation(),_={x:e.clientX,y:e.clientY},A(Yc(_,_,{width:i.innerWidth,height:i.innerHeight})),d.setPointerCapture?.(e.pointerId))},B=e=>{!w()||!_||A(Yc(_,{x:e.clientX,y:e.clientY},{width:i.innerWidth,height:i.innerHeight}))},V=e=>{let t=_;if(_=null,!w()||!t)return;d.hasPointerCapture?.(e.pointerId)&&d.releasePointerCapture(e.pointerId);let n=Yc(t,{x:e.clientX,y:e.clientY},{width:i.innerWidth,height:i.innerHeight});if(A(n),n.width<4||n.height<4){A(null);return}L(n).catch(()=>void 0).finally(()=>{w()&&F()})},H=e=>{_=null,d.hasPointerCapture?.(e.pointerId)&&d.releasePointerCapture(e.pointerId),A(null)},U=e=>{e.key!==`Escape`||!w()||(e.preventDefault(),e.stopImmediatePropagation(),I())};d.addEventListener(`pointerdown`,z),d.addEventListener(`pointermove`,B),d.addEventListener(`pointerup`,V),d.addEventListener(`pointercancel`,H),i.addEventListener(`keydown`,U,!0);let ee={active:w,settings:T,setSettings:E,start:R,cancel:I,capture:L};t.tool.register({id:`screenshot`,label:`Screenshot`,shortcut:`Shift+S`,order:70,command:DD,toolbarMode:`select`,compactPinned:!0,icon:MD,active:w,hidden:()=>!T().toolEnabled,menu:{label:`Screenshot options`,items:[{id:`copy`,label:`Auto-copy`,checked:()=>T().copy,run:()=>E({copy:!T().copy})},{id:`download`,label:`Auto-download`,checked:()=>T().download,run:()=>E({download:!T().download})},{id:`measurements`,label:`Include measurements`,checked:()=>T().includeMeasurements,run:()=>E({includeMeasurements:!T().includeMeasurements})}]}}),t.settings.register({id:`screenshot`,label:`Screenshot`,order:40,controls:[{type:`toggle`,id:`tool`,label:`Screenshot tool`,description:`Show the camera tool in the toolbar.`,value:()=>T().toolEnabled,set:e=>{E({toolEnabled:e}),!e&&w()&&I()}},{type:`toggle`,id:`copy`,label:`Auto-copy`,description:`Copy each successful capture when the browser allows it.`,value:()=>T().copy,set:e=>E({copy:e})},{type:`toggle`,id:`download`,label:`Auto-download`,description:`Download each successful capture as a PNG.`,value:()=>T().download,set:e=>E({download:e})},{type:`toggle`,id:`measurements`,label:`Include measurements`,description:`Keep selections, measurements, guides, distances, and rulers in the PNG.`,value:()=>T().includeMeasurements,set:e=>E({includeMeasurements:e})}]}),t.command.register(DD,R),t.service.provide(CD,ee),t.lifecycle.onDispose(()=>{C=!0,b+=1,d.removeEventListener(`pointerdown`,z),d.removeEventListener(`pointermove`,B),d.removeEventListener(`pointerup`,V),d.removeEventListener(`pointercancel`,H),i.removeEventListener(`keydown`,U,!0),y&&i.clearTimeout(y),M.dispose(),k(),yl(i),a.finishCapture(),a.dispose(),o.dispose()})}}),UD=e=>Number.parseFloat(e)||0,WD=0,GD=(e,t)=>{let n=t.CSS;return n?.escape?n.escape(e):e.replace(/[^a-zA-Z0-9_-]/g,e=>`\\${e}`)},KD=e=>e.nodeType===9,qD=e=>e.nodeType===11;function JD(e){let t=e.getRootNode();return qD(t)?t:e.ownerDocument}var YD=(e,t)=>{if(KD(e)||qD(e))return e;let n=JD(e);return qD(n)?n:t},XD=600,ZD=`audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video`,QD=new WeakMap,$D=e=>{let t=e;for(;t;){if((QD.get(t)??0)>0)return!0;let e=t.getRootNode();t=qD(e)?e.host:t.parentElement}return!1},eO=(e,t)=>t.x>=e.left&&t.x<=e.right&&t.y>=e.top&&t.y<=e.bottom,tO=(e,t)=>Array.from(e.getClientRects()).some(e=>eO(e,t)),nO=(e,t,n)=>{let r=e;for(;r;){let e=n.getComputedStyle(r);if(e.display===`none`||e.visibility===`hidden`||e.visibility===`collapse`||e.contentVisibility===`hidden`||Number(e.opacity)===0)return!0;if(r===t)return!1;r=r.parentElement}return!0},rO=(e,t)=>{if(e.matches(`img, picture, video, canvas, svg image, path, circle, ellipse, line, polygon, polyline, rect, text, use`))return!0;let n=t.getComputedStyle(e),r=n.backgroundImage!==`none`||n.backgroundColor!==`transparent`&&n.backgroundColor!==`rgba(0, 0, 0, 0)`,i=[`top`,`right`,`bottom`,`left`].some(e=>Number.parseFloat(n.getPropertyValue(`border-${e}-width`))>0&&n.getPropertyValue(`border-${e}-style`)!==`none`);return r||i||n.boxShadow!==`none`||n.outlineStyle!==`none`},iO=(e,t)=>!!e.textContent?.trim()||rO(e,t),aO=(e,t,n)=>{let r=t,i=r.caretRangeFromPoint?.(e.x,e.y)?.startContainer??r.caretPositionFromPoint?.(e.x,e.y)?.offsetNode;if(!i)return null;let a=t.defaultView?.Element;if(!a)return null;let o=i instanceof a?i:i.parentElement;for(;o&&o!==n;){if(n.contains(o))return o;o=o.parentElement}return o===n?n:null},oO=(e,t,n)=>{let r=n.defaultView,i=r?.Element;if(!r||!i)return[];let a=[],o=new Set,s=(n,i,s)=>{if(o.has(n)||$D(n)||r.getComputedStyle(n).pointerEvents!==`none`||nO(n,e,r)||!tO(n,t))return;let c=n.getBoundingClientRect();o.add(n),a.push({element:n,area:c.width*c.height,depth:i,order:s})},c=n.createTreeWalker(e,1),l=c.nextNode(),u=1;for(;l&&u<=XD;){if(l instanceof i){let t=l;if(r.getComputedStyle(t).pointerEvents===`none`){let n=1,r=t.parentElement;for(;r&&r!==e;)n+=1,r=r.parentElement;s(t,n,u)}}u+=1,l=c.nextNode()}let d=aO(t,n,e);return d&&r.getComputedStyle(d).pointerEvents===`none`&&s(d,1e4,u),a.sort((e,t)=>t.depth-e.depth||e.area-t.area||t.order-e.order).map(({element:e})=>e)},sO=(e,t,n)=>{let r=t.ownerDocument.defaultView;if(!r)return[];let i=[...new Set(e)],a=new Map;for(let e of i){let t=e instanceof r.HTMLElement||e instanceof r.SVGElement?e:null;t&&(a.set(e,e.getAttribute(`style`)),t.style.setProperty(`pointer-events`,`auto`,`important`))}try{let e=JD(t).elementsFromPoint(n.x,n.y),r=e.findIndex(e=>e===t),a=new Map(e.map((e,t)=>[e,t]));return i.filter(e=>{let t=a.get(e);return t!==void 0&&(r<0||t<r)}).sort((e,t)=>e.contains(t)?1:t.contains(e)?-1:(a.get(e)??2**53-1)-(a.get(t)??2**53-1))}finally{for(let[e,t]of a)t===null?e.removeAttribute(`style`):e.setAttribute(`style`,t)}},cO=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},lO=(e,t,n,r)=>{let i=r.defaultView;if(!i)return[];let a=sO(oO(e,t,r).filter(e=>iO(e,i)),e,t);if(a.length>0)return a;if(e.textContent?.trim()&&!e.matches(ZD)||e.matches(`a, button, input, select, textarea, label, summary, [contenteditable='true']`))return[];let o=[],s=new Set,c=!KD(n)&&!qD(n)?n:null,l=e.parentElement;for(;l&&l!==r.body&&l!==r.documentElement&&!(c&&l!==c&&!c.contains(l));){let a=l,u=cO(e,a),d=oO(a,t,r).filter(e=>{if(!dO(e,n)||e.closest(`[aria-hidden='true'], [inert]`))return!1;let t=cO(e,a);return t===null||t!==u});for(let e of d)s.has(e)||!iO(e,i)||(s.add(e),o.push(e));if(a===c)break;l=a.parentElement}return sO(o,e,t)};function uO(e,t,n=KD(t)?t:t.ownerDocument??document){let r=YD(t,n),i=n.defaultView;if(!i)return null;let a=r.elementsFromPoint(e.x,e.y);for(let r of a){let a=r;for(;a?.shadowRoot;){let t=a.shadowRoot.elementFromPoint(e.x,e.y);if(!t||t===a)break;a=t}if(!a||!dO(a,t))continue;let o=lO(a,e,t,n);if(o.length>0)return o[0];if(i.getComputedStyle(a).pointerEvents!==`none`)return a}return null}function dO(e,t){if(KD(t))return!0;let n=e;for(;n;){if(t===n||t.contains(n))return!0;let e=n.getRootNode();if(!qD(e))return!1;n=e.host}return!1}function fO(e,t){if(!e)return t();let n=QD.get(e)??0;QD.set(e,n+1);let r=[e,...e.querySelectorAll(`*`)],i=r.map(e=>[e,e.style.getPropertyValue(`pointer-events`),e.style.getPropertyPriority(`pointer-events`)]);for(let e of r)e.style.setProperty(`pointer-events`,`none`,`important`);try{return t()}finally{n===0?QD.delete(e):QD.set(e,n);for(let[e,t,n]of i)t?e.style.setProperty(`pointer-events`,t,n):e.style.removeProperty(`pointer-events`)}}function pO(e){let t=e.ownerDocument.defaultView??window;if(e.id)return`#${GD(e.id,t)}`;let n=e.getAttribute(`data-testid`);if(n)return`[data-testid=${JSON.stringify(n)}]`;let r=[],i=e;for(;i&&r.length<5;){let e=i.localName,t=i.localName,n=i.parentElement;if(n){let r=[...n.children].filter(e=>e.localName===t);r.length>1&&(e+=`:nth-of-type(${r.indexOf(i)+1})`)}r.unshift(e),i=n}return r.join(` > `)}function mO(e,t,n=`dom-inspection-${++WD}`){let r=e.getBoundingClientRect(),i=t.getComputedStyle(e),a={top:UD(i.paddingTop),right:UD(i.paddingRight),bottom:UD(i.paddingBottom),left:UD(i.paddingLeft)},o={top:UD(i.marginTop),right:UD(i.marginRight),bottom:UD(i.marginBottom),left:UD(i.marginLeft)},s={left:r.left+a.left,top:r.top+a.top,width:Math.max(0,r.width-a.left-a.right),height:Math.max(0,r.height-a.top-a.bottom)},c={left:r.left-o.left,top:r.top-o.top,width:r.width+o.left+o.right,height:r.height+o.top+o.bottom},l=e.tagName.toLowerCase(),u=e.id?`#${e.id}`:``,d=e.classList.item(0),f=d?`.${d}`:``;return{id:n,rect:{left:r.left,top:r.top,width:r.width,height:r.height},paddingRect:s,marginRect:c,padding:a,margin:o,label:`${l}${u}${f}`,elementRef:e}}function hO(e){let t=e.ownerDocument.defaultView??window,n=t.getComputedStyle(e),r=e instanceof t.HTMLElement?e:null,i=e.getBoundingClientRect(),a=r?mO(r,t):null,o=e=>{let t=Number.parseFloat(e);return Number.isFinite(t)?t:0},s=e=>({top:o(n.getPropertyValue(`${e}-top${e===`border`?`-width`:``}`)),right:o(n.getPropertyValue(`${e}-right${e===`border`?`-width`:``}`)),bottom:o(n.getPropertyValue(`${e}-bottom${e===`border`?`-width`:``}`)),left:o(n.getPropertyValue(`${e}-left${e===`border`?`-width`:``}`))});return{selector:pO(e),tag:e.localName,id:e.id||null,classes:[...e.classList],text:(e.textContent??``).replace(/\s+/g,` `).trim().slice(0,500),role:e.getAttribute(`role`),ariaLabel:e.getAttribute(`aria-label`),rect:{left:i.left,top:i.top,right:i.right,bottom:i.bottom,width:i.width,height:i.height,x:i.x,y:i.y},margin:a?.margin??s(`margin`),padding:a?.padding??s(`padding`),border:s(`border`),typography:{fontFamily:n.fontFamily,fontSize:n.fontSize,fontWeight:n.fontWeight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,textAlign:n.textAlign,color:n.color},appearance:{backgroundColor:n.backgroundColor,borderColor:n.borderColor,borderRadius:n.borderRadius,boxShadow:n.boxShadow,opacity:n.opacity},layout:{display:n.display,position:n.position,zIndex:n.zIndex,overflowX:n.overflowX,overflowY:n.overflowY,flexDirection:n.flexDirection,alignItems:n.alignItems,justifyContent:n.justifyContent,gap:n.gap,gridTemplateColumns:n.gridTemplateColumns,gridTemplateRows:n.gridTemplateRows,transform:n.transform},scroll:{clientWidth:r?.clientWidth??0,clientHeight:r?.clientHeight??0,scrollWidth:r?.scrollWidth??0,scrollHeight:r?.scrollHeight??0,overflowsX:(r?.scrollWidth??0)>(r?.clientWidth??0)+1,overflowsY:(r?.scrollHeight??0)>(r?.clientHeight??0)+1}}}var gO=`text-edit`,_O=e=>hO(e);function vO(e){let t=e.root??e.ownerDocument,n=e.ownerDocument.defaultView??window,r=(e,n=0)=>t.querySelectorAll(e).item(n)||null,i=n=>t===e.ownerDocument||dO(n,t),a=async()=>{let t=(e.getPluginHost()??await e.waitForPluginHost()).service.get(gO);if(!t)throw Error(`Mesurer text editing service is unavailable.`);return t},o=()=>{let t=e.ownerDocument.documentElement,r=e.ownerDocument.body,i=Math.max(t.scrollWidth,r?.scrollWidth??0),a=Math.max(t.scrollHeight,r?.scrollHeight??0);return{width:n.innerWidth,height:n.innerHeight,devicePixelRatio:n.devicePixelRatio,scrollX:n.scrollX,scrollY:n.scrollY,documentWidth:i,documentHeight:a,horizontalOverflow:i>n.innerWidth+1,verticalOverflow:a>n.innerHeight+1}},s=async(t=2)=>{await e.ownerDocument.fonts?.ready;for(let e=0;e<Math.max(1,t);e+=1)await new Promise(e=>n.requestAnimationFrame(()=>e()))};return{async ready(){await e.waitForPluginHost(),await s()},async describe(){return(await e.waitForPluginHost()).describe()},inspect(e,t=0){let n=r(e,t);return n?_O(n):null},inspectAll(e,n=50){return[...t.querySelectorAll(e)].slice(0,Math.max(0,n)).map(_O)},at(n,r){let a=t.querySelector?.(`[data-mesurer-island]`)??null;return fO(a?.shadowRoot?.querySelector(`[data-mesurer-root='true']`)??a,()=>{let a=uO({x:n,y:r},t,e.ownerDocument);return a&&i(a)?_O(a):null})},distance(e,t){let n=r(e),i=r(t);if(!n||!i)return null;let a=_O(n),o=_O(i),s=a.rect,c=o.rect;return{a,b:o,horizontalGap:c.left>=s.right?c.left-s.right:s.left>=c.right?s.left-c.right:0,verticalGap:c.top>=s.bottom?c.top-s.bottom:s.top>=c.bottom?s.top-c.bottom:0,centerDeltaX:c.left+c.width/2-(s.left+s.width/2),centerDeltaY:c.top+c.height/2-(s.top+s.height/2)}},viewport:o,async feedback(n=[]){await s();let r=e.getPluginHost()??await e.waitForPluginHost();return{viewport:o(),elements:n.flatMap(e=>[...t.querySelectorAll(e)].slice(0,50).map(_O)),plugins:r.describe(),pluginState:r.state.serialize(`all`)}},async command(t,n){let r=await(e.getPluginHost()??await e.waitForPluginHost()).command.execute(t,n,{source:`agent-harness`});return await s(1),r},async state(){return(e.getPluginHost()??await e.waitForPluginHost()).state.serialize(`all`)},async textEdits(){return(await a()).intents()},async textEdit(e){let t=(await a()).intent(e);if(!t)throw Error(`Text edit intent not found: ${e}`);return t},stable:s}}var yO=`0.2.3-beta.12`,bO=Wy,xO=Gy,SO=()=>({...Bb(),version:yO}),CO=xO,wO=(e,t)=>e.left<=t.left+t.width&&e.left+e.width>=t.left&&e.top<=t.top+t.height&&e.top+e.height>=t.top,TO=e=>{if(!e.length)return null;let t=Math.min(...e.map(e=>e.left)),n=Math.min(...e.map(e=>e.top)),r=Math.max(...e.map(e=>e.left+e.width)),i=Math.max(...e.map(e=>e.top+e.height));return{left:t,top:n,width:r-t,height:i-n}},EO=(e,t,n)=>t.some(t=>e.orientation===`vertical`?e.position>=t.left-n&&e.position<=t.left+t.width+n:e.position>=t.top-n&&e.position<=t.top+t.height+n),DO=e=>[...e.measurements,...e.activeMeasurement&&!e.measurements.some(t=>t.id===e.activeMeasurement?.id)?[e.activeMeasurement]:[]];function OO(e){let{workspace:t,scope:n,guideTolerance:r}=e;if(n.kind===`workspace`)return{guides:t.guides.map(e=>({...e})),measurements:DO(t),distances:[...t.distances]};let i=new Set(n.elements),a=e=>e!=null&&i.has(e),o=e=>n.regions.some(t=>wO(e,t));return{guides:t.guides.filter(e=>EO(e,n.regions,r)).map(e=>({...e})),measurements:DO(t).filter(e=>a(e.elementRef)||o(e.rect)),distances:t.distances.filter(e=>a(e.elementRefA)||a(e.elementRefB)||o(e.rectA)||o(e.rectB))}}var kO={opacity:1,width:1,pattern:`solid`,dashLength:6,gap:4},AO={opacity:1,edgeReveal:!1};({...kO}),{...AO};var jO=10,MO=e=>({left:e.left,top:e.top,width:e.width,height:e.height}),NO=e=>{let t=new Set,n=[];for(let r of e)!r?.isConnected||t.has(r)||(t.add(r),n.push(r));return n},PO=e=>e.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`;function FO(e){let{runtime:t,ownerDocument:n,ownerWindow:r}=e,i=e.request??{scope:`workspace`},a=t.snapshot();if(!a)throw Error(`Mesurer workspace is not ready yet.`);let o=e=>MO(t.elementRect?.(e)??e.getBoundingClientRect()),s=[],c=[],l={kind:`workspace`},u=new Map,d=new Map,f;if(`annotation`in i){let e=t.annotation(i.annotation);if(!e)throw Error(`Mesurer annotation not found: ${i.annotation}`);e.anchor.kind===`elements`&&(f=e.anchor.targets.find(e=>e.viewport)?.viewport);for(let t of e.resolvedTargets)t.element?.isConnected&&(u.set(t.element,t.target.id),t.target.viewport&&d.set(t.element,{viewport:{...t.target.viewport},domPath:t.target.domPath?.map(e=>({...e}))??[]}));s=NO(e.resolvedTargets.map(e=>e.element));let n=t.annotationRect(e.id);n&&(c=[n]);let r=e.resolvedTargets.length,a=e.resolvedTargets.filter(e=>e.element?.isConnected).length,o=e.anchor.kind===`region`?`connected`:r===0||a===0?`stale`:a===r?`connected`:`partial`,p={kind:`annotation`,annotationId:e.id,note:e.note,targetStatus:o};e.replies?.length&&(p.replies=e.replies.map(e=>({...e}))),e.status===`resolved`&&(p.status=`resolved`,e.resolvedAt!==void 0&&(p.resolvedAt=e.resolvedAt)),l=p}else if(i.scope===`selection`){let e=t.currentSelection();if(s=NO(e.elements),!s.length&&!e.region)throw Error(`Mesurer has no current selection.`);c=e.region?[e.region]:s.map(o),l={kind:`selection`}}else s=NO([...t.currentSelection().elements,...a.measurements.map(e=>e.elementRef),a.activeMeasurement?.elementRef,...a.heldDistances.flatMap(e=>[e.elementRefA,e.elementRefB])]);let p=l.kind===`workspace`?[]:c.length?c:s.map(o),m=OO({workspace:{guides:a.guides,measurements:a.measurements,activeMeasurement:a.activeMeasurement,distances:a.heldDistances},scope:l.kind===`workspace`?{kind:`workspace`}:{kind:`scoped`,elements:s,regions:p},guideTolerance:a.guideRelevanceTolerance??jO}),h=m.measurements,g=m.distances,_=m.guides,v=NO([...s,...h.map(e=>e.elementRef),...g.flatMap(e=>[e.elementRefA,e.elementRefB])]),y=new Map,b=new Set(u.values()),x=1,S=()=>{let e=`target-${x++}`;for(;b.has(e);)e=`target-${x++}`;return b.add(e),e},C=v.map(e=>{let n=u.get(e)??S(),r=o(e),i=hO(e);return y.set(e,n),{ref:n,...d.get(e)??t.targetScope?.(e),inspection:{...i,rect:{...r,right:r.left+r.width,bottom:r.top+r.height,x:r.left,y:r.top}}}}),w=h.map(e=>{let t={id:e.id,rect:MO(e.rect),deltaX:e.deltaX,deltaY:e.deltaY};e.snapped!==void 0&&(t.snapped=e.snapped);let n=e.elementRef?y.get(e.elementRef):void 0;return n&&(t.targetRef=n),t}),T=g.map(e=>{let t={id:e.id,rectA:MO(e.rectA),rectB:MO(e.rectB),horizontal:e.horizontal?{...e.horizontal}:null,vertical:e.vertical?{...e.vertical}:null},n=e.elementRefA?y.get(e.elementRefA):void 0,r=e.elementRefB?y.get(e.elementRefB):void 0;return n&&(t.targetARef=n),r&&(t.targetBRef=r),t}),E={schema:`mesurer.context/v1`,id:PO(r),createdAt:new Date().toISOString(),scope:l,page:{url:r.location?.href??n.URL,title:n.title},viewport:{width:r.innerWidth,height:r.innerHeight,devicePixelRatio:r.devicePixelRatio,scrollX:r.scrollX,scrollY:r.scrollY},coordinateSpace:`viewport-css-px`,regions:l.kind===`workspace`?[]:c.map(MO),visualState:{rulersVisible:a.rulersVisible,xrayVisible:a.xrayVisible},targets:C,visualContext:{guides:_,layoutGuides:(e.layoutGuides??[]).map(e=>({...e})),measurements:w,distances:T}};return f??=C.find(e=>e.viewport)?.viewport,f&&(E.previewViewport={...f}),E}var IO=e=>`${Math.round(e*100)/100}px`,LO=e=>`x=${IO(e.left)} y=${IO(e.top)} w=${IO(e.width)} h=${IO(e.height)}`;function RO(e){let t=[`Mesurer visual context`,``,`Page: ${e.page.url}`,`Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`];if(e.scope.kind===`annotation`){t.push(``,`Annotation`,e.scope.note);for(let[n,r]of(e.scope.replies??[]).entries())n===0&&t.push(`Replies`),t.push(`${n+1}. [${r.id}] ${new Date(r.createdAt).toISOString()}`),t.push(...r.text.split(`
|
|
2333
|
+
`,t.head.append(s),i.append(a);let c=!1;return{element:a,dispose(){c||(c=!0,o(),s.remove(),a.remove())}}}var Ww=e=>`color-mix(in srgb, ${e.color} ${e.opacity*100}%, transparent)`,Gw=e=>e===`max`?`end`:e===`center`?`center`:`start`,Kw=e=>{let t=e.kind===`columns`,n=e.align===`stretch`,r=n?`repeat(${e.count}, minmax(0, 1fr))`:`repeat(${e.count}, ${e.size}px)`,i=Gw(e.align);return{position:`absolute`,inset:`0`,display:`grid`,...t?{"grid-template-columns":r,"column-gap":`${e.gutter}px`,"justify-content":n?void 0:i,"padding-left":n||e.align===`min`?`${e.offset}px`:`0`,"padding-right":n||e.align===`max`?`${e.offset}px`:`0`}:{"grid-template-rows":r,"row-gap":`${e.gutter}px`,"align-content":n?void 0:i,"padding-top":n||e.align===`min`?`${e.offset}px`:`0`,"padding-bottom":n||e.align===`max`?`${e.offset}px`:`0`},transform:e.align===`center`?t?`translateX(${e.offset}px)`:`translateY(${e.offset}px)`:void 0}};function qw(e){let t=()=>e.guides.filter(e=>e.visible);return Y(K,{get when(){return t().length>0},get children(){var e=X(`div`,{"data-mesurer-layout-guides":`true`,"data-mesurer-layer":`evidence`,class:`msr:pointer-events-none msr:absolute msr:inset-0 msr:overflow-hidden`,style:{"z-index":`2`},"aria-hidden":`true`});return Q(e,Y(_o,{get each(){return t()},children:e=>Y(K,{get when(){return e.kind===`grid`},get fallback(){var t=X(`div`,{class:`msr:pointer-events-none msr:absolute msr:inset-0`});return Q(t,Y(_o,{get each(){return Array.from({length:e.count})},children:()=>(()=>{var t=X(`div`,{"data-mesurer-layout-band":`true`});return q(()=>({"min-width":`0`,"min-height":`0`,width:`100%`,height:`100%`,"background-color":Ww(e)}),(e,n)=>{$(t,`style`,e,n)}),t})()})),q(()=>({e:e.id,t:e.kind,a:Kw(e)}),({e,t:n,a:r},i)=>{e!==i?.e&&$(t,`data-mesurer-layout-guide`,e,i?.e),n!==i?.t&&$(t,`data-mesurer-layout-guide-kind`,n,i?.t),r!==i?.a&&$(t,`style`,r,i?.a)}),t},get children(){var t=X(`div`,{"data-mesurer-layout-guide-kind":`grid`,class:`msr:pointer-events-none msr:absolute msr:inset-0`});return q(()=>({e:e.id,t:{"background-image":`linear-gradient(to right, ${Ww(e)} 1px, transparent 1px), linear-gradient(to bottom, ${Ww(e)} 1px, transparent 1px)`,"background-size":`${e.size}px ${e.size}px`}}),({e,t:n},r)=>{e!==r?.e&&$(t,`data-mesurer-layout-guide`,e,r?.e),n!==r?.t&&$(t,`style`,n,r?.t)}),t}})})),e}})}var Jw=`#FF0000`,Yw=.1,Xw=new Set([`columns`,`rows`,`grid`]),Zw=new Set([`stretch`,`min`,`center`,`max`]),Qw=(e,t,n)=>Math.min(n,Math.max(t,e)),$w=(e,t)=>e!==void 0&&Number.isFinite(e)?e:t,eT=(e={})=>{let t=e.kind&&Xw.has(e.kind)?e.kind:`columns`,n=e.align&&Zw.has(e.align)?e.align:t===`grid`?`min`:`stretch`,r=e.id?.trim(),i=e.color?.trim();return{id:r||Ku(),kind:t,visible:e.visible??!0,color:i||`#FF0000`,opacity:Qw($w(e.opacity,Yw),0,1),count:Qw(Math.round($w(e.count,5)),1,24),size:Qw($w(e.size,72),1,4096),gutter:Qw($w(e.gutter,20),0,800),offset:Qw($w(e.offset,0),0,4096),align:n}},tT=e=>(e??[]).map(eT),nT=e=>{if(e.kind===`grid`)return`Grid ${Math.round(e.size)}px`;let t=e.kind===`columns`?`columns`:`rows`;return e.align===`stretch`?`${e.count} ${t}`:`${e.count} ${t} (${Math.round(e.size)}px)`},rT=e=>(()=>{var t=X(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,class:`msr:block`});return Z(t,X(`path`,{d:`m6 6 12 12M18 6 6 18`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})),q(()=>({e:e.size??14,t:e.size??14}),({e,t:n},r)=>{e!==r?.e&&$(t,`width`,e,r?.e),n!==r?.t&&$(t,`height`,n,r?.t)}),t})(),iT=e=>e.kind===`rows`?Y(Km,{size:14}):e.kind===`grid`?Y(Wm,{size:14}):Y(Gm,{size:14}),aT=`msr:grid-cols-[78px_minmax(0,1fr)]`,oT=e=>(()=>{var t=X(`label`,{class:`msr:col-span-2 msr:grid msr:h-8 msr:w-full msr:grid-cols-[78px_minmax(0,1fr)] msr:items-center msr:gap-0 msr:text-[12px] msr:text-ink-700`}),n=X(`span`);return Z(t,n),Q(n,()=>e.label),Q(t,()=>e.children,null),t})(),sT=e=>(()=>{var t=X(`span`,{class:`msr:relative msr:block msr:w-full`}),n=X(`select`,{class:Jg,onPointerDown:e=>e.stopPropagation(),onChange:t=>e.onChange(t.currentTarget.value)});return Z(t,n),Q(n,()=>e.children),Q(t,Y(Yg,{}),null),q(()=>({e:e.label,t:e.value}),({e,t},r)=>{e!==r?.e&&$(n,`aria-label`,e,r?.e),t!==r?.t&&$(n,`value`,t,r?.t)}),t})(),cT=e=>{let[t,n]=G(!1),[r,i]=G(String(e.value)),a=()=>e.min??0,o=()=>e.max??9999,s=e=>Math.min(o(),Math.max(a(),e)),c=t=>{let n=Number(t.replace(/[^\d.-]/g,``));if(!Number.isFinite(n)){i(String(e.value));return}e.onChange(s(n))};return Y(Xg,{get left(){var a=X(`input`,{type:`text`,inputmode:`numeric`,class:`msr:h-full msr:w-full msr:min-w-0 msr:border-0 msr:bg-transparent msr:px-2 msr:font-mono msr:text-[12px] msr:font-medium msr:tabular-nums msr:text-ink-700 msr:outline-none`,onFocus:()=>{i(String(e.value)),n(!0)},onBlur:()=>{c(r()),n(!1)},onInput:t=>{let n=t.currentTarget.value.replace(/[^\d.-]/g,``);i(n);let r=Number(n);Number.isFinite(r)&&e.onChange(s(r))},onKeyDown:t=>{if(t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let n=Number(r()),a=Number.isFinite(n)?n:e.value,o=s(a+(t.key===`ArrowUp`?1:-1));i(String(o)),e.onChange(o)},onPointerDown:e=>e.stopPropagation()});return q(()=>({e:e.label,t:t()?r():String(e.value)}),({e,t},n)=>{e!==n?.e&&$(a,`aria-label`,e,n?.e),t!==n?.t&&$(a,`value`,t,n?.t)}),a}})},lT=e=>e===`rows`||e===`grid`?e:`columns`,uT=e=>e===`min`||e===`center`||e===`max`?e:`stretch`,dT=e=>{let t=lo(()=>e.guide.kind===`rows`?{stretch:`Stretch`,min:`Top`,center:`Center`,max:`Bottom`}:{stretch:`Stretch`,min:`Left`,center:`Center`,max:`Right`}),n=lo(()=>e.guide.kind===`rows`?`Height`:e.guide.kind===`grid`?`Size`:`Width`);var r=X(`div`,{class:`mesurer-thin-scrollbar msr:flex msr:min-h-0 msr:flex-1 msr:flex-col msr:gap-2 msr:overflow-y-auto msr:p-3`}),i=X(`div`,{class:`msr:flex msr:items-center msr:justify-between msr:gap-2`}),a=X(`button`,{type:`button`,"aria-label":`Back to layout guides`,class:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900`});return Z(r,i),Z(i,a),Q(i,Y(sT,{label:`Layout guide type`,get value(){return e.guide.kind},onChange:t=>{let n=lT(t);e.onUpdate({kind:n,align:n===`grid`?`min`:e.guide.align===`stretch`||n===e.guide.kind?e.guide.align:`stretch`})},get children(){return[(()=>{var e=X(`option`,{value:`columns`});return Z(e,ec(`Columns`)),e})(),(()=>{var e=X(`option`,{value:`rows`});return Z(e,ec(`Rows`)),e})(),(()=>{var e=X(`option`,{value:`grid`});return Z(e,ec(`Grid`)),e})()]}}),a),Q(a,Y(rT,{})),Q(r,Y(K,{get when(){return e.guide.kind!==`grid`},get children(){return Y(oT,{label:`Count`,get children(){return Y(cT,{label:`Count`,get value(){return e.guide.count},min:1,max:24,onChange:t=>e.onUpdate({count:t})})}})}}),null),Q(r,Y(Zg,{label:`Color`,columns:aT,get value(){return Nc({...jc(e.guide.color)??jc(`#FF0000`),alpha:e.guide.opacity})},fallback:Jw,get ownerWindow(){return e.ownerWindow},onChange:t=>{let n=jc(t);e.onUpdate({color:n?Nc({...n,alpha:1}).slice(0,7):t,opacity:n?.alpha??e.guide.opacity})}}),null),Q(r,Y(K,{get when(){return e.guide.kind!==`grid`},get children(){return Y(oT,{label:`Type`,get children(){return Y(sT,{label:`Alignment`,get value(){return e.guide.align},onChange:t=>e.onUpdate({align:uT(t)}),get children(){return Y(_o,{each:[`stretch`,`min`,`center`,`max`],children:e=>(()=>{var n=X(`option`,{value:e});return Q(n,()=>t()[e]),n})()})}})}})}}),null),Q(r,Y(K,{get when(){return e.guide.kind===`grid`||e.guide.align!==`stretch`},get children(){return Y(oT,{get label(){return n()},get children(){return Y(cT,{get label(){return n()},get value(){return e.guide.size},min:1,max:4096,onChange:t=>e.onUpdate({size:t})})}})}}),null),Q(r,Y(K,{get when(){return e.guide.kind!==`grid`},get children(){return[Y(oT,{label:`Offset`,get children(){return Y(cT,{label:`Offset`,get value(){return e.guide.offset},min:0,max:4096,onChange:t=>e.onUpdate({offset:t})})}}),Y(oT,{label:`Gutter`,get children(){return Y(cT,{label:`Gutter`,get value(){return e.guide.gutter},min:0,max:800,onChange:t=>e.onUpdate({gutter:t})})}})]}}),null),q(()=>e.onBack,(e,t)=>{$(a,`onClick`,e,t)}),r};function fT(e){let[t,n]=G(null),r=lo(()=>e.guides.find(e=>e.id===t())??null);var i=X(`div`,{"data-mesurer-layout-guides-panel":`true`,role:`dialog`,"aria-label":`Layout guides`,class:`mesurer-menu-surface msr:pointer-events-auto msr:flex msr:max-h-[min(320px,calc(100vh-16px))] msr:w-60 msr:flex-col msr:overflow-hidden msr:rounded-lg msr:bg-white msr:p-0 msr:text-[12px] msr:leading-[18px]`,onPointerDown:e=>e.stopPropagation(),onPointerMove:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),onClick:e=>e.stopPropagation()});return Q(i,Y(K,{get when(){return r()},get fallback(){var t=X(`div`,{class:`msr:flex msr:min-h-0 msr:flex-1 msr:flex-col msr:gap-1 msr:p-2`}),r=X(`div`,{class:`msr:flex msr:h-7 msr:shrink-0 msr:items-center msr:justify-between msr:px-1`}),i=X(`h2`,{class:`msr:text-[11px] msr:font-semibold msr:text-ink-700`}),a=X(`button`,{type:`button`,"aria-label":`Add layout guide`,class:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900`});return Z(t,r),Z(r,i),Z(r,a),Z(i,ec(`Layout guides`)),Q(a,Y(qm,{})),Q(t,Y(K,{get when(){return e.guides.length>0},get fallback(){var e=X(`p`,{class:`msr:px-1 msr:pb-2 msr:text-[11px] msr:text-ink-500`});return Z(e,ec(`Add columns, rows, or a pixel grid on the page.`)),e},get children(){var t=X(`ul`,{class:`mesurer-thin-scrollbar msr:m-0 msr:flex msr:min-h-0 msr:flex-1 msr:list-none msr:flex-col msr:gap-0.5 msr:overflow-y-auto msr:p-0`});return Q(t,Y(_o,{get each(){return e.guides},children:t=>(()=>{var r=X(`li`,{class:`msr:flex msr:items-center msr:gap-0.5`}),i=X(`button`,{type:`button`,class:`msr:flex msr:min-w-0 msr:flex-1 msr:items-center msr:gap-2 msr:rounded-control msr:px-1 msr:py-1 msr:text-left msr:text-[11px] msr:text-ink-700 msr:outline-none msr:hover:bg-ink-100`,onClick:()=>n(t.id)}),a=X(`span`,{class:`msr:flex msr:h-[19px] msr:items-start msr:text-ink-500`}),o=X(`span`,{class:`msr:min-w-0 msr:flex-1 msr:truncate`}),s=X(`button`,{type:`button`,onClick:()=>e.onUpdate(t.id,{visible:!t.visible})}),c=X(`button`,{type:`button`,class:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-400 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900`,onClick:()=>e.onRemove(t.id)});return Z(r,i),Z(r,s),Z(r,c),Z(i,a),Z(i,o),Q(a,Y(iT,{get kind(){return t.kind}})),Q(o,()=>nT(t)),Q(i,Y(Im,{size:8,class:`msr:block msr:-rotate-90 msr:text-ink-400`}),null),Q(s,(()=>{var e=J(()=>!!t.visible);return()=>e()?Y(Jm,{}):Y(Ym,{})})()),Q(c,Y(Rm,{size:10,class:`msr:block`})),q(()=>({e:t.visible?`Hide ${nT(t)}`:`Show ${nT(t)}`,t:t.visible?`true`:`false`,a:`msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:outline-none msr:hover:bg-ink-100 ${t.visible?`msr:text-ink-700`:`msr:text-ink-400`}`,o:`Remove ${nT(t)}`}),({e,t,a:n,o:r},i)=>{e!==i?.e&&$(s,`aria-label`,e,i?.e),t!==i?.t&&$(s,`aria-pressed`,t,i?.t),n!==i?.a&&$(s,`class`,n,i?.a),r!==i?.o&&$(c,`aria-label`,r,i?.o)}),r})()})),t}}),null),q(()=>e.onAdd,(e,t)=>{$(a,`onClick`,e,t)}),t},children:t=>Y(dT,{get guide(){return t()},get ownerWindow(){return e.ownerWindow},onBack:()=>n(null),onUpdate:n=>e.onUpdate(t().id,n)})})),i}var pT=`mesurer.layout-guides`,mT=`layout-guides:v1`,hT=`mesurer.layout-guides.pages`,gT=`mesurer.layout-guides.active`,_T=`runtime:solid`,vT=`layout-guides.toggle`,yT=`layout-guides.add`,bT=`layout-guides.update`,xT=`layout-guides.remove`,ST=`layout-guides.clear`,CT=240,wT=8,TT=8,ET=()=>({pages:{}}),DT=(e,t)=>e.pages[t]??[],OT=e=>typeof e==`object`&&!!e&&!Array.isArray(e),kT=e=>typeof e==`string`,AT=e=>typeof e==`boolean`,jT=e=>typeof e==`number`,MT=e=>e===`columns`||e===`rows`||e===`grid`,NT=e=>e===`stretch`||e===`min`||e===`center`||e===`max`,PT=e=>({...e}),FT=e=>e.map(PT),IT=e=>OT(e)?e:null,LT=e=>{if(!e)return{};let t={};return kT(e.id)&&(t.id=e.id),MT(e.kind)&&(t.kind=e.kind),AT(e.visible)&&(t.visible=e.visible),kT(e.color)&&(t.color=e.color),jT(e.opacity)&&(t.opacity=e.opacity),jT(e.count)&&(t.count=e.count),jT(e.size)&&(t.size=e.size),jT(e.gutter)&&(t.gutter=e.gutter),jT(e.offset)&&(t.offset=e.offset),NT(e.align)&&(t.align=e.align),t},RT=e=>{let t={};return e.id!==void 0&&(t.id=e.id),e.kind!==void 0&&(t.kind=e.kind),e.visible!==void 0&&(t.visible=e.visible),e.color!==void 0&&(t.color=e.color),e.opacity!==void 0&&(t.opacity=e.opacity),e.count!==void 0&&(t.count=e.count),e.size!==void 0&&(t.size=e.size),e.gutter!==void 0&&(t.gutter=e.gutter),e.offset!==void 0&&(t.offset=e.offset),e.align!==void 0&&(t.align=e.align),t},zT={viewBox:`0 0 256 256`,paths:[`M48 48h160v8H48zM48 200h160v8H48zM48 56h8v144h-8zM200 56h8v144h-8z`,`M101 56h8v144h-8zM147 56h8v144h-8z`]},BT=()=>wc({id:pT,version:`0.1.0`,requires:[_T],provides:[mT,`tool:layout-guides`],setup(e){let t=e.service.get(_T);if(!t)throw Error(`Layout Guides requires the Solid renderer runtime.`);let n=t.rendererRoot;if(!n)throw Error(`Layout Guides requires a mounted renderer root.`);e.state.register({id:hT,initial:ET(),history:!0,persist:!0}),e.state.register({id:gT,initial:!1});let r=Rl(t.ownerWindow),i=!1,[a,o]=G(0),s=new Set,c=0,l=()=>e.state.get(`mesurer.layout-guides.pages`)??ET(),u=()=>e.state.get(`mesurer.layout-guides.active`)??!1,d=()=>tT(DT(l(),r)),f=()=>(a(),u()?d():[]),p=t=>{e.state.update(gT,()=>t)},m=t=>{e.state.update(hT,e=>({...e,pages:{...e.pages,[r]:FT(t(tT(e.pages[r])))}}))};e.command.register(vT,()=>{let e=!u();return e&&d().length===0&&m(()=>[eT()]),i=e,p(e),u()}),e.command.register(yT,e=>{let t=eT(LT(IT(e)));return m(e=>[...e,t]),{...t}}),e.command.register(bT,e=>{let t=IT(e),n=t&&kT(t.id)?t.id:null,r=LT(IT(t?.patch));if(!n)throw Error(`layout-guides.update requires a guide id.`);m(e=>e.map(e=>e.id===n?eT({...e,...r,id:e.id}):e));let i=d().find(e=>e.id===n);if(!i)throw Error(`Layout guide not found: ${n}`);return{...i}}),e.command.register(xT,e=>{let t=IT(e),n=t&&kT(t.id)?t.id:null;if(!n)throw Error(`layout-guides.remove requires a guide id.`);let r=d().length;return m(e=>e.filter(e=>e.id!==n)),d().length!==r}),e.command.register(ST,()=>{m(()=>[])});let h=async(t,n)=>{let r=IT(await e.command.execute(t,n));if(!r)throw Error(`${t} did not return a layout guide.`);return eT(LT(r))},g={list:()=>d().map(e=>({...e})),add:(e={})=>h(yT,RT(e)),update:(e,t)=>h(bT,{id:e,patch:RT(t)}),async remove(t){return await e.command.execute(xT,{id:t})===!0},async clear(){await e.command.execute(ST)},subscribe(e){s.add(e);let t=!1;return()=>{t||(t=!0,s.delete(e))}}};e.service.provide(mT,g),e.tool.register({id:`layout-guides`,label:`Layout guides`,shortcut:`L`,command:vT,order:38,toolbarMode:`always`,compactPinned:!0,icon:zT,active:u});let _=t.ownerDocument.createElement(`div`);_.dataset.mesurerLayoutGuidesRoot=`true`,_.dataset.mesurerLayer=`evidence`,_.style.position=`absolute`,_.style.inset=`0`,_.style.pointerEvents=`none`,n.prepend(_);let v=$s(()=>Y(qw,{get guides(){return f()}}),_),y=t.createInspectorMount();y.element.dataset.mesurerLayoutGuidesPanelRoot=`true`,Object.assign(y.element.style,{position:`fixed`,left:`0`,top:`0`,width:`${CT}px`,zIndex:`100`,pointerEvents:`none`,display:`none`});let b=()=>{if(c=0,!i)return;let e=t.portalTarget.querySelector(`[data-mesurer-tool-id='layout-guides']`);if(!e)return;let n=e.getBoundingClientRect(),r=Math.min(Math.max(TT,n.right-CT),Math.max(TT,t.ownerWindow.innerWidth-CT-TT)),a=t.ownerWindow.innerHeight-n.bottom-wT-TT,o=Math.min(320,t.ownerWindow.innerHeight-16),s=a>=Math.min(o,320)?n.bottom+wT:Math.max(TT,n.top-wT-o);y.element.style.left=`${r}px`,y.element.style.top=`${s}px`},x=()=>{c||=t.ownerWindow.requestAnimationFrame(b)},S=()=>{y.element.style.display=i?`block`:`none`,i&&x()},C=$s(()=>Y(fT,{get guides(){return f()},get ownerWindow(){return t.ownerWindow},onAdd:()=>{g.add().catch(()=>void 0)},onUpdate:(e,t)=>{g.update(e,t).catch(()=>void 0)},onRemove:e=>{g.remove(e).catch(()=>void 0)}}),y.element),w=()=>{o(e=>e+1);for(let e of s)e();S()},T=e.state.subscribe(w),E=Hl(t.ownerWindow,e=>{r!==e&&(r=e,w())}),D=e=>{if(!i)return;let n=e.composedPath();if(n.includes(y.element))return;let r=t.portalTarget.querySelector(`[data-mesurer-tool-id='layout-guides']`);r&&n.includes(r)||(i=!1,S())},O=e=>{e.key!==`Escape`||!i||(i=!1,S())};S(),t.ownerDocument.addEventListener(`pointerdown`,D,!0),t.ownerDocument.addEventListener(`keydown`,O,!0),t.ownerWindow.addEventListener(`resize`,x),t.ownerWindow.addEventListener(`pointerup`,x,!0),e.lifecycle.onDispose(()=>{t.ownerDocument.removeEventListener(`pointerdown`,D,!0),t.ownerDocument.removeEventListener(`keydown`,O,!0),t.ownerWindow.removeEventListener(`resize`,x),t.ownerWindow.removeEventListener(`pointerup`,x,!0),c&&t.ownerWindow.cancelAnimationFrame(c),c=0,s.clear(),T.dispose(),E(),C(),y.dispose(),v(),_.remove()})}}),VT=`mesurer:recording-bridge-ping`,HT=`mesurer:recording-bridge-request`,UT=`mesurer:recording-bridge-response`,WT=`position:fixed;left:0;top:0;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none`,GT=.01,KT=e=>({width:e.innerWidth,height:e.innerHeight}),qT=(e,t,n,r)=>{let i=Math.max(1,r.width),a=Math.max(1,r.height),o=t/i,s=n/a,c=Math.abs(o-s)<=GT*Math.max(o,s),l=c?o:Math.min(o,s),u=c?0:(t-i*l)/2,d=c?0:(n-a*l)/2,f=c?o:l,p=c?s:l,m=u+e.left*f,h=d+e.top*p,g=u+(e.left+e.width)*f,_=d+(e.top+e.height)*p,v=Math.max(g-m,1e-6),y=Math.max(_-h,1e-6),b=Math.max(0,Math.min(t,m)),x=Math.max(0,Math.min(n,h)),S=Math.max(0,Math.min(t,g)),C=Math.max(0,Math.min(n,_)),w=Math.max(0,Math.round(b)),T=Math.max(0,Math.round(x)),E=Math.min(t,Math.round(S)),D=Math.min(n,Math.round(C));return{sx:w,sy:T,sw:Math.max(1,E-w),sh:Math.max(1,D-T),dx:(b-m)/v,dy:(x-h)/y,dw:Math.max(0,S-b)/v,dh:Math.max(0,C-x)/y}},JT=(e,t)=>{let n=e.createElement(`div`);return n.dataset.mesurerRecordingCrop=`true`,n.setAttribute(`aria-hidden`,`true`),n.style.position=`fixed`,n.style.left=`${t.left}px`,n.style.top=`${t.top}px`,n.style.width=`${t.width}px`,n.style.height=`${t.height}px`,n.style.margin=`0`,n.style.padding=`0`,n.style.border=`0`,n.style.background=`transparent`,n.style.opacity=`0`,n.style.pointerEvents=`none`,e.body.append(n),n},YT=async(e,t)=>{let n=e.cropTo,r=globalThis.CropTarget;if(!n||!r)return!1;let i=await r.fromElement(t);return await n.call(e,i),!0},XT=(e,t)=>new Promise(n=>{let r=!1,i=()=>{r||(r=!0,t.clearTimeout(a),n())},a=t.setTimeout(i,250),o=e;if(o.requestVideoFrameCallback){o.requestVideoFrameCallback(i);return}t.requestAnimationFrame(i)}),ZT=e=>e.location.origin===`null`?`*`:e.location.origin,QT=(e,t,n=``)=>`${e}:${t}:${n}`,$T=(e,t,n)=>{let r=`${t}:${n}:`;return e.startsWith(r)?e.slice(r.length):null},eE=e=>e.crypto?.randomUUID?.()??`mesurer-recording-${Date.now()}-${Math.random().toString(36).slice(2)}`,tE=e=>new Promise(t=>{let n=eE(e),r=e.location.origin,i=o=>{o.source===e&&o.origin===r&&$T(String(o.data??``),`mesurer:recording-bridge-pong`,n)!==null&&(e.removeEventListener(`message`,i),e.clearTimeout(a),t(!0))},a=e.setTimeout(()=>{e.removeEventListener(`message`,i),t(!1)},80);e.addEventListener(`message`,i),e.postMessage(QT(VT,n),ZT(e))}),nE=e=>new Promise(t=>{let n=eE(e),r=e.location.origin,i=o=>{if(o.source!==e||o.origin!==r)return;let s=$T(String(o.data??``),UT,n);if(s!==null){if(e.removeEventListener(`message`,i),e.clearTimeout(a),!s.startsWith(`ok:`)){t(null);return}t(s.slice(3)||null)}},a=e.setTimeout(()=>{e.removeEventListener(`message`,i),t(null)},1500);e.addEventListener(`message`,i),e.postMessage(QT(HT,n),ZT(e))}),rE=e=>e.__MESURER_RECORDING_HOST__?.captureRecordingStream??e.__MESURER_HOST__?.captureRecordingStream,iE=async(e,t)=>{let n=rE(e);if(!n)throw Error(`Native recording capture is unavailable.`);let r=(await n())?.streamId?.trim();if(!r)throw Error(`Native recording capture returned no stream id.`);let i={mandatory:{chromeMediaSource:`tab`,chromeMediaSourceId:r}};return t.getUserMedia({audio:!1,video:i})},aE=async(e,t)=>{if(!e.isSecureContext||!await tE(e))return null;let n=await nE(e);if(!n)return null;let r={mandatory:{chromeMediaSource:`tab`,chromeMediaSourceId:n}};return t.getUserMedia({audio:!1,video:r})},oE=async(e,t)=>{let n=e.getVideoTracks()[0];if(!n?.applyConstraints)return e;try{await n.applyConstraints({frameRate:{ideal:t,max:t}})}catch{}return e},sE=async(e,t)=>{let n=e.navigator.mediaDevices;if(!n)throw Error(`Screen recording is unavailable in this browser.`);if(rE(e))return oE(await iE(e,n),t);try{let r=await aE(e,n);if(r)return oE(r,t)}catch{}if(!n.getDisplayMedia)throw Error(`Screen recording is unavailable in this browser.`);let r={ideal:t,max:t},i={audio:!1,video:{displaySurface:`browser`,frameRate:r},preferCurrentTab:!0,selfBrowserSurface:`include`};try{return oE(await n.getDisplayMedia(i),t)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)throw e;return oE(await n.getDisplayMedia({audio:!1,video:{frameRate:r}}),t)}},cE=async(e,t,n,r=60)=>{let i=await sE(t,r),a=i.getVideoTracks()[0];if(!a)throw i.getTracks().forEach(e=>e.stop()),Error(`No video track was selected.`);if(a.getSettings().displaySurface&&a.getSettings().displaySurface!==`browser`)throw i.getTracks().forEach(e=>e.stop()),Error(`Select the current browser tab to record this region.`);let o=e.createElement(`video`);o.autoplay=!0,o.muted=!0,o.playsInline=!0,o.srcObject=i,o.setAttribute(`playsinline`,``),o.setAttribute(`aria-hidden`,`true`),o.style.cssText=WT,e.body.append(o);try{await o.play(),(o.videoWidth<=0||o.videoHeight<=0)&&await new Promise((e,t)=>{o.addEventListener(`loadeddata`,()=>e(),{once:!0}),o.addEventListener(`error`,()=>t(Error(`Could not read the selected video track.`)),{once:!0})});let r=JT(e,n),s=!1;try{s=await YT(a,r)}catch{s=!1}s||r.remove(),await XT(o,t);let c=t.devicePixelRatio||1,l=qT(n,o.videoWidth,o.videoHeight,KT(t)),u=e.createElement(`canvas`);u.width=s?Math.max(2,Math.round(n.width*c)):l.sw,u.height=s?Math.max(2,Math.round(n.height*c)):l.sh,u.setAttribute(`aria-hidden`,`true`),u.style.cssText=WT,e.body.append(u);let d=u.getContext(`2d`,{alpha:!1});if(!d)throw u.remove(),Error(`Screen recording requires a 2D canvas.`);let f={stream:i,track:a,source:o,canvas:u,context:d,cropTarget:s?r:null,regionLocked:s};return lE(f,n,KT(t)),f}catch(e){throw o.pause(),o.srcObject=null,o.remove(),i.getTracks().forEach(e=>e.stop()),e}},lE=(e,t,n)=>{let{source:r,canvas:i,context:a,regionLocked:o}=e;if(r.videoWidth<=0||r.videoHeight<=0)return;if(o){a.drawImage(r,0,0,i.width,i.height);return}let s=qT(t,r.videoWidth,r.videoHeight,n),c=s.dx<=.001&&s.dy<=.001&&s.dw>=.999&&s.dh>=.999,l=c?0:s.dx*i.width,u=c?0:s.dy*i.height,d=c?i.width:s.dw*i.width,f=c?i.height:s.dh*i.height;c||(a.fillStyle=`#000`,a.fillRect(0,0,i.width,i.height)),!(d<1||f<1||s.dw<=0||s.dh<=0)&&a.drawImage(r,s.sx,s.sy,s.sw,s.sh,l,u,d,f)},uE=e=>{e.source.pause(),e.source.srcObject=null,e.stream.getTracks().forEach(e=>e.stop()),e.cropTarget?.remove(),e.canvas.remove(),e.source.remove()},dE={webm:`video/webm`,mp4:`video/mp4`},fE=[`vp9`,`vp8`],pE=[`avc`],mE=t=>new e.Quality(t),hE=(e,t)=>Number.isFinite(e)&&e>0?e:t,gE=(e,t,n)=>{let r=Math.max(2,Math.round(hE(e,2))),i=Math.max(2,Math.round(hE(t,2)));return n===`mp4`&&(r%2!=0&&(r+=1),i%2!=0&&(i+=1)),{width:r,height:i}},_E=(e,t={})=>{let n=Math.max(.001,hE(e.duration,.001)),r=Math.min(n,Math.max(0,Number.isFinite(t.startTime)?t.startTime??0:0)),i=Number.isFinite(t.endTime)?t.endTime??n:n,a=Math.min(n,Math.max(r+.001,i));return{format:t.format??`webm`,startTime:r,endTime:a,scale:t.scale??1,quality:t.quality??`medium`}},vE=e=>e===`webm`?fE:pE,yE=async(t,n,r,i,a=`medium`)=>{let o=gE(n,r,t),s=mE(a);for(let n of vE(t))if(await(0,e.canEncodeVideo)(n,{width:o.width,height:o.height,frameRate:i,quality:s}))return n;return null},bE=async(e,t,n=30)=>{let r=[];return await yE(`webm`,e,t,n)&&r.push(`webm`),await yE(`mp4`,e,t,n)&&r.push(`mp4`),r},xE=t=>t===`webm`?new e.WebMOutputFormat:new e.Mp4OutputFormat,SE=async(t,n={})=>{let r=n.format??`webm`,i=Math.max(1,Math.min(120,Math.round(n.frameRate??30))),a=n.quality??`medium`,o=t.width,s=t.height,c=await yE(r,o,s,i,a);if(!c)throw Error(`MediaBunny cannot encode ${r.toUpperCase()} at ${o}×${s} in this runtime.`);let l=new e.BufferTarget,u=new e.Output({format:xE(r),target:l}),d=new e.CanvasSource(t,{codec:c,quality:mE(a)});u.addVideoTrack(d,{frameRate:i}),await u.start();let f=!1,p=-1;return{format:r,mimeType:dE[r],codec:c,async addFrame(e,t=1/i){if(f)throw Error(`Recording session is already closed.`);if(!Number.isFinite(e)||e<0)throw TypeError(`Recording frame timestamp must be a non-negative finite number.`);if(!Number.isFinite(t)||t<0)throw TypeError(`Recording frame duration must be a non-negative finite number.`);if(e<=p)throw Error(`Recording frame timestamps must increase monotonically.`);p=e,await d.add(e,t)},finalize:async()=>{if(f)throw Error(`Recording session is already closed.`);if(f=!0,d.close(),await u.finalize(),!l.buffer||l.buffer.byteLength===0)throw Error(`MediaBunny produced an empty recording.`);return new Blob([l.buffer],{type:dE[r]})},async cancel(){if(!f){f=!0,d.close();try{await u.cancel()}catch{}}}}},CE=async t=>{let n=new e.Input({source:new e.BlobSource(t),formats:e.ALL_FORMATS});try{if(!await n.canRead())throw Error(`MediaBunny cannot read the recording.`);let e=await n.getPrimaryVideoTrack();if(!e)throw Error(`Recording has no video track.`);let[t,r,i]=await Promise.all([n.computeDuration(),e.getCodedWidth(),e.getCodedHeight()]);return{duration:Math.max(.001,t),width:r,height:i}}finally{n.dispose()}},wE=async(t,n={})=>{let r=await CE(t),i=_E(r,n),a=gE(r.width*i.scale,r.height*i.scale,i.format),o=await yE(i.format,a.width,a.height,30,i.quality);if(!o)throw Error(`MediaBunny cannot export ${i.format.toUpperCase()} in this runtime.`);let s=new e.Input({source:new e.BlobSource(t),formats:e.ALL_FORMATS}),c=new e.BufferTarget,l=new e.Output({format:xE(i.format),target:c});try{let t=await e.Conversion.init({input:s,output:l,trim:{start:i.startTime,end:i.endTime},video:{codec:o,width:a.width,height:a.height,fit:`fill`,quality:mE(i.quality),forceTranscode:!0},audio:{discard:!0}});if(!t.isValid)throw Error(`MediaBunny cannot convert this recording to ${i.format.toUpperCase()}.`);if(await t.execute(),!c.buffer||c.buffer.byteLength===0)throw Error(`MediaBunny produced an empty export.`);let n=new Blob([c.buffer],{type:dE[i.format]}),r=await CE(n);return{blob:n,format:i.format,duration:r.duration,width:r.width,height:r.height}}finally{s.dispose()}},TE=(e,t=new Date)=>`mesurer-recording-${t.toISOString().replace(/[:.]/g,`-`)}.${e}`,EE=10,DE=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},OE=(e,t,n)=>{let r=e.createElement(`button`);return r.type=`button`,r.setAttribute(`aria-label`,t),r.title=t,r.textContent=n,DE(r,{display:`inline-flex`,width:`20px`,height:`20px`,padding:`0`,border:`0`,"border-radius":`5px`,background:`transparent`,color:`var(--msr-content, #18181b)`,"align-items":`center`,"justify-content":`center`,"font-family":`inherit`,"font-size":`11px`,"line-height":`1`,cursor:`pointer`}),r},kE=(e,t)=>{let n=e.createElement(`button`);n.type=`button`,n.setAttribute(`role`,`menuitemradio`),DE(n,{display:`grid`,width:`100%`,height:`28px`,padding:`0 8px`,border:`0`,"border-radius":`6px`,background:`transparent`,color:`var(--msr-content, #18181b)`,"grid-template-columns":`14px minmax(0, 1fr)`,gap:`6px`,"align-items":`center`,"text-align":`left`,"font-family":`inherit`,"font-size":`11px`,cursor:`pointer`});let r=e.createElement(`span`);r.setAttribute(`aria-hidden`,`true`),r.textContent=`✓`,r.style.opacity=`0`;let i=e.createElement(`span`);return i.textContent=t,n.append(r,i),{button:n,check:r,text:i}},AE=({ownerDocument:e,root:t})=>{let n=e.createElement(`section`);n.dataset.mesurerRecordingPreview=`true`,n.dataset.mesurerInspectorUi=`true`,n.setAttribute(`role`,`dialog`),n.setAttribute(`aria-label`,`Screen recording editor`),n.tabIndex=0,DE(n,{position:`fixed`,display:`none`,width:`352px`,"max-width":`calc(100vw - 16px)`,padding:`8px`,"z-index":`98`,"box-sizing":`border-box`,overflow:`visible`,"border-radius":`13px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`,"font-size":`11px`,"pointer-events":`auto`,outline:`none`,transform:`translateX(-50%)`,transition:`width 200ms ease`}),t.append(n);let r=e.createElement(`div`);DE(r,{position:`relative`,display:`flex`,width:`100%`,"min-height":`72px`,"max-height":`144px`,overflow:`hidden`,"border-radius":`8px`,background:`var(--msr-surface-muted, #f8fafc)`,"align-items":`center`,"justify-content":`center`,transition:`max-height 200ms ease`,cursor:`default`}),n.append(r);let i=e.createElement(`video`);i.muted=!0,i.playsInline=!0,i.preload=`auto`,DE(i,{display:`block`,width:`100%`,height:`100%`,"max-width":`100%`,"max-height":`144px`,"object-fit":`contain`,transition:`max-height 200ms ease`}),r.append(i);let a=e.createElement(`div`);a.dataset.mesurerRecordingExporting=`true`,a.textContent=`Exporting…`,DE(a,{position:`absolute`,inset:`0`,display:`none`,"align-items":`center`,"justify-content":`center`,"z-index":`30`,background:`rgb(15 23 42 / 45%)`,color:`#fff`,"font-size":`11px`,"pointer-events":`none`}),r.append(a);let o=OE(e,`Close`,`×`);o.dataset.mesurerRecordingDiscard=`true`,DE(o,{position:`absolute`,top:`6px`,right:`6px`,width:`24px`,height:`24px`,"z-index":`40`,background:`rgb(15 23 42 / 78%)`,color:`#fff`,opacity:`0`,"pointer-events":`none`,transition:`opacity 150ms ease`}),r.append(o),r.addEventListener(`mouseenter`,()=>{o.style.opacity=`1`,o.style.pointerEvents=`auto`}),r.addEventListener(`mouseleave`,()=>{e.activeElement!==o&&(o.style.opacity=`0`,o.style.pointerEvents=`none`)}),o.addEventListener(`focus`,()=>{o.style.opacity=`1`,o.style.pointerEvents=`auto`}),o.addEventListener(`blur`,()=>{o.style.opacity=`0`,o.style.pointerEvents=`none`});let s=e.createElement(`div`);DE(s,{display:`flex`,height:`28px`,"align-items":`center`,gap:`8px`,"margin-top":`8px`}),n.append(s);let c=OE(e,`Play`,`▶`);c.dataset.mesurerRecordingPlay=`true`,s.append(c);let l=e.createElement(`span`);l.dataset.mesurerRecordingCurrentTime=`true`,l.textContent=`0:00.00`,DE(l,{display:`flex`,width:`8ch`,"min-width":`8ch`,height:`20px`,"align-items":`center`,"flex-shrink":`0`,color:`var(--msr-color-ink-500, #64748b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"white-space":`nowrap`}),s.append(l);let u=e.createElement(`div`);u.dataset.mesurerRecordingTimeline=`true`,DE(u,{position:`relative`,height:`28px`,"min-width":`0`,flex:`1 1 0`,cursor:`pointer`,"user-select":`none`}),s.append(u);let d=e.createElement(`div`);d.dataset.mesurerRecordingTimelineTrack=`true`,DE(d,{position:`absolute`,left:`${EE}px`,right:`${EE}px`,top:`0`,bottom:`0`}),u.append(d);let f=e.createElement(`div`);f.dataset.mesurerRecordingTimelineRail=`true`,DE(f,{position:`absolute`,left:`0`,right:`0`,top:`21px`,height:`3px`,transform:`translateY(-50%)`,"border-radius":`999px`,background:`var(--msr-color-ink-200, #e2e8f0)`,"pointer-events":`none`}),d.append(f);let p=e.createElement(`div`);p.dataset.mesurerRecordingTimelineClip=`true`,DE(p,{position:`absolute`,top:`21px`,height:`3px`,transform:`translateY(-50%)`,"border-radius":`999px`,background:`var(--msr-color-ink-300, #cbd5e1)`,"pointer-events":`none`}),d.append(p);let m=e.createElement(`div`);DE(m,{position:`absolute`,display:`none`,top:`21px`,width:`2px`,height:`10px`,transform:`translate(-50%, -50%)`,"border-radius":`999px`,background:`var(--msr-color-ink-500, #64748b)`,opacity:`0.5`,"pointer-events":`none`}),d.append(m);let h=e.createElement(`div`);h.dataset.mesurerRecordingPlayhead=`true`,DE(h,{position:`absolute`,top:`21px`,left:`0`,width:`2px`,height:`9px`,transform:`translate(-50%, -50%)`,"border-radius":`999px`,background:`var(--msr-content, #18181b)`,"z-index":`25`,"pointer-events":`none`,transition:`height 150ms ease`}),d.append(h);let g=(t,n)=>{let r=e.createElement(`button`);r.type=`button`,r.dataset.mesurerRecordingTrimHandle=t,r.setAttribute(`role`,`slider`),r.setAttribute(`aria-label`,n),r.setAttribute(`aria-valuemin`,`0`),DE(r,{position:`absolute`,top:`0`,display:`flex`,width:`20px`,height:`16px`,padding:`0`,border:`0`,"border-radius":`4px`,background:`transparent`,color:`var(--msr-content, #18181b)`,transform:`translateX(-50%)`,"z-index":`30`,"align-items":`center`,"justify-content":`center`,cursor:`ew-resize`,"touch-action":`none`});let i=e.createElementNS(`http://www.w3.org/2000/svg`,`svg`);i.dataset.mesurerRecordingTrimChevron=t,i.setAttribute(`aria-hidden`,`true`),i.setAttribute(`viewBox`,`0 0 12 14`),i.setAttribute(`width`,`12`),i.setAttribute(`height`,`14`);let a=e.createElementNS(`http://www.w3.org/2000/svg`,`path`);a.setAttribute(`d`,t===`start`?`M3.5 2.5L8.5 7L3.5 11.5`:`M8.5 2.5L3.5 7L8.5 11.5`),a.setAttribute(`fill`,`none`),a.setAttribute(`stroke`,`currentColor`),a.setAttribute(`stroke-width`,`2`),a.setAttribute(`stroke-linecap`,`round`),a.setAttribute(`stroke-linejoin`,`round`),i.append(a),r.append(i);let o=e.createElement(`span`);return o.setAttribute(`aria-hidden`,`true`),DE(o,{position:`absolute`,left:`50%`,top:`15px`,width:`1px`,height:`4px`,background:`var(--msr-content, #18181b)`,transform:`translateX(-50%)`,"pointer-events":`none`}),r.append(o),d.append(r),r},_=g(`start`,`Trim start`),v=g(`end`,`Trim end`),y=e.createElement(`span`);y.dataset.mesurerRecordingDuration=`true`,DE(y,{display:`flex`,width:`8ch`,"min-width":`8ch`,height:`20px`,"align-items":`center`,"justify-content":`flex-end`,"flex-shrink":`0`,color:`var(--msr-color-ink-500, #64748b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"white-space":`nowrap`}),s.append(y);let b=e.createElement(`div`);DE(b,{position:`relative`,display:`flex`,height:`20px`,"align-items":`center`}),s.append(b);let x=OE(e,`Export options`,`1×`);x.dataset.mesurerRecordingExportOptions=`true`,x.setAttribute(`aria-haspopup`,`menu`),x.setAttribute(`aria-expanded`,`false`),DE(x,{width:`28px`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`}),b.append(x);let S=e.createElement(`div`);S.dataset.mesurerRecordingExportMenu=`true`,S.setAttribute(`role`,`menu`),DE(S,{position:`absolute`,display:`none`,right:`0`,bottom:`24px`,width:`176px`,padding:`4px`,"z-index":`120`,border:`1px solid var(--msr-color-ink-200, #e2e8f0)`,"border-radius":`9px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))`,"pointer-events":`auto`}),b.append(S);let C=e.createElement(`p`);C.textContent=`Format`,DE(C,{margin:`0`,padding:`4px 8px`,color:`var(--msr-color-ink-500, #64748b)`,"font-size":`10px`,"font-weight":`500`}),S.append(C);let w=e.createElement(`div`);S.append(w);let T=e.createElement(`p`);T.textContent=`Size`,DE(T,{margin:`0`,padding:`6px 8px 4px`,color:`var(--msr-color-ink-500, #64748b)`,"font-size":`10px`,"font-weight":`500`}),S.append(T);let E=e.createElement(`div`);S.append(E);let D=[1,2,3].map(t=>{let n=kE(e,`${t}×`);return n.button.dataset.mesurerRecordingScale=String(t),E.append(n.button),{scale:t,...n}}),O=OE(e,`Download`,`↓`);O.dataset.mesurerRecordingExport=`true`,s.append(O);let k=OE(e,`Grow preview`,`↗`);k.dataset.mesurerRecordingExpand=`true`,s.append(k);let A=e.createElement(`p`);return A.dataset.mesurerRecordingPreviewStatus=`true`,A.setAttribute(`role`,`status`),DE(A,{display:`none`,margin:`8px 0 0`,color:`var(--msr-color-ink-500, #64748b)`,"font-size":`11px`,"line-height":`16px`}),n.append(A),{panel:n,previewShell:r,video:i,exportingOverlay:a,close:o,play:c,currentTime:l,timeline:u,track:d,clip:p,hoverMarker:m,playhead:h,trimStart:_,trimEnd:v,durationLabel:y,exportAnchor:b,exportOptions:x,exportMenu:S,formatRows:w,scaleRows:D,download:O,expand:k,status:A}},jE=8,ME=8,NE=.05,PE=200,FE=e=>{let t=Number.isFinite(e)?Math.max(0,e):0,n=Math.floor(t/60);return`${n}:${(t-n*60).toFixed(2).padStart(5,`0`)}`},IE=(e,t,n,r)=>{let i=globalThis.URL.createObjectURL(e),a=n.createElement(`a`);a.href=i,a.download=t,a.rel=`noopener`,n.documentElement.append(a),a.click(),a.remove(),r.setTimeout(()=>globalThis.URL.revokeObjectURL(i),1e3)},LE=({ownerDocument:e,ownerWindow:t,root:n,formats:r,onDiscard:i,onExport:a})=>{let{panel:o,previewShell:s,video:c,exportingOverlay:l,close:u,play:d,currentTime:f,timeline:p,track:m,clip:h,hoverMarker:g,playhead:_,trimStart:v,trimEnd:y,durationLabel:b,exportAnchor:x,exportOptions:S,exportMenu:C,formatRows:w,scaleRows:T,download:E,expand:D,status:O}=AE({ownerDocument:e,root:n}),k=null,A=null,j=!1,M=!1,N=0,P=[`webm`],F=`webm`,I=1,L=0,R=0,z=null,B=null,V=null,H=e=>{let t=k?.duration??0;return t<=0?0:Math.min(1,Math.max(0,e/t))},U=()=>({start:L,end:R}),ee=e=>{let t=k?.duration??0,n=m.getBoundingClientRect();return t<=0||n.width<=0?0:Math.min(t,Math.max(0,(e-n.left)/n.width*t))},W=()=>{let e=k?.duration??0,t=Math.min(e,Math.max(0,c.currentTime||0)),n=H(L)*100,r=H(R)*100;v.style.left=`${n}%`,y.style.left=`${r}%`,h.style.left=`${n}%`,h.style.width=`${Math.max(0,r-n)}%`,_.style.left=`${H(t)*100}%`,v.setAttribute(`aria-valuemax`,String(Math.max(0,R-NE))),v.setAttribute(`aria-valuenow`,String(L)),v.setAttribute(`aria-valuetext`,FE(L)),y.setAttribute(`aria-valuemin`,String(Math.min(e,L+NE))),y.setAttribute(`aria-valuemax`,String(e)),y.setAttribute(`aria-valuenow`,String(R)),y.setAttribute(`aria-valuetext`,FE(R)),f.textContent=FE(t),b.textContent=FE(e)},te=(e,t=!0)=>{if(!k)return;let n=Math.min(R,Math.max(L,e));t&&!c.paused&&c.pause(),c.currentTime=n,W()},ne=(e,t=!1)=>{k&&(L=Math.min(Math.max(0,e),Math.max(0,R-NE)),(t||c.currentTime<L)&&te(L),W())},re=(e,t=!1)=>{k&&(R=Math.max(Math.min(k.duration,e),Math.min(k.duration,L+NE)),t?te(R):c.currentTime>R&&te(L),W())},ie=()=>{S.textContent=`${I}×`;for(let e of T){let t=e.scale===I;e.button.setAttribute(`aria-checked`,t?`true`:`false`),e.check.style.opacity=t?`1`:`0`,e.text.textContent=k?`${e.scale}× ${Math.round(k.width*e.scale)} × ${Math.round(k.height*e.scale)}`:`${e.scale}×`}},ae=()=>{w.replaceChildren();for(let t of P){let n=kE(e,t===`mp4`?`MP4`:`WebM`),r=t===F;n.button.dataset.mesurerRecordingFormat=t,n.button.setAttribute(`aria-checked`,r?`true`:`false`),n.check.style.opacity=r?`1`:`0`,n.button.addEventListener(`click`,()=>{F=t,ae()}),w.append(n.button)}},oe=()=>{if(C.style.display===`none`)return;let e=x.getBoundingClientRect(),n=Math.max(1,C.offsetHeight),r=e.top-jE,i=t.innerHeight-e.bottom-jE;r>=n||r>=i?(C.style.top=`auto`,C.style.bottom=`24px`):(C.style.top=`24px`,C.style.bottom=`auto`)},se=e=>{C.style.display=e?`block`:`none`,S.setAttribute(`aria-expanded`,e?`true`:`false`),e&&oe()},ce=e=>{M=e,l.style.display=e?`flex`:`none`;for(let t of[d,u,v,y,S,E,D,...T.map(e=>e.button)])t.toggleAttribute(`disabled`,e)},le=()=>n.closest(`[data-mesurer-root='true']`)?.querySelector(`[data-mesurer-tool-id='recording']`)??e.querySelector(`[data-mesurer-tool-id='recording']`),ue=()=>{if(o.style.display===`none`)return;let e=Math.min(j?576:352,Math.max(1,t.innerWidth-16)),n=Math.max(180,o.offsetHeight),r=le()?.getBoundingClientRect(),i=r?r.left+r.width/2:t.innerWidth-jE-e/2,a=jE+e/2,s=Math.max(a,t.innerWidth-jE-e/2),c=Math.min(Math.max(a,i),s),l=r?r.bottom+ME:jE;l+n>t.innerHeight-jE&&(l=r?r.top-n-ME:t.innerHeight-n-jE),o.style.left=`${c}px`,o.style.top=`${Math.max(jE,l)}px`,C.style.display!==`none`&&oe()},de=()=>{c.pause(),c.removeAttribute(`src`),c.load(),A&&=(globalThis.URL.revokeObjectURL(A),null)},fe=()=>{N+=1,V&&=(V.cancel(),null),de(),k=null,z=null,B=null,se(!1),o.style.display=`none`,o.style.pointerEvents=`auto`,o.style.opacity=`1`,o.style.transform=`translateX(-50%)`,o.style.removeProperty(`transform-origin`),o.style.removeProperty(`will-change`),O.style.display=`none`,ce(!1)},pe=()=>{if(!k||o.style.display===`none`||V)return;let e=o.getBoundingClientRect(),t=le()?.getBoundingClientRect(),n=t?t.left+t.width/2:e.left+e.width/2,r=t?t.top+t.height/2:e.top+e.height/2;c.pause(),se(!1),o.style.pointerEvents=`none`,o.style.left=`${e.left}px`,o.style.top=`${e.top}px`,o.style.transform=`none`,o.style.transformOrigin=`${n-e.left}px ${r-e.top}px`,o.style.willChange=`transform, opacity`;let a=o.animate([{transform:`scale(1)`,opacity:1},{transform:`scale(0.08)`,opacity:0}],{duration:PE,easing:`ease`,fill:`forwards`});V=a,a.finished.catch(()=>void 0).then(()=>{V===a&&(a.cancel(),V=null,o.style.removeProperty(`will-change`),i())})},me=()=>{if(!(!k||M)){if(!c.paused){c.pause();return}(c.currentTime<L||c.currentTime>=R)&&(c.currentTime=L),c.play()}},he=()=>{z=null,B=null,_.style.height=`8px`},ge=e=>{if(!z)return;let t=ee(e);z===`start`?ne(t,!0):z===`end`?re(t,!0):te(t)},_e=(e,t)=>{!k||M||t.button!==0||(t.preventDefault(),t.stopPropagation(),z=e,B=t.pointerId,_.style.height=`10px`,ge(t.clientX))},ve=e=>{B!==null&&e.pointerId===B&&ge(e.clientX)},ye=e=>{B!==null&&e.pointerId===B&&he()};v.addEventListener(`pointerdown`,e=>_e(`start`,e)),y.addEventListener(`pointerdown`,e=>_e(`end`,e)),p.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-trim-handle]`)||_e(`playhead`,e)}),p.addEventListener(`pointermove`,e=>{B===null&&(g.style.display=`block`,g.style.left=`${H(ee(e.clientX))*100}%`)}),p.addEventListener(`pointerleave`,()=>{g.style.display=`none`});for(let[e,t]of[[`start`,v],[`end`,y]])t.addEventListener(`keydown`,t=>{if(!k||t.key!==`ArrowLeft`&&t.key!==`ArrowRight`)return;t.preventDefault();let n=t.key===`ArrowLeft`?-1:1,r=(e===`start`?L:R)+n*.05;e===`start`?ne(r,!0):re(r,!0)});t.addEventListener(`pointermove`,ve,!0),t.addEventListener(`pointerup`,ye,!0),t.addEventListener(`pointercancel`,ye,!0),u.addEventListener(`click`,e=>{e.stopPropagation(),pe()}),s.addEventListener(`click`,e=>{let t=e.target;t instanceof Element&&t.closest(`button`)||me()}),d.addEventListener(`click`,me),c.addEventListener(`play`,()=>{d.textContent=`Ⅱ`,d.setAttribute(`aria-label`,`Pause`),d.title=`Pause`}),c.addEventListener(`pause`,()=>{d.textContent=`▶`,d.setAttribute(`aria-label`,`Play`),d.title=`Play`}),c.addEventListener(`timeupdate`,()=>{k&&(c.currentTime>=R-.01?(c.pause(),c.currentTime=L):c.currentTime<L&&(c.currentTime=L),W())}),c.addEventListener(`loadedmetadata`,()=>{W()}),S.addEventListener(`click`,()=>{M||se(C.style.display===`none`)});for(let e of T)e.button.addEventListener(`click`,()=>{I=e.scale,ie()});let be=e=>{C.style.display!==`none`&&(e.composedPath().includes(x)||se(!1))};e.addEventListener(`pointerdown`,be,!0),D.addEventListener(`click`,()=>{j=!j,o.style.width=`${j?576:352}px`,s.style.maxHeight=j?`448px`:`144px`,c.style.maxHeight=j?`448px`:`144px`,D.textContent=j?`↙`:`↗`,D.setAttribute(`aria-label`,j?`Shrink preview`:`Grow preview`),D.title=j?`Shrink preview`:`Grow preview`,t.requestAnimationFrame(ue)}),E.addEventListener(`click`,()=>{if(!k||M||P.length===0)return;let n=++N,{start:r,end:i}=U();ce(!0),se(!1),O.style.display=`none`,a({format:F,startTime:r,endTime:i,scale:I}).then(r=>{n===N&&IE(r.blob,r.filename,e,t)}).catch(e=>{n===N&&(O.style.display=`block`,O.style.color=`var(--msr-danger-text, #dc2626)`,O.textContent=e instanceof Error?e.message:`Could not export the recording.`)}).finally(()=>{n===N&&ce(!1)})}),o.addEventListener(`keydown`,e=>{if(e.key===`Escape`){if(C.style.display!==`none`){e.preventDefault(),se(!1);return}e.preventDefault(),pe();return}(e.key===` `||e.code===`Space`)&&e.target===o&&(e.preventDefault(),me())});let xe=()=>ue();return t.addEventListener(`resize`,xe),{show(e){N+=1,V&&=(V.cancel(),null),o.style.pointerEvents=`auto`,o.style.opacity=`1`,o.style.transform=`translateX(-50%)`,o.style.removeProperty(`transform-origin`),o.style.removeProperty(`will-change`),de(),k=e,j=!1,I=1,F=`webm`,P=[`webm`],L=0,R=e.duration,z=null,B=null;let n=globalThis.URL.createObjectURL(e.blob);A=n,c.src=n,c.currentTime=0,s.style.aspectRatio=e.width>0&&e.height>0?`${e.width} / ${e.height}`:`16 / 9`,o.style.width=`352px`,s.style.maxHeight=`144px`,c.style.maxHeight=`144px`,D.textContent=`↗`,D.setAttribute(`aria-label`,`Grow preview`),D.title=`Grow preview`,f.textContent=`0:00.00`,b.textContent=FE(e.duration),O.style.display=`none`,O.style.color=`var(--msr-color-ink-500, #64748b)`,se(!1),ae(),ie(),W(),ce(!1),o.style.display=`block`,ue(),o.focus({preventScroll:!0});let i=N;r(e).then(e=>{i!==N||!k||(P=e,F=e.includes(F)?F:e[0]??`webm`,ae(),E.disabled=e.length===0,e.length===0&&(O.style.display=`block`,O.style.color=`var(--msr-danger-text, #dc2626)`,O.textContent=`No MediaBunny video encoder is available in this runtime.`))}).catch(e=>{i===N&&(P=[],ae(),E.disabled=!0,O.style.display=`block`,O.style.color=`var(--msr-danger-text, #dc2626)`,O.textContent=e instanceof Error?e.message:`Could not inspect export support.`)}),t.requestAnimationFrame(ue)},dismiss:fe,dispose(){fe(),t.removeEventListener(`resize`,xe),t.removeEventListener(`pointermove`,ve,!0),t.removeEventListener(`pointerup`,ye,!0),t.removeEventListener(`pointercancel`,ye,!0),e.removeEventListener(`pointerdown`,be,!0),o.remove()}}},RE=3e3,zE=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},BE=({ownerDocument:e,ownerWindow:t,root:n,statusRoot:r,rendererRoot:i,isSelecting:a,isRecording:o,onRectChange:s,onConfirm:c,onCancel:l,onStop:u,setRecordingInteractionActive:d})=>{let f=e.createElement(`div`);f.dataset.mesurerRecordingSelect=`true`,f.dataset.mesurerInspectorUi=`true`,f.setAttribute(`role`,`application`),f.setAttribute(`aria-label`,`Recording selection`),zE(f,{position:`fixed`,inset:`0`,display:`none`,"z-index":`86`,cursor:`crosshair`,"pointer-events":`auto`,"user-select":`none`,"touch-action":`none`}),n.append(f);let p=Array.from({length:4},()=>{let t=e.createElement(`div`);return t.dataset.mesurerRecordingShade=`true`,zE(t,{position:`fixed`,background:`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),f.append(t),t}),m=e.createElement(`div`);m.dataset.mesurerRecordingMask=`true`,zE(m,{position:`fixed`,display:`none`,background:`transparent`,outline:`2px solid var(--msr-accent, #0d99ff)`,"outline-offset":`-1px`,"box-shadow":`0 0 0 100vmax rgb(0 0 0 / 40%)`,"pointer-events":`none`}),f.append(m);let h=e.createElement(`div`);h.dataset.mesurerRecordingSelection=`true`,zE(h,{position:`fixed`,display:`none`,border:`1px solid var(--msr-accent, #0d99ff)`,"box-sizing":`border-box`,"pointer-events":`none`}),f.append(h);let g=e.createElement(`div`);zE(g,{position:`fixed`,display:`none`,transform:`translateX(-50%)`,padding:`2px 5px`,"border-radius":`4px`,background:`var(--msr-accent, #0d99ff)`,color:`#fff`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"pointer-events":`none`}),f.append(g);let _=e.createElement(`div`);_.textContent=`Drag a region to record · Esc to cancel`,zE(_,{position:`fixed`,left:`50%`,bottom:`16px`,transform:`translateX(-50%)`,padding:`5px 8px`,"border-radius":`6px`,background:`var(--msr-content, #18181b)`,color:`var(--msr-surface, #fff)`,"font-size":`11px`,"pointer-events":`none`}),f.append(_);let v=e.createElement(`div`);v.dataset.mesurerRecordingRegion=`true`,v.dataset.mesurerInspectorUi=`true`,v.setAttribute(`role`,`dialog`),v.setAttribute(`aria-label`,`Recording region`),zE(v,{position:`fixed`,display:`none`,width:`220px`,padding:`8px`,"z-index":`90`,"box-sizing":`border-box`,overflow:`hidden`,"border-radius":`10px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 10px 30px rgba(0,0,0,.12))`,"font-size":`11px`,"pointer-events":`auto`,transform:`translateX(-50%)`}),f.append(v);let y=t=>{let n=e.createElement(`label`);zE(n,{display:`grid`,"grid-template-columns":`44px minmax(0,1fr)`,"align-items":`center`,gap:`8px`});let r=e.createElement(`span`);r.textContent=t,r.style.color=`var(--msr-color-ink-500, #64748b)`,n.append(r);let i=e.createElement(`div`);return zE(i,{display:`flex`,"align-items":`center`,gap:`4px`,"min-width":`0`}),n.append(i),v.append(n),i},b=t=>{let n=e.createElement(`input`);return n.type=`number`,n.setAttribute(`aria-label`,t),n.step=`1`,zE(n,{width:`0`,"min-width":`0`,flex:`1 1 0`,height:`26px`,padding:`0 6px`,border:`1px solid var(--msr-color-ink-200, #e2e8f0)`,"border-radius":`6px`,background:`var(--msr-surface, #fff)`,color:`var(--msr-content, #18181b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`}),n},x=y(`Size`),S=b(`Width`),C=b(`Height`);x.append(S);let w=e.createElement(`span`);w.textContent=`×`,w.style.color=`var(--msr-color-ink-500, #64748b)`,x.append(w,C);let T=e.createElement(`span`);T.textContent=`px`,T.style.color=`var(--msr-color-ink-500, #64748b)`,x.append(T);let E=y(`Position`);E.style.marginTop=`8px`;let D=b(`Left`),O=b(`Top`);E.append(D,O);let k=e.createElement(`span`);k.textContent=`px`,k.style.color=`var(--msr-color-ink-500, #64748b)`,E.append(k);let A=e.createElement(`button`);A.type=`button`,A.dataset.mesurerRecordingStart=`true`,A.textContent=`● Start recording`,zE(A,{width:`100%`,height:`28px`,"margin-top":`8px`,border:`1px solid var(--msr-color-ink-200, #e2e8f0)`,"border-radius":`7px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"font-family":`inherit`,"font-size":`11px`,"font-weight":`500`,cursor:`pointer`}),v.append(A);let j=e.createElement(`div`);j.dataset.mesurerRecordingGrid=`true`,zE(j,{position:`absolute`,inset:`0`,display:`none`,"pointer-events":`none`}),h.append(j);let M=t=>{let n=e.createElement(`div`);zE(n,{position:`absolute`,opacity:`0.3`,...t}),j.append(n)};M({left:`33.333%`,top:`0`,bottom:`0`,borderLeft:`1px dashed var(--msr-color-ink-500, #64748b)`}),M({left:`66.666%`,top:`0`,bottom:`0`,borderLeft:`1px dashed var(--msr-color-ink-500, #64748b)`}),M({top:`33.333%`,left:`0`,right:`0`,borderTop:`1px dashed var(--msr-color-ink-500, #64748b)`}),M({top:`66.666%`,left:`0`,right:`0`,borderTop:`1px dashed var(--msr-color-ink-500, #64748b)`});let N=Object.entries({nw:{left:`0`,top:`0`},n:{left:`50%`,top:`0`},ne:{left:`100%`,top:`0`},e:{left:`100%`,top:`50%`},se:{left:`100%`,top:`100%`},s:{left:`50%`,top:`100%`},sw:{left:`0`,top:`100%`},w:{left:`0`,top:`50%`}}).map(([t,n])=>{let r=e.createElement(`button`);return r.type=`button`,r.dataset.mesurerRecordingResize=t,r.setAttribute(`aria-label`,`Resize ${t}`),zE(r,{position:`absolute`,display:`none`,left:n.left,top:n.top,width:`8px`,height:`8px`,padding:`0`,border:`1px solid var(--msr-color-white, #fff)`,"border-radius":`999px`,background:`var(--msr-color-ink-900, #18181b)`,"box-shadow":`0 0 0 1px rgb(0 0 0 / 25%)`,transform:`translate(-50%, -50%)`,cursor:t===`n`||t===`s`?`ns-resize`:t===`e`||t===`w`?`ew-resize`:t===`nw`||t===`se`?`nwse-resize`:`nesw-resize`,"pointer-events":`auto`}),h.append(r),r}),P=e.createElement(`section`);P.dataset.mesurerRecordingStatus=`true`,P.dataset.mesurerInspectorUi=`true`,P.setAttribute(`aria-label`,`Screen recording`),zE(P,{position:`fixed`,display:`none`,height:`34px`,padding:`0 8px`,"align-items":`center`,gap:`8px`,border:`0`,"border-radius":`9px`,background:`var(--msr-surface-raised, #fff)`,color:`var(--msr-content, #18181b)`,"box-shadow":`var(--msr-shadow-floating, 0 8px 24px rgba(0,0,0,.14))`,"font-family":`inherit`,"font-size":`11px`,"pointer-events":`auto`});let F=e.createElement(`span`);F.setAttribute(`aria-hidden`,`true`),zE(F,{width:`6px`,height:`6px`,"border-radius":`999px`,background:`var(--msr-danger-solid-bg, #dc2626)`,"flex-shrink":`0`}),P.append(F);let I=e.createElement(`span`);I.dataset.mesurerRecordingTime=`true`,I.textContent=`00:00`,zE(I,{color:`var(--msr-content, #18181b)`,"font-family":`ui-monospace, SFMono-Regular, Menlo, monospace`,"font-size":`11px`,"font-variant-numeric":`tabular-nums`}),P.append(I);let L=e.createElement(`button`);L.type=`button`,L.dataset.mesurerRecordingStop=`true`,L.textContent=`Stop`,L.setAttribute(`aria-label`,`Stop recording`),zE(L,{height:`24px`,padding:`0 8px`,border:`0`,"border-radius":`6px`,background:`var(--msr-danger-solid-bg, #dc2626)`,color:`var(--msr-danger-solid-text, #fff)`,"font-family":`inherit`,"font-size":`11px`,"font-weight":`500`,cursor:`pointer`}),P.append(L),r.append(P);let R=e.createElement(`div`);R.dataset.mesurerRecordingError=`true`,R.dataset.mesurerInspectorUi=`true`,R.setAttribute(`role`,`status`),zE(R,{position:`fixed`,display:`none`,left:`8px`,top:`8px`,"z-index":`99`,padding:`6px 8px`,"border-radius":`6px`,background:`var(--msr-danger, #b42318)`,color:`#fff`,"font-size":`11px`,"pointer-events":`none`}),r.append(R);let z=null,B=null,V=!1,H=null,U=0,ee=()=>{z=null,B=null,V=!1,H=null},W=(e,t)=>{for(let n of[`left`,`top`,`width`,`height`]){let r=t[n];r===void 0?e.style.removeProperty(n):e.style.setProperty(n,`${r}px`)}},te=e=>{let n=t.innerWidth,r=t.innerHeight,i=Math.min(n,Math.max(4,Math.round(e.width))),a=Math.min(r,Math.max(4,Math.round(e.height)));return{left:Math.min(Math.max(0,Math.round(e.left)),Math.max(0,n-i)),top:Math.min(Math.max(0,Math.round(e.top)),Math.max(0,r-a)),width:i,height:a}},ne=(e,t)=>t.x>=e.left&&t.x<=e.left+e.width&&t.y>=e.top&&t.y<=e.top+e.height,re=e=>{let n=t.innerWidth,r=t.innerHeight;if(!e||e.width<=0||e.height<=0){W(p[0],{left:0,top:0,width:n,height:r});for(let e of p.slice(1))W(e,{left:0,top:0,width:0,height:0});h.style.display=`none`,h.style.pointerEvents=`none`,j.style.display=`none`;for(let e of N)e.style.display=`none`;g.style.display=`none`,v.style.display=`none`,_.textContent=`Drag to select a region · Esc to cancel`;return}if(W(p[0],{left:0,top:0,width:n,height:e.top}),W(p[1],{left:0,top:e.top,width:e.left,height:e.height}),W(p[2],{left:e.left+e.width,top:e.top,width:Math.max(0,n-e.left-e.width),height:e.height}),W(p[3],{left:0,top:e.top+e.height,width:n,height:Math.max(0,r-e.top-e.height)}),h.style.display=`block`,W(h,e),V){h.style.pointerEvents=`auto`,h.style.cursor=`move`,j.style.display=`block`;for(let e of N)e.style.display=`block`;g.style.display=`none`,S.value=String(Math.round(e.width)),C.value=String(Math.round(e.height)),D.value=String(Math.round(e.left)),O.value=String(Math.round(e.top)),S.max=String(n),C.max=String(r),D.max=String(Math.max(0,n-e.width)),O.max=String(Math.max(0,r-e.height));let t=Math.min(Math.max(118,e.left+e.width/2),Math.max(118,n-110-8)),i=e.top+e.height+12,a=i+112<=r?i:Math.max(8,e.top-112);v.style.left=`${t}px`,v.style.top=`${a}px`,v.style.display=`block`,_.textContent=`Adjust region · Enter to start · Esc to cancel`}else{h.style.pointerEvents=`none`,h.style.cursor=``,j.style.display=`none`;for(let e of N)e.style.display=`none`;v.style.display=`none`,g.style.display=`block`,g.textContent=`${Math.round(e.width)} × ${Math.round(e.height)}`,W(g,{left:e.left+e.width/2,top:Math.min(r-22,e.top+e.height+6)}),_.textContent=`Drag to select a region · Esc to cancel`}},ie=e=>{let t=te(e);B=t,s(t),re(t)},ae=e=>{ee();for(let e of p)W(e,{left:0,top:0,width:0,height:0});W(m,e),m.style.display=`block`,h.style.display=`none`,g.style.display=`none`,v.style.display=`none`,j.style.display=`none`,_.style.display=`none`;for(let e of N)e.style.display=`none`;f.style.display=`block`,f.style.pointerEvents=`none`,f.style.cursor=`default`},oe=()=>{d(!1),m.style.display=`none`,f.style.display=`none`,f.style.pointerEvents=`auto`,f.style.cursor=`crosshair`,_.style.removeProperty(`display`)},se=()=>{ee(),re(null),f.style.display=`none`,f.style.cursor=`crosshair`,n.style.pointerEvents=`none`},ce=e=>{let n=t.innerHeight,r=t.innerWidth;P.style.visibility=`hidden`,P.style.display=`flex`;let a=Math.max(112,P.offsetWidth||112),o=Math.min(r-a-8,Math.max(8,e.left+e.width/2-a/2)),s=i?.querySelector(`[data-mesurer-toolbar='true']`)?.getBoundingClientRect(),c=[e.top>=50?e.top-34-8:null,n-(e.top+e.height)>=50?e.top+e.height+8:null].filter(e=>e!==null),l=e=>s?o<s.right&&o+a>s.left&&e<s.bottom&&e+34>s.top:!1,u=c.find(e=>!l(e))??c[0]??null;if(u===null){P.style.display=`none`,P.style.removeProperty(`visibility`);return}P.style.left=`${o}px`,P.style.top=`${u}px`,P.style.removeProperty(`visibility`)},le=()=>{P.style.display=`none`},ue=e=>{U&&t.clearTimeout(U);let n=e instanceof Error?e.message:`Could not record this region.`;R.textContent=n,R.style.display=`block`,U=t.setTimeout(()=>{U=0,R.style.display=`none`},RE)},de=(e,t,n)=>{let r=B;!V||!r||e.button!==0||(e.preventDefault(),e.stopPropagation(),H={kind:t,handle:n,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,rect:{...r}},f.setPointerCapture?.(e.pointerId))},fe=e=>{!a()||e.button!==0||V&&B&&ne(B,{x:e.clientX,y:e.clientY})||(e.preventDefault(),e.stopPropagation(),V=!1,B=null,s(null),f.style.cursor=`crosshair`,z={x:e.clientX,y:e.clientY},re(Yc(z,z,{width:t.innerWidth,height:t.innerHeight})),f.setPointerCapture?.(e.pointerId))},pe=e=>{if(a()){if(H){let n=H,r=e.clientX-n.startX,i=e.clientY-n.startY,a=t.innerWidth,o=t.innerHeight;if(n.kind===`move`){ie({...n.rect,left:n.rect.left+r,top:n.rect.top+i});return}let s=n.handle??``,c=n.rect.left,l=n.rect.top,u=n.rect.left+n.rect.width,d=n.rect.top+n.rect.height;s.includes(`w`)&&(c=Math.min(u-4,Math.max(0,n.rect.left+r))),s.includes(`e`)&&(u=Math.max(c+4,Math.min(a,n.rect.left+n.rect.width+r))),s.includes(`n`)&&(l=Math.min(d-4,Math.max(0,n.rect.top+i))),s.includes(`s`)&&(d=Math.max(l+4,Math.min(o,n.rect.top+n.rect.height+i))),ie({left:c,top:l,width:u-c,height:d-l});return}z&&re(Yc(z,{x:e.clientX,y:e.clientY},{width:t.innerWidth,height:t.innerHeight}))}},me=e=>{if(H){H=null,f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId),B&&re(B);return}let n=z;if(z=null,!a()||!n)return;f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId);let r=Yc(n,{x:e.clientX,y:e.clientY},{width:t.innerWidth,height:t.innerHeight});if(r.width<4||r.height<4){B=null,V=!1,s(null),re(null);return}B=te(r),V=!0,f.style.cursor=`default`,s(B),re(B)},he=e=>{z=null,H=null,f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId),re(B&&V?B:null)},ge=e=>{if(e.key===`Enter`&&a()&&V&&B){e.preventDefault(),e.stopImmediatePropagation(),c(B).catch(()=>void 0);return}if(e.key===`Escape`){if(a()){e.preventDefault(),e.stopImmediatePropagation(),l().catch(()=>void 0);return}o()&&(e.preventDefault(),e.stopImmediatePropagation(),u().catch(()=>void 0))}};f.addEventListener(`pointerdown`,fe),f.addEventListener(`pointermove`,pe),f.addEventListener(`pointerup`,me),f.addEventListener(`pointercancel`,he),t.addEventListener(`keydown`,ge,!0),h.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-resize]`)||de(e,`move`)});for(let e of N)e.addEventListener(`pointerdown`,t=>{de(t,`resize`,e.dataset.mesurerRecordingResize)});v.addEventListener(`pointerdown`,e=>{e.stopPropagation()}),v.addEventListener(`click`,e=>{e.stopPropagation()});let _e=(e,t)=>{let n=B,r=Number(e.value);!n||!Number.isFinite(r)||ie({...n,[t]:r})};return S.addEventListener(`change`,()=>_e(S,`width`)),C.addEventListener(`change`,()=>_e(C,`height`)),D.addEventListener(`change`,()=>_e(D,`left`)),O.addEventListener(`change`,()=>_e(O,`top`)),A.addEventListener(`click`,()=>{a()&&V&&B&&c(B).catch(()=>void 0)}),L.addEventListener(`click`,()=>{if(o()){u().catch(()=>void 0);return}a()&&P.style.display!==`none`&&l().catch(()=>void 0)}),{startSelection:()=>{ee(),re(null),f.style.display=`block`,f.style.pointerEvents=`auto`,_.style.removeProperty(`display`),n.style.pointerEvents=`auto`},finishSelection:se,showRecordingMask:ae,hideRecordingMask:oe,placeRecordingStatus:ce,hideRecordingStatus:le,setRecordingTime(e){I.textContent=e},flashError:ue,dispose(){f.removeEventListener(`pointerdown`,fe),f.removeEventListener(`pointermove`,pe),f.removeEventListener(`pointerup`,me),f.removeEventListener(`pointercancel`,he),t.removeEventListener(`keydown`,ge,!0),U&&t.clearTimeout(U),se()}}},VE=e=>{let t=null,n=()=>{let e=t;e&&(t=null,e.pointerEvents||e.pointerEventsPriority?e.element.style.setProperty(`pointer-events`,e.pointerEvents,e.pointerEventsPriority):e.element.style.removeProperty(`pointer-events`),e.cursor||e.cursorPriority?e.element.style.setProperty(`cursor`,e.cursor,e.cursorPriority):e.element.style.removeProperty(`cursor`))};return{setActive(r){if(e?.toggleAttribute(`data-mesurer-recording-active`,r),!r){n();return}let i=e?.querySelector(`[data-mesurer-interaction-overlay='true']`);i&&((!t||t.element!==i)&&(n(),t={element:i,pointerEvents:i.style.getPropertyValue(`pointer-events`),pointerEventsPriority:i.style.getPropertyPriority(`pointer-events`),cursor:i.style.getPropertyValue(`cursor`),cursorPriority:i.style.getPropertyPriority(`cursor`)}),i.style.setProperty(`pointer-events`,`none`,`important`),i.style.setProperty(`cursor`,`default`,`important`))}}},HE=`mesurer.recording`,UE=`recording:v1`,WE=`mesurer.recording.settings`,GE=`runtime:solid`,KE=`recording.toggle`,qE=`recording.stop`,JE=`recording.discard`,YE=`recording.export`,XE=60,ZE=60,QE={viewBox:`0 0 24 24`,paths:[`M7 5.75A3.25 3.25 0 0 0 3.75 9v6A3.25 3.25 0 0 0 7 18.25h7A3.25 3.25 0 0 0 17.25 15v-1.03l2.13 1.42a.75.75 0 0 0 1.17-.624V9.234a.75.75 0 0 0-1.17-.624l-2.13 1.42V9A3.25 3.25 0 0 0 14 5.75H7Zm10.25 6.082 1.8-1.2v2.736l-1.8-1.2v-.336Z`,`M10.5 9.25a2.75 2.75 0 1 0 0 5.5 2.75 2.75 0 0 0 0-5.5Z`]},$E=e=>e?{...e}:null,eD=e=>({...e,rect:$E(e.rect)}),tD=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},nD=e=>e!=null&&!Array.isArray(e)&&typeof e==`object`,rD=e=>typeof e==`number`&&Number.isFinite(e),iD=e=>{if(!nD(e))return{};let t={};return(e.format===`webm`||e.format===`mp4`)&&(t.format=e.format),rD(e.startTime)&&(t.startTime=e.startTime),rD(e.endTime)&&(t.endTime=e.endTime),(e.scale===1||e.scale===2||e.scale===3)&&(t.scale=e.scale),t},aD=e=>({status:e.status,elapsed:e.elapsed,rect:e.rect?{...e.rect}:null,duration:e.duration,width:e.width,height:e.height,error:e.error}),oD=e=>({filename:e.filename,format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size}),sD=e=>({format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size,createdAt:e.createdAt}),cD=(e,t,n)=>{let r=globalThis.URL.createObjectURL(e.blob),i=t.createElement(`a`);i.href=r,i.download=e.filename,i.rel=`noopener`,t.documentElement.append(i),i.click(),i.remove(),n.setTimeout(()=>globalThis.URL.revokeObjectURL(r),1e3)},lD=(e={})=>wc({id:HE,version:`0.1.0`,requires:[GE],provides:[`tool:recording`,UE],setup(t){let n=t.service.get(GE);if(!n)throw Error(`Recording plugin requires the Solid renderer runtime.`);let{ownerDocument:r,ownerWindow:i}=n,a=n.createInspectorMount(),o=a.element,s=n.createInspectorMount(),c=s.element,l=n.rendererRoot??n.portalTarget.querySelector(`[data-mesurer-root='true']`),u=VE(l);o.dataset.mesurerRecording=`true`,c.dataset.mesurerRecordingStatusRoot=`true`,tD(o,{position:`fixed`,inset:`0`,"z-index":`86`,"pointer-events":`none`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`}),tD(c,{position:`fixed`,inset:`0`,"z-index":`96`,"pointer-events":`none`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`});let d=Math.max(1,Math.min(600,e.maxDurationSeconds??ZE)),f=e.quality??`medium`;t.state.register({id:WE,initial:{toolEnabled:e.toolEnabled??!0,frameRate:e.frameRate??XE},persist:!0});let p=()=>{let e=t.state.get(WE);return{toolEnabled:e?.toolEnabled??!0,frameRate:e?.frameRate===120?120:60}},m=e=>{t.state.update(WE,t=>{let n={...t};return e.toolEnabled!==void 0&&(n.toolEnabled=e.toolEnabled),(e.frameRate===60||e.frameRate===120)&&(n.frameRate=e.frameRate),n})},h={status:`idle`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null},g=new Set,_=null,v=null,y=null,b=null,x,S=null,C=0,w=0,T=0,E=0,D=-1,O=!1,k=null,A=()=>{let e=eD(h);for(let t of g)t(e)},j=e=>{h={...h,...e,rect:e.rect===void 0?h.rect:$E(e.rect)},A()},M=()=>h.status===`selecting`||h.status===`recording`||h.status===`exporting`,N=()=>{if(S)return;let e=n.portalTarget.querySelector(`[data-mesurer-toolbar='true']`);e&&(S={element:e,value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)},e.style.setProperty(`visibility`,`hidden`,`important`))},P=()=>{if(!S)return;let e=S;S=null,e.value||e.priority?e.element.style.setProperty(`visibility`,e.value,e.priority):e.element.style.removeProperty(`visibility`)},F=async e=>{C&&i.cancelAnimationFrame(C),C=0,w&&i.clearTimeout(w),w=0;let t=b;if(b=null,t)try{await t}catch{}let n=y;y=null,e&&await n?.cancel();let r=v;v=null,r&&uE(r),x.hideRecordingMask(),x.hideRecordingStatus()},I=()=>{_=null,z.dismiss(),j({status:`idle`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null}),t.hook.emit(`recording:discard`,{})},L=async()=>{let e=_;return bE(e?.width??Math.max(2,Math.round(i.innerWidth)),e?.height??Math.max(2,Math.round(i.innerHeight)),p().frameRate)},R=async(e={})=>{let n=_;if(!n)throw Error(`No recording is ready to export.`);let r=h.status;j({status:`exporting`,error:null});try{let r=await wE(n.blob,e),i={...r,filename:TE(r.format)};return j({status:`ready`,duration:n.duration,width:n.width,height:n.height,error:null}),await t.hook.emit(`recording:export`,{filename:i.filename,format:i.format,duration:i.duration,width:i.width,height:i.height,bytes:i.blob.size}),i}catch(e){throw j({status:r===`ready`?`ready`:`error`,error:e instanceof Error?e.message:`Could not export the recording.`}),e}},z=LE({ownerDocument:r,ownerWindow:i,root:o,formats:async()=>L(),onDiscard:I,onExport:R}),B=async()=>{if(k)return k;if(h.status!==`recording`||!y||!v)throw Error(`No recording is active.`);let e=T,n=y,r=v,a=$E(h.rect);if(!a)throw Error(`Recording region is unavailable.`);return k=(async()=>{C&&i.cancelAnimationFrame(C),C=0,w&&i.clearTimeout(w),w=0;let s=b;b=null,s&&await s;let c=await n.finalize();if(y=null,v=null,uE(r),T!==e||O)throw Error(`Recording was cancelled.`);let l=await CE(c),u={blob:c,format:`webm`,duration:l.duration,width:l.width,height:l.height,createdAt:Date.now()};return _=u,x.hideRecordingMask(),x.hideRecordingStatus(),P(),o.style.pointerEvents=`none`,j({status:`ready`,elapsed:l.duration,duration:l.duration,width:l.width,height:l.height,error:null}),z.show(u),await t.hook.emit(`recording:ready`,{rect:a,duration:l.duration,width:l.width,height:l.height,bytes:c.size}),u})().catch(async t=>{if(await F(!0),P(),T===e&&!O){let e=t instanceof Error?t.message:`Could not finish the recording.`;j({status:`error`,error:e}),x.flashError(t)}throw t}).finally(()=>{k=null}),k},V=(e,t,n,r)=>{let a=1/r,o=r=>{if(O||T!==n||h.status!==`recording`||y!==t||v!==e)return;let s=Math.max(0,(r-E)/1e3);j({elapsed:s}),x.setRecordingTime(`${String(Math.floor(s/60)).padStart(2,`0`)}:${String(Math.floor(s%60)).padStart(2,`0`)}`);let c=s;!b&&c-D>=a*.8&&(lE(e,h.rect??{left:0,top:0,width:i.innerWidth,height:i.innerHeight},KT(i)),D=c,b=t.addFrame(c,a).catch(e=>{throw T===n&&!O&&F(!0).then(()=>{P();let t=e instanceof Error?e.message:`MediaBunny could not encode the recording.`;j({status:`error`,error:t}),x.flashError(e)}),e}).finally(()=>{b=null})),C=i.requestAnimationFrame(o)};C=i.requestAnimationFrame(o)},H=async e=>{let n=++T,a=p().frameRate;z.dismiss(),_=null,x.showRecordingMask(e),o.style.pointerEvents=`none`,u.setActive(!0),P(),j({status:`selecting`,elapsed:0,rect:e,duration:null,width:null,height:null,error:null}),x.setRecordingTime(`00:00`),x.placeRecordingStatus(e);try{let s=await cE(r,i,e,a);if(O||T!==n){uE(s);return}let c=await SE(s.canvas,{format:`webm`,frameRate:a,quality:f});if(O||T!==n){await c.cancel(),uE(s);return}if(v=s,y=c,E=i.performance.now(),D=0,lE(s,e,KT(i)),await c.addFrame(0,1/a),O||T!==n){await F(!0);return}j({status:`recording`,elapsed:0}),o.style.pointerEvents=`none`,u.setActive(!0),x.showRecordingMask(e),x.setRecordingTime(`00:00`),x.placeRecordingStatus(e),V(s,c,n,a),s.track.addEventListener(`ended`,()=>{T===n&&h.status===`recording`&&B().catch(()=>void 0)},{once:!0}),w=i.setTimeout(()=>{T===n&&h.status===`recording`&&B().catch(()=>void 0)},d*1e3),await t.hook.emit(`recording:start`,{rect:{...e},frameRate:a,maxDurationSeconds:d})}catch(t){if(await F(!0),P(),T!==n||O)return;let r=t instanceof DOMException&&t.name===`AbortError`,i=r?null:t instanceof Error?t.message:`Could not start the recording.`;throw j({status:r?`idle`:`error`,rect:r?null:e,error:i}),r||x.flashError(t),t}},U=()=>{h.status!==`selecting`&&(++T,z.dismiss(),_=null,N(),x.startSelection(),j({status:`selecting`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null}))},ee=async e=>{if(h.status===`recording`){await B();return}if(h.status===`selecting`){await W();return}if(!e){U();return}if(e.width<4||e.height<4)throw Error(`Recording selection must be at least 4px by 4px.`);await H(e)},W=async()=>{++T,x.finishSelection(),await F(!0),P(),h.status!==`ready`&&j({status:`idle`,elapsed:0,rect:null,duration:null,width:null,height:null,error:null})};x=BE({ownerDocument:r,ownerWindow:i,root:o,statusRoot:c,rendererRoot:l,isSelecting:()=>h.status===`selecting`,isRecording:()=>h.status===`recording`,onRectChange:e=>j({rect:e}),onConfirm:H,onCancel:W,onStop:async()=>{await B()},setRecordingInteractionActive:u.setActive});let te={snapshot:()=>eD(h),subscribe(e){return g.add(e),()=>g.delete(e)},settings:p,setSettings:m,formats:L,start:ee,stop:B,cancel:W,discard:I,export:R};t.tool.register({id:`recording`,label:`Record`,shortcut:`Shift+R`,order:72,command:KE,toolbarMode:`select`,compactPinned:!0,icon:QE,active:M,hidden:()=>!p().toolEnabled,menu:{label:`Recording options`,items:[{id:`new`,label:`New recording`,disabled:()=>h.status===`recording`||h.status===`exporting`,run:()=>ee()},{id:`stop`,label:`Stop recording`,disabled:()=>h.status!==`recording`,run:()=>B().then(()=>void 0)},{id:`discard`,label:`Discard clip`,disabled:()=>_===null,run:I}]}}),t.settings.register({id:`recording`,label:`Recording`,order:42,controls:[{type:`toggle`,id:`tool`,label:`Recording tool`,description:`Show selected-region video recording in the Select toolbar.`,value:()=>p().toolEnabled,set:async e=>{m({toolEnabled:e}),!e&&M()&&await W()}},{type:`toggle`,id:`120-fps`,label:`120 fps`,description:`Record at 120 fps when the capture source supports it. Off records at 60 fps.`,value:()=>p().frameRate===120,disabled:M,set:e=>{m({frameRate:e?120:60})}}]}),t.command.register(KE,async()=>(await ee(),aD(h))),t.command.register(qE,async()=>sD(await B())),t.command.register(JE,()=>(I(),aD(h))),t.command.register(YE,async e=>{let t=await R(iD(e));return cD(t,r,i),oD(t)}),t.service.provide(UE,te),t.lifecycle.onDispose(()=>{O=!0,++T,g.clear(),z.dispose(),x.dispose(),P(),F(!0),s.dispose(),a.dispose()})}}),uD=144,dD=96,fD=8,pD=4,mD=1800,hD=200,gD=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},_D=(e,t)=>({left:Math.min(Math.max(fD,e.left),Math.max(fD,t.innerWidth-uD-fD)),top:Math.min(Math.max(fD,e.top),Math.max(fD,t.innerHeight-dD-fD))}),vD=(e,t)=>{let n=e.createElement(`button`);return n.type=`button`,n.textContent=t,gD(n,{height:`32px`,padding:`0 12px`,border:`1px solid rgb(255 255 255 / 18%)`,"border-radius":`8px`,"background-color":`rgb(28 28 30 / 84%)`,color:`white`,"font-family":`inherit`,"font-size":`12px`,"font-weight":`500`,cursor:`pointer`}),n},yD=({copied:e,downloaded:t,copyFailed:n,downloadFailed:r})=>e&&t?`Copied and saved screenshot`:e&&r?`Copied screenshot · Save unavailable`:t&&n?`Saved screenshot · Copy unavailable`:e?`Copied screenshot`:t?`Saved screenshot`:n&&r?`Screenshot captured · Copy and save unavailable`:n?`Screenshot captured · Copy unavailable`:r?`Screenshot captured · Save unavailable`:`Screenshot captured`,bD=e=>e!==null&&(e.nodeType===1||e.nodeType===11),xD=({ownerDocument:e,ownerWindow:t,root:n,previewDurationMs:r})=>{let i=n.closest(`[data-mesurer-root='true']`)??n.parentNode;if(!bD(i))throw Error(`Screenshot preview requires a mounted Mesurer host.`);let a=e.createElement(`div`);a.dataset.mesurerInspectorUi=`true`,a.dataset.mesurerScreenshotInteractive=`true`,gD(a,{position:`fixed`,left:`0`,top:`0`,width:`0`,height:`0`,overflow:`visible`,"z-index":`96`,"pointer-events":`auto`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`}),i.append(a);let o=e.createElement(`div`);o.dataset.mesurerScreenshotPreview=`true`,o.setAttribute(`role`,`button`),o.setAttribute(`aria-label`,`Open captured screenshot`),o.tabIndex=0,gD(o,{position:`fixed`,display:`none`,"z-index":`96`,width:`${uD}px`,height:`${dD}px`,"box-sizing":`border-box`,overflow:`hidden`,"border-radius":`10px`,border:`1px solid rgb(0 0 0 / 14%)`,"background-color":`white`,"box-shadow":`0 2px 8px rgb(0 0 0 / 12%)`,"pointer-events":`auto`,cursor:`grab`,"user-select":`none`,"touch-action":`none`});let s=e.createElement(`img`);s.dataset.mesurerScreenshotPreviewImage=`true`,s.alt=`Captured screenshot`,s.draggable=!1,s.title=`Click to open · Right-click for browser image actions`,gD(s,{display:`block`,width:`100%`,height:`100%`,"object-fit":`contain`,"background-color":`white`}),o.append(s);let c=e.createElement(`button`);c.dataset.mesurerScreenshotPreviewDismiss=`true`,c.type=`button`,c.setAttribute(`aria-label`,`Dismiss screenshot preview`),c.title=`Dismiss`,gD(c,{position:`absolute`,top:`8px`,right:`8px`,width:`20px`,height:`20px`,display:`flex`,"align-items":`center`,"justify-content":`center`,"box-sizing":`border-box`,padding:`0`,border:`0`,"border-radius":`999px`,"background-color":`rgb(48 51 64)`,color:`white`,"font-family":`inherit`,"font-size":`14px`,"line-height":`1`,"z-index":`2`,cursor:`pointer`,"touch-action":`none`});let l=e.createElementNS(`http://www.w3.org/2000/svg`,`svg`);l.setAttribute(`viewBox`,`0 0 16 16`),l.setAttribute(`width`,`12`),l.setAttribute(`height`,`12`),l.setAttribute(`fill`,`none`),l.setAttribute(`aria-hidden`,`true`);let u=e.createElementNS(`http://www.w3.org/2000/svg`,`path`);u.setAttribute(`d`,`m4 4 8 8M12 4l-8 8`),u.setAttribute(`stroke`,`currentColor`),u.setAttribute(`stroke-width`,`1.75`),u.setAttribute(`stroke-linecap`,`round`),l.append(u),c.append(l),o.append(c),a.append(o);let d=e.createElement(`div`);d.dataset.mesurerScreenshotViewer=`true`,d.setAttribute(`role`,`dialog`),d.setAttribute(`aria-modal`,`true`),d.setAttribute(`aria-label`,`Screenshot viewer`),gD(d,{position:`fixed`,inset:`0`,display:`none`,"z-index":`110`,"align-items":`center`,"justify-content":`center`,padding:`56px 48px 40px`,"box-sizing":`border-box`,"background-color":`rgb(0 0 0 / 72%)`,"backdrop-filter":`blur(8px)`,"pointer-events":`auto`});let f=e.createElement(`img`);f.dataset.mesurerScreenshotViewerImage=`true`,f.alt=`Captured screenshot`,gD(f,{display:`block`,"max-width":`calc(100vw - 96px)`,"max-height":`calc(100vh - 112px)`,width:`auto`,height:`auto`,"object-fit":`contain`,"border-radius":`8px`,"box-shadow":`0 8px 30px rgb(0 0 0 / 28%)`}),d.append(f);let p=e.createElement(`div`);p.dataset.mesurerScreenshotViewerControls=`true`,gD(p,{position:`fixed`,top:`16px`,right:`16px`,display:`flex`,gap:`8px`,"pointer-events":`auto`});let m=vD(e,`Copy`);m.dataset.mesurerScreenshotViewerCopy=`true`,m.setAttribute(`aria-label`,`Copy screenshot`);let h=vD(e,`Save`);h.dataset.mesurerScreenshotViewerSave=`true`,h.setAttribute(`aria-label`,`Save screenshot`);let g=vD(e,`Close`);g.dataset.mesurerScreenshotViewerClose=`true`,g.setAttribute(`aria-label`,`Close screenshot viewer`),p.append(m,h,g),d.append(p),a.append(d);let _=e.createElement(`div`);_.dataset.mesurerScreenshotToast=`true`,_.setAttribute(`role`,`status`),gD(_,{position:`fixed`,left:`50%`,bottom:`20px`,display:`none`,"z-index":`120`,transform:`translateX(-50%)`,padding:`7px 10px`,"border-radius":`8px`,"background-color":`rgb(28 28 30 / 90%)`,color:`white`,"font-size":`12px`,"font-weight":`500`,"pointer-events":`none`}),a.append(_);let v=null,y=null,b=null,x=null,S=0,C=0,w=null,T=!1,E=()=>{S&&t.clearTimeout(S),S=0},D=()=>{C&&t.clearTimeout(C),C=0},O=(e,n=!1)=>{D(),_.textContent=e,_.style.backgroundColor=n?`#b42318`:`rgb(28 28 30 / 90%)`,_.style.display=`block`,C=t.setTimeout(()=>{C=0,_.style.display=`none`},mD)},k=()=>{d.style.display=`none`},A=()=>{y&&globalThis.URL.revokeObjectURL(y),y=null,v=null,s.removeAttribute(`src`),f.removeAttribute(`src`)},j=()=>{E(),k(),w&&=(w.cancel(),null),o.style.display=`none`,o.style.opacity=`1`,o.style.transform=`none`,o.style.removeProperty(`will-change`),o.style.pointerEvents=`auto`,A()},M=()=>{if(!v||o.style.display===`none`||w)return;E(),k();let e=o.getBoundingClientRect(),n=Math.max(152,t.innerWidth-e.left+fD);o.style.pointerEvents=`none`,o.style.willChange=`transform, opacity`;let r=o.animate([{transform:`translateX(0) scale(1)`,opacity:1},{transform:`translateX(${n}px) scale(0.92)`,opacity:0}],{duration:hD,easing:`ease`,fill:`forwards`});w=r,r.finished.catch(()=>void 0).then(()=>{w===r&&(r.cancel(),w=null,j())})},N=()=>_D({left:t.innerWidth-uD-fD,top:t.innerHeight-dD-fD},t),P=e=>{let n=_D(e,t);b=n,o.style.left=`${n.left}px`,o.style.top=`${n.top}px`},F=()=>{!v||!y||(E(),d.style.display=`flex`,g.focus())},I=async()=>{let e=v;if(e)try{await Zc(Promise.resolve(e),t),O(`Copied screenshot`)}catch{O(`Could not copy screenshot`,!0)}},L=()=>{let n=v;if(n)try{$c(n,Qc(),e,t),O(`Saved screenshot`)}catch{O(`Could not save screenshot`,!0)}},R=(e,t,n)=>{if(!v)return!1;E();let r=o.getBoundingClientRect();return x={pointerId:n,startX:e,startY:t,left:r.left,top:r.top,moved:!1},o.style.cursor=`grabbing`,!0},z=(e,t)=>{let n=x;if(!n)return;let r=e-n.startX,i=t-n.startY;!n.moved&&Math.hypot(r,i)>=pD&&(n.moved=!0),n.moved&&P({left:n.left+r,top:n.top+i})},B=()=>{let e=x;e&&(x=null,o.style.cursor=`grab`,e.moved||F())},V=()=>{x&&(x=null,o.style.cursor=`grab`)},H=e=>{e.button!==0||!R(e.clientX,e.clientY,null)||e.preventDefault()},U=e=>{x?.pointerId===null&&z(e.clientX,e.clientY)},ee=e=>{e.button===0&&x?.pointerId===null&&B()},W=e=>{e.pointerType!==`mouse`&&e.button===0&&R(e.clientX,e.clientY,e.pointerId)&&(o.setPointerCapture?.(e.pointerId),e.preventDefault())},te=e=>{let t=x?.pointerId;t!=null&&t===e.pointerId&&z(e.clientX,e.clientY)},ne=e=>{let t=x?.pointerId;t!=null&&t===e.pointerId&&(o.hasPointerCapture?.(e.pointerId)&&o.releasePointerCapture(e.pointerId),B())},re=e=>{let t=x?.pointerId;t!=null&&t===e.pointerId&&(o.hasPointerCapture?.(e.pointerId)&&o.releasePointerCapture(e.pointerId),V())},ie=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),F())},ae=e=>{e.target!==s&&e.preventDefault()},oe=e=>{e.target===d&&k()},se=e=>{e.key===`Escape`&&d.style.display!==`none`&&(e.preventDefault(),e.stopImmediatePropagation(),k())};return c.addEventListener(`pointerdown`,e=>e.stopPropagation()),c.addEventListener(`mousedown`,e=>e.stopPropagation()),c.addEventListener(`click`,e=>{e.stopPropagation(),M()}),o.addEventListener(`mousedown`,H),o.addEventListener(`pointerdown`,W),o.addEventListener(`keydown`,ie),o.addEventListener(`contextmenu`,ae),d.addEventListener(`click`,oe),m.addEventListener(`click`,()=>{I()}),h.addEventListener(`click`,L),g.addEventListener(`click`,k),t.addEventListener(`mousemove`,U,!0),t.addEventListener(`mouseup`,ee,!0),t.addEventListener(`pointermove`,te,!0),t.addEventListener(`pointerup`,ne,!0),t.addEventListener(`pointercancel`,re,!0),t.addEventListener(`keydown`,se,!0),{show(e,n){if(T)return;E(),k(),w&&=(w.cancel(),null),o.style.opacity=`1`,o.style.transform=`none`,o.style.willChange=`transform, opacity`,o.style.pointerEvents=`auto`,A(),v=e;let i=globalThis.URL.createObjectURL(e);y=i,s.src=i,f.src=i,o.style.display=`block`,P(b??N()),O(yD(n)),r>0&&(S=t.setTimeout(j,r))},dismiss:j,dispose(){T||(T=!0,E(),D(),j(),t.removeEventListener(`mousemove`,U,!0),t.removeEventListener(`mouseup`,ee,!0),t.removeEventListener(`pointermove`,te,!0),t.removeEventListener(`pointerup`,ne,!0),t.removeEventListener(`pointercancel`,re,!0),t.removeEventListener(`keydown`,se,!0),o.removeEventListener(`mousedown`,H),o.removeEventListener(`pointerdown`,W),o.removeEventListener(`keydown`,ie),o.removeEventListener(`contextmenu`,ae),d.removeEventListener(`click`,oe),a.remove())}}},SD=`mesurer.screenshot`,CD=`screenshot`,wD=`mesurer.screenshot.settings`,TD=`mesurer.screenshot.active`,ED=`runtime:solid`,DD=`screenshot.toggle`,OD=2500,kD=0,AD=[`[data-mesurer-measurement='true']`,`[data-mesurer-selected-measurement='true']`,`[data-mesurer-selection-spacing-target='true']`,`[data-mesurer-guide='true']`,`[data-mesurer-distance='true']`].join(`,`),jD=`${AD},[data-mesurer-rulers='true'],[data-mesurer-multi-selection-document-layer='true']`,MD={viewBox:`0 0 256 256`,paths:[`m 96,50 a 6.0006,6.0006 0 0 0 -4.992188,2.671875 L 76.789062,74 H 40 C 27.920803,74 18,83.920803 18,96 v 96 c 0,12.0792 9.920803,22 22,22 h 176 c 12.0792,0 22,-9.9208 22,-22 V 96 C 238,83.920803 228.0792,74 216,74 H 179.21094 L 164.99219,52.671875 A 6.0006,6.0006 0 0 0 160,50 Z m 3.210937,12 h 57.578123 l 14.21875,21.328125 A 6.0006,6.0006 0 0 0 176,86 h 40 c 5.59392,0 10,4.406085 10,10 v 96 c 0,5.59392 -4.40608,10 -10,10 H 40 c -5.593915,0 -10,-4.40608 -10,-10 V 96 c 0,-5.593915 4.406085,-10 10,-10 h 40 a 6.0006,6.0006 0 0 0 4.992187,-2.671875 z`,`m 128,94 c -23.12489,0 -42,18.87511 -42,42 0,23.12489 18.87511,42 42,42 23.12489,0 42,-18.87511 42,-42 0,-23.12489 -18.87511,-42 -42,-42 z m 0,12 c 16.63961,0 30,13.36039 30,30 0,16.63961 -13.36039,30 -30,30 -16.63961,0 -30,-13.36039 -30,-30 0,-16.63961 13.36039,-30 30,-30 z`]},ND=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},PD=(e,t)=>{for(let n of[`left`,`top`,`right`,`bottom`,`width`,`height`]){let r=t[n];r===void 0?e.style.removeProperty(n):e.style.setProperty(n,`${r}px`)}},FD=e=>{let t=e(wD);return{toolEnabled:t?.toolEnabled??!0,copy:t?.copy??!0,download:t?.download??!1,includeMeasurements:t?.includeMeasurements??!1}},ID=e=>({value:e.style.getPropertyValue(`display`),priority:e.style.getPropertyPriority(`display`)}),LD=(e,t)=>{t.value||t.priority?e.style.setProperty(`display`,t.value,t.priority):e.style.removeProperty(`display`)},RD=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},zD=e=>{let t=e.querySelector(`[data-mesurer-root='true']`);if(!t)return()=>void 0;let n=new Set;for(let e of t.querySelectorAll(`[data-mesurer-rulers='true']`)){let r=RD(e,t);r&&n.add(r)}for(let e of t.querySelectorAll(AD)){let r=RD(e,t);r&&n.add(r)}let r=[];for(let e of n)e.dataset.mesurerInspectorUi!==`true`&&(r.push({element:e,display:ID(e)}),e.style.setProperty(`display`,`none`,`important`));return()=>{for(let e of r)LD(e.element,e.display)}},BD=e=>Array.from(e.querySelectorAll(jD)).filter(e=>e.dataset.mesurerInspectorUi===`true`).map(e=>({element:e,display:ID(e)})),VD=e=>{for(let t of e)t.element.isConnected&&LD(t.element,t.display)},HD=(e={})=>wc({id:SD,version:`0.1.0`,requires:[ED],provides:[`tool:screenshot`,`capture:screenshot`,`settings:screenshot`],setup(t){let n=t.service.get(ED);if(!n)throw Error(`Screenshot plugin requires the Solid renderer runtime.`);let{ownerDocument:r,ownerWindow:i}=n,a=n.createWorkspaceRuntime(),o=n.createInspectorMount(),s=e.capture??e.captureVisibleTab,c=s??vl,l=e.previewDurationMs??kD;t.state.register({id:wD,initial:{toolEnabled:e.toolEnabled??!0,copy:e.copy??!0,download:e.download??!1,includeMeasurements:e.includeMeasurements??!1},persist:!0}),t.state.register({id:TD,initial:!1});let u=o.element;u.dataset.mesurerScreenshot=`true`,ND(u,{position:`fixed`,inset:`0`,"z-index":`85`,"pointer-events":`none`,"font-family":`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`});let d=r.createElement(`div`);d.dataset.mesurerScreenshotSelect=`true`,d.setAttribute(`role`,`application`),d.setAttribute(`aria-label`,`Screenshot selection`),ND(d,{position:`fixed`,inset:`0`,display:`none`,"z-index":`85`,cursor:`crosshair`,"pointer-events":`auto`,"user-select":`none`,"touch-action":`none`}),u.append(d);let f=Array.from({length:4},()=>{let e=r.createElement(`div`);return ND(e,{position:`fixed`,"background-color":`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),d.append(e),e}),p=r.createElement(`div`);ND(p,{position:`fixed`,display:`none`,border:`1px solid #0d99ff`,"box-sizing":`border-box`,"pointer-events":`none`}),d.append(p);let m=r.createElement(`div`);ND(m,{position:`fixed`,display:`none`,"z-index":`86`,transform:`translateX(-50%)`,"border-radius":`4px`,padding:`2px 4px`,"background-color":`#0d99ff`,color:`white`,"font-size":`10px`,"font-variant-numeric":`tabular-nums`,"pointer-events":`none`}),d.append(m);let h=r.createElement(`div`);h.textContent=`Drag to select · Esc to cancel`,ND(h,{position:`fixed`,left:`50%`,bottom:`16px`,transform:`translateX(-50%)`,"border-radius":`4px`,padding:`4px 8px`,"background-color":`black`,color:`white`,"font-size":`11px`,"pointer-events":`none`}),d.append(h);let g=r.createElement(`div`);g.dataset.mesurerScreenshotError=`true`,g.setAttribute(`role`,`status`),g.textContent=`Could not save screenshot`,ND(g,{position:`fixed`,display:`none`,"z-index":`97`,"border-radius":`6px`,padding:`6px 8px`,"background-color":`#b42318`,color:`white`,"font-size":`11px`,"pointer-events":`none`}),u.append(g);let _=null,v=null,y=0,b=0,x=!1,S=!1,C=!1,w=()=>t.state.get(`mesurer.screenshot.active`)??!1,T=()=>FD(t.state.get),E=e=>{t.state.update(wD,t=>{let n={...t};return e.toolEnabled!==void 0&&(n.toolEnabled=e.toolEnabled),e.copy!==void 0&&(n.copy=e.copy),e.download!==void 0&&(n.download=e.download),e.includeMeasurements!==void 0&&(n.includeMeasurements=e.includeMeasurements),n})},D=e=>{w()!==e&&t.state.update(`mesurer.screenshot.active`,()=>e)},O=()=>{if(v)return;let e=n.portalTarget.querySelector(`[data-mesurer-toolbar='true']`);e&&(v={element:e,visibility:{value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)}},e.style.setProperty(`visibility`,`hidden`,`important`))},k=()=>{if(!v)return;let{element:e,visibility:t}=v;v=null,t.value||t.priority?e.style.setProperty(`visibility`,t.value,t.priority):e.style.removeProperty(`visibility`)},A=e=>{let t=i.innerWidth,n=i.innerHeight;if(!e||e.width<=0||e.height<=0){PD(f[0],{left:0,top:0,width:t,height:n});for(let e of f.slice(1))PD(e,{left:0,top:0,width:0,height:0});p.style.display=`none`,m.style.display=`none`;return}PD(f[0],{left:0,top:0,width:t,height:e.top}),PD(f[1],{left:0,top:e.top,width:e.left,height:e.height}),PD(f[2],{left:e.left+e.width,top:e.top,width:Math.max(0,t-e.left-e.width),height:e.height}),PD(f[3],{left:0,top:e.top+e.height,width:t,height:Math.max(0,n-e.top-e.height)}),p.style.display=`block`,PD(p,e),m.style.display=`block`,m.textContent=`${Math.round(e.width)} × ${Math.round(e.height)}`,PD(m,{left:e.left+e.width/2,top:Math.min(n-22,e.top+e.height+6)})},j=()=>n.portalTarget.querySelector(`[data-mesurer-tool-id='screenshot']`)?.getBoundingClientRect()??null,M=xD({ownerDocument:r,ownerWindow:i,root:u,previewDurationMs:l}),N=e=>{let t=j(),n=Math.max(140,e.offsetWidth||140),r=Math.max(26,e.offsetHeight||26),a=t?Math.min(i.innerWidth-n-8,Math.max(8,t.left+t.width/2-n/2)):8,o=t?t.bottom+8:8,s=o+r<=i.innerHeight-8?o:Math.max(8,(t?.top??i.innerHeight)-r-8);e.style.left=`${a}px`,e.style.top=`${s}px`},P=()=>{y&&i.clearTimeout(y),g.style.display=`block`,N(g),y=i.setTimeout(()=>{y=0,g.style.display=`none`},OD)},F=()=>{_=null,A(null),d.style.visibility=``,d.style.display=`none`,u.style.pointerEvents=`none`,D(!1),k()},I=()=>{b+=1,F(),yl(i)},L=async e=>{if(x)throw Error(`A screenshot capture is already running.`);if(e.width<4||e.height<4)throw Error(`Screenshot selection must be at least 4px by 4px.`);x=!0;let o=++b,s=T(),l=s.includeMeasurements?BD(r):[],u=s.includeMeasurements?()=>void 0:zD(n.portalTarget);a.prepareCapture(),s.includeMeasurements&&VD(l);try{d.style.visibility=`hidden`,await el(i);let n=await Xc(await c({ownerDocument:r,ownerWindow:i}),e,{width:i.innerWidth,height:i.innerHeight},r,Jc(r));if(b!==o)throw Error(`Screenshot capture was cancelled.`);let a=!1,l=!1,u=s.copy?Zc(Promise.resolve(n),i).then(()=>{a=!0}):Promise.resolve(),f=s.download?Promise.resolve().then(()=>{$c(n,Qc(),r,i),l=!0}):Promise.resolve(),p=await Promise.allSettled([u,f]),m=s.copy&&p[0]?.status===`rejected`,h=s.download&&p[1]?.status===`rejected`;if(b!==o)throw Error(`Screenshot capture was cancelled.`);return w()&&F(),M.show(n,{copied:a,downloaded:l,copyFailed:m,downloadFailed:h}),await t.hook.emit(`screenshot:capture`,{rect:{...e},copied:a,downloaded:l}),{blob:n,rect:{...e},copied:a,downloaded:l}}catch(e){throw b===o&&P(),e}finally{d.style.visibility=``,u(),a.finishCapture(),x=!1}},R=async()=>{if(T().toolEnabled){if(w()){I();return}if(!S){S=!0,M.dismiss();try{if(s||await _l(r,i),C)return;O(),A(null),d.style.visibility=`visible`,u.style.pointerEvents=`auto`,d.style.display=`block`,D(!0)}catch(e){throw e instanceof Error&&e.name===`AbortError`||P(),e}finally{S=!1}}}},z=e=>{!w()||e.button!==0||(e.preventDefault(),e.stopPropagation(),_={x:e.clientX,y:e.clientY},A(Yc(_,_,{width:i.innerWidth,height:i.innerHeight})),d.setPointerCapture?.(e.pointerId))},B=e=>{!w()||!_||A(Yc(_,{x:e.clientX,y:e.clientY},{width:i.innerWidth,height:i.innerHeight}))},V=e=>{let t=_;if(_=null,!w()||!t)return;d.hasPointerCapture?.(e.pointerId)&&d.releasePointerCapture(e.pointerId);let n=Yc(t,{x:e.clientX,y:e.clientY},{width:i.innerWidth,height:i.innerHeight});if(A(n),n.width<4||n.height<4){A(null);return}L(n).catch(()=>void 0).finally(()=>{w()&&F()})},H=e=>{_=null,d.hasPointerCapture?.(e.pointerId)&&d.releasePointerCapture(e.pointerId),A(null)},U=e=>{e.key!==`Escape`||!w()||(e.preventDefault(),e.stopImmediatePropagation(),I())};d.addEventListener(`pointerdown`,z),d.addEventListener(`pointermove`,B),d.addEventListener(`pointerup`,V),d.addEventListener(`pointercancel`,H),i.addEventListener(`keydown`,U,!0);let ee={active:w,settings:T,setSettings:E,start:R,cancel:I,capture:L};t.tool.register({id:`screenshot`,label:`Screenshot`,shortcut:`Shift+S`,order:70,command:DD,toolbarMode:`select`,compactPinned:!0,icon:MD,active:w,hidden:()=>!T().toolEnabled,menu:{label:`Screenshot options`,items:[{id:`copy`,label:`Auto-copy`,checked:()=>T().copy,run:()=>E({copy:!T().copy})},{id:`download`,label:`Auto-download`,checked:()=>T().download,run:()=>E({download:!T().download})},{id:`measurements`,label:`Include measurements`,checked:()=>T().includeMeasurements,run:()=>E({includeMeasurements:!T().includeMeasurements})}]}}),t.settings.register({id:`screenshot`,label:`Screenshot`,order:40,controls:[{type:`toggle`,id:`tool`,label:`Screenshot tool`,description:`Show the camera tool in the toolbar.`,value:()=>T().toolEnabled,set:e=>{E({toolEnabled:e}),!e&&w()&&I()}},{type:`toggle`,id:`copy`,label:`Auto-copy`,description:`Copy each successful capture when the browser allows it.`,value:()=>T().copy,set:e=>E({copy:e})},{type:`toggle`,id:`download`,label:`Auto-download`,description:`Download each successful capture as a PNG.`,value:()=>T().download,set:e=>E({download:e})},{type:`toggle`,id:`measurements`,label:`Include measurements`,description:`Keep selections, measurements, guides, distances, and rulers in the PNG.`,value:()=>T().includeMeasurements,set:e=>E({includeMeasurements:e})}]}),t.command.register(DD,R),t.service.provide(CD,ee),t.lifecycle.onDispose(()=>{C=!0,b+=1,d.removeEventListener(`pointerdown`,z),d.removeEventListener(`pointermove`,B),d.removeEventListener(`pointerup`,V),d.removeEventListener(`pointercancel`,H),i.removeEventListener(`keydown`,U,!0),y&&i.clearTimeout(y),M.dispose(),k(),yl(i),a.finishCapture(),a.dispose(),o.dispose()})}}),UD=e=>Number.parseFloat(e)||0,WD=0,GD=(e,t)=>{let n=t.CSS;return n?.escape?n.escape(e):e.replace(/[^a-zA-Z0-9_-]/g,e=>`\\${e}`)},KD=e=>e.nodeType===9,qD=e=>e.nodeType===11;function JD(e){let t=e.getRootNode();return qD(t)?t:e.ownerDocument}var YD=(e,t)=>{if(KD(e)||qD(e))return e;let n=JD(e);return qD(n)?n:t},XD=600,ZD=`audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video`,QD=new WeakMap,$D=e=>{let t=e;for(;t;){if((QD.get(t)??0)>0)return!0;let e=t.getRootNode();t=qD(e)?e.host:t.parentElement}return!1},eO=(e,t)=>t.x>=e.left&&t.x<=e.right&&t.y>=e.top&&t.y<=e.bottom,tO=(e,t)=>Array.from(e.getClientRects()).some(e=>eO(e,t)),nO=(e,t,n)=>{let r=e;for(;r;){let e=n.getComputedStyle(r);if(e.display===`none`||e.visibility===`hidden`||e.visibility===`collapse`||e.contentVisibility===`hidden`||Number(e.opacity)===0)return!0;if(r===t)return!1;r=r.parentElement}return!0},rO=(e,t)=>{if(e.matches(`img, picture, video, canvas, svg image, path, circle, ellipse, line, polygon, polyline, rect, text, use`))return!0;let n=t.getComputedStyle(e),r=n.backgroundImage!==`none`||n.backgroundColor!==`transparent`&&n.backgroundColor!==`rgba(0, 0, 0, 0)`,i=[`top`,`right`,`bottom`,`left`].some(e=>Number.parseFloat(n.getPropertyValue(`border-${e}-width`))>0&&n.getPropertyValue(`border-${e}-style`)!==`none`);return r||i||n.boxShadow!==`none`||n.outlineStyle!==`none`},iO=(e,t)=>!!e.textContent?.trim()||rO(e,t),aO=(e,t,n)=>{let r=t,i=r.caretRangeFromPoint?.(e.x,e.y)?.startContainer??r.caretPositionFromPoint?.(e.x,e.y)?.offsetNode;if(!i)return null;let a=t.defaultView?.Element;if(!a)return null;let o=i instanceof a?i:i.parentElement;for(;o&&o!==n;){if(n.contains(o))return o;o=o.parentElement}return o===n?n:null},oO=(e,t,n)=>{let r=n.defaultView,i=r?.Element;if(!r||!i)return[];let a=[],o=new Set,s=(n,i,s)=>{if(o.has(n)||$D(n)||r.getComputedStyle(n).pointerEvents!==`none`||nO(n,e,r)||!tO(n,t))return;let c=n.getBoundingClientRect();o.add(n),a.push({element:n,area:c.width*c.height,depth:i,order:s})},c=n.createTreeWalker(e,1),l=c.nextNode(),u=1;for(;l&&u<=XD;){if(l instanceof i){let t=l;if(r.getComputedStyle(t).pointerEvents===`none`){let n=1,r=t.parentElement;for(;r&&r!==e;)n+=1,r=r.parentElement;s(t,n,u)}}u+=1,l=c.nextNode()}let d=aO(t,n,e);return d&&r.getComputedStyle(d).pointerEvents===`none`&&s(d,1e4,u),a.sort((e,t)=>t.depth-e.depth||e.area-t.area||t.order-e.order).map(({element:e})=>e)},sO=(e,t,n)=>{let r=t.ownerDocument.defaultView;if(!r)return[];let i=[...new Set(e)],a=new Map;for(let e of i){let t=e instanceof r.HTMLElement||e instanceof r.SVGElement?e:null;t&&(a.set(e,e.getAttribute(`style`)),t.style.setProperty(`pointer-events`,`auto`,`important`))}try{let e=JD(t).elementsFromPoint(n.x,n.y),r=e.findIndex(e=>e===t),a=new Map(e.map((e,t)=>[e,t]));return i.filter(e=>{let t=a.get(e);return t!==void 0&&(r<0||t<r)}).sort((e,t)=>e.contains(t)?1:t.contains(e)?-1:(a.get(e)??2**53-1)-(a.get(t)??2**53-1))}finally{for(let[e,t]of a)t===null?e.removeAttribute(`style`):e.setAttribute(`style`,t)}},cO=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},lO=(e,t,n,r)=>{let i=r.defaultView;if(!i)return[];let a=sO(oO(e,t,r).filter(e=>iO(e,i)),e,t);if(a.length>0)return a;if(e.textContent?.trim()&&!e.matches(ZD)||e.matches(`a, button, input, select, textarea, label, summary, [contenteditable='true']`))return[];let o=[],s=new Set,c=!KD(n)&&!qD(n)?n:null,l=e.parentElement;for(;l&&l!==r.body&&l!==r.documentElement&&!(c&&l!==c&&!c.contains(l));){let a=l,u=cO(e,a),d=oO(a,t,r).filter(e=>{if(!dO(e,n)||e.closest(`[aria-hidden='true'], [inert]`))return!1;let t=cO(e,a);return t===null||t!==u});for(let e of d)s.has(e)||!iO(e,i)||(s.add(e),o.push(e));if(a===c)break;l=a.parentElement}return sO(o,e,t)};function uO(e,t,n=KD(t)?t:t.ownerDocument??document){let r=YD(t,n),i=n.defaultView;if(!i)return null;let a=r.elementsFromPoint(e.x,e.y);for(let r of a){let a=r;for(;a?.shadowRoot;){let t=a.shadowRoot.elementFromPoint(e.x,e.y);if(!t||t===a)break;a=t}if(!a||!dO(a,t))continue;let o=lO(a,e,t,n);if(o.length>0)return o[0];if(i.getComputedStyle(a).pointerEvents!==`none`)return a}return null}function dO(e,t){if(KD(t))return!0;let n=e;for(;n;){if(t===n||t.contains(n))return!0;let e=n.getRootNode();if(!qD(e))return!1;n=e.host}return!1}function fO(e,t){if(!e)return t();let n=QD.get(e)??0;QD.set(e,n+1);let r=[e,...e.querySelectorAll(`*`)],i=r.map(e=>[e,e.style.getPropertyValue(`pointer-events`),e.style.getPropertyPriority(`pointer-events`)]);for(let e of r)e.style.setProperty(`pointer-events`,`none`,`important`);try{return t()}finally{n===0?QD.delete(e):QD.set(e,n);for(let[e,t,n]of i)t?e.style.setProperty(`pointer-events`,t,n):e.style.removeProperty(`pointer-events`)}}function pO(e){let t=e.ownerDocument.defaultView??window;if(e.id)return`#${GD(e.id,t)}`;let n=e.getAttribute(`data-testid`);if(n)return`[data-testid=${JSON.stringify(n)}]`;let r=[],i=e;for(;i&&r.length<5;){let e=i.localName,t=i.localName,n=i.parentElement;if(n){let r=[...n.children].filter(e=>e.localName===t);r.length>1&&(e+=`:nth-of-type(${r.indexOf(i)+1})`)}r.unshift(e),i=n}return r.join(` > `)}function mO(e,t,n=`dom-inspection-${++WD}`){let r=e.getBoundingClientRect(),i=t.getComputedStyle(e),a={top:UD(i.paddingTop),right:UD(i.paddingRight),bottom:UD(i.paddingBottom),left:UD(i.paddingLeft)},o={top:UD(i.marginTop),right:UD(i.marginRight),bottom:UD(i.marginBottom),left:UD(i.marginLeft)},s={left:r.left+a.left,top:r.top+a.top,width:Math.max(0,r.width-a.left-a.right),height:Math.max(0,r.height-a.top-a.bottom)},c={left:r.left-o.left,top:r.top-o.top,width:r.width+o.left+o.right,height:r.height+o.top+o.bottom},l=e.tagName.toLowerCase(),u=e.id?`#${e.id}`:``,d=e.classList.item(0),f=d?`.${d}`:``;return{id:n,rect:{left:r.left,top:r.top,width:r.width,height:r.height},paddingRect:s,marginRect:c,padding:a,margin:o,label:`${l}${u}${f}`,elementRef:e}}function hO(e){let t=e.ownerDocument.defaultView??window,n=t.getComputedStyle(e),r=e instanceof t.HTMLElement?e:null,i=e.getBoundingClientRect(),a=r?mO(r,t):null,o=e=>{let t=Number.parseFloat(e);return Number.isFinite(t)?t:0},s=e=>({top:o(n.getPropertyValue(`${e}-top${e===`border`?`-width`:``}`)),right:o(n.getPropertyValue(`${e}-right${e===`border`?`-width`:``}`)),bottom:o(n.getPropertyValue(`${e}-bottom${e===`border`?`-width`:``}`)),left:o(n.getPropertyValue(`${e}-left${e===`border`?`-width`:``}`))});return{selector:pO(e),tag:e.localName,id:e.id||null,classes:[...e.classList],text:(e.textContent??``).replace(/\s+/g,` `).trim().slice(0,500),role:e.getAttribute(`role`),ariaLabel:e.getAttribute(`aria-label`),rect:{left:i.left,top:i.top,right:i.right,bottom:i.bottom,width:i.width,height:i.height,x:i.x,y:i.y},margin:a?.margin??s(`margin`),padding:a?.padding??s(`padding`),border:s(`border`),typography:{fontFamily:n.fontFamily,fontSize:n.fontSize,fontWeight:n.fontWeight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,textAlign:n.textAlign,color:n.color},appearance:{backgroundColor:n.backgroundColor,borderColor:n.borderColor,borderRadius:n.borderRadius,boxShadow:n.boxShadow,opacity:n.opacity},layout:{display:n.display,position:n.position,zIndex:n.zIndex,overflowX:n.overflowX,overflowY:n.overflowY,flexDirection:n.flexDirection,alignItems:n.alignItems,justifyContent:n.justifyContent,gap:n.gap,gridTemplateColumns:n.gridTemplateColumns,gridTemplateRows:n.gridTemplateRows,transform:n.transform},scroll:{clientWidth:r?.clientWidth??0,clientHeight:r?.clientHeight??0,scrollWidth:r?.scrollWidth??0,scrollHeight:r?.scrollHeight??0,overflowsX:(r?.scrollWidth??0)>(r?.clientWidth??0)+1,overflowsY:(r?.scrollHeight??0)>(r?.clientHeight??0)+1}}}var gO=`text-edit`,_O=e=>hO(e);function vO(e){let t=e.root??e.ownerDocument,n=e.ownerDocument.defaultView??window,r=(e,n=0)=>t.querySelectorAll(e).item(n)||null,i=n=>t===e.ownerDocument||dO(n,t),a=async()=>{let t=(e.getPluginHost()??await e.waitForPluginHost()).service.get(gO);if(!t)throw Error(`Mesurer text editing service is unavailable.`);return t},o=()=>{let t=e.ownerDocument.documentElement,r=e.ownerDocument.body,i=Math.max(t.scrollWidth,r?.scrollWidth??0),a=Math.max(t.scrollHeight,r?.scrollHeight??0);return{width:n.innerWidth,height:n.innerHeight,devicePixelRatio:n.devicePixelRatio,scrollX:n.scrollX,scrollY:n.scrollY,documentWidth:i,documentHeight:a,horizontalOverflow:i>n.innerWidth+1,verticalOverflow:a>n.innerHeight+1}},s=async(t=2)=>{await e.ownerDocument.fonts?.ready;for(let e=0;e<Math.max(1,t);e+=1)await new Promise(e=>n.requestAnimationFrame(()=>e()))};return{async ready(){await e.waitForPluginHost(),await s()},async describe(){return(await e.waitForPluginHost()).describe()},inspect(e,t=0){let n=r(e,t);return n?_O(n):null},inspectAll(e,n=50){return[...t.querySelectorAll(e)].slice(0,Math.max(0,n)).map(_O)},at(n,r){let a=t.querySelector?.(`[data-mesurer-island]`)??null;return fO(a?.shadowRoot?.querySelector(`[data-mesurer-root='true']`)??a,()=>{let a=uO({x:n,y:r},t,e.ownerDocument);return a&&i(a)?_O(a):null})},distance(e,t){let n=r(e),i=r(t);if(!n||!i)return null;let a=_O(n),o=_O(i),s=a.rect,c=o.rect;return{a,b:o,horizontalGap:c.left>=s.right?c.left-s.right:s.left>=c.right?s.left-c.right:0,verticalGap:c.top>=s.bottom?c.top-s.bottom:s.top>=c.bottom?s.top-c.bottom:0,centerDeltaX:c.left+c.width/2-(s.left+s.width/2),centerDeltaY:c.top+c.height/2-(s.top+s.height/2)}},viewport:o,async feedback(n=[]){await s();let r=e.getPluginHost()??await e.waitForPluginHost();return{viewport:o(),elements:n.flatMap(e=>[...t.querySelectorAll(e)].slice(0,50).map(_O)),plugins:r.describe(),pluginState:r.state.serialize(`all`)}},async command(t,n){let r=await(e.getPluginHost()??await e.waitForPluginHost()).command.execute(t,n,{source:`agent-harness`});return await s(1),r},async state(){return(e.getPluginHost()??await e.waitForPluginHost()).state.serialize(`all`)},async textEdits(){return(await a()).intents()},async textEdit(e){let t=(await a()).intent(e);if(!t)throw Error(`Text edit intent not found: ${e}`);return t},stable:s}}var yO=`0.2.3-beta.13`,bO=Wy,xO=Gy,SO=()=>({...Bb(),version:yO}),CO=xO,wO=(e,t)=>e.left<=t.left+t.width&&e.left+e.width>=t.left&&e.top<=t.top+t.height&&e.top+e.height>=t.top,TO=e=>{if(!e.length)return null;let t=Math.min(...e.map(e=>e.left)),n=Math.min(...e.map(e=>e.top)),r=Math.max(...e.map(e=>e.left+e.width)),i=Math.max(...e.map(e=>e.top+e.height));return{left:t,top:n,width:r-t,height:i-n}},EO=(e,t,n)=>t.some(t=>e.orientation===`vertical`?e.position>=t.left-n&&e.position<=t.left+t.width+n:e.position>=t.top-n&&e.position<=t.top+t.height+n),DO=e=>[...e.measurements,...e.activeMeasurement&&!e.measurements.some(t=>t.id===e.activeMeasurement?.id)?[e.activeMeasurement]:[]];function OO(e){let{workspace:t,scope:n,guideTolerance:r}=e;if(n.kind===`workspace`)return{guides:t.guides.map(e=>({...e})),measurements:DO(t),distances:[...t.distances]};let i=new Set(n.elements),a=e=>e!=null&&i.has(e),o=e=>n.regions.some(t=>wO(e,t));return{guides:t.guides.filter(e=>EO(e,n.regions,r)).map(e=>({...e})),measurements:DO(t).filter(e=>a(e.elementRef)||o(e.rect)),distances:t.distances.filter(e=>a(e.elementRefA)||a(e.elementRefB)||o(e.rectA)||o(e.rectB))}}var kO={opacity:1,width:1,pattern:`solid`,dashLength:6,gap:4},AO={opacity:1,edgeReveal:!1};({...kO}),{...AO};var jO=10,MO=e=>({left:e.left,top:e.top,width:e.width,height:e.height}),NO=e=>{let t=new Set,n=[];for(let r of e)!r?.isConnected||t.has(r)||(t.add(r),n.push(r));return n},PO=e=>e.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`;function FO(e){let{runtime:t,ownerDocument:n,ownerWindow:r}=e,i=e.request??{scope:`workspace`},a=t.snapshot();if(!a)throw Error(`Mesurer workspace is not ready yet.`);let o=e=>MO(t.elementRect?.(e)??e.getBoundingClientRect()),s=[],c=[],l={kind:`workspace`},u=new Map,d=new Map,f;if(`annotation`in i){let e=t.annotation(i.annotation);if(!e)throw Error(`Mesurer annotation not found: ${i.annotation}`);e.anchor.kind===`elements`&&(f=e.anchor.targets.find(e=>e.viewport)?.viewport);for(let t of e.resolvedTargets)t.element?.isConnected&&(u.set(t.element,t.target.id),t.target.viewport&&d.set(t.element,{viewport:{...t.target.viewport},domPath:t.target.domPath?.map(e=>({...e}))??[]}));s=NO(e.resolvedTargets.map(e=>e.element));let n=t.annotationRect(e.id);n&&(c=[n]);let r=e.resolvedTargets.length,a=e.resolvedTargets.filter(e=>e.element?.isConnected).length,o=e.anchor.kind===`region`?`connected`:r===0||a===0?`stale`:a===r?`connected`:`partial`,p={kind:`annotation`,annotationId:e.id,note:e.note,targetStatus:o};e.replies?.length&&(p.replies=e.replies.map(e=>({...e}))),e.status===`resolved`&&(p.status=`resolved`,e.resolvedAt!==void 0&&(p.resolvedAt=e.resolvedAt)),l=p}else if(i.scope===`selection`){let e=t.currentSelection();if(s=NO(e.elements),!s.length&&!e.region)throw Error(`Mesurer has no current selection.`);c=e.region?[e.region]:s.map(o),l={kind:`selection`}}else s=NO([...t.currentSelection().elements,...a.measurements.map(e=>e.elementRef),a.activeMeasurement?.elementRef,...a.heldDistances.flatMap(e=>[e.elementRefA,e.elementRefB])]);let p=l.kind===`workspace`?[]:c.length?c:s.map(o),m=OO({workspace:{guides:a.guides,measurements:a.measurements,activeMeasurement:a.activeMeasurement,distances:a.heldDistances},scope:l.kind===`workspace`?{kind:`workspace`}:{kind:`scoped`,elements:s,regions:p},guideTolerance:a.guideRelevanceTolerance??jO}),h=m.measurements,g=m.distances,_=m.guides,v=NO([...s,...h.map(e=>e.elementRef),...g.flatMap(e=>[e.elementRefA,e.elementRefB])]),y=new Map,b=new Set(u.values()),x=1,S=()=>{let e=`target-${x++}`;for(;b.has(e);)e=`target-${x++}`;return b.add(e),e},C=v.map(e=>{let n=u.get(e)??S(),r=o(e),i=hO(e);return y.set(e,n),{ref:n,...d.get(e)??t.targetScope?.(e),inspection:{...i,rect:{...r,right:r.left+r.width,bottom:r.top+r.height,x:r.left,y:r.top}}}}),w=h.map(e=>{let t={id:e.id,rect:MO(e.rect),deltaX:e.deltaX,deltaY:e.deltaY};e.snapped!==void 0&&(t.snapped=e.snapped);let n=e.elementRef?y.get(e.elementRef):void 0;return n&&(t.targetRef=n),t}),T=g.map(e=>{let t={id:e.id,rectA:MO(e.rectA),rectB:MO(e.rectB),horizontal:e.horizontal?{...e.horizontal}:null,vertical:e.vertical?{...e.vertical}:null},n=e.elementRefA?y.get(e.elementRefA):void 0,r=e.elementRefB?y.get(e.elementRefB):void 0;return n&&(t.targetARef=n),r&&(t.targetBRef=r),t}),E={schema:`mesurer.context/v1`,id:PO(r),createdAt:new Date().toISOString(),scope:l,page:{url:r.location?.href??n.URL,title:n.title},viewport:{width:r.innerWidth,height:r.innerHeight,devicePixelRatio:r.devicePixelRatio,scrollX:r.scrollX,scrollY:r.scrollY},coordinateSpace:`viewport-css-px`,regions:l.kind===`workspace`?[]:c.map(MO),visualState:{rulersVisible:a.rulersVisible,xrayVisible:a.xrayVisible},targets:C,visualContext:{guides:_,layoutGuides:(e.layoutGuides??[]).map(e=>({...e})),measurements:w,distances:T}};return f??=C.find(e=>e.viewport)?.viewport,f&&(E.previewViewport={...f}),E}var IO=e=>`${Math.round(e*100)/100}px`,LO=e=>`x=${IO(e.left)} y=${IO(e.top)} w=${IO(e.width)} h=${IO(e.height)}`;function RO(e){let t=[`Mesurer visual context`,``,`Page: ${e.page.url}`,`Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`];if(e.scope.kind===`annotation`){t.push(``,`Annotation`,e.scope.note);for(let[n,r]of(e.scope.replies??[]).entries())n===0&&t.push(`Replies`),t.push(`${n+1}. [${r.id}] ${new Date(r.createdAt).toISOString()}`),t.push(...r.text.split(`
|
|
2334
2334
|
`).map(e=>` ${e}`));e.scope.status===`resolved`&&t.push(`Status: resolved`),t.push(`Target status: ${e.scope.targetStatus}`)}else t.push(``,`Scope: ${e.scope.kind}`);if(e.regions.length&&(t.push(``,`Requested regions`),e.regions.forEach((e,n)=>t.push(`- region-${n+1}: ${LO(e)}`))),(e.visualState.rulersVisible||e.visualState.xrayVisible)&&t.push(``,`Visual state: rulers=${e.visualState.rulersVisible?`on`:`off`}; x-ray=${e.visualState.xrayVisible?`on`:`off`}`),e.targets.length){t.push(``,`Targets`);for(let n of e.targets){let e=n.inspection;n.viewport&&t.push(`Preview: ${n.viewport.url}; ${n.viewport.width} × ${n.viewport.height} CSS px; id=${n.viewport.previewId}`),t.push(`[${n.ref}] ${e.selector}`,` rect: ${LO(e.rect)}`,` margin: ${IO(e.margin.top)} ${IO(e.margin.right)} ${IO(e.margin.bottom)} ${IO(e.margin.left)}`,` padding: ${IO(e.padding.top)} ${IO(e.padding.right)} ${IO(e.padding.bottom)} ${IO(e.padding.left)}`,` layout: display=${e.layout.display}; position=${e.layout.position}; gap=${e.layout.gap}`,` typography: ${e.typography.fontSize} / ${e.typography.lineHeight}; weight=${e.typography.fontWeight}; align=${e.typography.textAlign}`),e.text&&t.push(` text: ${JSON.stringify(e.text)}`)}}if(e.visualContext.guides.length){t.push(``,`Relevant guides`);for(let n of e.visualContext.guides)t.push(`- ${n.orientation} ${n.orientation===`vertical`?`x`:`y`}=${IO(n.position)}`)}if(e.visualContext.layoutGuides.length){t.push(``,`Layout guides`);for(let n of e.visualContext.layoutGuides){if(!n.visible)continue;let e=n.kind===`grid`?`grid ${IO(n.size)}`:`${n.count} ${n.kind}; gutter=${IO(n.gutter)}; offset=${IO(n.offset)}; align=${n.align}`;t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity*100)}%`)}}if(e.visualContext.measurements.length){t.push(``,`Relevant measurements`);for(let n of e.visualContext.measurements)t.push(`- ${n.targetRef?`${n.targetRef}: `:``}${LO(n.rect)}; delta=${IO(n.deltaX)} × ${IO(n.deltaY)}`)}if(e.visualContext.distances.length){t.push(``,`Relevant distances`);for(let n of e.visualContext.distances){let e=[n.targetARef,n.targetBRef].filter(Boolean).join(` → `),r=[n.horizontal?`horizontal=${IO(n.horizontal.value)}`:null,n.vertical?`vertical=${IO(n.vertical.value)}`:null].filter(Boolean).join(`; `);t.push(`- ${e?`${e}: `:``}${r||`overlapping`}`)}}return t.join(`
|
|
2335
|
-
`).trimEnd()}function zO(e){let t=TO([...e.regions,...e.targets.map(e=>e.inspection.rect),...e.visualContext.measurements.map(e=>e.rect),...e.visualContext.distances.flatMap(e=>[e.rectA,e.rectB])]),n=[{id:`viewport`,kind:`viewport`}];if(t){let r=Math.max(0,t.left-48),i=Math.max(0,t.top-48),a=Math.min(e.viewport.width,t.left+t.width+48),o=Math.min(e.viewport.height,t.top+t.height+48);a>r&&o>i&&n.push({id:`focus`,kind:`clip`,rect:{left:r,top:i,width:a-r,height:o-i}})}let r={schema:`mesurer.capture/v1`,contextId:e.id,chrome:`hide`,evidence:`show`,captures:n};return e.previewViewport&&(r.previewViewport={...e.previewViewport}),r}var BO=(e,t,n,r,i)=>{!Number.isFinite(r)||!Number.isFinite(i)||Math.abs(r-i)<.01||e.push({kind:t,label:n,before:r,current:i,delta:i-r,unit:`px`})},VO=(e,t,n,r)=>e.push({kind:`missing`,evidence:t,id:n,label:r}),HO=(e,t)=>Math.abs(e.left-t.left)<.01&&Math.abs(e.top-t.top)<.01&&Math.abs(e.width-t.width)<.01&&Math.abs(e.height-t.height)<.01;function UO(e){let t=e.runtime.annotation(e.annotationId);if(!t)throw Error(`Mesurer annotation not found: ${e.annotationId}`);let n=FO({runtime:e.runtime,ownerDocument:e.ownerDocument,ownerWindow:e.ownerWindow,request:{annotation:e.annotationId},layoutGuides:e.layoutGuides});if(n.scope.kind!==`annotation`)throw Error(`Mesurer annotation context invariant failed.`);let r=e.runtime.snapshot();if(!r)throw Error(`Mesurer workspace is not ready yet.`);let i=DO({measurements:r.measurements,activeMeasurement:r.activeMeasurement}),a=[];for(let e of t.baseline.targets){let t=n.targets.find(t=>t.ref===e.id);if(!t){VO(a,`target`,e.id,e.selector);continue}BO(a,`target-rect`,`${t.inspection.selector} left`,e.rect.left,t.inspection.rect.left),BO(a,`target-rect`,`${t.inspection.selector} top`,e.rect.top,t.inspection.rect.top),BO(a,`target-rect`,`${t.inspection.selector} width`,e.rect.width,t.inspection.rect.width),BO(a,`target-rect`,`${t.inspection.selector} height`,e.rect.height,t.inspection.rect.height)}for(let e of t.baseline.guides){let t=n.visualContext.guides.find(t=>t.id===e.id)??r.guides.find(t=>t.id===e.id);if(!t){VO(a,`guide`,e.id,`${e.orientation} guide ${e.id}`);continue}BO(a,`guide`,`${e.orientation} guide ${e.id}`,e.position,t.position)}for(let e of t.baseline.measurements){let r=n.visualContext.measurements.find(t=>t.id===e.id)??i.find(t=>t.id===e.id);if(!r){let r=t.baseline.targets.find(t=>HO(t.rect,e.rect));r&&n.targets.some(e=>e.ref===r.id)||VO(a,`measurement`,e.id,e.id);continue}BO(a,`measurement`,`${e.id} width`,e.rect.width,r.rect.width),BO(a,`measurement`,`${e.id} height`,e.rect.height,r.rect.height)}for(let e of t.baseline.distances){let t=n.visualContext.distances.find(t=>t.id===e.id)??r.heldDistances.find(t=>t.id===e.id);if(!t){VO(a,`distance`,e.id,e.id);continue}e.horizontal&&t.horizontal?BO(a,`distance`,`${e.id} horizontal`,e.horizontal.value,t.horizontal.value):e.horizontal&&!t.horizontal&&VO(a,`distance`,e.id,`${e.id} horizontal`),e.vertical&&t.vertical?BO(a,`distance`,`${e.id} vertical`,e.vertical.value,t.vertical.value):e.vertical&&!t.vertical&&VO(a,`distance`,e.id,`${e.id} vertical`)}return{schema:`mesurer.review/v1`,annotationId:t.id,note:t.note,targetStatus:n.scope.targetStatus,baseline:t.baseline,current:n,changes:a}}async function WO(e,t,n){try{if(t.navigator.clipboard?.writeText){await t.navigator.clipboard.writeText(n);return}}catch{}let r=e.createElement(`textarea`);r.value=n,r.setAttribute(`readonly`,``),r.style.position=`fixed`,r.style.opacity=`0`,r.style.pointerEvents=`none`,e.body.append(r),r.select();let i=e.execCommand?.(`copy`)??!1;if(r.remove(),!i)throw Error(`Unable to copy Mesurer context to the clipboard.`)}var GO=pT,KO=mT,qO=()=>({...BT(),version:yO}),JO=`mesurer.context`,YO=`context:v1`,XO=`mesurer.context.settings`,ZO=`context.ui`,QO=`data-mesurer-direct-text-edit-active`,$O={viewBox:`0 0 256 256`,paths:[`M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z`]},ek={viewBox:`0 0 256 256`,paths:[`M152,40a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,40Zm-8,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM72,32H48A16,16,0,0,0,32,48V72a8,8,0,0,0,16,0V48H72a8,8,0,0,0,0-16Z`]},tk={viewBox:`0 0 256 256`,paths:[`M229.66,58.34l-32-32a8,8,0,0,0-11.32,0l-96,96A8,8,0,0,0,88,128v32a8,8,0,0,0,8,8h32a8,8,0,0,0,5.66-2.34l96-96A8,8,0,0,0,229.66,58.34ZM124.69,152H104V131.31l64-64L188.69,88ZM200,76.69,179.31,56,192,43.31,212.69,64ZM224,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h80a8,8,0,0,1,0,16H48V208H208V128a8,8,0,0,1,16,0Z`]},nk={viewBox:`0 0 256 256`,paths:[`M40 40h176v16H40zm0 48h176v16H40zm0 48h112v16H40zm0 48h112v16H40zM184 144l40 40-48 48-40-40z`]},rk=async(e,t,n=1)=>{await e.fonts?.ready;for(let e=0;e<Math.max(1,n);e+=1)await new Promise(e=>t.requestAnimationFrame(()=>e()))},ik=(e,t,n,r)=>{let i=async i=>FO({runtime:e,ownerDocument:t,ownerWindow:n,request:i,layoutGuides:r()}),a=async e=>RO(await i(e));return{context:i,contextText:a,copyContext:async e=>WO(t,n,await a(e)),select:async r=>{let a=Array.isArray(r)?[...r]:[String(r)];return e.select(a),await rk(t,n),i({scope:`selection`})},annotations:async()=>e.annotations(),removeAnnotation:async(r,i)=>{e.removeAnnotation(r,i),await rk(t,n)},review:async i=>{if(await rk(t,n),i)return UO({runtime:e,ownerDocument:t,ownerWindow:n,annotationId:i,layoutGuides:r()});let a=r();return e.annotations().map(r=>UO({runtime:e,ownerDocument:t,ownerWindow:n,annotationId:r.id,layoutGuides:a}))},capturePlan:async e=>zO(await i(e)),prepareCapture:async()=>{e.prepareCapture(),await rk(t,n)},finishCapture:async()=>{e.finishCapture(),await rk(t,n)}}},ak=(e,t)=>{let n=e.currentSelection();return n.elements.length>0||n.region!==null&&!t?.querySelector(`[data-mesurer-responsive-stage]`)};function ok(e={}){return{id:JO,version:yO,requires:[`runtime:solid`],provides:[YO],setup(t){let n=t.service.get(`runtime:solid`);if(!n)throw Error(`Mesurer context plugin requires the renderer runtime service.`);let r=n.rendererRoot;if(!r)throw Error(`Mesurer Notes requires the renderer root.`);let i=n.createWorkspaceRuntime(JO),a=n.createAnnotationRevealCoordinator(i),[o,s]=G(!1),c=ik(i,n.ownerDocument,n.ownerWindow,()=>t.service.get(KO)?.list()??[]);t.service.provide(YO,c),t.state.register({id:XO,initial:{ui:e.ui??!0},persist:!0}),t.state.register({id:ZO,initial:{hasSelection:ak(i,n.rendererRoot)}});let l=()=>t.state.get(`mesurer.context.settings`)?.ui??!0,u=()=>ak(i,n.rendererRoot),d=e=>{e||(s(!1),a.cancel()),t.state.update(XO,t=>({...t,ui:e}))},f=null,p=null,m=null,h=null,[g,_]=G(!!n.rendererRoot?.querySelector(`[data-mesurer-responsive-stage]`)),v=null,y=i.currentSelection(),b={elements:[...y.elements],region:y.region?{...y.region}:null},x=(e,t)=>e.elements.length!==t.elements.length||e.elements.some((e,n)=>e!==t.elements[n])?!1:e.region===t.region?!0:!e.region||!t.region?!1:e.region.left===t.region.left&&e.region.top===t.region.top&&e.region.width===t.region.width&&e.region.height===t.region.height,S=i.subscribe(()=>{let e=i.currentSelection(),r=!x(b,e);b={elements:[...e.elements],region:e.region?{...e.region}:null},i.selectGestureActive()?f?.abandonNoteComposer():r&&f?.closeNoteComposer();let a=ak(i,n.rendererRoot);a!==(t.state.get(ZO)?.hasSelection??!1)&&t.state.update(ZO,()=>({hasSelection:a}))});t.command.register(`context.copy`,()=>c.copyContext()),t.command.register(`context.copy-selection`,()=>c.copyContext({scope:`selection`}));let C=()=>{let e=m?.element;e&&(n.rendererRoot?.hasAttribute(QO)?e.setAttribute(QO,`true`):e.removeAttribute(QO))},w=()=>{h?.disconnect(),h=null,f=null,p?.(),p=null,m?.dispose(),m=null},T=()=>{if(m)return;if(m=Uw(n),v=m.element.parentNode,m.element.dataset.mesurerLayer=`evidence`,m.element.dataset.mesurerContextRoot=`true`,n.rendererRoot){let e=new n.ownerWindow.MutationObserver(C);h=e,e.observe(n.rendererRoot,{attributes:!0,attributeFilter:[QO]}),C()}let e={runtime:i,onCopy:c.copyContext,onController:e=>{f=e},get coordinateSpace(){return g()?`viewport`:`document`},rendererRoot:n.rendererRoot};p=ko(()=>[ho(Lw,Za(e,{get ownerWindow(){return n.ownerWindow}})),ho(Zo,{mount:r,get children(){return ho(zw,{runtime:i,get ownerWindow(){return n.ownerWindow},get rendererRoot(){return n.rendererRoot},get open(){return o()},onOpenChange:e=>{s(e),e||a.cancel()},get onReveal(){return a.reveal},get onCancel(){return a.cancel},onOpenAnnotation:e=>{if(f){f.openAnnotation(e);return}n.ownerDocument.querySelector(`[data-mesurer-annotation-marker='true'][data-mesurer-annotation-id="${CSS.escape(e)}"]`)?.click()}})}})],m.element),en(g)&&n.rendererRoot&&(n.rendererRoot.append(m.element),m.element.style.zIndex=`90`)},E=()=>{l()?T():w()};E(),t.state.subscribe(E);let D=()=>{let e=!!n.rendererRoot?.querySelector(`[data-mesurer-responsive-stage]`);if(e===en(g)||(_(e),!m))return;let t=e?n.rendererRoot:v;t&&m.element.parentNode!==t&&t.appendChild(m.element),m.element.style.zIndex=e?`90`:``,en(()=>f?.closeNoteComposer())};n.ownerWindow.addEventListener(`mesurer:responsive-stage-change`,D),t.command.register(`context.add-note`,()=>{u()&&f?.openNoteComposer()}),t.command.register(`context.notes`,()=>{l()&&(o()&&a.cancel(),s(e=>!e))}),t.tool.register({id:`context.copy`,label:`Copy context`,shortcut:`C`,command:`context.copy`,order:70,toolbarMode:`always`,icon:$O,hidden:()=>!l()}),t.tool.register({id:`context.copy-selection`,label:`Copy selection`,shortcut:`Shift+C`,command:`context.copy-selection`,order:71,toolbarMode:`always`,icon:ek,hidden:()=>!l(),disabled:()=>!u()}),t.tool.register({id:`context.add-note`,label:`Add note`,shortcut:`N`,command:`context.add-note`,order:72,toolbarMode:`always`,icon:tk,hidden:()=>!l(),disabled:()=>!u()}),t.tool.register({id:`context.notes`,label:`Notes`,command:`context.notes`,order:73,toolbarMode:`always`,compactPinned:!0,icon:nk,active:o,hidden:()=>!l()}),t.settings.register({id:`context`,label:`Context`,order:30,controls:[{type:`toggle`,id:`ui`,label:`Context tools`,description:`Show Copy Context, Copy Selection, Add Note, and annotation controls.`,value:l,set:d}]}),t.lifecycle.onDispose(()=>{a.dispose(),S(),n.ownerWindow.removeEventListener(`mesurer:responsive-stage-change`,D),w(),i.dispose()})}}}var sk={display:`block`,position:`fixed`,inset:`0`,width:`0`,height:`0`,"min-width":`0`,"min-height":`0`,"max-width":`none`,"max-height":`none`,margin:`0`,padding:`0`,border:`0`,overflow:`visible`,background:`transparent`,"box-sizing":`border-box`,"pointer-events":`none`,"z-index":`2147483647`,opacity:`1`,visibility:`visible`,transform:`none`,translate:`none`,rotate:`none`,scale:`none`,filter:`none`,"backdrop-filter":`none`,"clip-path":`none`,mask:`none`,contain:`none`,isolation:`isolate`,"mix-blend-mode":`normal`,animation:`none`,transition:`none`,"color-scheme":`light`,color:`#0f172a`,"font-family":`ui-sans-serif, system-ui, sans-serif`,"font-size":`16px`,"font-weight":`400`,"line-height":`1.5`,"letter-spacing":`normal`,direction:`ltr`};function ck(e){for(let[t,n]of Object.entries(sk))e.style.setProperty(t,n,`important`)}function lk(e){return`popover`in e&&`showPopover`in e&&typeof e.showPopover==`function`&&`hidePopover`in e&&typeof e.hidePopover==`function`}var uk=e=>`newState`in e,dk=e=>e.localName===`dialog`;function fk(e){if(!dk(e)||!e.open)return!1;try{return e.matches(`:modal`)}catch{return!1}}function pk(e,t,n=!0){ck(e);let r=e.ownerDocument,i=r.defaultView??window,a=t,o=!1,s=`fixed`,c=!1,l=0,u=[];if(n&&lk(e)&&(e.popover=`manual`),t.append(e),n&&lk(e))try{e.showPopover(),c=e.matches(`:popover-open`),c&&(s=`top-layer`)}catch{e.removeAttribute(`popover`)}let d=()=>{if(!(!c||!lk(e)))try{e.matches(`:popover-open`)||e.showPopover()}catch{}},f=t=>{if(e.parentNode===t)return;let n=c&&lk(e)&&e.matches(`:popover-open`);if(n&&lk(e))try{e.hidePopover()}catch{}t.append(e),ck(e),n&&d()},p=()=>{u=u.filter(e=>e.isConnected&&fk(e)),f(u.at(-1)??a)},m=e=>{u=u.filter(t=>t!==e),u.push(e),p()},h=e=>{u=u.filter(t=>t!==e),p()},g=()=>{if(!(o||!c||!lk(e)))try{e.matches(`:popover-open`)&&e.hidePopover(),e.showPopover()}catch{}},_=()=>{o||!c||l||(l=i.requestAnimationFrame(()=>{l=0,g()}))},v=t=>{if(!c||t.target===e)return;let n=uk(t)?t.newState:void 0,r=t.target;if(r instanceof i.Element){if(dk(r)){n===`open`&&fk(r)?(m(r),_()):n===`closed`?h(r):n===`open`&&_();return}n===`open`&&r.hasAttribute(`popover`)&&_()}},y=e=>{let t=e.target;t instanceof i.Element&&dk(t)&&h(t)},b=()=>{r.fullscreenElement&&_()},x=e=>{fk(e)&&m(e);for(let t of e.querySelectorAll(`dialog`))fk(t)&&m(t)},S=new i.MutationObserver(e=>{if(c)for(let t of e){if(t.type===`attributes`){let e=t.target;e instanceof i.Element&&dk(e)&&(fk(e)?m(e):h(e))}for(let e of t.addedNodes)e instanceof i.Element&&x(e);u.some(e=>!e.isConnected)&&p()}});return c&&(r.addEventListener(`toggle`,v,!0),r.addEventListener(`close`,y,!0),r.addEventListener(`fullscreenchange`,b,!0),S.observe(r.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`open`]}),x(r.documentElement)),{mode:s,bringToFront:g,dispose(){if(!o){if(o=!0,l&&i.cancelAnimationFrame(l),r.removeEventListener(`toggle`,v,!0),r.removeEventListener(`close`,y,!0),r.removeEventListener(`fullscreenchange`,b,!0),S.disconnect(),c&&lk(e)&&e.matches(`:popover-open`))try{e.hidePopover()}catch{}u=[]}}}}var mk=`mesurer.codex`,hk=`codex:v1`,gk=`mesurer.plugin.before-disable`,_k=2e3,vk=750,yk=2e3,bk=1800,xk=2e3,Sk=12e4,Ck=10,wk=5,Tk=`http://127.0.0.1:47365`,Ek=`mesurer-codex`,Dk=2,Ok=[`thread-discovery-v1`,`durable-queue-v1`,`history-recovery-v2`,`client-message-correlation-v1`,`idle-safe-shutdown-v1`,`nonterminal-retention-v1`,`instance-binding-v1`],kk=1500,Ak=15e3,jk=5e3,Mk=[`Implement the current human feedback from Mesurer in this project.`,`Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,`,`and verify the affected UI in the live page with Mesurer before claiming completion.`].join(` `),Nk={viewBox:`0 0 256 256`,paths:[`M224,48,32,120l88,32,32,88Z M120,152l104-104`]},Pk={viewBox:`0 0 256 256`,paths:[`M72,32H184a8,8,0,0,1,0,16h-8v20.69a40,40,0,0,1-11.72,28.28L137.25,124l27.03,27.03A40,40,0,0,1,176,179.31V208h8a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16h8V179.31a40,40,0,0,1,11.72-28.28L118.75,124,91.72,96.97A40,40,0,0,1,80,68.69V48H72a8,8,0,0,1,0-16Zm24,16V68.69a24,24,0,0,0,7.03,16.97L128,110.63l24.97-24.97A24,24,0,0,0,160,68.69V48Zm32,90.63-24.97,24.97A24,24,0,0,0,96,180.57V208h64V180.57a24,24,0,0,0-7.03-16.97Z`]},Fk={viewBox:`0 0 256 256`,paths:[`M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z`]},Ik=class extends Error{issue;constructor(e,t){super(t),this.issue=e,this.name=`BrowserBridgeConnectionError`}},Lk=()=>{try{let e=globalThis.location;return e?.origin?`mesurer-codex-ui:v2:${e.origin}${e.pathname}`:null}catch{return null}},Rk=()=>{let e=Lk();if(!e)return null;try{let t=globalThis.sessionStorage?.getItem(e);if(!t)return null;let n=JSON.parse(t);if(n.version!==1)return null;let r=n.originThread?.trim()||null,i=n.selectedThread?.trim()||null,a=n.delivery;return{version:1,originThread:r,selectedThread:i,delivery:a&&a.id.trim()&&a.thread.trim()&&(a.status===`queued`||a.status===`working`||a.status===`completed`||a.status===`interrupted`||a.status===`failed`)&&Array.isArray(a.annotationIds)?{id:a.id.trim(),thread:a.thread.trim(),status:a.status,annotationIds:a.annotationIds.filter(e=>e.trim().length>0),queuedSubmissionId:a.queuedSubmissionId?.trim()||null,clientUserMessageId:a.clientUserMessageId?.trim()||null,dispatch:a.dispatch??null,dispatchError:a.dispatchError?.trim()||null,annotationSnapshots:Array.isArray(a.annotationSnapshots)?a.annotationSnapshots:void 0,message:a.message}:null}}catch{return null}},zk=e=>{let t=Lk();if(t)try{globalThis.sessionStorage?.setItem(t,JSON.stringify(e))}catch{}},Bk=e=>{let t=Tk.endsWith(`/`)?Tk:`${Tk}/`;return new URL(e,t).toString()},Vk=e=>{let t=e.bridge;if(!t)throw new Ik(`port-conflict`,`Another local service or an outdated Mesurer Codex Bridge is using port 47365. Mesurer will not send data to an unverified service.`);if(t.name!==Ek)throw new Ik(`port-conflict`,`Another local service is using port 47365 (${t.name??`unknown`}). Mesurer will not send Codex data to it.`);if(t.protocol!==Dk)throw new Ik(`version-mismatch`,`Mesurer Codex Bridge is out of date (protocol ${t.protocol??`unknown`}; expected ${Dk}). Restart the matching Mesurer Codex Bridge helper.`);if(e.access?.allowed===!1)throw new Ik(`origin-denied`,`Mesurer Codex Bridge does not allow this browser origin (${globalThis.location?.origin??`this page`}). Allow this origin when starting the bridge.`);let n=new Set(Array.isArray(t.capabilities)?t.capabilities:[]),r=Ok.filter(e=>!n.has(e));if(r.length>0)throw new Ik(`capability-mismatch`,`Mesurer Codex Bridge is missing required capabilities: ${r.join(`, `)}. Restart or update the matching helper.`);if(!t.instanceId?.trim())throw new Ik(`capability-mismatch`,`Mesurer Codex Bridge did not provide an instance identity. Restart or update the matching helper.`)},Hk=e=>e.includes(`does not allow this browser origin`)?`origin-denied`:e.includes(`out of date`)?`version-mismatch`:e.includes(`missing required capabilities`)||e.includes(`did not provide an instance identity`)?`capability-mismatch`:e.includes(`Another local service`)?`port-conflict`:e.includes(`instance changed`)?`instance-changed`:e.includes(`timed out`)?`timed-out`:e.includes(`companion is unavailable`)?`not-running`:null,Uk=e=>e instanceof Ik?e.issue:e instanceof Error?Hk(e.message):null,Wk=async e=>{let t,n;if(e.action===`health`)t=Bk(`health`);else if(e.action===`threads`){let n=new URLSearchParams;n.set(`limit`,String(e.limit??Ck)),e.thread&&n.set(`thread`,e.thread),t=`${Bk(`threads`)}?${n.toString()}`}else if(e.action===`target`)t=Bk(`target`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({thread:e.thread})};else if(e.action===`queue`)t=Bk(`send`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e.message,thread:e.thread})};else if(e.action===`delivery`)t=Bk(`deliveries/${encodeURIComponent(String(e.deliveryId??``))}`);else if(e.action===`restore`)t=Bk(`deliveries/restore`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({deliveryId:e.deliveryId,thread:e.thread,queuedSubmissionId:e.queuedSubmissionId,clientUserMessageId:e.clientUserMessageId,message:e.message})};else throw Error(`Codex browser companion does not support ${e.action}.`);if(e.action!==`health`){let t=e.bridgeInstanceId?.trim();if(!t)throw new Ik(`instance-changed`,`Mesurer Codex Bridge instance changed before this request could be verified.`);let r=new Headers(n?.headers);r.set(`X-Mesurer-Bridge-Instance`,t),n={...n,headers:r}}let r=new AbortController,i=e.action===`health`||e.action===`threads`?kk:Ak,a=globalThis.setTimeout(()=>r.abort(),i);try{let i=await fetch(t,{...n,signal:r.signal}),a=await i.text(),o={};if(a)try{o=JSON.parse(a)}catch{o={error:a}}if(e.action===`health`&&Vk(o),!i.ok||o.ok===!1){let e=o.error??`Mesurer Codex companion returned HTTP ${i.status}.`,t=Hk(e);throw t?new Ik(t,e):Error(e)}return o}catch(e){throw e instanceof Error&&e.name===`AbortError`?new Ik(`timed-out`,`Mesurer Codex companion timed out.`):e instanceof TypeError?new Ik(`not-running`,`Mesurer Codex companion is unavailable at ${Tk}.`):e}finally{globalThis.clearTimeout(a)}},Gk=async e=>{let t=window.__MESURER_HOST__?.codexBridge;if(!t)throw Error(`Codex native host bridge is unavailable.`);let n=await t(e);if(n.ok===!1)throw Error(n.error??`Codex Bridge request failed.`);return n},Kk=e=>{let t=e.runtime;return!t||![`shared`,`standalone`,`desktop`,`none`].includes(t.source)||![`shared-app-server`,`desktop-queue`,`private-stdio`,`none`].includes(t.transport)||t.reason!==null&&t.reason!==`desktop-private-transport`&&t.reason!==`runtime-not-found`?null:{source:t.source,transport:t.transport,available:t.available===!0,reason:t.reason}},qk=e=>({thread:e.thread?.trim()||null,threads:Array.isArray(e.threads)?e.threads.filter(e=>e.trim().length>0):[]}),Jk=e=>{let t=e.deliveryId?.trim(),n=e.thread?.trim(),r=e.status;if(!t||!n||!r)throw Error(`Codex Bridge returned an invalid delivery state.`);let i={id:t,thread:n,status:r,turnId:e.turnId?.trim()||null,createdAt:Number.isFinite(e.createdAt)?Number(e.createdAt):0,updatedAt:Number.isFinite(e.updatedAt)?Number(e.updatedAt):0};return e.queuedSubmissionId!==void 0&&(i.queuedSubmissionId=e.queuedSubmissionId?.trim()||null),e.clientUserMessageId!==void 0&&(i.clientUserMessageId=e.clientUserMessageId?.trim()||null),e.dispatch!==void 0&&(i.dispatch=e.dispatch),e.dispatchError!==void 0&&(i.dispatchError=e.dispatchError?.trim()||null),i},Yk=e=>({thread:e.thread?.trim()||null,threads:Array.isArray(e.threadDetails)?e.threadDetails.flatMap(e=>{let t=e.id?.trim()??``;return t?[{id:t,title:e.title?.trim()||t,updatedAt:e.updatedAt!=null&&Number.isFinite(e.updatedAt)?e.updatedAt:null,connected:e.connected===!0}]:[]}):[],hasMore:e.hasMore===!0}),Xk=async(e,t,n)=>{let r=t?.instruction?.trim()||n,i=await e.annotations(),a=t?.annotationIds,o=(a?a.flatMap(e=>{let t=i.find(t=>t.id===e);return t?[t]:[]}):i).filter(e=>e.status!==`resolved`),s=[],c=[];for(let t of o){let n=await e.context({annotation:t.id});n.scope.kind===`annotation`&&(s.push(RO(n)),c.push({id:t.id,note:n.scope.note,replies:(n.scope.replies??[]).map(e=>({...e}))}))}if(s.length===0)try{s.push(await e.contextText({scope:`selection`}))}catch{s.push(await e.contextText())}return{annotationIds:o.map(e=>e.id),annotationSnapshots:c,message:[r,``,...s.flatMap((e,t)=>[s.length>1?`Feedback ${t+1}`:`Mesurer evidence`,e,``])].join(`
|
|
2336
|
-
`).trimEnd()}},Zk=e=>e.length>16?`${e.slice(0,8)}…${e.slice(-4)}`:e,Qk=(e,t=42)=>e.length>t?`${e.slice(0,t-1)}…`:e,$k=e=>Uk(e)!==null||e instanceof Error&&(e.message===`Codex Bridge is unavailable in this host.`||e.message.includes(`Codex Bridge lease`)||e.message.includes(`Mesurer Codex Bridge`));function eA(e={}){let t=e.instruction?.trim()||Mk,n=e.ui??!0,r=e.clearCompletedAnnotations??!0;return{id:mk,version:yO,requires:[YO],provides:[hk],async setup(e){let i=e.service.get(YO);if(!i)throw Error(`Mesurer Codex plugin requires context() from mesurer-solid/plugins.`);let a=n?Rk():null,o=`unknown`,s=null,c=!1,l=a?.originThread??null,u=a?.selectedThread??a?.originThread??null,d=!1,f=null,p=[],m=[],h=!1,g=wk,_,v=``,y=null,b=a?.delivery?{id:a.delivery.id,thread:a.delivery.thread,status:a.delivery.status,annotationIds:a.delivery.annotationIds,queuedSubmissionId:a.delivery.queuedSubmissionId??null,clientUserMessageId:a.delivery.clientUserMessageId??null,dispatch:a.delivery.dispatch??null,dispatchError:a.delivery.dispatchError??null,annotationSnapshots:a.delivery.annotationSnapshots,message:a.delivery.message}:null,x=new WeakMap,S=0,C=0,w=null,T=!1,E=null,D=0,O=null,k=null,A=window.__MESURER_HOST__?.codexBridge!==void 0,j=async e=>{if(!A)try{let t=e.action===`queue`||e.action===`target`||e.action===`delivery`||e.action===`restore`;if(e.action===`health`){let t=await Wk(e);return O=t.bridge?.instanceId?.trim()||null,D=Date.now(),t}return(!O||t||Date.now()-D>=jk)&&(O=(await Wk({action:`health`,thread:u??l??void 0})).bridge?.instanceId?.trim()||null,D=Date.now()),await Wk({...e,bridgeInstanceId:O??void 0})}catch(e){throw D=0,O=null,e}if(e.action===`activate`||e.action===`runtime`)return Gk(e);if(!E)throw Error(`Codex Bridge lease is not active for this plugin.`);return Gk({...e,leaseId:E})},M=async()=>{if(!A)return;let e=E;if(e){if((await Gk({action:`deactivate`,leaseId:e})).released!==!0)throw Error(`Codex Bridge did not confirm lease release.`);E=null}};if(A){let e=await Gk({action:`activate`,thread:u??l??void 0}),t=e.leaseId?.trim();if(!t)throw Error(`Codex Bridge did not return an activation lease.`);E=t,o=`available`,s=Kk(e);let n=qk(e);c=!0,f=n.thread,p=n.threads}e.lifecycle.onDispose(()=>{E&&M().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`[Mesurer] Failed to release Codex host lease: ${t}`)})}),e.hook.on(gk,async e=>{e===`mesurer.codex`&&await M()});let N=async()=>{if(!A)return null;let e=Kk(await j({action:`runtime`}));if(!e)throw Error(`Codex Bridge returned an invalid runtime state.`);return s=e,e},P=async()=>{let e=await j({action:`health`,thread:u??l??void 0});return s=Kk(e)??s,qk(e)},F=P,I=async e=>Jk(await j({action:`delivery`,deliveryId:e})),L=async e=>{if(!e.id||!e.thread)throw Error(`Cannot restore a Codex delivery without its id and thread.`);let t={action:`restore`,deliveryId:e.id,thread:e.thread};return e.queuedSubmissionId&&(t.queuedSubmissionId=e.queuedSubmissionId),e.clientUserMessageId&&(t.clientUserMessageId=e.clientUserMessageId),e.message&&(t.message=e.message),Jk(await j(t))},R=async(e={})=>{let t={action:`threads`,limit:e.limit??Ck},n=e.thread?.trim();return n&&(t.thread=n),Yk(await j(t))},z=()=>u??l??(d?null:f),B=()=>{if(!n)return;let e=b?.id&&(b.status===`queued`||b.status===`working`||b.status===`completed`||b.status===`interrupted`||b.status===`failed`)?{id:b.id,thread:b.thread??z()??``,status:b.status,annotationIds:[...b.annotationIds],queuedSubmissionId:b.queuedSubmissionId,clientUserMessageId:b.clientUserMessageId,dispatch:b.dispatch,dispatchError:b.dispatchError,annotationSnapshots:b.annotationSnapshots,message:b.message}:null;zk({version:1,originThread:l,selectedThread:u,delivery:e?.thread?e:null})},V=(e,t=!1)=>{let n=e.trim();n&&((t||!l)&&(l=n),u=n,d=!1,B())},H=()=>!b||b.status===`queued`&&(b.dispatch===`desktop-opened`||b.dispatch===`desktop-wake-failed`)?!1:[`queueing`,`queued`,`working`,`completed`].includes(b.status),U=e=>e===`queueing`?`Queueing…`:e===`queued`?`Queued`:e===`working`?`Working…`:e===`completed`?`Done`:e===`interrupted`?`Interrupted`:`Failed`,ee=()=>b?b.status===`queueing`?`Queueing to Codex…`:b.status===`queued`?b.dispatch===`desktop-wake-failed`?`Queued — open Codex`:`Queued for Codex`:b.status===`working`?`Codex working…`:b.status===`completed`?`Codex finished`:b.status===`interrupted`?`Codex interrupted`:`Queue failed`:null,W=()=>b?[`queueing`,`queued`,`working`].includes(b.status)?Pk:b.status===`completed`?Fk:Nk:Nk,te=()=>{let e=[],t=new Set,n=n=>{t.has(n.id)||(t.add(n.id),e.push(n))},r=e=>({id:e,title:`Codex ${Zk(e)}`,updatedAt:null,connected:!0});l&&n(m.find(e=>e.id===l)??r(l));let i=u;i&&n(m.find(e=>e.id===i)??r(i));for(let e of m)n(e);for(let e of p)n(m.find(t=>t.id===e)??r(e));return e},ne=(e=!1)=>Promise.resolve(),re=(e=!1)=>k===`origin-denied`?e?`Browser origin not allowed`:`Allow this browser origin`:k===`version-mismatch`?e?`Bridge version mismatch`:`Update Mesurer Codex Bridge`:k===`capability-mismatch`?e?`Bridge capability mismatch`:`Update Mesurer Codex Bridge`:k===`port-conflict`?e?`Port 47365 conflict`:`Port 47365 is occupied`:k===`timed-out`?e?`Bridge did not respond`:`Mesurer Codex Bridge did not respond`:k===`instance-changed`?e?`Codex bridge changed`:`Codex bridge changed; reconnecting`:k===`not-running`?e?`Bridge not running`:`Mesurer Codex Bridge is not running`:e?`Codex unavailable`:`Mesurer Codex Bridge is unavailable`,ie=()=>A?s?.source===`desktop`?`Connected · Codex Desktop`:s?.source===`standalone`?`Connected · Codex CLI`:s?.source===`shared`?`Connected · Codex shared server`:`Connected · Codex`:p.length===0?`No reachable local Codex session`:`Connected · Local Codex Bridge`,ae=()=>{if(o!==`available`){let e=s?.source===`desktop`&&s.reason===`desktop-private-transport`,t=!A,n=[];return o===`unavailable`&&t&&n.push({id:`codex.connection.status`,label:re(),disabled:()=>!0,run:()=>void 0}),n.push({id:`codex.thread.connect`,label:o===`unavailable`?t?`Retry Codex connection`:e?`Retry Codex Desktop`:`Retry Codex connection`:`Choose Codex thread…`,run:()=>ne(!0)}),n}let e=te(),t=e.slice(0,g),n=z(),r=[{id:`codex.connection.status`,label:ie(),disabled:()=>!0,run:()=>void 0}];return!A&&p.length===0&&r.push({id:`codex.thread.refresh`,label:`Refresh Codex sessions`,run:()=>ne(!0)}),r.push(...t.map(e=>{let t=e.id===l?`Current · `:e.connected?`Loaded · `:``,r=b?.thread===e.id?` · ${U(b.status)}`:``;return{id:`codex.thread.${e.id}`,label:`${t}${Qk(e.title)}${r}`,checked:()=>n===e.id,disabled:()=>H(),run(){H()||(V(e.id,!l),oe())}}})),g<Ck&&(e.length>g||h)&&r.push({id:`codex.thread.show-more`,label:`Show 5 more…`,run(){g=Ck,oe()}}),b?.queuedSubmissionId&&b.status===`queued`&&(b.dispatch===`desktop-opened`||b.dispatch===`desktop-wake-failed`)&&r.push({id:`codex.delivery.receipt`,label:`Receipt · ${Zk(b.queuedSubmissionId)}`,disabled:()=>!0,run:()=>void 0}),r},oe=()=>{if(!n||T)return;let t=z(),r=ae(),i=!H()&&!d&&o!==`unavailable`&&(o===`unknown`||!!t),a=s?.source===`desktop`&&s.reason===`desktop-private-transport`,c=!A,l=re(!0),u=ee()??(o===`unavailable`?c?l:a?`Codex Desktop not connected`:`Codex unavailable`:o===`available`&&!A&&p.length===0?`No reachable Codex session`:d||o===`available`&&!t?`Choose Codex thread`:`Queue to Codex`),f=JSON.stringify({bridgeAvailability:o,codexRuntime:s,routeNeedsSelection:d,target:t,label:u,visibleThreadCount:g,activeDelivery:b,items:r.map(e=>({id:e.id,label:e.label,checked:e.checked?.()??null,disabled:e.disabled?.()??!1}))});f!==v&&(v=f,_?.dispose(),_=e.tool.register({id:`codex.send`,label:u,command:`codex.queue`,order:73,toolbarMode:`always`,icon:W(),disabled:()=>!i,menu:r.length?{label:`Codex destination`,items:r}:void 0}))},se=async e=>{if(o!==`available`)return;let t=await R({limit:Ck,thread:e??void 0});m=t.threads,h=t.hasMore,p=t.threads.filter(e=>e.connected).map(e=>e.id),f=t.thread};ne=(e=!1)=>T||o===`unknown`&&!e?Promise.resolve():y||(y=(async()=>{try{let e=await F();o=`available`,k=null,c=!0,f=e.thread,await se(u??l??e.thread);let t=u??l;t&&p.includes(t)?d=!1:p.length===1?V(p[0],!0):d=!0,!d&&t&&B()}catch(e){throw o=`unavailable`,k=A?null:Uk(e)??`unavailable`,s=await N().catch(()=>s),e}finally{y=null,oe()}})(),y);let ce=()=>{S&&=(globalThis.clearTimeout(S),0),C&&=(globalThis.clearTimeout(C),0)},le=()=>{C&&globalThis.clearTimeout(C),C=globalThis.setTimeout(()=>{C=0,b?.status===`completed`&&(b=null,B(),oe())},bk)},ue=async e=>{if(!(!b||b.id!==e.id)){if(b={...b,thread:e.thread,status:e.status,queuedSubmissionId:e.queuedSubmissionId??b.queuedSubmissionId,clientUserMessageId:e.clientUserMessageId??b.clientUserMessageId,dispatch:e.dispatch??b.dispatch,dispatchError:e.dispatchError??b.dispatchError},B(),e.status===`completed`){if(B(),oe(),r&&b.annotationIds.length>0){let t=!1,n=new Map((b.annotationSnapshots??[]).map(e=>[e.id,e]));for(let e of b.annotationIds)try{let t=n.get(e);if(!t)continue;let r=(await i.annotations()).find(t=>t.id===e);if(!r)continue;r.note===t.note&&(r.replies??[]).length===t.replies.length&&t.replies.every((e,t)=>{let n=r.replies?.[t];return n?.id===e.id&&n.text===e.text&&n.createdAt===e.createdAt})&&await i.removeAnnotation(e,t)}catch{t=!0}if(t){B(),oe(),S=globalThis.setTimeout(()=>{S=0,de(e.id)},vk);return}}B(),oe(),le();return}if(e.status===`interrupted`){B(),oe();let t=e.updatedAt>0?e.updatedAt:Date.now();Date.now()-t<Sk&&(S=globalThis.setTimeout(()=>{S=0,de(e.id)},xk));return}oe(),S=globalThis.setTimeout(()=>{S=0,de(e.id)},yk)}},de=async e=>{if(!(T||b?.id!==e))try{await ue(await I(e))}catch(t){if(b?.id!==e)return;let n=t;if((b.status===`queued`||b.status===`failed`)&&b.thread)try{o!==`available`&&await ne(!0);let e=await L(b);await ue(e);return}catch(e){n=e}if(b?.id!==e)return;if(b.status===`interrupted`){oe();return}b={...b,status:`failed`},B(),$k(n)&&(o=`unavailable`),oe()}},fe={health:P,listThreads:R,delivery:I,async useThread(e){let t=e.trim();if(!t)throw Error(`Codex thread must be a non-empty string.`);let n=await j({action:`target`,thread:t}),r=qk(n);return s=Kk(n)??s,V(t,!l),f=r.thread,p=r.threads,o=`available`,c=!0,oe(),r},async queue(e){let r=await Xk(i,e,t),a=e?.thread?.trim(),s=a||(n?z():null);if(n&&!a&&(d||!s))throw Error(`Choose a Codex thread before queueing feedback.`);let c={message:r.message};s&&(c.thread=s);try{let e=await j({action:`queue`,...c}),t=e.thread?.trim();if(!t)throw Error(`Codex Bridge did not report the destination thread.`);let n={thread:t,output:e.output??``,delivery:`queued`,deliveryId:e.deliveryId?.trim()||null,status:e.status??`queued`,annotationIds:r.annotationIds};return e.queuedSubmissionId!==void 0&&(n.queuedSubmissionId=e.queuedSubmissionId?.trim()||null),e.clientUserMessageId!==void 0&&(n.clientUserMessageId=e.clientUserMessageId?.trim()||null),e.dispatch!==void 0&&(n.dispatch=e.dispatch),e.dispatchError!==void 0&&(n.dispatchError=e.dispatchError?.trim()||null),x.set(n,{annotationSnapshots:r.annotationSnapshots,message:r.message}),n}catch(e){throw n&&$k(e)&&(o=`unavailable`,k=A?null:Uk(e)??`unavailable`,oe()),e}},send(e){return fe.queue(e)}};e.service.provide(hk,fe);let pe=async()=>{if(!(w||H())){if(b?.status===`failed`&&b.id){ce(),await de(b.id);return}return ce(),b={id:null,thread:z(),status:`queueing`,annotationIds:[],queuedSubmissionId:null,clientUserMessageId:null,dispatch:null,dispatchError:null},oe(),w=(async()=>{try{n&&o!==`available`&&await ne(!0);let e=await fe.queue(),t=x.get(e);b={id:e.deliveryId,thread:e.thread,status:e.status,annotationIds:e.annotationIds,annotationSnapshots:t?.annotationSnapshots,message:t?.message,queuedSubmissionId:e.queuedSubmissionId??null,clientUserMessageId:e.clientUserMessageId??null,dispatch:e.dispatch??null,dispatchError:e.dispatchError??null},V(e.thread,!l),B(),oe(),console.info(`[Mesurer] Queued feedback for Codex thread ${e.thread}.`),e.deliveryId?e.status===`completed`||e.status===`interrupted`?await ue({id:e.deliveryId,thread:e.thread,status:e.status,turnId:null,createdAt:0,updatedAt:0}):S=globalThis.setTimeout(()=>{S=0,de(e.deliveryId)},vk):C=globalThis.setTimeout(()=>{C=0,b?.id===null&&b?.status===`queued`&&(b=null,B(),oe())},bk)}catch(e){b=null,B(),oe();let t=e instanceof Error?e.message:String(e);throw console.error(`[Mesurer] Failed to queue feedback for Codex: ${t}`),e}finally{w=null}})(),w}};if(e.command.register(`codex.queue`,pe),e.command.register(`codex.send`,pe),n){if(oe(),A)try{await ne(!0)}catch(e){try{await M()}catch(t){let n=e instanceof Error?e.message:String(e),r=t instanceof Error?t.message:String(t);throw Error(`Codex activation failed: ${n}. Native lease release also failed: ${r}.`)}throw e}else ne(!0).catch(()=>void 0);b?.id&&(c=!0,S=globalThis.setTimeout(()=>{S=0,b?.id&&de(b.id)},0));let t=globalThis.setInterval(()=>{A&&!c||ne(!0).catch(()=>void 0)},A?_k:jk);e.lifecycle.onDispose(()=>{T=!0,ce(),globalThis.clearInterval(t),_?.dispose(),_=void 0})}}}}var tA=HE,nA=(e={})=>({...lD(e),version:yO}),rA=SD,iA=(e={})=>({...HD(e),version:yO}),aA=()=>globalThis.window?.__MESURER_HOST__?.codexBridge!==void 0,oA=[{id:JO,label:`Context`,order:30,create:ok,settingsIds:[`context`],hiddenSettingsControlIds:[`ui`]},{id:bO,label:`Edit`,order:35,create:SO,settingsIds:[`arrange`]},{id:GO,label:`Layout Guides`,order:38,create:qO},{id:rA,label:`Screenshot`,order:40,create:iA,settingsIds:[`screenshot`],hiddenSettingsControlIds:[`tool`]},{id:tA,label:`Recording`,order:42,create:nA,settingsIds:[`recording`],hiddenSettingsControlIds:[`tool`]},{id:mk,label:`Codex`,order:45,create:eA}],sA=e=>{let t=e!==void 0,n=new Map((e??[]).map(e=>[e.id,e])),r=new Set(oA.map(e=>e.id)),i=oA.map(e=>{let r=n.get(e.id);return{...e,settingsIds:e.settingsIds?[...e.settingsIds]:void 0,hiddenSettingsControlIds:e.hiddenSettingsControlIds?[...e.hiddenSettingsControlIds]:void 0,enabled:t?!!r:e.id===`mesurer.codex`?aA():e.enabled!==!1,create:r?()=>r:e.create}});for(let[t,n]of(e??[]).entries())r.has(n.id)||i.push({id:n.id,order:1e3+t,enabled:!0,create:()=>n});return i},cA={select:`select`,xray:`xray`,colorPicker:`color-picker`,rulers:`rulers`,responsive:`responsive`,typography:`text-inspector`,guides:`guides`,distance:`distance`,settings:`settings`};function lA(e={}){if(!(`document`in globalThis))throw Error(`mountMesurer() requires a browser or Electron renderer document.`);let{target:t=document.body,isolate:n=!0,shadowMode:r=`open`,topLayer:i=!0,agent:a=!1,signal:o,onPluginHost:s,onPluginsReady:c,plugins:l,excludeBuiltins:u,excludePlugins:d,...f}=e;if(o?.aborted)throw o.reason??new DOMException(`Mesurer mount aborted.`,`AbortError`);if(!t)throw Error(`mountMesurer() requires document.body to exist or an explicit target.`);let p=t.ownerDocument??document,m=p.defaultView??window;try{if(m.frameElement?.hasAttribute(`data-mesurer-responsive-frame`)){let e=p.createElement(`div`),t=async()=>{throw Error(`Mesurer is suppressed inside a Responsive preview frame.`)},n=Promise.reject(Error(`Mesurer is suppressed inside a Responsive preview frame.`));return n.catch(()=>void 0),{element:e,root:e,hostLayer:`fixed`,pluginHost:void 0,ready:n,agent:{capabilities:()=>({protocol:`mesurer.agent/v1`,contextSchema:`mesurer.context/v1`,capabilities:{context:!1,select:!1,annotations:!1,review:!1,capturePlan:!1,arrange:!1,textEdit:!1}}),ready:t,describe:t,inspect:()=>null,inspectAll:()=>[],at:()=>null,distance:()=>null,viewport:()=>({width:m.innerWidth,height:m.innerHeight,scrollX:m.scrollX,scrollY:m.scrollY,devicePixelRatio:m.devicePixelRatio,documentWidth:p.documentElement.scrollWidth,documentHeight:p.documentElement.scrollHeight,horizontalOverflow:p.documentElement.scrollWidth>m.innerWidth,verticalOverflow:p.documentElement.scrollHeight>m.innerHeight}),feedback:t,command:t,state:t,stable:t,context:t,contextText:t,select:t,annotations:t,review:t,capturePlan:t,prepareCapture:t,finishCapture:t,arrangements:t,arrange:t,showArrange:t,arrangeCapturePlan:t,reviewArrange:t,textEdits:t,textEdit:t},service:t,context:t,contextText:t,copyContext:t,select:t,annotations:t,review:t,capturePlan:t,prepareCapture:t,finishCapture:t,arrangements:t,arrange:t,showArrange:t,arrangeCapturePlan:t,reviewArrange:t,textEdits:t,textEdit:t,bringToFront(){},describe:t,dispose(){}}}}catch{}let h=p.createElement(`div`);h.dataset.mesurerIsland=`true`;let g=pk(h,t,i),_=h,v=h,y=h;if(n){let e=h.attachShadow({mode:r});v=p.createElement(`div`),v.dataset.mesurerIslandMount=`true`,e.append(v),_=e,y=e}let b,x,S,C,w,T=!1,E=!1,D=new Promise((e,t)=>{x=e,S=t}),O=new Promise((e,t)=>{C=e,w=t});D.catch(()=>void 0),O.catch(()=>void 0);let k=async()=>(await(b?Promise.resolve(b):D),O),A=a===!0?{}:a===!1?null:a,j=vO({ownerDocument:p,root:A?.root??(t.nodeType===11?t:p),getPluginHost:()=>b,waitForPluginHost:k}),M=async e=>{await k();let t=b?.service.get(e);if(t===void 0)throw Error(`Mesurer service is unavailable: ${e}.`);return t},N=async()=>{await j.ready();let e=b?.service.get(YO);if(!e)throw Error(`Mesurer Context is disabled. Enable it in Settings or include context() in plugins.`);return e},P=async()=>{await j.ready();let e=b?.service.get(CO);if(!e)throw Error(`Mesurer Edit is disabled. Enable it in Settings or include edit() in plugins.`);return e},F=async e=>(await N()).context(e),I=async e=>(await N()).contextText(e),L=async e=>(await N()).copyContext(e),R=async e=>(await N()).select(e),z=async()=>(await N()).annotations(),B=async e=>(await N()).review(e),V=async e=>(await N()).capturePlan(e),H=async()=>(await N()).prepareCapture(),U=async()=>(await N()).finishCapture(),ee=async()=>(await P()).intents(),W=async e=>{let t=(await P()).intent(e);if(!t)throw Error(`Edit movement intent not found: ${e}`);return t},te=async(e,t)=>{(await P()).show(e,t)},ne=async(e,t)=>(await P()).capturePlan(e,t),re=async(e,t)=>(await P()).review(e,t),ie=()=>j.textEdits(),ae=e=>j.textEdit(e),oe=Object.assign(j,{capabilities:()=>{let e=!!b?.service.get(YO);return{protocol:`mesurer.agent/v1`,contextSchema:`mesurer.context/v1`,capabilities:{context:e,select:e,annotations:e,review:e,capturePlan:e,arrange:!!b?.service.get(CO),textEdit:!!b?.service.get(gO)}}},context:F,contextText:I,select:R,annotations:z,review:B,capturePlan:V,prepareCapture:H,finishCapture:U,arrangements:ee,arrange:W,showArrange:te,arrangeCapturePlan:ne,reviewArrange:re}),se={...f,version:yO,plugins:sA(l),excludePlugins:u?u.map(e=>cA[e]):[...d??[]]},ce=ko(()=>ho(bw,Za(se,{portalTarget:y,pageTarget:t,onPluginHost:e=>{T||(T=!0,x(e)),b=e,s?.(e)},onPluginsReady:e=>{b=e,E||(E=!0,C(e)),c?.(e)}})),v),le,ue=new Promise((e,t)=>{le=t});ue.catch(()=>void 0);let de=Promise.race([(async()=>(await oe.ready(),k()))(),ue]);de.catch(()=>void 0);let fe=null;if(A){let e=A.globalName??`__MESURER__`,t=Object.getOwnPropertyDescriptor(m,e);Reflect.set(m,e,oe),fe=()=>{Object.getOwnPropertyDescriptor(m,e)?.value===oe&&(t?Object.defineProperty(m,e,t):Reflect.deleteProperty(m,e))}}let pe=!1,me=()=>void 0,he=e=>{T||S(e),E||w(e),le(e)},ge={element:h,root:_,hostLayer:g.mode,get pluginHost(){return b},ready:de,agent:oe,service:M,context:F,contextText:I,copyContext:L,select:R,annotations:z,review:B,capturePlan:V,prepareCapture:H,finishCapture:U,arrangements:ee,arrange:W,showArrange:te,arrangeCapturePlan:ne,reviewArrange:re,textEdits:ie,textEdit:ae,bringToFront:g.bringToFront,describe:async()=>(await de).describe(),dispose(){pe||(pe=!0,me(),he(new DOMException(`Mesurer was disposed before it became ready.`,`AbortError`)),fe?.(),ce(),g.dispose(),h.remove())}};if(o){let e=()=>{if(pe)return;let e=o.reason??new DOMException(`Mesurer mount aborted.`,`AbortError`);he(e),ge.dispose()};o.addEventListener(`abort`,e,{once:!0}),me=()=>{o.removeEventListener(`abort`,e)}}return ge}var uA=globalThis.__MESURER_CONFIG__??{},dA=(()=>{try{return!!window.frameElement?.hasAttribute(`data-mesurer-responsive-frame`)}catch{return!1}})(),{target:fA,globalName:pA=`__MESURER__`,reuseExisting:mA=!0,recoverDisconnected:hA=!1,...gA}=uA,_A=globalThis.__MESURER_INSTANCE__,vA=!dA&&mA&&_A?.element.isConnected?_A:void 0,yA=()=>{let e=fA?document.querySelector(fA):document.body;if(!e)throw Error(`Mesurer injection target not found: ${fA}`);return dA||globalThis.__MESURER_INSTANCE__?.dispose(),lA({...gA,target:e,agent:{globalName:pA,root:document}})},bA=e=>{globalThis.__MESURER_INJECT_RECOVERY__?.stop();let t=!1,n=!1,r=()=>{if(n=!1,t||globalThis.__MESURER_INSTANCE__?.element.isConnected)return;let r=e();globalThis.__MESURER_INSTANCE__=r,r.ready.catch(e=>{queueMicrotask(()=>{throw e})})},i=new MutationObserver(()=>{t||n||globalThis.__MESURER_INSTANCE__?.element.isConnected||(n=!0,queueMicrotask(r))});i.observe(document,{childList:!0,subtree:!0}),globalThis.__MESURER_INJECT_RECOVERY__={stop(){t=!0,i.disconnect()}}},xA=vA??yA();dA||(globalThis.__MESURER_INSTANCE__=xA),dA||globalThis.__MESURER_INJECT_RECOVERY__?.stop(),dA||(globalThis.__MESURER_INJECT_RECOVERY__=void 0),hA&&!dA&&bA(yA),dA||xA.ready.catch(e=>{queueMicrotask(()=>{throw e})})})(__MESURER_MEDIABUNNY__);
|
|
2335
|
+
`).trimEnd()}function zO(e){let t=TO([...e.regions,...e.targets.map(e=>e.inspection.rect),...e.visualContext.measurements.map(e=>e.rect),...e.visualContext.distances.flatMap(e=>[e.rectA,e.rectB])]),n=[{id:`viewport`,kind:`viewport`}];if(t){let r=Math.max(0,t.left-48),i=Math.max(0,t.top-48),a=Math.min(e.viewport.width,t.left+t.width+48),o=Math.min(e.viewport.height,t.top+t.height+48);a>r&&o>i&&n.push({id:`focus`,kind:`clip`,rect:{left:r,top:i,width:a-r,height:o-i}})}let r={schema:`mesurer.capture/v1`,contextId:e.id,chrome:`hide`,evidence:`show`,captures:n};return e.previewViewport&&(r.previewViewport={...e.previewViewport}),r}var BO=(e,t,n,r,i)=>{!Number.isFinite(r)||!Number.isFinite(i)||Math.abs(r-i)<.01||e.push({kind:t,label:n,before:r,current:i,delta:i-r,unit:`px`})},VO=(e,t,n,r)=>e.push({kind:`missing`,evidence:t,id:n,label:r}),HO=(e,t)=>Math.abs(e.left-t.left)<.01&&Math.abs(e.top-t.top)<.01&&Math.abs(e.width-t.width)<.01&&Math.abs(e.height-t.height)<.01;function UO(e){let t=e.runtime.annotation(e.annotationId);if(!t)throw Error(`Mesurer annotation not found: ${e.annotationId}`);let n=FO({runtime:e.runtime,ownerDocument:e.ownerDocument,ownerWindow:e.ownerWindow,request:{annotation:e.annotationId},layoutGuides:e.layoutGuides});if(n.scope.kind!==`annotation`)throw Error(`Mesurer annotation context invariant failed.`);let r=e.runtime.snapshot();if(!r)throw Error(`Mesurer workspace is not ready yet.`);let i=DO({measurements:r.measurements,activeMeasurement:r.activeMeasurement}),a=[];for(let e of t.baseline.targets){let t=n.targets.find(t=>t.ref===e.id);if(!t){VO(a,`target`,e.id,e.selector);continue}BO(a,`target-rect`,`${t.inspection.selector} left`,e.rect.left,t.inspection.rect.left),BO(a,`target-rect`,`${t.inspection.selector} top`,e.rect.top,t.inspection.rect.top),BO(a,`target-rect`,`${t.inspection.selector} width`,e.rect.width,t.inspection.rect.width),BO(a,`target-rect`,`${t.inspection.selector} height`,e.rect.height,t.inspection.rect.height)}for(let e of t.baseline.guides){let t=n.visualContext.guides.find(t=>t.id===e.id)??r.guides.find(t=>t.id===e.id);if(!t){VO(a,`guide`,e.id,`${e.orientation} guide ${e.id}`);continue}BO(a,`guide`,`${e.orientation} guide ${e.id}`,e.position,t.position)}for(let e of t.baseline.measurements){let r=n.visualContext.measurements.find(t=>t.id===e.id)??i.find(t=>t.id===e.id);if(!r){let r=t.baseline.targets.find(t=>HO(t.rect,e.rect));r&&n.targets.some(e=>e.ref===r.id)||VO(a,`measurement`,e.id,e.id);continue}BO(a,`measurement`,`${e.id} width`,e.rect.width,r.rect.width),BO(a,`measurement`,`${e.id} height`,e.rect.height,r.rect.height)}for(let e of t.baseline.distances){let t=n.visualContext.distances.find(t=>t.id===e.id)??r.heldDistances.find(t=>t.id===e.id);if(!t){VO(a,`distance`,e.id,e.id);continue}e.horizontal&&t.horizontal?BO(a,`distance`,`${e.id} horizontal`,e.horizontal.value,t.horizontal.value):e.horizontal&&!t.horizontal&&VO(a,`distance`,e.id,`${e.id} horizontal`),e.vertical&&t.vertical?BO(a,`distance`,`${e.id} vertical`,e.vertical.value,t.vertical.value):e.vertical&&!t.vertical&&VO(a,`distance`,e.id,`${e.id} vertical`)}return{schema:`mesurer.review/v1`,annotationId:t.id,note:t.note,targetStatus:n.scope.targetStatus,baseline:t.baseline,current:n,changes:a}}async function WO(e,t,n){try{if(t.navigator.clipboard?.writeText){await t.navigator.clipboard.writeText(n);return}}catch{}let r=e.createElement(`textarea`);r.value=n,r.setAttribute(`readonly`,``),r.style.position=`fixed`,r.style.opacity=`0`,r.style.pointerEvents=`none`,e.body.append(r),r.select();let i=e.execCommand?.(`copy`)??!1;if(r.remove(),!i)throw Error(`Unable to copy Mesurer context to the clipboard.`)}var GO=pT,KO=mT,qO=()=>({...BT(),version:yO}),JO=`mesurer.context`,YO=`context:v1`,XO=`mesurer.context.settings`,ZO=`context.ui`,QO=`context.notes-open`,$O=`data-mesurer-direct-text-edit-active`,ek={viewBox:`0 0 256 256`,paths:[`M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z`]},tk={viewBox:`0 0 256 256`,paths:[`M152,40a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,40Zm-8,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM72,32H48A16,16,0,0,0,32,48V72a8,8,0,0,0,16,0V48H72a8,8,0,0,0,0-16Z`]},nk={viewBox:`0 0 256 256`,paths:[`M229.66,58.34l-32-32a8,8,0,0,0-11.32,0l-96,96A8,8,0,0,0,88,128v32a8,8,0,0,0,8,8h32a8,8,0,0,0,5.66-2.34l96-96A8,8,0,0,0,229.66,58.34ZM124.69,152H104V131.31l64-64L188.69,88ZM200,76.69,179.31,56,192,43.31,212.69,64ZM224,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h80a8,8,0,0,1,0,16H48V208H208V128a8,8,0,0,1,16,0Z`]},rk={viewBox:`0 0 256 256`,paths:[`M40 40h176v16H40zm0 48h176v16H40zm0 48h112v16H40zm0 48h112v16H40zM184 144l40 40-48 48-40-40z`]},ik=async(e,t,n=1)=>{await e.fonts?.ready;for(let e=0;e<Math.max(1,n);e+=1)await new Promise(e=>t.requestAnimationFrame(()=>e()))},ak=(e,t,n,r)=>{let i=async i=>FO({runtime:e,ownerDocument:t,ownerWindow:n,request:i,layoutGuides:r()}),a=async e=>RO(await i(e));return{context:i,contextText:a,copyContext:async e=>WO(t,n,await a(e)),select:async r=>{let a=Array.isArray(r)?[...r]:[String(r)];return e.select(a),await ik(t,n),i({scope:`selection`})},annotations:async()=>e.annotations(),removeAnnotation:async(r,i)=>{e.removeAnnotation(r,i),await ik(t,n)},review:async i=>{if(await ik(t,n),i)return UO({runtime:e,ownerDocument:t,ownerWindow:n,annotationId:i,layoutGuides:r()});let a=r();return e.annotations().map(r=>UO({runtime:e,ownerDocument:t,ownerWindow:n,annotationId:r.id,layoutGuides:a}))},capturePlan:async e=>zO(await i(e)),prepareCapture:async()=>{e.prepareCapture(),await ik(t,n)},finishCapture:async()=>{e.finishCapture(),await ik(t,n)}}},ok=(e,t)=>{let n=e.currentSelection();return n.elements.length>0||n.region!==null&&!t?.querySelector(`[data-mesurer-responsive-stage]`)};function sk(e={}){return{id:JO,version:yO,requires:[`runtime:solid`],provides:[YO],setup(t){let n=t.service.get(`runtime:solid`);if(!n)throw Error(`Mesurer context plugin requires the renderer runtime service.`);let r=n.rendererRoot;if(!r)throw Error(`Mesurer Notes requires the renderer root.`);let i=n.createWorkspaceRuntime(JO),a=n.createAnnotationRevealCoordinator(i),[o,s]=G(!1);t.state.register({id:QO,initial:!1});let c=e=>{s(e),t.state.get(QO)!==e&&t.state.update(QO,()=>e)},l=()=>t.state.get(QO)??!1,u=ak(i,n.ownerDocument,n.ownerWindow,()=>t.service.get(KO)?.list()??[]);t.service.provide(YO,u),t.state.register({id:XO,initial:{ui:e.ui??!0},persist:!0}),t.state.register({id:ZO,initial:{hasSelection:ok(i,n.rendererRoot)}});let d=()=>t.state.get(`mesurer.context.settings`)?.ui??!0,f=()=>ok(i,n.rendererRoot),p=e=>{e||(c(!1),a.cancel()),t.state.update(XO,t=>({...t,ui:e}))},m=null,h=null,g=null,_=null,[v,y]=G(!!n.rendererRoot?.querySelector(`[data-mesurer-responsive-stage]`)),b=null,x=i.currentSelection(),S={elements:[...x.elements],region:x.region?{...x.region}:null},C=(e,t)=>e.elements.length!==t.elements.length||e.elements.some((e,n)=>e!==t.elements[n])?!1:e.region===t.region?!0:!e.region||!t.region?!1:e.region.left===t.region.left&&e.region.top===t.region.top&&e.region.width===t.region.width&&e.region.height===t.region.height,w=i.subscribe(()=>{let e=i.currentSelection(),r=!C(S,e);S={elements:[...e.elements],region:e.region?{...e.region}:null},i.selectGestureActive()?m?.abandonNoteComposer():r&&m?.closeNoteComposer();let a=ok(i,n.rendererRoot);a!==(t.state.get(ZO)?.hasSelection??!1)&&t.state.update(ZO,()=>({hasSelection:a}))});t.command.register(`context.copy`,()=>u.copyContext()),t.command.register(`context.copy-selection`,()=>u.copyContext({scope:`selection`}));let T=()=>{let e=g?.element;e&&(n.rendererRoot?.hasAttribute($O)?e.setAttribute($O,`true`):e.removeAttribute($O))},E=()=>{_?.disconnect(),_=null,m=null,h?.(),h=null,g?.dispose(),g=null},D=()=>{if(g)return;if(g=Uw(n),b=g.element.parentNode,g.element.dataset.mesurerLayer=`evidence`,g.element.dataset.mesurerContextRoot=`true`,n.rendererRoot){let e=new n.ownerWindow.MutationObserver(T);_=e,e.observe(n.rendererRoot,{attributes:!0,attributeFilter:[$O]}),T()}let e={runtime:i,onCopy:u.copyContext,onController:e=>{m=e},get coordinateSpace(){return v()?`viewport`:`document`},rendererRoot:n.rendererRoot};h=ko(()=>[ho(Lw,Za(e,{get ownerWindow(){return n.ownerWindow}})),ho(Zo,{mount:r,get children(){return ho(zw,{runtime:i,get ownerWindow(){return n.ownerWindow},get rendererRoot(){return n.rendererRoot},get open(){return o()},onOpenChange:e=>{c(e),e||a.cancel()},get onReveal(){return a.reveal},get onCancel(){return a.cancel},onOpenAnnotation:e=>{if(m){m.openAnnotation(e);return}n.ownerDocument.querySelector(`[data-mesurer-annotation-marker='true'][data-mesurer-annotation-id="${CSS.escape(e)}"]`)?.click()}})}})],g.element),en(v)&&n.rendererRoot&&(n.rendererRoot.append(g.element),g.element.style.zIndex=`90`)},O=()=>{d()?D():E()};O(),t.state.subscribe(O);let k=()=>{let e=!!n.rendererRoot?.querySelector(`[data-mesurer-responsive-stage]`);if(e===en(v)||(y(e),!g))return;let t=e?n.rendererRoot:b;t&&g.element.parentNode!==t&&t.appendChild(g.element),g.element.style.zIndex=e?`90`:``,en(()=>m?.closeNoteComposer())};n.ownerWindow.addEventListener(`mesurer:responsive-stage-change`,k),t.command.register(`context.add-note`,()=>{f()&&m?.openNoteComposer()}),t.command.register(`context.notes`,()=>{d()&&(o()&&a.cancel(),c(!en(o)))}),t.tool.register({id:`context.copy`,label:`Copy context`,shortcut:`C`,command:`context.copy`,order:70,toolbarMode:`always`,icon:ek,hidden:()=>!d()}),t.tool.register({id:`context.copy-selection`,label:`Copy selection`,shortcut:`Shift+C`,command:`context.copy-selection`,order:71,toolbarMode:`always`,icon:tk,hidden:()=>!d(),disabled:()=>!f()}),t.tool.register({id:`context.add-note`,label:`Add note`,shortcut:`N`,command:`context.add-note`,order:72,toolbarMode:`always`,icon:nk,hidden:()=>!d(),disabled:()=>!f()}),t.tool.register({id:`context.notes`,label:`Notes`,command:`context.notes`,order:73,toolbarMode:`always`,compactPinned:!0,icon:rk,active:l,hidden:()=>!d()}),t.settings.register({id:`context`,label:`Context`,order:30,controls:[{type:`toggle`,id:`ui`,label:`Context tools`,description:`Show Copy Context, Copy Selection, Add Note, and annotation controls.`,value:d,set:p}]}),t.lifecycle.onDispose(()=>{a.dispose(),w(),n.ownerWindow.removeEventListener(`mesurer:responsive-stage-change`,k),E(),i.dispose()})}}}var ck={display:`block`,position:`fixed`,inset:`0`,width:`0`,height:`0`,"min-width":`0`,"min-height":`0`,"max-width":`none`,"max-height":`none`,margin:`0`,padding:`0`,border:`0`,overflow:`visible`,background:`transparent`,"box-sizing":`border-box`,"pointer-events":`none`,"z-index":`2147483647`,opacity:`1`,visibility:`visible`,transform:`none`,translate:`none`,rotate:`none`,scale:`none`,filter:`none`,"backdrop-filter":`none`,"clip-path":`none`,mask:`none`,contain:`none`,isolation:`isolate`,"mix-blend-mode":`normal`,animation:`none`,transition:`none`,"color-scheme":`light`,color:`#0f172a`,"font-family":`ui-sans-serif, system-ui, sans-serif`,"font-size":`16px`,"font-weight":`400`,"line-height":`1.5`,"letter-spacing":`normal`,direction:`ltr`};function lk(e){for(let[t,n]of Object.entries(ck))e.style.setProperty(t,n,`important`)}function uk(e){return`popover`in e&&`showPopover`in e&&typeof e.showPopover==`function`&&`hidePopover`in e&&typeof e.hidePopover==`function`}var dk=e=>`newState`in e,fk=e=>e.localName===`dialog`;function pk(e){if(!fk(e)||!e.open)return!1;try{return e.matches(`:modal`)}catch{return!1}}function mk(e,t,n=!0){lk(e);let r=e.ownerDocument,i=r.defaultView??window,a=t,o=!1,s=`fixed`,c=!1,l=0,u=[];if(n&&uk(e)&&(e.popover=`manual`),t.append(e),n&&uk(e))try{e.showPopover(),c=e.matches(`:popover-open`),c&&(s=`top-layer`)}catch{e.removeAttribute(`popover`)}let d=()=>{if(!(!c||!uk(e)))try{e.matches(`:popover-open`)||e.showPopover()}catch{}},f=t=>{if(e.parentNode===t)return;let n=c&&uk(e)&&e.matches(`:popover-open`);if(n&&uk(e))try{e.hidePopover()}catch{}t.append(e),lk(e),n&&d()},p=()=>{u=u.filter(e=>e.isConnected&&pk(e)),f(u.at(-1)??a)},m=e=>{u=u.filter(t=>t!==e),u.push(e),p()},h=e=>{u=u.filter(t=>t!==e),p()},g=()=>{if(!(o||!c||!uk(e)))try{e.matches(`:popover-open`)&&e.hidePopover(),e.showPopover()}catch{}},_=()=>{o||!c||l||(l=i.requestAnimationFrame(()=>{l=0,g()}))},v=t=>{if(!c||t.target===e)return;let n=dk(t)?t.newState:void 0,r=t.target;if(r instanceof i.Element){if(fk(r)){n===`open`&&pk(r)?(m(r),_()):n===`closed`?h(r):n===`open`&&_();return}n===`open`&&r.hasAttribute(`popover`)&&_()}},y=e=>{let t=e.target;t instanceof i.Element&&fk(t)&&h(t)},b=()=>{r.fullscreenElement&&_()},x=e=>{pk(e)&&m(e);for(let t of e.querySelectorAll(`dialog`))pk(t)&&m(t)},S=new i.MutationObserver(e=>{if(c)for(let t of e){if(t.type===`attributes`){let e=t.target;e instanceof i.Element&&fk(e)&&(pk(e)?m(e):h(e))}for(let e of t.addedNodes)e instanceof i.Element&&x(e);u.some(e=>!e.isConnected)&&p()}});return c&&(r.addEventListener(`toggle`,v,!0),r.addEventListener(`close`,y,!0),r.addEventListener(`fullscreenchange`,b,!0),S.observe(r.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`open`]}),x(r.documentElement)),{mode:s,bringToFront:g,dispose(){if(!o){if(o=!0,l&&i.cancelAnimationFrame(l),r.removeEventListener(`toggle`,v,!0),r.removeEventListener(`close`,y,!0),r.removeEventListener(`fullscreenchange`,b,!0),S.disconnect(),c&&uk(e)&&e.matches(`:popover-open`))try{e.hidePopover()}catch{}u=[]}}}}var hk=`mesurer.codex`,gk=`codex:v1`,_k=`mesurer.plugin.before-disable`,vk=2e3,yk=750,bk=2e3,xk=1800,Sk=2e3,Ck=12e4,wk=10,Tk=5,Ek=`http://127.0.0.1:47365`,Dk=`mesurer-codex`,Ok=2,kk=[`thread-discovery-v1`,`durable-queue-v1`,`history-recovery-v2`,`client-message-correlation-v1`,`idle-safe-shutdown-v1`,`nonterminal-retention-v1`,`instance-binding-v1`],Ak=1500,jk=15e3,Mk=5e3,Nk=[`Implement the current human feedback from Mesurer in this project.`,`Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,`,`and verify the affected UI in the live page with Mesurer before claiming completion.`].join(` `),Pk={viewBox:`0 0 256 256`,paths:[`M224,48,32,120l88,32,32,88Z M120,152l104-104`]},Fk={viewBox:`0 0 256 256`,paths:[`M72,32H184a8,8,0,0,1,0,16h-8v20.69a40,40,0,0,1-11.72,28.28L137.25,124l27.03,27.03A40,40,0,0,1,176,179.31V208h8a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16h8V179.31a40,40,0,0,1,11.72-28.28L118.75,124,91.72,96.97A40,40,0,0,1,80,68.69V48H72a8,8,0,0,1,0-16Zm24,16V68.69a24,24,0,0,0,7.03,16.97L128,110.63l24.97-24.97A24,24,0,0,0,160,68.69V48Zm32,90.63-24.97,24.97A24,24,0,0,0,96,180.57V208h64V180.57a24,24,0,0,0-7.03-16.97Z`]},Ik={viewBox:`0 0 256 256`,paths:[`M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z`]},Lk=class extends Error{issue;constructor(e,t){super(t),this.issue=e,this.name=`BrowserBridgeConnectionError`}},Rk=()=>{try{let e=globalThis.location;return e?.origin?`mesurer-codex-ui:v2:${e.origin}${e.pathname}`:null}catch{return null}},zk=()=>{let e=Rk();if(!e)return null;try{let t=globalThis.sessionStorage?.getItem(e);if(!t)return null;let n=JSON.parse(t);if(n.version!==1)return null;let r=n.originThread?.trim()||null,i=n.selectedThread?.trim()||null,a=n.delivery;return{version:1,originThread:r,selectedThread:i,delivery:a&&a.id.trim()&&a.thread.trim()&&(a.status===`queued`||a.status===`working`||a.status===`completed`||a.status===`interrupted`||a.status===`failed`)&&Array.isArray(a.annotationIds)?{id:a.id.trim(),thread:a.thread.trim(),status:a.status,annotationIds:a.annotationIds.filter(e=>e.trim().length>0),queuedSubmissionId:a.queuedSubmissionId?.trim()||null,clientUserMessageId:a.clientUserMessageId?.trim()||null,dispatch:a.dispatch??null,dispatchError:a.dispatchError?.trim()||null,annotationSnapshots:Array.isArray(a.annotationSnapshots)?a.annotationSnapshots:void 0,message:a.message}:null}}catch{return null}},Bk=e=>{let t=Rk();if(t)try{globalThis.sessionStorage?.setItem(t,JSON.stringify(e))}catch{}},Vk=e=>{let t=Ek.endsWith(`/`)?Ek:`${Ek}/`;return new URL(e,t).toString()},Hk=e=>{let t=e.bridge;if(!t)throw new Lk(`port-conflict`,`Another local service or an outdated Mesurer Codex Bridge is using port 47365. Mesurer will not send data to an unverified service.`);if(t.name!==Dk)throw new Lk(`port-conflict`,`Another local service is using port 47365 (${t.name??`unknown`}). Mesurer will not send Codex data to it.`);if(t.protocol!==Ok)throw new Lk(`version-mismatch`,`Mesurer Codex Bridge is out of date (protocol ${t.protocol??`unknown`}; expected ${Ok}). Restart the matching Mesurer Codex Bridge helper.`);if(e.access?.allowed===!1)throw new Lk(`origin-denied`,`Mesurer Codex Bridge does not allow this browser origin (${globalThis.location?.origin??`this page`}). Allow this origin when starting the bridge.`);let n=new Set(Array.isArray(t.capabilities)?t.capabilities:[]),r=kk.filter(e=>!n.has(e));if(r.length>0)throw new Lk(`capability-mismatch`,`Mesurer Codex Bridge is missing required capabilities: ${r.join(`, `)}. Restart or update the matching helper.`);if(!t.instanceId?.trim())throw new Lk(`capability-mismatch`,`Mesurer Codex Bridge did not provide an instance identity. Restart or update the matching helper.`)},Uk=e=>e.includes(`does not allow this browser origin`)?`origin-denied`:e.includes(`out of date`)?`version-mismatch`:e.includes(`missing required capabilities`)||e.includes(`did not provide an instance identity`)?`capability-mismatch`:e.includes(`Another local service`)?`port-conflict`:e.includes(`instance changed`)?`instance-changed`:e.includes(`timed out`)?`timed-out`:e.includes(`companion is unavailable`)?`not-running`:null,Wk=e=>e instanceof Lk?e.issue:e instanceof Error?Uk(e.message):null,Gk=async e=>{let t,n;if(e.action===`health`)t=Vk(`health`);else if(e.action===`threads`){let n=new URLSearchParams;n.set(`limit`,String(e.limit??wk)),e.thread&&n.set(`thread`,e.thread),t=`${Vk(`threads`)}?${n.toString()}`}else if(e.action===`target`)t=Vk(`target`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({thread:e.thread})};else if(e.action===`queue`)t=Vk(`send`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e.message,thread:e.thread})};else if(e.action===`delivery`)t=Vk(`deliveries/${encodeURIComponent(String(e.deliveryId??``))}`);else if(e.action===`restore`)t=Vk(`deliveries/restore`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({deliveryId:e.deliveryId,thread:e.thread,queuedSubmissionId:e.queuedSubmissionId,clientUserMessageId:e.clientUserMessageId,message:e.message})};else throw Error(`Codex browser companion does not support ${e.action}.`);if(e.action!==`health`){let t=e.bridgeInstanceId?.trim();if(!t)throw new Lk(`instance-changed`,`Mesurer Codex Bridge instance changed before this request could be verified.`);let r=new Headers(n?.headers);r.set(`X-Mesurer-Bridge-Instance`,t),n={...n,headers:r}}let r=new AbortController,i=e.action===`health`||e.action===`threads`?Ak:jk,a=globalThis.setTimeout(()=>r.abort(),i);try{let i=await fetch(t,{...n,signal:r.signal}),a=await i.text(),o={};if(a)try{o=JSON.parse(a)}catch{o={error:a}}if(e.action===`health`&&Hk(o),!i.ok||o.ok===!1){let e=o.error??`Mesurer Codex companion returned HTTP ${i.status}.`,t=Uk(e);throw t?new Lk(t,e):Error(e)}return o}catch(e){throw e instanceof Error&&e.name===`AbortError`?new Lk(`timed-out`,`Mesurer Codex companion timed out.`):e instanceof TypeError?new Lk(`not-running`,`Mesurer Codex companion is unavailable at ${Ek}.`):e}finally{globalThis.clearTimeout(a)}},Kk=async e=>{let t=window.__MESURER_HOST__?.codexBridge;if(!t)throw Error(`Codex native host bridge is unavailable.`);let n=await t(e);if(n.ok===!1)throw Error(n.error??`Codex Bridge request failed.`);return n},qk=e=>{let t=e.runtime;return!t||![`shared`,`standalone`,`desktop`,`none`].includes(t.source)||![`shared-app-server`,`desktop-queue`,`private-stdio`,`none`].includes(t.transport)||t.reason!==null&&t.reason!==`desktop-private-transport`&&t.reason!==`runtime-not-found`?null:{source:t.source,transport:t.transport,available:t.available===!0,reason:t.reason}},Jk=e=>({thread:e.thread?.trim()||null,threads:Array.isArray(e.threads)?e.threads.filter(e=>e.trim().length>0):[]}),Yk=e=>{let t=e.deliveryId?.trim(),n=e.thread?.trim(),r=e.status;if(!t||!n||!r)throw Error(`Codex Bridge returned an invalid delivery state.`);let i={id:t,thread:n,status:r,turnId:e.turnId?.trim()||null,createdAt:Number.isFinite(e.createdAt)?Number(e.createdAt):0,updatedAt:Number.isFinite(e.updatedAt)?Number(e.updatedAt):0};return e.queuedSubmissionId!==void 0&&(i.queuedSubmissionId=e.queuedSubmissionId?.trim()||null),e.clientUserMessageId!==void 0&&(i.clientUserMessageId=e.clientUserMessageId?.trim()||null),e.dispatch!==void 0&&(i.dispatch=e.dispatch),e.dispatchError!==void 0&&(i.dispatchError=e.dispatchError?.trim()||null),i},Xk=e=>({thread:e.thread?.trim()||null,threads:Array.isArray(e.threadDetails)?e.threadDetails.flatMap(e=>{let t=e.id?.trim()??``;return t?[{id:t,title:e.title?.trim()||t,updatedAt:e.updatedAt!=null&&Number.isFinite(e.updatedAt)?e.updatedAt:null,connected:e.connected===!0}]:[]}):[],hasMore:e.hasMore===!0}),Zk=async(e,t,n)=>{let r=t?.instruction?.trim()||n,i=await e.annotations(),a=t?.annotationIds,o=(a?a.flatMap(e=>{let t=i.find(t=>t.id===e);return t?[t]:[]}):i).filter(e=>e.status!==`resolved`),s=[],c=[];for(let t of o){let n=await e.context({annotation:t.id});n.scope.kind===`annotation`&&(s.push(RO(n)),c.push({id:t.id,note:n.scope.note,replies:(n.scope.replies??[]).map(e=>({...e}))}))}if(s.length===0)try{s.push(await e.contextText({scope:`selection`}))}catch{s.push(await e.contextText())}return{annotationIds:o.map(e=>e.id),annotationSnapshots:c,message:[r,``,...s.flatMap((e,t)=>[s.length>1?`Feedback ${t+1}`:`Mesurer evidence`,e,``])].join(`
|
|
2336
|
+
`).trimEnd()}},Qk=e=>e.length>16?`${e.slice(0,8)}…${e.slice(-4)}`:e,$k=(e,t=42)=>e.length>t?`${e.slice(0,t-1)}…`:e,eA=e=>Wk(e)!==null||e instanceof Error&&(e.message===`Codex Bridge is unavailable in this host.`||e.message.includes(`Codex Bridge lease`)||e.message.includes(`Mesurer Codex Bridge`));function tA(e={}){let t=e.instruction?.trim()||Nk,n=e.ui??!0,r=e.clearCompletedAnnotations??!0;return{id:hk,version:yO,requires:[YO],provides:[gk],async setup(e){let i=e.service.get(YO);if(!i)throw Error(`Mesurer Codex plugin requires context() from mesurer-solid/plugins.`);let a=n?zk():null,o=`unknown`,s=null,c=!1,l=a?.originThread??null,u=a?.selectedThread??a?.originThread??null,d=!1,f=null,p=[],m=[],h=!1,g=Tk,_,v=``,y=null,b=a?.delivery?{id:a.delivery.id,thread:a.delivery.thread,status:a.delivery.status,annotationIds:a.delivery.annotationIds,queuedSubmissionId:a.delivery.queuedSubmissionId??null,clientUserMessageId:a.delivery.clientUserMessageId??null,dispatch:a.delivery.dispatch??null,dispatchError:a.delivery.dispatchError??null,annotationSnapshots:a.delivery.annotationSnapshots,message:a.delivery.message}:null,x=new WeakMap,S=0,C=0,w=null,T=!1,E=null,D=0,O=null,k=null,A=window.__MESURER_HOST__?.codexBridge!==void 0,j=async e=>{if(!A)try{let t=e.action===`queue`||e.action===`target`||e.action===`delivery`||e.action===`restore`;if(e.action===`health`){let t=await Gk(e);return O=t.bridge?.instanceId?.trim()||null,D=Date.now(),t}return(!O||t||Date.now()-D>=Mk)&&(O=(await Gk({action:`health`,thread:u??l??void 0})).bridge?.instanceId?.trim()||null,D=Date.now()),await Gk({...e,bridgeInstanceId:O??void 0})}catch(e){throw D=0,O=null,e}if(e.action===`activate`||e.action===`runtime`)return Kk(e);if(!E)throw Error(`Codex Bridge lease is not active for this plugin.`);return Kk({...e,leaseId:E})},M=async()=>{if(!A)return;let e=E;if(e){if((await Kk({action:`deactivate`,leaseId:e})).released!==!0)throw Error(`Codex Bridge did not confirm lease release.`);E=null}};if(A){let e=await Kk({action:`activate`,thread:u??l??void 0}),t=e.leaseId?.trim();if(!t)throw Error(`Codex Bridge did not return an activation lease.`);E=t,o=`available`,s=qk(e);let n=Jk(e);c=!0,f=n.thread,p=n.threads}e.lifecycle.onDispose(()=>{E&&M().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`[Mesurer] Failed to release Codex host lease: ${t}`)})}),e.hook.on(_k,async e=>{e===`mesurer.codex`&&await M()});let N=async()=>{if(!A)return null;let e=qk(await j({action:`runtime`}));if(!e)throw Error(`Codex Bridge returned an invalid runtime state.`);return s=e,e},P=async()=>{let e=await j({action:`health`,thread:u??l??void 0});return s=qk(e)??s,Jk(e)},F=P,I=async e=>Yk(await j({action:`delivery`,deliveryId:e})),L=async e=>{if(!e.id||!e.thread)throw Error(`Cannot restore a Codex delivery without its id and thread.`);let t={action:`restore`,deliveryId:e.id,thread:e.thread};return e.queuedSubmissionId&&(t.queuedSubmissionId=e.queuedSubmissionId),e.clientUserMessageId&&(t.clientUserMessageId=e.clientUserMessageId),e.message&&(t.message=e.message),Yk(await j(t))},R=async(e={})=>{let t={action:`threads`,limit:e.limit??wk},n=e.thread?.trim();return n&&(t.thread=n),Xk(await j(t))},z=()=>u??l??(d?null:f),B=()=>{if(!n)return;let e=b?.id&&(b.status===`queued`||b.status===`working`||b.status===`completed`||b.status===`interrupted`||b.status===`failed`)?{id:b.id,thread:b.thread??z()??``,status:b.status,annotationIds:[...b.annotationIds],queuedSubmissionId:b.queuedSubmissionId,clientUserMessageId:b.clientUserMessageId,dispatch:b.dispatch,dispatchError:b.dispatchError,annotationSnapshots:b.annotationSnapshots,message:b.message}:null;Bk({version:1,originThread:l,selectedThread:u,delivery:e?.thread?e:null})},V=(e,t=!1)=>{let n=e.trim();n&&((t||!l)&&(l=n),u=n,d=!1,B())},H=()=>!b||b.status===`queued`&&(b.dispatch===`desktop-opened`||b.dispatch===`desktop-wake-failed`)?!1:[`queueing`,`queued`,`working`,`completed`].includes(b.status),U=e=>e===`queueing`?`Queueing…`:e===`queued`?`Queued`:e===`working`?`Working…`:e===`completed`?`Done`:e===`interrupted`?`Interrupted`:`Failed`,ee=()=>b?b.status===`queueing`?`Queueing to Codex…`:b.status===`queued`?b.dispatch===`desktop-wake-failed`?`Queued — open Codex`:`Queued for Codex`:b.status===`working`?`Codex working…`:b.status===`completed`?`Codex finished`:b.status===`interrupted`?`Codex interrupted`:`Queue failed`:null,W=()=>b?[`queueing`,`queued`,`working`].includes(b.status)?Fk:b.status===`completed`?Ik:Pk:Pk,te=()=>{let e=[],t=new Set,n=n=>{t.has(n.id)||(t.add(n.id),e.push(n))},r=e=>({id:e,title:`Codex ${Qk(e)}`,updatedAt:null,connected:!0});l&&n(m.find(e=>e.id===l)??r(l));let i=u;i&&n(m.find(e=>e.id===i)??r(i));for(let e of m)n(e);for(let e of p)n(m.find(t=>t.id===e)??r(e));return e},ne=(e=!1)=>Promise.resolve(),re=(e=!1)=>k===`origin-denied`?e?`Browser origin not allowed`:`Allow this browser origin`:k===`version-mismatch`?e?`Bridge version mismatch`:`Update Mesurer Codex Bridge`:k===`capability-mismatch`?e?`Bridge capability mismatch`:`Update Mesurer Codex Bridge`:k===`port-conflict`?e?`Port 47365 conflict`:`Port 47365 is occupied`:k===`timed-out`?e?`Bridge did not respond`:`Mesurer Codex Bridge did not respond`:k===`instance-changed`?e?`Codex bridge changed`:`Codex bridge changed; reconnecting`:k===`not-running`?e?`Bridge not running`:`Mesurer Codex Bridge is not running`:e?`Codex unavailable`:`Mesurer Codex Bridge is unavailable`,ie=()=>A?s?.source===`desktop`?`Connected · Codex Desktop`:s?.source===`standalone`?`Connected · Codex CLI`:s?.source===`shared`?`Connected · Codex shared server`:`Connected · Codex`:p.length===0?`No reachable local Codex session`:`Connected · Local Codex Bridge`,ae=()=>{if(o!==`available`){let e=s?.source===`desktop`&&s.reason===`desktop-private-transport`,t=!A,n=[];return o===`unavailable`&&t&&n.push({id:`codex.connection.status`,label:re(),disabled:()=>!0,run:()=>void 0}),n.push({id:`codex.thread.connect`,label:o===`unavailable`?t?`Retry Codex connection`:e?`Retry Codex Desktop`:`Retry Codex connection`:`Choose Codex thread…`,run:()=>ne(!0)}),n}let e=te(),t=e.slice(0,g),n=z(),r=[{id:`codex.connection.status`,label:ie(),disabled:()=>!0,run:()=>void 0}];return!A&&p.length===0&&r.push({id:`codex.thread.refresh`,label:`Refresh Codex sessions`,run:()=>ne(!0)}),r.push(...t.map(e=>{let t=e.id===l?`Current · `:e.connected?`Loaded · `:``,r=b?.thread===e.id?` · ${U(b.status)}`:``;return{id:`codex.thread.${e.id}`,label:`${t}${$k(e.title)}${r}`,checked:()=>n===e.id,disabled:()=>H(),run(){H()||(V(e.id,!l),oe())}}})),g<wk&&(e.length>g||h)&&r.push({id:`codex.thread.show-more`,label:`Show 5 more…`,run(){g=wk,oe()}}),b?.queuedSubmissionId&&b.status===`queued`&&(b.dispatch===`desktop-opened`||b.dispatch===`desktop-wake-failed`)&&r.push({id:`codex.delivery.receipt`,label:`Receipt · ${Qk(b.queuedSubmissionId)}`,disabled:()=>!0,run:()=>void 0}),r},oe=()=>{if(!n||T)return;let t=z(),r=ae(),i=!H()&&!d&&o!==`unavailable`&&(o===`unknown`||!!t),a=s?.source===`desktop`&&s.reason===`desktop-private-transport`,c=!A,l=re(!0),u=ee()??(o===`unavailable`?c?l:a?`Codex Desktop not connected`:`Codex unavailable`:o===`available`&&!A&&p.length===0?`No reachable Codex session`:d||o===`available`&&!t?`Choose Codex thread`:`Queue to Codex`),f=JSON.stringify({bridgeAvailability:o,codexRuntime:s,routeNeedsSelection:d,target:t,label:u,visibleThreadCount:g,activeDelivery:b,items:r.map(e=>({id:e.id,label:e.label,checked:e.checked?.()??null,disabled:e.disabled?.()??!1}))});f!==v&&(v=f,_?.dispose(),_=e.tool.register({id:`codex.send`,label:u,command:`codex.queue`,order:73,toolbarMode:`always`,icon:W(),disabled:()=>!i,menu:r.length?{label:`Codex destination`,items:r}:void 0}))},se=async e=>{if(o!==`available`)return;let t=await R({limit:wk,thread:e??void 0});m=t.threads,h=t.hasMore,p=t.threads.filter(e=>e.connected).map(e=>e.id),f=t.thread};ne=(e=!1)=>T||o===`unknown`&&!e?Promise.resolve():y||(y=(async()=>{try{let e=await F();o=`available`,k=null,c=!0,f=e.thread,await se(u??l??e.thread);let t=u??l;t&&p.includes(t)?d=!1:p.length===1?V(p[0],!0):d=!0,!d&&t&&B()}catch(e){throw o=`unavailable`,k=A?null:Wk(e)??`unavailable`,s=await N().catch(()=>s),e}finally{y=null,oe()}})(),y);let ce=()=>{S&&=(globalThis.clearTimeout(S),0),C&&=(globalThis.clearTimeout(C),0)},le=()=>{C&&globalThis.clearTimeout(C),C=globalThis.setTimeout(()=>{C=0,b?.status===`completed`&&(b=null,B(),oe())},xk)},ue=async e=>{if(!(!b||b.id!==e.id)){if(b={...b,thread:e.thread,status:e.status,queuedSubmissionId:e.queuedSubmissionId??b.queuedSubmissionId,clientUserMessageId:e.clientUserMessageId??b.clientUserMessageId,dispatch:e.dispatch??b.dispatch,dispatchError:e.dispatchError??b.dispatchError},B(),e.status===`completed`){if(B(),oe(),r&&b.annotationIds.length>0){let t=!1,n=new Map((b.annotationSnapshots??[]).map(e=>[e.id,e]));for(let e of b.annotationIds)try{let t=n.get(e);if(!t)continue;let r=(await i.annotations()).find(t=>t.id===e);if(!r)continue;r.note===t.note&&(r.replies??[]).length===t.replies.length&&t.replies.every((e,t)=>{let n=r.replies?.[t];return n?.id===e.id&&n.text===e.text&&n.createdAt===e.createdAt})&&await i.removeAnnotation(e,t)}catch{t=!0}if(t){B(),oe(),S=globalThis.setTimeout(()=>{S=0,de(e.id)},yk);return}}B(),oe(),le();return}if(e.status===`interrupted`){B(),oe();let t=e.updatedAt>0?e.updatedAt:Date.now();Date.now()-t<Ck&&(S=globalThis.setTimeout(()=>{S=0,de(e.id)},Sk));return}oe(),S=globalThis.setTimeout(()=>{S=0,de(e.id)},bk)}},de=async e=>{if(!(T||b?.id!==e))try{await ue(await I(e))}catch(t){if(b?.id!==e)return;let n=t;if((b.status===`queued`||b.status===`failed`)&&b.thread)try{o!==`available`&&await ne(!0);let e=await L(b);await ue(e);return}catch(e){n=e}if(b?.id!==e)return;if(b.status===`interrupted`){oe();return}b={...b,status:`failed`},B(),eA(n)&&(o=`unavailable`),oe()}},fe={health:P,listThreads:R,delivery:I,async useThread(e){let t=e.trim();if(!t)throw Error(`Codex thread must be a non-empty string.`);let n=await j({action:`target`,thread:t}),r=Jk(n);return s=qk(n)??s,V(t,!l),f=r.thread,p=r.threads,o=`available`,c=!0,oe(),r},async queue(e){let r=await Zk(i,e,t),a=e?.thread?.trim(),s=a||(n?z():null);if(n&&!a&&(d||!s))throw Error(`Choose a Codex thread before queueing feedback.`);let c={message:r.message};s&&(c.thread=s);try{let e=await j({action:`queue`,...c}),t=e.thread?.trim();if(!t)throw Error(`Codex Bridge did not report the destination thread.`);let n={thread:t,output:e.output??``,delivery:`queued`,deliveryId:e.deliveryId?.trim()||null,status:e.status??`queued`,annotationIds:r.annotationIds};return e.queuedSubmissionId!==void 0&&(n.queuedSubmissionId=e.queuedSubmissionId?.trim()||null),e.clientUserMessageId!==void 0&&(n.clientUserMessageId=e.clientUserMessageId?.trim()||null),e.dispatch!==void 0&&(n.dispatch=e.dispatch),e.dispatchError!==void 0&&(n.dispatchError=e.dispatchError?.trim()||null),x.set(n,{annotationSnapshots:r.annotationSnapshots,message:r.message}),n}catch(e){throw n&&eA(e)&&(o=`unavailable`,k=A?null:Wk(e)??`unavailable`,oe()),e}},send(e){return fe.queue(e)}};e.service.provide(gk,fe);let pe=async()=>{if(!(w||H())){if(b?.status===`failed`&&b.id){ce(),await de(b.id);return}return ce(),b={id:null,thread:z(),status:`queueing`,annotationIds:[],queuedSubmissionId:null,clientUserMessageId:null,dispatch:null,dispatchError:null},oe(),w=(async()=>{try{n&&o!==`available`&&await ne(!0);let e=await fe.queue(),t=x.get(e);b={id:e.deliveryId,thread:e.thread,status:e.status,annotationIds:e.annotationIds,annotationSnapshots:t?.annotationSnapshots,message:t?.message,queuedSubmissionId:e.queuedSubmissionId??null,clientUserMessageId:e.clientUserMessageId??null,dispatch:e.dispatch??null,dispatchError:e.dispatchError??null},V(e.thread,!l),B(),oe(),console.info(`[Mesurer] Queued feedback for Codex thread ${e.thread}.`),e.deliveryId?e.status===`completed`||e.status===`interrupted`?await ue({id:e.deliveryId,thread:e.thread,status:e.status,turnId:null,createdAt:0,updatedAt:0}):S=globalThis.setTimeout(()=>{S=0,de(e.deliveryId)},yk):C=globalThis.setTimeout(()=>{C=0,b?.id===null&&b?.status===`queued`&&(b=null,B(),oe())},xk)}catch(e){b=null,B(),oe();let t=e instanceof Error?e.message:String(e);throw console.error(`[Mesurer] Failed to queue feedback for Codex: ${t}`),e}finally{w=null}})(),w}};if(e.command.register(`codex.queue`,pe),e.command.register(`codex.send`,pe),n){if(oe(),A)try{await ne(!0)}catch(e){try{await M()}catch(t){let n=e instanceof Error?e.message:String(e),r=t instanceof Error?t.message:String(t);throw Error(`Codex activation failed: ${n}. Native lease release also failed: ${r}.`)}throw e}else ne(!0).catch(()=>void 0);b?.id&&(c=!0,S=globalThis.setTimeout(()=>{S=0,b?.id&&de(b.id)},0));let t=globalThis.setInterval(()=>{A&&!c||ne(!0).catch(()=>void 0)},A?vk:Mk);e.lifecycle.onDispose(()=>{T=!0,ce(),globalThis.clearInterval(t),_?.dispose(),_=void 0})}}}}var nA=HE,rA=(e={})=>({...lD(e),version:yO}),iA=SD,aA=(e={})=>({...HD(e),version:yO}),oA=()=>globalThis.window?.__MESURER_HOST__?.codexBridge!==void 0,sA=[{id:JO,label:`Context`,order:30,create:sk,settingsIds:[`context`],hiddenSettingsControlIds:[`ui`]},{id:bO,label:`Edit`,order:35,create:SO,settingsIds:[`arrange`]},{id:GO,label:`Layout Guides`,order:38,create:qO},{id:iA,label:`Screenshot`,order:40,create:aA,settingsIds:[`screenshot`],hiddenSettingsControlIds:[`tool`]},{id:nA,label:`Recording`,order:42,create:rA,settingsIds:[`recording`],hiddenSettingsControlIds:[`tool`]},{id:hk,label:`Codex`,order:45,create:tA}],cA=e=>{let t=e!==void 0,n=new Map((e??[]).map(e=>[e.id,e])),r=new Set(sA.map(e=>e.id)),i=sA.map(e=>{let r=n.get(e.id);return{...e,settingsIds:e.settingsIds?[...e.settingsIds]:void 0,hiddenSettingsControlIds:e.hiddenSettingsControlIds?[...e.hiddenSettingsControlIds]:void 0,enabled:t?!!r:e.id===`mesurer.codex`?oA():e.enabled!==!1,create:r?()=>r:e.create}});for(let[t,n]of(e??[]).entries())r.has(n.id)||i.push({id:n.id,order:1e3+t,enabled:!0,create:()=>n});return i},lA={select:`select`,xray:`xray`,colorPicker:`color-picker`,rulers:`rulers`,responsive:`responsive`,typography:`text-inspector`,guides:`guides`,distance:`distance`,settings:`settings`};function uA(e={}){if(!(`document`in globalThis))throw Error(`mountMesurer() requires a browser or Electron renderer document.`);let{target:t=document.body,isolate:n=!0,shadowMode:r=`open`,topLayer:i=!0,agent:a=!1,signal:o,onPluginHost:s,onPluginsReady:c,plugins:l,excludeBuiltins:u,excludePlugins:d,...f}=e;if(o?.aborted)throw o.reason??new DOMException(`Mesurer mount aborted.`,`AbortError`);if(!t)throw Error(`mountMesurer() requires document.body to exist or an explicit target.`);let p=t.ownerDocument??document,m=p.defaultView??window;try{if(m.frameElement?.hasAttribute(`data-mesurer-responsive-frame`)){let e=p.createElement(`div`),t=async()=>{throw Error(`Mesurer is suppressed inside a Responsive preview frame.`)},n=Promise.reject(Error(`Mesurer is suppressed inside a Responsive preview frame.`));return n.catch(()=>void 0),{element:e,root:e,hostLayer:`fixed`,pluginHost:void 0,ready:n,agent:{capabilities:()=>({protocol:`mesurer.agent/v1`,contextSchema:`mesurer.context/v1`,capabilities:{context:!1,select:!1,annotations:!1,review:!1,capturePlan:!1,arrange:!1,textEdit:!1}}),ready:t,describe:t,inspect:()=>null,inspectAll:()=>[],at:()=>null,distance:()=>null,viewport:()=>({width:m.innerWidth,height:m.innerHeight,scrollX:m.scrollX,scrollY:m.scrollY,devicePixelRatio:m.devicePixelRatio,documentWidth:p.documentElement.scrollWidth,documentHeight:p.documentElement.scrollHeight,horizontalOverflow:p.documentElement.scrollWidth>m.innerWidth,verticalOverflow:p.documentElement.scrollHeight>m.innerHeight}),feedback:t,command:t,state:t,stable:t,context:t,contextText:t,select:t,annotations:t,review:t,capturePlan:t,prepareCapture:t,finishCapture:t,arrangements:t,arrange:t,showArrange:t,arrangeCapturePlan:t,reviewArrange:t,textEdits:t,textEdit:t},service:t,context:t,contextText:t,copyContext:t,select:t,annotations:t,review:t,capturePlan:t,prepareCapture:t,finishCapture:t,arrangements:t,arrange:t,showArrange:t,arrangeCapturePlan:t,reviewArrange:t,textEdits:t,textEdit:t,bringToFront(){},describe:t,dispose(){}}}}catch{}let h=p.createElement(`div`);h.dataset.mesurerIsland=`true`;let g=mk(h,t,i),_=h,v=h,y=h;if(n){let e=h.attachShadow({mode:r});v=p.createElement(`div`),v.dataset.mesurerIslandMount=`true`,e.append(v),_=e,y=e}let b,x,S,C,w,T=!1,E=!1,D=new Promise((e,t)=>{x=e,S=t}),O=new Promise((e,t)=>{C=e,w=t});D.catch(()=>void 0),O.catch(()=>void 0);let k=async()=>(await(b?Promise.resolve(b):D),O),A=a===!0?{}:a===!1?null:a,j=vO({ownerDocument:p,root:A?.root??(t.nodeType===11?t:p),getPluginHost:()=>b,waitForPluginHost:k}),M=async e=>{await k();let t=b?.service.get(e);if(t===void 0)throw Error(`Mesurer service is unavailable: ${e}.`);return t},N=async()=>{await j.ready();let e=b?.service.get(YO);if(!e)throw Error(`Mesurer Context is disabled. Enable it in Settings or include context() in plugins.`);return e},P=async()=>{await j.ready();let e=b?.service.get(CO);if(!e)throw Error(`Mesurer Edit is disabled. Enable it in Settings or include edit() in plugins.`);return e},F=async e=>(await N()).context(e),I=async e=>(await N()).contextText(e),L=async e=>(await N()).copyContext(e),R=async e=>(await N()).select(e),z=async()=>(await N()).annotations(),B=async e=>(await N()).review(e),V=async e=>(await N()).capturePlan(e),H=async()=>(await N()).prepareCapture(),U=async()=>(await N()).finishCapture(),ee=async()=>(await P()).intents(),W=async e=>{let t=(await P()).intent(e);if(!t)throw Error(`Edit movement intent not found: ${e}`);return t},te=async(e,t)=>{(await P()).show(e,t)},ne=async(e,t)=>(await P()).capturePlan(e,t),re=async(e,t)=>(await P()).review(e,t),ie=()=>j.textEdits(),ae=e=>j.textEdit(e),oe=Object.assign(j,{capabilities:()=>{let e=!!b?.service.get(YO);return{protocol:`mesurer.agent/v1`,contextSchema:`mesurer.context/v1`,capabilities:{context:e,select:e,annotations:e,review:e,capturePlan:e,arrange:!!b?.service.get(CO),textEdit:!!b?.service.get(gO)}}},context:F,contextText:I,select:R,annotations:z,review:B,capturePlan:V,prepareCapture:H,finishCapture:U,arrangements:ee,arrange:W,showArrange:te,arrangeCapturePlan:ne,reviewArrange:re}),se={...f,version:yO,plugins:cA(l),excludePlugins:u?u.map(e=>lA[e]):[...d??[]]},ce=ko(()=>ho(bw,Za(se,{portalTarget:y,pageTarget:t,onPluginHost:e=>{T||(T=!0,x(e)),b=e,s?.(e)},onPluginsReady:e=>{b=e,E||(E=!0,C(e)),c?.(e)}})),v),le,ue=new Promise((e,t)=>{le=t});ue.catch(()=>void 0);let de=Promise.race([(async()=>(await oe.ready(),k()))(),ue]);de.catch(()=>void 0);let fe=null;if(A){let e=A.globalName??`__MESURER__`,t=Object.getOwnPropertyDescriptor(m,e);Reflect.set(m,e,oe),fe=()=>{Object.getOwnPropertyDescriptor(m,e)?.value===oe&&(t?Object.defineProperty(m,e,t):Reflect.deleteProperty(m,e))}}let pe=!1,me=()=>void 0,he=e=>{T||S(e),E||w(e),le(e)},ge={element:h,root:_,hostLayer:g.mode,get pluginHost(){return b},ready:de,agent:oe,service:M,context:F,contextText:I,copyContext:L,select:R,annotations:z,review:B,capturePlan:V,prepareCapture:H,finishCapture:U,arrangements:ee,arrange:W,showArrange:te,arrangeCapturePlan:ne,reviewArrange:re,textEdits:ie,textEdit:ae,bringToFront:g.bringToFront,describe:async()=>(await de).describe(),dispose(){pe||(pe=!0,me(),he(new DOMException(`Mesurer was disposed before it became ready.`,`AbortError`)),fe?.(),ce(),g.dispose(),h.remove())}};if(o){let e=()=>{if(pe)return;let e=o.reason??new DOMException(`Mesurer mount aborted.`,`AbortError`);he(e),ge.dispose()};o.addEventListener(`abort`,e,{once:!0}),me=()=>{o.removeEventListener(`abort`,e)}}return ge}var dA=globalThis.__MESURER_CONFIG__??{},fA=(()=>{try{return!!window.frameElement?.hasAttribute(`data-mesurer-responsive-frame`)}catch{return!1}})(),{target:pA,globalName:mA=`__MESURER__`,reuseExisting:hA=!0,recoverDisconnected:gA=!1,..._A}=dA,vA=globalThis.__MESURER_INSTANCE__,yA=!fA&&hA&&vA?.element.isConnected?vA:void 0,bA=()=>{let e=pA?document.querySelector(pA):document.body;if(!e)throw Error(`Mesurer injection target not found: ${pA}`);return fA||globalThis.__MESURER_INSTANCE__?.dispose(),uA({..._A,target:e,agent:{globalName:mA,root:document}})},xA=e=>{globalThis.__MESURER_INJECT_RECOVERY__?.stop();let t=!1,n=!1,r=()=>{if(n=!1,t||globalThis.__MESURER_INSTANCE__?.element.isConnected)return;let r=e();globalThis.__MESURER_INSTANCE__=r,r.ready.catch(e=>{queueMicrotask(()=>{throw e})})},i=new MutationObserver(()=>{t||n||globalThis.__MESURER_INSTANCE__?.element.isConnected||(n=!0,queueMicrotask(r))});i.observe(document,{childList:!0,subtree:!0}),globalThis.__MESURER_INJECT_RECOVERY__={stop(){t=!0,i.disconnect()}}},SA=yA??bA();fA||(globalThis.__MESURER_INSTANCE__=SA),fA||globalThis.__MESURER_INJECT_RECOVERY__?.stop(),fA||(globalThis.__MESURER_INJECT_RECOVERY__=void 0),gA&&!fA&&xA(bA),fA||SA.ready.catch(e=>{queueMicrotask(()=>{throw e})})})(__MESURER_MEDIABUNNY__);
|