graview 0.1.37 → 0.1.39

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 (203) hide show
  1. package/dist/preview/chunk.23WYWIAJ.js +1 -0
  2. package/dist/preview/chunk.2BJRS3YJ.js +3 -0
  3. package/dist/preview/{chunk.MJLUAGEV.js → chunk.2GGDOFTF.js} +1 -1
  4. package/dist/preview/chunk.2HF54MYG.js +1 -0
  5. package/dist/preview/{chunk.X2OLXTRL.js → chunk.2IX3CZNP.js} +1 -1
  6. package/dist/preview/chunk.2NSTEREJ.js +1 -0
  7. package/dist/preview/{chunk.57XTDW57.js → chunk.2RCNSHXK.js} +1 -1
  8. package/dist/preview/chunk.37ASLBGE.js +1 -0
  9. package/dist/preview/chunk.3ZNQ5YKX.js +1 -0
  10. package/dist/preview/{chunk.QYWBQ5NX.js → chunk.4BBJ62ZO.js} +1 -1
  11. package/dist/preview/chunk.4ECICQ2S.js +1 -0
  12. package/dist/preview/{chunk.JBRXGPPM.js → chunk.4PNFX3TX.js} +1 -1
  13. package/dist/preview/{chunk.6DYZBDWT.js → chunk.546WEHEX.js} +1 -1
  14. package/dist/preview/chunk.57OPL5WD.js +1 -0
  15. package/dist/preview/{chunk.5CLFTXP3.js → chunk.5JPRFXYQ.js} +1 -1
  16. package/dist/preview/chunk.5OJJ2TKZ.js +9 -0
  17. package/dist/preview/chunk.5R4E5C76.js +1 -0
  18. package/dist/preview/{chunk.YAXOIJVH.js → chunk.5XNVN4HE.js} +1 -1
  19. package/dist/preview/chunk.5ZMENPY4.js +5 -0
  20. package/dist/preview/{chunk.74DXEKUV.js → chunk.67USHK26.js} +1 -1
  21. package/dist/preview/chunk.6CFP5UYP.js +1 -0
  22. package/dist/preview/{chunk.JDRM6XXD.js → chunk.6DHHUBSC.js} +1 -1
  23. package/dist/preview/chunk.6HBEYRJU.js +1 -0
  24. package/dist/preview/chunk.6L7IDF3J.js +1 -0
  25. package/dist/preview/{chunk.UV2TSAB4.js → chunk.6XU2CXRZ.js} +1 -1
  26. package/dist/preview/chunk.7EFNLMKU.js +1 -0
  27. package/dist/preview/chunk.7WSXVXP3.js +1 -0
  28. package/dist/preview/chunk.ALDLAQ7V.js +1 -0
  29. package/dist/preview/chunk.AYHCQWSU.js +1 -0
  30. package/dist/preview/{chunk.FGYCYLUS.js → chunk.B2IRADR2.js} +1 -1
  31. package/dist/preview/{chunk.SZMWJHU2.js → chunk.B7TB6YRZ.js} +1 -1
  32. package/dist/preview/chunk.BCHHBGM6.js +1 -0
  33. package/dist/preview/chunk.BEC5ZH2L.js +1 -0
  34. package/dist/preview/chunk.BL4S3I2N.js +1 -0
  35. package/dist/preview/chunk.BS3FX4PX.js +1 -0
  36. package/dist/preview/chunk.BTSXYZ6Z.js +25 -0
  37. package/dist/preview/chunk.BYKR7NEE.js +1 -0
  38. package/dist/preview/chunk.BZSU4HH2.js +1 -0
  39. package/dist/preview/chunk.C2OAKTZX.js +1 -0
  40. package/dist/preview/chunk.C4CFYTCW.js +1 -0
  41. package/dist/preview/{chunk.QJYALCIW.js → chunk.C6X7CKU6.js} +1 -1
  42. package/dist/preview/chunk.CAMQ7MYJ.js +1 -0
  43. package/dist/preview/{chunk.LJE5J3JK.js → chunk.CC47O2DW.js} +1 -1
  44. package/dist/preview/{chunk.TRLVFHFT.js → chunk.CF7DHTKL.js} +2 -2
  45. package/dist/preview/{chunk.CV4CBHFT.js → chunk.CMN6VVK2.js} +1 -1
  46. package/dist/preview/chunk.CTK2P4JV.js +3 -0
  47. package/dist/preview/chunk.DAA7IDQ4.js +1 -0
  48. package/dist/preview/{chunk.TSI4O3GH.js → chunk.DYNBWIPF.js} +1 -1
  49. package/dist/preview/chunk.E3HXXUKY.js +1 -0
  50. package/dist/preview/{chunk.KAWP4RNR.js → chunk.EBHKKOPO.js} +1 -1
  51. package/dist/preview/chunk.EDC4EMIX.js +1 -0
  52. package/dist/preview/chunk.EM4Y4YAD.js +2 -0
  53. package/dist/preview/{chunk.GMZAQGH7.js → chunk.EWWJMS6G.js} +1 -1
  54. package/dist/preview/chunk.F5UVEF2R.js +1 -0
  55. package/dist/preview/{chunk.5JPRRV47.js → chunk.FCXBCKED.js} +1 -1
  56. package/dist/preview/chunk.FGDHEVH4.js +1 -0
  57. package/dist/preview/chunk.FILCNVGH.js +2 -0
  58. package/dist/preview/chunk.FJBQ4UP3.js +32 -0
  59. package/dist/preview/{chunk.EKUAI5YL.js → chunk.FMN5XDLE.js} +1 -1
  60. package/dist/preview/chunk.G23VFYGF.js +88 -0
  61. package/dist/preview/chunk.G46WGK5E.js +1 -0
  62. package/dist/preview/chunk.GAFYE37S.js +3 -0
  63. package/dist/preview/{chunk.TN4GY6LW.js → chunk.GP2F7TIN.js} +1 -1
  64. package/dist/preview/chunk.GXKECZ4S.js +19 -0
  65. package/dist/preview/{chunk.NOZEHLWG.js → chunk.H5CZZZLX.js} +1 -1
  66. package/dist/preview/{chunk.CGQLE7JW.js → chunk.HA3PPIEQ.js} +1 -1
  67. package/dist/preview/chunk.HFDYFPMJ.js +1 -0
  68. package/dist/preview/chunk.HFYUAK5Z.js +6 -0
  69. package/dist/preview/chunk.HGS32FT2.js +1 -0
  70. package/dist/preview/chunk.HHUCPVG5.js +1 -0
  71. package/dist/preview/chunk.I7CU2E3C.js +7 -0
  72. package/dist/preview/{chunk.3V2M3S4U.js → chunk.IAZRY42B.js} +1 -1
  73. package/dist/preview/{chunk.UPBUF7KR.js → chunk.ITEF3U2E.js} +1 -1
  74. package/dist/preview/{chunk.SNKOPWAD.js → chunk.IXYBIDAN.js} +1 -1
  75. package/dist/preview/{chunk.NZJZIYDK.js → chunk.J3M2MZHG.js} +1 -1
  76. package/dist/preview/{chunk.YX354FRV.js → chunk.JBTU2PJ4.js} +1 -1
  77. package/dist/preview/chunk.JCR3ECUM.js +1 -0
  78. package/dist/preview/{chunk.XS3SAH6U.js → chunk.JEZTPXEB.js} +1 -1
  79. package/dist/preview/chunk.KIJCOW25.js +1 -0
  80. package/dist/preview/{chunk.YFW5BF6J.js → chunk.KJNUZYXS.js} +1 -1
  81. package/dist/preview/chunk.L7DQKPJV.js +117 -0
  82. package/dist/preview/{chunk.UCVZG7S4.js → chunk.LCYMYLOP.js} +1 -1
  83. package/dist/preview/chunk.LP2DJ5ZB.js +6 -0
  84. package/dist/preview/chunk.LP3QUPCE.js +1 -0
  85. package/dist/preview/chunk.M5QFUGGG.js +1 -0
  86. package/dist/preview/chunk.N2SV3KX7.js +1 -0
  87. package/dist/preview/chunk.N7N5OFPL.js +1 -0
  88. package/dist/preview/{chunk.BA3REPV5.js → chunk.NG3YMQ36.js} +1 -1
  89. package/dist/preview/{chunk.7OLVQ2FZ.js → chunk.NSNGPQGT.js} +1 -1
  90. package/dist/preview/chunk.OJKS3UQS.js +1 -0
  91. package/dist/preview/{chunk.UR5TT4JH.js → chunk.OM5CDW2S.js} +1 -1
  92. package/dist/preview/chunk.ORXFUK6F.js +344 -0
  93. package/dist/preview/chunk.OXTUXWMU.js +1 -0
  94. package/dist/preview/chunk.OYMM2UWE.js +1 -0
  95. package/dist/preview/chunk.P3JYH6HO.js +1 -0
  96. package/dist/preview/{chunk.AWRS6TUN.js → chunk.P4WYBSYA.js} +1 -1
  97. package/dist/preview/chunk.P5325GYR.js +1 -0
  98. package/dist/preview/chunk.PMER4LVT.js +1 -0
  99. package/dist/preview/chunk.PONWLTTB.js +1 -0
  100. package/dist/preview/chunk.PXQVXBNG.js +1 -0
  101. package/dist/preview/chunk.QCF6Z2AZ.js +1 -0
  102. package/dist/preview/chunk.QEXXLWEU.js +6 -0
  103. package/dist/preview/chunk.QMFUPTR4.js +1 -0
  104. package/dist/preview/chunk.RM7NVN7B.js +3 -0
  105. package/dist/preview/{chunk.RPOYSIVQ.js → chunk.ROINZMNO.js} +1 -1
  106. package/dist/preview/chunk.ROKRQRID.js +35 -0
  107. package/dist/preview/chunk.RWB4235L.js +1 -0
  108. package/dist/preview/chunk.RXSHFG6S.js +1 -0
  109. package/dist/preview/chunk.SDO3U72B.js +1 -0
  110. package/dist/preview/chunk.SHNYYBNW.js +1 -0
  111. package/dist/preview/{chunk.HYAKRLPT.js → chunk.SK33IHL2.js} +3 -3
  112. package/dist/preview/chunk.STBJV6HJ.js +1 -0
  113. package/dist/preview/chunk.TCUB6IDY.js +1 -0
  114. package/dist/preview/chunk.TJCTTJWE.js +1 -0
  115. package/dist/preview/{chunk.WVEKYJSI.js → chunk.TU4KG22J.js} +6 -6
  116. package/dist/preview/chunk.U4E5GQTK.js +1 -0
  117. package/dist/preview/{chunk.4NCXMVPY.js → chunk.U7QMA4H7.js} +1 -1
  118. package/dist/preview/chunk.UB3O3QJQ.js +2 -0
  119. package/dist/preview/{chunk.ENJKCSNX.js → chunk.UCZR33MK.js} +1 -1
  120. package/dist/preview/chunk.UGCNMAPC.js +1 -0
  121. package/dist/preview/chunk.UIUHGA6W.js +1 -0
  122. package/dist/preview/chunk.VC4JPG7O.js +1 -0
  123. package/dist/preview/{chunk.YNJOLOFG.js → chunk.W4OX4BMP.js} +1 -1
  124. package/dist/preview/chunk.WJQY4E45.js +1 -0
  125. package/dist/preview/chunk.WQPNGBR7.js +1 -0
  126. package/dist/preview/chunk.WTZOOAIW.js +1 -0
  127. package/dist/preview/chunk.WXYUWBKX.js +1 -0
  128. package/dist/preview/chunk.XBOZTQQA.js +1 -0
  129. package/dist/preview/chunk.XLI44BBI.js +17 -0
  130. package/dist/preview/chunk.XLZ2QRRS.js +1 -0
  131. package/dist/preview/chunk.XQTMO5PW.js +1 -0
  132. package/dist/preview/chunk.YWVOACSX.js +5 -0
  133. package/dist/preview/{chunk.BXWO6ILK.js → chunk.YXGI7H4Y.js} +1 -1
  134. package/dist/preview/{chunk.UVLPVHID.js → chunk.Z7JRBKA7.js} +1 -1
  135. package/dist/preview/chunk.ZR5KVYWZ.js +21 -0
  136. package/dist/preview/{chunk.WNMLA4YW.js → chunk.ZTMDU3OH.js} +1 -1
  137. package/dist/preview/index.html +45 -42
  138. package/dist/preview/page.js +7 -7
  139. package/package.json +6 -6
  140. package/dist/preview/chunk.24E4R4ZH.js +0 -1
  141. package/dist/preview/chunk.2JF254FO.js +0 -9
  142. package/dist/preview/chunk.2TDB4D6Y.js +0 -1
  143. package/dist/preview/chunk.3IVVXVG7.js +0 -1
  144. package/dist/preview/chunk.3KJQXYCA.js +0 -1
  145. package/dist/preview/chunk.5EXYDBAL.js +0 -88
  146. package/dist/preview/chunk.67PVRVAC.js +0 -1
  147. package/dist/preview/chunk.6SK2K72G.js +0 -1
  148. package/dist/preview/chunk.76QUEWYD.js +0 -1
  149. package/dist/preview/chunk.7MMNMZLF.js +0 -1
  150. package/dist/preview/chunk.7UQOXYJX.js +0 -1
  151. package/dist/preview/chunk.AHC4EXLW.js +0 -3
  152. package/dist/preview/chunk.AZ333RB3.js +0 -1
  153. package/dist/preview/chunk.BRBY5WJT.js +0 -3
  154. package/dist/preview/chunk.CYPTJNES.js +0 -1
  155. package/dist/preview/chunk.D2ILIAND.js +0 -1
  156. package/dist/preview/chunk.DLCFCMKX.js +0 -1
  157. package/dist/preview/chunk.DMUUYZ37.js +0 -1
  158. package/dist/preview/chunk.DNNL7F3P.js +0 -25
  159. package/dist/preview/chunk.EHT4HBH5.js +0 -35
  160. package/dist/preview/chunk.ELY2RMGE.js +0 -19
  161. package/dist/preview/chunk.ENEOGGFM.js +0 -1
  162. package/dist/preview/chunk.FEPYKPZE.js +0 -1
  163. package/dist/preview/chunk.FFW6XWHB.js +0 -17
  164. package/dist/preview/chunk.G7S7GLDK.js +0 -1
  165. package/dist/preview/chunk.GXPBRYSR.js +0 -1
  166. package/dist/preview/chunk.H4LFJPDV.js +0 -1
  167. package/dist/preview/chunk.HBBVVALN.js +0 -5
  168. package/dist/preview/chunk.HCK4Y6C5.js +0 -1
  169. package/dist/preview/chunk.HSRGYZOR.js +0 -1
  170. package/dist/preview/chunk.IHBIRAC4.js +0 -2
  171. package/dist/preview/chunk.IWK5QL6P.js +0 -1
  172. package/dist/preview/chunk.J2HQEUYA.js +0 -1
  173. package/dist/preview/chunk.JFLUVZNW.js +0 -1
  174. package/dist/preview/chunk.LPJY6V5D.js +0 -1
  175. package/dist/preview/chunk.LVLAS5GL.js +0 -1
  176. package/dist/preview/chunk.LVNAB2BW.js +0 -27
  177. package/dist/preview/chunk.LYJXX6BU.js +0 -2
  178. package/dist/preview/chunk.MKPJKZAP.js +0 -1
  179. package/dist/preview/chunk.MMBMVHIG.js +0 -1
  180. package/dist/preview/chunk.NNNVB6RV.js +0 -1
  181. package/dist/preview/chunk.NV6IZJKA.js +0 -1
  182. package/dist/preview/chunk.NWHFFOXW.js +0 -1
  183. package/dist/preview/chunk.O6KNGFWH.js +0 -1
  184. package/dist/preview/chunk.PMK73A53.js +0 -1
  185. package/dist/preview/chunk.PQPZZ7ZW.js +0 -117
  186. package/dist/preview/chunk.QMZUKAPJ.js +0 -1
  187. package/dist/preview/chunk.QNGFBJWP.js +0 -1
  188. package/dist/preview/chunk.QOXTBRKE.js +0 -1
  189. package/dist/preview/chunk.QXARGANF.js +0 -341
  190. package/dist/preview/chunk.TX5QIZEP.js +0 -1
  191. package/dist/preview/chunk.TXS4I326.js +0 -1
  192. package/dist/preview/chunk.U4URQDC5.js +0 -1
  193. package/dist/preview/chunk.VUKHDZNI.js +0 -1
  194. package/dist/preview/chunk.VW6WGFL6.js +0 -1
  195. package/dist/preview/chunk.VX7MGVP5.js +0 -1
  196. package/dist/preview/chunk.WLV2QYTS.js +0 -1
  197. package/dist/preview/chunk.WNKRXL3O.js +0 -1
  198. package/dist/preview/chunk.XWJ2MRQF.js +0 -1
  199. package/dist/preview/chunk.Y44TR4WG.js +0 -1
  200. package/dist/preview/chunk.YW2BZ2LH.js +0 -6
  201. package/dist/preview/chunk.ZB7GV3IT.js +0 -1
  202. package/dist/preview/chunk.ZOT4V66Q.js +0 -3
  203. package/dist/preview/chunk.ZYPCE2LZ.js +0 -1
@@ -1,4 +1,4 @@
1
- var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as $t,f as Ht,g as yn}from"./chunk.QJYALCIW.js";import{h as Fr}from"./chunk.6SK2K72G.js";import{e as Hr,p as Nn,q as Dr}from"./chunk.NNNVB6RV.js";import{a as Pe,b as So,c as Zt,d as jr,e as Mo}from"./chunk.AWRS6TUN.js";import{b as gn}from"./chunk.KAWP4RNR.js";import{a as $r}from"./chunk.UPBUF7KR.js";import{a as Cr,b as Nr,c as Br}from"./chunk.NZJZIYDK.js";import{b as Rr,d as Er}from"./chunk.UT6642FC.js";import{a as Or,b as xo,c as wo,f as bo,g as vo,h as ko,i as Ar,j as Xt,k as qt,o as Bt,p as Qt,q as Tr,r as Pr}from"./chunk.GXPBRYSR.js";import{a as Lr,b as Ir}from"./chunk.NV6IZJKA.js";import{A as Sr,f as fr,g as Kt,h as mr,i as yr,j as gr,k as pr,m as Cn,n as fn,o as mn,p as Ut,q as po,v as xr,w as wr,x as br,y as vr,z as kr}from"./chunk.OJGHDWI6.js";import{c as Mr}from"./chunk.UVLPVHID.js";import{B as at,C as co,D as un,F as Te,J as gt,Q as Le,R as uo,V as ho,W as Pn,X as Pt,Y as pe,_ as Ct,a as zt,b as oo,c as ro,d as io,e as lr,f as cr,fa as _t,g as In,ha as hr,i as It,k as mt,l as ao,m as Tn,n as ln,oa as fo,pa as mo,q as so,qa as Nt,s as be,sa as yo,t as Oe,u as ur,v as cn,w as Ae,wa as go,x as Tt,xa as hn,y as yt,z as lo}from"./chunk.DNNL7F3P.js";import{$c as ar,Wb as dn,aa as rr,ba as Ln,cd as sr,da as an,ea as Gt,fa as Lt,ga as sn,hd as dr,ka as ir,oc as Be}from"./chunk.HBBVVALN.js";import{b as se}from"./chunk.AJZBJBMO.js";var Wr={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}`,Dt=(e,t,n)=>`${co}${e}|${t}|${n}`;function Bn(e,t){let n=e.map(()=>0),r=e.map((i,l)=>({size:i,index:l})).sort((i,l)=>i.size-l.size||i.index-l.index),o=Math.max(t,e.length),a=e.length;for(let{size:i,index:l}of r){let c=Math.max(1,Math.floor(o/a));n[l]=Math.min(i,c),o-=n[l],a-=1}return n}function Eo(e){return Vr(e.via,e.node.kind)}function $n(e,t){let n=[],r=0;return e.forEach((o,a)=>{if(o<=0)return;if(n.length>0&&o<=r){for(let l=0;l<o;l++)n[n.length-1].push(a);r-=o;return}let i=o;for(;i>0;){let l=Math.min(t,i);n.push(Array.from({length:l},()=>a)),i-=l,r=t-l}}),n}function Oo(e,t,n){let r=Bn(e,t*n);for(;$n(r,t).length>n;){let o=-1;if(r.forEach((a,i)=>{a>1&&(o<0||a>r[o])&&(o=i)}),o<0)break;r[o]=r[o]-1}return r}function wa(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,a)=>({node:o,index:a,key:r(o)})).sort((o,a)=>{for(let i=0;i<o.key.length;i++)if(o.key[i]!==a.key[i])return o.key[i]-a.key[i];return o.index-a.index}).map(o=>o.node)}var ba=5,va=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1};function Yr(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}:{}},a=[];for(let l of Hr(n.schema,r).groups)if(l.key!==n.exclude)if(l.buckets)for(let c of["decade","year","month"])a.push({by:l.key,bucket:c});else a.push({by:l.key});let i;return a.forEach((l,c)=>{let s=Fr(e,{group:l},o).groups;if(s.length<2||s.length>t)return;let h=s.filter(x=>x.key!=="").reduce((x,f)=>x+f.nodes.length,0)/e.length;if(h<.5||s.some(x=>x.nodes.length>e.length*.75))return;let y=[-Math.round(h*100),Math.abs(s.length-ba),c];(!i||va(y,i.score))&&(i={grouping:{by:l.by,...l.bucket?{bucket:l.bucket}:{},groups:s},score:y})}),i?.grouping}function Ao(e,t){let n=f=>({id:f.node.id,kind:f.node.kind,node:f.node,...f.via?{via:f.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 f of e){let p=Vr(f.via,f.node.kind),b=o.get(p);b?b.push(f):o.set(p,[f])}let a=[...o.entries()].map(([f,p])=>({key:f,run:p,via:p[0].via,kinds:[...new Set(p.map(b=>b.node.kind))],members:[],whole:!1,extra:0})),i=Bn(a.map(f=>f.run.length),t.budget);a.forEach((f,p)=>f.whole=f.run.length<=i[p]);let l=a.filter(f=>!f.whole),c=a.filter(f=>f.whole).reduce((f,p)=>f+p.run.length,0),d=Math.max(l.length,t.budget-c);for(let f of l){f.members=wa(f.run.map(b=>b.node),r,t.graph);let p=d-(l.length-1);f.kinds.length>1&&f.kinds.length<=p?f.byKind=!0:f.kinds.length===1&&(f.grouping=Yr(f.members,p,{schema:t.schema,graph:t.graph,...f.via?{exclude:f.via.edgeKind}:{},...t.today?{today:t.today}:{}}))}let s=f=>f.byKind?f.kinds.length:f.grouping?f.grouping.groups.length:1;for(;l.reduce((f,p)=>f+s(p),0)>d;){let f=[...l].filter(p=>s(p)>1).sort((p,b)=>s(b)-s(p))[0];if(!f)break;f.grouping=void 0,f.byKind=!1}d-=l.reduce((f,p)=>f+s(p),0);let u=f=>f.byKind?f.kinds.some(p=>t.expanded.has(Dt(p,f.key,"kind"))):f.grouping?.groups.some(p=>t.expanded.has(Dt(f.kinds[0],f.key,Ro(f.grouping,p.key)))),h=l.filter(f=>!f.grouping&&!f.byKind?!0:u(f)),y=Bn(h.map(f=>f.members.length),Math.max(0,d));h.forEach((f,p)=>f.extra=d>0?y[p]:0);let x=[];for(let f of a){let{key:p,via:b}=f;if(f.whole){x.push(...f.run.map(n));continue}let k=g=>({id:g.id,kind:g.kind,node:g,...b?{via:b}:{}}),v=new Map(f.run.map((g,E)=>[g.node.id,E])),L=(g,E,A)=>{let O=[...g.slice(0,E)].sort(($,H)=>v.get($.id)-v.get(H.id));x.push(...O.map(k));let F=g.slice(E);if(F.length===0)return;let z=F[0].kind;x.push({id:Dt(z,p,A?`more:${A}`:"more"),kind:z,...b?{via:b}:{},aggregate:{kind:z,memberIds:F.map($=>$.id),label:E>0?`${F.length} more ${t.plural(z).toLowerCase()}`:`${F.length} ${t.plural(z).toLowerCase()}`,opens:{in:"picture",focus:Ae(z),within:A?{filter:A}:{}}}})},W=b&&t.focusId?`${b.edgeKind}:${t.focusId}`:void 0;if(f.byKind){let g=f.kinds.find(E=>t.expanded.has(Dt(E,p,"kind")));for(let E of f.kinds){let A=f.members.filter(O=>O.kind===E);if(E===g){let O=f.extra+1;A.length<=O?x.push(...A.map(k)):L(A,O-1,W);continue}x.push({id:Dt(E,p,"kind"),kind:E,...b?{via:b}:{},aggregate:{kind:E,memberIds:A.map(O=>O.id),label:t.plural(E),opens:{in:"place"}}})}continue}let D=f.grouping;if(!D){L(f.members,f.extra,W);continue}let Z=f.kinds[0],G=D.groups.find(g=>t.expanded.has(Dt(Z,p,Ro(D,g.key))));for(let g of D.groups){if(g===G){let E=f.members.filter(O=>g.nodes.includes(O)),A=f.extra+1;if(E.length<=A)x.push(...E.map(k));else{let O=g.key!==""&&!g.key.includes(",")&&!D.bucket,F=[W,O?`${D.by}:${g.key}`:void 0].filter(Boolean).join(",")||void 0;L(E,A-1,F)}continue}x.push({id:Dt(Z,p,Ro(D,g.key)),kind:Z,...b?{via:b}:{},aggregate:{kind:Z,memberIds:f.members.filter(E=>g.nodes.includes(E)).map(E=>E.id),label:g.label.charAt(0).toUpperCase()+g.label.slice(1),opens:{in:"place"}}})}}return x}var Ro=(e,t)=>`${e.by}${e.bucket?`:${e.bucket}`:""}=${t||"none"}`;function zr(e,t,n,r,o=1){let a=l=>String(l).length*7.4,i=e.length*8.6+6+a(t)+14+(n>0?22+a(n):0);return{width:Math.max(i,r?184:0)*o,height:(r?38:22)*o,short:{width:i*o,height:22*o}}}function Ft(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 Lo=(e,t,n,r)=>{let o=Math.max(e.x,Math.min(t.x,e.x+e.width)),a=Math.max(e.y,Math.min(t.y,e.y+e.height));return Math.abs(o-t.x)/n+Math.abs(a-t.y)/r<.92},pn=4,Gr=.45;function Io(e,t,n,r={},o={}){let a={};for(let w of e)a[w.kind]=w.count;let i={x:(r.left??0)+8,y:(r.top??0)+8,width:n.width-(r.left??0)-(r.right??0)-16,height:n.height-(r.top??0)-(r.bottom??0)-16},l=o.avoid??[],c=o.tilt??.5,d=w=>w.nameplate??{width:120,height:34,short:{width:90,height:20}},s=w=>e.map(R=>{let I=w.get(R.kind);return{card:R,plot:I,center:Zt(I.col+I.side/2,I.row+I.side/2,1,c)}}),u=(w,R)=>{let I=1/0,M=-1/0,N=1/0,T=-1/0;for(let{card:B,plot:te,center:K}of w){let V=K.x*R,ee=K.y*R,X=te.side*R/2,me=B.opened>0?d(B).width:d(B).short.width;I=Math.min(I,V-Math.max(X+(B.count>12?30:0),me/2)),M=Math.max(M,V+Math.max(X,me/2)),N=Math.min(N,ee-X*c-R*Gr),T=Math.max(T,ee+X*c+pn+d(B).short.height)}return{minX:I,maxX:M,minY:N,maxY:T}},h=w=>{let R=4,I=160;for(let M=0;M<24;M++){let N=(R+I)/2,T=u(w,N);T.maxX-T.minX<=i.width&&T.maxY-T.minY<=i.height?R=N:I=N}return R},y=w=>{let R={...o.order?{order:o.order}:{},counts:a,...o.plots?{plots:o.plots}:{},pitch:w},I=So(t,R),M=So(t,{...R,upright:!0}),N=h(s(I)),T=h(s(M)),B=n.height>n.width&&T>=N?M:I;return{map:B,fitted:B===M?T:N}},x=[],f=new Map,p=0,b=(w,R={x:0,y:0})=>{let I=u(x,w),M=i.x+i.width/2-(I.minX+I.maxX)/2+R.x,N=i.y+i.height/2-(I.minY+I.maxY)/2+R.y;return{originX:M,originY:N,cell:w}},k=w=>{let{originX:R,originY:I,cell:M}=w,N=x.map(({center:te})=>te.y),T=Math.max(...N),B=Math.min(...N);return x.map(({card:te,plot:K,center:V})=>{let ee=R+V.x*M,X=I+V.y*M,me=K.side*M/2,ie=me*c,ve=T===B?.5:(V.y-B)/(T-B);return{card:te,plot:K,x:ee,y:X,halfW:me,halfH:ie,depth:1-ve*.65}})},v=(w,R=!0)=>{let I=[];return[...w].sort((N,T)=>(T.card.weight??T.card.count)-(N.card.weight??N.card.count)||e.indexOf(N.card)-e.indexOf(T.card)).filter(N=>[d(N.card),d(N.card).short].some(T=>{let B=D(N,T),te=(!R||B.x>=0&&B.y>=0&&B.x+B.width<=n.width&&B.y+B.height<=n.height)&&!I.some(K=>Ft(B,K,4))&&!w.some(K=>K!==N&&Lo(B,K,K.halfW,K.halfH))&&!l.some(K=>Ft(B,K,0));return te&&I.push(B),te})).length},L=w=>w.card.marquee?{x:w.x-w.card.marquee.width/2,y:w.y+w.halfH+pn+d(w.card).height,width:w.card.marquee.width,height:w.card.marquee.height}:null,W=(w,R,I)=>I.some(M=>{if(M===R)return!1;let N=L(M);return N!==null&&Ft(w,N,4)}),D=(w,R,I="under")=>I==="aside"?{x:w.x+w.halfW+pn,y:w.y-R.height/2,width:R.width,height:R.height}:I==="above"?{x:w.x-R.width/2,y:w.y-w.halfH-pn-Gr*E.cell-R.height,width:R.width,height:R.height}:{x:w.x-R.width/2,y:w.y+w.halfH+pn,width:R.width,height:R.height},Z=w=>w.some(R=>l.some(I=>Lo(I,R,R.halfW,R.halfH)||Ft(I,D(R,d(R.card).short),0))),G=w=>w.every(R=>{let I=D(R,d(R.card).short);return R.x-R.halfW>=0&&R.x+R.halfW<=n.width&&R.y-R.halfH>=0&&I.x>=0&&I.x+I.width<=n.width&&I.y+I.height<=n.height}),g={pitch:Pe,said:-1};for(let w of[Pe,Pe+1,Pe+2,Pe+3,Pe+5,Pe+7]){({map:f,fitted:p}=y(w)),x=s(f);let R=v(k(b(p)));if(R>g.said&&(g={pitch:w,said:R}),R===e.length)break}(g.pitch!==Pe+7||g.said!==e.length)&&({map:f,fitted:p}=y(g.pitch),x=s(f));let E=b(p);if(l.length>0&&Z(k(E))){let w;for(let R=1;R>=.3&&!w;R-=.05){let I=p*R,M=Math.max(...l.map(T=>T.width))/2+I,N=Math.max(...l.map(T=>T.height))/2+I/2;for(let T of[0,.5,.75,1,1.25]){for(let[B,te]of[[1,0],[-1,0],[0,1],[0,-1],[1,1],[-1,1],[1,-1],[-1,-1]]){let K=b(I,{x:B*M*T,y:te*N*T}),V=k(K);if(!Z(V)&&G(V)){w=K;break}if(T===0)break}if(w)break}}w&&(E=w)}let A=(w,R)=>{let I={x:n.width/2,y:n.height/2};return{cell:w.cell*R,originX:I.x+(w.originX-I.x)*R,originY:I.y+(w.originY-I.y)*R}},O=1;if(v(k(E))<e.length){let w={said:v(k(E),!1),area:1/0,pitch:-1,by:1},R={map:f,shape:x,fitted:p,where:E};for(let M of[Pe,Pe+1,Pe+2,Pe+3,Pe+5,Pe+7]){({map:f,fitted:p}=y(M)),x=s(f);let N=b(p);for(let T=1;T<=3.001;T+=.1){let B=v(k(A(N,T)),!1),te=u(x,p*T),K=(te.maxX-te.minX)*(te.maxY-te.minY);if((B>w.said||B===w.said&&K<w.area)&&(w={said:B,area:K,pitch:M,by:T}),B===e.length)break}}w.pitch<0?{map:f,shape:x,fitted:p,where:E}=R:({map:f,fitted:p}=y(w.pitch),x=s(f),O=w.by,E=A(b(p),O));let I=k(E).filter(M=>o.keep?.includes(M.card.kind));if(I.length>0){let M=I.flatMap(V=>[{x:V.x-V.halfW,y:V.y-V.halfH,width:V.halfW*2,height:V.halfH*2},D(V,d(V.card))]),N=Math.min(...M.map(V=>V.x)),T=Math.max(...M.map(V=>V.x+V.width)),B=Math.min(...M.map(V=>V.y)),te=Math.max(...M.map(V=>V.y+V.height)),K=(V,ee,X)=>ee-V>X-16?X/2-(V+ee)/2:V<8?8-V:ee>X-8?X-8-ee:0;E={...E,originX:E.originX+K(N,T,n.width),originY:E.originY+K(B,te,n.height)}}}let F=o.zoom&&o.zoom!==1?o.zoom:1;F!==1&&(E=A(E,F));let z=k(E),$=[],H=new Map,Y=new Map,S=[...z].sort((w,R)=>(R.card.weight??R.card.count)-(w.card.weight??w.card.count)||e.indexOf(w.card)-e.indexOf(R.card));for(let w of S){let R=[["full",d(w.card),"under"],["short",d(w.card).short,"under"]],I="none",M=w===S[0],N=(B,te)=>R.filter(([K])=>K.startsWith(te)).map(([K,V,ee])=>[K,V,ee,B]),T=M?[...N(!1,"full"),...N(!1,"short"),...N(!0,"full"),...N(!0,"short")]:R.map(([B,te,K])=>[B,te,K,!1]);for(let[B,te,K,V]of T){let ee=D(w,te,K);if((F!==1||O!==1||ee.x>=0&&ee.y>=0&&ee.x+ee.width<=n.width&&ee.y+ee.height<=n.height)&&!$.some(ie=>Ft(ee,ie,4))&&(V||!z.some(ie=>ie!==w&&Lo(ee,ie,ie.halfW,ie.halfH)))&&!W(ee,w,z)&&!l.some(ie=>Ft(ee,ie,0))){I=B,$.push(ee),Y.set(w.card.id,ee);break}}H.set(w.card.id,I)}let P=z.map(w=>({id:w.card.id,x:w.x-w.halfW,y:w.y-w.halfH,width:w.halfW*2,height:w.halfH*2+(w.card.opened>0?Math.max(w.card.openedMin??0,w.card.opened):0),depth:w.depth,plot:w.plot,nameplate:H.get(w.card.id)??"none"})),q=u(x,E.cell),_={cell:E.cell,originX:E.originX,originY:E.originY,pan:o.pan??{x:0,y:0},extent:{x:E.originX+q.minX,y:E.originY+q.minY,width:q.maxX-q.minX,height:q.maxY-q.minY},openedShare:1,...c!==.5?{tilt:c}:{},...Y.size>0?{nameplates:z.flatMap(w=>{let R=Y.get(w.card.id);return R?[{id:w.card.id,x:R.x-(w.x-w.halfW),y:R.y-(w.y-w.halfH),width:R.width,height:R.height}]:[]})}:{},...z.some(w=>w.card.marquee)?{showings:z.flatMap(w=>{let R=L(w);return R?[{id:w.card.id,x:R.x-(w.x-w.halfW),y:R.y-(w.y-w.halfH),width:R.width,height:R.height}]:[]})}:{}};return{placed:P,frame:_,map:f}}function pt(e){let{width:t,height:n}=e.visible??e,r={x:t*.45,y:n*.45};if(!e.city)return r;let{extent:o}=e.city,a=24;return{x:Math.max(r.x,o.x+o.width-t+a,-o.x+a),y:Math.max(r.y,o.y+o.height-n+a,-o.y+a)}}var Hn=48;function To(e){if(!e.city)return[];let{width:t,height:n}=e.visible??e,r=[];for(let o of e.nodes){if(!o.id.startsWith("kind:")||Math.round(o.plane)!==2)continue;let a=o.x+o.width/2,i=o.y+o.height/2,l=a<0?"left":a>t?"right":i<0?"top":i>n?"bottom":null;if(!l)continue;let c=l==="left"||l==="right",d=c?Math.max(0,Math.min(n,i)):Math.max(0,Math.min(t,a)),s=(y,x)=>y<x/4?x/4-y:y>x*3/4?x*3/4-y:0,u=(y,x)=>y<Hn?Hn-y:y>x-Hn?x-Hn-y:0,h=c?{x:s(a,t),y:u(i,n)}:{x:u(a,t),y:s(i,n)};r.push({id:o.id,kind:o.id.slice(5),side:l,along:d,by:h})}return r}function Po(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 ka={rankOf:()=>{},parentOf:()=>{}};function _r(e,t){if(t.size===0)return ka;let n=e.kinds,r=new Map,o=(d,s)=>{d!==s&&((r.get(d)??r.set(d,new Set).get(d)).add(s),(r.get(s)??r.set(s,new Set).get(s)).add(d))};for(let d of n){let s=e.tryDefinition(d);if(s)for(let u of Object.values(s.edges??{})){let h=u.to==="*"?n:u.to;for(let y of h)o(d,y)}}let a=new Map,i=new Map,l=[...t].filter(d=>n.includes(d));for(let d of l)a.set(d,0);let c=0;for(;l.length>0;){c+=1;let d=[];for(let s of[...l].sort((u,h)=>n.indexOf(u)-n.indexOf(h)))for(let u of[...r.get(s)??[]].sort((h,y)=>n.indexOf(h)-n.indexOf(y)))a.has(u)||(a.set(u,c),c===2&&i.set(u,s),d.push(u));l=d}return{rankOf:d=>{let s=a.get(d);if(s!==0)return s===1?"primary":"secondary"},parentOf:d=>i.get(d)}}function Kr(e,t,n,r,o={}){if(n){let a=new Map;for(let i of e.allEdges()){if(r&&i.kind!==r)continue;let l=i.from===n.id?i.to:i.to===n.id?i.from:null;if(l===null||l===n.id)continue;let c=e.getNode(l);if(!c||a.has(l))continue;let d=i.from===n.id?"out":"in",s=d==="out"?n.kind:c.kind,u=Sa(t,s,i.kind,d);a.set(l,{node:c,via:{edgeKind:i.kind,direction:d,...u?{description:u}:{}}})}if(a.size>0){let i=l=>`${l.via.edgeKind}|${l.via.description??""}`;return[...a.values()].sort((l,c)=>(i(l)<i(c)?-1:i(l)>i(c)?1:0)||at(l.node,c.node))}}if(n){let a=o[n.id]??[],i=new Set,l=[];for(let c of a){if(c===n.id||i.has(c))continue;let d=e.getNode(c);d&&(r&&r!=="judges"&&d.kind!==r||(i.add(c),l.push({node:d,via:{edgeKind:"judges",direction:"out",description:"what it finds wrong"}})))}if(l.length>0)return l.sort((c,d)=>at(c.node,d.node))}return r?e.allNodes().filter(a=>a.kind===r).sort(at).map(a=>({node:a})):[]}function Sa(e,t,n,r){let a=e.tryDefinition(t)?.edges?.[n];return r==="out"?a?.description:a?.inverse}function Ur(e,t,n){let r=new Map,o=[...t.values()].sort((d,s)=>d.plane-s.plane);for(let d of o)for(let s of d.aggregate?.memberIds??[])!t.has(s)&&!r.has(s)&&r.set(s,d.id);let a=d=>t.get(d)??t.get(r.get(d)??""),i=new Map,l=new Map,c=new Map;for(let d of e.allEdges()){let s=a(d.from),u=a(d.to);if(!s||!u||s.id===u.id&&!(n.overview&&s.aggregate&&s.plane===2))continue;let h=`${d.kind}:${s.id}:${u.id}`,y=i.get(h);if(y){let x=`${d.from}
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as $t,f as Ht,g as yn}from"./chunk.C6X7CKU6.js";import{b as gn}from"./chunk.EBHKKOPO.js";import{a as Pe,b as So,c as Zt,d as jr,e as Mo}from"./chunk.P4WYBSYA.js";import{h as Fr}from"./chunk.3ZNQ5YKX.js";import{e as Hr,p as Nn,q as Dr}from"./chunk.7EFNLMKU.js";import{a as $r}from"./chunk.ITEF3U2E.js";import{a as Cr,b as Nr,c as Br}from"./chunk.J3M2MZHG.js";import{b as Rr,d as Er}from"./chunk.UT6642FC.js";import{a as Or,b as xo,c as wo,f as bo,g as vo,h as ko,i as Ar,j as Xt,k as qt,o as Bt,p as Qt,q as Tr,r as Pr}from"./chunk.HHUCPVG5.js";import{A as Sr,f as fr,g as Kt,h as mr,i as yr,j as gr,k as pr,m as Cn,n as fn,o as mn,p as Ut,q as po,v as xr,w as wr,x as br,y as vr,z as kr}from"./chunk.OJGHDWI6.js";import{a as Lr,b as Ir}from"./chunk.WXYUWBKX.js";import{c as Mr}from"./chunk.Z7JRBKA7.js";import{A as at,B as co,C as un,Da as go,G as Te,K as gt,R as Le,T as uo,X as ho,Y as Pn,Z as Pt,_ as pe,a as oo,aa as Ct,b as ro,c as io,d as lr,e as cr,f as In,h as It,ha as zt,j as mt,ja as hr,k as ao,l as Tn,m as ln,p as so,qa as hn,r as be,s as Oe,t as ur,u as cn,v as Ae,va as fo,w as Tt,wa as mo,x as yt,xa as Nt,y as lo,za as yo}from"./chunk.BTSXYZ6Z.js";import{a as _t}from"./chunk.SDO3U72B.js";import{Zb as dn,aa as rr,ba as Ln,da as an,ea as Gt,fa as Lt,ga as sn,hd as ar,ka as ir,kd as sr,pd as dr,rc as Be}from"./chunk.5ZMENPY4.js";import{b as se}from"./chunk.AJZBJBMO.js";var Wr={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}`,Dt=(e,t,n)=>`${co}${e}|${t}|${n}`;function Bn(e,t){let n=e.map(()=>0),r=e.map((i,l)=>({size:i,index:l})).sort((i,l)=>i.size-l.size||i.index-l.index),o=Math.max(t,e.length),a=e.length;for(let{size:i,index:l}of r){let c=Math.max(1,Math.floor(o/a));n[l]=Math.min(i,c),o-=n[l],a-=1}return n}function Eo(e){return Vr(e.via,e.node.kind)}function $n(e,t){let n=[],r=0;return e.forEach((o,a)=>{if(o<=0)return;if(n.length>0&&o<=r){for(let l=0;l<o;l++)n[n.length-1].push(a);r-=o;return}let i=o;for(;i>0;){let l=Math.min(t,i);n.push(Array.from({length:l},()=>a)),i-=l,r=t-l}}),n}function Oo(e,t,n){let r=Bn(e,t*n);for(;$n(r,t).length>n;){let o=-1;if(r.forEach((a,i)=>{a>1&&(o<0||a>r[o])&&(o=i)}),o<0)break;r[o]=r[o]-1}return r}function wa(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,a)=>({node:o,index:a,key:r(o)})).sort((o,a)=>{for(let i=0;i<o.key.length;i++)if(o.key[i]!==a.key[i])return o.key[i]-a.key[i];return o.index-a.index}).map(o=>o.node)}var ba=5,va=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1};function Yr(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}:{}},a=[];for(let l of Hr(n.schema,r).groups)if(l.key!==n.exclude)if(l.buckets)for(let c of["decade","year","month"])a.push({by:l.key,bucket:c});else a.push({by:l.key});let i;return a.forEach((l,c)=>{let s=Fr(e,{group:l},o).groups;if(s.length<2||s.length>t)return;let h=s.filter(x=>x.key!=="").reduce((x,f)=>x+f.nodes.length,0)/e.length;if(h<.5||s.some(x=>x.nodes.length>e.length*.75))return;let y=[-Math.round(h*100),Math.abs(s.length-ba),c];(!i||va(y,i.score))&&(i={grouping:{by:l.by,...l.bucket?{bucket:l.bucket}:{},groups:s},score:y})}),i?.grouping}function Ao(e,t){let n=f=>({id:f.node.id,kind:f.node.kind,node:f.node,...f.via?{via:f.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 f of e){let p=Vr(f.via,f.node.kind),b=o.get(p);b?b.push(f):o.set(p,[f])}let a=[...o.entries()].map(([f,p])=>({key:f,run:p,via:p[0].via,kinds:[...new Set(p.map(b=>b.node.kind))],members:[],whole:!1,extra:0})),i=Bn(a.map(f=>f.run.length),t.budget);a.forEach((f,p)=>f.whole=f.run.length<=i[p]);let l=a.filter(f=>!f.whole),c=a.filter(f=>f.whole).reduce((f,p)=>f+p.run.length,0),d=Math.max(l.length,t.budget-c);for(let f of l){f.members=wa(f.run.map(b=>b.node),r,t.graph);let p=d-(l.length-1);f.kinds.length>1&&f.kinds.length<=p?f.byKind=!0:f.kinds.length===1&&(f.grouping=Yr(f.members,p,{schema:t.schema,graph:t.graph,...f.via?{exclude:f.via.edgeKind}:{},...t.today?{today:t.today}:{}}))}let s=f=>f.byKind?f.kinds.length:f.grouping?f.grouping.groups.length:1;for(;l.reduce((f,p)=>f+s(p),0)>d;){let f=[...l].filter(p=>s(p)>1).sort((p,b)=>s(b)-s(p))[0];if(!f)break;f.grouping=void 0,f.byKind=!1}d-=l.reduce((f,p)=>f+s(p),0);let u=f=>f.byKind?f.kinds.some(p=>t.expanded.has(Dt(p,f.key,"kind"))):f.grouping?.groups.some(p=>t.expanded.has(Dt(f.kinds[0],f.key,Ro(f.grouping,p.key)))),h=l.filter(f=>!f.grouping&&!f.byKind?!0:u(f)),y=Bn(h.map(f=>f.members.length),Math.max(0,d));h.forEach((f,p)=>f.extra=d>0?y[p]:0);let x=[];for(let f of a){let{key:p,via:b}=f;if(f.whole){x.push(...f.run.map(n));continue}let k=g=>({id:g.id,kind:g.kind,node:g,...b?{via:b}:{}}),v=new Map(f.run.map((g,E)=>[g.node.id,E])),L=(g,E,A)=>{let O=[...g.slice(0,E)].sort(($,H)=>v.get($.id)-v.get(H.id));x.push(...O.map(k));let F=g.slice(E);if(F.length===0)return;let _=F[0].kind;x.push({id:Dt(_,p,A?`more:${A}`:"more"),kind:_,...b?{via:b}:{},aggregate:{kind:_,memberIds:F.map($=>$.id),label:E>0?`${F.length} more ${t.plural(_).toLowerCase()}`:`${F.length} ${t.plural(_).toLowerCase()}`,opens:{in:"picture",focus:Ae(_),within:A?{filter:A}:{}}}})},W=b&&t.focusId?`${b.edgeKind}:${t.focusId}`:void 0;if(f.byKind){let g=f.kinds.find(E=>t.expanded.has(Dt(E,p,"kind")));for(let E of f.kinds){let A=f.members.filter(O=>O.kind===E);if(E===g){let O=f.extra+1;A.length<=O?x.push(...A.map(k)):L(A,O-1,W);continue}x.push({id:Dt(E,p,"kind"),kind:E,...b?{via:b}:{},aggregate:{kind:E,memberIds:A.map(O=>O.id),label:t.plural(E),opens:{in:"place"}}})}continue}let D=f.grouping;if(!D){L(f.members,f.extra,W);continue}let Z=f.kinds[0],G=D.groups.find(g=>t.expanded.has(Dt(Z,p,Ro(D,g.key))));for(let g of D.groups){if(g===G){let E=f.members.filter(O=>g.nodes.includes(O)),A=f.extra+1;if(E.length<=A)x.push(...E.map(k));else{let O=g.key!==""&&!g.key.includes(",")&&!D.bucket,F=[W,O?`${D.by}:${g.key}`:void 0].filter(Boolean).join(",")||void 0;L(E,A-1,F)}continue}x.push({id:Dt(Z,p,Ro(D,g.key)),kind:Z,...b?{via:b}:{},aggregate:{kind:Z,memberIds:f.members.filter(E=>g.nodes.includes(E)).map(E=>E.id),label:g.label.charAt(0).toUpperCase()+g.label.slice(1),opens:{in:"place"}}})}}return x}var Ro=(e,t)=>`${e.by}${e.bucket?`:${e.bucket}`:""}=${t||"none"}`;function _r(e,t,n,r,o=1){let a=l=>String(l).length*7.4,i=e.length*8.6+6+a(t)+14+(n>0?22+a(n):0);return{width:Math.max(i,r?184:0)*o,height:(r?38:22)*o,short:{width:i*o,height:22*o}}}function Ft(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 Lo=(e,t,n,r)=>{let o=Math.max(e.x,Math.min(t.x,e.x+e.width)),a=Math.max(e.y,Math.min(t.y,e.y+e.height));return Math.abs(o-t.x)/n+Math.abs(a-t.y)/r<.92},pn=4,Gr=.45;function Io(e,t,n,r={},o={}){let a={};for(let w of e)a[w.kind]=w.count;let i={x:(r.left??0)+8,y:(r.top??0)+8,width:n.width-(r.left??0)-(r.right??0)-16,height:n.height-(r.top??0)-(r.bottom??0)-16},l=o.avoid??[],c=o.tilt??.5,d=w=>w.nameplate??{width:120,height:34,short:{width:90,height:20}},s=w=>e.map(R=>{let I=w.get(R.kind);return{card:R,plot:I,center:Zt(I.col+I.side/2,I.row+I.side/2,1,c)}}),u=(w,R)=>{let I=1/0,M=-1/0,N=1/0,T=-1/0;for(let{card:B,plot:te,center:K}of w){let V=K.x*R,ee=K.y*R,X=te.side*R/2,me=B.opened>0?d(B).width:d(B).short.width;I=Math.min(I,V-Math.max(X+(B.count>12?30:0),me/2)),M=Math.max(M,V+Math.max(X,me/2)),N=Math.min(N,ee-X*c-R*Gr),T=Math.max(T,ee+X*c+pn+d(B).short.height)}return{minX:I,maxX:M,minY:N,maxY:T}},h=w=>{let R=4,I=160;for(let M=0;M<24;M++){let N=(R+I)/2,T=u(w,N);T.maxX-T.minX<=i.width&&T.maxY-T.minY<=i.height?R=N:I=N}return R},y=w=>{let R={...o.order?{order:o.order}:{},counts:a,...o.plots?{plots:o.plots}:{},pitch:w},I=So(t,R),M=So(t,{...R,upright:!0}),N=h(s(I)),T=h(s(M)),B=n.height>n.width&&T>=N?M:I;return{map:B,fitted:B===M?T:N}},x=[],f=new Map,p=0,b=(w,R={x:0,y:0})=>{let I=u(x,w),M=i.x+i.width/2-(I.minX+I.maxX)/2+R.x,N=i.y+i.height/2-(I.minY+I.maxY)/2+R.y;return{originX:M,originY:N,cell:w}},k=w=>{let{originX:R,originY:I,cell:M}=w,N=x.map(({center:te})=>te.y),T=Math.max(...N),B=Math.min(...N);return x.map(({card:te,plot:K,center:V})=>{let ee=R+V.x*M,X=I+V.y*M,me=K.side*M/2,ie=me*c,ve=T===B?.5:(V.y-B)/(T-B);return{card:te,plot:K,x:ee,y:X,halfW:me,halfH:ie,depth:1-ve*.65}})},v=(w,R=!0)=>{let I=[];return[...w].sort((N,T)=>(T.card.weight??T.card.count)-(N.card.weight??N.card.count)||e.indexOf(N.card)-e.indexOf(T.card)).filter(N=>[d(N.card),d(N.card).short].some(T=>{let B=D(N,T),te=(!R||B.x>=0&&B.y>=0&&B.x+B.width<=n.width&&B.y+B.height<=n.height)&&!I.some(K=>Ft(B,K,4))&&!w.some(K=>K!==N&&Lo(B,K,K.halfW,K.halfH))&&!l.some(K=>Ft(B,K,0));return te&&I.push(B),te})).length},L=w=>w.card.marquee?{x:w.x-w.card.marquee.width/2,y:w.y+w.halfH+pn+d(w.card).height,width:w.card.marquee.width,height:w.card.marquee.height}:null,W=(w,R,I)=>I.some(M=>{if(M===R)return!1;let N=L(M);return N!==null&&Ft(w,N,4)}),D=(w,R,I="under")=>I==="aside"?{x:w.x+w.halfW+pn,y:w.y-R.height/2,width:R.width,height:R.height}:I==="above"?{x:w.x-R.width/2,y:w.y-w.halfH-pn-Gr*E.cell-R.height,width:R.width,height:R.height}:{x:w.x-R.width/2,y:w.y+w.halfH+pn,width:R.width,height:R.height},Z=w=>w.some(R=>l.some(I=>Lo(I,R,R.halfW,R.halfH)||Ft(I,D(R,d(R.card).short),0))),G=w=>w.every(R=>{let I=D(R,d(R.card).short);return R.x-R.halfW>=0&&R.x+R.halfW<=n.width&&R.y-R.halfH>=0&&I.x>=0&&I.x+I.width<=n.width&&I.y+I.height<=n.height}),g={pitch:Pe,said:-1};for(let w of[Pe,Pe+1,Pe+2,Pe+3,Pe+5,Pe+7]){({map:f,fitted:p}=y(w)),x=s(f);let R=v(k(b(p)));if(R>g.said&&(g={pitch:w,said:R}),R===e.length)break}(g.pitch!==Pe+7||g.said!==e.length)&&({map:f,fitted:p}=y(g.pitch),x=s(f));let E=b(p);if(l.length>0&&Z(k(E))){let w;for(let R=1;R>=.3&&!w;R-=.05){let I=p*R,M=Math.max(...l.map(T=>T.width))/2+I,N=Math.max(...l.map(T=>T.height))/2+I/2;for(let T of[0,.5,.75,1,1.25]){for(let[B,te]of[[1,0],[-1,0],[0,1],[0,-1],[1,1],[-1,1],[1,-1],[-1,-1]]){let K=b(I,{x:B*M*T,y:te*N*T}),V=k(K);if(!Z(V)&&G(V)){w=K;break}if(T===0)break}if(w)break}}w&&(E=w)}let A=(w,R)=>{let I={x:n.width/2,y:n.height/2};return{cell:w.cell*R,originX:I.x+(w.originX-I.x)*R,originY:I.y+(w.originY-I.y)*R}},O=1;if(v(k(E))<e.length){let w={said:v(k(E),!1),area:1/0,pitch:-1,by:1},R={map:f,shape:x,fitted:p,where:E};for(let M of[Pe,Pe+1,Pe+2,Pe+3,Pe+5,Pe+7]){({map:f,fitted:p}=y(M)),x=s(f);let N=b(p);for(let T=1;T<=3.001;T+=.1){let B=v(k(A(N,T)),!1),te=u(x,p*T),K=(te.maxX-te.minX)*(te.maxY-te.minY);if((B>w.said||B===w.said&&K<w.area)&&(w={said:B,area:K,pitch:M,by:T}),B===e.length)break}}w.pitch<0?{map:f,shape:x,fitted:p,where:E}=R:({map:f,fitted:p}=y(w.pitch),x=s(f),O=w.by,E=A(b(p),O));let I=k(E).filter(M=>o.keep?.includes(M.card.kind));if(I.length>0){let M=I.flatMap(V=>[{x:V.x-V.halfW,y:V.y-V.halfH,width:V.halfW*2,height:V.halfH*2},D(V,d(V.card))]),N=Math.min(...M.map(V=>V.x)),T=Math.max(...M.map(V=>V.x+V.width)),B=Math.min(...M.map(V=>V.y)),te=Math.max(...M.map(V=>V.y+V.height)),K=(V,ee,X)=>ee-V>X-16?X/2-(V+ee)/2:V<8?8-V:ee>X-8?X-8-ee:0;E={...E,originX:E.originX+K(N,T,n.width),originY:E.originY+K(B,te,n.height)}}}let F=o.zoom&&o.zoom!==1?o.zoom:1;F!==1&&(E=A(E,F));let _=k(E),$=[],H=new Map,Y=new Map,S=[..._].sort((w,R)=>(R.card.weight??R.card.count)-(w.card.weight??w.card.count)||e.indexOf(w.card)-e.indexOf(R.card));for(let w of S){let R=[["full",d(w.card),"under"],["short",d(w.card).short,"under"]],I="none",M=w===S[0],N=(B,te)=>R.filter(([K])=>K.startsWith(te)).map(([K,V,ee])=>[K,V,ee,B]),T=M?[...N(!1,"full"),...N(!1,"short"),...N(!0,"full"),...N(!0,"short")]:R.map(([B,te,K])=>[B,te,K,!1]);for(let[B,te,K,V]of T){let ee=D(w,te,K);if((F!==1||O!==1||ee.x>=0&&ee.y>=0&&ee.x+ee.width<=n.width&&ee.y+ee.height<=n.height)&&!$.some(ie=>Ft(ee,ie,4))&&(V||!_.some(ie=>ie!==w&&Lo(ee,ie,ie.halfW,ie.halfH)))&&!W(ee,w,_)&&!l.some(ie=>Ft(ee,ie,0))){I=B,$.push(ee),Y.set(w.card.id,ee);break}}H.set(w.card.id,I)}let P=_.map(w=>({id:w.card.id,x:w.x-w.halfW,y:w.y-w.halfH,width:w.halfW*2,height:w.halfH*2+(w.card.opened>0?Math.max(w.card.openedMin??0,w.card.opened):0),depth:w.depth,plot:w.plot,nameplate:H.get(w.card.id)??"none"})),q=u(x,E.cell),z={cell:E.cell,originX:E.originX,originY:E.originY,pan:o.pan??{x:0,y:0},extent:{x:E.originX+q.minX,y:E.originY+q.minY,width:q.maxX-q.minX,height:q.maxY-q.minY},openedShare:1,...c!==.5?{tilt:c}:{},...Y.size>0?{nameplates:_.flatMap(w=>{let R=Y.get(w.card.id);return R?[{id:w.card.id,x:R.x-(w.x-w.halfW),y:R.y-(w.y-w.halfH),width:R.width,height:R.height}]:[]})}:{},..._.some(w=>w.card.marquee)?{showings:_.flatMap(w=>{let R=L(w);return R?[{id:w.card.id,x:R.x-(w.x-w.halfW),y:R.y-(w.y-w.halfH),width:R.width,height:R.height}]:[]})}:{}};return{placed:P,frame:z,map:f}}function pt(e){let{width:t,height:n}=e.visible??e,r={x:t*.45,y:n*.45};if(!e.city)return r;let{extent:o}=e.city,a=24;return{x:Math.max(r.x,o.x+o.width-t+a,-o.x+a),y:Math.max(r.y,o.y+o.height-n+a,-o.y+a)}}var Hn=48;function To(e){if(!e.city)return[];let{width:t,height:n}=e.visible??e,r=[];for(let o of e.nodes){if(!o.id.startsWith("kind:")||Math.round(o.plane)!==2)continue;let a=o.x+o.width/2,i=o.y+o.height/2,l=a<0?"left":a>t?"right":i<0?"top":i>n?"bottom":null;if(!l)continue;let c=l==="left"||l==="right",d=c?Math.max(0,Math.min(n,i)):Math.max(0,Math.min(t,a)),s=(y,x)=>y<x/4?x/4-y:y>x*3/4?x*3/4-y:0,u=(y,x)=>y<Hn?Hn-y:y>x-Hn?x-Hn-y:0,h=c?{x:s(a,t),y:u(i,n)}:{x:u(a,t),y:s(i,n)};r.push({id:o.id,kind:o.id.slice(5),side:l,along:d,by:h})}return r}function Po(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 ka={rankOf:()=>{},parentOf:()=>{}};function zr(e,t){if(t.size===0)return ka;let n=e.kinds,r=new Map,o=(d,s)=>{d!==s&&((r.get(d)??r.set(d,new Set).get(d)).add(s),(r.get(s)??r.set(s,new Set).get(s)).add(d))};for(let d of n){let s=e.tryDefinition(d);if(s)for(let u of Object.values(s.edges??{})){let h=u.to==="*"?n:u.to;for(let y of h)o(d,y)}}let a=new Map,i=new Map,l=[...t].filter(d=>n.includes(d));for(let d of l)a.set(d,0);let c=0;for(;l.length>0;){c+=1;let d=[];for(let s of[...l].sort((u,h)=>n.indexOf(u)-n.indexOf(h)))for(let u of[...r.get(s)??[]].sort((h,y)=>n.indexOf(h)-n.indexOf(y)))a.has(u)||(a.set(u,c),c===2&&i.set(u,s),d.push(u));l=d}return{rankOf:d=>{let s=a.get(d);if(s!==0)return s===1?"primary":"secondary"},parentOf:d=>i.get(d)}}function Kr(e,t,n,r,o={}){if(n){let a=new Map;for(let i of e.allEdges()){if(r&&i.kind!==r)continue;let l=i.from===n.id?i.to:i.to===n.id?i.from:null;if(l===null||l===n.id)continue;let c=e.getNode(l);if(!c||a.has(l))continue;let d=i.from===n.id?"out":"in",s=d==="out"?n.kind:c.kind,u=Sa(t,s,i.kind,d);a.set(l,{node:c,via:{edgeKind:i.kind,direction:d,...u?{description:u}:{}}})}if(a.size>0){let i=l=>`${l.via.edgeKind}|${l.via.description??""}`;return[...a.values()].sort((l,c)=>(i(l)<i(c)?-1:i(l)>i(c)?1:0)||at(l.node,c.node))}}if(n){let a=o[n.id]??[],i=new Set,l=[];for(let c of a){if(c===n.id||i.has(c))continue;let d=e.getNode(c);d&&(r&&r!=="judges"&&d.kind!==r||(i.add(c),l.push({node:d,via:{edgeKind:"judges",direction:"out",description:"what it finds wrong"}})))}if(l.length>0)return l.sort((c,d)=>at(c.node,d.node))}return r?e.allNodes().filter(a=>a.kind===r).sort(at).map(a=>({node:a})):[]}function Sa(e,t,n,r){let a=e.tryDefinition(t)?.edges?.[n];return r==="out"?a?.description:a?.inverse}function Ur(e,t,n){let r=new Map,o=[...t.values()].sort((d,s)=>d.plane-s.plane);for(let d of o)for(let s of d.aggregate?.memberIds??[])!t.has(s)&&!r.has(s)&&r.set(s,d.id);let a=d=>t.get(d)??t.get(r.get(d)??""),i=new Map,l=new Map,c=new Map;for(let d of e.allEdges()){let s=a(d.from),u=a(d.to);if(!s||!u||s.id===u.id&&!(n.overview&&s.aggregate&&s.plane===2))continue;let h=`${d.kind}:${s.id}:${u.id}`,y=i.get(h);if(y){let x=`${d.from}
2
2
  ${d.to}`,f=l.get(h);if(f.has(x))continue;if(f.add(x),c.get(h).push({from:d.from,to:d.to}),y.single){let{single:p,...b}=y;i.set(h,b)}continue}l.set(h,new Set([`${d.from}
3
- ${d.to}`])),c.set(h,[{from:d.from,to:d.to}]),i.set(h,{id:h,kind:d.kind,from:s.id,to:u.id,edges:[{from:d.from,to:d.to}],single:{from:d.from,to:d.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[...i.values()].map(d=>({...d,edges:c.get(d.id)})).sort(at)}var qr=.85,Xr=60,Co=160;function Ma(e,t,n,r,o,a=qr){let i=e*t.width+Math.max(0,e-1)*n,l=Math.max(n,(r-i)/2);return Array.from({length:e},(c,d)=>({x:l+d*(t.width+n),y:o,depth:a}))}function Ra(e,t,n,r,o){let a=e*t.width+Math.max(0,e-1)*n,i=Math.max(n,(r-a)/2);return Array.from({length:e},(l,c)=>({x:i+c*(t.width+n),y:o}))}function Dn(e,t,n,r={}){let o={...Wr,...r},a=Math.max(8,o.unit??16)/16,i=o.inset?.left??0,l=n.overview?Math.max(0,o.dock?.right??0):0,c=n.overview?Math.max(0,o.dock?.bottom??0):0,d=o.width-l-i-(o.inset?.right??0),s=[],u=new Map,h=m=>n.past===!0||rr(t.tryDefinition(m.kind),m,o.today),y=new Set(r.hiddenKinds??[]),x=m=>!y.has(m.kind),f=n.focusId?yt(n.focusId).filter(m=>t.tryDefinition(m)!==void 0).filter(m=>!y.has(m)):[];n.focusId&&yt(n.focusId).length>0&&f.length===0&&(n={...n,focusId:null});let p=n.focusId?e.getNode(n.focusId):void 0;p&&!x(p)&&(n={...n,focusId:null},f=[]);let b=f.length>0?[...e.allNodes()].filter(m=>f.includes(m.kind)).sort(at):[],k=b.filter(x).filter(h),v=b.length-k.length,L=n.focusId&&f.length===0?e.getNode(n.focusId):void 0,W=n.zoom===!0&&!n.overview&&n.focusId!==null,D=Math.max(56,o.height*.062),Z=Math.min(o.height*.895,o.height-D),G=W?L!==void 0?{focusY:o.height*.03,focusH:o.height*.58,relationY:o.height*.645,relationH:o.height*.2,contextY:Z,contextH:D}:{focusY:o.height*.03,focusH:o.height*.71,relationY:o.height*.765,relationH:o.height*.1,contextY:Z,contextH:D}:L===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 m=o.height,j=m*.04,U=Math.max(m*.42,Math.min(m*.56,300)),ne=j+U+m*.06;return{focusY:j,focusH:U,relationY:ne,relationH:Math.max(m*.12,m*.878-m*.068-ne),contextY:m*.878,contextH:m*.092}})(),g=Math.min(o.headroom??0,G.focusY+G.focusH*.2),E=g>G.focusY?{...G,focusY:g,focusH:G.focusH-(g-G.focusY)}:G,A=m=>Math.min(o.gap*m,Math.round(d*.1)),O=W?Math.min(880,d-A(5)):Math.min(700,d-A(6)),F=W?d-A(5):Math.min(o.focusSize.width,d-A(6)),z=(m,j,U)=>({width:m===0?j:Math.min(j,(d-o.gap*(m+1))/m),height:U}),$=(m,j,U)=>{let ne=z(m,j,U),we=Math.min(j,Co*a,d-o.gap*2);return ne.width>=we?ne:{width:we,height:U}},H=m=>Math.max(1,Math.floor((d-o.gap)/(Math.min(m,Co*a,d-o.gap*2)+o.gap))),Y=new Set(n.expanded),S=n.overview?[]:Kr(e,t,L,n.relation,o.judged).filter(m=>x(m.node)).filter(m=>h(m.node)),P=n.overview?0:Math.max(0,Xr*a-E.contextH),q=S.length>0?E.focusH:E.contextY-E.focusY-o.gap*2-P,_=F,w=o.height,R=Math.min(d*.5/_,o.height*.48/w),I=_*R,M=w*R,N=new Set(r.plainGroups??[]),T=n.overview&&!L&&f.length>0&&n.focusId!==null,B=T&&f.length>0&&f.every(m=>N.has(m));if(T)for(let m of f)B&&r.besideTheMap!==!0?Y.add(be(m)):Y.delete(be(m));let te=T&&!B&&f.length===1?f[0]:void 0,K=te!==void 0&&(r.screens?.[te]?.length??0)>0,V,ee=n.overview===!0&&L!==void 0&&r.besideTheMap===!0;n.overview&&(L||f.length>0)&&n.focusId&&!B&&!K&&!(T&&r.besideTheMap===!0)&&!ee?(V={x:i+(d-I)/2,y:o.height*.53-M/2,width:I,height:M},rn({id:n.focusId,kind:L?L.kind:f[0],plane:0,x:V.x,y:V.y,width:I,height:M,natural:{width:_,height:w},...L?{}:{aggregate:{kind:f.join("+"),memberIds:k.map(m=>m.id),label:r.plurals?.[n.focusId]??f.map(m=>Lt(t,m)).join(" and "),...v>0?{retired:v}:{}}}})):n.overview||(L?rn({id:L.id,kind:L.kind,plane:0,x:i+(d-O)/2,y:E.focusY,width:O,height:q}):f.length>0&&n.focusId&&rn({id:n.focusId,kind:f[0],plane:0,x:i+(d-F)/2,y:E.focusY,width:F,height:q,aggregate:{kind:f.join("+"),memberIds:k.map(m=>m.id),label:r.plurals?.[n.focusId]??f.map(m=>Lt(t,m)).join(" and "),...v>0?{retired:v}:{}}}));let X=26,me=52,ie=22,ve=Math.round(o.relationSize.width*.75),ke=Math.max(1,Math.floor((d-o.gap)/(ve+o.gap))),$e=o.unit/16,ae=Math.max(2,Math.floor((E.relationH+o.gap)/(X*$e+o.gap))),Se=S.length>ke*ae,ot={schema:t,graph:e,focusId:L?.id,expanded:Y,...o.relevance?{relevance:o.relevance}:{},...n.selection?{selection:n.selection}:{},plural:m=>Lt(t,m),...o.today?{today:o.today}:{}},oe=Se?Math.max(o.gap,ie*$e):o.gap,Ge,Ze;if(!Se)Ge=S.map(m=>({id:m.node.id,kind:m.node.kind,node:m.node,...m.via?{via:m.via}:{}})),Ze=Array.from({length:Math.max(1,Math.ceil(Ge.length/ke))},(m,j)=>Array.from({length:Math.min(ke,Ge.length-j*ke)},(U,ne)=>j*ke+ne));else{let m=Math.max(1,Math.floor((E.relationH+oe)/(me*$e+oe))),j=new Map;for(let ye of S){let Ee=Eo(ye),At=j.get(Ee);At?At.push(ye):j.set(Ee,[ye])}let U=Oo([...j.values()].map(ye=>ye.length),ke,m),ne=[...j.values()].map((ye,Ee)=>Ao(ye,{...ot,budget:U[Ee]}));Ge=ne.flat();let we=ne.map((ye,Ee)=>ne.slice(0,Ee).reduce((At,no)=>At+no.length,0)),Ue=ne.map(()=>0);Ze=$n(ne.map(ye=>ye.length),ke).map(ye=>ye.map(Ee=>we[Ee]+Ue[Ee]++))}let kt=Ze.length,Je=kt===1?E.relationH:(E.relationH-oe*(kt-1))/kt,Ce=z(Math.max(...Ze.map(m=>m.length),1),Ge.length<=2?Math.round(o.relationSize.width*1.35):o.relationSize.width,Je),lt=[];Ze.forEach((m,j)=>{let U=Ra(m.length,Ce,o.gap,d,E.relationY+j*(Je+oe));m.forEach((ne,we)=>lt[ne]={...U[we],x:U[we].x+i})}),Ge.forEach((m,j)=>{let U=lt[j];rn({id:m.id,kind:m.kind,plane:1,x:U.x,y:U.y,width:Ce.width,height:Ce.height,...m.via?{via:m.via}:{},...m.aggregate?{aggregate:m.aggregate}:{},...Se&&!m.aggregate?{compact:!0}:{}})});let rt=new Set(u.keys());for(let m of k)rt.add(m.id);let je=new Map;for(let m of e.allNodes()){let j=je.get(m.kind);j?j.push(m):je.set(m.kind,[m])}let Ne=new Set(f.length>0?f:L?[L.kind]:[]),We=[];for(let m of t.kinds){if(y.has(m))continue;let j=je.get(m)??[],U=j.filter(h);We.push({id:be(m),kind:m,members:U.sort(at),retired:j.length-U.length,...Ne.has(m)?{focused:!0}:{}})}for(let m of We)m.kind===n.relation&&(m.raised=!0);We.sort(at);let ze=_r(t,Ne),_e=!n.overview&&t.kinds.some(m=>ze.rankOf(m)==="primary"),Ve=[];for(let m of We)if(!n.overview&&Y.has(m.id)&&m.members.length>0)for(let j of m.members)Ve.push({id:j.id,kind:j.kind});else{let j=_e?ze.rankOf(m.kind):void 0,U=j==="secondary"?ze.parentOf(m.kind):void 0;Ve.push({id:m.id,kind:m.kind,...m.raised?{raised:!0}:{},...m.focused?{focused:!0}:{},...n.overview&&Y.has(m.id)?{opened:!0}:{},...j?{rank:j}:{},...U&&!Y.has(be(U))?{nestedUnder:be(U)}:{},aggregate:{kind:m.kind,memberIds:m.members.map(ne=>ne.id),label:r.plurals?.[m.kind]??Lt(t,m.kind),...m.retired>0?{retired:m.retired}:{}}})}let ct=2;if(Ve.length<=H((W?240:o.contextSize.width)*a))for(let m of Ve)delete m.nestedUnder;let ut=new Map;for(let m of Ve){if(m.nestedUnder===void 0)continue;let j=ut.get(m.nestedUnder)??0;j>=ct?delete m.nestedUnder:ut.set(m.nestedUnder,j+1)}let et=Ve.filter(m=>m.nestedUnder!==void 0),re=Ve.filter(m=>m.nestedUnder===void 0),Me=H((W?240:o.contextSize.width)*a),it=!n.overview&&re.length>Me,Mt=Math.max(0,Me-1),ht=m=>m.focused?0:m.raised?1:2,ft=new Set([...re].map((m,j)=>({item:m,at:j})).sort((m,j)=>ht(m.item)-ht(j.item)||m.at-j.at).slice(0,Mt).map(({item:m})=>m.id)),Ie=new Set(it?re.filter(m=>!ft.has(m.id)).map(m=>m.id):[]),on=et.filter(m=>!Ie.has(m.nestedUnder)),Rn=et.filter(m=>Ie.has(m.nestedUnder)),Rt=it?[...re.filter(m=>ft.has(m.id)),{id:ur,kind:"",beyond:[...re.filter(m=>Ie.has(m.id)),...Rn].map(m=>m.kind)}]:re,Ke=n.overview?{width:Math.min(220,d/6.5),height:Math.min(92,o.height*.125)}:$(Rt.length,(W?240:o.contextSize.width)*a,E.contextH),C=o.relevance?.flagged,he=(m,j)=>{let U=Mo(t,m);if(!U)return{};let ne=U.values.map(()=>0),we=0;for(let Ue of j){let ye=U.values.indexOf(e.getNode(Ue)?.[U.field]);ye<0?we++:ne[ye]++}return{states:{field:U.field,values:[...U.values.map((Ue,ye)=>({value:Ue,tier:U.tiers[ye],count:ne[ye]})),...we>0?[{value:null,tier:"waiting",count:we}]:[]]}}},ce=n.overview?Io(Rt.map(m=>{let j=m.aggregate?.memberIds??[],U=C?j.filter(ne=>C.has(ne)).length:0;return{id:m.id,kind:m.kind,count:j.length,opened:Y.has(m.id)?qt(Xt(j.length))*a:0,openedMin:Y.has(m.id)?qt(Math.min(ko,Xt(j.length)))*a:0,nameplate:zr(m.aggregate?.label??Lt(t,m.kind),j.length,U,Mo(t,m.kind)!==void 0,a),weight:U*1e3+j.length,...f.includes(m.kind)&&(r.screens?.[m.kind]?.length??0)>0?{marquee:{width:wo+12,height:bo(r.screens[m.kind].map(ne=>ne.title),wo,r.nameWidth)+8}}:{}}}),t,{width:o.width-l,height:o.height-c},o.chrome?{...o.inset,right:Math.min(o.inset?.right??0,8)}:o.inset??{},{...o.cityOrder?{order:o.cityOrder}:{},...o.plots?{plots:o.plots}:{},...r.cityZoom&&r.cityZoom!==1?{zoom:r.cityZoom}:{},keep:[...n.selection??[],...n.focusId?[n.focusId]:[]].flatMap(m=>m.startsWith("kind:")?[m.slice(5)]:m.startsWith("aggregate:")&&!m.includes("|")?[m.slice(10)]:ee&&m===L?.id?[L.kind]:[]),...r.tilt!==void 0?{tilt:r.tilt}:{},pan:{x:n.pan?.x??0,y:n.pan?.y??0},...V||o.chrome?.length?{avoid:[...V?[V]:[],...o.chrome??[]]}:{}}):null,Re=new Map(ce?.placed.map(m=>[m.id,m.plot])??[]),tt=new Map(ce?.placed.map(m=>[m.id,m.nameplate])??[]),Et=ce?ce.placed.map(({x:m,y:j,depth:U,width:ne,height:we})=>({x:m,y:j,depth:U,width:ne,height:we})):Ma(Rt.length,Ke,o.gap,d,E.contextY,W?.97:qr).map(m=>({...m,x:m.x+i})),En=.74,Ot=.8,Zn=52*a,Jn=86*a,Yt=(m,j)=>Math.min(1,m+(1-m)*j),eo=new Map;Rt.forEach((m,j)=>{let U=Et[j],ne=U.width??Ke.width,we=U.height??Ke.height,Ue=m.rank==="secondary"?En:1,ye=ce?ne:Math.max(Math.min(ne,Co*a),ne*Ue),Ee=ce?we:Math.max(Xr*a,we*Ue);eo.set(m.id,{x:U.x+(ne-ye)/2,y:U.y+(we-Ee),depth:m.rank==="secondary"?Yt(U.depth,.5):U.depth,width:ye,height:Ee})});let On=[],An=Et[Et.length-1],to=new Map;for(let m of on)to.set(m.nestedUnder,(to.get(m.nestedUnder)??0)+1);let or=new Map;for(let m of on){let j=eo.get(m.nestedUnder);if(j){let U=to.get(m.nestedUnder)??1,ne=or.get(m.nestedUnder)??0;or.set(m.nestedUnder,ne+1);let we=.98,Ue=Ke.width*Ot,ye=Math.max(Jn,Math.min(Ue,j.width/(we*(U-1)+1))),Ee=Math.max(Zn,Ke.height*Ot*(ye/Ue)),At=ye*we,no=(U-1)*At+ye;On.push({...m,x:j.x+(j.width-no)/2+ne*At,y:Math.max(0,j.y-Ee+Math.min(Ee*.5,16)),width:ye,height:Ee,depth:Yt(j.depth,.8)})}else if(An){let U=Ke.width*Ot,ne=Ke.height*Ot;On.push({...m,x:An.x,y:An.y,width:U,height:ne,depth:Yt(An.depth??1,.8)})}}for(let m of Rt)On.push({...m,...eo.get(m.id)});return On.forEach(m=>{rn({id:m.id,kind:m.kind,plane:2,x:m.x,y:m.y,width:m.width,height:m.height,...m.aggregate?{aggregate:m.aggregate}:{},...m.raised?{raised:!0}:{},...m.focused?{focused:!0}:{},...m.opened?{opened:!0}:{},...m.opened?{openedRows:Math.max(1,Math.floor((Math.max(qt(Math.min(ko,Xt(m.aggregate?.memberIds.length??0))),qt(Xt(m.aggregate?.memberIds.length??0))*(ce?.frame.openedShare??1))-Ar)/vo))}:{},...m.rank?{rank:m.rank}:{},...m.nestedUnder?{nestedUnder:m.nestedUnder}:{},...m.beyond?{beyond:m.beyond}:{},...Re.has(m.id)?{plot:Re.get(m.id)}:{},...tt.has(m.id)?{nameplate:tt.get(m.id)}:{},...ce&&m.aggregate?he(m.kind,m.aggregate.memberIds):{},depth:m.depth})}),{nodes:s,connectors:Ur(e,u,n),width:o.width,height:o.height,...ce?{city:ce.frame}:{},...l>0||c>0?{visible:{width:o.width-l,height:o.height-c}}:{}};function rn(m){let j=n.overview&&Oe(m.id)!==null?void 0:n.pins[m.id],U=j?{...m,x:j.x,y:j.y,pinned:!0}:{...m,pinned:!1},ne=n.pan?{...U,x:U.x+n.pan.x,y:U.y+n.pan.y}:U;s.push(ne),u.set(ne.id,ne)}}function No(e,t,n){let r=e.nodes.find(l=>l.id===t);if(!r||r.screenOf!==void 0)return null;let o={...r,x:n.x,y:n.y,pinned:!0},a=o.x+o.width/2,i=o.y+o.height/2;return{...e,nodes:e.nodes.map(l=>l.id===t?o:l),connectors:e.connectors.map(l=>l.from===t?{...l,x1:a,y1:i}:l.to===t?{...l,x2:a,y2:i}:l)}}function Bo(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 xe=(e,t,n)=>e+(t-e)*n;function Qr(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}var Zr=new WeakMap;function Ea(e){let t=Zr.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 a of o.aggregate?.memberIds??[]){let i=r.get(a);i?i.push(o):r.set(a,[o])}}return t={byId:n,groupsOf:r},Zr.set(e,t),t}var Jr=new WeakMap;function ei(e,t){let n=Jr.get(t);if(n||Jr.set(t,n=new WeakMap),n.has(e))return n.get(e);let r=Oa(e,t);return n.set(e,r),r}function Oa(e,t){let{byId:n,groupsOf:r}=Ea(t);if(e.screenOf!==void 0){let i=n.get(be(e.screenOf));if(i)return{...e,x:i.x,y:i.y,width:i.width,height:i.height}}if(Tt(e.id)||Oe(e.id)!==null){let i=(e.aggregate?.memberIds??[]).map(s=>n.get(s)).filter(s=>s!==void 0);if(i.length===0)return null;let l=i.map(Qr),c=l.reduce((s,u)=>s+u.x,0)/l.length,d=l.reduce((s,u)=>s+u.y,0)/l.length;return{...e,x:c-e.width/2,y:d-e.height/2}}let o=r.get(e.id)?.find(i=>i.id===be(e.kind)||i.id===Ae(e.kind));if(!o)return null;let a=Qr(o);return{...e,x:a.x-e.width/2,y:a.y-e.height/2}}function jt(e,t,n){let r=Math.max(0,Math.min(1,n)),o=new Map(e.nodes.map(s=>[s.id,s])),a=new Map(t.nodes.map(s=>[s.id,s])),i=[];for(let[s,u]of o){let h=a.get(s);if(h){i.push($o(u,h,r,1));continue}let y=ei(u,t)??u;i.push($o(u,y,r,1-r))}for(let[s,u]of a){if(o.has(s))continue;let h=ei(u,e)??u;i.push($o(h,u,r,r))}let l=new Map(e.connectors.map(s=>[s.id,s])),c=new Map(t.connectors.map(s=>[s.id,s])),d=[];for(let[s,u]of l){let h=c.get(s);d.push(h?{...Aa(u,h,r),opacity:1}:{...u,opacity:1-r})}for(let[s,u]of c)l.has(s)||d.push({...u,opacity:r});return{nodes:i.filter(s=>s.opacity>0).sort((s,u)=>s.id<u.id?-1:s.id>u.id?1:0),connectors:d.filter(s=>s.opacity>0).sort((s,u)=>s.id<u.id?-1:s.id>u.id?1:0),width:xe(e.width,t.width,r),height:xe(e.height,t.height,r),t:r,...ti(e.city,t.city,r)?{city:ti(e.city,t.city,r)}:{}}}function ti(e,t,n){return e?t?{cell:xe(e.cell,t.cell,n),...e.tilt!==void 0||t.tilt!==void 0?{tilt:xe(e.tilt??.5,t.tilt??.5,n)}:{},originX:xe(e.originX,t.originX,n),originY:xe(e.originY,t.originY,n),pan:{x:xe(e.pan.x,t.pan.x,n),y:xe(e.pan.y,t.pan.y,n)},extent:{x:xe(e.extent.x,t.extent.x,n),y:xe(e.extent.y,t.extent.y,n),width:xe(e.extent.width,t.extent.width,n),height:xe(e.extent.height,t.extent.height,n)}}:e:t}function $o(e,t,n,r){return{id:t.id,kind:t.kind,plane:xe(e.plane,t.plane,n),x:xe(e.x,t.x,n),y:xe(e.y,t.y,n),width:xe(e.width,t.width,n),height:xe(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.nameplate?{nameplate:t.nameplate}:{},...t.states?{states:t.states}:{},...t.screenOf?{screenOf:t.screenOf}:{},...t.depth===void 0?{}:{depth:xe(e.depth??1,t.depth,n)},...t.natural?{natural:t.natural}:{}}}function Aa(e,t,n){return{...t,x1:xe(e.x1,t.x1,n),y1:xe(e.y1,t.y1,n),x2:xe(e.x2,t.x2,n),y2:xe(e.y2,t.y2,n)}}function Fn(e){let t=Math.max(0,Math.min(1,e));return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function La(e,t){let n=[];for(let o=0;o<e.length;o+=1){let a=e[o],i=e[(o+1)%e.length];if(a.y===i.y)continue;let l=Math.min(a.y,i.y),c=Math.max(a.y,i.y);t<l||t>=c||n.push(a.x+(t-a.y)/(i.y-a.y)*(i.x-a.x))}n.sort((o,a)=>o-a);let r={x0:0,x1:0};for(let o=0;o+1<n.length;o+=2){let a={x0:n[o],x1:n[o+1]};a.x1-a.x0>r.x1-r.x0&&(r=a)}return r}function Ia(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 Ta(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 Pa(e){let t=0,n=0,r=0;for(let o=0;o<e.length;o+=1){let a=e[o],i=e[(o+1)%e.length],l=a.x*i.y-i.x*a.y;t+=l,n+=(a.x+i.x)*l,r+=(a.y+i.y)*l}if(Math.abs(t)<1e-9){let o=e.reduce((a,i)=>({x:a.x+i.x,y:a.y+i.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 Ca(e,t){let{room:n,height:r,size:o,floor:a,measure:i=xo,lines:l=2}=t,c=(f,p)=>f.every(b=>i(b,p)<=n)&&f.length*p*1.15<=r;if(c([e],o))return{lines:[e],fontSize:o,whole:!0};let d=e.split(/\s+/);if(l>1&&d.length>1){let f=1,p=1/0,b=0;for(let v=0;v<d.length-1;v+=1){b+=d[v].length+1;let L=Math.abs(b-e.length/2);L<p&&(p=L,f=v+1)}let k=[d.slice(0,f).join(" "),d.slice(f).join(" ")];if(c(k,o))return{lines:k,fontSize:o,whole:!0};for(let v=o;v>=a;v-=o*.06)if(c(k,v))return{lines:k,fontSize:v,whole:!0}}for(let f=o;f>=a;f-=o*.06)if(c([e],f))return{lines:[e],fontSize:f,whole:!0};let s=i(e,a)/Math.max(1,e.length),u=Math.floor(n/s)-1;if(u<4||a*1.15>r)return null;let h=e.slice(0,u),y=h.lastIndexOf(" ");return{lines:[`${y>3?h.slice(0,y):h}\u2026`],fontSize:a,whole:!1}}var Na=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1;var Q=se(Te(),1);var xt=se(Te(),1);function ni(e){let[t,n]=(0,xt.useState)(()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(e).matches);return(0,xt.useEffect)(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let r=window.matchMedia(e),o=()=>n(r.matches);return o(),r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[e]),t}function Ba(){let e=()=>typeof document>"u"?null:document.documentElement.getAttribute("data-graview-motion"),[t,n]=(0,xt.useState)(e);return(0,xt.useEffect)(()=>{if(typeof document>"u"||typeof MutationObserver>"u")return;let r=new MutationObserver(()=>n(e()));return r.observe(document.documentElement,{attributes:!0,attributeFilter:["data-graview-motion"]}),n(e()),()=>r.disconnect()},[]),t}function oi(e){let t=ni("(prefers-reduced-motion: reduce)"),n=ni("(prefers-reduced-transparency: reduce)"),r=Ba();return kr({off:!e,reducedMotion:r==="reduce"||r!=="full"&&t,reducedTransparency:n})}var $a=xr*1.5,Ha=30;function ri(e,t){let[n,r]=(0,xt.useState)(!1),o=e&&!n;return(0,xt.useEffect)(()=>{if(!o||!t||typeof requestAnimationFrame>"u")return;let a=[],i=0,l=0,c=d=>{if(i>0&&a.push(d-i),i=d,a.length>=Ha){if(!Sr(a,$a)){r(!0);return}a.length=0}l=requestAnimationFrame(c)};return l=requestAnimationFrame(c),()=>cancelAnimationFrame(l)},[o,t]),o}var He=se(Te(),1);var Da=520;function Fa(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function ii(e,t={}){let n=t.duration??Da,r=(t.enabled??!0)&&!Fa(),o=(0,He.useRef)(e),[a,i]=(0,He.useState)(()=>jt(e,e,1)),l=(0,He.useRef)(a),c=(0,He.useRef)(null),d=(0,He.useRef)(null);return(0,He.useEffect)(()=>{if(!r||typeof requestAnimationFrame>"u"){o.current=e;let p=jt(e,e,1);if(l.current=p,i(p),typeof requestAnimationFrame>"u")return;let b=requestAnimationFrame(()=>{let k=jt(e,e,1);l.current=k,i(k)});return()=>cancelAnimationFrame(b)}let s=performance.now(),h=d.current!==null&&l.current.t<1&&s-d.current<n?d.current:s;d.current=h;let y=Fn(Math.min(1,(s-h)/n)),x=o.current,f=p=>{let b=Math.min(1,(p-h)/n),k=y>=1?1:(Fn(b)-y)/(1-y),v=jt(x,e,Math.max(0,k));l.current=v,i(v),b<1?c.current=requestAnimationFrame(f):(d.current=null,o.current=e,c.current=requestAnimationFrame(()=>{let L=jt(e,e,1);l.current=L,i(L),c.current=null}))};return c.current=requestAnimationFrame(f),()=>{c.current!==null&&cancelAnimationFrame(c.current);let p=l.current;o.current={...e,...p.city?{city:p.city}:{},nodes:p.nodes.map(b=>({...b,plane:Math.round(b.plane)})),connectors:p.connectors}}},[e,n,r]),a}function ai(e=1100){let{store:t}=pe(),[n,r]=(0,He.useState)(()=>new Set);return(0,He.useEffect)(()=>{let o=null,a=t.subscribe(i=>{r(new Set(i.touched)),o&&clearTimeout(o),o=setTimeout(()=>r(new Set),e)});return()=>{a(),o&&clearTimeout(o)}},[t,e]),n}var ja={marks:new Map,acts:[]};function si(e=4e3){let{store:t}=pe(),[n,r]=(0,He.useState)(ja);return(0,He.useEffect)(()=>{let o=null,a=t.subscribe((i,l)=>{r(c=>{let d=new Map(c.marks),s=[...c.acts];for(let u of l){if(u.undoes!==void 0){let x=s.find(p=>p.batch===u.undoes||p.wrote.length>0),f=s.filter(p=>u.writes.some(b=>p.wrote.includes(b)));for(let p of f.length>0?f:x?[x]:[]){for(let b of p.wrote)d.delete(b);s=s.filter(b=>b.batch!==p.batch)}continue}if(u.author.kind!=="agent")continue;let h=u.author.id??"the seat";for(let x of u.writes)d.set(x,h);s.find(x=>x.batch===u.batch)?s=s.map(x=>x.batch===u.batch?{...x,wrote:[...new Set([...x.wrote,...u.writes])]}:x):s=[{batch:u.batch,who:h,intent:u.batchIntent??u.intent,at:u.at,wrote:[...u.writes]},...s].slice(0,12)}return d.size===c.marks.size&&s===c.acts&&d.size===0?c:{marks:d,acts:s}}),o&&clearTimeout(o),o=setTimeout(()=>r(c=>c.marks.size===0?c:{...c,marks:new Map}),e)});return()=>{a(),o&&clearTimeout(o)}},[t,e]),n}var Wt=se(Le(),1),Xe=16;function di({marks:e,questions:t=[],whereIs:n,stageRef:r,width:o,height:a}){if(e.size===0&&t.length===0)return null;let i=r.current,l=i?.getBoundingClientRect()??null,c=[];for(let[s,u]of e){let h=null;if(i&&l&&typeof CSS<"u"){let p=i.querySelector(`[data-graview-pick="${CSS.escape(s)}"]`)?.getBoundingClientRect();p&&p.width>0&&p.height>0&&(h={x:p.left-l.left,y:p.top-l.top,width:p.width,height:p.height})}if(h??=n(s),!h)continue;let y=Math.min(Math.max(h.x+h.width-Xe/2,Xe/2),o-Xe/2),x=Math.min(Math.max(h.y-Xe/4,Xe/2),a-Xe/2);c.push({id:s,who:u,x:y,y:x})}let d=[];for(let s of t){let u=n(s.id);u&&d.push({...s,x:Math.min(Math.max(u.x+u.width/2,Xe),o-Xe),y:Math.min(Math.max(u.y-Xe/2,Xe),a-Xe)})}return c.length===0&&d.length===0?null:(0,Wt.jsxs)("div",{className:"graview-seat-marks","data-testid":"seat-marks","data-graview-seat-marks":c.length,children:[c.map(({id:s,who:u,x:h,y})=>(0,Wt.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:h,top:y,"--graview-hue":dn(u)},children:"\u25C6"},s)),d.map(s=>(0,Wt.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,Wt.jsx)("span",{"aria-hidden":"true",children:"?"}),(0,Wt.jsx)("span",{className:"graview-seat-asking-said",children:s.asks})]},`asking:${s.id}`))]})}var J=se(Le(),1);function Wa({hue:e,mode:t}){let n=t==="docked";return(0,J.jsxs)("svg",{viewBox:"0 0 32 38","aria-hidden":"true",children:[(0,J.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,J.jsx)("line",{x1:"16",y1:"3.5",x2:"16",y2:"7"}),(0,J.jsx)("circle",{cx:"16",cy:"2.6",r:"1.5",fill:"none"}),(0,J.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,J.jsx)("line",{x1:"11",y1:"12.5",x2:"21",y2:"12.5",strokeWidth:"2"}):(0,J.jsxs)(J.Fragment,{children:[(0,J.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,J.jsx)("circle",{cx:"13.4",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),(0,J.jsx)("circle",{cx:"18.6",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),t==="reading"?(0,J.jsx)("line",{x1:"10.2",y1:"12.5",x2:"21.8",y2:"12.5",strokeWidth:"0.8",opacity:"0.7"}):null]}),(0,J.jsx)("line",{x1:"16",y1:"16",x2:"16",y2:"18.5"}),(0,J.jsx)("polygon",{points:"16,18.5 24,22.5 16,26.5 8,22.5",fill:"currentColor",fillOpacity:"0.22"}),(0,J.jsx)("polygon",{points:"8,22.5 16,26.5 16,33.5 8,29.5",fill:"currentColor",fillOpacity:"0.08"}),(0,J.jsx)("polygon",{points:"24,22.5 16,26.5 16,33.5 24,29.5",fill:"currentColor",fillOpacity:"0.3"}),t==="writing"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)("polyline",{points:"24,24 28.5,20.5"}),(0,J.jsx)("line",{x1:"27.5",y1:"19",x2:"30",y2:"21.5",strokeWidth:"1.8"})]}):(0,J.jsx)("line",{x1:"24",y1:"24",x2:"26.5",y2:"29"}),(0,J.jsx)("line",{x1:"8",y1:"24",x2:"5.5",y2:"29"}),(0,J.jsx)("path",{d:"M9.5 33.5 v2.2 h4"}),(0,J.jsx)("path",{d:"M22.5 33.5 v2.2 h-4"})]}),(0,J.jsx)("title",{children:`robot, ${t}`})]})}function Va({hue:e}){return(0,J.jsxs)("svg",{viewBox:"0 0 22 24","aria-hidden":"true",style:{color:`hsl(${Math.round(e)} 50% 48%)`},children:[(0,J.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,J.jsx)("circle",{cx:"11",cy:"6",r:"4.2"}),(0,J.jsx)("path",{d:"M3 23 C3 15.5 6 13 11 13 C16 13 19 15.5 19 23"})]}),(0,J.jsx)("title",{children:"somebody"})]})}function li({width:e,whereIs:t}){let{who:n,following:r,follow:o}=pe(),a=Tr([...n.values()],t,e);return a.length===0?null:(0,J.jsx)("div",{className:"graview-occupants","data-testid":"occupants","data-graview-occupants":a.length,children:a.map((i,l)=>{if(i.kind==="over")return(0,J.jsx)("div",{className:"graview-presence-over","data-testid":"presence-over","data-graview-over-by":i.presence.participant,style:{left:i.box.x-3,top:i.box.y-3,width:i.box.width+6,height:i.box.height+6,"--graview-hue":i.presence.hue}},`over:${i.presence.participant}`);if(i.kind==="count")return(0,J.jsxs)("span",{className:"graview-figure-count","data-testid":"presence-count","data-graview-at":i.at,style:{left:i.point.x,top:i.point.y},title:`${i.n} more here`,children:["+",i.n]},`count:${i.at}:${l}`);let c=i.presence.hue,d=dr(i.presence)||"somebody";if(i.kind==="edge")return(0,J.jsxs)("button",{type:"button",className:"graview-figure-edge","data-testid":"presence-edge","data-graview-person":i.presence.participant,style:{right:`calc(${Math.max(8,e-i.point.x)}px + var(--graview-dock, 0px))`,top:i.point.y},onClick:()=>o(i.presence.participant),"aria-label":`${d} is somewhere else \u2014 press to go where they are`,children:["\u2192 ",d]},`edge:${i.presence.participant}`);if(i.kind==="robot")return(0,J.jsxs)("div",{className:"graview-figure","data-graview-figure":`theirs:${i.presence.participant}`,"data-graview-theirs":"","data-graview-mode":i.mode,"data-graview-at":i.presence.robot?.at??"",style:{transform:`translate(${i.point.x.toFixed(1)}px, ${i.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,J.jsx)("span",{className:"graview-figure-body",role:"img","aria-label":`${d}'s agent \u2014 ${i.mode}`,style:{cursor:"default"},children:(0,J.jsx)(Wa,{hue:c,mode:i.mode})}),(0,J.jsxs)("span",{className:"graview-figure-name",children:[d,"'s agent"]})]},`robot:${i.presence.participant}`);let s=r?.participant===i.presence.participant;return(0,J.jsxs)("div",{className:"graview-figure","data-graview-figure":i.presence.participant,"data-graview-person":"","data-graview-at":i.at,"data-graview-audience":i.audience?"":void 0,"data-graview-followed":s?"":void 0,style:{transform:`translate(${i.point.x.toFixed(1)}px, ${i.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,J.jsx)("button",{type:"button",className:"graview-figure-body","aria-label":`${d} is here${s?". Press to stop following":". Press to go where they go"}`,"aria-pressed":s,onClick:u=>{u.stopPropagation(),o(s?null:i.presence.participant)},onPointerDown:u=>u.stopPropagation(),children:(0,J.jsx)(Va,{hue:c})}),(0,J.jsx)("span",{className:"graview-figure-name",children:d})]},`person:${i.presence.participant}`)})})}var Wn=se(Te(),1),bn=se(Le(),1),ci={left:"\u2190",right:"\u2192",top:"\u2191",bottom:"\u2193"},Ho=36,wn=56;function ui({result:e,schema:t,chrome:n=[],onGo:r}){let o=To(e);if(o.length===0)return null;let a=s=>(s??[]).flatMap(u=>{let h=e.nodes.find(y=>y.id===u.id);return h?[{left:h.x+u.x,top:h.y+u.y,right:h.x+u.x+u.width,bottom:h.y+u.y+u.height}]:[]}),i=a(e.city?.showings),l=a(e.city?.nameplates),c=[...i,...l,...n.map(s=>({left:s.x,top:s.y,right:s.x+s.width,bottom:s.y+s.height}))],d=[];for(let s of["left","right","top","bottom"]){let u=e.visible??e,h=s==="left"||s==="right"?u.height:u.width,y=s==="left"||s==="right",x=s==="bottom"?za:s==="top"?wn:_a+wn/2,f=-1/0,p=[],b=o.filter(k=>k.side===s).sort((k,v)=>k.along-v.along);for(let k of b){let v=sn(t,k.kind),L=Ya(v),W=y?jn:L/2,D=h-x-(y?0:W),Z=Math.max(wn,k.along,f+W+Ga);if(Z>D)continue;let{at:G,inset:g}=Ka([...c,...p],s,Z,L,u,h);if(G>D+.5)continue;f=G+W,p.push(hi(s,G,L,u,g));let E=s==="left"?{left:g,top:G,transform:"translateY(-50%)"}:s==="right"?{right:`calc(${g}px + var(--graview-dock, 0px))`,top:G,transform:"translateY(-50%)"}:s==="top"?{top:g,left:G,transform:"translateX(-50%)"}:{bottom:`calc(${g}px + var(--graview-scene-foot, var(--graview-sheet, 0px)))`,left:G,transform:"translateX(-50%)"};d.push((0,bn.jsx)("button",{type:"button",className:"graview-edge-sign","data-graview-past-edge":k.id,"aria-label":`${v}, past the ${s} edge \u2014 bring it into view`,title:`${v} is past the ${s} edge`,tabIndex:-1,onPointerDown:A=>A.stopPropagation(),onClick:A=>{A.stopPropagation(),r(k.by)},style:{...Ua,...E},children:s==="right"||s==="bottom"?`${v} ${ci[s]}`:`${ci[s]} ${v}`},k.id))}}return(0,bn.jsx)(bn.Fragment,{children:d})}var Ya=e=>(e.length+2)*7.4+22,jn=Ho/2,xn=6,Ga=6,za=236,_a=56;function hi(e,t,n,r,o=xn){return e==="left"||e==="right"?{left:e==="left"?o:r.width-o-n,right:e==="left"?o+n:r.width-o,top:t-jn,bottom:t+jn}:{left:t-n/2,right:t+n/2,top:e==="top"?o:r.height-o-Ho,bottom:e==="top"?o+Ho:r.height-o}}function Ka(e,t,n,r,o,a){let i=t==="left"||t==="right",l=f=>hi(t,f,r,o),c=f=>e.find(p=>{let b=l(f);return b.left<p.right&&p.left<b.right&&b.top<p.bottom&&p.top<b.bottom}),d=c(n);if(!d)return{at:n,inset:xn};let s=i?jn:r/2,u=f=>{let p=n;for(let b=0;b<12;b++){let k=c(p);if(!k)return p;if(p=f>0?(i?k.bottom:k.right)+s+4:(i?k.top:k.left)-s-4,p>a-wn||p<wn)return null}return null},h=u(1);if(h!==null)return{at:h,inset:xn};let y=u(-1);if(y!==null)return{at:y,inset:xn};let x=t==="left"?d.right:t==="right"?o.width-d.left:t==="top"?d.bottom:o.height-d.top;return{at:n,inset:Math.max(xn,x+4)}}var Ua={position:"absolute",zIndex:Be.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"};function fi(e){let[t,n]=(0,Wn.useState)(null);return(0,Wn.useLayoutEffect)(()=>{let r=e.current,o=null;for(let l=r?.parentElement??null,c=0;l&&!o&&c<4;l=l.parentElement,c++)o=l.querySelector(":scope > [data-graview-scene-trail]");if(!r||!o)return;let a=()=>{let l=r.getBoundingClientRect(),c=o.getBoundingClientRect(),d=c.width>0&&c.height>0?{x:c.left-l.left,y:c.top-l.top,width:c.width,height:c.height}:null;n(s=>s===d||s&&d&&s.x===d.x&&s.y===d.y&&s.width===d.width&&s.height===d.height?s:d)};if(a(),typeof ResizeObserver>"u")return;let i=new ResizeObserver(a);return i.observe(o),()=>i.disconnect()},[e]),t}var wt=se(Te(),1),Xa=180;function mi({view:e,result:t,frame:n,panned:r,closer:o,screenId:a,setCamera:i}){let l=(0,wt.useRef)(new Map),c=Math.round((t.nodes.find(u=>u.id===a)?.height??0)/16),d=(0,wt.useRef)(e.overview??!1),s=(0,wt.useRef)(null);if((0,wt.useEffect)(()=>{if(!e.overview||!a||!t.city){if(d.current&&!e.overview)return;i(D=>D.x===0&&D.y===0?D:{x:0,y:0});return}let u=t.nodes.find(D=>D.id===a);if(!u)return;let h=o>1&&u.screenOf?t.nodes.find(D=>D.id===be(u.screenOf)):void 0,y=h?{x:Math.min(u.x,h.x),y:Math.min(u.y,h.y),width:Math.max(u.x+u.width,h.x+h.width)-Math.min(u.x,h.x),height:Math.max(u.y+u.height,h.y+h.height)-Math.min(u.y,h.y)}:u;if(y.x>=0&&y.y>=0&&y.x+y.width<=t.width&&y.y+y.height<=t.height&&!h)return;let f=24,p=(D,Z,G)=>D<f?f-D:D+Z>G-f?G-f-(D+Z):0,b=pt(t),k=e.pan??{x:0,y:0},v=h?r.x+(t.width/2-(y.x+y.width/2)):r.x+p(y.x,y.width,t.width),L=t.height/2-(y.y+y.height/2),W=h?r.y+(u.y+L<f?f-u.y:L):r.y+p(y.y,y.height,t.height);i({x:(h?v:Math.max(-b.x,Math.min(b.x,v)))-k.x,y:(h?W:Math.max(-b.y,Math.min(b.y,W)))-k.y})},[a,e.overview,o,e.within?.view,c]),n.city){let u=new Map;for(let h of n.nodes){if(!h.plot||Math.round(h.plane)!==2)continue;let y=Zt(h.plot.col+h.plot.side/2,h.plot.row+h.plot.side/2,n.city.cell,n.city.tilt);u.set(h.id,{x:n.city.originX+r.x+y.x,y:n.city.originY+r.y+y.y})}l.current=u}return(0,wt.useEffect)(()=>{let u=e.overview??!1,h=d.current&&!u;if(d.current=u,u&&s.current&&(clearTimeout(s.current),s.current=null),!h)return;let y=e.focusId?yt(e.focusId)[0]:void 0,x=y?l.current.get(be(y)):void 0,f=t.nodes.find(p=>p.id===e.focusId);if(!x||!f){i({x:0,y:0});return}i({x:x.x-(f.x+f.width/2),y:x.y-(f.y+f.height/2)}),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{s.current=null,i({x:0,y:0})},Xa)},[e.overview]),(0,wt.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),{gliding:()=>s.current!==null}}var Yn=se(Te(),1),Vn="[data-graview-view]";function qa(e,t){let n=null;for(let r=e?.closest(Vn)??null;r&&t.contains(r);r=r.parentElement?.closest(Vn)??null)n=r;return n}function yi(e,t){let n=e.getBoundingClientRect();return{left:n.left,top:n.top,right:n.right-t.right,bottom:n.bottom-t.bottom,box:n}}function gi(e,t,n){let r=(0,Yn.useRef)({dock:t,reveal:n});r.current={dock:t,reveal:n},(0,Yn.useEffect)(()=>{let o=e.current;if(!o)return;let a=c=>{let{dock:d}=r.current;if(c.key!=="Tab"||c.defaultPrevented||d.right<=0&&d.bottom<=0)return;let s=yi(o,d),u=[];for(let h of o.querySelectorAll(Vn)){if(h.parentElement?.closest(Vn)||h.inert||h.contains(document.activeElement))continue;let y=h.getBoundingClientRect(),x=Math.max(y.left,s.box.left),f=Math.min(y.right,s.box.right),p=Math.max(y.top,s.box.top),b=Math.min(y.bottom,s.box.bottom);f<=x||b<=p||!(d.right>0&&x>=s.right-1||d.bottom>0&&p>=s.bottom-1)||(h.inert=!0,u.push(h))}u.length!==0&&setTimeout(()=>{for(let h of u)h.inert=!1},0)},i=c=>{let d=c.target,s=qa(d,o);if(!s)return;let u=!0;try{u=d?.matches(":focus-visible")??!0}catch{}requestAnimationFrame(()=>{for(let h=s.parentElement;h;h=h===o?null:h.parentElement)h.scrollTop!==0&&(h.scrollTop=0),h.scrollLeft!==0&&(h.scrollLeft=0);u&&s.isConnected&&l(s)})},l=c=>{let d=yi(o,r.current.dock),s=c.getBoundingClientRect(),u=12,h=(f,p,b,k)=>k-b>p-f-2*u||b<f+u?f+u-b:k>p-u?p-u-k:0,y=h(d.left,d.right,s.left,s.right),x=h(d.top,d.bottom,s.top,s.bottom);(Math.abs(y)>=1||Math.abs(x)>=1)&&r.current.reveal(Math.round(y),Math.round(x))};return document.addEventListener("keydown",a,!0),o.addEventListener("focusin",i),()=>{document.removeEventListener("keydown",a,!0),o.removeEventListener("focusin",i)}},[e])}var de=se(Te(),1);function pi(){let e=(0,de.useRef)(null),[t,n]=(0,de.useState)({right:0,bottom:0});return(0,de.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let o=()=>{let i=r.getBoundingClientRect(),l={right:Math.round(i.width),bottom:Math.round(i.height)};n(c=>c.right===l.right&&c.bottom===l.bottom?c:l)};if(o(),typeof ResizeObserver>"u")return;let a=new ResizeObserver(o);return a.observe(r),()=>a.disconnect()},[]),{probe:e,dock:t}}function xi(){let[e,t]=(0,de.useState)(null),n=(0,de.useRef)(null),r=(0,de.useRef)(0),o=(0,de.useCallback)(i=>{n.current=i,r.current===0&&(r.current=requestAnimationFrame(()=>{r.current=0,t(n.current)}))},[]),a=(0,de.useCallback)(()=>{r.current!==0&&cancelAnimationFrame(r.current),r.current=0;let i=n.current;return n.current=null,i&&t(null),i},[]);return{held:e,place:o,release:a}}function wi({stage:e,pan:t,setView:n,settled:r}){let o=(0,de.useRef)({x:0,y:0}),a=(0,de.useRef)(0),i=(0,de.useRef)(!1),l=(0,de.useRef)(r);l.current=r;let c=(0,de.useCallback)(()=>[...e.current?.querySelectorAll("[data-graview-world]")??[]],[e]),d=(0,de.useCallback)(()=>{a.current===0&&(a.current=requestAnimationFrame(()=>{a.current=0;let{x,y:f}=o.current,p=x===0&&f===0?"":`translate3d(${x}px, ${f}px, 0)`;for(let b of c())b.style.transform=p}))},[c]),s=(0,de.useCallback)(()=>{i.current=!1;for(let x of c())x.style.transform="";l.current()},[c]),u=(0,de.useCallback)((x,f)=>{o.current={x:x.x-f.x,y:x.y-f.y},d()},[d]),h=(0,de.useCallback)(()=>{let{x,y:f}=o.current;return x===0&&f===0?!1:(o.current={x:0,y:0},i.current=!0,n(p=>{let b=p.pan??{x:0,y:0};return Ht(p,{x:b.x+x,y:b.y+f})}),window.setTimeout(()=>{i.current&&s()},300),!0)},[n,s]);(0,de.useLayoutEffect)(()=>{i.current&&s()},[t,s]);let y=(0,de.useCallback)(()=>o.current,[]);return{shiftTo:u,settle:h,settling:i,offset:y}}var Qa=4;function bi({view:e,panned:t,limit:n,panWithin:r,moveByTransform:o,setView:a,setDragging:i,noteMoved:l,shift:c,district:d}){let s=(0,de.useRef)(!1),u=(0,de.useRef)(null),h=b=>{let k=e.pan??{x:0,y:0};u.current={kind:"pan",fromX:b.clientX,fromY:b.clientY,baseX:k.x,baseY:k.y,moved:!1}};return{onGroundDown:b=>{b.button===0&&(b.target.closest("[data-graview-view]")||h(b))},onCardDown:(b,k)=>{if(k.button===0){if(b.screenOf!==void 0&&!k.target.closest("[data-graview-grip]")){h(k);return}if(e.overview&&Oe(b.id)!==null){h(k);return}u.current={kind:"card",id:b.id,fromX:k.clientX,fromY:k.clientY,baseX:b.x-t.x,baseY:b.y-t.y,moved:!1}}},onDragMove:b=>{let k=u.current;if(!k)return;let v=b.clientX-k.fromX,L=b.clientY-k.fromY;if(!k.moved){if(Math.hypot(v,L)<Qa)return;k.moved=!0,i(!0),b.currentTarget.setPointerCapture(b.pointerId)}if(k.kind==="pan"){let W=r(n(),{x:k.baseX+v,y:k.baseY+L});o?c.shiftTo(W,e.pan??{x:0,y:0}):a(D=>Ht(D,W))}else k.id&&d.place({id:k.id,x:k.baseX+v,y:k.baseY+L})},onDragUp:()=>{c.settle();let b=d.release();b&&a(k=>yn(k,b.id,{x:b.x,y:b.y})),u.current?.moved&&(s.current=!0,setTimeout(()=>s.current=!1,0),l()),u.current=null,!c.settling.current&&i(!1)},swallow:s}}function vi({stage:e,view:t,setView:n}){let r=(0,de.useRef)({view:t,charge:0,coolUntil:0,lastScale:1});r.current.view=t;let o=(0,de.useRef)(()=>{}),a=(0,de.useRef)(()=>{});return(0,de.useEffect)(()=>{let i=e.current;if(!i)return;let l=(u,h)=>{let y=r.current;if(h<y.coolUntil)return;let x=y.view.overview??!1;u!==x&&(y.coolUntil=h+600,y.charge=0,n(ln(y.view,u)))},c=u=>{let h=r.current,y=h.view.overview??!1;if(u.ctrlKey){if(u.preventDefault(),!y){if(h.charge+=u.deltaY,Math.abs(h.charge)<60)return;h.charge>0?l(!0,performance.now()):h.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(),a.current(-u.deltaX,-u.deltaY))},d=u=>{u.preventDefault(),r.current.lastScale=1},s=u=>{u.preventDefault();let h=r.current,y=u.scale??1;if(!(h.view.overview??!1)){y<.72&&l(!0,performance.now());return}let x=y/(h.lastScale||1);h.lastScale=y;let f=u;o.current(x,f.clientX,f.clientY)};return i.addEventListener("wheel",c,{passive:!1}),i.addEventListener("gesturestart",d),i.addEventListener("gesturechange",s),()=>{i.removeEventListener("wheel",c),i.removeEventListener("gesturestart",d),i.removeEventListener("gesturechange",s)}},[n,e]),{zoomAbout:o,panBy:a}}var ki={directed:"You",autonomous:"An agent","co-edited":"You and an agent",rule:"A rule"};function Do(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 a=e.find(i=>i.aggregate?.memberIds.includes(o));a&&r.add(a.id)}return r}function Fo(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 jo(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?Kt(n,t):mr(Kt(n,t),Kt(r,t),e.plane-n);return{x:e.x,y:e.y,width:e.width*o,height:e.height*o}}function Jt(e,t){if(typeof getComputedStyle>"u"||getComputedStyle(e).visibility==="hidden")return null;let n=-1/0,r=-1/0,o=1/0,a=1/0,i=e.getBoundingClientRect();n=Math.max(n,i.left),r=Math.max(r,i.top),o=Math.min(o,i.right),a=Math.min(a,i.bottom);let l=e.parentElement;for(;l&&l!==t;){let d=getComputedStyle(l);if(d.overflowX!=="visible"||d.overflowY!=="visible"){let s=l.getBoundingClientRect();d.overflowX!=="visible"&&(n=Math.max(n,s.left),o=Math.min(o,s.right)),d.overflowY!=="visible"&&(r=Math.max(r,s.top),a=Math.min(a,s.bottom))}l=l.parentElement}if(o-n<=2||a-r<=2)return null;let c=t.getBoundingClientRect();return{x:n-c.left,y:r-c.top,width:o-n,height:a-r}}function De(e,t,n,r=!1){if(!e||typeof document>"u")return null;let o=e.querySelector(`[data-graview-view="${CSS.escape(t)}"]`);if(!o)return null;let a=(n?o.querySelector(".graview-kind-block"):null)??o.querySelector('[data-graview-primitive="panel"], .graview-kind-face, .graview-kind-card')??(r?null:o.querySelector(':scope > [data-graview-primitive="chip"]'))??o;return Jt(a,e)}function Gn(e,t,n,r,o){let a=d=>e.nodes.find(s=>s.id===d);if(o.startsWith("screen:")){let d=e.nodes.find(s=>s.id===be(o.slice(7)));return d?De(t,d.id,!0)??nt(d,n):null}let i=a(o),l=Oe(o);if(!i&&l!==null&&(i=a(Ae(l))),!i&&Tt(o)){let[d]=yt(o);d&&(i=a(be(d)))}if(!i){let d=r.places().find(s=>s.as===o);d&&(i=a(Ae(d.kind))??a(be(d.kind)))}if(i||(i=[...e.nodes].filter(d=>d.aggregate?.memberIds.includes(o)).sort((d,s)=>d.plane-s.plane)[0]),!i)return null;let c=e.city!==void 0;return De(t,i.id,c&&i.aggregate!==void 0&&Math.round(i.plane)===2)??nt(i,n)}var st=se(Te(),1);var le=se(Le(),1);function Mi({kinds:e}){let{store:t}=pe(),{view:n,go:r}=mo(),o=(0,st.useRef)(null),a=go("districts",{align:"start"}),i=a.open,l=h=>sn(t.schema,h),c=h=>t.graph.allNodes().filter(y=>y.kind===h).length,d=h=>!n.overview&&n.focusId===Ae(h),s=e.filter(h=>!d(h)),u=h=>{a.setOpen(!1);let y=o.current?.querySelector(".graview-beyond-more")??null;d(h)||r(mt(n,Ae(h))),y?.focus({preventScroll:!0});let x=`[data-graview-view="${Ae(h)}"][tabindex], [data-graview-view="${be(h)}"][tabindex]`,f=40,p=()=>{let b=document.querySelector(x);b?b.focus({preventScroll:!0}):--f>0&&requestAnimationFrame(p)};requestAnimationFrame(p)};return(0,le.jsxs)("div",{ref:o,className:"graview-beyond","data-graview-beyond":e.length,"data-graview-beyond-open":i?"":void 0,children:[(0,le.jsxs)("button",{type:"button",className:"graview-beyond-more","data-testid":"beyond-more",...a.trigger,"aria-haspopup":"menu",title:`${s.length} more district${s.length===1?"":"s"} \u2014 press to see them`,onPointerDown:h=>h.stopPropagation(),onClick:h=>{h.stopPropagation(),a.toggle()},children:[(0,le.jsxs)("span",{className:"graview-beyond-count",children:["+",s.length]}),(0,le.jsx)("span",{className:"graview-beyond-word",children:"more"}),(0,le.jsx)("span",{className:"graview-beyond-chevron","aria-hidden":"true",children:i?"\u25BE":"\u25B4"})]}),i?(0,le.jsx)("ul",{...a.pane,className:"graview-beyond-list",role:"menu","aria-label":"The other districts","data-testid":"beyond-list",style:yo,onPointerDown:h=>h.stopPropagation(),children:e.map(h=>(0,le.jsx)("li",{role:"none",children:(0,le.jsxs)("button",{type:"button",role:"menuitem","data-graview-pick":be(h),"aria-current":d(h)?"location":void 0,title:d(h)?`${l(h)} \u2014 where you are`:`Go to ${l(h)}`,onPointerDown:y=>y.stopPropagation(),onClick:y=>{y.stopPropagation(),u(h)},children:[(0,le.jsx)("span",{className:"graview-beyond-name",children:l(h)}),(0,le.jsx)("span",{className:"graview-beyond-tally",children:d(h)?"here":c(h)})]})},h))}):null]})}function Za(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"||Vo(e[r],t[r]))}function Vo(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 a=0;a<e.length;a++)if(!Vo(e[a],o[a]))return!1;return!0}let r=Object.keys(e);return r.length!==Object.keys(t).length?!1:r.every(o=>Vo(e[o],t[o]))}var Ri=(0,st.memo)(Ei,(e,t)=>e.mode===t.mode&&e.selected===t.selected&&e.fidelity===t.fidelity&&Za(e.node,t.node));function Ei({node:e,mode:t,selected:n,fidelity:r}){let{store:o,views:a,view:i}=pe(),l=Ct(),c=Ir(),d=Lr(),s=e.aggregate||Tt(e.id)||Oe(e.id)!==null?"many":"one",u={cardinality:s,fidelity:r??fr[es(e.plane)].fidelity},h=s==="many"&&e.id===i.focusId?i.within?.view:void 0,y=a.resolve(e.kind,u,h),x=y?.view,f=a.resolve(e.kind,{cardinality:"many",fidelity:"full"})?.view,p=f!==void 0&&f.generic!==!0,b=e.aggregate?.memberIds,k=(0,st.useMemo)(()=>(b??[]).map(W=>o.graph.getNode(W)).filter(W=>W!==void 0),[b,o,l]),v={...e.aggregate?{nodes:k,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:d,...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.nameplate?{nameplate:e.nameplate}:{},...e.states?{states:e.states}:{},...e.aggregate?.retired?{retired:e.aggregate.retired}:{},...e.rank?{rank:e.rank}:{},...e.nestedUnder?{nestedUnder:e.nestedUnder}:{},...p?{hasOwnView:!0}:{}};if(!x)return(0,le.jsx)(ts,{node:e,props:v});let L=[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.nameplate??"",e.states?e.states.values.map(W=>W.count).join(","):"",e.aggregate?Wo(e.aggregate.memberIds):"",e.aggregate?.retired??"",c?Wo(c):"",d?Wo(d):"",p].join("|");return(0,le.jsx)(uo,{mode:t,children:(0,le.jsx)(Pr,{kind:v.label??e.kind,...y?.title?{view:y.title}:{},children:(0,le.jsx)(Ja,{signature:L,graph:l,draw:()=>(0,le.jsx)(x,{...v})})},`${e.id}|${y?.title??""}`)})}var Ja=(0,st.memo)(function({draw:t}){return(0,le.jsx)(le.Fragment,{children:t()})},(e,t)=>e.signature===t.signature&&e.graph===t.graph);function es(e){return Math.max(0,Math.min(2,Math.round(e)))}function ts({node:e,props:t}){return(0,le.jsxs)("div",{style:{padding:8,font:"13px/1.4 system-ui",overflow:"hidden"},children:[(0,le.jsx)("strong",{children:t.label??e.kind}),t.nodes?(0,le.jsxs)("div",{children:[t.nodes.length," items"]}):(0,le.jsx)("div",{children:e.id})]})}var Oi=(0,st.memo)(function({node:t}){let{store:n}=pe(),r=Pt(),o=t.aggregate,a=o.opens,i=o.memberIds.length,l=Gt(n.schema,o.kind,i),c=o.memberIds.slice(0,3).map(h=>{let y=n.graph.getNode(h),x=y?n.schema.tryDefinition(y.kind):void 0;return y?x?.label?x.label(y):String(y.label??h):h}),d=o.memberIds,s=(0,st.useMemo)(()=>{let h=r?Pn(r):null;return h?d.filter(y=>h.has(y)).length:0},[r,d]),u=a.in==="picture";return(0,le.jsxs)("div",{className:"graview-band-group","data-graview-band":a.in,"data-graview-band-count":i,"data-graview-emphasis":r?s>0?"lit":"dimmed":void 0,title:u?`${o.label} \u2014 press twice to see them all, arranged`:`${o.label}: ${l} \u2014 press twice to open`,children:[(0,le.jsxs)("span",{className:"graview-band-group-head",children:[(0,le.jsx)("span",{className:"graview-band-group-name",children:o.label}),(0,le.jsx)("span",{className:"graview-band-group-open","aria-hidden":"true",children:u?"\u2197":"\u25BE"})]}),(0,le.jsxs)("span",{className:"graview-band-group-names",children:[u?null:(0,le.jsxs)("span",{className:"graview-band-group-count",children:[l,s>0?` \xB7 ${s} match`:""," \xB7 "]}),c.join(" \xB7 "),i>c.length?" \u2026":""]})]})}),Si=new WeakMap;function Wo(e){let t=Si.get(e);if(t!==void 0)return t;let n=2166136261;for(let o of e){for(let a=0;a<o.length;a++)n=Math.imul(n^o.charCodeAt(a),16777619);n=Math.imul(n^44,16777619)}let r=`${e.length}:${(n>>>0).toString(36)}`;return Si.set(e,r),r}var bt=se(Te(),1);function Yo(e,t,n){let r=e.aggregate?[...e.aggregate.memberIds]:[e.id];return n?r.every(a=>t.includes(a))?t.filter(a=>!r.includes(a)):[...t,...r.filter(a=>!t.includes(a))]:r}function Ai(){let[e,t]=(0,bt.useState)(16);return(0,bt.useEffect)(()=>{if(typeof window>"u")return;let n=document.documentElement,r=()=>{let a=parseFloat(getComputedStyle(n).fontSize);Number.isFinite(a)&&t(i=>Math.abs(i-a)<.5?i:a)};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 Li(e){let[t,n]=(0,bt.useState)(null);return(0,bt.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,bt.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let o=l=>{!l||l.width===0||l.height===0||n(c=>{let d={width:Math.round(l.width),height:Math.round(l.height)};return c&&c.width===d.width&&c.height===d.height?c:d})},a=new ResizeObserver(l=>o(l[0]?.contentRect)),i=()=>o(r.getBoundingClientRect());return a.observe(r),addEventListener("resize",i),()=>{a.disconnect(),removeEventListener("resize",i)}},[e]),t}function Go(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 fe=se(Te(),1);var zo=(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 _o(e,t){let n=[],r=[];for(let a=0;a<e.length-1;a++){let i=e[a],l=e[a+1],c=!zo(i,t);c&&r.length===0&&r.push(i);for(let d=1;d<=48;d++){let s=d/48,u={x:i.x+(l.x-i.x)*s,y:i.y+(l.y-i.y)*s},h=!zo(u,t);if(h===c)continue;let y=(d-1)/48,x=s;for(let b=0;b<10;b++){let k=(y+x)/2,v={x:i.x+(l.x-i.x)*k,y:i.y+(l.y-i.y)*k};!zo(v,t)===c?y=k:x=k}let f=(y+x)/2,p={x:i.x+(l.x-i.x)*f,y:i.y+(l.y-i.y)*f};h?r=[p]:(r.push(p),r.length>=2&&n.push(r),r=[]),c=h}c&&r.push(l)}return r.length>=2&&n.push(r),n}function vn(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 a=(e.y+t.y)/2;return[e,{x:e.x,y:a},{x:t.x,y:a},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 Ye=e=>Math.round(e*100)/100,vt=e=>e.map(t=>t.map((n,r)=>`${r===0?"M":"L"} ${Ye(n.x)} ${Ye(n.y)}`).join(" ")).join(" ");function Ko(e,t){if(e.length<3)return vt([e]);let n=[`M ${Ye(e[0].x)} ${Ye(e[0].y)}`];for(let o=1;o<e.length-1;o++){let a=e[o-1],i=e[o],l=e[o+1],c=Math.hypot(i.x-a.x,i.y-a.y),d=Math.hypot(l.x-i.x,l.y-i.y),s=Math.min(t,c/2,d/2),u={x:i.x+(a.x-i.x)/(c||1)*s,y:i.y+(a.y-i.y)/(c||1)*s},h={x:i.x+(l.x-i.x)/(d||1)*s,y:i.y+(l.y-i.y)/(d||1)*s};n.push(`L ${Ye(u.x)} ${Ye(u.y)} Q ${Ye(i.x)} ${Ye(i.y)} ${Ye(h.x)} ${Ye(h.y)}`)}let r=e[e.length-1];return n.push(`L ${Ye(r.x)} ${Ye(r.y)}`),n.join(" ")}function Ti(e,t){return t==="orthogonal"?vt([e]):Ko(e,10)}function Pi(e,t,n){if(e==="orthogonal"){let l=vn(t.p0,t.p1),c=l.slice(1).map((u,h)=>Math.hypot(u.x-l[h].x,u.y-l[h].y)),d=c.reduce((u,h)=>u+h,0)||1,s=n*d;for(let u=0;u<c.length;u++){let h=c[u];if(s<=h||u===c.length-1){let y=h===0?0:Math.min(1,s/h),x=l[u],f=l[u+1];return{x:x.x+(f.x-x.x)*y,y:x.y+(f.y-x.y)*y}}s-=h}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),a=2*(1-n)*n,i=n*n;return{x:o*t.p0.x+a*r.x+i*t.p1.x,y:o*t.p0.y+a*r.y+i*t.p1.y}}function zn(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 Ci(e,t){let n=t.x-e.x,r=t.y-e.y,o=(n/2+r)/2,a=(r-n/2)/2;if(Math.abs(o)<1||Math.abs(a)<1)return[e,t];let i={x:e.x+2*o,y:e.y+o};return[e,i,t]}function Ni(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(a=>r.y<a.bottom+3&&r.y+r.height>a.top-3);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,a)=>o.x-a.x);return n.sort((r,o)=>r.top-o.top)}var kn=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Xo=(e,t)=>e.findIndex(n=>n.boxes.some(r=>kn(r,t)));function Bi(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 Qo(e,t){let n=[{from:-1/0,to:1/0}];for(let a of e){let i=[],l=-1/0;for(let d of a.boxes)i.push({from:l,to:d.x-12}),l=Math.max(l,d.x+d.width+12);i.push({from:l,to:1/0});let c=[];for(let d of n)for(let s of i){let u=Math.max(d.from,s.from),h=Math.min(d.to,s.to);h-u>=0&&c.push({from:u,to:h})}n=c}let r=t,o=1/0;for(let a of n){let i=Math.min(Math.max(t,a.from),a.to),l=a.from===-1/0||a.to===1/0,c=Math.abs(i-t)+(l?60:0);c<o&&(o=c,r=i)}return r}var qe=e=>({x:e.x,y:-(e.y+e.height),width:e.width,height:e.height}),_n=e=>e.map(t=>({x:t.x,y:-t.y}));function qo(e){let t=(r,o)=>Math.abs(r-o)<.5,n=e.filter((r,o)=>o===0||!(t(r.x,e[o-1].x)&&t(r.y,e[o-1].y)));return n.filter((r,o)=>{let a=n[o-1],i=n[o+1];return!a||!i||!(t(a.x,r.x)&&t(r.x,i.x)||t(a.y,r.y)&&t(r.y,i.y))})}function Zo(e,t,n){let r=e.boxes.filter(d=>!kn(d,t)&&d.y+d.height<=t.y+1&&d.x<t.x+t.width&&d.x+d.width>t.x),o=[{from:t.x+6,to:t.x+t.width-6}];for(let d of r)o=o.flatMap(s=>[{from:s.from,to:Math.min(s.to,d.x-12/2)},{from:Math.max(s.from,d.x+d.width+12/2),to:s.to}]).filter(s=>s.to>=s.from);let a=null;for(let d of o){let s=Math.min(Math.max(n,d.from),d.to);(a===null||Math.abs(s-n)<Math.abs(a-n))&&(a=s)}if(a!==null)return{x:a,tail:[{x:a,y:t.y}]};let i=n<t.x+t.width/2,l=Qo([e],i?t.x-12:t.x+t.width+12),c=t.y+t.height/2;return{x:l,tail:[{x:l,y:c},{x:l<t.x?t.x:t.x+t.width,y:c}]}}function Uo(e,t,n){let r=Zo({top:-e.bottom,bottom:-e.top,boxes:e.boxes.map(qe)},qe(t),n);return{x:r.x,head:_n(r.tail).reverse()}}function $i(e,t,n,r){let o=t;for(;o>r&&!e[o-1].boxes.some(a=>n>a.x-12/2&&n<a.x+a.width+12/2);)o--;return o}var Hi=(e,t)=>(e%3-1)*Math.max(0,Math.min(4,t/2-3));function Di(e,t,n,r,o,a,i,l){let c=f=>f<0?e[0].top-n:e[f+1].top-e[f].bottom,d=f=>(f<0?(n+e[0].top)/2:Bi(e,f,f+1))+Hi(l,c(f)),s=Zo(e[a],o,i),u=$i(e,a,s.x,t+1),h=d(t);if(u===t+1)return qo([...r.head,{x:r.x,y:h},{x:s.x,y:h},...s.tail]);let y=Qo(e.slice(t+1,u),s.x),x=d(u-1);return qo([...r.head,{x:r.x,y:h},{x:y,y:h},{x:y,y:x},{x:s.x,y:x},...s.tail])}function en(e,t,n,r=0){let o=Ni(n.some(s=>kn(s,e))&&n.some(s=>kn(s,t))?n:[...n,e,t]),a=Xo(o,e),i=Xo(o,t),l=e.x+e.width/2,c=t.x+t.width/2;if(a===i){if(!(a<o.length-1||o.length===1))return _n(en(qe(e),qe(t),n.map(qe),r));let u=Bi(o,a,a+1)+Hi(r,a<o.length-1?o[a+1].top-o[a].bottom:2*12),h=Uo(o[a],e,c),y=Uo(o[a],t,l);return qo([...h.head,{x:h.x,y:u},{x:y.x,y:u},...[...y.head].reverse()])}if(i<a)return _n(en(qe(e),qe(t),n.map(qe),r));let d=Uo(o[a],e,c);return Di(o,a,o[a].bottom,d,t,i,l,r)}function Jo(e,t,n,r=0){if(t.y+t.height<=e.y){let y=Jo(qe(e),qe(t),n.map(qe),r);return y?_n(y):null}let o=e.y+e.height;if(t.y<o)return null;let a=Ni([...n.filter(y=>y.y>=o&&!kn(y,t)),t]),i=Xo(a,t),l=t.x+t.width/2,c=Zo(a[i],t,l),d=$i(a,i,c.x,0),s=d===0?c.x:Qo(a.slice(0,d),c.x),u=Math.min(12,e.width/2),h=Math.min(Math.max(s,e.x+u),e.x+e.width-u);return Di(a,-1,o,{x:h,head:[{x:h,y:o}]},t,i,l,r)}function Fi(e,t=16){let n=new Map;for(let o of e){let a=o.a<o.b?`${o.a}\0${o.b}`:`${o.b}\0${o.a}`,i=n.get(a);i?i.push(o.key):n.set(a,[o.key])}let r=new Map;for(let o of n.values())o.forEach((a,i)=>r.set(a,(i-(o.length-1)/2)*t));return r}var Fe=se(Le(),1);function Un(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),a=!o&&r>.5*Math.min(e.height,t.height);if(o){let x={x:e.x+e.width,y:e.y+e.height/2},f={x:t.x+t.width,y:t.y+t.height/2};return{from:x,to:f,control:{x:Math.max(x.x,f.x)+18,y:(x.y+f.y)/2},mode:"stacked"}}if(a){let x={x:e.x+e.width/2,y:e.y},f={x:t.x+t.width/2,y:t.y};return{from:x,to:f,control:{x:(x.x+f.x)/2,y:Math.min(x.y,f.y)-18},mode:"abreast"}}let i={x:t.x+t.width/2,y:t.y+t.height/2},l={x:e.x+e.width/2,y:e.y+e.height/2},c=Kn(e,i),d=Kn(t,l),s=Math.hypot(d.x-c.x,d.y-c.y);if(s<8)return null;let u=Math.min(36,s*.12),h=-(d.y-c.y)/s,y=(d.x-c.x)/s;return{from:c,to:d,control:{x:(c.x+d.x)/2+h*u,y:(c.y+d.y)/2+y*u},mode:"direct"}}function Kn(e,t){let n=e.x+e.width/2,r=e.y+e.height/2,o=t.x-n,a=t.y-r;if(o===0&&a===0)return{x:n,y:r};let i=o===0?1/0:e.width/2/Math.abs(o),l=a===0?1/0:e.height/2/Math.abs(a),c=Math.min(i,l),d=Math.max(0,c*.98);return{x:n+o*d,y:r+a*d}}function ns(e,t,n){let r=t.get(e.from),o=t.get(e.to);if(!r||!o)return!1;if(n)return!0;let a=Math.round(r.plane)===1||Math.round(o.plane)===1,i=l=>!!l.aggregate&&Math.round(l.plane)===2;return a&&!i(r)&&!i(o)}var Wi=e=>({clips:new Map,members:new Map,marks:new Map,...e?{owed:e}:{}});function Vi(e,t){let n=Wi();for(let[r,o]of t){let a=e.querySelector(`[data-graview-view="${CSS.escape(r)}"]`);if(a!==null){for(let i of o)if(tn(e,a,i,n).length>0)return!0}}return!1}function Yi(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 a=n.get(o);a?a.push(r):n.set(o,[r])}return t.marks.set(e,n),n}function os(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 rs(e,t,n){let r=e.parentElement;for(;r!==null;){let o=os(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 tn(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 a=o.get(n);if(a)return a;let i=e.getBoundingClientRect(),l=[];for(let d of Yi(t,r).get(n)??[]){if(d.closest("[data-graview-offstage]"))continue;let s=d.getBoundingClientRect();s.width<=2||s.height<=2||rs(d,s,r)&&l.push({x:s.left-i.left,y:s.top-i.top,width:s.width,height:s.height})}l.sort((d,s)=>d.width*d.height-s.width*s.height),o.set(n,l);let c=t.getAttribute("data-graview-view");return l.length===0&&r.owed&&c!==null&&r.owed.set(c,(r.owed.get(c)??new Set).add(n)),l}function Xn(e,t,n,r,o,a){let i=new Map(e.map(v=>[v.id,v])),l=Wi(a),c=new Map,d=v=>{if(!n||typeof document>"u")return null;let L=c.get(v);return L===void 0&&(L=n.querySelector(`[data-graview-view="${CSS.escape(v)}"]`),c.set(v,L)),L},s=new Map;for(let v of e){let L=De(n,v.id,r)??nt(v,o);L&&s.set(v.id,L)}let u=new Map;if(n&&typeof document<"u"){let v=n.getBoundingClientRect();for(let L of n.querySelectorAll("[data-graview-pick], [data-graview-slot]")){if(L.closest("[data-graview-offstage]"))continue;let W=L.getAttribute("data-graview-pick")??L.getAttribute("data-graview-slot");if(W===null)continue;let D=L.getBoundingClientRect();if(D.width<=2||D.height<=2||D.width>v.width*.6&&D.height>v.height*.6)continue;let Z=u.get(W),G={x:D.left-v.left,y:D.top-v.top,width:D.width,height:D.height};Z?Z.push(G):u.set(W,[G])}}let h=(v,L)=>{let W=[];for(let[D,Z]of s)D!==v&&D!==L&&W.push(Z);for(let[D,Z]of u)D!==v&&D!==L&&W.push(...Z);return W},y=v=>Math.round(i.get(v)?.plane??-1)===1,x=[];for(let v of e){let L=s.get(v.id);L&&Math.round(v.plane)===1&&x.push(L)}if(!r&&n&&typeof document<"u"){let v=n.getBoundingClientRect();for(let L of n.querySelectorAll("[data-graview-relation] > span")){let W=L.getBoundingClientRect();W.width>0&&W.height>0&&x.push({x:W.left-v.left,y:W.top-v.top,width:W.width,height:W.height})}}let f=(v,L)=>!r&&y(v)&&y(L)?x:void 0,p=r?void 0:e.find(v=>Math.round(v.plane)===0&&!v.aggregate),b=(v,L,W,D)=>{if(!p)return{};let Z=v.to===p.id&&W===p.id;if(!Z&&!(v.from===p.id&&L===p.id))return{};let G=Z?v.from:v.to,g=s.get(p.id),E=s.get(G);if(G===p.id||!y(G)||!g||!E)return{};let A=d(p.id),O=$=>A!==null&&Yi(A,l).get($)?.some(H=>!H.closest("[data-graview-offstage]"))===!0,F=D.map($=>$.from===p.id?$.to:$.from),z=F.length>0&&F.every(O);return{band:x,tie:{card:g,chip:E,cardIsTo:Z,toward:G,holds:i.get(G)?.aggregate?.memberIds??[G]},...z?{said:F}:{}}},k=[];for(let v of t){if(!ns(v,i,r))continue;let L=s.get(v.from),W=s.get(v.to);if(!L||!W)continue;let D=h(v.from,v.to),Z=v.edges,G=r&&Z.some(A=>A.from!==v.from&&tn(n,d(v.from),A.from,l).length>0||A.to!==v.to&&tn(n,d(v.to),A.to,l).length>0),g=f(v.from,v.to);if(r&&!G||v.loop||Z.length===0){k.push({key:v.id,connector:v,edges:Z,fromBox:L,toBox:W,fromAnchor:v.from,toAnchor:v.to,obstacles:D,hosts:[],...g?{band:g}:{},...b(v,v.from,v.to,Z)});continue}let E=new Map;for(let A of Z){let O=A.from===v.from?[]:tn(n,d(v.from),A.from,l),F=A.to===v.to?[]:tn(n,d(v.to),A.to,l),z=[v.from,v.to].find(M=>Math.round(i.get(M)?.plane??-1)===0);if(!r&&z!==void 0&&(z===v.from?A.from!==v.from:A.to!==v.to)&&tn(n,d(z),z===v.from?A.to:A.from,l).length>0)continue;let $=z!==void 0?i.get(z):void 0;if(!r&&$?.aggregate&&n&&(z===v.from?A.from!==v.from&&O.length===0:A.to!==v.to&&F.length===0))continue;let H=O.length>0?A.from:v.from,Y=F.length>0?A.to:v.to,S=`${v.id}|${H}|${Y}`,P=E.get(S);if(P){P.edges.push(A);continue}let q=O.length>0?O:[L],_=F.length>0?F:[W],w=q[0],R=_[0],I=1/0;for(let M of q)for(let N of _){let T=Math.hypot(M.x+M.width/2-(N.x+N.width/2),M.y+M.height/2-(N.y+N.height/2));T<I&&(I=T,w=M,R=N)}E.set(S,{edges:[A],fromBox:w,toBox:R,fromAnchor:H,toAnchor:Y})}for(let[A,O]of E)k.push({key:A,connector:v,obstacles:D,hosts:[...O.fromAnchor!==v.from?[L]:[],...O.toAnchor!==v.to?[W]:[]],...g?{band:g}:{},...O,...b(v,O.fromAnchor,O.toAnchor,O.edges)})}return k}function Gi(e,t,n){let r=new Map(t.map(i=>[i.id,i])),o=new Map;for(let i of n){let l=r.get(i.id);l&&(l.x!==i.x||l.y!==i.y)&&o.set(i.id,{x:i.x-l.x,y:i.y-l.y})}if(o.size===0)return[...e];let a=(i,l)=>{let c=o.get(l);return c?{...i,x:i.x+c.x,y:i.y+c.y}:i};return e.map(i=>{let{from:l,to:c}=i.connector;if(!o.has(l)&&!o.has(c))return i;let d=a(i.fromBox,l),s=a(i.toBox,c),u=i.tie&&{...i.tie,card:a(i.tie.card,i.tie.cardIsTo?c:l),chip:a(i.tie.chip,i.tie.toward)},h=y=>y===i.fromBox?d:y===i.toBox?s:i.tie&&y===i.tie.chip?u.chip:y;return{...i,fromBox:d,toBox:s,...u?{tie:u}:{},...i.band?{band:i.band.map(h)}:{}}})}function er(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 ji(e,t,n){let r=(1-t)*(1-n),o=(1-t)*n+t*(1-n),a=t*n;return{p0:er(e,t),c:{x:r*e.p0.x+o*e.c.x+a*e.p1.x,y:r*e.p0.y+o*e.c.y+a*e.p1.y},p1:er(e,n)}}function Sn(e,t){let n=d=>t.some(s=>d.x>s.x&&d.x<s.x+s.width&&d.y>s.y&&d.y<s.y+s.height),r=d=>!n(er(e,d)),a=(d,s,u)=>{for(let h=0;h<10;h++){let y=(d+s)/2;r(y)===u?d=y:s=y}return(d+s)/2},i=[],l=null,c=r(0);c&&(l=0);for(let d=1;d<=64;d++){let s=d/64,u=r(s);if(u===c)continue;let h=a((d-1)/64,s,c);u?l=h:l!==null&&(h-l>.001&&i.push(ji(e,l,h)),l=null),c=u}return l!==null&&1-l>.001&&i.push(ji(e,l,1)),i}function zi({strands:e,result:t,scheme:n,overview:r,selection:o,emphasis:a,stageRef:i,liveOf:l,onPickEdge:c,provisional:d,pointed:s=null}){let u=Bt(),h=new Set(t.nodes.filter(g=>g.plot!==void 0&&Math.round(g.plane)===2).map(g=>g.id)),y=g=>r&&t.city!==void 0&&h.has(g.from)&&h.has(g.to),x=Do(t.nodes,o),f=g=>x.size===0||x.has(g.from)||x.has(g.to),p=new Set(o.filter(g=>It(g)===null)),b=r?t.nodes.find(g=>Math.round(g.plane)===0):void 0,k=b?De(i.current,b.id,!1)??nt(b,n):null;if(e.length===0)return null;let v=g=>g.edges.some(E=>p.has(E.from)||p.has(E.to)),L=p.size>0&&e.some(v),W=new Map;for(let g of e)W.set(g.connector.id,(W.get(g.connector.id)??0)+1);let D=Fi(e.map(g=>({key:g.key,a:g.fromAnchor,b:g.toAnchor}))),Z=new Set,G=e.map((g,E)=>{let{connector:A,fromBox:O,toBox:F}=g,z={x:O.x+O.width/2,y:O.y+O.height/2},$={x:F.x+F.width/2,y:F.y+F.height/2},H=r?Kn(O,$):z,Y=r?Kn(F,z):$,S=A.loop===!0,{connector:P,style:q}=Qt(u,A.kind);if(!P.visible)return null;let _=S?Math.max(22,Math.min(O.width,O.height)*.3):0,w=S?{x:z.x+O.width*.22,y:z.y-O.height/2-_+7}:H,R=(H.x+Y.x)/2,I=(H.y+Y.y)/2,M=Math.hypot(Y.x-H.x,Y.y-H.y),N=Math.min(r?40:90,M*(r?.09:.16)),T=0,B=0;if(M>0){T=-(Y.y-H.y)/M,B=(Y.x-H.x)/M;let re=R-t.width/2,Me=I-t.height/2;if(k&&!S){let it=k.x+k.width/2,Mt=k.y+k.height/2;re=R-it,Me=I-Mt;let ht=Math.abs(T*(it-H.x)+B*(Mt-H.y)),ft=Math.hypot(k.width/2,k.height/2)*.85+24,Ie=((it-H.x)*(Y.x-H.x)+(Mt-H.y)*(Y.y-H.y))/(M*M);ht<ft&&Ie>.1&&Ie<.9&&(N=Math.min(180,Math.max(N,(ft-ht)*2)))}T*re+B*Me<0&&(T=-T,B=-B)}N+=2*(D.get(g.key)??0);let te=zn(P.route,{p0:H,c:{x:R+T*N,y:I+B*N},p1:Y}),K=y(A),V=P.route==="orthogonal"||K,ee=(re,Me)=>K?Ci(re,Me):vn(re,Me),X=!S&&g.tie?Jo(g.tie.card,g.tie.chip,g.band??[],E):null,me=X?g.tie.cardIsTo?X.reverse():X:!S&&g.band?en(O,F,g.band,E):null,ie=S||V||me?[]:Sn(te,[O,F,...g.obstacles]),ve=me?[me]:!S&&V?_o(ee(H,Y),[O,F,...g.obstacles]):[];if(!S&&ie.length===0&&ve.length===0)return null;let ke=ve[ve.length-1],$e=V||me?ve[0]?.[0]:ie[0]?.p0,ae=V||me?ke?.[ke.length-1]:ie[ie.length-1]?.p1,Se=re=>re.map(Me=>`M ${Me.p0.x} ${Me.p0.y} Q ${Me.c.x} ${Me.c.y} ${Me.p1.x} ${Me.p1.y}`).join(" "),ot=`M ${w.x-_} ${w.y} A ${_} ${_} 0 1 1 ${w.x+_} ${w.y} A ${_} ${_} 0 0 1 ${w.x-_} ${w.y}`,oe=S?ot:me?Ti(me,P.route):V?vt(ve):Se(ie),Ge=re=>({x:re.x-8,y:re.y-8,width:re.width+16,height:re.height+16}),Ze=[O,F,...g.hosts,...g.obstacles].map(Ge),kt=S?ot:me?vt(ve):V?vt(_o(ee(H,Y),Ze)):Se(Sn(te,Ze)),Je=g.edges.length===1?g.edges[0]:null,Ce=Je?$t(A.kind,Je.from,Je.to):null,lt=Ce!==null&&o.includes(Ce),rt=Ce!==null?d?.get(Ce):void 0,je=g.edges.some(re=>p.has(re.from)||p.has(re.to)),Ne=g.tie?.toward??"",We=g.tie!==void 0&&(s!==null&&(Ne===s||g.tie.holds.includes(s)||g.said?.includes(s)===!0)||p.has(Ne))&&!Z.has(Ne);We&&Z.add(Ne);let ze=!r&&p.size>0&&je||We,_e=a!==null&&A.kind===a||lt,Ve=l?.(A)!==void 0;if(r&&!Ve||!r&&!Ve&&p.size>0&&!je&&!_e&&!We||g.said!==void 0&&!We&&!g.said.some(re=>p.has(re))&&!_e)return null;let ct=r?Fo({emphasized:a!==null,stressed:_e,anyChosen:L,mine:je,touches:f(A),siblings:W.get(A.id)??1}):jo({edgeChosen:lt,lit:ze,anyLit:L||a!==null,own:q.opacity,kit:u.emphasis}),St=ze&&$e&&ae?g.tie?g.tie.cardIsTo?$e:ae:g.edges.some(re=>p.has(re.from))?ae:$e:null,ut=(0,Fe.jsxs)("g",{children:[(0,Fe.jsx)("path",{"data-graview-connector":A.kind,"data-graview-edges":g.edges.length,"data-graview-from":g.fromAnchor,"data-graview-to":g.toAnchor,"data-graview-lit":ze||void 0,"data-graview-activity":l?.(A)?.manner,"data-graview-provisional":rt!==void 0||void 0,opacity:ct*(A.opacity??1)*(rt!==void 0?mn:1),d:oe,fill:"none",stroke:Ut(q),strokeWidth:(ze?Math.max(1.6,po(q,r)):po(q,r))+(_e?.6:0),strokeDasharray:rt!==void 0?fn:Cn[q.pattern],strokeLinecap:"round"}),St?(0,Fe.jsx)("circle",{cx:St.x,cy:St.y,r:2.6,fill:Ut(q),opacity:ct}):null,S&&r?(0,Fe.jsx)("text",{x:w.x,y:w.y-_-5,textAnchor:"middle",opacity:ct,style:{font:"9px var(--graview-font-body, system-ui)",letterSpacing:"0.09em",textTransform:"uppercase",fill:"var(--graview-ink-faint)"},children:an(A.kind).toLowerCase()}):null]},g.key),et=null;return Ce&&c&&!S&&ct>=.2&&(et=(0,Fe.jsx)("path",{"data-graview-edge":Ce,className:"graview-edge-hit",d:kt,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:re=>{re.stopPropagation(),c(Ce,{x:re.clientX,y:re.clientY})},onContextMenu:re=>{re.preventDefault(),re.stopPropagation(),c(Ce,{x:re.clientX,y:re.clientY})},children:rt!==void 0?(0,Fe.jsx)("title",{children:rt}):null},`hit:${g.key}`)),{key:g.key,line:ut,hit:et}});return(0,Fe.jsxs)(Fe.Fragment,{children:[(0,Fe.jsx)("svg",{"aria-hidden":"true","data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Be.ties},children:G.map(g=>g?.line)}),G.some(g=>g?.hit)?(0,Fe.jsx)("svg",{"data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Be.tieLabels},children:G.map(g=>g?.hit)}):null]})}function _i(e,t,n){if(t.size===0||typeof MutationObserver>"u")return()=>{};let r=0,o=()=>{r=0,Vi(e,t)&&n()},a=()=>{r===0&&(r=requestAnimationFrame(o))},i=({target:c})=>{for(let d=c instanceof Element?c:c.parentElement;d&&d!==e;d=d.parentElement)if(t.has(d.getAttribute("data-graview-view")??""))return!0;return!1},l=new MutationObserver(c=>{c.some(i)&&a()});return l.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-graview-pick","data-graview-slot","data-graview-offstage"]}),a(),()=>{l.disconnect(),cancelAnimationFrame(r)}}var is=e=>e.length*8.4+16;function Ki(e,t){let n=new Map;for(let a of e){let i=n.get(a.key);i?i.push(a):n.set(a.key,[a])}let r=[...n.values()].map(a=>{let i=Math.min(...a.map(c=>c.top)),l=a.filter(c=>c.top-i<=12);return{key:a[0].key,text:a[0].text,left:Math.min(...l.map(c=>c.left)),right:Math.max(...l.map(c=>c.right)),top:i}});r.sort((a,i)=>a.top-i.top||a.left-i.left);let o=r.map(a=>{let i=Math.max(a.right-a.left,Math.min(300,is(a.text))),l=(a.left+a.right)/2;return{left:l-i/2,right:l+i/2}});return r.map((a,i)=>{let l=r.map((b,k)=>({other:b,at:k})).filter(({other:b})=>b!==a&&Math.abs(b.top-a.top)<=12),c=l.filter(({other:b})=>b.right<=a.left).map(({other:b,at:k})=>o[k].right+8<=(b.right+a.left)/2?o[k].right+8:(b.right+a.left+8)/2),d=l.filter(({other:b})=>b.left>=a.right).map(({other:b,at:k})=>o[k].left-8>=(a.right+b.left)/2?o[k].left-8:(a.right+b.left-8)/2),s=Math.max(t.left,...c),u=Math.min(t.right,...d),h=a.right-a.left,y=o[i].right-o[i].left,x=Math.max(h,Math.min(y,u-s)),f=(a.left+a.right)/2,p=h>=x?a.left:Math.max(s,Math.min(f-x/2,u-x));return{key:a.key,text:a.text,left:p,width:x,top:a.top}})}function qn(e){return e<640?{left:8,right:56}:{left:8,right:Math.round(Math.min(128,e*.107))}}function as(e){return Math.min(260,16+e.length*6.6)}var Mn=(e,t)=>Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));function Xi(e,t,n){let r=new Map;for(let i of e){let l=r.get(i.said);l?l.push(i):r.set(i.said,[i])}let o=[],a=[];for(let[i,l]of r){let c=l[0],d=as(i),{end:s,far:u}=c,h=p=>Math.max(0,Math.min(n.width-d,p)),y=[{x:h(s.x-d/2),y:u.y-22-6,width:d,height:22},{x:h(s.x-d/2),y:u.y+u.height+6,width:d,height:22},{x:u.x+u.width+6,y:s.y-22/2,width:d,height:22},{x:u.x-d-6,y:s.y-22/2,width:d,height:22}],x=y[0],f=1/0;for(let p of y){let k=p.x<0||p.y<0||p.x+p.width>n.width||p.y+p.height>n.height?1e9:0;for(let v of t)k+=Mn(p,v.title)*100+Mn(p,v.box);for(let v of o)k+=Mn(p,v)*100;if(k<f&&(f=k,x=p),k===0)break}o.push(x),a.push({said:i,keys:l.map(p=>p.key),...x})}return a}var Ui=(e,t,n=2)=>t.x>=e.x-n&&t.x<=e.x+e.width+n&&t.y>=e.y-n&&t.y<=e.y+e.height+n;function tr(e,t){let n=new Set;for(let r of e)(t.edgeId&&r.edgeId===t.edgeId||t.point&&(Ui(r.fromBox,t.point)||Ui(r.toBox,t.point))||t.ids?.some(o=>r.ids.includes(o))||t.box&&(Mn(t.box,r.fromBox)>0||Mn(t.box,r.toBox)>0))&&n.add(r.key);return n}var ge=se(Le(),1);function Qi(e){let t=Er(e);return t.length>0?new Map(t.map(n=>[$t(n.edge.kind,n.edge.from,n.edge.to),Rr(n)])):void 0}function Zi({frame:e,width:t,height:n,scheme:r,overview:o,selection:a,emphasis:i,stageRef:l,store:c,graphNodes:d,onPickEdge:s,liveOf:u,holding:h=!1,provisional:y,focusId:x=null,beside:f=!1}){let[p,b]=(0,fe.useState)(0),[k,v]=(0,fe.useState)(null),L=e.t<1,W=(0,fe.useRef)(""),D=(0,fe.useRef)([]),Z=(0,fe.useRef)(new Map),G=()=>[...l.current?.querySelectorAll("[data-graview-relation] > span")??[]].map($=>{let H=$.getBoundingClientRect();return`${Math.round(H.left)},${Math.round(H.top)},${Math.round(H.width)}`}).join(" ");(0,fe.useLayoutEffect)(()=>{if(L||h)return;W.current=G(),D.current=e.nodes;let $=new Map;v(Xn(e.nodes,e.connectors,l.current,o,r,$)),Z.current=$},[e,L,h,a,o,d,r,p,l]),(0,fe.useEffect)(()=>{let $=l.current;if(!(L||h||$===null))return _i($,Z.current,()=>b(H=>H+1))},[k,L,h,l]),(0,fe.useEffect)(()=>{if(L||h||o||typeof requestAnimationFrame>"u")return;let $=requestAnimationFrame(()=>{G()!==W.current&&b(H=>H+1)});return()=>cancelAnimationFrame($)},[k]);let g=e.nodes.map($=>$.id).join(`
4
- `);(0,fe.useLayoutEffect)(()=>{let $=l.current;if($===null||typeof window>"u")return;let H=0,Y=()=>{H===0&&(H=requestAnimationFrame(()=>{H=0,b(P=>P+1)}))};$.addEventListener("scroll",Y,{capture:!0,passive:!0}),window.addEventListener("resize",Y,{passive:!0});let S=typeof ResizeObserver>"u"?null:new ResizeObserver(Y);if(S){S.observe($);for(let P of $.querySelectorAll("[data-graview-view]"))S.observe(P)}return()=>{H!==0&&cancelAnimationFrame(H),$.removeEventListener("scroll",Y,{capture:!0}),window.removeEventListener("resize",Y),S?.disconnect()}},[l,g]);let[E,A]=(0,fe.useState)(null),O=(k??[]).some($=>$.tie!==void 0);if((0,fe.useEffect)(()=>{let $=l.current;if(!O||$===null)return;let H=S=>{let P=S.target?.closest?.("[data-graview-pick], [data-graview-view]");A(P?.getAttribute("data-graview-pick")??P?.getAttribute("data-graview-view")??null)},Y=()=>A(null);return $.addEventListener("pointerover",H),$.addEventListener("focusin",H),$.addEventListener("pointerleave",Y),$.addEventListener("focusout",Y),()=>{$.removeEventListener("pointerover",H),$.removeEventListener("focusin",H),$.removeEventListener("pointerleave",Y),$.removeEventListener("focusout",Y)}},[O,l]),L)return null;let F=(k&&h?Gi(k,D.current,e.nodes):k)??Xn(e.nodes,e.connectors,null,o,r),z=new Set;for(let $ of F){if($.edges.length!==1)continue;let H=$.edges[0];z.add(`${$.connector.kind}|${H.from}|${H.to}`)}return(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(zi,{strands:F,result:e,scheme:r,overview:o,selection:a,emphasis:i,stageRef:l,onPickEdge:s,liveOf:u,pointed:E,...y?{provisional:y}:{}}),o&&gn(a,{overview:o,focusId:x,beside:f},$=>c.graph.getNode($)?.kind).records.length>0?(0,ge.jsx)(fe.Suspense,{fallback:null,children:(0,ge.jsx)(ds,{frame:e,width:t,height:n,stageRef:l,tick:p,store:c,graphVersion:d,selection:a,view:{overview:o,focusId:x,beside:f},rulers:y?{...qi,unsureOf:($,H,Y)=>y.get($t($,H,Y))}:qi})}):null,o?null:(0,ge.jsx)(cs,{...y?{provisional:y}:{},stageRef:l,nodes:e.nodes,scheme:r,selection:a,store:c,graphNodes:d,overview:o,width:t,height:n,onPickEdge:s,alreadyDrawn:z,tick:p})]})}var qi={visibleRect:Jt,clipQuadratic:Sn,unsureDash:fn,unsureOpacity:mn},ss=hn(zt(()=>(__graviewPreload(import.meta.url,["./chunk.KAWP4RNR.js","./chunk.7OLVQ2FZ.js","./chunk.NOZEHLWG.js","./chunk.UVLPVHID.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.ZOT4V66Q.js")))),ds=ss.part((e,t)=>(0,ge.jsx)(e.RecordLinks,{...t}),{what:"The links",quiet:!0}),ls=44;function cs({stageRef:e,nodes:t,scheme:n,selection:r,store:o,graphNodes:a,overview:i,width:l,height:c,onPickEdge:d,alreadyDrawn:s,tick:u,provisional:h}){let y=Bt(),x=(0,fe.useMemo)(()=>{if(r.length===0||r.length>4)return[];let g=new Set(r),E=[];for(let O of r){let F=It(O);F&&E.push({kind:F.kind,self:F.from,other:F.to})}for(let O of o.graph.allEdges()){let F=g.has(O.from)?O.from:g.has(O.to)?O.to:null;if(!F)continue;let z=F===O.from?O.to:O.from;g.has(z)||E.push({kind:O.kind,self:F,other:z})}if(E.length<=14)return E;let A=new Set(t.map(O=>O.id));return E.map((O,F)=>({tie:O,index:F,real:A.has(O.other)?0:1})).sort((O,F)=>O.real-F.real||O.index-F.index).slice(0,14).map(({tie:O})=>O)},[o,r,a,t]),f=()=>{if(x.length===0||typeof document>"u")return[];let g=e.current?.getBoundingClientRect();if(!g)return[];let E=[...e.current?.querySelectorAll("[data-graview-joins]")??[]].find(S=>{if(S.closest("[data-graview-offstage]"))return!1;try{let P=JSON.parse(S.getAttribute("data-graview-joins")??"[]");return P.length===r.length&&P.every(q=>r.includes(q))}catch{return!1}});if(E){let S=Jt(E,e.current);if(!S)return[];let P=[];for(let q of r){let _=t.find(M=>M.id===q);if(!_)continue;let w=De(e.current,_.id,i)??nt(_,n),R=w?Un(S,w):null;if(!w||!R)continue;let I=[...o.graph.allEdges()].find(M=>M.from===q&&r.includes(M.to)||M.to===q&&r.includes(M.from));P.push({key:`join:${q}`,self:q,other:"",others:1,kind:I?.kind??"",endX:R.to.x,endY:R.to.y,...R,fromBox:S,toBox:w,proxy:!1,edgeId:I?$t(I.kind,I.from,I.to):null})}return P}let A=(S,P)=>{let q=e.current?.querySelectorAll(`[data-graview-pick="${CSS.escape(S)}"], [data-graview-slot="${CSS.escape(S)}"]`),_=[];for(let w of q??[]){if(w.closest("[data-graview-offstage]")||P(w)||w.closest("[data-graview-mark]"))continue;let R=Jt(w,e.current);R&&_.push(R)}return _.sort((w,R)=>w.width*w.height-R.width*R.height)},O=S=>t.find(P=>P.id===S)??t.find(P=>P.aggregate?.memberIds.includes(S)),F=S=>`[data-graview-pick="${CSS.escape(S)}"], [data-graview-slot="${CSS.escape(S)}"]`,z=(S,P)=>{let q=e.current;if(!q)return!1;for(let _ of q.querySelectorAll("[data-graview-view]")){let w=_.querySelector(F(S));if(w===null||w.closest("[data-graview-offstage]"))continue;let R=_.querySelector(F(P));if(R!==null&&!R.closest("[data-graview-offstage]"))return!0}return!1},$=[];if(!i&&e.current){for(let S of t){if(Math.round(S.plane)!==1)continue;let P=De(e.current,S.id,!1);P&&$.push(P)}for(let S of e.current.querySelectorAll("[data-graview-relation] > span")){let P=S.getBoundingClientRect();P.width>0&&P.height>0&&$.push({x:P.left-g.left,y:P.top-g.top,width:P.width,height:P.height})}}let H=new Map,Y=[];for(let S of x){if(z(S.self,S.other))continue;let P=O(S.self),q=P?e.current?.querySelector(`[data-graview-view="${CSS.escape(P.id)}"]`):null,_=!i&&P?.id===S.self&&Math.round(P.plane)===1?De(e.current,P.id,!1):null,w=_?[_]:A(S.self,()=>!1);if(!(w.length>0)&&P){let ae=De(e.current,P.id,!1)??nt(P,n);ae&&w.push(ae)}let I=t.find(ae=>ae.id===S.other),M=[],N=!1;if(I){let ae=De(e.current,I.id,i)??nt(I,n);ae&&M.push(ae)}else if(M.push(...A(S.other,ae=>q?q.contains(ae):!1)),M.length===0){let ae=O(S.other);if(ae&&(!P||ae.id!==P.id)){let Se=De(e.current,ae.id,i)??nt(ae,n);Se&&(M.push(Se),N=!0)}}if(w.length===0||M.length===0||N&&i)continue;let T=w[0],B=M[0],te=1/0;for(let ae of w)for(let Se of M){let ot=Math.hypot(ae.x+ae.width/2-(Se.x+Se.width/2),ae.y+ae.height/2-(Se.y+Se.height/2));ot<te&&(te=ot,T=ae,B=Se)}if(s?.has(`${S.kind}|${S.self}|${S.other}`)||s?.has(`${S.kind}|${S.other}|${S.self}`))continue;let K=`${S.kind}:${Math.round(T.x)},${Math.round(T.y)}:${Math.round(B.x)},${Math.round(B.y)}`,V=H.get(K);if(V){V.others+=1;continue}let ee=Un(T,B);if(!ee)continue;let{from:X,control:me}=ee,ie=_&&T===_?en(T,B,$,Y.length):void 0,ve=ie?ie[ie.length-1]:ee.to,ke=[...o.graph.allEdges()].find(ae=>ae.kind===S.kind&&(ae.from===S.self&&ae.to===S.other||ae.from===S.other&&ae.to===S.self)),$e={key:`${S.kind}:${S.self}:${S.other}`,self:S.self,other:S.other,others:1,kind:S.kind,endX:ve.x,endY:ve.y,from:X,to:ve,control:me,fromBox:T,toBox:B,...ie?{points:ie}:{},proxy:N,edgeId:ke?$t(ke.kind,ke.from,ke.to):null};H.set(K,$e),Y.push($e)}for(let S of Y){let P=[...o.graph.allEdges()].find(I=>I.kind===S.kind&&(I.from===S.self&&I.to===S.other||I.from===S.other&&I.to===S.self)),q=o.graph.getNode(S.self),_=o.graph.getNode(S.other);if(!P||!q||!_)continue;let w=P.from===S.self?"out":"in",R=Mr(o.schema,w==="out"?q.kind:_.kind,S.kind,w);S.said=S.proxy?`${R}: ${Gt(o.schema,_.kind,S.others)}`:`${R}: ${Ln(o.schema.tryDefinition(_.kind),_)}`}return Y},[p,b]=(0,fe.useState)([]),[k,v]=(0,fe.useState)([]);(0,fe.useLayoutEffect)(()=>{let g=f();b(g),v(g.some(E=>E.said)?L(g):[])},[x,t,i,n,l,c,s,u,e]);let L=g=>{let E=e.current;if(!E)return[];let A=[];for(let O of E.querySelectorAll("[data-graview-view]")){let F=[...O.children].find($=>!$.classList.contains("graview-kind-tag")),z=F?Jt(F,E):null;z&&A.push({box:z,title:{...z,height:Math.min(z.height,ls)}})}return Xi(g.flatMap(O=>O.said?[{key:O.key,said:O.said,end:{x:O.endX,y:O.endY},far:O.toBox}]:[]),A,{width:l,height:c})},[W,D]=(0,fe.useState)(()=>new Set),Z=(0,fe.useRef)([]);Z.current=p.map(g=>({key:g.key,fromBox:g.fromBox,toBox:g.toBox,ids:[g.self,g.other],edgeId:g.edgeId}));let G=k.length>0;return(0,fe.useEffect)(()=>{let g=e.current;if(!g||!G)return;let E=S=>D(P=>P.size===S.size&&[...S].every(q=>P.has(q))?P:S),A=0,O=null,F=()=>{if(A=0,!O)return;let S=g.getBoundingClientRect(),P=O.target instanceof Element?O.target:null;E(tr(Z.current,{point:{x:O.clientX-S.left,y:O.clientY-S.top},edgeId:P?.closest("[data-graview-edge]")?.getAttribute("data-graview-edge")??null}))},z=S=>{O=S,A||(A=requestAnimationFrame(F))},$=()=>{O=null,E(new Set)},H=S=>{let P=S.target instanceof Element?S.target:null;if(!P)return;let q=g.getBoundingClientRect(),_=P.getBoundingClientRect(),w=P.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??P.closest("[data-graview-view]")?.getAttribute("data-graview-view");E(tr(Z.current,{...w?{ids:[w]}:{},box:{x:_.left-q.left,y:_.top-q.top,width:_.width,height:_.height}}))},Y=S=>{S.relatedTarget instanceof Node&&g.contains(S.relatedTarget)||E(new Set)};return g.addEventListener("pointermove",z,{passive:!0}),g.addEventListener("pointerleave",$),g.addEventListener("focusin",H),g.addEventListener("focusout",Y),()=>{A&&cancelAnimationFrame(A),g.removeEventListener("pointermove",z),g.removeEventListener("pointerleave",$),g.removeEventListener("focusin",H),g.removeEventListener("focusout",Y)}},[e,G]),p.length===0?null:(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("svg",{"aria-hidden":p.some(g=>g.edgeId)?void 0:!0,"data-graview-ties":p.length,"data-graview-world":"",width:l,height:c,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Be.lines},children:p.map(g=>{let{connector:E,style:A}=Qt(y,g.kind);if(!E.visible)return null;let O=g.edgeId?h?.get(g.edgeId):void 0,F={p0:g.from,c:g.control,p1:g.to},z=g.points?Ko(g.points,10):E.route==="orthogonal"?vt([vn(g.from,g.to)]):(({p0:H,c:Y,p1:S})=>`M ${H.x} ${H.y} Q ${Y.x} ${Y.y} ${S.x} ${S.y}`)(zn(E.route,F)),$=null;if(g.edgeId&&d&&!g.proxy){let H=(S,P)=>P.x>=S.x&&P.x<=S.x+S.width&&P.y>=S.y&&P.y<=S.y+S.height,Y=g.points?[...g.points]:[];for(let S=0;S<=(g.points?-1:40);S++){let P=Pi(E.route,F,S/40);H(g.fromBox,P)||H(g.toBox,P)||Y.push(P)}Y.length>=2&&($=(0,ge.jsx)("path",{"data-graview-edge":g.edgeId,className:"graview-edge-hit",d:`M ${Y[0].x} ${Y[0].y} ${Y.slice(1).map(S=>`L ${S.x} ${S.y}`).join(" ")}`,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:S=>{S.stopPropagation(),d(g.edgeId,{x:S.clientX,y:S.clientY})},onContextMenu:S=>{S.preventDefault(),S.stopPropagation(),d(g.edgeId,{x:S.clientX,y:S.clientY})},children:O!==void 0?(0,ge.jsx)("title",{children:O}):null}))}return(0,ge.jsxs)("g",{opacity:(g.proxy?.32:.72)*(O!==void 0?mn:1),children:[(0,ge.jsx)("path",{"data-graview-tie":g.kind,"data-graview-tie-proxy":g.proxy||void 0,"data-graview-provisional":O!==void 0||void 0,d:z,fill:"none",stroke:Ut(A),strokeWidth:g.proxy?1.1:1.6,strokeDasharray:O!==void 0?fn:Cn[A.pattern],strokeLinecap:"round"}),(0,ge.jsx)("circle",{cx:g.endX,cy:g.endY,r:g.proxy?2:2.6,fill:Ut(A)}),$]},g.key)})}),(0,ge.jsx)("div",{"aria-hidden":"true","data-graview-world":"",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:Be.tieLabels},children:k.map(g=>{let E=p.find(A=>A.key===g.keys[0]);return(0,ge.jsx)("span",{className:"graview-record-link-said","data-graview-link-said":E?.kind,"data-graview-lands":E?.proxy?"district":"record","data-graview-said-for":g.keys.length,"data-graview-tie-said":g.keys.some(A=>W.has(A))?"shown":"waiting",style:{position:"absolute",left:g.x,top:g.y,transform:`translateX(min(0px, calc(${Math.round(l-g.x-8)}px - 100%)))`},children:g.said},g.said)})})]})}function Ji({nodes:e,scheme:t,width:n,stageRef:r,moving:o=!1,holding:a=!1}){let i=Bt(),[l,c]=(0,fe.useState)([]);(0,fe.useLayoutEffect)(()=>{o||a||c(d())},[e,o,a,t,n,r]);function d(){let s=[];for(let h of e){if(!h.via||Math.round(h.plane)!==1)continue;let y=De(r.current,h.id,!1,!0),{scale:x}=Kt(1,t);s.push({key:`${h.via.edgeKind}|${h.via.direction}`,text:h.via.description??`${h.via.direction==="in"?"\u2190":"\u2192"} ${an(h.via.edgeKind).toLowerCase()}`,left:y?.x??h.x,right:y?y.x+y.width:h.x+h.width*x,top:y?.y??h.y})}let u=qn(n);return Ki(s,{left:u.left,right:n-u.right})}return l.length===0||!i.captions.visible||o?null:(0,ge.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:Be.lines},children:l.map(s=>{let{left:u,width:h}=s;return(0,ge.jsx)("div",{"data-graview-relation":s.key,title:s.text,style:{position:"absolute",left:u,width:h,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,ge.jsx)("span",{style:{background:"var(--graview-ground)",padding:"1px 7px",borderRadius:4},children:s.text})},s.key)})})}var Vt=se(Te(),1);var hs=new Set;function ta(e,t,n,r,o,a,i=0,l=0){let{store:c,views:d,hiddenKinds:s}=pe(),u=Pt(),h=(0,Vt.useContext)(_t),y=fo(),x=(0,Vt.useMemo)(()=>{let b={};for(let k of y){if(k.subjectId===void 0)continue;let v=b[k.subjectId]??=[];for(let L of k.nodeIds)L!==k.subjectId&&!v.includes(L)&&v.push(L)}return b},[y]),f=(0,Vt.useMemo)(()=>({flagged:new Set(y.flatMap(b=>b.nodeIds)),touched:Nn(c.log.all())}),[y,c,a]),p=(0,Vt.useMemo)(()=>({hits:u?Pn(u):hs,...f}),[u,f]);return(0,Vt.useMemo)(()=>({...e,cityZoom:r,...h?{besideTheMap:!0}:{},...s.size>0?{hiddenKinds:[...s].sort()}:{},...Object.keys(x).length>0?{judged:x}:{},relevance:p,inset:{...qn((t?.width??1200)-o.right),top:8,bottom:0},chrome:[{x:(t?.width??1200)-o.right-176,y:0,width:176,height:100},fs(t,o)],...o.right>0||o.bottom>0?{dock:o}:{},...i>0?{headroom:i}:{},unit:n,plainGroups:c.schema.kinds.filter(b=>hr(d.lookup(b,{cardinality:"many",fidelity:"full"}))),cityOrder:sr($r({name:"scene",schema:c.schema,mutations:c.allMutations().filter(b=>!b.derived)}).order.map(b=>b.kind),d.arrangement?.()?.order),screens:d.places().reduce((b,k)=>((b[k.kind]??=[]).push({as:k.as,title:k.title,...k.across?{across:k.across}:{}}),b),{}),...t?{width:t.width,height:Math.max(0,t.height-Math.max(64,l))}:{}}),[e,t,n,c,d,s,x,p,r,h,o.right,o.bottom,i,l])}var ea=224;function fs(e,t){let n=e?.width??1200,r=e?.height??800,o=58;return{x:n-t.right-ea,y:r-t.bottom-o,width:ea,height:o}}var dt=se(Te(),1);var na=se(Te(),1);function Qn(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 oa(e){(0,na.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{for(let a of t.querySelectorAll("[data-graview-pick]"))a.getAttribute("tabindex")===null&&a.setAttribute("tabindex","0"),a.getAttribute("role")===null&&ys(a)&&a.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 ms=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 ys(e){return ms.has(e.localName.toLowerCase())}var nn=se(Le(),1);function ra({node:e,useDom:t,blur:n,touched:r,frontY:o,centerY:a,screen:i,onDrawnHeight:l,crowded:c,activity:d,scheme:s,canvasWidth:u,canvasHeight:h,selected:y,onSelect:x,onPick:f,onTravel:p,onMenu:b,selection:k,onJackIn:v,onDragStart:L,onDragMove:W,onDragEnd:D,swallowClick:Z,children:G}){let{brand:g,store:E,actsDoor:A}=pe(),O=e.beyond?`${e.beyond.length} more district${e.beyond.length===1?"":"s"}`:e.aggregate?.opens?.in==="place"?`${e.aggregate.label}, ${Gt(E.schema,e.aggregate.kind,e.aggregate.memberIds.length)}`:e.aggregate?e.aggregate.label:(()=>{let M=E.graph.getNode(e.id);return M?Ln(E.schema.tryDefinition(e.kind),M):e.id})(),[F,z]=(0,dt.useState)(null),$=Math.round(e.plane)===0&&!e.aggregate;(0,dt.useLayoutEffect)(()=>{if(!$)return;let M=q.current;if(!M)return;let N=()=>{let B=[...M.children].find(X=>X.dataset.graviewKindtag===void 0);if(!B)return;let te=M.getBoundingClientRect(),K=B.getBoundingClientRect(),V=M.offsetWidth>0?te.width/M.offsetWidth:1,ee={top:Math.round((K.top-te.top)/V)-9,right:Math.round((te.right-K.right)/V)+14};z(X=>X&&X.top===ee.top&&X.right===ee.right?X:ee)};if(typeof ResizeObserver>"u"){N();return}let T=new ResizeObserver(N);T.observe(M);for(let B of M.children)T.observe(B);return()=>T.disconnect()},[$,e.id]);let H=gr({plane:e.plane,...e.depth!==void 0?{depth:e.depth}:{},onPlot:o!==void 0},s),Y=H.style,S=yr(Y,e.x,e.y,u,h),P=n?H.blur:0,q=(0,dt.useRef)(null);oa(q);let _=e.natural,w=_?Math.min(e.width/_.width,e.height/_.height):1,R=(0,dt.useRef)(null);(0,dt.useEffect)(()=>{if(!i||!l)return;let M=R.current;if(!M||typeof ResizeObserver>"u")return;let N=()=>{let V=0,ee=0;for(let X of M.children)if(!(!(X instanceof HTMLElement)||X.classList.contains("graview-screen-fullscreen"))){V=Math.max(V,X.offsetTop+X.offsetHeight);for(let me of[X,...X.querySelectorAll("*")]){let ie=getComputedStyle(me).overflowY;(ie==="auto"||ie==="scroll")&&(ee+=me.scrollHeight-me.clientHeight)}}l(V+ee)},T=0,B=()=>{T||(T=requestAnimationFrame(()=>{T=0,N()}))};N();let te=new ResizeObserver(B);te.observe(M);for(let V of M.children)te.observe(V);let K=new MutationObserver(B);return K.observe(M,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),()=>{T&&cancelAnimationFrame(T),te.disconnect(),K.disconnect(),l(void 0)}},[i,l,e.id]);let I=t?{transform:Ii(S),transformOrigin:"0 0",filter:P>0?`blur(${P}px)`:void 0,opacity:pr(Y)*(e.opacity??1),"--graview-lift-low":Go(Y.shadow,s),...o!==void 0?{"--graview-front-y":`${o.toFixed(1)}px`}:{},...a!==void 0?{"--graview-center-y":`${a.toFixed(1)}px`}:{}}:{"--graview-lift-low":Go(Y.shadow,s)};return(0,nn.jsxs)("div",{ref:q,"data-graview-view":e.id,...t?{}:{drawable:""},"data-graview-plane":Math.round(e.plane),"data-graview-selected":y||void 0,"data-graview-touched":r||void 0,"data-graview-plot":o!==void 0?"":void 0,"data-graview-screen":i?"":void 0,"data-graview-record-focus":Math.round(e.plane)===0&&!e.aggregate&&!_&&!i?"":void 0,"data-graview-nested":e.nestedUnder??void 0,"data-graview-crowded":c||void 0,"data-graview-pinned":e.pinned||void 0,"data-graview-activity":d?d.manner:void 0,"data-graview-wrote":d?.wrote||void 0,"data-graview-read":d&&!d.wrote?!0:void 0,"data-graview-broke":d?.broke||void 0,title:d?`${ki[d.manner]} ${d.wrote?"changed this":"read this"}: ${d.intent}`:e.aggregate&&Math.round(e.plane)!==0?`Open ${e.aggregate.label}`:void 0,role:"group","aria-label":O,"aria-keyshortcuts":A&&!e.beyond?A.key:void 0,tabIndex:0,onPointerDown:L,onPointerMove:W,onPointerUp:D,onPointerCancel:D,onClick:M=>{if(Z.current)return;let N=M.target?.closest("input, textarea, select, button, a[href], [contenteditable='true']");if(N&&!N.hasAttribute("data-graview-pick"))return;let T=M.metaKey||M.shiftKey,B=gt(M.target);if(B&&B!==e.id){M.stopPropagation(),f(B,T,Qn(M.target)??void 0);return}x(T)},onKeyDown:M=>{if(A&&!e.beyond&&M.key.toLowerCase()===A.key.toLowerCase()&&!M.metaKey&&!M.ctrlKey&&!M.altKey&&!M.target?.closest("input, textarea, select, [contenteditable='true']")){M.preventDefault(),M.stopPropagation();let K=gt(M.target)??e.id;k.includes(K)||f(K,!1),A.open(M.target instanceof HTMLElement?M.target:M.currentTarget);return}if(M.key!=="Enter"&&M.key!==" "||M.target?.closest("input, textarea, select, button, [contenteditable='true']"))return;let T=gt(M.target);if(M.preventDefault(),M.stopPropagation(),!T||T===e.id){k.length===1&&k[0]===e.id&&!M.metaKey&&!M.shiftKey?v():x(M.metaKey||M.shiftKey);return}let B=Qn(M.target);(B?k.length===B.length&&B.every(K=>k.includes(K)):k.length===1&&k[0]===T)&&!M.metaKey&&!M.shiftKey?p(T):f(T,M.metaKey||M.shiftKey,B??void 0)},onContextMenu:M=>{let N=gt(M.target);M.preventDefault(),M.stopPropagation();let T=N&&N!==e.id?N:e.id;f(T,!1,(T===N?Qn(M.target):null)??void 0),b({x:M.clientX,y:M.clientY,on:T})},onDoubleClick:M=>{let N=gt(M.target);if(N&&N!==e.id){M.stopPropagation(),p(N);return}v()},style:{position:"absolute",...t?{}:{pointerEvents:"none"},zIndex:e.opened?Be.opened:Be.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",...I},children:[_?(0,nn.jsx)("div",{ref:R,"data-graview-natural":`${Math.round(_.width)}x${Math.round(_.height)}`,style:{position:"absolute",left:"50%",top:"50%",width:_.width,height:_.height,transform:`translate(-50%, -50%) scale(${w})`,transformOrigin:"50% 50%",display:"flex",flexDirection:"column"},children:G}):G,Math.round(e.plane)===0&&!e.aggregate?(0,nn.jsxs)("span",{"data-graview-kindtag":"",className:"graview-kind-tag","aria-hidden":"true",style:{...F??{},"--graview-hue":Math.round(dn(e.kind,g?.accents))},children:[(0,nn.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(dn(e.kind,g?.accents))} 55% var(--graview-tint-lightness) / 0.9)`}}),ir(E.schema.tryDefinition(e.kind),e.kind)]}):null]})}var ue=se(Le(),1);ho({search:Dr,touchWeights:Nn});var gs=e=>e?{activity:e}:{},ps=e=>`${Math.round(e.x)} ${Math.round(e.y)}`,ia=e=>e.stopPropagation(),la=.6,ca=3,xs=80,aa=e=>Math.round(e.plane)===1&&(e.compact===!0||e.width<175||e.height<xs);function ws(e){let[t,n]=(0,Q.useState)(1),r=(0,Q.useRef)(1);return(0,Q.useEffect)(()=>{e||(r.current=1,n(1))},[e]),[t,r,n]}function bs(e){let[t,n]=(0,Q.useState)({x:0,y:0}),r=(0,Q.useMemo)(()=>({x:(e.pan?.x??0)+t.x,y:(e.pan?.y??0)+t.y}),[e.pan,t]),o=(0,Q.useMemo)(()=>t.x===0&&t.y===0?e:Ht(e,r),[e,t,r]),a=(0,Q.useRef)(t);a.current=t;let i=(0,Q.useCallback)((l,c)=>{let d=a.current,s=(u,h,y)=>Math.max(Math.min(-u,h),Math.min(Math.max(u,h),y+h))-h;return{x:s(l.x,d.x,c.x),y:s(l.y,d.y,c.y)}},[]);return[r,o,i,a,n]}function vs(e,t,n,r,o,a){let i=n!==null&&!t.overview,l=i?null:n,c=(0,Q.useMemo)(()=>{let h=t.pan?{...t,pan:void 0}:t;return l?yn(h,l.id,{x:l.x,y:l.y}):h},[t,l]),d=(0,Q.useMemo)(()=>Dn(e.graph,e.schema,c,r),[e,c,r,o]),s=(0,Q.useMemo)(()=>n&&i?No(d,n.id,{x:n.x,y:n.y})??Dn(e.graph,e.schema,yn(c,n.id,{x:n.x,y:n.y}),r):d,[d,n,i,e,c,r]);return[(0,Q.useMemo)(()=>Bo(s,a??{x:0,y:0}),[s,a]),i]}function ks(){let[e,t]=(0,Q.useState)(!1),[n,r]=(0,Q.useState)(!1),o=(0,Q.useRef)(null),a=(0,Q.useRef)(()=>!1),i=(0,Q.useCallback)(()=>{r(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{o.current=null,!a.current()&&r(!1)},160)},[]);return[e,n,t,i,a,()=>{t(!1),r(!1)}]}function Ss(e){let t=(0,Q.useRef)(!1),n=e!==null&&!t.current;return(0,Q.useEffect)(()=>{e!==null&&(t.current=!0)},[e]),n}function Ms({registerScene:e,scheme:t,views:n},r,o){let a=(0,Q.useRef)(r);a.current=r,(0,Q.useEffect)(()=>(e({whereIs:i=>Gn(a.current,o.current,t,n,i)}),()=>e(null)),[e,t,n])}function Rs(e,t){(0,Q.useEffect)(()=>{let n;return e.onActive(r=>{let o=t.current;if(!o)return;let a=l=>{let c=o.getBoundingClientRect();e.set({x:l.clientX-c.left,y:l.clientY-c.top})},i=()=>e.set(null);r?(o.addEventListener("pointermove",a),o.addEventListener("pointerleave",i),n=()=>{o.removeEventListener("pointermove",a),o.removeEventListener("pointerleave",i)}):(n?.(),n=void 0)})},[e])}function Es(e,t,n,r,o,a,i,l){(0,Q.useEffect)(()=>{let c=t.current;if(!c||!e)return;let d=new Set;for(let u of n.nodes)(r.has(u.id)||u.aggregate?.memberIds.some(h=>r.has(h)))&&d.add(u.id);let s=e({canvas:c,layout:n,dirty:d,hostOf:u=>(c.parentElement??c).querySelector(`[data-graview-view="${CSS.escape(u)}"]`),drawOnDom:o,blur:a,scheme:i,fallBack:l});return()=>{s?.()}},[e,n,r,o,a,i,l])}var Os=zt(()=>(__graviewPreload(import.meta.url,["./chunk.OJGHDWI6.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.JBRXGPPM.js")));function As(e,t){let[n]=(0,Q.useState)(()=>{let s=wr();return t?e==="dom"||e==="auto"&&s==="dom"?"dom":"gpu":vr(e,{operator:s,present:br()})}),[r,o]=(0,Q.useState)(!1),a=(0,Q.useCallback)(()=>o(!0),[]),[i,l]=(0,Q.useState)(null),c=n==="gpu"&&!t&&!r&&i===null;return(0,Q.useEffect)(()=>{if(!c)return;let s=!0;return Os().then(u=>{s&&l(()=>u.attachGpu())},()=>{s&&o(!0)}),()=>{s=!1}},[c]),{attach:(n==="gpu"&&!r?t??i:null)??null,fallBack:a}}function Ls(){let[e,t]=(0,Q.useState)(()=>new Set),n=(0,Q.useCallback)(r=>{t(o=>o.size===r.size&&[...r].every(a=>o.has(a))?o:new Set(r))},[]);return[e,n]}function Is(){let e=Or();return t=>{let n=t?e.get(t.id):void 0,r=t?.aggregate?.memberIds??[];if(!n&&r.length===0)return;let o=n,a=n?.wrote??!1,i=n?.read??!1,l=n?.broke??!1;for(let c of r){let d=e.get(c);d&&(a||=d.wrote,i||=d.read,l||=d.broke,(!o||d.at>o.at||d.at===o.at&&d.wrote&&!o.wrote)&&(o=d))}return o?{...o,wrote:a,read:i,broke:l}:void 0}}var sa=(e,t)=>e.includes(t)?e.filter(n=>n!==t):[...e,t];function Ts(){let{views:e,view:t,setView:n,setSelection:r}=pe(),o=Pt(),a=(0,Q.useContext)(_t),i=l=>{if(Oe(l.id)===null&&!l.aggregate)return!1;let c=e.resolve(l.kind,{cardinality:"many",fidelity:"full"})?.view;return c!==void 0&&c.generic!==!0};return l=>({onSelect:c=>{if(un(l.id)){r(s=>c?sa(s,l.id):[l.id]);return}let d=l.aggregate?cn(l.id):[];if(t.overview){r(s=>c?[...new Set([...s,l.id])]:[l.id]);return}if(d.length===1&&!c&&Math.round(l.plane)!==0){let s=d[0];n(u=>ao(u,u.relation===s?null:s));return}r(s=>Yo(l,s,c))},onPick:(c,d,s)=>r(u=>s?d?[...new Set([...u,...s])]:[...s]:d?sa(u,c):[c]),onTravel:c=>{n(d=>({...mt(d,c),relation:null})),r([c])},onJackIn:()=>{let c=l.aggregate?.opens;if(c){c.in==="place"?n(u=>so(u,l.id)):n(u=>Object.entries(c.within).reduce((h,[y,x])=>Tn(h,y,x),mt(ln(u,!1),c.focus))),r([]);return}let d=Oe(l.id),s=d!==null&&(o?.byKind[d]??0)>0;if(a&&d!==null&&t.overview&&!i(l)&&!(s&&t.q)){n(u=>Tn({...mt(u,`aggregate:${d}`),relation:null},"view",null)),r([]);return}n(u=>lo(u,l.id,{ownPicture:i(l),...s&&u.q?{carry:u.q}:{}})),r(l.aggregate?[]:[l.id])}})}var Ps=hn(zt(()=>(__graviewPreload(import.meta.url,["./chunk.XDYAG276.js","./chunk.HJCQ6I3S.js","./chunk.AWRS6TUN.js","./chunk.KAWP4RNR.js","./chunk.7OLVQ2FZ.js","./chunk.NOZEHLWG.js","./chunk.UVLPVHID.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.VW6WGFL6.js")))),Cs=Ps.part((e,t)=>(0,ue.jsx)(e.Ribbons,{...t}),{what:"The relations",quiet:!0}),da="graview:map-from-above";function Ns(){let[e,t]=(0,Q.useState)(()=>{try{return globalThis.localStorage?.getItem(da)==="1"}catch{return!1}}),n=(0,Q.useCallback)(r=>{t(r);try{globalThis.localStorage?.setItem(da,r?"1":"0")}catch{}},[]);return[e,n]}var Bs=hn(zt(()=>(__graviewPreload(import.meta.url,["./chunk.XDYAG276.js","./chunk.AWRS6TUN.js","./chunk.NV6IZJKA.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.RPOYSIVQ.js")))),$s=Bs.part((e,t)=>(0,ue.jsx)(e.Plots,{...t}),{quiet:!0});function Hs({zoom:e,zoomBy:t,above:n,setAbove:r}){let o=(a,i,l,c)=>(0,ue.jsx)("button",{type:"button",className:"graview-zoom-button","data-testid":`zoom-${a}`,"aria-label":`Zoom ${a}`,title:`Zoom ${a} \u2014 or pinch, or ctrl+wheel`,disabled:c,onClick:()=>t(l),children:i});return(0,ue.jsxs)("div",{className:"graview-zoom","data-graview-foot":"",role:"group","aria-label":"Zoom",onPointerDown:ia,onClick:ia,children:[o("out","\u2212",1/1.25,e<=la+1e-6),(0,ue.jsxs)("span",{className:"graview-zoom-level","data-testid":"zoom-level","aria-live":"polite",children:[Math.round(e*100),"%"]}),o("in","+",1.25,e>=ca-1e-6),(0,ue.jsx)("button",{type:"button",className:"graview-zoom-button graview-zoom-above","data-testid":"from-above","aria-pressed":n,title:n?"See the city at an angle again":"See the city from straight above",onClick:()=>r(!n),children:"From above"})]})}function Ds({options:e,renderer:t="auto",attachRenderer:n,blur:r=!0,className:o,style:a,animate:i=!0,children:l}){let c=pe(),{store:d,scheme:s,views:u,view:h,setView:y,selection:x,setSelection:f,setMenuAt:p,emphasis:b,brand:k,noteMoved:v,robots:L,motion:W}=c,D=(0,Q.useContext)(_t),Z=(0,Q.useRef)(null),G=(0,Q.useRef)(null),g=Li(G),E=Ai(),{zoomAbout:A,panBy:O}=vi({stage:G,view:h,setView:y}),F=Ct(),z=1,[$,H,Y]=ws(h.overview),[S,P]=Ns(),q=(0,Q.useMemo)(()=>S?{...e,tilt:jr}:e,[e,S]),{probe:_,dock:w}=pi(),R=!h.overview&&(h.zoom||h.past||h.relation)?Math.ceil(14+34*E/16+6):0,I=ta(q,g,E,z*$,w,F,R,h.overview?0:w.bottom),M=fi(G),[N,T,B,te,K]=bs(h),V=(0,Q.useMemo)(()=>new Set(Object.keys(h.pins).filter(C=>Oe(C)===null)),[h.pins]),ee=xi(),[X,me]=vs(d,h,ee.held,I,F,T.pan),[ie,ve,ke,$e,ae,Se]=ks(),ot=Ss(g),oe=ii(X,{enabled:i&&!ie&&!ve&&g!==null&&!ot});(0,Q.useEffect)(()=>W.set(ie||ve||oe.t<1),[W,ie,ve,oe]);let Ge=ai(),Ze=si(),kt=mi({view:h,result:X,frame:oe,panned:N,closer:z,screenId:null,setCamera:K});Ms(c,oe,G),Rs(c.pointer,G);let[Je,Ce]=Ls(),{attach:lt,fallBack:rt}=As(t,n),je=oi(r);Es(lt,Z,oe,Ge,Ce,je,s,rt);let Ne=lt===null,We=ri(je&&Ne,ie||ve||oe.t<1),ze=Is(),_e=wi({stage:G,pan:h.pan,setView:y,settled:Se});ae.current=_e.settle;let{onGroundDown:Ve,onCardDown:ct,onDragMove:St,onDragUp:ut,swallow:et}=bi({view:h,panned:N,limit:()=>pt(X),panWithin:B,moveByTransform:!0,setView:y,setDragging:ke,noteMoved:v,shift:_e,district:ee});A.current=(C,he,ce)=>{if(!h.overview)return;ae.current();let Re=H.current,tt=Math.max(la,Math.min(ca,Re*C));if(Math.abs(tt-Re)<1e-4)return;H.current=tt,$e(),Y(tt);let Et=G.current?.getBoundingClientRect(),En=X.visible??X,Ot={x:En.width/2,y:En.height/2},Zn=Et&&he!==void 0&&ce!==void 0?{x:he-Et.left,y:ce-Et.top}:Ot,Jn=tt/Re;y(Yt=>Ht(Yt,Po(Yt.pan??{x:0,y:0},te.current,Zn,Ot,Jn))),v()};let re=(C,he,ce=pt(X))=>y(Re=>Ht(Re,B(ce,{x:(Re.pan?.x??0)+C,y:(Re.pan?.y??0)+he})));gi(G,w,(C,he)=>re(C,he)),O.current=(C,he)=>{$e();let ce=pt(X),Re=h.pan??{x:0,y:0},tt=_e.offset();_e.shiftTo(B(ce,{x:Re.x+tt.x+C,y:Re.y+tt.y+he}),Re),v()};let Me=Ts(),it=Bt(),Mt=(0,Q.useCallback)(C=>Qt(it,C).connector.visible,[it]),ht=C=>ze(oe.nodes.find(he=>he.id===C)),ft=(C,he,ce,Re)=>C.originY+N.y+Zt(ce.col+ce.side/Re,ce.row+ce.side/Re,C.cell,C.tilt).y-he.y,Ie={width:X.width,height:X.height},on={position:"relative",zIndex:Be.stage,...Ie},Rn=C=>Gn(oe,G.current,s,u,C),Rt=C=>Ne||Je.has(C),Ke=oe.nodes.filter(C=>C.screenOf===void 0).map(C=>(0,ue.jsx)(ra,{node:C,crowded:aa(C),useDom:Rt(C.id),blur:We||!Ne&&je,...C.plot&&oe.city&&Math.round(C.plane)===2?{frontY:ft(oe.city,C,C.plot,1),centerY:ft(oe.city,C,C.plot,2)}:{},touched:Ge.has(C.id),...gs(ze(C)),scheme:s,canvasWidth:X.width,canvasHeight:X.height,selected:x.includes(C.id),...Me(C),onMenu:p,selection:x,onDragStart:he=>ct(C,he),onDragMove:St,onDragEnd:ut,swallowClick:et,children:C.beyond?(0,ue.jsx)(Mi,{kinds:C.beyond}):C.aggregate?.opens?(0,ue.jsx)(Oi,{node:C}):(0,ue.jsx)(Ri,{node:C,mode:"scene",selected:x.includes(C.id),...aa(C)?{fidelity:"glyph"}:{}})},C.id));return(0,ue.jsxs)("div",{ref:G,className:`graview-ground${o?` ${o}`:""}`,"data-graview-altitude":h.overview?"":void 0,"data-graview-reach":oe.city?ps(pt(X)):void 0,"data-graview-settled":oe.t>=1&&!kt.gliding()?"":void 0,"data-graview-box":g?`${g.width}x${g.height}`:void 0,"data-graview-renderer":Ne?"dom":"gpu","data-graview-blur":(Ne?We:je)?"":void 0,onPointerDown:Ve,onPointerMove:St,onPointerUp:ut,onPointerCancel:ut,onClick:C=>{et.current||C.target.closest("[data-graview-view], button, aside, section[aria-label], [data-graview-offstage], a, input, select")||(f([]),p(null))},style:{position:"relative",width:"100%",height:"100%",cursor:ie?"grabbing":"grab",touchAction:"none","--graview-altitude":h.overview?1:0,...oe.city?{"--graview-lattice-cell":`${oe.city.cell.toFixed(2)}px`,"--graview-lattice-tilt":(oe.city.tilt??.5).toFixed(3),"--graview-lattice-x":`${(oe.city.originX+oe.city.pan.x).toFixed(1)}px`,"--graview-lattice-y":`${(oe.city.originY+oe.city.pan.y).toFixed(1)}px`}:{},...ie?{userSelect:"none"}:{},overflow:"hidden",...a},children:[h.overview&&oe.city?(0,ue.jsx)(Q.Suspense,{fallback:null,children:(0,ue.jsx)(Cs,{frame:oe,...Ie,pan:oe.city.pan,store:d,graphVersion:F,selection:x,view:{overview:h.overview,focusId:h.focusId,beside:D},emphasis:b,hiddenKinds:c.hiddenKinds,drawn:Mt})}):null,(0,ue.jsx)("div",{ref:_,"aria-hidden":"true",style:{position:"absolute",top:0,right:0,width:"var(--graview-dock, 0px)",height:"var(--graview-sheet, 0px)",visibility:"hidden",pointerEvents:"none"}}),oe.city?(0,ue.jsx)(Q.Suspense,{fallback:null,children:(0,ue.jsx)($s,{frame:oe,...Ie,pan:oe.city?oe.city.pan:N,brand:k,pinned:V,close:z*$>1.2,swallowed:et,...h.overview?{chosen:gn(x,{overview:h.overview,focusId:h.focusId,beside:D},C=>d.graph.getNode(C)?.kind).records}:{},onFocus:C=>{let he=Oe(C);he!==null&&y(ce=>mt(ce,Ae(he)))}})}):null,Ne?(0,ue.jsx)("div",{"data-graview-stage":"dom","data-graview-world":"",style:{...on,overflow:"hidden"},children:Ke}):(0,ue.jsxs)("div",{"data-graview-world":"",style:on,children:[(0,ue.jsx)("div",{"data-graview-stage":"dom","data-graview-under-canvas":"",style:{position:"absolute",left:0,top:0,...Ie,overflow:"hidden"},children:Ke.filter(C=>Je.has(String(C.key)))}),(0,ue.jsx)("canvas",{ref:Z,"data-graview-stage":"gpu",content:"drawable",layoutsubtree:"",...Ie,style:{display:"block",position:"relative",...Ie},children:Ke.filter(C=>!Je.has(String(C.key)))})]}),h.overview&&!ie?(0,ue.jsx)(ui,{result:X,schema:d.schema,chrome:M?[...I.chrome??[],M]:I.chrome??[],onGo:C=>{re(C.x,C.y),v()}}):null,h.overview?(0,ue.jsx)(Hs,{zoom:$,zoomBy:C=>A.current(C),above:S,setAbove:P}):null,(0,ue.jsx)(Zi,{frame:oe,focusId:h.focusId,beside:D,holding:me,...Ie,scheme:s,overview:!!h.overview,selection:x,emphasis:b,stageRef:G,store:d,graphNodes:F,...(C=>C?{provisional:C}:{})(Qi(d)),onPickEdge:(C,he)=>{et.current||(f([C]),p(he?{...he,on:C}:null))},liveOf:C=>{let he=ht(C.from),ce=ht(C.to);return he?.wrote&&ce?.wrote?he.at>ce.at?he:ce:void 0}}),(0,ue.jsx)(li,{width:X.width,whereIs:Rn}),(0,ue.jsx)(di,{marks:Ze.marks,questions:[...L.values()].filter(C=>C.mode==="asking"&&C.at!==null&&C.say).map(C=>({id:C.at,who:C.who,asks:C.say})),whereIs:Rn,stageRef:G,...Ie}),(0,ue.jsx)(Ji,{nodes:oe.nodes,moving:oe.t<1,holding:me,scheme:s,width:X.width,stageRef:G}),l]})}var Qe=se(Te(),1);function Fs(){return ma(),null}var fa=()=>window.location.pathname.endsWith(ar),ua=()=>(fa()?lr:io)(window.location.hash),js=e=>(fa()?cr:ro)(e);function ma(){let{view:e,setView:t,views:n,principal:r}=pe(),o=JSON.stringify(r),a=(0,Qe.useCallback)(s=>{let u=s.within?.view;if(u===void 0||s.focusId)return s;let h=n.places().find(y=>y.as===u);return h?{...s,focusId:Ae(h.kind)}:s},[n]),i=(0,Qe.useRef)(!1);(0,Qe.useEffect)(()=>{if(typeof window>"u")return;let s=a(ua());!In(s,oo)&&!In(s,e)&&(i.current=!0,t(s))},[]),(0,Qe.useEffect)(()=>{if(typeof window>"u")return;let s=()=>t(a(ua()));return window.addEventListener("popstate",s),window.addEventListener("hashchange",s),()=>{window.removeEventListener("popstate",s),window.removeEventListener("hashchange",s)}},[t,a]);let l=(0,Qe.useRef)(!1),c=(0,Qe.useRef)(null),d=(0,Qe.useRef)(o);(0,Qe.useEffect)(()=>{if(typeof window>"u")return;if(i.current){i.current=!1;return}let s=d.current!==o;d.current=o;let u=js(e),h=u||`${window.location.pathname}${window.location.search}`;if((window.location.hash||(window.location.href.includes("#")?"#":""))===u){l.current=!0,c.current=e;return}if(!l.current){l.current=!0,c.current=e,window.history.replaceState({graview:Nt.at},"",h);return}if(s||ya(c.current,e)){window.history.replaceState({graview:Nt.at},"",h),c.current=e;return}c.current=e,window.history.pushState({graview:++Nt.at},"",h),Nt.depth=Nt.at,Nt.tell()},[e,o])}function ya(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(",")&&Ws(e.within,t.within):!1}function Ws(e,t){let n=r=>Object.entries(r??{}).sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>`${o}=${a}`).join("&");return n(ha(e))===n(ha(t))}function ha(e){if(!e||!("q"in e))return e;let{q:t,...n}=e;return n}var nr=se(Te(),1);var ga=new WeakMap,Vs=64,pa=new WeakMap,Ys=0,Gs=e=>{if(e===void 0)return 0;let t=pa.get(e);return t===void 0&&pa.set(e,t=Ys+=1),t};function xa(e,t,n,r={}){let o=()=>{let d=[...new Set(t.flatMap(u=>cn(u)))],s=t.map(u=>It(u)).filter(u=>u!==null);return Cr(e,t,{...n.principal?{principal:n.principal}:{},kindSelection:d,edgeSelection:s,...n.providers?{providers:n.providers}:{},...n.pins?{pins:n.pins}:{},...n.focus!==void 0?{focus:n.focus}:{},...r})};if(Object.keys(r).length>0)return o();let a=ga.get(e);if(!a){let d={kept:new Map,at:e.log.length};ga.set(e,a=d),e.subscribe(()=>d.kept.clear())}a.at!==e.log.length&&(a.kept.clear(),a.at=e.log.length);let i=JSON.stringify([t,n.principal??null,Gs(n.providers),n.pins??null,n.focus??null]),l=a.kept.get(i);if(l)return l;let c=o();return a.kept.set(i,c),a.kept.size>Vs&&a.kept.delete(a.kept.keys().next().value),c}function zs(e,t,n={}){return xa(e,t,n)}function _s(e={}){let{store:t,selection:n,principal:r,providers:o}=pe(),{about:a,principal:i=r,providers:l=o,pins:c,focus:d,...s}=e,u=a??n,h=Ct();return(0,nr.useMemo)(()=>xa(t,u,{principal:i,providers:l,pins:c,focus:d},s),[t,u,e,h,i,l])}function Ks(){let{store:e,principal:t}=pe();return(0,nr.useMemo)(()=>({preview:(n,r)=>Br(e,n,r??{}),apply:(n,r)=>Nr(e,n,r??{},{author:t})}),[e,t])}export{La as a,Ia as b,Ta as c,Pa as d,Ca as e,Na as f,Ds as g,Fs as h,zs as i,_s as j,Ks as k};
3
+ ${d.to}`])),c.set(h,[{from:d.from,to:d.to}]),i.set(h,{id:h,kind:d.kind,from:s.id,to:u.id,edges:[{from:d.from,to:d.to}],single:{from:d.from,to:d.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[...i.values()].map(d=>({...d,edges:c.get(d.id)})).sort(at)}var qr=.85,Xr=60,Co=160;function Ma(e,t,n,r,o,a=qr){let i=e*t.width+Math.max(0,e-1)*n,l=Math.max(n,(r-i)/2);return Array.from({length:e},(c,d)=>({x:l+d*(t.width+n),y:o,depth:a}))}function Ra(e,t,n,r,o){let a=e*t.width+Math.max(0,e-1)*n,i=Math.max(n,(r-a)/2);return Array.from({length:e},(l,c)=>({x:i+c*(t.width+n),y:o}))}function Dn(e,t,n,r={}){let o={...Wr,...r},a=Math.max(8,o.unit??16)/16,i=o.inset?.left??0,l=n.overview?Math.max(0,o.dock?.right??0):0,c=n.overview?Math.max(0,o.dock?.bottom??0):0,d=o.width-l-i-(o.inset?.right??0),s=[],u=new Map,h=m=>n.past===!0||rr(t.tryDefinition(m.kind),m,o.today),y=new Set(r.hiddenKinds??[]),x=m=>!y.has(m.kind),f=n.focusId?yt(n.focusId).filter(m=>t.tryDefinition(m)!==void 0).filter(m=>!y.has(m)):[];n.focusId&&yt(n.focusId).length>0&&f.length===0&&(n={...n,focusId:null});let p=n.focusId?e.getNode(n.focusId):void 0;p&&!x(p)&&(n={...n,focusId:null},f=[]);let b=f.length>0?[...e.allNodes()].filter(m=>f.includes(m.kind)).sort(at):[],k=b.filter(x).filter(h),v=b.length-k.length,L=n.focusId&&f.length===0?e.getNode(n.focusId):void 0,W=n.zoom===!0&&!n.overview&&n.focusId!==null,D=Math.max(56,o.height*.062),Z=Math.min(o.height*.895,o.height-D),G=W?L!==void 0?{focusY:o.height*.03,focusH:o.height*.58,relationY:o.height*.645,relationH:o.height*.2,contextY:Z,contextH:D}:{focusY:o.height*.03,focusH:o.height*.71,relationY:o.height*.765,relationH:o.height*.1,contextY:Z,contextH:D}:L===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 m=o.height,j=m*.04,U=Math.max(m*.42,Math.min(m*.56,300)),ne=j+U+m*.06;return{focusY:j,focusH:U,relationY:ne,relationH:Math.max(m*.12,m*.878-m*.068-ne),contextY:m*.878,contextH:m*.092}})(),g=Math.min(o.headroom??0,G.focusY+G.focusH*.2),E=g>G.focusY?{...G,focusY:g,focusH:G.focusH-(g-G.focusY)}:G,A=m=>Math.min(o.gap*m,Math.round(d*.1)),O=W?Math.min(880,d-A(5)):Math.min(700,d-A(6)),F=W?d-A(5):Math.min(o.focusSize.width,d-A(6)),_=(m,j,U)=>({width:m===0?j:Math.min(j,(d-o.gap*(m+1))/m),height:U}),$=(m,j,U)=>{let ne=_(m,j,U),we=Math.min(j,Co*a,d-o.gap*2);return ne.width>=we?ne:{width:we,height:U}},H=m=>Math.max(1,Math.floor((d-o.gap)/(Math.min(m,Co*a,d-o.gap*2)+o.gap))),Y=new Set(n.expanded),S=n.overview?[]:Kr(e,t,L,n.relation,o.judged).filter(m=>x(m.node)).filter(m=>h(m.node)),P=n.overview?0:Math.max(0,Xr*a-E.contextH),q=S.length>0?E.focusH:E.contextY-E.focusY-o.gap*2-P,z=F,w=o.height,R=Math.min(d*.5/z,o.height*.48/w),I=z*R,M=w*R,N=new Set(r.plainGroups??[]),T=n.overview&&!L&&f.length>0&&n.focusId!==null,B=T&&f.length>0&&f.every(m=>N.has(m));if(T)for(let m of f)B&&r.besideTheMap!==!0?Y.add(be(m)):Y.delete(be(m));let te=T&&!B&&f.length===1?f[0]:void 0,K=te!==void 0&&(r.screens?.[te]?.length??0)>0,V,ee=n.overview===!0&&L!==void 0&&r.besideTheMap===!0;n.overview&&(L||f.length>0)&&n.focusId&&!B&&!K&&!(T&&r.besideTheMap===!0)&&!ee?(V={x:i+(d-I)/2,y:o.height*.53-M/2,width:I,height:M},rn({id:n.focusId,kind:L?L.kind:f[0],plane:0,x:V.x,y:V.y,width:I,height:M,natural:{width:z,height:w},...L?{}:{aggregate:{kind:f.join("+"),memberIds:k.map(m=>m.id),label:r.plurals?.[n.focusId]??f.map(m=>Lt(t,m)).join(" and "),...v>0?{retired:v}:{}}}})):n.overview||(L?rn({id:L.id,kind:L.kind,plane:0,x:i+(d-O)/2,y:E.focusY,width:O,height:q}):f.length>0&&n.focusId&&rn({id:n.focusId,kind:f[0],plane:0,x:i+(d-F)/2,y:E.focusY,width:F,height:q,aggregate:{kind:f.join("+"),memberIds:k.map(m=>m.id),label:r.plurals?.[n.focusId]??f.map(m=>Lt(t,m)).join(" and "),...v>0?{retired:v}:{}}}));let X=26,me=52,ie=22,ve=Math.round(o.relationSize.width*.75),ke=Math.max(1,Math.floor((d-o.gap)/(ve+o.gap))),$e=o.unit/16,ae=Math.max(2,Math.floor((E.relationH+o.gap)/(X*$e+o.gap))),Se=S.length>ke*ae,ot={schema:t,graph:e,focusId:L?.id,expanded:Y,...o.relevance?{relevance:o.relevance}:{},...n.selection?{selection:n.selection}:{},plural:m=>Lt(t,m),...o.today?{today:o.today}:{}},oe=Se?Math.max(o.gap,ie*$e):o.gap,Ge,Ze;if(!Se)Ge=S.map(m=>({id:m.node.id,kind:m.node.kind,node:m.node,...m.via?{via:m.via}:{}})),Ze=Array.from({length:Math.max(1,Math.ceil(Ge.length/ke))},(m,j)=>Array.from({length:Math.min(ke,Ge.length-j*ke)},(U,ne)=>j*ke+ne));else{let m=Math.max(1,Math.floor((E.relationH+oe)/(me*$e+oe))),j=new Map;for(let ye of S){let Ee=Eo(ye),At=j.get(Ee);At?At.push(ye):j.set(Ee,[ye])}let U=Oo([...j.values()].map(ye=>ye.length),ke,m),ne=[...j.values()].map((ye,Ee)=>Ao(ye,{...ot,budget:U[Ee]}));Ge=ne.flat();let we=ne.map((ye,Ee)=>ne.slice(0,Ee).reduce((At,no)=>At+no.length,0)),Ue=ne.map(()=>0);Ze=$n(ne.map(ye=>ye.length),ke).map(ye=>ye.map(Ee=>we[Ee]+Ue[Ee]++))}let kt=Ze.length,Je=kt===1?E.relationH:(E.relationH-oe*(kt-1))/kt,Ce=_(Math.max(...Ze.map(m=>m.length),1),Ge.length<=2?Math.round(o.relationSize.width*1.35):o.relationSize.width,Je),lt=[];Ze.forEach((m,j)=>{let U=Ra(m.length,Ce,o.gap,d,E.relationY+j*(Je+oe));m.forEach((ne,we)=>lt[ne]={...U[we],x:U[we].x+i})}),Ge.forEach((m,j)=>{let U=lt[j];rn({id:m.id,kind:m.kind,plane:1,x:U.x,y:U.y,width:Ce.width,height:Ce.height,...m.via?{via:m.via}:{},...m.aggregate?{aggregate:m.aggregate}:{},...Se&&!m.aggregate?{compact:!0}:{}})});let rt=new Set(u.keys());for(let m of k)rt.add(m.id);let je=new Map;for(let m of e.allNodes()){let j=je.get(m.kind);j?j.push(m):je.set(m.kind,[m])}let Ne=new Set(f.length>0?f:L?[L.kind]:[]),We=[];for(let m of t.kinds){if(y.has(m))continue;let j=je.get(m)??[],U=j.filter(h);We.push({id:be(m),kind:m,members:U.sort(at),retired:j.length-U.length,...Ne.has(m)?{focused:!0}:{}})}for(let m of We)m.kind===n.relation&&(m.raised=!0);We.sort(at);let _e=zr(t,Ne),ze=!n.overview&&t.kinds.some(m=>_e.rankOf(m)==="primary"),Ve=[];for(let m of We)if(!n.overview&&Y.has(m.id)&&m.members.length>0)for(let j of m.members)Ve.push({id:j.id,kind:j.kind});else{let j=ze?_e.rankOf(m.kind):void 0,U=j==="secondary"?_e.parentOf(m.kind):void 0;Ve.push({id:m.id,kind:m.kind,...m.raised?{raised:!0}:{},...m.focused?{focused:!0}:{},...n.overview&&Y.has(m.id)?{opened:!0}:{},...j?{rank:j}:{},...U&&!Y.has(be(U))?{nestedUnder:be(U)}:{},aggregate:{kind:m.kind,memberIds:m.members.map(ne=>ne.id),label:r.plurals?.[m.kind]??Lt(t,m.kind),...m.retired>0?{retired:m.retired}:{}}})}let ct=2;if(Ve.length<=H((W?240:o.contextSize.width)*a))for(let m of Ve)delete m.nestedUnder;let ut=new Map;for(let m of Ve){if(m.nestedUnder===void 0)continue;let j=ut.get(m.nestedUnder)??0;j>=ct?delete m.nestedUnder:ut.set(m.nestedUnder,j+1)}let et=Ve.filter(m=>m.nestedUnder!==void 0),re=Ve.filter(m=>m.nestedUnder===void 0),Me=H((W?240:o.contextSize.width)*a),it=!n.overview&&re.length>Me,Mt=Math.max(0,Me-1),ht=m=>m.focused?0:m.raised?1:2,ft=new Set([...re].map((m,j)=>({item:m,at:j})).sort((m,j)=>ht(m.item)-ht(j.item)||m.at-j.at).slice(0,Mt).map(({item:m})=>m.id)),Ie=new Set(it?re.filter(m=>!ft.has(m.id)).map(m=>m.id):[]),on=et.filter(m=>!Ie.has(m.nestedUnder)),Rn=et.filter(m=>Ie.has(m.nestedUnder)),Rt=it?[...re.filter(m=>ft.has(m.id)),{id:ur,kind:"",beyond:[...re.filter(m=>Ie.has(m.id)),...Rn].map(m=>m.kind)}]:re,Ke=n.overview?{width:Math.min(220,d/6.5),height:Math.min(92,o.height*.125)}:$(Rt.length,(W?240:o.contextSize.width)*a,E.contextH),C=o.relevance?.flagged,he=(m,j)=>{let U=Mo(t,m);if(!U)return{};let ne=U.values.map(()=>0),we=0;for(let Ue of j){let ye=U.values.indexOf(e.getNode(Ue)?.[U.field]);ye<0?we++:ne[ye]++}return{states:{field:U.field,values:[...U.values.map((Ue,ye)=>({value:Ue,tier:U.tiers[ye],count:ne[ye]})),...we>0?[{value:null,tier:"waiting",count:we}]:[]]}}},ce=n.overview?Io(Rt.map(m=>{let j=m.aggregate?.memberIds??[],U=C?j.filter(ne=>C.has(ne)).length:0;return{id:m.id,kind:m.kind,count:j.length,opened:Y.has(m.id)?qt(Xt(j.length))*a:0,openedMin:Y.has(m.id)?qt(Math.min(ko,Xt(j.length)))*a:0,nameplate:_r(m.aggregate?.label??Lt(t,m.kind),j.length,U,Mo(t,m.kind)!==void 0,a),weight:U*1e3+j.length,...f.includes(m.kind)&&(r.screens?.[m.kind]?.length??0)>0?{marquee:{width:wo+12,height:bo(r.screens[m.kind].map(ne=>ne.title),wo,r.nameWidth)+8}}:{}}}),t,{width:o.width-l,height:o.height-c},o.chrome?{...o.inset,right:Math.min(o.inset?.right??0,8)}:o.inset??{},{...o.cityOrder?{order:o.cityOrder}:{},...o.plots?{plots:o.plots}:{},...r.cityZoom&&r.cityZoom!==1?{zoom:r.cityZoom}:{},keep:[...n.selection??[],...n.focusId?[n.focusId]:[]].flatMap(m=>m.startsWith("kind:")?[m.slice(5)]:m.startsWith("aggregate:")&&!m.includes("|")?[m.slice(10)]:ee&&m===L?.id?[L.kind]:[]),...r.tilt!==void 0?{tilt:r.tilt}:{},pan:{x:n.pan?.x??0,y:n.pan?.y??0},...V||o.chrome?.length?{avoid:[...V?[V]:[],...o.chrome??[]]}:{}}):null,Re=new Map(ce?.placed.map(m=>[m.id,m.plot])??[]),tt=new Map(ce?.placed.map(m=>[m.id,m.nameplate])??[]),Et=ce?ce.placed.map(({x:m,y:j,depth:U,width:ne,height:we})=>({x:m,y:j,depth:U,width:ne,height:we})):Ma(Rt.length,Ke,o.gap,d,E.contextY,W?.97:qr).map(m=>({...m,x:m.x+i})),En=.74,Ot=.8,Zn=52*a,Jn=86*a,Yt=(m,j)=>Math.min(1,m+(1-m)*j),eo=new Map;Rt.forEach((m,j)=>{let U=Et[j],ne=U.width??Ke.width,we=U.height??Ke.height,Ue=m.rank==="secondary"?En:1,ye=ce?ne:Math.max(Math.min(ne,Co*a),ne*Ue),Ee=ce?we:Math.max(Xr*a,we*Ue);eo.set(m.id,{x:U.x+(ne-ye)/2,y:U.y+(we-Ee),depth:m.rank==="secondary"?Yt(U.depth,.5):U.depth,width:ye,height:Ee})});let On=[],An=Et[Et.length-1],to=new Map;for(let m of on)to.set(m.nestedUnder,(to.get(m.nestedUnder)??0)+1);let or=new Map;for(let m of on){let j=eo.get(m.nestedUnder);if(j){let U=to.get(m.nestedUnder)??1,ne=or.get(m.nestedUnder)??0;or.set(m.nestedUnder,ne+1);let we=.98,Ue=Ke.width*Ot,ye=Math.max(Jn,Math.min(Ue,j.width/(we*(U-1)+1))),Ee=Math.max(Zn,Ke.height*Ot*(ye/Ue)),At=ye*we,no=(U-1)*At+ye;On.push({...m,x:j.x+(j.width-no)/2+ne*At,y:Math.max(0,j.y-Ee+Math.min(Ee*.5,16)),width:ye,height:Ee,depth:Yt(j.depth,.8)})}else if(An){let U=Ke.width*Ot,ne=Ke.height*Ot;On.push({...m,x:An.x,y:An.y,width:U,height:ne,depth:Yt(An.depth??1,.8)})}}for(let m of Rt)On.push({...m,...eo.get(m.id)});return On.forEach(m=>{rn({id:m.id,kind:m.kind,plane:2,x:m.x,y:m.y,width:m.width,height:m.height,...m.aggregate?{aggregate:m.aggregate}:{},...m.raised?{raised:!0}:{},...m.focused?{focused:!0}:{},...m.opened?{opened:!0}:{},...m.opened?{openedRows:Math.max(1,Math.floor((Math.max(qt(Math.min(ko,Xt(m.aggregate?.memberIds.length??0))),qt(Xt(m.aggregate?.memberIds.length??0))*(ce?.frame.openedShare??1))-Ar)/vo))}:{},...m.rank?{rank:m.rank}:{},...m.nestedUnder?{nestedUnder:m.nestedUnder}:{},...m.beyond?{beyond:m.beyond}:{},...Re.has(m.id)?{plot:Re.get(m.id)}:{},...tt.has(m.id)?{nameplate:tt.get(m.id)}:{},...ce&&m.aggregate?he(m.kind,m.aggregate.memberIds):{},depth:m.depth})}),{nodes:s,connectors:Ur(e,u,n),width:o.width,height:o.height,...ce?{city:ce.frame}:{},...l>0||c>0?{visible:{width:o.width-l,height:o.height-c}}:{}};function rn(m){let j=n.overview&&Oe(m.id)!==null?void 0:n.pins[m.id],U=j?{...m,x:j.x,y:j.y,pinned:!0}:{...m,pinned:!1},ne=n.pan?{...U,x:U.x+n.pan.x,y:U.y+n.pan.y}:U;s.push(ne),u.set(ne.id,ne)}}function No(e,t,n){let r=e.nodes.find(l=>l.id===t);if(!r||r.screenOf!==void 0)return null;let o={...r,x:n.x,y:n.y,pinned:!0},a=o.x+o.width/2,i=o.y+o.height/2;return{...e,nodes:e.nodes.map(l=>l.id===t?o:l),connectors:e.connectors.map(l=>l.from===t?{...l,x1:a,y1:i}:l.to===t?{...l,x2:a,y2:i}:l)}}function Bo(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 xe=(e,t,n)=>e+(t-e)*n;function Qr(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}var Zr=new WeakMap;function Ea(e){let t=Zr.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 a of o.aggregate?.memberIds??[]){let i=r.get(a);i?i.push(o):r.set(a,[o])}}return t={byId:n,groupsOf:r},Zr.set(e,t),t}var Jr=new WeakMap;function ei(e,t){let n=Jr.get(t);if(n||Jr.set(t,n=new WeakMap),n.has(e))return n.get(e);let r=Oa(e,t);return n.set(e,r),r}function Oa(e,t){let{byId:n,groupsOf:r}=Ea(t);if(e.screenOf!==void 0){let i=n.get(be(e.screenOf));if(i)return{...e,x:i.x,y:i.y,width:i.width,height:i.height}}if(Tt(e.id)||Oe(e.id)!==null){let i=(e.aggregate?.memberIds??[]).map(s=>n.get(s)).filter(s=>s!==void 0);if(i.length===0)return null;let l=i.map(Qr),c=l.reduce((s,u)=>s+u.x,0)/l.length,d=l.reduce((s,u)=>s+u.y,0)/l.length;return{...e,x:c-e.width/2,y:d-e.height/2}}let o=r.get(e.id)?.find(i=>i.id===be(e.kind)||i.id===Ae(e.kind));if(!o)return null;let a=Qr(o);return{...e,x:a.x-e.width/2,y:a.y-e.height/2}}function jt(e,t,n){let r=Math.max(0,Math.min(1,n)),o=new Map(e.nodes.map(s=>[s.id,s])),a=new Map(t.nodes.map(s=>[s.id,s])),i=[];for(let[s,u]of o){let h=a.get(s);if(h){i.push($o(u,h,r,1));continue}let y=ei(u,t)??u;i.push($o(u,y,r,1-r))}for(let[s,u]of a){if(o.has(s))continue;let h=ei(u,e)??u;i.push($o(h,u,r,r))}let l=new Map(e.connectors.map(s=>[s.id,s])),c=new Map(t.connectors.map(s=>[s.id,s])),d=[];for(let[s,u]of l){let h=c.get(s);d.push(h?{...Aa(u,h,r),opacity:1}:{...u,opacity:1-r})}for(let[s,u]of c)l.has(s)||d.push({...u,opacity:r});return{nodes:i.filter(s=>s.opacity>0).sort((s,u)=>s.id<u.id?-1:s.id>u.id?1:0),connectors:d.filter(s=>s.opacity>0).sort((s,u)=>s.id<u.id?-1:s.id>u.id?1:0),width:xe(e.width,t.width,r),height:xe(e.height,t.height,r),t:r,...ti(e.city,t.city,r)?{city:ti(e.city,t.city,r)}:{}}}function ti(e,t,n){return e?t?{cell:xe(e.cell,t.cell,n),...e.tilt!==void 0||t.tilt!==void 0?{tilt:xe(e.tilt??.5,t.tilt??.5,n)}:{},originX:xe(e.originX,t.originX,n),originY:xe(e.originY,t.originY,n),pan:{x:xe(e.pan.x,t.pan.x,n),y:xe(e.pan.y,t.pan.y,n)},extent:{x:xe(e.extent.x,t.extent.x,n),y:xe(e.extent.y,t.extent.y,n),width:xe(e.extent.width,t.extent.width,n),height:xe(e.extent.height,t.extent.height,n)}}:e:t}function $o(e,t,n,r){return{id:t.id,kind:t.kind,plane:xe(e.plane,t.plane,n),x:xe(e.x,t.x,n),y:xe(e.y,t.y,n),width:xe(e.width,t.width,n),height:xe(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.nameplate?{nameplate:t.nameplate}:{},...t.states?{states:t.states}:{},...t.screenOf?{screenOf:t.screenOf}:{},...t.depth===void 0?{}:{depth:xe(e.depth??1,t.depth,n)},...t.natural?{natural:t.natural}:{}}}function Aa(e,t,n){return{...t,x1:xe(e.x1,t.x1,n),y1:xe(e.y1,t.y1,n),x2:xe(e.x2,t.x2,n),y2:xe(e.y2,t.y2,n)}}function Fn(e){let t=Math.max(0,Math.min(1,e));return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function La(e,t){let n=[];for(let o=0;o<e.length;o+=1){let a=e[o],i=e[(o+1)%e.length];if(a.y===i.y)continue;let l=Math.min(a.y,i.y),c=Math.max(a.y,i.y);t<l||t>=c||n.push(a.x+(t-a.y)/(i.y-a.y)*(i.x-a.x))}n.sort((o,a)=>o-a);let r={x0:0,x1:0};for(let o=0;o+1<n.length;o+=2){let a={x0:n[o],x1:n[o+1]};a.x1-a.x0>r.x1-r.x0&&(r=a)}return r}function Ia(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 Ta(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 Pa(e){let t=0,n=0,r=0;for(let o=0;o<e.length;o+=1){let a=e[o],i=e[(o+1)%e.length],l=a.x*i.y-i.x*a.y;t+=l,n+=(a.x+i.x)*l,r+=(a.y+i.y)*l}if(Math.abs(t)<1e-9){let o=e.reduce((a,i)=>({x:a.x+i.x,y:a.y+i.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 Ca(e,t){let{room:n,height:r,size:o,floor:a,measure:i=xo,lines:l=2}=t,c=(f,p)=>f.every(b=>i(b,p)<=n)&&f.length*p*1.15<=r;if(c([e],o))return{lines:[e],fontSize:o,whole:!0};let d=e.split(/\s+/);if(l>1&&d.length>1){let f=1,p=1/0,b=0;for(let v=0;v<d.length-1;v+=1){b+=d[v].length+1;let L=Math.abs(b-e.length/2);L<p&&(p=L,f=v+1)}let k=[d.slice(0,f).join(" "),d.slice(f).join(" ")];if(c(k,o))return{lines:k,fontSize:o,whole:!0};for(let v=o;v>=a;v-=o*.06)if(c(k,v))return{lines:k,fontSize:v,whole:!0}}for(let f=o;f>=a;f-=o*.06)if(c([e],f))return{lines:[e],fontSize:f,whole:!0};let s=i(e,a)/Math.max(1,e.length),u=Math.floor(n/s)-1;if(u<4||a*1.15>r)return null;let h=e.slice(0,u),y=h.lastIndexOf(" ");return{lines:[`${y>3?h.slice(0,y):h}\u2026`],fontSize:a,whole:!1}}var Na=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1;var Q=se(Te(),1);var xt=se(Te(),1);function ni(e){let[t,n]=(0,xt.useState)(()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(e).matches);return(0,xt.useEffect)(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let r=window.matchMedia(e),o=()=>n(r.matches);return o(),r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[e]),t}function Ba(){let e=()=>typeof document>"u"?null:document.documentElement.getAttribute("data-graview-motion"),[t,n]=(0,xt.useState)(e);return(0,xt.useEffect)(()=>{if(typeof document>"u"||typeof MutationObserver>"u")return;let r=new MutationObserver(()=>n(e()));return r.observe(document.documentElement,{attributes:!0,attributeFilter:["data-graview-motion"]}),n(e()),()=>r.disconnect()},[]),t}function oi(e){let t=ni("(prefers-reduced-motion: reduce)"),n=ni("(prefers-reduced-transparency: reduce)"),r=Ba();return kr({off:!e,reducedMotion:r==="reduce"||r!=="full"&&t,reducedTransparency:n})}var $a=xr*1.5,Ha=30;function ri(e,t){let[n,r]=(0,xt.useState)(!1),o=e&&!n;return(0,xt.useEffect)(()=>{if(!o||!t||typeof requestAnimationFrame>"u")return;let a=[],i=0,l=0,c=d=>{if(i>0&&a.push(d-i),i=d,a.length>=Ha){if(!Sr(a,$a)){r(!0);return}a.length=0}l=requestAnimationFrame(c)};return l=requestAnimationFrame(c),()=>cancelAnimationFrame(l)},[o,t]),o}var He=se(Te(),1);var Da=520;function Fa(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function ii(e,t={}){let n=t.duration??Da,r=(t.enabled??!0)&&!Fa(),o=(0,He.useRef)(e),[a,i]=(0,He.useState)(()=>jt(e,e,1)),l=(0,He.useRef)(a),c=(0,He.useRef)(null),d=(0,He.useRef)(null);return(0,He.useEffect)(()=>{if(!r||typeof requestAnimationFrame>"u"){o.current=e;let p=jt(e,e,1);if(l.current=p,i(p),typeof requestAnimationFrame>"u")return;let b=requestAnimationFrame(()=>{let k=jt(e,e,1);l.current=k,i(k)});return()=>cancelAnimationFrame(b)}let s=performance.now(),h=d.current!==null&&l.current.t<1&&s-d.current<n?d.current:s;d.current=h;let y=Fn(Math.min(1,(s-h)/n)),x=o.current,f=p=>{let b=Math.min(1,(p-h)/n),k=y>=1?1:(Fn(b)-y)/(1-y),v=jt(x,e,Math.max(0,k));l.current=v,i(v),b<1?c.current=requestAnimationFrame(f):(d.current=null,o.current=e,c.current=requestAnimationFrame(()=>{let L=jt(e,e,1);l.current=L,i(L),c.current=null}))};return c.current=requestAnimationFrame(f),()=>{c.current!==null&&cancelAnimationFrame(c.current);let p=l.current;o.current={...e,...p.city?{city:p.city}:{},nodes:p.nodes.map(b=>({...b,plane:Math.round(b.plane)})),connectors:p.connectors}}},[e,n,r]),a}function ai(e=1100){let{store:t}=pe(),[n,r]=(0,He.useState)(()=>new Set);return(0,He.useEffect)(()=>{let o=null,a=t.subscribe(i=>{r(new Set(i.touched)),o&&clearTimeout(o),o=setTimeout(()=>r(new Set),e)});return()=>{a(),o&&clearTimeout(o)}},[t,e]),n}var ja={marks:new Map,acts:[]};function si(e=4e3){let{store:t}=pe(),[n,r]=(0,He.useState)(ja);return(0,He.useEffect)(()=>{let o=null,a=t.subscribe((i,l)=>{r(c=>{let d=new Map(c.marks),s=[...c.acts];for(let u of l){if(u.undoes!==void 0){let x=s.find(p=>p.batch===u.undoes||p.wrote.length>0),f=s.filter(p=>u.writes.some(b=>p.wrote.includes(b)));for(let p of f.length>0?f:x?[x]:[]){for(let b of p.wrote)d.delete(b);s=s.filter(b=>b.batch!==p.batch)}continue}if(u.author.kind!=="agent")continue;let h=u.author.id??"the seat";for(let x of u.writes)d.set(x,h);s.find(x=>x.batch===u.batch)?s=s.map(x=>x.batch===u.batch?{...x,wrote:[...new Set([...x.wrote,...u.writes])]}:x):s=[{batch:u.batch,who:h,intent:u.batchIntent??u.intent,at:u.at,wrote:[...u.writes]},...s].slice(0,12)}return d.size===c.marks.size&&s===c.acts&&d.size===0?c:{marks:d,acts:s}}),o&&clearTimeout(o),o=setTimeout(()=>r(c=>c.marks.size===0?c:{...c,marks:new Map}),e)});return()=>{a(),o&&clearTimeout(o)}},[t,e]),n}var Wt=se(Le(),1),Xe=16;function di({marks:e,questions:t=[],whereIs:n,stageRef:r,width:o,height:a}){if(e.size===0&&t.length===0)return null;let i=r.current,l=i?.getBoundingClientRect()??null,c=[];for(let[s,u]of e){let h=null;if(i&&l&&typeof CSS<"u"){let p=i.querySelector(`[data-graview-pick="${CSS.escape(s)}"]`)?.getBoundingClientRect();p&&p.width>0&&p.height>0&&(h={x:p.left-l.left,y:p.top-l.top,width:p.width,height:p.height})}if(h??=n(s),!h)continue;let y=Math.min(Math.max(h.x+h.width-Xe/2,Xe/2),o-Xe/2),x=Math.min(Math.max(h.y-Xe/4,Xe/2),a-Xe/2);c.push({id:s,who:u,x:y,y:x})}let d=[];for(let s of t){let u=n(s.id);u&&d.push({...s,x:Math.min(Math.max(u.x+u.width/2,Xe),o-Xe),y:Math.min(Math.max(u.y-Xe/2,Xe),a-Xe)})}return c.length===0&&d.length===0?null:(0,Wt.jsxs)("div",{className:"graview-seat-marks","data-testid":"seat-marks","data-graview-seat-marks":c.length,children:[c.map(({id:s,who:u,x:h,y})=>(0,Wt.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:h,top:y,"--graview-hue":dn(u)},children:"\u25C6"},s)),d.map(s=>(0,Wt.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,Wt.jsx)("span",{"aria-hidden":"true",children:"?"}),(0,Wt.jsx)("span",{className:"graview-seat-asking-said",children:s.asks})]},`asking:${s.id}`))]})}var J=se(Le(),1);function Wa({hue:e,mode:t}){let n=t==="docked";return(0,J.jsxs)("svg",{viewBox:"0 0 32 38","aria-hidden":"true",children:[(0,J.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,J.jsx)("line",{x1:"16",y1:"3.5",x2:"16",y2:"7"}),(0,J.jsx)("circle",{cx:"16",cy:"2.6",r:"1.5",fill:"none"}),(0,J.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,J.jsx)("line",{x1:"11",y1:"12.5",x2:"21",y2:"12.5",strokeWidth:"2"}):(0,J.jsxs)(J.Fragment,{children:[(0,J.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,J.jsx)("circle",{cx:"13.4",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),(0,J.jsx)("circle",{cx:"18.6",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),t==="reading"?(0,J.jsx)("line",{x1:"10.2",y1:"12.5",x2:"21.8",y2:"12.5",strokeWidth:"0.8",opacity:"0.7"}):null]}),(0,J.jsx)("line",{x1:"16",y1:"16",x2:"16",y2:"18.5"}),(0,J.jsx)("polygon",{points:"16,18.5 24,22.5 16,26.5 8,22.5",fill:"currentColor",fillOpacity:"0.22"}),(0,J.jsx)("polygon",{points:"8,22.5 16,26.5 16,33.5 8,29.5",fill:"currentColor",fillOpacity:"0.08"}),(0,J.jsx)("polygon",{points:"24,22.5 16,26.5 16,33.5 24,29.5",fill:"currentColor",fillOpacity:"0.3"}),t==="writing"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)("polyline",{points:"24,24 28.5,20.5"}),(0,J.jsx)("line",{x1:"27.5",y1:"19",x2:"30",y2:"21.5",strokeWidth:"1.8"})]}):(0,J.jsx)("line",{x1:"24",y1:"24",x2:"26.5",y2:"29"}),(0,J.jsx)("line",{x1:"8",y1:"24",x2:"5.5",y2:"29"}),(0,J.jsx)("path",{d:"M9.5 33.5 v2.2 h4"}),(0,J.jsx)("path",{d:"M22.5 33.5 v2.2 h-4"})]}),(0,J.jsx)("title",{children:`robot, ${t}`})]})}function Va({hue:e}){return(0,J.jsxs)("svg",{viewBox:"0 0 22 24","aria-hidden":"true",style:{color:`hsl(${Math.round(e)} 50% 48%)`},children:[(0,J.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,J.jsx)("circle",{cx:"11",cy:"6",r:"4.2"}),(0,J.jsx)("path",{d:"M3 23 C3 15.5 6 13 11 13 C16 13 19 15.5 19 23"})]}),(0,J.jsx)("title",{children:"somebody"})]})}function li({width:e,whereIs:t}){let{who:n,following:r,follow:o}=pe(),a=Tr([...n.values()],t,e);return a.length===0?null:(0,J.jsx)("div",{className:"graview-occupants","data-testid":"occupants","data-graview-occupants":a.length,children:a.map((i,l)=>{if(i.kind==="over")return(0,J.jsx)("div",{className:"graview-presence-over","data-testid":"presence-over","data-graview-over-by":i.presence.participant,style:{left:i.box.x-3,top:i.box.y-3,width:i.box.width+6,height:i.box.height+6,"--graview-hue":i.presence.hue}},`over:${i.presence.participant}`);if(i.kind==="count")return(0,J.jsxs)("span",{className:"graview-figure-count","data-testid":"presence-count","data-graview-at":i.at,style:{left:i.point.x,top:i.point.y},title:`${i.n} more here`,children:["+",i.n]},`count:${i.at}:${l}`);let c=i.presence.hue,d=dr(i.presence)||"somebody";if(i.kind==="edge")return(0,J.jsxs)("button",{type:"button",className:"graview-figure-edge","data-testid":"presence-edge","data-graview-person":i.presence.participant,style:{right:`calc(${Math.max(8,e-i.point.x)}px + var(--graview-dock, 0px))`,top:i.point.y},onClick:()=>o(i.presence.participant),"aria-label":`${d} is somewhere else \u2014 press to go where they are`,children:["\u2192 ",d]},`edge:${i.presence.participant}`);if(i.kind==="robot")return(0,J.jsxs)("div",{className:"graview-figure","data-graview-figure":`theirs:${i.presence.participant}`,"data-graview-theirs":"","data-graview-mode":i.mode,"data-graview-at":i.presence.robot?.at??"",style:{transform:`translate(${i.point.x.toFixed(1)}px, ${i.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,J.jsx)("span",{className:"graview-figure-body",role:"img","aria-label":`${d}'s agent \u2014 ${i.mode}`,style:{cursor:"default"},children:(0,J.jsx)(Wa,{hue:c,mode:i.mode})}),(0,J.jsxs)("span",{className:"graview-figure-name",children:[d,"'s agent"]})]},`robot:${i.presence.participant}`);let s=r?.participant===i.presence.participant;return(0,J.jsxs)("div",{className:"graview-figure","data-graview-figure":i.presence.participant,"data-graview-person":"","data-graview-at":i.at,"data-graview-audience":i.audience?"":void 0,"data-graview-followed":s?"":void 0,style:{transform:`translate(${i.point.x.toFixed(1)}px, ${i.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,J.jsx)("button",{type:"button",className:"graview-figure-body","aria-label":`${d} is here${s?". Press to stop following":". Press to go where they go"}`,"aria-pressed":s,onClick:u=>{u.stopPropagation(),o(s?null:i.presence.participant)},onPointerDown:u=>u.stopPropagation(),children:(0,J.jsx)(Va,{hue:c})}),(0,J.jsx)("span",{className:"graview-figure-name",children:d})]},`person:${i.presence.participant}`)})})}var Wn=se(Te(),1),bn=se(Le(),1),ci={left:"\u2190",right:"\u2192",top:"\u2191",bottom:"\u2193"},Ho=36,wn=56;function ui({result:e,schema:t,chrome:n=[],onGo:r}){let o=To(e);if(o.length===0)return null;let a=s=>(s??[]).flatMap(u=>{let h=e.nodes.find(y=>y.id===u.id);return h?[{left:h.x+u.x,top:h.y+u.y,right:h.x+u.x+u.width,bottom:h.y+u.y+u.height}]:[]}),i=a(e.city?.showings),l=a(e.city?.nameplates),c=[...i,...l,...n.map(s=>({left:s.x,top:s.y,right:s.x+s.width,bottom:s.y+s.height}))],d=[];for(let s of["left","right","top","bottom"]){let u=e.visible??e,h=s==="left"||s==="right"?u.height:u.width,y=s==="left"||s==="right",x=s==="bottom"?_a:s==="top"?wn:za+wn/2,f=-1/0,p=[],b=o.filter(k=>k.side===s).sort((k,v)=>k.along-v.along);for(let k of b){let v=sn(t,k.kind),L=Ya(v),W=y?jn:L/2,D=h-x-(y?0:W),Z=Math.max(wn,k.along,f+W+Ga);if(Z>D)continue;let{at:G,inset:g}=Ka([...c,...p],s,Z,L,u,h);if(G>D+.5)continue;f=G+W,p.push(hi(s,G,L,u,g));let E=s==="left"?{left:g,top:G,transform:"translateY(-50%)"}:s==="right"?{right:`calc(${g}px + var(--graview-dock, 0px))`,top:G,transform:"translateY(-50%)"}:s==="top"?{top:g,left:G,transform:"translateX(-50%)"}:{bottom:`calc(${g}px + var(--graview-scene-foot, var(--graview-sheet, 0px)))`,left:G,transform:"translateX(-50%)"};d.push((0,bn.jsx)("button",{type:"button",className:"graview-edge-sign","data-graview-past-edge":k.id,"aria-label":`${v}, past the ${s} edge \u2014 bring it into view`,title:`${v} is past the ${s} edge`,tabIndex:-1,onPointerDown:A=>A.stopPropagation(),onClick:A=>{A.stopPropagation(),r(k.by)},style:{...Ua,...E},children:s==="right"||s==="bottom"?`${v} ${ci[s]}`:`${ci[s]} ${v}`},k.id))}}return(0,bn.jsx)(bn.Fragment,{children:d})}var Ya=e=>(e.length+2)*7.4+22,jn=Ho/2,xn=6,Ga=6,_a=236,za=56;function hi(e,t,n,r,o=xn){return e==="left"||e==="right"?{left:e==="left"?o:r.width-o-n,right:e==="left"?o+n:r.width-o,top:t-jn,bottom:t+jn}:{left:t-n/2,right:t+n/2,top:e==="top"?o:r.height-o-Ho,bottom:e==="top"?o+Ho:r.height-o}}function Ka(e,t,n,r,o,a){let i=t==="left"||t==="right",l=f=>hi(t,f,r,o),c=f=>e.find(p=>{let b=l(f);return b.left<p.right&&p.left<b.right&&b.top<p.bottom&&p.top<b.bottom}),d=c(n);if(!d)return{at:n,inset:xn};let s=i?jn:r/2,u=f=>{let p=n;for(let b=0;b<12;b++){let k=c(p);if(!k)return p;if(p=f>0?(i?k.bottom:k.right)+s+4:(i?k.top:k.left)-s-4,p>a-wn||p<wn)return null}return null},h=u(1);if(h!==null)return{at:h,inset:xn};let y=u(-1);if(y!==null)return{at:y,inset:xn};let x=t==="left"?d.right:t==="right"?o.width-d.left:t==="top"?d.bottom:o.height-d.top;return{at:n,inset:Math.max(xn,x+4)}}var Ua={position:"absolute",zIndex:Be.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"};function fi(e){let[t,n]=(0,Wn.useState)(null);return(0,Wn.useLayoutEffect)(()=>{let r=e.current,o=null;for(let l=r?.parentElement??null,c=0;l&&!o&&c<4;l=l.parentElement,c++)o=l.querySelector(":scope > [data-graview-scene-trail]");if(!r||!o)return;let a=()=>{let l=r.getBoundingClientRect(),c=o.getBoundingClientRect(),d=c.width>0&&c.height>0?{x:c.left-l.left,y:c.top-l.top,width:c.width,height:c.height}:null;n(s=>s===d||s&&d&&s.x===d.x&&s.y===d.y&&s.width===d.width&&s.height===d.height?s:d)};if(a(),typeof ResizeObserver>"u")return;let i=new ResizeObserver(a);return i.observe(o),()=>i.disconnect()},[e]),t}var wt=se(Te(),1),Xa=180;function mi({view:e,result:t,frame:n,panned:r,closer:o,screenId:a,setCamera:i}){let l=(0,wt.useRef)(new Map),c=Math.round((t.nodes.find(u=>u.id===a)?.height??0)/16),d=(0,wt.useRef)(e.overview??!1),s=(0,wt.useRef)(null);if((0,wt.useEffect)(()=>{if(!e.overview||!a||!t.city){if(d.current&&!e.overview)return;i(D=>D.x===0&&D.y===0?D:{x:0,y:0});return}let u=t.nodes.find(D=>D.id===a);if(!u)return;let h=o>1&&u.screenOf?t.nodes.find(D=>D.id===be(u.screenOf)):void 0,y=h?{x:Math.min(u.x,h.x),y:Math.min(u.y,h.y),width:Math.max(u.x+u.width,h.x+h.width)-Math.min(u.x,h.x),height:Math.max(u.y+u.height,h.y+h.height)-Math.min(u.y,h.y)}:u;if(y.x>=0&&y.y>=0&&y.x+y.width<=t.width&&y.y+y.height<=t.height&&!h)return;let f=24,p=(D,Z,G)=>D<f?f-D:D+Z>G-f?G-f-(D+Z):0,b=pt(t),k=e.pan??{x:0,y:0},v=h?r.x+(t.width/2-(y.x+y.width/2)):r.x+p(y.x,y.width,t.width),L=t.height/2-(y.y+y.height/2),W=h?r.y+(u.y+L<f?f-u.y:L):r.y+p(y.y,y.height,t.height);i({x:(h?v:Math.max(-b.x,Math.min(b.x,v)))-k.x,y:(h?W:Math.max(-b.y,Math.min(b.y,W)))-k.y})},[a,e.overview,o,e.within?.view,c]),n.city){let u=new Map;for(let h of n.nodes){if(!h.plot||Math.round(h.plane)!==2)continue;let y=Zt(h.plot.col+h.plot.side/2,h.plot.row+h.plot.side/2,n.city.cell,n.city.tilt);u.set(h.id,{x:n.city.originX+r.x+y.x,y:n.city.originY+r.y+y.y})}l.current=u}return(0,wt.useEffect)(()=>{let u=e.overview??!1,h=d.current&&!u;if(d.current=u,u&&s.current&&(clearTimeout(s.current),s.current=null),!h)return;let y=e.focusId?yt(e.focusId)[0]:void 0,x=y?l.current.get(be(y)):void 0,f=t.nodes.find(p=>p.id===e.focusId);if(!x||!f){i({x:0,y:0});return}i({x:x.x-(f.x+f.width/2),y:x.y-(f.y+f.height/2)}),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{s.current=null,i({x:0,y:0})},Xa)},[e.overview]),(0,wt.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),{gliding:()=>s.current!==null}}var Yn=se(Te(),1),Vn="[data-graview-view]";function qa(e,t){let n=null;for(let r=e?.closest(Vn)??null;r&&t.contains(r);r=r.parentElement?.closest(Vn)??null)n=r;return n}function yi(e,t){let n=e.getBoundingClientRect();return{left:n.left,top:n.top,right:n.right-t.right,bottom:n.bottom-t.bottom,box:n}}function gi(e,t,n){let r=(0,Yn.useRef)({dock:t,reveal:n});r.current={dock:t,reveal:n},(0,Yn.useEffect)(()=>{let o=e.current;if(!o)return;let a=c=>{let{dock:d}=r.current;if(c.key!=="Tab"||c.defaultPrevented||d.right<=0&&d.bottom<=0)return;let s=yi(o,d),u=[];for(let h of o.querySelectorAll(Vn)){if(h.parentElement?.closest(Vn)||h.inert||h.contains(document.activeElement))continue;let y=h.getBoundingClientRect(),x=Math.max(y.left,s.box.left),f=Math.min(y.right,s.box.right),p=Math.max(y.top,s.box.top),b=Math.min(y.bottom,s.box.bottom);f<=x||b<=p||!(d.right>0&&x>=s.right-1||d.bottom>0&&p>=s.bottom-1)||(h.inert=!0,u.push(h))}u.length!==0&&setTimeout(()=>{for(let h of u)h.inert=!1},0)},i=c=>{let d=c.target,s=qa(d,o);if(!s)return;let u=!0;try{u=d?.matches(":focus-visible")??!0}catch{}requestAnimationFrame(()=>{for(let h=s.parentElement;h;h=h===o?null:h.parentElement)h.scrollTop!==0&&(h.scrollTop=0),h.scrollLeft!==0&&(h.scrollLeft=0);u&&s.isConnected&&l(s)})},l=c=>{let d=yi(o,r.current.dock),s=c.getBoundingClientRect(),u=12,h=(f,p,b,k)=>k-b>p-f-2*u||b<f+u?f+u-b:k>p-u?p-u-k:0,y=h(d.left,d.right,s.left,s.right),x=h(d.top,d.bottom,s.top,s.bottom);(Math.abs(y)>=1||Math.abs(x)>=1)&&r.current.reveal(Math.round(y),Math.round(x))};return document.addEventListener("keydown",a,!0),o.addEventListener("focusin",i),()=>{document.removeEventListener("keydown",a,!0),o.removeEventListener("focusin",i)}},[e])}var de=se(Te(),1);function pi(){let e=(0,de.useRef)(null),[t,n]=(0,de.useState)({right:0,bottom:0});return(0,de.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let o=()=>{let i=r.getBoundingClientRect(),l={right:Math.round(i.width),bottom:Math.round(i.height)};n(c=>c.right===l.right&&c.bottom===l.bottom?c:l)};if(o(),typeof ResizeObserver>"u")return;let a=new ResizeObserver(o);return a.observe(r),()=>a.disconnect()},[]),{probe:e,dock:t}}function xi(){let[e,t]=(0,de.useState)(null),n=(0,de.useRef)(null),r=(0,de.useRef)(0),o=(0,de.useCallback)(i=>{n.current=i,r.current===0&&(r.current=requestAnimationFrame(()=>{r.current=0,t(n.current)}))},[]),a=(0,de.useCallback)(()=>{r.current!==0&&cancelAnimationFrame(r.current),r.current=0;let i=n.current;return n.current=null,i&&t(null),i},[]);return{held:e,place:o,release:a}}function wi({stage:e,pan:t,setView:n,settled:r}){let o=(0,de.useRef)({x:0,y:0}),a=(0,de.useRef)(0),i=(0,de.useRef)(!1),l=(0,de.useRef)(r);l.current=r;let c=(0,de.useCallback)(()=>[...e.current?.querySelectorAll("[data-graview-world]")??[]],[e]),d=(0,de.useCallback)(()=>{a.current===0&&(a.current=requestAnimationFrame(()=>{a.current=0;let{x,y:f}=o.current,p=x===0&&f===0?"":`translate3d(${x}px, ${f}px, 0)`;for(let b of c())b.style.transform=p}))},[c]),s=(0,de.useCallback)(()=>{i.current=!1;for(let x of c())x.style.transform="";l.current()},[c]),u=(0,de.useCallback)((x,f)=>{o.current={x:x.x-f.x,y:x.y-f.y},d()},[d]),h=(0,de.useCallback)(()=>{let{x,y:f}=o.current;return x===0&&f===0?!1:(o.current={x:0,y:0},i.current=!0,n(p=>{let b=p.pan??{x:0,y:0};return Ht(p,{x:b.x+x,y:b.y+f})}),window.setTimeout(()=>{i.current&&s()},300),!0)},[n,s]);(0,de.useLayoutEffect)(()=>{i.current&&s()},[t,s]);let y=(0,de.useCallback)(()=>o.current,[]);return{shiftTo:u,settle:h,settling:i,offset:y}}var Qa=4;function bi({view:e,panned:t,limit:n,panWithin:r,moveByTransform:o,setView:a,setDragging:i,noteMoved:l,shift:c,district:d}){let s=(0,de.useRef)(!1),u=(0,de.useRef)(null),h=b=>{let k=e.pan??{x:0,y:0};u.current={kind:"pan",fromX:b.clientX,fromY:b.clientY,baseX:k.x,baseY:k.y,moved:!1}};return{onGroundDown:b=>{b.button===0&&(b.target.closest("[data-graview-view]")||h(b))},onCardDown:(b,k)=>{if(k.button===0){if(b.screenOf!==void 0&&!k.target.closest("[data-graview-grip]")){h(k);return}if(e.overview&&Oe(b.id)!==null){h(k);return}u.current={kind:"card",id:b.id,fromX:k.clientX,fromY:k.clientY,baseX:b.x-t.x,baseY:b.y-t.y,moved:!1}}},onDragMove:b=>{let k=u.current;if(!k)return;let v=b.clientX-k.fromX,L=b.clientY-k.fromY;if(!k.moved){if(Math.hypot(v,L)<Qa)return;k.moved=!0,i(!0),b.currentTarget.setPointerCapture(b.pointerId)}if(k.kind==="pan"){let W=r(n(),{x:k.baseX+v,y:k.baseY+L});o?c.shiftTo(W,e.pan??{x:0,y:0}):a(D=>Ht(D,W))}else k.id&&d.place({id:k.id,x:k.baseX+v,y:k.baseY+L})},onDragUp:()=>{c.settle();let b=d.release();b&&a(k=>yn(k,b.id,{x:b.x,y:b.y})),u.current?.moved&&(s.current=!0,setTimeout(()=>s.current=!1,0),l()),u.current=null,!c.settling.current&&i(!1)},swallow:s}}function vi({stage:e,view:t,setView:n}){let r=(0,de.useRef)({view:t,charge:0,coolUntil:0,lastScale:1});r.current.view=t;let o=(0,de.useRef)(()=>{}),a=(0,de.useRef)(()=>{});return(0,de.useEffect)(()=>{let i=e.current;if(!i)return;let l=(u,h)=>{let y=r.current;if(h<y.coolUntil)return;let x=y.view.overview??!1;u!==x&&(y.coolUntil=h+600,y.charge=0,n(ln(y.view,u)))},c=u=>{let h=r.current,y=h.view.overview??!1;if(u.ctrlKey){if(u.preventDefault(),!y){if(h.charge+=u.deltaY,Math.abs(h.charge)<60)return;h.charge>0?l(!0,performance.now()):h.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(),a.current(-u.deltaX,-u.deltaY))},d=u=>{u.preventDefault(),r.current.lastScale=1},s=u=>{u.preventDefault();let h=r.current,y=u.scale??1;if(!(h.view.overview??!1)){y<.72&&l(!0,performance.now());return}let x=y/(h.lastScale||1);h.lastScale=y;let f=u;o.current(x,f.clientX,f.clientY)};return i.addEventListener("wheel",c,{passive:!1}),i.addEventListener("gesturestart",d),i.addEventListener("gesturechange",s),()=>{i.removeEventListener("wheel",c),i.removeEventListener("gesturestart",d),i.removeEventListener("gesturechange",s)}},[n,e]),{zoomAbout:o,panBy:a}}var ki={directed:"You",autonomous:"An agent","co-edited":"You and an agent",rule:"A rule"};function Do(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 a=e.find(i=>i.aggregate?.memberIds.includes(o));a&&r.add(a.id)}return r}function Fo(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 jo(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?Kt(n,t):mr(Kt(n,t),Kt(r,t),e.plane-n);return{x:e.x,y:e.y,width:e.width*o,height:e.height*o}}function Jt(e,t){if(typeof getComputedStyle>"u"||getComputedStyle(e).visibility==="hidden")return null;let n=-1/0,r=-1/0,o=1/0,a=1/0,i=e.getBoundingClientRect();n=Math.max(n,i.left),r=Math.max(r,i.top),o=Math.min(o,i.right),a=Math.min(a,i.bottom);let l=e.parentElement;for(;l&&l!==t;){let d=getComputedStyle(l);if(d.overflowX!=="visible"||d.overflowY!=="visible"){let s=l.getBoundingClientRect();d.overflowX!=="visible"&&(n=Math.max(n,s.left),o=Math.min(o,s.right)),d.overflowY!=="visible"&&(r=Math.max(r,s.top),a=Math.min(a,s.bottom))}l=l.parentElement}if(o-n<=2||a-r<=2)return null;let c=t.getBoundingClientRect();return{x:n-c.left,y:r-c.top,width:o-n,height:a-r}}function De(e,t,n,r=!1){if(!e||typeof document>"u")return null;let o=e.querySelector(`[data-graview-view="${CSS.escape(t)}"]`);if(!o)return null;let a=(n?o.querySelector(".graview-kind-block"):null)??o.querySelector('[data-graview-primitive="panel"], .graview-kind-face, .graview-kind-card')??(r?null:o.querySelector(':scope > [data-graview-primitive="chip"]'))??o;return Jt(a,e)}function Gn(e,t,n,r,o){let a=d=>e.nodes.find(s=>s.id===d);if(o.startsWith("screen:")){let d=e.nodes.find(s=>s.id===be(o.slice(7)));return d?De(t,d.id,!0)??nt(d,n):null}let i=a(o),l=Oe(o);if(!i&&l!==null&&(i=a(Ae(l))),!i&&Tt(o)){let[d]=yt(o);d&&(i=a(be(d)))}if(!i){let d=r.places().find(s=>s.as===o);d&&(i=a(Ae(d.kind))??a(be(d.kind)))}if(i||(i=[...e.nodes].filter(d=>d.aggregate?.memberIds.includes(o)).sort((d,s)=>d.plane-s.plane)[0]),!i)return null;let c=e.city!==void 0;return De(t,i.id,c&&i.aggregate!==void 0&&Math.round(i.plane)===2)??nt(i,n)}var st=se(Te(),1);var le=se(Le(),1);function Mi({kinds:e}){let{store:t}=pe(),{view:n,go:r}=mo(),o=(0,st.useRef)(null),a=go("districts",{align:"start"}),i=a.open,l=h=>sn(t.schema,h),c=h=>t.graph.allNodes().filter(y=>y.kind===h).length,d=h=>!n.overview&&n.focusId===Ae(h),s=e.filter(h=>!d(h)),u=h=>{a.setOpen(!1);let y=o.current?.querySelector(".graview-beyond-more")??null;d(h)||r(mt(n,Ae(h))),y?.focus({preventScroll:!0});let x=`[data-graview-view="${Ae(h)}"][tabindex], [data-graview-view="${be(h)}"][tabindex]`,f=40,p=()=>{let b=document.querySelector(x);b?b.focus({preventScroll:!0}):--f>0&&requestAnimationFrame(p)};requestAnimationFrame(p)};return(0,le.jsxs)("div",{ref:o,className:"graview-beyond","data-graview-beyond":e.length,"data-graview-beyond-open":i?"":void 0,children:[(0,le.jsxs)("button",{type:"button",className:"graview-beyond-more","data-testid":"beyond-more",...a.trigger,"aria-haspopup":"menu",title:`${s.length} more district${s.length===1?"":"s"} \u2014 press to see them`,onPointerDown:h=>h.stopPropagation(),onClick:h=>{h.stopPropagation(),a.toggle()},children:[(0,le.jsxs)("span",{className:"graview-beyond-count",children:["+",s.length]}),(0,le.jsx)("span",{className:"graview-beyond-word",children:"more"}),(0,le.jsx)("span",{className:"graview-beyond-chevron","aria-hidden":"true",children:i?"\u25BE":"\u25B4"})]}),i?(0,le.jsx)("ul",{...a.pane,className:"graview-beyond-list",role:"menu","aria-label":"The other districts","data-testid":"beyond-list",style:yo,onPointerDown:h=>h.stopPropagation(),children:e.map(h=>(0,le.jsx)("li",{role:"none",children:(0,le.jsxs)("button",{type:"button",role:"menuitem","data-graview-pick":be(h),"aria-current":d(h)?"location":void 0,title:d(h)?`${l(h)} \u2014 where you are`:`Go to ${l(h)}`,onPointerDown:y=>y.stopPropagation(),onClick:y=>{y.stopPropagation(),u(h)},children:[(0,le.jsx)("span",{className:"graview-beyond-name",children:l(h)}),(0,le.jsx)("span",{className:"graview-beyond-tally",children:d(h)?"here":c(h)})]})},h))}):null]})}function Za(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"||Vo(e[r],t[r]))}function Vo(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 a=0;a<e.length;a++)if(!Vo(e[a],o[a]))return!1;return!0}let r=Object.keys(e);return r.length!==Object.keys(t).length?!1:r.every(o=>Vo(e[o],t[o]))}var Ri=(0,st.memo)(Ei,(e,t)=>e.mode===t.mode&&e.selected===t.selected&&e.fidelity===t.fidelity&&Za(e.node,t.node));function Ei({node:e,mode:t,selected:n,fidelity:r}){let{store:o,views:a,view:i}=pe(),l=Ct(),c=Ir(),d=Lr(),s=e.aggregate||Tt(e.id)||Oe(e.id)!==null?"many":"one",u={cardinality:s,fidelity:r??fr[es(e.plane)].fidelity},h=s==="many"&&e.id===i.focusId?i.within?.view:void 0,y=a.resolve(e.kind,u,h),x=y?.view,f=a.resolve(e.kind,{cardinality:"many",fidelity:"full"})?.view,p=f!==void 0&&f.generic!==!0,b=e.aggregate?.memberIds,k=(0,st.useMemo)(()=>(b??[]).map(W=>o.graph.getNode(W)).filter(W=>W!==void 0),[b,o,l]),v={...e.aggregate?{nodes:k,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:d,...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.nameplate?{nameplate:e.nameplate}:{},...e.states?{states:e.states}:{},...e.aggregate?.retired?{retired:e.aggregate.retired}:{},...e.rank?{rank:e.rank}:{},...e.nestedUnder?{nestedUnder:e.nestedUnder}:{},...p?{hasOwnView:!0}:{}};if(!x)return(0,le.jsx)(ts,{node:e,props:v});let L=[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.nameplate??"",e.states?e.states.values.map(W=>W.count).join(","):"",e.aggregate?Wo(e.aggregate.memberIds):"",e.aggregate?.retired??"",c?Wo(c):"",d?Wo(d):"",p].join("|");return(0,le.jsx)(uo,{mode:t,children:(0,le.jsx)(Pr,{kind:v.label??e.kind,...y?.title?{view:y.title}:{},children:(0,le.jsx)(Ja,{signature:L,graph:l,draw:()=>(0,le.jsx)(x,{...v})})},`${e.id}|${y?.title??""}`)})}var Ja=(0,st.memo)(function({draw:t}){return(0,le.jsx)(le.Fragment,{children:t()})},(e,t)=>e.signature===t.signature&&e.graph===t.graph);function es(e){return Math.max(0,Math.min(2,Math.round(e)))}function ts({node:e,props:t}){return(0,le.jsxs)("div",{style:{padding:8,font:"13px/1.4 system-ui",overflow:"hidden"},children:[(0,le.jsx)("strong",{children:t.label??e.kind}),t.nodes?(0,le.jsxs)("div",{children:[t.nodes.length," items"]}):(0,le.jsx)("div",{children:e.id})]})}var Oi=(0,st.memo)(function({node:t}){let{store:n}=pe(),r=Pt(),o=t.aggregate,a=o.opens,i=o.memberIds.length,l=Gt(n.schema,o.kind,i),c=o.memberIds.slice(0,3).map(h=>{let y=n.graph.getNode(h),x=y?n.schema.tryDefinition(y.kind):void 0;return y?x?.label?x.label(y):String(y.label??h):h}),d=o.memberIds,s=(0,st.useMemo)(()=>{let h=r?Pn(r):null;return h?d.filter(y=>h.has(y)).length:0},[r,d]),u=a.in==="picture";return(0,le.jsxs)("div",{className:"graview-band-group","data-graview-band":a.in,"data-graview-band-count":i,"data-graview-emphasis":r?s>0?"lit":"dimmed":void 0,title:u?`${o.label} \u2014 press twice to see them all, arranged`:`${o.label}: ${l} \u2014 press twice to open`,children:[(0,le.jsxs)("span",{className:"graview-band-group-head",children:[(0,le.jsx)("span",{className:"graview-band-group-name",children:o.label}),(0,le.jsx)("span",{className:"graview-band-group-open","aria-hidden":"true",children:u?"\u2197":"\u25BE"})]}),(0,le.jsxs)("span",{className:"graview-band-group-names",children:[u?null:(0,le.jsxs)("span",{className:"graview-band-group-count",children:[l,s>0?` \xB7 ${s} match`:""," \xB7 "]}),c.join(" \xB7 "),i>c.length?" \u2026":""]})]})}),Si=new WeakMap;function Wo(e){let t=Si.get(e);if(t!==void 0)return t;let n=2166136261;for(let o of e){for(let a=0;a<o.length;a++)n=Math.imul(n^o.charCodeAt(a),16777619);n=Math.imul(n^44,16777619)}let r=`${e.length}:${(n>>>0).toString(36)}`;return Si.set(e,r),r}var bt=se(Te(),1);function Yo(e,t,n){let r=e.aggregate?[...e.aggregate.memberIds]:[e.id];return n?r.every(a=>t.includes(a))?t.filter(a=>!r.includes(a)):[...t,...r.filter(a=>!t.includes(a))]:r}function Ai(){let[e,t]=(0,bt.useState)(16);return(0,bt.useEffect)(()=>{if(typeof window>"u")return;let n=document.documentElement,r=()=>{let a=parseFloat(getComputedStyle(n).fontSize);Number.isFinite(a)&&t(i=>Math.abs(i-a)<.5?i:a)};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 Li(e){let[t,n]=(0,bt.useState)(null);return(0,bt.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,bt.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let o=l=>{!l||l.width===0||l.height===0||n(c=>{let d={width:Math.round(l.width),height:Math.round(l.height)};return c&&c.width===d.width&&c.height===d.height?c:d})},a=new ResizeObserver(l=>o(l[0]?.contentRect)),i=()=>o(r.getBoundingClientRect());return a.observe(r),addEventListener("resize",i),()=>{a.disconnect(),removeEventListener("resize",i)}},[e]),t}function Go(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 fe=se(Te(),1);var _o=(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 zo(e,t){let n=[],r=[];for(let a=0;a<e.length-1;a++){let i=e[a],l=e[a+1],c=!_o(i,t);c&&r.length===0&&r.push(i);for(let d=1;d<=48;d++){let s=d/48,u={x:i.x+(l.x-i.x)*s,y:i.y+(l.y-i.y)*s},h=!_o(u,t);if(h===c)continue;let y=(d-1)/48,x=s;for(let b=0;b<10;b++){let k=(y+x)/2,v={x:i.x+(l.x-i.x)*k,y:i.y+(l.y-i.y)*k};!_o(v,t)===c?y=k:x=k}let f=(y+x)/2,p={x:i.x+(l.x-i.x)*f,y:i.y+(l.y-i.y)*f};h?r=[p]:(r.push(p),r.length>=2&&n.push(r),r=[]),c=h}c&&r.push(l)}return r.length>=2&&n.push(r),n}function vn(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 a=(e.y+t.y)/2;return[e,{x:e.x,y:a},{x:t.x,y:a},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 Ye=e=>Math.round(e*100)/100,vt=e=>e.map(t=>t.map((n,r)=>`${r===0?"M":"L"} ${Ye(n.x)} ${Ye(n.y)}`).join(" ")).join(" ");function Ko(e,t){if(e.length<3)return vt([e]);let n=[`M ${Ye(e[0].x)} ${Ye(e[0].y)}`];for(let o=1;o<e.length-1;o++){let a=e[o-1],i=e[o],l=e[o+1],c=Math.hypot(i.x-a.x,i.y-a.y),d=Math.hypot(l.x-i.x,l.y-i.y),s=Math.min(t,c/2,d/2),u={x:i.x+(a.x-i.x)/(c||1)*s,y:i.y+(a.y-i.y)/(c||1)*s},h={x:i.x+(l.x-i.x)/(d||1)*s,y:i.y+(l.y-i.y)/(d||1)*s};n.push(`L ${Ye(u.x)} ${Ye(u.y)} Q ${Ye(i.x)} ${Ye(i.y)} ${Ye(h.x)} ${Ye(h.y)}`)}let r=e[e.length-1];return n.push(`L ${Ye(r.x)} ${Ye(r.y)}`),n.join(" ")}function Ti(e,t){return t==="orthogonal"?vt([e]):Ko(e,10)}function Pi(e,t,n){if(e==="orthogonal"){let l=vn(t.p0,t.p1),c=l.slice(1).map((u,h)=>Math.hypot(u.x-l[h].x,u.y-l[h].y)),d=c.reduce((u,h)=>u+h,0)||1,s=n*d;for(let u=0;u<c.length;u++){let h=c[u];if(s<=h||u===c.length-1){let y=h===0?0:Math.min(1,s/h),x=l[u],f=l[u+1];return{x:x.x+(f.x-x.x)*y,y:x.y+(f.y-x.y)*y}}s-=h}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),a=2*(1-n)*n,i=n*n;return{x:o*t.p0.x+a*r.x+i*t.p1.x,y:o*t.p0.y+a*r.y+i*t.p1.y}}function _n(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 Ci(e,t){let n=t.x-e.x,r=t.y-e.y,o=(n/2+r)/2,a=(r-n/2)/2;if(Math.abs(o)<1||Math.abs(a)<1)return[e,t];let i={x:e.x+2*o,y:e.y+o};return[e,i,t]}function Ni(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(a=>r.y<a.bottom+3&&r.y+r.height>a.top-3);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,a)=>o.x-a.x);return n.sort((r,o)=>r.top-o.top)}var kn=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Xo=(e,t)=>e.findIndex(n=>n.boxes.some(r=>kn(r,t)));function Bi(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 Qo(e,t){let n=[{from:-1/0,to:1/0}];for(let a of e){let i=[],l=-1/0;for(let d of a.boxes)i.push({from:l,to:d.x-12}),l=Math.max(l,d.x+d.width+12);i.push({from:l,to:1/0});let c=[];for(let d of n)for(let s of i){let u=Math.max(d.from,s.from),h=Math.min(d.to,s.to);h-u>=0&&c.push({from:u,to:h})}n=c}let r=t,o=1/0;for(let a of n){let i=Math.min(Math.max(t,a.from),a.to),l=a.from===-1/0||a.to===1/0,c=Math.abs(i-t)+(l?60:0);c<o&&(o=c,r=i)}return r}var qe=e=>({x:e.x,y:-(e.y+e.height),width:e.width,height:e.height}),zn=e=>e.map(t=>({x:t.x,y:-t.y}));function qo(e){let t=(r,o)=>Math.abs(r-o)<.5,n=e.filter((r,o)=>o===0||!(t(r.x,e[o-1].x)&&t(r.y,e[o-1].y)));return n.filter((r,o)=>{let a=n[o-1],i=n[o+1];return!a||!i||!(t(a.x,r.x)&&t(r.x,i.x)||t(a.y,r.y)&&t(r.y,i.y))})}function Zo(e,t,n){let r=e.boxes.filter(d=>!kn(d,t)&&d.y+d.height<=t.y+1&&d.x<t.x+t.width&&d.x+d.width>t.x),o=[{from:t.x+6,to:t.x+t.width-6}];for(let d of r)o=o.flatMap(s=>[{from:s.from,to:Math.min(s.to,d.x-12/2)},{from:Math.max(s.from,d.x+d.width+12/2),to:s.to}]).filter(s=>s.to>=s.from);let a=null;for(let d of o){let s=Math.min(Math.max(n,d.from),d.to);(a===null||Math.abs(s-n)<Math.abs(a-n))&&(a=s)}if(a!==null)return{x:a,tail:[{x:a,y:t.y}]};let i=n<t.x+t.width/2,l=Qo([e],i?t.x-12:t.x+t.width+12),c=t.y+t.height/2;return{x:l,tail:[{x:l,y:c},{x:l<t.x?t.x:t.x+t.width,y:c}]}}function Uo(e,t,n){let r=Zo({top:-e.bottom,bottom:-e.top,boxes:e.boxes.map(qe)},qe(t),n);return{x:r.x,head:zn(r.tail).reverse()}}function $i(e,t,n,r){let o=t;for(;o>r&&!e[o-1].boxes.some(a=>n>a.x-12/2&&n<a.x+a.width+12/2);)o--;return o}var Hi=(e,t)=>(e%3-1)*Math.max(0,Math.min(4,t/2-3));function Di(e,t,n,r,o,a,i,l){let c=f=>f<0?e[0].top-n:e[f+1].top-e[f].bottom,d=f=>(f<0?(n+e[0].top)/2:Bi(e,f,f+1))+Hi(l,c(f)),s=Zo(e[a],o,i),u=$i(e,a,s.x,t+1),h=d(t);if(u===t+1)return qo([...r.head,{x:r.x,y:h},{x:s.x,y:h},...s.tail]);let y=Qo(e.slice(t+1,u),s.x),x=d(u-1);return qo([...r.head,{x:r.x,y:h},{x:y,y:h},{x:y,y:x},{x:s.x,y:x},...s.tail])}function en(e,t,n,r=0){let o=Ni(n.some(s=>kn(s,e))&&n.some(s=>kn(s,t))?n:[...n,e,t]),a=Xo(o,e),i=Xo(o,t),l=e.x+e.width/2,c=t.x+t.width/2;if(a===i){if(!(a<o.length-1||o.length===1))return zn(en(qe(e),qe(t),n.map(qe),r));let u=Bi(o,a,a+1)+Hi(r,a<o.length-1?o[a+1].top-o[a].bottom:2*12),h=Uo(o[a],e,c),y=Uo(o[a],t,l);return qo([...h.head,{x:h.x,y:u},{x:y.x,y:u},...[...y.head].reverse()])}if(i<a)return zn(en(qe(e),qe(t),n.map(qe),r));let d=Uo(o[a],e,c);return Di(o,a,o[a].bottom,d,t,i,l,r)}function Jo(e,t,n,r=0){if(t.y+t.height<=e.y){let y=Jo(qe(e),qe(t),n.map(qe),r);return y?zn(y):null}let o=e.y+e.height;if(t.y<o)return null;let a=Ni([...n.filter(y=>y.y>=o&&!kn(y,t)),t]),i=Xo(a,t),l=t.x+t.width/2,c=Zo(a[i],t,l),d=$i(a,i,c.x,0),s=d===0?c.x:Qo(a.slice(0,d),c.x),u=Math.min(12,e.width/2),h=Math.min(Math.max(s,e.x+u),e.x+e.width-u);return Di(a,-1,o,{x:h,head:[{x:h,y:o}]},t,i,l,r)}function Fi(e,t=16){let n=new Map;for(let o of e){let a=o.a<o.b?`${o.a}\0${o.b}`:`${o.b}\0${o.a}`,i=n.get(a);i?i.push(o.key):n.set(a,[o.key])}let r=new Map;for(let o of n.values())o.forEach((a,i)=>r.set(a,(i-(o.length-1)/2)*t));return r}var Fe=se(Le(),1);function Un(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),a=!o&&r>.5*Math.min(e.height,t.height);if(o){let x={x:e.x+e.width,y:e.y+e.height/2},f={x:t.x+t.width,y:t.y+t.height/2};return{from:x,to:f,control:{x:Math.max(x.x,f.x)+18,y:(x.y+f.y)/2},mode:"stacked"}}if(a){let x={x:e.x+e.width/2,y:e.y},f={x:t.x+t.width/2,y:t.y};return{from:x,to:f,control:{x:(x.x+f.x)/2,y:Math.min(x.y,f.y)-18},mode:"abreast"}}let i={x:t.x+t.width/2,y:t.y+t.height/2},l={x:e.x+e.width/2,y:e.y+e.height/2},c=Kn(e,i),d=Kn(t,l),s=Math.hypot(d.x-c.x,d.y-c.y);if(s<8)return null;let u=Math.min(36,s*.12),h=-(d.y-c.y)/s,y=(d.x-c.x)/s;return{from:c,to:d,control:{x:(c.x+d.x)/2+h*u,y:(c.y+d.y)/2+y*u},mode:"direct"}}function Kn(e,t){let n=e.x+e.width/2,r=e.y+e.height/2,o=t.x-n,a=t.y-r;if(o===0&&a===0)return{x:n,y:r};let i=o===0?1/0:e.width/2/Math.abs(o),l=a===0?1/0:e.height/2/Math.abs(a),c=Math.min(i,l),d=Math.max(0,c*.98);return{x:n+o*d,y:r+a*d}}function ns(e,t,n){let r=t.get(e.from),o=t.get(e.to);if(!r||!o)return!1;if(n)return!0;let a=Math.round(r.plane)===1||Math.round(o.plane)===1,i=l=>!!l.aggregate&&Math.round(l.plane)===2;return a&&!i(r)&&!i(o)}var Wi=e=>({clips:new Map,members:new Map,marks:new Map,...e?{owed:e}:{}});function Vi(e,t){let n=Wi();for(let[r,o]of t){let a=e.querySelector(`[data-graview-view="${CSS.escape(r)}"]`);if(a!==null){for(let i of o)if(tn(e,a,i,n).length>0)return!0}}return!1}function Yi(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 a=n.get(o);a?a.push(r):n.set(o,[r])}return t.marks.set(e,n),n}function os(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 rs(e,t,n){let r=e.parentElement;for(;r!==null;){let o=os(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 tn(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 a=o.get(n);if(a)return a;let i=e.getBoundingClientRect(),l=[];for(let d of Yi(t,r).get(n)??[]){if(d.closest("[data-graview-offstage]"))continue;let s=d.getBoundingClientRect();s.width<=2||s.height<=2||rs(d,s,r)&&l.push({x:s.left-i.left,y:s.top-i.top,width:s.width,height:s.height})}l.sort((d,s)=>d.width*d.height-s.width*s.height),o.set(n,l);let c=t.getAttribute("data-graview-view");return l.length===0&&r.owed&&c!==null&&r.owed.set(c,(r.owed.get(c)??new Set).add(n)),l}function Xn(e,t,n,r,o,a){let i=new Map(e.map(v=>[v.id,v])),l=Wi(a),c=new Map,d=v=>{if(!n||typeof document>"u")return null;let L=c.get(v);return L===void 0&&(L=n.querySelector(`[data-graview-view="${CSS.escape(v)}"]`),c.set(v,L)),L},s=new Map;for(let v of e){let L=De(n,v.id,r)??nt(v,o);L&&s.set(v.id,L)}let u=new Map;if(n&&typeof document<"u"){let v=n.getBoundingClientRect();for(let L of n.querySelectorAll("[data-graview-pick], [data-graview-slot]")){if(L.closest("[data-graview-offstage]"))continue;let W=L.getAttribute("data-graview-pick")??L.getAttribute("data-graview-slot");if(W===null)continue;let D=L.getBoundingClientRect();if(D.width<=2||D.height<=2||D.width>v.width*.6&&D.height>v.height*.6)continue;let Z=u.get(W),G={x:D.left-v.left,y:D.top-v.top,width:D.width,height:D.height};Z?Z.push(G):u.set(W,[G])}}let h=(v,L)=>{let W=[];for(let[D,Z]of s)D!==v&&D!==L&&W.push(Z);for(let[D,Z]of u)D!==v&&D!==L&&W.push(...Z);return W},y=v=>Math.round(i.get(v)?.plane??-1)===1,x=[];for(let v of e){let L=s.get(v.id);L&&Math.round(v.plane)===1&&x.push(L)}if(!r&&n&&typeof document<"u"){let v=n.getBoundingClientRect();for(let L of n.querySelectorAll("[data-graview-relation] > span")){let W=L.getBoundingClientRect();W.width>0&&W.height>0&&x.push({x:W.left-v.left,y:W.top-v.top,width:W.width,height:W.height})}}let f=(v,L)=>!r&&y(v)&&y(L)?x:void 0,p=r?void 0:e.find(v=>Math.round(v.plane)===0&&!v.aggregate),b=(v,L,W,D)=>{if(!p)return{};let Z=v.to===p.id&&W===p.id;if(!Z&&!(v.from===p.id&&L===p.id))return{};let G=Z?v.from:v.to,g=s.get(p.id),E=s.get(G);if(G===p.id||!y(G)||!g||!E)return{};let A=d(p.id),O=$=>A!==null&&Yi(A,l).get($)?.some(H=>!H.closest("[data-graview-offstage]"))===!0,F=D.map($=>$.from===p.id?$.to:$.from),_=F.length>0&&F.every(O);return{band:x,tie:{card:g,chip:E,cardIsTo:Z,toward:G,holds:i.get(G)?.aggregate?.memberIds??[G]},..._?{said:F}:{}}},k=[];for(let v of t){if(!ns(v,i,r))continue;let L=s.get(v.from),W=s.get(v.to);if(!L||!W)continue;let D=h(v.from,v.to),Z=v.edges,G=r&&Z.some(A=>A.from!==v.from&&tn(n,d(v.from),A.from,l).length>0||A.to!==v.to&&tn(n,d(v.to),A.to,l).length>0),g=f(v.from,v.to);if(r&&!G||v.loop||Z.length===0){k.push({key:v.id,connector:v,edges:Z,fromBox:L,toBox:W,fromAnchor:v.from,toAnchor:v.to,obstacles:D,hosts:[],...g?{band:g}:{},...b(v,v.from,v.to,Z)});continue}let E=new Map;for(let A of Z){let O=A.from===v.from?[]:tn(n,d(v.from),A.from,l),F=A.to===v.to?[]:tn(n,d(v.to),A.to,l),_=[v.from,v.to].find(M=>Math.round(i.get(M)?.plane??-1)===0);if(!r&&_!==void 0&&(_===v.from?A.from!==v.from:A.to!==v.to)&&tn(n,d(_),_===v.from?A.to:A.from,l).length>0)continue;let $=_!==void 0?i.get(_):void 0;if(!r&&$?.aggregate&&n&&(_===v.from?A.from!==v.from&&O.length===0:A.to!==v.to&&F.length===0))continue;let H=O.length>0?A.from:v.from,Y=F.length>0?A.to:v.to,S=`${v.id}|${H}|${Y}`,P=E.get(S);if(P){P.edges.push(A);continue}let q=O.length>0?O:[L],z=F.length>0?F:[W],w=q[0],R=z[0],I=1/0;for(let M of q)for(let N of z){let T=Math.hypot(M.x+M.width/2-(N.x+N.width/2),M.y+M.height/2-(N.y+N.height/2));T<I&&(I=T,w=M,R=N)}E.set(S,{edges:[A],fromBox:w,toBox:R,fromAnchor:H,toAnchor:Y})}for(let[A,O]of E)k.push({key:A,connector:v,obstacles:D,hosts:[...O.fromAnchor!==v.from?[L]:[],...O.toAnchor!==v.to?[W]:[]],...g?{band:g}:{},...O,...b(v,O.fromAnchor,O.toAnchor,O.edges)})}return k}function Gi(e,t,n){let r=new Map(t.map(i=>[i.id,i])),o=new Map;for(let i of n){let l=r.get(i.id);l&&(l.x!==i.x||l.y!==i.y)&&o.set(i.id,{x:i.x-l.x,y:i.y-l.y})}if(o.size===0)return[...e];let a=(i,l)=>{let c=o.get(l);return c?{...i,x:i.x+c.x,y:i.y+c.y}:i};return e.map(i=>{let{from:l,to:c}=i.connector;if(!o.has(l)&&!o.has(c))return i;let d=a(i.fromBox,l),s=a(i.toBox,c),u=i.tie&&{...i.tie,card:a(i.tie.card,i.tie.cardIsTo?c:l),chip:a(i.tie.chip,i.tie.toward)},h=y=>y===i.fromBox?d:y===i.toBox?s:i.tie&&y===i.tie.chip?u.chip:y;return{...i,fromBox:d,toBox:s,...u?{tie:u}:{},...i.band?{band:i.band.map(h)}:{}}})}function er(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 ji(e,t,n){let r=(1-t)*(1-n),o=(1-t)*n+t*(1-n),a=t*n;return{p0:er(e,t),c:{x:r*e.p0.x+o*e.c.x+a*e.p1.x,y:r*e.p0.y+o*e.c.y+a*e.p1.y},p1:er(e,n)}}function Sn(e,t){let n=d=>t.some(s=>d.x>s.x&&d.x<s.x+s.width&&d.y>s.y&&d.y<s.y+s.height),r=d=>!n(er(e,d)),a=(d,s,u)=>{for(let h=0;h<10;h++){let y=(d+s)/2;r(y)===u?d=y:s=y}return(d+s)/2},i=[],l=null,c=r(0);c&&(l=0);for(let d=1;d<=64;d++){let s=d/64,u=r(s);if(u===c)continue;let h=a((d-1)/64,s,c);u?l=h:l!==null&&(h-l>.001&&i.push(ji(e,l,h)),l=null),c=u}return l!==null&&1-l>.001&&i.push(ji(e,l,1)),i}function _i({strands:e,result:t,scheme:n,overview:r,selection:o,emphasis:a,stageRef:i,liveOf:l,onPickEdge:c,provisional:d,pointed:s=null}){let u=Bt(),h=new Set(t.nodes.filter(g=>g.plot!==void 0&&Math.round(g.plane)===2).map(g=>g.id)),y=g=>r&&t.city!==void 0&&h.has(g.from)&&h.has(g.to),x=Do(t.nodes,o),f=g=>x.size===0||x.has(g.from)||x.has(g.to),p=new Set(o.filter(g=>It(g)===null)),b=r?t.nodes.find(g=>Math.round(g.plane)===0):void 0,k=b?De(i.current,b.id,!1)??nt(b,n):null;if(e.length===0)return null;let v=g=>g.edges.some(E=>p.has(E.from)||p.has(E.to)),L=p.size>0&&e.some(v),W=new Map;for(let g of e)W.set(g.connector.id,(W.get(g.connector.id)??0)+1);let D=Fi(e.map(g=>({key:g.key,a:g.fromAnchor,b:g.toAnchor}))),Z=new Set,G=e.map((g,E)=>{let{connector:A,fromBox:O,toBox:F}=g,_={x:O.x+O.width/2,y:O.y+O.height/2},$={x:F.x+F.width/2,y:F.y+F.height/2},H=r?Kn(O,$):_,Y=r?Kn(F,_):$,S=A.loop===!0,{connector:P,style:q}=Qt(u,A.kind);if(!P.visible)return null;let z=S?Math.max(22,Math.min(O.width,O.height)*.3):0,w=S?{x:_.x+O.width*.22,y:_.y-O.height/2-z+7}:H,R=(H.x+Y.x)/2,I=(H.y+Y.y)/2,M=Math.hypot(Y.x-H.x,Y.y-H.y),N=Math.min(r?40:90,M*(r?.09:.16)),T=0,B=0;if(M>0){T=-(Y.y-H.y)/M,B=(Y.x-H.x)/M;let re=R-t.width/2,Me=I-t.height/2;if(k&&!S){let it=k.x+k.width/2,Mt=k.y+k.height/2;re=R-it,Me=I-Mt;let ht=Math.abs(T*(it-H.x)+B*(Mt-H.y)),ft=Math.hypot(k.width/2,k.height/2)*.85+24,Ie=((it-H.x)*(Y.x-H.x)+(Mt-H.y)*(Y.y-H.y))/(M*M);ht<ft&&Ie>.1&&Ie<.9&&(N=Math.min(180,Math.max(N,(ft-ht)*2)))}T*re+B*Me<0&&(T=-T,B=-B)}N+=2*(D.get(g.key)??0);let te=_n(P.route,{p0:H,c:{x:R+T*N,y:I+B*N},p1:Y}),K=y(A),V=P.route==="orthogonal"||K,ee=(re,Me)=>K?Ci(re,Me):vn(re,Me),X=!S&&g.tie?Jo(g.tie.card,g.tie.chip,g.band??[],E):null,me=X?g.tie.cardIsTo?X.reverse():X:!S&&g.band?en(O,F,g.band,E):null,ie=S||V||me?[]:Sn(te,[O,F,...g.obstacles]),ve=me?[me]:!S&&V?zo(ee(H,Y),[O,F,...g.obstacles]):[];if(!S&&ie.length===0&&ve.length===0)return null;let ke=ve[ve.length-1],$e=V||me?ve[0]?.[0]:ie[0]?.p0,ae=V||me?ke?.[ke.length-1]:ie[ie.length-1]?.p1,Se=re=>re.map(Me=>`M ${Me.p0.x} ${Me.p0.y} Q ${Me.c.x} ${Me.c.y} ${Me.p1.x} ${Me.p1.y}`).join(" "),ot=`M ${w.x-z} ${w.y} A ${z} ${z} 0 1 1 ${w.x+z} ${w.y} A ${z} ${z} 0 0 1 ${w.x-z} ${w.y}`,oe=S?ot:me?Ti(me,P.route):V?vt(ve):Se(ie),Ge=re=>({x:re.x-8,y:re.y-8,width:re.width+16,height:re.height+16}),Ze=[O,F,...g.hosts,...g.obstacles].map(Ge),kt=S?ot:me?vt(ve):V?vt(zo(ee(H,Y),Ze)):Se(Sn(te,Ze)),Je=g.edges.length===1?g.edges[0]:null,Ce=Je?$t(A.kind,Je.from,Je.to):null,lt=Ce!==null&&o.includes(Ce),rt=Ce!==null?d?.get(Ce):void 0,je=g.edges.some(re=>p.has(re.from)||p.has(re.to)),Ne=g.tie?.toward??"",We=g.tie!==void 0&&(s!==null&&(Ne===s||g.tie.holds.includes(s)||g.said?.includes(s)===!0)||p.has(Ne))&&!Z.has(Ne);We&&Z.add(Ne);let _e=!r&&p.size>0&&je||We,ze=a!==null&&A.kind===a||lt,Ve=l?.(A)!==void 0;if(r&&!Ve||!r&&!Ve&&p.size>0&&!je&&!ze&&!We||g.said!==void 0&&!We&&!g.said.some(re=>p.has(re))&&!ze)return null;let ct=r?Fo({emphasized:a!==null,stressed:ze,anyChosen:L,mine:je,touches:f(A),siblings:W.get(A.id)??1}):jo({edgeChosen:lt,lit:_e,anyLit:L||a!==null,own:q.opacity,kit:u.emphasis}),St=_e&&$e&&ae?g.tie?g.tie.cardIsTo?$e:ae:g.edges.some(re=>p.has(re.from))?ae:$e:null,ut=(0,Fe.jsxs)("g",{children:[(0,Fe.jsx)("path",{"data-graview-connector":A.kind,"data-graview-edges":g.edges.length,"data-graview-from":g.fromAnchor,"data-graview-to":g.toAnchor,"data-graview-lit":_e||void 0,"data-graview-activity":l?.(A)?.manner,"data-graview-provisional":rt!==void 0||void 0,opacity:ct*(A.opacity??1)*(rt!==void 0?mn:1),d:oe,fill:"none",stroke:Ut(q),strokeWidth:(_e?Math.max(1.6,po(q,r)):po(q,r))+(ze?.6:0),strokeDasharray:rt!==void 0?fn:Cn[q.pattern],strokeLinecap:"round"}),St?(0,Fe.jsx)("circle",{cx:St.x,cy:St.y,r:2.6,fill:Ut(q),opacity:ct}):null,S&&r?(0,Fe.jsx)("text",{x:w.x,y:w.y-z-5,textAnchor:"middle",opacity:ct,style:{font:"9px var(--graview-font-body, system-ui)",letterSpacing:"0.09em",textTransform:"uppercase",fill:"var(--graview-ink-faint)"},children:an(A.kind).toLowerCase()}):null]},g.key),et=null;return Ce&&c&&!S&&ct>=.2&&(et=(0,Fe.jsx)("path",{"data-graview-edge":Ce,className:"graview-edge-hit",d:kt,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:re=>{re.stopPropagation(),c(Ce,{x:re.clientX,y:re.clientY})},onContextMenu:re=>{re.preventDefault(),re.stopPropagation(),c(Ce,{x:re.clientX,y:re.clientY})},children:rt!==void 0?(0,Fe.jsx)("title",{children:rt}):null},`hit:${g.key}`)),{key:g.key,line:ut,hit:et}});return(0,Fe.jsxs)(Fe.Fragment,{children:[(0,Fe.jsx)("svg",{"aria-hidden":"true","data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Be.ties},children:G.map(g=>g?.line)}),G.some(g=>g?.hit)?(0,Fe.jsx)("svg",{"data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Be.tieLabels},children:G.map(g=>g?.hit)}):null]})}function zi(e,t,n){if(t.size===0||typeof MutationObserver>"u")return()=>{};let r=0,o=()=>{r=0,Vi(e,t)&&n()},a=()=>{r===0&&(r=requestAnimationFrame(o))},i=({target:c})=>{for(let d=c instanceof Element?c:c.parentElement;d&&d!==e;d=d.parentElement)if(t.has(d.getAttribute("data-graview-view")??""))return!0;return!1},l=new MutationObserver(c=>{c.some(i)&&a()});return l.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-graview-pick","data-graview-slot","data-graview-offstage"]}),a(),()=>{l.disconnect(),cancelAnimationFrame(r)}}var is=e=>e.length*8.4+16;function Ki(e,t){let n=new Map;for(let a of e){let i=n.get(a.key);i?i.push(a):n.set(a.key,[a])}let r=[...n.values()].map(a=>{let i=Math.min(...a.map(c=>c.top)),l=a.filter(c=>c.top-i<=12);return{key:a[0].key,text:a[0].text,left:Math.min(...l.map(c=>c.left)),right:Math.max(...l.map(c=>c.right)),top:i}});r.sort((a,i)=>a.top-i.top||a.left-i.left);let o=r.map(a=>{let i=Math.max(a.right-a.left,Math.min(300,is(a.text))),l=(a.left+a.right)/2;return{left:l-i/2,right:l+i/2}});return r.map((a,i)=>{let l=r.map((b,k)=>({other:b,at:k})).filter(({other:b})=>b!==a&&Math.abs(b.top-a.top)<=12),c=l.filter(({other:b})=>b.right<=a.left).map(({other:b,at:k})=>o[k].right+8<=(b.right+a.left)/2?o[k].right+8:(b.right+a.left+8)/2),d=l.filter(({other:b})=>b.left>=a.right).map(({other:b,at:k})=>o[k].left-8>=(a.right+b.left)/2?o[k].left-8:(a.right+b.left-8)/2),s=Math.max(t.left,...c),u=Math.min(t.right,...d),h=a.right-a.left,y=o[i].right-o[i].left,x=Math.max(h,Math.min(y,u-s)),f=(a.left+a.right)/2,p=h>=x?a.left:Math.max(s,Math.min(f-x/2,u-x));return{key:a.key,text:a.text,left:p,width:x,top:a.top}})}function qn(e){return e<640?{left:8,right:56}:{left:8,right:Math.round(Math.min(128,e*.107))}}function as(e){return Math.min(260,16+e.length*6.6)}var Mn=(e,t)=>Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));function Xi(e,t,n){let r=new Map;for(let i of e){let l=r.get(i.said);l?l.push(i):r.set(i.said,[i])}let o=[],a=[];for(let[i,l]of r){let c=l[0],d=as(i),{end:s,far:u}=c,h=p=>Math.max(0,Math.min(n.width-d,p)),y=[{x:h(s.x-d/2),y:u.y-22-6,width:d,height:22},{x:h(s.x-d/2),y:u.y+u.height+6,width:d,height:22},{x:u.x+u.width+6,y:s.y-22/2,width:d,height:22},{x:u.x-d-6,y:s.y-22/2,width:d,height:22}],x=y[0],f=1/0;for(let p of y){let k=p.x<0||p.y<0||p.x+p.width>n.width||p.y+p.height>n.height?1e9:0;for(let v of t)k+=Mn(p,v.title)*100+Mn(p,v.box);for(let v of o)k+=Mn(p,v)*100;if(k<f&&(f=k,x=p),k===0)break}o.push(x),a.push({said:i,keys:l.map(p=>p.key),...x})}return a}var Ui=(e,t,n=2)=>t.x>=e.x-n&&t.x<=e.x+e.width+n&&t.y>=e.y-n&&t.y<=e.y+e.height+n;function tr(e,t){let n=new Set;for(let r of e)(t.edgeId&&r.edgeId===t.edgeId||t.point&&(Ui(r.fromBox,t.point)||Ui(r.toBox,t.point))||t.ids?.some(o=>r.ids.includes(o))||t.box&&(Mn(t.box,r.fromBox)>0||Mn(t.box,r.toBox)>0))&&n.add(r.key);return n}var ge=se(Le(),1);function Qi(e){let t=Er(e);return t.length>0?new Map(t.map(n=>[$t(n.edge.kind,n.edge.from,n.edge.to),Rr(n)])):void 0}function Zi({frame:e,width:t,height:n,scheme:r,overview:o,selection:a,emphasis:i,stageRef:l,store:c,graphNodes:d,onPickEdge:s,liveOf:u,holding:h=!1,provisional:y,focusId:x=null,beside:f=!1}){let[p,b]=(0,fe.useState)(0),[k,v]=(0,fe.useState)(null),L=e.t<1,W=(0,fe.useRef)(""),D=(0,fe.useRef)([]),Z=(0,fe.useRef)(new Map),G=()=>[...l.current?.querySelectorAll("[data-graview-relation] > span")??[]].map($=>{let H=$.getBoundingClientRect();return`${Math.round(H.left)},${Math.round(H.top)},${Math.round(H.width)}`}).join(" ");(0,fe.useLayoutEffect)(()=>{if(L||h)return;W.current=G(),D.current=e.nodes;let $=new Map;v(Xn(e.nodes,e.connectors,l.current,o,r,$)),Z.current=$},[e,L,h,a,o,d,r,p,l]),(0,fe.useEffect)(()=>{let $=l.current;if(!(L||h||$===null))return zi($,Z.current,()=>b(H=>H+1))},[k,L,h,l]),(0,fe.useEffect)(()=>{if(L||h||o||typeof requestAnimationFrame>"u")return;let $=requestAnimationFrame(()=>{G()!==W.current&&b(H=>H+1)});return()=>cancelAnimationFrame($)},[k]);let g=e.nodes.map($=>$.id).join(`
4
+ `);(0,fe.useLayoutEffect)(()=>{let $=l.current;if($===null||typeof window>"u")return;let H=0,Y=()=>{H===0&&(H=requestAnimationFrame(()=>{H=0,b(P=>P+1)}))};$.addEventListener("scroll",Y,{capture:!0,passive:!0}),window.addEventListener("resize",Y,{passive:!0});let S=typeof ResizeObserver>"u"?null:new ResizeObserver(Y);if(S){S.observe($);for(let P of $.querySelectorAll("[data-graview-view]"))S.observe(P)}return()=>{H!==0&&cancelAnimationFrame(H),$.removeEventListener("scroll",Y,{capture:!0}),window.removeEventListener("resize",Y),S?.disconnect()}},[l,g]);let[E,A]=(0,fe.useState)(null),O=(k??[]).some($=>$.tie!==void 0);if((0,fe.useEffect)(()=>{let $=l.current;if(!O||$===null)return;let H=S=>{let P=S.target?.closest?.("[data-graview-pick], [data-graview-view]");A(P?.getAttribute("data-graview-pick")??P?.getAttribute("data-graview-view")??null)},Y=()=>A(null);return $.addEventListener("pointerover",H),$.addEventListener("focusin",H),$.addEventListener("pointerleave",Y),$.addEventListener("focusout",Y),()=>{$.removeEventListener("pointerover",H),$.removeEventListener("focusin",H),$.removeEventListener("pointerleave",Y),$.removeEventListener("focusout",Y)}},[O,l]),L)return null;let F=(k&&h?Gi(k,D.current,e.nodes):k)??Xn(e.nodes,e.connectors,null,o,r),_=new Set;for(let $ of F){if($.edges.length!==1)continue;let H=$.edges[0];_.add(`${$.connector.kind}|${H.from}|${H.to}`)}return(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(_i,{strands:F,result:e,scheme:r,overview:o,selection:a,emphasis:i,stageRef:l,onPickEdge:s,liveOf:u,pointed:E,...y?{provisional:y}:{}}),o&&gn(a,{overview:o,focusId:x,beside:f},$=>c.graph.getNode($)?.kind).records.length>0?(0,ge.jsx)(fe.Suspense,{fallback:null,children:(0,ge.jsx)(ds,{frame:e,width:t,height:n,stageRef:l,tick:p,store:c,graphVersion:d,selection:a,view:{overview:o,focusId:x,beside:f},rulers:y?{...qi,unsureOf:($,H,Y)=>y.get($t($,H,Y))}:qi})}):null,o?null:(0,ge.jsx)(cs,{...y?{provisional:y}:{},stageRef:l,nodes:e.nodes,scheme:r,selection:a,store:c,graphNodes:d,overview:o,width:t,height:n,onPickEdge:s,alreadyDrawn:_,tick:p})]})}var qi={visibleRect:Jt,clipQuadratic:Sn,unsureDash:fn,unsureOpacity:mn},ss=hn(_t(()=>(__graviewPreload(import.meta.url,["./chunk.EBHKKOPO.js","./chunk.NSNGPQGT.js","./chunk.H5CZZZLX.js","./chunk.Z7JRBKA7.js","./chunk.BTSXYZ6Z.js","./chunk.SDO3U72B.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.2BJRS3YJ.js")))),ds=ss.part((e,t)=>(0,ge.jsx)(e.RecordLinks,{...t}),{what:"The links",quiet:!0}),ls=44;function cs({stageRef:e,nodes:t,scheme:n,selection:r,store:o,graphNodes:a,overview:i,width:l,height:c,onPickEdge:d,alreadyDrawn:s,tick:u,provisional:h}){let y=Bt(),x=(0,fe.useMemo)(()=>{if(r.length===0||r.length>4)return[];let g=new Set(r),E=[];for(let O of r){let F=It(O);F&&E.push({kind:F.kind,self:F.from,other:F.to})}for(let O of o.graph.allEdges()){let F=g.has(O.from)?O.from:g.has(O.to)?O.to:null;if(!F)continue;let _=F===O.from?O.to:O.from;g.has(_)||E.push({kind:O.kind,self:F,other:_})}if(E.length<=14)return E;let A=new Set(t.map(O=>O.id));return E.map((O,F)=>({tie:O,index:F,real:A.has(O.other)?0:1})).sort((O,F)=>O.real-F.real||O.index-F.index).slice(0,14).map(({tie:O})=>O)},[o,r,a,t]),f=()=>{if(x.length===0||typeof document>"u")return[];let g=e.current?.getBoundingClientRect();if(!g)return[];let E=[...e.current?.querySelectorAll("[data-graview-joins]")??[]].find(S=>{if(S.closest("[data-graview-offstage]"))return!1;try{let P=JSON.parse(S.getAttribute("data-graview-joins")??"[]");return P.length===r.length&&P.every(q=>r.includes(q))}catch{return!1}});if(E){let S=Jt(E,e.current);if(!S)return[];let P=[];for(let q of r){let z=t.find(M=>M.id===q);if(!z)continue;let w=De(e.current,z.id,i)??nt(z,n),R=w?Un(S,w):null;if(!w||!R)continue;let I=[...o.graph.allEdges()].find(M=>M.from===q&&r.includes(M.to)||M.to===q&&r.includes(M.from));P.push({key:`join:${q}`,self:q,other:"",others:1,kind:I?.kind??"",endX:R.to.x,endY:R.to.y,...R,fromBox:S,toBox:w,proxy:!1,edgeId:I?$t(I.kind,I.from,I.to):null})}return P}let A=(S,P)=>{let q=e.current?.querySelectorAll(`[data-graview-pick="${CSS.escape(S)}"], [data-graview-slot="${CSS.escape(S)}"]`),z=[];for(let w of q??[]){if(w.closest("[data-graview-offstage]")||P(w)||w.closest("[data-graview-mark]"))continue;let R=Jt(w,e.current);R&&z.push(R)}return z.sort((w,R)=>w.width*w.height-R.width*R.height)},O=S=>t.find(P=>P.id===S)??t.find(P=>P.aggregate?.memberIds.includes(S)),F=S=>`[data-graview-pick="${CSS.escape(S)}"], [data-graview-slot="${CSS.escape(S)}"]`,_=(S,P)=>{let q=e.current;if(!q)return!1;for(let z of q.querySelectorAll("[data-graview-view]")){let w=z.querySelector(F(S));if(w===null||w.closest("[data-graview-offstage]"))continue;let R=z.querySelector(F(P));if(R!==null&&!R.closest("[data-graview-offstage]"))return!0}return!1},$=[];if(!i&&e.current){for(let S of t){if(Math.round(S.plane)!==1)continue;let P=De(e.current,S.id,!1);P&&$.push(P)}for(let S of e.current.querySelectorAll("[data-graview-relation] > span")){let P=S.getBoundingClientRect();P.width>0&&P.height>0&&$.push({x:P.left-g.left,y:P.top-g.top,width:P.width,height:P.height})}}let H=new Map,Y=[];for(let S of x){if(_(S.self,S.other))continue;let P=O(S.self),q=P?e.current?.querySelector(`[data-graview-view="${CSS.escape(P.id)}"]`):null,z=!i&&P?.id===S.self&&Math.round(P.plane)===1?De(e.current,P.id,!1):null,w=z?[z]:A(S.self,()=>!1);if(!(w.length>0)&&P){let ae=De(e.current,P.id,!1)??nt(P,n);ae&&w.push(ae)}let I=t.find(ae=>ae.id===S.other),M=[],N=!1;if(I){let ae=De(e.current,I.id,i)??nt(I,n);ae&&M.push(ae)}else if(M.push(...A(S.other,ae=>q?q.contains(ae):!1)),M.length===0){let ae=O(S.other);if(ae&&(!P||ae.id!==P.id)){let Se=De(e.current,ae.id,i)??nt(ae,n);Se&&(M.push(Se),N=!0)}}if(w.length===0||M.length===0||N&&i)continue;let T=w[0],B=M[0],te=1/0;for(let ae of w)for(let Se of M){let ot=Math.hypot(ae.x+ae.width/2-(Se.x+Se.width/2),ae.y+ae.height/2-(Se.y+Se.height/2));ot<te&&(te=ot,T=ae,B=Se)}if(s?.has(`${S.kind}|${S.self}|${S.other}`)||s?.has(`${S.kind}|${S.other}|${S.self}`))continue;let K=`${S.kind}:${Math.round(T.x)},${Math.round(T.y)}:${Math.round(B.x)},${Math.round(B.y)}`,V=H.get(K);if(V){V.others+=1;continue}let ee=Un(T,B);if(!ee)continue;let{from:X,control:me}=ee,ie=z&&T===z?en(T,B,$,Y.length):void 0,ve=ie?ie[ie.length-1]:ee.to,ke=[...o.graph.allEdges()].find(ae=>ae.kind===S.kind&&(ae.from===S.self&&ae.to===S.other||ae.from===S.other&&ae.to===S.self)),$e={key:`${S.kind}:${S.self}:${S.other}`,self:S.self,other:S.other,others:1,kind:S.kind,endX:ve.x,endY:ve.y,from:X,to:ve,control:me,fromBox:T,toBox:B,...ie?{points:ie}:{},proxy:N,edgeId:ke?$t(ke.kind,ke.from,ke.to):null};H.set(K,$e),Y.push($e)}for(let S of Y){let P=[...o.graph.allEdges()].find(I=>I.kind===S.kind&&(I.from===S.self&&I.to===S.other||I.from===S.other&&I.to===S.self)),q=o.graph.getNode(S.self),z=o.graph.getNode(S.other);if(!P||!q||!z)continue;let w=P.from===S.self?"out":"in",R=Mr(o.schema,w==="out"?q.kind:z.kind,S.kind,w);S.said=S.proxy?`${R}: ${Gt(o.schema,z.kind,S.others)}`:`${R}: ${Ln(o.schema.tryDefinition(z.kind),z)}`}return Y},[p,b]=(0,fe.useState)([]),[k,v]=(0,fe.useState)([]);(0,fe.useLayoutEffect)(()=>{let g=f();b(g),v(g.some(E=>E.said)?L(g):[])},[x,t,i,n,l,c,s,u,e]);let L=g=>{let E=e.current;if(!E)return[];let A=[];for(let O of E.querySelectorAll("[data-graview-view]")){let F=[...O.children].find($=>!$.classList.contains("graview-kind-tag")),_=F?Jt(F,E):null;_&&A.push({box:_,title:{..._,height:Math.min(_.height,ls)}})}return Xi(g.flatMap(O=>O.said?[{key:O.key,said:O.said,end:{x:O.endX,y:O.endY},far:O.toBox}]:[]),A,{width:l,height:c})},[W,D]=(0,fe.useState)(()=>new Set),Z=(0,fe.useRef)([]);Z.current=p.map(g=>({key:g.key,fromBox:g.fromBox,toBox:g.toBox,ids:[g.self,g.other],edgeId:g.edgeId}));let G=k.length>0;return(0,fe.useEffect)(()=>{let g=e.current;if(!g||!G)return;let E=S=>D(P=>P.size===S.size&&[...S].every(q=>P.has(q))?P:S),A=0,O=null,F=()=>{if(A=0,!O)return;let S=g.getBoundingClientRect(),P=O.target instanceof Element?O.target:null;E(tr(Z.current,{point:{x:O.clientX-S.left,y:O.clientY-S.top},edgeId:P?.closest("[data-graview-edge]")?.getAttribute("data-graview-edge")??null}))},_=S=>{O=S,A||(A=requestAnimationFrame(F))},$=()=>{O=null,E(new Set)},H=S=>{let P=S.target instanceof Element?S.target:null;if(!P)return;let q=g.getBoundingClientRect(),z=P.getBoundingClientRect(),w=P.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??P.closest("[data-graview-view]")?.getAttribute("data-graview-view");E(tr(Z.current,{...w?{ids:[w]}:{},box:{x:z.left-q.left,y:z.top-q.top,width:z.width,height:z.height}}))},Y=S=>{S.relatedTarget instanceof Node&&g.contains(S.relatedTarget)||E(new Set)};return g.addEventListener("pointermove",_,{passive:!0}),g.addEventListener("pointerleave",$),g.addEventListener("focusin",H),g.addEventListener("focusout",Y),()=>{A&&cancelAnimationFrame(A),g.removeEventListener("pointermove",_),g.removeEventListener("pointerleave",$),g.removeEventListener("focusin",H),g.removeEventListener("focusout",Y)}},[e,G]),p.length===0?null:(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("svg",{"aria-hidden":p.some(g=>g.edgeId)?void 0:!0,"data-graview-ties":p.length,"data-graview-world":"",width:l,height:c,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Be.lines},children:p.map(g=>{let{connector:E,style:A}=Qt(y,g.kind);if(!E.visible)return null;let O=g.edgeId?h?.get(g.edgeId):void 0,F={p0:g.from,c:g.control,p1:g.to},_=g.points?Ko(g.points,10):E.route==="orthogonal"?vt([vn(g.from,g.to)]):(({p0:H,c:Y,p1:S})=>`M ${H.x} ${H.y} Q ${Y.x} ${Y.y} ${S.x} ${S.y}`)(_n(E.route,F)),$=null;if(g.edgeId&&d&&!g.proxy){let H=(S,P)=>P.x>=S.x&&P.x<=S.x+S.width&&P.y>=S.y&&P.y<=S.y+S.height,Y=g.points?[...g.points]:[];for(let S=0;S<=(g.points?-1:40);S++){let P=Pi(E.route,F,S/40);H(g.fromBox,P)||H(g.toBox,P)||Y.push(P)}Y.length>=2&&($=(0,ge.jsx)("path",{"data-graview-edge":g.edgeId,className:"graview-edge-hit",d:`M ${Y[0].x} ${Y[0].y} ${Y.slice(1).map(S=>`L ${S.x} ${S.y}`).join(" ")}`,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:S=>{S.stopPropagation(),d(g.edgeId,{x:S.clientX,y:S.clientY})},onContextMenu:S=>{S.preventDefault(),S.stopPropagation(),d(g.edgeId,{x:S.clientX,y:S.clientY})},children:O!==void 0?(0,ge.jsx)("title",{children:O}):null}))}return(0,ge.jsxs)("g",{opacity:(g.proxy?.32:.72)*(O!==void 0?mn:1),children:[(0,ge.jsx)("path",{"data-graview-tie":g.kind,"data-graview-tie-proxy":g.proxy||void 0,"data-graview-provisional":O!==void 0||void 0,d:_,fill:"none",stroke:Ut(A),strokeWidth:g.proxy?1.1:1.6,strokeDasharray:O!==void 0?fn:Cn[A.pattern],strokeLinecap:"round"}),(0,ge.jsx)("circle",{cx:g.endX,cy:g.endY,r:g.proxy?2:2.6,fill:Ut(A)}),$]},g.key)})}),(0,ge.jsx)("div",{"aria-hidden":"true","data-graview-world":"",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:Be.tieLabels},children:k.map(g=>{let E=p.find(A=>A.key===g.keys[0]);return(0,ge.jsx)("span",{className:"graview-record-link-said","data-graview-link-said":E?.kind,"data-graview-lands":E?.proxy?"district":"record","data-graview-said-for":g.keys.length,"data-graview-tie-said":g.keys.some(A=>W.has(A))?"shown":"waiting",style:{position:"absolute",left:g.x,top:g.y,transform:`translateX(min(0px, calc(${Math.round(l-g.x-8)}px - 100%)))`},children:g.said},g.said)})})]})}function Ji({nodes:e,scheme:t,width:n,stageRef:r,moving:o=!1,holding:a=!1}){let i=Bt(),[l,c]=(0,fe.useState)([]);(0,fe.useLayoutEffect)(()=>{o||a||c(d())},[e,o,a,t,n,r]);function d(){let s=[];for(let h of e){if(!h.via||Math.round(h.plane)!==1)continue;let y=De(r.current,h.id,!1,!0),{scale:x}=Kt(1,t);s.push({key:`${h.via.edgeKind}|${h.via.direction}`,text:h.via.description??`${h.via.direction==="in"?"\u2190":"\u2192"} ${an(h.via.edgeKind).toLowerCase()}`,left:y?.x??h.x,right:y?y.x+y.width:h.x+h.width*x,top:y?.y??h.y})}let u=qn(n);return Ki(s,{left:u.left,right:n-u.right})}return l.length===0||!i.captions.visible||o?null:(0,ge.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:Be.lines},children:l.map(s=>{let{left:u,width:h}=s;return(0,ge.jsx)("div",{"data-graview-relation":s.key,title:s.text,style:{position:"absolute",left:u,width:h,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,ge.jsx)("span",{style:{background:"var(--graview-ground)",padding:"1px 7px",borderRadius:4},children:s.text})},s.key)})})}var Vt=se(Te(),1);var hs=new Set;function ta(e,t,n,r,o,a,i=0,l=0){let{store:c,views:d,hiddenKinds:s}=pe(),u=Pt(),h=(0,Vt.useContext)(zt),y=fo(),x=(0,Vt.useMemo)(()=>{let b={};for(let k of y){if(k.subjectId===void 0)continue;let v=b[k.subjectId]??=[];for(let L of k.nodeIds)L!==k.subjectId&&!v.includes(L)&&v.push(L)}return b},[y]),f=(0,Vt.useMemo)(()=>({flagged:new Set(y.flatMap(b=>b.nodeIds)),touched:Nn(c.log.all())}),[y,c,a]),p=(0,Vt.useMemo)(()=>({hits:u?Pn(u):hs,...f}),[u,f]);return(0,Vt.useMemo)(()=>({...e,cityZoom:r,...h?{besideTheMap:!0}:{},...s.size>0?{hiddenKinds:[...s].sort()}:{},...Object.keys(x).length>0?{judged:x}:{},relevance:p,inset:{...qn((t?.width??1200)-o.right),top:8,bottom:0},chrome:[{x:(t?.width??1200)-o.right-176,y:0,width:176,height:100},fs(t,o)],...o.right>0||o.bottom>0?{dock:o}:{},...i>0?{headroom:i}:{},unit:n,plainGroups:c.schema.kinds.filter(b=>hr(d.lookup(b,{cardinality:"many",fidelity:"full"}))),cityOrder:sr($r({name:"scene",schema:c.schema,mutations:c.allMutations().filter(b=>!b.derived)}).order.map(b=>b.kind),d.arrangement?.()?.order),screens:d.places().reduce((b,k)=>((b[k.kind]??=[]).push({as:k.as,title:k.title,...k.across?{across:k.across}:{}}),b),{}),...t?{width:t.width,height:Math.max(0,t.height-Math.max(64,l))}:{}}),[e,t,n,c,d,s,x,p,r,h,o.right,o.bottom,i,l])}var ea=224;function fs(e,t){let n=e?.width??1200,r=e?.height??800,o=58;return{x:n-t.right-ea,y:r-t.bottom-o,width:ea,height:o}}var dt=se(Te(),1);var na=se(Te(),1);function Qn(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 oa(e){(0,na.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{for(let a of t.querySelectorAll("[data-graview-pick]"))a.getAttribute("tabindex")===null&&a.setAttribute("tabindex","0"),a.getAttribute("role")===null&&ys(a)&&a.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 ms=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 ys(e){return ms.has(e.localName.toLowerCase())}var nn=se(Le(),1);function ra({node:e,useDom:t,blur:n,touched:r,frontY:o,centerY:a,screen:i,onDrawnHeight:l,crowded:c,activity:d,scheme:s,canvasWidth:u,canvasHeight:h,selected:y,onSelect:x,onPick:f,onTravel:p,onMenu:b,selection:k,onJackIn:v,onDragStart:L,onDragMove:W,onDragEnd:D,swallowClick:Z,children:G}){let{brand:g,store:E,actsDoor:A}=pe(),O=e.beyond?`${e.beyond.length} more district${e.beyond.length===1?"":"s"}`:e.aggregate?.opens?.in==="place"?`${e.aggregate.label}, ${Gt(E.schema,e.aggregate.kind,e.aggregate.memberIds.length)}`:e.aggregate?e.aggregate.label:(()=>{let M=E.graph.getNode(e.id);return M?Ln(E.schema.tryDefinition(e.kind),M):e.id})(),[F,_]=(0,dt.useState)(null),$=Math.round(e.plane)===0&&!e.aggregate;(0,dt.useLayoutEffect)(()=>{if(!$)return;let M=q.current;if(!M)return;let N=()=>{let B=[...M.children].find(X=>X.dataset.graviewKindtag===void 0);if(!B)return;let te=M.getBoundingClientRect(),K=B.getBoundingClientRect(),V=M.offsetWidth>0?te.width/M.offsetWidth:1,ee={top:Math.round((K.top-te.top)/V)-9,right:Math.round((te.right-K.right)/V)+14};_(X=>X&&X.top===ee.top&&X.right===ee.right?X:ee)};if(typeof ResizeObserver>"u"){N();return}let T=new ResizeObserver(N);T.observe(M);for(let B of M.children)T.observe(B);return()=>T.disconnect()},[$,e.id]);let H=gr({plane:e.plane,...e.depth!==void 0?{depth:e.depth}:{},onPlot:o!==void 0},s),Y=H.style,S=yr(Y,e.x,e.y,u,h),P=n?H.blur:0,q=(0,dt.useRef)(null);oa(q);let z=e.natural,w=z?Math.min(e.width/z.width,e.height/z.height):1,R=(0,dt.useRef)(null);(0,dt.useEffect)(()=>{if(!i||!l)return;let M=R.current;if(!M||typeof ResizeObserver>"u")return;let N=()=>{let V=0,ee=0;for(let X of M.children)if(!(!(X instanceof HTMLElement)||X.classList.contains("graview-screen-fullscreen"))){V=Math.max(V,X.offsetTop+X.offsetHeight);for(let me of[X,...X.querySelectorAll("*")]){let ie=getComputedStyle(me).overflowY;(ie==="auto"||ie==="scroll")&&(ee+=me.scrollHeight-me.clientHeight)}}l(V+ee)},T=0,B=()=>{T||(T=requestAnimationFrame(()=>{T=0,N()}))};N();let te=new ResizeObserver(B);te.observe(M);for(let V of M.children)te.observe(V);let K=new MutationObserver(B);return K.observe(M,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),()=>{T&&cancelAnimationFrame(T),te.disconnect(),K.disconnect(),l(void 0)}},[i,l,e.id]);let I=t?{transform:Ii(S),transformOrigin:"0 0",filter:P>0?`blur(${P}px)`:void 0,opacity:pr(Y)*(e.opacity??1),"--graview-lift-low":Go(Y.shadow,s),...o!==void 0?{"--graview-front-y":`${o.toFixed(1)}px`}:{},...a!==void 0?{"--graview-center-y":`${a.toFixed(1)}px`}:{}}:{"--graview-lift-low":Go(Y.shadow,s)};return(0,nn.jsxs)("div",{ref:q,"data-graview-view":e.id,...t?{}:{drawable:""},"data-graview-plane":Math.round(e.plane),"data-graview-selected":y||void 0,"data-graview-touched":r||void 0,"data-graview-plot":o!==void 0?"":void 0,"data-graview-screen":i?"":void 0,"data-graview-record-focus":Math.round(e.plane)===0&&!e.aggregate&&!z&&!i?"":void 0,"data-graview-nested":e.nestedUnder??void 0,"data-graview-crowded":c||void 0,"data-graview-pinned":e.pinned||void 0,"data-graview-activity":d?d.manner:void 0,"data-graview-wrote":d?.wrote||void 0,"data-graview-read":d&&!d.wrote?!0:void 0,"data-graview-broke":d?.broke||void 0,title:d?`${ki[d.manner]} ${d.wrote?"changed this":"read this"}: ${d.intent}`:e.aggregate&&Math.round(e.plane)!==0?`Open ${e.aggregate.label}`:void 0,role:"group","aria-label":O,"aria-keyshortcuts":A&&!e.beyond?A.key:void 0,tabIndex:0,onPointerDown:L,onPointerMove:W,onPointerUp:D,onPointerCancel:D,onClick:M=>{if(Z.current)return;let N=M.target?.closest("input, textarea, select, button, a[href], [contenteditable='true']");if(N&&!N.hasAttribute("data-graview-pick"))return;let T=M.metaKey||M.shiftKey,B=gt(M.target);if(B&&B!==e.id){M.stopPropagation(),f(B,T,Qn(M.target)??void 0);return}x(T)},onKeyDown:M=>{if(A&&!e.beyond&&M.key.toLowerCase()===A.key.toLowerCase()&&!M.metaKey&&!M.ctrlKey&&!M.altKey&&!M.target?.closest("input, textarea, select, [contenteditable='true']")){M.preventDefault(),M.stopPropagation();let K=gt(M.target)??e.id;k.includes(K)||f(K,!1),A.open(M.target instanceof HTMLElement?M.target:M.currentTarget);return}if(M.key!=="Enter"&&M.key!==" "||M.target?.closest("input, textarea, select, button, [contenteditable='true']"))return;let T=gt(M.target);if(M.preventDefault(),M.stopPropagation(),!T||T===e.id){k.length===1&&k[0]===e.id&&!M.metaKey&&!M.shiftKey?v():x(M.metaKey||M.shiftKey);return}let B=Qn(M.target);(B?k.length===B.length&&B.every(K=>k.includes(K)):k.length===1&&k[0]===T)&&!M.metaKey&&!M.shiftKey?p(T):f(T,M.metaKey||M.shiftKey,B??void 0)},onContextMenu:M=>{let N=gt(M.target);M.preventDefault(),M.stopPropagation();let T=N&&N!==e.id?N:e.id;f(T,!1,(T===N?Qn(M.target):null)??void 0),b({x:M.clientX,y:M.clientY,on:T})},onDoubleClick:M=>{let N=gt(M.target);if(N&&N!==e.id){M.stopPropagation(),p(N);return}v()},style:{position:"absolute",...t?{}:{pointerEvents:"none"},zIndex:e.opened?Be.opened:Be.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",...I},children:[z?(0,nn.jsx)("div",{ref:R,"data-graview-natural":`${Math.round(z.width)}x${Math.round(z.height)}`,style:{position:"absolute",left:"50%",top:"50%",width:z.width,height:z.height,transform:`translate(-50%, -50%) scale(${w})`,transformOrigin:"50% 50%",display:"flex",flexDirection:"column"},children:G}):G,Math.round(e.plane)===0&&!e.aggregate?(0,nn.jsxs)("span",{"data-graview-kindtag":"",className:"graview-kind-tag","aria-hidden":"true",style:{...F??{},"--graview-hue":Math.round(dn(e.kind,g?.accents))},children:[(0,nn.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(dn(e.kind,g?.accents))} 55% var(--graview-tint-lightness) / 0.9)`}}),ir(E.schema.tryDefinition(e.kind),e.kind)]}):null]})}var ue=se(Le(),1);ho({search:Dr,touchWeights:Nn});var gs=e=>e?{activity:e}:{},ps=e=>`${Math.round(e.x)} ${Math.round(e.y)}`,ia=e=>e.stopPropagation(),la=.6,ca=3,xs=80,aa=e=>Math.round(e.plane)===1&&(e.compact===!0||e.width<175||e.height<xs);function ws(e){let[t,n]=(0,Q.useState)(1),r=(0,Q.useRef)(1);return(0,Q.useEffect)(()=>{e||(r.current=1,n(1))},[e]),[t,r,n]}function bs(e){let[t,n]=(0,Q.useState)({x:0,y:0}),r=(0,Q.useMemo)(()=>({x:(e.pan?.x??0)+t.x,y:(e.pan?.y??0)+t.y}),[e.pan,t]),o=(0,Q.useMemo)(()=>t.x===0&&t.y===0?e:Ht(e,r),[e,t,r]),a=(0,Q.useRef)(t);a.current=t;let i=(0,Q.useCallback)((l,c)=>{let d=a.current,s=(u,h,y)=>Math.max(Math.min(-u,h),Math.min(Math.max(u,h),y+h))-h;return{x:s(l.x,d.x,c.x),y:s(l.y,d.y,c.y)}},[]);return[r,o,i,a,n]}function vs(e,t,n,r,o,a){let i=n!==null&&!t.overview,l=i?null:n,c=(0,Q.useMemo)(()=>{let h=t.pan?{...t,pan:void 0}:t;return l?yn(h,l.id,{x:l.x,y:l.y}):h},[t,l]),d=(0,Q.useMemo)(()=>Dn(e.graph,e.schema,c,r),[e,c,r,o]),s=(0,Q.useMemo)(()=>n&&i?No(d,n.id,{x:n.x,y:n.y})??Dn(e.graph,e.schema,yn(c,n.id,{x:n.x,y:n.y}),r):d,[d,n,i,e,c,r]);return[(0,Q.useMemo)(()=>Bo(s,a??{x:0,y:0}),[s,a]),i]}function ks(){let[e,t]=(0,Q.useState)(!1),[n,r]=(0,Q.useState)(!1),o=(0,Q.useRef)(null),a=(0,Q.useRef)(()=>!1),i=(0,Q.useCallback)(()=>{r(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{o.current=null,!a.current()&&r(!1)},160)},[]);return[e,n,t,i,a,()=>{t(!1),r(!1)}]}function Ss(e){let t=(0,Q.useRef)(!1),n=e!==null&&!t.current;return(0,Q.useEffect)(()=>{e!==null&&(t.current=!0)},[e]),n}function Ms({registerScene:e,scheme:t,views:n},r,o){let a=(0,Q.useRef)(r);a.current=r,(0,Q.useEffect)(()=>(e({whereIs:i=>Gn(a.current,o.current,t,n,i)}),()=>e(null)),[e,t,n])}function Rs(e,t){(0,Q.useEffect)(()=>{let n;return e.onActive(r=>{let o=t.current;if(!o)return;let a=l=>{let c=o.getBoundingClientRect();e.set({x:l.clientX-c.left,y:l.clientY-c.top})},i=()=>e.set(null);r?(o.addEventListener("pointermove",a),o.addEventListener("pointerleave",i),n=()=>{o.removeEventListener("pointermove",a),o.removeEventListener("pointerleave",i)}):(n?.(),n=void 0)})},[e])}function Es(e,t,n,r,o,a,i,l){(0,Q.useEffect)(()=>{let c=t.current;if(!c||!e)return;let d=new Set;for(let u of n.nodes)(r.has(u.id)||u.aggregate?.memberIds.some(h=>r.has(h)))&&d.add(u.id);let s=e({canvas:c,layout:n,dirty:d,hostOf:u=>(c.parentElement??c).querySelector(`[data-graview-view="${CSS.escape(u)}"]`),drawOnDom:o,blur:a,scheme:i,fallBack:l});return()=>{s?.()}},[e,n,r,o,a,i,l])}var Os=_t(()=>(__graviewPreload(import.meta.url,["./chunk.OJGHDWI6.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.4PNFX3TX.js")));function As(e,t){let[n]=(0,Q.useState)(()=>{let s=wr();return t?e==="dom"||e==="auto"&&s==="dom"?"dom":"gpu":vr(e,{operator:s,present:br()})}),[r,o]=(0,Q.useState)(!1),a=(0,Q.useCallback)(()=>o(!0),[]),[i,l]=(0,Q.useState)(null),c=n==="gpu"&&!t&&!r&&i===null;return(0,Q.useEffect)(()=>{if(!c)return;let s=!0;return Os().then(u=>{s&&l(()=>u.attachGpu())},()=>{s&&o(!0)}),()=>{s=!1}},[c]),{attach:(n==="gpu"&&!r?t??i:null)??null,fallBack:a}}function Ls(){let[e,t]=(0,Q.useState)(()=>new Set),n=(0,Q.useCallback)(r=>{t(o=>o.size===r.size&&[...r].every(a=>o.has(a))?o:new Set(r))},[]);return[e,n]}function Is(){let e=Or();return t=>{let n=t?e.get(t.id):void 0,r=t?.aggregate?.memberIds??[];if(!n&&r.length===0)return;let o=n,a=n?.wrote??!1,i=n?.read??!1,l=n?.broke??!1;for(let c of r){let d=e.get(c);d&&(a||=d.wrote,i||=d.read,l||=d.broke,(!o||d.at>o.at||d.at===o.at&&d.wrote&&!o.wrote)&&(o=d))}return o?{...o,wrote:a,read:i,broke:l}:void 0}}var sa=(e,t)=>e.includes(t)?e.filter(n=>n!==t):[...e,t];function Ts(){let{views:e,view:t,setView:n,setSelection:r}=pe(),o=Pt(),a=(0,Q.useContext)(zt),i=l=>{if(Oe(l.id)===null&&!l.aggregate)return!1;let c=e.resolve(l.kind,{cardinality:"many",fidelity:"full"})?.view;return c!==void 0&&c.generic!==!0};return l=>({onSelect:c=>{if(un(l.id)){r(s=>c?sa(s,l.id):[l.id]);return}let d=l.aggregate?cn(l.id):[];if(t.overview){r(s=>c?[...new Set([...s,l.id])]:[l.id]);return}if(d.length===1&&!c&&Math.round(l.plane)!==0){let s=d[0];n(u=>ao(u,u.relation===s?null:s));return}r(s=>Yo(l,s,c))},onPick:(c,d,s)=>r(u=>s?d?[...new Set([...u,...s])]:[...s]:d?sa(u,c):[c]),onTravel:c=>{n(d=>({...mt(d,c),relation:null})),r([c])},onJackIn:()=>{let c=l.aggregate?.opens;if(c){c.in==="place"?n(u=>so(u,l.id)):n(u=>Object.entries(c.within).reduce((h,[y,x])=>Tn(h,y,x),mt(ln(u,!1),c.focus))),r([]);return}let d=Oe(l.id),s=d!==null&&(o?.byKind[d]??0)>0;if(a&&d!==null&&t.overview&&!i(l)&&!(s&&t.q)){n(u=>Tn({...mt(u,`aggregate:${d}`),relation:null},"view",null)),r([]);return}n(u=>lo(u,l.id,{ownPicture:i(l),...s&&u.q?{carry:u.q}:{}})),r(l.aggregate?[]:[l.id])}})}var Ps=hn(_t(()=>(__graviewPreload(import.meta.url,["./chunk.HJCQ6I3S.js","./chunk.EBHKKOPO.js","./chunk.XDYAG276.js","./chunk.P4WYBSYA.js","./chunk.NSNGPQGT.js","./chunk.H5CZZZLX.js","./chunk.Z7JRBKA7.js","./chunk.BTSXYZ6Z.js","./chunk.SDO3U72B.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.VC4JPG7O.js")))),Cs=Ps.part((e,t)=>(0,ue.jsx)(e.Ribbons,{...t}),{what:"The relations",quiet:!0}),da="graview:map-from-above";function Ns(){let[e,t]=(0,Q.useState)(()=>{try{return globalThis.localStorage?.getItem(da)==="1"}catch{return!1}}),n=(0,Q.useCallback)(r=>{t(r);try{globalThis.localStorage?.setItem(da,r?"1":"0")}catch{}},[]);return[e,n]}var Bs=hn(_t(()=>(__graviewPreload(import.meta.url,["./chunk.XDYAG276.js","./chunk.P4WYBSYA.js","./chunk.WXYUWBKX.js","./chunk.BTSXYZ6Z.js","./chunk.SDO3U72B.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.ROINZMNO.js")))),$s=Bs.part((e,t)=>(0,ue.jsx)(e.Plots,{...t}),{quiet:!0});function Hs({zoom:e,zoomBy:t,above:n,setAbove:r}){let o=(a,i,l,c)=>(0,ue.jsx)("button",{type:"button",className:"graview-zoom-button","data-testid":`zoom-${a}`,"aria-label":`Zoom ${a}`,title:`Zoom ${a} \u2014 or pinch, or ctrl+wheel`,disabled:c,onClick:()=>t(l),children:i});return(0,ue.jsxs)("div",{className:"graview-zoom","data-graview-foot":"",role:"group","aria-label":"Zoom",onPointerDown:ia,onClick:ia,children:[o("out","\u2212",1/1.25,e<=la+1e-6),(0,ue.jsxs)("span",{className:"graview-zoom-level","data-testid":"zoom-level","aria-live":"polite",children:[Math.round(e*100),"%"]}),o("in","+",1.25,e>=ca-1e-6),(0,ue.jsx)("button",{type:"button",className:"graview-zoom-button graview-zoom-above","data-testid":"from-above","aria-pressed":n,title:n?"See the city at an angle again":"See the city from straight above",onClick:()=>r(!n),children:"From above"})]})}function Ds({options:e,renderer:t="auto",attachRenderer:n,blur:r=!0,className:o,style:a,animate:i=!0,children:l}){let c=pe(),{store:d,scheme:s,views:u,view:h,setView:y,selection:x,setSelection:f,setMenuAt:p,emphasis:b,brand:k,noteMoved:v,robots:L,motion:W}=c,D=(0,Q.useContext)(zt),Z=(0,Q.useRef)(null),G=(0,Q.useRef)(null),g=Li(G),E=Ai(),{zoomAbout:A,panBy:O}=vi({stage:G,view:h,setView:y}),F=Ct(),_=1,[$,H,Y]=ws(h.overview),[S,P]=Ns(),q=(0,Q.useMemo)(()=>S?{...e,tilt:jr}:e,[e,S]),{probe:z,dock:w}=pi(),R=!h.overview&&(h.zoom||h.past||h.relation)?Math.ceil(14+34*E/16+6):0,I=ta(q,g,E,_*$,w,F,R,h.overview?0:w.bottom),M=fi(G),[N,T,B,te,K]=bs(h),V=(0,Q.useMemo)(()=>new Set(Object.keys(h.pins).filter(C=>Oe(C)===null)),[h.pins]),ee=xi(),[X,me]=vs(d,h,ee.held,I,F,T.pan),[ie,ve,ke,$e,ae,Se]=ks(),ot=Ss(g),oe=ii(X,{enabled:i&&!ie&&!ve&&g!==null&&!ot});(0,Q.useEffect)(()=>W.set(ie||ve||oe.t<1),[W,ie,ve,oe]);let Ge=ai(),Ze=si(),kt=mi({view:h,result:X,frame:oe,panned:N,closer:_,screenId:null,setCamera:K});Ms(c,oe,G),Rs(c.pointer,G);let[Je,Ce]=Ls(),{attach:lt,fallBack:rt}=As(t,n),je=oi(r);Es(lt,Z,oe,Ge,Ce,je,s,rt);let Ne=lt===null,We=ri(je&&Ne,ie||ve||oe.t<1),_e=Is(),ze=wi({stage:G,pan:h.pan,setView:y,settled:Se});ae.current=ze.settle;let{onGroundDown:Ve,onCardDown:ct,onDragMove:St,onDragUp:ut,swallow:et}=bi({view:h,panned:N,limit:()=>pt(X),panWithin:B,moveByTransform:!0,setView:y,setDragging:ke,noteMoved:v,shift:ze,district:ee});A.current=(C,he,ce)=>{if(!h.overview)return;ae.current();let Re=H.current,tt=Math.max(la,Math.min(ca,Re*C));if(Math.abs(tt-Re)<1e-4)return;H.current=tt,$e(),Y(tt);let Et=G.current?.getBoundingClientRect(),En=X.visible??X,Ot={x:En.width/2,y:En.height/2},Zn=Et&&he!==void 0&&ce!==void 0?{x:he-Et.left,y:ce-Et.top}:Ot,Jn=tt/Re;y(Yt=>Ht(Yt,Po(Yt.pan??{x:0,y:0},te.current,Zn,Ot,Jn))),v()};let re=(C,he,ce=pt(X))=>y(Re=>Ht(Re,B(ce,{x:(Re.pan?.x??0)+C,y:(Re.pan?.y??0)+he})));gi(G,w,(C,he)=>re(C,he)),O.current=(C,he)=>{$e();let ce=pt(X),Re=h.pan??{x:0,y:0},tt=ze.offset();ze.shiftTo(B(ce,{x:Re.x+tt.x+C,y:Re.y+tt.y+he}),Re),v()};let Me=Ts(),it=Bt(),Mt=(0,Q.useCallback)(C=>Qt(it,C).connector.visible,[it]),ht=C=>_e(oe.nodes.find(he=>he.id===C)),ft=(C,he,ce,Re)=>C.originY+N.y+Zt(ce.col+ce.side/Re,ce.row+ce.side/Re,C.cell,C.tilt).y-he.y,Ie={width:X.width,height:X.height},on={position:"relative",zIndex:Be.stage,...Ie},Rn=C=>Gn(oe,G.current,s,u,C),Rt=C=>Ne||Je.has(C),Ke=oe.nodes.filter(C=>C.screenOf===void 0).map(C=>(0,ue.jsx)(ra,{node:C,crowded:aa(C),useDom:Rt(C.id),blur:We||!Ne&&je,...C.plot&&oe.city&&Math.round(C.plane)===2?{frontY:ft(oe.city,C,C.plot,1),centerY:ft(oe.city,C,C.plot,2)}:{},touched:Ge.has(C.id),...gs(_e(C)),scheme:s,canvasWidth:X.width,canvasHeight:X.height,selected:x.includes(C.id),...Me(C),onMenu:p,selection:x,onDragStart:he=>ct(C,he),onDragMove:St,onDragEnd:ut,swallowClick:et,children:C.beyond?(0,ue.jsx)(Mi,{kinds:C.beyond}):C.aggregate?.opens?(0,ue.jsx)(Oi,{node:C}):(0,ue.jsx)(Ri,{node:C,mode:"scene",selected:x.includes(C.id),...aa(C)?{fidelity:"glyph"}:{}})},C.id));return(0,ue.jsxs)("div",{ref:G,className:`graview-ground${o?` ${o}`:""}`,"data-graview-altitude":h.overview?"":void 0,"data-graview-reach":oe.city?ps(pt(X)):void 0,"data-graview-settled":oe.t>=1&&!kt.gliding()?"":void 0,"data-graview-box":g?`${g.width}x${g.height}`:void 0,"data-graview-renderer":Ne?"dom":"gpu","data-graview-blur":(Ne?We:je)?"":void 0,onPointerDown:Ve,onPointerMove:St,onPointerUp:ut,onPointerCancel:ut,onClick:C=>{et.current||C.target.closest("[data-graview-view], button, aside, section[aria-label], [data-graview-offstage], a, input, select")||(f([]),p(null))},style:{position:"relative",width:"100%",height:"100%",cursor:ie?"grabbing":"grab",touchAction:"none","--graview-altitude":h.overview?1:0,...oe.city?{"--graview-lattice-cell":`${oe.city.cell.toFixed(2)}px`,"--graview-lattice-tilt":(oe.city.tilt??.5).toFixed(3),"--graview-lattice-x":`${(oe.city.originX+oe.city.pan.x).toFixed(1)}px`,"--graview-lattice-y":`${(oe.city.originY+oe.city.pan.y).toFixed(1)}px`}:{},...ie?{userSelect:"none"}:{},overflow:"hidden",...a},children:[h.overview&&oe.city?(0,ue.jsx)(Q.Suspense,{fallback:null,children:(0,ue.jsx)(Cs,{frame:oe,...Ie,pan:oe.city.pan,store:d,graphVersion:F,selection:x,view:{overview:h.overview,focusId:h.focusId,beside:D},emphasis:b,hiddenKinds:c.hiddenKinds,drawn:Mt})}):null,(0,ue.jsx)("div",{ref:z,"aria-hidden":"true",style:{position:"absolute",top:0,right:0,width:"var(--graview-dock, 0px)",height:"var(--graview-sheet, 0px)",visibility:"hidden",pointerEvents:"none"}}),oe.city?(0,ue.jsx)(Q.Suspense,{fallback:null,children:(0,ue.jsx)($s,{frame:oe,...Ie,pan:oe.city?oe.city.pan:N,brand:k,pinned:V,close:_*$>1.2,swallowed:et,...h.overview?{chosen:gn(x,{overview:h.overview,focusId:h.focusId,beside:D},C=>d.graph.getNode(C)?.kind).records}:{},onFocus:C=>{let he=Oe(C);he!==null&&y(ce=>mt(ce,Ae(he)))}})}):null,Ne?(0,ue.jsx)("div",{"data-graview-stage":"dom","data-graview-world":"",style:{...on,overflow:"hidden"},children:Ke}):(0,ue.jsxs)("div",{"data-graview-world":"",style:on,children:[(0,ue.jsx)("div",{"data-graview-stage":"dom","data-graview-under-canvas":"",style:{position:"absolute",left:0,top:0,...Ie,overflow:"hidden"},children:Ke.filter(C=>Je.has(String(C.key)))}),(0,ue.jsx)("canvas",{ref:Z,"data-graview-stage":"gpu",content:"drawable",layoutsubtree:"",...Ie,style:{display:"block",position:"relative",...Ie},children:Ke.filter(C=>!Je.has(String(C.key)))})]}),h.overview&&!ie?(0,ue.jsx)(ui,{result:X,schema:d.schema,chrome:M?[...I.chrome??[],M]:I.chrome??[],onGo:C=>{re(C.x,C.y),v()}}):null,h.overview?(0,ue.jsx)(Hs,{zoom:$,zoomBy:C=>A.current(C),above:S,setAbove:P}):null,(0,ue.jsx)(Zi,{frame:oe,focusId:h.focusId,beside:D,holding:me,...Ie,scheme:s,overview:!!h.overview,selection:x,emphasis:b,stageRef:G,store:d,graphNodes:F,...(C=>C?{provisional:C}:{})(Qi(d)),onPickEdge:(C,he)=>{et.current||(f([C]),p(he?{...he,on:C}:null))},liveOf:C=>{let he=ht(C.from),ce=ht(C.to);return he?.wrote&&ce?.wrote?he.at>ce.at?he:ce:void 0}}),(0,ue.jsx)(li,{width:X.width,whereIs:Rn}),(0,ue.jsx)(di,{marks:Ze.marks,questions:[...L.values()].filter(C=>C.mode==="asking"&&C.at!==null&&C.say).map(C=>({id:C.at,who:C.who,asks:C.say})),whereIs:Rn,stageRef:G,...Ie}),(0,ue.jsx)(Ji,{nodes:oe.nodes,moving:oe.t<1,holding:me,scheme:s,width:X.width,stageRef:G}),l]})}var Qe=se(Te(),1);function Fs(){return ma(),null}var fa=()=>window.location.pathname.endsWith(ar),ua=()=>(fa()?lr:io)(window.location.hash),js=e=>(fa()?cr:ro)(e);function ma(){let{view:e,setView:t,views:n,principal:r}=pe(),o=JSON.stringify(r),a=(0,Qe.useCallback)(s=>{let u=s.within?.view;if(u===void 0||s.focusId)return s;let h=n.places().find(y=>y.as===u);return h?{...s,focusId:Ae(h.kind)}:s},[n]),i=(0,Qe.useRef)(!1);(0,Qe.useEffect)(()=>{if(typeof window>"u")return;let s=a(ua());!In(s,oo)&&!In(s,e)&&(i.current=!0,t(s))},[]),(0,Qe.useEffect)(()=>{if(typeof window>"u")return;let s=()=>t(a(ua()));return window.addEventListener("popstate",s),window.addEventListener("hashchange",s),()=>{window.removeEventListener("popstate",s),window.removeEventListener("hashchange",s)}},[t,a]);let l=(0,Qe.useRef)(!1),c=(0,Qe.useRef)(null),d=(0,Qe.useRef)(o);(0,Qe.useEffect)(()=>{if(typeof window>"u")return;if(i.current){i.current=!1;return}let s=d.current!==o;d.current=o;let u=js(e),h=u||`${window.location.pathname}${window.location.search}`;if((window.location.hash||(window.location.href.includes("#")?"#":""))===u){l.current=!0,c.current=e;return}if(!l.current){l.current=!0,c.current=e,window.history.replaceState({graview:Nt.at},"",h);return}if(s||ya(c.current,e)){window.history.replaceState({graview:Nt.at},"",h),c.current=e;return}c.current=e,window.history.pushState({graview:++Nt.at},"",h),Nt.depth=Nt.at,Nt.tell()},[e,o])}function ya(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(",")&&Ws(e.within,t.within):!1}function Ws(e,t){let n=r=>Object.entries(r??{}).sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>`${o}=${a}`).join("&");return n(ha(e))===n(ha(t))}function ha(e){if(!e||!("q"in e))return e;let{q:t,...n}=e;return n}var nr=se(Te(),1);var ga=new WeakMap,Vs=64,pa=new WeakMap,Ys=0,Gs=e=>{if(e===void 0)return 0;let t=pa.get(e);return t===void 0&&pa.set(e,t=Ys+=1),t};function xa(e,t,n,r={}){let o=()=>{let d=[...new Set(t.flatMap(u=>cn(u)))],s=t.map(u=>It(u)).filter(u=>u!==null);return Cr(e,t,{...n.principal?{principal:n.principal}:{},kindSelection:d,edgeSelection:s,...n.providers?{providers:n.providers}:{},...n.pins?{pins:n.pins}:{},...n.focus!==void 0?{focus:n.focus}:{},...r})};if(Object.keys(r).length>0)return o();let a=ga.get(e);if(!a){let d={kept:new Map,at:e.log.length};ga.set(e,a=d),e.subscribe(()=>d.kept.clear())}a.at!==e.log.length&&(a.kept.clear(),a.at=e.log.length);let i=JSON.stringify([t,n.principal??null,Gs(n.providers),n.pins??null,n.focus??null]),l=a.kept.get(i);if(l)return l;let c=o();return a.kept.set(i,c),a.kept.size>Vs&&a.kept.delete(a.kept.keys().next().value),c}function _s(e,t,n={}){return xa(e,t,n)}function zs(e={}){let{store:t,selection:n,principal:r,providers:o}=pe(),{about:a,principal:i=r,providers:l=o,pins:c,focus:d,...s}=e,u=a??n,h=Ct();return(0,nr.useMemo)(()=>xa(t,u,{principal:i,providers:l,pins:c,focus:d},s),[t,u,e,h,i,l])}function Ks(){let{store:e,principal:t}=pe();return(0,nr.useMemo)(()=>({preview:(n,r)=>Br(e,n,r??{}),apply:(n,r)=>Nr(e,n,r??{},{author:t})}),[e,t])}export{La as a,Ia as b,Ta as c,Pa as d,Ca as e,Na as f,Ds as g,Fs as h,_s as i,zs as j,Ks as k};