mesurer-solid 0.2.2-beta.6 → 0.2.2-beta.7

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.
@@ -2043,7 +2043,37 @@ body.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesur
2043
2043
  body:has([data-mesurer-text-editor="true"]) > [data-mesurer-arrange-native-stroke="true"] {
2044
2044
  display: none !important;
2045
2045
  }
2046
- `,n.head.append(m);let h=()=>{for(let e of p.values())e.remove();p.clear()},g=e=>{let t=n.body;if(!t||!e.length||!r.CSS?.supports(`left: anchor(left)`))return h(),!1;let i=Array.from(t.children).filter(e=>e instanceof c.HTMLElement&&e.dataset.mesurerSelectedMeasurement===`true`&&e.dataset.mesurerSelectionGroup!==`true`).flatMap(t=>{let r=t.querySelector(`[data-mesurer-measurement-chrome='true']`),i=r?.style.getPropertyValue(`position-anchor`).trim();return!r||r.dataset.mesurerNativeScrollAnchor!==`box`||!i?[]:e.find(e=>e.getRootNode()===n&&e.style.getPropertyValue(`anchor-name`).split(`,`).some(e=>e.trim()===i))?[{chrome:r,anchor:i}]:[]});if(i.length!==e.length)return h(),!1;let a=new Set(i.map(({chrome:e})=>e));for(let[e,t]of p)a.has(e)||(t.remove(),p.delete(e));for(let{chrome:e,anchor:r}of i){let i=p.get(e);i||(i=n.createElement(`div`),i.dataset.mesurerArrangeNativeStroke=`true`,i.dataset.mesurerInspectorUi=`true`,i.style.cssText=`position:absolute!important;left:anchor(left)!important;top:anchor(top)!important;width:anchor-size(width)!important;height:anchor-size(height)!important;box-sizing:border-box;border:1px solid #0d99ff;pointer-events:none;z-index:2147482801;transition:none;animation:none;`,p.set(e,i),t.append(i)),i.style.getPropertyValue(`position-anchor`)!==r&&i.style.setProperty(`position-anchor`,r,`important`)}return!0},_=new Map,v=new Map,y=new Map,b=new Map,x=new Map,S={intentId:null,state:`desired`},C=null,w=null,T=null,E=!1,D=0,O=null,k=()=>e.state.get(`mesurer.arrange.intents`)??{intents:[]},A=()=>e.state.get(`mesurer.arrange.active`)??!1,j=()=>{let t=e.state.get(mh);return{snapping:t?.snapping??!0,elementEdges:t?.elementEdges??!0,elementCenters:t?.elementCenters??!0,guides:t?.guides??!0,preferXrayEdges:t?.preferXrayEdges??!0,snapLines:t?.snapLines??!0}},M=t=>{e.state.update(mh,e=>({...e,...t}))},N=()=>Uh(r),P=()=>k().intents.filter(e=>e.pageUrl===N()),F=e=>!!e.closest(`[data-mesurer-island='true'], [data-mesurer-inspector-ui='true'], [data-mesurer-root='true']`),I=e=>Al(e,o)&&!F(e),L=e=>{let t=[];o instanceof c.HTMLElement&&o.matches(e)&&!F(o)&&t.push(o);for(let n of o.querySelectorAll(e))n instanceof c.HTMLElement&&I(n)&&t.push(n);return t},R=(e,t)=>e.localName!==t.fingerprintTag||t.fingerprintId&&e.id!==t.fingerprintId||t.fingerprintTestId&&e.getAttribute(`data-testid`)!==t.fingerprintTestId||t.fingerprintRole&&e.getAttribute(`role`)!==t.fingerprintRole||t.fingerprintAriaLabel&&e.getAttribute(`aria-label`)!==t.fingerprintAriaLabel?!1:t.fingerprintClasses.every(t=>e.classList.contains(t)),z=e=>{let t=Gh(e),n=v.get(e.selector);if(n&&n.isConnected&&I(n)&&R(n,e))return n;if(n&&v.delete(e.selector),!Pl(t))return null;let r=[];try{r=L(e.selector).filter(e=>Fl(e,t))}catch{return null}if(r.length!==1)return null;if(!t.id&&!t.testId){let e=[];try{e=L(t.tag).filter(e=>Fl(e,t))}catch{return null}if(e.length!==1||e[0]!==r[0])return null}return r[0]??null},B={value:`none`,priority:`important`},V=e=>{let t=Jh(e,`transition-property`);(!y.get(e)||!Xh(t,B))&&y.set(e,t),Xh(t,B)||e.style.setProperty(`transition-property`,B.value,B.priority)},ee=e=>{let t=y.get(e);t&&(Xh(Jh(e,`transition-property`),B)&&(t.value||t.priority?e.style.setProperty(`transition-property`,t.value,t.priority):e.style.removeProperty(`transition-property`)),y.delete(e))},H=e=>{for(let t of y.keys())e.has(t)||ee(t)},te=()=>{for(let e of y.keys())ee(e)},U=()=>{for(let e of _.values())Qh(e);_.clear()},W=()=>{U(),te()},ne=()=>{u.style.display=`none`,d.style.display=`none`},re=(e,t,n)=>{if(ne(),j().snapLines){if(e){let t=Math.min(n.top,e.start),r=Math.max(n.top+n.height,e.end);u.style.display=`block`,u.style.left=`${e.position}px`,u.style.top=`${t}px`,u.style.height=`${Math.max(1,r-t)}px`}if(t){let e=Math.min(n.left,t.start),r=Math.max(n.left+n.width,t.end);d.style.display=`block`,d.style.left=`${e}px`,d.style.top=`${t.position}px`,d.style.width=`${Math.max(1,r-e)}px`}}},ie=()=>!!(n.querySelector(Nh)||s.querySelector(Nh)),G=()=>{for(let[e,t]of b)t.value||t.priority?e.style.setProperty(`visibility`,t.value,t.priority):e.style.removeProperty(`visibility`);b.clear()},ae=()=>{if(ie()){G();return}if(!(b.size>0))for(let e of s.querySelectorAll(`[data-mesurer-measurement='true']`))e instanceof c.HTMLElement&&(e.matches(`[data-mesurer-selected-measurement='true'][data-mesurer-inspector-ui='true']`)&&e.getRootNode()===n&&e.parentElement===n.body||(b.set(e,{value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)}),e.style.setProperty(`visibility`,`hidden`,`important`)))},oe=e=>{if(e.parentElement instanceof c.HTMLElement)return e.parentElement;let t=e.getRootNode();return t instanceof c.ShadowRoot&&t.host instanceof c.HTMLElement?t.host:null},se=(e,t)=>{let n=oe(e);for(;n;){let e=t.get(n);if(e)return e;n=oe(n)}return{x:0,y:0}},ce=(e=P())=>{let t=new Map;for(let n of e)for(let e of n.targets){let n=z(e);n&&t.set(n,e)}return t},le=e=>e.offsetSpace!==`local`||e.desiredLocalOffsetX===null||e.desiredLocalOffsetY===null?null:{x:e.desiredLocalOffsetX,y:e.desiredLocalOffsetY},ue=(e,t)=>{let n=oe(e);for(;n;){if(t.has(n))return n;n=oe(n)}return null},de=(e=P(),t=new Map)=>{let n=ce(e),r=new Set([...n.keys(),...t.keys()]),i=new Map,a=new Set,o=e=>{let s=i.get(e);if(s)return s;let c=n.get(e),l=t.get(e)??(c?le(c):null);if(!l&&c){let t={x:c.desiredOffsetX,y:c.desiredOffsetY};return i.set(e,t),t}if(!l)return{x:0,y:0};if(a.has(e))return l;a.add(e);let u=ue(e,r),d=u?o(u):{x:0,y:0},f={x:d.x+l.x,y:d.y+l.y};return a.delete(e),i.set(e,f),f};for(let e of r)o(e);return i},fe=()=>{if(S.state===`live`)return new Map;if(!S.intentId)return de();let e=k().intents.find(e=>e.id===S.intentId);if(!e)return de();let t=new Map;for(let n of e.targets){let e=z(n);e&&t.set(e,S.state===`before`?{x:n.beforeOffsetX,y:n.beforeOffsetY}:{x:n.desiredOffsetX,y:n.desiredOffsetY})}return t},pe=e=>{let t=[...e].flatMap(([t,n])=>{if(!t.isConnected||!I(t))return[];let r=se(t,e),i={x:n.x-r.x,y:n.y-r.y};return i.x===0&&i.y===0?[]:[{element:t,offset:i}]}),n=new Set(t.map(({element:e})=>e));for(let{element:e}of t)V(e);U();for(let{element:e,offset:n}of t){let t=Yh(e),i=r.getComputedStyle(e).transform,a=i&&i!==`none`?` ${i}`:``;e.style.setProperty(`transform`,`translate3d(${n.x}px, ${n.y}px, 0)${a}`,`important`),_.set(e,{element:e,beforeTransform:t,appliedTransform:Yh(e)})}H(n)},me=()=>pe(fe()),he=e=>{U();try{return e()}finally{!E&&!C&&me()}},ge=()=>i.currentSelection().elements.filter(e=>e instanceof c.HTMLElement&&e.isConnected&&I(e));e.state.register({id:Sh,initial:ge().length>0});let _e=()=>e.state.get(Sh)??!1,ve=()=>{let t=ge().length>0;t!==_e()&&e.state.update(Sh,()=>t)},ye=()=>Lh(ge().map(e=>fl(e))),be=()=>{for(let e of x.values())e.remove();x.clear()},xe=e=>{let t=e.getBoundingClientRect(),n=t.right+kh;n+Oh>r.innerWidth-4&&(n=Math.max(4,t.left-Oh-kh));let i=Math.min(Math.max(4,t.top+Ah),Math.max(4,r.innerHeight-Oh-4));return{left:n,top:i}},Se=()=>{if(!A()||C){be();return}let t=P(),r=ce(t),i=de(t),a=new Set;for(let t of ge()){let o=r.get(t);if(!o)continue;let s=i.get(t);if(!s)continue;let c=se(t,i),u=le(o)??{x:s.x-c.x,y:s.y-c.y};if(Math.abs(u.x)<=jh&&Math.abs(u.y)<=jh)continue;a.add(t);let d=x.get(t);d||(d=n.createElement(`button`),d.type=`button`,d.dataset.mesurerArrangeReset=`true`,d.dataset.mesurerInspectorUi=`true`,d.setAttribute(`aria-label`,`Reset position`),d.title=`Reset position`,d.textContent=`↺`,d.className=`msr:pointer-events-auto msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border msr:border-ink-200 msr:bg-white msr:text-[14px] msr:leading-none msr:text-black msr:outline-none msr:hover:bg-ink-50 msr:focus-visible:border-[#0d99ff]`,d.style.position=`fixed`,d.addEventListener(`pointerdown`,e=>e.stopPropagation()),d.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),T=[t],e.command.execute(bh,void 0,{source:`arrange-reset-button`}).catch(()=>{T=null})}),x.set(t,d),l.append(d));let f=xe(t);d.style.left=`${f.left}px`,d.style.top=`${f.top}px`}for(let[e,t]of x)a.has(e)||(t.remove(),x.delete(e))},Ce=t=>{let n=new Set(t);n.size&&(e.state.update(`mesurer.arrange.intents`,e=>{let t=!1,r=e.intents.flatMap(e=>{if(e.pageUrl!==N())return[e];let r=e.targets.filter(e=>{let r=z(e),i=r!==null&&n.has(r);return i&&(t=!0),!i});return r.length?r.length===e.targets.length?[e]:[{...e,targets:r}]:[]});return t?{intents:r}:e}),De(),Ee())},we=()=>{e.state.update(fh,e=>{let t=e.intents.filter(e=>e.pageUrl!==N());return t.length===e.intents.length?e:{intents:t}}),De(),Ee()},Te=e=>{let t=j();if(!t.snapping)return[];let n=[],a=new Set(e),s=i.snapshot(),l=s.xrayVisible&&t.preferXrayEdges&&t.elementEdges,u=0,d=i=>{if(u>=Eh||a.has(i)||e.some(e=>e.contains(i))||!I(i))return;let o=r.getComputedStyle(i);if(o.display===`none`||o.visibility===`hidden`||o.visibility===`collapse`)return;let s=o.outlineStyle===`solid`&&(Number.parseFloat(o.outlineWidth)||0)>0;if(l&&!s)return;let c=fl(i);if(c.width<=0||c.height<=0)return;let d=Th;if(c.left+c.width<-160||c.top+c.height<-160||c.left>r.innerWidth+d||c.top>r.innerHeight+d)return;u+=1;let f=c.left+c.width,p=c.top+c.height;if(t.elementEdges){for(let e of[c.left,f])n.push({axis:`x`,position:e,start:c.top,end:p,source:`element`,kind:`edge`});for(let e of[c.top,p])n.push({axis:`y`,position:e,start:c.left,end:f,source:`element`,kind:`edge`})}t.elementCenters&&!l&&(n.push({axis:`x`,position:c.left+c.width/2,start:c.top,end:p,source:`element`,kind:`center`}),n.push({axis:`y`,position:c.top+c.height/2,start:c.left,end:f,source:`element`,kind:`center`}))};if(t.elementEdges||t.elementCenters){o instanceof c.HTMLElement&&d(o);for(let e of o.querySelectorAll(`*`)){if(u>=Eh)break;e instanceof c.HTMLElement&&d(e)}}if(t.guides)for(let e of s.guides)e.orientation===`vertical`?n.push({axis:`x`,position:e.position,start:0,end:r.innerHeight,source:`guide`,kind:`guide`}):n.push({axis:`y`,position:e.position,start:0,end:r.innerWidth,source:`guide`,kind:`guide`});return n},Ee=e=>{if(!A()){h(),f.style.display=`none`,be();return}let t=g(ge());if(ie()){for(let e of p.values())e.style.display=`none`;f.style.display=`none`,be();return}for(let e of p.values())e.style.removeProperty(`display`);f.style.borderColor=t?`transparent`:`#0d99ff`;let n=e===void 0?ye():e;if(!n){f.style.display=`none`,be();return}f.style.display=`block`,f.style.left=`${n.left}px`,f.style.top=`${n.top}px`,f.style.width=`${n.width}px`,f.style.height=`${n.height}px`,C?be():Se()},De=()=>{S={intentId:null,state:`desired`},me(),ne(),A()?ae():G()},Oe=()=>{S={intentId:null,state:`live`},W(),ne(),G()},ke=()=>{E||C||(me(),ne(),A()?ae():G(),Ee())},Ae=()=>{D||E||(D=r.requestAnimationFrame(()=>{D=0,ke()}))},je=async()=>{if(s.querySelector(`[data-mesurer-builtin='select'] button`)?.getAttribute(`aria-pressed`)===`true`)return;let t=i.currentSelection().elements;await e.command.execute(gh,void 0,{source:`arrange`});let n=new Set(i.currentSelection().elements);for(let e of t)n.has(e)||i.toggleSelection(e)},Me=e=>{if(!A()||e.button!==0)return;let r=ge();if(!r.length)return;let a=n.elementsFromPoint&&(!(o instanceof c.ShadowRoot)||o.elementsFromPoint)?jl(t.rendererRoot??null,()=>jl(l,()=>kl({x:e.clientX,y:e.clientY},o,n))):null,s=e.shiftKey?a:null;if(e.shiftKey&&s instanceof c.HTMLElement&&I(s)&&!r.includes(s)){e.preventDefault(),e.stopPropagation(),i.toggleSelection(s);return}e.preventDefault(),e.stopPropagation(),S={intentId:null,state:`desired`},me();let u=ce(P()),d=de(P()),p=new Set(r);U();let m=r.map((e,t)=>{let n=fl(e),r=se(e,d),i=d.get(e)??r,a=u.get(e),o=(a?le(a):null)??{x:i.x-r.x,y:i.y-r.y},s=Fh(n,i),c=Nl(e);return{element:e,movesDirectly:ue(e,p)===null,target:{id:`target-${t+1}`,selector:Ml(e),fingerprintTag:c.tag,fingerprintId:c.id,fingerprintTestId:c.testId,fingerprintRole:c.role,fingerprintAriaLabel:c.ariaLabel,fingerprintClasses:[...c.classes],fingerprintText:c.text,beforeLeft:s.left,beforeTop:s.top,beforeWidth:s.width,beforeHeight:s.height,desiredLeft:s.left,desiredTop:s.top,desiredWidth:s.width,desiredHeight:s.height,beforeOffsetX:i.x,beforeOffsetY:i.y,desiredOffsetX:i.x,desiredOffsetY:i.y,offsetSpace:`local`,beforeLocalOffsetX:o.x,beforeLocalOffsetY:o.y,desiredLocalOffsetX:o.x,desiredLocalOffsetY:o.y}}}),h=Lh(m.map(({target:e})=>({left:e.beforeLeft,top:e.beforeTop,width:e.beforeWidth,height:e.beforeHeight})));if(!h){me();return}me(),ae(),ne(),C={pointerId:e.pointerId,originX:e.clientX,originY:e.clientY,targets:m,groupBefore:h,snapCandidates:Te(r),pressTarget:a instanceof c.HTMLElement&&I(a)?a:null,shiftToggleElement:e.shiftKey&&s instanceof c.HTMLElement&&r.includes(s)?s:null,moved:!1,dx:0,dy:0},Ee(h),f.style.cursor=`grabbing`,f.setPointerCapture?.(e.pointerId)},Ne=(e,t,n)=>{let r=new Map;for(let i of e.targets){let e={x:i.target.beforeLocalOffsetX??0,y:i.target.beforeLocalOffsetY??0};r.set(i.element,i.movesDirectly?{x:e.x+t,y:e.y+n}:e)}return r},Pe=e=>{if(!C||e.pointerId!==C.pointerId)return;let t=e.clientX-C.originX,n=e.clientY-C.originY,r=null;if(!C.moved){if(Math.hypot(t,n)<Mh)return;C.moved=!0}e.shiftKey&&(Math.abs(t)>=Math.abs(n)?(n=0,r=`x`):(t=0,r=`y`));let i=Fh(C.groupBefore,{x:t,y:n}),a=r===`y`?null:Hh(`x`,i,C.snapCandidates),o=r===`x`?null:Hh(`y`,i,C.snapCandidates);t+=a?.delta??0,n+=o?.delta??0,C.dx=t,C.dy=n;let s=de(P(),Ne(C,t,n));pe(s);let c=Fh(C.groupBefore,{x:t,y:n});Ee(c),re(a,o,c)},Fe=()=>{if(!C)return;let e=C.pointerId;C=null,f.hasPointerCapture?.(e)&&f.releasePointerCapture(e),f.style.cursor=`grab`,De(),Ee()},Ie=t=>{if(!C||t.pointerId!==C.pointerId)return;t.preventDefault(),t.stopPropagation();let n=C;if(C=null,f.hasPointerCapture?.(t.pointerId)&&f.releasePointerCapture(t.pointerId),f.style.cursor=`grab`,ne(),!n.moved){if(n.shiftToggleElement)i.toggleSelection(n.shiftToggleElement);else if(n.pressTarget&&!n.targets.some(({element:e})=>e===n.pressTarget))try{i.select([Ml(n.pressTarget)])}catch{i.clearSelection(),i.toggleSelection(n.pressTarget)}De(),Ee();return}let a=de(P(),Ne(n,n.dx,n.dy));w={id:Wh(r,`arrange`),createdAt:Date.now(),pageUrl:N(),targets:n.targets.map(({element:e,movesDirectly:t,target:r})=>{let i={x:r.beforeLocalOffsetX??0,y:r.beforeLocalOffsetY??0},o=t?{x:i.x+n.dx,y:i.y+n.dy}:i,s=a.get(e)??{x:r.beforeOffsetX+n.dx,y:r.beforeOffsetY+n.dy};return{...r,desiredLeft:r.beforeLeft+n.dx,desiredTop:r.beforeTop+n.dy,desiredOffsetX:s.x,desiredOffsetY:s.y,desiredLocalOffsetX:o.x,desiredLocalOffsetY:o.y}})};for(let{element:e,target:t}of n.targets)v.set(t.selector,e);e.command.execute(vh).catch(()=>{w=null,De(),Ee()})},Le=e=>{!C||e.pointerId!==C.pointerId||Fe()},Re=e=>jl(l,()=>Cp({x:e.clientX,y:e.clientY},t.rendererRoot??null,n,o)),ze=e=>{if(!A())return;if(C||e.buttons!==0||ie()){i.clearHover();return}let n=e.composedPath();if(!n.includes(f)&&t.rendererRoot&&n.includes(t.rendererRoot))return;let r=Re(e);i.setHover(r instanceof c.HTMLElement&&I(r)?r:null)},Be=t=>{if(t.key!==`Escape`||!A()&&!C||$h(t.target)||s.querySelector(`[data-mesurer-tool-menu]`))return;if(t.preventDefault(),t.stopImmediatePropagation(),C){Fe();return}let n=i.currentSelection();if(n.elements.length>0||n.region){i.clearSelection(),Ee();return}e.state.update(ph,()=>!1),Oe(),Ee(),e.command.execute(gh,void 0,{source:`arrange-escape`}).catch(()=>void 0)};f.addEventListener(`pointerdown`,Me),f.addEventListener(`pointermove`,Pe),f.addEventListener(`pointerup`,Ie),f.addEventListener(`pointercancel`,Le),r.addEventListener(`pointermove`,ze,!0),r.addEventListener(`keydown`,Be,!0),r.addEventListener(`dblclick`,Ae,!0),r.addEventListener(`keyup`,Ae,!0),r.addEventListener(`pointerup`,Ae,!0),r.addEventListener(`resize`,Ae),r.addEventListener(`scroll`,Ae,!0),o.addEventListener(`scroll`,Ae,!0),O=new c.MutationObserver(()=>{ve(),Ae()}),O.observe(o,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`,`class`,`data-testid`,`role`,`aria-label`]});let Ve=i.subscribe(()=>{ve(),Ae()}),He=e.state.subscribe(Ae),Ue=e=>k().intents.find(t=>t.id===e)??null,We=(e,t)=>{let n=null;if(n=t===`before`?Lh(e.targets.map(e=>({left:e.beforeLeft,top:e.beforeTop,width:e.beforeWidth,height:e.beforeHeight}))):t===`desired`?Lh(e.targets.map(e=>({left:e.desiredLeft,top:e.desiredTop,width:e.desiredWidth,height:e.desiredHeight}))):he(()=>Lh(e.targets.map(e=>z(e)).filter(e=>e!==null).map(e=>fl(e)))),!n)throw Error(`Edit movement intent has no resolvable capture region: ${e.id}`);let i=Math.max(0,n.left-wh),a=Math.max(0,n.top-wh),o=Math.min(r.innerWidth,n.left+n.width+wh),s=Math.min(r.innerHeight,n.top+n.height+wh);return{left:i,top:a,width:Math.max(0,o-i),height:Math.max(0,s-a)}},Ge={active:A,intents:()=>k().intents.map(qh),intent(e){let t=Ue(e);return t?qh(t):null},show(e,t){if(!Ue(e))throw Error(`Edit intent not found: ${e}`);S={intentId:e,state:t},ke()},showCurrent(){S={intentId:null,state:`desired`},ke()},capturePlan(e,t){let n=Ue(e);if(!n)throw Error(`Edit intent not found: ${e}`);return{schema:`mesurer.arrange-capture/v1`,arrangeId:e,state:t,chrome:`hide`,captures:[{id:`viewport`,kind:`viewport`},{id:`focus`,kind:`clip`,rect:We(n,t)}]}},review:(e,t=Ch)=>{let n=Ue(e);if(!n)throw Error(`Edit movement intent not found: ${e}`);let r=he(()=>n.targets.map(e=>{let n=z(e),r={left:e.desiredLeft,top:e.desiredTop,width:e.desiredWidth,height:e.desiredHeight};if(!n)return{targetId:e.id,selector:e.selector,desired:r,current:null,delta:null,matched:!1};let i=fl(n),a=Ih(i,r),o=Math.abs(a.left)<=t&&Math.abs(a.top)<=t&&Math.abs(a.width)<=t&&Math.abs(a.height)<=t;return{targetId:e.id,selector:e.selector,desired:r,current:i,delta:a,matched:o}})),i=r.filter(e=>e.current!==null).length,a=i===0?`stale`:i===r.length?`connected`:`partial`;return{schema:`mesurer.arrange-review/v1`,arrangeId:n.id,targetStatus:a,tolerance:t,matched:r.length>0&&r.every(e=>e.matched),targets:r}},resetSelection:async()=>{await e.command.execute(bh)},resetAll:async()=>{await e.command.execute(xh)},clear:async()=>{await e.command.execute(yh)}};e.tool.register({id:`arrange`,label:`Edit`,shortcut:`Shift+A`,order:65,command:_h,toolbarMode:`edit`,modeSwitch:!0,icon:Ph,active:A,menu:{label:`Edit options`,items:[{id:`snapping`,label:`Snapping`,checked:()=>j().snapping,run:()=>M({snapping:!j().snapping})},{id:`element-edges`,label:`Element edges`,checked:()=>j().elementEdges,disabled:()=>!j().snapping,run:()=>M({elementEdges:!j().elementEdges})},{id:`element-centers`,label:`Element centers`,checked:()=>j().elementCenters,disabled:()=>!j().snapping,run:()=>M({elementCenters:!j().elementCenters})},{id:`guides`,label:`Guides`,checked:()=>j().guides,disabled:()=>!j().snapping,run:()=>M({guides:!j().guides})},{id:`prefer-xray-edges`,label:`Prefer X-ray edges`,checked:()=>j().preferXrayEdges,disabled:()=>!j().snapping||!j().elementEdges,run:()=>M({preferXrayEdges:!j().preferXrayEdges})},{id:`alignment-rulers`,label:`Alignment rulers`,checked:()=>j().snapLines,disabled:()=>!j().snapping,run:()=>M({snapLines:!j().snapLines})},{id:`reset-all-positions`,label:`Reset all positions`,disabled:()=>P().length===0,run:async()=>{await e.command.execute(xh,void 0,{source:`arrange-menu`})}}]}}),e.settings.register({id:`arrange`,label:`Edit`,order:35,controls:[{type:`toggle`,id:`snapping`,label:`Snapping`,description:`Magnetically align dragged selections to nearby layout anchors.`,value:()=>j().snapping,set:e=>M({snapping:e})},{type:`toggle`,id:`element-edges`,label:`Element edges`,description:`Snap left/right and top/bottom edges to nearby elements.`,value:()=>j().elementEdges,set:e=>M({elementEdges:e}),disabled:()=>!j().snapping},{type:`toggle`,id:`element-centers`,label:`Element centers`,description:`Snap center-to-center when X-ray edge preference is not active.`,value:()=>j().elementCenters,set:e=>M({elementCenters:e}),disabled:()=>!j().snapping},{type:`toggle`,id:`guides`,label:`Guides`,description:`Snap to existing Mesurer guides.`,value:()=>j().guides,set:e=>M({guides:e}),disabled:()=>!j().snapping},{type:`toggle`,id:`prefer-xray-edges`,label:`Prefer X-ray edges`,description:`When X-ray is on, use its visible blue box edges as element snap targets.`,value:()=>j().preferXrayEdges,set:e=>M({preferXrayEdges:e}),disabled:()=>!j().snapping||!j().elementEdges},{type:`toggle`,id:`alignment-rulers`,label:`Alignment rulers`,description:`Show the red alignment ruler while a snap is active.`,value:()=>j().snapLines,set:e=>M({snapLines:e}),disabled:()=>!j().snapping}]}),e.command.register(_h,async()=>{let t=!A();if(t&&await je(),e.state.update(`mesurer.arrange.active`,()=>t),!t){C&&Fe(),Oe(),Ee();return}De(),Ee()}),e.command.register(vh,()=>{let t=w;w=null,t&&(e.state.update(`mesurer.arrange.intents`,e=>({intents:[...e.intents,t].slice(-100)})),De(),Ee())}),e.command.register(bh,()=>{let e=T??ge();T=null,Ce(e)}),e.command.register(xh,we),e.command.register(yh,()=>{e.state.update(fh,()=>({intents:[]})),S={intentId:null,state:`desired`},W(),ne(),A()?ae():G(),Ee()}),e.service.provide(dh,Ge),me(),Ee(),e.lifecycle.onDispose(()=>{E=!0,D&&r.cancelAnimationFrame(D),O?.disconnect(),O=null,f.removeEventListener(`pointerdown`,Me),f.removeEventListener(`pointermove`,Pe),f.removeEventListener(`pointerup`,Ie),f.removeEventListener(`pointercancel`,Le),r.removeEventListener(`pointermove`,ze,!0),r.removeEventListener(`keydown`,Be,!0),r.removeEventListener(`dblclick`,Ae,!0),r.removeEventListener(`keyup`,Ae,!0),r.removeEventListener(`pointerup`,Ae,!0),r.removeEventListener(`resize`,Ae),r.removeEventListener(`scroll`,Ae,!0),o.removeEventListener(`scroll`,Ae,!0),Ve(),He.dispose(),W(),be(),ne(),G(),h(),m.remove(),i.dispose(),a.dispose()})}}),tg=(e,t,n)=>{let r=!1,i=0,a=null,o=null,s=()=>({visible:(e.state.get(`mesurer.arrange.active`)??!1)||sh(e).keepArrangeChanges,intents:e.state.get(`mesurer.arrange.intents`)?.intents??[]}),c=(e,t)=>e?.visible===t.visible&&e.intents===t.intents,l=e=>{if(a=e,e.visible){t.showCurrent();return}let n=e.intents.at(-1);n&&t.show(n.id,`live`)},u=()=>{if(i=0,r||!o)return;let e=o;o=null,c(a,e)||l(e)},d=e.state.subscribe(()=>{if(r)return;let e=s();c(o??a,e)||(o=e,i||=n.requestAnimationFrame(u))});l(s()),e.lifecycle.onDispose(()=>{r=!0,i&&n.cancelAnimationFrame(i),i=0,o=null,d.dispose()})},ng=[`[data-mesurer-measurement='true']`,`[data-mesurer-selected-measurement='true']`,`[data-mesurer-inspector-ui='true']`].join(``),rg=`[data-mesurer-text-edit-runtime='true']`,ig=`[data-mesurer-text-editor='true']`,ag=(e,t)=>{let n=t.ownerDocument.body;if(!n)return;let r=t.ownerWindow,i=new Map,a=e.state.get(`mesurer.arrange.active`)??!1,o=[],s=null,c=e=>e.matches(ng)&&e.getRootNode()===t.ownerDocument&&e.parentElement===n,l=()=>{for(let[e,t]of i)e.isConnected&&(t.value||t.priority?e.style.setProperty(`visibility`,t.value,t.priority):e.style.removeProperty(`visibility`));i.clear()},u=()=>o.some(e=>e.isConnected&&!!e.querySelector(ig)),d=e=>{!a||u()||!c(e)||(i.has(e)||i.set(e,{value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)}),(e.style.getPropertyValue(`visibility`)!==`hidden`||e.style.getPropertyPriority(`visibility`)!==`important`)&&e.style.setProperty(`visibility`,`hidden`,`important`))},f=()=>{if(!(!a||u()))for(let e of n.querySelectorAll(ng))e instanceof r.HTMLElement&&d(e)},p=()=>{!a||u()?l():f()},m=()=>{let e=Array.from(n.querySelectorAll(rg));if(!(e.length===o.length&&e.every((e,t)=>e===o[t]))){if(s?.disconnect(),s=null,o=e,e.length>0){s=new r.MutationObserver(p);for(let t of e)s.observe(t,{childList:!0,subtree:!0})}p()}};m();let h=new r.MutationObserver(e=>{let t=!1;for(let n of e){for(let e of n.addedNodes)e instanceof r.HTMLElement&&(e.matches(rg)&&(t=!0),d(e));for(let e of n.removedNodes)e instanceof r.HTMLElement&&e.matches(rg)&&(t=!0)}t&&m()});h.observe(n,{childList:!0});let g=e.state.subscribe(()=>{let t=e.state.get(`mesurer.arrange.active`)??!1;t!==a&&(a=t,p())});p(),e.lifecycle.onDispose(()=>{h.disconnect(),s?.disconnect(),s=null,o=[],g.dispose(),l()})},og=()=>{let e=eg();return{...e,async setup(t){await e.setup(t);let n=t.service.get(dh);if(!n)throw Error(`Edit movement presentation policy requires the movement service.`);let r=t.service.get(`runtime:solid`);if(!r)throw Error(`Edit movement presentation policy requires the Solid renderer runtime.`);tg(t,n,r.ownerWindow),ag(t,r)}}},sg=(e,t,n,r)=>ya({id:`mesurer.${e}`,version:`0.1.0`,provides:[`tool:${e}`],setup(i){i.tool.register({id:e,builtin:e,label:t,shortcut:n,order:r,command:`builtin.${e}`})}}),cg=()=>sg(`select`,`Select`,`S`,10),lg=()=>sg(`xray`,`X-ray`,`X`,20),ug=()=>sg(`color-picker`,`Color picker`,`P`,30),dg=()=>sg(`rulers`,`Rulers`,`R`,40),fg=()=>sg(`text-inspector`,`Typography`,`A`,50),pg=()=>sg(`guides`,`Guides`,`G`,60),mg=()=>sg(`settings`,`Settings`,`⌘/Ctrl+,`,90),hg=()=>ya({id:`mesurer.distance`,version:`0.1.0`,provides:[`overlay:distance`,`settings:selection-spacing`],setup(e){e.overlay.register({id:`distance`,builtin:`distance`,order:30}),e.settings.register({id:`selection-spacing`,label:`Selection spacing`,builtin:`distance`,order:30})}}),gg=()=>[cg(),lg(),ug(),dg(),fg(),pg(),hg(),mg()];function _g(e=[],t=[]){let n=new Set(t.map(e=>`mesurer.${e}`));return[...gg().filter(e=>!n.has(e.id)),...e]}var vg=`arrange.toggle`,yg=`builtin.select`;function bg(e,t){let n=t.createWorkspaceRuntime(),r=!1,i=0,a=!1,o=e.state.get(`mesurer.arrange.active`)??!1,s=t.currentToolMode?.(),c=!1,l=!1,u=()=>{r||i||(i=t.ownerWindow.requestAnimationFrame(()=>{if(i=0,r||a)return;let n=t.currentToolMode?.(),o=e.state.get(`mesurer.arrange.active`)??!1;if(n===void 0||!o){c=!1,l=!1;return}if(n===`select`||n===`guides`){c=!1,l=!1;return}a=!0;let s=l?vg:c?yg:vg,d=s===yg?`arrange-requires-select`:`select-deactivated`;c=!1,l=!1,e.command.execute(s,void 0,{source:d}).catch(()=>void 0).finally(()=>{a=!1,u()})}))},d=()=>{let e=t.currentToolMode?.();(s===`select`||s===`guides`)&&e!==void 0&&e!==`select`&&e!==`guides`&&(l=!0),s=e,u()},f=()=>{let t=e.state.get(`mesurer.arrange.active`)??!1;t&&!o&&(c=!0),o=t,u()},p=n.subscribe(d),m=e.state.subscribe(f);u(),e.lifecycle.onDispose(()=>{r=!0,i&&t.ownerWindow.cancelAnimationFrame(i),i=0,m.dispose(),p(),n.dispose()})}var xg=80,Sg=8,Cg=8,wg=0,Tg=e=>({left:e.left,top:e.top,right:e.right,bottom:e.bottom,width:e.width,height:e.height}),Eg=e=>{let t=Number.parseFloat(e.style.left)||0,n=Number.parseFloat(e.style.top)||0,r=Number.parseFloat(e.style.width)||e.getBoundingClientRect().width,i=Number.parseFloat(e.style.height)||e.getBoundingClientRect().height;return{left:t,top:n,right:t+r,bottom:n+i,width:r,height:i}},Dg=(e,t,n,r)=>{let i=Eg(e);return t.parentNode===n.body?{...i,left:i.left-r.scrollX,right:i.right-r.scrollX,top:i.top-r.scrollY,bottom:i.bottom-r.scrollY}:i},Og=(e,t,n=5)=>Math.abs(e.left-t.left)<=n&&Math.abs(e.top-t.top)<=n&&Math.abs(e.width-t.width)<=n&&Math.abs(e.height-t.height)<=n,kg=e=>e.width>0&&e.height>0&&e.right>0&&e.bottom>0,Ag=e=>!!(e.CSS?.supports(`anchor-name: --mesurer-native-anchor`)&&e.CSS.supports(`position-anchor: --mesurer-native-anchor`)&&e.CSS.supports(`left: anchor(left)`)&&e.CSS.supports(`width: anchor-size(width)`)),jg=(e,t,n)=>{(e.style.getPropertyValue(t)!==n||e.style.getPropertyPriority(t)!==`important`)&&e.style.setProperty(t,n,`important`)},Mg=e=>{e&&(delete e.dataset.mesurerNativeScrollAnchor,delete e.dataset.mesurerNativeScrollOwner,e.style.removeProperty(`position-anchor`),e.style.removeProperty(`--mesurer-native-anchor-x`),e.style.removeProperty(`--mesurer-native-anchor-y`))},Ng=(e,t,n)=>{let r=[],i=e;for(;i instanceof n.HTMLElement&&(r.push(i),i!==t);)i=i.parentElement;return r},Pg=(e,t,n,r)=>{if(!kg(e))return null;let i=Math.min(Math.max(e.left+e.width/2,0),Math.max(0,n.innerWidth-1)),a=Math.min(Math.max(e.top+e.height/2,0),Math.max(0,n.innerHeight-1)),o=new Set;for(let s of t.elementsFromPoint(i,a))for(let t of Ng(s,r,n))if(!(o.has(t)||(o.add(t),t!==r&&!r.contains(t))||t.closest(`[data-mesurer-root='true'], [data-mesurer-inspector-ui='true']`))&&Og(Tg(t.getBoundingClientRect()),e))return t;return null},Fg=(e,t)=>t.map(t=>({property:t,value:e.style.getPropertyValue(t),priority:e.style.getPropertyPriority(t)})),Ig=(e,t)=>{for(let{property:n,value:r,priority:i}of t)r?e.style.setProperty(n,r,i):e.style.removeProperty(n)},Lg=(e,t,n=`none`)=>{let r=e.body,i=t.parentNode,a=i&&i!==r?e.createComment(`mesurer-document-scroll-layer`):null;a&&i&&i.insertBefore(a,t),t.parentNode!==r&&r.append(t);let o=Fg(t,n===`selection-root`?[`display`,`position`,`left`,`top`,`width`,`height`]:n===`runtime`||n===`inspector-overlay`?[`display`,`position`,`inset`,`width`,`height`]:[]);n===`selection-root`?(jg(t,`display`,`block`),jg(t,`position`,`absolute`),jg(t,`left`,`0px`),jg(t,`top`,`0px`),jg(t,`width`,`100vw`),jg(t,`height`,`0px`)):(n===`runtime`||n===`inspector-overlay`)&&(jg(t,`display`,`block`),jg(t,`position`,`static`),jg(t,`inset`,`auto`),jg(t,`width`,`0px`),jg(t,`height`,`0px`));let s=!1;return{element:t,release(){s||(s=!0,Ig(t,o),a?.parentNode&&(t.isConnected&&a.parentNode.insertBefore(t,a),a.remove()))}}};function Rg(e,t){let{ownerDocument:n,ownerWindow:r,pageTarget:i,portalTarget:a}=t,o=r;if(!Ag(o)||a instanceof o.ShadowRoot||i instanceof o.ShadowRoot||a.getRootNode()!==n||i.getRootNode()!==n||!n.body)return;let s=ms(n),c=t.createWorkspaceRuntime(),l=new Map,u=new Map,d=new Map,f=new Map,p=new Map,m=null,h=null,g=!1,_=!1,v=0,y=0,b=!1,x=0,S=a.querySelectorAll(`[data-mesurer-text-edit-runtime='true']`),C=S.item(S.length-1),w=C?.isConnected?Lg(n,C,`runtime`):null;C&&(C.dataset.mesurerNativeScrollRuntimeLayer=`true`);let T=n.createElement(`style`);T.dataset.mesurerNativeScrollAnchoring=`true`,T.dataset.mesurerInspectorUi=`true`,T.textContent=`
2046
+ `,n.head.append(m);let h=()=>{for(let e of p.values())e.remove();p.clear()},g=e=>{let t=n.body;if(!t||!e.length||!r.CSS?.supports(`left: anchor(left)`))return h(),!1;let i=Array.from(t.children).filter(e=>e instanceof c.HTMLElement&&e.dataset.mesurerSelectedMeasurement===`true`&&e.dataset.mesurerSelectionGroup!==`true`).flatMap(t=>{let r=t.querySelector(`[data-mesurer-measurement-chrome='true']`),i=r?.style.getPropertyValue(`position-anchor`).trim();return!r||r.dataset.mesurerNativeScrollAnchor!==`box`||!i?[]:e.find(e=>e.getRootNode()===n&&e.style.getPropertyValue(`anchor-name`).split(`,`).some(e=>e.trim()===i))?[{chrome:r,anchor:i}]:[]});if(i.length!==e.length)return h(),!1;let a=new Set(i.map(({chrome:e})=>e));for(let[e,t]of p)a.has(e)||(t.remove(),p.delete(e));for(let{chrome:e,anchor:r}of i){let i=p.get(e);i||(i=n.createElement(`div`),i.dataset.mesurerArrangeNativeStroke=`true`,i.dataset.mesurerInspectorUi=`true`,i.style.cssText=`position:absolute!important;left:anchor(left)!important;top:anchor(top)!important;width:anchor-size(width)!important;height:anchor-size(height)!important;box-sizing:border-box;border:1px solid #0d99ff;pointer-events:none;z-index:2147482801;transition:none;animation:none;`,p.set(e,i),t.append(i)),i.style.getPropertyValue(`position-anchor`)!==r&&i.style.setProperty(`position-anchor`,r,`important`)}return!0},_=new Map,v=new Map,y=new Map,b=new Map,x=new Map,S={intentId:null,state:`desired`},C=null,w=null,T=null,E=!1,D=0,O=null,k=()=>e.state.get(`mesurer.arrange.intents`)??{intents:[]},A=()=>e.state.get(`mesurer.arrange.active`)??!1,j=()=>{let t=e.state.get(mh);return{snapping:t?.snapping??!0,elementEdges:t?.elementEdges??!0,elementCenters:t?.elementCenters??!0,guides:t?.guides??!0,preferXrayEdges:t?.preferXrayEdges??!0,snapLines:t?.snapLines??!0}},M=t=>{e.state.update(mh,e=>({...e,...t}))},N=()=>Uh(r),P=()=>k().intents.filter(e=>e.pageUrl===N()),F=e=>!!e.closest(`[data-mesurer-island='true'], [data-mesurer-inspector-ui='true'], [data-mesurer-root='true']`),I=e=>Al(e,o)&&!F(e),L=e=>{let t=[];o instanceof c.HTMLElement&&o.matches(e)&&!F(o)&&t.push(o);for(let n of o.querySelectorAll(e))n instanceof c.HTMLElement&&I(n)&&t.push(n);return t},R=(e,t)=>e.localName!==t.fingerprintTag||t.fingerprintId&&e.id!==t.fingerprintId||t.fingerprintTestId&&e.getAttribute(`data-testid`)!==t.fingerprintTestId||t.fingerprintRole&&e.getAttribute(`role`)!==t.fingerprintRole||t.fingerprintAriaLabel&&e.getAttribute(`aria-label`)!==t.fingerprintAriaLabel?!1:t.fingerprintClasses.every(t=>e.classList.contains(t)),z=e=>{let t=Gh(e),n=v.get(e.selector);if(n&&n.isConnected&&I(n)&&R(n,e))return n;if(n&&v.delete(e.selector),!Pl(t))return null;let r=[];try{r=L(e.selector).filter(e=>Fl(e,t))}catch{return null}if(r.length!==1)return null;if(!t.id&&!t.testId){let e=[];try{e=L(t.tag).filter(e=>Fl(e,t))}catch{return null}if(e.length!==1||e[0]!==r[0])return null}return r[0]??null},B={value:`none`,priority:`important`},V=e=>{let t=Jh(e,`transition-property`);(!y.get(e)||!Xh(t,B))&&y.set(e,t),Xh(t,B)||e.style.setProperty(`transition-property`,B.value,B.priority)},ee=e=>{let t=y.get(e);t&&(Xh(Jh(e,`transition-property`),B)&&(t.value||t.priority?e.style.setProperty(`transition-property`,t.value,t.priority):e.style.removeProperty(`transition-property`)),y.delete(e))},H=e=>{for(let t of y.keys())e.has(t)||ee(t)},te=()=>{for(let e of y.keys())ee(e)},U=()=>{for(let e of _.values())Qh(e);_.clear()},W=()=>{U(),te()},ne=()=>{u.style.display=`none`,d.style.display=`none`},re=(e,t,n)=>{if(ne(),j().snapLines){if(e){let t=Math.min(n.top,e.start),r=Math.max(n.top+n.height,e.end);u.style.display=`block`,u.style.left=`${e.position}px`,u.style.top=`${t}px`,u.style.height=`${Math.max(1,r-t)}px`}if(t){let e=Math.min(n.left,t.start),r=Math.max(n.left+n.width,t.end);d.style.display=`block`,d.style.left=`${e}px`,d.style.top=`${t.position}px`,d.style.width=`${Math.max(1,r-e)}px`}}},ie=()=>!!(n.querySelector(Nh)||s.querySelector(Nh)),G=()=>{for(let[e,t]of b)t.value||t.priority?e.style.setProperty(`visibility`,t.value,t.priority):e.style.removeProperty(`visibility`);b.clear()},ae=()=>{if(ie()){G();return}if(!(b.size>0))for(let e of s.querySelectorAll(`[data-mesurer-measurement='true']`))e instanceof c.HTMLElement&&(e.matches(`[data-mesurer-selected-measurement='true'][data-mesurer-inspector-ui='true']`)&&e.getRootNode()===n&&e.parentElement===n.body||(b.set(e,{value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)}),e.style.setProperty(`visibility`,`hidden`,`important`)))},oe=e=>{if(e.parentElement instanceof c.HTMLElement)return e.parentElement;let t=e.getRootNode();return t instanceof c.ShadowRoot&&t.host instanceof c.HTMLElement?t.host:null},se=(e,t)=>{let n=oe(e);for(;n;){let e=t.get(n);if(e)return e;n=oe(n)}return{x:0,y:0}},ce=(e=P())=>{let t=new Map;for(let n of e)for(let e of n.targets){let n=z(e);n&&t.set(n,e)}return t},le=e=>e.offsetSpace!==`local`||e.desiredLocalOffsetX===null||e.desiredLocalOffsetY===null?null:{x:e.desiredLocalOffsetX,y:e.desiredLocalOffsetY},ue=(e,t)=>{let n=oe(e);for(;n;){if(t.has(n))return n;n=oe(n)}return null},de=(e=P(),t=new Map)=>{let n=ce(e),r=new Set([...n.keys(),...t.keys()]),i=new Map,a=new Set,o=e=>{let s=i.get(e);if(s)return s;let c=n.get(e),l=t.get(e)??(c?le(c):null);if(!l&&c){let t={x:c.desiredOffsetX,y:c.desiredOffsetY};return i.set(e,t),t}if(!l)return{x:0,y:0};if(a.has(e))return l;a.add(e);let u=ue(e,r),d=u?o(u):{x:0,y:0},f={x:d.x+l.x,y:d.y+l.y};return a.delete(e),i.set(e,f),f};for(let e of r)o(e);return i},fe=()=>{if(S.state===`live`)return new Map;if(!S.intentId)return de();let e=k().intents.find(e=>e.id===S.intentId);if(!e)return de();let t=new Map;for(let n of e.targets){let e=z(n);e&&t.set(e,S.state===`before`?{x:n.beforeOffsetX,y:n.beforeOffsetY}:{x:n.desiredOffsetX,y:n.desiredOffsetY})}return t},pe=e=>{let t=[...e].flatMap(([t,n])=>{if(!t.isConnected||!I(t))return[];let r=se(t,e),i={x:n.x-r.x,y:n.y-r.y};return i.x===0&&i.y===0?[]:[{element:t,offset:i}]}),n=new Set(t.map(({element:e})=>e));for(let{element:e}of t)V(e);U();for(let{element:e,offset:n}of t){let t=Yh(e),i=r.getComputedStyle(e).transform,a=i&&i!==`none`?` ${i}`:``;e.style.setProperty(`transform`,`translate3d(${n.x}px, ${n.y}px, 0)${a}`,`important`),_.set(e,{element:e,beforeTransform:t,appliedTransform:Yh(e)})}H(n)},me=()=>pe(fe()),he=e=>{U();try{return e()}finally{!E&&!C&&me()}},ge=()=>i.currentSelection().elements.filter(e=>e instanceof c.HTMLElement&&e.isConnected&&I(e));e.state.register({id:Sh,initial:ge().length>0});let _e=()=>e.state.get(Sh)??!1,ve=()=>{let t=ge().length>0;t!==_e()&&e.state.update(Sh,()=>t)},ye=()=>Lh(ge().map(e=>fl(e))),be=()=>{for(let e of x.values())e.remove();x.clear()},xe=e=>{let t=e.getBoundingClientRect(),n=t.right+kh;n+Oh>r.innerWidth-4&&(n=Math.max(4,t.left-Oh-kh));let i=Math.min(Math.max(4,t.top+Ah),Math.max(4,r.innerHeight-Oh-4));return{left:n,top:i}},Se=()=>{if(!A()||C){be();return}let t=P(),r=ce(t),i=de(t),a=new Set;for(let t of ge()){let o=r.get(t);if(!o)continue;let s=i.get(t);if(!s)continue;let c=se(t,i),u=le(o)??{x:s.x-c.x,y:s.y-c.y};if(Math.abs(u.x)<=jh&&Math.abs(u.y)<=jh)continue;a.add(t);let d=x.get(t);d||(d=n.createElement(`button`),d.type=`button`,d.dataset.mesurerArrangeReset=`true`,d.dataset.mesurerInspectorUi=`true`,d.setAttribute(`aria-label`,`Reset position`),d.title=`Reset position`,d.textContent=`↺`,d.className=`msr:pointer-events-auto msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-[7px] msr:border msr:border-ink-200 msr:bg-white msr:text-[14px] msr:leading-none msr:text-black msr:outline-none msr:hover:bg-ink-50 msr:focus-visible:border-[#0d99ff]`,d.style.position=`fixed`,d.addEventListener(`pointerdown`,e=>e.stopPropagation()),d.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),T=[t],e.command.execute(bh,void 0,{source:`arrange-reset-button`}).catch(()=>{T=null})}),x.set(t,d),l.append(d));let f=xe(t);d.style.left=`${f.left}px`,d.style.top=`${f.top}px`}for(let[e,t]of x)a.has(e)||(t.remove(),x.delete(e))},Ce=t=>{let n=new Set(t);n.size&&(e.state.update(`mesurer.arrange.intents`,e=>{let t=!1,r=e.intents.flatMap(e=>{if(e.pageUrl!==N())return[e];let r=e.targets.filter(e=>{let r=z(e),i=r!==null&&n.has(r);return i&&(t=!0),!i});return r.length?r.length===e.targets.length?[e]:[{...e,targets:r}]:[]});return t?{intents:r}:e}),De(),Ee())},we=()=>{e.state.update(fh,e=>{let t=e.intents.filter(e=>e.pageUrl!==N());return t.length===e.intents.length?e:{intents:t}}),De(),Ee()},Te=e=>{let t=j();if(!t.snapping)return[];let n=[],a=new Set(e),s=i.snapshot(),l=s.xrayVisible&&t.preferXrayEdges&&t.elementEdges,u=0,d=i=>{if(u>=Eh||a.has(i)||e.some(e=>e.contains(i))||!I(i))return;let o=r.getComputedStyle(i);if(o.display===`none`||o.visibility===`hidden`||o.visibility===`collapse`)return;let s=o.outlineStyle===`solid`&&(Number.parseFloat(o.outlineWidth)||0)>0;if(l&&!s)return;let c=fl(i);if(c.width<=0||c.height<=0)return;let d=Th;if(c.left+c.width<-160||c.top+c.height<-160||c.left>r.innerWidth+d||c.top>r.innerHeight+d)return;u+=1;let f=c.left+c.width,p=c.top+c.height;if(t.elementEdges){for(let e of[c.left,f])n.push({axis:`x`,position:e,start:c.top,end:p,source:`element`,kind:`edge`});for(let e of[c.top,p])n.push({axis:`y`,position:e,start:c.left,end:f,source:`element`,kind:`edge`})}t.elementCenters&&!l&&(n.push({axis:`x`,position:c.left+c.width/2,start:c.top,end:p,source:`element`,kind:`center`}),n.push({axis:`y`,position:c.top+c.height/2,start:c.left,end:f,source:`element`,kind:`center`}))};if(t.elementEdges||t.elementCenters){o instanceof c.HTMLElement&&d(o);for(let e of o.querySelectorAll(`*`)){if(u>=Eh)break;e instanceof c.HTMLElement&&d(e)}}if(t.guides)for(let e of s.guides)e.orientation===`vertical`?n.push({axis:`x`,position:e.position,start:0,end:r.innerHeight,source:`guide`,kind:`guide`}):n.push({axis:`y`,position:e.position,start:0,end:r.innerWidth,source:`guide`,kind:`guide`});return n},Ee=e=>{if(!A()){h(),f.style.display=`none`,be();return}let t=g(ge());if(ie()){for(let e of p.values())e.style.display=`none`;f.style.display=`none`,be();return}for(let e of p.values())e.style.removeProperty(`display`);f.style.borderColor=t?`transparent`:`#0d99ff`;let n=e===void 0?ye():e;if(!n){f.style.display=`none`,be();return}f.style.display=`block`,f.style.left=`${n.left}px`,f.style.top=`${n.top}px`,f.style.width=`${n.width}px`,f.style.height=`${n.height}px`,C?be():Se()},De=()=>{S={intentId:null,state:`desired`},me(),ne(),A()?ae():G()},Oe=()=>{S={intentId:null,state:`live`},W(),ne(),G()},ke=()=>{E||C||(me(),ne(),A()?ae():G(),Ee())},Ae=()=>{D||E||(D=r.requestAnimationFrame(()=>{D=0,ke()}))},je=async()=>{if(s.querySelector(`[data-mesurer-builtin='select'] button`)?.getAttribute(`aria-pressed`)===`true`)return;let t=i.currentSelection().elements;await e.command.execute(gh,void 0,{source:`arrange`});let n=new Set(i.currentSelection().elements);for(let e of t)n.has(e)||i.toggleSelection(e)},Me=e=>{if(!A()||e.button!==0)return;let r=ge();if(!r.length)return;let a=n.elementsFromPoint&&(!(o instanceof c.ShadowRoot)||o.elementsFromPoint)?jl(t.rendererRoot??null,()=>jl(l,()=>kl({x:e.clientX,y:e.clientY},o,n))):null,s=e.shiftKey?a:null;if(e.shiftKey&&s instanceof c.HTMLElement&&I(s)&&!r.includes(s)){e.preventDefault(),e.stopPropagation(),i.toggleSelection(s);return}e.preventDefault(),e.stopPropagation(),S={intentId:null,state:`desired`},me();let u=ce(P()),d=de(P()),p=new Set(r);U();let m=r.map((e,t)=>{let n=fl(e),r=se(e,d),i=d.get(e)??r,a=u.get(e),o=(a?le(a):null)??{x:i.x-r.x,y:i.y-r.y},s=Fh(n,i),c=Nl(e);return{element:e,movesDirectly:ue(e,p)===null,target:{id:`target-${t+1}`,selector:Ml(e),fingerprintTag:c.tag,fingerprintId:c.id,fingerprintTestId:c.testId,fingerprintRole:c.role,fingerprintAriaLabel:c.ariaLabel,fingerprintClasses:[...c.classes],fingerprintText:c.text,beforeLeft:s.left,beforeTop:s.top,beforeWidth:s.width,beforeHeight:s.height,desiredLeft:s.left,desiredTop:s.top,desiredWidth:s.width,desiredHeight:s.height,beforeOffsetX:i.x,beforeOffsetY:i.y,desiredOffsetX:i.x,desiredOffsetY:i.y,offsetSpace:`local`,beforeLocalOffsetX:o.x,beforeLocalOffsetY:o.y,desiredLocalOffsetX:o.x,desiredLocalOffsetY:o.y}}}),h=Lh(m.map(({target:e})=>({left:e.beforeLeft,top:e.beforeTop,width:e.beforeWidth,height:e.beforeHeight})));if(!h){me();return}me(),ae(),ne(),C={pointerId:e.pointerId,originX:e.clientX,originY:e.clientY,targets:m,groupBefore:h,snapCandidates:Te(r),pressTarget:a instanceof c.HTMLElement&&I(a)?a:null,shiftToggleElement:e.shiftKey&&s instanceof c.HTMLElement&&r.includes(s)?s:null,moved:!1,dx:0,dy:0},Ee(h),f.style.cursor=`grabbing`,f.setPointerCapture?.(e.pointerId)},Ne=(e,t,n)=>{let r=new Map;for(let i of e.targets){let e={x:i.target.beforeLocalOffsetX??0,y:i.target.beforeLocalOffsetY??0};r.set(i.element,i.movesDirectly?{x:e.x+t,y:e.y+n}:e)}return r},Pe=e=>{if(!C||e.pointerId!==C.pointerId)return;let t=e.clientX-C.originX,n=e.clientY-C.originY,r=null;if(!C.moved){if(Math.hypot(t,n)<Mh)return;C.moved=!0}e.shiftKey&&(Math.abs(t)>=Math.abs(n)?(n=0,r=`x`):(t=0,r=`y`));let i=Fh(C.groupBefore,{x:t,y:n}),a=r===`y`?null:Hh(`x`,i,C.snapCandidates),o=r===`x`?null:Hh(`y`,i,C.snapCandidates);t+=a?.delta??0,n+=o?.delta??0,C.dx=t,C.dy=n;let s=de(P(),Ne(C,t,n));pe(s);let c=Fh(C.groupBefore,{x:t,y:n});Ee(c),re(a,o,c)},Fe=()=>{if(!C)return;let e=C.pointerId;C=null,f.hasPointerCapture?.(e)&&f.releasePointerCapture(e),f.style.cursor=`grab`,De(),Ee()},Ie=t=>{if(!C||t.pointerId!==C.pointerId)return;t.preventDefault(),t.stopPropagation();let n=C;if(C=null,f.hasPointerCapture?.(t.pointerId)&&f.releasePointerCapture(t.pointerId),f.style.cursor=`grab`,ne(),!n.moved){if(n.shiftToggleElement)i.toggleSelection(n.shiftToggleElement);else if(n.pressTarget&&!n.targets.some(({element:e})=>e===n.pressTarget))try{i.select([Ml(n.pressTarget)])}catch{i.clearSelection(),i.toggleSelection(n.pressTarget)}De(),Ee();return}let a=de(P(),Ne(n,n.dx,n.dy));w={id:Wh(r,`arrange`),createdAt:Date.now(),pageUrl:N(),targets:n.targets.map(({element:e,movesDirectly:t,target:r})=>{let i={x:r.beforeLocalOffsetX??0,y:r.beforeLocalOffsetY??0},o=t?{x:i.x+n.dx,y:i.y+n.dy}:i,s=a.get(e)??{x:r.beforeOffsetX+n.dx,y:r.beforeOffsetY+n.dy};return{...r,desiredLeft:r.beforeLeft+n.dx,desiredTop:r.beforeTop+n.dy,desiredOffsetX:s.x,desiredOffsetY:s.y,desiredLocalOffsetX:o.x,desiredLocalOffsetY:o.y}})};for(let{element:e,target:t}of n.targets)v.set(t.selector,e);e.command.execute(vh).catch(()=>{w=null,De(),Ee()})},Le=e=>{!C||e.pointerId!==C.pointerId||Fe()},Re=e=>jl(l,()=>Cp({x:e.clientX,y:e.clientY},t.rendererRoot??null,n,o)),ze=e=>{if(!A())return;if(C||e.buttons!==0||ie()){i.clearHover();return}let n=e.composedPath();if(!n.includes(f)&&t.rendererRoot&&n.includes(t.rendererRoot))return;let r=Re(e);i.setHover(r instanceof c.HTMLElement&&I(r)?r:null)},Be=t=>{if(t.key!==`Escape`||!A()&&!C||$h(t.target)||s.querySelector(`[data-mesurer-tool-menu]`))return;if(t.preventDefault(),t.stopImmediatePropagation(),C){Fe();return}let n=i.currentSelection();if(n.elements.length>0||n.region){i.clearSelection(),Ee();return}e.state.update(ph,()=>!1),Oe(),Ee(),e.command.execute(gh,void 0,{source:`arrange-escape`}).catch(()=>void 0)};f.addEventListener(`pointerdown`,Me),f.addEventListener(`pointermove`,Pe),f.addEventListener(`pointerup`,Ie),f.addEventListener(`pointercancel`,Le),r.addEventListener(`pointermove`,ze,!0),r.addEventListener(`keydown`,Be,!0),r.addEventListener(`dblclick`,Ae,!0),r.addEventListener(`keyup`,Ae,!0),r.addEventListener(`pointerup`,Ae,!0),r.addEventListener(`resize`,Ae),r.addEventListener(`scroll`,Ae,!0),o.addEventListener(`scroll`,Ae,!0),O=new c.MutationObserver(()=>{ve(),Ae()}),O.observe(o,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`,`class`,`data-testid`,`role`,`aria-label`]});let Ve=i.subscribe(()=>{ve(),Ae()}),He=e.state.subscribe(Ae),Ue=e=>k().intents.find(t=>t.id===e)??null,We=(e,t)=>{let n=null;if(n=t===`before`?Lh(e.targets.map(e=>({left:e.beforeLeft,top:e.beforeTop,width:e.beforeWidth,height:e.beforeHeight}))):t===`desired`?Lh(e.targets.map(e=>({left:e.desiredLeft,top:e.desiredTop,width:e.desiredWidth,height:e.desiredHeight}))):he(()=>Lh(e.targets.map(e=>z(e)).filter(e=>e!==null).map(e=>fl(e)))),!n)throw Error(`Edit movement intent has no resolvable capture region: ${e.id}`);let i=Math.max(0,n.left-wh),a=Math.max(0,n.top-wh),o=Math.min(r.innerWidth,n.left+n.width+wh),s=Math.min(r.innerHeight,n.top+n.height+wh);return{left:i,top:a,width:Math.max(0,o-i),height:Math.max(0,s-a)}},Ge={active:A,intents:()=>k().intents.map(qh),intent(e){let t=Ue(e);return t?qh(t):null},show(e,t){if(!Ue(e))throw Error(`Edit intent not found: ${e}`);S={intentId:e,state:t},ke()},showCurrent(){S={intentId:null,state:`desired`},ke()},capturePlan(e,t){let n=Ue(e);if(!n)throw Error(`Edit intent not found: ${e}`);return{schema:`mesurer.arrange-capture/v1`,arrangeId:e,state:t,chrome:`hide`,captures:[{id:`viewport`,kind:`viewport`},{id:`focus`,kind:`clip`,rect:We(n,t)}]}},review:(e,t=Ch)=>{let n=Ue(e);if(!n)throw Error(`Edit movement intent not found: ${e}`);let r=he(()=>n.targets.map(e=>{let n=z(e),r={left:e.desiredLeft,top:e.desiredTop,width:e.desiredWidth,height:e.desiredHeight};if(!n)return{targetId:e.id,selector:e.selector,desired:r,current:null,delta:null,matched:!1};let i=fl(n),a=Ih(i,r),o=Math.abs(a.left)<=t&&Math.abs(a.top)<=t&&Math.abs(a.width)<=t&&Math.abs(a.height)<=t;return{targetId:e.id,selector:e.selector,desired:r,current:i,delta:a,matched:o}})),i=r.filter(e=>e.current!==null).length,a=i===0?`stale`:i===r.length?`connected`:`partial`;return{schema:`mesurer.arrange-review/v1`,arrangeId:n.id,targetStatus:a,tolerance:t,matched:r.length>0&&r.every(e=>e.matched),targets:r}},resetSelection:async()=>{await e.command.execute(bh)},resetAll:async()=>{await e.command.execute(xh)},clear:async()=>{await e.command.execute(yh)}};e.tool.register({id:`arrange`,label:`Edit`,shortcut:`Shift+A`,order:65,command:_h,toolbarMode:`edit`,modeSwitch:!0,icon:Ph,active:A,menu:{label:`Edit options`,items:[{id:`snapping`,label:`Snapping`,checked:()=>j().snapping,run:()=>M({snapping:!j().snapping})},{id:`element-edges`,label:`Element edges`,checked:()=>j().elementEdges,disabled:()=>!j().snapping,run:()=>M({elementEdges:!j().elementEdges})},{id:`element-centers`,label:`Element centers`,checked:()=>j().elementCenters,disabled:()=>!j().snapping,run:()=>M({elementCenters:!j().elementCenters})},{id:`guides`,label:`Guides`,checked:()=>j().guides,disabled:()=>!j().snapping,run:()=>M({guides:!j().guides})},{id:`prefer-xray-edges`,label:`Prefer X-ray edges`,checked:()=>j().preferXrayEdges,disabled:()=>!j().snapping||!j().elementEdges,run:()=>M({preferXrayEdges:!j().preferXrayEdges})},{id:`alignment-rulers`,label:`Alignment rulers`,checked:()=>j().snapLines,disabled:()=>!j().snapping,run:()=>M({snapLines:!j().snapLines})},{id:`reset-all-positions`,label:`Reset all positions`,disabled:()=>P().length===0,run:async()=>{await e.command.execute(xh,void 0,{source:`arrange-menu`})}}]}}),e.settings.register({id:`arrange`,label:`Edit`,order:35,controls:[{type:`toggle`,id:`snapping`,label:`Snapping`,description:`Magnetically align dragged selections to nearby layout anchors.`,value:()=>j().snapping,set:e=>M({snapping:e})},{type:`toggle`,id:`element-edges`,label:`Element edges`,description:`Snap left/right and top/bottom edges to nearby elements.`,value:()=>j().elementEdges,set:e=>M({elementEdges:e}),disabled:()=>!j().snapping},{type:`toggle`,id:`element-centers`,label:`Element centers`,description:`Snap center-to-center when X-ray edge preference is not active.`,value:()=>j().elementCenters,set:e=>M({elementCenters:e}),disabled:()=>!j().snapping},{type:`toggle`,id:`guides`,label:`Guides`,description:`Snap to existing Mesurer guides.`,value:()=>j().guides,set:e=>M({guides:e}),disabled:()=>!j().snapping},{type:`toggle`,id:`prefer-xray-edges`,label:`Prefer X-ray edges`,description:`When X-ray is on, use its visible blue box edges as element snap targets.`,value:()=>j().preferXrayEdges,set:e=>M({preferXrayEdges:e}),disabled:()=>!j().snapping||!j().elementEdges},{type:`toggle`,id:`alignment-rulers`,label:`Alignment rulers`,description:`Show the red alignment ruler while a snap is active.`,value:()=>j().snapLines,set:e=>M({snapLines:e}),disabled:()=>!j().snapping}]}),e.command.register(_h,async()=>{let t=!A();if(t&&await je(),e.state.update(`mesurer.arrange.active`,()=>t),!t){C&&Fe(),Oe(),Ee();return}De(),Ee()}),e.command.register(vh,()=>{let t=w;w=null,t&&(e.state.update(`mesurer.arrange.intents`,e=>({intents:[...e.intents,t].slice(-100)})),De(),Ee())}),e.command.register(bh,()=>{let e=T??ge();T=null,Ce(e)}),e.command.register(xh,we),e.command.register(yh,()=>{e.state.update(fh,()=>({intents:[]})),S={intentId:null,state:`desired`},W(),ne(),A()?ae():G(),Ee()}),e.service.provide(dh,Ge),me(),Ee(),e.lifecycle.onDispose(()=>{E=!0,D&&r.cancelAnimationFrame(D),O?.disconnect(),O=null,f.removeEventListener(`pointerdown`,Me),f.removeEventListener(`pointermove`,Pe),f.removeEventListener(`pointerup`,Ie),f.removeEventListener(`pointercancel`,Le),r.removeEventListener(`pointermove`,ze,!0),r.removeEventListener(`keydown`,Be,!0),r.removeEventListener(`dblclick`,Ae,!0),r.removeEventListener(`keyup`,Ae,!0),r.removeEventListener(`pointerup`,Ae,!0),r.removeEventListener(`resize`,Ae),r.removeEventListener(`scroll`,Ae,!0),o.removeEventListener(`scroll`,Ae,!0),Ve(),He.dispose(),W(),be(),ne(),G(),h(),m.remove(),i.dispose(),a.dispose()})}}),tg=(e,t,n)=>{let r=!1,i=0,a=null,o=null,s=()=>({visible:(e.state.get(`mesurer.arrange.active`)??!1)||sh(e).keepArrangeChanges,intents:e.state.get(`mesurer.arrange.intents`)?.intents??[]}),c=(e,t)=>e?.visible===t.visible&&e.intents===t.intents,l=e=>{if(a=e,e.visible){t.showCurrent();return}let n=e.intents.at(-1);n&&t.show(n.id,`live`)},u=()=>{if(i=0,r||!o)return;let e=o;o=null,c(a,e)||l(e)},d=e.state.subscribe(()=>{if(r)return;let e=s();c(o??a,e)||(o=e,i||=n.requestAnimationFrame(u))});l(s()),e.lifecycle.onDispose(()=>{r=!0,i&&n.cancelAnimationFrame(i),i=0,o=null,d.dispose()})},ng=[`[data-mesurer-measurement='true']`,`[data-mesurer-selected-measurement='true']`,`[data-mesurer-inspector-ui='true']`].join(``),rg=`[data-mesurer-text-edit-runtime='true']`,ig=`[data-mesurer-text-editor='true']`,ag=(e,t)=>{let n=t.ownerDocument.body;if(!n)return;let r=t.ownerWindow,i=new Map,a=e.state.get(`mesurer.arrange.active`)??!1,o=[],s=null,c=e=>e.matches(ng)&&e.getRootNode()===t.ownerDocument&&e.parentElement===n,l=()=>{for(let[e,t]of i)e.isConnected&&(t.value||t.priority?e.style.setProperty(`visibility`,t.value,t.priority):e.style.removeProperty(`visibility`));i.clear()},u=()=>o.some(e=>e.isConnected&&!!e.querySelector(ig)),d=e=>{!a||u()||!c(e)||(i.has(e)||i.set(e,{value:e.style.getPropertyValue(`visibility`),priority:e.style.getPropertyPriority(`visibility`)}),(e.style.getPropertyValue(`visibility`)!==`hidden`||e.style.getPropertyPriority(`visibility`)!==`important`)&&e.style.setProperty(`visibility`,`hidden`,`important`))},f=()=>{if(!(!a||u()))for(let e of n.querySelectorAll(ng))e instanceof r.HTMLElement&&d(e)},p=()=>{!a||u()?l():f()},m=()=>{let e=Array.from(n.querySelectorAll(rg));if(!(e.length===o.length&&e.every((e,t)=>e===o[t]))){if(s?.disconnect(),s=null,o=e,e.length>0){s=new r.MutationObserver(p);for(let t of e)s.observe(t,{childList:!0,subtree:!0})}p()}};m();let h=new r.MutationObserver(e=>{let t=!1;for(let n of e){for(let e of n.addedNodes)e instanceof r.HTMLElement&&(e.matches(rg)&&(t=!0),d(e));for(let e of n.removedNodes)e instanceof r.HTMLElement&&e.matches(rg)&&(t=!0)}t&&m()});h.observe(n,{childList:!0});let g=e.state.subscribe(()=>{let t=e.state.get(`mesurer.arrange.active`)??!1;t!==a&&(a=t,p())});p(),e.lifecycle.onDispose(()=>{h.disconnect(),s?.disconnect(),s=null,o=[],g.dispose(),l()})},og=()=>{let e=eg();return{...e,async setup(t){await e.setup(t);let n=t.service.get(dh);if(!n)throw Error(`Edit movement presentation policy requires the movement service.`);let r=t.service.get(`runtime:solid`);if(!r)throw Error(`Edit movement presentation policy requires the Solid renderer runtime.`);tg(t,n,r.ownerWindow),ag(t,r)}}},sg=(e,t,n,r)=>ya({id:`mesurer.${e}`,version:`0.1.0`,provides:[`tool:${e}`],setup(i){i.tool.register({id:e,builtin:e,label:t,shortcut:n,order:r,command:`builtin.${e}`})}}),cg=()=>sg(`select`,`Select`,`S`,10),lg=()=>sg(`xray`,`X-ray`,`X`,20),ug=()=>sg(`color-picker`,`Color picker`,`P`,30),dg=()=>sg(`rulers`,`Rulers`,`R`,40),fg=()=>sg(`text-inspector`,`Typography`,`A`,50),pg=()=>sg(`guides`,`Guides`,`G`,60),mg=()=>sg(`settings`,`Settings`,`⌘/Ctrl+,`,90),hg=()=>ya({id:`mesurer.distance`,version:`0.1.0`,provides:[`overlay:distance`,`settings:selection-spacing`],setup(e){e.overlay.register({id:`distance`,builtin:`distance`,order:30}),e.settings.register({id:`selection-spacing`,label:`Selection spacing`,builtin:`distance`,order:30})}}),gg=()=>[cg(),lg(),ug(),dg(),fg(),pg(),hg(),mg()];function _g(e=[],t=[]){let n=new Set(t.map(e=>`mesurer.${e}`));return[...gg().filter(e=>!n.has(e.id)),...e]}var vg=`arrange.toggle`,yg=`builtin.select`;function bg(e,t){let n=t.createWorkspaceRuntime(),r=!1,i=0,a=!1,o=e.state.get(`mesurer.arrange.active`)??!1,s=t.currentToolMode?.(),c=!1,l=!1,u=()=>{r||i||(i=t.ownerWindow.requestAnimationFrame(()=>{if(i=0,r||a)return;let n=t.currentToolMode?.(),o=e.state.get(`mesurer.arrange.active`)??!1;if(n===void 0||!o){c=!1,l=!1;return}if(n===`select`||n===`guides`){c=!1,l=!1;return}a=!0;let s=l?vg:c?yg:vg,d=s===yg?`arrange-requires-select`:`select-deactivated`;c=!1,l=!1,e.command.execute(s,void 0,{source:d}).catch(()=>void 0).finally(()=>{a=!1,u()})}))},d=()=>{let e=t.currentToolMode?.();(s===`select`||s===`guides`)&&e!==void 0&&e!==`select`&&e!==`guides`&&(l=!0),s=e,u()},f=()=>{let t=e.state.get(`mesurer.arrange.active`)??!1;t&&!o&&(c=!0),o=t,u()},p=n.subscribe(d),m=e.state.subscribe(f);u(),e.lifecycle.onDispose(()=>{r=!0,i&&t.ownerWindow.cancelAnimationFrame(i),i=0,m.dispose(),p(),n.dispose()})}var xg=80,Sg=8,Cg=8,wg=0,Tg=e=>({left:e.left,top:e.top,right:e.right,bottom:e.bottom,width:e.width,height:e.height}),Eg=e=>{let t=Number.parseFloat(e.style.left)||0,n=Number.parseFloat(e.style.top)||0,r=Number.parseFloat(e.style.width)||e.getBoundingClientRect().width,i=Number.parseFloat(e.style.height)||e.getBoundingClientRect().height;return{left:t,top:n,right:t+r,bottom:n+i,width:r,height:i}},Dg=(e,t,n,r)=>{let i=Eg(e);return t.parentNode===n.body?{...i,left:i.left-r.scrollX,right:i.right-r.scrollX,top:i.top-r.scrollY,bottom:i.bottom-r.scrollY}:i},Og=(e,t,n=5)=>Math.abs(e.left-t.left)<=n&&Math.abs(e.top-t.top)<=n&&Math.abs(e.width-t.width)<=n&&Math.abs(e.height-t.height)<=n,kg=e=>e.width>0&&e.height>0&&e.right>0&&e.bottom>0,Ag=e=>!!(e.CSS?.supports(`anchor-name: --mesurer-native-anchor`)&&e.CSS.supports(`position-anchor: --mesurer-native-anchor`)&&e.CSS.supports(`left: anchor(left)`)&&e.CSS.supports(`width: anchor-size(width)`)),jg=(e,t,n)=>{(e.style.getPropertyValue(t)!==n||e.style.getPropertyPriority(t)!==`important`)&&e.style.setProperty(t,n,`important`)},Mg=e=>{e&&(delete e.dataset.mesurerNativeScrollAnchor,delete e.dataset.mesurerNativeScrollOwner,e.style.removeProperty(`position-anchor`),e.style.removeProperty(`--mesurer-native-anchor-x`),e.style.removeProperty(`--mesurer-native-anchor-y`))},Ng=(e,t,n)=>{let r=[],i=e;for(;i instanceof n.HTMLElement&&(r.push(i),i!==t);)i=i.parentElement;return r},Pg=(e,t,n,r)=>{if(!kg(e))return null;let i=Math.min(Math.max(e.left+e.width/2,0),Math.max(0,n.innerWidth-1)),a=Math.min(Math.max(e.top+e.height/2,0),Math.max(0,n.innerHeight-1)),o=new Set;for(let s of t.elementsFromPoint(i,a))for(let t of Ng(s,r,n))if(!(o.has(t)||(o.add(t),t!==r&&!r.contains(t))||t.closest(`[data-mesurer-root='true'], [data-mesurer-inspector-ui='true']`))&&Og(Tg(t.getBoundingClientRect()),e))return t;return null},Fg=(e,t)=>t.map(t=>({property:t,value:e.style.getPropertyValue(t),priority:e.style.getPropertyPriority(t)})),Ig=(e,t)=>{for(let{property:n,value:r,priority:i}of t)r?e.style.setProperty(n,r,i):e.style.removeProperty(n)},Lg=(e,t,n=`none`)=>{let r=e.body,i=t.parentNode,a=i&&i!==r?e.createComment(`mesurer-document-scroll-layer`):null;a&&i&&i.insertBefore(a,t),t.parentNode!==r&&r.append(t);let o=Fg(t,n===`selection-root`?[`display`,`position`,`left`,`top`,`width`,`height`]:n===`runtime`||n===`inspector-overlay`?[`display`,`position`,`inset`,`width`,`height`]:[]);n===`selection-root`?(jg(t,`display`,`block`),jg(t,`position`,`absolute`),jg(t,`left`,`0px`),jg(t,`top`,`0px`),jg(t,`width`,`100vw`),jg(t,`height`,`0px`)):(n===`runtime`||n===`inspector-overlay`)&&(jg(t,`display`,`block`),jg(t,`position`,`static`),jg(t,`inset`,`auto`),jg(t,`width`,`0px`),jg(t,`height`,`0px`));let s=!1;return{element:t,release(){s||(s=!0,Ig(t,o),a?.parentNode&&(t.isConnected&&a.parentNode.insertBefore(t,a),a.remove()))}}};function Rg(e,t){let{ownerDocument:n,ownerWindow:r,pageTarget:i,portalTarget:a}=t,o=r;if(!Ag(o)||a instanceof o.ShadowRoot||i instanceof o.ShadowRoot||a.getRootNode()!==n||i.getRootNode()!==n||!n.body)return;let s=ms(n),c=t.createWorkspaceRuntime(),l=new Map,u=new Map,d=new Map,f=new Map,p=new Map,m=new Map,h=null,g=null,_=!1,v=!1,y=0,b=0,x=!1,S=0,C=a.querySelectorAll(`[data-mesurer-text-edit-runtime='true']`),w=C.item(C.length-1),T=w?.isConnected?Lg(n,w,`runtime`):null;w&&(w.dataset.mesurerNativeScrollRuntimeLayer=`true`);let E=n.createElement(`style`);E.dataset.mesurerNativeScrollAnchoring=`true`,E.dataset.mesurerInspectorUi=`true`,E.textContent=`
2047
+ /* The selected page element, not a document-level portal, paints its outline.
2048
+ The source's own compositor scroll node can then move outline and text in
2049
+ the same frame. The invisible portaled box remains usable for measurement
2050
+ and element identity tests without displaying the delayed duplicate. */
2051
+ [data-mesurer-source-selection-paint="true"] {
2052
+ outline: 1px solid var(--mesurer-selected-source-outline, #0d99ff) !important;
2053
+ outline-offset: -1px !important;
2054
+ /* Tint source text as well as its background: the previous translucent
2055
+ portal covered both, while source-local background paint alone would
2056
+ leave all antialiased text pixels visibly darker. */
2057
+ color: color-mix(
2058
+ in srgb,
2059
+ var(--mesurer-selected-source-text, currentColor) 84.64%,
2060
+ rgb(from var(--mesurer-selected-source-fill) r g b / 1) 15.36%
2061
+ ) !important;
2062
+ background-image:
2063
+ linear-gradient(var(--mesurer-selected-source-fill, transparent), var(--mesurer-selected-source-fill, transparent)),
2064
+ var(--mesurer-selected-source-background, none) !important;
2065
+ }
2066
+ [data-mesurer-source-selection-owner="true"] > [data-mesurer-measurement-chrome="true"] {
2067
+ opacity: 0 !important;
2068
+ }
2069
+ body:has([data-mesurer-source-selection-paint="true"]) > [data-mesurer-arrange-native-stroke="true"] {
2070
+ opacity: 0 !important;
2071
+ }
2072
+ body:has([data-mesurer-text-editor="true"]) [data-mesurer-source-selection-paint="true"] {
2073
+ outline: none !important;
2074
+ background-image: var(--mesurer-selected-source-background, none) !important;
2075
+ color: var(--mesurer-selected-source-text, inherit) !important;
2076
+ }
2047
2077
  [data-mesurer-native-scroll-anchor="box"] {
2048
2078
  position: absolute !important;
2049
2079
  left: anchor(left) !important;
@@ -2073,7 +2103,7 @@ body:has([data-mesurer-text-editor="true"]) > [data-mesurer-arrange-native-strok
2073
2103
  transition: none !important;
2074
2104
  animation: none !important;
2075
2105
  }
2076
- `,n.head.append(T);let E=(e,t)=>{let n=t.original.trim(),r=Array.from(t.names),i=[n&&n!==`none`?n:``,...r].filter(Boolean).join(`, `);i?e.style.setProperty(`anchor-name`,i,t.originalPriority):e.style.removeProperty(`anchor-name`)},D=(e,t)=>{let n=l.get(e);n||(n={original:e.style.getPropertyValue(`anchor-name`),originalPriority:e.style.getPropertyPriority(`anchor-name`),names:new Set},l.set(e,n)),n.names.add(t),E(e,n);let r=!1;return()=>{if(r)return;r=!0;let n=l.get(e);if(n){if(n.names.delete(t),n.names.size){E(e,n);return}n.original?e.style.setProperty(`anchor-name`,n.original,n.originalPriority):e.style.removeProperty(`anchor-name`),l.delete(e)}}},O=(e,t)=>{let n=`--mesurer-${t}-${++wg}`;return{target:e,name:n,release:D(e,n)}},k=(e,t,n)=>{e.dataset.mesurerNativeScrollAnchor=n,jg(e,`position-anchor`,t.name)},A=e=>{Mg(e.chrome),Mg(e.label),e.release(),e.placement.release()},j=(e,t,r,i)=>{let a=u.get(e);a&&A(a);let o=O(t,`selection`),s=Lg(n,e,e.parentNode===n.body?`none`:`selection-root`),c={...o,root:e,chrome:r,label:i,placement:s};u.set(e,c),k(r,c,`box`),i&&k(i,c,`label`)},M=(e,t)=>t.find(t=>Og(Tg(t.getBoundingClientRect()),e))||(t.length===1?t[0]:null),N=()=>{let e=new Set;for(let t of u.keys())t.isConnected&&e.add(t);for(let t of a.querySelectorAll(`[data-mesurer-selected-measurement='true']`))t.dataset.mesurerSelectionGroup!==`true`&&e.add(t);let t=c.currentSelection().elements.filter(e=>e instanceof o.HTMLElement);for(let a of e){let e=u.get(a);if(e?.target.isConnected&&e.chrome.isConnected){if(k(e.chrome,e,`box`),e.label?.isConnected&&k(e.label,e,`label`),t.includes(e.target)||b)continue;let s=vs(e.chrome),c=Dg(e.chrome,a,n,r),l=s instanceof o.HTMLElement&&s.isConnected?s:M(c,t)??Pg(c,n,o,i);l&&j(a,l,e.chrome,e.label);continue}e&&(A(e),u.delete(a));let s=a.children.item(0);if(!(s instanceof o.HTMLElement))continue;let c=a.children.item(a.children.length-1),l=c instanceof o.HTMLElement&&c!==s?c:null,d=vs(s),f=Dg(s,a,n,r),p=d instanceof o.HTMLElement&&d.isConnected?d:M(f,t)??Pg(f,n,o,i);p&&j(a,p,s,l)}for(let[e,t]of Array.from(u))e.isConnected||(A(t),u.delete(e))},P=()=>{m&&=(Mg(m.surface),m.release(),m.placement.release(),null)},F=()=>{let e=m?.surface.isConnected?m.surface:a.querySelector(`[data-mesurer-hover-measurement='true']`);if(!e?.isConnected){P();return}let t=Eg(e);if(m?.surface===e&&m.target.isConnected&&(k(e,m,`box`),b||Og(Tg(m.target.getBoundingClientRect()),t)))return;let r=Pg(t,n,o,i);if(!r)return;P();let s=O(r,`hover`),c=Lg(n,e);m={...s,surface:e,placement:c},k(e,m,`box`)},I=()=>{h&&=(Mg(h.ring),h.release(),null)},L=(e,t,n)=>{let i=t.getBoundingClientRect();if(i.width<=0||i.height<=0)return;let a=i.width,o=Math.max(i.height,t.scrollHeight),s=r.innerWidth-Sg,c=r.innerHeight-Sg,l=Math.max(Sg,s-a),u=Math.max(Sg,c-o),d=Math.min(Math.max(n.left+n.width/2-a/2,Sg),l),f=Math.min(Math.max(n.top+n.height/2-o/2,Sg),u),p=[{left:d,top:n.top-Cg-o,placement:`above`},{left:d,top:n.bottom+Cg,placement:`below`},{left:n.right+Cg,top:f,placement:`side`},{left:n.left-Cg-a,top:f,placement:`side`}],m=(e,t)=>e>=Sg&&t>=Sg&&e+a<=s&&t+o<=c,h=(e,t)=>Math.max(0,Math.min(e+a,n.right)-Math.max(e,n.left))>0&&Math.max(0,Math.min(t+o,n.bottom)-Math.max(t,n.top))>0,g=p.find(e=>m(e.left,e.top)&&!h(e.left,e.top)),_=d,v=Sg,y=`viewport`;if(g)({left:_,top:v,placement:y}=g),t.style.maxHeight=`calc(100vh - 16px)`;else{let e=[{name:`above`,top:Sg,height:Math.max(0,n.top-Cg-Sg)},{name:`below`,top:n.bottom+Cg,height:Math.max(0,c-n.bottom-Cg)}].sort((e,t)=>t.height-e.height)[0];e&&e.height>0&&(v=e.top,y=e.name,t.style.maxHeight=`${e.height}px`)}e.style.setProperty(`--mesurer-native-anchor-x`,`${_-n.left}px`),e.style.setProperty(`--mesurer-native-anchor-y`,`${v-n.top}px`),t.dataset.mesurerTextInspectorPlacement=y},R=()=>{if(!C?.isConnected){I();return}let e=C.querySelectorAll(`[data-mesurer-text-edit-ring='true']`),t=h?.ring.isConnected?h.ring:e.item(e.length-1);if(!t?.isConnected){I();return}let a=Eg(t);if(!h||h.ring!==t||!h.target.isConnected||!b&&!Og(Tg(h.target.getBoundingClientRect()),a)){let e=Pg(a,n,o,i);e&&(I(),h={...O(e,`edit`),ring:t})}if(!h)return;k(t,h,`box`);let s=Tg(h.target.getBoundingClientRect()),c=new Set;for(let e of n.querySelectorAll(`[data-mesurer-text-selection-highlight='true']`)){if(!e.isConnected)continue;c.add(e);let t=Eg(e);d.has(e)||d.set(e,Lg(n,e)),k(e,h,`offset`),b||(e.style.setProperty(`--mesurer-native-anchor-x`,`${t.left-s.left}px`),e.style.setProperty(`--mesurer-native-anchor-y`,`${t.top-s.top}px`))}for(let[e,t]of Array.from(d))c.has(e)&&e.isConnected||(Mg(e),t.release(),d.delete(e));let l=C.querySelector(`[data-mesurer-text-inspector-placement-shell='true']`),u=C.querySelector(`[data-mesurer-text-inspector-info='true']`);if(l?.isConnected&&u?.isConnected){let e=l.dataset.mesurerNativeScrollOwner===`typography`&&l.dataset.mesurerNativeScrollAnchor===`offset`;l.dataset.mesurerNativeScrollOwner=`typography`,k(l,h,`offset`);let t=s.right>0&&s.bottom>0&&s.left<r.innerWidth&&s.top<r.innerHeight;!e&&t&&L(l,u,s)}},z=e=>{Mg(e.box),Mg(e.card),e.release()},B=()=>{let e=new Set;for(let t of p.keys())t.isConnected&&e.add(t);for(let t of a.querySelectorAll(`.mesurer-ti-box`)){let n=t.parentElement;n?.dataset.mesurerInspectorUi===`true`&&e.add(n)}let t=new Set;for(let a of e){let e=Array.from(a.children).filter(e=>e instanceof o.HTMLElement),s=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(!r.classList.contains(`mesurer-ti-box`)||r.dataset.state!==`visible`)continue;let i=e[n+1],a=i?.classList.contains(`mesurer-ti-card`)?i:null;s.push({box:r,card:a}),t.add(r)}if(s.length){p.has(a)||p.set(a,Lg(n,a,`inspector-overlay`));for(let{box:e,card:t}of s){let a=Eg(e),s=f.get(e),c=!1;if(s?.target.isConnected){let t=Tg(s.target.getBoundingClientRect());if(Og(t,a))s.fallbackScrollX=r.scrollX,s.fallbackScrollY=r.scrollY,c=!0;else{let n=r.scrollX-s.fallbackScrollX,i=r.scrollY-s.fallbackScrollY,o=Og(t,{left:a.left-n,top:a.top-i,right:a.right-n,bottom:a.bottom-i,width:a.width,height:a.height});!b&&!o&&(z(s),f.delete(e),s=void 0)}}else s&&=(z(s),f.delete(e),void 0);if(!s){let l=Pg(a,n,o,i);if(!l)continue;s={...O(l,`typography`),box:e,card:t,fallbackScrollX:r.scrollX,fallbackScrollY:r.scrollY},f.set(e,s),c=!0}if(e.dataset.mesurerNativeScrollOwner=`typography`,k(e,s,`box`),t?.isConnected&&!t.classList.contains(`mesurer-ti-card--pinned`)){if(t.dataset.mesurerNativeScrollOwner=`typography`,k(t,s,`offset`),!b&&c){let e=Tg(s.target.getBoundingClientRect()),n=Number.parseFloat(t.style.left),r=Number.parseFloat(t.style.top);Number.isFinite(n)&&t.style.setProperty(`--mesurer-native-anchor-x`,`${n-e.left}px`),Number.isFinite(r)&&t.style.setProperty(`--mesurer-native-anchor-y`,`${r-e.top}px`)}}else t&&Mg(t)}}}for(let[e,n]of Array.from(f))t.has(e)&&e.isConnected||(z(n),f.delete(e));for(let[e,t]of Array.from(p))e.isConnected||(t.release(),p.delete(e))},V=()=>{g||(N(),F(),R(),B())},ee=(e=!1)=>{g||(_||(_=!0,r.queueMicrotask(()=>{_=!1,V()})),e&&!v&&(v=r.requestAnimationFrame(()=>{v=0,V()})))},H=()=>{g||b||y||(y=r.requestAnimationFrame(()=>{y=0,!(g||b)&&F()}))},te=new o.MutationObserver(()=>{b||ee()});te.observe(a,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`data-state`]}),C&&te.observe(C,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`data-state`]});let U=()=>{b=!0,x&&r.clearTimeout(x),x=r.setTimeout(()=>{x=0,b=!1,ee(!0)},xg)},W=()=>ee(!0);r.addEventListener(`scroll`,U,{capture:!0,passive:!0}),r.addEventListener(`resize`,W,!0),r.addEventListener(`pointermove`,H,!0),r.addEventListener(`pointerup`,W,!0),r.addEventListener(`dblclick`,W,!0),ee(!0),e.lifecycle.onDispose(()=>{g=!0,te.disconnect(),v&&r.cancelAnimationFrame(v),y&&r.cancelAnimationFrame(y),x&&r.clearTimeout(x),r.removeEventListener(`scroll`,U,!0),r.removeEventListener(`resize`,W,!0),r.removeEventListener(`pointermove`,H,!0),r.removeEventListener(`pointerup`,W,!0),r.removeEventListener(`dblclick`,W,!0);for(let e of u.values())A(e);u.clear(),P(),I();for(let[e,t]of d)Mg(e),t.release();d.clear();for(let e of f.values())z(e);f.clear();for(let e of p.values())e.release();p.clear(),C&&delete C.dataset.mesurerNativeScrollRuntimeLayer,w?.release(),c.dispose();for(let[e,t]of l)t.original?e.style.setProperty(`anchor-name`,t.original,t.originalPriority):e.style.removeProperty(`anchor-name`);l.clear(),s(),T.remove()})}var zg=(e,t)=>e.portalTarget instanceof t.ShadowRoot&&!(e.pageTarget instanceof t.ShadowRoot)&&e.pageTarget.getRootNode()===e.ownerDocument;function Bg(e){let{ownerDocument:t,ownerWindow:n}=e,r=n;if(!t.body||!zg(e,r))return{runtime:e,isolated:!1};cm(Gm,t.body);let i=()=>{let n=t.createElement(`div`);n.dataset.mesurerInspectorUi=`true`,n.dataset.mesurerIsolatedDocumentRuntime=`true`,n.dataset.theme=e.theme?.()??`system`;let r=e.subscribeTheme?.(e=>{n.dataset.theme=e})??(()=>void 0);t.body.append(n);let i=!1;return{element:n,dispose(){i||(i=!0,r(),n.remove())}}};return{isolated:!0,runtime:{...e,portalTarget:t.body,createInspectorMount:i}}}var Vg=`[data-mesurer-inspector-ui='true'], [data-mesurer-annotation-marker='true']`,Hg=80,Ug=(e,t)=>!(e.pageTarget instanceof t.ShadowRoot)&&e.pageTarget.getRootNode()===e.ownerDocument&&(e.portalTarget instanceof t.ShadowRoot?e.portalTarget.host.getRootNode()===e.ownerDocument:e.portalTarget.getRootNode()===e.ownerDocument),Wg=(e,t,n)=>t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom;function Gg(e,t){let{ownerDocument:n,ownerWindow:r,portalTarget:i}=t,a=r;if(!n.body||!Ug(t,a))return;let o=t.rendererRoot??i.querySelector(`[data-mesurer-root='true']`);if(!o)return;let s=n.createElement(`style`);s.dataset.mesurerDocumentUiPassthroughStyle=`true`,s.textContent=`
2106
+ `,n.head.append(E);let D=[`--mesurer-selected-source-outline`,`--mesurer-selected-source-fill`,`--mesurer-selected-source-background`,`--mesurer-selected-source-text`],O=(e,t)=>{let n=u.get(e);if(n)n.count+=1;else{let n=o.getComputedStyle(e),r=t.querySelector(`:scope > div`),i=r?o.getComputedStyle(r).backgroundColor:`#0d99ff`,a=o.getComputedStyle(t).backgroundColor,s=Fg(e,D);u.set(e,{count:1,previous:e.getAttribute(`data-mesurer-source-selection-paint`),styles:s}),e.style.setProperty(`--mesurer-selected-source-outline`,i),e.style.setProperty(`--mesurer-selected-source-fill`,a),e.style.setProperty(`--mesurer-selected-source-background`,n.backgroundImage),e.style.setProperty(`--mesurer-selected-source-text`,n.color),e.dataset.mesurerSourceSelectionPaint=`true`}let r=!1;return()=>{if(r)return;r=!0;let t=u.get(e);t&&(--t.count,!(t.count>0)&&(t.previous===null?e.removeAttribute(`data-mesurer-source-selection-paint`):e.setAttribute(`data-mesurer-source-selection-paint`,t.previous),Ig(e,t.styles),u.delete(e)))}},k=(e,t)=>{let n=t.original.trim(),r=Array.from(t.names),i=[n&&n!==`none`?n:``,...r].filter(Boolean).join(`, `);i?e.style.setProperty(`anchor-name`,i,t.originalPriority):e.style.removeProperty(`anchor-name`)},A=(e,t)=>{let n=l.get(e);n||(n={original:e.style.getPropertyValue(`anchor-name`),originalPriority:e.style.getPropertyPriority(`anchor-name`),names:new Set},l.set(e,n)),n.names.add(t),k(e,n);let r=!1;return()=>{if(r)return;r=!0;let n=l.get(e);if(n){if(n.names.delete(t),n.names.size){k(e,n);return}n.original?e.style.setProperty(`anchor-name`,n.original,n.originalPriority):e.style.removeProperty(`anchor-name`),l.delete(e)}}},j=(e,t)=>{let n=`--mesurer-${t}-${++wg}`;return{target:e,name:n,release:A(e,n)}},M=(e,t,n)=>{e.dataset.mesurerNativeScrollAnchor=n,jg(e,`position-anchor`,t.name)},N=e=>{delete e.root.dataset.mesurerSourceSelectionOwner,Mg(e.chrome),Mg(e.label),e.releaseSourcePaint(),e.release(),e.placement.release()},P=(e,t,r,i)=>{let a=d.get(e);a&&N(a);let o=j(t,`selection`),s=Lg(n,e,e.parentNode===n.body?`none`:`selection-root`),c={...o,root:e,chrome:r,label:i,placement:s,releaseSourcePaint:O(t,r)};e.dataset.mesurerSourceSelectionOwner=`true`,d.set(e,c),M(r,c,`box`),i&&M(i,c,`label`)},F=(e,t)=>t.find(t=>Og(Tg(t.getBoundingClientRect()),e))||(t.length===1?t[0]:null),I=()=>{let e=new Set;for(let t of d.keys())t.isConnected&&e.add(t);for(let t of a.querySelectorAll(`[data-mesurer-selected-measurement='true']`))t.dataset.mesurerSelectionGroup!==`true`&&e.add(t);let t=c.currentSelection().elements.filter(e=>e instanceof o.HTMLElement);for(let a of e){let e=d.get(a);if(e?.target.isConnected&&e.chrome.isConnected){if(M(e.chrome,e,`box`),e.label?.isConnected&&M(e.label,e,`label`),t.includes(e.target)||x)continue;let s=vs(e.chrome),c=Dg(e.chrome,a,n,r),l=s instanceof o.HTMLElement&&s.isConnected?s:F(c,t)??Pg(c,n,o,i);l&&P(a,l,e.chrome,e.label);continue}e&&(N(e),d.delete(a));let s=a.children.item(0);if(!(s instanceof o.HTMLElement))continue;let c=a.children.item(a.children.length-1),l=c instanceof o.HTMLElement&&c!==s?c:null,u=vs(s),f=Dg(s,a,n,r),p=u instanceof o.HTMLElement&&u.isConnected?u:F(f,t)??Pg(f,n,o,i);p&&P(a,p,s,l)}for(let[e,t]of Array.from(d))e.isConnected||(N(t),d.delete(e))},L=()=>{h&&=(Mg(h.surface),h.release(),h.placement.release(),null)},R=()=>{let e=h?.surface.isConnected?h.surface:a.querySelector(`[data-mesurer-hover-measurement='true']`);if(!e?.isConnected){L();return}let t=Eg(e);if(h?.surface===e&&h.target.isConnected&&(M(e,h,`box`),x||Og(Tg(h.target.getBoundingClientRect()),t)))return;let r=Pg(t,n,o,i);if(!r)return;L();let s=j(r,`hover`),c=Lg(n,e);h={...s,surface:e,placement:c},M(e,h,`box`)},z=()=>{g&&=(Mg(g.ring),g.release(),null)},B=(e,t,n)=>{let i=t.getBoundingClientRect();if(i.width<=0||i.height<=0)return;let a=i.width,o=Math.max(i.height,t.scrollHeight),s=r.innerWidth-Sg,c=r.innerHeight-Sg,l=Math.max(Sg,s-a),u=Math.max(Sg,c-o),d=Math.min(Math.max(n.left+n.width/2-a/2,Sg),l),f=Math.min(Math.max(n.top+n.height/2-o/2,Sg),u),p=[{left:d,top:n.top-Cg-o,placement:`above`},{left:d,top:n.bottom+Cg,placement:`below`},{left:n.right+Cg,top:f,placement:`side`},{left:n.left-Cg-a,top:f,placement:`side`}],m=(e,t)=>e>=Sg&&t>=Sg&&e+a<=s&&t+o<=c,h=(e,t)=>Math.max(0,Math.min(e+a,n.right)-Math.max(e,n.left))>0&&Math.max(0,Math.min(t+o,n.bottom)-Math.max(t,n.top))>0,g=p.find(e=>m(e.left,e.top)&&!h(e.left,e.top)),_=d,v=Sg,y=`viewport`;if(g)({left:_,top:v,placement:y}=g),t.style.maxHeight=`calc(100vh - 16px)`;else{let e=[{name:`above`,top:Sg,height:Math.max(0,n.top-Cg-Sg)},{name:`below`,top:n.bottom+Cg,height:Math.max(0,c-n.bottom-Cg)}].sort((e,t)=>t.height-e.height)[0];e&&e.height>0&&(v=e.top,y=e.name,t.style.maxHeight=`${e.height}px`)}e.style.setProperty(`--mesurer-native-anchor-x`,`${_-n.left}px`),e.style.setProperty(`--mesurer-native-anchor-y`,`${v-n.top}px`),t.dataset.mesurerTextInspectorPlacement=y},V=()=>{if(!w?.isConnected){z();return}let e=w.querySelectorAll(`[data-mesurer-text-edit-ring='true']`),t=g?.ring.isConnected?g.ring:e.item(e.length-1);if(!t?.isConnected){z();return}let a=Eg(t);if(!g||g.ring!==t||!g.target.isConnected||!x&&!Og(Tg(g.target.getBoundingClientRect()),a)){let e=Pg(a,n,o,i);e&&(z(),g={...j(e,`edit`),ring:t})}if(!g)return;M(t,g,`box`);let s=Tg(g.target.getBoundingClientRect()),c=new Set;for(let e of n.querySelectorAll(`[data-mesurer-text-selection-highlight='true']`)){if(!e.isConnected)continue;c.add(e);let t=Eg(e);f.has(e)||f.set(e,Lg(n,e)),M(e,g,`offset`),x||(e.style.setProperty(`--mesurer-native-anchor-x`,`${t.left-s.left}px`),e.style.setProperty(`--mesurer-native-anchor-y`,`${t.top-s.top}px`))}for(let[e,t]of Array.from(f))c.has(e)&&e.isConnected||(Mg(e),t.release(),f.delete(e));let l=w.querySelector(`[data-mesurer-text-inspector-placement-shell='true']`),u=w.querySelector(`[data-mesurer-text-inspector-info='true']`);if(l?.isConnected&&u?.isConnected){let e=l.dataset.mesurerNativeScrollOwner===`typography`&&l.dataset.mesurerNativeScrollAnchor===`offset`;l.dataset.mesurerNativeScrollOwner=`typography`,M(l,g,`offset`);let t=s.right>0&&s.bottom>0&&s.left<r.innerWidth&&s.top<r.innerHeight;!e&&t&&B(l,u,s)}},ee=e=>{Mg(e.box),Mg(e.card),e.release()},H=()=>{let e=new Set;for(let t of m.keys())t.isConnected&&e.add(t);for(let t of a.querySelectorAll(`.mesurer-ti-box`)){let n=t.parentElement;n?.dataset.mesurerInspectorUi===`true`&&e.add(n)}let t=new Set;for(let a of e){let e=Array.from(a.children).filter(e=>e instanceof o.HTMLElement),s=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(!r.classList.contains(`mesurer-ti-box`)||r.dataset.state!==`visible`)continue;let i=e[n+1],a=i?.classList.contains(`mesurer-ti-card`)?i:null;s.push({box:r,card:a}),t.add(r)}if(s.length){m.has(a)||m.set(a,Lg(n,a,`inspector-overlay`));for(let{box:e,card:t}of s){let a=Eg(e),s=p.get(e),c=!1;if(s?.target.isConnected){let t=Tg(s.target.getBoundingClientRect());if(Og(t,a))s.fallbackScrollX=r.scrollX,s.fallbackScrollY=r.scrollY,c=!0;else{let n=r.scrollX-s.fallbackScrollX,i=r.scrollY-s.fallbackScrollY,o=Og(t,{left:a.left-n,top:a.top-i,right:a.right-n,bottom:a.bottom-i,width:a.width,height:a.height});!x&&!o&&(ee(s),p.delete(e),s=void 0)}}else s&&=(ee(s),p.delete(e),void 0);if(!s){let l=Pg(a,n,o,i);if(!l)continue;s={...j(l,`typography`),box:e,card:t,fallbackScrollX:r.scrollX,fallbackScrollY:r.scrollY},p.set(e,s),c=!0}if(e.dataset.mesurerNativeScrollOwner=`typography`,M(e,s,`box`),t?.isConnected&&!t.classList.contains(`mesurer-ti-card--pinned`)){if(t.dataset.mesurerNativeScrollOwner=`typography`,M(t,s,`offset`),!x&&c){let e=Tg(s.target.getBoundingClientRect()),n=Number.parseFloat(t.style.left),r=Number.parseFloat(t.style.top);Number.isFinite(n)&&t.style.setProperty(`--mesurer-native-anchor-x`,`${n-e.left}px`),Number.isFinite(r)&&t.style.setProperty(`--mesurer-native-anchor-y`,`${r-e.top}px`)}}else t&&Mg(t)}}}for(let[e,n]of Array.from(p))t.has(e)&&e.isConnected||(ee(n),p.delete(e));for(let[e,t]of Array.from(m))e.isConnected||(t.release(),m.delete(e))},te=()=>{_||(I(),R(),V(),H())},U=(e=!1)=>{_||(v||(v=!0,r.queueMicrotask(()=>{v=!1,te()})),e&&!y&&(y=r.requestAnimationFrame(()=>{y=0,te()})))},W=()=>{_||x||b||(b=r.requestAnimationFrame(()=>{b=0,!(_||x)&&R()}))},ne=new o.MutationObserver(()=>{x||U()});ne.observe(a,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`data-state`]}),w&&ne.observe(w,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`data-state`]});let re=()=>{x=!0,S&&r.clearTimeout(S),S=r.setTimeout(()=>{S=0,x=!1,U(!0)},xg)},ie=()=>U(!0);r.addEventListener(`scroll`,re,{capture:!0,passive:!0}),r.addEventListener(`resize`,ie,!0),r.addEventListener(`pointermove`,W,!0),r.addEventListener(`pointerup`,ie,!0),r.addEventListener(`dblclick`,ie,!0),U(!0),e.lifecycle.onDispose(()=>{_=!0,ne.disconnect(),y&&r.cancelAnimationFrame(y),b&&r.cancelAnimationFrame(b),S&&r.clearTimeout(S),r.removeEventListener(`scroll`,re,!0),r.removeEventListener(`resize`,ie,!0),r.removeEventListener(`pointermove`,W,!0),r.removeEventListener(`pointerup`,ie,!0),r.removeEventListener(`dblclick`,ie,!0);for(let e of d.values())N(e);d.clear();for(let[e,t]of u)t.previous===null?e.removeAttribute(`data-mesurer-source-selection-paint`):e.setAttribute(`data-mesurer-source-selection-paint`,t.previous),Ig(e,t.styles);u.clear(),L(),z();for(let[e,t]of f)Mg(e),t.release();f.clear();for(let e of p.values())ee(e);p.clear();for(let e of m.values())e.release();m.clear(),w&&delete w.dataset.mesurerNativeScrollRuntimeLayer,T?.release(),c.dispose();for(let[e,t]of l)t.original?e.style.setProperty(`anchor-name`,t.original,t.originalPriority):e.style.removeProperty(`anchor-name`);l.clear(),s(),E.remove()})}var zg=(e,t)=>e.portalTarget instanceof t.ShadowRoot&&!(e.pageTarget instanceof t.ShadowRoot)&&e.pageTarget.getRootNode()===e.ownerDocument;function Bg(e){let{ownerDocument:t,ownerWindow:n}=e,r=n;if(!t.body||!zg(e,r))return{runtime:e,isolated:!1};cm(Gm,t.body);let i=()=>{let n=t.createElement(`div`);n.dataset.mesurerInspectorUi=`true`,n.dataset.mesurerIsolatedDocumentRuntime=`true`,n.dataset.theme=e.theme?.()??`system`;let r=e.subscribeTheme?.(e=>{n.dataset.theme=e})??(()=>void 0);t.body.append(n);let i=!1;return{element:n,dispose(){i||(i=!0,r(),n.remove())}}};return{isolated:!0,runtime:{...e,portalTarget:t.body,createInspectorMount:i}}}var Vg=`[data-mesurer-inspector-ui='true'], [data-mesurer-annotation-marker='true']`,Hg=80,Ug=(e,t)=>!(e.pageTarget instanceof t.ShadowRoot)&&e.pageTarget.getRootNode()===e.ownerDocument&&(e.portalTarget instanceof t.ShadowRoot?e.portalTarget.host.getRootNode()===e.ownerDocument:e.portalTarget.getRootNode()===e.ownerDocument),Wg=(e,t,n)=>t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom;function Gg(e,t){let{ownerDocument:n,ownerWindow:r,portalTarget:i}=t,a=r;if(!n.body||!Ug(t,a))return;let o=t.rendererRoot??i.querySelector(`[data-mesurer-root='true']`);if(!o)return;let s=n.createElement(`style`);s.dataset.mesurerDocumentUiPassthroughStyle=`true`,s.textContent=`
2077
2107
  [data-mesurer-document-ui-passthrough="true"] {
2078
2108
  pointer-events: none !important;
2079
2109
  }
@@ -2107,6 +2137,6 @@ body:has([data-mesurer-text-editor="true"]) [data-mesurer-hover-measurement="tru
2107
2137
  position: absolute !important;
2108
2138
  z-index: ${$y} !important;
2109
2139
  }
2110
- `,t.head.append(s),i.append(a);let c=!1;return{element:a,dispose(){c||(c=!0,o(),s.remove(),a.remove())}}}var tb=e=>`color-mix(in srgb, ${e.color} ${e.opacity*100}%, transparent)`,nb=e=>e===`max`?`end`:e===`center`?`center`:`start`,rb=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=nb(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 ib(e){let t=()=>e.guides.filter(e=>e.visible);return Y(q,{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(Gr,{get each(){return t()},children:e=>Y(q,{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(Gr,{get each(){return Array.from({length:e.count})},children:()=>(()=>{var t=X(`div`,{"data-mesurer-layout-band":`true`});return J(()=>({"min-width":`0`,"min-height":`0`,width:`100%`,height:`100%`,"background-color":tb(e)}),(e,n)=>{$(t,`style`,e,n)}),t})()})),J(()=>({e:e.id,t:e.kind,a:rb(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 J(()=>({e:e.id,t:{"background-image":`linear-gradient(to right, ${tb(e)} 1px, transparent 1px), linear-gradient(to bottom, ${tb(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 ab=`#FF0000`,ob=.1,sb=new Set([`columns`,`rows`,`grid`]),cb=new Set([`stretch`,`min`,`center`,`max`]),lb=(e,t,n)=>Math.min(n,Math.max(t,e)),ub=(e,t)=>e!==void 0&&Number.isFinite(e)?e:t,db=(e={})=>{let t=e.kind&&sb.has(e.kind)?e.kind:`columns`,n=e.align&&cb.has(e.align)?e.align:t===`grid`?`min`:`stretch`,r=e.id?.trim(),i=e.color?.trim();return{id:r||jo(),kind:t,visible:e.visible??!0,color:i||`#FF0000`,opacity:lb(ub(e.opacity,ob),0,1),count:lb(Math.round(ub(e.count,5)),1,24),size:lb(ub(e.size,72),1,4096),gutter:lb(ub(e.gutter,20),0,800),offset:lb(ub(e.offset,0),0,4096),align:n}},fb=e=>(e??[]).map(db),pb=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)`},mb=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`})),J(()=>({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})(),hb=e=>e.kind===`rows`?Y(df,{size:14}):e.kind===`grid`?Y(lf,{size:14}):Y(uf,{size:14}),gb=`msr:grid-cols-[78px_minmax(0,1fr)]`,_b=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})(),vb=e=>(()=>{var t=X(`span`,{class:`msr:relative msr:block msr:w-full`}),n=X(`select`,{class:Ed,onPointerDown:e=>e.stopPropagation(),onChange:t=>e.onChange(t.currentTarget.value)});return Z(t,n),Q(n,()=>e.children),Q(t,Y(Dd,{}),null),J(()=>({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})(),yb=e=>{let[t,n]=K(!1),[r,i]=K(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(Od,{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 J(()=>({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}})},bb=e=>e===`rows`||e===`grid`?e:`columns`,xb=e=>e===`min`||e===`center`||e===`max`?e:`stretch`,Sb=e=>{let t=zr(()=>e.guide.kind===`rows`?{stretch:`Stretch`,min:`Top`,center:`Center`,max:`Bottom`}:{stretch:`Stretch`,min:`Left`,center:`Center`,max:`Right`}),n=zr(()=>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(vb,{label:`Layout guide type`,get value(){return e.guide.kind},onChange:t=>{let n=bb(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,Yi(`Columns`)),e})(),(()=>{var e=X(`option`,{value:`rows`});return Z(e,Yi(`Rows`)),e})(),(()=>{var e=X(`option`,{value:`grid`});return Z(e,Yi(`Grid`)),e})()]}}),a),Q(a,Y(mb,{})),Q(r,Y(q,{get when(){return e.guide.kind!==`grid`},get children(){return Y(_b,{label:`Count`,get children(){return Y(yb,{label:`Count`,get value(){return e.guide.count},min:1,max:24,onChange:t=>e.onUpdate({count:t})})}})}}),null),Q(r,Y(kd,{label:`Color`,columns:gb,get value(){return Oa({...Ea(e.guide.color)??Ea(`#FF0000`),alpha:e.guide.opacity})},fallback:ab,get ownerWindow(){return e.ownerWindow},onChange:t=>{let n=Ea(t);e.onUpdate({color:n?Oa({...n,alpha:1}).slice(0,7):t,opacity:n?.alpha??e.guide.opacity})}}),null),Q(r,Y(q,{get when(){return e.guide.kind!==`grid`},get children(){return Y(_b,{label:`Type`,get children(){return Y(vb,{label:`Alignment`,get value(){return e.guide.align},onChange:t=>e.onUpdate({align:xb(t)}),get children(){return Y(Gr,{each:[`stretch`,`min`,`center`,`max`],children:e=>(()=>{var n=X(`option`,{value:e});return Q(n,()=>t()[e]),n})()})}})}})}}),null),Q(r,Y(q,{get when(){return e.guide.kind===`grid`||e.guide.align!==`stretch`},get children(){return Y(_b,{get label(){return n()},get children(){return Y(yb,{get label(){return n()},get value(){return e.guide.size},min:1,max:4096,onChange:t=>e.onUpdate({size:t})})}})}}),null),Q(r,Y(q,{get when(){return e.guide.kind!==`grid`},get children(){return[Y(_b,{label:`Offset`,get children(){return Y(yb,{label:`Offset`,get value(){return e.guide.offset},min:0,max:4096,onChange:t=>e.onUpdate({offset:t})})}}),Y(_b,{label:`Gutter`,get children(){return Y(yb,{label:`Gutter`,get value(){return e.guide.gutter},min:0,max:800,onChange:t=>e.onUpdate({gutter:t})})}})]}}),null),J(()=>e.onBack,(e,t)=>{$(a,`onClick`,e,t)}),r};function Cb(e){let[t,n]=K(null),r=zr(()=>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(q,{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,Yi(`Layout guides`)),Q(a,Y(ff,{})),Q(t,Y(q,{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,Yi(`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(Gr,{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(hb,{get kind(){return t.kind}})),Q(o,()=>pb(t)),Q(i,Y(tf,{size:8,class:`msr:block msr:-rotate-90 msr:text-ink-400`}),null),Q(s,(()=>{var e=Ji(()=>!!t.visible);return()=>e()?Y(pf,{}):Y(mf,{})})()),Q(c,Y(rf,{size:10,class:`msr:block`})),J(()=>({e:t.visible?`Hide ${pb(t)}`:`Show ${pb(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 ${pb(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),J(()=>e.onAdd,(e,t)=>{$(a,`onClick`,e,t)}),t},children:t=>Y(Sb,{get guide(){return t()},get ownerWindow(){return e.ownerWindow},onBack:()=>n(null),onUpdate:n=>e.onUpdate(t().id,n)})})),i}var wb=`mesurer.layout-guides`,Tb=`layout-guides:v1`,Eb=`mesurer.layout-guides.pages`,Db=`mesurer.layout-guides.active`,Ob=`runtime:solid`,kb=`layout-guides.toggle`,Ab=`layout-guides.add`,jb=`layout-guides.update`,Mb=`layout-guides.remove`,Nb=`layout-guides.clear`,Pb=240,Fb=8,Ib=8,Lb=()=>({pages:{}}),Rb=(e,t)=>e.pages[t]??[],zb=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Bb=e=>typeof e==`string`,Vb=e=>typeof e==`boolean`,Hb=e=>typeof e==`number`,Ub=e=>e===`columns`||e===`rows`||e===`grid`,Wb=e=>e===`stretch`||e===`min`||e===`center`||e===`max`,Gb=e=>({...e}),Kb=e=>e.map(Gb),qb=e=>zb(e)?e:null,Jb=e=>{if(!e)return{};let t={};return Bb(e.id)&&(t.id=e.id),Ub(e.kind)&&(t.kind=e.kind),Vb(e.visible)&&(t.visible=e.visible),Bb(e.color)&&(t.color=e.color),Hb(e.opacity)&&(t.opacity=e.opacity),Hb(e.count)&&(t.count=e.count),Hb(e.size)&&(t.size=e.size),Hb(e.gutter)&&(t.gutter=e.gutter),Hb(e.offset)&&(t.offset=e.offset),Wb(e.align)&&(t.align=e.align),t},Yb=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},Xb={viewBox:`0 0 256 256`,paths:[`M48 48h160v8H48zM48 200h160v8H48zM48 56h8v144h-8zM200 56h8v144h-8z`,`M101 56h8v144h-8zM147 56h8v144h-8z`]},Zb=()=>ya({id:wb,version:`0.1.0`,requires:[Ob],provides:[Tb,`tool:layout-guides`],setup(e){let t=e.service.get(Ob);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:Eb,initial:Lb(),history:!0,persist:!0}),e.state.register({id:Db,initial:!1});let r=bs(t.ownerWindow),i=!1,[a,o]=K(0),s=new Set,c=0,l=()=>e.state.get(`mesurer.layout-guides.pages`)??Lb(),u=()=>e.state.get(`mesurer.layout-guides.active`)??!1,d=()=>fb(Rb(l(),r)),f=()=>(a(),u()?d():[]),p=t=>{e.state.update(Db,()=>t)},m=t=>{e.state.update(Eb,e=>({...e,pages:{...e.pages,[r]:Kb(t(fb(e.pages[r])))}}))};e.command.register(kb,()=>{let e=!u();return e&&d().length===0&&m(()=>[db()]),i=e,p(e),u()}),e.command.register(Ab,e=>{let t=db(Jb(qb(e)));return m(e=>[...e,t]),{...t}}),e.command.register(jb,e=>{let t=qb(e),n=t&&Bb(t.id)?t.id:null,r=Jb(qb(t?.patch));if(!n)throw Error(`layout-guides.update requires a guide id.`);m(e=>e.map(e=>e.id===n?db({...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(Mb,e=>{let t=qb(e),n=t&&Bb(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(Nb,()=>{m(()=>[])});let h=async(t,n)=>{let r=qb(await e.command.execute(t,n));if(!r)throw Error(`${t} did not return a layout guide.`);return db(Jb(r))},g={list:()=>d().map(e=>({...e})),add:(e={})=>h(Ab,Yb(e)),update:(e,t)=>h(jb,{id:e,patch:Yb(t)}),async remove(t){return await e.command.execute(Mb,{id:t})===!0},async clear(){await e.command.execute(Nb)},subscribe(e){s.add(e);let t=!1;return()=>{t||(t=!0,s.delete(e))}}};e.service.provide(Tb,g),e.tool.register({id:`layout-guides`,label:`Layout guides`,shortcut:`L`,command:kb,order:38,toolbarMode:`always`,compactPinned:!0,icon:Xb,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=qi(()=>Y(ib,{get guides(){return f()}}),_),y=t.createInspectorMount();y.element.dataset.mesurerLayoutGuidesPanelRoot=`true`,Object.assign(y.element.style,{position:`fixed`,left:`0`,top:`0`,width:`${Pb}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(Ib,n.right-Pb),Math.max(Ib,t.ownerWindow.innerWidth-Pb-Ib)),a=t.ownerWindow.innerHeight-n.bottom-Fb-Ib,o=Math.min(320,t.ownerWindow.innerHeight-16),s=a>=Math.min(o,320)?n.bottom+Fb:Math.max(Ib,n.top-Fb-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=qi(()=>Y(Cb,{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=ws(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()})}}),Qb=`mesurer:recording-bridge-ping`,$b=`mesurer:recording-bridge-request`,ex=`mesurer:recording-bridge-response`,tx=`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`,nx=.01,rx=e=>({width:e.innerWidth,height:e.innerHeight}),ix=(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)<=nx*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}},ax=(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},ox=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},sx=(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)}),cx=e=>e.location.origin===`null`?`*`:e.location.origin,lx=(e,t,n=``)=>`${e}:${t}:${n}`,ux=(e,t,n)=>{let r=`${t}:${n}:`;return e.startsWith(r)?e.slice(r.length):null},dx=e=>e.crypto?.randomUUID?.()??`mesurer-recording-${Date.now()}-${Math.random().toString(36).slice(2)}`,fx=e=>new Promise(t=>{let n=dx(e),r=e.location.origin,i=o=>{o.source===e&&o.origin===r&&ux(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(lx(Qb,n),cx(e))}),px=e=>new Promise(t=>{let n=dx(e),r=e.location.origin,i=o=>{if(o.source!==e||o.origin!==r)return;let s=ux(String(o.data??``),ex,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(lx($b,n),cx(e))}),mx=e=>e.__MESURER_RECORDING_HOST__?.captureRecordingStream??e.__MESURER_HOST__?.captureRecordingStream,hx=async(e,t)=>{let n=mx(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})},gx=async(e,t)=>{if(!e.isSecureContext||!await fx(e))return null;let n=await px(e);if(!n)return null;let r={mandatory:{chromeMediaSource:`tab`,chromeMediaSourceId:n}};return t.getUserMedia({audio:!1,video:r})},_x=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},vx=async(e,t)=>{let n=e.navigator.mediaDevices;if(!n)throw Error(`Screen recording is unavailable in this browser.`);if(mx(e))return _x(await hx(e,n),t);try{let r=await gx(e,n);if(r)return _x(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 _x(await n.getDisplayMedia(i),t)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)throw e;return _x(await n.getDisplayMedia({audio:!1,video:{frameRate:r}}),t)}},yx=async(e,t,n,r=60)=>{let i=await vx(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=tx,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=ax(e,n),s=!1;try{s=await ox(a,r)}catch{s=!1}s||r.remove(),await sx(o,t);let c=t.devicePixelRatio||1,l=ix(n,o.videoWidth,o.videoHeight,rx(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=tx,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 bx(f,n,rx(t)),f}catch(e){throw o.pause(),o.srcObject=null,o.remove(),i.getTracks().forEach(e=>e.stop()),e}},bx=(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=ix(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)},xx=e=>{e.source.pause(),e.source.srcObject=null,e.stream.getTracks().forEach(e=>e.stop()),e.cropTarget?.remove(),e.canvas.remove(),e.source.remove()},Sx={webm:`video/webm`,mp4:`video/mp4`},Cx=[`vp9`,`vp8`],wx=[`avc`],Tx=t=>new e.Quality(t),Ex=(e,t)=>Number.isFinite(e)&&e>0?e:t,Dx=(e,t,n)=>{let r=Math.max(2,Math.round(Ex(e,2))),i=Math.max(2,Math.round(Ex(t,2)));return n===`mp4`&&(r%2!=0&&(r+=1),i%2!=0&&(i+=1)),{width:r,height:i}},Ox=(e,t={})=>{let n=Math.max(.001,Ex(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`}},kx=e=>e===`webm`?Cx:wx,Ax=async(t,n,r,i,a=`medium`)=>{let o=Dx(n,r,t),s=Tx(a);for(let n of kx(t))if(await(0,e.canEncodeVideo)(n,{width:o.width,height:o.height,frameRate:i,quality:s}))return n;return null},jx=async(e,t,n=30)=>{let r=[];return await Ax(`webm`,e,t,n)&&r.push(`webm`),await Ax(`mp4`,e,t,n)&&r.push(`mp4`),r},Mx=t=>t===`webm`?new e.WebMOutputFormat:new e.Mp4OutputFormat,Nx=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 Ax(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:Mx(r),target:l}),d=new e.CanvasSource(t,{codec:c,quality:Tx(a)});u.addVideoTrack(d,{frameRate:i}),await u.start();let f=!1,p=-1;return{format:r,mimeType:Sx[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:Sx[r]})},async cancel(){if(!f){f=!0,d.close();try{await u.cancel()}catch{}}}}},Px=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()}},Fx=async(t,n={})=>{let r=await Px(t),i=Ox(r,n),a=Dx(r.width*i.scale,r.height*i.scale,i.format),o=await Ax(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:Mx(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:Tx(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:Sx[i.format]}),r=await Px(n);return{blob:n,format:i.format,duration:r.duration,width:r.width,height:r.height}}finally{s.dispose()}},Ix=(e,t=new Date)=>`mesurer-recording-${t.toISOString().replace(/[:.]/g,`-`)}.${e}`,Lx=10,Rx=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},zx=(e,t,n)=>{let r=e.createElement(`button`);return r.type=`button`,r.setAttribute(`aria-label`,t),r.title=t,r.textContent=n,Rx(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},Bx=(e,t)=>{let n=e.createElement(`button`);n.type=`button`,n.setAttribute(`role`,`menuitemradio`),Rx(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}},Vx=({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,Rx(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`);Rx(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`,Rx(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…`,Rx(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=zx(e,`Close`,`×`);o.dataset.mesurerRecordingDiscard=`true`,Rx(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`);Rx(s,{display:`flex`,height:`28px`,"align-items":`center`,gap:`8px`,"margin-top":`8px`}),n.append(s);let c=zx(e,`Play`,`▶`);c.dataset.mesurerRecordingPlay=`true`,s.append(c);let l=e.createElement(`span`);l.dataset.mesurerRecordingCurrentTime=`true`,l.textContent=`0:00.00`,Rx(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`,Rx(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`,Rx(d,{position:`absolute`,left:`${Lx}px`,right:`${Lx}px`,top:`0`,bottom:`0`}),u.append(d);let f=e.createElement(`div`);f.dataset.mesurerRecordingTimelineRail=`true`,Rx(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`,Rx(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`);Rx(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`,Rx(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`),Rx(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`),Rx(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`,Rx(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`);Rx(b,{position:`relative`,display:`flex`,height:`20px`,"align-items":`center`}),s.append(b);let x=zx(e,`Export options`,`1×`);x.dataset.mesurerRecordingExportOptions=`true`,x.setAttribute(`aria-haspopup`,`menu`),x.setAttribute(`aria-expanded`,`false`),Rx(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`),Rx(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`,Rx(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`,Rx(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=Bx(e,`${t}×`);return n.button.dataset.mesurerRecordingScale=String(t),E.append(n.button),{scale:t,...n}}),O=zx(e,`Download`,`↓`);O.dataset.mesurerRecordingExport=`true`,s.append(O);let k=zx(e,`Grow preview`,`↗`);k.dataset.mesurerRecordingExpand=`true`,s.append(k);let A=e.createElement(`p`);return A.dataset.mesurerRecordingPreviewStatus=`true`,A.setAttribute(`role`,`status`),Rx(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}},Hx=8,Ux=8,Wx=.05,Gx=200,Kx=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`)}`},qx=(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)},Jx=({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}=Vx({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,ee=e=>{let t=k?.duration??0;return t<=0?0:Math.min(1,Math.max(0,e/t))},H=()=>({start:L,end:R}),te=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))},U=()=>{let e=k?.duration??0,t=Math.min(e,Math.max(0,c.currentTime||0)),n=ee(L)*100,r=ee(R)*100;v.style.left=`${n}%`,y.style.left=`${r}%`,h.style.left=`${n}%`,h.style.width=`${Math.max(0,r-n)}%`,_.style.left=`${ee(t)*100}%`,v.setAttribute(`aria-valuemax`,String(Math.max(0,R-Wx))),v.setAttribute(`aria-valuenow`,String(L)),v.setAttribute(`aria-valuetext`,Kx(L)),y.setAttribute(`aria-valuemin`,String(Math.min(e,L+Wx))),y.setAttribute(`aria-valuemax`,String(e)),y.setAttribute(`aria-valuenow`,String(R)),y.setAttribute(`aria-valuetext`,Kx(R)),f.textContent=Kx(t),b.textContent=Kx(e)},W=(e,t=!0)=>{if(!k)return;let n=Math.min(R,Math.max(L,e));t&&!c.paused&&c.pause(),c.currentTime=n,U()},ne=(e,t=!1)=>{k&&(L=Math.min(Math.max(0,e),Math.max(0,R-Wx)),(t||c.currentTime<L)&&W(L),U())},re=(e,t=!1)=>{k&&(R=Math.max(Math.min(k.duration,e),Math.min(k.duration,L+Wx)),t?W(R):c.currentTime>R&&W(L),U())},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}×`}},G=()=>{w.replaceChildren();for(let t of P){let n=Bx(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,G()}),w.append(n.button)}},ae=()=>{if(C.style.display===`none`)return;let e=x.getBoundingClientRect(),n=Math.max(1,C.offsetHeight),r=e.top-Hx,i=t.innerHeight-e.bottom-Hx;r>=n||r>=i?(C.style.top=`auto`,C.style.bottom=`24px`):(C.style.top=`24px`,C.style.bottom=`auto`)},oe=e=>{C.style.display=e?`block`:`none`,S.setAttribute(`aria-expanded`,e?`true`:`false`),e&&ae()},se=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)},ce=()=>n.closest(`[data-mesurer-root='true']`)?.querySelector(`[data-mesurer-tool-id='recording']`)??e.querySelector(`[data-mesurer-tool-id='recording']`),le=()=>{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=ce()?.getBoundingClientRect(),i=r?r.left+r.width/2:t.innerWidth-Hx-e/2,a=Hx+e/2,s=Math.max(a,t.innerWidth-Hx-e/2),c=Math.min(Math.max(a,i),s),l=r?r.bottom+Ux:Hx;l+n>t.innerHeight-Hx&&(l=r?r.top-n-Ux:t.innerHeight-n-Hx),o.style.left=`${c}px`,o.style.top=`${Math.max(Hx,l)}px`,C.style.display!==`none`&&ae()},ue=()=>{c.pause(),c.removeAttribute(`src`),c.load(),A&&=(globalThis.URL.revokeObjectURL(A),null)},de=()=>{N+=1,V&&=(V.cancel(),null),ue(),k=null,z=null,B=null,oe(!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`,se(!1)},fe=()=>{if(!k||o.style.display===`none`||V)return;let e=o.getBoundingClientRect(),t=ce()?.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(),oe(!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:Gx,easing:`ease`,fill:`forwards`});V=a,a.finished.catch(()=>void 0).then(()=>{V===a&&(a.cancel(),V=null,o.style.removeProperty(`will-change`),i())})},pe=()=>{if(!(!k||M)){if(!c.paused){c.pause();return}(c.currentTime<L||c.currentTime>=R)&&(c.currentTime=L),c.play()}},me=()=>{z=null,B=null,_.style.height=`8px`},he=e=>{if(!z)return;let t=te(e);z===`start`?ne(t,!0):z===`end`?re(t,!0):W(t)},ge=(e,t)=>{!k||M||t.button!==0||(t.preventDefault(),t.stopPropagation(),z=e,B=t.pointerId,_.style.height=`10px`,he(t.clientX))},_e=e=>{B!==null&&e.pointerId===B&&he(e.clientX)},ve=e=>{B!==null&&e.pointerId===B&&me()};v.addEventListener(`pointerdown`,e=>ge(`start`,e)),y.addEventListener(`pointerdown`,e=>ge(`end`,e)),p.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-trim-handle]`)||ge(`playhead`,e)}),p.addEventListener(`pointermove`,e=>{B===null&&(g.style.display=`block`,g.style.left=`${ee(te(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`,_e,!0),t.addEventListener(`pointerup`,ve,!0),t.addEventListener(`pointercancel`,ve,!0),u.addEventListener(`click`,e=>{e.stopPropagation(),fe()}),s.addEventListener(`click`,e=>{let t=e.target;t instanceof Element&&t.closest(`button`)||pe()}),d.addEventListener(`click`,pe),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),U())}),c.addEventListener(`loadedmetadata`,()=>{U()}),S.addEventListener(`click`,()=>{M||oe(C.style.display===`none`)});for(let e of T)e.button.addEventListener(`click`,()=>{I=e.scale,ie()});let ye=e=>{C.style.display!==`none`&&(e.composedPath().includes(x)||oe(!1))};e.addEventListener(`pointerdown`,ye,!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(le)}),E.addEventListener(`click`,()=>{if(!k||M||P.length===0)return;let n=++N,{start:r,end:i}=H();se(!0),oe(!1),O.style.display=`none`,a({format:F,startTime:r,endTime:i,scale:I}).then(r=>{n===N&&qx(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&&se(!1)})}),o.addEventListener(`keydown`,e=>{if(e.key===`Escape`){if(C.style.display!==`none`){e.preventDefault(),oe(!1);return}e.preventDefault(),fe();return}(e.key===` `||e.code===`Space`)&&e.target===o&&(e.preventDefault(),pe())});let be=()=>le();return t.addEventListener(`resize`,be),{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`),ue(),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=Kx(e.duration),O.style.display=`none`,O.style.color=`var(--msr-color-ink-500, #64748b)`,oe(!1),G(),ie(),U(),se(!1),o.style.display=`block`,le(),o.focus({preventScroll:!0});let i=N;r(e).then(e=>{i!==N||!k||(P=e,F=e.includes(F)?F:e[0]??`webm`,G(),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=[],G(),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(le)},dismiss:de,dispose(){de(),t.removeEventListener(`resize`,be),t.removeEventListener(`pointermove`,_e,!0),t.removeEventListener(`pointerup`,ve,!0),t.removeEventListener(`pointercancel`,ve,!0),e.removeEventListener(`pointerdown`,ye,!0),o.remove()}}},Yx=3e3,Xx=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},Zx=({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`),Xx(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`,Xx(t,{position:`fixed`,background:`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),f.append(t),t}),m=e.createElement(`div`);m.dataset.mesurerRecordingMask=`true`,Xx(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`,Xx(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`);Xx(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`,Xx(_,{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`),Xx(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`);Xx(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 Xx(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`,Xx(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`,Xx(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`,Xx(j,{position:`absolute`,inset:`0`,display:`none`,"pointer-events":`none`}),h.append(j);let M=t=>{let n=e.createElement(`div`);Xx(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}`),Xx(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`),Xx(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`),Xx(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`,Xx(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`),Xx(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`),Xx(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,ee=null,H=0,te=()=>{z=null,B=null,V=!1,ee=null},U=(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`)}},W=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){U(p[0],{left:0,top:0,width:n,height:r});for(let e of p.slice(1))U(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(U(p[0],{left:0,top:0,width:n,height:e.top}),U(p[1],{left:0,top:e.top,width:e.left,height:e.height}),U(p[2],{left:e.left+e.width,top:e.top,width:Math.max(0,n-e.left-e.width),height:e.height}),U(p[3],{left:0,top:e.top+e.height,width:n,height:Math.max(0,r-e.top-e.height)}),h.style.display=`block`,U(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)}`,U(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=W(e);B=t,s(t),re(t)},G=e=>{te();for(let e of p)U(e,{left:0,top:0,width:0,height:0});U(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`},ae=()=>{d(!1),m.style.display=`none`,f.style.display=`none`,f.style.pointerEvents=`auto`,f.style.cursor=`crosshair`,_.style.removeProperty(`display`)},oe=()=>{te(),re(null),f.style.display=`none`,f.style.cursor=`crosshair`,n.style.pointerEvents=`none`},se=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`)},ce=()=>{P.style.display=`none`},le=e=>{H&&t.clearTimeout(H);let n=e instanceof Error?e.message:`Could not record this region.`;R.textContent=n,R.style.display=`block`,H=t.setTimeout(()=>{H=0,R.style.display=`none`},Yx)},ue=(e,t,n)=>{let r=B;!V||!r||e.button!==0||(e.preventDefault(),e.stopPropagation(),ee={kind:t,handle:n,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,rect:{...r}},f.setPointerCapture?.(e.pointerId))},de=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(Wa(z,z,{width:t.innerWidth,height:t.innerHeight})),f.setPointerCapture?.(e.pointerId))},fe=e=>{if(a()){if(ee){let n=ee,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(Wa(z,{x:e.clientX,y:e.clientY},{width:t.innerWidth,height:t.innerHeight}))}},pe=e=>{if(ee){ee=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=Wa(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=W(r),V=!0,f.style.cursor=`default`,s(B),re(B)},me=e=>{z=null,ee=null,f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId),re(B&&V?B:null)},he=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`,de),f.addEventListener(`pointermove`,fe),f.addEventListener(`pointerup`,pe),f.addEventListener(`pointercancel`,me),t.addEventListener(`keydown`,he,!0),h.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-resize]`)||ue(e,`move`)});for(let e of N)e.addEventListener(`pointerdown`,t=>{ue(t,`resize`,e.dataset.mesurerRecordingResize)});v.addEventListener(`pointerdown`,e=>{e.stopPropagation()}),v.addEventListener(`click`,e=>{e.stopPropagation()});let ge=(e,t)=>{let n=B,r=Number(e.value);!n||!Number.isFinite(r)||ie({...n,[t]:r})};return S.addEventListener(`change`,()=>ge(S,`width`)),C.addEventListener(`change`,()=>ge(C,`height`)),D.addEventListener(`change`,()=>ge(D,`left`)),O.addEventListener(`change`,()=>ge(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:()=>{te(),re(null),f.style.display=`block`,f.style.pointerEvents=`auto`,_.style.removeProperty(`display`),n.style.pointerEvents=`auto`},finishSelection:oe,showRecordingMask:G,hideRecordingMask:ae,placeRecordingStatus:se,hideRecordingStatus:ce,setRecordingTime(e){I.textContent=e},flashError:le,dispose(){f.removeEventListener(`pointerdown`,de),f.removeEventListener(`pointermove`,fe),f.removeEventListener(`pointerup`,pe),f.removeEventListener(`pointercancel`,me),t.removeEventListener(`keydown`,he,!0),H&&t.clearTimeout(H),oe()}}},Qx=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`))}}},$x=`mesurer.recording`,eS=`recording:v1`,tS=`mesurer.recording.settings`,nS=`runtime:solid`,rS=`recording.toggle`,iS=`recording.stop`,aS=`recording.discard`,oS=`recording.export`,sS=60,cS=60,lS={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`]},uS=e=>e?{...e}:null,dS=e=>({...e,rect:uS(e.rect)}),fS=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},pS=e=>e!=null&&!Array.isArray(e)&&typeof e==`object`,mS=e=>typeof e==`number`&&Number.isFinite(e),hS=e=>{if(!pS(e))return{};let t={};return(e.format===`webm`||e.format===`mp4`)&&(t.format=e.format),mS(e.startTime)&&(t.startTime=e.startTime),mS(e.endTime)&&(t.endTime=e.endTime),(e.scale===1||e.scale===2||e.scale===3)&&(t.scale=e.scale),t},gS=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}),_S=e=>({filename:e.filename,format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size}),vS=e=>({format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size,createdAt:e.createdAt}),yS=(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)},bS=(e={})=>ya({id:$x,version:`0.1.0`,requires:[nS],provides:[`tool:recording`,eS],setup(t){let n=t.service.get(nS);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=Qx(l);o.dataset.mesurerRecording=`true`,c.dataset.mesurerRecordingStatusRoot=`true`,fS(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`}),fS(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??cS)),f=e.quality??`medium`;t.state.register({id:tS,initial:{toolEnabled:e.toolEnabled??!0,frameRate:e.frameRate??sS},persist:!0});let p=()=>{let e=t.state.get(tS);return{toolEnabled:e?.toolEnabled??!0,frameRate:e?.frameRate===120?120:60}},m=e=>{t.state.update(tS,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=dS(h);for(let t of g)t(e)},j=e=>{h={...h,...e,rect:e.rect===void 0?h.rect:uS(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&&xx(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 jx(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 Fx(n.blob,e),i={...r,filename:Ix(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=Jx({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=uS(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,xx(r),T!==e||O)throw Error(`Recording was cancelled.`);let l=await Px(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&&(bx(e,h.rect??{left:0,top:0,width:i.innerWidth,height:i.innerHeight},rx(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)},ee=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 yx(r,i,e,a);if(O||T!==n){xx(s);return}let c=await Nx(s.canvas,{format:`webm`,frameRate:a,quality:f});if(O||T!==n){await c.cancel(),xx(s);return}if(v=s,y=c,E=i.performance.now(),D=0,bx(s,e,rx(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}},H=()=>{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}))},te=async e=>{if(h.status===`recording`){await B();return}if(h.status===`selecting`){await U();return}if(!e){H();return}if(e.width<4||e.height<4)throw Error(`Recording selection must be at least 4px by 4px.`);await ee(e)},U=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=Zx({ownerDocument:r,ownerWindow:i,root:o,statusRoot:c,rendererRoot:l,isSelecting:()=>h.status===`selecting`,isRecording:()=>h.status===`recording`,onRectChange:e=>j({rect:e}),onConfirm:ee,onCancel:U,onStop:async()=>{await B()},setRecordingInteractionActive:u.setActive});let W={snapshot:()=>dS(h),subscribe(e){return g.add(e),()=>g.delete(e)},settings:p,setSettings:m,formats:L,start:te,stop:B,cancel:U,discard:I,export:R};t.tool.register({id:`recording`,label:`Record`,shortcut:`Shift+R`,order:72,command:rS,toolbarMode:`select`,compactPinned:!0,icon:lS,active:M,hidden:()=>!p().toolEnabled,menu:{label:`Recording options`,items:[{id:`new`,label:`New recording`,disabled:()=>h.status===`recording`||h.status===`exporting`,run:()=>te()},{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 U()}},{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(rS,async()=>(await te(),gS(h))),t.command.register(iS,async()=>vS(await B())),t.command.register(aS,()=>(I(),gS(h))),t.command.register(oS,async e=>{let t=await R(hS(e));return yS(t,r,i),_S(t)}),t.service.provide(eS,W),t.lifecycle.onDispose(()=>{O=!0,++T,g.clear(),z.dispose(),x.dispose(),P(),F(!0),s.dispose(),a.dispose()})}}),xS=144,SS=96,CS=8,wS=4,TS=1800,ES=200,DS=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},OS=(e,t)=>({left:Math.min(Math.max(CS,e.left),Math.max(CS,t.innerWidth-xS-CS)),top:Math.min(Math.max(CS,e.top),Math.max(CS,t.innerHeight-SS-CS))}),kS=(e,t)=>{let n=e.createElement(`button`);return n.type=`button`,n.textContent=t,DS(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},AS=({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`,jS=e=>e!==null&&(e.nodeType===1||e.nodeType===11),MS=({ownerDocument:e,ownerWindow:t,root:n,previewDurationMs:r})=>{let i=n.closest(`[data-mesurer-root='true']`)??n.parentNode;if(!jS(i))throw Error(`Screenshot preview requires a mounted Mesurer host.`);let a=e.createElement(`div`);a.dataset.mesurerInspectorUi=`true`,a.dataset.mesurerScreenshotInteractive=`true`,DS(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,DS(o,{position:`fixed`,display:`none`,"z-index":`96`,width:`${xS}px`,height:`${SS}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`,DS(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`,DS(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`),DS(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`,DS(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`,DS(p,{position:`fixed`,top:`16px`,right:`16px`,display:`flex`,gap:`8px`,"pointer-events":`auto`});let m=kS(e,`Copy`);m.dataset.mesurerScreenshotViewerCopy=`true`,m.setAttribute(`aria-label`,`Copy screenshot`);let h=kS(e,`Save`);h.dataset.mesurerScreenshotViewerSave=`true`,h.setAttribute(`aria-label`,`Save screenshot`);let g=kS(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`),DS(_,{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`},TS)},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+CS);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:ES,easing:`ease`,fill:`forwards`});w=r,r.finished.catch(()=>void 0).then(()=>{w===r&&(r.cancel(),w=null,j())})},N=()=>OS({left:t.innerWidth-xS-CS,top:t.innerHeight-SS-CS},t),P=e=>{let n=OS(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 Ka(Promise.resolve(e),t),O(`Copied screenshot`)}catch{O(`Could not copy screenshot`,!0)}},L=()=>{let n=v;if(n)try{Ja(n,qa(),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)>=wS&&(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`)},ee=e=>{e.button!==0||!R(e.clientX,e.clientY,null)||e.preventDefault()},H=e=>{x?.pointerId===null&&z(e.clientX,e.clientY)},te=e=>{e.button===0&&x?.pointerId===null&&B()},U=e=>{e.pointerType!==`mouse`&&e.button===0&&R(e.clientX,e.clientY,e.pointerId)&&(o.setPointerCapture?.(e.pointerId),e.preventDefault())},W=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())},G=e=>{e.target!==s&&e.preventDefault()},ae=e=>{e.target===d&&k()},oe=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`,ee),o.addEventListener(`pointerdown`,U),o.addEventListener(`keydown`,ie),o.addEventListener(`contextmenu`,G),d.addEventListener(`click`,ae),m.addEventListener(`click`,()=>{I()}),h.addEventListener(`click`,L),g.addEventListener(`click`,k),t.addEventListener(`mousemove`,H,!0),t.addEventListener(`mouseup`,te,!0),t.addEventListener(`pointermove`,W,!0),t.addEventListener(`pointerup`,ne,!0),t.addEventListener(`pointercancel`,re,!0),t.addEventListener(`keydown`,oe,!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(AS(n)),r>0&&(S=t.setTimeout(j,r))},dismiss:j,dispose(){T||(T=!0,E(),D(),j(),t.removeEventListener(`mousemove`,H,!0),t.removeEventListener(`mouseup`,te,!0),t.removeEventListener(`pointermove`,W,!0),t.removeEventListener(`pointerup`,ne,!0),t.removeEventListener(`pointercancel`,re,!0),t.removeEventListener(`keydown`,oe,!0),o.removeEventListener(`mousedown`,ee),o.removeEventListener(`pointerdown`,U),o.removeEventListener(`keydown`,ie),o.removeEventListener(`contextmenu`,G),d.removeEventListener(`click`,ae),a.remove())}}},NS=`mesurer.screenshot`,PS=`screenshot`,FS=`mesurer.screenshot.settings`,IS=`mesurer.screenshot.active`,LS=`runtime:solid`,RS=`screenshot.toggle`,zS=2500,BS=0,VS=[`[data-mesurer-measurement='true']`,`[data-mesurer-selected-measurement='true']`,`[data-mesurer-selection-spacing-target='true']`,`[data-mesurer-guide='true']`,`[data-mesurer-distance='true']`].join(`,`),HS=`${VS},[data-mesurer-rulers='true']`,US={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`]},WS=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},GS=(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`)}},KS=e=>{let t=e(FS);return{toolEnabled:t?.toolEnabled??!0,copy:t?.copy??!0,download:t?.download??!1,includeMeasurements:t?.includeMeasurements??!1}},qS=e=>({value:e.style.getPropertyValue(`display`),priority:e.style.getPropertyPriority(`display`)}),JS=(e,t)=>{t.value||t.priority?e.style.setProperty(`display`,t.value,t.priority):e.style.removeProperty(`display`)},YS=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},XS=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=YS(e,t);r&&n.add(r)}for(let e of t.querySelectorAll(VS)){let r=YS(e,t);r&&n.add(r)}let r=[];for(let e of n)e.dataset.mesurerInspectorUi!==`true`&&(r.push({element:e,display:qS(e)}),e.style.setProperty(`display`,`none`,`important`));return()=>{for(let e of r)JS(e.element,e.display)}},ZS=e=>Array.from(e.querySelectorAll(HS)).filter(e=>e.dataset.mesurerInspectorUi===`true`).map(e=>({element:e,display:qS(e)})),QS=e=>{for(let t of e)t.element.isConnected&&JS(t.element,t.display)},$S=(e={})=>ya({id:NS,version:`0.1.0`,requires:[LS],provides:[`tool:screenshot`,`capture:screenshot`,`settings:screenshot`],setup(t){let n=t.service.get(LS);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??mo,l=e.previewDurationMs??BS;t.state.register({id:FS,initial:{toolEnabled:e.toolEnabled??!0,copy:e.copy??!0,download:e.download??!1,includeMeasurements:e.includeMeasurements??!1},persist:!0}),t.state.register({id:IS,initial:!1});let u=o.element;u.dataset.mesurerScreenshot=`true`,WS(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`),WS(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 WS(e,{position:`fixed`,"background-color":`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),d.append(e),e}),p=r.createElement(`div`);WS(p,{position:`fixed`,display:`none`,border:`1px solid #0d99ff`,"box-sizing":`border-box`,"pointer-events":`none`}),d.append(p);let m=r.createElement(`div`);WS(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`,WS(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`,WS(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=()=>KS(t.state.get),E=e=>{t.state.update(FS,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){GS(f[0],{left:0,top:0,width:t,height:n});for(let e of f.slice(1))GS(e,{left:0,top:0,width:0,height:0});p.style.display=`none`,m.style.display=`none`;return}GS(f[0],{left:0,top:0,width:t,height:e.top}),GS(f[1],{left:0,top:e.top,width:e.left,height:e.height}),GS(f[2],{left:e.left+e.width,top:e.top,width:Math.max(0,t-e.left-e.width),height:e.height}),GS(f[3],{left:0,top:e.top+e.height,width:t,height:Math.max(0,n-e.top-e.height)}),p.style.display=`block`,GS(p,e),m.style.display=`block`,m.textContent=`${Math.round(e.width)} × ${Math.round(e.height)}`,GS(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=MS({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`},zS)},F=()=>{_=null,A(null),d.style.visibility=``,d.style.display=`none`,u.style.pointerEvents=`none`,D(!1),k()},I=()=>{b+=1,F(),ho(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?ZS(r):[],u=s.includeMeasurements?()=>void 0:XS(n.portalTarget);a.prepareCapture(),s.includeMeasurements&&QS(l);try{d.style.visibility=`hidden`,await Ya(i);let n=await Ga(await c({ownerDocument:r,ownerWindow:i}),e,{width:i.innerWidth,height:i.innerHeight},r,Ua(r));if(b!==o)throw Error(`Screenshot capture was cancelled.`);let a=!1,l=!1,u=s.copy?Ka(Promise.resolve(n),i).then(()=>{a=!0}):Promise.resolve(),f=s.download?Promise.resolve().then(()=>{Ja(n,qa(),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 po(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(Wa(_,_,{width:i.innerWidth,height:i.innerHeight})),d.setPointerCapture?.(e.pointerId))},B=e=>{!w()||!_||A(Wa(_,{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=Wa(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()})},ee=e=>{_=null,d.hasPointerCapture?.(e.pointerId)&&d.releasePointerCapture(e.pointerId),A(null)},H=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`,ee),i.addEventListener(`keydown`,H,!0);let te={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:RS,toolbarMode:`select`,compactPinned:!0,icon:US,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(RS,R),t.service.provide(PS,te),t.lifecycle.onDispose(()=>{C=!0,b+=1,d.removeEventListener(`pointerdown`,z),d.removeEventListener(`pointermove`,B),d.removeEventListener(`pointerup`,V),d.removeEventListener(`pointercancel`,ee),i.removeEventListener(`keydown`,H,!0),y&&i.clearTimeout(y),M.dispose(),k(),ho(i),a.finishCapture(),a.dispose(),o.dispose()})}}),eC=e=>Number.parseFloat(e)||0,tC=0,nC=(e,t)=>{let n=t.CSS;return n?.escape?n.escape(e):e.replace(/[^a-zA-Z0-9_-]/g,e=>`\\${e}`)},rC=e=>e.nodeType===9,iC=e=>e.nodeType===11;function aC(e){let t=e.getRootNode();return iC(t)?t:e.ownerDocument}var oC=(e,t)=>{if(rC(e)||iC(e))return e;let n=aC(e);return iC(n)?n:t},sC=600,cC=`audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video`,lC=new WeakMap,uC=e=>{let t=e;for(;t;){if((lC.get(t)??0)>0)return!0;let e=t.getRootNode();t=iC(e)?e.host:t.parentElement}return!1},dC=(e,t)=>t.x>=e.left&&t.x<=e.right&&t.y>=e.top&&t.y<=e.bottom,fC=(e,t)=>Array.from(e.getClientRects()).some(e=>dC(e,t)),pC=(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},mC=(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`},hC=(e,t)=>!!e.textContent?.trim()||mC(e,t),gC=(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},_C=(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)||uC(n)||r.getComputedStyle(n).pointerEvents!==`none`||pC(n,e,r)||!fC(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<=sC;){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=gC(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)},vC=(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=aC(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)}},yC=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},bC=(e,t,n,r)=>{let i=r.defaultView;if(!i)return[];let a=vC(_C(e,t,r).filter(e=>hC(e,i)),e,t);if(a.length>0)return a;if(e.textContent?.trim()&&!e.matches(cC)||e.matches(`a, button, input, select, textarea, label, summary, [contenteditable='true']`))return[];let o=[],s=new Set,c=!rC(n)&&!iC(n)?n:null,l=e.parentElement;for(;l&&l!==r.body&&l!==r.documentElement&&!(c&&l!==c&&!c.contains(l));){let a=l,u=yC(e,a),d=_C(a,t,r).filter(e=>{if(!SC(e,n)||e.closest(`[aria-hidden='true'], [inert]`))return!1;let t=yC(e,a);return t===null||t!==u});for(let e of d)s.has(e)||!hC(e,i)||(s.add(e),o.push(e));if(a===c)break;l=a.parentElement}return vC(o,e,t)};function xC(e,t,n=rC(t)?t:t.ownerDocument??document){let r=oC(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||!SC(a,t))continue;let o=bC(a,e,t,n);if(o.length>0)return o[0];if(i.getComputedStyle(a).pointerEvents!==`none`)return a}return null}function SC(e,t){if(rC(t))return!0;let n=e;for(;n;){if(t===n||t.contains(n))return!0;let e=n.getRootNode();if(!iC(e))return!1;n=e.host}return!1}function CC(e,t){if(!e)return t();let n=lC.get(e)??0;lC.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?lC.delete(e):lC.set(e,n);for(let[e,t,n]of i)t?e.style.setProperty(`pointer-events`,t,n):e.style.removeProperty(`pointer-events`)}}function wC(e){let t=e.ownerDocument.defaultView??window;if(e.id)return`#${nC(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 TC(e,t,n=`dom-inspection-${++tC}`){let r=e.getBoundingClientRect(),i=t.getComputedStyle(e),a={top:eC(i.paddingTop),right:eC(i.paddingRight),bottom:eC(i.paddingBottom),left:eC(i.paddingLeft)},o={top:eC(i.marginTop),right:eC(i.marginRight),bottom:eC(i.marginBottom),left:eC(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 EC(e){let t=e.ownerDocument.defaultView??window,n=t.getComputedStyle(e),r=e instanceof t.HTMLElement?e:null,i=e.getBoundingClientRect(),a=r?TC(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:wC(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 DC=`text-edit`,OC=e=>EC(e);function kC(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||SC(n,t),a=async()=>{let t=(e.getPluginHost()??await e.waitForPluginHost()).service.get(DC);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?OC(n):null},inspectAll(e,n=50){return[...t.querySelectorAll(e)].slice(0,Math.max(0,n)).map(OC)},at(n,r){let a=t.querySelector?.(`[data-mesurer-island]`)??null;return CC(a?.shadowRoot?.querySelector(`[data-mesurer-root='true']`)??a,()=>{let a=xC({x:n,y:r},t,e.ownerDocument);return a&&i(a)?OC(a):null})},distance(e,t){let n=r(e),i=r(t);if(!n||!i)return null;let a=OC(n),o=OC(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(OC)),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 AC=`0.2.2-beta.6`,jC=uh,MC=dh,NC=()=>({...og(),version:AC}),PC=MC,FC=(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,IC=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}},LC=(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),RC=e=>[...e.measurements,...e.activeMeasurement&&!e.measurements.some(t=>t.id===e.activeMeasurement?.id)?[e.activeMeasurement]:[]];function zC(e){let{workspace:t,scope:n,guideTolerance:r}=e;if(n.kind===`workspace`)return{guides:t.guides.map(e=>({...e})),measurements:RC(t),distances:[...t.distances]};let i=new Set(n.elements),a=e=>e!=null&&i.has(e),o=e=>n.regions.some(t=>FC(e,t));return{guides:t.guides.filter(e=>LC(e,n.regions,r)).map(e=>({...e})),measurements:RC(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 BC={opacity:1,width:1,pattern:`solid`,dashLength:6,gap:4},VC={opacity:1,edgeReveal:!1};({...BC}),{...VC};var HC=10,UC=e=>({left:e.left,top:e.top,width:e.width,height:e.height}),WC=e=>{let t=new Set,n=[];for(let r of e)!r?.isConnected||t.has(r)||(t.add(r),n.push(r));return n},GC=e=>e.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`;function KC(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=>UC(t.elementRect?.(e)??e.getBoundingClientRect()),s=[],c=[],l={kind:`workspace`},u=new Map;if(`annotation`in i){let e=t.annotation(i.annotation);if(!e)throw Error(`Mesurer annotation not found: ${i.annotation}`);for(let t of e.resolvedTargets)t.element?.isConnected&&u.set(t.element,t.target.id);s=WC(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`;l={kind:`annotation`,annotationId:e.id,note:e.note,targetStatus:o}}else if(i.scope===`selection`){let e=t.currentSelection();if(s=WC(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=WC([...t.currentSelection().elements,...a.measurements.map(e=>e.elementRef),a.activeMeasurement?.elementRef,...a.heldDistances.flatMap(e=>[e.elementRefA,e.elementRefB])]);let d=l.kind===`workspace`?[]:c.length?c:s.map(o),f=zC({workspace:{guides:a.guides,measurements:a.measurements,activeMeasurement:a.activeMeasurement,distances:a.heldDistances},scope:l.kind===`workspace`?{kind:`workspace`}:{kind:`scoped`,elements:s,regions:d},guideTolerance:a.guideRelevanceTolerance??HC}),p=f.measurements,m=f.distances,h=f.guides,g=WC([...s,...p.map(e=>e.elementRef),...m.flatMap(e=>[e.elementRefA,e.elementRefB])]),_=new Map,v=new Set(u.values()),y=1,b=()=>{let e=`target-${y++}`;for(;v.has(e);)e=`target-${y++}`;return v.add(e),e},x=g.map(e=>{let t=u.get(e)??b(),n=o(e),r=EC(e);return _.set(e,t),{ref:t,inspection:{...r,rect:{...n,right:n.left+n.width,bottom:n.top+n.height,x:n.left,y:n.top}}}}),S=p.map(e=>{let t={id:e.id,rect:UC(e.rect),deltaX:e.deltaX,deltaY:e.deltaY};e.snapped!==void 0&&(t.snapped=e.snapped);let n=e.elementRef?_.get(e.elementRef):void 0;return n&&(t.targetRef=n),t}),C=m.map(e=>{let t={id:e.id,rectA:UC(e.rectA),rectB:UC(e.rectB),horizontal:e.horizontal?{...e.horizontal}:null,vertical:e.vertical?{...e.vertical}:null},n=e.elementRefA?_.get(e.elementRefA):void 0,r=e.elementRefB?_.get(e.elementRefB):void 0;return n&&(t.targetARef=n),r&&(t.targetBRef=r),t});return{schema:`mesurer.context/v1`,id:GC(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(UC),visualState:{rulersVisible:a.rulersVisible,xrayVisible:a.xrayVisible},targets:x,visualContext:{guides:h,layoutGuides:(e.layoutGuides??[]).map(e=>({...e})),measurements:S,distances:C}}}var qC=e=>`${Math.round(e*100)/100}px`,JC=e=>`x=${qC(e.left)} y=${qC(e.top)} w=${qC(e.width)} h=${qC(e.height)}`;function YC(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,`Target status: ${e.scope.targetStatus}`):t.push(``,`Scope: ${e.scope.kind}`),e.regions.length&&(t.push(``,`Requested regions`),e.regions.forEach((e,n)=>t.push(`- region-${n+1}: ${JC(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;t.push(`[${n.ref}] ${e.selector}`,` rect: ${JC(e.rect)}`,` margin: ${qC(e.margin.top)} ${qC(e.margin.right)} ${qC(e.margin.bottom)} ${qC(e.margin.left)}`,` padding: ${qC(e.padding.top)} ${qC(e.padding.right)} ${qC(e.padding.bottom)} ${qC(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`}=${qC(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 ${qC(n.size)}`:`${n.count} ${n.kind}; gutter=${qC(n.gutter)}; offset=${qC(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}: `:``}${JC(n.rect)}; delta=${qC(n.deltaX)} × ${qC(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=${qC(n.horizontal.value)}`:null,n.vertical?`vertical=${qC(n.vertical.value)}`:null].filter(Boolean).join(`; `);t.push(`- ${e?`${e}: `:``}${r||`overlapping`}`)}}return t.join(`
2140
+ `,t.head.append(s),i.append(a);let c=!1;return{element:a,dispose(){c||(c=!0,o(),s.remove(),a.remove())}}}var tb=e=>`color-mix(in srgb, ${e.color} ${e.opacity*100}%, transparent)`,nb=e=>e===`max`?`end`:e===`center`?`center`:`start`,rb=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=nb(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 ib(e){let t=()=>e.guides.filter(e=>e.visible);return Y(q,{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(Gr,{get each(){return t()},children:e=>Y(q,{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(Gr,{get each(){return Array.from({length:e.count})},children:()=>(()=>{var t=X(`div`,{"data-mesurer-layout-band":`true`});return J(()=>({"min-width":`0`,"min-height":`0`,width:`100%`,height:`100%`,"background-color":tb(e)}),(e,n)=>{$(t,`style`,e,n)}),t})()})),J(()=>({e:e.id,t:e.kind,a:rb(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 J(()=>({e:e.id,t:{"background-image":`linear-gradient(to right, ${tb(e)} 1px, transparent 1px), linear-gradient(to bottom, ${tb(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 ab=`#FF0000`,ob=.1,sb=new Set([`columns`,`rows`,`grid`]),cb=new Set([`stretch`,`min`,`center`,`max`]),lb=(e,t,n)=>Math.min(n,Math.max(t,e)),ub=(e,t)=>e!==void 0&&Number.isFinite(e)?e:t,db=(e={})=>{let t=e.kind&&sb.has(e.kind)?e.kind:`columns`,n=e.align&&cb.has(e.align)?e.align:t===`grid`?`min`:`stretch`,r=e.id?.trim(),i=e.color?.trim();return{id:r||jo(),kind:t,visible:e.visible??!0,color:i||`#FF0000`,opacity:lb(ub(e.opacity,ob),0,1),count:lb(Math.round(ub(e.count,5)),1,24),size:lb(ub(e.size,72),1,4096),gutter:lb(ub(e.gutter,20),0,800),offset:lb(ub(e.offset,0),0,4096),align:n}},fb=e=>(e??[]).map(db),pb=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)`},mb=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`})),J(()=>({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})(),hb=e=>e.kind===`rows`?Y(df,{size:14}):e.kind===`grid`?Y(lf,{size:14}):Y(uf,{size:14}),gb=`msr:grid-cols-[78px_minmax(0,1fr)]`,_b=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})(),vb=e=>(()=>{var t=X(`span`,{class:`msr:relative msr:block msr:w-full`}),n=X(`select`,{class:Ed,onPointerDown:e=>e.stopPropagation(),onChange:t=>e.onChange(t.currentTarget.value)});return Z(t,n),Q(n,()=>e.children),Q(t,Y(Dd,{}),null),J(()=>({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})(),yb=e=>{let[t,n]=K(!1),[r,i]=K(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(Od,{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 J(()=>({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}})},bb=e=>e===`rows`||e===`grid`?e:`columns`,xb=e=>e===`min`||e===`center`||e===`max`?e:`stretch`,Sb=e=>{let t=zr(()=>e.guide.kind===`rows`?{stretch:`Stretch`,min:`Top`,center:`Center`,max:`Bottom`}:{stretch:`Stretch`,min:`Left`,center:`Center`,max:`Right`}),n=zr(()=>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(vb,{label:`Layout guide type`,get value(){return e.guide.kind},onChange:t=>{let n=bb(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,Yi(`Columns`)),e})(),(()=>{var e=X(`option`,{value:`rows`});return Z(e,Yi(`Rows`)),e})(),(()=>{var e=X(`option`,{value:`grid`});return Z(e,Yi(`Grid`)),e})()]}}),a),Q(a,Y(mb,{})),Q(r,Y(q,{get when(){return e.guide.kind!==`grid`},get children(){return Y(_b,{label:`Count`,get children(){return Y(yb,{label:`Count`,get value(){return e.guide.count},min:1,max:24,onChange:t=>e.onUpdate({count:t})})}})}}),null),Q(r,Y(kd,{label:`Color`,columns:gb,get value(){return Oa({...Ea(e.guide.color)??Ea(`#FF0000`),alpha:e.guide.opacity})},fallback:ab,get ownerWindow(){return e.ownerWindow},onChange:t=>{let n=Ea(t);e.onUpdate({color:n?Oa({...n,alpha:1}).slice(0,7):t,opacity:n?.alpha??e.guide.opacity})}}),null),Q(r,Y(q,{get when(){return e.guide.kind!==`grid`},get children(){return Y(_b,{label:`Type`,get children(){return Y(vb,{label:`Alignment`,get value(){return e.guide.align},onChange:t=>e.onUpdate({align:xb(t)}),get children(){return Y(Gr,{each:[`stretch`,`min`,`center`,`max`],children:e=>(()=>{var n=X(`option`,{value:e});return Q(n,()=>t()[e]),n})()})}})}})}}),null),Q(r,Y(q,{get when(){return e.guide.kind===`grid`||e.guide.align!==`stretch`},get children(){return Y(_b,{get label(){return n()},get children(){return Y(yb,{get label(){return n()},get value(){return e.guide.size},min:1,max:4096,onChange:t=>e.onUpdate({size:t})})}})}}),null),Q(r,Y(q,{get when(){return e.guide.kind!==`grid`},get children(){return[Y(_b,{label:`Offset`,get children(){return Y(yb,{label:`Offset`,get value(){return e.guide.offset},min:0,max:4096,onChange:t=>e.onUpdate({offset:t})})}}),Y(_b,{label:`Gutter`,get children(){return Y(yb,{label:`Gutter`,get value(){return e.guide.gutter},min:0,max:800,onChange:t=>e.onUpdate({gutter:t})})}})]}}),null),J(()=>e.onBack,(e,t)=>{$(a,`onClick`,e,t)}),r};function Cb(e){let[t,n]=K(null),r=zr(()=>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(q,{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,Yi(`Layout guides`)),Q(a,Y(ff,{})),Q(t,Y(q,{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,Yi(`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(Gr,{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(hb,{get kind(){return t.kind}})),Q(o,()=>pb(t)),Q(i,Y(tf,{size:8,class:`msr:block msr:-rotate-90 msr:text-ink-400`}),null),Q(s,(()=>{var e=Ji(()=>!!t.visible);return()=>e()?Y(pf,{}):Y(mf,{})})()),Q(c,Y(rf,{size:10,class:`msr:block`})),J(()=>({e:t.visible?`Hide ${pb(t)}`:`Show ${pb(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 ${pb(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),J(()=>e.onAdd,(e,t)=>{$(a,`onClick`,e,t)}),t},children:t=>Y(Sb,{get guide(){return t()},get ownerWindow(){return e.ownerWindow},onBack:()=>n(null),onUpdate:n=>e.onUpdate(t().id,n)})})),i}var wb=`mesurer.layout-guides`,Tb=`layout-guides:v1`,Eb=`mesurer.layout-guides.pages`,Db=`mesurer.layout-guides.active`,Ob=`runtime:solid`,kb=`layout-guides.toggle`,Ab=`layout-guides.add`,jb=`layout-guides.update`,Mb=`layout-guides.remove`,Nb=`layout-guides.clear`,Pb=240,Fb=8,Ib=8,Lb=()=>({pages:{}}),Rb=(e,t)=>e.pages[t]??[],zb=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Bb=e=>typeof e==`string`,Vb=e=>typeof e==`boolean`,Hb=e=>typeof e==`number`,Ub=e=>e===`columns`||e===`rows`||e===`grid`,Wb=e=>e===`stretch`||e===`min`||e===`center`||e===`max`,Gb=e=>({...e}),Kb=e=>e.map(Gb),qb=e=>zb(e)?e:null,Jb=e=>{if(!e)return{};let t={};return Bb(e.id)&&(t.id=e.id),Ub(e.kind)&&(t.kind=e.kind),Vb(e.visible)&&(t.visible=e.visible),Bb(e.color)&&(t.color=e.color),Hb(e.opacity)&&(t.opacity=e.opacity),Hb(e.count)&&(t.count=e.count),Hb(e.size)&&(t.size=e.size),Hb(e.gutter)&&(t.gutter=e.gutter),Hb(e.offset)&&(t.offset=e.offset),Wb(e.align)&&(t.align=e.align),t},Yb=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},Xb={viewBox:`0 0 256 256`,paths:[`M48 48h160v8H48zM48 200h160v8H48zM48 56h8v144h-8zM200 56h8v144h-8z`,`M101 56h8v144h-8zM147 56h8v144h-8z`]},Zb=()=>ya({id:wb,version:`0.1.0`,requires:[Ob],provides:[Tb,`tool:layout-guides`],setup(e){let t=e.service.get(Ob);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:Eb,initial:Lb(),history:!0,persist:!0}),e.state.register({id:Db,initial:!1});let r=bs(t.ownerWindow),i=!1,[a,o]=K(0),s=new Set,c=0,l=()=>e.state.get(`mesurer.layout-guides.pages`)??Lb(),u=()=>e.state.get(`mesurer.layout-guides.active`)??!1,d=()=>fb(Rb(l(),r)),f=()=>(a(),u()?d():[]),p=t=>{e.state.update(Db,()=>t)},m=t=>{e.state.update(Eb,e=>({...e,pages:{...e.pages,[r]:Kb(t(fb(e.pages[r])))}}))};e.command.register(kb,()=>{let e=!u();return e&&d().length===0&&m(()=>[db()]),i=e,p(e),u()}),e.command.register(Ab,e=>{let t=db(Jb(qb(e)));return m(e=>[...e,t]),{...t}}),e.command.register(jb,e=>{let t=qb(e),n=t&&Bb(t.id)?t.id:null,r=Jb(qb(t?.patch));if(!n)throw Error(`layout-guides.update requires a guide id.`);m(e=>e.map(e=>e.id===n?db({...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(Mb,e=>{let t=qb(e),n=t&&Bb(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(Nb,()=>{m(()=>[])});let h=async(t,n)=>{let r=qb(await e.command.execute(t,n));if(!r)throw Error(`${t} did not return a layout guide.`);return db(Jb(r))},g={list:()=>d().map(e=>({...e})),add:(e={})=>h(Ab,Yb(e)),update:(e,t)=>h(jb,{id:e,patch:Yb(t)}),async remove(t){return await e.command.execute(Mb,{id:t})===!0},async clear(){await e.command.execute(Nb)},subscribe(e){s.add(e);let t=!1;return()=>{t||(t=!0,s.delete(e))}}};e.service.provide(Tb,g),e.tool.register({id:`layout-guides`,label:`Layout guides`,shortcut:`L`,command:kb,order:38,toolbarMode:`always`,compactPinned:!0,icon:Xb,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=qi(()=>Y(ib,{get guides(){return f()}}),_),y=t.createInspectorMount();y.element.dataset.mesurerLayoutGuidesPanelRoot=`true`,Object.assign(y.element.style,{position:`fixed`,left:`0`,top:`0`,width:`${Pb}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(Ib,n.right-Pb),Math.max(Ib,t.ownerWindow.innerWidth-Pb-Ib)),a=t.ownerWindow.innerHeight-n.bottom-Fb-Ib,o=Math.min(320,t.ownerWindow.innerHeight-16),s=a>=Math.min(o,320)?n.bottom+Fb:Math.max(Ib,n.top-Fb-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=qi(()=>Y(Cb,{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=ws(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()})}}),Qb=`mesurer:recording-bridge-ping`,$b=`mesurer:recording-bridge-request`,ex=`mesurer:recording-bridge-response`,tx=`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`,nx=.01,rx=e=>({width:e.innerWidth,height:e.innerHeight}),ix=(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)<=nx*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}},ax=(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},ox=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},sx=(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)}),cx=e=>e.location.origin===`null`?`*`:e.location.origin,lx=(e,t,n=``)=>`${e}:${t}:${n}`,ux=(e,t,n)=>{let r=`${t}:${n}:`;return e.startsWith(r)?e.slice(r.length):null},dx=e=>e.crypto?.randomUUID?.()??`mesurer-recording-${Date.now()}-${Math.random().toString(36).slice(2)}`,fx=e=>new Promise(t=>{let n=dx(e),r=e.location.origin,i=o=>{o.source===e&&o.origin===r&&ux(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(lx(Qb,n),cx(e))}),px=e=>new Promise(t=>{let n=dx(e),r=e.location.origin,i=o=>{if(o.source!==e||o.origin!==r)return;let s=ux(String(o.data??``),ex,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(lx($b,n),cx(e))}),mx=e=>e.__MESURER_RECORDING_HOST__?.captureRecordingStream??e.__MESURER_HOST__?.captureRecordingStream,hx=async(e,t)=>{let n=mx(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})},gx=async(e,t)=>{if(!e.isSecureContext||!await fx(e))return null;let n=await px(e);if(!n)return null;let r={mandatory:{chromeMediaSource:`tab`,chromeMediaSourceId:n}};return t.getUserMedia({audio:!1,video:r})},_x=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},vx=async(e,t)=>{let n=e.navigator.mediaDevices;if(!n)throw Error(`Screen recording is unavailable in this browser.`);if(mx(e))return _x(await hx(e,n),t);try{let r=await gx(e,n);if(r)return _x(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 _x(await n.getDisplayMedia(i),t)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)throw e;return _x(await n.getDisplayMedia({audio:!1,video:{frameRate:r}}),t)}},yx=async(e,t,n,r=60)=>{let i=await vx(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=tx,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=ax(e,n),s=!1;try{s=await ox(a,r)}catch{s=!1}s||r.remove(),await sx(o,t);let c=t.devicePixelRatio||1,l=ix(n,o.videoWidth,o.videoHeight,rx(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=tx,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 bx(f,n,rx(t)),f}catch(e){throw o.pause(),o.srcObject=null,o.remove(),i.getTracks().forEach(e=>e.stop()),e}},bx=(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=ix(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)},xx=e=>{e.source.pause(),e.source.srcObject=null,e.stream.getTracks().forEach(e=>e.stop()),e.cropTarget?.remove(),e.canvas.remove(),e.source.remove()},Sx={webm:`video/webm`,mp4:`video/mp4`},Cx=[`vp9`,`vp8`],wx=[`avc`],Tx=t=>new e.Quality(t),Ex=(e,t)=>Number.isFinite(e)&&e>0?e:t,Dx=(e,t,n)=>{let r=Math.max(2,Math.round(Ex(e,2))),i=Math.max(2,Math.round(Ex(t,2)));return n===`mp4`&&(r%2!=0&&(r+=1),i%2!=0&&(i+=1)),{width:r,height:i}},Ox=(e,t={})=>{let n=Math.max(.001,Ex(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`}},kx=e=>e===`webm`?Cx:wx,Ax=async(t,n,r,i,a=`medium`)=>{let o=Dx(n,r,t),s=Tx(a);for(let n of kx(t))if(await(0,e.canEncodeVideo)(n,{width:o.width,height:o.height,frameRate:i,quality:s}))return n;return null},jx=async(e,t,n=30)=>{let r=[];return await Ax(`webm`,e,t,n)&&r.push(`webm`),await Ax(`mp4`,e,t,n)&&r.push(`mp4`),r},Mx=t=>t===`webm`?new e.WebMOutputFormat:new e.Mp4OutputFormat,Nx=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 Ax(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:Mx(r),target:l}),d=new e.CanvasSource(t,{codec:c,quality:Tx(a)});u.addVideoTrack(d,{frameRate:i}),await u.start();let f=!1,p=-1;return{format:r,mimeType:Sx[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:Sx[r]})},async cancel(){if(!f){f=!0,d.close();try{await u.cancel()}catch{}}}}},Px=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()}},Fx=async(t,n={})=>{let r=await Px(t),i=Ox(r,n),a=Dx(r.width*i.scale,r.height*i.scale,i.format),o=await Ax(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:Mx(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:Tx(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:Sx[i.format]}),r=await Px(n);return{blob:n,format:i.format,duration:r.duration,width:r.width,height:r.height}}finally{s.dispose()}},Ix=(e,t=new Date)=>`mesurer-recording-${t.toISOString().replace(/[:.]/g,`-`)}.${e}`,Lx=10,Rx=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},zx=(e,t,n)=>{let r=e.createElement(`button`);return r.type=`button`,r.setAttribute(`aria-label`,t),r.title=t,r.textContent=n,Rx(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},Bx=(e,t)=>{let n=e.createElement(`button`);n.type=`button`,n.setAttribute(`role`,`menuitemradio`),Rx(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}},Vx=({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,Rx(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`);Rx(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`,Rx(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…`,Rx(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=zx(e,`Close`,`×`);o.dataset.mesurerRecordingDiscard=`true`,Rx(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`);Rx(s,{display:`flex`,height:`28px`,"align-items":`center`,gap:`8px`,"margin-top":`8px`}),n.append(s);let c=zx(e,`Play`,`▶`);c.dataset.mesurerRecordingPlay=`true`,s.append(c);let l=e.createElement(`span`);l.dataset.mesurerRecordingCurrentTime=`true`,l.textContent=`0:00.00`,Rx(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`,Rx(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`,Rx(d,{position:`absolute`,left:`${Lx}px`,right:`${Lx}px`,top:`0`,bottom:`0`}),u.append(d);let f=e.createElement(`div`);f.dataset.mesurerRecordingTimelineRail=`true`,Rx(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`,Rx(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`);Rx(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`,Rx(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`),Rx(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`),Rx(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`,Rx(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`);Rx(b,{position:`relative`,display:`flex`,height:`20px`,"align-items":`center`}),s.append(b);let x=zx(e,`Export options`,`1×`);x.dataset.mesurerRecordingExportOptions=`true`,x.setAttribute(`aria-haspopup`,`menu`),x.setAttribute(`aria-expanded`,`false`),Rx(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`),Rx(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`,Rx(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`,Rx(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=Bx(e,`${t}×`);return n.button.dataset.mesurerRecordingScale=String(t),E.append(n.button),{scale:t,...n}}),O=zx(e,`Download`,`↓`);O.dataset.mesurerRecordingExport=`true`,s.append(O);let k=zx(e,`Grow preview`,`↗`);k.dataset.mesurerRecordingExpand=`true`,s.append(k);let A=e.createElement(`p`);return A.dataset.mesurerRecordingPreviewStatus=`true`,A.setAttribute(`role`,`status`),Rx(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}},Hx=8,Ux=8,Wx=.05,Gx=200,Kx=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`)}`},qx=(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)},Jx=({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}=Vx({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,ee=e=>{let t=k?.duration??0;return t<=0?0:Math.min(1,Math.max(0,e/t))},H=()=>({start:L,end:R}),te=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))},U=()=>{let e=k?.duration??0,t=Math.min(e,Math.max(0,c.currentTime||0)),n=ee(L)*100,r=ee(R)*100;v.style.left=`${n}%`,y.style.left=`${r}%`,h.style.left=`${n}%`,h.style.width=`${Math.max(0,r-n)}%`,_.style.left=`${ee(t)*100}%`,v.setAttribute(`aria-valuemax`,String(Math.max(0,R-Wx))),v.setAttribute(`aria-valuenow`,String(L)),v.setAttribute(`aria-valuetext`,Kx(L)),y.setAttribute(`aria-valuemin`,String(Math.min(e,L+Wx))),y.setAttribute(`aria-valuemax`,String(e)),y.setAttribute(`aria-valuenow`,String(R)),y.setAttribute(`aria-valuetext`,Kx(R)),f.textContent=Kx(t),b.textContent=Kx(e)},W=(e,t=!0)=>{if(!k)return;let n=Math.min(R,Math.max(L,e));t&&!c.paused&&c.pause(),c.currentTime=n,U()},ne=(e,t=!1)=>{k&&(L=Math.min(Math.max(0,e),Math.max(0,R-Wx)),(t||c.currentTime<L)&&W(L),U())},re=(e,t=!1)=>{k&&(R=Math.max(Math.min(k.duration,e),Math.min(k.duration,L+Wx)),t?W(R):c.currentTime>R&&W(L),U())},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}×`}},G=()=>{w.replaceChildren();for(let t of P){let n=Bx(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,G()}),w.append(n.button)}},ae=()=>{if(C.style.display===`none`)return;let e=x.getBoundingClientRect(),n=Math.max(1,C.offsetHeight),r=e.top-Hx,i=t.innerHeight-e.bottom-Hx;r>=n||r>=i?(C.style.top=`auto`,C.style.bottom=`24px`):(C.style.top=`24px`,C.style.bottom=`auto`)},oe=e=>{C.style.display=e?`block`:`none`,S.setAttribute(`aria-expanded`,e?`true`:`false`),e&&ae()},se=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)},ce=()=>n.closest(`[data-mesurer-root='true']`)?.querySelector(`[data-mesurer-tool-id='recording']`)??e.querySelector(`[data-mesurer-tool-id='recording']`),le=()=>{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=ce()?.getBoundingClientRect(),i=r?r.left+r.width/2:t.innerWidth-Hx-e/2,a=Hx+e/2,s=Math.max(a,t.innerWidth-Hx-e/2),c=Math.min(Math.max(a,i),s),l=r?r.bottom+Ux:Hx;l+n>t.innerHeight-Hx&&(l=r?r.top-n-Ux:t.innerHeight-n-Hx),o.style.left=`${c}px`,o.style.top=`${Math.max(Hx,l)}px`,C.style.display!==`none`&&ae()},ue=()=>{c.pause(),c.removeAttribute(`src`),c.load(),A&&=(globalThis.URL.revokeObjectURL(A),null)},de=()=>{N+=1,V&&=(V.cancel(),null),ue(),k=null,z=null,B=null,oe(!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`,se(!1)},fe=()=>{if(!k||o.style.display===`none`||V)return;let e=o.getBoundingClientRect(),t=ce()?.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(),oe(!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:Gx,easing:`ease`,fill:`forwards`});V=a,a.finished.catch(()=>void 0).then(()=>{V===a&&(a.cancel(),V=null,o.style.removeProperty(`will-change`),i())})},pe=()=>{if(!(!k||M)){if(!c.paused){c.pause();return}(c.currentTime<L||c.currentTime>=R)&&(c.currentTime=L),c.play()}},me=()=>{z=null,B=null,_.style.height=`8px`},he=e=>{if(!z)return;let t=te(e);z===`start`?ne(t,!0):z===`end`?re(t,!0):W(t)},ge=(e,t)=>{!k||M||t.button!==0||(t.preventDefault(),t.stopPropagation(),z=e,B=t.pointerId,_.style.height=`10px`,he(t.clientX))},_e=e=>{B!==null&&e.pointerId===B&&he(e.clientX)},ve=e=>{B!==null&&e.pointerId===B&&me()};v.addEventListener(`pointerdown`,e=>ge(`start`,e)),y.addEventListener(`pointerdown`,e=>ge(`end`,e)),p.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-trim-handle]`)||ge(`playhead`,e)}),p.addEventListener(`pointermove`,e=>{B===null&&(g.style.display=`block`,g.style.left=`${ee(te(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`,_e,!0),t.addEventListener(`pointerup`,ve,!0),t.addEventListener(`pointercancel`,ve,!0),u.addEventListener(`click`,e=>{e.stopPropagation(),fe()}),s.addEventListener(`click`,e=>{let t=e.target;t instanceof Element&&t.closest(`button`)||pe()}),d.addEventListener(`click`,pe),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),U())}),c.addEventListener(`loadedmetadata`,()=>{U()}),S.addEventListener(`click`,()=>{M||oe(C.style.display===`none`)});for(let e of T)e.button.addEventListener(`click`,()=>{I=e.scale,ie()});let ye=e=>{C.style.display!==`none`&&(e.composedPath().includes(x)||oe(!1))};e.addEventListener(`pointerdown`,ye,!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(le)}),E.addEventListener(`click`,()=>{if(!k||M||P.length===0)return;let n=++N,{start:r,end:i}=H();se(!0),oe(!1),O.style.display=`none`,a({format:F,startTime:r,endTime:i,scale:I}).then(r=>{n===N&&qx(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&&se(!1)})}),o.addEventListener(`keydown`,e=>{if(e.key===`Escape`){if(C.style.display!==`none`){e.preventDefault(),oe(!1);return}e.preventDefault(),fe();return}(e.key===` `||e.code===`Space`)&&e.target===o&&(e.preventDefault(),pe())});let be=()=>le();return t.addEventListener(`resize`,be),{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`),ue(),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=Kx(e.duration),O.style.display=`none`,O.style.color=`var(--msr-color-ink-500, #64748b)`,oe(!1),G(),ie(),U(),se(!1),o.style.display=`block`,le(),o.focus({preventScroll:!0});let i=N;r(e).then(e=>{i!==N||!k||(P=e,F=e.includes(F)?F:e[0]??`webm`,G(),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=[],G(),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(le)},dismiss:de,dispose(){de(),t.removeEventListener(`resize`,be),t.removeEventListener(`pointermove`,_e,!0),t.removeEventListener(`pointerup`,ve,!0),t.removeEventListener(`pointercancel`,ve,!0),e.removeEventListener(`pointerdown`,ye,!0),o.remove()}}},Yx=3e3,Xx=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},Zx=({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`),Xx(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`,Xx(t,{position:`fixed`,background:`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),f.append(t),t}),m=e.createElement(`div`);m.dataset.mesurerRecordingMask=`true`,Xx(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`,Xx(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`);Xx(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`,Xx(_,{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`),Xx(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`);Xx(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 Xx(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`,Xx(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`,Xx(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`,Xx(j,{position:`absolute`,inset:`0`,display:`none`,"pointer-events":`none`}),h.append(j);let M=t=>{let n=e.createElement(`div`);Xx(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}`),Xx(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`),Xx(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`),Xx(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`,Xx(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`),Xx(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`),Xx(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,ee=null,H=0,te=()=>{z=null,B=null,V=!1,ee=null},U=(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`)}},W=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){U(p[0],{left:0,top:0,width:n,height:r});for(let e of p.slice(1))U(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(U(p[0],{left:0,top:0,width:n,height:e.top}),U(p[1],{left:0,top:e.top,width:e.left,height:e.height}),U(p[2],{left:e.left+e.width,top:e.top,width:Math.max(0,n-e.left-e.width),height:e.height}),U(p[3],{left:0,top:e.top+e.height,width:n,height:Math.max(0,r-e.top-e.height)}),h.style.display=`block`,U(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)}`,U(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=W(e);B=t,s(t),re(t)},G=e=>{te();for(let e of p)U(e,{left:0,top:0,width:0,height:0});U(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`},ae=()=>{d(!1),m.style.display=`none`,f.style.display=`none`,f.style.pointerEvents=`auto`,f.style.cursor=`crosshair`,_.style.removeProperty(`display`)},oe=()=>{te(),re(null),f.style.display=`none`,f.style.cursor=`crosshair`,n.style.pointerEvents=`none`},se=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`)},ce=()=>{P.style.display=`none`},le=e=>{H&&t.clearTimeout(H);let n=e instanceof Error?e.message:`Could not record this region.`;R.textContent=n,R.style.display=`block`,H=t.setTimeout(()=>{H=0,R.style.display=`none`},Yx)},ue=(e,t,n)=>{let r=B;!V||!r||e.button!==0||(e.preventDefault(),e.stopPropagation(),ee={kind:t,handle:n,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,rect:{...r}},f.setPointerCapture?.(e.pointerId))},de=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(Wa(z,z,{width:t.innerWidth,height:t.innerHeight})),f.setPointerCapture?.(e.pointerId))},fe=e=>{if(a()){if(ee){let n=ee,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(Wa(z,{x:e.clientX,y:e.clientY},{width:t.innerWidth,height:t.innerHeight}))}},pe=e=>{if(ee){ee=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=Wa(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=W(r),V=!0,f.style.cursor=`default`,s(B),re(B)},me=e=>{z=null,ee=null,f.hasPointerCapture?.(e.pointerId)&&f.releasePointerCapture(e.pointerId),re(B&&V?B:null)},he=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`,de),f.addEventListener(`pointermove`,fe),f.addEventListener(`pointerup`,pe),f.addEventListener(`pointercancel`,me),t.addEventListener(`keydown`,he,!0),h.addEventListener(`pointerdown`,e=>{let t=e.target;t instanceof Element&&t.closest(`[data-mesurer-recording-resize]`)||ue(e,`move`)});for(let e of N)e.addEventListener(`pointerdown`,t=>{ue(t,`resize`,e.dataset.mesurerRecordingResize)});v.addEventListener(`pointerdown`,e=>{e.stopPropagation()}),v.addEventListener(`click`,e=>{e.stopPropagation()});let ge=(e,t)=>{let n=B,r=Number(e.value);!n||!Number.isFinite(r)||ie({...n,[t]:r})};return S.addEventListener(`change`,()=>ge(S,`width`)),C.addEventListener(`change`,()=>ge(C,`height`)),D.addEventListener(`change`,()=>ge(D,`left`)),O.addEventListener(`change`,()=>ge(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:()=>{te(),re(null),f.style.display=`block`,f.style.pointerEvents=`auto`,_.style.removeProperty(`display`),n.style.pointerEvents=`auto`},finishSelection:oe,showRecordingMask:G,hideRecordingMask:ae,placeRecordingStatus:se,hideRecordingStatus:ce,setRecordingTime(e){I.textContent=e},flashError:le,dispose(){f.removeEventListener(`pointerdown`,de),f.removeEventListener(`pointermove`,fe),f.removeEventListener(`pointerup`,pe),f.removeEventListener(`pointercancel`,me),t.removeEventListener(`keydown`,he,!0),H&&t.clearTimeout(H),oe()}}},Qx=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`))}}},$x=`mesurer.recording`,eS=`recording:v1`,tS=`mesurer.recording.settings`,nS=`runtime:solid`,rS=`recording.toggle`,iS=`recording.stop`,aS=`recording.discard`,oS=`recording.export`,sS=60,cS=60,lS={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`]},uS=e=>e?{...e}:null,dS=e=>({...e,rect:uS(e.rect)}),fS=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},pS=e=>e!=null&&!Array.isArray(e)&&typeof e==`object`,mS=e=>typeof e==`number`&&Number.isFinite(e),hS=e=>{if(!pS(e))return{};let t={};return(e.format===`webm`||e.format===`mp4`)&&(t.format=e.format),mS(e.startTime)&&(t.startTime=e.startTime),mS(e.endTime)&&(t.endTime=e.endTime),(e.scale===1||e.scale===2||e.scale===3)&&(t.scale=e.scale),t},gS=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}),_S=e=>({filename:e.filename,format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size}),vS=e=>({format:e.format,duration:e.duration,width:e.width,height:e.height,bytes:e.blob.size,createdAt:e.createdAt}),yS=(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)},bS=(e={})=>ya({id:$x,version:`0.1.0`,requires:[nS],provides:[`tool:recording`,eS],setup(t){let n=t.service.get(nS);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=Qx(l);o.dataset.mesurerRecording=`true`,c.dataset.mesurerRecordingStatusRoot=`true`,fS(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`}),fS(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??cS)),f=e.quality??`medium`;t.state.register({id:tS,initial:{toolEnabled:e.toolEnabled??!0,frameRate:e.frameRate??sS},persist:!0});let p=()=>{let e=t.state.get(tS);return{toolEnabled:e?.toolEnabled??!0,frameRate:e?.frameRate===120?120:60}},m=e=>{t.state.update(tS,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=dS(h);for(let t of g)t(e)},j=e=>{h={...h,...e,rect:e.rect===void 0?h.rect:uS(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&&xx(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 jx(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 Fx(n.blob,e),i={...r,filename:Ix(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=Jx({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=uS(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,xx(r),T!==e||O)throw Error(`Recording was cancelled.`);let l=await Px(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&&(bx(e,h.rect??{left:0,top:0,width:i.innerWidth,height:i.innerHeight},rx(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)},ee=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 yx(r,i,e,a);if(O||T!==n){xx(s);return}let c=await Nx(s.canvas,{format:`webm`,frameRate:a,quality:f});if(O||T!==n){await c.cancel(),xx(s);return}if(v=s,y=c,E=i.performance.now(),D=0,bx(s,e,rx(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}},H=()=>{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}))},te=async e=>{if(h.status===`recording`){await B();return}if(h.status===`selecting`){await U();return}if(!e){H();return}if(e.width<4||e.height<4)throw Error(`Recording selection must be at least 4px by 4px.`);await ee(e)},U=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=Zx({ownerDocument:r,ownerWindow:i,root:o,statusRoot:c,rendererRoot:l,isSelecting:()=>h.status===`selecting`,isRecording:()=>h.status===`recording`,onRectChange:e=>j({rect:e}),onConfirm:ee,onCancel:U,onStop:async()=>{await B()},setRecordingInteractionActive:u.setActive});let W={snapshot:()=>dS(h),subscribe(e){return g.add(e),()=>g.delete(e)},settings:p,setSettings:m,formats:L,start:te,stop:B,cancel:U,discard:I,export:R};t.tool.register({id:`recording`,label:`Record`,shortcut:`Shift+R`,order:72,command:rS,toolbarMode:`select`,compactPinned:!0,icon:lS,active:M,hidden:()=>!p().toolEnabled,menu:{label:`Recording options`,items:[{id:`new`,label:`New recording`,disabled:()=>h.status===`recording`||h.status===`exporting`,run:()=>te()},{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 U()}},{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(rS,async()=>(await te(),gS(h))),t.command.register(iS,async()=>vS(await B())),t.command.register(aS,()=>(I(),gS(h))),t.command.register(oS,async e=>{let t=await R(hS(e));return yS(t,r,i),_S(t)}),t.service.provide(eS,W),t.lifecycle.onDispose(()=>{O=!0,++T,g.clear(),z.dispose(),x.dispose(),P(),F(!0),s.dispose(),a.dispose()})}}),xS=144,SS=96,CS=8,wS=4,TS=1800,ES=200,DS=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},OS=(e,t)=>({left:Math.min(Math.max(CS,e.left),Math.max(CS,t.innerWidth-xS-CS)),top:Math.min(Math.max(CS,e.top),Math.max(CS,t.innerHeight-SS-CS))}),kS=(e,t)=>{let n=e.createElement(`button`);return n.type=`button`,n.textContent=t,DS(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},AS=({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`,jS=e=>e!==null&&(e.nodeType===1||e.nodeType===11),MS=({ownerDocument:e,ownerWindow:t,root:n,previewDurationMs:r})=>{let i=n.closest(`[data-mesurer-root='true']`)??n.parentNode;if(!jS(i))throw Error(`Screenshot preview requires a mounted Mesurer host.`);let a=e.createElement(`div`);a.dataset.mesurerInspectorUi=`true`,a.dataset.mesurerScreenshotInteractive=`true`,DS(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,DS(o,{position:`fixed`,display:`none`,"z-index":`96`,width:`${xS}px`,height:`${SS}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`,DS(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`,DS(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`),DS(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`,DS(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`,DS(p,{position:`fixed`,top:`16px`,right:`16px`,display:`flex`,gap:`8px`,"pointer-events":`auto`});let m=kS(e,`Copy`);m.dataset.mesurerScreenshotViewerCopy=`true`,m.setAttribute(`aria-label`,`Copy screenshot`);let h=kS(e,`Save`);h.dataset.mesurerScreenshotViewerSave=`true`,h.setAttribute(`aria-label`,`Save screenshot`);let g=kS(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`),DS(_,{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`},TS)},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+CS);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:ES,easing:`ease`,fill:`forwards`});w=r,r.finished.catch(()=>void 0).then(()=>{w===r&&(r.cancel(),w=null,j())})},N=()=>OS({left:t.innerWidth-xS-CS,top:t.innerHeight-SS-CS},t),P=e=>{let n=OS(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 Ka(Promise.resolve(e),t),O(`Copied screenshot`)}catch{O(`Could not copy screenshot`,!0)}},L=()=>{let n=v;if(n)try{Ja(n,qa(),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)>=wS&&(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`)},ee=e=>{e.button!==0||!R(e.clientX,e.clientY,null)||e.preventDefault()},H=e=>{x?.pointerId===null&&z(e.clientX,e.clientY)},te=e=>{e.button===0&&x?.pointerId===null&&B()},U=e=>{e.pointerType!==`mouse`&&e.button===0&&R(e.clientX,e.clientY,e.pointerId)&&(o.setPointerCapture?.(e.pointerId),e.preventDefault())},W=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())},G=e=>{e.target!==s&&e.preventDefault()},ae=e=>{e.target===d&&k()},oe=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`,ee),o.addEventListener(`pointerdown`,U),o.addEventListener(`keydown`,ie),o.addEventListener(`contextmenu`,G),d.addEventListener(`click`,ae),m.addEventListener(`click`,()=>{I()}),h.addEventListener(`click`,L),g.addEventListener(`click`,k),t.addEventListener(`mousemove`,H,!0),t.addEventListener(`mouseup`,te,!0),t.addEventListener(`pointermove`,W,!0),t.addEventListener(`pointerup`,ne,!0),t.addEventListener(`pointercancel`,re,!0),t.addEventListener(`keydown`,oe,!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(AS(n)),r>0&&(S=t.setTimeout(j,r))},dismiss:j,dispose(){T||(T=!0,E(),D(),j(),t.removeEventListener(`mousemove`,H,!0),t.removeEventListener(`mouseup`,te,!0),t.removeEventListener(`pointermove`,W,!0),t.removeEventListener(`pointerup`,ne,!0),t.removeEventListener(`pointercancel`,re,!0),t.removeEventListener(`keydown`,oe,!0),o.removeEventListener(`mousedown`,ee),o.removeEventListener(`pointerdown`,U),o.removeEventListener(`keydown`,ie),o.removeEventListener(`contextmenu`,G),d.removeEventListener(`click`,ae),a.remove())}}},NS=`mesurer.screenshot`,PS=`screenshot`,FS=`mesurer.screenshot.settings`,IS=`mesurer.screenshot.active`,LS=`runtime:solid`,RS=`screenshot.toggle`,zS=2500,BS=0,VS=[`[data-mesurer-measurement='true']`,`[data-mesurer-selected-measurement='true']`,`[data-mesurer-selection-spacing-target='true']`,`[data-mesurer-guide='true']`,`[data-mesurer-distance='true']`].join(`,`),HS=`${VS},[data-mesurer-rulers='true']`,US={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`]},WS=(e,t)=>{for(let[n,r]of Object.entries(t))e.style.setProperty(n,r)},GS=(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`)}},KS=e=>{let t=e(FS);return{toolEnabled:t?.toolEnabled??!0,copy:t?.copy??!0,download:t?.download??!1,includeMeasurements:t?.includeMeasurements??!1}},qS=e=>({value:e.style.getPropertyValue(`display`),priority:e.style.getPropertyPriority(`display`)}),JS=(e,t)=>{t.value||t.priority?e.style.setProperty(`display`,t.value,t.priority):e.style.removeProperty(`display`)},YS=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},XS=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=YS(e,t);r&&n.add(r)}for(let e of t.querySelectorAll(VS)){let r=YS(e,t);r&&n.add(r)}let r=[];for(let e of n)e.dataset.mesurerInspectorUi!==`true`&&(r.push({element:e,display:qS(e)}),e.style.setProperty(`display`,`none`,`important`));return()=>{for(let e of r)JS(e.element,e.display)}},ZS=e=>Array.from(e.querySelectorAll(HS)).filter(e=>e.dataset.mesurerInspectorUi===`true`).map(e=>({element:e,display:qS(e)})),QS=e=>{for(let t of e)t.element.isConnected&&JS(t.element,t.display)},$S=(e={})=>ya({id:NS,version:`0.1.0`,requires:[LS],provides:[`tool:screenshot`,`capture:screenshot`,`settings:screenshot`],setup(t){let n=t.service.get(LS);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??mo,l=e.previewDurationMs??BS;t.state.register({id:FS,initial:{toolEnabled:e.toolEnabled??!0,copy:e.copy??!0,download:e.download??!1,includeMeasurements:e.includeMeasurements??!1},persist:!0}),t.state.register({id:IS,initial:!1});let u=o.element;u.dataset.mesurerScreenshot=`true`,WS(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`),WS(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 WS(e,{position:`fixed`,"background-color":`rgb(0 0 0 / 40%)`,"pointer-events":`none`}),d.append(e),e}),p=r.createElement(`div`);WS(p,{position:`fixed`,display:`none`,border:`1px solid #0d99ff`,"box-sizing":`border-box`,"pointer-events":`none`}),d.append(p);let m=r.createElement(`div`);WS(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`,WS(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`,WS(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=()=>KS(t.state.get),E=e=>{t.state.update(FS,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){GS(f[0],{left:0,top:0,width:t,height:n});for(let e of f.slice(1))GS(e,{left:0,top:0,width:0,height:0});p.style.display=`none`,m.style.display=`none`;return}GS(f[0],{left:0,top:0,width:t,height:e.top}),GS(f[1],{left:0,top:e.top,width:e.left,height:e.height}),GS(f[2],{left:e.left+e.width,top:e.top,width:Math.max(0,t-e.left-e.width),height:e.height}),GS(f[3],{left:0,top:e.top+e.height,width:t,height:Math.max(0,n-e.top-e.height)}),p.style.display=`block`,GS(p,e),m.style.display=`block`,m.textContent=`${Math.round(e.width)} × ${Math.round(e.height)}`,GS(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=MS({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`},zS)},F=()=>{_=null,A(null),d.style.visibility=``,d.style.display=`none`,u.style.pointerEvents=`none`,D(!1),k()},I=()=>{b+=1,F(),ho(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?ZS(r):[],u=s.includeMeasurements?()=>void 0:XS(n.portalTarget);a.prepareCapture(),s.includeMeasurements&&QS(l);try{d.style.visibility=`hidden`,await Ya(i);let n=await Ga(await c({ownerDocument:r,ownerWindow:i}),e,{width:i.innerWidth,height:i.innerHeight},r,Ua(r));if(b!==o)throw Error(`Screenshot capture was cancelled.`);let a=!1,l=!1,u=s.copy?Ka(Promise.resolve(n),i).then(()=>{a=!0}):Promise.resolve(),f=s.download?Promise.resolve().then(()=>{Ja(n,qa(),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 po(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(Wa(_,_,{width:i.innerWidth,height:i.innerHeight})),d.setPointerCapture?.(e.pointerId))},B=e=>{!w()||!_||A(Wa(_,{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=Wa(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()})},ee=e=>{_=null,d.hasPointerCapture?.(e.pointerId)&&d.releasePointerCapture(e.pointerId),A(null)},H=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`,ee),i.addEventListener(`keydown`,H,!0);let te={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:RS,toolbarMode:`select`,compactPinned:!0,icon:US,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(RS,R),t.service.provide(PS,te),t.lifecycle.onDispose(()=>{C=!0,b+=1,d.removeEventListener(`pointerdown`,z),d.removeEventListener(`pointermove`,B),d.removeEventListener(`pointerup`,V),d.removeEventListener(`pointercancel`,ee),i.removeEventListener(`keydown`,H,!0),y&&i.clearTimeout(y),M.dispose(),k(),ho(i),a.finishCapture(),a.dispose(),o.dispose()})}}),eC=e=>Number.parseFloat(e)||0,tC=0,nC=(e,t)=>{let n=t.CSS;return n?.escape?n.escape(e):e.replace(/[^a-zA-Z0-9_-]/g,e=>`\\${e}`)},rC=e=>e.nodeType===9,iC=e=>e.nodeType===11;function aC(e){let t=e.getRootNode();return iC(t)?t:e.ownerDocument}var oC=(e,t)=>{if(rC(e)||iC(e))return e;let n=aC(e);return iC(n)?n:t},sC=600,cC=`audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video`,lC=new WeakMap,uC=e=>{let t=e;for(;t;){if((lC.get(t)??0)>0)return!0;let e=t.getRootNode();t=iC(e)?e.host:t.parentElement}return!1},dC=(e,t)=>t.x>=e.left&&t.x<=e.right&&t.y>=e.top&&t.y<=e.bottom,fC=(e,t)=>Array.from(e.getClientRects()).some(e=>dC(e,t)),pC=(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},mC=(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`},hC=(e,t)=>!!e.textContent?.trim()||mC(e,t),gC=(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},_C=(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)||uC(n)||r.getComputedStyle(n).pointerEvents!==`none`||pC(n,e,r)||!fC(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<=sC;){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=gC(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)},vC=(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=aC(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)}},yC=(e,t)=>{let n=e;for(;n.parentElement&&n.parentElement!==t;)n=n.parentElement;return n.parentElement===t?n:null},bC=(e,t,n,r)=>{let i=r.defaultView;if(!i)return[];let a=vC(_C(e,t,r).filter(e=>hC(e,i)),e,t);if(a.length>0)return a;if(e.textContent?.trim()&&!e.matches(cC)||e.matches(`a, button, input, select, textarea, label, summary, [contenteditable='true']`))return[];let o=[],s=new Set,c=!rC(n)&&!iC(n)?n:null,l=e.parentElement;for(;l&&l!==r.body&&l!==r.documentElement&&!(c&&l!==c&&!c.contains(l));){let a=l,u=yC(e,a),d=_C(a,t,r).filter(e=>{if(!SC(e,n)||e.closest(`[aria-hidden='true'], [inert]`))return!1;let t=yC(e,a);return t===null||t!==u});for(let e of d)s.has(e)||!hC(e,i)||(s.add(e),o.push(e));if(a===c)break;l=a.parentElement}return vC(o,e,t)};function xC(e,t,n=rC(t)?t:t.ownerDocument??document){let r=oC(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||!SC(a,t))continue;let o=bC(a,e,t,n);if(o.length>0)return o[0];if(i.getComputedStyle(a).pointerEvents!==`none`)return a}return null}function SC(e,t){if(rC(t))return!0;let n=e;for(;n;){if(t===n||t.contains(n))return!0;let e=n.getRootNode();if(!iC(e))return!1;n=e.host}return!1}function CC(e,t){if(!e)return t();let n=lC.get(e)??0;lC.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?lC.delete(e):lC.set(e,n);for(let[e,t,n]of i)t?e.style.setProperty(`pointer-events`,t,n):e.style.removeProperty(`pointer-events`)}}function wC(e){let t=e.ownerDocument.defaultView??window;if(e.id)return`#${nC(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 TC(e,t,n=`dom-inspection-${++tC}`){let r=e.getBoundingClientRect(),i=t.getComputedStyle(e),a={top:eC(i.paddingTop),right:eC(i.paddingRight),bottom:eC(i.paddingBottom),left:eC(i.paddingLeft)},o={top:eC(i.marginTop),right:eC(i.marginRight),bottom:eC(i.marginBottom),left:eC(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 EC(e){let t=e.ownerDocument.defaultView??window,n=t.getComputedStyle(e),r=e instanceof t.HTMLElement?e:null,i=e.getBoundingClientRect(),a=r?TC(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:wC(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 DC=`text-edit`,OC=e=>EC(e);function kC(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||SC(n,t),a=async()=>{let t=(e.getPluginHost()??await e.waitForPluginHost()).service.get(DC);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?OC(n):null},inspectAll(e,n=50){return[...t.querySelectorAll(e)].slice(0,Math.max(0,n)).map(OC)},at(n,r){let a=t.querySelector?.(`[data-mesurer-island]`)??null;return CC(a?.shadowRoot?.querySelector(`[data-mesurer-root='true']`)??a,()=>{let a=xC({x:n,y:r},t,e.ownerDocument);return a&&i(a)?OC(a):null})},distance(e,t){let n=r(e),i=r(t);if(!n||!i)return null;let a=OC(n),o=OC(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(OC)),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 AC=`0.2.2-beta.7`,jC=uh,MC=dh,NC=()=>({...og(),version:AC}),PC=MC,FC=(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,IC=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}},LC=(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),RC=e=>[...e.measurements,...e.activeMeasurement&&!e.measurements.some(t=>t.id===e.activeMeasurement?.id)?[e.activeMeasurement]:[]];function zC(e){let{workspace:t,scope:n,guideTolerance:r}=e;if(n.kind===`workspace`)return{guides:t.guides.map(e=>({...e})),measurements:RC(t),distances:[...t.distances]};let i=new Set(n.elements),a=e=>e!=null&&i.has(e),o=e=>n.regions.some(t=>FC(e,t));return{guides:t.guides.filter(e=>LC(e,n.regions,r)).map(e=>({...e})),measurements:RC(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 BC={opacity:1,width:1,pattern:`solid`,dashLength:6,gap:4},VC={opacity:1,edgeReveal:!1};({...BC}),{...VC};var HC=10,UC=e=>({left:e.left,top:e.top,width:e.width,height:e.height}),WC=e=>{let t=new Set,n=[];for(let r of e)!r?.isConnected||t.has(r)||(t.add(r),n.push(r));return n},GC=e=>e.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`;function KC(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=>UC(t.elementRect?.(e)??e.getBoundingClientRect()),s=[],c=[],l={kind:`workspace`},u=new Map;if(`annotation`in i){let e=t.annotation(i.annotation);if(!e)throw Error(`Mesurer annotation not found: ${i.annotation}`);for(let t of e.resolvedTargets)t.element?.isConnected&&u.set(t.element,t.target.id);s=WC(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`;l={kind:`annotation`,annotationId:e.id,note:e.note,targetStatus:o}}else if(i.scope===`selection`){let e=t.currentSelection();if(s=WC(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=WC([...t.currentSelection().elements,...a.measurements.map(e=>e.elementRef),a.activeMeasurement?.elementRef,...a.heldDistances.flatMap(e=>[e.elementRefA,e.elementRefB])]);let d=l.kind===`workspace`?[]:c.length?c:s.map(o),f=zC({workspace:{guides:a.guides,measurements:a.measurements,activeMeasurement:a.activeMeasurement,distances:a.heldDistances},scope:l.kind===`workspace`?{kind:`workspace`}:{kind:`scoped`,elements:s,regions:d},guideTolerance:a.guideRelevanceTolerance??HC}),p=f.measurements,m=f.distances,h=f.guides,g=WC([...s,...p.map(e=>e.elementRef),...m.flatMap(e=>[e.elementRefA,e.elementRefB])]),_=new Map,v=new Set(u.values()),y=1,b=()=>{let e=`target-${y++}`;for(;v.has(e);)e=`target-${y++}`;return v.add(e),e},x=g.map(e=>{let t=u.get(e)??b(),n=o(e),r=EC(e);return _.set(e,t),{ref:t,inspection:{...r,rect:{...n,right:n.left+n.width,bottom:n.top+n.height,x:n.left,y:n.top}}}}),S=p.map(e=>{let t={id:e.id,rect:UC(e.rect),deltaX:e.deltaX,deltaY:e.deltaY};e.snapped!==void 0&&(t.snapped=e.snapped);let n=e.elementRef?_.get(e.elementRef):void 0;return n&&(t.targetRef=n),t}),C=m.map(e=>{let t={id:e.id,rectA:UC(e.rectA),rectB:UC(e.rectB),horizontal:e.horizontal?{...e.horizontal}:null,vertical:e.vertical?{...e.vertical}:null},n=e.elementRefA?_.get(e.elementRefA):void 0,r=e.elementRefB?_.get(e.elementRefB):void 0;return n&&(t.targetARef=n),r&&(t.targetBRef=r),t});return{schema:`mesurer.context/v1`,id:GC(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(UC),visualState:{rulersVisible:a.rulersVisible,xrayVisible:a.xrayVisible},targets:x,visualContext:{guides:h,layoutGuides:(e.layoutGuides??[]).map(e=>({...e})),measurements:S,distances:C}}}var qC=e=>`${Math.round(e*100)/100}px`,JC=e=>`x=${qC(e.left)} y=${qC(e.top)} w=${qC(e.width)} h=${qC(e.height)}`;function YC(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,`Target status: ${e.scope.targetStatus}`):t.push(``,`Scope: ${e.scope.kind}`),e.regions.length&&(t.push(``,`Requested regions`),e.regions.forEach((e,n)=>t.push(`- region-${n+1}: ${JC(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;t.push(`[${n.ref}] ${e.selector}`,` rect: ${JC(e.rect)}`,` margin: ${qC(e.margin.top)} ${qC(e.margin.right)} ${qC(e.margin.bottom)} ${qC(e.margin.left)}`,` padding: ${qC(e.padding.top)} ${qC(e.padding.right)} ${qC(e.padding.bottom)} ${qC(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`}=${qC(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 ${qC(n.size)}`:`${n.count} ${n.kind}; gutter=${qC(n.gutter)}; offset=${qC(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}: `:``}${JC(n.rect)}; delta=${qC(n.deltaX)} × ${qC(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=${qC(n.horizontal.value)}`:null,n.vertical?`vertical=${qC(n.vertical.value)}`:null].filter(Boolean).join(`; `);t.push(`- ${e?`${e}: `:``}${r||`overlapping`}`)}}return t.join(`
2111
2141
  `).trimEnd()}function XC(e){let t=IC([...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}})}return{schema:`mesurer.capture/v1`,contextId:e.id,chrome:`hide`,evidence:`show`,captures:n}}var ZC=(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`})},QC=(e,t,n,r)=>e.push({kind:`missing`,evidence:t,id:n,label:r}),$C=(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 ew(e){let t=e.runtime.annotation(e.annotationId);if(!t)throw Error(`Mesurer annotation not found: ${e.annotationId}`);let n=KC({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=RC({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){QC(a,`target`,e.id,e.selector);continue}ZC(a,`target-rect`,`${t.inspection.selector} left`,e.rect.left,t.inspection.rect.left),ZC(a,`target-rect`,`${t.inspection.selector} top`,e.rect.top,t.inspection.rect.top),ZC(a,`target-rect`,`${t.inspection.selector} width`,e.rect.width,t.inspection.rect.width),ZC(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){QC(a,`guide`,e.id,`${e.orientation} guide ${e.id}`);continue}ZC(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=>$C(t.rect,e.rect));r&&n.targets.some(e=>e.ref===r.id)||QC(a,`measurement`,e.id,e.id);continue}ZC(a,`measurement`,`${e.id} width`,e.rect.width,r.rect.width),ZC(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){QC(a,`distance`,e.id,e.id);continue}e.horizontal&&t.horizontal?ZC(a,`distance`,`${e.id} horizontal`,e.horizontal.value,t.horizontal.value):e.horizontal&&!t.horizontal&&QC(a,`distance`,e.id,`${e.id} horizontal`),e.vertical&&t.vertical?ZC(a,`distance`,`${e.id} vertical`,e.vertical.value,t.vertical.value):e.vertical&&!t.vertical&&QC(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 tw(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 nw=wb,rw=Tb,iw=()=>({...Zb(),version:AC}),aw=`mesurer.context`,ow=`context:v1`,sw=`mesurer.context.settings`,cw=`context.ui`,lw=`data-mesurer-direct-text-edit-active`,uw={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`]},dw={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`]},fw={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`]},pw=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()))},mw=(e,t,n,r)=>{let i=async i=>KC({runtime:e,ownerDocument:t,ownerWindow:n,request:i,layoutGuides:r()}),a=async e=>YC(await i(e));return{context:i,contextText:a,copyContext:async e=>tw(t,n,await a(e)),select:async r=>{let a=Array.isArray(r)?[...r]:[String(r)];return e.select(a),await pw(t,n),i({scope:`selection`})},annotations:async()=>e.annotations(),removeAnnotation:async r=>{e.removeAnnotation(r),await pw(t,n)},review:async i=>{if(await pw(t,n),i)return ew({runtime:e,ownerDocument:t,ownerWindow:n,annotationId:i,layoutGuides:r()});let a=r();return e.annotations().map(r=>ew({runtime:e,ownerDocument:t,ownerWindow:n,annotationId:r.id,layoutGuides:a}))},capturePlan:async e=>XC(await i(e)),prepareCapture:async()=>{e.prepareCapture(),await pw(t,n)},finishCapture:async()=>{e.finishCapture(),await pw(t,n)}}},hw=e=>{let t=e.currentSelection();return t.elements.length>0||t.region!==null};function gw(e={}){return{id:aw,version:AC,requires:[`runtime:solid`],provides:[ow],setup(t){let n=t.service.get(`runtime:solid`);if(!n)throw Error(`Mesurer context plugin requires the renderer runtime service.`);let r=n.createWorkspaceRuntime(aw),i=mw(r,n.ownerDocument,n.ownerWindow,()=>t.service.get(rw)?.list()??[]);t.service.provide(ow,i),t.state.register({id:sw,initial:{ui:e.ui??!0},persist:!0}),t.state.register({id:cw,initial:{hasSelection:hw(r)}});let a=()=>t.state.get(`mesurer.context.settings`)?.ui??!0,o=()=>t.state.get(cw)?.hasSelection===!0,s=e=>{t.state.update(sw,t=>({...t,ui:e}))},c=null,l=null,u=null,d=null,f=r.currentSelection(),p={elements:[...f.elements],region:f.region?{...f.region}:null},m=(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,h=r.subscribe(()=>{let e=r.currentSelection(),n=!m(p,e);p={elements:[...e.elements],region:e.region?{...e.region}:null},r.selectGestureActive()?c?.abandonNoteComposer():n&&c?.closeNoteComposer();let i=e.elements.length>0||e.region!==null;i!==(t.state.get(cw)?.hasSelection??!1)&&t.state.update(cw,()=>({hasSelection:i}))});t.command.register(`context.copy`,()=>i.copyContext()),t.command.register(`context.copy-selection`,()=>i.copyContext({scope:`selection`}));let g=()=>{let e=u?.element;e&&(n.rendererRoot?.hasAttribute(lw)?e.setAttribute(lw,`true`):e.removeAttribute(lw))},_=()=>{d?.disconnect(),d=null,c=null,l?.(),l=null,u?.dispose(),u=null},v=()=>{if(u)return;if(u=eb(n),u.element.dataset.mesurerLayer=`evidence`,u.element.dataset.mesurerContextRoot=`true`,n.rendererRoot){let e=new n.ownerWindow.MutationObserver(g);d=e,e.observe(n.rendererRoot,{attributes:!0,attributeFilter:[lw]}),g()}let e={runtime:r,onCopy:i.copyContext,onController:e=>{c=e},coordinateSpace:`document`,rendererRoot:n.rendererRoot};l=Si(()=>Ur(Xy,xi(e,{get ownerWindow(){return n.ownerWindow}})),u.element)},y=()=>{a()?v():_()};y(),t.state.subscribe(y),t.command.register(`context.add-note`,()=>c?.openNoteComposer()),t.tool.register({id:`context.copy`,label:`Copy context`,shortcut:`C`,command:`context.copy`,order:70,toolbarMode:`always`,icon:uw,hidden:()=>!a()}),t.tool.register({id:`context.copy-selection`,label:`Copy selection`,shortcut:`Shift+C`,command:`context.copy-selection`,order:71,toolbarMode:`always`,icon:dw,hidden:()=>!a(),disabled:()=>!o()}),t.tool.register({id:`context.add-note`,label:`Add note`,shortcut:`N`,command:`context.add-note`,order:72,toolbarMode:`always`,icon:fw,hidden:()=>!a(),disabled:()=>!o()}),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:a,set:s}]}),t.lifecycle.onDispose(()=>{h(),_(),r.dispose()})}}}var _w={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 vw(e){for(let[t,n]of Object.entries(_w))e.style.setProperty(t,n,`important`)}function yw(e){return`popover`in e&&`showPopover`in e&&typeof e.showPopover==`function`&&`hidePopover`in e&&typeof e.hidePopover==`function`}var bw=e=>`newState`in e,xw=e=>e.localName===`dialog`;function Sw(e){if(!xw(e)||!e.open)return!1;try{return e.matches(`:modal`)}catch{return!1}}function Cw(e,t,n=!0){vw(e);let r=e.ownerDocument,i=r.defaultView??window,a=t,o=!1,s=`fixed`,c=!1,l=0,u=[];if(n&&yw(e)&&(e.popover=`manual`),t.append(e),n&&yw(e))try{e.showPopover(),c=e.matches(`:popover-open`),c&&(s=`top-layer`)}catch{e.removeAttribute(`popover`)}let d=()=>{if(!(!c||!yw(e)))try{e.matches(`:popover-open`)||e.showPopover()}catch{}},f=t=>{if(e.parentNode===t)return;let n=c&&yw(e)&&e.matches(`:popover-open`);if(n&&yw(e))try{e.hidePopover()}catch{}t.append(e),vw(e),n&&d()},p=()=>{u=u.filter(e=>e.isConnected&&Sw(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||!yw(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=bw(t)?t.newState:void 0,r=t.target;if(r instanceof i.Element){if(xw(r)){n===`open`&&Sw(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&&xw(t)&&h(t)},b=()=>{r.fullscreenElement&&_()},x=e=>{Sw(e)&&m(e);for(let t of e.querySelectorAll(`dialog`))Sw(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&&xw(e)&&(Sw(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&&yw(e)&&e.matches(`:popover-open`))try{e.hidePopover()}catch{}u=[]}}}}var ww=`mesurer.codex`,Tw=`codex:v1`,Ew=`mesurer.plugin.before-disable`,Dw=2e3,Ow=750,kw=2e3,Aw=1800,jw=2e3,Mw=12e4,Nw=10,Pw=5,Fw=`http://127.0.0.1:47365`,Iw=`mesurer-codex`,Lw=2,Rw=[`thread-discovery-v1`,`durable-queue-v1`,`history-recovery-v2`,`client-message-correlation-v1`,`idle-safe-shutdown-v1`,`nonterminal-retention-v1`,`instance-binding-v1`],zw=1500,Bw=15e3,Vw=5e3,Hw=[`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(` `),Uw={viewBox:`0 0 256 256`,paths:[`M224,48,32,120l88,32,32,88Z M120,152l104-104`]},Ww={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`]},Gw={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`]},Kw=class extends Error{issue;constructor(e,t){super(t),this.issue=e,this.name=`BrowserBridgeConnectionError`}},qw=()=>{try{let e=globalThis.location;return e?.origin?`mesurer-codex-ui:v2:${e.origin}${e.pathname}`:null}catch{return null}},Jw=()=>{let e=qw();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}:null}}catch{return null}},Yw=e=>{let t=qw();if(t)try{globalThis.sessionStorage?.setItem(t,JSON.stringify(e))}catch{}},Xw=e=>{let t=Fw.endsWith(`/`)?Fw:`${Fw}/`;return new URL(e,t).toString()},Zw=e=>{let t=e.bridge;if(!t)throw new Kw(`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!==Iw)throw new Kw(`port-conflict`,`Another local service is using port 47365 (${t.name??`unknown`}). Mesurer will not send Codex data to it.`);if(t.protocol!==Lw)throw new Kw(`version-mismatch`,`Mesurer Codex Bridge is out of date (protocol ${t.protocol??`unknown`}; expected ${Lw}). Restart the matching Mesurer Codex Bridge helper.`);if(e.access?.allowed===!1)throw new Kw(`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=Rw.filter(e=>!n.has(e));if(r.length>0)throw new Kw(`capability-mismatch`,`Mesurer Codex Bridge is missing required capabilities: ${r.join(`, `)}. Restart or update the matching helper.`);if(!t.instanceId?.trim())throw new Kw(`capability-mismatch`,`Mesurer Codex Bridge did not provide an instance identity. Restart or update the matching helper.`)},Qw=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,$w=e=>e instanceof Kw?e.issue:e instanceof Error?Qw(e.message):null,eT=async e=>{let t,n;if(e.action===`health`)t=Xw(`health`);else if(e.action===`threads`){let n=new URLSearchParams;n.set(`limit`,String(e.limit??Nw)),e.thread&&n.set(`thread`,e.thread),t=`${Xw(`threads`)}?${n.toString()}`}else if(e.action===`target`)t=Xw(`target`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({thread:e.thread})};else if(e.action===`queue`)t=Xw(`send`),n={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e.message,thread:e.thread})};else if(e.action===`delivery`)t=Xw(`deliveries/${encodeURIComponent(String(e.deliveryId??``))}`);else if(e.action===`restore`)t=Xw(`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 Kw(`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`?zw:Bw,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`&&Zw(o),!i.ok||o.ok===!1){let e=o.error??`Mesurer Codex companion returned HTTP ${i.status}.`,t=Qw(e);throw t?new Kw(t,e):Error(e)}return o}catch(e){throw e instanceof Error&&e.name===`AbortError`?new Kw(`timed-out`,`Mesurer Codex companion timed out.`):e instanceof TypeError?new Kw(`not-running`,`Mesurer Codex companion is unavailable at ${Fw}.`):e}finally{globalThis.clearTimeout(a)}},tT=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},nT=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}},rT=e=>({thread:e.thread?.trim()||null,threads:Array.isArray(e.threads)?e.threads.filter(e=>e.trim().length>0):[]}),iT=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},aT=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}),oT=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,s=[];for(let t of o)s.push(await e.contextText({annotation:t.id}));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),message:[r,``,...s.flatMap((e,t)=>[s.length>1?`Feedback ${t+1}`:`Mesurer evidence`,e,``])].join(`
2112
2142
  `).trimEnd()}},sT=e=>e.length>16?`${e.slice(0,8)}…${e.slice(-4)}`:e,cT=(e,t=42)=>e.length>t?`${e.slice(0,t-1)}…`:e,lT=e=>$w(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 uT(e={}){let t=e.instruction?.trim()||Hw,n=e.ui??!0,r=e.clearCompletedAnnotations??!0;return{id:ww,version:AC,requires:[ow],provides:[Tw],async setup(e){let i=e.service.get(ow);if(!i)throw Error(`Mesurer Codex plugin requires context() from mesurer-solid/plugins.`);let a=n?Jw():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=Pw,_,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}:null,x=0,S=0,C=null,w=!1,T=null,E=0,D=null,O=null,k=window.__MESURER_HOST__?.codexBridge!==void 0,A=async e=>{if(!k)try{let t=e.action===`queue`||e.action===`target`||e.action===`delivery`||e.action===`restore`;if(e.action===`health`){let t=await eT(e);return D=t.bridge?.instanceId?.trim()||null,E=Date.now(),t}return(!D||t||Date.now()-E>=Vw)&&(D=(await eT({action:`health`,thread:u??l??void 0})).bridge?.instanceId?.trim()||null,E=Date.now()),await eT({...e,bridgeInstanceId:D??void 0})}catch(e){throw E=0,D=null,e}if(e.action===`activate`||e.action===`runtime`)return tT(e);if(!T)throw Error(`Codex Bridge lease is not active for this plugin.`);return tT({...e,leaseId:T})},j=async()=>{if(!k)return;let e=T;if(e){if((await tT({action:`deactivate`,leaseId:e})).released!==!0)throw Error(`Codex Bridge did not confirm lease release.`);T=null}};if(k){let e=await tT({action:`activate`,thread:u??l??void 0}),t=e.leaseId?.trim();if(!t)throw Error(`Codex Bridge did not return an activation lease.`);T=t,o=`available`,s=nT(e);let n=rT(e);c=!0,f=n.thread,p=n.threads}e.lifecycle.onDispose(()=>{T&&j().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`[Mesurer] Failed to release Codex host lease: ${t}`)})}),e.hook.on(Ew,async e=>{e===`mesurer.codex`&&await j()});let M=async()=>{if(!k)return null;let e=nT(await A({action:`runtime`}));if(!e)throw Error(`Codex Bridge returned an invalid runtime state.`);return s=e,e},N=async()=>{let e=await A({action:`health`,thread:u??l??void 0});return s=nT(e)??s,rT(e)},P=N,F=async e=>iT(await A({action:`delivery`,deliveryId:e})),I=async e=>{if(!e.id||!e.thread)throw Error(`Cannot restore a Codex delivery without its id and thread.`);let n={action:`restore`,deliveryId:e.id,thread:e.thread};if(e.queuedSubmissionId&&(n.queuedSubmissionId=e.queuedSubmissionId),e.clientUserMessageId)n.clientUserMessageId=e.clientUserMessageId;else if(e.annotationIds.length>0){let r=await oT(i,{annotationIds:e.annotationIds},t);if(!(r.annotationIds.length===e.annotationIds.length&&r.annotationIds.every((t,n)=>t===e.annotationIds[n])))throw Error(`Cannot safely restore this Codex delivery because one or more saved Mesurer annotations are unavailable.`);n.message=r.message}return iT(await A(n))},L=async(e={})=>{let t={action:`threads`,limit:e.limit??Nw},n=e.thread?.trim();return n&&(t.thread=n),aT(await A(t))},R=()=>u??l??(d?null:f),z=()=>{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??R()??``,status:b.status,annotationIds:[...b.annotationIds],queuedSubmissionId:b.queuedSubmissionId,clientUserMessageId:b.clientUserMessageId,dispatch:b.dispatch,dispatchError:b.dispatchError}:null;Yw({version:1,originThread:l,selectedThread:u,delivery:e?.thread?e:null})},B=(e,t=!1)=>{let n=e.trim();n&&((t||!l)&&(l=n),u=n,d=!1,z())},V=()=>!b||b.status===`queued`&&(b.dispatch===`desktop-opened`||b.dispatch===`desktop-wake-failed`)?!1:[`queueing`,`queued`,`working`,`completed`].includes(b.status),ee=e=>e===`queueing`?`Queueing…`:e===`queued`?`Queued`:e===`working`?`Working…`:e===`completed`?`Done`:e===`interrupted`?`Interrupted`:`Failed`,H=()=>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,te=()=>b?[`queueing`,`queued`,`working`].includes(b.status)?Ww:b.status===`completed`?Gw:Uw:Uw,U=()=>{let e=[],t=new Set,n=n=>{t.has(n.id)||(t.add(n.id),e.push(n))},r=e=>({id:e,title:`Codex ${sT(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},W=(e=!1)=>Promise.resolve(),ne=(e=!1)=>O===`origin-denied`?e?`Browser origin not allowed`:`Allow this browser origin`:O===`version-mismatch`?e?`Bridge version mismatch`:`Update Mesurer Codex Bridge`:O===`capability-mismatch`?e?`Bridge capability mismatch`:`Update Mesurer Codex Bridge`:O===`port-conflict`?e?`Port 47365 conflict`:`Port 47365 is occupied`:O===`timed-out`?e?`Bridge did not respond`:`Mesurer Codex Bridge did not respond`:O===`instance-changed`?e?`Codex bridge changed`:`Codex bridge changed; reconnecting`:O===`not-running`?e?`Bridge not running`:`Mesurer Codex Bridge is not running`:e?`Codex unavailable`:`Mesurer Codex Bridge is unavailable`,re=()=>k?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`,ie=()=>{if(o!==`available`){let e=s?.source===`desktop`&&s.reason===`desktop-private-transport`,t=!k,n=[];return o===`unavailable`&&t&&n.push({id:`codex.connection.status`,label:ne(),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:()=>W(!0)}),n}let e=U(),t=e.slice(0,g),n=R(),r=[{id:`codex.connection.status`,label:re(),disabled:()=>!0,run:()=>void 0}];return!k&&p.length===0&&r.push({id:`codex.thread.refresh`,label:`Refresh Codex sessions`,run:()=>W(!0)}),r.push(...t.map(e=>{let t=e.id===l?`Current · `:e.connected?`Loaded · `:``,r=b?.thread===e.id?` · ${ee(b.status)}`:``;return{id:`codex.thread.${e.id}`,label:`${t}${cT(e.title)}${r}`,checked:()=>n===e.id,disabled:()=>V(),run(){V()||(B(e.id,!l),G())}}})),g<Nw&&(e.length>g||h)&&r.push({id:`codex.thread.show-more`,label:`Show 5 more…`,run(){g=Nw,G()}}),b?.queuedSubmissionId&&b.status===`queued`&&(b.dispatch===`desktop-opened`||b.dispatch===`desktop-wake-failed`)&&r.push({id:`codex.delivery.receipt`,label:`Receipt · ${sT(b.queuedSubmissionId)}`,disabled:()=>!0,run:()=>void 0}),r},G=()=>{if(!n||w)return;let t=R(),r=ie(),i=!V()&&!d&&o!==`unavailable`&&(o===`unknown`||!!t),a=s?.source===`desktop`&&s.reason===`desktop-private-transport`,c=!k,l=ne(!0),u=H()??(o===`unavailable`?c?l:a?`Codex Desktop not connected`:`Codex unavailable`:o===`available`&&!k&&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:te(),disabled:()=>!i,menu:r.length?{label:`Codex destination`,items:r}:void 0}))},ae=async e=>{if(o!==`available`)return;let t=await L({limit:Nw,thread:e??void 0});m=t.threads,h=t.hasMore,p=t.threads.filter(e=>e.connected).map(e=>e.id),f=t.thread};W=(e=!1)=>w||o===`unknown`&&!e?Promise.resolve():y||(y=(async()=>{try{let e=await P();o=`available`,O=null,c=!0,f=e.thread,await ae(u??l??e.thread);let t=u??l;t&&p.includes(t)?d=!1:p.length===1?B(p[0],!0):d=!0,!d&&t&&z()}catch(e){throw o=`unavailable`,O=k?null:$w(e)??`unavailable`,s=await M().catch(()=>s),e}finally{y=null,G()}})(),y);let oe=()=>{x&&=(globalThis.clearTimeout(x),0),S&&=(globalThis.clearTimeout(S),0)},se=()=>{S&&globalThis.clearTimeout(S),S=globalThis.setTimeout(()=>{S=0,b?.status===`completed`&&(b=null,z(),G())},Aw)},ce=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},z(),e.status===`completed`){if(z(),G(),r&&b.annotationIds.length>0){let t=!1;for(let e of b.annotationIds)try{await i.removeAnnotation(e)}catch{t=!0}let n=b.annotationIds;try{let e=new Set((await i.annotations()).map(e=>e.id));n=b.annotationIds.filter(t=>e.has(t))}catch{t=!0}if(t||n.length>0){z(),G(),x=globalThis.setTimeout(()=>{x=0,le(e.id)},Ow);return}}z(),G(),se();return}if(e.status===`interrupted`){z(),G();let t=e.updatedAt>0?e.updatedAt:Date.now();Date.now()-t<Mw&&(x=globalThis.setTimeout(()=>{x=0,le(e.id)},jw));return}G(),x=globalThis.setTimeout(()=>{x=0,le(e.id)},kw)}},le=async e=>{if(!(w||b?.id!==e))try{await ce(await F(e))}catch(t){if(b?.id!==e)return;let n=t;if((b.status===`queued`||b.status===`failed`)&&b.thread)try{o!==`available`&&await W(!0);let e=await I(b);await ce(e);return}catch(e){n=e}if(b?.id!==e)return;if(b.status===`interrupted`){G();return}b={...b,status:`failed`},z(),lT(n)&&(o=`unavailable`),G()}},ue={health:N,listThreads:L,delivery:F,async useThread(e){let t=e.trim();if(!t)throw Error(`Codex thread must be a non-empty string.`);let n=await A({action:`target`,thread:t}),r=rT(n);return s=nT(n)??s,B(t,!l),f=r.thread,p=r.threads,o=`available`,c=!0,G(),r},async queue(e){let r=await oT(i,e,t),a=e?.thread?.trim(),s=a||(n?R():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 A({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),n}catch(e){throw n&&lT(e)&&(o=`unavailable`,O=k?null:$w(e)??`unavailable`,G()),e}},send(e){return ue.queue(e)}};e.service.provide(Tw,ue);let de=async()=>{if(!(C||V())){if(b?.status===`failed`&&b.id){oe(),await le(b.id);return}return oe(),b={id:null,thread:R(),status:`queueing`,annotationIds:[],queuedSubmissionId:null,clientUserMessageId:null,dispatch:null,dispatchError:null},G(),C=(async()=>{try{n&&o!==`available`&&await W(!0);let e=await ue.queue();b={id:e.deliveryId,thread:e.thread,status:e.status,annotationIds:e.annotationIds,queuedSubmissionId:e.queuedSubmissionId??null,clientUserMessageId:e.clientUserMessageId??null,dispatch:e.dispatch??null,dispatchError:e.dispatchError??null},B(e.thread,!l),z(),G(),console.info(`[Mesurer] Queued feedback for Codex thread ${e.thread}.`),e.deliveryId?e.status===`completed`||e.status===`interrupted`?await ce({id:e.deliveryId,thread:e.thread,status:e.status,turnId:null,createdAt:0,updatedAt:0}):x=globalThis.setTimeout(()=>{x=0,le(e.deliveryId)},Ow):S=globalThis.setTimeout(()=>{S=0,b?.id===null&&b?.status===`queued`&&(b=null,z(),G())},Aw)}catch(e){b=null,z(),G();let t=e instanceof Error?e.message:String(e);throw console.error(`[Mesurer] Failed to queue feedback for Codex: ${t}`),e}finally{C=null}})(),C}};if(e.command.register(`codex.queue`,de),e.command.register(`codex.send`,de),n){if(G(),k)try{await W(!0)}catch(e){try{await j()}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 W(!0).catch(()=>void 0);b?.id&&(c=!0,x=globalThis.setTimeout(()=>{x=0,b?.id&&le(b.id)},0));let t=globalThis.setInterval(()=>{k&&!c||W(!0).catch(()=>void 0)},k?Dw:Vw);e.lifecycle.onDispose(()=>{w=!0,oe(),globalThis.clearInterval(t),_?.dispose(),_=void 0})}}}}var dT=$x,fT=(e={})=>({...bS(e),version:AC}),pT=NS,mT=(e={})=>({...$S(e),version:AC}),hT=()=>globalThis.window?.__MESURER_HOST__?.codexBridge!==void 0,gT=[{id:aw,label:`Context`,order:30,create:gw,settingsIds:[`context`],hiddenSettingsControlIds:[`ui`]},{id:jC,label:`Edit`,order:35,create:NC,settingsIds:[`arrange`]},{id:nw,label:`Layout Guides`,order:38,create:iw},{id:pT,label:`Screenshot`,order:40,create:mT,settingsIds:[`screenshot`],hiddenSettingsControlIds:[`tool`]},{id:dT,label:`Recording`,order:42,create:fT,settingsIds:[`recording`],hiddenSettingsControlIds:[`tool`]},{id:ww,label:`Codex`,order:45,create:uT}],_T=e=>{let t=e!==void 0,n=new Map((e??[]).map(e=>[e.id,e])),r=new Set(gT.map(e=>e.id)),i=gT.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`?hT():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},vT={select:`select`,xray:`xray`,colorPicker:`color-picker`,rulers:`rulers`,typography:`text-inspector`,guides:`guides`,distance:`distance`,settings:`settings`};function yT(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,h=p.createElement(`div`);h.dataset.mesurerIsland=`true`;let g=Cw(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=kC({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(ow);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(PC);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),ee=async()=>(await N()).prepareCapture(),H=async()=>(await N()).finishCapture(),te=async()=>(await P()).intents(),U=async e=>{let t=(await P()).intent(e);if(!t)throw Error(`Edit movement intent not found: ${e}`);return t},W=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(),G=e=>j.textEdit(e),ae=Object.assign(j,{capabilities:()=>{let e=!!b?.service.get(ow);return{protocol:`mesurer.agent/v1`,contextSchema:`mesurer.context/v1`,capabilities:{context:e,select:e,annotations:e,review:e,capturePlan:e,arrange:!!b?.service.get(PC),textEdit:!!b?.service.get(DC)}}},context:F,contextText:I,select:R,annotations:z,review:B,capturePlan:V,prepareCapture:ee,finishCapture:H,arrangements:te,arrange:U,showArrange:W,arrangeCapturePlan:ne,reviewArrange:re}),oe={...f,version:AC,plugins:_T(l),excludePlugins:u?u.map(e=>vT[e]):[...d??[]]},se=Si(()=>Ur(Fy,xi(oe,{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),ce,le=new Promise((e,t)=>{ce=t});le.catch(()=>void 0);let ue=Promise.race([(async()=>(await ae.ready(),k()))(),le]);ue.catch(()=>void 0);let de=null;if(A){let e=A.globalName??`__MESURER__`,t=Object.getOwnPropertyDescriptor(m,e);Reflect.set(m,e,ae),de=()=>{Object.getOwnPropertyDescriptor(m,e)?.value===ae&&(t?Object.defineProperty(m,e,t):Reflect.deleteProperty(m,e))}}let fe=!1,pe=()=>void 0,me=e=>{T||S(e),E||w(e),ce(e)},he={element:h,root:_,hostLayer:g.mode,get pluginHost(){return b},ready:ue,agent:ae,service:M,context:F,contextText:I,copyContext:L,select:R,annotations:z,review:B,capturePlan:V,prepareCapture:ee,finishCapture:H,arrangements:te,arrange:U,showArrange:W,arrangeCapturePlan:ne,reviewArrange:re,textEdits:ie,textEdit:G,bringToFront:g.bringToFront,describe:async()=>(await ue).describe(),dispose(){fe||(fe=!0,pe(),me(new DOMException(`Mesurer was disposed before it became ready.`,`AbortError`)),de?.(),se(),g.dispose(),h.remove())}};if(o){let e=()=>{if(fe)return;let e=o.reason??new DOMException(`Mesurer mount aborted.`,`AbortError`);me(e),he.dispose()};o.addEventListener(`abort`,e,{once:!0}),pe=()=>{o.removeEventListener(`abort`,e)}}return he}var{target:bT,globalName:xT=`__MESURER__`,reuseExisting:ST=!0,recoverDisconnected:CT=!1,...wT}=globalThis.__MESURER_CONFIG__??{},TT=globalThis.__MESURER_INSTANCE__,ET=ST&&TT?.element.isConnected?TT:void 0,DT=()=>{let e=bT?document.querySelector(bT):document.body;if(!e)throw Error(`Mesurer injection target not found: ${bT}`);return globalThis.__MESURER_INSTANCE__?.dispose(),yT({...wT,target:e,agent:{globalName:xT,root:document}})},OT=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()}}},kT=ET??DT();globalThis.__MESURER_INSTANCE__=kT,globalThis.__MESURER_INJECT_RECOVERY__?.stop(),globalThis.__MESURER_INJECT_RECOVERY__=void 0,CT&&OT(DT),kT.ready.catch(e=>{queueMicrotask(()=>{throw e})})})(__MESURER_MEDIABUNNY__);