UNPKG

@sanity/visual-editing

Version:

[![npm stat](https://img.shields.io/npm/dm/@sanity/visual-editing.svg?style=flat-square)](https://npm-stat.com/charts.html?package=@sanity/visual-editing) [![npm version](https://img.shields.io/npm/v/@sanity/visual-editing.svg?style=flat-square)](https://

140 lines (122 loc) 40.8 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react-compiler-runtime"),n=require("react"),r=require("react-dom"),o=require("../_chunks-cjs/create-data-attribute.cjs"),i=require("../_chunks-cjs/PointerEvents.cjs"),s=require("../_chunks-cjs/mutations.cjs"),a=require("../_chunks-cjs/SharedStateContext.cjs"),c=require("@sanity/mutate"),l=require("@sanity/client/csm"),d=require("../_chunks-cjs/transformSanityNodeData.cjs"),u=require("scroll-into-view-if-needed"),p=require("@sanity/comlink"),f=require("xstate"),m=require("../_chunks-cjs/context.cjs"),h=require("rxjs"),g=require("../optimistic/index.cjs");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=y(u);const w=e=>{const r=t.c(8),{comlink:o,history:i}=e;let s,a,c,l;return r[0]!==o||r[1]!==i?(s=()=>o?.on("presentation/navigate",(e=>{i?.update(e)})),a=[o,i],r[0]=o,r[1]=i,r[2]=s,r[3]=a):(s=r[2],a=r[3]),n.useEffect(s,a),r[4]!==o||r[5]!==i?(c=()=>{if(i)return i.subscribe((e=>{e.title=e.title||document.title,o?.post("visual-editing/navigate",e)}))},l=[o,i],r[4]=o,r[5]=i,r[6]=c,r[7]=l):(c=r[6],l=r[7]),n.useEffect(c,l),null},b=e=>{const r=t.c(3),{comlink:o}=e;let i,s;return r[0]!==o?(i=()=>{const e=()=>{o.post("visual-editing/meta",{title:document.title})},t=new MutationObserver((t=>{const[n]=t;"TITLE"===n.target.nodeName&&e()}));return t.observe(document.head,{subtree:!0,characterData:!0,childList:!0}),e(),()=>t.disconnect()},s=[o],r[0]=o,r[1]=i,r[2]=s):(i=r[1],s=r[2]),n.useEffect(i,s),null};function x(e){const t=new CustomEvent("sanity/dragEnd",{detail:e,cancelable:!0});window.dispatchEvent(t)}const j=n.createContext(null);function k(){const e=n.useContext(j);if(!e)throw new Error("Schema context is missing");return e}function E(e,t){if(!e.type)throw new Error("Node type is missing");return()=>t.patch((async({getSnapshot:t})=>s.f(e,await t())))}function S(e,t,n,r){if(!e.type)throw new Error("Node type is missing");return()=>t.patch((()=>s.a(e,n,r)))}function _(e,t){if(!e.type)throw new Error("Node type is missing");return()=>t.patch((async({getSnapshot:t})=>s.h(e,await t())))}function M(t){const{node:n,field:r,parent:o,doc:s}=t;return"arrayItem"===r?.type?async function(e){const{node:t,field:n,doc:r}=e,o=[];return o.push(...$(e)),o.push(...P(e)),o.push(...await I(e)),o.push({type:"action",label:"Insert before",icon:i.a,action:S(t,r,n.name,"before")}),o.push({type:"action",label:"Insert after",icon:i.b,action:S(t,r,n.name,"after")}),o}({node:n,field:r,doc:s}):"union"===o?.type?async function(t){const{doc:n,node:r,parent:o}=t,s=[];if(s.push(...$(t)),s.push(...P(t)),s.push(...await I(t)),o.options?.insertMenu){const t=(o.options.insertMenu||{}).views?.some((e=>"grid"===e.name))?0:void 0;s.push({type:"custom",component:({boundaryElement:i})=>e.jsx(D,{label:"Insert before",onSelect:e=>{S(r,n,e.name,"before")()},parent:o,width:t,boundaryElement:i})}),s.push({type:"custom",component:({boundaryElement:i})=>e.jsx(D,{label:"Insert after",onSelect:e=>{S(r,n,e.name,"after")()},parent:o,width:t,boundaryElement:i})})}else s.push({type:"group",label:"Insert before",icon:i.a,items:o.of.filter((e=>"unionOption"===e.type)).map((e=>({type:"action",icon:i.g(e),label:"block"===e.name?"Paragraph":e.title||e.name,action:S(r,n,e.name,"before")})))}),s.push({type:"group",label:"Insert after",icon:i.b,items:o.of.filter((e=>"unionOption"===e.type)).map((e=>({type:"action",label:"block"===e.name?"Paragraph":e.title||e.name,icon:i.g(e),action:S(r,n,e.name,"after")})))});return s}({node:n,parent:o,doc:s}):Promise.resolve([])}function $(e){const{node:t,doc:n}=e;return n?[{type:"action",label:"Duplicate",icon:i.C,action:_(t,n)}]:[]}function P(e){const{node:t,doc:n}=e;return n?[{type:"action",label:"Remove",icon:i.R,action:E(t,n)}]:[]}async function I(e,t=!0){const{node:n,doc:r}=e;if(!r)return[];const o=[],a=[],[c,l,d,u]=await Promise.all([s.e(n,r,"previous"),s.e(n,r,"next"),s.e(n,r,"first"),s.e(n,r,"last")]);return d.length&&a.push({type:"action",label:"To top",icon:i.c,action:()=>r.patch(d)}),c.length&&a.push({type:"action",label:"Up",icon:i.e,action:()=>r.patch(c)}),l.length&&a.push({type:"action",label:"Down",icon:i.f,action:()=>r.patch(l)}),u.length&&a.push({type:"action",label:"To bottom",icon:i.U,action:()=>r.patch(u)}),a.length&&(o.push({type:"group",label:"Move",icon:i.S,items:a}),t&&o.push({type:"divider"})),o}const D=n=>{const r=t.c(12),{label:o,parent:s,width:a,onSelect:c,boundaryElement:l}=n;let d,u,p,f,m;return r[0]===Symbol.for("react.memo_cache_sentinel")?(d=["left-start","right","left","right-end","left-end","bottom","top"],r[0]=d):d=r[0],r[1]===Symbol.for("react.memo_cache_sentinel")?(u=[4,4,4,4],r[1]=u):u=r[1],r[2]!==l||r[3]!==a?(p={arrow:!1,constrainSize:!0,floatingBoundary:l,padding:0,placement:"right-start",fallbackPlacements:d,preventOverflow:!0,width:a,__unstable_margins:u},r[2]=l,r[3]=a,r[4]=p):p=r[4],r[5]!==c||r[6]!==s?(f=e.jsx(i.h,{node:s,onSelect:c}),r[5]=c,r[6]=s,r[7]=f):f=r[7],r[8]!==o||r[9]!==p||r[10]!==f?(m=e.jsx(i.M,{fontSize:1,icon:i.b,padding:2,popover:p,space:2,text:o,children:f}),r[8]=o,r[9]=p,r[10]=f,r[11]=m):m=r[11],m};const R=[-4,4,-4,4];function T(n){const r=t.c(25),{node:o,onDismiss:s,boundaryElement:a}=n;let c;r[0]!==o||r[1]!==s?(c=()=>{"action"===o.type&&(o.action?.(),s?.())},r[0]=o,r[1]=s,r[2]=c):c=r[2];const l=c;if("divider"===o.type){let t;return r[3]===Symbol.for("react.memo_cache_sentinel")?(t=e.jsx(i.i,{}),r[3]=t):t=r[3],t}if("action"===o.type){const t=!o.action;let n;return r[4]!==o.hotkeys||r[5]!==o.icon||r[6]!==o.label||r[7]!==l||r[8]!==t?(n=e.jsx(i.p,{fontSize:1,hotkeys:o.hotkeys,icon:o.icon,padding:2,space:2,text:o.label,disabled:t,onClick:l}),r[4]=o.hotkeys,r[5]=o.icon,r[6]=o.label,r[7]=l,r[8]=t,r[9]=n):n=r[9],n}if("group"===o.type){const t=o.icon;let n;r[10]===Symbol.for("react.memo_cache_sentinel")?(n={arrow:!1,constrainSize:!0,placement:"right-start",fallbackPlacements:["left-start","right","left","right-end","left-end","bottom","top"],preventOverflow:!0,__unstable_margins:R},r[10]=n):n=r[10];const c=o.label;let l,d;if(r[11]!==a||r[12]!==o.items||r[13]!==s){let t;r[15]!==a||r[16]!==s?(t=(t,n)=>e.jsx(T,{node:t,onDismiss:s,boundaryElement:a},n),r[15]=a,r[16]=s,r[17]=t):t=r[17],l=o.items.map(t),r[11]=a,r[12]=o.items,r[13]=s,r[14]=l}else l=r[14];return r[18]!==o.icon||r[19]!==o.label||r[20]!==l?(d=e.jsx(i.M,{fontSize:1,icon:t,padding:2,popover:n,space:2,text:c,children:l}),r[18]=o.icon,r[19]=o.label,r[20]=l,r[21]=d):d=r[21],d}if("custom"===o.type){const{component:t}=o;let n;return r[22]!==t||r[23]!==a?(n=e.jsx(t,{boundaryElement:a}),r[22]=t,r[23]=a,r[24]=n):n=r[24],n}return null}const q=r=>{const o=t.c(43),{node:a,onDismiss:c,position:l}=r,{x:d,y:u}=l,[p,f]=n.useState(null),{getField:m}=k(),{getDocument:h}=s.u();let g;o[0]!==m||o[1]!==a?(g=m(a),o[0]=m,o[1]=a,o[2]=g):g=o[2];const{field:y,parent:v}=g;let w;w=y?.title||y?.name||"Unknown type";const b=w,[x,j]=n.useState(void 0);let E,S,_,$;o[3]!==y||o[4]!==h||o[5]!==a||o[6]!==v?(E=()=>{(async()=>{const e=h(a.id);if(!e)return;const t=await M({node:a,field:y,parent:v,doc:e});j(t)})()},S=[y,a,v,h],o[3]=y,o[4]=h,o[5]=a,o[6]=v,o[7]=E,o[8]=S):(E=o[7],S=o[8]),n.useEffect(E,S),o[9]!==d||o[10]!==u?($={getBoundingClientRect:()=>({bottom:u,left:d,right:d,top:u,width:0,height:0})},o[9]=d,o[10]=u,o[11]=$):$=o[11],_=$;const P=_;let I,D;o[12]!==y?(D=i.g(y),o[12]=y,o[13]=D):D=o[13],I=D;const q=I;let z,C;o[14]===Symbol.for("react.memo_cache_sentinel")?(z={minWidth:120,maxWidth:160},o[14]=z):z=o[14],o[15]!==q||o[16]!==x?(C=e.jsx(i.j,{flex:"none",children:x?e.jsx(i.T,{size:1,children:q}):e.jsx(i.k,{size:1})}),o[15]=q,o[16]=x,o[17]=C):C=o[17];const A=x?b:"Loading...";let F,L,N,O;o[18]!==A?(F=e.jsx(i.l,{flex:1,space:2,children:e.jsx(i.T,{size:1,weight:"semibold",children:A})}),o[18]=A,o[19]=F):F=o[19],o[20]!==C||o[21]!==F?(L=e.jsxs(i.F,{gap:2,padding:2,children:[C,F]}),o[20]=C,o[21]=F,o[22]=L):L=o[22],o[23]!==p||o[24]!==x||o[25]!==c?(N=x&&e.jsxs(e.Fragment,{children:[e.jsx(i.i,{}),x.map(((t,n)=>e.jsx(T,{node:t,onDismiss:c,boundaryElement:p},n)))]}),o[23]=p,o[24]=x,o[25]=c,o[26]=N):N=o[26],o[27]!==L||o[28]!==N?(O=e.jsxs(i.m,{style:z,children:[L,N]}),o[27]=L,o[28]=N,o[29]=O):O=o[29];const U=`${d}-${u}`;let W,G,V,B;return o[30]!==d||o[31]!==u?(W={position:"absolute",left:d,top:u},o[30]=d,o[31]=u,o[32]=W):W=o[32],o[33]!==U||o[34]!==W?(G=e.jsx("div",{style:W},U),o[33]=U,o[34]=W,o[35]=G):G=o[35],o[36]!==P||o[37]!==O||o[38]!==G?(V=e.jsx(i.n,{__unstable_margins:R,arrow:!1,open:!0,placement:"right-start",referenceElement:P,content:O,children:G}),o[36]=P,o[37]=O,o[38]=G,o[39]=V):V=o[39],o[40]!==c||o[41]!==V?(B=e.jsx(i.o,{setBoundaryElement:f,onDismiss:c,children:V}),o[40]=c,o[41]=V,o[42]=B):B=o[42],B};function z(e,t){try{const n=new URL(e,typeof location>"u"?void 0:location.origin);if(n.hash){const e=new URL(z(n.hash.slice(1),t));return`${n.origin}${n.pathname}${n.search}#${e.pathname}${e.search}`}return n.searchParams.set("preview",t),n.toString()}catch{return e}}const C=n.createContext(null);const A=i.d(i.q)` background-color: var(--overlay-bg); border-radius: 3px; pointer-events: none; position: absolute; will-change: transform; box-shadow: var(--overlay-box-shadow); transition: none; --overlay-bg: transparent; --overlay-box-shadow: inset 0 0 0 1px transparent; [data-overlays] & { --overlay-bg: color-mix(in srgb, transparent 95%, var(--card-focus-ring-color)); --overlay-box-shadow: inset 0 0 0 2px color-mix(in srgb, transparent 50%, var(--card-focus-ring-color)); } [data-fading-out] & { transition: box-shadow 1550ms, background-color 1550ms; --overlay-bg: rgba(0, 0, 255, 0); --overlay-box-shadow: inset 0 0 0 1px transparent; } &[data-focused] { --overlay-box-shadow: inset 0 0 0 1px var(--card-focus-ring-color); } &[data-hovered]:not([data-focused]) { transition: none; --overlay-box-shadow: inset 0 0 0 2px var(--card-focus-ring-color); } /* [data-unmounted] & { --overlay-box-shadow: inset 0 0 0 1px var(--card-focus-ring-color); } */ :link { text-decoration: none; } `,F=i.d(i.F)` bottom: 100%; cursor: pointer; pointer-events: none; position: absolute; right: 0; [data-hovered] & { pointer-events: all; } `,L=i.d(i.q)` background-color: var(--card-focus-ring-color); right: 0; border-radius: 3px; & [data-ui='Text'] { color: #fff; white-space: nowrap; } `,N=i.d(i.F)` bottom: 100%; cursor: pointer; pointer-events: none; position: absolute; left: 0; `,O=i.d(i.F)` display: flex; align-items: center; background-color: var(--card-focus-ring-color); right: 0; border-radius: 3px; & [data-ui='Text'], & [data-sanity-icon] { color: #fff; white-space: nowrap; } `;const U=r=>{const o=t.c(35),{element:s,focused:a,componentResolver:c,node:u,showActions:p,draggable:f}=r,{getField:m,getType:h}=k();let g;o[0]!==h||o[1]!==u?(g=h(u),o[0]=h,o[1]=u,o[2]=g):g=o[2];const y=g;let v;o[3]!==m||o[4]!==u?(v=m(u),o[3]=m,o[4]=u,o[5]=v):v=o[5];const{field:w,parent:b}=v;let x;o[6]!==u?(x="path"in u?function(e){const{id:t,type:n,path:r,baseUrl:o,tool:i,workspace:s}=e;return l.createEditUrl({baseUrl:o,workspace:s,tool:i,type:n,id:t,path:d.p(l.studioPath.fromString(r))})}(u):u.href,o[6]=u,o[7]=x):x=o[7];const j=x,E=function(){const e=n.useContext(C);if(!e)throw new Error("Preview Snapshots context is missing");return e}();let S;e:{if(!("path"in u)){S=void 0;break e}let e;o[8]!==u.id||o[9]!==E?(e=E.find((e=>e._id===u.id))?.title,o[8]=u.id,o[9]=E,o[10]=e):e=o[10],S=e}const _=S;let M;e:{if(!("path"in u)){M=void 0;break e}if(!w||!y){M=void 0;break e}const e=w.value.type,t=!!a;let n;o[11]!==s||o[12]!==w||o[13]!==u||o[14]!==b||o[15]!==y||o[16]!==t||o[17]!==e?(n={document:y,element:s,field:w,focused:t,node:u,parent:b,type:e},o[11]=s,o[12]=w,o[13]=u,o[14]=b,o[15]=y,o[16]=t,o[17]=e,o[18]=n):n=o[18],M=n}const $=M,P=function(e,r){const o=t.c(4);let i;e:{if(!e){i=void 0;break e}let t;if(o[0]!==e||o[1]!==r){const a=r?.(e);if(!a){i=void 0;break e}if(s=a,n.isValidElement(s)){i=a;break e}t=(Array.isArray(a)?a:[a]).map(G),o[0]=e,o[1]=r,o[2]=t,o[3]=i}else t=o[2],i=o[3];i=t}var s;return i}($,c);let I;o[19]!==y?(I=y?.icon?e.jsx("div",{dangerouslySetInnerHTML:{__html:y.icon}}):e.jsx(i.D,{}),o[19]=y,o[20]=I):I=o[20];const D=I;let R,T,q,z;return o[21]!==j||o[22]!==p?(R=p?e.jsx(F,{gap:1,paddingBottom:1,"data-sanity-overlay-element":!0,children:e.jsx(V,{href:j})}):null,o[21]=j,o[22]=p,o[23]=R):R=o[23],o[24]!==f||o[25]!==D||o[26]!==_?(T=_&&e.jsx(N,{gap:1,paddingBottom:1,children:e.jsxs(O,{gap:2,padding:2,children:[f&&e.jsx(i.j,{marginRight:1,children:e.jsx(i.T,{className:"drag-handle",size:0,children:e.jsx(i.r,{})})}),e.jsx(i.T,{size:0,children:D}),e.jsx(i.T,{size:1,weight:"medium",children:_})]})}),o[24]=f,o[25]=D,o[26]=_,o[27]=T):T=o[27],o[28]!==$||o[29]!==P?(q=Array.isArray(P)?P.map(((t,n)=>{const{component:r,props:o}=t;return e.jsx(r,{PointerEvents:i.P,...$,...o},n)})):P,o[28]=$,o[29]=P,o[30]=q):q=o[30],o[31]!==R||o[32]!==T||o[33]!==q?(z=e.jsxs(e.Fragment,{children:[R,T,q]}),o[31]=R,o[32]=T,o[33]=q,o[34]=z):z=o[34],z},W=n.memo((function(r){const o=t.c(17),{focused:i,hovered:s,rect:a,wasMaybeCollapsed:c,enableScrollIntoView:l}=r,d=n.useRef(null),u=n.useRef(!1);let p;const f=`${a.w}px`,m=`${a.h}px`,h=`translate(${a.x}px, ${a.y}px)`;let g;o[0]!==f||o[1]!==m||o[2]!==h?(g={width:f,height:m,transform:h},o[0]=f,o[1]=m,o[2]=h,o[3]=g):g=o[3],p=g;const y=p;let w,b;o[4]!==l||o[5]!==i||o[6]!==c?(w=()=>{if(!u.current&&!c&&!0===i&&d.current&&l){const e=d.current;v.default(d.current,{behavior:t=>{0!==t.length&&e.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})},scrollMode:"if-needed",block:"center",inline:"nearest"})}u.current=!0===i},b=[i,c,l],o[4]=l,o[5]=i,o[6]=c,o[7]=w,o[8]=b):(w=o[7],b=o[8]),n.useEffect(w,b);const x=i?"":void 0,j=s?"":void 0;let k,E;return o[9]!==s||o[10]!==r?(k=s&&e.jsx(U,{...r}),o[9]=s,o[10]=r,o[11]=k):k=o[11],o[12]!==y||o[13]!==x||o[14]!==j||o[15]!==k?(E=e.jsx(A,{"data-focused":x,"data-hovered":j,ref:d,style:y,children:k}),o[12]=y,o[13]=x,o[14]=j,o[15]=k,o[16]=E):E=o[16],E}));function G(e){return"object"==typeof e&&"component"in e?e:{component:e,props:{}}}const V=n.memo((function(r){const o=t.c(6),s=n.useSyncExternalStore(B,K);let a,c;o[0]!==r.href||o[1]!==s?(c=z(r.href,s),o[0]=r.href,o[1]=s,o[2]=c):c=o[2],a=c;const l=a;let d,u;return o[3]===Symbol.for("react.memo_cache_sentinel")?(d=e.jsx(L,{padding:2,children:e.jsx(i.T,{size:1,weight:"medium",children:"Open in Studio"})}),o[3]=d):d=o[3],o[4]!==l?(u=e.jsx(i.j,{as:"a",href:l,target:"_blank",rel:"noopener noreferrer",children:d}),o[4]=l,o[5]=u):u=o[5],u}));function B(e){const t=()=>e();return window.addEventListener("popstate",t),()=>window.removeEventListener("popstate",t)}function K(){return window.location.href}const Y=n=>{const r=t.c(5),{dragGroupRect:o}=n,i=`${o.y}px`,s=`${o.x}px`,a=o.w-1+"px",c=o.h-1+"px";let l;return r[0]!==i||r[1]!==s||r[2]!==a||r[3]!==c?(l=e.jsx("div",{style:{position:"absolute",top:i,left:s,width:a,height:c,border:"1px dashed #f0709b",pointerEvents:"none"}}),r[0]=i,r[1]=s,r[2]=a,r[3]=c,r[4]=l):l=r[4],l};function H(e,t,n){return e*(1-n)+t*n}const X=({dragInsertPosition:t})=>{if(null===t)return;let n=0,r=0,o=0,i=0;const s=.0125;if("horizontal"===(t?.left||t?.right?"horizontal":"vertical")){const{left:e,right:a}=t;if(o=6,a&&e){const t=e.rect.x+e.rect.w,o=a.rect.x,c=Math.min(a.rect.h,e.rect.h)*s;n=H(t,o,.5)-3,r=e.rect.y+c,i=Math.min(a.rect.h,e.rect.h)-2*c}else if(a&&!e){const e=a.rect.h*s;n=a.rect.x-3,r=a.rect.y+e,i=a.rect.h-2*e}else if(e&&!a){const t=e.rect.h*s;n=e.rect.x+e.rect.w-3,r=e.rect.y+t,i=e.rect.h-2*t}}else{const{bottom:e,top:a}=t;if(e&&a){const t=Math.min(a.rect.x,e.rect.x),c=a.rect.y+a.rect.h,l=e.rect.y,d=Math.min(e.rect.w,a.rect.w)*s;i=6,n=t+d,r=H(c,l,.5)-3,o=Math.max(e.rect.w,a.rect.w)-2*d}else if(e&&!a){const t=e.rect.w*s;n=e.rect.x+t,r=e.rect.y-3,o=e.rect.w-2*t,i=6}else if(a&&!e){const e=a.rect.w*s;n=a.rect.x+e,r=a.rect.y+a.rect.h-3,o=a.rect.w-2*e,i=6}}return e.jsx("div",{style:{position:"absolute",width:`${o}px`,height:`${i}px`,transform:`translate(${n}px, ${r}px)`,background:"#556bfc",border:"2px solid white",borderRadius:"999px",zIndex:"999999"}})},Z=i.d.div` --drag-preview-opacity: 0.98; --drag-preview-skeleton-stroke: #ffffff; @media (prefers-color-scheme: dark) { --drag-preview-skeleton-stroke: #383d51; } position: fixed; display: grid; transform: ${({$scaleFactor:e,$width:t,$height:n})=>`translate(calc(var(--drag-preview-x) - ${t/2}px), calc(var(--drag-preview-y) - ${n/2}px)) scale(${e})`}; width: ${({$width:e})=>`${e}px`}; height: ${({$height:e})=>`${e}px`}; z-index: 9999999; opacity: var(--drag-preview-opacity); cursor: move; .drag-preview-content-wrapper { position: relative; width: 100%; height: 100%; container-type: inline-size; } [data-ui='card'] { position: relative; width: 100%; height: 100%; } .drag-preview-skeleton { position: absolute; inset: 0; rect { stroke: var(--drag-preview-skeleton-stroke); } } .drag-preview-handle { position: absolute; top: 4cqmin; left: 4cqmin; width: 6cqmin; fill: var(--drag-preview-handle-fill); } `;const J=n=>{const r=t.c(24),{skeleton:o}=n,s=Math.min(o.maxWidth,window.innerWidth/2),a=o.w>s?s/o.w:1,c=o.offsetX*a,l=o.offsetY*a,d=i.u(),u=i.s(),p=u.radius[(f=o.w,m=0,h=1920,g=1,y=u.radius.length-2,~~function(e,t,n){return e<t?t:e>n?n:e}((f-m)*(y-g)/(h-m)+g,g,y))];var f,m,h,g,y;let v;r[0]!==o.childRects?(v=o.childRects.filter(Q),r[0]=o.childRects,r[1]=v):v=r[1];const w=v;let b;r[2]!==o.childRects?(b=o.childRects.filter(ee),r[2]=o.childRects,r[3]=b):b=r[3];const x=b,j=o.w,k=o.h,E=d?"dark":"light",S=`0 0 ${o.w} ${o.h}`;let _,M,$,P,I;return r[4]!==w||r[5]!==x?(_=[...w,...x],r[4]=w,r[5]=x,r[6]=_):_=r[6],r[7]!==_||r[8]!==u.color.skeleton.from?(M=_.map(((t,n)=>e.jsx("rect",{x:t.x,y:t.y,width:t.w,height:t.h,fill:u.color.skeleton.from},n))),r[7]=_,r[8]=u.color.skeleton.from,r[9]=M):M=r[9],r[10]!==S||r[11]!==M?($=e.jsx("div",{className:"drag-preview-content-wrapper",children:e.jsx("svg",{className:"drag-preview-skeleton",viewBox:S,children:M})}),r[10]=S,r[11]=M,r[12]=$):$=r[12],r[13]!==p||r[14]!==E||r[15]!==$?(P=e.jsx(i.q,{radius:p,shadow:4,overflow:"hidden",tone:"transparent",scheme:E,children:$}),r[13]=p,r[14]=E,r[15]=$,r[16]=P):P=r[16],r[17]!==c||r[18]!==l||r[19]!==a||r[20]!==o.h||r[21]!==o.w||r[22]!==P?(I=e.jsx(Z,{$width:j,$height:k,$offsetX:c,$offsetY:l,$scaleFactor:a,children:P}),r[17]=c,r[18]=l,r[19]=a,r[20]=o.h,r[21]=o.w,r[22]=P,r[23]=I):I=r[23],I};function Q(e){return"IMG"===e.tagName}function ee(e){return"IMG"!==e.tagName}const te=i.d(i.q)` position: fixed; bottom: 2rem; left: 2rem; `,ne=()=>{const n=t.c(2);let r,o;return n[0]===Symbol.for("react.memo_cache_sentinel")?(r={zIndex:"999999"},n[0]=r):r=n[0],n[1]===Symbol.for("react.memo_cache_sentinel")?(o=e.jsx(te,{padding:2,shadow:2,radius:2,style:r,children:e.jsxs(i.F,{align:"center",gap:2,children:[e.jsx(i.H,{keys:["Shift"]}),e.jsx(i.T,{size:1,children:"Zoom Out"}),e.jsx(i.E,{})]})}),n[1]=o):o=n[1],o},re=(e,t)=>{const{type:n}=t;switch(n){case"element/register":return e.find((e=>e.id===t.id))?e:[...e,{id:t.id,activated:!1,element:t.element,focused:!1,hovered:!1,rect:t.rect,sanity:t.sanity,dragDisabled:t.dragDisabled}];case"element/activate":return e.map((e=>e.id===t.id?{...e,activated:!0}:e));case"element/update":return e.map((e=>e.id===t.id?{...e,sanity:t.sanity,rect:t.rect}:e));case"element/unregister":return e.filter((e=>e.id!==t.id));case"element/deactivate":return e.map((e=>e.id===t.id?{...e,activated:!1,hovered:!1}:e));case"element/mouseenter":return e.map((e=>e.id===t.id?{...e,rect:t.rect,hovered:!0}:{...e,hovered:!1}));case"element/mouseleave":return e.map((e=>e.id===t.id?{...e,hovered:!1}:e));case"element/updateRect":return e.map((e=>e.id===t.id?{...e,rect:t.rect}:e));case"element/click":return e.map((e=>({...e,focused:e.id===t.id&&"clicked"})));case"overlay/blur":case"presentation/blur":return e.map((e=>({...e,focused:!1})));case"presentation/focus":{const n=e.find((e=>"clicked"===e.focused));return e.map((e=>{const r="path"in e.sanity&&e.sanity.id===t.data.id&&e.sanity.path===t.data.path;return n&&e===n&&r?e:{...e,focused:r&&n?"duplicate":r}}))}default:return e}};function oe(e,t){const{type:n}=t;let{contextMenu:r,focusPath:o,perspective:i,isDragging:s,dragInsertPosition:a,dragShowMinimap:c,dragShowMinimapPrompt:l,dragSkeleton:d,dragMinimapTransition:u,dragGroupRect:p}=e,f=!1;if("presentation/focus"===n){const n=e.focusPath;o=t.data.path,n!==o&&(f=n.slice(o.length).startsWith("["))}return"presentation/perspective"===n&&(i=t.data.perspective),"element/contextmenu"===n&&(r="sanity"in t?{node:t.sanity,position:t.position}:null),("element/click"===n||"element/mouseleave"===n||"overlay/blur"===n||"presentation/blur"===n||"presentation/focus"===n)&&(r=null),"overlay/dragUpdateInsertPosition"===n&&(a=t.insertPosition),"overlay/dragStart"===n&&(s=!0),"overlay/dragUpdateSkeleton"===t.type&&(d=t.skeleton),"overlay/dragEnd"===n&&(s=!1),"overlay/dragToggleMinimapPrompt"===t.type&&(l=t.display),"overlay/dragStartMinimapTransition"===n&&(u=!0),"overlay/dragEndMinimapTransition"===n&&(u=!1),"overlay/dragUpdateGroupRect"===n&&(p=t.groupRect),"overlay/dragToggleMinimap"===n&&(c=t.display),{...e,contextMenu:r,elements:re(e.elements,t),dragInsertPosition:a,dragSkeleton:d,dragGroupRect:p,isDragging:s,focusPath:o,perspective:i,wasMaybeCollapsed:f,dragShowMinimap:c,dragShowMinimapPrompt:l,dragMinimapTransition:u}}const ie=function(r){const o=t.c(7),{comlink:i,children:s}=r;let a;o[0]===Symbol.for("react.memo_cache_sentinel")?(a=[],o[0]=a):a=o[0];const[c,l]=n.useState(a);let d,u,p;o[1]!==i?(d=()=>i?.on("presentation/preview-snapshots",(e=>{l(e.snapshots)})),u=[i],o[1]=i,o[2]=d,o[3]=u):(d=o[2],u=o[3]),n.useEffect(d,u),p=c;const f=p;let m;return o[4]!==s||o[5]!==f?(m=e.jsx(C.Provider,{value:f,children:s}),o[4]=s,o[5]=f,o[6]=m):m=o[6],m};function se(e){return"path"in e}function ae(e){return"document"===e.type}function ce(e){return"type"===e.type}const le=function(r){const o=t.c(27),{comlink:i,children:s,elements:a}=r;let c;o[0]===Symbol.for("react.memo_cache_sentinel")?(c=new Map,o[0]=c):c=o[0];const[l,d]=n.useState(c),[u,p]=n.useState(null);let f;o[1]!==i?(f=async e=>{if(i)try{const t=await i.fetch("visual-editing/schema",void 0,{signal:e,suppressWarnings:!0});p(t.schema)}catch{}},o[1]=i,o[2]=f):f=o[2];const m=f;let h,g,y;o[3]!==i||o[4]!==m?(h=()=>{if(!i)return;const e=new AbortController,t=i.onStatus((()=>{m(e.signal)}),"connected");return()=>{e.abort(),t()}},g=[i,m],o[3]=i,o[4]=m,o[5]=h,o[6]=g):(h=o[5],g=o[6]),n.useEffect(h,g),o[7]===Symbol.for("react.memo_cache_sentinel")?(y=[],o[7]=y):y=o[7];const v=n.useRef(y);let w,b,x;o[8]!==i||o[9]!==a?(w=()=>{const e=new AbortController,t=function(e){return e.reduce(((e,t)=>{const{sanity:n}=t;if(!("id"in n)||!n.path.includes("[_key=="))return e;const r=function(e){return e.split(".").toReversed().reduce(((e,t)=>e.length?[t,...e]:t.includes("[_key==")?[t]:[]),[]).join(".")}(n.path);return e.find((e=>e.id===n.id&&e.path===r))||e.push({id:n.id,path:r}),e}),[])}(a);return t.some((e=>!v.current.find((t=>{const{id:n,path:r}=t;return n===e.id&&r===e.path}))))&&(async(e,t)=>{if(e.length&&i)try{const n=await i.fetch("visual-editing/schema-union-types",{paths:e},{signal:t,suppressWarnings:!0});d(n.types),v.current=e}catch{}})(t,e.signal),()=>e.abort()},b=[i,a],o[8]=i,o[9]=a,o[10]=w,o[11]=b):(w=o[10],b=o[11]),n.useEffect(w,b),o[12]!==u?(x=(e,t)=>{const n=t||"document";if(!u||"string"!=typeof e&&(!se(e)||!Array.isArray(u)))return;const r="string"==typeof e?e:e.type,o="document"===n?ae:ce;return u.filter(o).find((e=>e.name===r))},o[12]=u,o[13]=x):x=o[13];const k=x;let E;o[14]!==k||o[15]!==l?(E=e=>{if(!se(e))return{field:void 0,parent:void 0};const t=k(e);if(!t)return{field:void 0,parent:void 0};const n=e.path.split(".").flatMap(de);try{return function t(n,r,o,i){const s=void 0===i?[]:i;if(!n)return{field:void 0,parent:void 0};const[a,...c]=r;if("fields"in n){const e=n.fields[a];if(!e&&"rest"in n)return t(n.rest,r,n,s);if(!c.length)return{field:e,parent:o};if(!e)throw new Error(`[@sanity/visual-editing] No field could be resolved at path: "${[...s,...r].join(".")}"`);return t(e.value,c,n,[...s,a])}if("array"===n.type)return t(n.of,r,n,s);if("arrayItem"===n.type)return c.length?t(n.value,c,n,[...s,a]):{field:n,parent:o};if("union"===n.type){const r=a.startsWith("[_key==")?l?.get(e.id)?.get([s.join("."),a].filter(Boolean).join("")):a;return t(n.of.find((e=>"unionOption"===e.type?e.name===r:e)),c,n,[...s,a])}if("unionOption"===n.type)return a?t(n.value,r,n,s):{field:n,parent:o};if("inline"===n.type)return t(k(n.name,"type").value,r,n,s);throw new Error(`[@sanity/visual-editing] No field could be resolved at path: "${[...s,...r].join(".")}"`)}(t,n,void 0)}catch(e){const t=e;return t instanceof Error&&console.warn(t.message),{field:void 0,parent:void 0}}},o[14]=k,o[15]=l,o[16]=E):E=o[16];const S=E;let _,M,$;o[17]!==u?(M=u||[],o[17]=u,o[18]=M):M=o[18],o[19]!==S||o[20]!==k||o[21]!==l||o[22]!==M?($={getField:S,getType:k,resolvedTypes:l,schema:M},o[19]=S,o[20]=k,o[21]=l,o[22]=M,o[23]=$):$=o[23],_=$;const P=_;let I;return o[24]!==s||o[25]!==P?(I=e.jsx(j.Provider,{value:P,children:s}),o[24]=s,o[25]=P,o[26]=I):I=o[26],I};function de(e){return e.includes("[")?e.split(/(\[.+\])/,2):[e]}const ue=(e=>{let t=e;const n=new Set;return{getState:()=>t,setState:e=>{t=e(t),n.forEach((e=>e()))},subscribe:e=>(n.add(e),()=>n.delete(e))}})({}),pe=r=>{const o=t.c(11),{comlink:i,children:s}=r;let c,l,d,u,p,f;o[0]!==i?(c=()=>i?.on("presentation/shared-state",fe),l=[i],o[0]=i,o[1]=c,o[2]=l):(c=o[1],l=o[2]),n.useEffect(c,l),o[3]!==i?(d=()=>{(async function(){const e=await(i?.fetch("visual-editing/shared-state",void 0,{suppressWarnings:!0}));e&&ue.setState((()=>e.state))})().catch(me)},u=[i],o[3]=i,o[4]=d,o[5]=u):(d=o[4],u=o[5]),n.useEffect(d,u),o[6]!==i?(f={comlink:i,store:ue},o[6]=i,o[7]=f):f=o[7],p=f;const m=p;let h;return o[8]!==s||o[9]!==m?(h=e.jsx(a.S.Provider,{value:m,children:s}),o[8]=s,o[9]=m,o[10]=h):h=o[10],h};function fe(e){"value"in e?ue.setState((t=>({...t,[e.key]:e.value}))):ue.setState((t=>Object.fromEntries(Object.entries(t).filter((t=>{const[n]=t;return n!==e.key})))))}function me(e){console.debug(e),console.warn("[@sanity/visual-editing]: Failed to fetch shared state. Check your version of `@sanity/presentation` is up-to-date")}const he={"Visual Editing Drag Sequence Completed":(ge={name:"Visual Editing Drag Sequence Completed",description:"An array is successfully reordered using drag and drop.",version:1},{type:"log",name:ge.name,version:ge.version,description:ge.description,schema:void 0})};var ge;function ye(){}function ve(e){return e.id}function we(e){return!!e}function be(e){const{sanity:t}=e;return"id"in t?{...t,id:"isDraft"in t?`${d.D}${t.id}`:t.id}:null}const xe=i.d.div` background-color: transparent; direction: ltr; inset: 0; pointer-events: none; position: absolute; width: 100%; height: 100%; z-index: ${({$zIndex:e})=>e??"9999999"}; `;function je(e){let t,n;return t=requestAnimationFrame((()=>{n=requestAnimationFrame(e)})),()=>{void 0!==t&&cancelAnimationFrame(t),void 0!==n&&cancelAnimationFrame(n)}}const ke=e=>{const r=t.c(8),{documentIds:o}=e;let i;r[0]===Symbol.for("react.memo_cache_sentinel")?(i=[],r[0]=i):i=r[0];const[a,c]=n.useState(i);let l,d;r[1]!==o?(l=()=>{c((e=>{const t=Array.from(new Set(o));return e.length===t.length&&0===e.reduce(_e,t)?.length?e:t}))},d=[o],r[1]=o,r[2]=l,r[3]=d):(l=r[2],d=r[3]),n.useEffect(l,d);const u=s.b();let p,f;return r[4]!==u||r[5]!==a?(p=()=>{for(const e of a)u.send({type:"observe",documentId:s.j(e)}),u.send({type:"observe",documentId:s.c(e)});return()=>{for(const e of a)u.send({type:"unobserve",documentId:s.j(e)}),u.send({type:"unobserve",documentId:s.c(e)})}},f=[u,a],r[4]=u,r[5]=a,r[6]=p,r[7]=f):(p=r[6],f=r[7]),n.useEffect(p,f),null},Ee=e=>{const r=t.c(11),{comlink:o,dispatch:i,inFrame:l,onDrag:d,overlayEnabled:u,rootElement:p}=e,{dispatchDragEndEvent:f}=function(){const e=t.c(4),{getDocument:r}=s.u();let o,i;e[0]!==r?(o=()=>{const e=e=>{const{insertPosition:t,target:n,preventInsertDefault:o}=e.detail;if(o)return;const i=function(e){if(e){const{top:t,right:n,bottom:r,left:o}=e;if(o||t)return{node:(o??t).sanity,position:"after"};if(n||r)return{node:(n??r).sanity,position:"before"}}}(t);if(i){const e=r(n.id),{node:t,position:o}=i,{key:a,hasExplicitKey:l}=s.g(n),{path:d,key:u}=s.g(t);d&&u&&u!==a&&e.patch((async e=>{const{getSnapshot:t}=e,r=await t(),i=s.d(r,n.path);return l?[c.at(d,c.remove({_key:a})),c.at(d,c.insert(i,o,{_key:u}))]:[c.at(d,c.remove(~~a)),c.at(d,c.insert(i,o,u>a?~~u-1:~~u))]}))}};return window.addEventListener("sanity/dragEnd",e),()=>{window.removeEventListener("sanity/dragEnd",e)}},i=[r],e[0]=r,e[1]=o,e[2]=i):(o=e[1],i=e[2]),n.useEffect(o,i);const a=x;let l;return e[3]===Symbol.for("react.memo_cache_sentinel")?(l={dispatchDragEndEvent:a},e[3]=l):l=e[3],l}();let m;r[0]!==o||r[1]!==i||r[2]!==f||r[3]!==d?(m=e=>{if("element/click"===e.type){const{sanity:t}=e;o?.post("visual-editing/focus",t)}else if("overlay/activate"===e.type)o?.post("visual-editing/toggle",{enabled:!0});else if("overlay/deactivate"===e.type)o?.post("visual-editing/toggle",{enabled:!1});else if("overlay/dragEnd"===e.type){const{insertPosition:t,target:n,dragGroup:r,flow:i,preventInsertDefault:s}=e;f({insertPosition:t,target:n,dragGroup:r,flow:i,preventInsertDefault:s}),t&&function(e,t,n){if(!n)return;const r=he[e];if(!r)throw new Error(`Telemetry event: ${e} does not exist`);n.post("visual-editing/telemetry-log",{event:r,data:t})}("Visual Editing Drag Sequence Completed",null,o)}else{if("overlay/dragUpdateCursorPosition"===e.type)return void d(e.x,e.y);if("overlay/setCursor"===e.type){const{element:t,cursor:n}=e;n?t.style.cursor=n:t.style.removeProperty("cursor")}}i(e)},r[0]=o,r[1]=i,r[2]=f,r[3]=d,r[4]=m):m=r[4];const h=function(e,r,o){const i=t.c(6),c=n.useRef(),l=s.i();let d,u;return i[0]!==e||i[1]!==r||i[2]!==o||i[3]!==l?(d=()=>{if(e)return c.current=a.c({handler:r,overlayElement:e,inFrame:o,optimisticActorReady:l}),()=>{c.current?.destroy(),c.current=void 0}},u=[e,r,o,l],i[0]=e,i[1]=r,i[2]=o,i[3]=l,i[4]=d,i[5]=u):(d=i[4],u=i[5]),n.useEffect(d,u),c}(p,m,l);let g,y;return r[5]!==h.current||r[6]!==u?(g=()=>{u?h.current?.activate():h.current?.deactivate()},r[5]=h.current,r[6]=u,r[7]=g):g=r[7],r[8]!==h||r[9]!==u?(y=[h,u],r[8]=h,r[9]=u,r[10]=y):y=r[10],n.useEffect(g,y),null},Se=r=>{const c=t.c(70),{comlink:l,componentResolver:d,inFrame:u,zIndex:p}=r,[f,m]=n.useState(),h=i.u();let g;c[0]===Symbol.for("react.memo_cache_sentinel")?(g={contextMenu:null,dragInsertPosition:null,dragShowMinimap:!1,dragShowMinimapPrompt:!1,dragSkeleton:null,elements:[],focusPath:"",isDragging:!1,perspective:"published",wasMaybeCollapsed:!1,dragMinimapTransition:!1,dragGroupRect:null},c[0]=g):g=c[0];const[y,v]=n.useReducer(oe,g),{contextMenu:w,dragInsertPosition:b,dragShowMinimap:x,dragShowMinimapPrompt:j,dragSkeleton:k,elements:E,isDragging:S,perspective:_,wasMaybeCollapsed:M,dragMinimapTransition:$,dragGroupRect:P}=y,[I,D]=n.useState(null),[R,T]=n.useState(!0);let z,C,A;c[1]!==l?(z=()=>{const e=[l?.on("presentation/focus",(e=>{v({type:"presentation/focus",data:e})})),l?.on("presentation/blur",(e=>{v({type:"presentation/blur",data:e})})),l?.on("presentation/toggle-overlay",(()=>{T(Me)})),l?.onStatus((e=>{m(e)}))].filter(Boolean);return()=>e.forEach($e)},C=[l],c[1]=l,c[2]=z,c[3]=C):(z=c[2],C=c[3]),n.useEffect(z,C),function(e,r){const o=t.c(4);let i,s;o[0]!==e||o[1]!==r?(i=()=>{const t=new AbortController;e?.fetch("visual-editing/fetch-perspective",void 0,{signal:t.signal,suppressWarnings:!0}).then((e=>{r({type:"presentation/perspective",data:e})})).catch(ye);const n=e?.on("presentation/perspective",(e=>{r({type:"presentation/perspective",data:e})}));return()=>{n?.(),t.abort()}},s=[e,r],o[0]=e,o[1]=r,o[2]=i,o[3]=s):(i=o[2],s=o[3]),n.useEffect(i,s)}(l,v),function(e,r,o){const i=t.c(7),s=n.useRef(void 0);let a;i[0]!==e?(a=(t,n)=>{e?.post("visual-editing/documents",{documents:t,perspective:n})},i[0]=e,i[1]=a):a=i[1];const c=a;let l,d;i[2]!==r||i[3]!==o||i[4]!==c?(l=()=>{const e=r.map(be).filter(we),t=new Set(e.map(ve));if(!s.current||!function(e,t){if(e===t)return!0;if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}(t,s.current.nodeIds)||o!==s.current.perspective){const n=Array.from(t).map((t=>{const n=e.find((e=>e.id===t)),{type:r,projectId:o,dataset:i}=n;return o&&i?{_id:t,_type:r,_projectId:o,_dataset:i}:{_id:t,_type:r}}));s.current={nodeIds:t,perspective:o},c(n,o)}},d=[r,o,c],i[2]=r,i[3]=o,i[4]=c,i[5]=l,i[6]=d):(l=i[5],d=i[6]),n.useEffect(l,d)}(l,E,_),c[4]!==I?(A=(e,t)=>{I&&(I.style.setProperty("--drag-preview-x",`${e}px`),I.style.setProperty("--drag-preview-y",t-window.scrollY+"px"))},c[4]=I,c[5]=A):A=c[5];const F=A;let L,N;c[6]===Symbol.for("react.memo_cache_sentinel")?(L=()=>{const e=Pe,t=e=>{o.i(e)&&T(Ie)},n=e=>{o.i(e)&&T(De),o.a(["mod","\\"],e)&&T(Re)};return window.addEventListener("click",e),window.addEventListener("keydown",n),window.addEventListener("keyup",t),()=>{window.removeEventListener("click",e),window.removeEventListener("keydown",n),window.removeEventListener("keyup",t)}},N=[T],c[6]=L,c[7]=N):(L=c[6],N=c[7]),n.useEffect(L,N);const[O,U]=n.useState(!1),[G,V]=n.useState(!1),B=n.useRef(void 0);let K,H,Z,Q;c[8]!==R?(K=()=>{if(R)return je((()=>{U(!0),je((()=>{V(!0),B.current=setTimeout((()=>{V(!1),U(!1)}),1500)}))}));B.current&&(clearTimeout(B.current),U(!1),V(!1))},H=[R],c[8]=R,c[9]=K,c[10]=H):(K=c[9],H=c[10]),n.useEffect(K,H),c[11]!==E?(Q=E.flatMap(Te),c[11]=E,c[12]=Q):Q=c[12],Z=Q;const ee=Z;let te;c[13]===Symbol.for("react.memo_cache_sentinel")?(te=()=>{v({type:"overlay/blur"})},c[13]=te):te=c[13];const re=te,se=s.i();let ae;ae=se?d:void 0;const ce=ae;let de;e:{if(u&&"connected"!==f||S){let e;c[14]===Symbol.for("react.memo_cache_sentinel")?(e=[],c[14]=e):e=c[14],de=e;break e}let t;c[15]!==ce||c[16]!==$||c[17]!==x||c[18]!==E||c[19]!==u||c[20]!==S||c[21]!==se||c[22]!==M?(t=E.filter(qe).map((t=>{const{id:n,element:r,focused:o,hovered:i,rect:s,sanity:c,dragDisabled:l}=t,d=!l&&!!r.getAttribute("data-sanity")&&se&&E.some((e=>"id"in e.sanity&&"id"in c&&(a.s(e.sanity,c)&&e.sanity.path!==c.path)));return e.jsx(W,{componentResolver:ce,element:r,enableScrollIntoView:!S&&!$&&!x,focused:o,hovered:i,node:c,rect:s,showActions:!u,draggable:d,isDragging:S||$,wasMaybeCollapsed:o&&M},n)})),c[15]=ce,c[16]=$,c[17]=x,c[18]=E,c[19]=u,c[20]=S,c[21]=se,c[22]=M,c[23]=t):t=c[23],de=t}const ue=de,fe=h?"dark":"light",me=G?"":void 0,he=O?"":void 0;let ge,Se,_e,ze,Ce,Ae,Fe,Le,Ne,Oe,Ue;return c[24]!==ee||c[25]!==_?(ge=e.jsx(ke,{documentIds:ee,perspective:_}),c[24]=ee,c[25]=_,c[26]=ge):ge=c[26],c[27]!==l||c[28]!==u||c[29]!==R||c[30]!==I||c[31]!==F?(Se=e.jsx(Ee,{comlink:l,dispatch:v,inFrame:u,onDrag:F,overlayEnabled:R,rootElement:I}),c[27]=l,c[28]=u,c[29]=R,c[30]=I,c[31]=F,c[32]=Se):Se=c[32],c[33]!==w?(_e=w&&e.jsx(q,{...w,onDismiss:re}),c[33]=w,c[34]=_e):_e=c[34],c[35]!==P||c[36]!==b||c[37]!==$||c[38]!==j||c[39]!==S?(ze=S&&!$&&e.jsxs(e.Fragment,{children:[b&&e.jsx(X,{dragInsertPosition:b}),j&&e.jsx(ne,{}),P&&e.jsx(Y,{dragGroupRect:P})]}),c[35]=P,c[36]=b,c[37]=$,c[38]=j,c[39]=S,c[40]=ze):ze=c[40],c[41]!==k||c[42]!==S?(Ce=S&&k&&e.jsx(J,{skeleton:k}),c[41]=k,c[42]=S,c[43]=Ce):Ce=c[43],c[44]!==ue||c[45]!==me||c[46]!==he||c[47]!==ge||c[48]!==Se||c[49]!==_e||c[50]!==ze||c[51]!==Ce||c[52]!==p?(Ae=e.jsxs(xe,{"data-fading-out":me,"data-overlays":he,ref:D,$zIndex:p,children:[ge,Se,_e,ue,ze,Ce]}),c[44]=ue,c[45]=me,c[46]=he,c[47]=ge,c[48]=Se,c[49]=_e,c[50]=ze,c[51]=Ce,c[52]=p,c[53]=Ae):Ae=c[53],c[54]!==l||c[55]!==Ae?(Fe=e.jsx(pe,{comlink:l,children:Ae}),c[54]=l,c[55]=Ae,c[56]=Fe):Fe=c[56],c[57]!==l||c[58]!==Fe?(Le=e.jsx(ie,{comlink:l,children:Fe}),c[57]=l,c[58]=Fe,c[59]=Le):Le=c[59],c[60]!==l||c[61]!==E||c[62]!==Le?(Ne=e.jsx(le,{comlink:l,elements:E,children:Le}),c[60]=l,c[61]=E,c[62]=Le,c[63]=Ne):Ne=c[63],c[64]!==I||c[65]!==Ne?(Oe=e.jsx(i.L,{children:e.jsx(i.t,{element:I,children:Ne})}),c[64]=I,c[65]=Ne,c[66]=Oe):Oe=c[66],c[67]!==fe||c[68]!==Oe?(Ue=e.jsx(i.v,{scheme:fe,theme:i.w,tone:"transparent",children:Oe}),c[67]=fe,c[68]=Oe,c[69]=Ue):Ue=c[69],Ue};function _e(e,t){return e.filter((e=>e!==t))}function Me(e){return!e}function $e(e){return e()}function Pe(e){const t=e.target;if((i.x(t)||i.y(t)&&t.closest("a"))&&e.altKey){e.preventDefault(),e.stopPropagation();const t=new MouseEvent(e.type,{...e,altKey:!1,bubbles:!0,cancelable:!0});e.target?.dispatchEvent(t)}}function Ie(e){return!e}function De(e){return!e}function Re(e){return!e}function Te(e){return"id"in e.sanity?[e.sanity.id]:[]}function qe(e){return e.activated||e.focused}const ze=e=>{const r=t.c(4),{comlink:o,refresh:i}=e,s=n.useRef(0),a=n.useRef(0);let c,l;return r[0]!==o||r[1]!==i?(c=()=>o.on("presentation/refresh",(e=>{if("manual"===e.source){clearTimeout(s.current);const t=i(e);if(!1===t)return;let n;o.post("visual-editing/refreshing",e),n=!1,s.current=window.setTimeout((()=>{o.post("visual-editing/refreshed",e),n=!0}),3e3),t?.finally?.((()=>{n||(clearTimeout(s.current),o.post("visual-editing/refreshed",e))}))}else if("mutation"===e.source){clearTimeout(a.current);const t=i(e);if(!1===t)return;o.post("visual-editing/refreshing",e),a.current=window.setTimeout((()=>{const t=i(e);!1!==t&&(o.post("visual-editing/refreshing",e),t?.finally?.((()=>{o.post("visual-editing/refreshed",e)}))||o.post("visual-editing/refreshed",e))}),1e3),t?.finally?.((()=>{o.post("visual-editing/refreshed",e)}))||o.post("visual-editing/refreshed",e)}})),l=[o,i],r[0]=o,r[1]=i,r[2]=c,r[3]=l):(c=r[2],l=r[3]),n.useEffect(c,l),null};function Ce(e){const r=t.c(3);let o,i;r[0]!==e?(o=()=>{if(!e)return;const t=function(e){const t=new h.ReplaySubject(1),n=new h.Subject;return e.fetch("visual-editing/snapshot-welcome",void 0,{suppressWarnings:!0}).then((e=>{t.next(e.event)})).catch((()=>{})),e.on("presentation/snapshot-event",(e=>{"reconnect"===e.event.type&&t.next(e.event),"mutation"===e.event.type&&n.next(e.event)})),h.merge(t,n)}(e),n=g.createDatasetMutator(e),r=f.createActor(n,{input:{client:{withConfig:Fe},sharedListener:t}});r.start();const o=new AbortController,i=e.onStatus((()=>{e.fetch("visual-editing/features",void 0,{signal:o.signal,suppressWarnings:!0}).then((e=>{e.features.optimistic&&m.s(r)})).catch(Ae)}),"connected");return()=>{r.stop(),o.abort(),i()}},i=[e],r[0]=e,r[1]=o,r[2]=i):(o=r[1],i=r[2]),n.useEffect(o,i)}function Ae(){console.warn("[@sanity/visual-editing] Package version mismatch detected: Please update your Sanity studio to prevent potential compatibility issues.")}function Fe(){}const Le=i=>{const s=t.c(20),{components:a,history:c,portal:l,refresh:d,zIndex:u}=i,f=void 0===l||l,[m,h]=n.useState(null);let g,y;s[0]===Symbol.for("react.memo_cache_sentinel")?(g=()=>h(window.self!==window.top||!!window.opener),y=[],s[0]=g,s[1]=y):(g=s[0],y=s[1]),n.useEffect(g,y);const[v,x]=n.useState(null);let j,k;s[2]!==f?(j=()=>{if(!1===f)return;const e=document.createElement("sanity-visual-editing");return document.documentElement.appendChild(e),x(e),()=>{x(null),document.documentElement.contains(e)&&document.documentElement.removeChild(e)}},k=[f],s[2]=f,s[3]=j,s[4]=k):(j=s[3],k=s[4]),n.useEffect(j,k);const E=function(e){const r=t.c(3),i=void 0===e||e,[s,a]=n.useState();let c,l;return r[0]!==i?(c=()=>{if(!i)return;const e=p.createNode({name:"visual-editing",connectTo:"presentation"},p.createNodeMachine().provide({actors:o.b()}));let t;t=0;const n=e.start(),r=e.onStatus((()=>{t=window.setTimeout((()=>{a(e)}),3e3)}),"connected");return()=>{clearTimeout(t),r(),n(),a(void 0)}},l=[i],r[0]=i,r[1]=c,r[2]=l):(c=r[1],l=r[2]),n.useEffect(c,l),s}(!0===m);let S,_,M;Ce(E),s[5]!==E||s[6]!==a||s[7]!==m||s[8]!==u?(S=null!==m&&e.jsx(Se,{comlink:E,componentResolver:a,inFrame:m,zIndex:u}),s[5]=E,s[6]=a,s[7]=m,s[8]=u,s[9]=S):S=s[9],s[10]!==E||s[11]!==c||s[12]!==d?(_=E&&e.jsxs(e.Fragment,{children:[e.jsx(w,{comlink:E,history:c}),e.jsx(b,{comlink:E}),d&&e.jsx(ze,{comlink:E,refresh:d})]}),s[10]=E,s[11]=c,s[12]=d,s[13]=_):_=s[13],s[14]!==S||s[15]!==_?(M=e.jsxs(e.Fragment,{children:[S,_]}),s[14]=S,s[15]=_,s[16]=M):M=s[16];const $=M;if(!1===f||!v)return $;let P;return s[17]!==$||s[18]!==v?(P=r.createPortal($,v),s[17]=$,s[18]=v,s[19]=P):P=s[19],P};Le.displayName="VisualEditing",exports.createDataAttribute=o.c,exports.useDocuments=s.u,exports.useOptimisticActor=s.b,exports.useOptimistic=a.u,exports.emptyActor=m.e,exports.createDatasetMutator=g.createDatasetMutator,exports.createDocumentMutator=g.createDocumentMutator,exports.VisualEditing=Le;//# sourceMappingURL=index.cjs.map