graview 0.1.23 → 0.1.24

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.
Files changed (80) hide show
  1. package/dist/preview/chunk.2STFOAXA.js +1 -0
  2. package/dist/preview/chunk.2VX6H2LL.js +1 -0
  3. package/dist/preview/chunk.33C6VZAD.js +1 -0
  4. package/dist/preview/{chunk.L5G5DTFX.js → chunk.3O2QU7LU.js} +1 -1
  5. package/dist/preview/chunk.3TNQPFIK.js +1 -0
  6. package/dist/preview/{chunk.SQD7ZPEJ.js → chunk.42U4UBDE.js} +1 -1
  7. package/dist/preview/{chunk.Q7WQ5UIE.js → chunk.47GRZWQN.js} +1 -1
  8. package/dist/preview/{chunk.HCK6IHGP.js → chunk.53RZI5PM.js} +1 -1
  9. package/dist/preview/{chunk.DO4P2UK4.js → chunk.54NSG7BX.js} +1 -1
  10. package/dist/preview/{chunk.6C7SJJQO.js → chunk.6MCK7K3M.js} +1 -1
  11. package/dist/preview/{chunk.DAKED3WK.js → chunk.6O67NOZR.js} +1 -1
  12. package/dist/preview/{chunk.ENMNLR73.js → chunk.6XBLDV4A.js} +1 -1
  13. package/dist/preview/chunk.7EN53F4Q.js +9 -0
  14. package/dist/preview/chunk.7Q7S7YCA.js +1 -0
  15. package/dist/preview/{chunk.BQV62QEL.js → chunk.7U7Q3HIS.js} +1 -1
  16. package/dist/preview/{chunk.6CLHFNDM.js → chunk.AKOC43TV.js} +14 -14
  17. package/dist/preview/{chunk.7YCQZJGB.js → chunk.AXACXB4D.js} +1 -1
  18. package/dist/preview/{chunk.ZKUXPS44.js → chunk.BLAODPYJ.js} +1 -1
  19. package/dist/preview/chunk.BNSY25SG.js +1 -0
  20. package/dist/preview/{chunk.XYZ7KAMZ.js → chunk.C7KLA2MW.js} +1 -1
  21. package/dist/preview/{chunk.WGNF4E67.js → chunk.D3CYTXNZ.js} +1 -1
  22. package/dist/preview/chunk.DQL3WKR3.js +1 -0
  23. package/dist/preview/chunk.EUCXNNCZ.js +107 -0
  24. package/dist/preview/{chunk.VVZ2Z7OS.js → chunk.FKQTQ3FV.js} +1 -1
  25. package/dist/preview/{chunk.DJ26NOOW.js → chunk.FRNIWOKD.js} +1 -1
  26. package/dist/preview/chunk.GDIRDJF3.js +1 -0
  27. package/dist/preview/chunk.H3HRTEW7.js +1 -0
  28. package/dist/preview/{chunk.SCLIBKLS.js → chunk.HAQ4KHRY.js} +1 -1
  29. package/dist/preview/{chunk.JE4VH767.js → chunk.HDEQXJWX.js} +1 -1
  30. package/dist/preview/chunk.HH6WIUK3.js +8 -0
  31. package/dist/preview/{chunk.ZFUQA3KT.js → chunk.ISAMJ7AK.js} +1 -1
  32. package/dist/preview/{chunk.FLDFRFDH.js → chunk.KKTHQJ6F.js} +2 -2
  33. package/dist/preview/chunk.KWSXL3A2.js +1 -0
  34. package/dist/preview/{chunk.LGUV2J6Q.js → chunk.LW7KV5SL.js} +1 -1
  35. package/dist/preview/{chunk.R5K7NK4U.js → chunk.MYCTNK6D.js} +1 -1
  36. package/dist/preview/chunk.NRWJ6PLU.js +1 -0
  37. package/dist/preview/{chunk.M4XNUM2A.js → chunk.OXODTBOP.js} +1 -1
  38. package/dist/preview/{chunk.ACZGK7LQ.js → chunk.PRXKRG6O.js} +1 -1
  39. package/dist/preview/{chunk.EQOU4POV.js → chunk.RGXNZ7PN.js} +1 -1
  40. package/dist/preview/chunk.RT3XFR6E.js +20 -0
  41. package/dist/preview/{chunk.ELEHYYCN.js → chunk.S4FO7Y2Q.js} +1 -1
  42. package/dist/preview/{chunk.3MLQ3Q5X.js → chunk.TDW6QEG4.js} +1 -1
  43. package/dist/preview/{chunk.VNC6H6IM.js → chunk.TWFYXD3P.js} +1 -1
  44. package/dist/preview/{chunk.AZG6V3PF.js → chunk.TWGB347L.js} +1 -1
  45. package/dist/preview/chunk.UEBBASQW.js +1 -0
  46. package/dist/preview/chunk.UIZWVBJ7.js +1 -0
  47. package/dist/preview/{chunk.FLJP3BGP.js → chunk.UM5IPM22.js} +1 -1
  48. package/dist/preview/{chunk.NOXC454O.js → chunk.VLNI5U6H.js} +1 -1
  49. package/dist/preview/{chunk.CJQL7AHT.js → chunk.VTBAKTFP.js} +2 -2
  50. package/dist/preview/{chunk.UNRYIETM.js → chunk.WEGBBWWK.js} +1 -1
  51. package/dist/preview/{chunk.LZQZP2PD.js → chunk.WOTNMTIY.js} +1 -1
  52. package/dist/preview/{chunk.THBP5EES.js → chunk.XCOPECOJ.js} +1 -1
  53. package/dist/preview/chunk.XDPRWUCJ.js +1 -0
  54. package/dist/preview/{chunk.3HEJZPJM.js → chunk.XDVKD6VX.js} +1 -1
  55. package/dist/preview/{chunk.YAONM74M.js → chunk.XJNXSQT4.js} +1 -1
  56. package/dist/preview/{chunk.ZQZ557VR.js → chunk.XUXCDUKC.js} +1 -1
  57. package/dist/preview/chunk.Y4R77MKX.js +1 -0
  58. package/dist/preview/chunk.ZQ4HFIIS.js +8 -0
  59. package/dist/preview/page.js +2 -2
  60. package/package.json +6 -6
  61. package/dist/preview/chunk.2F7OKRDK.js +0 -9
  62. package/dist/preview/chunk.4CDEIDKB.js +0 -1
  63. package/dist/preview/chunk.4JSMCNF7.js +0 -1
  64. package/dist/preview/chunk.4UQLZ7VW.js +0 -1
  65. package/dist/preview/chunk.5MAMCKVU.js +0 -1
  66. package/dist/preview/chunk.75WDSWXL.js +0 -20
  67. package/dist/preview/chunk.7YC34AIK.js +0 -1
  68. package/dist/preview/chunk.AZYJTNSM.js +0 -107
  69. package/dist/preview/chunk.DN4D4HGX.js +0 -1
  70. package/dist/preview/chunk.K7UJG5II.js +0 -1
  71. package/dist/preview/chunk.KFLY4MAT.js +0 -1
  72. package/dist/preview/chunk.KWYU5NPM.js +0 -1
  73. package/dist/preview/chunk.LSLFKW4M.js +0 -1
  74. package/dist/preview/chunk.OR6ZWN76.js +0 -1
  75. package/dist/preview/chunk.PC6FAJF5.js +0 -1
  76. package/dist/preview/chunk.VRXWNUDR.js +0 -1
  77. package/dist/preview/chunk.WTF3CP76.js +0 -1
  78. package/dist/preview/chunk.XEJS2VS5.js +0 -8
  79. package/dist/preview/chunk.Y235YZSZ.js +0 -8
  80. package/dist/preview/chunk.YU64JSAL.js +0 -1
@@ -1 +0,0 @@
1
- import{a as We}from"./chunk.XEJS2VS5.js";import{a as Be,c as Ve,d as Fe}from"./chunk.4UQLZ7VW.js";import{d as Ge}from"./chunk.DJ26NOOW.js";import{b as je,e as G,f as ye}from"./chunk.SQD7ZPEJ.js";import{b as De}from"./chunk.WGNF4E67.js";import{d as me,e as ze,f as ge,h as Ie}from"./chunk.R5K7NK4U.js";import{a as Oe}from"./chunk.VRXWNUDR.js";import{b as qe}from"./chunk.DAKED3WK.js";import{C as Me,E as Ee,G as Ne,T as He,U as Ke,W as oe,ca as q,d as Ce,j as I,l as W,m as _,pa as re,r as j,s as Le,y as Re,z as Pe}from"./chunk.4JSMCNF7.js";import{I as xe,Ka as ne,La as fe,Na as Te,O as $e,Oa as Ae,P as te}from"./chunk.Y235YZSZ.js";import{a as U,b as ae}from"./chunk.MRK6QJV5.js";import{b as O}from"./chunk.AJZBJBMO.js";var Ue=O(U(),1);function Je(e,t){try{t.length===0?localStorage.removeItem(me(e)):localStorage.setItem(me(e),JSON.stringify(t))}catch{}}function dt(e,t){Je(e,[...ge(e).filter(r=>r.title!==t.title),t])}function ct(e,t){Je(e,ge(e).filter(r=>r.title!==t))}function pt(e,t){for(let r of e.places().filter(a=>a.title===t))e.forget?.(r.kind,r.as)}var ut=e=>e===!0?{written:!0}:typeof e=="object"&&e!==null?{written:e.kept===!0,...e.said?{said:e.said}:{}}:{written:!1},_e=e=>({title:e.title,lens:e.lens,on:e.on,...e.bindings?{bindings:e.bindings}:{},...e.options?{options:e.options}:{}});function ft(e,t){let r=a=>t.some(s=>s.title===a||s.as===ne(a));if(!r(e))return e;for(let a=2;;a++)if(!r(`${e} ${a}`))return`${e} ${a}`}function Qe(e){let{store:t,views:r,brand:a,seatTalk:s,onKeepLens:y}=q(),k=(0,Ue.useContext)(De),S=ze(a,t.schema),P=async c=>{let{edit:p}=c;if(c.written&&y)try{await y({op:"remove-lens",title:p.title,on:p.on})}catch{}ct(S,p.title),pt(r,p.title),k?.dismiss(`kept:${p.title}`),s.setTurns(g=>[...g.map(i=>i.kept&&i.kept.edit.title===p.title&&!i.kept.taken?{...i,kept:{...i.kept,taken:!0}}:i),{role:"seat",text:`Took \u201C${p.title}\u201D back out of the places.`}]);let l=te(t.schema,p.on);e({to:"kind",kind:p.on,title:l,address:fe(t.schema,p.on),said:`Went to ${l}.`})};return{keep:async c=>{let p=ft(c.edit.title,r.places()),l={...c.edit,title:p},g=!1,i;if(y)try{({written:g,said:i}=ut(await y(l)))}catch{g=!1}g||dt(S,_e(l)),Ie(r,t.schema,[_e(l)]);let f=r.places(),h=f.find(w=>w.title===p),x=i??(g?`Kept \u201C${p}\u201D as a lens: it is in the places now.`:y?`Kept \u201C${p}\u201D as your own lens. Ask the owner to keep it for everyone.`:`Kept \u201C${p}\u201D as your own lens.`),T={edit:l,written:g};s.setDraft(null),s.setTurns(w=>[...w,{role:"seat",text:x,kept:T}]),s.get().open||k?.notify({kind:"toast",id:`kept:${p}`,sentence:x,timeout:1e4,action:{label:"Take back",onSelect:()=>void P(T)}}),h&&e({to:"picture",kind:h.kind,as:h.as,title:p,address:Te(h.as,Ae(h,f)?fe(t.schema,h.kind).slice(1):void 0),said:`Went to ${p}.`})},takeBack:P}}var Ye=O(U(),1);function mt(e,t){switch(t.to){case"place":return{view:Ce("#")};case"picture":return{view:j(Ne(W(e,"filter",null),t.kind,t.as),[])};case"kind":{let r=Le(_({...I(e,Me(t.kind)),relation:null},!1),!0);return{view:j(W(W(r,"view",null),"filter",t.filter??null),[])}}case"record":return{view:j(I(_(W(W(e,"view",null),"filter",null),!1),t.id),[t.id])};case"problems":return{pane:"problems"}}}function gt(e){let t=typeof document>"u"?null:document.querySelector('[data-testid="standing"]');t&&t.getAttribute("aria-expanded")==="true"!==e&&t.click()}function Ze(){let{setView:e,seatTalk:t}=q();return(0,Ye.useCallback)(r=>{t.get().draft&&t.setDraft(null),gt(r.to==="problems"),r.to!=="problems"&&e(a=>{let s=mt(a,r);return"view"in s?s.view:a})},[e,t])}var se=O(U(),1),yt=220;function vt(e,t){if(!e||!t||typeof document>"u")return null;let r=e.getBoundingClientRect(),a=document.elementFromPoint(r.left+t.x,r.top+t.y),s=a?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");return s||(a?.closest("[data-graview-view]")?.getAttribute("data-graview-view")??null)}function Xe({hover:e=!0}={}){let{store:t,view:r,views:a,pointer:s}=q(),{selection:y}=re(),[k,S]=(0,se.useState)(null);(0,se.useEffect)(()=>{if(!e)return;let l=null,g=!1,i=()=>typeof document<"u"&&document.querySelector("[data-graview-reach]")!==null?document.querySelector("[data-graview-settled]")===null:!1,f=()=>{if(l&&clearTimeout(l),g)return;let w=s.snapshot();if(!w){S(L=>L===null?L:null);return}l=setTimeout(()=>{if(g||i()){f();return}let L=typeof document>"u"?null:document.querySelector("[data-graview-stage]"),M=vt(L,w);S(R=>R===M?R:M)},yt)},h=()=>{g=!0,l&&clearTimeout(l)},x=()=>{g=!1,f()},T=s.subscribe(f);return document.addEventListener("pointerdown",h,!0),document.addEventListener("pointerup",x,!0),document.addEventListener("pointercancel",x,!0),f(),()=>{T(),document.removeEventListener("pointerdown",h,!0),document.removeEventListener("pointerup",x,!0),document.removeEventListener("pointercancel",x,!0),l&&clearTimeout(l)}},[s,e]);let P=l=>{let g=t.graph.getNode(l);if(g)return xe(t.schema.tryDefinition(g.kind),g);let i=We(l,t.schema);if(i)return i;let f=Pe(l);if(f)return te(t.schema,f);let h=Ee(l);if(h.length>0){let x=h.map(w=>$e(t.schema,w)),T=x.length===1?x[0]:`${x.slice(0,-1).join(", ")} and ${x.at(-1)}`;return T.charAt(0).toUpperCase()+T.slice(1)}return null},E=y[y.length-1];if(E!==void 0){let l=P(E);if(l)return{id:E,name:y.length>1?`${l} and ${y.length-1} more`:l,because:"selection"}}if(k!=null){let l=P(k);if(l)return{id:k,name:l,because:"hover"}}let c=r.within?.view,p=c?a.places().find(l=>l.as===c||ne(l.title)===c):void 0;if(p)return{id:null,name:p.title,because:"place"};if(r.focusId){let l=P(r.focusId);if(l)return{id:r.focusId,name:l,because:"place"}}return{id:null,name:"the whole thing",because:"place"}}var C=O(U(),1);var D=O(U(),1),$=O(ae(),1),B=(e,t)=>`${e}:${t}`;function et({answer:e,onReply:t,talk:r}){let[a]=(0,D.useState)(()=>Ke(null)),s=r??a,{turns:y,outcomes:k,busy:S}=oe(s),P=(0,D.useCallback)((c,p)=>s.settle(c,p),[s]);return{turns:y,outcomes:k,busy:S,send:async c=>{let p=c.trim();if(!p||s.get().busy)return;s.setBusy(!0);let l=s.get();s.setTurns(f=>[...f,{role:"person",text:p}]);let g=l.turns.map((f,h)=>{let x=(f.proposals??[]).flatMap((T,w)=>{let L=l.outcomes.get(B(h,w));return L?.state==="applied"?[L.said]:[]});return{role:f.role,text:x.length>0?`${f.text} [applied: ${x.join("; ")}]`:f.text}}),i;try{i=await e(p,{history:g})}catch(f){i={say:`That couldn't be answered: ${f instanceof Error?f.message:String(f)}`,proposals:[]}}s.setTurns(f=>[...f,{role:"seat",text:i.say,proposals:i.proposals,...i.questions?{questions:i.questions}:{},...i.picks?.length?{picks:i.picks}:{},...i.moves?.length?{moves:i.moves}:{},...i.offer?{offer:i.offer}:{},...i.unsure?{unsure:!0}:{},...i.via?{via:i.via}:{}}]),t?.(i),s.setBusy(!1)},settle:P}}var ht=e=>{let t=/^([\s\S]*?)\s*(\((?:[^()]|\([^()]*\))*\))\s*$/.exec(e);return t&&t[1]?{said:t[1],aside:t[2]}:{said:e}};function tt({turns:e,outcomes:t,busy:r,testId:a,empty:s,minHeight:y=64,maxHeight:k="min(46cqh, 400px)",renderProposal:S,renderAfter:P,renderSaid:E,ready:c=()=>!0,onApplyAll:p,applyAllLabel:l="Apply all"}){let g=(0,D.useRef)(null);return(0,D.useEffect)(()=>{g.current?.scrollTo?.({top:g.current.scrollHeight})},[e]),e.length===0&&s===null&&!r?null:(0,$.jsxs)("ol",{ref:g,style:{margin:0,padding:10,listStyle:"none",display:"grid",gap:8,alignContent:"start",maxHeight:k,minHeight:y,overflowY:"auto"},children:[e.length===0?s===null?null:(0,$.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)",lineHeight:1.5},children:s}):null,e.map((i,f)=>{let h=i.proposals??[],x=h.filter((w,L)=>{let M=B(f,L),R=t.get(M);return R?.state!=="applied"&&R?.state!=="declined"&&c(w,M)}),T=ht(i.text);return(0,$.jsxs)("li",{style:{display:"grid",gap:6,justifyItems:i.role==="person"?"end":"start"},children:[i.role==="person"?(0,$.jsx)("p",{style:{margin:0,maxWidth:"85%",padding:"6px 10px",borderRadius:"12px 12px 4px 12px",fontSize:"0.875rem",lineHeight:1.45,background:"var(--graview-panel-muted)",color:"var(--graview-ink)"},children:i.text}):(0,$.jsxs)("p",{style:{margin:0,fontSize:"0.875rem",lineHeight:1.5,color:"var(--graview-ink)"},children:[E?E(i,T.said):T.said,T.aside?(0,$.jsx)("span",{style:{display:"block",marginTop:2,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:T.aside}):null,i.via?(0,$.jsx)("span",{"data-testid":`${a}-answered-with-ai`,style:{display:"block",marginTop:2,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:He}):null]}),P?.(i,f),h.map((w,L)=>{let M=B(f,L),R=t.get(M);return R?.state==="applied"||R?.state==="declined"?(0,$.jsx)(ie,{outcome:R,testId:a},M):(0,$.jsxs)("span",{style:{display:"grid",gap:4,justifySelf:"stretch",justifyItems:"start"},children:[S(w,{key:M,turn:f,at:L}),R?(0,$.jsx)(ie,{outcome:R,testId:a}):null]},M)}),p&&x.length>=2?(0,$.jsxs)("button",{type:"button","data-testid":`${a}-apply-all`,onClick:()=>p(f,h),title:"Take these in order; anything still missing is asked for",style:{fontSize:"0.8125rem",justifySelf:"start",fontWeight:600},children:[l," ",x.length]}):null]},f)}),r?(0,$.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"thinking\u2026"}):null]})}function ie({outcome:e,testId:t}){if(e.state==="refused")return(0,$.jsxs)("span",{"data-testid":`${t}-refused`,style:{fontSize:"0.8125rem",color:"var(--graview-warn)"},children:["Refused: ",e.error]});let r=e.state==="applied";return(0,$.jsxs)("span",{"data-testid":`${t}-${e.state}`,style:{fontSize:"0.8125rem",color:r?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:[r?(0,$.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:"\u2713 "}):null,r?e.said:(0,$.jsx)("s",{children:e.said})]})}function nt({busy:e,placeholder:t,ariaLabel:r,testId:a,onSend:s}){let[y,k]=(0,D.useState)("");return(0,$.jsxs)("form",{onSubmit:S=>{S.preventDefault(),!(e||y.trim().length===0)&&(s(y),k(""))},style:{display:"flex",gap:6,padding:8,borderTop:"1px solid var(--graview-edge)"},children:[(0,$.jsx)("input",{value:y,onChange:S=>k(S.target.value),placeholder:t,"aria-label":r,"data-testid":`${a}-draft`,style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"6px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,$.jsx)("button",{type:"submit","data-testid":`${a}-send`,disabled:e||y.trim().length===0,style:{fontSize:"0.875rem"},children:"Send"})]})}var v=O(ae(),1),wt=/\b(?:board|kanban|timeline|calendar|gantt|who covers|covers what|coverage|floor plan|layout|draw|chart|(?:list|table) of|as an? (?:list|table|board|calendar|timeline|grid))\b/i,bt=/\b(?:group(?:ed)? by|split by|sort(?:ed)? by|order(?:ed)? by|only|call it|name it|as an? (?:board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)|show all|all of them|clear the filter|no filter)\b/i,kt=e=>e.charAt(0).toLowerCase()+e.slice(1),St=e=>e.to==="record"?e.label:e.to==="problems"?"problems":e.title;function xt(e,t,r){let a=[],s=e;for(let y of t){let k=St(y),S=k?s.toLowerCase().indexOf(k.toLowerCase()):-1;S<0||(a.push(s.slice(0,S),r(y,s.slice(S,S+k.length))),s=s.slice(S+k.length))}return a.length===0?e:[...a,s]}function Jt({respond:e,onCall:t,onPick:r,testId:a="chat",empty:s,shared:y=!1,composer:k=!0,onMove:S,place:P,onDraft:E}){let{store:c,views:p,view:l,principal:g,setView:i,seatWho:f,noteSeat:h,session:x,ai:T,seatTalk:w,brand:L}=q(),M=Ze(),R=S??M,{takeBack:at}=Qe(R),{selection:le}=re(),ve=Xe(),he=f??"chat",z=(0,C.useMemo)(()=>({kind:"agent",id:he,session:x}),[he,x]),de=(0,C.useRef)(void 0),V=(0,C.useMemo)(()=>Ge(c,{author:{...z,...g.roles?{roles:g.roles}:{}},derive:()=>({pins:Be()}),places:()=>p.places(),via:()=>de.current}),[c,g,z,p]),rt=(0,C.useMemo)(()=>e??Fe(T),[e,T]);(0,C.useEffect)(()=>t?V.onCall(t):void 0,[V,t]),qe(V);let we=(0,C.useMemo)(()=>({name:L?.name??"app",schema:c.schema,...c.policy?{policy:c.policy}:{}}),[c,L]),st=async o=>{let d=w.get().draft,n=d!==null&&bt.test(o);if(!n&&!wt.test(o))return;let u=await import("./chunk.M4XNUM2A.js"),b=e?void 0:Ve(T),m={app:we,sight:u.draftSight(we,Y),...b?{complete:b}:{},...d?{lastGood:d}:{}},A=n&&d?await u.refineDraft(d,o,m):await u.draftView(o,m);if(u.isDraftFailure(A)){let K=A.lastGood??d;return K?(w.setDraft(K,A.failed),E?.(),{say:`${A.failed} The last view stays.`,proposals:[],grounded:!0}):{say:A.failed,proposals:[],grounded:!0}}return w.setDraft(A,null),E?.(),{say:`Here is ${kt(A.said)} Ask to change it, or keep it as a lens.`,proposals:[],grounded:!0}},N=et({...y?{talk:w}:{},answer:async(o,d)=>{let n=await st(o);if(n)return n;let{placesFromViews:u}=await import("./chunk.KFLY4MAT.js"),b=P??l.within?.view,m=p.arrangement?.(),A=c.today();return rt(c,o,{...d,selection:ve.id?[ve.id]:le,principal:{...z,...g.roles?{roles:g.roles}:{}},places:u(c.schema,p.places(),m?{pages:m}:{}),...b?{place:b}:{},...A?{today:A}:{}})},onReply:o=>{let d=o.moves?.[0];d&&R(d);let n=o.questions?.[0];h(n?{type:"asking",author:z,where:n.nodeId??null,say:`${n.nodeLabel?`${n.nodeLabel}: `:""}${n.asks}`,confidence:n.confidence}:{type:"said",author:z,say:o.say});let u=o.proposals.find(b=>!pe(b));if(u){let b=c.permits({name:u.mutation,args:{...u.args}},Y);b.ok||h({type:"refused",author:z,where:ke(u.mutation),say:b.refusal.message})}}}),{outcomes:Q,settle:ce}=N,be=oe(w);(0,C.useEffect)(()=>{if(!y||be.pending===null||N.busy)return;let o=w.takePending();o&&N.send(o)},[y,be.pending,N.busy]);let Y={...z,...g.roles?{roles:g.roles}:{}},pe=o=>c.permits({name:o.mutation,args:{...o.args}},Y).ok,ke=o=>{let d=c.allMutations().find(n=>n.name===o)?.subject?.kinds;return Array.isArray(d)&&d[0]?Re(d[0]):null},[H,Z]=(0,C.useState)(null),X=async(o,d)=>{let n=je(c,o),u=G(c,n),b=V.definitions.find(A=>A.act===n.mutation)?.name??n.mutation;de.current=N.turns[Number(d.split(":")[0])]?.via;let m=await V.call(b,{...n.args}).finally(()=>{de.current=void 0});return m.ok?(ce(d,{state:"applied",said:u}),!0):(ce(d,{state:"refused",error:m.error}),h({type:"refused",author:z,where:ke(n.mutation),say:m.error}),!1)},it=async(o,d)=>{for(let[n,u]of d.entries()){let b=B(o,n);if(Q.get(b)?.state==="applied"||!pe(u))continue;let m=ye(c,u);if(m.length>0){Z({proposal:u,open:m,key:b});return}if(!await X(u,b))return}},ee=(0,C.useRef)(null),ue=(0,C.useRef)(null);(0,C.useLayoutEffect)(()=>{let o=ue.current;if(!o||o.isConnected||document.activeElement!==document.body)return;ue.current=null,(ee.current?.querySelector(`[data-testid="${a}-apply"]:not([disabled])`)??ee.current?.querySelector(`[data-testid="${a}-draft"]`)??ee.current?.closest("[data-testid='seat']")?.querySelector("[data-testid='seat-field']"))?.focus()});let lt=(o,d,n,u)=>{let b=c.permits({name:n.mutation,args:{...n.args}},Y);if(!b.ok)return(0,v.jsxs)("span",{"data-testid":`${a}-withheld`,style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,v.jsx)("s",{children:G(c,n)})," \u2014 ",b.refusal.message]});let m=ye(c,n),A=(N.turns[o]?.proposals??[]).slice(0,d).filter((Se,F)=>Q.get(B(o,F))?.state!=="applied").find(Se=>m.some(F=>F.kinds&&typeof n.args[F.name]=="string"&&Se.args.label===n.args[F.name])),K=G(c,n);return(0,v.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 10px"},children:[(0,v.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--graview-ink)"},title:n.why,children:[K,m.length>0&&!A?" \u2026":""]}),(0,v.jsxs)("span",{style:{display:"inline-flex",gap:6},children:[(0,v.jsx)("button",{type:"button","data-testid":`${a}-apply`,"data-graview-asks":m.length>0?m.length:void 0,disabled:A!==void 0,"aria-label":`Do it: ${K}`,onClick:()=>m.length>0?Z({proposal:n,open:m,key:u}):void X(n,u),title:A?`After \u201C${G(c,A)}\u201D`:m.length>0?`${K} \u2014 it asks for ${m.length===1?"one more thing":`${m.length} more things`}`:K,style:J,children:"Do it"}),(0,v.jsx)("button",{type:"button","data-testid":`${a}-decline`,"aria-label":`Not now: ${K}`,onClick:()=>ce(u,{state:"declined",said:K}),style:{...J,color:"var(--graview-ink-muted)"},children:"Not now"})]})]})};return(0,v.jsxs)("div",{"data-testid":`${a}-panel`,ref:ee,onFocus:o=>{ue.current=o.target},style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",alignContent:"start",gap:8,minWidth:0,minHeight:0},children:[N.turns.length===0?s??null:null,(0,v.jsx)(tt,{turns:N.turns,outcomes:Q,busy:N.busy,testId:a,minHeight:0,maxHeight:"none",empty:s!==void 0?null:(0,v.jsxs)(v.Fragment,{children:["Ask what's wrong, ask about anything by name, or say a change in its own words.",le.length>0?" \u201CThis\u201D means what you have selected.":""]}),renderProposal:(o,{key:d,turn:n,at:u})=>lt(n,u,o,d),ready:o=>pe(o),onApplyAll:(o,d)=>void it(o,d),applyAllLabel:"Do all",renderSaid:(o,d)=>o.moves?.length?xt(d,o.moves,(n,u)=>(0,v.jsx)("button",{type:"button","data-testid":`${a}-went`,title:`Go to ${u}`,onClick:()=>R(n),style:{...ot,fontSize:"inherit"},children:u},`${n.address}:${u}`)):d,renderAfter:(o,d)=>[...o.offer?[(0,v.jsx)("button",{type:"button","data-testid":`${a}-offer`,onClick:()=>w.ask(`a list of ${o.offer.draft}`),style:{...J,justifySelf:"start"},children:o.offer.label},`${d}:offer`)]:[],...o.kept&&!o.kept.taken?[(0,v.jsx)("button",{type:"button","data-testid":`${a}-take-back`,onClick:()=>void at(o.kept),style:{...J,justifySelf:"start"},children:"Take back"},`${d}:take-back`)]:[],...o.picks?.length?[(0,v.jsx)("p",{"data-testid":`${a}-picks`,style:{margin:0,display:"flex",flexWrap:"wrap",gap:"2px 12px"},children:o.picks.map(n=>(0,v.jsx)("button",{type:"button","data-testid":`${a}-pick`,"data-chat-pick":n.id,title:n.why.field==="label"?`Go to ${n.label}`:`${n.why.reading}: ${n.why.fragment}`,onClick:()=>r?r(n.id):i(u=>j(I(_(u,!1),n.id),[n.id])),style:ot,children:n.label},n.id))},`${d}:picks`)]:[],...(o.questions??[]).map(n=>{let u=`${d}:q:${n.id}`,b=Q.get(u);return(0,v.jsxs)("div",{"data-testid":`${a}-question`,"data-chat-question-node":n.nodeId,style:{display:"grid",gap:4,justifySelf:"start"},children:[(0,v.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[n.nodeLabel?(0,v.jsxs)("strong",{children:[n.nodeLabel,": "]}):null,n.asks,n.because==="split"?" (it could be either)":" (it was not sure)"]}),(0,v.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:n.options.map(m=>(0,v.jsxs)("button",{type:"button","data-testid":`${a}-option`,disabled:!m.call,title:m.call?m.call.why??"Take this answer":"Nothing to do for this answer",onClick:()=>m.call?void X(m.call,u):void 0,style:J,children:[m.value," ",Math.round(m.probability*100),"%"]},m.value))}),b?(0,v.jsx)(ie,{outcome:b,testId:a}):null]},n.id)})]}),H?(0,v.jsx)("div",{"data-testid":`${a}-asking`,children:(0,v.jsx)(Oe,{affordance:{id:`chat:${H.proposal.mutation}`,mutation:H.proposal.mutation,label:G(c,H.proposal),provider:"llm",why:H.proposal.why??"Suggested in the conversation.",nodeIds:[],args:H.proposal.args,open:H.open,score:0},onApply:o=>{let d={...H.proposal,args:{...H.proposal.args,...o}};Z(null),X(d,H.key)},onCancel:()=>Z(null)})}):null,k?(0,v.jsx)(nt,{busy:N.busy,placeholder:le.length>0?"Ask about this\u2026":"Ask, or say a change\u2026",ariaLabel:"Ask",testId:a,onSend:o=>y?w.ask(o):void N.send(o)}):null]})}var J={font:"inherit",fontSize:"0.8125rem",minHeight:26,padding:"0 9px",borderRadius:6,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",boxShadow:"none",color:"var(--graview-ink)",cursor:"pointer"},ot={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};export{Qe as a,gt as b,Ze as c,Xe as d,Jt as e,J as f,ot as g};
@@ -1 +0,0 @@
1
- import{a as ee}from"./chunk.G4JJXA63.js";import{b as tn}from"./chunk.DN4D4HGX.js";import{d as nn}from"./chunk.SQD7ZPEJ.js";import"./chunk.LGUV2J6Q.js";import{Ca as V,I as Ye,Ia as fe,La as Ne,Ma as Xe,O as ze,Q as Je,Qa as G,Rb as en,S as Ae,T as F,U as qe,Ua as Ze,ma as Ve,na as Qe}from"./chunk.Y235YZSZ.js";import"./chunk.AJZBJBMO.js";var An="Nothing by that name here.",$=o=>o.normalize("NFD").replace(/\p{M}+/gu,"").toLowerCase().replace(/[’']/g,"'").replace(/[^\p{L}\p{N}' ]+/gu," ").replace(/\s+/g," ").trim(),Nn=/^(?:(?:can you |could you |please )?(?:go|take me|bring me|head|jump|navigate|switch|get me)(?: back)? to|(?:please )?(?:open|show(?: me)?|bring up|let me see|view)) (.+)$/,Sn=/^(?:(?:can you |could you |please )?tell me (?:about|of)|what(?: is|'s| are) (?:in |on )?|describe|explain|who(?: is|'s)) (.+)$/,On=/^(?:what(?: is|'s| am i looking at| do i see)(?: (?:here|this|on (?:this|the) (?:page|screen)|in view|this place|this page))?|where am i|describe (?:this|here|this place|this page)|tell me about (?:this|here|this place|this page))$/,sn=new Set(["here","this","this place","this page","on this page","on the page","on this screen","in view"]),Cn=/^(?:date|day|when|on|at|the date|the day)$/,jn=/^(?:what(?: is|'s) (?:wrong|broken|the (?:problem|matter|trouble))|what needs (?:fixing|attention|doing)|any (?:problems|issues|trouble)|(?:show(?: me)? |go to |open )?(?:the )?(?:problems|issues|trouble|standing|what's wrong)|is (?:anything|something) (?:wrong|broken)|are there (?:any )?(?:problems|issues))(?: (?:with|about|on|in) (.+))?$/,Y=o=>o.replace(/^(?:the|a|an|my|our) /,""),ne=new Set(["the","a","an","my","our","all","any","of","that","which","who","are","is","be","what","whats","what's","with","me","show","list","every","there","do","i","have","we","due","for","please","were","was","by","from","in","on"]),un=864e5,se=o=>Date.UTC(Number(o.slice(0,4)),Number(o.slice(5,7))-1,Number(o.slice(8,10))),De=o=>new Date(o).toISOString().slice(0,10),C=(o,i)=>De(se(o)+i*un),Dn=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Mn=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],fn=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Wn="(monday|tuesday|tues|wednesday|thursday|thurs|friday|saturday|sunday)",on="(january|february|march|april|may|june|july|august|september|october|november|december|jan|feb|mar|apr|jun|jul|aug|sept|sep|oct|nov|dec)",rn="(\\d{1,2})(?:st|nd|rd|th)?",xn=o=>Dn.findIndex(i=>i.startsWith(o.slice(0,3))),an=o=>fn.findIndex(i=>o.startsWith(i.toLowerCase()));function En(o,i){let p=new Date(se(o)),u=o.slice(0,4)===i.slice(0,4)?"":` ${o.slice(0,4)}`;return`${Mn[p.getUTCDay()]} ${p.getUTCDate()} ${fn[p.getUTCMonth()]}${u}`}function Se(o,i,p){if(o<0||i<1||i>31)return;let u=Number(p.slice(0,4)),c=k=>{let j=Date.UTC(k,o,i);return new Date(j).getUTCMonth()===o?De(j):void 0},y=c(u);if(y)return se(y)<se(p)-183*un?c(u+1):y}function Oe(o,i,p){let u=new Date(se(i)).getUTCDay(),c=f=>{let S=(u-p+7)%7,w=C(i,-S+f*7);return{from:w,to:C(w,6)}},y=()=>{let f=`${i.slice(0,8)}01`,S=new Date(Date.UTC(Number(i.slice(0,4)),Number(i.slice(5,7)),1));return{from:f,to:C(De(S.getTime()),-1)}},k=f=>f?{from:f,to:f,day:En(f,i)}:void 0,j=(f,S)=>{let w=xn(S);return k(f==="this"||f==="next"?C(c(f==="next"?1:0).from,(w-p+7)%7):f==="last"?C(i,-((u-w+6)%7+1)):C(i,(w-u+7)%7))},z=f=>{let S=C(i,u===0?-1:6-u);return{from:C(S,f*7),to:C(S,f*7+1)}},U="\\b(?:(?:due |for |on |by )(?:the )?)?",P=[[/\b(?:overdue|past due|late)\b/,()=>({overdue:!0,to:C(i,-1)})],[/\b(?:due |for |on )?today\b/,()=>({from:i,to:i})],[/\b(?:due |for |on )?tomorrow\b/,()=>k(C(i,1))],[/\b(?:due |for |on )?yesterday\b/,()=>k(C(i,-1))],[/\b(?:due |for |on )?this week\b/,()=>c(0)],[/\b(?:due |for |on )?next week\b/,()=>c(1)],[/\b(?:due |for |on )?(?:last|previous) week\b/,()=>c(-1)],[/\b(?:due |for |on )?next weekend\b/,()=>z(1)],[/\b(?:due |for |on )?(?:this |the )?weekend\b/,()=>z(0)],[/\b(?:due |for |on )?this month\b/,()=>y()],[new RegExp(`${U}(\\d{4}) (\\d{2}) (\\d{2})\\b`),f=>k(Se(Number(f[2])-1,Number(f[3]),`${f[1]}-01-01`))],[new RegExp(`${U}${rn} (?:of )?${on}\\b`),f=>k(Se(an(f[2]),Number(f[1]),i))],[new RegExp(`${U}${on} (?:the )?${rn}\\b`),f=>k(Se(an(f[1]),Number(f[2]),i))],[new RegExp(`${U}(?:(this|next|last|coming) )?${Wn}\\b`),f=>j(f[1],f[2])]];for(let[f,S]of P){let w=o.match(f);if(!w)continue;let N=S(w);if(N)return{ask:{words:w[0],...N},rest:o.replace(w[0]," ").replace(/\s+/g," ").trim()}}}function hn(o,i,p={}){let u=p.principal??{kind:"human"},c=o.seenBy(u),y=c.schema,k=p.today??o.today?.()??new Date().toISOString().slice(0,10),j=p.weekStartsOn??1,z=o.kindsKeptFrom(u),U=o.modules.disabledKinds,P=y.kinds.filter(e=>!z.has(e)&&!U.has(e)),f=new Set(P),S=(p.places??[]).filter(e=>e.kind===null||f.has(e.kind)),w=c.graph,N=$(i).replace(/[?.!]+$/,"").trim();if(N.length===0)return{unresolved:!0};let M=e=>y.tryDefinition(e),T=e=>Ye(M(e.kind),e),H=e=>ze(y,e),oe=e=>S.find(n=>n.kind===e&&n.address===Ne(y,e))?.address??Ne(y,e),ge=e=>Xe(y,e.kind,e.id),Me=e=>({to:"record",id:e.id,kind:e.kind,label:T(e),address:ge(e),said:`Went to ${T(e)}.`}),We=e=>{let n=`Went to ${e.title}.`;return e.kind===null?{to:"place",slug:e.slug,title:e.title,address:e.address,...e.slug==="overview"?{face:"scene"}:{},said:n}:e.lens||e.address.startsWith("/places/")?{to:"picture",kind:e.kind,as:e.slug,title:e.title,address:e.address,said:n}:{to:"kind",kind:e.kind,title:e.title,address:e.address,said:n}},xe=()=>({unresolved:!0,say:An}),re=e=>{let n=M(e.kind),s=qe(e,n,{limit:3}).map(r=>r.alone.startsWith(r.label)?r.alone:`${r.label.toLowerCase()} ${r.alone}`).join(", "),t=c.violations().filter(r=>r.nodeIds.includes(e.id));return[`${T(e)} \u2014 ${Ae(F(n,e.kind))}${s?` (${s})`:""}.`,t.length>0?`Trouble: ${t.map(r=>r.message).join("; ")}.`:""].filter(Boolean).join(" ")},ie=e=>{let n=new Set([G(e),G(Y(e))]);for(let t of[" page"," view"," lens"," place"," picture"," list"])e.endsWith(t)&&(n.add(G(e.slice(0,-t.length))),n.add(G(Y(e.slice(0,-t.length)))));n.delete("");let s=t=>n.has(G(t.title))||n.has(G(Y($(t.title))))||n.has(G(t.slug));return S.find(t=>t.kind!==null&&t.address.startsWith("/places/")&&s(t))??S.find(s)},pe=e=>{let n=Ze(o,e,{principal:u,today:k,limit:6,...p.selection?{from:p.selection}:{}}),s=n.hits.filter(r=>r.about==="node"&&f.has(r.kind)&&w.getNode(r.id)!==void 0),t=s.filter(r=>r.why.field==="label"&&r.why.strength==="exact");return t.length===1?{one:w.getNode(t[0].id),picks:s}:t.length>1?{picks:t}:s.length===1&&n.total===1?{one:w.getNode(s[0].id),picks:s}:{picks:s}},Ee=e=>{let n=e.map(s=>`${s.label} (${F(M(s.kind),s.kind)})`);return`${e.length===1?"One thing matches":`${e.length} things match`}: ${n.join("; ")}.`},Re=(e,n)=>{if(sn.has(e))return Le();let s=n?pe(Y(e)||e):void 0,t=s?.one&&$(T(s.one))===$(Y(e)||e)?void 0:ie(e);if(t){let l=We(t);return{about:"place",say:n?`${l.said} ${ye(t)}`:l.said,moves:[l],subject:t.slug}}let r=pe(Y(e)||e);if(r.one){let l=Me(r.one);return{about:n?"describe":"record",say:n?`${l.said} ${re(r.one)}`:l.said,moves:[l],subject:r.one.id}}if(r.picks.length>0)return{about:"picks",say:Ee(r.picks),moves:[],picks:r.picks};let h=de(e);if(h)return h;let d=Pe(e);if(d){if(d.rest.split(" ").every(l=>l===""||ne.has(l))){let l=H(d.kind),v={to:"kind",kind:d.kind,title:l,address:oe(d.kind),said:`Went to the ${l.toLowerCase()}.`};return{about:"kind",say:v.said,moves:[v]}}return{unresolved:!0}}return xe()},ye=e=>{if(e.kind===null){let h=P.map(l=>({kind:l,count:w.nodesOfKind(l).length})).filter(l=>l.count>0).map(l=>`${l.count} ${(l.count===1?F(M(l.kind),l.kind):H(l.kind)).toLowerCase()}`),d=c.violations().length;return[h.length>0?`It holds ${he(h)}.`:"It holds nothing yet.",d>0?`${d===1?"One problem":`${d} problems`} to see to.`:""].filter(Boolean).join(" ")}let n=w.nodesOfKind(e.kind).length,s=H(e.kind).toLowerCase(),t=new Set(c.violations().flatMap(h=>h.nodeIds)),r=w.nodesOfKind(e.kind).filter(h=>t.has(h.id)).length;return[e.lens?`It draws the ${s} as ${Ae(e.lens)}${n>0?` \u2014 ${n} of them`:""}.`:`${n===0?"No":n} ${n===1?F(M(e.kind),e.kind):s} ${n===1?"is":"are"} here.`,r>0?`${r} ${r===1?"has":"have"} a problem.`:""].filter(Boolean).join(" ")},Le=()=>{let e=(p.selection??[]).map(s=>w.getNode(s)).find(s=>s!==void 0);if(e)return{about:"here",say:re(e),moves:[],subject:e.id};let n=S.find(s=>s.slug===p.place)??S.find(s=>s.slug==="home");return n?{about:"here",say:`${n.title}. ${ye(n)}`,moves:[],subject:n.slug}:{about:"here",say:ye({slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#"}),moves:[]}},Pe=e=>{let n=P.flatMap(s=>[H(s),F(M(s),s),s].map(t=>({kind:s,name:$(t)}))).filter(s=>s.name.length>0).sort((s,t)=>t.name.length-s.name.length);for(let{kind:s,name:t}of n)if(!(` ${e} `.indexOf(` ${t} `)<0))return{kind:s,rest:` ${e} `.replace(` ${t} `," ").replace(/\s+/g," ").trim()}},ae=(e,n)=>{let s=V(y,e).filters.filter(d=>d.about==="field"&&d.type==="date");if(s.length===0)return;let t=s.find(d=>n.some(l=>$(d.key)===l||$(d.label)===l));if(t)return t;let r=M(e)?.fieldRoles??{};for(let d of["due","deadline","date","when","start","end"]){let l=r[d],v=l?s.find(D=>D.key===l):void 0;if(v)return v}return s.find(d=>["due","deadline","date","when","on","at"].includes(d.key.toLowerCase()))??(s.length===1?s[0]:void 0)},Te=e=>{let n=M(e),s=V(y,e).filters;if(n?.lifecycle)return{conditions:[{key:"is",value:"current"}],holds:d=>fe(be,d,{key:"is",value:"current"})};let r=s.find(d=>d.about==="field"&&d.type==="boolean"&&te.has($(d.key)));if(r)return{conditions:[{key:r.key,value:"false"}],holds:d=>d[r.key]!==!0};let h=s.find(d=>d.about==="field"&&d.type==="choice"&&(d.options??[]).some(l=>te.has($(l))));if(h){let d=new Set((h.options??[]).filter(v=>te.has($(v)))),l=(h.options??[]).filter(v=>!d.has(v));return l.length===1?{conditions:[{key:h.key,value:l[0]}],holds:v=>v[h.key]===l[0]}:"unsayable"}return{conditions:[],holds:()=>!0}},He=(e,n)=>{let s=e.words.startsWith("due")||$(n.key)==="due",t=Cn.test($(n.label));if(e.day)return s?`due ${e.day}`:t?`on ${e.day}`:`${n.label.toLowerCase()} on ${e.day}`;let r=e.words.replace(/^(?:due|for|on|by) (?:the )?/,"");return s?`due ${r}`:t?r:`${n.label.toLowerCase()} ${r}`},me=new Set(c.violations().flatMap(e=>e.nodeIds)),be={schema:y,graph:c.graph,flagged:me,today:k},de=e=>{let n=Oe(e,k,j),s=Pe(n?.rest??e),t=s?.kind,r=(s?.rest??n?.rest??e).split(" ").filter(Boolean);if(!t&&n){let g=e.split(" "),m=P.filter(L=>ae(L,g)!==void 0),R=m.filter(L=>{let b=ae(L,g);return g.some(O=>$(b.key)===O||$(b.label)===O)}),B=m.length===1?m:R;if(B.length!==1)return;t=B[0]}if(!t)return;let h=V(y,t).filters,d=[],l=[],v=[],D=[],q=!1,le=[];for(let g=0;g<r.length;g++){let m=r[g],R=g>0&&(r[g-1]==="not"||r[g-1]==="un"),B=h.find(b=>b.about==="field"&&b.type==="choice"&&(b.options??[]).some(O=>$(O)===m));if(B&&!R){let b=(B.options??[]).find(O=>$(O)===m);d.push({key:B.key,value:b}),l.push(b);continue}let L=h.find(b=>b.about==="field"&&b.type==="boolean"&&[$(b.key),$(b.label)].some(O=>O===m||O===m.replace(/^un/,"")));if(L){let b=!R&&!(m.startsWith("un")&&!$(L.key).startsWith("un"));d.push({key:L.key,value:String(b)}),l.push(b?m:`not ${m.replace(/^un/,"")}`);continue}if(Pn.has(m)&&!R){let b=Te(t);b==="unsayable"?(q=!0,D.push(O=>!cn(y,O))):(d.push(...b.conditions),D.push(b.holds)),l.push(m);continue}m==="not"||m==="un"||n&&h.some(b=>b.type==="date"&&($(b.key)===m||$(b.label)===m))||le.push(m)}if(r=le,r.some(g=>!ne.has(g))||!n&&d.length===0&&D.length===0)return;let I=H(t).toLowerCase(),Q=H(t);if(n){let g=ae(t,e.split(" "));if(!g){let m={to:"kind",kind:t,title:Q,address:oe(t),said:`Went to the ${I}.`};return{about:"kind",say:`${ee(Q)} carry no date, so I can't tell which are ${/^(?:due|for|on|overdue|past due|late)\b/.test(n.ask.words)?n.ask.words:`due ${n.ask.words}`}. ${m.said}`,moves:[m]}}if(n.ask.from&&d.push({key:g.key,value:`after:${C(n.ask.from,-1)}`}),n.ask.to&&d.push({key:g.key,value:`before:${C(n.ask.to,1)}`}),n.ask.overdue){let m=Te(t);m==="unsayable"?(q=!0,D.push(R=>!cn(y,R))):(d.push(...m.conditions),D.push(m.holds))}n.ask.overdue?l.push("overdue"):v.push(He(n.ask,g))}let E=w.nodesOfKind(t).filter(g=>d.every(m=>fe(be,g,m))&&D.every(m=>m(g))),K=[...l,...v].join(" and "),J=[...l,I,...v].join(" "),W=E.slice(0,6).map(g=>({about:"node",id:g.id,kind:t,label:T(g),why:{field:d[0]?.key??"label",reading:d[0]?.key??"Name",fragment:K,strength:"field"},current:!0,flagged:me.has(g.id),address:ge(g)})),X=E.length===0?`No ${I} are ${K}.`:`${E.length===1?`One ${F(M(t),t)} is`:`${E.length} ${I} are`} ${K}: ${he(E.slice(0,6).map(T))}${E.length>6?`, and ${E.length-6} more`:""}.`;if(q)return{about:"kind",say:X,moves:[],picks:W,offer:{draft:J,label:"Show as a view"}};let Z=d.map(g=>`${g.key}:${g.value}`).join(","),we=`${oe(t)}?${new URLSearchParams({filter:Z}).toString()}`,_={to:"kind",kind:t,title:ee(J),filter:Z,address:we,said:`Went to the ${J}.`};return{about:"kind",say:`${_.said} ${X}`,moves:[_],picks:W}},Ie=e=>M(e)?.figure==="person"?!0:[e,F(M(e),e),H(e)].some(s=>$(s).split(" ").some(t=>Rn.has(t))),pn=e=>{let n=[],s=t=>M(t)?.edges??{};for(let[t,r]of Object.entries(s(e)))for(let h of r.to??[])f.has(h)&&n.push({key:t,direction:"out",far:h,words:ln(`${r.description??""} ${t}`)});for(let t of P)for(let[r,h]of Object.entries(s(t)))(h.to??[]).includes(e)&&n.push({key:r,direction:"in",far:t,words:ln(`${h.inverse??""} ${r}`)});return n},yn=e=>{let n=e.match(/^(who|which|what)\b/)?.[1];if(!n)return;let s=Oe(e,k,j);if(!s||s.ask.overdue)return;let t=s.rest.split(" ").filter(Boolean),r=P.flatMap(a=>[H(a),F(M(a),a),a].map(A=>({kind:a,name:$(A)}))).filter(a=>a.name.length>0).sort((a,A)=>A.name.length-a.name.length),h=` ${t.join(" ")} `,d=[];for(let{kind:a,name:A}of r)h.includes(` ${A} `)&&(h=h.replace(` ${A} `," "),d.includes(a)||d.push(a));let l=h.match(/\b(?:is|are|was|were)\b|'s\b/)?.[0],v=h.replace(/'s\b/g," ").split(" ").filter(a=>a.length>0&&!ne.has(a)&&!Ce.has(a)),D=n==="who"?d.find(Ie):d[0];if(!D&&n!=="who")return;let q=d.find(a=>a!==D),le=v.flatMap(a=>[je(a),...dn.has(je(a))?[...dn]:[]]),I=P.filter(a=>q?a===q:a!==D).flatMap(a=>{let A=ae(a,e.split(" "))??V(y,a).filters.find(x=>x.about==="field"&&x.type==="date");return A?pn(a).filter(x=>(D?x.far===D:Ie(x.far))&&x.far!==a).map(x=>({kind:a,field:A,relation:x,said:v.length===0||le.some(ve=>x.words.some(vn=>Ln(vn,ve)))})):[]}).filter(a=>a.said);if(I.length===0)return;let Q=I.filter(a=>t.some(A=>$(a.field.key)===A||$(a.field.label)===A)),E=I.length===1?I[0]:Q.length===1?Q[0]:void 0;if(!E)return;let{kind:K,field:J,relation:W}=E,X=[...s.ask.from?[{key:J.key,value:`after:${C(s.ask.from,-1)}`}]:[],...s.ask.to?[{key:J.key,value:`before:${C(s.ask.to,1)}`}]:[]],Z=w.nodesOfKind(K).filter(a=>X.every(A=>fe(be,a,A))),we=a=>(W.direction==="out"?c.graph.out(a.id,W.key):c.graph.in(a.id,W.key)).filter(A=>A.kind===W.far&&f.has(W.far)),_=[],g=[];for(let a of Z){let A=we(a);A.length===0&&g.push(a);for(let x of A)_.some(ve=>ve.id===x.id)||_.push(x)}let m=He(s.ask,J),R=s.ask.day?`On ${s.ask.day}`:ee(s.ask.words.replace(/^(?:due|for|on|by) (?:the )?/,"")),B=H(K).toLowerCase(),L=X.map(a=>`${a.key}:${a.value}`).join(","),b=`${B} ${m}`,O={to:"kind",kind:K,title:ee(b),filter:L,address:`${oe(K)}?${new URLSearchParams({filter:L}).toString()}`,said:`Went to the ${b}.`};if(Z.length===0)return{about:"related",say:`No ${b}. ${O.said}`,moves:[O]};let ce=v.join(" "),mn=l==="was"||l==="were",Ge=a=>mn?a===1?"was":"were":a===1?"is":"are",ue=_.map(T),bn=ue.length>8?[...ue.slice(0,8),`${ue.length-8} more`]:ue,kn=_.length===0?`${R}: nobody ${Ge(1)}${ce?` ${ce}`:""}.`:`${R}: ${he(bn)}${ce?` ${Ge(_.length)} ${ce}`:""}.`,$n=n==="who"&&g.length>0?`${he(g.slice(0,4).map(T))}${g.length>4?` and ${g.length-4} more`:""} ${g.length===1?"has":"have"} nobody.`:"",wn=_.slice(0,8).map(a=>({about:"node",id:a.id,kind:a.kind,label:T(a),why:{field:W.key,reading:Je(y,W.direction==="out"?K:W.far,W.key,W.direction==="out"?"out":"in"),fragment:m,strength:"field"},current:!0,flagged:me.has(a.id),address:ge(a)}));return{about:"related",say:[kn,$n,O.said].filter(Boolean).join(" "),moves:[O],picks:wn}},Ke=N.match(jn);if(Ke){let e=Ke[1];if(e&&!sn.has(e)&&!/^(?:it|this|that)$/.test(e)){let t=ie(e),r=t?void 0:pe(Y(e)||e);if(r?.one){let h=Me(r.one);return{about:"describe",say:`${h.said} ${re(r.one)}`,moves:[h],subject:r.one.id}}if(!t)return r&&r.picks.length>0?{about:"picks",say:Ee(r.picks),moves:[],picks:r.picks}:xe()}if(e&&/^(?:it|this|that)$|^(?:here|this place|this page)$/.test(e)){let t=(p.selection??[]).map(r=>w.getNode(r)).find(r=>r!==void 0);if(t)return{about:"describe",say:re(t),moves:[],subject:t.id}}let n=c.violations();if(n.length===0)return{about:"problems",say:"Nothing is wrong \u2014 every rule holds.",moves:[]};let s={to:"problems",address:"/problems",said:"Went to the problems."};return{about:"problems",say:`${s.said} ${Qe(n)}: ${n.slice(0,4).map(t=>t.message).join("; ")}${n.length>4?"\u2026":"."}`,moves:[s]}}if(On.test(N))return Le();let _e=yn(N);if(_e)return _e;let ke=Oe(N,k,j);if(ke&&!ie(Y(ke.ask.words))&&ke.rest.replace(/'s\b/g,"").split(" ").every(e=>e===""||ne.has(e)||Ce.has(e))){let e=de(N);if(e)return e}if(/^open /.test(N)){let e=de(N);if(e)return e}let Fe=N.match(Nn)??N.match(/^(?:go|take me|head|get me)(?: back)? (home)$/);if(Fe)return Re(Fe[1].trim(),!1);let Ue=N.match(Sn);if(Ue){let e=Re(Ue[1].trim(),!0);return"unresolved"in e&&e.unresolved&&!/^tell me|^describe/.test(N)?{unresolved:!0}:e}let $e=ie(N);if($e){let e=We($e);return{about:"place",say:e.said,moves:[e],subject:$e.slug}}let Be=de(N);return Be||{unresolved:!0}}var Ce=new Set(["who","whom","whose","which","what","whats","what's","who's"]),Rn=new Set(["person","people","user","users","member","members","volunteer","volunteers","gardener","gardeners","player","players","staff","worker","workers","employee","employees","owner","owners","assignee","assignees","helper","helpers","student","students","teacher","teachers","customer","customers","client","clients","contact","contacts","author","authors"]),dn=new Set(["work","cover","staff","assign","do","run","schedul","roster","book","duty","serv","help"]);function je(o){let i=o.toLowerCase().replace(/'s$/,"");for(let p of["ing","ed","es","s"])if(i.length>p.length+2&&i.endsWith(p)){let u=i.slice(0,-p.length);return u.length>3&&u[u.length-1]===u[u.length-2]?u.slice(0,-1):u}return i}function ln(o){return o.toLowerCase().split(/[^a-z']+/).filter(i=>i.length>1&&!ne.has(i)&&!Ce.has(i)&&!["it","they","them","their","its","this","here","to","at"].includes(i)).map(je)}var Ln=(o,i)=>o===i||o.length>=4&&i.length>=4&&(o.startsWith(i)||i.startsWith(o)),te=new Set(["done","finished","complete","completed","closed","resolved","agreed","canceled","archived","shipped","delivered"]),Pn=new Set(["open","unfinished","outstanding","pending","remaining","undone","incomplete"]);function cn(o,i){return V(o,i.kind).filters.some(u=>u.about==="field"&&(u.type==="boolean"&&te.has(u.key.toLowerCase())&&i[u.key]===!0||u.type==="choice"&&typeof i[u.key]=="string"&&te.has(String(i[u.key]).toLowerCase())))}function he(o){return o.length<=1?o[0]??"":`${o.slice(0,-1).join(", ")} and ${o[o.length-1]}`}function Fn(o,i,p={}){let u=p.scene!==void 0?{...p.pages,scene:p.scene}:p.pages;return[...en(o,i,u?{pages:u}:{})].map(({first:c,hidden:y,lens:k,...j})=>j)}function gn(o,i){return{...o.principal?{principal:o.principal}:{},...o.places?{places:o.places}:{},...o.selection?{selection:o.selection}:{},...o.place?{place:o.place}:{},...i??o.today?{today:i??o.today}:{},...o.weekStartsOn!==void 0?{weekStartsOn:o.weekStartsOn}:{}}}function Un(o,i,p,u){let c=hn(o,i,gn(p,u));if(c.unresolved)return c.say?{reply:{say:c.say,proposals:[],grounded:!0}}:{};if(c.about==="picks")return{};let y=c.moves.length>0?{moves:c.moves}:{},k=c.subject?o.graph.getNode(c.subject):void 0;if(c.about==="problems")return{...y,problems:!0};if(k&&(c.about==="describe"||c.about==="here"))return{...y,told:k.id};let j=k?nn(o,tn(Ve(o.violations(),[k.id])).slice(0,3)):[];return{reply:{say:c.say,proposals:j,grounded:!0,...y,...c.picks&&c.picks.length>0?{picks:c.picks}:{},...c.offer?{offer:c.offer}:{}}}}function Bn(o,i,p={}){let u=gn(p),c=[];for(let y of i){let k=typeof y=="string"?y:typeof y=="object"&&y!==null&&typeof y.to=="string"?y.to:void 0;if(!k||k.trim().length===0)continue;let j=hn(o,/^(?:go|take me|open|show)\b/i.test(k.trim())?k:`go to ${k}`,u);if("moves"in j)for(let z of j.moves)c.some(U=>U.address===z.address)||c.push(z)}return c}export{An as NOTHING_BY_THAT_NAME,gn as askContextOf,Un as goingFrom,Bn as movesFromNames,Fn as placesFromViews,hn as resolveAsk};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk.AZYJTNSM.js";import"./chunk.VVZ2Z7OS.js";import"./chunk.EQOU4POV.js";import"./chunk.ONDILMIX.js";import{f as s}from"./chunk.NOXC454O.js";import"./chunk.4UQLZ7VW.js";import"./chunk.DN4D4HGX.js";import"./chunk.DJ26NOOW.js";import"./chunk.SQD7ZPEJ.js";import"./chunk.IKT7JQUW.js";import"./chunk.6CLHFNDM.js";import"./chunk.R5K7NK4U.js";import"./chunk.HCK6IHGP.js";import"./chunk.YAONM74M.js";import"./chunk.CJQL7AHT.js";import"./chunk.BQV62QEL.js";import"./chunk.DAKED3WK.js";import"./chunk.WWRWXFYR.js";import"./chunk.ZFUQA3KT.js";import"./chunk.DO4P2UK4.js";import"./chunk.6KJSFIO7.js";import"./chunk.FLJP3BGP.js";import"./chunk.ENMNLR73.js";import"./chunk.LZQZP2PD.js";import"./chunk.SCLIBKLS.js";import"./chunk.ACZGK7LQ.js";import"./chunk.AHDOKM4O.js";import"./chunk.3MLQ3Q5X.js";import"./chunk.LGUV2J6Q.js";import"./chunk.4JSMCNF7.js";import"./chunk.Y235YZSZ.js";import{a as y,b as i}from"./chunk.MRK6QJV5.js";import{b as r}from"./chunk.AJZBJBMO.js";var c=r(y(),1),e=r(i(),1);function v({store:d,views:t,as:a,scope:o}){let l=(0,c.useMemo)(()=>s({scope:`.${o}`}),[o]);return(0,e.jsxs)("div",{"data-testid":"embed-picture","data-embed-content":"",tabIndex:0,"aria-label":t.places().find(m=>m.as===a)?.title??"The picture",style:{flex:"1 1 auto",minHeight:0,display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",background:"var(--graview-ground)",color:"var(--graview-ink)",fontFamily:"var(--graview-font-body, system-ui)"},children:[(0,e.jsx)("style",{children:l}),(0,e.jsx)(n,{store:d,views:t,as:a})]})}export{v as PictureFace};
@@ -1 +0,0 @@
1
- import{a as D}from"./chunk.AZG6V3PF.js";import{a as O,c as V,f as K,g as q,k as z,l as W,m as U}from"./chunk.6CLHFNDM.js";import{c as j}from"./chunk.WGNF4E67.js";import{e as _,g as J,i as Q}from"./chunk.R5K7NK4U.js";import{ca as T,ea as $,ma as G,ta as I}from"./chunk.4JSMCNF7.js";import{Cb as H,bb as P,lb as L,mb as M}from"./chunk.Y235YZSZ.js";import{a as ne,b as N}from"./chunk.MRK6QJV5.js";import{b as A}from"./chunk.AJZBJBMO.js";var o=A(ne(),1);function te(e){let t=[e?.typography?.body,e?.typography?.display,e?.typography?.mono],n=[];for(let a of t){let r=a?.split(",")[0]?.trim().replace(/^["']|["']$/g,"");!r||M(r)||r.toLowerCase()!==P.toLowerCase()&&(n.includes(r)||n.push(r))}return n}function X(e){let t=te(e);return t.length===0?null:`https://fonts.googleapis.com/css2?${t.map(a=>`family=${encodeURIComponent(a).replace(/%20/g,"+")}:wght@400;500;600;700`).join("&")}&display=swap`}var y=A(N(),1);function ye(e,t){let{app:n}=e;return(0,o.useMemo)(()=>{let a=J(t(n.schema,n.viewSpecs),n),r=e.views?G(a,e.views(n.schema,a)):a;return Q(r,n.schema,_(e.brand??n.brand,n.schema)),r},[e.views,n.schema,n.viewSpecs,n.lenses,n.pages,n.home])}function re(e,t){return new H({schema:e.schema,mutations:e.mutations??[],invariants:e.invariants??[],...t?{snapshot:t}:{},...e.policy?{policy:e.policy}:{},...e.intelligence?{intelligence:e.intelligence}:{}})}function Y(e){if(typeof document>"u")return e==="dark"?"dark":"light";let t=document.documentElement.dataset.theme;return t==="dark"||t==="light"?t:e==="dark"||e==="light"?e:typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function oe(e,t){let[n,a]=(0,o.useState)(()=>Y(t));return(0,o.useEffect)(()=>{if(!e||typeof document>"u")return;let r=()=>a(Y(t));r();let s=new MutationObserver(r);s.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});let u=typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null;return u?.addEventListener?.("change",r),()=>{s.disconnect(),u?.removeEventListener?.("change",r)}},[e,t]),n}var R=e=>e?e.getBoundingClientRect().height:0;function pe(e,t,n){let a=(0,o.useRef)(n);a.current=n;let r=n!==void 0;(0,o.useLayoutEffect)(()=>{let s=e.current;if(!s||!r)return;let u=()=>{let l=[...s.children],g=l.find(c=>c.hasAttribute("data-graview-app-bar")),m=l.find(c=>c.hasAttribute("data-embed-content")),h=m?.querySelector("[data-embed-measure]")??null,d=l.find(c=>c.hasAttribute("data-graview-place-line"));return{strip:g,line:d,content:m,measure:h}},i=-1,p=()=>{let{strip:l,line:g,content:m,measure:h}=u(),d=Math.ceil(R(l)+R(g)+R(h||m));d!==i&&(i=d,a.current?.(d))};if(p(),typeof ResizeObserver>"u")return;let f=new ResizeObserver(p),w=()=>{f.disconnect();let{strip:l,line:g,content:m,measure:h}=u();for(let d of[s,l,g,m,h])d&&f.observe(d)};w();let v=new MutationObserver(()=>{w(),p()});return v.observe(s,{childList:!0}),()=>{f.disconnect(),v.disconnect()}},[e,t,r])}var fe=480,ae=0;function he(e){let{app:t,seed:n,scheme:a="auto",brand:r=t.brand,fonts:s=!0,height:u="100%",label:i}=e,p=(0,o.useRef)(null);I(p);let f=(0,o.useMemo)(()=>`graview-embed-${++ae}`,[]),w=(0,o.useMemo)(()=>e.store??e.remote?.store??re(t,n),[e.store,e.remote,t,n]),v=e.presence??e.remote?.presence,l=e.hostContext?.theme,g=oe(a==="auto"&&l===void 0,r?.scheme),m=a==="auto"?l??g:a,h=(0,o.useMemo)(()=>O(m,r,{scope:`.${f}`}),[m,r,f]);V(e.favicon?L(r):void 0),(0,o.useEffect)(()=>{if(!s||typeof document>"u")return;let c=X(r);if(!c||document.querySelector(`link[href="${c}"]`))return;let b=document.createElement("link");b.rel="stylesheet",b.href=c,document.head.appendChild(b)},[r,s]);let d=(0,o.useRef)(void 0);return(0,o.useLayoutEffect)(()=>{let c=p.current,b=d.current;if(d.current=i,!c||!i)return;let ee=S=>{let E=S.getAttribute("aria-label")??"",x=b&&b!==i?E.startsWith(`${b} \xB7 `)?E.slice(b.length+3):E===b?"":E:E;x===i&&(S.getAttribute("role")==="region"||S.tagName==="SECTION"&&!S.hasAttribute("role"))&&S.setAttribute("role","group");let B=x.startsWith(`${i} \xB7 `)||x===i?x:x?`${i} \xB7 ${x}`:i;B!==E&&S.setAttribute("aria-label",B)},k=()=>c.querySelectorAll("aside, nav, main, header, footer, section[aria-label]:not([role]), [role=region], [role=complementary], [role=navigation], [role=search]").forEach(S=>{S.hasAttribute("data-graview-named-by-lens")||ee(S)});k();let C=new MutationObserver(k);return C.observe(c,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["aria-label"]}),()=>C.disconnect()},[i]),{rootRef:p,scope:f,css:h,scheme:m,store:w,presence:v,brand:r,auto:u==="auto",height:u}}function ge({rootRef:e,board:t}){let n=(0,o.useCallback)(()=>e.current?.querySelector("[data-embed-content]")??e.current,[e]);return(0,y.jsx)(j,{board:t,anchor:n})}function be(e,t,n){return{...n?{brand:n}:{},...e.principal?{principal:e.principal}:{},...e.seats?{seats:e.seats}:{},...t?{presence:t}:{},...e.people?{people:e.people}:{},...e.memory?{memory:e.memory}:{},...e.presenceTtlMs!==void 0?{presenceTtlMs:e.presenceTtlMs}:{},...e.onKeepLens?{onKeepLens:e.onKeepLens}:{},...e.ai?{ai:e.ai}:{},settings:e.app.settings??[]}}function Se({name:e,heading:t,faces:n,at:a,without:r,home:s,reach:u,standing:i,hostActions:p,keeping:f,onFind:w,switch:v}){let{brand:l,store:g,principal:m,views:h}=T();$();let d=r?.has("places")?[]:K({store:g,principal:m,views:h}),c=D();return(0,y.jsx)(z,{brand:l,name:e,description:l?.subtitle,heading:t,faces:n,home:s,places:d,current:a===null?null:q(d,a),reach:u,onFind:w,...v?{switch:v}:{},...n?{scenePlaces:c}:{},tools:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(U,{clean:i}),(0,y.jsx)(W,{...p?{hostActions:p}:{},...f?{keeping:f}:{}})]})})}var ve=e=>e===!1?2:Math.min(e+1,6);function we(e){let[t,n]=(0,o.useState)(e),a=(0,o.useRef)(void 0),r=(0,o.useRef)(void 0),s=(0,o.useMemo)(()=>({go:a,at:n,pending:r}),[]),u=(0,o.useCallback)(i=>{if(a.current){a.current(i);return}r.current=i,n(i)},[]);return{at:t,setAt:n,steering:s,steer:u}}function ie(e){let t=typeof e=="object"&&e!==null?e.name:void 0;return{name:typeof t=="string"&&t.length>0?t:typeof e=="object"?"Error":typeof e}}var F=()=>typeof performance<"u"?performance.now():Date.now();function Ee(e,t){let n=(0,o.useRef)({onError:e,face:t});return n.current={onError:e,face:t},(0,o.useCallback)((a,r)=>n.current.onError?.(ie(a),{module:r.module,face:n.current.face}),[])}function xe(e,t){let n=(0,o.useRef)(null);n.current===null&&(n.current=F());let a=(0,o.useRef)({onReady:e,face:t});a.current={onReady:e,face:t};let r=(0,o.useRef)(!1);return(0,o.useCallback)(s=>{r.current||(r.current=!0,a.current.onReady?.({ms:Math.max(0,F()-(n.current??F())),face:s}))},[])}var Z=class extends o.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(t,n){console.error(`[graview] ${this.props.module} threw while rendering`,t,n.componentStack),this.props.report(t,{module:this.props.module})}render(){return this.state.failed?(0,y.jsxs)("div",{role:"alert","data-graview-face-error":this.props.module,...this.props.content?{"data-embed-content":""}:{},style:this.props.content?{flex:"1 1 auto",display:"grid",alignContent:"center",justifyItems:"center",gap:8,padding:24,background:"var(--graview-ground)",color:"var(--graview-ink)",fontSize:"0.9375rem"}:{display:"inline-flex",alignItems:"center",gap:6,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,y.jsx)("span",{children:this.props.content?"This part of the app could not draw.":"Could not draw."}),(0,y.jsx)("button",{type:"button",onClick:()=>this.setState({failed:!1}),style:{padding:"3px 11px",fontSize:"0.8125rem"},children:"Try again"})]}):this.props.children}};export{ye as a,re as b,pe as c,fe as d,he as e,ge as f,be as g,Se as h,ve as i,we as j,Ee as k,xe as l,Z as m};
@@ -1 +0,0 @@
1
- import{a as x,c as G}from"./chunk.7YCQZJGB.js";import"./chunk.AZG6V3PF.js";import"./chunk.6CLHFNDM.js";import"./chunk.WGNF4E67.js";import"./chunk.R5K7NK4U.js";import"./chunk.AHDOKM4O.js";import{C as O,c as b,d as P,j as v,x as k,z as I}from"./chunk.4JSMCNF7.js";import{La as S,Lb as W,wa as A,xa as E}from"./chunk.Y235YZSZ.js";import"./chunk.MRK6QJV5.js";import"./chunk.AJZBJBMO.js";var $=(e,i)=>S(e,i).slice(1);function V(e,i){let l=e.split("/").filter(Boolean);return l.length===i.length&&l.every((a,f)=>a.startsWith(":")||a==="*"||a===i[f])}var R=["problems","search","map","places"];function j(e,i,l,a,f=[]){let{schema:r}=i,o=r.kinds,h=t=>{if(t.startsWith(k))return(t.slice(k.length).split("|")[0]??"").split("+").every(U=>o.includes(U));let y=I(t);return y!==null?o.includes(y):t.startsWith("edge:")||l.graph.getNode(t)!==void 0},[p="/",u]=e.path.split("?"),n=p.split("/").filter(Boolean),m=u?`?${u}`:"",d=n.length>0&&!R.includes(n[0])?o.find(t=>$(r,t)===n[0]):void 0,c=e.path;if(n[0]==="places"&&n.length===2)`/places/${n[1]}`!==W&&!a.some(t=>t.as===decodeURIComponent(n[1]))&&(c="/");else if(d){let t=n[1]===void 0?void 0:decodeURIComponent(n[1]);c=`/${$(r,d)}${t!==void 0&&l.graph.getNode(t)?.kind===d?`/${n[1]}`:""}${m}`}else n.length>0&&n.length<=2&&!R.includes(n[0])&&!f.some(t=>V(t.path,n))&&(c="/");let g=P(e.stop),w=g.within?.view,F=w!==void 0&&!a.some(t=>t.as===w),s=g;if(F){let{view:t,...y}=g.within??{};s={...s,within:y}}if(g.focusId&&!h(g.focusId)){let t=e.kind&&o.includes(e.kind)?O(e.kind):null;s={...v(s,t),zoom:!1}}return s={...s,relation:s.relation&&(o.includes(s.relation)||r.edgeKinds.includes(s.relation))?s.relation:null,expanded:s.expanded.filter(h),pins:Object.fromEntries(Object.entries(s.pins).filter(([t])=>h(t))),...s.selection?{selection:s.selection.filter(h)}:{}},{face:e.face,path:c,stop:b(s),...e.kind?{kind:e.kind}:{}}}function B(e,i,l){let a=e.at,f=e.pages?.routes()??[];if(e.routing!=="address"||typeof window>"u")return j(a,e.app,i,l,f);let{pathname:r,search:o,hash:h}=window.location,p=E(r,e.basePath),u=x({routing:"address",...e.basePath===void 0?{}:{basePath:e.basePath},face:a.face}),n=u==="pages",m={...a,face:u,...p===null?{}:n?{path:p+o}:{stop:G(e.basePath)??a.stop}},d=j(m,e.app,i,l,f),c=n?d.path===m.path?null:A(d.path,e.basePath===void 0?{}:{basePath:e.basePath}):d.stop===b(P(m.stop))?null:r+o+d.stop;return p!==null&&c!==null&&c!==r+o+h&&window.history.replaceState(window.history.state,"",c),d}export{j as settle,B as settleAt};
@@ -1 +0,0 @@
1
- import{c as a,l as o}from"./chunk.CJQL7AHT.js";import"./chunk.BQV62QEL.js";import"./chunk.DAKED3WK.js";import"./chunk.WWRWXFYR.js";import"./chunk.ZFUQA3KT.js";import"./chunk.DO4P2UK4.js";import"./chunk.6KJSFIO7.js";import"./chunk.FLJP3BGP.js";import"./chunk.ENMNLR73.js";import"./chunk.LZQZP2PD.js";import"./chunk.SCLIBKLS.js";import"./chunk.ACZGK7LQ.js";import"./chunk.AHDOKM4O.js";import"./chunk.3MLQ3Q5X.js";import"./chunk.LGUV2J6Q.js";import{la as n}from"./chunk.4JSMCNF7.js";import"./chunk.Y235YZSZ.js";import"./chunk.MRK6QJV5.js";import"./chunk.AJZBJBMO.js";var w=new WeakMap;function p(e,i){let t=w.get(e);t||w.set(e,t=new Map);let r=t.get(i);return r||t.set(i,r=o(a(e,n(e)),e,i)),r}export{p as frameworkViews};
@@ -1 +0,0 @@
1
- import{B as q,ca as G,i as j}from"./chunk.4JSMCNF7.js";import{H as P,I as H,L,Q as R,T as K,_ as T}from"./chunk.Y235YZSZ.js";import{a as V,b as M}from"./chunk.MRK6QJV5.js";import{b as E}from"./chunk.AJZBJBMO.js";var a=E(V(),1),s=E(M(),1);function ne({affordance:r,onApply:o,onCancel:u}){let{store:l}=G(),[y,m]=(0,a.useState)({}),[f,x]=(0,a.useState)(""),[A,$]=(0,a.useState)(_),W=(0,a.useId)(),O=(0,a.useRef)(null),b=r.open.filter(e=>!(e.name in y)),i=b[0];if((0,a.useEffect)(()=>x(""),[i?.name]),(0,a.useEffect)(()=>{O.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[i?.name]),(0,a.useLayoutEffect)(()=>{let e=O.current,t=typeof document>"u"?null:document.activeElement;if(!e||t&&t!==document.body&&!e.contains(t))return;let p=e.querySelector("form input, [role=group] button:not([disabled])");p&&p!==t&&p.focus()},[i?.name]),!i)return null;let h=e=>{let t={...y,[i.name]:e};if(r.open.filter(c=>!(c.name in t)).length===0){let c=o(Object.fromEntries(Object.entries(t).filter(([,C])=>C!==void 0)));c&&c.length>0&&m(Object.fromEntries(Object.entries(t).filter(([C])=>!c.includes(C))))}else m(t)},F=i.optional?(0,s.jsx)("button",{type:"button",onClick:()=>h(void 0),style:{fontSize:"0.8125rem"},children:"Skip"}):null,n=i.shape??{type:"unknown"},d=Y(i,n),g=T(l.schema,l.allMutations().find(e=>e.name===r.mutation),i.name),[N,B]=(0,a.useState)(""),I=(0,a.useMemo)(()=>{let e=d.map(t=>l.graph.getNode(t)).filter(t=>t!==void 0);return P(e,t=>l.schema.tryDefinition(t))},[d,l]),z=e=>{let t=Q(l,n,e),p=n.type==="choice"||n.type==="several"&&n.of.type==="choice"?g.option(e):t,c=I.get(e);return c?`${p} \xB7 ${c}`:p},w=(0,a.useMemo)(()=>{let e=N.trim().toLowerCase();return e===""?d:d.filter(t=>z(t).toLowerCase().includes(e))},[d,N,l,n,I]),v=n.type==="several",D=v&&d.length===0,k=i.kinds&&i.kinds.length>0&&!i.kinds.includes("*")?i.kinds.map(e=>L(K(l.schema.tryDefinition(e),e))).join(" or "):g.label,U=r.open.length>1?`${k} \xB7 ${r.open.length-b.length+1} of ${r.open.length}`:k;return(0,s.jsxs)("div",{ref:O,"data-graview-asking":r.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,padding:"5px 0 2px"},children:[r.open.length>1||d.length>0?(0,s.jsx)("span",{id:W,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:U}):null,d.length>S?(0,s.jsx)("input",{type:"search",value:N,onChange:e=>B(e.target.value),placeholder:`Filter ${d.length}\u2026`,"aria-label":`Filter ${k}`,"data-testid":"ask-filter",style:{font:"inherit",fontSize:"0.8125rem",minWidth:0,padding:"3px 7px"}}):null,d.length>0?(0,s.jsxs)("div",{role:"group","aria-labelledby":W,style:{display:"flex",flexWrap:"wrap",gap:4},children:[w.slice(0,S).map(e=>{let t=A.includes(e);return(0,s.jsx)("button",{type:"button","aria-label":`${k}: ${z(e)}`,...v?{"aria-pressed":t}:{},style:{padding:"3px 9px",fontSize:"0.8125rem",...t?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},onClick:()=>v?$(p=>p.includes(e)?p.filter(c=>c!==e):[...p,e]):h(n.type==="boolean"?e==="yes":e),children:z(e)},e)}),w.length>S?(0,s.jsxs)("span",{"data-testid":"ask-more",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:[w.length-S," more \u2014 type to narrow"]}):null,w.length===0?(0,s.jsxs)("span",{"data-testid":"ask-none",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["None of the ",d.length," match that."]}):null,v?(0,s.jsx)("button",{type:"button",disabled:A.length===0,style:{fontSize:"0.8125rem"},onClick:()=>{let e=A;$(_),h(e)},children:b.length>1?"Next":"Apply"}):null,F]}):(0,s.jsxs)("form",{style:{display:"flex",flexWrap:"wrap",gap:4},onSubmit:e=>{if(e.preventDefault(),D){h(f.split(/[,\n]/).map(t=>t.trim()).filter(Boolean));return}f.trim().length!==0&&h(n.type==="number"?Number(f):f)},children:[n.type==="text"&&n.long?(0,s.jsx)("textarea",{autoFocus:!0,name:i.name,"aria-label":g.label,placeholder:g.label,value:f,rows:4,onChange:e=>x(e.target.value),onKeyDown:e=>{e.key==="Escape"?u():e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())},style:{flex:"1 1 100%",minWidth:0,font:"inherit",fontSize:"0.875rem",lineHeight:1.45,padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",resize:"vertical",fieldSizing:"content",minHeight:"5.5em",maxHeight:"40vh"}}):(0,s.jsx)("input",{autoFocus:!0,type:n.type==="date"?n.time?"datetime-local":"date":n.type==="number"?"number":"text",name:i.name,"aria-label":g.label,placeholder:D?`${g.label}, separated by commas`:g.label,value:f,...n.type==="number"&&n.min!==void 0?{min:n.min}:{},...n.type==="number"&&n.max!==void 0?{max:n.max}:{},...n.type==="number"&&n.step!==void 0?{step:n.step}:{},onChange:e=>x(e.target.value),onKeyDown:e=>{e.key==="Escape"&&u()},style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,s.jsx)("button",{type:"submit",disabled:!D&&f.trim().length===0,style:{fontSize:"0.8125rem"},children:b.length>1?"Next":"Apply"}),F]})]})}var _=[],S=10;function Y(r,o){return r.candidates&&r.candidates.length>0?r.candidates:o.type==="choice"?o.options:o.type==="several"&&o.of.type==="choice"?o.of.options:o.type==="boolean"?J:[]}var J=["yes","no"];function Q(r,o,u){return o.type==="boolean"||o.type==="choice"||o.type==="several"&&o.of.type==="choice"?u:X(r,u)}function X(r,o){let u=j(o);if(u){let m=R(r.schema,r.graph.getNode(u.from)?.kind??"",u.kind,"out");return m.charAt(0).toUpperCase()+m.slice(1)}let l=q(o);if(l.length>0)return l.map(m=>r.schema.tryDefinition(m)?.plural??`${m}s`).join(" + ");let y=r.graph.getNode(o);return y?H(r.schema.tryDefinition(y.kind),y):o}export{ne as a,X as b};
@@ -1 +0,0 @@
1
- import{a as b,b as c,c as d,d as e,e as f,f as g}from"./chunk.UNRYIETM.js";import"./chunk.6C7SJJQO.js";import"./chunk.DO4P2UK4.js";import"./chunk.6KJSFIO7.js";import"./chunk.ENMNLR73.js";import"./chunk.LZQZP2PD.js";import{ta as a}from"./chunk.Y235YZSZ.js";import"./chunk.AJZBJBMO.js";export{a as ActRefusal,e as compileDocumentWithoutCheck,d as effectsOf,f as frameworkPath,g as inDocumentWords,c as kindShapes,b as readDocument};
@@ -1,8 +0,0 @@
1
- import{a as fr,b as gr,c as yr}from"./chunk.DJ26NOOW.js";import{a as sr,e as dr,f as lr,i as Rn,j as cr,l as dn,m as On,n as ur,o as hr}from"./chunk.DAKED3WK.js";import{a as rr,b as et,c as Sn,d as ir,f as Mn,g as Qt,h as lo}from"./chunk.ACZGK7LQ.js";import{d as ar}from"./chunk.LGUV2J6Q.js";import{A as tr,B as an,C as Ce,D as Pt,E as vt,F as Jn,H as ht,I as bn,J as Xt,L as qt,M as vn,N as eo,O as nr,P as Ct,Q as At,R as to,V as no,X as Lt,Y as oo,aa as kn,b as Gn,ba as sn,c as Un,ca as we,d as Xn,e as Jo,ea as It,f as er,g as xn,h as Kt,i as Ot,j as Et,ja as or,k as qn,l as Qn,m as Gt,qa as ro,ra as io,sa as Nt,t as Zn,u as ut,ua as ao,w as Ut,xa as so,y as he,z as Be}from"./chunk.4JSMCNF7.js";import{Ca as Go,G as Wo,I as Vo,L as Wt,Lb as Xo,N as wn,O as Vt,Ob as qo,P as Yt,R as Yo,T as Ko,Ta as Uo,Ub as Qo,Vb as Zo,ab as Rt,sb as $e}from"./chunk.Y235YZSZ.js";import{a as Ye,b as Re}from"./chunk.MRK6QJV5.js";import{b as ae}from"./chunk.AJZBJBMO.js";var En=(e,t)=>e<t?-1:e>t?1:0;function pr(e){return!e||e<=1?1:Math.min(4,Math.ceil(Math.sqrt(e)))}function wr(e,t,n){if(t===n)return 0;let r=e.kinds,o=0;for(let[i,a]of[[t,n],[n,t]]){let d=e.tryDefinition(i);for(let c of Object.values(d?.edges??{}))(c.to==="*"?r:c.to).includes(a)&&(o+=1)}return o}var mr=(e,t)=>`${Math.floor(e/5)},${Math.floor(t/5)}`;function Pi(e,t,n){if(n===0)return[{col:e,row:t}];let r=[];for(let o=0;o<n;o++)r.push({col:e+(n-o)*5,row:t+o*5}),r.push({col:e-o*5,row:t+(n-o)*5}),r.push({col:e-(n-o)*5,row:t-o*5}),r.push({col:e+o*5,row:t-(n-o)*5});return r}function co(e,t={}){let n=[...e.kinds],r=[...(t.order??[]).filter(d=>n.includes(d)),...n.filter(d=>!(t.order??[]).includes(d)).sort(En)].filter((d,c,l)=>l.indexOf(d)===c),o=new Map,i=new Set,a=(d,c,l)=>{o.set(d,{col:c,row:l,side:pr(t.counts?.[d])}),i.add(mr(c,l))};for(let d of r){let c=e.tryDefinition(d)?.plot??t.plots?.[d];c&&a(d,c.col,c.row)}for(let d of r){if(o.has(d))continue;if(o.size===0){a(d,0,0);continue}let c,l=0;for(let f of[...o.keys()].sort(En)){let y=wr(e,d,f);(y>l||y===l&&y>0&&c!==void 0&&En(f,c)<0)&&(l=y,c=f)}let s=c?o.get(c):o.get(r.find(f=>o.has(f))),u;for(let f=1;!u&&f<64;f++)u=Pi(s.col,s.row,f).find(y=>!i.has(mr(y.col,y.row)));a(d,u?.col??s.col+5*o.size,u?.row??s.row)}return o}function uo(e,t){let n=[...t.keys()].sort(En),r=[];for(let o=0;o<n.length;o++)for(let i=o+1;i<n.length;i++){let a=n[o],d=n[i],c=[];for(let[l,s]of[[a,d],[d,a]]){let u=e.tryDefinition(l);for(let[f,y]of Object.entries(u?.edges??{}))(y.to==="*"?e.kinds:y.to).includes(s)&&c.push(f)}c.length>0&&r.push({from:a,to:d,edges:c})}return r}function ho(e){let t=1/0,n=1/0,r=-1/0,o=-1/0;for(let i of e.values())t=Math.min(t,i.col),n=Math.min(n,i.row),r=Math.max(r,i.col+i.side),o=Math.max(o,i.row+i.side);return e.size===0?{minCol:0,minRow:0,maxCol:1,maxRow:1}:{minCol:t,minRow:n,maxCol:r,maxRow:o}}function ke(e,t,n){return{x:(e-t)*n/2,y:(e+t)*n/4}}function Ci(e){if(e<3)return[];if(e%2===1){let r=(e-1)/2;return[[r,r]]}let t=e/2-1,n=e/2;return[[t,t],[n,t],[t,n],[n,n]]}function xr(e){let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return(t>>>0)%1e3/1e3}function fo(e,t){let n=e.side+1,r=new Set(Ci(n).map(([c,l])=>`${c},${l}`)),o=e.side/n,i=[];for(let c=0;c<n;c++)for(let l=0;l<n;l++)r.has(`${l},${c}`)||i.push([l,c]);i.sort((c,l)=>c[0]+c[1]-(l[0]+l[1])||c[0]-l[0]);let a=t.slice(0,i.length);return{buildings:a.map((c,l)=>{let[s,u]=i[l];return{id:c,col:e.col+(s+.5)*o,row:e.row+(u+.5)*o,footprint:o*.62,height:.55+xr(c)*.7}}),rest:Math.max(0,t.length-a.length)}}var br={width:1200,height:760,focusSize:{width:1200,height:420},relationSize:{width:240,height:140},contextSize:{width:300,height:104},gap:16,unit:16};var vr=(e,t)=>e?`${e.edgeKind}|${e.direction}`:`raised|${t}`,Tt=(e,t,n)=>`${bn}${e}|${t}|${n}`;function Ai(e,t){if(!Xt(e))return null;let[n="",r="",o="",i=""]=e.slice(bn.length).split("|"),a=t.definitions.find(w=>w.kind===n),d=Yt(t,n),c=r==="raised"?null:(()=>{let w=a?.edges[r]??t.definitions.map(g=>g.edges[r]).find(Boolean);return((o==="in"?w?.inverse:w?.description)??Wt(r)).toLowerCase()})(),[l="",s=""]=i.split("="),u=l.split(":")[0],f=i===""||i==="kind"||i.startsWith("more")?null:`${Yo(a,u).toLowerCase()}: ${s==="none"?"none":s}`;return[i.startsWith("more")?`More ${d.toLowerCase()}`:d,[c,f].filter(Boolean).join(", ")].filter(Boolean).join(" \u2014 ")}function Pn(e,t){let n=e.map(()=>0),r=e.map((a,d)=>({size:a,index:d})).sort((a,d)=>a.size-d.size||a.index-d.index),o=Math.max(t,e.length),i=e.length;for(let{size:a,index:d}of r){let c=Math.max(1,Math.floor(o/i));n[d]=Math.min(a,c),o-=n[d],i-=1}return n}function yo(e){return vr(e.via,e.node.kind)}function Cn(e,t){let n=[],r=0;return e.forEach((o,i)=>{if(o<=0)return;if(n.length>0&&o<=r){for(let d=0;d<o;d++)n[n.length-1].push(i);r-=o;return}let a=o;for(;a>0;){let d=Math.min(t,a);n.push(Array.from({length:d},()=>i)),a-=d,r=t-d}}),n}function mo(e,t,n){let r=Pn(e,t*n);for(;Cn(r,t).length>n;){let o=-1;if(r.forEach((i,a)=>{i>1&&(o<0||i>r[o])&&(o=a)}),o<0)break;r[o]=r[o]-1}return r}function Li(e,t,n){let r=o=>[t.chosen?.has(o.id)?0:1,t.hits?.has(o.id)?0:1,t.flagged?.has(o.id)?0:1,-(t.touched?.get(o.id)??0),-n.neighbors(o.id).length];return e.map((o,i)=>({node:o,index:i,key:r(o)})).sort((o,i)=>{for(let a=0;a<o.key.length;a++)if(o.key[a]!==i.key[a])return o.key[a]-i.key[a];return o.index-i.index}).map(o=>o.node)}var Ii=5,Ni=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1};function kr(e,t,n){if(e.length===0||t<2)return;let r=e[0].kind,o={schema:n.schema,graph:n.graph,...n.today?{today:n.today}:{}},i=[];for(let d of Go(n.schema,r).groups)if(d.key!==n.exclude)if(d.buckets)for(let c of["decade","year","month"])i.push({by:d.key,bucket:c});else i.push({by:d.key});let a;return i.forEach((d,c)=>{let s=ar(e,{group:d},o).groups;if(s.length<2||s.length>t)return;let f=s.filter(w=>w.key!=="").reduce((w,m)=>w+m.nodes.length,0)/e.length;if(f<.5||s.some(w=>w.nodes.length>e.length*.75))return;let y=[-Math.round(f*100),Math.abs(s.length-Ii),c];(!a||Ni(y,a.score))&&(a={grouping:{by:d.by,...d.bucket?{bucket:d.bucket}:{},groups:s},score:y})}),a?.grouping}function po(e,t){let n=m=>({id:m.node.id,kind:m.node.kind,node:m.node,...m.via?{via:m.via}:{}});if(e.length<=t.budget)return e.map(n);let r={...t.relevance,chosen:new Set([...t.relevance?.chosen??[],...t.selection??[]])},o=new Map;for(let m of e){let g=vr(m.via,m.node.kind),p=o.get(g);p?p.push(m):o.set(g,[m])}let i=[...o.entries()].map(([m,g])=>({key:m,run:g,via:g[0].via,kinds:[...new Set(g.map(p=>p.node.kind))],members:[],whole:!1,extra:0})),a=Pn(i.map(m=>m.run.length),t.budget);i.forEach((m,g)=>m.whole=m.run.length<=a[g]);let d=i.filter(m=>!m.whole),c=i.filter(m=>m.whole).reduce((m,g)=>m+g.run.length,0),l=Math.max(d.length,t.budget-c);for(let m of d){m.members=Li(m.run.map(p=>p.node),r,t.graph);let g=l-(d.length-1);m.kinds.length>1&&m.kinds.length<=g?m.byKind=!0:m.kinds.length===1&&(m.grouping=kr(m.members,g,{schema:t.schema,graph:t.graph,...m.via?{exclude:m.via.edgeKind}:{},...t.today?{today:t.today}:{}}))}let s=m=>m.byKind?m.kinds.length:m.grouping?m.grouping.groups.length:1;for(;d.reduce((m,g)=>m+s(g),0)>l;){let m=[...d].filter(g=>s(g)>1).sort((g,p)=>s(p)-s(g))[0];if(!m)break;m.grouping=void 0,m.byKind=!1}l-=d.reduce((m,g)=>m+s(g),0);let u=m=>m.byKind?m.kinds.some(g=>t.expanded.has(Tt(g,m.key,"kind"))):m.grouping?.groups.some(g=>t.expanded.has(Tt(m.kinds[0],m.key,go(m.grouping,g.key)))),f=d.filter(m=>!m.grouping&&!m.byKind?!0:u(m)),y=Pn(f.map(m=>m.members.length),Math.max(0,l));f.forEach((m,g)=>m.extra=l>0?y[g]:0);let w=[];for(let m of i){let{key:g,via:p}=m;if(m.whole){w.push(...m.run.map(n));continue}let v=x=>({id:x.id,kind:x.kind,node:x,...p?{via:p}:{}}),E=new Map(m.run.map((x,M)=>[x.node.id,M])),P=(x,M,L)=>{let z=[...x.slice(0,M)].sort((B,j)=>E.get(B.id)-E.get(j.id));w.push(...z.map(v));let I=x.slice(M);if(I.length===0)return;let D=I[0].kind;w.push({id:Tt(D,g,L?`more:${L}`:"more"),kind:D,...p?{via:p}:{},aggregate:{kind:D,memberIds:I.map(B=>B.id),label:M>0?`${I.length} more ${t.plural(D).toLowerCase()}`:`${I.length} ${t.plural(D).toLowerCase()}`,opens:{in:"picture",focus:Ce(D),within:L?{filter:L}:{}}}})},A=p&&t.focusId?`${p.edgeKind}:${t.focusId}`:void 0;if(m.byKind){let x=m.kinds.find(M=>t.expanded.has(Tt(M,g,"kind")));for(let M of m.kinds){let L=m.members.filter(z=>z.kind===M);if(M===x){let z=m.extra+1;L.length<=z?w.push(...L.map(v)):P(L,z-1,A);continue}w.push({id:Tt(M,g,"kind"),kind:M,...p?{via:p}:{},aggregate:{kind:M,memberIds:L.map(z=>z.id),label:t.plural(M),opens:{in:"place"}}})}continue}let R=m.grouping;if(!R){P(m.members,m.extra,A);continue}let W=m.kinds[0],S=R.groups.find(x=>t.expanded.has(Tt(W,g,go(R,x.key))));for(let x of R.groups){if(x===S){let M=m.members.filter(z=>x.nodes.includes(z)),L=m.extra+1;if(M.length<=L)w.push(...M.map(v));else{let z=x.key!==""&&!x.key.includes(",")&&!R.bucket,I=[A,z?`${R.by}:${x.key}`:void 0].filter(Boolean).join(",")||void 0;P(M,L-1,I)}continue}w.push({id:Tt(W,g,go(R,x.key)),kind:W,...p?{via:p}:{},aggregate:{kind:W,memberIds:m.members.filter(M=>x.nodes.includes(M)).map(M=>M.id),label:x.label.charAt(0).toUpperCase()+x.label.slice(1),opens:{in:"place"}}})}}return w}var go=(e,t)=>`${e.by}${e.bucket?`:${e.bucket}`:""}=${t||"none"}`;function wo(e,t,n=6){return e.x<t.x+t.width+n&&t.x<e.x+e.width+n&&e.y<t.y+t.height+n&&t.y<e.y+e.height+n}var Sr=(e,t)=>ke(e.col+e.side/2,e.row+e.side/2,t);function xo(e,t,n,r,o={},i={}){let a={};for(let N of e)a[N.kind]=N.count;let d=co(t,{...i.order?{order:i.order}:{},counts:a,...i.plots?{plots:i.plots}:{}}),c=o.left??0,l=r.width-c-(o.right??0),s=c+l/2,u=r.height*.53,f=ho(d),y=[ke(f.minCol,f.minRow,1),ke(f.maxCol,f.minRow,1),ke(f.minCol,f.maxRow,1),ke(f.maxCol,f.maxRow,1)],w=Math.min(...y.map(N=>N.x)),m=Math.max(...y.map(N=>N.x)),g=Math.min(...y.map(N=>N.y)),p=Math.max(...y.map(N=>N.y)),v={x:Math.max(1,m-w),y:Math.max(.5,p-g)},E=Math.max(40,l-n.width*1.1),P=Math.max(24,r.height*.62-n.height*1.1),A=Math.max(18,Math.min(160,E/v.x,P/v.y)),R=i.scale??1,W=i.minHeight??0,S=i.avoid??[],x=0,M=(N,X,k=1,T={x:0,y:0})=>{let $=s-(w+m)/2*N+T.x+x,J=u-(g+p)/2*N+T.y,q={width:n.width*X,height:n.height*X},te=e.map(oe=>Sr(d.get(oe.kind),N).y),ye=Math.max(...te),de=Math.min(...te);return e.map(oe=>{let Ae=d.get(oe.kind),Se=Sr(Ae,N),it=ye===de?.5:(Se.y-de)/(ye-de),_e=.85+it*.45,me=q.width*_e,Oe=Math.max(W,q.height*_e),He=Oe+(oe.marquee??0)+(oe.opened>0?Math.max(oe.openedMin??0,oe.opened*k):0);return{id:oe.id,x:$+Se.x-me/2,y:J+Se.y-Oe/2,width:me,height:He,depth:1-it*.65,plot:Ae}})},L=N=>N.some((X,k)=>N.some((T,$)=>$!==k&&wo(X,T)))||N.some(X=>S.some(k=>wo(X,k))),z=N=>{if(S.length===0)return[{x:0,y:0}];let X=Math.max(...S.map($=>$.width))/2+N,k=Math.max(...S.map($=>$.height))/2+N/2,T=[{x:0,y:0}];for(let $ of[.5,.75,1,1.25]){let J=X*$,q=k*$;T.push({x:J,y:0},{x:-J,y:0},{x:0,y:q},{x:0,y:-q},{x:J,y:q},{x:-J,y:q},{x:J,y:-q},{x:-J,y:-q})}return T},I=r.width-(o.right??0),D=N=>N.reduce((X,k)=>{let T=Math.max(0,Math.min(k.x+k.width,r.width)-Math.max(k.x,0)),$=Math.max(0,Math.min(k.y+k.height,r.height)-Math.max(k.y,0));return X+k.width*k.height-T*$},0),B=(N,X,k)=>{let T,$;for(let J of z(N)){let q=M(N,X,k,J);if(L(q)){$??={placed:q,shift:J};continue}let te=D(q);(!T||te<T.off-.5)&&(T={placed:q,shift:J,off:te})}return T??$},j=A,K=R,G=1,V=B(j,K,G);for(;L(V.placed)&&K>1.001;)K=Math.max(1,K-.05),V=B(j,K,G);for(;L(V.placed)&&G>.3;)G=Math.max(.3,G-.1),V=B(j,K,G);if(L(V.placed)||D(V.placed)>0){let N=L(V.placed)?void 0:{cell:j,settled:V,off:D(V.placed)};for(let X=.9;X>=.3;X-=.1){let k=A*X,T=B(k,K,G);if(L(T.placed))continue;let $=D(T.placed);if((!N||$<N.off-.5)&&(N={cell:k,settled:T,off:$}),$===0)break}N&&(j=N.cell,V=N.settled)}for(let N=0;L(V.placed)&&N<80;N++)j*=1.06,V=B(j,K,G);if(S.length===0){let N=Math.min(...V.placed.map(T=>T.x)),X=Math.max(...V.placed.map(T=>T.x+T.width)),k=X-N>I-c?0:N<c?c-N:X>I?I-X:0;if(k!==0){x=k;let T=M(j,K,G,V.shift);L(T)?x=0:V={placed:T,shift:V.shift}}}i.zoom&&i.zoom!==1&&(j*=i.zoom,x*=i.zoom,V=B(j,K,G));let xe=V.placed,fe=s-(w+m)/2*j+V.shift.x+x,ee=u-(g+p)/2*j+V.shift.y,ce={cell:j,originX:fe,originY:ee,pan:i.pan??{x:0,y:0},extent:{x:fe+w*j,y:ee+g*j,width:v.x*j,height:v.y*j},openedShare:G};return{placed:xe,frame:ce,map:d}}function ft(e){let t={x:e.width*.45,y:e.height*.45};if(!e.city)return t;let{extent:n}=e.city,r=24;return{x:Math.max(t.x,n.x+n.width-e.width+r,-n.x+r),y:Math.max(t.y,n.y+n.height-e.height+r,-n.y+r)}}var An=48;function bo(e){if(!e.city)return[];let{width:t,height:n}=e,r=[];for(let o of e.nodes){if(!o.id.startsWith("kind:")||Math.round(o.plane)!==2)continue;let i=o.x+o.width/2,a=o.y+o.height/2,d=i<0?"left":i>t?"right":a<0?"top":a>n?"bottom":null;if(!d)continue;let c=d==="left"||d==="right",l=c?Math.max(0,Math.min(n,a)):Math.max(0,Math.min(t,i)),s=(y,w)=>y<w/4?w/4-y:y>w*3/4?w*3/4-y:0,u=(y,w)=>y<An?An-y:y>w-An?w-An-y:0,f=c?{x:s(i,t),y:u(a,n)}:{x:u(i,t),y:s(a,n)};r.push({id:o.id,kind:o.id.slice(5),side:d,along:l,by:f})}return r}function vo(e,t,n,r,o){return{x:e.x+(n.x-e.x-t.x-r.x)*(1-o),y:e.y+(n.y-e.y-t.y-r.y)*(1-o)}}var Ti={rankOf:()=>{},parentOf:()=>{}};function Mr(e,t){if(t.size===0)return Ti;let n=e.kinds,r=new Map,o=(l,s)=>{l!==s&&((r.get(l)??r.set(l,new Set).get(l)).add(s),(r.get(s)??r.set(s,new Set).get(s)).add(l))};for(let l of n){let s=e.tryDefinition(l);if(s)for(let u of Object.values(s.edges??{})){let f=u.to==="*"?n:u.to;for(let y of f)o(l,y)}}let i=new Map,a=new Map,d=[...t].filter(l=>n.includes(l));for(let l of d)i.set(l,0);let c=0;for(;d.length>0;){c+=1;let l=[];for(let s of[...d].sort((u,f)=>n.indexOf(u)-n.indexOf(f)))for(let u of[...r.get(s)??[]].sort((f,y)=>n.indexOf(f)-n.indexOf(y)))i.has(u)||(i.set(u,c),c===2&&a.set(u,s),l.push(u));d=l}return{rankOf:l=>{let s=i.get(l);if(s!==0)return s===1?"primary":"secondary"},parentOf:l=>a.get(l)}}function Rr(e,t,n,r,o={}){if(n){let i=new Map;for(let a of e.allEdges()){if(r&&a.kind!==r)continue;let d=a.from===n.id?a.to:a.to===n.id?a.from:null;if(d===null||d===n.id)continue;let c=e.getNode(d);if(!c||i.has(d))continue;let l=a.from===n.id?"out":"in",s=l==="out"?n.kind:c.kind,u=$i(t,s,a.kind,l);i.set(d,{node:c,via:{edgeKind:a.kind,direction:l,...u?{description:u}:{}}})}if(i.size>0){let a=d=>`${d.via.edgeKind}|${d.via.description??""}`;return[...i.values()].sort((d,c)=>(a(d)<a(c)?-1:a(d)>a(c)?1:0)||ht(d.node,c.node))}}if(n){let i=o[n.id]??[],a=new Set,d=[];for(let c of i){if(c===n.id||a.has(c))continue;let l=e.getNode(c);l&&(r&&r!=="judges"&&l.kind!==r||(a.add(c),d.push({node:l,via:{edgeKind:"judges",direction:"out",description:"what it finds wrong"}})))}if(d.length>0)return d.sort((c,l)=>ht(c.node,l.node))}return r?e.allNodes().filter(i=>i.kind===r).sort(ht).map(i=>({node:i})):[]}function $i(e,t,n,r){let i=e.tryDefinition(t)?.edges?.[n];return r==="out"?i?.description:i?.inverse}function Or(e,t,n){let r=new Map,o=[...t.values()].sort((l,s)=>l.plane-s.plane);for(let l of o)for(let s of l.aggregate?.memberIds??[])!t.has(s)&&!r.has(s)&&r.set(s,l.id);let i=l=>t.get(l)??t.get(r.get(l)??""),a=new Map,d=new Map,c=new Map;for(let l of e.allEdges()){let s=i(l.from),u=i(l.to);if(!s||!u||s.id===u.id&&!(n.overview&&s.aggregate&&s.plane===2))continue;let f=`${l.kind}:${s.id}:${u.id}`,y=a.get(f);if(y){let w=`${l.from}
2
- ${l.to}`,m=d.get(f);if(m.has(w))continue;if(m.add(w),c.get(f).push({from:l.from,to:l.to}),y.single){let{single:g,...p}=y;a.set(f,p)}continue}d.set(f,new Set([`${l.from}
3
- ${l.to}`])),c.set(f,[{from:l.from,to:l.to}]),a.set(f,{id:f,kind:l.kind,from:s.id,to:u.id,edges:[{from:l.from,to:l.to}],single:{from:l.from,to:l.to},...s.id===u.id?{loop:!0}:{},x1:s.x+s.width/2,y1:s.y+s.height/2,x2:u.x+u.width/2,y2:u.y+u.height/2})}return[...a.values()].map(l=>({...l,edges:c.get(l.id)})).sort(ht)}var Cr=.85,Er=60,Ln=160,Ar=2,Di=240,Fi=300,Bi=52,Pr=60;function ji(e,t,n,r,o,i=Cr){let a=e*t.width+Math.max(0,e-1)*n,d=Math.max(n,(r-a)/2);return Array.from({length:e},(c,l)=>({x:d+l*(t.width+n),y:o,depth:i}))}function _i(e,t,n,r,o){let i=e*t.width+Math.max(0,e-1)*n,a=Math.max(n,(r-i)/2);return Array.from({length:e},(d,c)=>({x:a+c*(t.width+n),y:o}))}function In(e,t,n,r={}){let o={...br,...r},i=Math.max(8,o.unit??16)/16,a=o.inset?.left??0,d=o.width-a-(o.inset?.right??0),c=[],l=new Map,s=h=>n.past===!0||Wo(t.tryDefinition(h.kind),h,o.today),u=new Set(r.hiddenKinds??[]),f=h=>!u.has(h.kind),y=n.focusId?vt(n.focusId).filter(h=>t.tryDefinition(h)!==void 0).filter(h=>!u.has(h)):[];n.focusId&&vt(n.focusId).length>0&&y.length===0&&(n={...n,focusId:null});let w=n.focusId?e.getNode(n.focusId):void 0;w&&!f(w)&&(n={...n,focusId:null},y=[]);let m=y.length>0?[...e.allNodes()].filter(h=>y.includes(h.kind)).sort(ht):[],g=m.filter(f).filter(s),p=m.length-g.length,v=n.focusId&&y.length===0?e.getNode(n.focusId):void 0,E=n.zoom===!0&&!n.overview&&n.focusId!==null,P=Math.max(56,o.height*.062),A=Math.min(o.height*.895,o.height-P),R=E?v!==void 0?{focusY:o.height*.03,focusH:o.height*.58,relationY:o.height*.645,relationH:o.height*.2,contextY:A,contextH:P}:{focusY:o.height*.03,focusH:o.height*.71,relationY:o.height*.765,relationH:o.height*.1,contextY:A,contextH:P}:v===void 0?{focusY:o.height*.045,focusH:o.height*.62,relationY:o.height*.68,relationH:o.height*.2,contextY:o.height*.918,contextH:o.height*.082}:(()=>{let h=o.height,C=h*.04,F=Math.max(h*.42,Math.min(h*.56,300)),U=C+F+h*.06;return{focusY:C,focusH:F,relationY:U,relationH:Math.max(h*.12,h*.878-h*.068-U),contextY:h*.878,contextH:h*.092}})(),W=h=>Math.min(o.gap*h,Math.round(d*.1)),S=E?Math.min(880,d-W(5)):Math.min(700,d-W(6)),x=E?d-W(5):Math.min(o.focusSize.width,d-W(6)),M=(h,C,F)=>({width:h===0?C:Math.min(C,(d-o.gap*(h+1))/h),height:F}),L=(h,C,F)=>{let U=M(h,C,F),le=Math.min(C,Ln*i,d-o.gap*2);return U.width>=le?U:{width:le,height:F}},z=h=>Math.max(1,Math.floor((d-o.gap)/(Math.min(h,Ln*i,d-o.gap*2)+o.gap))),I=new Set(n.expanded),D=n.overview?[]:Rr(e,t,v,n.relation,o.judged).filter(h=>f(h.node)).filter(h=>s(h.node)),B=D.length>0?R.focusH:R.contextY-R.focusY-o.gap*2,j=x,K=o.height,G=Math.min(d*.5/j,o.height*.48/K),V=j*G,xe=K*G,fe=new Set(r.plainGroups??[]),ee=n.overview&&!v&&y.length>0&&n.focusId!==null,ce=ee&&y.length>0&&y.every(h=>fe.has(h));if(ee)for(let h of y)ce?I.add(he(h)):I.delete(he(h));let N=ee&&!ce&&y.length===1?y[0]:void 0,X=N?r.screens?.[N]??[]:[],k=X.find(h=>h.as===n.within?.view)??X[0],T=N!==void 0&&k!==void 0,$;n.overview&&(v||y.length>0)&&n.focusId&&!ce?($={x:a+(d-V)/2,y:o.height*.53-xe/2,width:V,height:xe},H({id:n.focusId,kind:v?v.kind:y[0],plane:0,x:$.x,y:$.y,width:V,height:xe,natural:{width:j,height:K},...v?{}:{aggregate:{kind:y.join("+"),memberIds:g.map(h=>h.id),label:r.plurals?.[n.focusId]??y.map(h=>Vt(t,h)).join(" and "),...p>0?{retired:p}:{}}}})):n.overview||(v?H({id:v.id,kind:v.kind,plane:0,x:a+(d-S)/2,y:R.focusY,width:S,height:B}):y.length>0&&n.focusId&&H({id:n.focusId,kind:y[0],plane:0,x:a+(d-x)/2,y:R.focusY,width:x,height:B,aggregate:{kind:y.join("+"),memberIds:g.map(h=>h.id),label:r.plurals?.[n.focusId]??y.map(h=>Vt(t,h)).join(" and "),...p>0?{retired:p}:{}}}));let J=26,q=52,te=22,ye=Math.round(o.relationSize.width*.75),de=Math.max(1,Math.floor((d-o.gap)/(ye+o.gap))),oe=o.unit/16,Ae=Math.max(2,Math.floor((R.relationH+o.gap)/(J*oe+o.gap))),Se=D.length>de*Ae,it={schema:t,graph:e,focusId:v?.id,expanded:I,...o.relevance?{relevance:o.relevance}:{},...n.selection?{selection:n.selection}:{},plural:h=>Vt(t,h),...o.today?{today:o.today}:{}},_e=Se?Math.max(o.gap,te*oe):o.gap,me,Oe;if(!Se)me=D.map(h=>({id:h.node.id,kind:h.node.kind,node:h.node,...h.via?{via:h.via}:{}})),Oe=Array.from({length:Math.max(1,Math.ceil(me.length/de))},(h,C)=>Array.from({length:Math.min(de,me.length-C*de)},(F,U)=>C*de+U));else{let h=Math.max(1,Math.floor((R.relationH+_e)/(q*oe+_e))),C=new Map;for(let pe of D){let ve=yo(pe),Je=C.get(ve);Je?Je.push(pe):C.set(ve,[pe])}let F=mo([...C.values()].map(pe=>pe.length),de,h),U=[...C.values()].map((pe,ve)=>po(pe,{...it,budget:F[ve]}));me=U.flat();let le=U.map((pe,ve)=>U.slice(0,ve).reduce((Je,_t)=>Je+_t.length,0)),Ve=U.map(()=>0);Oe=Cn(U.map(pe=>pe.length),de).map(pe=>pe.map(ve=>le[ve]+Ve[ve]++))}let He=Oe.length,qe=He===1?R.relationH:(R.relationH-_e*(He-1))/He,Te=M(Math.max(...Oe.map(h=>h.length),1),me.length<=2?Math.round(o.relationSize.width*1.35):o.relationSize.width,qe),pt=[];Oe.forEach((h,C)=>{let F=_i(h.length,Te,o.gap,d,R.relationY+C*(qe+_e));h.forEach((U,le)=>pt[U]={...F[le],x:F[le].x+a})}),me.forEach((h,C)=>{let F=pt[C];H({id:h.id,kind:h.kind,plane:1,x:F.x,y:F.y,width:Te.width,height:Te.height,...h.via?{via:h.via}:{},...h.aggregate?{aggregate:h.aggregate}:{},...Se&&!h.aggregate?{compact:!0}:{}})});let ne=new Set(l.keys());for(let h of g)ne.add(h.id);let Qe=new Map;for(let h of e.allNodes()){let C=Qe.get(h.kind);C?C.push(h):Qe.set(h.kind,[h])}let at=new Set(y.length>0?y:v?[v.kind]:[]),De=[];for(let h of t.kinds){if(u.has(h))continue;let C=Qe.get(h)??[],F=C.filter(s);De.push({id:he(h),kind:h,members:F.sort(ht),retired:C.length-F.length,...at.has(h)?{focused:!0}:{}})}for(let h of De)h.kind===n.relation&&(h.raised=!0);De.sort(ht);let Ze=Mr(t,at),st=!n.overview&&t.kinds.some(h=>Ze.rankOf(h)==="primary"),Fe=[];for(let h of De)if(!n.overview&&I.has(h.id)&&h.members.length>0)for(let C of h.members)Fe.push({id:C.id,kind:C.kind});else{let C=st?Ze.rankOf(h.kind):void 0,F=C==="secondary"?Ze.parentOf(h.kind):void 0;Fe.push({id:h.id,kind:h.kind,...h.raised?{raised:!0}:{},...h.focused?{focused:!0}:{},...n.overview&&I.has(h.id)?{opened:!0}:{},...C?{rank:C}:{},...F&&!I.has(he(F))?{nestedUnder:he(F)}:{},aggregate:{kind:h.kind,memberIds:h.members.map(U=>U.id),label:r.plurals?.[h.kind]??Vt(t,h.kind),...h.retired>0?{retired:h.retired}:{}}})}let dt=2;if(Fe.length<=z((E?240:o.contextSize.width)*i))for(let h of Fe)delete h.nestedUnder;let Me=new Map;for(let h of Fe){if(h.nestedUnder===void 0)continue;let C=Me.get(h.nestedUnder)??0;C>=dt?delete h.nestedUnder:Me.set(h.nestedUnder,C+1)}let lt=Fe.filter(h=>h.nestedUnder!==void 0),ze=Fe.filter(h=>h.nestedUnder===void 0),Z=z((E?240:o.contextSize.width)*i),wt=!n.overview&&ze.length>Z,ct=Math.max(0,Z-1),fn=h=>h.focused?0:h.raised?1:2,en=new Set([...ze].map((h,C)=>({item:h,at:C})).sort((h,C)=>fn(h.item)-fn(C.item)||h.at-C.at).slice(0,ct).map(({item:h})=>h.id)),tn=new Set(wt?ze.filter(h=>!en.has(h.id)).map(h=>h.id):[]),nn=lt.filter(h=>!tn.has(h.nestedUnder)),Ft=lt.filter(h=>tn.has(h.nestedUnder)),xt=wt?[...ze.filter(h=>en.has(h.id)),{id:tr,kind:"",beyond:[...ze.filter(h=>tn.has(h.id)),...Ft].map(h=>h.kind)}]:ze,We=n.overview?{width:Math.min(220,d/6.5),height:Math.min(92,o.height*.125)}:L(xt.length,(E?240:o.contextSize.width)*i,R.contextH),Le=n.overview?xo(xt.map(h=>({id:h.id,kind:h.kind,count:h.aggregate?.memberIds.length??0,opened:I.has(h.id)?At(Ct(h.aggregate?.memberIds.length??0))*i:0,openedMin:I.has(h.id)?At(Math.min(eo,Ct(h.aggregate?.memberIds.length??0)))*i:0,...(r.screens?.[h.kind]?.length??0)>0?{marquee:qt((r.screens?.[h.kind]??[]).map(C=>C.title),Ln*i,r.nameWidth)*i}:{}})),t,We,{width:o.width,height:o.height},o.inset??{},{...o.cityOrder?{order:o.cityOrder}:{},...o.plots?{plots:o.plots}:{},scale:i,minHeight:Er*i,...r.cityZoom&&r.cityZoom!==1?{zoom:r.cityZoom}:{},pan:{x:n.pan?.x??0,y:n.pan?.y??0},...$&&!T?{avoid:[$]}:{}}):null,gn=new Map(Le?.placed.map(h=>[h.id,h.plot])??[]),on=Le?Le.placed.map(({x:h,y:C,depth:F,width:U,height:le})=>({x:h,y:C,depth:F,width:U,height:le})):ji(xt.length,We,o.gap,d,R.contextY,E?.97:Cr).map(h=>({...h,x:h.x+a})),yn=.74,bt=.8,Bt=52*i,Vn=86*i,jt=(h,C)=>Math.min(1,h+(1-h)*C),rn=new Map;xt.forEach((h,C)=>{let F=on[C],U=F.width??We.width,le=F.height??We.height,Ve=h.rank==="secondary"?yn:1,pe=Math.max(Math.min(U,Ln*i),U*Ve),ve=Math.max(Er*i,le*Ve);rn.set(h.id,{x:F.x+(U-pe)/2,y:F.y+(le-ve),depth:h.rank==="secondary"?jt(F.depth,.5):F.depth,width:pe,height:ve})});let Mt=[],b=on[on.length-1],O=new Map;for(let h of nn)O.set(h.nestedUnder,(O.get(h.nestedUnder)??0)+1);let _=new Map;for(let h of nn){let C=rn.get(h.nestedUnder);if(C){let F=O.get(h.nestedUnder)??1,U=_.get(h.nestedUnder)??0;_.set(h.nestedUnder,U+1);let le=.98,Ve=We.width*bt,pe=Math.max(Vn,Math.min(Ve,C.width/(le*(F-1)+1))),ve=Math.max(Bt,We.height*bt*(pe/Ve)),Je=pe*le,_t=(F-1)*Je+pe;Mt.push({...h,x:C.x+(C.width-_t)/2+U*Je,y:Math.max(0,C.y-ve+Math.min(ve*.5,16)),width:pe,height:ve,depth:jt(C.depth,.8)})}else if(b){let F=We.width*bt,U=We.height*bt;Mt.push({...h,x:b.x,y:b.y,width:F,height:U,depth:jt(b.depth??1,.8)})}}for(let h of xt)Mt.push({...h,...rn.get(h.id)});if(Mt.forEach(h=>{H({id:h.id,kind:h.kind,plane:2,x:h.x,y:h.y,width:h.width,height:h.height,...h.aggregate?{aggregate:h.aggregate}:{},...h.raised?{raised:!0}:{},...h.focused?{focused:!0}:{},...h.opened?{opened:!0}:{},...h.opened?{openedRows:Math.max(1,Math.floor((Math.max(At(Math.min(eo,Ct(h.aggregate?.memberIds.length??0))),At(Ct(h.aggregate?.memberIds.length??0))*(Le?.frame.openedShare??1))-nr)/vn))}:{},...h.rank?{rank:h.rank}:{},...h.nestedUnder?{nestedUnder:h.nestedUnder}:{},...h.beyond?{beyond:h.beyond}:{},...gn.has(h.id)?{plot:gn.get(h.id)}:{},depth:h.depth})}),T&&Le&&$&&n.focusId){let h=Le.frame,C=Le.map.get(N),F=k?.across?Le.map.get(k.across):void 0;if(C){let le=(re=>{let Ie=ke(re.col,re.row,h.cell),Pe=ke(re.col+re.side/2,re.row+re.side/2,h.cell);return{top:{x:h.originX+Ie.x,y:h.originY+Ie.y},center:{x:h.originX+Pe.x,y:h.originY+Pe.y}}})(C),Ve=le.center.x,pe=le.top.y+h.cell*.1,ve=o.screenHeight!==void 0&&o.screenHeight>0?Math.min(K,Math.max(Di,Math.round(o.screenHeight))):K,Je=ve/j,_t=Math.max(1,(r.cityZoom??1)/1.5),Ri=d*.78*_t,Do=o.height*.72*_t,Yn=Math.min(Fi*i,d*.5),mn=Math.max(Yn,Math.min(Ri,C.side*h.cell*2.4));mn*Je>Do&&(mn=Do/Je);let Oi=[...l.values()].filter(re=>re.plane===2&&re.id!==he(N)),Fo=re=>{let Ie=re*Je,Pe=pe-Ie;return{x:Ve-re/2,y:Pe,width:re,height:Ie}},zt=Fo(mn),Ei=re=>Oi.some(Ie=>{let Pe={x:Ie.x-(n.pan?.x??0)-Pr*i,y:Ie.y-(n.pan?.y??0),width:Ie.width+Pr*i*2,height:Ie.height+Bi*i};return re.x<Pe.x+Pe.width&&Pe.x<re.x+re.width&&re.y<Pe.y+Pe.height&&Pe.y<re.y+re.height});for(let re=mn;Ei(zt)&&re>Yn+1;re=Math.max(Yn,re*.92))zt=Fo(re);let pn=c.findIndex(re=>re.id===n.focusId);if(pn!==-1){let re={x:zt.x,y:zt.y},Ie=n.pins[c[pn].id],Pe=Ie?{x:Ie.x-re.x,y:Ie.y-re.y}:{x:0,y:0},Bo=Math.hypot(Pe.x,Pe.y),jo=Ar*h.cell,_o=Bo>jo?jo/Bo:1,zo={x:re.x+Pe.x*_o,y:re.y+Pe.y*_o},Kn={...c[pn],x:zo.x+(n.pan?.x??0),y:zo.y+(n.pan?.y??0),width:zt.width,height:zt.height,natural:{width:j,height:ve},screenOf:N,...Ie?{pinned:!0}:{}};c[pn]=Kn,l.set(Kn.id,Kn)}}}return{nodes:c,connectors:Or(e,l,n),width:o.width,height:o.height,...Le?{city:Le.frame}:{}};function H(h){let C=n.pins[h.id],F=C?{...h,x:C.x,y:C.y,pinned:!0}:{...h,pinned:!1},U=n.pan?{...F,x:F.x+n.pan.x,y:F.y+n.pan.y}:F;c.push(U),l.set(U.id,U)}}function ko(e,t,n){let r=e.nodes.find(d=>d.id===t);if(!r||r.screenOf!==void 0)return null;let o={...r,x:n.x,y:n.y,pinned:!0},i=o.x+o.width/2,a=o.y+o.height/2;return{...e,nodes:e.nodes.map(d=>d.id===t?o:d),connectors:e.connectors.map(d=>d.from===t?{...d,x1:i,y1:a}:d.to===t?{...d,x2:i,y2:a}:d)}}function So(e,t){return t.x===0&&t.y===0?e:{...e,nodes:e.nodes.map(n=>({...n,x:n.x+t.x,y:n.y+t.y})),connectors:e.connectors.map(n=>({...n,x1:n.x1+t.x,y1:n.y1+t.y,x2:n.x2+t.x,y2:n.y2+t.y})),...e.city?{city:{...e.city,pan:{x:t.x,y:t.y}}}:{}}}var be=(e,t,n)=>e+(t-e)*n;function Lr(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}var Ir=new WeakMap;function zi(e){let t=Ir.get(e);if(t)return t;let n=new Map,r=new Map;for(let o of e.nodes){n.set(o.id,o);for(let i of o.aggregate?.memberIds??[]){let a=r.get(i);a?a.push(o):r.set(i,[o])}}return t={byId:n,groupsOf:r},Ir.set(e,t),t}var Nr=new WeakMap;function Tr(e,t){let n=Nr.get(t);if(n||Nr.set(t,n=new WeakMap),n.has(e))return n.get(e);let r=Wi(e,t);return n.set(e,r),r}function Wi(e,t){let{byId:n,groupsOf:r}=zi(t);if(e.screenOf!==void 0){let a=n.get(he(e.screenOf));if(a)return{...e,x:a.x,y:a.y,width:a.width,height:a.height}}if(Pt(e.id)||Be(e.id)!==null){let a=(e.aggregate?.memberIds??[]).map(s=>n.get(s)).filter(s=>s!==void 0);if(a.length===0)return null;let d=a.map(Lr),c=d.reduce((s,u)=>s+u.x,0)/d.length,l=d.reduce((s,u)=>s+u.y,0)/d.length;return{...e,x:c-e.width/2,y:l-e.height/2}}let o=r.get(e.id)?.find(a=>a.id===he(e.kind)||a.id===Ce(e.kind));if(!o)return null;let i=Lr(o);return{...e,x:i.x-e.width/2,y:i.y-e.height/2}}function $t(e,t,n){let r=Math.max(0,Math.min(1,n)),o=new Map(e.nodes.map(s=>[s.id,s])),i=new Map(t.nodes.map(s=>[s.id,s])),a=[];for(let[s,u]of o){let f=i.get(s);if(f){a.push(Mo(u,f,r,1));continue}let y=Tr(u,t)??u;a.push(Mo(u,y,r,1-r))}for(let[s,u]of i){if(o.has(s))continue;let f=Tr(u,e)??u;a.push(Mo(f,u,r,r))}let d=new Map(e.connectors.map(s=>[s.id,s])),c=new Map(t.connectors.map(s=>[s.id,s])),l=[];for(let[s,u]of d){let f=c.get(s);l.push(f?{...Vi(u,f,r),opacity:1}:{...u,opacity:1-r})}for(let[s,u]of c)d.has(s)||l.push({...u,opacity:r});return{nodes:a.filter(s=>s.opacity>0).sort((s,u)=>s.id<u.id?-1:s.id>u.id?1:0),connectors:l.filter(s=>s.opacity>0).sort((s,u)=>s.id<u.id?-1:s.id>u.id?1:0),width:be(e.width,t.width,r),height:be(e.height,t.height,r),t:r,...$r(e.city,t.city,r)?{city:$r(e.city,t.city,r)}:{}}}function $r(e,t,n){return e?t?{cell:be(e.cell,t.cell,n),originX:be(e.originX,t.originX,n),originY:be(e.originY,t.originY,n),pan:{x:be(e.pan.x,t.pan.x,n),y:be(e.pan.y,t.pan.y,n)},extent:{x:be(e.extent.x,t.extent.x,n),y:be(e.extent.y,t.extent.y,n),width:be(e.extent.width,t.extent.width,n),height:be(e.extent.height,t.extent.height,n)}}:e:t}function Mo(e,t,n,r){return{id:t.id,kind:t.kind,plane:be(e.plane,t.plane,n),x:be(e.x,t.x,n),y:be(e.y,t.y,n),width:be(e.width,t.width,n),height:be(e.height,t.height,n),pinned:t.pinned,opacity:r,...t.aggregate?{aggregate:t.aggregate}:{},...t.via?{via:t.via}:{},...t.raised?{raised:!0}:{},...t.focused?{focused:!0}:{},...t.opened?{opened:!0}:{},...t.openedRows!==void 0?{openedRows:t.openedRows}:{},...t.compact?{compact:!0}:{},...t.rank?{rank:t.rank}:{},...t.nestedUnder?{nestedUnder:t.nestedUnder}:{},...t.beyond?{beyond:t.beyond}:{},...t.plot?{plot:t.plot}:{},...t.screenOf?{screenOf:t.screenOf}:{},...t.depth===void 0?{}:{depth:be(e.depth??1,t.depth,n)},...t.natural?{natural:t.natural}:{}}}function Vi(e,t,n){return{...t,x1:be(e.x1,t.x1,n),y1:be(e.y1,t.y1,n),x2:be(e.x2,t.x2,n),y2:be(e.y2,t.y2,n)}}function Nn(e){let t=Math.max(0,Math.min(1,e));return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function Yi(e,t){let n=[];for(let o=0;o<e.length;o+=1){let i=e[o],a=e[(o+1)%e.length];if(i.y===a.y)continue;let d=Math.min(i.y,a.y),c=Math.max(i.y,a.y);t<d||t>=c||n.push(i.x+(t-i.y)/(a.y-i.y)*(a.x-i.x))}n.sort((o,i)=>o-i);let r={x0:0,x1:0};for(let o=0;o+1<n.length;o+=2){let i={x0:n[o],x1:n[o+1]};i.x1-i.x0>r.x1-r.x0&&(r=i)}return r}function Ki(e){let t=1/0,n=-1/0;for(let r of e)r.y<t&&(t=r.y),r.y>n&&(n=r.y);return{top:t,bottom:n}}function Gi(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e[n],o=e[(n+1)%e.length];t+=r.x*o.y-o.x*r.y}return Math.abs(t)/2}function Ui(e){let t=0,n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o],a=e[(o+1)%e.length],d=i.x*a.y-a.x*i.y;t+=d,n+=(i.x+a.x)*d,r+=(i.y+a.y)*d}if(Math.abs(t)<1e-9){let o=e.reduce((i,a)=>({x:i.x+a.x,y:i.y+a.y}),{x:0,y:0});return{x:o.x/e.length,y:o.y/e.length}}return{x:n/(3*t),y:r/(3*t)}}function Xi(e,t){let{room:n,height:r,size:o,floor:i,measure:a=to,lines:d=2}=t,c=(m,g)=>m.every(p=>a(p,g)<=n)&&m.length*g*1.15<=r;if(c([e],o))return{lines:[e],fontSize:o,whole:!0};let l=e.split(/\s+/);if(d>1&&l.length>1){let m=1,g=1/0,p=0;for(let E=0;E<l.length-1;E+=1){p+=l[E].length+1;let P=Math.abs(p-e.length/2);P<g&&(g=P,m=E+1)}let v=[l.slice(0,m).join(" "),l.slice(m).join(" ")];if(c(v,o))return{lines:v,fontSize:o,whole:!0};for(let E=o;E>=i;E-=o*.06)if(c(v,E))return{lines:v,fontSize:E,whole:!0}}for(let m=o;m>=i;m-=o*.06)if(c([e],m))return{lines:[e],fontSize:m,whole:!0};let s=a(e,i)/Math.max(1,e.length),u=Math.floor(n/s)-1;if(u<4||i*1.15>r)return null;let f=e.slice(0,u),y=f.lastIndexOf(" ");return{lines:[`${y>3?f.slice(0,y):f}\u2026`],fontSize:i,whole:!1}}var qi=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1;var Q=ae(Ye(),1);var je=ae(Ye(),1);var Qi=520;function Zi(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Hr(e,t={}){let n=t.duration??Qi,r=(t.enabled??!0)&&!Zi(),o=(0,je.useRef)(e),[i,a]=(0,je.useState)(()=>$t(e,e,1)),d=(0,je.useRef)(i),c=(0,je.useRef)(null),l=(0,je.useRef)(null);return(0,je.useEffect)(()=>{if(!r||typeof requestAnimationFrame>"u"){o.current=e;let g=$t(e,e,1);if(d.current=g,a(g),typeof requestAnimationFrame>"u")return;let p=requestAnimationFrame(()=>{let v=$t(e,e,1);d.current=v,a(v)});return()=>cancelAnimationFrame(p)}let s=performance.now(),f=l.current!==null&&d.current.t<1&&s-l.current<n?l.current:s;l.current=f;let y=Nn(Math.min(1,(s-f)/n)),w=o.current,m=g=>{let p=Math.min(1,(g-f)/n),v=y>=1?1:(Nn(p)-y)/(1-y),E=$t(w,e,Math.max(0,v));d.current=E,a(E),p<1?c.current=requestAnimationFrame(m):(l.current=null,o.current=e,c.current=requestAnimationFrame(()=>{let P=$t(e,e,1);d.current=P,a(P),c.current=null}))};return c.current=requestAnimationFrame(m),()=>{c.current!==null&&cancelAnimationFrame(c.current);let g=d.current;o.current={...e,...g.city?{city:g.city}:{},nodes:g.nodes.map(p=>({...p,plane:Math.round(p.plane)})),connectors:g.connectors}}},[e,n,r]),i}function Dr(e=1100){let{store:t}=we(),[n,r]=(0,je.useState)(()=>new Set);return(0,je.useEffect)(()=>{let o=null,i=t.subscribe(a=>{r(new Set(a.touched)),o&&clearTimeout(o),o=setTimeout(()=>r(new Set),e)});return()=>{i(),o&&clearTimeout(o)}},[t,e]),n}var Ji={marks:new Map,acts:[]};function Fr(e=4e3){let{store:t}=we(),[n,r]=(0,je.useState)(Ji);return(0,je.useEffect)(()=>{let o=null,i=t.subscribe((a,d)=>{r(c=>{let l=new Map(c.marks),s=[...c.acts];for(let u of d){if(u.undoes!==void 0){let w=s.find(g=>g.batch===u.undoes||g.wrote.length>0),m=s.filter(g=>u.writes.some(p=>g.wrote.includes(p)));for(let g of m.length>0?m:w?[w]:[]){for(let p of g.wrote)l.delete(p);s=s.filter(p=>p.batch!==g.batch)}continue}if(u.author.kind!=="agent")continue;let f=u.author.id??"the seat";for(let w of u.writes)l.set(w,f);s.find(w=>w.batch===u.batch)?s=s.map(w=>w.batch===u.batch?{...w,wrote:[...new Set([...w.wrote,...u.writes])]}:w):s=[{batch:u.batch,who:f,intent:u.batchIntent??u.intent,at:u.at,wrote:[...u.writes]},...s].slice(0,12)}return l.size===c.marks.size&&s===c.acts&&l.size===0?c:{marks:l,acts:s}}),o&&clearTimeout(o),o=setTimeout(()=>r(c=>c.marks.size===0?c:{...c,marks:new Map}),e)});return()=>{i(),o&&clearTimeout(o)}},[t,e]),n}var Ht=ae(Re(),1),tt=16;function Br({marks:e,questions:t=[],whereIs:n,stageRef:r,width:o,height:i}){if(e.size===0&&t.length===0)return null;let a=r.current,d=a?.getBoundingClientRect()??null,c=[];for(let[s,u]of e){let f=null;if(a&&d&&typeof CSS<"u"){let g=a.querySelector(`[data-graview-pick="${CSS.escape(s)}"]`)?.getBoundingClientRect();g&&g.width>0&&g.height>0&&(f={x:g.left-d.left,y:g.top-d.top,width:g.width,height:g.height})}if(f??=n(s),!f)continue;let y=Math.min(Math.max(f.x+f.width-tt/2,tt/2),o-tt/2),w=Math.min(Math.max(f.y-tt/4,tt/2),i-tt/2);c.push({id:s,who:u,x:y,y:w})}let l=[];for(let s of t){let u=n(s.id);u&&l.push({...s,x:Math.min(Math.max(u.x+u.width/2,tt),o-tt),y:Math.min(Math.max(u.y-tt/2,tt),i-tt)})}return c.length===0&&l.length===0?null:(0,Ht.jsxs)("div",{className:"graview-seat-marks","data-testid":"seat-marks","data-graview-seat-marks":c.length,children:[c.map(({id:s,who:u,x:f,y})=>(0,Ht.jsx)("span",{className:"graview-seat-mark","data-testid":"seat-mark","data-graview-seat-mark":s,"data-graview-seat-who":u,title:`${u} just changed this`,"aria-hidden":"true",style:{left:f,top:y,"--graview-hue":Rt(u)},children:"\u25C6"},s)),l.map(s=>(0,Ht.jsxs)("span",{className:"graview-seat-asking","data-testid":"seat-question","data-graview-seat-asking":s.id,title:s.asks,style:{left:s.x,top:s.y},children:[(0,Ht.jsx)("span",{"aria-hidden":"true",children:"?"}),(0,Ht.jsx)("span",{className:"graview-seat-asking-said",children:s.asks})]},`asking:${s.id}`))]})}var gt=ae(Ye(),1);var Ee=ae(Re(),1);function ea(e,t,n={x:0,y:0}){let r=(o,i)=>{let a=ke(o,i,t.cell);return{x:t.originX+n.x+a.x,y:t.originY+n.y+a.y}};return[r(e.col,e.row),r(e.col+e.side,e.row),r(e.col+e.side,e.row+e.side),r(e.col,e.row+e.side)]}var Hn=e=>e.map(t=>`${t.x.toFixed(1)},${t.y.toFixed(1)}`).join(" ");function jr({frame:e,width:t,height:n,pan:r,brand:o,pinned:i,swallowed:a,onFocus:d}){let{selection:c,store:l,emphasis:s}=we(),u=Rn(),f=e.city,y=e.nodes.filter(S=>S.plot!==void 0&&Math.round(S.plane)===2),w=f?.cell??0,m=(0,gt.useRef)(d);m.current=d;let g=(0,gt.useCallback)(S=>!m.current||a?.current?!1:(m.current(S),!0),[a]),p=`${w}|${y.map(S=>`${S.id}:${S.plot.col},${S.plot.row},${S.plot.side}`).join(";")}`,v=(0,gt.useMemo)(()=>{if(!f)return[];let S={cell:w,originX:0,originY:0},x=new Map;for(let M of y){let L=Be(M.id);L!==null&&M.plot&&x.set(L,M.plot)}return uo(l.schema,x).map(M=>({...M,d:ia(x.get(M.from),x.get(M.to),S,{x:0,y:0}).map((L,z)=>`${z===0?"M":"L"} ${L.x.toFixed(1)} ${L.y.toFixed(1)}`).join(" ")}))},[p,l.schema]),E=(0,gt.useRef)(new Map),P=new Map;for(let S of y){let x=S.aggregate?.memberIds??[],M=`${w}|${S.plot.col},${S.plot.row},${S.plot.side}|${x.join(",")}`,L=E.current.get(S.id);if(L&&L.key===M){P.set(S.id,L);continue}let z={cell:w,originX:0,originY:0},I={x:0,y:0},{buildings:D,rest:B}=fo(S.plot,x),j=ea(S.plot,z,I);P.set(S.id,{key:M,tile:Hn(j),front:j[2],rest:B,buildings:D.map(K=>({id:K.id,...na(K,z,I)}))})}if(E.current=P,!f)return null;let A={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible"},R=c.join(`
4
- `),W=u.join(`
5
- `);return(0,Ee.jsx)("svg",{className:"graview-plots","aria-hidden":"true","data-graview-world":"",width:t,height:n,style:A,"data-graview-plots":y.length,children:(0,Ee.jsxs)("g",{transform:`translate(${(f.originX+r.x).toFixed(1)} ${(f.originY+r.y).toFixed(1)})`,children:[(0,Ee.jsx)("g",{className:"graview-roads","data-graview-roads":v.length,children:v.map(S=>S.d.includes("L")?(0,Ee.jsxs)("g",{className:"graview-road","data-graview-road":S.edges.join(","),"data-graview-from":he(S.from),"data-graview-to":he(S.to),"data-graview-lit":s!==null&&S.edges.includes(s)?"":void 0,children:[(0,Ee.jsx)("path",{className:"graview-road-edge",d:S.d}),(0,Ee.jsx)("path",{className:"graview-road-bed",d:S.d})]},`${S.from}|${S.to}`):null)}),y.map(S=>(0,Ee.jsx)(ta,{id:S.id,hue:Math.round(Rt(S.kind,o?.accents)),drawing:P.get(S.id),pinned:i?.has(S.id)??!1,chosenKey:R,flaggedKey:W,press:g},S.id))]})})}var ta=(0,gt.memo)(function({id:t,hue:n,drawing:r,pinned:o,chosenKey:i,flaggedKey:a,press:d}){let c=new Set(i.split(`
6
- `)),l=new Set(a.split(`
7
- `));return(0,Ee.jsxs)("g",{className:"graview-plot","data-graview-plot":t,"data-graview-pinned":o?"":void 0,style:{"--graview-hue":n},children:[(0,Ee.jsx)("polygon",{className:"graview-plot-tile",points:r.tile,onClick:s=>{d(t)&&s.stopPropagation()}}),r.buildings.length>0?(0,Ee.jsxs)("g",{className:"graview-village","data-graview-village":r.buildings.length,"data-graview-rest":r.rest||void 0,children:[r.buildings.map(s=>(0,Ee.jsxs)("g",{className:"graview-building","data-graview-building":s.id,"data-graview-flagged":l.has(s.id)?"":void 0,"data-graview-selected":c.has(s.id)?"":void 0,children:[(0,Ee.jsx)("polygon",{className:"graview-iso-left",points:s.left}),(0,Ee.jsx)("polygon",{className:"graview-iso-right",points:s.right}),(0,Ee.jsx)("polygon",{className:"graview-iso-roof",points:s.roof})]},s.id)),r.rest>0?(0,Ee.jsxs)("text",{className:"graview-village-rest",x:r.front.x,y:r.front.y-4,textAnchor:"middle",children:["+",r.rest]}):null]}):null]})});function na(e,t,n){let r=e.footprint/2,o=(y,w,m=0)=>{let g=ke(y,w,t.cell);return{x:t.originX+n.x+g.x,y:t.originY+n.y+g.y-m}},i=e.footprint*t.cell*.5*e.height,a=o(e.col-r,e.row-r,i),d=o(e.col+r,e.row-r,i),c=o(e.col+r,e.row+r,i),l=o(e.col-r,e.row+r,i),s=o(e.col+r,e.row+r),u=o(e.col-r,e.row+r),f=o(e.col+r,e.row-r);return{roof:Hn([a,d,c,l]),left:Hn([l,c,s,u]),right:Hn([c,d,f,s]),top:a}}function oa(e,t,n){let r=e.x-t.originX-n.x,o=e.y-t.originY-n.y;return{col:r/t.cell+2*o/t.cell,row:2*o/t.cell-r/t.cell}}var Tn=(e,t,n,r)=>{let{col:o,row:i}=oa(e,n,r);return o>=t.col&&o<=t.col+t.side&&i>=t.row&&i<=t.row+t.side},$n=(e,t,n)=>({x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n});function ra(e,t){let n=e.col+e.side/2,r=e.row+e.side/2,o=t.col+t.side/2,i=t.row+t.side/2,a=g=>Math.floor(g.row/5),d=g=>Math.floor(g.col/5),c=a(e),l=a(t),s=d(e),u=d(t),f=l>c?c*5+5-.5:l<c?c*5-.5:c*5+5-.5,y=u>s?u*5-.5:u<s?u*5+5-.5:u*5-.5,w=[{col:n,row:r},{col:n,row:f},{col:y,row:f},{col:y,row:i},{col:o,row:i}],m=[];for(let g of w){let p=m[m.length-1];p&&Math.abs(p.col-g.col)<1e-9&&Math.abs(p.row-g.row)<1e-9||m.push(g)}for(let g=m.length-2;g>0;g--){let p=m[g-1],v=m[g],E=m[g+1],P=Math.abs(p.col-v.col)<1e-9&&Math.abs(v.col-E.col)<1e-9,A=Math.abs(p.row-v.row)<1e-9&&Math.abs(v.row-E.row)<1e-9;(P||A)&&m.splice(g,1)}return m}function ia(e,t,n,r){let o=ra(e,t).map(d=>{let c=ke(d.col,d.row,n.cell);return{x:n.originX+r.x+c.x,y:n.originY+r.y+c.y}}),i=[],a=!1;for(let d=0;d<o.length-1;d++){let c=o[d],l=o[d+1];if(!a){if(Tn(l,e,n,r))continue;let s=0,u=1;for(let f=0;f<12;f++){let y=(s+u)/2;Tn($n(c,l,y),e,n,r)?s=y:u=y}i.push($n(c,l,u)),a=!0}if(Tn(l,t,n,r)){let s=0,u=1;for(let f=0;f<12;f++){let y=(s+u)/2;Tn($n(c,l,y),t,n,r)?u=y:s=y}return i.push($n(c,l,s)),i}i.push(l)}return i}var Y=ae(Re(),1);function aa({hue:e,mode:t}){let n=t==="docked";return(0,Y.jsxs)("svg",{viewBox:"0 0 32 38","aria-hidden":"true",children:[(0,Y.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,Y.jsx)("line",{x1:"16",y1:"3.5",x2:"16",y2:"7"}),(0,Y.jsx)("circle",{cx:"16",cy:"2.6",r:"1.5",fill:"none"}),(0,Y.jsx)("path",{d:"M8 16 V12.5 C8 8.5 11.5 7 16 7 C20.5 7 24 8.5 24 12.5 V16 Z",fill:"currentColor",fillOpacity:"0.1"}),t==="refused"?(0,Y.jsx)("line",{x1:"11",y1:"12.5",x2:"21",y2:"12.5",strokeWidth:"2"}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)("rect",{x:"10.2",y:"10.2",width:"11.6",height:"4.6",rx:"2.3",fill:"currentColor",fillOpacity:"0.14",strokeWidth:"1"}),(0,Y.jsx)("circle",{cx:"13.4",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),(0,Y.jsx)("circle",{cx:"18.6",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),t==="reading"?(0,Y.jsx)("line",{x1:"10.2",y1:"12.5",x2:"21.8",y2:"12.5",strokeWidth:"0.8",opacity:"0.7"}):null]}),(0,Y.jsx)("line",{x1:"16",y1:"16",x2:"16",y2:"18.5"}),(0,Y.jsx)("polygon",{points:"16,18.5 24,22.5 16,26.5 8,22.5",fill:"currentColor",fillOpacity:"0.22"}),(0,Y.jsx)("polygon",{points:"8,22.5 16,26.5 16,33.5 8,29.5",fill:"currentColor",fillOpacity:"0.08"}),(0,Y.jsx)("polygon",{points:"24,22.5 16,26.5 16,33.5 24,29.5",fill:"currentColor",fillOpacity:"0.3"}),t==="writing"?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)("polyline",{points:"24,24 28.5,20.5"}),(0,Y.jsx)("line",{x1:"27.5",y1:"19",x2:"30",y2:"21.5",strokeWidth:"1.8"})]}):(0,Y.jsx)("line",{x1:"24",y1:"24",x2:"26.5",y2:"29"}),(0,Y.jsx)("line",{x1:"8",y1:"24",x2:"5.5",y2:"29"}),(0,Y.jsx)("path",{d:"M9.5 33.5 v2.2 h4"}),(0,Y.jsx)("path",{d:"M22.5 33.5 v2.2 h-4"})]}),(0,Y.jsx)("title",{children:`robot, ${t}`})]})}function sa({hue:e}){return(0,Y.jsxs)("svg",{viewBox:"0 0 22 24","aria-hidden":"true",style:{color:`hsl(${Math.round(e)} 50% 48%)`},children:[(0,Y.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,Y.jsx)("circle",{cx:"11",cy:"6",r:"4.2"}),(0,Y.jsx)("path",{d:"M3 23 C3 15.5 6 13 11 13 C16 13 19 15.5 19 23"})]}),(0,Y.jsx)("title",{children:"somebody"})]})}function _r({width:e,whereIs:t}){let{who:n,following:r,follow:o}=we(),i=ur([...n.values()],t,e);return i.length===0?null:(0,Y.jsx)("div",{className:"graview-occupants","data-testid":"occupants","data-graview-occupants":i.length,children:i.map((a,d)=>{if(a.kind==="over")return(0,Y.jsx)("div",{className:"graview-presence-over","data-testid":"presence-over","data-graview-over-by":a.presence.participant,style:{left:a.box.x-3,top:a.box.y-3,width:a.box.width+6,height:a.box.height+6,"--graview-hue":a.presence.hue}},`over:${a.presence.participant}`);if(a.kind==="count")return(0,Y.jsxs)("span",{className:"graview-figure-count","data-testid":"presence-count","data-graview-at":a.at,style:{left:a.point.x,top:a.point.y},title:`${a.n} more here`,children:["+",a.n]},`count:${a.at}:${d}`);let c=a.presence.hue,l=Zo(a.presence)||"somebody";if(a.kind==="edge")return(0,Y.jsxs)("button",{type:"button",className:"graview-figure-edge","data-testid":"presence-edge","data-graview-person":a.presence.participant,style:{left:Math.max(8,a.point.x-120),top:a.point.y},onClick:()=>o(a.presence.participant),"aria-label":`${l} is somewhere else \u2014 press to go where they are`,children:["\u2192 ",l]},`edge:${a.presence.participant}`);if(a.kind==="robot")return(0,Y.jsxs)("div",{className:"graview-figure","data-graview-figure":`theirs:${a.presence.participant}`,"data-graview-theirs":"","data-graview-mode":a.mode,"data-graview-at":a.presence.robot?.at??"",style:{transform:`translate(${a.point.x.toFixed(1)}px, ${a.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,Y.jsx)("span",{className:"graview-figure-body",role:"img","aria-label":`${l}'s agent \u2014 ${a.mode}`,style:{cursor:"default"},children:(0,Y.jsx)(aa,{hue:c,mode:a.mode})}),(0,Y.jsxs)("span",{className:"graview-figure-name",children:[l,"'s agent"]})]},`robot:${a.presence.participant}`);let s=r?.participant===a.presence.participant;return(0,Y.jsxs)("div",{className:"graview-figure","data-graview-figure":a.presence.participant,"data-graview-person":"","data-graview-at":a.at,"data-graview-audience":a.audience?"":void 0,"data-graview-followed":s?"":void 0,style:{transform:`translate(${a.point.x.toFixed(1)}px, ${a.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,Y.jsx)("button",{type:"button",className:"graview-figure-body","aria-label":`${l} is here${s?". Press to stop following":". Press to go where they go"}`,"aria-pressed":s,onClick:u=>{u.stopPropagation(),o(s?null:a.presence.participant)},onPointerDown:u=>u.stopPropagation(),children:(0,Y.jsx)(sa,{hue:c})}),(0,Y.jsx)("span",{className:"graview-figure-name",children:l})]},`person:${a.presence.participant}`)})})}var ln=ae(Re(),1),zr={left:"\u2190",right:"\u2192",top:"\u2191",bottom:"\u2193"},da=36,Wr=56;function Vr({result:e,schema:t,onGo:n}){let r=bo(e);if(r.length===0)return null;let o=[];for(let i of["left","right","top","bottom"]){let a=i==="left"||i==="right"?e.height:e.width,d=-1/0,c=r.filter(l=>l.side===i).sort((l,s)=>l.along-s.along);for(let l of c){let s=Math.max(Wr,Math.min(a-Wr,Math.max(l.along,d+da)));d=s;let u=Yt(t,l.kind),f=i==="left"?{left:6,top:s,transform:"translateY(-50%)"}:i==="right"?{right:6,top:s,transform:"translateY(-50%)"}:i==="top"?{top:6,left:s,transform:"translateX(-50%)"}:{bottom:6,left:s,transform:"translateX(-50%)"};o.push((0,ln.jsx)("button",{type:"button",className:"graview-edge-sign","data-graview-past-edge":l.id,"aria-label":`${u}, past the ${i} edge \u2014 bring it into view`,title:`${u} is past the ${i} edge`,tabIndex:-1,onPointerDown:y=>y.stopPropagation(),onClick:y=>{y.stopPropagation(),n(l.by)},style:{...la,...f},children:i==="right"||i==="bottom"?`${u} ${zr[i]}`:`${zr[i]} ${u}`},l.id))}}return(0,ln.jsx)(ln.Fragment,{children:o})}var la={position:"absolute",zIndex:$e.lines,minHeight:28,maxWidth:"40%",padding:"3px 10px",font:"inherit",fontSize:"0.75rem",letterSpacing:"0.04em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:6,boxShadow:"0 2px 8px rgb(0 0 0 / 0.12)",cursor:"pointer"};var kt=ae(Ye(),1),ca=180;function Yr({view:e,result:t,frame:n,panned:r,closer:o,screenId:i,setCamera:a}){let d=(0,kt.useRef)(new Map),c=(0,kt.useRef)(e.overview??!1),l=(0,kt.useRef)(null);if((0,kt.useEffect)(()=>{if(!e.overview||!i||!t.city){if(c.current&&!e.overview)return;a(A=>A.x===0&&A.y===0?A:{x:0,y:0});return}let s=t.nodes.find(A=>A.id===i);if(!s)return;let u=o>1&&s.screenOf?t.nodes.find(A=>A.id===he(s.screenOf)):void 0,f=u?{x:Math.min(s.x,u.x),y:Math.min(s.y,u.y),width:Math.max(s.x+s.width,u.x+u.width)-Math.min(s.x,u.x),height:Math.max(s.y+s.height,u.y+u.height)-Math.min(s.y,u.y)}:s;if(f.x>=0&&f.y>=0&&f.x+f.width<=t.width&&f.y+f.height<=t.height&&!u)return;let w=24,m=(A,R,W)=>A<w?w-A:A+R>W-w?W-w-(A+R):0,g=ft(t),p=e.pan??{x:0,y:0},v=u?r.x+(t.width/2-(f.x+f.width/2)):r.x+m(f.x,f.width,t.width),E=t.height/2-(f.y+f.height/2),P=u?r.y+(s.y+E<w?w-s.y:E):r.y+m(f.y,f.height,t.height);a({x:(u?v:Math.max(-g.x,Math.min(g.x,v)))-p.x,y:(u?P:Math.max(-g.y,Math.min(g.y,P)))-p.y})},[i,e.overview,o]),n.city){let s=new Map;for(let u of n.nodes){if(!u.plot||Math.round(u.plane)!==2)continue;let f=ke(u.plot.col+u.plot.side/2,u.plot.row+u.plot.side/2,n.city.cell);s.set(u.id,{x:n.city.originX+r.x+f.x,y:n.city.originY+r.y+f.y})}d.current=s}return(0,kt.useEffect)(()=>{let s=e.overview??!1,u=c.current&&!s;if(c.current=s,s&&l.current&&(clearTimeout(l.current),l.current=null),!u)return;let f=e.focusId?vt(e.focusId)[0]:void 0,y=f?d.current.get(he(f)):void 0,w=t.nodes.find(m=>m.id===e.focusId);if(!y||!w){a({x:0,y:0});return}a({x:y.x-(w.x+w.width/2),y:y.y-(w.y+w.height/2)}),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,a({x:0,y:0})},ca)},[e.overview]),(0,kt.useEffect)(()=>()=>{l.current&&clearTimeout(l.current)},[]),{gliding:()=>l.current!==null}}var ue=ae(Ye(),1);function Kr(){let[e,t]=(0,ue.useState)(null),n=(0,ue.useRef)(null),r=(0,ue.useRef)(0),o=(0,ue.useCallback)(a=>{n.current=a,r.current===0&&(r.current=requestAnimationFrame(()=>{r.current=0,t(n.current)}))},[]),i=(0,ue.useCallback)(()=>{r.current!==0&&cancelAnimationFrame(r.current),r.current=0;let a=n.current;return n.current=null,a&&t(null),a},[]);return{held:e,place:o,release:i}}function Gr({stage:e,pan:t,setView:n,settled:r}){let o=(0,ue.useRef)({x:0,y:0}),i=(0,ue.useRef)(0),a=(0,ue.useRef)(!1),d=(0,ue.useRef)(r);d.current=r;let c=(0,ue.useCallback)(()=>[...e.current?.querySelectorAll("[data-graview-world]")??[]],[e]),l=(0,ue.useCallback)(()=>{i.current===0&&(i.current=requestAnimationFrame(()=>{i.current=0;let{x:w,y:m}=o.current,g=w===0&&m===0?"":`translate3d(${w}px, ${m}px, 0)`;for(let p of c())p.style.transform=g}))},[c]),s=(0,ue.useCallback)(()=>{a.current=!1;for(let w of c())w.style.transform="";d.current()},[c]),u=(0,ue.useCallback)((w,m)=>{o.current={x:w.x-m.x,y:w.y-m.y},l()},[l]),f=(0,ue.useCallback)(()=>{let{x:w,y:m}=o.current;return w===0&&m===0?!1:(o.current={x:0,y:0},a.current=!0,n(g=>{let p=g.pan??{x:0,y:0};return ut(g,{x:p.x+w,y:p.y+m})}),window.setTimeout(()=>{a.current&&s()},300),!0)},[n,s]);(0,ue.useLayoutEffect)(()=>{a.current&&s()},[t,s]);let y=(0,ue.useCallback)(()=>o.current,[]);return{shiftTo:u,settle:f,settling:a,offset:y}}var ua=4;function Ur({view:e,panned:t,limit:n,panWithin:r,moveByTransform:o,setView:i,setDragging:a,noteMoved:d,shift:c,district:l}){let s=(0,ue.useRef)(!1),u=(0,ue.useRef)(null),f=p=>{let v=e.pan??{x:0,y:0};u.current={kind:"pan",fromX:p.clientX,fromY:p.clientY,baseX:v.x,baseY:v.y,moved:!1}};return{onGroundDown:p=>{p.button===0&&(p.target.closest("[data-graview-view]")||f(p))},onCardDown:(p,v)=>{if(v.button===0){if(p.screenOf!==void 0&&!v.target.closest("[data-graview-grip]")){f(v);return}u.current={kind:"card",id:p.id,fromX:v.clientX,fromY:v.clientY,baseX:p.x-t.x,baseY:p.y-t.y,moved:!1}}},onDragMove:p=>{let v=u.current;if(!v)return;let E=p.clientX-v.fromX,P=p.clientY-v.fromY;if(!v.moved){if(Math.hypot(E,P)<ua)return;v.moved=!0,a(!0),p.currentTarget.setPointerCapture(p.pointerId)}if(v.kind==="pan"){let A=r(n(),{x:v.baseX+E,y:v.baseY+P});o?c.shiftTo(A,e.pan??{x:0,y:0}):i(R=>ut(R,A))}else v.id&&l.place({id:v.id,x:v.baseX+E,y:v.baseY+P})},onDragUp:()=>{c.settle();let p=l.release();p&&i(v=>Ut(v,p.id,{x:p.x,y:p.y})),u.current?.moved&&(s.current=!0,setTimeout(()=>s.current=!1,0),d()),u.current=null,!c.settling.current&&a(!1)},swallow:s}}function Xr({stage:e,view:t,setView:n}){let r=(0,ue.useRef)({view:t,charge:0,coolUntil:0,lastScale:1});r.current.view=t;let o=(0,ue.useRef)(()=>{}),i=(0,ue.useRef)(()=>{});return(0,ue.useEffect)(()=>{let a=e.current;if(!a)return;let d=(u,f)=>{let y=r.current;if(f<y.coolUntil)return;let w=y.view.overview??!1;u!==w&&(y.coolUntil=f+600,y.charge=0,n(Gt(y.view,u)))},c=u=>{let f=r.current,y=f.view.overview??!1;if(u.ctrlKey){if(u.preventDefault(),!y){if(f.charge+=u.deltaY,Math.abs(f.charge)<60)return;f.charge>0?d(!0,performance.now()):f.charge=0;return}o.current(Math.exp(-u.deltaY*.004),u.clientX,u.clientY);return}!y||u.target?.closest("[data-graview-view], .graview-scroll, [data-graview-overlay], .graview-zoom")||(u.preventDefault(),i.current(-u.deltaX,-u.deltaY))},l=u=>{u.preventDefault(),r.current.lastScale=1},s=u=>{u.preventDefault();let f=r.current,y=u.scale??1;if(!(f.view.overview??!1)){y<.72&&d(!0,performance.now());return}let w=y/(f.lastScale||1);f.lastScale=y;let m=u;o.current(w,m.clientX,m.clientY)};return a.addEventListener("wheel",c,{passive:!1}),a.addEventListener("gesturestart",l),a.addEventListener("gesturechange",s),()=>{a.removeEventListener("wheel",c),a.removeEventListener("gesturestart",l),a.removeEventListener("gesturechange",s)}},[n,e]),{zoomAbout:o,panBy:i}}var qr={directed:"You",autonomous:"An agent","co-edited":"You and an agent",rule:"A rule"};function Ro(e,t){let n=new Set(e.map(o=>o.id)),r=new Set;for(let o of t){if(n.has(o)){r.add(o);continue}let i=e.find(a=>a.aggregate?.memberIds.includes(o));i&&r.add(i.id)}return r}function Oo(e){return e.emphasized?e.stressed?.95:.08:e.anyChosen?e.mine?.9:.12:e.touches?Math.max(.34,.9-.09*Math.max(0,(e.siblings??1)-1)):.12}function Eo(e){return e.edgeChosen?.9:e.lit?.78:e.own*(e.anyLit?e.kit.dim:e.kit.rest)}function nt(e,t){if(!e)return null;let n=Math.max(0,Math.min(2,Math.floor(e.plane))),r=Math.max(0,Math.min(2,Math.ceil(e.plane))),{scale:o}=n===r?et(n,t):Sn(et(n,t),et(r,t),e.plane-n);return{x:e.x,y:e.y,width:e.width*o,height:e.height*o}}function Dn(e,t){if(typeof getComputedStyle>"u"||getComputedStyle(e).visibility==="hidden")return null;let n=-1/0,r=-1/0,o=1/0,i=1/0,a=e.getBoundingClientRect();n=Math.max(n,a.left),r=Math.max(r,a.top),o=Math.min(o,a.right),i=Math.min(i,a.bottom);let d=e.parentElement;for(;d&&d!==t;){let l=getComputedStyle(d);if(l.overflowX!=="visible"||l.overflowY!=="visible"){let s=d.getBoundingClientRect();l.overflowX!=="visible"&&(n=Math.max(n,s.left),o=Math.min(o,s.right)),l.overflowY!=="visible"&&(r=Math.max(r,s.top),i=Math.min(i,s.bottom))}d=d.parentElement}if(o-n<=2||i-r<=2)return null;let c=t.getBoundingClientRect();return{x:n-c.left,y:r-c.top,width:o-n,height:i-r}}function ot(e,t,n){if(!e||typeof document>"u")return null;let r=e.querySelector(`[data-graview-view="${CSS.escape(t)}"]`);if(!r)return null;let o=(n?r.querySelector(".graview-kind-block"):null)??r.querySelector('[data-graview-primitive="panel"], .graview-kind-face, .graview-kind-card')??r;return Dn(o,e)}function cn(e,t,n,r,o){let i=l=>e.nodes.find(s=>s.id===l);if(o.startsWith("screen:")){let l=o.slice(7),s=e.nodes.find(g=>g.screenOf===l);if(!s)return null;let u=ot(t,s.id,!1)??nt(s,n);if(!u)return null;let f=e.nodes.find(g=>g.id===he(l)),y=f?nt(f,n):null,w=u.y+u.height,m=y?Math.max(20,y.y-w):Math.max(20,u.height*.18);return{x:u.x,y:w,width:u.width,height:m}}let a=i(o),d=Be(o);if(!a&&d!==null&&(a=i(Ce(d))),!a&&Pt(o)){let[l]=vt(o);l&&(a=i(he(l)))}if(!a){let l=r.places().find(s=>s.as===o);l&&(a=i(Ce(l.kind))??i(he(l.kind)))}if(a||(a=[...e.nodes].filter(l=>l.aggregate?.memberIds.includes(o)).sort((l,s)=>l.plane-s.plane)[0]),!a)return null;let c=e.city!==void 0;return ot(t,a.id,c&&a.aggregate!==void 0&&Math.round(a.plane)===2)??nt(a,n)}var yt=ae(Ye(),1);var se=ae(Re(),1);function Zr({kinds:e}){let{store:t}=we(),{view:n,go:r}=io(),o=(0,yt.useRef)(null),i=so("districts",{align:"start"}),a=i.open,d=f=>Yt(t.schema,f),c=f=>t.graph.allNodes().filter(y=>y.kind===f).length,l=f=>!n.overview&&n.focusId===Ce(f),s=e.filter(f=>!l(f)),u=f=>{i.setOpen(!1);let y=o.current?.querySelector(".graview-beyond-more")??null;l(f)||r(Et(n,Ce(f))),y?.focus({preventScroll:!0});let w=`[data-graview-view="${Ce(f)}"][tabindex], [data-graview-view="${he(f)}"][tabindex]`,m=40,g=()=>{let p=document.querySelector(w);p?p.focus({preventScroll:!0}):--m>0&&requestAnimationFrame(g)};requestAnimationFrame(g)};return(0,se.jsxs)("div",{ref:o,className:"graview-beyond","data-graview-beyond":e.length,"data-graview-beyond-open":a?"":void 0,children:[(0,se.jsxs)("button",{type:"button",className:"graview-beyond-more","data-testid":"beyond-more",...i.trigger,"aria-haspopup":"menu",title:`${s.length} more district${s.length===1?"":"s"} \u2014 press to see them`,onPointerDown:f=>f.stopPropagation(),onClick:f=>{f.stopPropagation(),i.toggle()},children:[(0,se.jsxs)("span",{className:"graview-beyond-count",children:["+",s.length]}),(0,se.jsx)("span",{className:"graview-beyond-word",children:"more"}),(0,se.jsx)("span",{className:"graview-beyond-chevron","aria-hidden":"true",children:a?"\u25BE":"\u25B4"})]}),a?(0,se.jsx)("ul",{...i.pane,className:"graview-beyond-list",role:"menu","aria-label":"The other districts","data-testid":"beyond-list",style:ao,onPointerDown:f=>f.stopPropagation(),children:e.map(f=>(0,se.jsx)("li",{role:"none",children:(0,se.jsxs)("button",{type:"button",role:"menuitem","data-graview-pick":he(f),"aria-current":l(f)?"location":void 0,title:l(f)?`${d(f)} \u2014 where you are`:`Go to ${d(f)}`,onPointerDown:y=>y.stopPropagation(),onClick:y=>{y.stopPropagation(),u(f)},children:[(0,se.jsx)("span",{className:"graview-beyond-name",children:d(f)}),(0,se.jsx)("span",{className:"graview-beyond-tally",children:l(f)?"here":c(f)})]})},f))}):null]})}function ha(e,t){if(e===t)return!0;let n=Object.keys(e);return n.length!==Object.keys(t).length?!1:n.every(r=>r==="x"||r==="y"||Co(e[r],t[r]))}function Co(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||typeof t!="object"||e===null||t===null||Array.isArray(e)!==Array.isArray(t)||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==Array.prototype)return!1;if(Array.isArray(e)){let o=t;if(e.length!==o.length)return!1;for(let i=0;i<e.length;i++)if(!Co(e[i],o[i]))return!1;return!0}let r=Object.keys(e);return r.length!==Object.keys(t).length?!1:r.every(o=>Co(e[o],t[o]))}var Jr=(0,yt.memo)(ei,(e,t)=>e.mode===t.mode&&e.selected===t.selected&&e.fidelity===t.fidelity&&ha(e.node,t.node));function ei({node:e,mode:t,selected:n,fidelity:r}){let{store:o,views:i,view:a}=we(),d=It(),c=cr(),l=Rn(),s=e.aggregate||Pt(e.id)||Be(e.id)!==null?"many":"one",u={cardinality:s,fidelity:r??rr[ga(e.plane)].fidelity},f=s==="many"&&e.id===a.focusId?a.within?.view:void 0,y=i.resolve(e.kind,u,f),w=y?.view,m=i.resolve(e.kind,{cardinality:"many",fidelity:"full"})?.view,g=m!==void 0&&m.generic!==!0,p=e.aggregate?.memberIds,v=(0,yt.useMemo)(()=>(p??[]).map(A=>o.graph.getNode(A)).filter(A=>A!==void 0),[p,o,d]),E={...e.aggregate?{nodes:v,label:y?.title??e.aggregate.label}:{node:o.graph.getNode(e.id)},fidelity:u.fidelity,cardinality:u.cardinality,mode:t,selected:n,implicated:c,flagged:l,...e.raised?{raised:!0}:{},...e.focused?{focused:!0}:{},...e.opened?{opened:!0}:{},...e.openedRows!==void 0?{openedRows:e.openedRows}:{},...e.plot?{plot:e.plot}:{},...e.aggregate?.retired?{retired:e.aggregate.retired}:{},...e.rank?{rank:e.rank}:{},...e.nestedUnder?{nestedUnder:e.nestedUnder}:{},...g?{hasOwnView:!0}:{}};if(!w)return(0,se.jsx)(ya,{node:e,props:E});let P=[e.id,y?.title??"",u.fidelity,u.cardinality,t,n,e.raised??!1,e.focused??!1,e.opened??!1,e.openedRows??"",e.rank??"",e.nestedUnder??"",e.plot?`${e.plot.col},${e.plot.row},${e.plot.side}`:"",e.aggregate?Po(e.aggregate.memberIds):"",e.aggregate?.retired??"",c?Po(c):"",l?Po(l):"",g].join("|");return(0,se.jsx)(oo,{mode:t,children:(0,se.jsx)(hr,{kind:E.label??e.kind,...y?.title?{view:y.title}:{},children:(0,se.jsx)(fa,{signature:P,graph:d,draw:()=>(0,se.jsx)(w,{...E})})},`${e.id}|${y?.title??""}`)})}var fa=(0,yt.memo)(function({draw:t}){return(0,se.jsx)(se.Fragment,{children:t()})},(e,t)=>e.signature===t.signature&&e.graph===t.graph);function ga(e){return Math.max(0,Math.min(2,Math.round(e)))}function ya({node:e,props:t}){return(0,se.jsxs)("div",{style:{padding:8,font:"13px/1.4 system-ui",overflow:"hidden"},children:[(0,se.jsx)("strong",{children:t.label??e.kind}),t.nodes?(0,se.jsxs)("div",{children:[t.nodes.length," items"]}):(0,se.jsx)("div",{children:e.id})]})}var ti=(0,yt.memo)(function({node:t}){let{store:n}=we(),r=sn(),o=t.aggregate,i=o.opens,a=o.memberIds.length,d=wn(n.schema,o.kind,a),c=o.memberIds.slice(0,3).map(f=>{let y=n.graph.getNode(f),w=y?n.schema.tryDefinition(y.kind):void 0;return y?w?.label?w.label(y):String(y.label??f):f}),l=o.memberIds,s=(0,yt.useMemo)(()=>{let f=r?kn(r):null;return f?l.filter(y=>f.has(y)).length:0},[r,l]),u=i.in==="picture";return(0,se.jsxs)("div",{className:"graview-band-group","data-graview-band":i.in,"data-graview-band-count":a,"data-graview-emphasis":r?s>0?"lit":"dimmed":void 0,title:u?`${o.label} \u2014 press twice to see them all, arranged`:`${o.label}: ${d} \u2014 press twice to open`,children:[(0,se.jsxs)("span",{className:"graview-band-group-head",children:[(0,se.jsx)("span",{className:"graview-band-group-name",children:o.label}),(0,se.jsx)("span",{className:"graview-band-group-open","aria-hidden":"true",children:u?"\u2197":"\u25BE"})]}),(0,se.jsxs)("span",{className:"graview-band-group-names",children:[u?null:(0,se.jsxs)("span",{className:"graview-band-group-count",children:[d,s>0?` \xB7 ${s} match`:""," \xB7 "]}),c.join(" \xB7 "),a>c.length?" \u2026":""]})]})}),Qr=new WeakMap;function Po(e){let t=Qr.get(e);if(t!==void 0)return t;let n=2166136261;for(let o of e){for(let i=0;i<o.length;i++)n=Math.imul(n^o.charCodeAt(i),16777619);n=Math.imul(n^44,16777619)}let r=`${e.length}:${(n>>>0).toString(36)}`;return Qr.set(e,r),r}var St=ae(Ye(),1);function Ao(e,t,n){let r=e.aggregate?[...e.aggregate.memberIds]:[e.id];return n?r.every(i=>t.includes(i))?t.filter(i=>!r.includes(i)):[...t,...r.filter(i=>!t.includes(i))]:r}function ni(){let[e,t]=(0,St.useState)(16);return(0,St.useEffect)(()=>{if(typeof window>"u")return;let n=document.documentElement,r=()=>{let i=parseFloat(getComputedStyle(n).fontSize);Number.isFinite(i)&&t(a=>Math.abs(a-i)<.5?a:i)};r();let o=new MutationObserver(r);return o.observe(n,{attributes:!0,attributeFilter:["style"]}),window.addEventListener("resize",r),()=>{o.disconnect(),window.removeEventListener("resize",r)}},[]),e}function oi(e){let[t,n]=(0,St.useState)(null);return(0,St.useLayoutEffect)(()=>{let r=e.current?.getBoundingClientRect();!r||r.width===0||r.height===0||n(o=>o??{width:Math.round(r.width),height:Math.round(r.height)})},[e]),(0,St.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let o=new ResizeObserver(i=>{let a=i[0]?.contentRect;!a||a.width===0||a.height===0||n(d=>{let c={width:Math.round(a.width),height:Math.round(a.height)};return d&&d.width===c.width&&d.height===c.height?d:c})});return o.observe(r),()=>o.disconnect()},[e]),t}function ri(e,t){if(t==="dark")return`0 ${(10*e).toFixed(1)}px ${(34*e).toFixed(1)}px rgba(0,0,0,${(e+.12).toFixed(2)})`;let n=`0 ${(1+2*e).toFixed(1)}px ${(2+5*e).toFixed(1)}px rgba(20,30,32,${(.03+.06*e).toFixed(3)})`,r=`0 ${(6+26*e).toFixed(1)}px ${(18+60*e).toFixed(1)}px -${(10+10*e).toFixed(1)}px rgba(20,30,32,${(.1+.3*e).toFixed(3)})`;return`${n}, ${r}`}function ii(e){return`matrix3d(${e.join(",")})`}var Xe=ae(Ye(),1);var Lo=(e,t)=>t.some(n=>e.x>n.x&&e.x<n.x+n.width&&e.y>n.y&&e.y<n.y+n.height);function Io(e,t){let n=[],r=[];for(let i=0;i<e.length-1;i++){let a=e[i],d=e[i+1],c=!Lo(a,t);c&&r.length===0&&r.push(a);for(let l=1;l<=48;l++){let s=l/48,u={x:a.x+(d.x-a.x)*s,y:a.y+(d.y-a.y)*s},f=!Lo(u,t);if(f===c)continue;let y=(l-1)/48,w=s;for(let p=0;p<10;p++){let v=(y+w)/2,E={x:a.x+(d.x-a.x)*v,y:a.y+(d.y-a.y)*v};!Lo(E,t)===c?y=v:w=v}let m=(y+w)/2,g={x:a.x+(d.x-a.x)*m,y:a.y+(d.y-a.y)*m};f?r=[g]:(r.push(g),r.length>=2&&n.push(r),r=[]),c=f}c&&r.push(d)}return r.length>=2&&n.push(r),n}function un(e,t){let n=Math.abs(t.x-e.x);if(Math.abs(t.y-e.y)>n){if(n<2)return[e,t];let i=(e.y+t.y)/2;return[e,{x:e.x,y:i},{x:t.x,y:i},t]}let o=(e.x+t.x)/2;return Math.abs(t.x-e.x)<2?[e,t]:[e,{x:o,y:e.y},{x:o,y:t.y},t]}var Ge=e=>Math.round(e*100)/100,Dt=e=>e.map(t=>t.map((n,r)=>`${r===0?"M":"L"} ${Ge(n.x)} ${Ge(n.y)}`).join(" ")).join(" ");function ai(e,t){if(e.length<3)return Dt([e]);let n=[`M ${Ge(e[0].x)} ${Ge(e[0].y)}`];for(let o=1;o<e.length-1;o++){let i=e[o-1],a=e[o],d=e[o+1],c=Math.hypot(a.x-i.x,a.y-i.y),l=Math.hypot(d.x-a.x,d.y-a.y),s=Math.min(t,c/2,l/2),u={x:a.x+(i.x-a.x)/(c||1)*s,y:a.y+(i.y-a.y)/(c||1)*s},f={x:a.x+(d.x-a.x)/(l||1)*s,y:a.y+(d.y-a.y)/(l||1)*s};n.push(`L ${Ge(u.x)} ${Ge(u.y)} Q ${Ge(a.x)} ${Ge(a.y)} ${Ge(f.x)} ${Ge(f.y)}`)}let r=e[e.length-1];return n.push(`L ${Ge(r.x)} ${Ge(r.y)}`),n.join(" ")}function si(e,t,n){if(e==="orthogonal"){let d=un(t.p0,t.p1),c=d.slice(1).map((u,f)=>Math.hypot(u.x-d[f].x,u.y-d[f].y)),l=c.reduce((u,f)=>u+f,0)||1,s=n*l;for(let u=0;u<c.length;u++){let f=c[u];if(s<=f||u===c.length-1){let y=f===0?0:Math.min(1,s/f),w=d[u],m=d[u+1];return{x:w.x+(m.x-w.x)*y,y:w.y+(m.y-w.y)*y}}s-=f}return t.p1}let r=e==="straight"?{x:(t.p0.x+t.p1.x)/2,y:(t.p0.y+t.p1.y)/2}:t.c,o=(1-n)*(1-n),i=2*(1-n)*n,a=n*n;return{x:o*t.p0.x+i*r.x+a*t.p1.x,y:o*t.p0.y+i*r.y+a*t.p1.y}}function Fn(e,t){return e!=="straight"?t:{...t,c:{x:(t.p0.x+t.p1.x)/2,y:(t.p0.y+t.p1.y)/2}}}function di(e,t){let n=t.x-e.x,r=t.y-e.y,o=(n/2+r)/2,i=(r-n/2)/2;if(Math.abs(o)<1||Math.abs(i)<1)return[e,t];let a={x:e.x+2*o,y:e.y+o};return[e,a,t]}function ma(e){let t=[...e].sort((r,o)=>r.y-o.y||r.x-o.x),n=[];for(let r of t){let o=n.find(i=>r.y<i.bottom&&r.y+r.height>i.top);o?(o.boxes.push(r),o.top=Math.min(o.top,r.y),o.bottom=Math.max(o.bottom,r.y+r.height)):n.push({top:r.y,bottom:r.y+r.height,boxes:[r]})}for(let r of n)r.boxes.sort((o,i)=>o.x-i.x);return n.sort((r,o)=>r.top-o.top)}var No=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,li=(e,t)=>e.findIndex(n=>n.boxes.some(r=>No(r,t)));function Zt(e,t,n){return t<0?e[0].top-12*2:n>=e.length?e[e.length-1].bottom+12*2:(e[t].bottom+e[n].top)/2}function pa(e,t){let n=[{from:-1/0,to:1/0}];for(let i of e){let a=[],d=-1/0;for(let l of i.boxes)a.push({from:d,to:l.x-12}),d=l.x+l.width+12;a.push({from:d,to:1/0});let c=[];for(let l of n)for(let s of a){let u=Math.max(l.from,s.from),f=Math.min(l.to,s.to);f-u>=0&&c.push({from:u,to:f})}n=c}let r=t,o=1/0;for(let i of n){let a=Math.min(Math.max(t,i.from),i.to),d=i.from===-1/0||i.to===1/0,c=Math.abs(a-t)+(d?60:0);c<o&&(o=c,r=a)}return r}function ci(e,t,n,r=0){let o=ma(n.some(v=>No(v,e))&&n.some(v=>No(v,t))?n:[...n,e,t]),i=li(o,e),a=li(o,t),d=e.x+e.width/2,c=t.x+t.width/2,l=(r%3-1)*4;if(i===a){let v=i<o.length-1||o.length===1,E=(v?Zt(o,i,i+1):Zt(o,i-1,i))+l,P=v?e.y+e.height:e.y,A=v?t.y+t.height:t.y;return[{x:d,y:P},{x:d,y:E},{x:c,y:E},{x:c,y:A}]}let s=a>i,u=s?1:-1,f={x:d,y:s?e.y+e.height:e.y},y={x:c,y:s?t.y:t.y+t.height},w=(s?Zt(o,i,i+1):Zt(o,i-1,i))+l,m=(s?Zt(o,a-1,a):Zt(o,a,a+1))+l;if(Math.abs(a-i)===1)return[f,{x:d,y:w},{x:c,y:w},y];let g=[];for(let v=i+u;v!==a;v+=u)g.push(o[v]);let p=pa(g,c);return[f,{x:d,y:w},{x:p,y:w},{x:p,y:m},{x:c,y:m},y]}function ui(e,t=16){let n=new Map;for(let o of e){let i=o.a<o.b?`${o.a}\0${o.b}`:`${o.b}\0${o.a}`,a=n.get(i);a?a.push(o.key):n.set(i,[o.key])}let r=new Map;for(let o of n.values())o.forEach((i,a)=>r.set(i,(a-(o.length-1)/2)*t));return r}var Ue=ae(Re(),1);function jn(e,t){let n=Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x),r=Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y);if(n>0&&r>0)return null;let o=n>.5*Math.min(e.width,t.width),i=!o&&r>.5*Math.min(e.height,t.height);if(o){let w={x:e.x+e.width,y:e.y+e.height/2},m={x:t.x+t.width,y:t.y+t.height/2};return{from:w,to:m,control:{x:Math.max(w.x,m.x)+18,y:(w.y+m.y)/2},mode:"stacked"}}if(i){let w={x:e.x+e.width/2,y:e.y},m={x:t.x+t.width/2,y:t.y};return{from:w,to:m,control:{x:(w.x+m.x)/2,y:Math.min(w.y,m.y)-18},mode:"abreast"}}let a={x:t.x+t.width/2,y:t.y+t.height/2},d={x:e.x+e.width/2,y:e.y+e.height/2},c=Bn(e,a),l=Bn(t,d),s=Math.hypot(l.x-c.x,l.y-c.y);if(s<8)return null;let u=Math.min(36,s*.12),f=-(l.y-c.y)/s,y=(l.x-c.x)/s;return{from:c,to:l,control:{x:(c.x+l.x)/2+f*u,y:(c.y+l.y)/2+y*u},mode:"direct"}}function Bn(e,t){let n=e.x+e.width/2,r=e.y+e.height/2,o=t.x-n,i=t.y-r;if(o===0&&i===0)return{x:n,y:r};let a=o===0?1/0:e.width/2/Math.abs(o),d=i===0?1/0:e.height/2/Math.abs(i),c=Math.min(a,d),l=Math.max(0,c*.98);return{x:n+o*l,y:r+i*l}}function wa(e,t,n){let r=t.get(e.from),o=t.get(e.to);if(!r||!o)return!1;if(n)return!0;let i=Math.round(r.plane)===1||Math.round(o.plane)===1,a=d=>!!d.aggregate&&Math.round(d.plane)===2;return i&&!a(r)&&!a(o)}var xa=()=>({clips:new Map,members:new Map,marks:new Map});function ba(e,t){let n=t.marks.get(e);if(n)return n;n=new Map;for(let r of e.querySelectorAll("[data-graview-pick], [data-graview-slot]"))for(let o of new Set([r.getAttribute("data-graview-pick"),r.getAttribute("data-graview-slot")])){if(o===null)continue;let i=n.get(o);i?i.push(r):n.set(o,[r])}return t.marks.set(e,n),n}function va(e,t){let n=t.clips.get(e);if(n===void 0){let r=getComputedStyle(e);n=r.overflow!=="visible"||r.overflowX!=="visible"||r.overflowY!=="visible"?e.getBoundingClientRect():null,t.clips.set(e,n)}return n}function ka(e,t,n){let r=e.parentElement;for(;r!==null;){let o=va(r,n);if(o&&!(t.right>o.left+1&&t.left<o.right-1&&t.bottom>o.top+1&&t.top<o.bottom-1))return!1;if(r.hasAttribute("data-graview-view"))break;r=r.parentElement}return!0}function hn(e,t,n,r){if(!e||!t||typeof document>"u")return[];let o=r.members.get(t);o||r.members.set(t,o=new Map);let i=o.get(n);if(i)return i;let a=e.getBoundingClientRect(),d=[];for(let c of ba(t,r).get(n)??[]){if(c.closest("[data-graview-offstage]"))continue;let l=c.getBoundingClientRect();l.width<=2||l.height<=2||ka(c,l,r)&&d.push({x:l.left-a.left,y:l.top-a.top,width:l.width,height:l.height})}return d.sort((c,l)=>c.width*c.height-l.width*l.height),o.set(n,d),d}function _n(e,t,n,r,o){let i=new Map(e.map(g=>[g.id,g])),a=xa(),d=new Map,c=g=>{if(!n||typeof document>"u")return null;let p=d.get(g);return p===void 0&&(p=n.querySelector(`[data-graview-view="${CSS.escape(g)}"]`),d.set(g,p)),p},l=new Map;for(let g of e){let p=ot(n,g.id,r)??nt(g,o);p&&l.set(g.id,p)}let s=new Map;if(n&&typeof document<"u"){let g=n.getBoundingClientRect();for(let p of n.querySelectorAll("[data-graview-pick], [data-graview-slot]")){if(p.closest("[data-graview-offstage]"))continue;let v=p.getAttribute("data-graview-pick")??p.getAttribute("data-graview-slot");if(v===null)continue;let E=p.getBoundingClientRect();if(E.width<=2||E.height<=2||E.width>g.width*.6&&E.height>g.height*.6)continue;let P=s.get(v),A={x:E.left-g.left,y:E.top-g.top,width:E.width,height:E.height};P?P.push(A):s.set(v,[A])}}let u=(g,p)=>{let v=[];for(let[E,P]of l)E!==g&&E!==p&&v.push(P);for(let[E,P]of s)E!==g&&E!==p&&v.push(...P);return v},f=g=>Math.round(i.get(g)?.plane??-1)===1,y=[];for(let g of e){let p=l.get(g.id);p&&Math.round(g.plane)===1&&y.push(p)}let w=(g,p)=>!r&&f(g)&&f(p)?y:void 0,m=[];for(let g of t){if(!wa(g,i,r))continue;let p=l.get(g.from),v=l.get(g.to);if(!p||!v)continue;let E=u(g.from,g.to),P=g.edges,A=r&&P.some(S=>S.from!==g.from&&hn(n,c(g.from),S.from,a).length>0||S.to!==g.to&&hn(n,c(g.to),S.to,a).length>0),R=w(g.from,g.to);if(r&&!A||g.loop||P.length===0){m.push({key:g.id,connector:g,edges:P,fromBox:p,toBox:v,fromAnchor:g.from,toAnchor:g.to,obstacles:E,hosts:[],...R?{band:R}:{}});continue}let W=new Map;for(let S of P){let x=S.from===g.from?[]:hn(n,c(g.from),S.from,a),M=S.to===g.to?[]:hn(n,c(g.to),S.to,a),L=[g.from,g.to].find(ee=>Math.round(i.get(ee)?.plane??-1)===0);if(!r&&L!==void 0&&(S.from!==g.from||S.to!==g.to)&&hn(n,c(L),L===g.from?S.to:S.from,a).length>0)continue;let z=L!==void 0?i.get(L):void 0;if(!r&&z?.aggregate&&n&&(L===g.from?S.from!==g.from&&x.length===0:S.to!==g.to&&M.length===0))continue;let I=x.length>0?S.from:g.from,D=M.length>0?S.to:g.to,B=`${g.id}|${I}|${D}`,j=W.get(B);if(j){j.edges.push(S);continue}let K=x.length>0?x:[p],G=M.length>0?M:[v],V=K[0],xe=G[0],fe=1/0;for(let ee of K)for(let ce of G){let N=Math.hypot(ee.x+ee.width/2-(ce.x+ce.width/2),ee.y+ee.height/2-(ce.y+ce.height/2));N<fe&&(fe=N,V=ee,xe=ce)}W.set(B,{edges:[S],fromBox:V,toBox:xe,fromAnchor:I,toAnchor:D})}for(let[S,x]of W)m.push({key:S,connector:g,obstacles:E,hosts:[...x.fromAnchor!==g.from?[p]:[],...x.toAnchor!==g.to?[v]:[]],...R?{band:R}:{},...x})}return m}function To(e,t){let n=(1-t)*(1-t),r=2*(1-t)*t,o=t*t;return{x:n*e.p0.x+r*e.c.x+o*e.p1.x,y:n*e.p0.y+r*e.c.y+o*e.p1.y}}function hi(e,t,n){let r=(1-t)*(1-n),o=(1-t)*n+t*(1-n),i=t*n;return{p0:To(e,t),c:{x:r*e.p0.x+o*e.c.x+i*e.p1.x,y:r*e.p0.y+o*e.c.y+i*e.p1.y},p1:To(e,n)}}function $o(e,t){let n=l=>t.some(s=>l.x>s.x&&l.x<s.x+s.width&&l.y>s.y&&l.y<s.y+s.height),r=l=>!n(To(e,l)),i=(l,s,u)=>{for(let f=0;f<10;f++){let y=(l+s)/2;r(y)===u?l=y:s=y}return(l+s)/2},a=[],d=null,c=r(0);c&&(d=0);for(let l=1;l<=64;l++){let s=l/64,u=r(s);if(u===c)continue;let f=i((l-1)/64,s,c);u?d=f:d!==null&&(f-d>.001&&a.push(hi(e,d,f)),d=null),c=u}return d!==null&&1-d>.001&&a.push(hi(e,d,1)),a}function fi({strands:e,result:t,scheme:n,overview:r,selection:o,emphasis:i,stageRef:a,liveOf:d,onPickEdge:c}){let l=dn(),s=new Set(t.nodes.filter(R=>R.plot!==void 0&&Math.round(R.plane)===2).map(R=>R.id)),u=R=>r&&t.city!==void 0&&s.has(R.from)&&s.has(R.to),f=Ro(t.nodes,o),y=R=>f.size===0||f.has(R.from)||f.has(R.to),w=new Set(o.filter(R=>Ot(R)===null)),m=r?t.nodes.find(R=>Math.round(R.plane)===0):void 0,g=m?ot(a.current,m.id,!1)??nt(m,n):null;if(e.length===0)return null;let p=R=>R.edges.some(W=>w.has(W.from)||w.has(W.to)),v=w.size>0&&e.some(p),E=new Map;for(let R of e)E.set(R.connector.id,(E.get(R.connector.id)??0)+1);let P=ui(e.map(R=>({key:R.key,a:R.fromAnchor,b:R.toAnchor}))),A=e.map((R,W)=>{let{connector:S,fromBox:x,toBox:M}=R,L={x:x.x+x.width/2,y:x.y+x.height/2},z={x:M.x+M.width/2,y:M.y+M.height/2},I=r?Bn(x,z):L,D=r?Bn(M,L):z,B=S.loop===!0,{connector:j,style:K}=On(l,S.kind);if(!j.visible)return null;let G=B?Math.max(22,Math.min(x.width,x.height)*.3):0,V=B?{x:L.x+x.width*.22,y:L.y-x.height/2-G+7}:I,xe=(I.x+D.x)/2,fe=(I.y+D.y)/2,ee=Math.hypot(D.x-I.x,D.y-I.y),ce=Math.min(r?40:90,ee*(r?.09:.16)),N=0,X=0;if(ee>0){N=-(D.y-I.y)/ee,X=(D.x-I.x)/ee;let ie=xe-t.width/2,Me=fe-t.height/2;if(g&&!B){let lt=g.x+g.width/2,ze=g.y+g.height/2;ie=xe-lt,Me=fe-ze;let Z=Math.abs(N*(lt-I.x)+X*(ze-I.y)),wt=Math.hypot(g.width/2,g.height/2)*.85+24,ct=((lt-I.x)*(D.x-I.x)+(ze-I.y)*(D.y-I.y))/(ee*ee);Z<wt&&ct>.1&&ct<.9&&(ce=Math.min(180,Math.max(ce,(wt-Z)*2)))}N*ie+X*Me<0&&(N=-N,X=-X)}ce+=2*(P.get(R.key)??0);let k=Fn(j.route,{p0:I,c:{x:xe+N*ce,y:fe+X*ce},p1:D}),T=u(S),$=j.route==="orthogonal"||T,J=(ie,Me)=>T?di(ie,Me):un(ie,Me),q=!B&&R.band?ci(x,M,R.band,W):null,te=B||$||q?[]:$o(k,[x,M,...R.obstacles]),ye=q?[q]:!B&&$?Io(J(I,D),[x,M,...R.obstacles]):[];if(!B&&te.length===0&&ye.length===0)return null;let de=ye[ye.length-1],oe=$||q?ye[0]?.[0]:te[0]?.p0,Ae=$||q?de?.[de.length-1]:te[te.length-1]?.p1,Se=ie=>ie.map(Me=>`M ${Me.p0.x} ${Me.p0.y} Q ${Me.c.x} ${Me.c.y} ${Me.p1.x} ${Me.p1.y}`).join(" "),it=`M ${V.x-G} ${V.y} A ${G} ${G} 0 1 1 ${V.x+G} ${V.y} A ${G} ${G} 0 0 1 ${V.x-G} ${V.y}`,_e=B?it:q?ai(q,10):$?Dt(ye):Se(te),me=ie=>({x:ie.x-8,y:ie.y-8,width:ie.width+16,height:ie.height+16}),Oe=[x,M,...R.hosts,...R.obstacles].map(me),He=B?it:q?Dt(ye):$?Dt(Io(J(I,D),Oe)):Se($o(k,Oe)),qe=R.edges.length===1?R.edges[0]:null,Te=qe?Kt(S.kind,qe.from,qe.to):null,pt=Te!==null&&o.includes(Te),ne=R.edges.some(ie=>w.has(ie.from)||w.has(ie.to)),Qe=!r&&w.size>0&&ne,at=i!==null&&S.kind===i||pt,De=d?.(S)!==void 0;if(r&&!at&&!ne&&!(f.size>0&&y(S))&&!De)return null;let Ze=r?Oo({emphasized:i!==null,stressed:at,anyChosen:v,mine:ne,touches:y(S),siblings:E.get(S.id)??1}):Eo({edgeChosen:pt,lit:Qe,anyLit:v||i!==null,own:K.opacity,kit:l.emphasis}),st=Qe&&oe&&Ae?R.edges.some(ie=>w.has(ie.from))?Ae:oe:null,Fe=(0,Ue.jsxs)("g",{children:[(0,Ue.jsx)("path",{"data-graview-connector":S.kind,"data-graview-edges":R.edges.length,"data-graview-from":R.fromAnchor,"data-graview-to":R.toAnchor,"data-graview-lit":Qe||void 0,"data-graview-activity":d?.(S)?.manner,opacity:Ze*(S.opacity??1),d:_e,fill:"none",stroke:Qt(K),strokeWidth:(Qe?Math.max(1.6,lo(K,r)):lo(K,r))+(at?.6:0),strokeDasharray:Mn[K.pattern],strokeLinecap:"round"}),st?(0,Ue.jsx)("circle",{cx:st.x,cy:st.y,r:2.6,fill:Qt(K),opacity:Ze}):null,B&&r?(0,Ue.jsx)("text",{x:V.x,y:V.y-G-5,textAnchor:"middle",opacity:Ze,style:{font:"9px var(--graview-font-body, system-ui)",letterSpacing:"0.09em",textTransform:"uppercase",fill:"var(--graview-ink-faint)"},children:Wt(S.kind).toLowerCase()}):null]},R.key),dt=null;return Te&&c&&!B&&Ze>=.2&&(dt=(0,Ue.jsx)("path",{"data-graview-edge":Te,className:"graview-edge-hit",d:He,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:ie=>{ie.stopPropagation(),c(Te,{x:ie.clientX,y:ie.clientY})},onContextMenu:ie=>{ie.preventDefault(),ie.stopPropagation(),c(Te,{x:ie.clientX,y:ie.clientY})}},`hit:${R.key}`)),{key:R.key,line:Fe,hit:dt}});return(0,Ue.jsxs)(Ue.Fragment,{children:[(0,Ue.jsx)("svg",{"aria-hidden":"true","data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:$e.ties},children:A.map(R=>R?.line)}),A.some(R=>R?.hit)?(0,Ue.jsx)("svg",{"data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:$e.tieLabels},children:A.map(R=>R?.hit)}):null]})}var Sa=e=>e.length*8.4+16;function gi(e,t){let n=new Map;for(let i of e){let a=n.get(i.key);a?a.push(i):n.set(i.key,[i])}let r=[...n.values()].map(i=>{let a=Math.min(...i.map(c=>c.top)),d=i.filter(c=>c.top-a<=12);return{key:i[0].key,text:i[0].text,left:Math.min(...d.map(c=>c.left)),right:Math.max(...d.map(c=>c.right)),top:a}});r.sort((i,a)=>i.top-a.top||i.left-a.left);let o=r.map(i=>{let a=Math.max(i.right-i.left,Math.min(300,Sa(i.text))),d=(i.left+i.right)/2;return{left:d-a/2,right:d+a/2}});return r.map((i,a)=>{let d=r.map((p,v)=>({other:p,at:v})).filter(({other:p})=>p!==i&&Math.abs(p.top-i.top)<=12),c=d.filter(({other:p})=>p.right<=i.left).map(({other:p,at:v})=>o[v].right+8<=(p.right+i.left)/2?o[v].right+8:(p.right+i.left+8)/2),l=d.filter(({other:p})=>p.left>=i.right).map(({other:p,at:v})=>o[v].left-8>=(i.right+p.left)/2?o[v].left-8:(i.right+p.left-8)/2),s=Math.max(t.left,...c),u=Math.min(t.right,...l),f=i.right-i.left,y=o[a].right-o[a].left,w=Math.max(f,Math.min(y,u-s)),m=(i.left+i.right)/2,g=f>=w?i.left:Math.max(s,Math.min(m-w/2,u-w));return{key:i.key,text:i.text,left:g,width:w,top:i.top}})}function zn(e){return e<640?{left:8,right:56}:{left:8,right:Math.round(Math.min(128,e*.107))}}var Ne=ae(Re(),1);function yi({frame:e,width:t,height:n,scheme:r,overview:o,selection:i,emphasis:a,stageRef:d,store:c,graphNodes:l,onPickEdge:s,liveOf:u,holding:f=!1}){let[y,w]=(0,Xe.useState)(0),[m,g]=(0,Xe.useState)(null),p=e.t<1;(0,Xe.useLayoutEffect)(()=>{p||f||g(_n(e.nodes,e.connectors,d.current,o,r))},[e,p,f,i,o,l,r,y,d]);let v=e.nodes.map(A=>A.id).join(`
8
- `);if((0,Xe.useLayoutEffect)(()=>{let A=d.current;if(A===null||typeof window>"u")return;let R=0,W=()=>{R===0&&(R=requestAnimationFrame(()=>{R=0,w(x=>x+1)}))};A.addEventListener("scroll",W,{capture:!0,passive:!0}),window.addEventListener("resize",W,{passive:!0});let S=typeof ResizeObserver>"u"?null:new ResizeObserver(W);if(S){S.observe(A);for(let x of A.querySelectorAll("[data-graview-view]"))S.observe(x)}return()=>{R!==0&&cancelAnimationFrame(R),A.removeEventListener("scroll",W,{capture:!0}),window.removeEventListener("resize",W),S?.disconnect()}},[d,v]),p)return null;let E=(f?null:m)??_n(e.nodes,e.connectors,null,o,r),P=new Set;for(let A of E){if(A.edges.length!==1)continue;let R=A.edges[0];P.add(`${A.connector.kind}|${R.from}|${R.to}`)}return(0,Ne.jsxs)(Ne.Fragment,{children:[(0,Ne.jsx)(fi,{strands:E,result:e,scheme:r,overview:o,selection:i,emphasis:a,stageRef:d,onPickEdge:s,liveOf:u}),(0,Ne.jsx)(Ma,{stageRef:d,nodes:e.nodes,scheme:r,selection:i,store:c,graphNodes:l,overview:o,width:t,height:n,onPickEdge:s,alreadyDrawn:P,tick:y})]})}function Ma({stageRef:e,nodes:t,scheme:n,selection:r,store:o,graphNodes:i,overview:a,width:d,height:c,onPickEdge:l,alreadyDrawn:s,tick:u}){let f=dn(),y=(0,Xe.useMemo)(()=>{if(r.length===0||r.length>4)return[];let p=new Set(r),v=[];for(let P of r){let A=Ot(P);A&&v.push({kind:A.kind,self:A.from,other:A.to})}for(let P of o.graph.allEdges()){let A=p.has(P.from)?P.from:p.has(P.to)?P.to:null;if(!A)continue;let R=A===P.from?P.to:P.from;p.has(R)||v.push({kind:P.kind,self:A,other:R})}if(v.length<=14)return v;let E=new Set(t.map(P=>P.id));return v.map((P,A)=>({tie:P,index:A,real:E.has(P.other)?0:1})).sort((P,A)=>P.real-A.real||P.index-A.index).slice(0,14).map(({tie:P})=>P)},[o,r,i,t]),w=()=>{if(y.length===0||typeof document>"u")return[];if(!e.current?.getBoundingClientRect())return[];let v=[...e.current?.querySelectorAll("[data-graview-joins]")??[]].find(x=>{if(x.closest("[data-graview-offstage]"))return!1;try{let M=JSON.parse(x.getAttribute("data-graview-joins")??"[]");return M.length===r.length&&M.every(L=>r.includes(L))}catch{return!1}});if(v){let x=Dn(v,e.current);if(!x)return[];let M=[];for(let L of r){let z=t.find(j=>j.id===L);if(!z)continue;let I=ot(e.current,z.id,a)??nt(z,n),D=I?jn(x,I):null;if(!I||!D)continue;let B=[...o.graph.allEdges()].find(j=>j.from===L&&r.includes(j.to)||j.to===L&&r.includes(j.from));M.push({key:`join:${L}`,kind:B?.kind??"",endX:D.to.x,endY:D.to.y,...D,fromBox:x,toBox:I,proxy:!1,edgeId:B?Kt(B.kind,B.from,B.to):null})}return M}let E=(x,M)=>{let L=e.current?.querySelectorAll(`[data-graview-pick="${CSS.escape(x)}"], [data-graview-slot="${CSS.escape(x)}"]`),z=[];for(let I of L??[]){if(I.closest("[data-graview-offstage]")||M(I)||I.closest("[data-graview-mark]"))continue;let D=Dn(I,e.current);D&&z.push(D)}return z.sort((I,D)=>I.width*I.height-D.width*D.height)},P=x=>t.find(M=>M.id===x)??t.find(M=>M.aggregate?.memberIds.includes(x)),A=x=>`[data-graview-pick="${CSS.escape(x)}"], [data-graview-slot="${CSS.escape(x)}"]`,R=(x,M)=>{let L=e.current;if(!L)return!1;for(let z of L.querySelectorAll("[data-graview-view]")){let I=z.querySelector(A(x));if(I===null||I.closest("[data-graview-offstage]"))continue;let D=z.querySelector(A(M));if(D!==null&&!D.closest("[data-graview-offstage]"))return!0}return!1},W=new Set,S=[];for(let x of y){if(R(x.self,x.other))continue;let M=P(x.self),L=M?e.current?.querySelector(`[data-graview-view="${CSS.escape(M.id)}"]`):null,z=E(x.self,()=>!1);if(!(z.length>0)&&M){let k=ot(e.current,M.id,!1)??nt(M,n);k&&z.push(k)}let D=t.find(k=>k.id===x.other),B=[],j=!1;if(D){let k=ot(e.current,D.id,a)??nt(D,n);k&&B.push(k)}else if(B.push(...E(x.other,k=>L?L.contains(k):!1)),B.length===0){let k=P(x.other);if(k&&(!M||k.id!==M.id)){let T=ot(e.current,k.id,a)??nt(k,n);T&&(B.push(T),j=!0)}}if(z.length===0||B.length===0||j&&a)continue;let K=z[0],G=B[0],V=1/0;for(let k of z)for(let T of B){let $=Math.hypot(k.x+k.width/2-(T.x+T.width/2),k.y+k.height/2-(T.y+T.height/2));$<V&&(V=$,K=k,G=T)}if(s?.has(`${x.kind}|${x.self}|${x.other}`)||s?.has(`${x.kind}|${x.other}|${x.self}`))continue;let xe=`${x.kind}:${Math.round(K.x)},${Math.round(K.y)}:${Math.round(G.x)},${Math.round(G.y)}`;if(W.has(xe))continue;W.add(xe);let fe=jn(K,G);if(!fe)continue;let{from:ee,to:ce,control:N}=fe,X=[...o.graph.allEdges()].find(k=>k.kind===x.kind&&(k.from===x.self&&k.to===x.other||k.from===x.other&&k.to===x.self));S.push({key:`${x.kind}:${x.self}:${x.other}`,kind:x.kind,endX:ce.x,endY:ce.y,from:ee,to:ce,control:N,fromBox:K,toBox:G,proxy:j,edgeId:X?Kt(X.kind,X.from,X.to):null})}return S},[m,g]=(0,Xe.useState)([]);return(0,Xe.useLayoutEffect)(()=>{g(w())},[y,t,a,n,d,c,s,u,e]),m.length===0?null:(0,Ne.jsx)("svg",{"aria-hidden":m.some(p=>p.edgeId)?void 0:!0,"data-graview-ties":m.length,"data-graview-world":"",width:d,height:c,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:$e.lines},children:m.map(p=>{let{connector:v,style:E}=On(f,p.kind);if(!v.visible)return null;let P={p0:p.from,c:p.control,p1:p.to},A=v.route==="orthogonal"?Dt([un(p.from,p.to)]):(({p0:W,c:S,p1:x})=>`M ${W.x} ${W.y} Q ${S.x} ${S.y} ${x.x} ${x.y}`)(Fn(v.route,P)),R=null;if(p.edgeId&&l&&!p.proxy){let W=(x,M)=>M.x>=x.x&&M.x<=x.x+x.width&&M.y>=x.y&&M.y<=x.y+x.height,S=[];for(let x=0;x<=40;x++){let M=si(v.route,P,x/40);W(p.fromBox,M)||W(p.toBox,M)||S.push(M)}S.length>=2&&(R=(0,Ne.jsx)("path",{"data-graview-edge":p.edgeId,className:"graview-edge-hit",d:`M ${S[0].x} ${S[0].y} ${S.slice(1).map(x=>`L ${x.x} ${x.y}`).join(" ")}`,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:x=>{x.stopPropagation(),l(p.edgeId,{x:x.clientX,y:x.clientY})},onContextMenu:x=>{x.preventDefault(),x.stopPropagation(),l(p.edgeId,{x:x.clientX,y:x.clientY})}}))}return(0,Ne.jsxs)("g",{opacity:p.proxy?.32:.72,children:[(0,Ne.jsx)("path",{"data-graview-tie":p.kind,"data-graview-tie-proxy":p.proxy||void 0,d:A,fill:"none",stroke:Qt(E),strokeWidth:p.proxy?1.1:1.6,strokeDasharray:Mn[E.pattern],strokeLinecap:"round"}),(0,Ne.jsx)("circle",{cx:p.endX,cy:p.endY,r:p.proxy?2:2.6,fill:Qt(E)}),R]},p.key)})})}function mi({nodes:e,scheme:t,width:n,stageRef:r,moving:o=!1,holding:i=!1}){let a=dn(),[d,c]=(0,Xe.useState)([]);(0,Xe.useLayoutEffect)(()=>{o||i||c(l())},[e,o,i,t,n,r]);function l(){let s=[];for(let f of e){if(!f.via||Math.round(f.plane)!==1)continue;let y=ot(r.current,f.id,!1),{scale:w}=et(1,t);s.push({key:`${f.via.edgeKind}|${f.via.direction}`,text:f.via.description??`${f.via.direction==="in"?"\u2190":"\u2192"} ${Wt(f.via.edgeKind).toLowerCase()}`,left:y?.x??f.x,right:y?y.x+y.width:f.x+f.width*w,top:y?.y??f.y})}let u=zn(n);return gi(s,{left:u.left,right:n-u.right})}return d.length===0||!a.captions.visible||o?null:(0,Ne.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:$e.lines},children:d.map(s=>{let{left:u,width:f}=s;return(0,Ne.jsx)("div",{"data-graview-relation":s.key,title:s.text,style:{position:"absolute",left:u,width:f,textAlign:"center",top:Math.max(0,s.top-19),fontSize:"0.75rem",letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:(0,Ne.jsx)("span",{style:{background:"var(--graview-ground)",padding:"1px 7px",borderRadius:4},children:s.text})},s.key)})})}var mt=ae(Ye(),1);var pi=ae(Ye(),1);function Wn(e){let t=e?.closest?.("[data-graview-pick]")?.getAttribute("data-graview-joins");if(!t)return null;try{let n=JSON.parse(t);return Array.isArray(n)&&n.length>0&&n.every(r=>typeof r=="string")?n:null}catch{return null}}function wi(e){(0,pi.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{for(let i of t.querySelectorAll("[data-graview-pick]"))i.getAttribute("tabindex")===null&&i.setAttribute("tabindex","0"),i.getAttribute("role")===null&&Oa(i)&&i.setAttribute("role","button")};if(n(),typeof MutationObserver>"u")return;let r=0,o=new MutationObserver(()=>{r===0&&(r=typeof requestAnimationFrame>"u"?0:requestAnimationFrame(()=>{r=0,n()}),r===0&&n())});return o.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-graview-pick"]}),()=>{o.disconnect(),r!==0&&cancelAnimationFrame(r)}},[e])}var Ra=new Set(["div","span","p","figure","img","td","output","b","i","em","strong","small","canvas","g","polygon","circle","rect","path","ellipse","polyline","line","use"]);function Oa(e){return Ra.has(e.localName.toLowerCase())}var Jt=ae(Re(),1);function xi({node:e,useDom:t,touched:n,frontY:r,centerY:o,screen:i,onDrawnHeight:a,crowded:d,activity:c,scheme:l,canvasWidth:s,canvasHeight:u,selected:f,onSelect:y,onPick:w,onTravel:m,onMenu:g,selection:p,onJackIn:v,onDragStart:E,onDragMove:P,onDragEnd:A,swallowClick:R,children:W}){let{brand:S,store:x,actsDoor:M}=we(),L=e.beyond?`${e.beyond.length} more district${e.beyond.length===1?"":"s"}`:e.aggregate?.opens?.in==="place"?`${e.aggregate.label}, ${wn(x.schema,e.aggregate.kind,e.aggregate.memberIds.length)}`:e.aggregate?e.aggregate.label:(()=>{let k=x.graph.getNode(e.id);return k?Vo(x.schema.tryDefinition(e.kind),k):e.id})(),[z,I]=(0,mt.useState)(null),D=Math.round(e.plane)===0&&!e.aggregate;(0,mt.useLayoutEffect)(()=>{if(!D)return;let k=fe.current;if(!k)return;let T=()=>{let J=[...k.children].find(oe=>oe.dataset.graviewKindtag===void 0);if(!J)return;let q=k.getBoundingClientRect(),te=J.getBoundingClientRect(),ye=k.offsetWidth>0?q.width/k.offsetWidth:1,de={top:Math.round((te.top-q.top)/ye)-9,right:Math.round((q.right-te.right)/ye)+14};I(oe=>oe&&oe.top===de.top&&oe.right===de.right?oe:de)};if(typeof ResizeObserver>"u"){T();return}let $=new ResizeObserver(T);$.observe(k);for(let J of k.children)$.observe(J);return()=>$.disconnect()},[D,e.id]);let B=e.plane-(1-(e.depth??1))*.55,j=Math.max(0,Math.min(2,Math.floor(B))),K=Math.max(0,Math.min(2,Math.ceil(B))),G=j===K?et(j,l):Sn(et(j,l),et(K,l),B-j),V=ir(G,e.x,e.y,s,u),xe=et(Math.max(0,Math.min(2,Math.round(B))),l).blur,fe=(0,mt.useRef)(null);wi(fe);let ee=e.natural,ce=ee?Math.min(e.width/ee.width,e.height/ee.height):1,N=(0,mt.useRef)(null);(0,mt.useEffect)(()=>{if(!i||!a)return;let k=N.current;if(!k||typeof ResizeObserver>"u")return;let T=()=>{let ye=0,de=0;for(let oe of k.children)if(!(!(oe instanceof HTMLElement)||oe.classList.contains("graview-screen-fullscreen"))){ye=Math.max(ye,oe.offsetTop+oe.offsetHeight);for(let Ae of[oe,...oe.querySelectorAll("*")]){let Se=getComputedStyle(Ae).overflowY;(Se==="auto"||Se==="scroll")&&(de+=Ae.scrollHeight-Ae.clientHeight)}}a(ye+de)},$=0,J=()=>{$||($=requestAnimationFrame(()=>{$=0,T()}))};T();let q=new ResizeObserver(J);q.observe(k);for(let ye of k.children)q.observe(ye);let te=new MutationObserver(J);return te.observe(k,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),()=>{$&&cancelAnimationFrame($),q.disconnect(),te.disconnect(),a(void 0)}},[i,a,e.id]);let X=t?{transform:ii(V),transformOrigin:"0 0",filter:xe>0?`blur(${xe}px)`:void 0,opacity:(1-G.falloff*.55)*(e.opacity??1),"--graview-lift-low":ri(G.shadow,l),...r!==void 0?{"--graview-front-y":`${r.toFixed(1)}px`}:{},...o!==void 0?{"--graview-center-y":`${o.toFixed(1)}px`}:{}}:{};return(0,Jt.jsxs)("div",{ref:fe,"data-graview-view":e.id,"data-graview-plane":Math.round(e.plane),"data-graview-selected":f||void 0,"data-graview-touched":n||void 0,"data-graview-plot":r!==void 0?"":void 0,"data-graview-screen":i?"":void 0,"data-graview-record-focus":Math.round(e.plane)===0&&!e.aggregate&&!ee&&!i?"":void 0,"data-graview-nested":e.nestedUnder??void 0,"data-graview-crowded":d||void 0,"data-graview-pinned":e.pinned||void 0,"data-graview-activity":c?c.manner:void 0,"data-graview-wrote":c?.wrote||void 0,"data-graview-read":c&&!c.wrote?!0:void 0,"data-graview-broke":c?.broke||void 0,title:c?`${qr[c.manner]} ${c.wrote?"changed this":"read this"}: ${c.intent}`:e.aggregate&&Math.round(e.plane)!==0?`Open ${e.aggregate.label}`:void 0,role:"group","aria-label":L,"aria-keyshortcuts":M&&!e.beyond?M.key:void 0,tabIndex:0,onPointerDown:E,onPointerMove:P,onPointerUp:A,onPointerCancel:A,onClick:k=>{if(R.current)return;let T=k.target?.closest("input, textarea, select, button, a[href], [contenteditable='true']");if(T&&!T.hasAttribute("data-graview-pick"))return;let $=k.metaKey||k.shiftKey,J=Lt(k.target);if(J&&J!==e.id){k.stopPropagation(),w(J,$,Wn(k.target)??void 0);return}y($)},onKeyDown:k=>{if(M&&!e.beyond&&k.key.toLowerCase()===M.key.toLowerCase()&&!k.metaKey&&!k.ctrlKey&&!k.altKey&&!k.target?.closest("input, textarea, select, [contenteditable='true']")){k.preventDefault(),k.stopPropagation();let te=Lt(k.target)??e.id;p.includes(te)||w(te,!1),M.open(k.target instanceof HTMLElement?k.target:k.currentTarget);return}if(k.key!=="Enter"&&k.key!==" "||k.target?.closest("input, textarea, select, button, [contenteditable='true']"))return;let $=Lt(k.target);if(k.preventDefault(),k.stopPropagation(),!$||$===e.id){p.length===1&&p[0]===e.id&&!k.metaKey&&!k.shiftKey?v():y(k.metaKey||k.shiftKey);return}let J=Wn(k.target);(J?p.length===J.length&&J.every(te=>p.includes(te)):p.length===1&&p[0]===$)&&!k.metaKey&&!k.shiftKey?m($):w($,k.metaKey||k.shiftKey,J??void 0)},onContextMenu:k=>{let T=Lt(k.target);k.preventDefault(),k.stopPropagation();let $=T&&T!==e.id?T:e.id;w($,!1,($===T?Wn(k.target):null)??void 0),g({x:k.clientX,y:k.clientY,on:$})},onDoubleClick:k=>{let T=Lt(k.target);if(T&&T!==e.id){k.stopPropagation(),m(T);return}v()},style:{position:"absolute",...t?{}:{pointerEvents:"none"},zIndex:e.opened?$e.opened:$e.card-Math.round(e.plane),left:t?0:Math.round(e.x),top:t?0:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height),boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",...X},children:[ee?(0,Jt.jsx)("div",{ref:N,"data-graview-natural":`${Math.round(ee.width)}x${Math.round(ee.height)}`,style:{position:"absolute",left:"50%",top:"50%",width:ee.width,height:ee.height,transform:`translate(-50%, -50%) scale(${ce})`,transformOrigin:"50% 50%",display:"flex",flexDirection:"column"},children:W}):W,Math.round(e.plane)===0&&!e.aggregate?(0,Jt.jsxs)("span",{"data-graview-kindtag":"",className:"graview-kind-tag","aria-hidden":"true",style:{...z??{},"--graview-hue":Math.round(Rt(e.kind,S?.accents))},children:[(0,Jt.jsx)("span",{style:{width:9,height:6,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",flex:"0 0 auto",background:`hsl(${Math.round(Rt(e.kind,S?.accents))} 55% var(--graview-tint-lightness) / 0.9)`}}),Ko(x.schema.tryDefinition(e.kind),e.kind)]}):null]})}var ge=ae(Re(),1);var Pa=e=>e?{activity:e}:{},Ca=new Set;function Aa({options:e,renderer:t="auto",attachRenderer:n,className:r,style:o,animate:i=!0,children:a}){let{store:d,scheme:c,views:l,view:s,setView:u,selection:f,setSelection:y,setMenuAt:w,emphasis:m,hiddenKinds:g,registerScene:p,pointer:v,brand:E,noteMoved:P,robots:A,seatTalk:R}=we(),W=no(R),S=sn(),x=(0,Q.useRef)(null),M=(0,Q.useRef)(null),L=oi(M),z=ni(),I=dr(M,z,E),D=(0,Q.useMemo)(()=>b=>qt(b,132,I),[I]),{zoomAbout:B,panBy:j}=Xr({stage:M,view:s,setView:u}),K=It(),G=ro(),V=(0,Q.useMemo)(()=>{let b={};for(let O of G){if(O.subjectId===void 0)continue;let _=b[O.subjectId]??=[];for(let H of O.nodeIds)H!==O.subjectId&&!_.includes(H)&&_.push(H)}return b},[G]),xe=(s.overview??!1)&&s.within?.view!==void 0?1.5:1,[fe,ee]=(0,Q.useState)(1),ce=(0,Q.useRef)(1);(0,Q.useEffect)(()=>{s.overview||(ce.current=1,ee(1))},[s.overview]);let N=xe*fe,[X,k]=(0,Q.useState)(void 0),T=(0,Q.useCallback)(b=>{k(O=>{let _=b===void 0?void 0:Math.round(b);return O===_?O:_})},[]),$=(0,Q.useMemo)(()=>({flagged:new Set(G.flatMap(b=>b.nodeIds)),touched:Uo(d.log.all())}),[G,d,K]),J=(0,Q.useMemo)(()=>({hits:S?kn(S):Ca,...$}),[S,$]),q=(0,Q.useMemo)(()=>({...e,cityZoom:N,...X!==void 0?{screenHeight:X}:{},...g.size>0?{hiddenKinds:[...g].sort()}:{},...Object.keys(V).length>0?{judged:V}:{},relevance:J,inset:zn(L?.width??1200),unit:z,plainGroups:d.schema.kinds.filter(b=>or(l.lookup(b,{cardinality:"many",fidelity:"full"}))),cityOrder:qo(Qo({name:"scene",schema:d.schema,mutations:d.allMutations().filter(b=>!b.derived)}).order.map(b=>b.kind),l.arrangement?.()?.order),screens:l.places().reduce((b,O)=>((b[O.kind]??=[]).push({as:O.as,title:O.title,...O.across?{across:O.across}:{}}),b),{}),nameWidth:I,...L?{width:L.width,height:W?Math.max(0,L.height-64):L.height}:{}}),[e,L,z,d,l,g,V,J,N,X,I,W]),[te,ye]=(0,Q.useState)({x:0,y:0}),de=(0,Q.useMemo)(()=>({x:(s.pan?.x??0)+te.x,y:(s.pan?.y??0)+te.y}),[s.pan,te]),oe=(0,Q.useMemo)(()=>te.x===0&&te.y===0?s:ut(s,de),[s,te,de]),Ae=(0,Q.useRef)(te);Ae.current=te;let Se=(0,Q.useCallback)((b,O)=>{let _=Ae.current,H=(F,U)=>({low:Math.min(-F,U),high:Math.max(F,U)}),h=H(b.x,_.x),C=H(b.y,_.y);return{x:Math.max(h.low,Math.min(h.high,O.x+_.x))-_.x,y:Math.max(C.low,Math.min(C.high,O.y+_.y))-_.y}},[]),it=(0,Q.useMemo)(()=>new Set(Object.keys(s.pins)),[s.pins]),_e=Kr(),me=_e.held,Oe=me!==null&&!(s.overview??!1),He=Oe?null:me,qe=(0,Q.useMemo)(()=>{let b=s.pan?{...s,pan:void 0}:s;return He?Ut(b,He.id,{x:He.x,y:He.y}):b},[s,He]),Te=(0,Q.useMemo)(()=>In(d.graph,d.schema,qe,q),[d,qe,q,K]),pt=(0,Q.useMemo)(()=>me&&Oe?ko(Te,me.id,{x:me.x,y:me.y})??In(d.graph,d.schema,Ut(qe,me.id,{x:me.x,y:me.y}),q):Te,[Te,me,Oe,d,qe,q]),ne=(0,Q.useMemo)(()=>So(pt,oe.pan??{x:0,y:0}),[pt,oe.pan]),Qe=.6,at=3;B.current=(b,O,_)=>{if(!(s.overview??!1))return;ie.current();let H=ce.current,h=Math.max(Qe,Math.min(at,H*b));if(Math.abs(h-H)<1e-4)return;ce.current=h,Me(),ee(h);let C=M.current?.getBoundingClientRect(),F={x:ne.width/2,y:ne.height/2},U=C&&O!==void 0&&_!==void 0?{x:O-C.left,y:_-C.top}:F,le=h/H;u(Ve=>ut(Ve,vo(Ve.pan??{x:0,y:0},Ae.current,U,F,le))),P()},j.current=(b,O)=>{Me();let _=ft(ne),H=s.pan??{x:0,y:0};if(Ft){let h=Le.offset();Le.shiftTo(Se(_,{x:H.x+h.x+b,y:H.y+h.y+O}),H)}else u(h=>ut(h,Se(_,{x:(h.pan?.x??0)+b,y:(h.pan?.y??0)+O})));P()};let[De,Ze]=(0,Q.useState)(!1),[st,Fe]=(0,Q.useState)(!1),dt=(0,Q.useRef)(null),ie=(0,Q.useRef)(()=>!1),Me=(0,Q.useCallback)(()=>{Fe(!0),dt.current&&clearTimeout(dt.current),dt.current=setTimeout(()=>{dt.current=null,!ie.current()&&Fe(!1)},160)},[]),lt=(0,Q.useRef)(!1),ze=L!==null&&!lt.current;(0,Q.useEffect)(()=>{L!==null&&(lt.current=!0)},[L]);let Z=Hr(ne,{enabled:i&&!De&&!st&&L!==null&&!ze}),{motion:wt}=we();(0,Q.useEffect)(()=>wt.set(De||st||Z.t<1),[wt,De,st,Z]);let ct=Dr(),fn=Fr(),en=ne.nodes.find(b=>b.screenOf!==void 0)?.id??null,tn=Yr({view:s,result:ne,frame:Z,panned:de,closer:xe,screenId:en,setCamera:ye}),nn=(0,Q.useRef)(Z);nn.current=Z,(0,Q.useEffect)(()=>(p({whereIs:b=>cn(nn.current,M.current,c,l,b)}),()=>p(null)),[p,c,l]),(0,Q.useEffect)(()=>v.onActive(b=>{let O=M.current;if(!O)return;let _=h=>{let C=O.getBoundingClientRect();v.set({x:h.clientX-C.left,y:h.clientY-C.top})},H=()=>v.set(null);b?(O.addEventListener("pointermove",_),O.addEventListener("pointerleave",H),O.__graviewPointer=()=>{O.removeEventListener("pointermove",_),O.removeEventListener("pointerleave",H)}):(O.__graviewPointer?.(),delete O.__graviewPointer)}),[v]),(0,Q.useEffect)(()=>{if(t==="dom")return;let b=x.current;if(!b||!n)return;let O=new Set;for(let H of Z.nodes)(ct.has(H.id)||H.aggregate?.memberIds.some(h=>ct.has(h)))&&O.add(H.id);let _=n({canvas:b,layout:Z,dirty:O,hostOf:H=>b.querySelector(`[data-graview-view="${CSS.escape(H)}"]`)});return()=>{_?.()}},[t,n,Z,ct]);let Ft=t==="dom"||t==="auto"&&!n,xt=sr(),We=b=>{let O=b?xt.get(b.id):void 0,_=b?.aggregate?.memberIds??[];if(!O&&_.length===0)return;let H=O,h=O?.wrote??!1,C=O?.read??!1,F=O?.broke??!1;for(let U of _){let le=xt.get(U);le&&(h||=le.wrote,C||=le.read,F||=le.broke,(!H||le.at>H.at||le.at===H.at&&le.wrote&&!H.wrote)&&(H=le))}return H?{...H,wrote:h,read:C,broke:F}:void 0},Le=Gr({stage:M,pan:s.pan,setView:u,settled:()=>{Ze(!1),Fe(!1)}});ie.current=Le.settle;let{onGroundDown:gn,onCardDown:on,onDragMove:yn,onDragUp:bt,swallow:Bt}=Ur({view:s,panned:de,limit:()=>ft(ne),panWithin:Se,moveByTransform:Ft,setView:u,setDragging:Ze,noteMoved:P,shift:Le,district:_e}),Vn=80,jt=b=>Math.round(b.plane)===1&&(b.compact===!0||b.width<175||b.height<Vn),rn=b=>{if(Be(b.id)===null&&!b.aggregate)return!1;let O=l.resolve(b.kind,{cardinality:"many",fidelity:"full"})?.view;return O!==void 0&&O.generic!==!0},Mt=Z.nodes.map(b=>(0,ge.jsxs)(xi,{node:b,crowded:jt(b),useDom:Ft,...b.plot&&Z.city&&Math.round(b.plane)===2?{frontY:Z.city.originY+de.y+ke(b.plot.col+b.plot.side/2,b.plot.row+b.plot.side,Z.city.cell).y-b.y,centerY:Z.city.originY+de.y+ke(b.plot.col+b.plot.side/2,b.plot.row+b.plot.side/2,Z.city.cell).y-b.y}:{},...b.screenOf!==void 0?{screen:!0,...b.id===en?{onDrawnHeight:T}:{}}:{},touched:ct.has(b.id),...Pa(We(b)),scheme:c,canvasWidth:ne.width,canvasHeight:ne.height,selected:f.includes(b.id),onSelect:O=>{if(Xt(b.id)){y(H=>O?H.includes(b.id)?H.filter(h=>h!==b.id):[...H,b.id]:[b.id]);return}let _=b.aggregate?an(b.id):[];if(s.overview){y(H=>O?[...new Set([...H,b.id])]:[b.id]);return}if(_.length===1&&!O&&Math.round(b.plane)!==0){let H=_[0];u(h=>qn(h,h.relation===H?null:H));return}y(H=>Ao(b,H,O))},onPick:(O,_,H)=>y(h=>H?_?[...new Set([...h,...H])]:[...H]:_?h.includes(O)?h.filter(C=>C!==O):[...h,O]:[O]),onTravel:O=>{u(_=>({...Et(_,O),relation:null})),y([O])},onMenu:w,selection:f,onJackIn:()=>{let O=b.aggregate?.opens;if(O){O.in==="place"?u(h=>Zn(h,b.id)):u(h=>Object.entries(O.within).reduce((C,[F,U])=>Qn(C,F,U),Et(Gt(h,!1),O.focus))),y([]);return}let _=Be(b.id),H=_!==null&&(S?.byKind[_]??0)>0;u(h=>Jn(h,b.id,{ownPicture:rn(b),...H&&h.q?{carry:h.q}:{}})),y(b.aggregate?[]:[b.id])},onDragStart:O=>on(b,O),onDragMove:yn,onDragEnd:bt,swallowClick:Bt,children:[b.screenOf!==void 0?(0,ge.jsxs)("div",{className:"graview-screen-grip","data-graview-grip":b.id,"data-testid":"screen-grip",title:"Move this picture \u2014 it stays by its own village",children:[(0,ge.jsx)("span",{className:"graview-screen-title","aria-hidden":"true",children:l.places().find(O=>O.as===s.within?.view&&O.kind===b.screenOf)?.title??""}),(0,ge.jsx)("button",{type:"button",className:"graview-screen-fullscreen","data-testid":"screen-fullscreen",title:"Open this picture on its own \u2014 leave the graview with it",onClick:O=>{O.stopPropagation(),u(_=>Gt(_,!1))},onPointerDown:O=>O.stopPropagation(),onDoubleClick:O=>O.stopPropagation(),children:"Open \u2197"})]}):null,b.beyond?(0,ge.jsx)(Zr,{kinds:b.beyond}):b.aggregate?.opens?(0,ge.jsx)(ti,{node:b}):(0,ge.jsx)(Jr,{node:b,mode:"scene",selected:f.includes(b.id),...jt(b)?{fidelity:"glyph"}:{}})]},b.id));return(0,ge.jsx)(lr.Provider,{value:D,children:(0,ge.jsxs)("div",{ref:M,className:`graview-ground${r?` ${r}`:""}`,"data-graview-altitude":s.overview?"":void 0,"data-graview-reach":Z.city?`${Math.round(ft(ne).x)} ${Math.round(ft(ne).y)}`:void 0,"data-graview-settled":Z.t>=1&&!tn.gliding()?"":void 0,onPointerDown:gn,onPointerMove:yn,onPointerUp:bt,onPointerCancel:bt,onClick:b=>{Bt.current||b.target.closest("[data-graview-view], button, aside, section[aria-label], [data-graview-offstage], a, input, select")||(y([]),w(null))},style:{position:"relative",width:"100%",height:"100%",cursor:De?"grabbing":"grab",touchAction:"none","--graview-altitude":s.overview?1:0,...Z.city?{"--graview-lattice-cell":`${Z.city.cell.toFixed(2)}px`,"--graview-lattice-x":`${(Z.city.originX+Z.city.pan.x).toFixed(1)}px`,"--graview-lattice-y":`${(Z.city.originY+Z.city.pan.y).toFixed(1)}px`}:{},...De?{userSelect:"none"}:{},overflow:"hidden",...o},children:[(0,ge.jsx)(jr,{frame:Z,width:ne.width,height:ne.height,pan:Z.city?Z.city.pan:de,brand:E,pinned:it,swallowed:Bt,onFocus:b=>{let O=Be(b);O!==null&&u(_=>Et(_,Ce(O)))}}),Ft?(0,ge.jsx)("div",{"data-graview-stage":"dom","data-graview-world":"",style:{position:"relative",zIndex:$e.stage,width:ne.width,height:ne.height,overflow:"hidden"},children:Mt}):(0,ge.jsx)("canvas",{ref:x,"data-graview-stage":"gpu",layoutsubtree:"",width:ne.width,height:ne.height,style:{display:"block",position:"relative",zIndex:$e.stage,width:ne.width,height:ne.height},children:Mt}),s.overview&&!De?(0,ge.jsx)(Vr,{result:ne,schema:d.schema,onGo:b=>{let O=ft(ne);u(_=>ut(_,Se(O,{x:(_.pan?.x??0)+b.x,y:(_.pan?.y??0)+b.y}))),P()}}):null,s.overview?(0,ge.jsxs)("div",{className:"graview-zoom","data-graview-foot":"",role:"group","aria-label":"Zoom",onPointerDown:b=>b.stopPropagation(),onClick:b=>b.stopPropagation(),children:[(0,ge.jsx)("button",{type:"button",className:"graview-zoom-button","data-testid":"zoom-out","aria-label":"Zoom out",title:"Zoom out \u2014 or pinch, or ctrl+wheel",disabled:fe<=Qe+1e-6,onClick:()=>B.current(1/1.25),children:"\u2212"}),(0,ge.jsxs)("span",{className:"graview-zoom-level","data-testid":"zoom-level","aria-live":"polite",children:[Math.round(fe*100),"%"]}),(0,ge.jsx)("button",{type:"button",className:"graview-zoom-button","data-testid":"zoom-in","aria-label":"Zoom in",title:"Zoom in \u2014 or pinch, or ctrl+wheel",disabled:fe>=at-1e-6,onClick:()=>B.current(1.25),children:"+"})]}):null,(0,ge.jsx)(yi,{frame:Z,holding:Oe,width:ne.width,height:ne.height,scheme:c,overview:s.overview??!1,selection:f,emphasis:m,stageRef:M,store:d,graphNodes:K,onPickEdge:(b,O)=>{Bt.current||(y([b]),w(O?{...O,on:b}:null))},liveOf:b=>{let O=We(Z.nodes.find(H=>H.id===b.from)),_=We(Z.nodes.find(H=>H.id===b.to));return O?.wrote&&_?.wrote?O.at>_.at?O:_:void 0}}),(0,ge.jsx)(_r,{width:ne.width,whereIs:b=>cn(Z,M.current,c,l,b)}),(0,ge.jsx)(Br,{marks:fn.marks,questions:[...A.values()].filter(b=>b.mode==="asking"&&b.at!==null&&b.say).map(b=>({id:b.at,who:b.who,asks:b.say})),whereIs:b=>cn(Z,M.current,c,l,b),stageRef:M,width:ne.width,height:ne.height}),(0,ge.jsx)(mi,{nodes:Z.nodes,moving:Z.t<1,holding:Oe,scheme:c,width:ne.width,stageRef:M}),a]})})}var rt=ae(Ye(),1);function La(){return Si(),null}var ki=()=>window.location.pathname.endsWith(Xo),bi=()=>(ki()?Jo:Xn)(window.location.hash),Ia=e=>(ki()?er:Un)(e);function Si(){let{view:e,setView:t,views:n,principal:r}=we(),o=JSON.stringify(r),i=(0,rt.useCallback)(s=>{let u=s.within?.view;if(u===void 0||s.focusId)return s;let f=n.places().find(y=>y.as===u);return f?{...s,focusId:Ce(f.kind)}:s},[n]),a=(0,rt.useRef)(!1);(0,rt.useEffect)(()=>{if(typeof window>"u")return;let s=i(bi());!xn(s,Gn)&&!xn(s,e)&&(a.current=!0,t(s))},[]),(0,rt.useEffect)(()=>{if(typeof window>"u")return;let s=()=>t(i(bi()));return window.addEventListener("popstate",s),window.addEventListener("hashchange",s),()=>{window.removeEventListener("popstate",s),window.removeEventListener("hashchange",s)}},[t,i]);let d=(0,rt.useRef)(!1),c=(0,rt.useRef)(null),l=(0,rt.useRef)(o);(0,rt.useEffect)(()=>{if(typeof window>"u")return;if(a.current){a.current=!1;return}let s=l.current!==o;l.current=o;let u=Ia(e),f=u||`${window.location.pathname}${window.location.search}`;if((window.location.hash||(window.location.href.includes("#")?"#":""))===u){d.current=!0,c.current=e;return}if(!d.current){d.current=!0,c.current=e,window.history.replaceState({graview:Nt.at},"",f);return}if(s||Mi(c.current,e)){window.history.replaceState({graview:Nt.at},"",f),c.current=e;return}c.current=e,window.history.pushState({graview:++Nt.at},"",f),Nt.depth=Nt.at,Nt.tell()},[e,o])}function Mi(e,t){return e?e.focusId===t.focusId&&e.relation===t.relation&&(e.overview??!1)===(t.overview??!1)&&(e.zoom??!1)===(t.zoom??!1)&&(e.past??!1)===(t.past??!1)&&e.expanded.join(",")===t.expanded.join(",")&&(e.shown??[]).join(",")===(t.shown??[]).join(",")&&Na(e.within,t.within):!1}function Na(e,t){let n=r=>Object.entries(r??{}).sort(([o],[i])=>o.localeCompare(i)).map(([o,i])=>`${o}=${i}`).join("&");return n(vi(e))===n(vi(t))}function vi(e){if(!e||!("q"in e))return e;let{q:t,...n}=e;return n}var Ho=ae(Ye(),1);function Ta(e={}){let{store:t,selection:n,principal:r,providers:o}=we(),{about:i,...a}=e,d=i??n,c=It();return(0,Ho.useMemo)(()=>{let l=[...new Set(d.flatMap(u=>an(u)))],s=d.map(u=>Ot(u)).filter(u=>u!==null);return fr(t,d,{principal:r,kindSelection:l,edgeSelection:s,...o?{providers:o}:{},...a})},[t,d,e,c,r,o])}function $a(){let{store:e,principal:t}=we();return(0,Ho.useMemo)(()=>({preview:(n,r)=>yr(e,n,r??{}),apply:(n,r)=>gr(e,n,r??{},{author:t})}),[e,t])}export{Ai as a,Yi as b,Ki as c,Gi as d,Ui as e,Xi as f,qi as g,Aa as h,La as i,Ta as j,$a as k};