@vcp-dev/site-edit-bridge 0.10.36 → 0.10.38

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.
@@ -1,8 +1,8 @@
1
- function te(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}function ln(e){if(!Er(e)){if(e.encoding==="segment-trie-v1")throw new Error("Invalid compact render document");return e}let t=new Map,n=e.pageComposition.status==="supported"?e.pageComposition.placementUnitKeys:[],r=new Map(e.dynamicDataSummaries??[]),i=new Map(e.pageCompositionActionScopes??[]),o=s=>{let c=t.get(s);if(c)return c;let a=e.nodes[s];if(!a)throw new Error(`Missing compact document node ${s}`);let[u,d]=a,l=e.tokens[d];if(typeof l!="string")throw new Error(`Missing compact document token ${d}`);let g=`${u===null?"":o(u)}${l}`;return t.set(s,g),g};return{siteId:e.siteId,snapshotId:e.snapshotId,composition:{...e.composition},routeId:e.composition.routeId,version:e.version,pageComposition:e.pageComposition,entries:e.entries.map((s,c)=>{let[a,u,d]=s,l=d===void 0?void 0:n[d];if(d!==void 0&&!l)throw new Error(`Missing page composition unit ${d}`);let g=e.entryParentNodeIds?.[c],f=i.get(c),_=f?.kind==="source-siblings"?{kind:"source-siblings",siblingKeys:f.siblingEntryIndexes.map(C=>{let x=e.entries[C];if(!x)throw new Error(`Missing source sibling entry ${C}`);return o(x[0])})}:f;return{key:o(a),...e.entryParentNodeIds?{parentKey:g===null?null:o(g)}:{},...l?{pageCompositionUnitKey:l}:{},..._?{pageCompositionActionScope:_}:{},operationSummary:br(u),...r.get(c)?{dynamicDataSummary:r.get(c)}:{}}})}}function br(e){return{canUpdateText:(e&1)!==0,canInsertChild:(e&2)!==0,canMove:(e&4)!==0,canRemove:(e&8)!==0}}function Er(e){if(typeof e!="object"||e===null)return!1;let t=e;if(t.encoding!=="segment-trie-v1"||typeof t.siteId!="string"||typeof t.snapshotId!="string"||!Sr(t.composition)||typeof t.routeId!="string"||t.routeId!==t.composition.routeId||!Number.isInteger(t.version)||t.version<0||!rt(t.pageComposition)||!Array.isArray(t.tokens)||!t.tokens.every(c=>typeof c=="string")||!Array.isArray(t.nodes)||!Array.isArray(t.entries))return!1;let n=t.nodes;if(!n.every((c,a)=>Array.isArray(c)&&c.length===2&&(c[0]===null||ve(c[0])&&c[0]<a)&&ve(c[1])&&c[1]<t.tokens.length)||!t.entries.every(c=>Array.isArray(c)&&(c.length===2||c.length===3)&&ve(c[0])&&c[0]<n.length&&ve(c[1])&&c[1]<=15&&(c.length===2||ve(c[2]))))return!1;let r=t.entryParentNodeIds;if(r!==void 0&&(!Array.isArray(r)||r.length!==t.entries.length||!r.every(c=>c===null||ve(c)&&c<n.length)))return!1;let i=t.dynamicDataSummaries,o=t.pageCompositionActionScopes;return(o===void 0||Array.isArray(o)&&o.every(c=>{if(!Array.isArray(c)||c.length!==2||!ve(c[0])||c[0]>=t.entries.length||!rt(c[1])||!["route-unit","source-siblings","unavailable"].includes(String(c[1].kind)))return!1;let a=c[1];return a.kind!=="source-siblings"||Array.isArray(a.siblingEntryIndexes)&&a.siblingEntryIndexes.length>=2&&a.siblingEntryIndexes.every(u=>ve(u)&&u<t.entries.length)&&a.siblingEntryIndexes.includes(c[0])}))&&(i===void 0||Array.isArray(i)&&i.every(c=>Array.isArray(c)&&c.length===2&&ve(c[0])&&c[0]<t.entries.length&&rt(c[1])))}function rt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Sr(e){return!rt(e)||typeof e.routeId!="string"?!1:e.effectiveTemplateId===void 0||typeof e.effectiveTemplateId=="string"}function ve(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0}var _t="SITE_EDIT_COMPOSITION_SESSION_MISMATCH",xt="SITE_EDIT_COMPOSITION_SESSION_REQUIRED";var _e=class e{constructor(){}static parseMessage(t,n={}){let r=JSON.parse(t);if(!e.isMessage(r,n))throw new Error("Invalid site edit bridge message");return r}static stringifyMessage(t){return JSON.stringify(t)}static extractRequestInfo(t){if(ne(t)&&ne(t.payload)){let n=typeof t.payload.id=="string"?t.payload.id:"unknown",r=this.isRequestKind(t.payload.kind)?t.payload.kind:"get-document";return{id:n,kind:r}}return{id:"unknown",kind:"get-document"}}static isRequestKind(t){return t==="initialize-session"||t==="get-document"||t==="get-history-status"||t==="get-style-context"||t==="get-object-edit-context"||t==="get-class-name-source"||t==="get-source-tree"||t==="get-source-file"||t==="resolve-source-location"||t==="execute"||t==="get-operation-result"||t==="undo"||t==="redo"}static isMessage(t,n={}){return!ne(t)||typeof t.type!="string"?!1:t.type==="request"?Ir(t.payload,n):t.type==="response"||t.type==="error"?ne(t.payload)&&typeof t.payload.id=="string":t.type==="event"?ne(t.payload)&&ne(t.payload.event):t.type==="auth"?ne(t.payload)&&typeof t.payload.key=="string":t.type==="ping"||t.type==="pong"?ne(t.payload)&&typeof t.payload.id=="string":t.type==="auth-ok"&&ne(t.payload)&&t.payload.ok===!0}};function Ir(e,t){if(!ne(e)||typeof e.id!="string"||!_e.isRequestKind(e.kind))return!1;let n=vt(e.composition);switch(e.kind){case"initialize-session":return n&&(e.mutationContext===void 0||Tt(e.mutationContext));case"get-document":case"get-style-context":return n;case"get-object-edit-context":return typeof e.key=="string"&&n&&Cr(e.selectionRef);case"get-class-name-source":case"resolve-source-location":return typeof e.key=="string"&&n;case"get-history-status":return n;case"get-source-tree":return n;case"get-source-file":return typeof e.path=="string"&&n;case"execute":case"get-operation-result":return n&&Rr(e.request)&&(e.request.mutationContext===void 0||Tt(e.request.mutationContext))&&(t.validateOperationRequest?.(e.request)??!0);case"undo":case"redo":return n&&e.mutationContext===void 0||n&&Tt(e.mutationContext)}}function Cr(e){if(e===void 0)return!0;if(!ne(e)||typeof e.key!="string"||e.key.length===0)return!1;let t=e.instanceIndex,n=e.instanceCount;return t!==void 0&&(typeof t!="number"||!Number.isInteger(t)||t<0)||n!==void 0&&(typeof n!="number"||!Number.isInteger(n)||n<=0)||typeof t=="number"&&typeof n=="number"&&t>=n?!1:Object.keys(e).every(r=>r==="key"||r==="instanceIndex"||r==="instanceCount")}function Rr(e){return ne(e)&&typeof e.id=="string"&&typeof e.siteId=="string"&&typeof e.baseSnapshotId=="string"&&vt(e.composition)&&typeof e.kind=="string"&&ne(e.target)&&(e.target.kind!=="route"||vt(e.target.composition))&&typeof e.documentVersion=="number"&&Number.isInteger(e.documentVersion)&&e.documentVersion>=0&&ne(e.params)}function vt(e){return ne(e)&&typeof e.routeId=="string"&&e.routeId.length>0&&(e.templateId===void 0||typeof e.templateId=="string"&&e.templateId.length>0)&&Object.keys(e).every(t=>t==="routeId"||t==="templateId")}function ne(e){return typeof e=="object"&&e!==null}function Tt(e){return ne(e)&&typeof e.editingSessionId=="string"&&e.editingSessionId.length>0&&typeof e.lockId=="string"&&e.lockId.length>0&&typeof e.ownerId=="string"&&e.ownerId.length>0&&typeof e.leaseAssertion=="string"&&e.leaseAssertion.length>0}var Tr="vcp:designer:trace",vr="designer_trace",dn="__VCP_DESIGNER_TRACE__";var _r=/(authorization|cookie|token|secret|providerTrace|headers?|sourceCode|rawSource|fullSource)/i;function xr(e=globalThis){let t=e;try{if(t.localStorage?.getItem(Tr)==="1")return!0}catch{}try{let n=t.location?.search??"";return new URLSearchParams(n).get(vr)==="1"}catch{return!1}}function Ie(e,t={},n=globalThis){if(!xr(n))return;let r={type:e,timestamp:Date.now(),payload:Ar(t)},i=n,o=i[dn]??[];o.push(r),o.length>1e3&&o.splice(0,o.length-1e3),i[dn]=o;let s=n.console?.debug;r.payload.diagnosticOnly!==!0&&typeof s=="function"&&s.call(n.console,"[designer-trace]",r)}function Ar(e){return At(e,0)}function At(e,t){if(t>4)return"[truncated]";if(Array.isArray(e))return e.map(r=>At(r,t+1));if(!e||typeof e!="object")return e;let n={};for(let[r,i]of Object.entries(e)){if(_r.test(r)){n[r]="[redacted]";continue}n[r]=At(i,t+1)}return n}var it=class{constructor(t){this.options=t,this.socket=null,this.connectPromise=null,this.connectAttempt=null,this.connectionState="idle",this.intentionalClose=!1,this.sequence=0,this.pending=new Map,this.listeners=new Set,this.heartbeatState=null,this.connectionStatusListeners=new Set}connect(){return this.socket?.readyState===Nt&&this.connectionState==="open"?(this.setConnectionState("open"),Promise.resolve()):this.connectPromise?this.connectPromise:(this.intentionalClose=!1,this.setConnectionState("connecting"),this.connectPromise=new Promise((t,n)=>{let r;try{r=this.createSocket(this.options.url)}catch(a){let u=we(a,"WebSocket failed");this.socket=null,this.connectAttempt=null,this.connectPromise=null,this.setConnectionState("failed",u.message),n(u);return}let i={socket:r,settled:!1,reject:n};this.connectAttempt=i,this.socket=r;let o=Math.max(0,this.options.connectTimeoutMs??Dr);o>0&&(i.deadline=setTimeout(()=>{this.connectAttempt!==i||i.settled||(Ie("bridge.connect-timeout",{connectTimeoutMs:o}),this.cleanupSocket(r,pn(Or,`Bridge connection did not complete within ${o}ms`),"failed"))},o));let s=()=>{this.socket!==r||this.connectAttempt!==i||(i.settled=!0,clearTimeout(i.deadline),this.connectAttempt=null,this.connectPromise=null,this.setConnectionState("open"),this.startHeartbeat(r),t())},c=(a,u)=>{this.cleanupSocket(r,a,u)};r.onopen=()=>{if(!(this.socket!==r||this.connectAttempt!==i)){if(this.options.authKey){try{r.send(_e.stringifyMessage({type:"auth",payload:{key:this.options.authKey}}))}catch(a){c(we(a,"WebSocket auth failed"),"failed")}return}s()}},r.onerror=a=>{if(this.socket!==r)return;let u=we(a,"WebSocket failed");c(u,"failed")},r.onmessage=a=>{if(this.socket===r){if(this.noteInboundMessage(r),this.options.authKey&&this.connectAttempt===i&&!i.settled){this.handleAuthHandshakeMessage(a.data,r,i,()=>{s()});return}this.handleMessage(a.data)}},r.onclose=a=>{if(this.socket!==r)return;let u=this.intentionalClose,d=new Error(wr(a,{intentional:u}));c(d,u?"closed":"failed")}}),this.connectPromise)}disconnect(){this.intentionalClose=!0,this.setConnectionState("closing");let t=this.socket;if(!t){this.rejectAll(new Error("WebSocket disconnected")),this.connectAttempt=null,this.connectPromise=null,this.setConnectionState("closed");return}this.cleanupSocket(t,new Error("WebSocket disconnected"),"closed")}getConnectionState(){return this.connectionState}subscribeConnectionStatus(t){return this.connectionStatusListeners.add(t),t({state:this.connectionState}),()=>{this.connectionStatusListeners.delete(t)}}getDocument(t){let n=this.selector(t);return this.request("get-document",{composition:n})}async initializeSession(t){let n=this.selector(t.composition);return await this.request("initialize-session",{composition:n,...t.mutationContext?{mutationContext:t.mutationContext}:{}})}getHistoryStatus(t){return this.request("get-history-status",{composition:this.selector(t)})}getStyleContext(t){let n=this.selector(t);return this.request("get-style-context",{composition:n})}getObjectEditContext(t,n,r){let i=this.selector(n);return this.request("get-object-edit-context",{key:t,composition:i,...r?{selectionRef:r}:{}})}getClassNameSource(t,n){let r=this.selector(n);return this.request("get-class-name-source",{key:t,composition:r})}getSourceTree(t){return this.request("get-source-tree",{composition:this.selector(t)})}getSourceFile(t){return this.request("get-source-file",{path:t.path,composition:this.selector(t.composition)})}resolveSourceLocation(t){return this.request("resolve-source-location",{key:t.key,composition:this.selector(t.composition)})}execute(t,n){let r=We(t),i={...t,composition:xe(r)};return this.request("execute",{request:i})}getOperationResult(t){return this.request("get-operation-result",{request:t,composition:xe(We(t))})}undo(t,n){return this.request("undo",{composition:this.selector(t)})}redo(t,n){return this.request("redo",{composition:this.selector(t)})}subscribe(t){return this.listeners.add(t),()=>{this.listeners.delete(t)}}selector(t){return xe(t)}request(t,n){let r=this.socket;if(!r||r.readyState!==Nt||this.connectionState!=="open")return Promise.reject(new Error(`WebSocket is not open (state: ${this.connectionState}, readyState: ${r?.readyState??"none"})`));let i=`${t}-${this.sequence+=1}`,o=zr(i,t,n);return Ie("bridge.request",{id:i,kind:t,routeId:typeof n.routeId=="string"?n.routeId:null,key:typeof n.key=="string"?n.key:null,operationKind:fn(n.request,"kind"),documentVersion:fn(n.request,"documentVersion")}),new Promise((s,c)=>{let a=this.resolveRequestTimeoutMs(t),u=a>0?setTimeout(()=>{let d=this.pending.get(i);d&&(this.pending.delete(i),Ie("bridge.response",{id:i,kind:t,ok:!1,timedOut:!0}),d.reject(new Error(`Bridge request timed out after ${a}ms: ${t}`)))},a):null;u?.unref?.(),this.pending.set(i,{kind:t,timeout:u,resolve:d=>s(d),reject:c});try{r.send(_e.stringifyMessage(o))}catch(d){let l=we(d,"WebSocket send failed");this.clearPendingRequest(i),c(l),this.cleanupSocket(r,l,"failed")}})}handleAuthHandshakeMessage(t,n,r,i){try{if(_e.parseMessage(t).type==="auth-ok"){i();return}throw new Error("Bridge authentication failed")}catch(o){let s=we(o,"Bridge authentication failed");this.connectAttempt===r&&this.cleanupSocket(n,s,"failed")}}handleMessage(t){let n=_e.parseMessage(t);if(n.type==="event"){for(let i of this.listeners)i(n.payload.event);return}if(n.type!=="response"&&n.type!=="error")return;let r=this.pending.get(n.payload.id);if(r){if(this.clearPendingRequest(n.payload.id),n.type==="error"){Ie("bridge.response",{id:n.payload.id,kind:r.kind,ok:!1});let i=new Error(n.payload.message);n.payload.code&&(i.code=n.payload.code),r.reject(i);return}Ie("bridge.response",{id:n.payload.id,kind:r.kind,ok:!0,resultVersion:qr(n.payload.result)}),r.resolve(r.kind==="get-document"?{...n.payload.result,data:yn(n.payload.result.data,n.payload.result.composition)}:r.kind==="initialize-session"?Vr(n.payload.result):n.payload.result)}}rejectAll(t){for(let[n,r]of[...this.pending])this.clearPendingRequest(n),r.reject(t)}clearPendingRequest(t){let n=this.pending.get(t);n&&(n.timeout&&clearTimeout(n.timeout),this.pending.delete(t))}resolveRequestTimeoutMs(t){let n=this.options.requestTimeoutMsByKind?.[t];return typeof n=="number"?Math.max(0,n):typeof this.options.requestTimeoutMs=="number"?Math.max(0,this.options.requestTimeoutMs):Fr[t]??Br}cleanupSocket(t,n,r){if(this.socket===t&&(this.socket=null),this.stopHeartbeat(t),this.connectAttempt?.socket===t){let i=this.connectAttempt;this.connectAttempt=null,clearTimeout(i.deadline),i.settled||(i.settled=!0,i.reject(n))}this.connectPromise=null,this.rejectAll(n),this.setConnectionState(r,n.message),t.onopen=null,t.onmessage=null,t.onerror=null,t.onclose=null;try{(t.readyState===Nr||t.readyState===Nt)&&t.close()}catch{}}startHeartbeat(t){let n=this.options.heartbeat===void 0?Pr:this.options.heartbeat;if(!n||n.intervalMs<=0||n.timeoutMs<=0)return;this.stopHeartbeat(this.heartbeatState?.socket??t);let r=this.options.visibility===void 0?Mr():this.options.visibility,i=()=>r?.visibilityState!=="hidden",o=()=>{this.heartbeatState?.socket===t&&this.heartbeatState.deadline&&(clearTimeout(this.heartbeatState.deadline),this.heartbeatState.deadline=null)},s=()=>{let a=this.heartbeatState;if(!(a?.socket!==t||this.socket!==t||this.connectionState!=="open"||a.deadline||!i())){try{t.send(_e.stringifyMessage({type:"ping",payload:{id:`ping-${this.sequence+=1}`}}))}catch(u){this.cleanupSocket(t,we(u,"WebSocket heartbeat send failed"),"failed");return}a.deadline=setTimeout(()=>{this.heartbeatState?.socket===t&&(this.heartbeatState.deadline=null,i()&&(Ie("bridge.heartbeat-timeout",{timeoutMs:n.timeoutMs}),this.cleanupSocket(t,pn(kr,`Bridge heartbeat was not answered within ${n.timeoutMs}ms`),"failed")))},n.timeoutMs)}},c=()=>{i()?s():o()};r?.addEventListener("visibilitychange",c),this.heartbeatState={socket:t,interval:setInterval(s,n.intervalMs),deadline:null,unbindVisibility:()=>r?.removeEventListener("visibilitychange",c)}}stopHeartbeat(t){let n=this.heartbeatState;!n||n.socket!==t||(clearInterval(n.interval),n.deadline&&clearTimeout(n.deadline),n.unbindVisibility(),this.heartbeatState=null)}noteInboundMessage(t){let n=this.heartbeatState;n?.socket===t&&n.deadline&&(clearTimeout(n.deadline),n.deadline=null)}setConnectionState(t,n){if(this.connectionState===t&&!n)return;this.connectionState=t;let r={state:t,...n?{message:n}:{}};this.options.onConnectionStatus?.(r);for(let i of this.connectionStatusListeners)i(r)}createSocket(t){if(this.options.createSocket)return this.options.createSocket(t);if(typeof WebSocket>"u")throw new Error("Site edit preview bridge requires WebSocket");return new WebSocket(t)}},Nr=0,Nt=1,Dr=1e4,Pr={intervalMs:2e4,timeoutMs:1e4},Or="SITE_EDIT_BRIDGE_CONNECT_TIMEOUT",kr="SITE_EDIT_BRIDGE_HEARTBEAT_TIMEOUT";function Mr(){let e=globalThis.document;return e&&typeof e.visibilityState=="string"&&typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:null}function pn(e,t){let n=new Error(`${e}: ${t}`);return n.code=e,n}var Br=15e3,Fr={"get-source-tree":1e4,"get-source-file":1e4,"resolve-source-location":1e4,execute:6e4,"get-operation-result":6e4,undo:2e4,redo:2e4};function we(e,t){return e instanceof Error?e:new Error(t)}function wr(e,t){return t.intentional?"WebSocket disconnected":e?.code===1008?e.reason?`Bridge session authentication failed: ${e.reason}`:"Bridge session authentication failed":e?.reason?`WebSocket closed: ${e.reason}`:typeof e?.code=="number"&&e.code!==1005?`WebSocket closed with code ${e.code}`:"WebSocket closed"}function fn(e,t){if(!e||typeof e!="object")return null;let r=e[t];return typeof r=="string"||typeof r=="number"?r:null}function qr(e){if(!e||typeof e!="object")return null;let t=e,n=t.data?.resultVersion??t.data?.version??null;return typeof n=="number"?n:null}function gn(e){let t="composition"in e?xe(e.composition):xe({routeId:e.routeId});return new Dt({composition:t,initialDocument:e.initialDocument,client:e.client})}var Dt=class{constructor(t){this.params=t,this.serverConfirmedComposition=null,this.refreshInFlight=null,this.objectGeneration=0,this.styleGeneration=0,this.editContextCache=new Map,this.editContextInFlight=new Map,this.classNameSourceCache=new Map,this.classNameSourceInFlight=new Map,this.styleContextCache=new Map,this.styleContextInFlight=new Map,this.snapshotIdentityStale=!1,this.composition=xe(t.composition);let n=t.initialDocument.composition.effectiveTemplateId;if(n!==void 0&&(this.composition.templateId===void 0||this.composition.templateId!==n))throw new Error(`Site edit bridge requires a matching templateId for initial document composition ${JSON.stringify(t.initialDocument.composition)}`);this.currentDocument=t.initialDocument,this.observedDocumentVersion=t.initialDocument.version,this.sessionInitialized=!mn(t.initialDocument),this.activeCompositionContext=this.sessionInitialized?{...t.initialDocument.composition}:null}async getDocument(t){this.requireBoundComposition(t);let n=mn(this.currentDocument)||this.snapshotIdentityStale;return(n||this.currentDocument.version<this.observedDocumentVersion)&&(this.currentDocument=await this.refreshSnapshot(n?void 0:this.observedDocumentVersion,"get-document"),this.snapshotIdentityStale=!1,this.sessionInitialized=!0),{ok:!0,data:this.currentDocument}}async initializeSession(t){let n=this.requireBoundComposition(t.composition);if(!this.params.client.initializeSession)throw new Error("Site edit bridge client does not support initialize-session");let r=await this.params.client.initializeSession({...t,composition:n});return this.currentDocument=r.data.document,this.observedDocumentVersion=r.data.document.version,this.activeCompositionContext={...r.composition},this.rememberServerConfirmedComposition(r.composition),this.sessionInitialized=!0,this.clearObjectCaches(),r}async getHistoryStatus(t){return this.params.client.getHistoryStatus(this.requireBoundComposition(t))}async getStyleContext(t){let n=this.requireBoundComposition(t),r=Ue(n),i=this.styleContextCache.get(r);if(i?.generation===this.styleGeneration)return{ok:!0,data:i.value};let o=this.styleContextInFlight.get(r);if(o?.generation===this.styleGeneration)return o.request;let s=this.styleGeneration,c=this.params.client.getStyleContext(n).then(a=>(this.styleGeneration===s&&this.styleContextCache.set(r,{generation:s,value:a.data}),a)).finally(()=>{this.styleContextInFlight.get(r)?.request===c&&this.styleContextInFlight.delete(r)});return this.styleContextInFlight.set(r,{generation:s,request:c}),c}async ensureDocumentVersion(t,n){this.requireBoundComposition(t);let r=await this.refreshSnapshot(n,"ensure-version");if(r.version<n)throw new Error(`Document refresh returned version ${r.version}, expected at least ${n}`);return{ok:!0,data:r}}async acknowledgeDocumentVersion(t,n){if(this.requireBoundComposition(t),n>this.currentDocument.version){if(this.currentDocument.pageComposition.status==="supported"){let r=await this.refreshSnapshot(n,"ensure-version");if(r.version<n)throw new Error(`Document refresh returned version ${r.version}, expected at least ${n}`);return{ok:!0,data:r}}this.currentDocument={...this.currentDocument,version:n},this.clearObjectCaches({preserveStyleContext:!0})}return this.observedDocumentVersion=Math.max(this.observedDocumentVersion,n),{ok:!0,data:this.currentDocument}}async getObjectEditContext(t,n,r){let i=this.requireBoundComposition(n),o=this.objectCacheKey(t,i,r),s=this.editContextCache.get(o);if(s)return{ok:!0,data:s};let c=this.editContextInFlight.get(o);if(c)return c;let a=this.objectGeneration,u=this.params.client.getObjectEditContext(t,i,...r?[r]:[]).then(d=>(this.objectGeneration===a&&this.editContextCache.set(o,d.data),d)).finally(()=>{this.editContextInFlight.get(o)===u&&this.editContextInFlight.delete(o)});return this.editContextInFlight.set(o,u),u}async getClassNameSource(t,n){let r=this.requireBoundComposition(n),i=this.objectCacheKey(t,r),o=this.classNameSourceCache.get(i);if(o)return o;let s=this.classNameSourceInFlight.get(i);if(s)return s;let c=this.objectGeneration,a=this.params.client.getClassNameSource(t,r).then(u=>(this.objectGeneration===c&&this.classNameSourceCache.set(i,u),u)).finally(()=>{this.classNameSourceInFlight.get(i)===a&&this.classNameSourceInFlight.delete(i)});return this.classNameSourceInFlight.set(i,a),a}async getSourceTree(t){return this.params.client.getSourceTree(this.requireBoundComposition(t))}async getSourceFile(t){return this.params.client.getSourceFile({path:t.path,composition:this.requireBoundComposition(t.composition)})}async resolveSourceLocation(t){return this.params.client.resolveSourceLocation({key:t.key,composition:this.requireBoundComposition(t.composition)})}async execute(t,n){let r=We(t);r&&this.composition.templateId!==void 0&&this.requireBoundComposition(r);let i={...t,composition:r??this.composition};return this.params.client.execute(i)}async getOperationResult(t){return this.requireBoundComposition(t.composition),this.params.client.getOperationResult?this.params.client.getOperationResult(t):null}async undo(t,n){return this.params.client.undo(this.requireBoundComposition(t))}async redo(t,n){return this.params.client.redo(this.requireBoundComposition(t))}subscribe(t){return this.params.client.subscribe(n=>{if(n.type==="site-edit.snapshot.changed"&&this.sessionInitialized&&this.isActiveComposition(n.composition)){this.snapshotIdentityStale=!0,this.clearObjectCaches(),t(n);return}if(n.type==="site-edit.document.changed"&&this.sessionInitialized&&this.isActiveComposition(n.composition)){this.observedDocumentVersion=Math.max(this.observedDocumentVersion,n.version),n.version>this.currentDocument.version&&this.clearObjectCaches(),t(n);return}t(n)})}async refreshSnapshot(t,n="ensure-version"){if(typeof t=="number"&&this.currentDocument.version>=t)return Ie("bridge.document-refresh",{composition:this.composition,routeId:this.composition.routeId,minVersion:t,currentVersion:this.currentDocument.version,deduped:!0,skipped:!0,source:n}),this.currentDocument;let r=Ue(this.composition),i=this.refreshInFlight;if(i?.compositionKey===r){Ie("bridge.document-refresh",{composition:this.composition,routeId:this.composition.routeId,minVersion:t,currentVersion:this.currentDocument.version,deduped:!0,source:n});let s=await i.request;if(typeof t!="number"||s.version>=t||this.currentDocument.version>=t)return this.currentDocument}Ie("bridge.document-refresh",{composition:this.composition,routeId:this.composition.routeId,minVersion:t,currentVersion:this.currentDocument.version,deduped:!1,source:n});let o=this.params.client.getDocument(this.composition).then(s=>(this.currentDocument=s.data,this.activeCompositionContext={...s.data.composition},this.rememberServerConfirmedComposition(s.data.composition),this.observedDocumentVersion=Math.max(this.observedDocumentVersion,s.data.version),this.clearObjectCaches(),this.currentDocument));this.refreshInFlight={compositionKey:r,request:o};try{return await o}finally{this.refreshInFlight?.request===o&&(this.refreshInFlight=null)}}clearObjectCaches(t){this.objectGeneration+=1,this.editContextCache.clear(),this.editContextInFlight.clear(),this.classNameSourceCache.clear(),this.classNameSourceInFlight.clear(),!t?.preserveStyleContext&&(this.styleGeneration+=1,this.styleContextCache.clear(),this.styleContextInFlight.clear())}objectCacheKey(t,n,r){return`${Ue(n)}\0${t}\0${Kr(r)}`}rememberServerConfirmedComposition(t){!t||typeof t.routeId!="string"||(this.serverConfirmedComposition={...t})}isAcceptedComposition(t){if(Ue(t)===Ue(this.composition))return!0;let n=this.serverConfirmedComposition;return n!==null&&ot(n)===ot(hn(t))}requireBoundComposition(t){let n=t===void 0?this.composition:xe(t);if(!this.isAcceptedComposition(n))throw new Error(`Site edit bridge is bound to composition ${JSON.stringify(this.composition)}, received ${JSON.stringify(n)}`);return xe(n)}isActiveComposition(t){let n=this.activeCompositionContext??hn(this.composition);return ot(t)===ot(n)}};function mn(e){return e.version===0&&e.entries.length===0}function Vr(e){let t=e;return{...t,data:{...t.data,document:yn(t.data.document,t.composition)}}}function yn(e,t){let n=e,r=ln(n.routeId?n:{...n,routeId:t?.routeId??n.composition?.routeId});return t?{...r,composition:t}:r}function xe(e){if(e&&typeof e=="object"&&typeof e.routeId=="string"){let t="effectiveTemplateId"in e?e.effectiveTemplateId:"templateId"in e?e.templateId:void 0;return{routeId:e.routeId,...typeof t=="string"?{templateId:t}:{}}}throw new Error("SITE_EDIT_COMPOSITION_SESSION_REQUIRED: a composition selector is required")}function Ue(e){return JSON.stringify([e.routeId,e.templateId??null])}function Kr(e){return e?JSON.stringify([e.key,e.instanceIndex??null,e.instanceCount??null]):""}function ot(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}function hn(e){return{routeId:e.routeId,...e.templateId?{effectiveTemplateId:e.templateId}:{}}}function We(e){if(e&&typeof e=="object"){let t=e;if(t.composition&&typeof t.composition=="object"){let n=t.composition;if(typeof n.routeId=="string")return{routeId:n.routeId,...typeof n.templateId=="string"?{templateId:n.templateId}:{}}}}}function zr(e,t,n){let r=xe(t==="execute"?We(n.request):n.composition),i={id:e,kind:t,composition:r};switch(t){case"initialize-session":case"get-document":case"get-history-status":case"get-style-context":case"get-source-tree":case"undo":case"redo":return{type:"request",payload:{...i,...n.mutationContext?{mutationContext:n.mutationContext}:{}}};case"get-object-edit-context":return{type:"request",payload:{...i,key:String(n.key),...n.selectionRef?{selectionRef:n.selectionRef}:{}}};case"get-class-name-source":case"resolve-source-location":return{type:"request",payload:{...i,key:String(n.key)}};case"get-source-file":return{type:"request",payload:{...i,path:String(n.path)}};case"execute":case"get-operation-result":return{type:"request",payload:{...i,request:{...n.request,composition:We(n.request)??r}}}}}var bn="vcp-window-message",En=1;function Sn(e){return{source:bn,version:En,namespace:e.namespace,channel:e.channel,...e.sessionKey?{sessionKey:e.sessionKey}:{},body:e.body}}function $r(e){try{return R(e)?J(e,"source",bn)&&J(e,"version",En)&&k(e,"namespace")&&k(e,"channel")&&fe(e,"body")&&(!Pe(e,"sessionKey")||k(e,"sessionKey")):!1}catch{return!1}}var Ot="site-edit",In="frame-runtime",Ur="frame-announce",kt=1,He=1,Ge=1,Cn=24;function Ye(e,t={}){return Sn({namespace:Ot,channel:In,sessionKey:t.sessionKey,body:e})}function Rn(){return Sn({namespace:Ot,channel:Ur,body:{type:"announce"}})}function Tn(e){try{return!$r(e)||e.namespace!==Ot||e.channel!==In?!1:ho(e.body)}catch{return!1}}function Ce(e){return R(e)&&k(e,"routeId")&&Ae(e,"templateId")&&he(e,["routeId","templateId"])}function st(e){return R(e)&&k(e,"routeId")&&Ae(e,"effectiveTemplateId")&&he(e,["routeId","effectiveTemplateId"])}function he(e,t){let n=new Set(t);return Reflect.ownKeys(e).every(r=>typeof r=="string"&&n.has(r))}var Pe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function fe(e,t){let n=Object.getOwnPropertyDescriptor(e,t);return n!==void 0&&"value"in n}function p(e,t){return Object.getOwnPropertyDescriptor(e,t)?.value}function J(e,t,n){return fe(e,t)&&p(e,t)===n}function k(e,t){return fe(e,t)&&typeof p(e,t)=="string"}function at(e,t){return fe(e,t)&&typeof p(e,t)=="boolean"}function w(e,t){let n=p(e,t);return fe(e,t)&&typeof n=="number"&&Number.isFinite(n)}function vn(e,t){let n=p(e,t);return fe(e,t)&&typeof n=="number"&&Number.isInteger(n)&&n>0}function Ae(e,t){return!Pe(e,t)||p(e,t)===void 0||k(e,t)}function qe(e,t){return!Pe(e,t)||p(e,t)===void 0||w(e,t)}function De(e,t){let n=p(e,t);return!Pe(e,t)||n===void 0||fe(e,t)&&typeof n=="number"&&Number.isInteger(n)&&n>=0}function W(e,t){return!Pe(e,t)||p(e,t)===void 0}function R(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Wr(e){return R(e)&&Reflect.ownKeys(e).length===0}function ct(e){if(!Array.isArray(e))return!1;for(let t=0;t<e.length;t+=1){let n=Object.getOwnPropertyDescriptor(e,String(t));if(n===void 0||!("value"in n)||typeof n.value!="string")return!1}return!0}function Se(e){return R(e)&&k(e,"key")&&De(e,"instanceIndex")&&De(e,"instanceCount")&&De(e,"textSegmentIndex")}function Hr(e){return R(e)&&k(e,"blockId")&&De(e,"blockIndex")&&Se(p(e,"ref"))&&je(p(e,"rect"))&&at(e,"targetIsSectionRoot")}function Gr(e){if(!R(e))return!1;let t=p(e,"placement"),n=p(e,"boundary");return k(e,"anchorBlockId")&&De(e,"positionIndex")&&Se(p(e,"anchorRef"))&&(t==="before"||t==="after")&&R(n)&&w(n,"top")&&w(n,"left")&&w(n,"width")}function je(e){return R(e)&&["top","left","width","height"].every(t=>w(e,t))}function _n(e){if(!R(e))return!1;let t=p(e,"rect"),n=p(e,"layout"),r=R(n)?p(n,"containingBlock"):null,i=p(e,"scrollContext"),o=R(r)&&(J(r,"kind","viewport")&&Reflect.ownKeys(r).length===1||J(r,"kind","document")&&Reflect.ownKeys(r).length===1||J(r,"kind","element")&&k(r,"runtimeNodeId"));return J(e,"version",kt)&&k(e,"runtimeNodeId")&&R(t)&&je(p(t,"viewport"))&&je(p(t,"document"))&&R(n)&&k(n,"position")&&k(n,"transform")&&o&&R(i)&&["scrollX","scrollY","viewportWidth","viewportHeight"].every(s=>w(i,s))&&fe(i,"scrollContainers")&&jr(p(i,"scrollContainers"))}function jr(e){return Array.isArray(e)&&e.every(t=>R(t)&&k(t,"runtimeNodeId")&&w(t,"scrollLeft")&&w(t,"scrollTop"))}function Pt(e){return R(e)&&(W(e,"layoutSnapshot")||_n(p(e,"layoutSnapshot")))}function Yr(e){return R(e)&&Se(p(e,"ref"))&&fe(e,"layoutSnapshot")&&_n(p(e,"layoutSnapshot"))&&(W(e,"childBoxes")||Lr(p(e,"childBoxes")))&&(W(e,"childRects")||Jr(p(e,"childRects")))&&(W(e,"layout")||Xr(p(e,"layout")))&&(W(e,"spacing")||Qr(p(e,"spacing")))}function Xr(e){if(!R(e))return!1;let t=p(e,"indicatorOrientation");return k(e,"display")&&(t==="horizontal"||t==="vertical")&&Ae(e,"flexDirection")&&Ae(e,"gridAutoFlow")}function Jr(e){return Array.isArray(e)&&e.every(t=>je(t))}function Lr(e){return Array.isArray(e)&&e.every(t=>R(t)&&je(p(t,"rect"))&&xn(p(t,"margin")))}function xn(e){return R(e)&&["marginTop","marginRight","marginBottom","marginLeft"].every(t=>w(e,t))}function Qr(e){return xn(e)&&["paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","columnGap","rowGap"].every(t=>w(e,t))}function Zr(e){if(!Array.isArray(e))return!1;for(let t=0;t<e.length;t+=1){let n=Object.getOwnPropertyDescriptor(e,String(t));if(n===void 0||!("value"in n)||!Yr(n.value))return!1}return!0}function eo(e){return R(e)&&Reflect.ownKeys(e).every(t=>typeof t=="string"&&fe(e,t)&&(typeof p(e,t)=="string"||p(e,t)===null))}function An(e){return e==null||typeof e=="string"||typeof e=="number"&&Number.isFinite(e)}function to(e){return R(e)&&Reflect.ownKeys(e).every(t=>typeof t=="string"&&fe(e,t)&&An(p(e,t)))}function no(e){if(!R(e))return!1;let t=p(e,"priority");return k(e,"property")&&fe(e,"value")&&An(p(e,"value"))&&(!Pe(e,"priority")||t===void 0||t==="important")}function ro(e){return R(e)?(W(e,"attributes")||eo(p(e,"attributes")))&&Ae(e,"className")&&(W(e,"style")||to(p(e,"style")))&&(W(e,"styleDeclarations")||Array.isArray(p(e,"styleDeclarations"))&&p(e,"styleDeclarations").every(no)):!1}function oo(e){return R(e)&&w(e,"x")&&w(e,"y")&&(W(e,"detailLevel")||J(e,"detailLevel","summary")||J(e,"detailLevel","full"))}function io(e){return R(e)&&Se(p(e,"ref"))}function so(e){if(!R(e)||!R(p(e,"variables")))return!1;let t=p(e,"variables");return Reflect.ownKeys(t).every(n=>typeof n=="string"&&k(t,n))?W(e,"stylesheets")||ct(p(e,"stylesheets")):!1}function co(e){if(!J(e,"type","request")||!k(e,"id")||!k(e,"kind")||!fe(e,"payload"))return!1;let t=p(e,"kind"),n=p(e,"payload");switch(t){case"hit-test-at-point":case"start-text-edit-at-point":return oo(n);case"bridge-get-source-tree":return R(n)&&Ce(p(n,"composition"))&&he(n,["composition"]);case"get-scroll-metrics":case"clear-theme-override":return Wr(n);case"bridge-get-history-status":case"bridge-undo":case"bridge-redo":return R(n)&&Ce(p(n,"composition"))&&he(n,["composition"]);case"bridge-get-source-file":return R(n)&&k(n,"path")&&Ce(p(n,"composition"))&&he(n,["path","composition"]);case"bridge-get-object-edit-context":return R(n)&&k(n,"key")&&Ce(p(n,"composition"))&&mo(p(n,"selectionRef"))&&he(n,["key","composition","selectionRef"]);case"bridge-resolve-source-location":case"bridge-get-class-name-source":return R(n)&&k(n,"key")&&Ce(p(n,"composition"))&&he(n,["key","composition"]);case"scroll-to":return R(n)&&w(n,"x")&&w(n,"y");case"scroll-by":return R(n)&&w(n,"deltaX")&&w(n,"deltaY");case"set-interaction-mode":return R(n)&&at(n,"enabled");case"set-selection-visual":return R(n)&&J(n,"version",He)&&Se(p(n,"ref"))&&J(n,"visible",!0);case"clear-selection-visual":return R(n)&&J(n,"version",He);case"set-resize-visual":return R(n)&&J(n,"version",Ge)&&Se(p(n,"ref"))&&J(n,"visible",!0);case"clear-resize-visual":return R(n)&&J(n,"version",Ge);case"set-theme-override":return so(n);case"get-theme-variables":return R(n)&&ct(p(n,"names"));case"compute-drop-target-at-point":return R(n)&&w(n,"x")&&w(n,"y")&&(J(n,"dragKind","insert")||J(n,"dragKind","move"))&&(W(n,"movingRef")||Se(p(n,"movingRef")));case"observe-node-bounds":case"clear-node-bounds-observer":return R(n)&&(W(n,"ref")||Se(p(n,"ref")));case"apply-node-patch":return R(n)&&Se(p(n,"ref"))&&ro(p(n,"patch"))&&(W(n,"preview")||R(p(n,"preview"))&&k(p(n,"preview"),"sessionId")&&De(p(n,"preview"),"revision")&&Pe(p(n,"preview"),"revision"));case"get-hit-by-ref":case"get-path-by-ref":case"restore-text-edit":case"clear-text-edit-rollback":return io(n);case"bridge-initialize-session":case"bridge-get-style-context":return R(n)&&Ce(p(n,"composition"))&&he(n,["composition"]);case"bridge-get-document":case"bridge-ensure-document-version":case"bridge-acknowledge-document-version":return R(n)&&Ce(p(n,"composition"))&&qe(n,"minVersion")&&qe(n,"version")&&he(n,["composition","minVersion","version"]);case"bridge-execute":case"bridge-get-operation-result":{if(!R(n))return!1;let r=p(n,"request"),i=p(n,"composition"),o=R(r)?p(r,"composition"):null;return!Ce(i)||!R(r)||!Ce(o)?!1:te({routeId:i.routeId,...i.templateId?{effectiveTemplateId:i.templateId}:{}})===te({routeId:o.routeId,...o.templateId?{effectiveTemplateId:o.templateId}:{}})&&he(n,["composition","request"])}case"bridge-subscribe":case"bridge-unsubscribe":return R(n)&&k(n,"subscriptionId")&&Ce(p(n,"composition"))&&he(n,["subscriptionId","composition"]);default:return!1}}function ao(e){return J(e,"type","response")&&k(e,"id")&&at(e,"ok")&&(W(e,"error")||k(e,"error"))}function uo(e){if(!R(e))return!1;let t=p(e,"type");if(typeof t!="string"||!st(p(e,"composition"))||!k(e,"siteId")||!k(e,"at"))return!1;switch(t){case"site-edit.document.changed":return k(e,"snapshotId")&&w(e,"version");case"site-edit.operation.planned":return k(e,"operationId")&&k(e,"baseSnapshotId")&&ct(p(e,"changedFiles"));case"site-edit.operation.completed":return R(p(e,"result"));case"site-edit.operation.failed":return k(e,"requestId")&&R(p(e,"error"));case"site-edit.capability.changed":return ct(p(e,"keys"));case"site-edit.graph.invalidated":return!0;case"site-edit.graph.ready":return w(e,"version");case"site-edit.graph.error":return k(e,"message");default:return!1}}var lo=new Set(["pointer-down","pointer-move","pointer-leave","pointer-up","pointer-cancel","pointer-click","pointer-double-click"]),Nn=new Set(["e","s","se"]);function po(e,t){if(W(e,"resizeSession"))return!0;let n=p(e,"resizeSession");if(!R(n))return!1;let r=p(e,"pointerId"),i=p(n,"pointerId"),o=p(n,"phase"),s=p(n,"edge"),c=t==="pointer-down"?"start":t==="pointer-up"?"commit":t==="pointer-cancel"?"cancel":null;return p(n,"version")===1&&o===c&&k(n,"sessionId")&&String(p(n,"sessionId")).length>0&&typeof r=="number"&&Number.isInteger(r)&&typeof i=="number"&&Number.isInteger(i)&&r===i&&typeof s=="string"&&Nn.has(s)&&p(e,"resizeEdge")===s&&Se(p(n,"ref"))&&["startWidth","startHeight","width","height"].every(a=>w(n,a))}function fo(e){if(!J(e,"type","event")||!k(e,"kind")||!R(p(e,"payload")))return!1;let t=p(e,"kind"),n=p(e,"payload");switch(t){case"text-edit-commit":case"text-edit-cancel":case"text-edit-exit":case"text-edit-input":return Se(p(n,"ref"))&&Ae(n,"value")&&(W(n,"hit")||Pt(p(n,"hit")));case"node-bounds-change":return Pt(p(n,"hit"));case"geometry-batch":{let r=p(n,"reason");return vn(n,"sequence")&&w(n,"sourceEventAt")&&w(n,"captureStartedAt")&&w(n,"capturedAt")&&(r==="scroll"||r==="resize"||r==="mutation")&&Zr(p(n,"snapshots"))}case"bridge-event":{let r=p(n,"event"),i=p(n,"composition");return!uo(r)||!st(i)?!1:k(n,"subscriptionId")&&te(i)===te(r.composition)}case"route-ready":return st(p(n,"composition"))&&k(n,"editEngineVersion")&&w(n,"sequence")&&w(n,"version");case"bridge-status":{let r=p(n,"state");return(r==="connecting"||r==="ready"||r==="reconnecting"||r==="failed"||r==="reload-required")&&st(p(n,"composition"))&&w(n,"sequence")&&qe(n,"attempt")&&qe(n,"retryInMs")&&Ae(n,"messageKey")&&Ae(n,"failureCode")}case"scroll":{let r=p(n,"metrics");return R(r)&&["scrollX","scrollY","scrollWidth","scrollHeight","viewportWidth","viewportHeight"].every(i=>w(r,i))}default:return lo.has(t)&&w(n,"clientX")&&w(n,"clientY")&&qe(n,"buttons")&&qe(n,"pointerId")&&(W(n,"hoverVisualOwned")||at(n,"hoverVisualOwned"))&&(W(n,"resizeEdge")||k(n,"resizeEdge")&&Nn.has(p(n,"resizeEdge")))&&po(n,t)&&(p(n,"hit")===null||Pt(p(n,"hit")))&&(W(n,"section")||p(n,"section")===null||Hr(p(n,"section")))&&(W(n,"sectionGap")||p(n,"sectionGap")===null||Gr(p(n,"sectionGap")))}}function mo(e){if(e===void 0)return!0;if(!R(e)||!he(e,["key","instanceIndex","instanceCount"])||!k(e,"key")||p(e,"key").length===0||!De(e,"instanceIndex")||!W(e,"instanceCount")&&!vn(e,"instanceCount"))return!1;let t=p(e,"instanceIndex"),n=p(e,"instanceCount");return!(typeof t=="number"&&typeof n=="number"&&t>=n)}function ho(e){if(!R(e))return!1;switch(p(e,"type")){case"request":return co(e);case"response":return ao(e);case"event":return fo(e);default:return!1}}var Kt="vcp-site-edit:route-ready",zt="vcp-site-edit:bridge-status",Xn="SITE_EDIT_COMPOSITION_RENDER_MISMATCH",Ht="#655ae8",go=80,yo=120,bo=160,Eo=4,Jn="data-vcp-designer-hover-visual",So=1e3,Io="data-vcp-ui-component",Ln="data-vcp-theme-preview",Dn="::repeat-item#",ut="components/ui",Mt="data-site-block-id",Bt="data-vcp-runtime-site-block-id",Co=new Set(["article","aside","div","footer","form","header","li","main","nav","ol","section","select","table","tbody","tfoot","thead","tr","ul"]),Ro=new Set(["a","button","em","h1","h2","h3","h4","h5","h6","label","p","small","span","strong"]);function To(e,t){let n=Array.from(e.querySelectorAll("[data-vcp-edit-key]"));for(let c of n)c.getAttribute(Bt)==="true"&&(c.removeAttribute(Mt),c.removeAttribute(Bt));if(!t)return;let r=n.filter(c=>c.tagName.toLowerCase()==="section"),i=r.length>0?r:n.filter(c=>c.tagName.toLowerCase()==="main"),o=new Set(i),s=new Map;for(let c of i){let a=c.parentElement,u=!1;for(;a;){if(o.has(a)){u=!0;break}a=a.parentElement}if(u||c.getAttribute(Mt)?.trim())continue;let d=c.getAttribute("data-vcp-edit-key")?.trim();if(!d)continue;let l=s.get(d)??0;s.set(d,l+1);let g=`vcp-runtime:${encodeURIComponent(d)}:${l}`;c.setAttribute(Mt,g),c.setAttribute(Bt,"true")}}function Qn(e,t=""){let n=rr(t),r=n&&(e===n||e.startsWith(`${n}/`))?e.slice(n.length)||"/":e,i=r.startsWith("/")?r:`/${r}`;return i==="/"?"/":i.replace(/\/+$/,"")}function vo(e){let t=Qn(e.pathname,e.basePath??""),n=new URLSearchParams(e.search??"").getAll("template_id");return n.length===0?{routeId:t}:{routeId:t,templateId:n[n.length-1]}}function ze(e){return JSON.stringify([e.routeId,e.templateId??null])}function _o(e,t){if(e.__VCP_SITE_EDIT_VERSION_LOGGED__)return;let n=e.console?.info;typeof n=="function"&&(e.__VCP_SITE_EDIT_VERSION_LOGGED__=!0,n.call(e.console,"[VCP Site Edit] runtime loaded",{bridge:t.versions?.bridge??"unknown",contracts:t.versions?.contracts??"unknown",documentVersion:t.documentVersion,engine:t.versions?.engine??"unknown",routeId:t.routeId}))}function xo(e,t={}){if(t.explicit_ws_url)return t.explicit_ws_url.startsWith("/")?`${e.location.protocol==="https:"?"wss:":"ws:"}//${e.location.host}${t.explicit_ws_url}`:t.explicit_ws_url;let n=e.location.protocol==="https:"?"wss:":"ws:",r=t.port?`${e.location.hostname}:${t.port}`:e.location.host;return`${n}//${r}${t.path??"/__vcp/site-edit/bridge"}`}async function xs(e=window,t={}){let n=xo(e,{explicit_ws_url:t.explicit_ws_url,port:t.ws_port,path:t.wsPath||"/__vcp/site-edit/bridge"}),r=Ao({bridgeUrl:n,options:t}),i=e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__;if(i?.started){if(No(i.signature,r)){await i.syncRoute?.();return}i.cleanup?.()}let o={activeClient:null,activeBridge:null,cleanupFrameRuntime:(()=>{}),retryTimer:void 0,routeSequence:0,syncInFlight:null,syncScheduled:!1,disposed:!1,currentDocument:null,currentEntriesByKey:new Map,unsubscribeDocument:void 0,unsubscribeConnectionStatus:void 0,unbindBootstrapLifecycle:void 0,unbindRouteChange:void 0},s,c=()=>e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__===s,a=t.create_client??(m=>new it({url:m,authKey:t.bridge_session_key})),u=t.schedule_after_navigation??ni,d=()=>{o.retryTimer&&(e.clearTimeout(o.retryTimer),o.retryTimer=void 0)},l=()=>vo({pathname:e.location.pathname,search:e.location.search,basePath:t.basePath}),g=()=>ze(l()),f=m=>{ri(e,{...m,composition:m.state==="ready"?m.composition:{routeId:m.composition.routeId},sequence:m.sequence??o.routeSequence})},_=m=>{o.currentDocument=m,o.currentEntriesByKey=new Map((m?.entries??[]).map(S=>[S.key,S])),To(e.document,!!m)},C=()=>{o.unsubscribeConnectionStatus?.(),o.unsubscribeConnectionStatus=void 0,o.unsubscribeDocument?.(),o.unsubscribeDocument=void 0},x=(m,S)=>{if(o.disposed||S!==o.routeSequence)return!1;try{return m===g()}catch{return!1}},v=async(m,S,O)=>{let T=o.activeBridge;if(!T)return null;let V=await T.getDocument(m);return x(S,O)&&_(V.data),V.data},P=()=>{C(),_(null);let m=o.activeBridge;o.activeBridge=null,m&&e.__VCP_SITE_EDIT__===m&&delete e.__VCP_SITE_EDIT__;let S=o.activeClient;o.activeClient=null,S?.disconnect()},$=m=>m===s.compositionKey&&!!o.activeBridge&&!!(o.currentDocument&&s.composition&&ii(o.currentDocument,te(s.composition)))&&oi(o.activeClient),z=m=>Math.min(So*2**Math.max(0,m),8e3),I=(m,S,O,T,V)=>{if(o.disposed)return;d();let H=z(T);f({state:"reconnecting",composition:m,attempt:T,retryInMs:H,...V?{failureCode:V}:{},messageKey:"studio.status.previewBridgeConnecting"}),o.retryTimer=e.setTimeout(()=>{o.retryTimer=void 0,!(o.disposed||O!==o.routeSequence||!x(S,O))&&ee(T+1).catch(G=>{let b;try{b=g()}catch{return}if(S===b){if(Ve(G)){f({state:"reload-required",composition:m,attempt:T,messageKey:"studio.errors.previewBridgeReloadRequired"});return}I(m,S,o.routeSequence,T+1)}})},H)},L=(m,S,O,T)=>{if(!x(S,O)||o.activeClient===null)return;let V=o.activeClient;C(),_(null);let H=o.activeBridge;o.activeBridge=null,H&&e.__VCP_SITE_EDIT__===H&&delete e.__VCP_SITE_EDIT__,o.activeClient=null,V.disconnect(),I(m,S,O,0,T)},se=(m,S,O,T)=>{if(!(!x(S,O)||o.activeClient===null)){if(Ve(T.message)){P(),d(),f({state:"reload-required",composition:m,attempt:0,messageKey:"studio.errors.previewBridgeReloadRequired"});return}L(m,S,O,Ft(new Error(T.message??"")).failureCode)}},re=m=>{let S;try{S=l()}catch{return}let O=ze(S),T=o.routeSequence;if(!(!x(O,T)||o.activeClient===null)){if(Ve(m)){P(),d(),f({state:"reload-required",composition:S,attempt:0,messageKey:"studio.errors.previewBridgeReloadRequired"});return}if(ai(m)){L(S,O,T);return}tr(m)&&se(S,O,T,{state:"failed",message:Ne(m,"Site edit bridge request failed")})}};o.cleanupFrameRuntime=Mo(e,{getCurrentDocument:()=>o.currentDocument,getDocumentEntry:m=>o.currentEntriesByKey.get(m)??null,setCurrentDocument:_,onBridgeRequestError:m=>{re(m)}});let Z=async()=>ee(0),ee=async m=>{if(o.disposed)return;let S=l(),O=ze(S);if($(O))return;let T=o.syncInFlight;if(T?.compositionKey===O)return T.promise;let V=o.routeSequence+1,H=oe(S,O,V,m);o.syncInFlight={compositionKey:O,sequence:V,promise:H};try{await H}finally{o.syncInFlight?.promise===H&&(o.syncInFlight=null)}},oe=async(m,S,O,T)=>{o.routeSequence=O,d(),P(),f({state:T>0?"reconnecting":"connecting",composition:m,attempt:T,messageKey:T>0?"studio.status.previewBridgeConnecting":"studio.status.previewLoading"});let V=a(n),H=!1;o.activeClient=V,o.unsubscribeConnectionStatus=V.subscribeConnectionStatus?.(G=>{H&&(G.state==="closed"||G.state==="failed")&&se(m,S,O,G)});try{if(await V.connect(),!x(S,O)){V.disconnect();return}let G=gn({composition:m,client:V,initialDocument:ko(m)});if(o.activeBridge=G,o.activeClient=V,o.unsubscribeDocument=G.subscribe(y=>{if(!(!s.composition||te(y.composition)!==te(s.composition))){if(y.type==="site-edit.snapshot.changed"){v(m,S,O).catch(()=>{});return}y.type==="site-edit.document.changed"&&o.currentDocument&&y.version>o.currentDocument.version?v(m,S,O).catch(()=>{}):y.type==="site-edit.graph.invalidated"&&(_(null),A())}}),c()&&(s.routeId=m.routeId,s.composition=void 0,s.compositionKey=S),t.launch_id){let y=new URL(n);y.protocol=y.protocol==="wss:"?"https:":"http:",y.pathname=y.pathname.replace(/\/bridge$/,"/health"),y.search="";let{response:U,health:F}=await ei(e,y);if(F.launch?.launchId===t.launch_id&&(U.status===503||U.ok&&!F.ok))throw new Error("SITE_EDIT_ENGINE_UNAVAILABLE: preview engine is temporarily unavailable");if(!U.ok||!F.ok||F.launch?.launchId!==t.launch_id)throw new Error("SITE_EDIT_RUNTIME_RELOAD_REQUIRED: preview navigation belongs to a stale launch")}let b=await G.initializeSession({composition:m}),E=b.data.document;if((m.templateId!==void 0?te(b.composition)!==S:b.composition.effectiveTemplateId!==void 0)||te(E.composition)!==te(b.composition))throw new Error(`${Xn}: initialize response does not match requested selector`);if(!x(S,O)){V.disconnect();return}_(E),c()&&(e.__VCP_SITE_EDIT__=G),H=!0,c()&&(s.composition=b.composition),f({state:"ready",composition:b.composition,attempt:T,messageKey:"studio.status.previewReady"}),_o(e,{documentVersion:E?.version??0,routeId:m.routeId,versions:t.runtime_versions}),E&&er(e,{composition:b.composition,editEngineVersion:t.runtime_versions?.engine??"unknown",sequence:O,version:E.version})}catch(G){if(!x(S,O)){V.disconnect();return}if(C(),o.activeClient===V&&(o.activeClient=null),o.activeBridge&&e.__VCP_SITE_EDIT__===o.activeBridge&&delete e.__VCP_SITE_EDIT__,o.activeBridge=null,V.disconnect(),_(null),!x(S,O))return;throw f({state:Ve(G)?"reload-required":"failed",composition:m,attempt:T,...Ft(G),messageKey:Ve(G)?"studio.errors.previewBridgeReloadRequired":"studio.errors.previewBridgeDisconnected"}),G}},ce=m=>{if(o.disposed)return;let S;try{S=l()}catch{f({state:"failed",composition:{routeId:Qn(e.location.pathname,t.basePath||"")},attempt:0,messageKey:"studio.errors.previewBridgeDisconnected"});return}let O=ze(S);if(Ve(m)){d(),f({state:"reload-required",composition:S,attempt:0,messageKey:"studio.errors.previewBridgeReloadRequired"});return}if(si(m)){f({state:"failed",composition:S,attempt:0,messageKey:"studio.errors.previewBridgeDisconnected"});return}I(S,O,o.routeSequence,0,Ft(m).failureCode)},A=()=>{o.syncScheduled||o.disposed||(o.syncScheduled=!0,u(()=>{o.syncScheduled=!1,!o.disposed&&Z().catch(m=>ce(m))}))},B=()=>{o.disposed||(o.disposed=!0,o.syncScheduled=!1,o.syncInFlight=null,d(),o.routeSequence+=1,o.unbindRouteChange?.(),o.unbindRouteChange=void 0,o.unbindBootstrapLifecycle?.(),o.unbindBootstrapLifecycle=void 0,o.cleanupFrameRuntime(),P(),c()&&delete e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__)};s={started:!0,signature:r,syncRoute:Z,cleanup:B},e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__=s,o.unbindBootstrapLifecycle=Po(e,B);let q=l();if(o.unbindRouteChange=Zo(e,()=>{let m=l(),S=m.routeId===q.routeId&&m.templateId!==q.templateId;if(q=m,S){o.routeSequence+=1,P(),f({state:"connecting",composition:{routeId:m.routeId},attempt:0}),e.location.reload();return}A()},g),t.defer_initial_sync){A();return}await Z()}function Ao(e){return{basePath:rr(e.options.basePath??""),bridgeUrl:e.bridgeUrl,launchId:e.options.launch_id??null,snapshotId:e.options.snapshot_id??null,runtimeVersions:{bridge:e.options.runtime_versions?.bridge??null,contracts:e.options.runtime_versions?.contracts??null,engine:e.options.runtime_versions?.engine??null},sessionKeyFingerprint:Do(e.options.bridge_session_key)}}function No(e,t){return!!e&&JSON.stringify(e)===JSON.stringify(t)}function Do(e){if(!e)return null;let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return`${e.length}:${t.toString(36)}`}function Po(e,t){let n=()=>t();return e.addEventListener("pagehide",n),e.addEventListener("beforeunload",n),Oo(t),()=>{e.removeEventListener("pagehide",n),e.removeEventListener("beforeunload",n)}}function Oo(e){let t=import.meta.hot,n=import.meta.webpackHot,r=t??n;!r||typeof r.dispose!="function"||r.dispose(()=>e())}function ko(e){return{siteId:"preview",snapshotId:"preview",composition:{routeId:e.routeId},version:0,pageComposition:{status:"unsupported",reason:"ROUTE_RETURN_NOT_FOUND",diagnostics:[]},entries:[]}}function Mo(e=window,t={}){let n=null,r=null,i=null,o=null,s=null,c=null,a=0,u=null,d=null,l=null,g=null,f=null,_=0,C=new Map,x=typeof t.expectedSessionKey=="string"&&t.expectedSessionKey.length>0?t.expectedSessionKey:null,v=()=>{n?.(),n=null,r=null},P=()=>{let b=e.parent;if(!(!b||b===e))try{b.postMessage(Rn(),"*")}catch{}},$=()=>{i?.(),i=null,o?.(),o=null,s?.cleanup(),s=null,c?.cleanup(),c=null},z=(b,E,y)=>{let U=u?.sessionKey!==b||u?.sourceWindow!==E||u?.targetOrigin!==y;u={sessionKey:b,sourceWindow:E,targetOrigin:y},U&&(a=0,g=null,f=null)},I=(b,E)=>{let y=e.parent&&e.parent!==e?e.parent:null;return!y||E!==y?!1:!x||b===x},L=()=>{for(let b of C.values())b();C.clear()},se=b=>JSON.stringify([te(b.composition),b.editEngineVersion,b.sequence,b.version]),re=()=>!l||l.state==="ready",Z=b=>JSON.stringify([b.state,te(b.composition),b.sequence,b.attempt??null,b.retryInMs??null,b.messageKey??null]),ee=b=>{if(!re())return;let E=se(b);g!==E&&(o?.(),o=null,s?.cleanup(),s=null,c?.cleanup(),c=null,m({kind:"route-ready",payload:{composition:b.composition,editEngineVersion:b.editEngineVersion,sequence:b.sequence,version:b.version}}),u&&(g=E))},oe=b=>{let E=Z(b);f!==E&&(b.state!=="ready"&&(g=null,d=null),m({kind:"bridge-status",payload:b}),u&&(f=E))},ce=b=>{d=b,ee(b)},A=b=>{l=b,oe(b)},B=()=>{d&&ee(d)},q=()=>{l&&oe(l)},m=b=>{u&&u.sourceWindow.postMessage(Ye({type:"event",...b},{sessionKey:u.sessionKey}),u.targetOrigin)},S=(b,E,y,U)=>{let F=t.getCurrentDocument?.()??null,Q=E.rawTarget&&typeof E.rawTarget.getAttribute=="function"?E.rawTarget:null,N=Q??gi(e.document,E.clientX,E.clientY),j=Q?Et(Q):null,ae=j?.getAttribute("data-vcp-edit-key")??"",ue=E.resizeSession||E.skipHit?null:j&&Yt(j,F,ae)?j:Qe(e.document,E.clientX,E.clientY,F),le=b==="pointer-move"&&Number(E.buttons??0)===0||b==="pointer-down"?"rect-only":"full",ie=ue?Re(ue,y==="full"?me(e.document,ue,F):yt(e.document,ue,F),t.getDocumentEntry,y,void 0,le,F):null,ye=yi(e.document,N,F),be=Ei(e.document,E,F,t.getDocumentEntry);U&&ie&&(b==="pointer-click"||b==="pointer-double-click")&&(U.preventDefault(),U.stopPropagation(),typeof U.stopImmediatePropagation=="function"&&U.stopImmediatePropagation()),m({kind:b,payload:{clientX:E.clientX,clientY:E.clientY,buttons:Number(E.buttons??0),pointerId:E.pointerId,hoverVisualOwned:E.hoverVisualOwned,resizeEdge:E.resizeEdge,resizeSession:E.resizeSession,hit:ie,section:ye,sectionGap:be}})},O=b=>{m({kind:"pointer-leave",payload:{clientX:b?.clientX??0,clientY:b?.clientY??0,buttons:Number(b?.buttons??0),hit:null,section:null,sectionGap:null}})},T=(b,E,y)=>{$(),u={sessionKey:b,sourceWindow:E,targetOrigin:y};let U=ss(e.document),F=Bo(e,t.getCurrentDocument),Q=null,N=null,j=null,ae=null,ue=null,le=null,ie=!1,ye=null,be=!1,Ee=()=>{ye=null,be=!1},Me=()=>{ue!==null&&(e.clearTimeout(ue),ue=null)},D=()=>{j!==null&&(ht(e,j),j=null),Q=null},M=()=>{le!==null&&(e.clearTimeout(le),le=null)},Y=()=>{j=null;let h=Q;Q=null,h&&S("pointer-move",h,"summary")},Te=h=>{Me(),N=h,Q=h,j===null&&(j=mt(e,Y))},tt=h=>{N&&Te({...N,rawTarget:null,hoverVisualOwned:h&&!ie&&!be?F?.updateAtPoint(N.clientX,N.clientY)??!1:!1})},de=()=>tt(!0),gr=()=>tt(!1),$e=e.document.documentElement,Ct=typeof $e.addEventListener=="function"?$e:e.document,Lt=h=>{if(c?.update(h)){h.preventDefault();return}ye?.pointerId===Number(h.pointerId)&&Number(h.buttons)===1?!be&&Math.hypot(Number(h.clientX)-ye.clientX,Number(h.clientY)-ye.clientY)>=Eo&&(be=!0,F?.clear()):ye?.pointerId===Number(h.pointerId)&&Number(h.buttons)!==1&&Ee(),Te({clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target,hoverVisualOwned:!ie&&!be?F?.update(h.target)??!1:!1})},Qt=h=>{let K=jo(h.target),Fe=K?c?.begin(h,K):null;Fe&&(h.target?.setPointerCapture?.(h.pointerId),h.preventDefault(),h.stopPropagation()),!Fe&&Number(h.buttons)===1?(ye={clientX:Number(h.clientX),clientY:Number(h.clientY),pointerId:Number(h.pointerId)},be=!1):Ee(),S("pointer-down",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:Number(h.pointerId),rawTarget:h.target,resizeEdge:K,resizeSession:Fe??void 0},"summary",h)},Zt=h=>{Ee();let K=c?.finish(h,"commit")??null;if(K){S("pointer-up",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:Number(h.pointerId),resizeEdge:K.edge,resizeSession:K,skipHit:!0},"summary",h);return}S("pointer-up",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target,skipHit:!0},"summary",h)},en=h=>{Ee();let K=c?.finish(h,"cancel")??null;S("pointer-cancel",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:K?.pointerId,rawTarget:K?void 0:h.target,resizeEdge:K?.edge,resizeSession:K??void 0,skipHit:!0},"summary",h)},tn=h=>{let K=c?.finish(h,"cancel")??null;K&&S("pointer-cancel",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:K.pointerId,resizeEdge:K.edge,resizeSession:K,skipHit:!0},"summary",h)},nn=h=>{S("pointer-click",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target},"full",h)},rn=h=>{S("pointer-double-click",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target},"full",h)},Rt=h=>{if(h&&h.target!==Ct&&h.target!==$e)return;let K=h?{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons)}:N;if(h&&K&&K.clientX>0&&K.clientX<e.innerWidth&&K.clientY>0&&K.clientY<e.innerHeight){de();return}if(D(),h){Me(),ue=e.setTimeout(()=>{ue=null,N=null,M(),ie=!1,Ee(),O(K??void 0)},yo);return}Me(),M(),ie=!1,Ee(),N=null,F?.clear(),O(K??void 0)},on=()=>Rt(),yr=()=>{ae=null,m({kind:"scroll",payload:{metrics:pt(e)}}),gr()},Be=()=>{ie=!0,F?.clear(),M(),N&&(le=e.setTimeout(()=>{le=null,ie=!1,de()},bo)),ae===null&&(ae=mt(e,yr))};e.document.addEventListener("pointerdown",Qt,!0),e.document.addEventListener("pointermove",Lt,{passive:!0,capture:!0}),e.document.addEventListener("pointerup",Zt,!0),e.document.addEventListener("pointercancel",en,!0),e.document.addEventListener("lostpointercapture",tn,!0),e.document.addEventListener("click",nn,!0),e.document.addEventListener("dblclick",rn,!0),e.addEventListener("scroll",Be,{passive:!0}),e.document.addEventListener("scroll",Be,{capture:!0,passive:!0}),e.addEventListener("resize",de,{passive:!0}),e.addEventListener("blur",on),e.document.addEventListener("load",de,!0),Ct.addEventListener("pointerleave",Rt,!0);let nt=e.visualViewport;nt?.addEventListener?.("resize",de,{passive:!0}),nt?.addEventListener?.("scroll",Be,{passive:!0});let sn=e.ResizeObserver,cn=typeof sn=="function"?new sn(de):null;cn?.observe($e);let an=e.MutationObserver,un=typeof an=="function"?new an(h=>{h.some(Fe=>Fe.type!=="attributes"||Fe.attributeName!==Jn)&&de()}):null;un?.observe($e,{attributes:!0,childList:!0,subtree:!0}),i=()=>{D(),Me(),M(),ie=!1,Ee(),N=null,F?.cleanup(),cn?.disconnect(),un?.disconnect(),ae!==null&&(ht(e,ae),ae=null),U(),e.document.removeEventListener("pointerdown",Qt,!0),e.document.removeEventListener("pointermove",Lt,!0),e.document.removeEventListener("pointerup",Zt,!0),e.document.removeEventListener("pointercancel",en,!0),e.document.removeEventListener("lostpointercapture",tn,!0),e.document.removeEventListener("click",nn,!0),e.document.removeEventListener("dblclick",rn,!0),e.removeEventListener("scroll",Be),e.document.removeEventListener("scroll",Be,!0),e.removeEventListener("resize",de),e.removeEventListener("blur",on),e.document.removeEventListener("load",de,!0),Ct.removeEventListener("pointerleave",Rt,!0),nt?.removeEventListener?.("resize",de),nt?.removeEventListener?.("scroll",Be)}},V=b=>{let E=b.detail;E?.composition?.routeId&&ce(E)},H=b=>{let E=b.detail;E?.state&&A(E)},G=b=>{let E=b.data;if(!Tn(E)||E.body.type!=="request"||E.body.kind!=="apply-node-patch"&&E.body.kind!=="get-hit-by-ref"&&E.body.kind!=="get-path-by-ref"&&E.body.kind!=="get-scroll-metrics"&&E.body.kind!=="scroll-to"&&E.body.kind!=="scroll-by"&&E.body.kind!=="set-interaction-mode"&&E.body.kind!=="set-selection-visual"&&E.body.kind!=="clear-selection-visual"&&E.body.kind!=="set-resize-visual"&&E.body.kind!=="clear-resize-visual"&&E.body.kind!=="set-theme-override"&&E.body.kind!=="clear-theme-override"&&E.body.kind!=="get-theme-variables"&&E.body.kind!=="compute-drop-target-at-point"&&E.body.kind!=="observe-node-bounds"&&E.body.kind!=="clear-node-bounds-observer"&&E.body.kind!=="restore-text-edit"&&E.body.kind!=="clear-text-edit-rollback"&&E.body.kind!=="start-text-edit-at-point"&&E.body.kind!=="hit-test-at-point"&&!Bn(E.body))return;let y=E.body,U=typeof E.sessionKey=="string"?E.sessionKey:null,F=b.source,Q=b.origin;if(!U||!Q||!F||typeof F.postMessage!="function"||!I(U,F))return;if(u){if(u.sourceWindow!==F||u.targetOrigin!==Q)return;u.sessionKey!==U&&(v(),$(),L(),u=null)}z(U,F,Q),q(),B();let N=j=>{let ae=typeof y.id=="string"?y.id:"unknown";F.postMessage(Ye({id:ae,...j},{sessionKey:U}),Q)};try{if(Bn(y)){Jo({message:y,sendEvent:D=>{F.postMessage(Ye({type:"event",...D},{sessionKey:U}),Q)},sendResponse:N,subscriptions:C,getCurrentDocument:t.getCurrentDocument,setCurrentDocument:t.setCurrentDocument,onBridgeRequestError:t.onBridgeRequestError,nextRouteReadySequence:()=>_+=1,windowLike:e});return}if(y.kind==="apply-node-patch"){let D=ge(e.document,y.payload.ref,t.getCurrentDocument?.()??null);if(!D){N({type:"response",ok:!1,error:"No editable element found for patch target"});return}let M=y.payload.preview,Y=M?Gi(M.sessionId,y.payload.ref):null;if(Y&&M){let Te=Xe.get(Y)??-1;if(M.revision<Te){N({type:"response",ok:!0,result:{applied:!1,appliedRevision:M.revision,stale:!0,latestRevision:Te}});return}if(M.revision===Te){N({type:"response",ok:!0,result:{applied:!1,appliedRevision:M.revision,duplicate:!0,latestRevision:Te}});return}}if(Wi(D,y.payload.patch),Y&&M&&ji(Y,M.revision),M?.responseDetail==="none"){N({type:"response",ok:!0,result:{applied:!0,appliedRevision:M.revision}});return}N({type:"response",ok:!0,result:Re(D,me(e.document,D,t.getCurrentDocument?.()??null),t.getDocumentEntry,M?.responseDetail??"full",void 0,"full",t.getCurrentDocument?.()??null)});return}if(y.kind==="get-hit-by-ref"){let D=ge(e.document,y.payload.ref,t.getCurrentDocument?.()??null);if(!D){N({type:"response",ok:!1,error:"No editable element found for hit target"});return}N({type:"response",ok:!0,result:Re(D,me(e.document,D,t.getCurrentDocument?.()??null),t.getDocumentEntry,"full",void 0,"full",t.getCurrentDocument?.()??null)});return}if(y.kind==="get-path-by-ref"){let D=ge(e.document,y.payload.ref,t.getCurrentDocument?.()??null);if(!D){N({type:"response",ok:!1,error:"No editable element found for path target"});return}let M=[],Y=D;for(;Y;)Y.getAttribute("data-vcp-edit-key")&&M.push(Re(Y,me(e.document,Y,t.getCurrentDocument?.()??null),t.getDocumentEntry,"full",void 0,"rect-only",t.getCurrentDocument?.()??null)),Y=Y.parentElement;N({type:"response",ok:!0,result:M.reverse()});return}if(y.kind==="restore-text-edit"||y.kind==="clear-text-edit-rollback"){let D=y.payload.ref;if(y.kind==="clear-text-edit-rollback"){r&&qn(r.ref,D)&&(r=null),N({type:"response",ok:!0,result:{cleared:!0}});return}if(!r||!qn(r.ref,D)){N({type:"response",ok:!1,error:"No pending text edit rollback snapshot"});return}let M=li(e.document,r,t.getCurrentDocument?.()??null);r=null,N(M?{type:"response",ok:!0,result:{restored:!0}}:{type:"response",ok:!1,error:"Failed to restore text edit snapshot"});return}if(y.kind==="get-scroll-metrics"){N({type:"response",ok:!0,result:pt(e)});return}if(y.kind==="scroll-to"){let D=Number(y.payload.x),M=Number(y.payload.y);if(!Number.isFinite(D)||!Number.isFinite(M)){N({type:"response",ok:!1,error:"Invalid scroll position"});return}e.scrollTo({left:D,top:M}),N({type:"response",ok:!0,result:pt(e)});return}if(y.kind==="scroll-by"){let D=Number(y.payload.deltaX),M=Number(y.payload.deltaY);if(!Number.isFinite(D)||!Number.isFinite(M)){N({type:"response",ok:!1,error:"Invalid scroll delta"});return}e.scrollBy({left:D,top:M}),N({type:"response",ok:!0,result:{...pt(e),scrolled:!0}});return}if(y.kind==="set-interaction-mode"){y.payload.enabled?T(U,F,Q):u?.sourceWindow===F&&u.targetOrigin===Q&&u.sessionKey===U&&(v(),$()),N({type:"response",ok:!0,result:{interactionEnabled:y.payload.enabled}});return}if(y.kind==="set-selection-visual"){let D=!1;i?s?(D=s.setRef(y.payload.ref),D||(s.cleanup(),s=null)):(s=wo(e,y.payload.ref,t.getCurrentDocument),D=!!s):(s?.cleanup(),s=null),N({type:"response",ok:!0,result:{version:He,active:D}});return}if(y.kind==="clear-selection-visual"){s?.cleanup(),s=null,N({type:"response",ok:!0,result:{version:He,active:!1}});return}if(y.kind==="set-resize-visual"){c?.cleanup(),c=null,i&&(c=Yo(e,y.payload.ref,t.getCurrentDocument,({clientX:D,clientY:M,session:Y})=>{m({kind:"pointer-cancel",payload:{clientX:D,clientY:M,buttons:0,pointerId:Y.pointerId,resizeEdge:Y.edge,resizeSession:Y,hit:null,section:null,sectionGap:null}})})),N({type:"response",ok:!0,result:{version:Ge,active:!!c}});return}if(y.kind==="clear-resize-visual"){c?.cleanup(),c=null,N({type:"response",ok:!0,result:{version:Ge,active:!1}});return}if(y.kind==="set-theme-override"){Yi(e.document,y.payload),N({type:"response",ok:!0,result:{themeOverrideApplied:!0}});return}if(y.kind==="clear-theme-override"){Xi(e.document),N({type:"response",ok:!0,result:{themeOverrideCleared:!0}});return}if(y.kind==="get-theme-variables"){N({type:"response",ok:!0,result:Ji(e.document,y.payload.names)});return}if(y.kind==="compute-drop-target-at-point"){let D=Number(y.payload?.x),M=Number(y.payload?.y);if(!Number.isFinite(D)||!Number.isFinite(M)){N({type:"response",ok:!1,error:"Invalid drop target point"});return}N({type:"response",ok:!0,result:qi(e,D,M,y.payload.dragKind,y.payload.movingRef,t.getCurrentDocument?.()??null,t.getDocumentEntry)});return}if(y.kind==="observe-node-bounds"){let D=y.payload.ref;if(!D){N({type:"response",ok:!1,error:"Missing bounds observer target"});return}let M=ge(e.document,D,t.getCurrentDocument?.()??null);if(!M){N({type:"response",ok:!1,error:"No editable element found for bounds observer target"});return}o?.();let Y=Oi(e,M,D,t.getCurrentDocument,(Te,tt,de)=>{a+=1,m({kind:"geometry-batch",payload:{sequence:a,sourceEventAt:de.sourceEventAt,captureStartedAt:de.captureStartedAt,capturedAt:de.capturedAt,reason:Te,snapshots:[tt]}})});o=Y.cleanup,N({type:"response",ok:!0,result:{observing:!0}}),m({kind:"node-bounds-change",payload:{hit:Di(Re(M,D,t.getDocumentEntry,"summary",e,"rect-only",t.getCurrentDocument?.()??null),Y.initialSnapshot)}});return}if(y.kind==="clear-node-bounds-observer"){o?.(),o=null,N({type:"response",ok:!0,result:{cleared:!0}});return}if(y.kind!=="hit-test-at-point"&&y.kind!=="start-text-edit-at-point")return;let j=Number(y.payload?.x),ae=Number(y.payload?.y);if(!Number.isFinite(j)||!Number.isFinite(ae)){N({type:"response",ok:!1,error:"Invalid text edit point"});return}let ue=y.kind==="hit-test-at-point"?Qe(e.document,j,ae,t.getCurrentDocument?.()??null):pi(e.document,j,ae,t.getCurrentDocument?.()??null,t.getDocumentEntry);if(!ue){N({type:"response",ok:!1,error:y.kind==="hit-test-at-point"?"No editable element at point":"No editable text element at point"});return}let le=y.kind==="start-text-edit-at-point"?ue:null,ie=y.kind==="hit-test-at-point"?ue:le.element,ye=y.payload.detailLevel??"full",be=ye==="full"?me(e.document,ie,t.getCurrentDocument?.()??null):yt(e.document,ie,t.getCurrentDocument?.()??null),Ee=le&&typeof le.textSegmentIndex=="number"?{...be,textSegmentIndex:le.textSegmentIndex}:be,Me=Re(ie,Ee,t.getDocumentEntry,ye,void 0,"full",t.getCurrentDocument?.()??null);if(y.kind==="hit-test-at-point"){N({type:"response",ok:!0,result:Me});return}v(),n=es(e,ie,Ee,D=>{F.postMessage(Ye({type:"event",...D},{sessionKey:U}),Q)},{...le?.textNode?{textNode:le.textNode}:{},onCommitSnapshot:D=>{r=D}}),N({type:"response",ok:!0,result:{ref:Ee}})}catch(j){N({type:"response",ok:!1,error:j instanceof Error?j.message:"Failed to start text edit"})}};return e.addEventListener("message",G),e.addEventListener(Kt,V),e.addEventListener(zt,H),P(),()=>{v(),$(),u=null,L(),e.removeEventListener("message",G),e.removeEventListener(Kt,V),e.removeEventListener(zt,H)}}function Bo(e,t){let n=e.document,r=n.head??n.documentElement;if(typeof r?.appendChild!="function")return null;let i=Jn,o="data-vcp-designer-selection-visual",s=n.createElement("style");s.setAttribute("data-vcp-designer-hover-visual-style","true"),s.textContent=`
1
+ function te(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}function ln(e){if(!Er(e)){if(e.encoding==="segment-trie-v1")throw new Error("Invalid compact render document");return e}let t=new Map,n=e.pageComposition.status==="supported"?e.pageComposition.placementUnitKeys:[],r=new Map(e.dynamicDataSummaries??[]),i=new Map(e.pageCompositionActionScopes??[]),o=s=>{let c=t.get(s);if(c)return c;let a=e.nodes[s];if(!a)throw new Error(`Missing compact document node ${s}`);let[u,d]=a,l=e.tokens[d];if(typeof l!="string")throw new Error(`Missing compact document token ${d}`);let g=`${u===null?"":o(u)}${l}`;return t.set(s,g),g};return{siteId:e.siteId,snapshotId:e.snapshotId,composition:{...e.composition},routeId:e.composition.routeId,version:e.version,pageComposition:e.pageComposition,entries:e.entries.map((s,c)=>{let[a,u,d]=s,l=d===void 0?void 0:n[d];if(d!==void 0&&!l)throw new Error(`Missing page composition unit ${d}`);let g=e.entryParentNodeIds?.[c],f=i.get(c),_=f?.kind==="source-siblings"?{kind:"source-siblings",siblingKeys:f.siblingEntryIndexes.map(C=>{let x=e.entries[C];if(!x)throw new Error(`Missing source sibling entry ${C}`);return o(x[0])})}:f;return{key:o(a),...e.entryParentNodeIds?{parentKey:g===null?null:o(g)}:{},...l?{pageCompositionUnitKey:l}:{},..._?{pageCompositionActionScope:_}:{},operationSummary:br(u),...r.get(c)?{dynamicDataSummary:r.get(c)}:{}}})}}function br(e){return{canUpdateText:(e&1)!==0,canInsertChild:(e&2)!==0,canMove:(e&4)!==0,canRemove:(e&8)!==0}}function Er(e){if(typeof e!="object"||e===null)return!1;let t=e;if(t.encoding!=="segment-trie-v1"||typeof t.siteId!="string"||typeof t.snapshotId!="string"||!Sr(t.composition)||typeof t.routeId!="string"||t.routeId!==t.composition.routeId||!Number.isInteger(t.version)||t.version<0||!ot(t.pageComposition)||!Array.isArray(t.tokens)||!t.tokens.every(c=>typeof c=="string")||!Array.isArray(t.nodes)||!Array.isArray(t.entries))return!1;let n=t.nodes;if(!n.every((c,a)=>Array.isArray(c)&&c.length===2&&(c[0]===null||ve(c[0])&&c[0]<a)&&ve(c[1])&&c[1]<t.tokens.length)||!t.entries.every(c=>Array.isArray(c)&&(c.length===2||c.length===3)&&ve(c[0])&&c[0]<n.length&&ve(c[1])&&c[1]<=15&&(c.length===2||ve(c[2]))))return!1;let r=t.entryParentNodeIds;if(r!==void 0&&(!Array.isArray(r)||r.length!==t.entries.length||!r.every(c=>c===null||ve(c)&&c<n.length)))return!1;let i=t.dynamicDataSummaries,o=t.pageCompositionActionScopes;return(o===void 0||Array.isArray(o)&&o.every(c=>{if(!Array.isArray(c)||c.length!==2||!ve(c[0])||c[0]>=t.entries.length||!ot(c[1])||!["route-unit","source-siblings","unavailable"].includes(String(c[1].kind)))return!1;let a=c[1];return a.kind!=="source-siblings"||Array.isArray(a.siblingEntryIndexes)&&a.siblingEntryIndexes.length>=2&&a.siblingEntryIndexes.every(u=>ve(u)&&u<t.entries.length)&&a.siblingEntryIndexes.includes(c[0])}))&&(i===void 0||Array.isArray(i)&&i.every(c=>Array.isArray(c)&&c.length===2&&ve(c[0])&&c[0]<t.entries.length&&ot(c[1])))}function ot(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Sr(e){return!ot(e)||typeof e.routeId!="string"?!1:e.effectiveTemplateId===void 0||typeof e.effectiveTemplateId=="string"}function ve(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0}var _t="SITE_EDIT_COMPOSITION_SESSION_MISMATCH",xt="SITE_EDIT_COMPOSITION_SESSION_REQUIRED";var _e=class e{constructor(){}static parseMessage(t,n={}){let r=JSON.parse(t);if(!e.isMessage(r,n))throw new Error("Invalid site edit bridge message");return r}static stringifyMessage(t){return JSON.stringify(t)}static extractRequestInfo(t){if(ne(t)&&ne(t.payload)){let n=typeof t.payload.id=="string"?t.payload.id:"unknown",r=this.isRequestKind(t.payload.kind)?t.payload.kind:"get-document";return{id:n,kind:r}}return{id:"unknown",kind:"get-document"}}static isRequestKind(t){return t==="initialize-session"||t==="get-document"||t==="get-history-status"||t==="get-style-context"||t==="get-object-edit-context"||t==="get-class-name-source"||t==="get-source-tree"||t==="get-source-file"||t==="resolve-source-location"||t==="execute"||t==="get-operation-result"||t==="undo"||t==="redo"}static isMessage(t,n={}){return!ne(t)||typeof t.type!="string"?!1:t.type==="request"?Ir(t.payload,n):t.type==="response"||t.type==="error"?ne(t.payload)&&typeof t.payload.id=="string":t.type==="event"?ne(t.payload)&&ne(t.payload.event):t.type==="auth"?ne(t.payload)&&typeof t.payload.key=="string":t.type==="ping"||t.type==="pong"?ne(t.payload)&&typeof t.payload.id=="string":t.type==="auth-ok"&&ne(t.payload)&&t.payload.ok===!0}};function Ir(e,t){if(!ne(e)||typeof e.id!="string"||!_e.isRequestKind(e.kind))return!1;let n=vt(e.composition);switch(e.kind){case"initialize-session":return n&&(e.mutationContext===void 0||Tt(e.mutationContext));case"get-document":case"get-style-context":return n;case"get-object-edit-context":return typeof e.key=="string"&&n&&Cr(e.selectionRef);case"get-class-name-source":case"resolve-source-location":return typeof e.key=="string"&&n;case"get-history-status":return n;case"get-source-tree":return n;case"get-source-file":return typeof e.path=="string"&&n;case"execute":case"get-operation-result":return n&&Rr(e.request)&&(e.request.mutationContext===void 0||Tt(e.request.mutationContext))&&(t.validateOperationRequest?.(e.request)??!0);case"undo":case"redo":return n&&e.mutationContext===void 0||n&&Tt(e.mutationContext)}}function Cr(e){if(e===void 0)return!0;if(!ne(e)||typeof e.key!="string"||e.key.length===0)return!1;let t=e.instanceIndex,n=e.instanceCount;return t!==void 0&&(typeof t!="number"||!Number.isInteger(t)||t<0)||n!==void 0&&(typeof n!="number"||!Number.isInteger(n)||n<=0)||typeof t=="number"&&typeof n=="number"&&t>=n?!1:Object.keys(e).every(r=>r==="key"||r==="instanceIndex"||r==="instanceCount")}function Rr(e){return ne(e)&&typeof e.id=="string"&&typeof e.siteId=="string"&&typeof e.baseSnapshotId=="string"&&vt(e.composition)&&typeof e.kind=="string"&&ne(e.target)&&(e.target.kind!=="route"||vt(e.target.composition))&&typeof e.documentVersion=="number"&&Number.isInteger(e.documentVersion)&&e.documentVersion>=0&&ne(e.params)}function vt(e){return ne(e)&&typeof e.routeId=="string"&&e.routeId.length>0&&(e.templateId===void 0||typeof e.templateId=="string"&&e.templateId.length>0)&&Object.keys(e).every(t=>t==="routeId"||t==="templateId")}function ne(e){return typeof e=="object"&&e!==null}function Tt(e){return ne(e)&&typeof e.editingSessionId=="string"&&e.editingSessionId.length>0&&typeof e.lockId=="string"&&e.lockId.length>0&&typeof e.ownerId=="string"&&e.ownerId.length>0&&typeof e.leaseAssertion=="string"&&e.leaseAssertion.length>0}var Tr="vcp:designer:trace",vr="designer_trace",dn="__VCP_DESIGNER_TRACE__";var _r=/(authorization|cookie|token|secret|providerTrace|headers?|sourceCode|rawSource|fullSource)/i;function xr(e=globalThis){let t=e;try{if(t.localStorage?.getItem(Tr)==="1")return!0}catch{}try{let n=t.location?.search??"";return new URLSearchParams(n).get(vr)==="1"}catch{return!1}}function Ie(e,t={},n=globalThis){if(!xr(n))return;let r={type:e,timestamp:Date.now(),payload:Ar(t)},i=n,o=i[dn]??[];o.push(r),o.length>1e3&&o.splice(0,o.length-1e3),i[dn]=o;let s=n.console?.debug;r.payload.diagnosticOnly!==!0&&typeof s=="function"&&s.call(n.console,"[designer-trace]",r)}function Ar(e){return At(e,0)}function At(e,t){if(t>4)return"[truncated]";if(Array.isArray(e))return e.map(r=>At(r,t+1));if(!e||typeof e!="object")return e;let n={};for(let[r,i]of Object.entries(e)){if(_r.test(r)){n[r]="[redacted]";continue}n[r]=At(i,t+1)}return n}var it=class{constructor(t){this.options=t,this.socket=null,this.connectPromise=null,this.connectAttempt=null,this.connectionState="idle",this.intentionalClose=!1,this.sequence=0,this.pending=new Map,this.listeners=new Set,this.heartbeatState=null,this.connectionStatusListeners=new Set}connect(){return this.socket?.readyState===Nt&&this.connectionState==="open"?(this.setConnectionState("open"),Promise.resolve()):this.connectPromise?this.connectPromise:(this.intentionalClose=!1,this.setConnectionState("connecting"),this.connectPromise=new Promise((t,n)=>{let r;try{r=this.createSocket(this.options.url)}catch(a){let u=we(a,"WebSocket failed");this.socket=null,this.connectAttempt=null,this.connectPromise=null,this.setConnectionState("failed",u.message),n(u);return}let i={socket:r,settled:!1,reject:n};this.connectAttempt=i,this.socket=r;let o=Math.max(0,this.options.connectTimeoutMs??Dr);o>0&&(i.deadline=setTimeout(()=>{this.connectAttempt!==i||i.settled||(Ie("bridge.connect-timeout",{connectTimeoutMs:o}),this.cleanupSocket(r,pn(Pr,`Bridge connection did not complete within ${o}ms`),"failed"))},o));let s=()=>{this.socket!==r||this.connectAttempt!==i||(i.settled=!0,clearTimeout(i.deadline),this.connectAttempt=null,this.connectPromise=null,this.setConnectionState("open"),this.startHeartbeat(r),t())},c=(a,u)=>{this.cleanupSocket(r,a,u)};r.onopen=()=>{if(!(this.socket!==r||this.connectAttempt!==i)){if(this.options.authKey){try{r.send(_e.stringifyMessage({type:"auth",payload:{key:this.options.authKey}}))}catch(a){c(we(a,"WebSocket auth failed"),"failed")}return}s()}},r.onerror=a=>{if(this.socket!==r)return;let u=we(a,"WebSocket failed");c(u,"failed")},r.onmessage=a=>{if(this.socket===r){if(this.noteInboundMessage(r),this.options.authKey&&this.connectAttempt===i&&!i.settled){this.handleAuthHandshakeMessage(a.data,r,i,()=>{s()});return}this.handleMessage(a.data)}},r.onclose=a=>{if(this.socket!==r)return;let u=this.intentionalClose,d=new Error(wr(a,{intentional:u}));c(d,u?"closed":"failed")}}),this.connectPromise)}disconnect(){this.intentionalClose=!0,this.setConnectionState("closing");let t=this.socket;if(!t){this.rejectAll(new Error("WebSocket disconnected")),this.connectAttempt=null,this.connectPromise=null,this.setConnectionState("closed");return}this.cleanupSocket(t,new Error("WebSocket disconnected"),"closed")}getConnectionState(){return this.connectionState}subscribeConnectionStatus(t){return this.connectionStatusListeners.add(t),t({state:this.connectionState}),()=>{this.connectionStatusListeners.delete(t)}}getDocument(t){let n=this.selector(t);return this.request("get-document",{composition:n})}async initializeSession(t){let n=this.selector(t.composition);return await this.request("initialize-session",{composition:n,...t.mutationContext?{mutationContext:t.mutationContext}:{}})}getHistoryStatus(t){return this.request("get-history-status",{composition:this.selector(t)})}getStyleContext(t){let n=this.selector(t);return this.request("get-style-context",{composition:n})}getObjectEditContext(t,n,r){let i=this.selector(n);return this.request("get-object-edit-context",{key:t,composition:i,...r?{selectionRef:r}:{}})}getClassNameSource(t,n){let r=this.selector(n);return this.request("get-class-name-source",{key:t,composition:r})}getSourceTree(t){return this.request("get-source-tree",{composition:this.selector(t)})}getSourceFile(t){return this.request("get-source-file",{path:t.path,composition:this.selector(t.composition)})}resolveSourceLocation(t){return this.request("resolve-source-location",{key:t.key,composition:this.selector(t.composition)})}execute(t,n){let r=He(t),i={...t,composition:xe(r)};return this.request("execute",{request:i})}getOperationResult(t){return this.request("get-operation-result",{request:t,composition:xe(He(t))})}undo(t,n){return this.request("undo",{composition:this.selector(t)})}redo(t,n){return this.request("redo",{composition:this.selector(t)})}subscribe(t){return this.listeners.add(t),()=>{this.listeners.delete(t)}}selector(t){return xe(t)}request(t,n){let r=this.socket;if(!r||r.readyState!==Nt||this.connectionState!=="open")return Promise.reject(new Error(`WebSocket is not open (state: ${this.connectionState}, readyState: ${r?.readyState??"none"})`));let i=`${t}-${this.sequence+=1}`,o=zr(i,t,n);return Ie("bridge.request",{id:i,kind:t,routeId:typeof n.routeId=="string"?n.routeId:null,key:typeof n.key=="string"?n.key:null,operationKind:fn(n.request,"kind"),documentVersion:fn(n.request,"documentVersion")}),new Promise((s,c)=>{let a=this.resolveRequestTimeoutMs(t),u=a>0?setTimeout(()=>{let d=this.pending.get(i);d&&(this.pending.delete(i),Ie("bridge.response",{id:i,kind:t,ok:!1,timedOut:!0}),d.reject(new Error(`Bridge request timed out after ${a}ms: ${t}`)))},a):null;u?.unref?.(),this.pending.set(i,{kind:t,timeout:u,resolve:d=>s(d),reject:c});try{r.send(_e.stringifyMessage(o))}catch(d){let l=we(d,"WebSocket send failed");this.clearPendingRequest(i),c(l),this.cleanupSocket(r,l,"failed")}})}handleAuthHandshakeMessage(t,n,r,i){try{if(_e.parseMessage(t).type==="auth-ok"){i();return}throw new Error("Bridge authentication failed")}catch(o){let s=we(o,"Bridge authentication failed");this.connectAttempt===r&&this.cleanupSocket(n,s,"failed")}}handleMessage(t){let n=_e.parseMessage(t);if(n.type==="event"){for(let i of this.listeners)i(n.payload.event);return}if(n.type!=="response"&&n.type!=="error")return;let r=this.pending.get(n.payload.id);if(r){if(this.clearPendingRequest(n.payload.id),n.type==="error"){Ie("bridge.response",{id:n.payload.id,kind:r.kind,ok:!1});let i=new Error(n.payload.message);n.payload.code&&(i.code=n.payload.code),r.reject(i);return}Ie("bridge.response",{id:n.payload.id,kind:r.kind,ok:!0,resultVersion:qr(n.payload.result)}),r.resolve(r.kind==="get-document"?{...n.payload.result,data:yn(n.payload.result.data,n.payload.result.composition)}:r.kind==="initialize-session"?Vr(n.payload.result):n.payload.result)}}rejectAll(t){for(let[n,r]of[...this.pending])this.clearPendingRequest(n),r.reject(t)}clearPendingRequest(t){let n=this.pending.get(t);n&&(n.timeout&&clearTimeout(n.timeout),this.pending.delete(t))}resolveRequestTimeoutMs(t){let n=this.options.requestTimeoutMsByKind?.[t];return typeof n=="number"?Math.max(0,n):typeof this.options.requestTimeoutMs=="number"?Math.max(0,this.options.requestTimeoutMs):Fr[t]??Br}cleanupSocket(t,n,r){if(this.socket===t&&(this.socket=null),this.stopHeartbeat(t),this.connectAttempt?.socket===t){let i=this.connectAttempt;this.connectAttempt=null,clearTimeout(i.deadline),i.settled||(i.settled=!0,i.reject(n))}this.connectPromise=null,this.rejectAll(n),this.setConnectionState(r,n.message),t.onopen=null,t.onmessage=null,t.onerror=null,t.onclose=null;try{(t.readyState===Nr||t.readyState===Nt)&&t.close()}catch{}}startHeartbeat(t){let n=this.options.heartbeat===void 0?Or:this.options.heartbeat;if(!n||n.intervalMs<=0||n.timeoutMs<=0)return;this.stopHeartbeat(this.heartbeatState?.socket??t);let r=this.options.visibility===void 0?Mr():this.options.visibility,i=()=>r?.visibilityState!=="hidden",o=()=>{this.heartbeatState?.socket===t&&this.heartbeatState.deadline&&(clearTimeout(this.heartbeatState.deadline),this.heartbeatState.deadline=null)},s=()=>{let a=this.heartbeatState;if(!(a?.socket!==t||this.socket!==t||this.connectionState!=="open"||a.deadline||!i())){try{t.send(_e.stringifyMessage({type:"ping",payload:{id:`ping-${this.sequence+=1}`}}))}catch(u){this.cleanupSocket(t,we(u,"WebSocket heartbeat send failed"),"failed");return}a.deadline=setTimeout(()=>{this.heartbeatState?.socket===t&&(this.heartbeatState.deadline=null,i()&&(Ie("bridge.heartbeat-timeout",{timeoutMs:n.timeoutMs}),this.cleanupSocket(t,pn(kr,`Bridge heartbeat was not answered within ${n.timeoutMs}ms`),"failed")))},n.timeoutMs)}},c=()=>{i()?s():o()};r?.addEventListener("visibilitychange",c),this.heartbeatState={socket:t,interval:setInterval(s,n.intervalMs),deadline:null,unbindVisibility:()=>r?.removeEventListener("visibilitychange",c)}}stopHeartbeat(t){let n=this.heartbeatState;!n||n.socket!==t||(clearInterval(n.interval),n.deadline&&clearTimeout(n.deadline),n.unbindVisibility(),this.heartbeatState=null)}noteInboundMessage(t){let n=this.heartbeatState;n?.socket===t&&n.deadline&&(clearTimeout(n.deadline),n.deadline=null)}setConnectionState(t,n){if(this.connectionState===t&&!n)return;this.connectionState=t;let r={state:t,...n?{message:n}:{}};this.options.onConnectionStatus?.(r);for(let i of this.connectionStatusListeners)i(r)}createSocket(t){if(this.options.createSocket)return this.options.createSocket(t);if(typeof WebSocket>"u")throw new Error("Site edit preview bridge requires WebSocket");return new WebSocket(t)}},Nr=0,Nt=1,Dr=1e4,Or={intervalMs:2e4,timeoutMs:1e4},Pr="SITE_EDIT_BRIDGE_CONNECT_TIMEOUT",kr="SITE_EDIT_BRIDGE_HEARTBEAT_TIMEOUT";function Mr(){let e=globalThis.document;return e&&typeof e.visibilityState=="string"&&typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:null}function pn(e,t){let n=new Error(`${e}: ${t}`);return n.code=e,n}var Br=15e3,Fr={"get-source-tree":1e4,"get-source-file":1e4,"resolve-source-location":1e4,execute:6e4,"get-operation-result":6e4,undo:2e4,redo:2e4};function we(e,t){return e instanceof Error?e:new Error(t)}function wr(e,t){return t.intentional?"WebSocket disconnected":e?.code===1008?e.reason?`Bridge session authentication failed: ${e.reason}`:"Bridge session authentication failed":e?.reason?`WebSocket closed: ${e.reason}`:typeof e?.code=="number"&&e.code!==1005?`WebSocket closed with code ${e.code}`:"WebSocket closed"}function fn(e,t){if(!e||typeof e!="object")return null;let r=e[t];return typeof r=="string"||typeof r=="number"?r:null}function qr(e){if(!e||typeof e!="object")return null;let t=e,n=t.data?.resultVersion??t.data?.version??null;return typeof n=="number"?n:null}function gn(e){let t="composition"in e?xe(e.composition):xe({routeId:e.routeId});return new Dt({composition:t,initialDocument:e.initialDocument,client:e.client})}var Dt=class{constructor(t){this.params=t,this.serverConfirmedComposition=null,this.refreshInFlight=null,this.objectGeneration=0,this.styleGeneration=0,this.editContextCache=new Map,this.editContextInFlight=new Map,this.classNameSourceCache=new Map,this.classNameSourceInFlight=new Map,this.styleContextCache=new Map,this.styleContextInFlight=new Map,this.snapshotIdentityStale=!1,this.composition=xe(t.composition);let n=t.initialDocument.composition.effectiveTemplateId;if(n!==void 0&&(this.composition.templateId===void 0||this.composition.templateId!==n))throw new Error(`Site edit bridge requires a matching templateId for initial document composition ${JSON.stringify(t.initialDocument.composition)}`);this.currentDocument=t.initialDocument,this.observedDocumentVersion=t.initialDocument.version,this.sessionInitialized=!mn(t.initialDocument),this.activeCompositionContext=this.sessionInitialized?{...t.initialDocument.composition}:null}async getDocument(t){this.requireBoundComposition(t);let n=mn(this.currentDocument)||this.snapshotIdentityStale;return(n||this.currentDocument.version<this.observedDocumentVersion)&&(this.currentDocument=await this.refreshSnapshot(n?void 0:this.observedDocumentVersion,"get-document"),this.snapshotIdentityStale=!1,this.sessionInitialized=!0),{ok:!0,data:this.currentDocument}}async initializeSession(t){let n=this.requireBoundComposition(t.composition);if(!this.params.client.initializeSession)throw new Error("Site edit bridge client does not support initialize-session");let r=await this.params.client.initializeSession({...t,composition:n});return this.currentDocument=r.data.document,this.observedDocumentVersion=r.data.document.version,this.activeCompositionContext={...r.composition},this.rememberServerConfirmedComposition(r.composition),this.sessionInitialized=!0,this.clearObjectCaches(),r}async getHistoryStatus(t){return this.params.client.getHistoryStatus(this.requireBoundComposition(t))}async getStyleContext(t){let n=this.requireBoundComposition(t),r=We(n),i=this.styleContextCache.get(r);if(i?.generation===this.styleGeneration)return{ok:!0,data:i.value};let o=this.styleContextInFlight.get(r);if(o?.generation===this.styleGeneration)return o.request;let s=this.styleGeneration,c=this.params.client.getStyleContext(n).then(a=>(this.styleGeneration===s&&this.styleContextCache.set(r,{generation:s,value:a.data}),a)).finally(()=>{this.styleContextInFlight.get(r)?.request===c&&this.styleContextInFlight.delete(r)});return this.styleContextInFlight.set(r,{generation:s,request:c}),c}async ensureDocumentVersion(t,n){this.requireBoundComposition(t);let r=await this.refreshSnapshot(n,"ensure-version");if(r.version<n)throw new Error(`Document refresh returned version ${r.version}, expected at least ${n}`);return{ok:!0,data:r}}async acknowledgeDocumentVersion(t,n){if(this.requireBoundComposition(t),n>this.currentDocument.version){if(this.currentDocument.pageComposition.status==="supported"){let r=await this.refreshSnapshot(n,"ensure-version");if(r.version<n)throw new Error(`Document refresh returned version ${r.version}, expected at least ${n}`);return{ok:!0,data:r}}this.currentDocument={...this.currentDocument,version:n},this.clearObjectCaches({preserveStyleContext:!0})}return this.observedDocumentVersion=Math.max(this.observedDocumentVersion,n),{ok:!0,data:this.currentDocument}}async getObjectEditContext(t,n,r){let i=this.requireBoundComposition(n),o=this.objectCacheKey(t,i,r),s=this.editContextCache.get(o);if(s)return{ok:!0,data:s};let c=this.editContextInFlight.get(o);if(c)return c;let a=this.objectGeneration,u=this.params.client.getObjectEditContext(t,i,...r?[r]:[]).then(d=>(this.objectGeneration===a&&this.editContextCache.set(o,d.data),d)).finally(()=>{this.editContextInFlight.get(o)===u&&this.editContextInFlight.delete(o)});return this.editContextInFlight.set(o,u),u}async getClassNameSource(t,n){let r=this.requireBoundComposition(n),i=this.objectCacheKey(t,r),o=this.classNameSourceCache.get(i);if(o)return o;let s=this.classNameSourceInFlight.get(i);if(s)return s;let c=this.objectGeneration,a=this.params.client.getClassNameSource(t,r).then(u=>(this.objectGeneration===c&&this.classNameSourceCache.set(i,u),u)).finally(()=>{this.classNameSourceInFlight.get(i)===a&&this.classNameSourceInFlight.delete(i)});return this.classNameSourceInFlight.set(i,a),a}async getSourceTree(t){return this.params.client.getSourceTree(this.requireBoundComposition(t))}async getSourceFile(t){return this.params.client.getSourceFile({path:t.path,composition:this.requireBoundComposition(t.composition)})}async resolveSourceLocation(t){return this.params.client.resolveSourceLocation({key:t.key,composition:this.requireBoundComposition(t.composition)})}async execute(t,n){let r=He(t);r&&this.composition.templateId!==void 0&&this.requireBoundComposition(r);let i={...t,composition:r??this.composition};return this.params.client.execute(i)}async getOperationResult(t){return this.requireBoundComposition(t.composition),this.params.client.getOperationResult?this.params.client.getOperationResult(t):null}async undo(t,n){return this.params.client.undo(this.requireBoundComposition(t))}async redo(t,n){return this.params.client.redo(this.requireBoundComposition(t))}subscribe(t){return this.params.client.subscribe(n=>{if(n.type==="site-edit.snapshot.changed"&&this.sessionInitialized&&this.isActiveComposition(n.composition)){this.snapshotIdentityStale=!0,this.clearObjectCaches(),t(n);return}if(n.type==="site-edit.document.changed"&&this.sessionInitialized&&this.isActiveComposition(n.composition)){let r=n.version>this.observedDocumentVersion;this.observedDocumentVersion=Math.max(this.observedDocumentVersion,n.version),r&&n.version>this.currentDocument.version&&this.clearObjectCaches(),t(n);return}t(n)})}async refreshSnapshot(t,n="ensure-version"){if(typeof t=="number"&&this.currentDocument.version>=t)return Ie("bridge.document-refresh",{composition:this.composition,routeId:this.composition.routeId,minVersion:t,currentVersion:this.currentDocument.version,deduped:!0,skipped:!0,source:n}),this.currentDocument;let r=We(this.composition),i=this.refreshInFlight;if(i?.compositionKey===r){Ie("bridge.document-refresh",{composition:this.composition,routeId:this.composition.routeId,minVersion:t,currentVersion:this.currentDocument.version,deduped:!0,source:n});let s=await i.request;if(typeof t!="number"||s.version>=t||this.currentDocument.version>=t)return this.currentDocument}Ie("bridge.document-refresh",{composition:this.composition,routeId:this.composition.routeId,minVersion:t,currentVersion:this.currentDocument.version,deduped:!1,source:n});let o=this.params.client.getDocument(this.composition).then(s=>{let c=!this.snapshotIdentityStale&&s.data.snapshotId===this.currentDocument.snapshotId&&qe(s.data.composition)===qe(this.currentDocument.composition)&&s.data.version>this.currentDocument.version&&s.data.version===this.observedDocumentVersion;return this.currentDocument=s.data,this.activeCompositionContext={...s.data.composition},this.rememberServerConfirmedComposition(s.data.composition),this.observedDocumentVersion=Math.max(this.observedDocumentVersion,s.data.version),c||this.clearObjectCaches(),this.currentDocument});this.refreshInFlight={compositionKey:r,request:o};try{return await o}finally{this.refreshInFlight?.request===o&&(this.refreshInFlight=null)}}clearObjectCaches(t){this.objectGeneration+=1,this.editContextCache.clear(),this.editContextInFlight.clear(),this.classNameSourceCache.clear(),this.classNameSourceInFlight.clear(),!t?.preserveStyleContext&&(this.styleGeneration+=1,this.styleContextCache.clear(),this.styleContextInFlight.clear())}objectCacheKey(t,n,r){return`${We(n)}\0${t}\0${Kr(r)}`}rememberServerConfirmedComposition(t){!t||typeof t.routeId!="string"||(this.serverConfirmedComposition={...t})}isAcceptedComposition(t){if(We(t)===We(this.composition))return!0;let n=this.serverConfirmedComposition;return n!==null&&qe(n)===qe(hn(t))}requireBoundComposition(t){let n=t===void 0?this.composition:xe(t);if(!this.isAcceptedComposition(n))throw new Error(`Site edit bridge is bound to composition ${JSON.stringify(this.composition)}, received ${JSON.stringify(n)}`);return xe(n)}isActiveComposition(t){let n=this.activeCompositionContext??hn(this.composition);return qe(t)===qe(n)}};function mn(e){return e.version===0&&e.entries.length===0}function Vr(e){let t=e;return{...t,data:{...t.data,document:yn(t.data.document,t.composition)}}}function yn(e,t){let n=e,r=ln(n.routeId?n:{...n,routeId:t?.routeId??n.composition?.routeId});return t?{...r,composition:t}:r}function xe(e){if(e&&typeof e=="object"&&typeof e.routeId=="string"){let t="effectiveTemplateId"in e?e.effectiveTemplateId:"templateId"in e?e.templateId:void 0;return{routeId:e.routeId,...typeof t=="string"?{templateId:t}:{}}}throw new Error("SITE_EDIT_COMPOSITION_SESSION_REQUIRED: a composition selector is required")}function We(e){return JSON.stringify([e.routeId,e.templateId??null])}function Kr(e){return e?JSON.stringify([e.key,e.instanceIndex??null,e.instanceCount??null]):""}function qe(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}function hn(e){return{routeId:e.routeId,...e.templateId?{effectiveTemplateId:e.templateId}:{}}}function He(e){if(e&&typeof e=="object"){let t=e;if(t.composition&&typeof t.composition=="object"){let n=t.composition;if(typeof n.routeId=="string")return{routeId:n.routeId,...typeof n.templateId=="string"?{templateId:n.templateId}:{}}}}}function zr(e,t,n){let r=xe(t==="execute"?He(n.request):n.composition),i={id:e,kind:t,composition:r};switch(t){case"initialize-session":case"get-document":case"get-history-status":case"get-style-context":case"get-source-tree":case"undo":case"redo":return{type:"request",payload:{...i,...n.mutationContext?{mutationContext:n.mutationContext}:{}}};case"get-object-edit-context":return{type:"request",payload:{...i,key:String(n.key),...n.selectionRef?{selectionRef:n.selectionRef}:{}}};case"get-class-name-source":case"resolve-source-location":return{type:"request",payload:{...i,key:String(n.key)}};case"get-source-file":return{type:"request",payload:{...i,path:String(n.path)}};case"execute":case"get-operation-result":return{type:"request",payload:{...i,request:{...n.request,composition:He(n.request)??r}}}}}var bn="vcp-window-message",En=1;function Sn(e){return{source:bn,version:En,namespace:e.namespace,channel:e.channel,...e.sessionKey?{sessionKey:e.sessionKey}:{},body:e.body}}function $r(e){try{return R(e)?J(e,"source",bn)&&J(e,"version",En)&&k(e,"namespace")&&k(e,"channel")&&fe(e,"body")&&(!Oe(e,"sessionKey")||k(e,"sessionKey")):!1}catch{return!1}}var Pt="site-edit",In="frame-runtime",Ur="frame-announce",kt=1,Ge=1,je=1,Cn=24;function Xe(e,t={}){return Sn({namespace:Pt,channel:In,sessionKey:t.sessionKey,body:e})}function Rn(){return Sn({namespace:Pt,channel:Ur,body:{type:"announce"}})}function Tn(e){try{return!$r(e)||e.namespace!==Pt||e.channel!==In?!1:ho(e.body)}catch{return!1}}function Ce(e){return R(e)&&k(e,"routeId")&&Ae(e,"templateId")&&he(e,["routeId","templateId"])}function st(e){return R(e)&&k(e,"routeId")&&Ae(e,"effectiveTemplateId")&&he(e,["routeId","effectiveTemplateId"])}function he(e,t){let n=new Set(t);return Reflect.ownKeys(e).every(r=>typeof r=="string"&&n.has(r))}var Oe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function fe(e,t){let n=Object.getOwnPropertyDescriptor(e,t);return n!==void 0&&"value"in n}function p(e,t){return Object.getOwnPropertyDescriptor(e,t)?.value}function J(e,t,n){return fe(e,t)&&p(e,t)===n}function k(e,t){return fe(e,t)&&typeof p(e,t)=="string"}function at(e,t){return fe(e,t)&&typeof p(e,t)=="boolean"}function w(e,t){let n=p(e,t);return fe(e,t)&&typeof n=="number"&&Number.isFinite(n)}function vn(e,t){let n=p(e,t);return fe(e,t)&&typeof n=="number"&&Number.isInteger(n)&&n>0}function Ae(e,t){return!Oe(e,t)||p(e,t)===void 0||k(e,t)}function Ve(e,t){return!Oe(e,t)||p(e,t)===void 0||w(e,t)}function De(e,t){let n=p(e,t);return!Oe(e,t)||n===void 0||fe(e,t)&&typeof n=="number"&&Number.isInteger(n)&&n>=0}function W(e,t){return!Oe(e,t)||p(e,t)===void 0}function R(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Wr(e){return R(e)&&Reflect.ownKeys(e).length===0}function ct(e){if(!Array.isArray(e))return!1;for(let t=0;t<e.length;t+=1){let n=Object.getOwnPropertyDescriptor(e,String(t));if(n===void 0||!("value"in n)||typeof n.value!="string")return!1}return!0}function Se(e){return R(e)&&k(e,"key")&&De(e,"instanceIndex")&&De(e,"instanceCount")&&De(e,"textSegmentIndex")}function Hr(e){return R(e)&&k(e,"blockId")&&De(e,"blockIndex")&&Se(p(e,"ref"))&&Ye(p(e,"rect"))&&at(e,"targetIsSectionRoot")}function Gr(e){if(!R(e))return!1;let t=p(e,"placement"),n=p(e,"boundary");return k(e,"anchorBlockId")&&De(e,"positionIndex")&&Se(p(e,"anchorRef"))&&(t==="before"||t==="after")&&R(n)&&w(n,"top")&&w(n,"left")&&w(n,"width")}function Ye(e){return R(e)&&["top","left","width","height"].every(t=>w(e,t))}function _n(e){if(!R(e))return!1;let t=p(e,"rect"),n=p(e,"layout"),r=R(n)?p(n,"containingBlock"):null,i=p(e,"scrollContext"),o=R(r)&&(J(r,"kind","viewport")&&Reflect.ownKeys(r).length===1||J(r,"kind","document")&&Reflect.ownKeys(r).length===1||J(r,"kind","element")&&k(r,"runtimeNodeId"));return J(e,"version",kt)&&k(e,"runtimeNodeId")&&R(t)&&Ye(p(t,"viewport"))&&Ye(p(t,"document"))&&R(n)&&k(n,"position")&&k(n,"transform")&&o&&R(i)&&["scrollX","scrollY","viewportWidth","viewportHeight"].every(s=>w(i,s))&&fe(i,"scrollContainers")&&jr(p(i,"scrollContainers"))}function jr(e){return Array.isArray(e)&&e.every(t=>R(t)&&k(t,"runtimeNodeId")&&w(t,"scrollLeft")&&w(t,"scrollTop"))}function Ot(e){return R(e)&&(W(e,"layoutSnapshot")||_n(p(e,"layoutSnapshot")))}function Yr(e){return R(e)&&Se(p(e,"ref"))&&fe(e,"layoutSnapshot")&&_n(p(e,"layoutSnapshot"))&&(W(e,"childBoxes")||Lr(p(e,"childBoxes")))&&(W(e,"childRects")||Jr(p(e,"childRects")))&&(W(e,"layout")||Xr(p(e,"layout")))&&(W(e,"spacing")||Qr(p(e,"spacing")))}function Xr(e){if(!R(e))return!1;let t=p(e,"indicatorOrientation");return k(e,"display")&&(t==="horizontal"||t==="vertical")&&Ae(e,"flexDirection")&&Ae(e,"gridAutoFlow")}function Jr(e){return Array.isArray(e)&&e.every(t=>Ye(t))}function Lr(e){return Array.isArray(e)&&e.every(t=>R(t)&&Ye(p(t,"rect"))&&xn(p(t,"margin")))}function xn(e){return R(e)&&["marginTop","marginRight","marginBottom","marginLeft"].every(t=>w(e,t))}function Qr(e){return xn(e)&&["paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","columnGap","rowGap"].every(t=>w(e,t))}function Zr(e){if(!Array.isArray(e))return!1;for(let t=0;t<e.length;t+=1){let n=Object.getOwnPropertyDescriptor(e,String(t));if(n===void 0||!("value"in n)||!Yr(n.value))return!1}return!0}function eo(e){return R(e)&&Reflect.ownKeys(e).every(t=>typeof t=="string"&&fe(e,t)&&(typeof p(e,t)=="string"||p(e,t)===null))}function An(e){return e==null||typeof e=="string"||typeof e=="number"&&Number.isFinite(e)}function to(e){return R(e)&&Reflect.ownKeys(e).every(t=>typeof t=="string"&&fe(e,t)&&An(p(e,t)))}function no(e){if(!R(e))return!1;let t=p(e,"priority");return k(e,"property")&&fe(e,"value")&&An(p(e,"value"))&&(!Oe(e,"priority")||t===void 0||t==="important")}function ro(e){return R(e)?(W(e,"attributes")||eo(p(e,"attributes")))&&Ae(e,"className")&&(W(e,"style")||to(p(e,"style")))&&(W(e,"styleDeclarations")||Array.isArray(p(e,"styleDeclarations"))&&p(e,"styleDeclarations").every(no)):!1}function oo(e){return R(e)&&w(e,"x")&&w(e,"y")&&(W(e,"detailLevel")||J(e,"detailLevel","summary")||J(e,"detailLevel","full"))}function io(e){return R(e)&&Se(p(e,"ref"))}function so(e){if(!R(e)||!R(p(e,"variables")))return!1;let t=p(e,"variables");return Reflect.ownKeys(t).every(n=>typeof n=="string"&&k(t,n))?W(e,"stylesheets")||ct(p(e,"stylesheets")):!1}function co(e){if(!J(e,"type","request")||!k(e,"id")||!k(e,"kind")||!fe(e,"payload"))return!1;let t=p(e,"kind"),n=p(e,"payload");switch(t){case"hit-test-at-point":case"start-text-edit-at-point":return oo(n);case"bridge-get-source-tree":return R(n)&&Ce(p(n,"composition"))&&he(n,["composition"]);case"get-scroll-metrics":case"clear-theme-override":return Wr(n);case"bridge-get-history-status":case"bridge-undo":case"bridge-redo":return R(n)&&Ce(p(n,"composition"))&&he(n,["composition"]);case"bridge-get-source-file":return R(n)&&k(n,"path")&&Ce(p(n,"composition"))&&he(n,["path","composition"]);case"bridge-get-object-edit-context":return R(n)&&k(n,"key")&&Ce(p(n,"composition"))&&mo(p(n,"selectionRef"))&&he(n,["key","composition","selectionRef"]);case"bridge-resolve-source-location":case"bridge-get-class-name-source":return R(n)&&k(n,"key")&&Ce(p(n,"composition"))&&he(n,["key","composition"]);case"scroll-to":return R(n)&&w(n,"x")&&w(n,"y");case"scroll-by":return R(n)&&w(n,"deltaX")&&w(n,"deltaY");case"set-interaction-mode":return R(n)&&at(n,"enabled");case"set-selection-visual":return R(n)&&J(n,"version",Ge)&&Se(p(n,"ref"))&&J(n,"visible",!0);case"clear-selection-visual":return R(n)&&J(n,"version",Ge);case"set-resize-visual":return R(n)&&J(n,"version",je)&&Se(p(n,"ref"))&&J(n,"visible",!0);case"clear-resize-visual":return R(n)&&J(n,"version",je);case"set-theme-override":return so(n);case"get-theme-variables":return R(n)&&ct(p(n,"names"));case"compute-drop-target-at-point":return R(n)&&w(n,"x")&&w(n,"y")&&(J(n,"dragKind","insert")||J(n,"dragKind","move"))&&(W(n,"movingRef")||Se(p(n,"movingRef")));case"observe-node-bounds":case"clear-node-bounds-observer":return R(n)&&(W(n,"ref")||Se(p(n,"ref")));case"apply-node-patch":return R(n)&&Se(p(n,"ref"))&&ro(p(n,"patch"))&&(W(n,"preview")||R(p(n,"preview"))&&k(p(n,"preview"),"sessionId")&&De(p(n,"preview"),"revision")&&Oe(p(n,"preview"),"revision"));case"get-hit-by-ref":case"get-path-by-ref":case"restore-text-edit":case"clear-text-edit-rollback":return io(n);case"bridge-initialize-session":case"bridge-get-style-context":return R(n)&&Ce(p(n,"composition"))&&he(n,["composition"]);case"bridge-get-document":case"bridge-ensure-document-version":case"bridge-acknowledge-document-version":return R(n)&&Ce(p(n,"composition"))&&Ve(n,"minVersion")&&Ve(n,"version")&&he(n,["composition","minVersion","version"]);case"bridge-execute":case"bridge-get-operation-result":{if(!R(n))return!1;let r=p(n,"request"),i=p(n,"composition"),o=R(r)?p(r,"composition"):null;return!Ce(i)||!R(r)||!Ce(o)?!1:te({routeId:i.routeId,...i.templateId?{effectiveTemplateId:i.templateId}:{}})===te({routeId:o.routeId,...o.templateId?{effectiveTemplateId:o.templateId}:{}})&&he(n,["composition","request"])}case"bridge-subscribe":case"bridge-unsubscribe":return R(n)&&k(n,"subscriptionId")&&Ce(p(n,"composition"))&&he(n,["subscriptionId","composition"]);default:return!1}}function ao(e){return J(e,"type","response")&&k(e,"id")&&at(e,"ok")&&(W(e,"error")||k(e,"error"))}function uo(e){if(!R(e))return!1;let t=p(e,"type");if(typeof t!="string"||!st(p(e,"composition"))||!k(e,"siteId")||!k(e,"at"))return!1;switch(t){case"site-edit.document.changed":return k(e,"snapshotId")&&w(e,"version");case"site-edit.operation.planned":return k(e,"operationId")&&k(e,"baseSnapshotId")&&ct(p(e,"changedFiles"));case"site-edit.operation.completed":return R(p(e,"result"));case"site-edit.operation.failed":return k(e,"requestId")&&R(p(e,"error"));case"site-edit.capability.changed":return ct(p(e,"keys"));case"site-edit.graph.invalidated":return!0;case"site-edit.graph.ready":return w(e,"version");case"site-edit.graph.error":return k(e,"message");default:return!1}}var lo=new Set(["pointer-down","pointer-move","pointer-leave","pointer-up","pointer-cancel","pointer-click","pointer-double-click"]),Nn=new Set(["e","s","se"]);function po(e,t){if(W(e,"resizeSession"))return!0;let n=p(e,"resizeSession");if(!R(n))return!1;let r=p(e,"pointerId"),i=p(n,"pointerId"),o=p(n,"phase"),s=p(n,"edge"),c=t==="pointer-down"?"start":t==="pointer-up"?"commit":t==="pointer-cancel"?"cancel":null;return p(n,"version")===1&&o===c&&k(n,"sessionId")&&String(p(n,"sessionId")).length>0&&typeof r=="number"&&Number.isInteger(r)&&typeof i=="number"&&Number.isInteger(i)&&r===i&&typeof s=="string"&&Nn.has(s)&&p(e,"resizeEdge")===s&&Se(p(n,"ref"))&&["startWidth","startHeight","width","height"].every(a=>w(n,a))}function fo(e){if(!J(e,"type","event")||!k(e,"kind")||!R(p(e,"payload")))return!1;let t=p(e,"kind"),n=p(e,"payload");switch(t){case"text-edit-commit":case"text-edit-cancel":case"text-edit-exit":case"text-edit-input":return Se(p(n,"ref"))&&Ae(n,"value")&&(W(n,"hit")||Ot(p(n,"hit")));case"node-bounds-change":return Ot(p(n,"hit"));case"geometry-batch":{let r=p(n,"reason");return vn(n,"sequence")&&w(n,"sourceEventAt")&&w(n,"captureStartedAt")&&w(n,"capturedAt")&&(r==="scroll"||r==="resize"||r==="mutation")&&Zr(p(n,"snapshots"))}case"bridge-event":{let r=p(n,"event"),i=p(n,"composition");return!uo(r)||!st(i)?!1:k(n,"subscriptionId")&&te(i)===te(r.composition)}case"route-ready":return st(p(n,"composition"))&&k(n,"editEngineVersion")&&w(n,"sequence")&&w(n,"version");case"bridge-status":{let r=p(n,"state");return(r==="connecting"||r==="ready"||r==="reconnecting"||r==="failed"||r==="reload-required")&&st(p(n,"composition"))&&w(n,"sequence")&&Ve(n,"attempt")&&Ve(n,"retryInMs")&&Ae(n,"messageKey")&&Ae(n,"failureCode")}case"scroll":{let r=p(n,"metrics");return R(r)&&["scrollX","scrollY","scrollWidth","scrollHeight","viewportWidth","viewportHeight"].every(i=>w(r,i))}default:return lo.has(t)&&w(n,"clientX")&&w(n,"clientY")&&Ve(n,"buttons")&&Ve(n,"pointerId")&&(W(n,"hoverVisualOwned")||at(n,"hoverVisualOwned"))&&(W(n,"resizeEdge")||k(n,"resizeEdge")&&Nn.has(p(n,"resizeEdge")))&&po(n,t)&&(p(n,"hit")===null||Ot(p(n,"hit")))&&(W(n,"section")||p(n,"section")===null||Hr(p(n,"section")))&&(W(n,"sectionGap")||p(n,"sectionGap")===null||Gr(p(n,"sectionGap")))}}function mo(e){if(e===void 0)return!0;if(!R(e)||!he(e,["key","instanceIndex","instanceCount"])||!k(e,"key")||p(e,"key").length===0||!De(e,"instanceIndex")||!W(e,"instanceCount")&&!vn(e,"instanceCount"))return!1;let t=p(e,"instanceIndex"),n=p(e,"instanceCount");return!(typeof t=="number"&&typeof n=="number"&&t>=n)}function ho(e){if(!R(e))return!1;switch(p(e,"type")){case"request":return co(e);case"response":return ao(e);case"event":return fo(e);default:return!1}}var Kt="vcp-site-edit:route-ready",zt="vcp-site-edit:bridge-status",Xn="SITE_EDIT_COMPOSITION_RENDER_MISMATCH",Ht="#655ae8",go=80,yo=120,bo=160,Eo=4,Jn="data-vcp-designer-hover-visual",So=1e3,Io="data-vcp-ui-component",Ln="data-vcp-theme-preview",Dn="::repeat-item#",ut="components/ui",Mt="data-site-block-id",Bt="data-vcp-runtime-site-block-id",Co=new Set(["article","aside","div","footer","form","header","li","main","nav","ol","section","select","table","tbody","tfoot","thead","tr","ul"]),Ro=new Set(["a","button","em","h1","h2","h3","h4","h5","h6","label","p","small","span","strong"]);function To(e,t){let n=Array.from(e.querySelectorAll("[data-vcp-edit-key]"));for(let c of n)c.getAttribute(Bt)==="true"&&(c.removeAttribute(Mt),c.removeAttribute(Bt));if(!t)return;let r=n.filter(c=>c.tagName.toLowerCase()==="section"),i=r.length>0?r:n.filter(c=>c.tagName.toLowerCase()==="main"),o=new Set(i),s=new Map;for(let c of i){let a=c.parentElement,u=!1;for(;a;){if(o.has(a)){u=!0;break}a=a.parentElement}if(u||c.getAttribute(Mt)?.trim())continue;let d=c.getAttribute("data-vcp-edit-key")?.trim();if(!d)continue;let l=s.get(d)??0;s.set(d,l+1);let g=`vcp-runtime:${encodeURIComponent(d)}:${l}`;c.setAttribute(Mt,g),c.setAttribute(Bt,"true")}}function Qn(e,t=""){let n=rr(t),r=n&&(e===n||e.startsWith(`${n}/`))?e.slice(n.length)||"/":e,i=r.startsWith("/")?r:`/${r}`;return i==="/"?"/":i.replace(/\/+$/,"")}function vo(e){let t=Qn(e.pathname,e.basePath??""),n=new URLSearchParams(e.search??"").getAll("template_id");return n.length===0?{routeId:t}:{routeId:t,templateId:n[n.length-1]}}function $e(e){return JSON.stringify([e.routeId,e.templateId??null])}function _o(e,t){if(e.__VCP_SITE_EDIT_VERSION_LOGGED__)return;let n=e.console?.info;typeof n=="function"&&(e.__VCP_SITE_EDIT_VERSION_LOGGED__=!0,n.call(e.console,"[VCP Site Edit] runtime loaded",{bridge:t.versions?.bridge??"unknown",contracts:t.versions?.contracts??"unknown",documentVersion:t.documentVersion,engine:t.versions?.engine??"unknown",routeId:t.routeId}))}function xo(e,t={}){if(t.explicit_ws_url)return t.explicit_ws_url.startsWith("/")?`${e.location.protocol==="https:"?"wss:":"ws:"}//${e.location.host}${t.explicit_ws_url}`:t.explicit_ws_url;let n=e.location.protocol==="https:"?"wss:":"ws:",r=t.port?`${e.location.hostname}:${t.port}`:e.location.host;return`${n}//${r}${t.path??"/__vcp/site-edit/bridge"}`}async function xs(e=window,t={}){let n=xo(e,{explicit_ws_url:t.explicit_ws_url,port:t.ws_port,path:t.wsPath||"/__vcp/site-edit/bridge"}),r=Ao({bridgeUrl:n,options:t}),i=e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__;if(i?.started){if(No(i.signature,r)){await i.syncRoute?.();return}i.cleanup?.()}let o={activeClient:null,activeBridge:null,cleanupFrameRuntime:(()=>{}),retryTimer:void 0,routeSequence:0,syncInFlight:null,syncScheduled:!1,disposed:!1,currentDocument:null,currentEntriesByKey:new Map,unsubscribeDocument:void 0,unsubscribeConnectionStatus:void 0,unbindBootstrapLifecycle:void 0,unbindRouteChange:void 0},s,c=()=>e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__===s,a=t.create_client??(m=>new it({url:m,authKey:t.bridge_session_key})),u=t.schedule_after_navigation??ni,d=()=>{o.retryTimer&&(e.clearTimeout(o.retryTimer),o.retryTimer=void 0)},l=()=>vo({pathname:e.location.pathname,search:e.location.search,basePath:t.basePath}),g=()=>$e(l()),f=m=>{ri(e,{...m,composition:m.state==="ready"?m.composition:{routeId:m.composition.routeId},sequence:m.sequence??o.routeSequence})},_=m=>{o.currentDocument=m,o.currentEntriesByKey=new Map((m?.entries??[]).map(S=>[S.key,S])),To(e.document,!!m)},C=()=>{o.unsubscribeConnectionStatus?.(),o.unsubscribeConnectionStatus=void 0,o.unsubscribeDocument?.(),o.unsubscribeDocument=void 0},x=(m,S)=>{if(o.disposed||S!==o.routeSequence)return!1;try{return m===g()}catch{return!1}},v=async(m,S,P)=>{let T=o.activeBridge;if(!T)return null;let V=await T.getDocument(m);return x(S,P)&&_(V.data),V.data},O=()=>{C(),_(null);let m=o.activeBridge;o.activeBridge=null,m&&e.__VCP_SITE_EDIT__===m&&delete e.__VCP_SITE_EDIT__;let S=o.activeClient;o.activeClient=null,S?.disconnect()},$=m=>m===s.compositionKey&&!!o.activeBridge&&!!(o.currentDocument&&s.composition&&ii(o.currentDocument,te(s.composition)))&&oi(o.activeClient),z=m=>Math.min(So*2**Math.max(0,m),8e3),I=(m,S,P,T,V)=>{if(o.disposed)return;d();let H=z(T);f({state:"reconnecting",composition:m,attempt:T,retryInMs:H,...V?{failureCode:V}:{},messageKey:"studio.status.previewBridgeConnecting"}),o.retryTimer=e.setTimeout(()=>{o.retryTimer=void 0,!(o.disposed||P!==o.routeSequence||!x(S,P))&&ee(T+1).catch(G=>{let b;try{b=g()}catch{return}if(S===b){if(Ke(G)){f({state:"reload-required",composition:m,attempt:T,messageKey:"studio.errors.previewBridgeReloadRequired"});return}I(m,S,o.routeSequence,T+1)}})},H)},L=(m,S,P,T)=>{if(!x(S,P)||o.activeClient===null)return;let V=o.activeClient;C(),_(null);let H=o.activeBridge;o.activeBridge=null,H&&e.__VCP_SITE_EDIT__===H&&delete e.__VCP_SITE_EDIT__,o.activeClient=null,V.disconnect(),I(m,S,P,0,T)},se=(m,S,P,T)=>{if(!(!x(S,P)||o.activeClient===null)){if(Ke(T.message)){O(),d(),f({state:"reload-required",composition:m,attempt:0,messageKey:"studio.errors.previewBridgeReloadRequired"});return}L(m,S,P,Ft(new Error(T.message??"")).failureCode)}},re=m=>{let S;try{S=l()}catch{return}let P=$e(S),T=o.routeSequence;if(!(!x(P,T)||o.activeClient===null)){if(Ke(m)){O(),d(),f({state:"reload-required",composition:S,attempt:0,messageKey:"studio.errors.previewBridgeReloadRequired"});return}if(ai(m)){L(S,P,T);return}tr(m)&&se(S,P,T,{state:"failed",message:Ne(m,"Site edit bridge request failed")})}};o.cleanupFrameRuntime=Mo(e,{getCurrentDocument:()=>o.currentDocument,getDocumentEntry:m=>o.currentEntriesByKey.get(m)??null,setCurrentDocument:_,onBridgeRequestError:m=>{re(m)}});let Z=async()=>ee(0),ee=async m=>{if(o.disposed)return;let S=l(),P=$e(S);if($(P))return;let T=o.syncInFlight;if(T?.compositionKey===P)return T.promise;let V=o.routeSequence+1,H=oe(S,P,V,m);o.syncInFlight={compositionKey:P,sequence:V,promise:H};try{await H}finally{o.syncInFlight?.promise===H&&(o.syncInFlight=null)}},oe=async(m,S,P,T)=>{o.routeSequence=P,d(),O(),f({state:T>0?"reconnecting":"connecting",composition:m,attempt:T,messageKey:T>0?"studio.status.previewBridgeConnecting":"studio.status.previewLoading"});let V=a(n),H=!1;o.activeClient=V,o.unsubscribeConnectionStatus=V.subscribeConnectionStatus?.(G=>{H&&(G.state==="closed"||G.state==="failed")&&se(m,S,P,G)});try{if(await V.connect(),!x(S,P)){V.disconnect();return}let G=gn({composition:m,client:V,initialDocument:ko(m)});if(o.activeBridge=G,o.activeClient=V,o.unsubscribeDocument=G.subscribe(y=>{if(!(!s.composition||te(y.composition)!==te(s.composition))){if(y.type==="site-edit.snapshot.changed"){v(m,S,P).catch(()=>{});return}y.type==="site-edit.document.changed"&&o.currentDocument&&y.version>o.currentDocument.version?v(m,S,P).catch(()=>{}):y.type==="site-edit.graph.invalidated"&&(_(null),A())}}),c()&&(s.routeId=m.routeId,s.composition=void 0,s.compositionKey=S),t.launch_id){let y=new URL(n);y.protocol=y.protocol==="wss:"?"https:":"http:",y.pathname=y.pathname.replace(/\/bridge$/,"/health"),y.search="";let{response:U,health:F}=await ei(e,y);if(F.launch?.launchId===t.launch_id&&(U.status===503||U.ok&&!F.ok))throw new Error("SITE_EDIT_ENGINE_UNAVAILABLE: preview engine is temporarily unavailable");if(!U.ok||!F.ok||F.launch?.launchId!==t.launch_id)throw new Error("SITE_EDIT_RUNTIME_RELOAD_REQUIRED: preview navigation belongs to a stale launch")}let b=await G.initializeSession({composition:m}),E=b.data.document;if((m.templateId!==void 0?te(b.composition)!==S:b.composition.effectiveTemplateId!==void 0)||te(E.composition)!==te(b.composition))throw new Error(`${Xn}: initialize response does not match requested selector`);if(!x(S,P)){V.disconnect();return}_(E),c()&&(e.__VCP_SITE_EDIT__=G),H=!0,c()&&(s.composition=b.composition),f({state:"ready",composition:b.composition,attempt:T,messageKey:"studio.status.previewReady"}),_o(e,{documentVersion:E?.version??0,routeId:m.routeId,versions:t.runtime_versions}),E&&er(e,{composition:b.composition,editEngineVersion:t.runtime_versions?.engine??"unknown",sequence:P,version:E.version})}catch(G){if(!x(S,P)){V.disconnect();return}if(C(),o.activeClient===V&&(o.activeClient=null),o.activeBridge&&e.__VCP_SITE_EDIT__===o.activeBridge&&delete e.__VCP_SITE_EDIT__,o.activeBridge=null,V.disconnect(),_(null),!x(S,P))return;throw f({state:Ke(G)?"reload-required":"failed",composition:m,attempt:T,...Ft(G),messageKey:Ke(G)?"studio.errors.previewBridgeReloadRequired":"studio.errors.previewBridgeDisconnected"}),G}},ce=m=>{if(o.disposed)return;let S;try{S=l()}catch{f({state:"failed",composition:{routeId:Qn(e.location.pathname,t.basePath||"")},attempt:0,messageKey:"studio.errors.previewBridgeDisconnected"});return}let P=$e(S);if(Ke(m)){d(),f({state:"reload-required",composition:S,attempt:0,messageKey:"studio.errors.previewBridgeReloadRequired"});return}if(si(m)){f({state:"failed",composition:S,attempt:0,messageKey:"studio.errors.previewBridgeDisconnected"});return}I(S,P,o.routeSequence,0,Ft(m).failureCode)},A=()=>{o.syncScheduled||o.disposed||(o.syncScheduled=!0,u(()=>{o.syncScheduled=!1,!o.disposed&&Z().catch(m=>ce(m))}))},B=()=>{o.disposed||(o.disposed=!0,o.syncScheduled=!1,o.syncInFlight=null,d(),o.routeSequence+=1,o.unbindRouteChange?.(),o.unbindRouteChange=void 0,o.unbindBootstrapLifecycle?.(),o.unbindBootstrapLifecycle=void 0,o.cleanupFrameRuntime(),O(),c()&&delete e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__)};s={started:!0,signature:r,syncRoute:Z,cleanup:B},e.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__=s,o.unbindBootstrapLifecycle=Oo(e,B);let q=l();if(o.unbindRouteChange=Zo(e,()=>{let m=l(),S=m.routeId===q.routeId&&m.templateId!==q.templateId;if(q=m,S){o.routeSequence+=1,O(),f({state:"connecting",composition:{routeId:m.routeId},attempt:0}),e.location.reload();return}A()},g),t.defer_initial_sync){A();return}await Z()}function Ao(e){return{basePath:rr(e.options.basePath??""),bridgeUrl:e.bridgeUrl,launchId:e.options.launch_id??null,snapshotId:e.options.snapshot_id??null,runtimeVersions:{bridge:e.options.runtime_versions?.bridge??null,contracts:e.options.runtime_versions?.contracts??null,engine:e.options.runtime_versions?.engine??null},sessionKeyFingerprint:Do(e.options.bridge_session_key)}}function No(e,t){return!!e&&JSON.stringify(e)===JSON.stringify(t)}function Do(e){if(!e)return null;let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return`${e.length}:${t.toString(36)}`}function Oo(e,t){let n=()=>t();return e.addEventListener("pagehide",n),e.addEventListener("beforeunload",n),Po(t),()=>{e.removeEventListener("pagehide",n),e.removeEventListener("beforeunload",n)}}function Po(e){let t=import.meta.hot,n=import.meta.webpackHot,r=t??n;!r||typeof r.dispose!="function"||r.dispose(()=>e())}function ko(e){return{siteId:"preview",snapshotId:"preview",composition:{routeId:e.routeId},version:0,pageComposition:{status:"unsupported",reason:"ROUTE_RETURN_NOT_FOUND",diagnostics:[]},entries:[]}}function Mo(e=window,t={}){let n=null,r=null,i=null,o=null,s=null,c=null,a=0,u=null,d=null,l=null,g=null,f=null,_=0,C=new Map,x=typeof t.expectedSessionKey=="string"&&t.expectedSessionKey.length>0?t.expectedSessionKey:null,v=()=>{n?.(),n=null,r=null},O=()=>{let b=e.parent;if(!(!b||b===e))try{b.postMessage(Rn(),"*")}catch{}},$=()=>{i?.(),i=null,o?.(),o=null,s?.cleanup(),s=null,c?.cleanup(),c=null},z=(b,E,y)=>{let U=u?.sessionKey!==b||u?.sourceWindow!==E||u?.targetOrigin!==y;u={sessionKey:b,sourceWindow:E,targetOrigin:y},U&&(a=0,g=null,f=null)},I=(b,E)=>{let y=e.parent&&e.parent!==e?e.parent:null;return!y||E!==y?!1:!x||b===x},L=()=>{for(let b of C.values())b();C.clear()},se=b=>JSON.stringify([te(b.composition),b.editEngineVersion,b.sequence,b.version]),re=()=>!l||l.state==="ready",Z=b=>JSON.stringify([b.state,te(b.composition),b.sequence,b.attempt??null,b.retryInMs??null,b.messageKey??null]),ee=b=>{if(!re())return;let E=se(b);g!==E&&(o?.(),o=null,s?.cleanup(),s=null,c?.cleanup(),c=null,m({kind:"route-ready",payload:{composition:b.composition,editEngineVersion:b.editEngineVersion,sequence:b.sequence,version:b.version}}),u&&(g=E))},oe=b=>{let E=Z(b);f!==E&&(b.state!=="ready"&&(g=null,d=null),m({kind:"bridge-status",payload:b}),u&&(f=E))},ce=b=>{d=b,ee(b)},A=b=>{l=b,oe(b)},B=()=>{d&&ee(d)},q=()=>{l&&oe(l)},m=b=>{u&&u.sourceWindow.postMessage(Xe({type:"event",...b},{sessionKey:u.sessionKey}),u.targetOrigin)},S=(b,E,y,U)=>{let F=t.getCurrentDocument?.()??null,Q=E.rawTarget&&typeof E.rawTarget.getAttribute=="function"?E.rawTarget:null,N=Q??gi(e.document,E.clientX,E.clientY),j=Q?Et(Q):null,ae=j?.getAttribute("data-vcp-edit-key")??"",ue=E.resizeSession||E.skipHit?null:j&&Yt(j,F,ae)?j:Ze(e.document,E.clientX,E.clientY,F),le=b==="pointer-move"&&Number(E.buttons??0)===0||b==="pointer-down"?"rect-only":"full",ie=ue?Re(ue,y==="full"?me(e.document,ue,F):yt(e.document,ue,F),t.getDocumentEntry,y,void 0,le,F):null,ye=yi(e.document,N,F),be=Ei(e.document,E,F,t.getDocumentEntry);U&&ie&&(b==="pointer-click"||b==="pointer-double-click")&&(U.preventDefault(),U.stopPropagation(),typeof U.stopImmediatePropagation=="function"&&U.stopImmediatePropagation()),m({kind:b,payload:{clientX:E.clientX,clientY:E.clientY,buttons:Number(E.buttons??0),pointerId:E.pointerId,hoverVisualOwned:E.hoverVisualOwned,resizeEdge:E.resizeEdge,resizeSession:E.resizeSession,hit:ie,section:ye,sectionGap:be}})},P=b=>{m({kind:"pointer-leave",payload:{clientX:b?.clientX??0,clientY:b?.clientY??0,buttons:Number(b?.buttons??0),hit:null,section:null,sectionGap:null}})},T=(b,E,y)=>{$(),u={sessionKey:b,sourceWindow:E,targetOrigin:y};let U=ss(e.document),F=Bo(e,t.getCurrentDocument),Q=null,N=null,j=null,ae=null,ue=null,le=null,ie=!1,ye=null,be=!1,Ee=()=>{ye=null,be=!1},Me=()=>{ue!==null&&(e.clearTimeout(ue),ue=null)},D=()=>{j!==null&&(ht(e,j),j=null),Q=null},M=()=>{le!==null&&(e.clearTimeout(le),le=null)},Y=()=>{j=null;let h=Q;Q=null,h&&S("pointer-move",h,"summary")},Te=h=>{Me(),N=h,Q=h,j===null&&(j=mt(e,Y))},nt=h=>{N&&Te({...N,rawTarget:null,hoverVisualOwned:h&&!ie&&!be?F?.updateAtPoint(N.clientX,N.clientY)??!1:!1})},de=()=>nt(!0),gr=()=>nt(!1),Ue=e.document.documentElement,Ct=typeof Ue.addEventListener=="function"?Ue:e.document,Lt=h=>{if(c?.update(h)){h.preventDefault();return}ye?.pointerId===Number(h.pointerId)&&Number(h.buttons)===1?!be&&Math.hypot(Number(h.clientX)-ye.clientX,Number(h.clientY)-ye.clientY)>=Eo&&(be=!0,F?.clear()):ye?.pointerId===Number(h.pointerId)&&Number(h.buttons)!==1&&Ee(),Te({clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target,hoverVisualOwned:!ie&&!be?F?.update(h.target)??!1:!1})},Qt=h=>{let K=jo(h.target),Fe=K?c?.begin(h,K):null;Fe&&(h.target?.setPointerCapture?.(h.pointerId),h.preventDefault(),h.stopPropagation()),!Fe&&Number(h.buttons)===1?(ye={clientX:Number(h.clientX),clientY:Number(h.clientY),pointerId:Number(h.pointerId)},be=!1):Ee(),S("pointer-down",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:Number(h.pointerId),rawTarget:h.target,resizeEdge:K,resizeSession:Fe??void 0},"summary",h)},Zt=h=>{Ee();let K=c?.finish(h,"commit")??null;if(K){S("pointer-up",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:Number(h.pointerId),resizeEdge:K.edge,resizeSession:K,skipHit:!0},"summary",h);return}S("pointer-up",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target,skipHit:!0},"summary",h)},en=h=>{Ee();let K=c?.finish(h,"cancel")??null;S("pointer-cancel",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:K?.pointerId,rawTarget:K?void 0:h.target,resizeEdge:K?.edge,resizeSession:K??void 0,skipHit:!0},"summary",h)},tn=h=>{let K=c?.finish(h,"cancel")??null;K&&S("pointer-cancel",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),pointerId:K.pointerId,resizeEdge:K.edge,resizeSession:K,skipHit:!0},"summary",h)},nn=h=>{S("pointer-click",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target},"full",h)},rn=h=>{S("pointer-double-click",{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons),rawTarget:h.target},"full",h)},Rt=h=>{if(h&&h.target!==Ct&&h.target!==Ue)return;let K=h?{clientX:Number(h.clientX),clientY:Number(h.clientY),buttons:Number(h.buttons)}:N;if(h&&K&&K.clientX>0&&K.clientX<e.innerWidth&&K.clientY>0&&K.clientY<e.innerHeight){de();return}if(D(),h){Me(),ue=e.setTimeout(()=>{ue=null,N=null,M(),ie=!1,Ee(),P(K??void 0)},yo);return}Me(),M(),ie=!1,Ee(),N=null,F?.clear(),P(K??void 0)},on=()=>Rt(),yr=()=>{ae=null,m({kind:"scroll",payload:{metrics:pt(e)}}),gr()},Be=()=>{ie=!0,F?.clear(),M(),N&&(le=e.setTimeout(()=>{le=null,ie=!1,de()},bo)),ae===null&&(ae=mt(e,yr))};e.document.addEventListener("pointerdown",Qt,!0),e.document.addEventListener("pointermove",Lt,{passive:!0,capture:!0}),e.document.addEventListener("pointerup",Zt,!0),e.document.addEventListener("pointercancel",en,!0),e.document.addEventListener("lostpointercapture",tn,!0),e.document.addEventListener("click",nn,!0),e.document.addEventListener("dblclick",rn,!0),e.addEventListener("scroll",Be,{passive:!0}),e.document.addEventListener("scroll",Be,{capture:!0,passive:!0}),e.addEventListener("resize",de,{passive:!0}),e.addEventListener("blur",on),e.document.addEventListener("load",de,!0),Ct.addEventListener("pointerleave",Rt,!0);let rt=e.visualViewport;rt?.addEventListener?.("resize",de,{passive:!0}),rt?.addEventListener?.("scroll",Be,{passive:!0});let sn=e.ResizeObserver,cn=typeof sn=="function"?new sn(de):null;cn?.observe(Ue);let an=e.MutationObserver,un=typeof an=="function"?new an(h=>{h.some(Fe=>Fe.type!=="attributes"||Fe.attributeName!==Jn)&&de()}):null;un?.observe(Ue,{attributes:!0,childList:!0,subtree:!0}),i=()=>{D(),Me(),M(),ie=!1,Ee(),N=null,F?.cleanup(),cn?.disconnect(),un?.disconnect(),ae!==null&&(ht(e,ae),ae=null),U(),e.document.removeEventListener("pointerdown",Qt,!0),e.document.removeEventListener("pointermove",Lt,!0),e.document.removeEventListener("pointerup",Zt,!0),e.document.removeEventListener("pointercancel",en,!0),e.document.removeEventListener("lostpointercapture",tn,!0),e.document.removeEventListener("click",nn,!0),e.document.removeEventListener("dblclick",rn,!0),e.removeEventListener("scroll",Be),e.document.removeEventListener("scroll",Be,!0),e.removeEventListener("resize",de),e.removeEventListener("blur",on),e.document.removeEventListener("load",de,!0),Ct.removeEventListener("pointerleave",Rt,!0),rt?.removeEventListener?.("resize",de),rt?.removeEventListener?.("scroll",Be)}},V=b=>{let E=b.detail;E?.composition?.routeId&&ce(E)},H=b=>{let E=b.detail;E?.state&&A(E)},G=b=>{let E=b.data;if(!Tn(E)||E.body.type!=="request"||E.body.kind!=="apply-node-patch"&&E.body.kind!=="get-hit-by-ref"&&E.body.kind!=="get-path-by-ref"&&E.body.kind!=="get-scroll-metrics"&&E.body.kind!=="scroll-to"&&E.body.kind!=="scroll-by"&&E.body.kind!=="set-interaction-mode"&&E.body.kind!=="set-selection-visual"&&E.body.kind!=="clear-selection-visual"&&E.body.kind!=="set-resize-visual"&&E.body.kind!=="clear-resize-visual"&&E.body.kind!=="set-theme-override"&&E.body.kind!=="clear-theme-override"&&E.body.kind!=="get-theme-variables"&&E.body.kind!=="compute-drop-target-at-point"&&E.body.kind!=="observe-node-bounds"&&E.body.kind!=="clear-node-bounds-observer"&&E.body.kind!=="restore-text-edit"&&E.body.kind!=="clear-text-edit-rollback"&&E.body.kind!=="start-text-edit-at-point"&&E.body.kind!=="hit-test-at-point"&&!Bn(E.body))return;let y=E.body,U=typeof E.sessionKey=="string"?E.sessionKey:null,F=b.source,Q=b.origin;if(!U||!Q||!F||typeof F.postMessage!="function"||!I(U,F))return;if(u){if(u.sourceWindow!==F||u.targetOrigin!==Q)return;u.sessionKey!==U&&(v(),$(),L(),u=null)}z(U,F,Q),q(),B();let N=j=>{let ae=typeof y.id=="string"?y.id:"unknown";F.postMessage(Xe({id:ae,...j},{sessionKey:U}),Q)};try{if(Bn(y)){Jo({message:y,sendEvent:D=>{F.postMessage(Xe({type:"event",...D},{sessionKey:U}),Q)},sendResponse:N,subscriptions:C,getCurrentDocument:t.getCurrentDocument,setCurrentDocument:t.setCurrentDocument,onBridgeRequestError:t.onBridgeRequestError,nextRouteReadySequence:()=>_+=1,windowLike:e});return}if(y.kind==="apply-node-patch"){let D=ge(e.document,y.payload.ref,t.getCurrentDocument?.()??null);if(!D){N({type:"response",ok:!1,error:"No editable element found for patch target"});return}let M=y.payload.preview,Y=M?Gi(M.sessionId,y.payload.ref):null;if(Y&&M){let Te=Je.get(Y)??-1;if(M.revision<Te){N({type:"response",ok:!0,result:{applied:!1,appliedRevision:M.revision,stale:!0,latestRevision:Te}});return}if(M.revision===Te){N({type:"response",ok:!0,result:{applied:!1,appliedRevision:M.revision,duplicate:!0,latestRevision:Te}});return}}if(Wi(D,y.payload.patch),Y&&M&&ji(Y,M.revision),M?.responseDetail==="none"){N({type:"response",ok:!0,result:{applied:!0,appliedRevision:M.revision}});return}N({type:"response",ok:!0,result:Re(D,me(e.document,D,t.getCurrentDocument?.()??null),t.getDocumentEntry,M?.responseDetail??"full",void 0,"full",t.getCurrentDocument?.()??null)});return}if(y.kind==="get-hit-by-ref"){let D=ge(e.document,y.payload.ref,t.getCurrentDocument?.()??null);if(!D){N({type:"response",ok:!1,error:"No editable element found for hit target"});return}N({type:"response",ok:!0,result:Re(D,me(e.document,D,t.getCurrentDocument?.()??null),t.getDocumentEntry,"full",void 0,"full",t.getCurrentDocument?.()??null)});return}if(y.kind==="get-path-by-ref"){let D=ge(e.document,y.payload.ref,t.getCurrentDocument?.()??null);if(!D){N({type:"response",ok:!1,error:"No editable element found for path target"});return}let M=[],Y=D;for(;Y;)Y.getAttribute("data-vcp-edit-key")&&M.push(Re(Y,me(e.document,Y,t.getCurrentDocument?.()??null),t.getDocumentEntry,"full",void 0,"rect-only",t.getCurrentDocument?.()??null)),Y=Y.parentElement;N({type:"response",ok:!0,result:M.reverse()});return}if(y.kind==="restore-text-edit"||y.kind==="clear-text-edit-rollback"){let D=y.payload.ref;if(y.kind==="clear-text-edit-rollback"){r&&qn(r.ref,D)&&(r=null),N({type:"response",ok:!0,result:{cleared:!0}});return}if(!r||!qn(r.ref,D)){N({type:"response",ok:!1,error:"No pending text edit rollback snapshot"});return}let M=li(e.document,r,t.getCurrentDocument?.()??null);r=null,N(M?{type:"response",ok:!0,result:{restored:!0}}:{type:"response",ok:!1,error:"Failed to restore text edit snapshot"});return}if(y.kind==="get-scroll-metrics"){N({type:"response",ok:!0,result:pt(e)});return}if(y.kind==="scroll-to"){let D=Number(y.payload.x),M=Number(y.payload.y);if(!Number.isFinite(D)||!Number.isFinite(M)){N({type:"response",ok:!1,error:"Invalid scroll position"});return}e.scrollTo({left:D,top:M}),N({type:"response",ok:!0,result:pt(e)});return}if(y.kind==="scroll-by"){let D=Number(y.payload.deltaX),M=Number(y.payload.deltaY);if(!Number.isFinite(D)||!Number.isFinite(M)){N({type:"response",ok:!1,error:"Invalid scroll delta"});return}e.scrollBy({left:D,top:M}),N({type:"response",ok:!0,result:{...pt(e),scrolled:!0}});return}if(y.kind==="set-interaction-mode"){y.payload.enabled?T(U,F,Q):u?.sourceWindow===F&&u.targetOrigin===Q&&u.sessionKey===U&&(v(),$()),N({type:"response",ok:!0,result:{interactionEnabled:y.payload.enabled}});return}if(y.kind==="set-selection-visual"){let D=!1;i?s?(D=s.setRef(y.payload.ref),D||(s.cleanup(),s=null)):(s=wo(e,y.payload.ref,t.getCurrentDocument),D=!!s):(s?.cleanup(),s=null),N({type:"response",ok:!0,result:{version:Ge,active:D}});return}if(y.kind==="clear-selection-visual"){s?.cleanup(),s=null,N({type:"response",ok:!0,result:{version:Ge,active:!1}});return}if(y.kind==="set-resize-visual"){c?.cleanup(),c=null,i&&(c=Yo(e,y.payload.ref,t.getCurrentDocument,({clientX:D,clientY:M,session:Y})=>{m({kind:"pointer-cancel",payload:{clientX:D,clientY:M,buttons:0,pointerId:Y.pointerId,resizeEdge:Y.edge,resizeSession:Y,hit:null,section:null,sectionGap:null}})})),N({type:"response",ok:!0,result:{version:je,active:!!c}});return}if(y.kind==="clear-resize-visual"){c?.cleanup(),c=null,N({type:"response",ok:!0,result:{version:je,active:!1}});return}if(y.kind==="set-theme-override"){Yi(e.document,y.payload),N({type:"response",ok:!0,result:{themeOverrideApplied:!0}});return}if(y.kind==="clear-theme-override"){Xi(e.document),N({type:"response",ok:!0,result:{themeOverrideCleared:!0}});return}if(y.kind==="get-theme-variables"){N({type:"response",ok:!0,result:Ji(e.document,y.payload.names)});return}if(y.kind==="compute-drop-target-at-point"){let D=Number(y.payload?.x),M=Number(y.payload?.y);if(!Number.isFinite(D)||!Number.isFinite(M)){N({type:"response",ok:!1,error:"Invalid drop target point"});return}N({type:"response",ok:!0,result:qi(e,D,M,y.payload.dragKind,y.payload.movingRef,t.getCurrentDocument?.()??null,t.getDocumentEntry)});return}if(y.kind==="observe-node-bounds"){let D=y.payload.ref;if(!D){N({type:"response",ok:!1,error:"Missing bounds observer target"});return}let M=ge(e.document,D,t.getCurrentDocument?.()??null);if(!M){N({type:"response",ok:!1,error:"No editable element found for bounds observer target"});return}o?.();let Y=Pi(e,M,D,t.getCurrentDocument,(Te,nt,de)=>{a+=1,m({kind:"geometry-batch",payload:{sequence:a,sourceEventAt:de.sourceEventAt,captureStartedAt:de.captureStartedAt,capturedAt:de.capturedAt,reason:Te,snapshots:[nt]}})});o=Y.cleanup,N({type:"response",ok:!0,result:{observing:!0}}),m({kind:"node-bounds-change",payload:{hit:Di(Re(M,D,t.getDocumentEntry,"summary",e,"rect-only",t.getCurrentDocument?.()??null),Y.initialSnapshot)}});return}if(y.kind==="clear-node-bounds-observer"){o?.(),o=null,N({type:"response",ok:!0,result:{cleared:!0}});return}if(y.kind!=="hit-test-at-point"&&y.kind!=="start-text-edit-at-point")return;let j=Number(y.payload?.x),ae=Number(y.payload?.y);if(!Number.isFinite(j)||!Number.isFinite(ae)){N({type:"response",ok:!1,error:"Invalid text edit point"});return}let ue=y.kind==="hit-test-at-point"?Ze(e.document,j,ae,t.getCurrentDocument?.()??null):pi(e.document,j,ae,t.getCurrentDocument?.()??null,t.getDocumentEntry);if(!ue){N({type:"response",ok:!1,error:y.kind==="hit-test-at-point"?"No editable element at point":"No editable text element at point"});return}let le=y.kind==="start-text-edit-at-point"?ue:null,ie=y.kind==="hit-test-at-point"?ue:le.element,ye=y.payload.detailLevel??"full",be=ye==="full"?me(e.document,ie,t.getCurrentDocument?.()??null):yt(e.document,ie,t.getCurrentDocument?.()??null),Ee=le&&typeof le.textSegmentIndex=="number"?{...be,textSegmentIndex:le.textSegmentIndex}:be,Me=Re(ie,Ee,t.getDocumentEntry,ye,void 0,"full",t.getCurrentDocument?.()??null);if(y.kind==="hit-test-at-point"){N({type:"response",ok:!0,result:Me});return}v(),n=es(e,ie,Ee,D=>{F.postMessage(Xe({type:"event",...D},{sessionKey:U}),Q)},{...le?.textNode?{textNode:le.textNode}:{},onCommitSnapshot:D=>{r=D}}),N({type:"response",ok:!0,result:{ref:Ee}})}catch(j){N({type:"response",ok:!1,error:j instanceof Error?j.message:"Failed to start text edit"})}};return e.addEventListener("message",G),e.addEventListener(Kt,V),e.addEventListener(zt,H),O(),()=>{v(),$(),u=null,L(),e.removeEventListener("message",G),e.removeEventListener(Kt,V),e.removeEventListener(zt,H)}}function Bo(e,t){let n=e.document,r=n.head??n.documentElement;if(typeof r?.appendChild!="function")return null;let i=Jn,o="data-vcp-designer-selection-visual",s=n.createElement("style");s.setAttribute("data-vcp-designer-hover-visual-style","true"),s.textContent=`
2
2
  [${i}="true"]:not([${o}="true"]) {
3
3
  outline: 1px dashed ${Ht} !important;
4
4
  outline-offset: -1px !important;
5
- }`,r.appendChild(s);let c=null,a=()=>{c?.removeAttribute(i),c=null},u=g=>{let f=Et(g),_=f?.getAttribute("data-vcp-edit-key")??"",C=f&&Yt(f,t?.()??null,_)?f:null;return C===c||(a(),c=C,c?.setAttribute(i,"true")),!0};return{clear:a,cleanup:()=>{a(),s.remove()},update:u,updateAtPoint:(g,f)=>u(Qe(n,g,f,t?.()??null))}}var Fo=0;function wo(e,t,n){let r=e.document,i=r.head??r.documentElement,o=++Fo,s=`--vcp-designer-selection-target-${o}`,c=`--vcp-designer-spacing-gap-${o}`,a=e.CSS;if(typeof a?.supports!="function"||!a.supports(`anchor-name: ${s}`)||!a.supports(`position-anchor: ${s}`)||!a.supports("left: anchor(left)")||!a.supports("top: anchor(top)")||!a.supports("left: anchor(right)")||!a.supports("top: anchor(bottom)")||!a.supports("width: anchor-size(width)")||!a.supports("height: anchor-size(height)"))return null;let u=t,d=(T=u)=>ge(r,T,n?.()??null),l=d();if(!l||!l.isConnected||typeof i?.appendChild!="function"||typeof r.documentElement?.appendChild!="function")return null;let g="data-vcp-designer-selection-visual",f="data-vcp-designer-visual-layer",_="data-vcp-designer-resize-handle",C=r.createElement("style");C.setAttribute("data-vcp-designer-selection-visual-style","true"),C.textContent=`
5
+ }`,r.appendChild(s);let c=null,a=()=>{c?.removeAttribute(i),c=null},u=g=>{let f=Et(g),_=f?.getAttribute("data-vcp-edit-key")??"",C=f&&Yt(f,t?.()??null,_)?f:null;return C===c||(a(),c=C,c?.setAttribute(i,"true")),!0};return{clear:a,cleanup:()=>{a(),s.remove()},update:u,updateAtPoint:(g,f)=>u(Ze(n,g,f,t?.()??null))}}var Fo=0;function wo(e,t,n){let r=e.document,i=r.head??r.documentElement,o=++Fo,s=`--vcp-designer-selection-target-${o}`,c=`--vcp-designer-spacing-gap-${o}`,a=e.CSS;if(typeof a?.supports!="function"||!a.supports(`anchor-name: ${s}`)||!a.supports(`position-anchor: ${s}`)||!a.supports("left: anchor(left)")||!a.supports("top: anchor(top)")||!a.supports("left: anchor(right)")||!a.supports("top: anchor(bottom)")||!a.supports("width: anchor-size(width)")||!a.supports("height: anchor-size(height)"))return null;let u=t,d=(T=u)=>ge(r,T,n?.()??null),l=d();if(!l||!l.isConnected||typeof i?.appendChild!="function"||typeof r.documentElement?.appendChild!="function")return null;let g="data-vcp-designer-selection-visual",f="data-vcp-designer-visual-layer",_="data-vcp-designer-resize-handle",C=r.createElement("style");C.setAttribute("data-vcp-designer-selection-visual-style","true"),C.textContent=`
6
6
  [${f}="true"] {
7
7
  position: fixed !important;
8
8
  position-anchor: ${s} !important;
@@ -16,7 +16,7 @@ function te(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}fu
16
16
  padding: 0 !important;
17
17
  pointer-events: none !important;
18
18
  z-index: 2147483647 !important;
19
- }`,i.appendChild(C);let x=r.createElement("div");x.setAttribute(f,"true"),x.setAttribute("aria-hidden","true"),r.documentElement.appendChild(x);for(let T of Array.from(r.documentElement.children))T.getAttribute(_)!==null&&(T.remove(),r.documentElement.appendChild(T));let v=r.createElement("div");v.setAttribute("data-vcp-designer-spacing-visual-layer","true"),v.setAttribute("aria-hidden","true"),v.style.setProperty("position","fixed","important"),v.style.setProperty("inset","0","important"),v.style.setProperty("overflow","hidden","important"),v.style.setProperty("pointer-events","none","important"),v.style.setProperty("z-index","2147483645","important"),r.documentElement.appendChild(v),l.setAttribute(g,"true");let P=ft(l,s),$=!1,z=null,I=[],L=[],se=()=>{z=null,L.forEach(T=>T()),L=Vo(v,I,l,s,c)},re=()=>{$||z!==null||(z=mt(e,se))};se();let Z=e.ResizeObserver,ee=typeof Z=="function"?new Z(re):null,oe=[];function ce(){oe.forEach(T=>ee?.unobserve(T)),oe=l?.isConnected?[l,...Array.from(l.children)].filter(T=>typeof T.getBoundingClientRect=="function"):[],oe.forEach(T=>ee?.observe(T))}ce();let A=T=>{T===l&&T?.isConnected||(l?.removeAttribute(g),P?.(),P=null,l=T,l?.isConnected?(l.setAttribute(g,"true"),P=ft(l,s),x.style.removeProperty("display")):x.style.setProperty("display","none","important"),ce(),re())},B=()=>{$||A(d())},q=e.MutationObserver,m=typeof q=="function"?new q(T=>{let V=l;B();let H=V!==l,G=T.some(b=>b.type!=="attributes"||b.attributeName!=="class"&&b.attributeName!=="style"?!1:b.target===l?!0:l?.contains?.(b.target)===!0&&b.target!==v&&b.target!==x);!H&&!G||(ce(),re())}):null;return m?.observe(r.documentElement,{attributeFilter:["data-vcp-edit-key","class","style"],attributes:!0,childList:!0,subtree:!0}),e.addEventListener("resize",re),{setRef:T=>{if($)return!1;if(qo(u,T)&&l?.isConnected)return!0;let H=d(T);return H?.isConnected?(u=T,A(H),!0):!1},cleanup:()=>{$||($=!0,z!==null&&(ht(e,z),z=null),e.removeEventListener("resize",re),m?.disconnect(),ee?.disconnect(),l?.removeAttribute(g),L.forEach(T=>T()),L=[],P?.(),P=null,l=null,x.remove(),v.remove(),C.remove())}}}function qo(e,t){return e.key===t.key&&(e.instanceIndex??null)===(t.instanceIndex??null)&&(e.instanceCount??null)===(t.instanceCount??null)}function Vo(e,t,n,r,i){if(n?.isConnected===!0&&r)return Ko(e,t,n,r,i);let o=n?.isConnected===!0?zo(n):[];return o.forEach((s,c)=>{let a=t[c]??e.ownerDocument.createElement("div");t[c]||(a.style.setProperty("position","fixed","important"),a.style.setProperty("pointer-events","none","important"),e.appendChild(a),t[c]=a),a.setAttribute("data-vcp-designer-spacing-kind",s.kind),a.style.setProperty("background",s.kind==="margin"?"rgba(245, 158, 11, 0.24)":s.kind==="padding"?"rgba(56, 189, 248, 0.22)":"rgba(34, 197, 94, 0.22)","important"),a.style.setProperty("display","block","important"),a.style.setProperty("left",`${s.left}px`,"important"),a.style.setProperty("top",`${s.top}px`,"important"),a.style.setProperty("width",`${s.width}px`,"important"),a.style.setProperty("height",`${s.height}px`,"important")}),t.slice(o.length).forEach(s=>{s.style.setProperty("display","none","important")}),[]}function Ko(e,t,n,r,i){let o=St(n),s=[{kind:"margin",left:"anchor(left)",top:`calc(anchor(top) - ${o.marginTop}px)`,width:"anchor-size(width)",height:`${o.marginTop}px`},{kind:"margin",left:"anchor(right)",top:"anchor(top)",width:`${o.marginRight}px`,height:"anchor-size(height)"},{kind:"margin",left:"anchor(left)",top:"anchor(bottom)",width:"anchor-size(width)",height:`${o.marginBottom}px`},{kind:"margin",left:`calc(anchor(left) - ${o.marginLeft}px)`,top:"anchor(top)",width:`${o.marginLeft}px`,height:"anchor-size(height)"},{kind:"padding",left:`calc(anchor(left) + ${o.borderLeftWidth}px)`,top:`calc(anchor(top) + ${o.borderTopWidth}px)`,width:`calc(anchor-size(width) - ${o.borderLeftWidth+o.borderRightWidth}px)`,height:`${o.paddingTop}px`},{kind:"padding",left:`calc(anchor(right) - ${o.borderRightWidth+o.paddingRight}px)`,top:`calc(anchor(top) + ${o.borderTopWidth+o.paddingTop}px)`,width:`${o.paddingRight}px`,height:`calc(anchor-size(height) - ${o.borderTopWidth+o.borderBottomWidth+o.paddingTop+o.paddingBottom}px)`},{kind:"padding",left:`calc(anchor(left) + ${o.borderLeftWidth}px)`,top:`calc(anchor(bottom) - ${o.borderBottomWidth+o.paddingBottom}px)`,width:`calc(anchor-size(width) - ${o.borderLeftWidth+o.borderRightWidth}px)`,height:`${o.paddingBottom}px`},{kind:"padding",left:`calc(anchor(left) + ${o.borderLeftWidth}px)`,top:`calc(anchor(top) + ${o.borderTopWidth+o.paddingTop}px)`,width:`${o.paddingLeft}px`,height:`calc(anchor-size(height) - ${o.borderTopWidth+o.borderBottomWidth+o.paddingTop+o.paddingBottom}px)`}];s.forEach((u,d)=>{let l=Pn(e,t,d);l.setAttribute("data-vcp-designer-spacing-kind",u.kind),l.style.setProperty("position-anchor",r,"important"),l.style.setProperty("left",u.left,"important"),l.style.setProperty("top",u.top,"important"),l.style.setProperty("width",u.width,"important"),l.style.setProperty("height",u.height,"important"),l.style.setProperty("background",u.kind==="margin"?"rgba(245, 158, 11, 0.24)":"rgba(56, 189, 248, 0.22)","important");let g=u.kind==="margin"?[o.marginTop,o.marginRight,o.marginBottom,o.marginLeft][d]:[o.paddingTop,o.paddingRight,o.paddingBottom,o.paddingLeft][d-4];l.style.setProperty("display",(g??0)>.5?"block":"none","important")});let c=Uo(n,o),a=c.map((u,d)=>{let l=Pn(e,t,s.length+d),g=`${i}-${d}`,f=ft(u.anchorElement,g);return l.setAttribute("data-vcp-designer-spacing-kind","gap"),l.style.setProperty("position-anchor",g,"important"),l.style.setProperty("background","rgba(34, 197, 94, 0.22)","important"),l.style.setProperty("display","block","important"),l.style.setProperty("left",`calc(anchor(left) + ${u.leftOffset}px)`,"important"),l.style.setProperty("top",`calc(anchor(top) + ${u.topOffset}px)`,"important"),l.style.setProperty("width",`${u.width}px`,"important"),l.style.setProperty("height",`${u.height}px`,"important"),f});return t.slice(s.length+c.length).forEach(u=>{u.style.setProperty("display","none","important")}),a}function Pn(e,t,n){let r=t[n];if(r)return r;let i=e.ownerDocument.createElement("div");return i.style.setProperty("position","fixed","important"),i.style.setProperty("pointer-events","none","important"),e.appendChild(i),t[n]=i,i}function zo(e){let t=ke(e.getBoundingClientRect()),n=St(e),r=t.left+n.borderLeftWidth,i=t.top+n.borderTopWidth,o=t.width-n.borderLeftWidth-n.borderRightWidth,s=t.height-n.borderTopWidth-n.borderBottomWidth,c=i+n.paddingTop,a=s-n.paddingTop-n.paddingBottom,u=[{kind:"margin",left:t.left,top:t.top-n.marginTop,width:t.width,height:n.marginTop},{kind:"margin",left:t.left+t.width,top:t.top,width:n.marginRight,height:t.height},{kind:"margin",left:t.left,top:t.top+t.height,width:t.width,height:n.marginBottom},{kind:"margin",left:t.left-n.marginLeft,top:t.top,width:n.marginLeft,height:t.height}];return o>0&&s>0&&u.push({kind:"padding",left:r,top:i,width:o,height:n.paddingTop},{kind:"padding",left:r+o-n.paddingRight,top:c,width:n.paddingRight,height:a},{kind:"padding",left:r,top:i+s-n.paddingBottom,width:o,height:n.paddingBottom},{kind:"padding",left:r,top:c,width:n.paddingLeft,height:a}),u.push(...$o(e,n)),u.filter(d=>d.width>.5&&d.height>.5)}function $o(e,t){let n=e.ownerDocument?.defaultView?.getComputedStyle(e).display??"";if(!["flex","inline-flex","grid","inline-grid"].includes(n)||t.columnGap<=0&&t.rowGap<=0)return[];let r=Jt(e);return[...kn(r,"horizontal",t.columnGap),...kn(r,"vertical",t.rowGap)]}function Uo(e,t){let n=e.ownerDocument?.defaultView?.getComputedStyle(e).display??"";if(!["flex","inline-flex","grid","inline-grid"].includes(n)||t.columnGap<=0&&t.rowGap<=0)return[];let r=e.ownerDocument?.defaultView,i=Array.from(e.children).filter(o=>typeof o.getBoundingClientRect=="function").map(o=>({element:o,rect:ke(o.getBoundingClientRect()),margin:Xt(r?.getComputedStyle(o))})).filter(({rect:o})=>o.width>0&&o.height>0);return[...On(i,"horizontal",t.columnGap),...On(i,"vertical",t.rowGap)].filter(o=>o.width>.5&&o.height>.5)}function On(e,t,n){if(n<=0||e.length<2)return[];let r=Zn(e,t==="horizontal"?"y":"x"),i=[];return r.forEach(o=>{let s=[...o].sort((c,a)=>t==="horizontal"?c.rect.left-a.rect.left:c.rect.top-a.rect.top);for(let c=0;c<s.length-1;c+=1){let a=s[c],u=s[c+1];if(t==="horizontal"){let d=a.rect.left+a.rect.width+a.margin.marginRight,l=u.rect.left-u.margin.marginLeft-d,g=Math.min(n,l);i.push({anchorElement:a.element,leftOffset:d+Math.max(0,(l-g)/2)-a.rect.left,topOffset:Math.max(a.rect.top,u.rect.top)-a.rect.top,width:g,height:Math.min(a.rect.top+a.rect.height,u.rect.top+u.rect.height)-Math.max(a.rect.top,u.rect.top)})}else{let d=a.rect.top+a.rect.height+a.margin.marginBottom,l=u.rect.top-u.margin.marginTop-d,g=Math.min(n,l);i.push({anchorElement:a.element,leftOffset:Math.max(a.rect.left,u.rect.left)-a.rect.left,topOffset:d+Math.max(0,(l-g)/2)-a.rect.top,width:Math.min(a.rect.left+a.rect.width,u.rect.left+u.rect.width)-Math.max(a.rect.left,u.rect.left),height:g})}}}),i}function kn(e,t,n){if(n<=0||e.length<2)return[];let r=Zn(e,t==="horizontal"?"y":"x"),i=[];return r.forEach(o=>{let s=[...o].sort((c,a)=>t==="horizontal"?c.rect.left-a.rect.left:c.rect.top-a.rect.top);for(let c=0;c<s.length-1;c+=1){let a=s[c],u=s[c+1];if(t==="horizontal"){let d=a.rect.left+a.rect.width+a.margin.marginRight,l=u.rect.left-u.margin.marginLeft-d,g=Math.min(n,l);i.push({kind:"gap",left:d+Math.max(0,(l-g)/2),top:Math.max(a.rect.top,u.rect.top),width:g,height:Math.min(a.rect.top+a.rect.height,u.rect.top+u.rect.height)-Math.max(a.rect.top,u.rect.top)})}else{let d=a.rect.top+a.rect.height+a.margin.marginBottom,l=u.rect.top-u.margin.marginTop-d,g=Math.min(n,l);i.push({kind:"gap",left:Math.max(a.rect.left,u.rect.left),top:d+Math.max(0,(l-g)/2),width:Math.min(a.rect.left+a.rect.width,u.rect.left+u.rect.width)-Math.max(a.rect.left,u.rect.left),height:g})}}}),i}function Zn(e,t){let n=[...e].sort((i,o)=>t==="x"?i.rect.left-o.rect.left||i.rect.top-o.rect.top:i.rect.top-o.rect.top||i.rect.left-o.rect.left),r=[];return n.forEach(i=>{let o=r.find(s=>s.some(c=>Wo(c.rect,i.rect,t)>.5));o?o.push(i):r.push([i])}),r}function Wo(e,t,n){return n==="x"?Math.min(e.left+e.width,t.left+t.width)-Math.max(e.left,t.left):Math.min(e.top+e.height,t.top+t.height)-Math.max(e.top,t.top)}var lt=new WeakMap;function ft(e,t){let n=lt.get(e);if(!n){let i=e.style.getPropertyValue("anchor-name"),o=e.ownerDocument?.defaultView?.getComputedStyle(e).getPropertyValue?.("anchor-name").trim()??"";n={names:new Set,originalValue:i,originalPriority:e.style.getPropertyPriority("anchor-name"),computedValue:o==="none"?"":o},lt.set(e,n)}n.names.add(t),Mn(e,n);let r=!1;return()=>{if(r)return;r=!0;let i=lt.get(e);if(i){if(i.names.delete(t),i.names.size>0){Mn(e,i);return}i.originalValue?e.style.setProperty("anchor-name",i.originalValue,i.originalPriority):e.style.removeProperty("anchor-name"),lt.delete(e)}}}function Mn(e,t){let n=t.originalValue.trim()||t.computedValue;e.style.setProperty("anchor-name",[...n?[n]:[],...t.names].join(", "),"important")}var Ho=["e","se","s"],Go=0;function jo(e){let t=e,i=(t?.getAttribute?.("data-vcp-designer-resize-handle")?t:t?.closest?.("[data-vcp-designer-resize-handle]"))?.getAttribute?.("data-vcp-designer-resize-handle");return i==="e"||i==="s"||i==="se"?i:void 0}function Yo(e,t,n,r){let i=++Go,o=`--vcp-designer-resize-target-${i}`,s=e.CSS;if(typeof s?.supports!="function"||!s.supports(`anchor-name: ${o}`)||!s.supports(`position-anchor: ${o}`)||!s.supports("left: anchor(left)")||!s.supports("top: anchor(top)"))return null;let c=e.document,a=c.head??c.documentElement,u=c.documentElement,d=()=>ge(c,t,n?.()??null),l=d();if(!l||!l.isConnected||typeof a?.appendChild!="function"||typeof u?.appendChild!="function")return null;let g="data-vcp-designer-resize-visual",f="data-vcp-designer-resize-handle",_=c.createElement("style");_.setAttribute("data-vcp-designer-resize-visual-style","true"),_.textContent=`
19
+ }`,i.appendChild(C);let x=r.createElement("div");x.setAttribute(f,"true"),x.setAttribute("aria-hidden","true"),r.documentElement.appendChild(x);for(let T of Array.from(r.documentElement.children))T.getAttribute(_)!==null&&(T.remove(),r.documentElement.appendChild(T));let v=r.createElement("div");v.setAttribute("data-vcp-designer-spacing-visual-layer","true"),v.setAttribute("aria-hidden","true"),v.style.setProperty("position","fixed","important"),v.style.setProperty("inset","0","important"),v.style.setProperty("overflow","hidden","important"),v.style.setProperty("pointer-events","none","important"),v.style.setProperty("z-index","2147483645","important"),r.documentElement.appendChild(v),l.setAttribute(g,"true");let O=ft(l,s),$=!1,z=null,I=[],L=[],se=()=>{z=null,L.forEach(T=>T()),L=Vo(v,I,l,s,c)},re=()=>{$||z!==null||(z=mt(e,se))};se();let Z=e.ResizeObserver,ee=typeof Z=="function"?new Z(re):null,oe=[];function ce(){oe.forEach(T=>ee?.unobserve(T)),oe=l?.isConnected?[l,...Array.from(l.children)].filter(T=>typeof T.getBoundingClientRect=="function"):[],oe.forEach(T=>ee?.observe(T))}ce();let A=T=>{T===l&&T?.isConnected||(l?.removeAttribute(g),O?.(),O=null,l=T,l?.isConnected?(l.setAttribute(g,"true"),O=ft(l,s),x.style.removeProperty("display")):x.style.setProperty("display","none","important"),ce(),re())},B=()=>{$||A(d())},q=e.MutationObserver,m=typeof q=="function"?new q(T=>{let V=l;B();let H=V!==l,G=T.some(b=>b.type!=="attributes"||b.attributeName!=="class"&&b.attributeName!=="style"?!1:b.target===l?!0:l?.contains?.(b.target)===!0&&b.target!==v&&b.target!==x);!H&&!G||(ce(),re())}):null;return m?.observe(r.documentElement,{attributeFilter:["data-vcp-edit-key","class","style"],attributes:!0,childList:!0,subtree:!0}),e.addEventListener("resize",re),{setRef:T=>{if($)return!1;if(qo(u,T)&&l?.isConnected)return!0;let H=d(T);return H?.isConnected?(u=T,A(H),!0):!1},cleanup:()=>{$||($=!0,z!==null&&(ht(e,z),z=null),e.removeEventListener("resize",re),m?.disconnect(),ee?.disconnect(),l?.removeAttribute(g),L.forEach(T=>T()),L=[],O?.(),O=null,l=null,x.remove(),v.remove(),C.remove())}}}function qo(e,t){return e.key===t.key&&(e.instanceIndex??null)===(t.instanceIndex??null)&&(e.instanceCount??null)===(t.instanceCount??null)}function Vo(e,t,n,r,i){if(n?.isConnected===!0&&r)return Ko(e,t,n,r,i);let o=n?.isConnected===!0?zo(n):[];return o.forEach((s,c)=>{let a=t[c]??e.ownerDocument.createElement("div");t[c]||(a.style.setProperty("position","fixed","important"),a.style.setProperty("pointer-events","none","important"),e.appendChild(a),t[c]=a),a.setAttribute("data-vcp-designer-spacing-kind",s.kind),a.style.setProperty("background",s.kind==="margin"?"rgba(245, 158, 11, 0.24)":s.kind==="padding"?"rgba(56, 189, 248, 0.22)":"rgba(34, 197, 94, 0.22)","important"),a.style.setProperty("display","block","important"),a.style.setProperty("left",`${s.left}px`,"important"),a.style.setProperty("top",`${s.top}px`,"important"),a.style.setProperty("width",`${s.width}px`,"important"),a.style.setProperty("height",`${s.height}px`,"important")}),t.slice(o.length).forEach(s=>{s.style.setProperty("display","none","important")}),[]}function Ko(e,t,n,r,i){let o=St(n),s=[{kind:"margin",left:"anchor(left)",top:`calc(anchor(top) - ${o.marginTop}px)`,width:"anchor-size(width)",height:`${o.marginTop}px`},{kind:"margin",left:"anchor(right)",top:"anchor(top)",width:`${o.marginRight}px`,height:"anchor-size(height)"},{kind:"margin",left:"anchor(left)",top:"anchor(bottom)",width:"anchor-size(width)",height:`${o.marginBottom}px`},{kind:"margin",left:`calc(anchor(left) - ${o.marginLeft}px)`,top:"anchor(top)",width:`${o.marginLeft}px`,height:"anchor-size(height)"},{kind:"padding",left:`calc(anchor(left) + ${o.borderLeftWidth}px)`,top:`calc(anchor(top) + ${o.borderTopWidth}px)`,width:`calc(anchor-size(width) - ${o.borderLeftWidth+o.borderRightWidth}px)`,height:`${o.paddingTop}px`},{kind:"padding",left:`calc(anchor(right) - ${o.borderRightWidth+o.paddingRight}px)`,top:`calc(anchor(top) + ${o.borderTopWidth+o.paddingTop}px)`,width:`${o.paddingRight}px`,height:`calc(anchor-size(height) - ${o.borderTopWidth+o.borderBottomWidth+o.paddingTop+o.paddingBottom}px)`},{kind:"padding",left:`calc(anchor(left) + ${o.borderLeftWidth}px)`,top:`calc(anchor(bottom) - ${o.borderBottomWidth+o.paddingBottom}px)`,width:`calc(anchor-size(width) - ${o.borderLeftWidth+o.borderRightWidth}px)`,height:`${o.paddingBottom}px`},{kind:"padding",left:`calc(anchor(left) + ${o.borderLeftWidth}px)`,top:`calc(anchor(top) + ${o.borderTopWidth+o.paddingTop}px)`,width:`${o.paddingLeft}px`,height:`calc(anchor-size(height) - ${o.borderTopWidth+o.borderBottomWidth+o.paddingTop+o.paddingBottom}px)`}];s.forEach((u,d)=>{let l=On(e,t,d);l.setAttribute("data-vcp-designer-spacing-kind",u.kind),l.style.setProperty("position-anchor",r,"important"),l.style.setProperty("left",u.left,"important"),l.style.setProperty("top",u.top,"important"),l.style.setProperty("width",u.width,"important"),l.style.setProperty("height",u.height,"important"),l.style.setProperty("background",u.kind==="margin"?"rgba(245, 158, 11, 0.24)":"rgba(56, 189, 248, 0.22)","important");let g=u.kind==="margin"?[o.marginTop,o.marginRight,o.marginBottom,o.marginLeft][d]:[o.paddingTop,o.paddingRight,o.paddingBottom,o.paddingLeft][d-4];l.style.setProperty("display",(g??0)>.5?"block":"none","important")});let c=Uo(n,o),a=c.map((u,d)=>{let l=On(e,t,s.length+d),g=`${i}-${d}`,f=ft(u.anchorElement,g);return l.setAttribute("data-vcp-designer-spacing-kind","gap"),l.style.setProperty("position-anchor",g,"important"),l.style.setProperty("background","rgba(34, 197, 94, 0.22)","important"),l.style.setProperty("display","block","important"),l.style.setProperty("left",`calc(anchor(left) + ${u.leftOffset}px)`,"important"),l.style.setProperty("top",`calc(anchor(top) + ${u.topOffset}px)`,"important"),l.style.setProperty("width",`${u.width}px`,"important"),l.style.setProperty("height",`${u.height}px`,"important"),f});return t.slice(s.length+c.length).forEach(u=>{u.style.setProperty("display","none","important")}),a}function On(e,t,n){let r=t[n];if(r)return r;let i=e.ownerDocument.createElement("div");return i.style.setProperty("position","fixed","important"),i.style.setProperty("pointer-events","none","important"),e.appendChild(i),t[n]=i,i}function zo(e){let t=ke(e.getBoundingClientRect()),n=St(e),r=t.left+n.borderLeftWidth,i=t.top+n.borderTopWidth,o=t.width-n.borderLeftWidth-n.borderRightWidth,s=t.height-n.borderTopWidth-n.borderBottomWidth,c=i+n.paddingTop,a=s-n.paddingTop-n.paddingBottom,u=[{kind:"margin",left:t.left,top:t.top-n.marginTop,width:t.width,height:n.marginTop},{kind:"margin",left:t.left+t.width,top:t.top,width:n.marginRight,height:t.height},{kind:"margin",left:t.left,top:t.top+t.height,width:t.width,height:n.marginBottom},{kind:"margin",left:t.left-n.marginLeft,top:t.top,width:n.marginLeft,height:t.height}];return o>0&&s>0&&u.push({kind:"padding",left:r,top:i,width:o,height:n.paddingTop},{kind:"padding",left:r+o-n.paddingRight,top:c,width:n.paddingRight,height:a},{kind:"padding",left:r,top:i+s-n.paddingBottom,width:o,height:n.paddingBottom},{kind:"padding",left:r,top:c,width:n.paddingLeft,height:a}),u.push(...$o(e,n)),u.filter(d=>d.width>.5&&d.height>.5)}function $o(e,t){let n=e.ownerDocument?.defaultView?.getComputedStyle(e).display??"";if(!["flex","inline-flex","grid","inline-grid"].includes(n)||t.columnGap<=0&&t.rowGap<=0)return[];let r=Jt(e);return[...kn(r,"horizontal",t.columnGap),...kn(r,"vertical",t.rowGap)]}function Uo(e,t){let n=e.ownerDocument?.defaultView?.getComputedStyle(e).display??"";if(!["flex","inline-flex","grid","inline-grid"].includes(n)||t.columnGap<=0&&t.rowGap<=0)return[];let r=e.ownerDocument?.defaultView,i=Array.from(e.children).filter(o=>typeof o.getBoundingClientRect=="function").map(o=>({element:o,rect:ke(o.getBoundingClientRect()),margin:Xt(r?.getComputedStyle(o))})).filter(({rect:o})=>o.width>0&&o.height>0);return[...Pn(i,"horizontal",t.columnGap),...Pn(i,"vertical",t.rowGap)].filter(o=>o.width>.5&&o.height>.5)}function Pn(e,t,n){if(n<=0||e.length<2)return[];let r=Zn(e,t==="horizontal"?"y":"x"),i=[];return r.forEach(o=>{let s=[...o].sort((c,a)=>t==="horizontal"?c.rect.left-a.rect.left:c.rect.top-a.rect.top);for(let c=0;c<s.length-1;c+=1){let a=s[c],u=s[c+1];if(t==="horizontal"){let d=a.rect.left+a.rect.width+a.margin.marginRight,l=u.rect.left-u.margin.marginLeft-d,g=Math.min(n,l);i.push({anchorElement:a.element,leftOffset:d+Math.max(0,(l-g)/2)-a.rect.left,topOffset:Math.max(a.rect.top,u.rect.top)-a.rect.top,width:g,height:Math.min(a.rect.top+a.rect.height,u.rect.top+u.rect.height)-Math.max(a.rect.top,u.rect.top)})}else{let d=a.rect.top+a.rect.height+a.margin.marginBottom,l=u.rect.top-u.margin.marginTop-d,g=Math.min(n,l);i.push({anchorElement:a.element,leftOffset:Math.max(a.rect.left,u.rect.left)-a.rect.left,topOffset:d+Math.max(0,(l-g)/2)-a.rect.top,width:Math.min(a.rect.left+a.rect.width,u.rect.left+u.rect.width)-Math.max(a.rect.left,u.rect.left),height:g})}}}),i}function kn(e,t,n){if(n<=0||e.length<2)return[];let r=Zn(e,t==="horizontal"?"y":"x"),i=[];return r.forEach(o=>{let s=[...o].sort((c,a)=>t==="horizontal"?c.rect.left-a.rect.left:c.rect.top-a.rect.top);for(let c=0;c<s.length-1;c+=1){let a=s[c],u=s[c+1];if(t==="horizontal"){let d=a.rect.left+a.rect.width+a.margin.marginRight,l=u.rect.left-u.margin.marginLeft-d,g=Math.min(n,l);i.push({kind:"gap",left:d+Math.max(0,(l-g)/2),top:Math.max(a.rect.top,u.rect.top),width:g,height:Math.min(a.rect.top+a.rect.height,u.rect.top+u.rect.height)-Math.max(a.rect.top,u.rect.top)})}else{let d=a.rect.top+a.rect.height+a.margin.marginBottom,l=u.rect.top-u.margin.marginTop-d,g=Math.min(n,l);i.push({kind:"gap",left:Math.max(a.rect.left,u.rect.left),top:d+Math.max(0,(l-g)/2),width:Math.min(a.rect.left+a.rect.width,u.rect.left+u.rect.width)-Math.max(a.rect.left,u.rect.left),height:g})}}}),i}function Zn(e,t){let n=[...e].sort((i,o)=>t==="x"?i.rect.left-o.rect.left||i.rect.top-o.rect.top:i.rect.top-o.rect.top||i.rect.left-o.rect.left),r=[];return n.forEach(i=>{let o=r.find(s=>s.some(c=>Wo(c.rect,i.rect,t)>.5));o?o.push(i):r.push([i])}),r}function Wo(e,t,n){return n==="x"?Math.min(e.left+e.width,t.left+t.width)-Math.max(e.left,t.left):Math.min(e.top+e.height,t.top+t.height)-Math.max(e.top,t.top)}var lt=new WeakMap;function ft(e,t){let n=lt.get(e);if(!n){let i=e.style.getPropertyValue("anchor-name"),o=e.ownerDocument?.defaultView?.getComputedStyle(e).getPropertyValue?.("anchor-name").trim()??"";n={names:new Set,originalValue:i,originalPriority:e.style.getPropertyPriority("anchor-name"),computedValue:o==="none"?"":o},lt.set(e,n)}n.names.add(t),Mn(e,n);let r=!1;return()=>{if(r)return;r=!0;let i=lt.get(e);if(i){if(i.names.delete(t),i.names.size>0){Mn(e,i);return}i.originalValue?e.style.setProperty("anchor-name",i.originalValue,i.originalPriority):e.style.removeProperty("anchor-name"),lt.delete(e)}}}function Mn(e,t){let n=t.originalValue.trim()||t.computedValue;e.style.setProperty("anchor-name",[...n?[n]:[],...t.names].join(", "),"important")}var Ho=["e","se","s"],Go=0;function jo(e){let t=e,i=(t?.getAttribute?.("data-vcp-designer-resize-handle")?t:t?.closest?.("[data-vcp-designer-resize-handle]"))?.getAttribute?.("data-vcp-designer-resize-handle");return i==="e"||i==="s"||i==="se"?i:void 0}function Yo(e,t,n,r){let i=++Go,o=`--vcp-designer-resize-target-${i}`,s=e.CSS;if(typeof s?.supports!="function"||!s.supports(`anchor-name: ${o}`)||!s.supports(`position-anchor: ${o}`)||!s.supports("left: anchor(left)")||!s.supports("top: anchor(top)"))return null;let c=e.document,a=c.head??c.documentElement,u=c.documentElement,d=()=>ge(c,t,n?.()??null),l=d();if(!l||!l.isConnected||typeof a?.appendChild!="function"||typeof u?.appendChild!="function")return null;let g="data-vcp-designer-resize-visual",f="data-vcp-designer-resize-handle",_=c.createElement("style");_.setAttribute("data-vcp-designer-resize-visual-style","true"),_.textContent=`
20
20
  [${f}] {
21
21
  position: fixed !important;
22
22
  position-anchor: ${o};
@@ -38,4 +38,4 @@ function te(e){return JSON.stringify([e.routeId,e.effectiveTemplateId??null])}fu
38
38
  [${f}="e"] { left: anchor(right); top: anchor(center); }
39
39
  [${f}="se"] { left: anchor(right); top: anchor(bottom); }
40
40
  [${f}="s"] { left: anchor(center); top: anchor(bottom); }
41
- `,a.appendChild(_);let C=Ho.map(A=>{let B=c.createElement("div");return B.setAttribute(f,A),B.setAttribute("aria-hidden","true"),u.appendChild(B),B}),x=null,v=null,P=()=>{x?.removeAttribute(g),v?.(),v=null,x=null},$=A=>{P(),x=A,v=ft(A,o),A.setAttribute(g,"true"),C.forEach(B=>B.style.removeProperty("display"))};$(l);let z=!1,I=null,L=()=>{if(!I||!l)return;let A=(B,q,m)=>{q?l.style.setProperty(B,q,m):l.style.removeProperty(B)};A("width",I.widthValue,I.widthPriority),A("height",I.heightValue,I.heightPriority)},se=(A,B,q)=>I?{version:1,phase:A,sessionId:I.sessionId,pointerId:I.pointerId,edge:I.edge,ref:t,startWidth:I.startWidth,startHeight:I.startHeight,width:B,height:q,baselineStyleDeclarations:[{property:"width",value:I.widthValue||null,...I.widthPriority==="important"?{priority:"important"}:{}},{property:"height",value:I.heightValue||null,...I.heightPriority==="important"?{priority:"important"}:{}}]}:null,re=()=>{if(!I)return null;let A=se("cancel",I.startWidth,I.startHeight),B=I.captureTarget,q=I.pointerId,m=I.currentX,S=I.currentY;return L(),I=null,B?.releasePointerCapture?.(q),A&&r?.({clientX:m,clientY:S,session:A}),A},Z=A=>{if(!I||!l?.isConnected||A.pointerId!==I.pointerId)return!1;I.currentX=Number(A.clientX),I.currentY=Number(A.clientY);let B=I.currentX-I.startX,q=I.currentY-I.startY,m=Math.max(1,Math.round(I.startWidth+B)),S=Math.max(1,Math.round(I.startHeight+q));return(I.edge==="e"||I.edge==="se")&&l.style.setProperty("width",`${m}px`,"important"),(I.edge==="s"||I.edge==="se")&&l.style.setProperty("height",`${S}px`,"important"),!0},ee=()=>{if(z)return;let A=d();A===l&&A?.isConnected||(re(),P(),l=A,l?.isConnected?$(l):C.forEach(B=>B.style.setProperty("display","none","important")))},oe=e.MutationObserver,ce=typeof oe=="function"?new oe(ee):null;return ce?.observe(c.documentElement,{attributeFilter:["data-vcp-edit-key"],attributes:!0,childList:!0,subtree:!0}),{begin(A,B){if(z||I||!l?.isConnected)return null;let q=l.getBoundingClientRect();return I={sessionId:`resize-${i}-${A.pointerId}`,pointerId:A.pointerId,edge:B,startX:Number(A.clientX),startY:Number(A.clientY),currentX:Number(A.clientX),currentY:Number(A.clientY),startWidth:q.width,startHeight:q.height,widthValue:l.style.getPropertyValue("width"),widthPriority:l.style.getPropertyPriority("width"),heightValue:l.style.getPropertyValue("height"),heightPriority:l.style.getPropertyPriority("height"),captureTarget:A.target},se("start",q.width,q.height)},update:Z,finish(A,B){if(!I||A.pointerId!==I.pointerId)return null;B==="commit"&&Z(A);let q=Math.max(1,Math.round(I.startWidth+Number(A.clientX)-I.startX)),m=Math.max(1,Math.round(I.startHeight+Number(A.clientY)-I.startY)),S=se(B,B==="commit"?q:I.startWidth,B==="commit"?m:I.startHeight),O=I.captureTarget,T=I.pointerId;return B==="cancel"&&L(),I=null,O?.releasePointerCapture?.(T),S},cleanup(){z||(z=!0,ce?.disconnect(),re(),P(),l=null,C.forEach(A=>A.remove()),_.remove())}}}function Bn(e){let t=e.kind;return t==="bridge-initialize-session"||t==="bridge-get-document"||t==="bridge-get-history-status"||t==="bridge-get-style-context"||t==="bridge-ensure-document-version"||t==="bridge-acknowledge-document-version"||t==="bridge-get-object-edit-context"||t==="bridge-get-class-name-source"||t==="bridge-get-source-tree"||t==="bridge-get-source-file"||t==="bridge-resolve-source-location"||t==="bridge-execute"||t==="bridge-get-operation-result"||t==="bridge-undo"||t==="bridge-redo"||t==="bridge-subscribe"||t==="bridge-unsubscribe"}function Xo(e){return e.kind==="update-text"||e.kind==="update-array-item"||e.kind==="set-class-name-source"||e.kind==="set-props"||e.kind==="apply-style-draft"}async function Jo({message:e,sendEvent:t,sendResponse:n,subscriptions:r,getCurrentDocument:i,setCurrentDocument:o,onBridgeRequestError:s,nextRouteReadySequence:c,windowLike:a}){let u=a.__VCP_SITE_EDIT__;if(!u){n({type:"response",ok:!1,error:"Site edit bridge is not ready in preview frame"});return}let d=()=>{if(a.__VCP_SITE_EDIT__!==u)throw new Error("SITE_EDIT_COMPOSITION_SESSION_MISMATCH: navigation changed while reading the document")};try{switch(e.kind){case"bridge-initialize-session":{let l=a.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__;if(l?.compositionKey&&ze(e.payload.composition)!==l.compositionKey&&(!l.composition||ze(e.payload.composition)!==te(l.composition)))throw new Error("SITE_EDIT_COMPOSITION_SESSION_MISMATCH: navigation changed");let g,f=!1;if(l?.composition)try{let _=await u.getDocument(e.payload.composition),C=await u.getHistoryStatus(e.payload.composition);g={..._,composition:_.data.composition,data:{document:_.data,historyStatus:C.data}},f=!0}catch(_){if(!Ne(_,"").includes("SITE_EDIT_COMPOSITION_SESSION_REQUIRED"))throw _}g??=await u.initializeSession({composition:e.payload.composition}),d(),o?.(g.data.document),f||er(a,{composition:g.data.document.composition,editEngineVersion:"unknown",sequence:c(),version:g.data.document.version}),n({type:"response",ok:!0,result:g});return}case"bridge-get-document":{let l=await u.getDocument(e.payload.composition);d(),o?.(l.data),n({type:"response",ok:!0,result:l});return}case"bridge-get-history-status":n({type:"response",ok:!0,result:await u.getHistoryStatus(e.payload.composition)});return;case"bridge-get-style-context":n({type:"response",ok:!0,result:await u.getStyleContext(e.payload.composition)});return;case"bridge-ensure-document-version":{if(!Number.isFinite(Number(e.payload.minVersion))){n({type:"response",ok:!1,error:"Invalid document version"});return}let l=u.ensureDocumentVersion?await u.ensureDocumentVersion(e.payload.composition,Number(e.payload.minVersion)):await u.getDocument(e.payload.composition);d(),o?.(l.data),n({type:"response",ok:!0,result:l});return}case"bridge-acknowledge-document-version":{if(!Number.isFinite(Number(e.payload.version))){n({type:"response",ok:!1,error:"Invalid document version"});return}let l=u.acknowledgeDocumentVersion?await u.acknowledgeDocumentVersion(e.payload.composition,Number(e.payload.version)):await u.getDocument(e.payload.composition);d(),o?.(l.data),n({type:"response",ok:!0,result:l});return}case"bridge-get-object-edit-context":n({type:"response",ok:!0,result:await u.getObjectEditContext(e.payload.key,e.payload.composition,e.payload.selectionRef)});return;case"bridge-get-class-name-source":{let l=await u.getClassNameSource(e.payload.key,e.payload.composition);n({type:"response",ok:!0,result:Lo(l,e.payload.key,a.document,i?.()??null)});return}case"bridge-get-source-tree":n({type:"response",ok:!0,result:await u.getSourceTree(e.payload.composition)});return;case"bridge-get-source-file":n({type:"response",ok:!0,result:await u.getSourceFile({path:e.payload.path,composition:e.payload.composition})});return;case"bridge-resolve-source-location":n({type:"response",ok:!0,result:await u.resolveSourceLocation({key:e.payload.key,composition:e.payload.composition})});return;case"bridge-get-operation-result":{n({type:"response",ok:!0,result:await u.getOperationResult?.(e.payload.request)??null});return}case"bridge-execute":{let l=await u.execute(e.payload.request);if(n({type:"response",ok:!0,result:l}),l.ok&&u.acknowledgeDocumentVersion&&Xo(e.payload.request))try{let g=await u.acknowledgeDocumentVersion(e.payload.composition,l.data.resultVersion);d(),o?.(g.data)}catch(g){a.__VCP_SITE_EDIT__===u&&s?.(g,e)}return}case"bridge-undo":n({type:"response",ok:!0,result:await u.undo(e.payload.composition)});return;case"bridge-redo":n({type:"response",ok:!0,result:await u.redo(e.payload.composition)});return;case"bridge-subscribe":{let l=e.payload.subscriptionId;r.get(l)?.();let g=u.subscribe(f=>{t({kind:"bridge-event",payload:{composition:f.composition,event:f,subscriptionId:l}})});r.set(l,g),n({type:"response",ok:!0,result:{subscribed:!0}});return}case"bridge-unsubscribe":{let l=e.payload.subscriptionId;r.get(l)?.(),r.delete(l),n({type:"response",ok:!0,result:{unsubscribed:!0}});return}}}catch(l){a.__VCP_SITE_EDIT__===u&&s?.(l,e),n({type:"response",ok:!1,error:ci(l)})}}function Lo(e,t,n,r){if(!e.ok)return e;let i=ge(n,{key:t},r),o=i?Qo(i):null;return o?{...e,data:{...e.data,computedStyle:{...e.data.computedStyle??{},...o}}}:e}function Qo(e){let t=e.ownerDocument.defaultView;if(!t)return null;let n=t.getComputedStyle(e);return{color:n.color,backgroundColor:n.backgroundColor,borderColor:n.borderColor}}function Zo(e,t,n=()=>e.location.pathname){let r=e.history.pushState,i=e.history.replaceState,o=n(),s=()=>{let u=n();u!==o&&(o=u,t())},c=()=>s(),a=()=>s();return e.history.pushState=function(...d){let l=r.apply(this,d);return s(),l},e.history.replaceState=function(...d){let l=i.apply(this,d);return s(),l},e.addEventListener("popstate",c),e.addEventListener("hashchange",a),()=>{e.history.pushState=r,e.history.replaceState=i,e.removeEventListener("popstate",c),e.removeEventListener("hashchange",a)}}var Fn=5e3,wn="SITE_EDIT_BRIDGE_HEALTH_TIMEOUT";async function ei(e,t){let n=typeof AbortController=="function"?new AbortController:null,r,i=new Promise((o,s)=>{r=e.setTimeout(()=>{n?.abort();let c=new Error(`${wn}: preview health check did not respond within ${Fn}ms`);c.code=wn,s(c)},Fn)});try{return await Promise.race([(async()=>{let o=await e.fetch(t,{cache:"no-store",...n?{signal:n.signal}:{}}),s=await o.json();return{response:o,health:s}})(),i])}finally{e.clearTimeout(r)}}var ti=/^[A-Z][A-Z0-9_]{2,63}$/;function Ft(e){let t=e&&typeof e=="object"&&"code"in e?String(e.code??""):"";if(ti.test(t))return{failureCode:t};let n=e instanceof Error?e.message:"",r=/^([A-Z][A-Z0-9_]{2,63}):/.exec(n)?.[1];return r?{failureCode:r}:{}}function ni(e){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(()=>requestAnimationFrame(e));return}setTimeout(e,0)}function mt(e,t){return typeof e.requestAnimationFrame=="function"?e.requestAnimationFrame(t):e.setTimeout(t,0)}function ht(e,t){if(typeof e.cancelAnimationFrame=="function"){e.cancelAnimationFrame(t);return}e.clearTimeout(t)}function er(e,t){e.dispatchEvent(new CustomEvent(Kt,{detail:t}))}function ri(e,t){e.dispatchEvent(new CustomEvent(zt,{detail:t}))}function oi(e){return e?e.getConnectionState?e.getConnectionState()==="open":!0:!1}function ii(e,t){return te(e.composition)===t}function si(e){return Ne(e,"").includes(Xn)}function Ne(e,t){return e instanceof Error&&e.message?e.message:typeof e=="string"&&e?e:t}function tr(e){let t=Ne(e,"");return/websocket|readyState|not open|disconnected|bridge request timed out|network|econnreset|broken pipe|socket closed/i.test(t)}function ci(e){let t=Ne(e,"Site edit bridge request failed");return/bridge request timed out/i.test(t)?"Site edit bridge request timed out":tr(t)?"Site edit bridge disconnected":t}function nr(e){if(!e||typeof e!="object"||!("code"in e))return null;let t=e.code;return typeof t=="string"&&t.length>0?t:null}function ai(e){let t=nr(e);if(t)return t===xt||t===_t;let n=Ne(e,"");return n.includes(xt)||n.includes(_t)}function Ve(e){if(Ne(e,"").includes("SITE_EDIT_RUNTIME_RELOAD_REQUIRED"))return!0;if(nr(e))return!1;let t=Ne(e,"");return/\b(?:bridge(?: session)?|websocket)\s+authentication\b|\bbridge\s+(?:session\s+)?key\b/i.test(t)}function rr(e){let t=e.trim();return!t||t==="/"?"":(t.startsWith("/")?t:`/${t}`).replace(/\/+$/,"")}function Gt(e){return Co.has(ir(e))}function ui(e){return Ro.has(ir(e))}function or(e){return e.operationSummary?{canUpdateText:e.operationSummary.canUpdateText,canInsertChild:e.operationSummary.canInsertChild,canMove:e.operationSummary.canMove,canRemove:e.operationSummary.canRemove}:e.fallbackMode!=="preview"?{canUpdateText:!1,canInsertChild:!1,canMove:!1,canRemove:!1}:{canUpdateText:ui(e.tagName),canInsertChild:Gt(e.tagName),canMove:!1,canRemove:!1}}function ir(e){return e?.trim().toLowerCase()??""}function qn(e,t){return e.key!==t.key||e.instanceIndex!==t.instanceIndex||e.instanceCount!==t.instanceCount?!1:typeof e.textSegmentIndex=="number"&&typeof t.textSegmentIndex=="number"?e.textSegmentIndex===t.textSegmentIndex:!0}function li(e,t,n){let r=ge(e,t.ref,n);if(!r)return!1;if(typeof t.ref.textSegmentIndex=="number"){let i=di(r,t.ref.textSegmentIndex);return i?(i.nodeValue=t.initialText,!0):!1}return typeof t.initialHtml=="string"?(r.innerHTML=t.initialHtml,!0):(r.textContent=t.initialText,!0)}function di(e,t){let n=0;for(let r of Array.from(e.childNodes))if(!(!gt(r)||(r.textContent??"").trim().length===0)){if(n===t)return r;n+=1}return null}function pi(e,t,n,r,i){let o=Qe(e,t,n,r),s=Et(o);if(!s)return null;let c=s.getAttribute("data-vcp-edit-key")??"",a=me(e,s,r),u=i?.(a.key)??i?.(c);if(!or({operationSummary:u?.operationSummary,tagName:s.tagName,fallbackMode:"preview"}).canUpdateText)return null;let l=fi(e,t,n,s);if(l){let g=hi(s,l);if(g!==null)return{element:s,textNode:l,textSegmentIndex:g}}return It(s)?null:{element:s}}function fi(e,t,n,r){let i=mi(e,t,n);return!i||i.parentElement!==r?null:i}function mi(e,t,n){let r=e,o=r.caretPositionFromPoint?.(t,n)?.offsetNode??null;if(gt(o))return o;let c=r.caretRangeFromPoint?.(t,n)?.startContainer??null;return gt(c)?c:null}function hi(e,t){let n=0;for(let r of Array.from(e.childNodes))if(!(!gt(r)||(r.textContent??"").trim().length===0)){if(r===t)return n;n+=1}return null}function gt(e){return e?.nodeType===3}function gi(e,t,n){return(typeof e.elementsFromPoint=="function"?e.elementsFromPoint(t,n):[e.elementFromPoint(t,n)].filter(Boolean))[0]??null}function yi(e,t,n){let r=t;for(;r&&!r.getAttribute("data-site-block-id");)r=r.parentElement;if(!r)return null;let i=r.getAttribute("data-site-block-id")??"",o=r.getAttribute("data-vcp-edit-key")??"";return!i||!o?null:{blockId:i,blockIndex:bi(e,r),ref:yt(e,r,n),rect:ke(r.getBoundingClientRect()),targetIsSectionRoot:t===r}}function bi(e,t){let n=t.getAttribute("data-site-block-order"),r=n===null?Number.NaN:Number(n);return Number.isInteger(r)&&r>=0?r:Math.max(0,sr(e,null).findIndex(i=>i.element===t))}function sr(e,t){return Array.from(e.querySelectorAll("[data-site-block-id]")).filter(n=>{let r=n.parentElement;for(;r;){if(r.getAttribute("data-site-block-id"))return!1;r=r.parentElement}return!!(n.getAttribute("data-site-block-id")&&n.getAttribute("data-vcp-edit-key"))}).map(n=>({element:n,blockId:n.getAttribute("data-site-block-id")??"",ref:yt(e,n,t),rect:ke(n.getBoundingClientRect())})).filter(({rect:n})=>n.width>0&&n.height>0).sort((n,r)=>n.rect.top-r.rect.top||n.rect.left-r.rect.left)}function Ei(e,t,n,r){if(n?.pageComposition.status!=="supported")return null;let i=sr(e,n),o=i[0],s=i.at(-1);if(!o||!s)return null;let c=new Set(n.pageComposition.placements.map(f=>`${f.placementUnitKey}\0${f.relation}`)),a=f=>r?.(f)??n.entries.find(_=>_.key===f)??null,u=(f,_,C)=>{let x=a(f.ref.key)?.pageCompositionUnitKey;return!x||!c.has(`${x}\0${_}`)?null:{anchorBlockId:f.blockId,positionIndex:C,anchorRef:f.ref,placement:_,boundary:{top:_==="before"?f.rect.top:f.rect.top+f.rect.height,left:f.rect.left,width:f.rect.width}}},d=[],l=u(o,"before",0);l&&d.push(l),i.slice(1).forEach((f,_)=>{let C=_+1,x=u(f,"before",C);if(x){d.push(x);return}let v=i[_],P=v?u(v,"after",C):null;P&&d.push(P)});let g=u(s,"after",i.length);return g&&d.push(g),d.find(({boundary:f})=>t.clientX>=f.left&&t.clientX<=f.left+f.width&&Math.abs(t.clientY-f.top)<=Cn)??null}function Qe(e,t,n,r=null){let i=typeof e.elementsFromPoint=="function"?e.elementsFromPoint(t,n):[e.elementFromPoint(t,n)].filter(Boolean);for(let o of i){let s=Et(o),c=s?.getAttribute("data-vcp-edit-key")??"";if(s&&Yt(s,r,c))return s}return null}function Et(e){let t=e,n=null;for(;t;){let r=t.getAttribute("data-vcp-edit-key")??"";if(r){if(jt(t))return n??t;!Si(r)&&!n&&(n=t)}t=t.parentElement}return n}function jt(e){return e.getAttribute(Io)!==null}function Si(e){return Ii(e.split("::")[0]??"")}function Ii(e){if(!e)return!1;let t=Ci(e);return t===ut||t.startsWith(`${ut}/`)||t.includes(`/${ut}/`)||t.endsWith(`/${ut}`)}function Ci(e){let n=(e.split("?")[0]??e).replace(/\\/g,"/").replace(/^\.\//,""),r=[];for(let i of n.split("/"))if(!(!i||i===".")){if(i===".."){r.pop();continue}r.push(i)}return r.join("/")}function me(e,t,n){let r=t.getAttribute("data-vcp-edit-key")??"",i=ar(lr(Array.from(e.querySelectorAll(`[data-vcp-edit-key="${hr(r)}"]`))),n,r);if(i.length<=1)return{key:Vn(n,r,0)};let o=i.indexOf(t);return o>=0?{key:Vn(n,r,o),instanceIndex:o,instanceCount:i.length}:{key:r}}function yt(e,t,n){return me(e,t,n)}function ge(e,t,n){let r=Ze(t.key)??t.key,i=ar(lr(Array.from(e.querySelectorAll(`[data-vcp-edit-key="${hr(r)}"]`))),n,t.key);if(i.length===0)return null;let o=typeof t.instanceIndex=="number"&&t.instanceIndex>=0&&t.instanceIndex<i.length?t.instanceIndex:null,s=(Ze(t.key)??t.key)!==t.key;if(o!==null&&!s)return i[o]??null;let c=Ri(n,t.key);return c!==null&&c>=0&&c<i.length?i[c]??null:o!==null?i[o]??null:i[0]??null}function Vn(e,t,n){return cr(e,t)[n]?.key??t}function Ri(e,t){let n=Ze(t);if(!n)return null;let i=cr(e,n).findIndex(o=>o.key===t);return i>=0?i:null}function cr(e,t){return(e?.entries??[]).filter(n=>(Ze(n.key)??n.key)===t)}function ar(e,t,n){let r=ur(t,n);return r?e.filter(i=>i.tagName.toLowerCase()===r):e}function Yt(e,t,n){let r=ur(t,n);return!r||e.tagName.toLowerCase()===r}function ur(e,t){return null}var Ti=2,vi=4;function lr(e){return[...e].sort((t,n)=>{if(t===n)return 0;let r=typeof t.compareDocumentPosition=="function"?t.compareDocumentPosition(n):0;return(r&vi)!==0?-1:(r&Ti)!==0?1:0})}function Ze(e){if(typeof e!="string"||e.length===0)return e??null;let t=e;for(;;){let n=t.lastIndexOf(Dn);if(n<0)break;let r=Number(t.slice(n+Dn.length));if(!Number.isInteger(r)||r<0)return e;t=t.slice(0,n)}return t}function St(e){let n=e.ownerDocument?.defaultView?.getComputedStyle(e);return{...Xt(n),paddingTop:pe(n?.paddingTop),paddingRight:pe(n?.paddingRight),paddingBottom:pe(n?.paddingBottom),paddingLeft:pe(n?.paddingLeft),borderTopWidth:pe(n?.borderTopWidth),borderRightWidth:pe(n?.borderRightWidth),borderBottomWidth:pe(n?.borderBottomWidth),borderLeftWidth:pe(n?.borderLeftWidth),columnGap:pe(n?.columnGap),rowGap:pe(n?.rowGap)}}function Xt(e){return{marginTop:pe(e?.marginTop,!0),marginRight:pe(e?.marginRight,!0),marginBottom:pe(e?.marginBottom,!0),marginLeft:pe(e?.marginLeft,!0)}}function pe(e,t=!1){let n=Number.parseFloat(e??"");return Number.isFinite(n)?t?n:Math.max(0,n):0}function Jt(e){let t=e.ownerDocument?.defaultView;return Array.from(e.children).filter(n=>typeof n.getBoundingClientRect=="function").map(n=>({rect:ke(n.getBoundingClientRect()),margin:Xt(t?.getComputedStyle(n))})).filter(({rect:n})=>n.width>0&&n.height>0)}function _i(e){return Array.from(e.children).filter(t=>typeof t.getBoundingClientRect=="function").map(t=>ke(t.getBoundingClientRect())).filter(t=>t.width>0&&t.height>0)}var Kn=new WeakMap,zn=0;function Je(e){let t=Kn.get(e);if(t)return t;zn+=1;let n=`runtime-node-${zn}`;return Kn.set(e,n),n}function dr(e,t,n){let r=n??e.ownerDocument?.defaultView,i=e.ownerDocument?.defaultView?.getComputedStyle(e),o=ke(t),s=X(r?.scrollX),c=X(r?.scrollY),a=i?.position||"static";return{version:kt,runtimeNodeId:Je(e),rect:{viewport:o,document:{top:o.top+c,left:o.left+s,width:o.width,height:o.height}},layout:{position:a,transform:i?.transform||"none",containingBlock:Ai(e,a)},scrollContext:{scrollX:s,scrollY:c,viewportWidth:X(r?.innerWidth),viewportHeight:X(r?.innerHeight),scrollContainers:xi(e)}}}function xi(e){let t=e.ownerDocument,n=t?.defaultView,r=[],i=e.parentElement;for(;i;){if(i!==t?.body&&i!==t?.documentElement){let o=n?.getComputedStyle(i),s=o?.overflowX||o?.overflow||"visible",c=o?.overflowY||o?.overflow||"visible",a=X(i.scrollLeft),u=X(i.scrollTop),d=a!==0||$n(s)&&X(i.scrollWidth)>X(i.clientWidth),l=u!==0||$n(c)&&X(i.scrollHeight)>X(i.clientHeight);(d||l)&&r.push({runtimeNodeId:Je(i),scrollLeft:a,scrollTop:u})}i=i.parentElement}return r}function $n(e){return["auto","scroll","overlay","hidden"].includes(e)}function Ai(e,t){if(t==="fixed"){let r=Un(e.parentElement,!0);return r?{kind:"element",runtimeNodeId:Je(r)}:{kind:"viewport"}}if(t==="absolute"){let r=e.offsetParent,i=Ni(r)??Un(e.parentElement,!1);return i?{kind:"element",runtimeNodeId:Je(i)}:{kind:"document"}}let n=e.parentElement;return n?{kind:"element",runtimeNodeId:Je(n)}:{kind:"document"}}function Un(e,t){let n=e;for(;n;){let r=n.ownerDocument?.defaultView?.getComputedStyle(n);if(!!(r?.transform&&r.transform!=="none")||!!(r?.perspective&&r.perspective!=="none")||!!(r?.filter&&r.filter!=="none")||(r?.willChange??"").split(",").some(o=>["transform","perspective","filter"].includes(o.trim()))||!t&&(r?.position||"static")!=="static")return n;n=n.parentElement}return null}function Ni(e){return e&&typeof e.getBoundingClientRect=="function"?e:null}function Re(e,t,n,r="full",i,o="full",s=null){let c=e.getBoundingClientRect(),a=n?.(t.key)??null,u=e.tagName.toLowerCase(),d=o==="full",l=d?et(e):void 0,g=r==="full"?{textPreview:e.textContent?.trim().slice(0,80),dataset:Pi(e),attributes:Object.fromEntries(e.getAttributeNames().map(I=>[I,e.getAttribute(I)??""]))}:{},f=or({operationSummary:a?.operationSummary,tagName:u,fallbackMode:"preview"}),_=jt(e),C=!0,x=a!==null&&Wt(a),v=x?null:Ui(e),P=x?a.parentKey:v?s&&Ze(t.key)?me(e.ownerDocument,v,s).key:v.getAttribute("data-vcp-edit-key"):null,$=d?Jt(e):void 0,z=d?dr(e,c,i):void 0;return{ref:t,key:t.key,detailLevel:r,tagName:u,...a?{sourceKind:"jsx"}:{},...P?{parentKey:P}:{},...a?.pageCompositionUnitKey?{pageCompositionUnitKey:a.pageCompositionUnitKey}:{},...g,runtimeFlags:{selectable:!0,movable:f.canMove,removable:f.canRemove,textEditable:f.canUpdateText,container:_?!1:f.canInsertChild||C&&Gt(u)||!!It(e)},...z?{layoutSnapshot:z}:{},...l?{layout:l}:{},rect:{top:c.top,left:c.left,width:c.width,height:c.height},...$?{childBoxes:$,childRects:$.map(({rect:I})=>I)}:{},...d?{spacing:St(e)}:{}}}function Di(e,t){return{...e,rect:{...t.layoutSnapshot.rect.viewport},layoutSnapshot:t.layoutSnapshot,...t.layout?{layout:t.layout}:{},...t.childBoxes?{childBoxes:t.childBoxes,childRects:t.childBoxes.map(({rect:n})=>n)}:t.childRects?{childRects:t.childRects}:{},...t.spacing?{spacing:t.spacing}:{}}}function Pi(e){let t=Object.fromEntries(Object.entries(e.dataset).map(([r,i])=>[r,i??""])),n=e;for(;n;){for(let r of["cmsCollection","cmsRecord","cmsField","cmsMediaIndex"]){let i=n.dataset[r];t[r]===void 0&&i!==void 0&&(t[r]=i)}n=n.parentElement}return t}function Wn(e,t,n,r){let i=e.getBoundingClientRect(),o=dr(e,i,n);if(r==="light")return{ref:t,layoutSnapshot:o};if(r==="child-rects")return{ref:t,layoutSnapshot:o,childRects:_i(e)};let s=Jt(e);return{ref:t,layoutSnapshot:o,childBoxes:s,childRects:s.map(({rect:c})=>c),layout:et(e),spacing:St(e)}}function Hn(e){let t=e.layout?.display??"",n=e.spacing;return["flex","inline-flex","grid","inline-grid"].includes(t)&&!!(n&&(n.columnGap>0||n.rowGap>0)&&(e.childRects?.length??0)>=2)}function Oi(e,t,n,r,i){let o=t,s=Wn(o,n,e,"detailed"),c=Hn(s),a=null,u=null,d="mutation",l=Ke(e),g=l,f=!1,_=!1,C=({reason:ee,sourceEventAt:oe,forceEmit:ce=!1,includeDetailedGeometry:A=!1})=>{(a===null||(ee==="scroll"?0:1)>=(d==="scroll"?0:1))&&(d=ee,l=oe),f=f||ce,_=_||A,a===null&&(a=mt(e,x))},x=()=>{let ee=Ke(e);a=null;let oe=d,ce=l,A=f,B=_;f=!1,_=!1;let q=ge(e.document,n,r?.()??null);if(!q)return;q!==o&&(L?.unobserve(o),o=q,L?.observe(o),B=!0);let m=B?"detailed":c?"child-rects":"light",S=Wn(o,n,e,m),O=S.layoutSnapshot.rect.viewport;O.width<=0||O.height<=0||!A&&!ki(s,S)||(s=S,m==="detailed"&&(c=Hn(S)),i(oe,S,{sourceEventAt:ce,captureStartedAt:ee,capturedAt:Ke(e)}))},v=()=>{u!==null&&(e.clearTimeout(u),u=null)},P=()=>{v(),C({reason:"resize",sourceEventAt:Ke(e),includeDetailedGeometry:!0})},$=()=>{v(),C({reason:"mutation",sourceEventAt:Ke(e),includeDetailedGeometry:!0})},z=()=>{g=Ke(e),C({reason:"scroll",sourceEventAt:g}),v(),u=e.setTimeout(()=>{u=null,C({reason:"scroll",sourceEventAt:g,forceEmit:!0,includeDetailedGeometry:!0})},go)},I=e.ResizeObserver,L=typeof I=="function"?new I(P):null;L?.observe(o);let se=e.MutationObserver,re=typeof se=="function"?new se($):null;re?.observe(e.document.documentElement,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.addEventListener("resize",P,{passive:!0}),e.addEventListener("scroll",z,{passive:!0});let Z=e.visualViewport;return Z?.addEventListener?.("resize",P,{passive:!0}),Z?.addEventListener?.("scroll",z,{passive:!0}),e.document.addEventListener("scroll",z,{capture:!0,passive:!0}),e.document.addEventListener("load",$,!0),{initialSnapshot:s,cleanup:()=>{a!==null&&(ht(e,a),a=null),v(),L?.disconnect(),re?.disconnect(),e.removeEventListener("resize",P),e.removeEventListener("scroll",z),Z?.removeEventListener?.("resize",P),Z?.removeEventListener?.("scroll",z),e.document.removeEventListener("scroll",z,!0),e.document.removeEventListener("load",$,!0)}}}function Ke(e){let t=e.performance;return t&&Number.isFinite(t.timeOrigin)&&typeof t.now=="function"?t.timeOrigin+t.now():Date.now()}function ki(e,t){return Mi(e.layoutSnapshot,t.layoutSnapshot)||t.childBoxes!==void 0&&Fi(e.childBoxes,t.childBoxes)||t.childRects!==void 0&&wi(e.childRects,t.childRects)||t.layout!==void 0&&$t(e.layout,t.layout)||t.spacing!==void 0&&$t(e.spacing,t.spacing)}function Mi(e,t){return!e||!t?e!==t:e.version!==t.version||e.runtimeNodeId!==t.runtimeNodeId||bt(e.rect.viewport,t.rect.viewport)||bt(e.rect.document,t.rect.document)||e.layout.position!==t.layout.position||e.layout.transform!==t.layout.transform||e.layout.containingBlock.kind!==t.layout.containingBlock.kind||e.layout.containingBlock.kind==="element"&&t.layout.containingBlock.kind==="element"&&e.layout.containingBlock.runtimeNodeId!==t.layout.containingBlock.runtimeNodeId||e.scrollContext.scrollX!==t.scrollContext.scrollX||e.scrollContext.scrollY!==t.scrollContext.scrollY||e.scrollContext.viewportWidth!==t.scrollContext.viewportWidth||e.scrollContext.viewportHeight!==t.scrollContext.viewportHeight||Bi(e.scrollContext.scrollContainers,t.scrollContext.scrollContainers)}function Bi(e,t){return e.length!==t.length||e.some((n,r)=>{let i=t[r];return!i||n.runtimeNodeId!==i.runtimeNodeId||n.scrollLeft!==i.scrollLeft||n.scrollTop!==i.scrollTop})}function Fi(e,t){let n=e??[],r=t??[];return n.length!==r.length||n.some((i,o)=>{let s=r[o];return!s||bt(i.rect,s.rect)||$t(i.margin,s.margin)})}function wi(e,t){let n=e??[],r=t??[];return n.length!==r.length||n.some((i,o)=>bt(i,r[o]??i))}function $t(e,t){let n=e??{},r=t??{},i=new Set([...Object.keys(n),...Object.keys(r)]);return Array.from(i).some(o=>n[o]!==r[o])}function ke(e){return{top:e.top,left:e.left,width:e.width,height:e.height}}function bt(e,t){return Math.abs(e.top-t.top)>.5||Math.abs(e.left-t.left)>.5||Math.abs(e.width-t.width)>.5||Math.abs(e.height-t.height)>.5}function qi(e,t,n,r,i,o,s){let c=e.document,a=Qe(c,t,n,o);if(!a)return{anchorHit:null,targetParentHit:null,relation:"none",rejectionReason:"no-editable-hit"};let u=i?ge(c,i,o):null;if(u&&Ut(a,u))return Oe(c,a,"self-or-descendant",o,s);if(r==="move"){if(!u)return Oe(c,a,"no-accepting-parent",o,s);let C=zi(c,a,u,o,s);if(!C)return Oe(c,a,"no-accepting-parent",o,s);let x=C.kind==="parent"?jn(C.targetParent,t,n):wt(C.child,C.targetParent,t,n,"nearest");return x?dt(c,C.child,C.targetParent,x,o,s):Oe(c,a,"no-accepting-parent",o,s)}let d=null,l=!1,g=a,f=a.parentElement;for(;f;){if(f.getAttribute("data-vcp-edit-key")){if(u&&Ut(f,u))return Oe(c,a,"self-or-descendant",o,s);let C=Gn(f,r,s);if(C==="accept"){d={child:g,targetParent:f};break}C==="blocked"&&(l=!0),g=f}f=f.parentElement}let _=Gn(a,r,s);if(_==="accept"){if(d){let C=wt(d.child,d.targetParent,t,n,"edge");if(C)return dt(c,d.child,d.targetParent,C,o,s)}return dt(c,a,a,jn(a,t,n),o,s)}if(d){let C=wt(d.child,d.targetParent,t,n,"nearest");return dt(c,d.child,d.targetParent,C??"after",o,s)}return _==="blocked"||l?Oe(c,a,"operation-boundary-blocked",o,s):Oe(c,a,"no-accepting-parent",o,s)}function Oe(e,t,n,r,i){return{anchorHit:Re(t,me(e,t,r),i,"summary",void 0,"full",r),targetParentHit:null,relation:"none",rejectionReason:n}}function dt(e,t,n,r,i,o){let s=Re(t,me(e,t,i),o,"summary",void 0,"full",i),c=Re(n,me(e,n,i),o,"summary",void 0,"full",i),a=et(n).indicatorOrientation,u=r==="append"||r==="prepend"?Vi(n.getBoundingClientRect(),a,r):Ki(t.getBoundingClientRect(),a,r);return{anchorHit:s,targetParentHit:c,relation:r,indicatorOrientation:a,indicatorBounds:u}}function Gn(e,t,n){if(jt(e))return"not-container";let r=e.getAttribute("data-vcp-edit-key")??"",i=n?.(r)??null;if(i)return i.operationSummary.canInsertChild===!0?"accept":It(e)?"blocked":"not-container";let o=e.tagName.toLowerCase();return Gt(o)?"accept":"not-container"}function wt(e,t,n,r,i){let o=et(t).indicatorOrientation,s=e.getBoundingClientRect(),c=o==="vertical"?s.width>0?(n-s.left)/s.width:.5:s.height>0?(r-s.top)/s.height:.5;return i==="edge"&&c>=.25&&c<=.75?null:c<.5?"before":"after"}function jn(e,t,n){let r=et(e).indicatorOrientation,i=e.getBoundingClientRect();return(r==="vertical"?i.width>0?(t-i.left)/i.width:.5:i.height>0?(n-i.top)/i.height:.5)<.5?"prepend":"append"}function et(e){let n=e.ownerDocument?.defaultView?.getComputedStyle(e),r=n?.display??"",i=n?.flexDirection,o=n?.gridAutoFlow,s="horizontal";return r==="flex"||r==="inline-flex"?s=(i??"row").startsWith("row")?"vertical":"horizontal":(r==="grid"||r==="inline-grid")&&(s=(o??"row").includes("column")?"vertical":"horizontal"),{display:r,...i?{flexDirection:i}:{},...o?{gridAutoFlow:o}:{},indicatorOrientation:s}}function Vi(e,t,n){if(t==="vertical")return{left:n==="prepend"?e.left:e.left+e.width-3,top:e.top,width:3,height:e.height};let r=n==="prepend"?e.top:e.top+e.height-3;return{left:e.left,top:r,width:e.width,height:3}}function Ki(e,t,n){if(t==="vertical")return{left:n==="before"?e.left:e.left+e.width-3,top:e.top,width:3,height:e.height};let r=n==="before"?e.top:e.top+e.height-3;return{left:e.left,top:r,width:e.width,height:3}}function Ut(e,t){let n=e;for(;n;){if(n===t)return!0;n=n.parentElement}return!1}function zi(e,t,n,r,i){return $i(e,t,n,r,i)}function $i(e,t,n,r,i){if(!r)return null;let o=x=>i?.(x)??r.entries.find(v=>v.key===x)??null,s=me(e,n,r),c=o(s.key);if(!c||!Wt(c)||!c.parentKey)return null;let a=c.parentKey;if(!o(a)?.operationSummary.canInsertChild)return null;let d=ge(e,{key:a},r);if(!d)return null;let l=t,g=null;for(;l;){if(l.getAttribute("data-vcp-edit-key")){let x=me(e,l,r),v=o(x.key);if(v){g=v;break}}l=l.parentElement}if(!g)return null;if(g.key===a)return{kind:"parent",child:d,targetParent:d};let f=g,_=new Set;for(;;){if(!Wt(f)||!f.parentKey)return null;if(f.parentKey===a)break;if(_.has(f.key))return null;_.add(f.key);let x=o(f.parentKey);if(!x)return null;f=x}if(f.key===c.key)return null;let C=ge(e,{key:f.key},r);return!C||C===n||Ut(C,n)?null:{kind:"sibling",child:C,targetParent:d}}function Wt(e){return Object.prototype.hasOwnProperty.call(e,"parentKey")}function Ui(e){let t=e.parentElement;for(;t;){if(t.getAttribute("data-vcp-edit-key"))return t;t=t.parentElement}return null}function It(e){for(let t of Array.from(e.childNodes)){if(typeof t.getAttribute!="function")continue;let n=t;if(n.getAttribute("data-vcp-edit-key"))return n;let r=It(n);if(r)return r}return null}function pt(e){let t=e.document.documentElement,n=e.document.body;return{scrollX:X(e.scrollX),scrollY:X(e.scrollY),scrollWidth:Math.max(X(t?.scrollWidth),X(n?.scrollWidth),X(e.innerWidth)),scrollHeight:Math.max(X(t?.scrollHeight),X(n?.scrollHeight),X(e.innerHeight)),viewportWidth:X(e.innerWidth),viewportHeight:X(e.innerHeight)}}function Wi(e,t){Object.entries(t.attributes??{}).forEach(([r,i])=>{if(i===null){e.removeAttribute(r);return}e.setAttribute(r,i)}),typeof t.className=="string"&&(e.className=t.className);let n=new Set(t.styleDeclarations?.map(r=>r.property)??[]);Object.entries(t.style??{}).forEach(([r,i])=>{if(n.has(r))return;let o=e.style,s=r.replace(/[A-Z]/g,c=>`-${c.toLowerCase()}`);if(i==null||i===""){o.removeProperty(s);return}o.setProperty(s,String(i))}),t.styleDeclarations?.forEach(r=>{let i=e.style,o=r.property.replace(/[A-Z]/g,c=>`-${c.toLowerCase()}`),s=r.value;if(s==null||s===""){i.removeProperty(o);return}i.setProperty(o,String(s),r.priority)})}var Hi=500,Xe=new Map;function Gi(e,t){return`${e}:${t.key}:${t.instanceIndex??""}`}function ji(e,t){if(Xe.size>=Hi){let n=Xe.keys().next().value;n&&Xe.delete(n)}Xe.set(e,t)}var Le=new Set;function Yi(e,t){let n=e.documentElement?.style,r=new Set;for(let[i,o]of Object.entries(t.variables??{}))i.startsWith("--")&&(r.add(i),n?.setProperty(i,o));for(let i of Le)r.has(i)||n?.removeProperty(i);Le.clear();for(let i of r)Le.add(i);Zi(e,t.stylesheets??[])}function Xi(e){let t=e.documentElement?.style;for(let n of Le)t?.removeProperty(n);Le.clear();for(let n of mr(e))n.remove()}function Ji(e,t){let n=Array.from(new Set(t.filter(s=>typeof s=="string"&&s.startsWith("--"))));if(n.length===0)return{};let r=e.documentElement,i=r?e.defaultView?.getComputedStyle(r):null,o={};for(let s of n){let c=pr(i,s);c&&(o[s]=c)}return o}function pr(e,t,n=new Set){if(!e||n.has(t))return null;n.add(t);let r=e.getPropertyValue(t).trim();return fr(e,r,n)}function fr(e,t,n){if(!t)return null;let r=Li(t);if(!r)return t;let i=pr(e,r.name,n);return i||(r.fallback?fr(e,r.fallback,n)??r.fallback:null)}function Li(e){let t=e.trim();if(!t.startsWith("var(")||!t.endsWith(")"))return null;let n=t.slice(4,-1).trim(),r=Qi(n),i=r>=0?n.slice(0,r).trim():n;if(!i.startsWith("--"))return null;let o=r>=0?n.slice(r+1).trim():null;return{name:i,fallback:o||null}}function Qi(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e[n];if(r==="("){t+=1;continue}if(r===")"){t=Math.max(0,t-1);continue}if(r===","&&t===0)return n}return-1}function Zi(e,t){let n=new Set(t.filter(o=>typeof o=="string"&&o.length>0)),r=new Map;for(let o of mr(e)){let s=o.getAttribute("href")??"";if(!n.has(s)||r.has(s)){o.remove();continue}r.set(s,o)}let i=e.head;if(i)for(let o of n){if(r.has(o))continue;let s=e.createElement("link");s.setAttribute("rel","stylesheet"),s.setAttribute(Ln,"true"),s.setAttribute("href",o),i.appendChild(s)}}function mr(e){return Array.from(e.querySelectorAll(`link[${Ln}]`))}function es(e,t,n,r,i={}){let o=i.textNode?ts(e.document,i.textNode):null;if(i.textNode&&!o)throw new Error("Failed to prepare text segment editor");let s=o?.element??t,c=s.textContent??"",a=o?void 0:t.innerHTML,u=ns(s),d=!1,l=()=>{d=!0,e.document.removeEventListener("pointerdown",f,!0),s.removeEventListener("keydown",_),s.removeEventListener("blur",C),s.removeEventListener("input",x),os(s,u)},g=v=>{if(d)return;d=!0;let P=s.textContent??"";if(l(),v==="cancel"){o?.restore(c),o||(t.textContent=c),r({kind:"text-edit-cancel",payload:{ref:n}});return}if(o?.restore(P),v==="commit"&&P!==c){i.onCommitSnapshot?.({ref:n,initialText:c,...a!==void 0?{initialHtml:a}:{}}),r({kind:"text-edit-commit",payload:{ref:n,value:P}});return}r({kind:"text-edit-exit",payload:{ref:n}})};function f(v){let P=v.target;if(!(P&&s.contains(P))){if(o&&P===t){v.preventDefault(),Vt(s),Yn(s,e.document,!0);return}g("commit")}}function _(v){if(v.key==="Escape"){v.preventDefault(),g("cancel");return}v.key==="Enter"&&(v.metaKey||v.ctrlKey)&&(v.preventDefault(),g("commit"))}function C(v){if(o&&v.relatedTarget===t){e.queueMicrotask(()=>{if(d)return;let P=e.document.activeElement;P===t?Vt(s):P!==s&&g("commit")});return}g("commit")}function x(){r({kind:"text-edit-input",payload:{ref:n,hit:Re(t,n,void 0,"full")}})}return rs(s),e.document.addEventListener("pointerdown",f,!0),s.addEventListener("keydown",_),s.addEventListener("blur",C),s.addEventListener("input",x),Vt(s),Yn(s,e.document),l}function ts(e,t){let n=t.parentNode;if(!n)return null;let r=e.createElement("span");return r.setAttribute("data-vcp-text-segment-editor","true"),r.textContent=t.textContent??"",n.replaceChild(r,t),{element:r,restore(i){t.nodeValue=i,r.parentNode&&r.parentNode.replaceChild(t,r)}}}function ns(e){return{contentEditable:e.getAttribute("contenteditable"),spellcheck:e.getAttribute("spellcheck"),marker:e.getAttribute("data-vcp-edit-text-editing"),cursor:e.style.cursor,userSelect:e.style.userSelect}}function rs(e){is(e.ownerDocument),e.setAttribute("contenteditable","plaintext-only"),e.setAttribute("spellcheck","false"),e.setAttribute("data-vcp-edit-text-editing","true"),e.style.cursor="text",e.style.userSelect="text"}function os(e,t){qt(e,"contenteditable",t.contentEditable),qt(e,"spellcheck",t.spellcheck),qt(e,"data-vcp-edit-text-editing",t.marker),e.style.cursor=t.cursor,e.style.userSelect=t.userSelect}function is(e){if(e.getElementById("vcp-text-edit-base-style"))return;let t=e.createElement("style");t.id="vcp-text-edit-base-style",t.textContent='[data-vcp-edit-text-editing="true"]{outline:0!important;outline-offset:0!important;}',e.head.appendChild(t)}function qt(e,t,n){if(n===null){e.removeAttribute(t);return}e.setAttribute(t,n)}function ss(e){let t=[e.documentElement,e.body].filter(r=>!!r?.style),n=t.map(r=>({element:r,userSelect:r.style.userSelect}));for(let r of t)r.style.userSelect="none";return()=>{for(let r of n)r.element.style.userSelect=r.userSelect}}function Vt(e){try{e.focus({preventScroll:!0})}catch{e.focus()}}function Yn(e,t,n=!1){let r=t.createRange();r.selectNodeContents(e),n&&r.collapse(!1);let i=t.getSelection?.();i?.removeAllRanges(),i?.addRange(r)}function hr(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function X(e){let t=Number(e);return Number.isFinite(t)?t:0}export{wn as SITE_EDIT_BRIDGE_HEALTH_TIMEOUT,Xn as SITE_EDIT_COMPOSITION_RENDER_MISMATCH,zt as VCP_SITE_EDIT_BRIDGE_STATUS_EVENT,Kt as VCP_SITE_EDIT_ROUTE_READY_EVENT,vo as resolveBrowserCompositionSelector,Qn as resolveSiteEditRouteId,xo as resolveSiteEditWebSocketUrl,xs as startSiteEditAutoBootstrap,Mo as startSiteEditFrameRuntime,To as syncRuntimeSiteBlockIds};
41
+ `,a.appendChild(_);let C=Ho.map(A=>{let B=c.createElement("div");return B.setAttribute(f,A),B.setAttribute("aria-hidden","true"),u.appendChild(B),B}),x=null,v=null,O=()=>{x?.removeAttribute(g),v?.(),v=null,x=null},$=A=>{O(),x=A,v=ft(A,o),A.setAttribute(g,"true"),C.forEach(B=>B.style.removeProperty("display"))};$(l);let z=!1,I=null,L=()=>{if(!I||!l)return;let A=(B,q,m)=>{q?l.style.setProperty(B,q,m):l.style.removeProperty(B)};A("width",I.widthValue,I.widthPriority),A("height",I.heightValue,I.heightPriority)},se=(A,B,q)=>I?{version:1,phase:A,sessionId:I.sessionId,pointerId:I.pointerId,edge:I.edge,ref:t,startWidth:I.startWidth,startHeight:I.startHeight,width:B,height:q,baselineStyleDeclarations:[{property:"width",value:I.widthValue||null,...I.widthPriority==="important"?{priority:"important"}:{}},{property:"height",value:I.heightValue||null,...I.heightPriority==="important"?{priority:"important"}:{}}]}:null,re=()=>{if(!I)return null;let A=se("cancel",I.startWidth,I.startHeight),B=I.captureTarget,q=I.pointerId,m=I.currentX,S=I.currentY;return L(),I=null,B?.releasePointerCapture?.(q),A&&r?.({clientX:m,clientY:S,session:A}),A},Z=A=>{if(!I||!l?.isConnected||A.pointerId!==I.pointerId)return!1;I.currentX=Number(A.clientX),I.currentY=Number(A.clientY);let B=I.currentX-I.startX,q=I.currentY-I.startY,m=Math.max(1,Math.round(I.startWidth+B)),S=Math.max(1,Math.round(I.startHeight+q));return(I.edge==="e"||I.edge==="se")&&l.style.setProperty("width",`${m}px`,"important"),(I.edge==="s"||I.edge==="se")&&l.style.setProperty("height",`${S}px`,"important"),!0},ee=()=>{if(z)return;let A=d();A===l&&A?.isConnected||(re(),O(),l=A,l?.isConnected?$(l):C.forEach(B=>B.style.setProperty("display","none","important")))},oe=e.MutationObserver,ce=typeof oe=="function"?new oe(ee):null;return ce?.observe(c.documentElement,{attributeFilter:["data-vcp-edit-key"],attributes:!0,childList:!0,subtree:!0}),{begin(A,B){if(z||I||!l?.isConnected)return null;let q=l.getBoundingClientRect();return I={sessionId:`resize-${i}-${A.pointerId}`,pointerId:A.pointerId,edge:B,startX:Number(A.clientX),startY:Number(A.clientY),currentX:Number(A.clientX),currentY:Number(A.clientY),startWidth:q.width,startHeight:q.height,widthValue:l.style.getPropertyValue("width"),widthPriority:l.style.getPropertyPriority("width"),heightValue:l.style.getPropertyValue("height"),heightPriority:l.style.getPropertyPriority("height"),captureTarget:A.target},se("start",q.width,q.height)},update:Z,finish(A,B){if(!I||A.pointerId!==I.pointerId)return null;B==="commit"&&Z(A);let q=Math.max(1,Math.round(I.startWidth+Number(A.clientX)-I.startX)),m=Math.max(1,Math.round(I.startHeight+Number(A.clientY)-I.startY)),S=se(B,B==="commit"?q:I.startWidth,B==="commit"?m:I.startHeight),P=I.captureTarget,T=I.pointerId;return B==="cancel"&&L(),I=null,P?.releasePointerCapture?.(T),S},cleanup(){z||(z=!0,ce?.disconnect(),re(),O(),l=null,C.forEach(A=>A.remove()),_.remove())}}}function Bn(e){let t=e.kind;return t==="bridge-initialize-session"||t==="bridge-get-document"||t==="bridge-get-history-status"||t==="bridge-get-style-context"||t==="bridge-ensure-document-version"||t==="bridge-acknowledge-document-version"||t==="bridge-get-object-edit-context"||t==="bridge-get-class-name-source"||t==="bridge-get-source-tree"||t==="bridge-get-source-file"||t==="bridge-resolve-source-location"||t==="bridge-execute"||t==="bridge-get-operation-result"||t==="bridge-undo"||t==="bridge-redo"||t==="bridge-subscribe"||t==="bridge-unsubscribe"}function Xo(e){return e.kind==="update-text"||e.kind==="update-array-item"||e.kind==="set-class-name-source"||e.kind==="set-props"||e.kind==="apply-style-draft"}async function Jo({message:e,sendEvent:t,sendResponse:n,subscriptions:r,getCurrentDocument:i,setCurrentDocument:o,onBridgeRequestError:s,nextRouteReadySequence:c,windowLike:a}){let u=a.__VCP_SITE_EDIT__;if(!u){n({type:"response",ok:!1,error:"Site edit bridge is not ready in preview frame"});return}let d=()=>{if(a.__VCP_SITE_EDIT__!==u)throw new Error("SITE_EDIT_COMPOSITION_SESSION_MISMATCH: navigation changed while reading the document")};try{switch(e.kind){case"bridge-initialize-session":{let l=a.__VCP_SITE_EDIT_AUTO_BOOTSTRAP__;if(l?.compositionKey&&$e(e.payload.composition)!==l.compositionKey&&(!l.composition||$e(e.payload.composition)!==te(l.composition)))throw new Error("SITE_EDIT_COMPOSITION_SESSION_MISMATCH: navigation changed");let g,f=!1;if(l?.composition)try{let _=await u.getDocument(e.payload.composition),C=await u.getHistoryStatus(e.payload.composition);g={..._,composition:_.data.composition,data:{document:_.data,historyStatus:C.data}},f=!0}catch(_){if(!Ne(_,"").includes("SITE_EDIT_COMPOSITION_SESSION_REQUIRED"))throw _}g??=await u.initializeSession({composition:e.payload.composition}),d(),o?.(g.data.document),f||er(a,{composition:g.data.document.composition,editEngineVersion:"unknown",sequence:c(),version:g.data.document.version}),n({type:"response",ok:!0,result:g});return}case"bridge-get-document":{let l=await u.getDocument(e.payload.composition);d(),o?.(l.data),n({type:"response",ok:!0,result:l});return}case"bridge-get-history-status":n({type:"response",ok:!0,result:await u.getHistoryStatus(e.payload.composition)});return;case"bridge-get-style-context":n({type:"response",ok:!0,result:await u.getStyleContext(e.payload.composition)});return;case"bridge-ensure-document-version":{if(!Number.isFinite(Number(e.payload.minVersion))){n({type:"response",ok:!1,error:"Invalid document version"});return}let l=u.ensureDocumentVersion?await u.ensureDocumentVersion(e.payload.composition,Number(e.payload.minVersion)):await u.getDocument(e.payload.composition);d(),o?.(l.data),n({type:"response",ok:!0,result:l});return}case"bridge-acknowledge-document-version":{if(!Number.isFinite(Number(e.payload.version))){n({type:"response",ok:!1,error:"Invalid document version"});return}let l=u.acknowledgeDocumentVersion?await u.acknowledgeDocumentVersion(e.payload.composition,Number(e.payload.version)):await u.getDocument(e.payload.composition);d(),o?.(l.data),n({type:"response",ok:!0,result:l});return}case"bridge-get-object-edit-context":n({type:"response",ok:!0,result:await u.getObjectEditContext(e.payload.key,e.payload.composition,e.payload.selectionRef)});return;case"bridge-get-class-name-source":{let l=await u.getClassNameSource(e.payload.key,e.payload.composition);n({type:"response",ok:!0,result:Lo(l,e.payload.key,a.document,i?.()??null)});return}case"bridge-get-source-tree":n({type:"response",ok:!0,result:await u.getSourceTree(e.payload.composition)});return;case"bridge-get-source-file":n({type:"response",ok:!0,result:await u.getSourceFile({path:e.payload.path,composition:e.payload.composition})});return;case"bridge-resolve-source-location":n({type:"response",ok:!0,result:await u.resolveSourceLocation({key:e.payload.key,composition:e.payload.composition})});return;case"bridge-get-operation-result":{n({type:"response",ok:!0,result:await u.getOperationResult?.(e.payload.request)??null});return}case"bridge-execute":{let l=await u.execute(e.payload.request);if(n({type:"response",ok:!0,result:l}),l.ok&&u.acknowledgeDocumentVersion&&Xo(e.payload.request))try{let g=await u.acknowledgeDocumentVersion(e.payload.composition,l.data.resultVersion);d(),o?.(g.data)}catch(g){a.__VCP_SITE_EDIT__===u&&s?.(g,e)}return}case"bridge-undo":n({type:"response",ok:!0,result:await u.undo(e.payload.composition)});return;case"bridge-redo":n({type:"response",ok:!0,result:await u.redo(e.payload.composition)});return;case"bridge-subscribe":{let l=e.payload.subscriptionId;r.get(l)?.();let g=u.subscribe(f=>{t({kind:"bridge-event",payload:{composition:f.composition,event:f,subscriptionId:l}})});r.set(l,g),n({type:"response",ok:!0,result:{subscribed:!0}});return}case"bridge-unsubscribe":{let l=e.payload.subscriptionId;r.get(l)?.(),r.delete(l),n({type:"response",ok:!0,result:{unsubscribed:!0}});return}}}catch(l){a.__VCP_SITE_EDIT__===u&&s?.(l,e),n({type:"response",ok:!1,error:ci(l)})}}function Lo(e,t,n,r){if(!e.ok)return e;let i=ge(n,{key:t},r),o=i?Qo(i):null;return o?{...e,data:{...e.data,computedStyle:{...e.data.computedStyle??{},...o}}}:e}function Qo(e){let t=e.ownerDocument.defaultView;if(!t)return null;let n=t.getComputedStyle(e);return{color:n.color,backgroundColor:n.backgroundColor,borderColor:n.borderColor}}function Zo(e,t,n=()=>e.location.pathname){let r=e.history.pushState,i=e.history.replaceState,o=n(),s=()=>{let u=n();u!==o&&(o=u,t())},c=()=>s(),a=()=>s();return e.history.pushState=function(...d){let l=r.apply(this,d);return s(),l},e.history.replaceState=function(...d){let l=i.apply(this,d);return s(),l},e.addEventListener("popstate",c),e.addEventListener("hashchange",a),()=>{e.history.pushState=r,e.history.replaceState=i,e.removeEventListener("popstate",c),e.removeEventListener("hashchange",a)}}var Fn=5e3,wn="SITE_EDIT_BRIDGE_HEALTH_TIMEOUT";async function ei(e,t){let n=typeof AbortController=="function"?new AbortController:null,r,i=new Promise((o,s)=>{r=e.setTimeout(()=>{n?.abort();let c=new Error(`${wn}: preview health check did not respond within ${Fn}ms`);c.code=wn,s(c)},Fn)});try{return await Promise.race([(async()=>{let o=await e.fetch(t,{cache:"no-store",...n?{signal:n.signal}:{}}),s=await o.json();return{response:o,health:s}})(),i])}finally{e.clearTimeout(r)}}var ti=/^[A-Z][A-Z0-9_]{2,63}$/;function Ft(e){let t=e&&typeof e=="object"&&"code"in e?String(e.code??""):"";if(ti.test(t))return{failureCode:t};let n=e instanceof Error?e.message:"",r=/^([A-Z][A-Z0-9_]{2,63}):/.exec(n)?.[1];return r?{failureCode:r}:{}}function ni(e){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(()=>requestAnimationFrame(e));return}setTimeout(e,0)}function mt(e,t){return typeof e.requestAnimationFrame=="function"?e.requestAnimationFrame(t):e.setTimeout(t,0)}function ht(e,t){if(typeof e.cancelAnimationFrame=="function"){e.cancelAnimationFrame(t);return}e.clearTimeout(t)}function er(e,t){e.dispatchEvent(new CustomEvent(Kt,{detail:t}))}function ri(e,t){e.dispatchEvent(new CustomEvent(zt,{detail:t}))}function oi(e){return e?e.getConnectionState?e.getConnectionState()==="open":!0:!1}function ii(e,t){return te(e.composition)===t}function si(e){return Ne(e,"").includes(Xn)}function Ne(e,t){return e instanceof Error&&e.message?e.message:typeof e=="string"&&e?e:t}function tr(e){let t=Ne(e,"");return/websocket|readyState|not open|disconnected|bridge request timed out|network|econnreset|broken pipe|socket closed/i.test(t)}function ci(e){let t=Ne(e,"Site edit bridge request failed");return/bridge request timed out/i.test(t)?"Site edit bridge request timed out":tr(t)?"Site edit bridge disconnected":t}function nr(e){if(!e||typeof e!="object"||!("code"in e))return null;let t=e.code;return typeof t=="string"&&t.length>0?t:null}function ai(e){let t=nr(e);if(t)return t===xt||t===_t;let n=Ne(e,"");return n.includes(xt)||n.includes(_t)}function Ke(e){if(Ne(e,"").includes("SITE_EDIT_RUNTIME_RELOAD_REQUIRED"))return!0;if(nr(e))return!1;let t=Ne(e,"");return/\b(?:bridge(?: session)?|websocket)\s+authentication\b|\bbridge\s+(?:session\s+)?key\b/i.test(t)}function rr(e){let t=e.trim();return!t||t==="/"?"":(t.startsWith("/")?t:`/${t}`).replace(/\/+$/,"")}function Gt(e){return Co.has(ir(e))}function ui(e){return Ro.has(ir(e))}function or(e){return e.operationSummary?{canUpdateText:e.operationSummary.canUpdateText,canInsertChild:e.operationSummary.canInsertChild,canMove:e.operationSummary.canMove,canRemove:e.operationSummary.canRemove}:e.fallbackMode!=="preview"?{canUpdateText:!1,canInsertChild:!1,canMove:!1,canRemove:!1}:{canUpdateText:ui(e.tagName),canInsertChild:Gt(e.tagName),canMove:!1,canRemove:!1}}function ir(e){return e?.trim().toLowerCase()??""}function qn(e,t){return e.key!==t.key||e.instanceIndex!==t.instanceIndex||e.instanceCount!==t.instanceCount?!1:typeof e.textSegmentIndex=="number"&&typeof t.textSegmentIndex=="number"?e.textSegmentIndex===t.textSegmentIndex:!0}function li(e,t,n){let r=ge(e,t.ref,n);if(!r)return!1;if(typeof t.ref.textSegmentIndex=="number"){let i=di(r,t.ref.textSegmentIndex);return i?(i.nodeValue=t.initialText,!0):!1}return typeof t.initialHtml=="string"?(r.innerHTML=t.initialHtml,!0):(r.textContent=t.initialText,!0)}function di(e,t){let n=0;for(let r of Array.from(e.childNodes))if(!(!gt(r)||(r.textContent??"").trim().length===0)){if(n===t)return r;n+=1}return null}function pi(e,t,n,r,i){let o=Ze(e,t,n,r),s=Et(o);if(!s)return null;let c=s.getAttribute("data-vcp-edit-key")??"",a=me(e,s,r),u=i?.(a.key)??i?.(c);if(!or({operationSummary:u?.operationSummary,tagName:s.tagName,fallbackMode:"preview"}).canUpdateText)return null;let l=fi(e,t,n,s);if(l){let g=hi(s,l);if(g!==null)return{element:s,textNode:l,textSegmentIndex:g}}return It(s)?null:{element:s}}function fi(e,t,n,r){let i=mi(e,t,n);return!i||i.parentElement!==r?null:i}function mi(e,t,n){let r=e,o=r.caretPositionFromPoint?.(t,n)?.offsetNode??null;if(gt(o))return o;let c=r.caretRangeFromPoint?.(t,n)?.startContainer??null;return gt(c)?c:null}function hi(e,t){let n=0;for(let r of Array.from(e.childNodes))if(!(!gt(r)||(r.textContent??"").trim().length===0)){if(r===t)return n;n+=1}return null}function gt(e){return e?.nodeType===3}function gi(e,t,n){return(typeof e.elementsFromPoint=="function"?e.elementsFromPoint(t,n):[e.elementFromPoint(t,n)].filter(Boolean))[0]??null}function yi(e,t,n){let r=t;for(;r&&!r.getAttribute("data-site-block-id");)r=r.parentElement;if(!r)return null;let i=r.getAttribute("data-site-block-id")??"",o=r.getAttribute("data-vcp-edit-key")??"";return!i||!o?null:{blockId:i,blockIndex:bi(e,r),ref:yt(e,r,n),rect:ke(r.getBoundingClientRect()),targetIsSectionRoot:t===r}}function bi(e,t){let n=t.getAttribute("data-site-block-order"),r=n===null?Number.NaN:Number(n);return Number.isInteger(r)&&r>=0?r:Math.max(0,sr(e,null).findIndex(i=>i.element===t))}function sr(e,t){return Array.from(e.querySelectorAll("[data-site-block-id]")).filter(n=>{let r=n.parentElement;for(;r;){if(r.getAttribute("data-site-block-id"))return!1;r=r.parentElement}return!!(n.getAttribute("data-site-block-id")&&n.getAttribute("data-vcp-edit-key"))}).map(n=>({element:n,blockId:n.getAttribute("data-site-block-id")??"",ref:yt(e,n,t),rect:ke(n.getBoundingClientRect())})).filter(({rect:n})=>n.width>0&&n.height>0).sort((n,r)=>n.rect.top-r.rect.top||n.rect.left-r.rect.left)}function Ei(e,t,n,r){if(n?.pageComposition.status!=="supported")return null;let i=sr(e,n),o=i[0],s=i.at(-1);if(!o||!s)return null;let c=new Set(n.pageComposition.placements.map(f=>`${f.placementUnitKey}\0${f.relation}`)),a=f=>r?.(f)??n.entries.find(_=>_.key===f)??null,u=(f,_,C)=>{let x=a(f.ref.key)?.pageCompositionUnitKey;return!x||!c.has(`${x}\0${_}`)?null:{anchorBlockId:f.blockId,positionIndex:C,anchorRef:f.ref,placement:_,boundary:{top:_==="before"?f.rect.top:f.rect.top+f.rect.height,left:f.rect.left,width:f.rect.width}}},d=[],l=u(o,"before",0);l&&d.push(l),i.slice(1).forEach((f,_)=>{let C=_+1,x=u(f,"before",C);if(x){d.push(x);return}let v=i[_],O=v?u(v,"after",C):null;O&&d.push(O)});let g=u(s,"after",i.length);return g&&d.push(g),d.find(({boundary:f})=>t.clientX>=f.left&&t.clientX<=f.left+f.width&&Math.abs(t.clientY-f.top)<=Cn)??null}function Ze(e,t,n,r=null){let i=typeof e.elementsFromPoint=="function"?e.elementsFromPoint(t,n):[e.elementFromPoint(t,n)].filter(Boolean);for(let o of i){let s=Et(o),c=s?.getAttribute("data-vcp-edit-key")??"";if(s&&Yt(s,r,c))return s}return null}function Et(e){let t=e,n=null;for(;t;){let r=t.getAttribute("data-vcp-edit-key")??"";if(r){if(jt(t))return n??t;!Si(r)&&!n&&(n=t)}t=t.parentElement}return n}function jt(e){return e.getAttribute(Io)!==null}function Si(e){return Ii(e.split("::")[0]??"")}function Ii(e){if(!e)return!1;let t=Ci(e);return t===ut||t.startsWith(`${ut}/`)||t.includes(`/${ut}/`)||t.endsWith(`/${ut}`)}function Ci(e){let n=(e.split("?")[0]??e).replace(/\\/g,"/").replace(/^\.\//,""),r=[];for(let i of n.split("/"))if(!(!i||i===".")){if(i===".."){r.pop();continue}r.push(i)}return r.join("/")}function me(e,t,n){let r=t.getAttribute("data-vcp-edit-key")??"",i=ar(lr(Array.from(e.querySelectorAll(`[data-vcp-edit-key="${hr(r)}"]`))),n,r);if(i.length<=1)return{key:Vn(n,r,0)};let o=i.indexOf(t);return o>=0?{key:Vn(n,r,o),instanceIndex:o,instanceCount:i.length}:{key:r}}function yt(e,t,n){return me(e,t,n)}function ge(e,t,n){let r=et(t.key)??t.key,i=ar(lr(Array.from(e.querySelectorAll(`[data-vcp-edit-key="${hr(r)}"]`))),n,t.key);if(i.length===0)return null;let o=typeof t.instanceIndex=="number"&&t.instanceIndex>=0&&t.instanceIndex<i.length?t.instanceIndex:null,s=(et(t.key)??t.key)!==t.key;if(o!==null&&!s)return i[o]??null;let c=Ri(n,t.key);return c!==null&&c>=0&&c<i.length?i[c]??null:o!==null?i[o]??null:i[0]??null}function Vn(e,t,n){return cr(e,t)[n]?.key??t}function Ri(e,t){let n=et(t);if(!n)return null;let i=cr(e,n).findIndex(o=>o.key===t);return i>=0?i:null}function cr(e,t){return(e?.entries??[]).filter(n=>(et(n.key)??n.key)===t)}function ar(e,t,n){let r=ur(t,n);return r?e.filter(i=>i.tagName.toLowerCase()===r):e}function Yt(e,t,n){let r=ur(t,n);return!r||e.tagName.toLowerCase()===r}function ur(e,t){return null}var Ti=2,vi=4;function lr(e){return[...e].sort((t,n)=>{if(t===n)return 0;let r=typeof t.compareDocumentPosition=="function"?t.compareDocumentPosition(n):0;return(r&vi)!==0?-1:(r&Ti)!==0?1:0})}function et(e){if(typeof e!="string"||e.length===0)return e??null;let t=e;for(;;){let n=t.lastIndexOf(Dn);if(n<0)break;let r=Number(t.slice(n+Dn.length));if(!Number.isInteger(r)||r<0)return e;t=t.slice(0,n)}return t}function St(e){let n=e.ownerDocument?.defaultView?.getComputedStyle(e);return{...Xt(n),paddingTop:pe(n?.paddingTop),paddingRight:pe(n?.paddingRight),paddingBottom:pe(n?.paddingBottom),paddingLeft:pe(n?.paddingLeft),borderTopWidth:pe(n?.borderTopWidth),borderRightWidth:pe(n?.borderRightWidth),borderBottomWidth:pe(n?.borderBottomWidth),borderLeftWidth:pe(n?.borderLeftWidth),columnGap:pe(n?.columnGap),rowGap:pe(n?.rowGap)}}function Xt(e){return{marginTop:pe(e?.marginTop,!0),marginRight:pe(e?.marginRight,!0),marginBottom:pe(e?.marginBottom,!0),marginLeft:pe(e?.marginLeft,!0)}}function pe(e,t=!1){let n=Number.parseFloat(e??"");return Number.isFinite(n)?t?n:Math.max(0,n):0}function Jt(e){let t=e.ownerDocument?.defaultView;return Array.from(e.children).filter(n=>typeof n.getBoundingClientRect=="function").map(n=>({rect:ke(n.getBoundingClientRect()),margin:Xt(t?.getComputedStyle(n))})).filter(({rect:n})=>n.width>0&&n.height>0)}function _i(e){return Array.from(e.children).filter(t=>typeof t.getBoundingClientRect=="function").map(t=>ke(t.getBoundingClientRect())).filter(t=>t.width>0&&t.height>0)}var Kn=new WeakMap,zn=0;function Le(e){let t=Kn.get(e);if(t)return t;zn+=1;let n=`runtime-node-${zn}`;return Kn.set(e,n),n}function dr(e,t,n){let r=n??e.ownerDocument?.defaultView,i=e.ownerDocument?.defaultView?.getComputedStyle(e),o=ke(t),s=X(r?.scrollX),c=X(r?.scrollY),a=i?.position||"static";return{version:kt,runtimeNodeId:Le(e),rect:{viewport:o,document:{top:o.top+c,left:o.left+s,width:o.width,height:o.height}},layout:{position:a,transform:i?.transform||"none",containingBlock:Ai(e,a)},scrollContext:{scrollX:s,scrollY:c,viewportWidth:X(r?.innerWidth),viewportHeight:X(r?.innerHeight),scrollContainers:xi(e)}}}function xi(e){let t=e.ownerDocument,n=t?.defaultView,r=[],i=e.parentElement;for(;i;){if(i!==t?.body&&i!==t?.documentElement){let o=n?.getComputedStyle(i),s=o?.overflowX||o?.overflow||"visible",c=o?.overflowY||o?.overflow||"visible",a=X(i.scrollLeft),u=X(i.scrollTop),d=a!==0||$n(s)&&X(i.scrollWidth)>X(i.clientWidth),l=u!==0||$n(c)&&X(i.scrollHeight)>X(i.clientHeight);(d||l)&&r.push({runtimeNodeId:Le(i),scrollLeft:a,scrollTop:u})}i=i.parentElement}return r}function $n(e){return["auto","scroll","overlay","hidden"].includes(e)}function Ai(e,t){if(t==="fixed"){let r=Un(e.parentElement,!0);return r?{kind:"element",runtimeNodeId:Le(r)}:{kind:"viewport"}}if(t==="absolute"){let r=e.offsetParent,i=Ni(r)??Un(e.parentElement,!1);return i?{kind:"element",runtimeNodeId:Le(i)}:{kind:"document"}}let n=e.parentElement;return n?{kind:"element",runtimeNodeId:Le(n)}:{kind:"document"}}function Un(e,t){let n=e;for(;n;){let r=n.ownerDocument?.defaultView?.getComputedStyle(n);if(!!(r?.transform&&r.transform!=="none")||!!(r?.perspective&&r.perspective!=="none")||!!(r?.filter&&r.filter!=="none")||(r?.willChange??"").split(",").some(o=>["transform","perspective","filter"].includes(o.trim()))||!t&&(r?.position||"static")!=="static")return n;n=n.parentElement}return null}function Ni(e){return e&&typeof e.getBoundingClientRect=="function"?e:null}function Re(e,t,n,r="full",i,o="full",s=null){let c=e.getBoundingClientRect(),a=n?.(t.key)??null,u=e.tagName.toLowerCase(),d=o==="full",l=d?tt(e):void 0,g=r==="full"?{textPreview:e.textContent?.trim().slice(0,80),dataset:Oi(e),attributes:Object.fromEntries(e.getAttributeNames().map(I=>[I,e.getAttribute(I)??""]))}:{},f=or({operationSummary:a?.operationSummary,tagName:u,fallbackMode:"preview"}),_=jt(e),C=!0,x=a!==null&&Wt(a),v=x?null:Ui(e),O=x?a.parentKey:v?s&&et(t.key)?me(e.ownerDocument,v,s).key:v.getAttribute("data-vcp-edit-key"):null,$=d?Jt(e):void 0,z=d?dr(e,c,i):void 0;return{ref:t,key:t.key,detailLevel:r,tagName:u,...a?{sourceKind:"jsx"}:{},...O?{parentKey:O}:{},...a?.pageCompositionUnitKey?{pageCompositionUnitKey:a.pageCompositionUnitKey}:{},...g,runtimeFlags:{selectable:!0,movable:f.canMove,removable:f.canRemove,textEditable:f.canUpdateText,container:_?!1:f.canInsertChild||C&&Gt(u)||!!It(e)},...z?{layoutSnapshot:z}:{},...l?{layout:l}:{},rect:{top:c.top,left:c.left,width:c.width,height:c.height},...$?{childBoxes:$,childRects:$.map(({rect:I})=>I)}:{},...d?{spacing:St(e)}:{}}}function Di(e,t){return{...e,rect:{...t.layoutSnapshot.rect.viewport},layoutSnapshot:t.layoutSnapshot,...t.layout?{layout:t.layout}:{},...t.childBoxes?{childBoxes:t.childBoxes,childRects:t.childBoxes.map(({rect:n})=>n)}:t.childRects?{childRects:t.childRects}:{},...t.spacing?{spacing:t.spacing}:{}}}function Oi(e){let t=Object.fromEntries(Object.entries(e.dataset).map(([r,i])=>[r,i??""])),n=e;for(;n;){for(let r of["cmsCollection","cmsRecord","cmsField","cmsMediaIndex"]){let i=n.dataset[r];t[r]===void 0&&i!==void 0&&(t[r]=i)}n=n.parentElement}return t}function Wn(e,t,n,r){let i=e.getBoundingClientRect(),o=dr(e,i,n);if(r==="light")return{ref:t,layoutSnapshot:o};if(r==="child-rects")return{ref:t,layoutSnapshot:o,childRects:_i(e)};let s=Jt(e);return{ref:t,layoutSnapshot:o,childBoxes:s,childRects:s.map(({rect:c})=>c),layout:tt(e),spacing:St(e)}}function Hn(e){let t=e.layout?.display??"",n=e.spacing;return["flex","inline-flex","grid","inline-grid"].includes(t)&&!!(n&&(n.columnGap>0||n.rowGap>0)&&(e.childRects?.length??0)>=2)}function Pi(e,t,n,r,i){let o=t,s=Wn(o,n,e,"detailed"),c=Hn(s),a=null,u=null,d="mutation",l=ze(e),g=l,f=!1,_=!1,C=({reason:ee,sourceEventAt:oe,forceEmit:ce=!1,includeDetailedGeometry:A=!1})=>{(a===null||(ee==="scroll"?0:1)>=(d==="scroll"?0:1))&&(d=ee,l=oe),f=f||ce,_=_||A,a===null&&(a=mt(e,x))},x=()=>{let ee=ze(e);a=null;let oe=d,ce=l,A=f,B=_;f=!1,_=!1;let q=ge(e.document,n,r?.()??null);if(!q)return;q!==o&&(L?.unobserve(o),o=q,L?.observe(o),B=!0);let m=B?"detailed":c?"child-rects":"light",S=Wn(o,n,e,m),P=S.layoutSnapshot.rect.viewport;P.width<=0||P.height<=0||!A&&!ki(s,S)||(s=S,m==="detailed"&&(c=Hn(S)),i(oe,S,{sourceEventAt:ce,captureStartedAt:ee,capturedAt:ze(e)}))},v=()=>{u!==null&&(e.clearTimeout(u),u=null)},O=()=>{v(),C({reason:"resize",sourceEventAt:ze(e),includeDetailedGeometry:!0})},$=()=>{v(),C({reason:"mutation",sourceEventAt:ze(e),includeDetailedGeometry:!0})},z=()=>{g=ze(e),C({reason:"scroll",sourceEventAt:g}),v(),u=e.setTimeout(()=>{u=null,C({reason:"scroll",sourceEventAt:g,forceEmit:!0,includeDetailedGeometry:!0})},go)},I=e.ResizeObserver,L=typeof I=="function"?new I(O):null;L?.observe(o);let se=e.MutationObserver,re=typeof se=="function"?new se($):null;re?.observe(e.document.documentElement,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.addEventListener("resize",O,{passive:!0}),e.addEventListener("scroll",z,{passive:!0});let Z=e.visualViewport;return Z?.addEventListener?.("resize",O,{passive:!0}),Z?.addEventListener?.("scroll",z,{passive:!0}),e.document.addEventListener("scroll",z,{capture:!0,passive:!0}),e.document.addEventListener("load",$,!0),{initialSnapshot:s,cleanup:()=>{a!==null&&(ht(e,a),a=null),v(),L?.disconnect(),re?.disconnect(),e.removeEventListener("resize",O),e.removeEventListener("scroll",z),Z?.removeEventListener?.("resize",O),Z?.removeEventListener?.("scroll",z),e.document.removeEventListener("scroll",z,!0),e.document.removeEventListener("load",$,!0)}}}function ze(e){let t=e.performance;return t&&Number.isFinite(t.timeOrigin)&&typeof t.now=="function"?t.timeOrigin+t.now():Date.now()}function ki(e,t){return Mi(e.layoutSnapshot,t.layoutSnapshot)||t.childBoxes!==void 0&&Fi(e.childBoxes,t.childBoxes)||t.childRects!==void 0&&wi(e.childRects,t.childRects)||t.layout!==void 0&&$t(e.layout,t.layout)||t.spacing!==void 0&&$t(e.spacing,t.spacing)}function Mi(e,t){return!e||!t?e!==t:e.version!==t.version||e.runtimeNodeId!==t.runtimeNodeId||bt(e.rect.viewport,t.rect.viewport)||bt(e.rect.document,t.rect.document)||e.layout.position!==t.layout.position||e.layout.transform!==t.layout.transform||e.layout.containingBlock.kind!==t.layout.containingBlock.kind||e.layout.containingBlock.kind==="element"&&t.layout.containingBlock.kind==="element"&&e.layout.containingBlock.runtimeNodeId!==t.layout.containingBlock.runtimeNodeId||e.scrollContext.scrollX!==t.scrollContext.scrollX||e.scrollContext.scrollY!==t.scrollContext.scrollY||e.scrollContext.viewportWidth!==t.scrollContext.viewportWidth||e.scrollContext.viewportHeight!==t.scrollContext.viewportHeight||Bi(e.scrollContext.scrollContainers,t.scrollContext.scrollContainers)}function Bi(e,t){return e.length!==t.length||e.some((n,r)=>{let i=t[r];return!i||n.runtimeNodeId!==i.runtimeNodeId||n.scrollLeft!==i.scrollLeft||n.scrollTop!==i.scrollTop})}function Fi(e,t){let n=e??[],r=t??[];return n.length!==r.length||n.some((i,o)=>{let s=r[o];return!s||bt(i.rect,s.rect)||$t(i.margin,s.margin)})}function wi(e,t){let n=e??[],r=t??[];return n.length!==r.length||n.some((i,o)=>bt(i,r[o]??i))}function $t(e,t){let n=e??{},r=t??{},i=new Set([...Object.keys(n),...Object.keys(r)]);return Array.from(i).some(o=>n[o]!==r[o])}function ke(e){return{top:e.top,left:e.left,width:e.width,height:e.height}}function bt(e,t){return Math.abs(e.top-t.top)>.5||Math.abs(e.left-t.left)>.5||Math.abs(e.width-t.width)>.5||Math.abs(e.height-t.height)>.5}function qi(e,t,n,r,i,o,s){let c=e.document,a=Ze(c,t,n,o);if(!a)return{anchorHit:null,targetParentHit:null,relation:"none",rejectionReason:"no-editable-hit"};let u=i?ge(c,i,o):null;if(u&&Ut(a,u))return Pe(c,a,"self-or-descendant",o,s);if(r==="move"){if(!u)return Pe(c,a,"no-accepting-parent",o,s);let C=zi(c,a,u,o,s);if(!C)return Pe(c,a,"no-accepting-parent",o,s);let x=C.kind==="parent"?jn(C.targetParent,t,n):wt(C.child,C.targetParent,t,n,"nearest");return x?dt(c,C.child,C.targetParent,x,o,s):Pe(c,a,"no-accepting-parent",o,s)}let d=null,l=!1,g=a,f=a.parentElement;for(;f;){if(f.getAttribute("data-vcp-edit-key")){if(u&&Ut(f,u))return Pe(c,a,"self-or-descendant",o,s);let C=Gn(f,r,s);if(C==="accept"){d={child:g,targetParent:f};break}C==="blocked"&&(l=!0),g=f}f=f.parentElement}let _=Gn(a,r,s);if(_==="accept"){if(d){let C=wt(d.child,d.targetParent,t,n,"edge");if(C)return dt(c,d.child,d.targetParent,C,o,s)}return dt(c,a,a,jn(a,t,n),o,s)}if(d){let C=wt(d.child,d.targetParent,t,n,"nearest");return dt(c,d.child,d.targetParent,C??"after",o,s)}return _==="blocked"||l?Pe(c,a,"operation-boundary-blocked",o,s):Pe(c,a,"no-accepting-parent",o,s)}function Pe(e,t,n,r,i){return{anchorHit:Re(t,me(e,t,r),i,"summary",void 0,"full",r),targetParentHit:null,relation:"none",rejectionReason:n}}function dt(e,t,n,r,i,o){let s=Re(t,me(e,t,i),o,"summary",void 0,"full",i),c=Re(n,me(e,n,i),o,"summary",void 0,"full",i),a=tt(n).indicatorOrientation,u=r==="append"||r==="prepend"?Vi(n.getBoundingClientRect(),a,r):Ki(t.getBoundingClientRect(),a,r);return{anchorHit:s,targetParentHit:c,relation:r,indicatorOrientation:a,indicatorBounds:u}}function Gn(e,t,n){if(jt(e))return"not-container";let r=e.getAttribute("data-vcp-edit-key")??"",i=n?.(r)??null;if(i)return i.operationSummary.canInsertChild===!0?"accept":It(e)?"blocked":"not-container";let o=e.tagName.toLowerCase();return Gt(o)?"accept":"not-container"}function wt(e,t,n,r,i){let o=tt(t).indicatorOrientation,s=e.getBoundingClientRect(),c=o==="vertical"?s.width>0?(n-s.left)/s.width:.5:s.height>0?(r-s.top)/s.height:.5;return i==="edge"&&c>=.25&&c<=.75?null:c<.5?"before":"after"}function jn(e,t,n){let r=tt(e).indicatorOrientation,i=e.getBoundingClientRect();return(r==="vertical"?i.width>0?(t-i.left)/i.width:.5:i.height>0?(n-i.top)/i.height:.5)<.5?"prepend":"append"}function tt(e){let n=e.ownerDocument?.defaultView?.getComputedStyle(e),r=n?.display??"",i=n?.flexDirection,o=n?.gridAutoFlow,s="horizontal";return r==="flex"||r==="inline-flex"?s=(i??"row").startsWith("row")?"vertical":"horizontal":(r==="grid"||r==="inline-grid")&&(s=(o??"row").includes("column")?"vertical":"horizontal"),{display:r,...i?{flexDirection:i}:{},...o?{gridAutoFlow:o}:{},indicatorOrientation:s}}function Vi(e,t,n){if(t==="vertical")return{left:n==="prepend"?e.left:e.left+e.width-3,top:e.top,width:3,height:e.height};let r=n==="prepend"?e.top:e.top+e.height-3;return{left:e.left,top:r,width:e.width,height:3}}function Ki(e,t,n){if(t==="vertical")return{left:n==="before"?e.left:e.left+e.width-3,top:e.top,width:3,height:e.height};let r=n==="before"?e.top:e.top+e.height-3;return{left:e.left,top:r,width:e.width,height:3}}function Ut(e,t){let n=e;for(;n;){if(n===t)return!0;n=n.parentElement}return!1}function zi(e,t,n,r,i){return $i(e,t,n,r,i)}function $i(e,t,n,r,i){if(!r)return null;let o=x=>i?.(x)??r.entries.find(v=>v.key===x)??null,s=me(e,n,r),c=o(s.key);if(!c||!Wt(c)||!c.parentKey)return null;let a=c.parentKey;if(!o(a)?.operationSummary.canInsertChild)return null;let d=ge(e,{key:a},r);if(!d)return null;let l=t,g=null;for(;l;){if(l.getAttribute("data-vcp-edit-key")){let x=me(e,l,r),v=o(x.key);if(v){g=v;break}}l=l.parentElement}if(!g)return null;if(g.key===a)return{kind:"parent",child:d,targetParent:d};let f=g,_=new Set;for(;;){if(!Wt(f)||!f.parentKey)return null;if(f.parentKey===a)break;if(_.has(f.key))return null;_.add(f.key);let x=o(f.parentKey);if(!x)return null;f=x}if(f.key===c.key)return null;let C=ge(e,{key:f.key},r);return!C||C===n||Ut(C,n)?null:{kind:"sibling",child:C,targetParent:d}}function Wt(e){return Object.prototype.hasOwnProperty.call(e,"parentKey")}function Ui(e){let t=e.parentElement;for(;t;){if(t.getAttribute("data-vcp-edit-key"))return t;t=t.parentElement}return null}function It(e){for(let t of Array.from(e.childNodes)){if(typeof t.getAttribute!="function")continue;let n=t;if(n.getAttribute("data-vcp-edit-key"))return n;let r=It(n);if(r)return r}return null}function pt(e){let t=e.document.documentElement,n=e.document.body;return{scrollX:X(e.scrollX),scrollY:X(e.scrollY),scrollWidth:Math.max(X(t?.scrollWidth),X(n?.scrollWidth),X(e.innerWidth)),scrollHeight:Math.max(X(t?.scrollHeight),X(n?.scrollHeight),X(e.innerHeight)),viewportWidth:X(e.innerWidth),viewportHeight:X(e.innerHeight)}}function Wi(e,t){Object.entries(t.attributes??{}).forEach(([r,i])=>{if(i===null){e.removeAttribute(r);return}e.setAttribute(r,i)}),typeof t.className=="string"&&(e.className=t.className);let n=new Set(t.styleDeclarations?.map(r=>r.property)??[]);Object.entries(t.style??{}).forEach(([r,i])=>{if(n.has(r))return;let o=e.style,s=r.replace(/[A-Z]/g,c=>`-${c.toLowerCase()}`);if(i==null||i===""){o.removeProperty(s);return}o.setProperty(s,String(i))}),t.styleDeclarations?.forEach(r=>{let i=e.style,o=r.property.replace(/[A-Z]/g,c=>`-${c.toLowerCase()}`),s=r.value;if(s==null||s===""){i.removeProperty(o);return}i.setProperty(o,String(s),r.priority)})}var Hi=500,Je=new Map;function Gi(e,t){return`${e}:${t.key}:${t.instanceIndex??""}`}function ji(e,t){if(Je.size>=Hi){let n=Je.keys().next().value;n&&Je.delete(n)}Je.set(e,t)}var Qe=new Set;function Yi(e,t){let n=e.documentElement?.style,r=new Set;for(let[i,o]of Object.entries(t.variables??{}))i.startsWith("--")&&(r.add(i),n?.setProperty(i,o));for(let i of Qe)r.has(i)||n?.removeProperty(i);Qe.clear();for(let i of r)Qe.add(i);Zi(e,t.stylesheets??[])}function Xi(e){let t=e.documentElement?.style;for(let n of Qe)t?.removeProperty(n);Qe.clear();for(let n of mr(e))n.remove()}function Ji(e,t){let n=Array.from(new Set(t.filter(s=>typeof s=="string"&&s.startsWith("--"))));if(n.length===0)return{};let r=e.documentElement,i=r?e.defaultView?.getComputedStyle(r):null,o={};for(let s of n){let c=pr(i,s);c&&(o[s]=c)}return o}function pr(e,t,n=new Set){if(!e||n.has(t))return null;n.add(t);let r=e.getPropertyValue(t).trim();return fr(e,r,n)}function fr(e,t,n){if(!t)return null;let r=Li(t);if(!r)return t;let i=pr(e,r.name,n);return i||(r.fallback?fr(e,r.fallback,n)??r.fallback:null)}function Li(e){let t=e.trim();if(!t.startsWith("var(")||!t.endsWith(")"))return null;let n=t.slice(4,-1).trim(),r=Qi(n),i=r>=0?n.slice(0,r).trim():n;if(!i.startsWith("--"))return null;let o=r>=0?n.slice(r+1).trim():null;return{name:i,fallback:o||null}}function Qi(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e[n];if(r==="("){t+=1;continue}if(r===")"){t=Math.max(0,t-1);continue}if(r===","&&t===0)return n}return-1}function Zi(e,t){let n=new Set(t.filter(o=>typeof o=="string"&&o.length>0)),r=new Map;for(let o of mr(e)){let s=o.getAttribute("href")??"";if(!n.has(s)||r.has(s)){o.remove();continue}r.set(s,o)}let i=e.head;if(i)for(let o of n){if(r.has(o))continue;let s=e.createElement("link");s.setAttribute("rel","stylesheet"),s.setAttribute(Ln,"true"),s.setAttribute("href",o),i.appendChild(s)}}function mr(e){return Array.from(e.querySelectorAll(`link[${Ln}]`))}function es(e,t,n,r,i={}){let o=i.textNode?ts(e.document,i.textNode):null;if(i.textNode&&!o)throw new Error("Failed to prepare text segment editor");let s=o?.element??t,c=s.textContent??"",a=o?void 0:t.innerHTML,u=ns(s),d=!1,l=()=>{d=!0,e.document.removeEventListener("pointerdown",f,!0),s.removeEventListener("keydown",_),s.removeEventListener("blur",C),s.removeEventListener("input",x),os(s,u)},g=v=>{if(d)return;d=!0;let O=s.textContent??"";if(l(),v==="cancel"){o?.restore(c),o||(t.textContent=c),r({kind:"text-edit-cancel",payload:{ref:n}});return}if(o?.restore(O),v==="commit"&&O!==c){i.onCommitSnapshot?.({ref:n,initialText:c,...a!==void 0?{initialHtml:a}:{}}),r({kind:"text-edit-commit",payload:{ref:n,value:O}});return}r({kind:"text-edit-exit",payload:{ref:n}})};function f(v){let O=v.target;if(!(O&&s.contains(O))){if(o&&O===t){v.preventDefault(),Vt(s),Yn(s,e.document,!0);return}g("commit")}}function _(v){if(v.key==="Escape"){v.preventDefault(),g("cancel");return}v.key==="Enter"&&(v.metaKey||v.ctrlKey)&&(v.preventDefault(),g("commit"))}function C(v){if(o&&v.relatedTarget===t){e.queueMicrotask(()=>{if(d)return;let O=e.document.activeElement;O===t?Vt(s):O!==s&&g("commit")});return}g("commit")}function x(){r({kind:"text-edit-input",payload:{ref:n,hit:Re(t,n,void 0,"full")}})}return rs(s),e.document.addEventListener("pointerdown",f,!0),s.addEventListener("keydown",_),s.addEventListener("blur",C),s.addEventListener("input",x),Vt(s),Yn(s,e.document),l}function ts(e,t){let n=t.parentNode;if(!n)return null;let r=e.createElement("span");return r.setAttribute("data-vcp-text-segment-editor","true"),r.textContent=t.textContent??"",n.replaceChild(r,t),{element:r,restore(i){t.nodeValue=i,r.parentNode&&r.parentNode.replaceChild(t,r)}}}function ns(e){return{contentEditable:e.getAttribute("contenteditable"),spellcheck:e.getAttribute("spellcheck"),marker:e.getAttribute("data-vcp-edit-text-editing"),cursor:e.style.cursor,userSelect:e.style.userSelect}}function rs(e){is(e.ownerDocument),e.setAttribute("contenteditable","plaintext-only"),e.setAttribute("spellcheck","false"),e.setAttribute("data-vcp-edit-text-editing","true"),e.style.cursor="text",e.style.userSelect="text"}function os(e,t){qt(e,"contenteditable",t.contentEditable),qt(e,"spellcheck",t.spellcheck),qt(e,"data-vcp-edit-text-editing",t.marker),e.style.cursor=t.cursor,e.style.userSelect=t.userSelect}function is(e){if(e.getElementById("vcp-text-edit-base-style"))return;let t=e.createElement("style");t.id="vcp-text-edit-base-style",t.textContent='[data-vcp-edit-text-editing="true"]{outline:0!important;outline-offset:0!important;}',e.head.appendChild(t)}function qt(e,t,n){if(n===null){e.removeAttribute(t);return}e.setAttribute(t,n)}function ss(e){let t=[e.documentElement,e.body].filter(r=>!!r?.style),n=t.map(r=>({element:r,userSelect:r.style.userSelect}));for(let r of t)r.style.userSelect="none";return()=>{for(let r of n)r.element.style.userSelect=r.userSelect}}function Vt(e){try{e.focus({preventScroll:!0})}catch{e.focus()}}function Yn(e,t,n=!1){let r=t.createRange();r.selectNodeContents(e),n&&r.collapse(!1);let i=t.getSelection?.();i?.removeAllRanges(),i?.addRange(r)}function hr(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function X(e){let t=Number(e);return Number.isFinite(t)?t:0}export{wn as SITE_EDIT_BRIDGE_HEALTH_TIMEOUT,Xn as SITE_EDIT_COMPOSITION_RENDER_MISMATCH,zt as VCP_SITE_EDIT_BRIDGE_STATUS_EVENT,Kt as VCP_SITE_EDIT_ROUTE_READY_EVENT,vo as resolveBrowserCompositionSelector,Qn as resolveSiteEditRouteId,xo as resolveSiteEditWebSocketUrl,xs as startSiteEditAutoBootstrap,Mo as startSiteEditFrameRuntime,To as syncRuntimeSiteBlockIds};