graview 0.1.64 → 0.1.65

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 (220) hide show
  1. package/dist/preview/chunk.2P34ML3O.js +111 -0
  2. package/dist/preview/{chunk.77JI5T4F.js → chunk.2PK335JQ.js} +1 -1
  3. package/dist/preview/{chunk.YEXFVDRA.js → chunk.2QQ37RCZ.js} +1 -1
  4. package/dist/preview/{chunk.YIZPW7IK.js → chunk.2TZSLREX.js} +2 -2
  5. package/dist/preview/chunk.2UW5CRHF.js +1 -0
  6. package/dist/preview/{chunk.X36BYTEG.js → chunk.2YMO7ZVX.js} +1 -1
  7. package/dist/preview/chunk.33ULA3CG.js +1 -0
  8. package/dist/preview/{chunk.WX23K7ZU.js → chunk.35E75QJ7.js} +1 -1
  9. package/dist/preview/chunk.3CJLAJXP.js +25 -0
  10. package/dist/preview/chunk.3IJSB5ET.js +1 -0
  11. package/dist/preview/{chunk.BVIJXL4J.js → chunk.3IZEZPJB.js} +1 -1
  12. package/dist/preview/chunk.3KO35VN4.js +1 -0
  13. package/dist/preview/{chunk.UDU545CL.js → chunk.3KUYB5ZT.js} +1 -1
  14. package/dist/preview/chunk.3RFAUIGT.js +1 -0
  15. package/dist/preview/{chunk.DN7UCBOA.js → chunk.3WP66LB5.js} +1 -1
  16. package/dist/preview/{chunk.VZAF3452.js → chunk.44ZHHPPJ.js} +2 -2
  17. package/dist/preview/chunk.4GJ7F4SP.js +35 -0
  18. package/dist/preview/{chunk.7ZG77OI3.js → chunk.4IJTPV5X.js} +1 -1
  19. package/dist/preview/{chunk.HPG6CNKM.js → chunk.4JFBLVXJ.js} +1 -1
  20. package/dist/preview/{chunk.P6FNJR6E.js → chunk.4O3C2LJF.js} +1 -1
  21. package/dist/preview/chunk.4PCVQEVI.js +1 -0
  22. package/dist/preview/{chunk.T4JP6BGP.js → chunk.5FQSYMAE.js} +1 -1
  23. package/dist/preview/chunk.5M34BJIQ.js +1 -0
  24. package/dist/preview/chunk.5NCLZ4NZ.js +1 -0
  25. package/dist/preview/{chunk.5B7NG6WH.js → chunk.5THLLSS4.js} +1 -1
  26. package/dist/preview/chunk.5YNLFOBJ.js +5 -0
  27. package/dist/preview/{chunk.2JEN2RCB.js → chunk.64FCAUAJ.js} +1 -1
  28. package/dist/preview/chunk.6RZHKQP3.js +1 -0
  29. package/dist/preview/chunk.6YDC6IDA.js +1 -0
  30. package/dist/preview/{chunk.F6BNFLQM.js → chunk.74B6KQF4.js} +1 -1
  31. package/dist/preview/chunk.77XQEDT5.js +1 -0
  32. package/dist/preview/chunk.7E4CSXBT.js +1 -0
  33. package/dist/preview/chunk.7HPQI5SY.js +1 -0
  34. package/dist/preview/{chunk.JOM6MFVE.js → chunk.7IGD2K4M.js} +1 -1
  35. package/dist/preview/{chunk.4U45EY5M.js → chunk.7Q43N5JS.js} +1 -1
  36. package/dist/preview/{chunk.B6JR7EQO.js → chunk.7VQ3C7F4.js} +1 -1
  37. package/dist/preview/{chunk.DMENNIHT.js → chunk.A4VA3DU5.js} +1 -1
  38. package/dist/preview/{chunk.2JDAUKSN.js → chunk.AB4RZSYW.js} +31 -23
  39. package/dist/preview/chunk.ABSY3UZF.js +1 -0
  40. package/dist/preview/chunk.ARHAD5IS.js +1 -0
  41. package/dist/preview/chunk.BOC2EOGB.js +9 -0
  42. package/dist/preview/chunk.BR6TINGU.js +1 -0
  43. package/dist/preview/{chunk.4DZOAB4D.js → chunk.BU5PVRX7.js} +1 -1
  44. package/dist/preview/{chunk.4VRX7FCO.js → chunk.BUQKRXI6.js} +1 -1
  45. package/dist/preview/{chunk.S7SHWDPR.js → chunk.C437FVD7.js} +1 -1
  46. package/dist/preview/{chunk.YMXWS4XN.js → chunk.CD6YWH6T.js} +1 -1
  47. package/dist/preview/chunk.CDEAAWPS.js +1 -0
  48. package/dist/preview/{chunk.NGRL3QOI.js → chunk.CGQ6KXVK.js} +1 -1
  49. package/dist/preview/{chunk.YSBTE3PX.js → chunk.CPYBJNHP.js} +1 -1
  50. package/dist/preview/{chunk.REXU6ARY.js → chunk.CS72MISN.js} +2 -2
  51. package/dist/preview/chunk.CXJJB3MK.js +1 -0
  52. package/dist/preview/{chunk.TYIBLD2D.js → chunk.CXLQPE4J.js} +1 -1
  53. package/dist/preview/{chunk.75JQCTR6.js → chunk.DA4RSHLW.js} +1 -1
  54. package/dist/preview/{chunk.K5YFUMRS.js → chunk.DICM56FT.js} +1 -1
  55. package/dist/preview/{chunk.JS2UZYGB.js → chunk.DJMSXXP4.js} +1 -1
  56. package/dist/preview/{chunk.AJEK3I5X.js → chunk.DJPNVXBQ.js} +1 -1
  57. package/dist/preview/chunk.DJVHKBEI.js +1 -0
  58. package/dist/preview/chunk.E5WJSTOV.js +1 -0
  59. package/dist/preview/{chunk.XIVELWAM.js → chunk.F2TWV4TX.js} +1 -1
  60. package/dist/preview/chunk.F5VEHAP2.js +1 -0
  61. package/dist/preview/{chunk.2DH42I7L.js → chunk.FDWRH5P2.js} +1 -1
  62. package/dist/preview/chunk.FEGSYSA7.js +1 -0
  63. package/dist/preview/{chunk.2VIS2NAT.js → chunk.FHHVW2WB.js} +1 -1
  64. package/dist/preview/chunk.FOSY7MZF.js +2 -0
  65. package/dist/preview/{chunk.P4TAX3HE.js → chunk.FXG5AJF6.js} +1 -1
  66. package/dist/preview/{chunk.UJNLT3L6.js → chunk.G3Q5IMM3.js} +1 -1
  67. package/dist/preview/{chunk.APUQIELA.js → chunk.GPCKOYSF.js} +1 -1
  68. package/dist/preview/{chunk.GH5UBSQI.js → chunk.HJS3LTSR.js} +1 -1
  69. package/dist/preview/chunk.HJUXC5GM.js +1 -0
  70. package/dist/preview/chunk.HNMSYQRA.js +1 -0
  71. package/dist/preview/chunk.HWLRKOI3.js +1 -0
  72. package/dist/preview/{chunk.77MLXWZV.js → chunk.IFBGYFS4.js} +1 -1
  73. package/dist/preview/chunk.IHUMKFYH.js +10 -0
  74. package/dist/preview/{chunk.PVDDSBRG.js → chunk.IJ3YDBWI.js} +1 -1
  75. package/dist/preview/{chunk.7VAHHEDX.js → chunk.IMKD6QQG.js} +1 -1
  76. package/dist/preview/{chunk.DUP2CGVH.js → chunk.INTJD5WG.js} +1 -1
  77. package/dist/preview/chunk.IQ54QTA5.js +1 -0
  78. package/dist/preview/{chunk.LTOQ22ZJ.js → chunk.IQC3GOXO.js} +1 -1
  79. package/dist/preview/{chunk.2VYGDY5Z.js → chunk.IR4OW67N.js} +1 -1
  80. package/dist/preview/{chunk.DJIF7IAQ.js → chunk.ISN2QTVL.js} +1 -1
  81. package/dist/preview/{chunk.IQGSEAQ2.js → chunk.J24YPQ5I.js} +4 -4
  82. package/dist/preview/chunk.J545NAMY.js +1 -0
  83. package/dist/preview/{chunk.TQ2G4AM4.js → chunk.J6KNEI5R.js} +1 -1
  84. package/dist/preview/chunk.K3JARAWU.js +1 -0
  85. package/dist/preview/{chunk.E4TXLT25.js → chunk.KHAVEYT7.js} +1 -1
  86. package/dist/preview/{chunk.D2XLECMP.js → chunk.KIQXTQDU.js} +1 -1
  87. package/dist/preview/chunk.KROR65KD.js +2 -0
  88. package/dist/preview/{chunk.KHXRJLLU.js → chunk.KV7GZBJ6.js} +1 -1
  89. package/dist/preview/{chunk.DLWFULWE.js → chunk.L6FGKJ5H.js} +1 -1
  90. package/dist/preview/chunk.L7NJLZWV.js +1 -0
  91. package/dist/preview/{chunk.JHUCKEJS.js → chunk.LGRQDILY.js} +1 -1
  92. package/dist/preview/{chunk.UDYFGYJP.js → chunk.LKK5YF2H.js} +1 -1
  93. package/dist/preview/chunk.LON75VHP.js +1 -0
  94. package/dist/preview/chunk.LQWVJQ5X.js +18 -0
  95. package/dist/preview/{chunk.XJWKIXPV.js → chunk.LVD3V77M.js} +1 -1
  96. package/dist/preview/{chunk.ITBG37WJ.js → chunk.LY5CY7GE.js} +1 -1
  97. package/dist/preview/{chunk.ATHLE33D.js → chunk.M5W2RHC6.js} +1 -1
  98. package/dist/preview/chunk.M6BTLH24.js +1 -0
  99. package/dist/preview/chunk.MAGKI4PD.js +1 -0
  100. package/dist/preview/chunk.MD36ZSM5.js +74 -0
  101. package/dist/preview/chunk.MFZJVHWP.js +1 -0
  102. package/dist/preview/{chunk.LDMBJC3B.js → chunk.MH46V556.js} +1 -1
  103. package/dist/preview/chunk.MHTA4HYB.js +19 -0
  104. package/dist/preview/chunk.N2FNHRI2.js +1 -0
  105. package/dist/preview/chunk.N2YM247R.js +1 -0
  106. package/dist/preview/chunk.N35SJWAM.js +1 -0
  107. package/dist/preview/chunk.NBVPWLRY.js +3 -0
  108. package/dist/preview/{chunk.2TCOLAL2.js → chunk.NKYYDFIX.js} +1 -1
  109. package/dist/preview/{chunk.WPQP54FM.js → chunk.NSO6RUKW.js} +1 -1
  110. package/dist/preview/{chunk.47N2G7A5.js → chunk.O2W5JTWA.js} +1 -1
  111. package/dist/preview/chunk.OHMHPTEW.js +1 -0
  112. package/dist/preview/{chunk.CJHYGRWV.js → chunk.P6TZGR3A.js} +1 -1
  113. package/dist/preview/{chunk.OXFDB5BB.js → chunk.PTQPS2FJ.js} +1 -1
  114. package/dist/preview/chunk.PV2I4UPH.js +1 -0
  115. package/dist/preview/chunk.QFQSSZN7.js +1 -0
  116. package/dist/preview/{chunk.WFCE7NLK.js → chunk.QO5RXOCS.js} +2 -2
  117. package/dist/preview/{chunk.2V7QTIAV.js → chunk.QSDBF7VL.js} +1 -1
  118. package/dist/preview/{chunk.Z26T5E76.js → chunk.R2TSTDS3.js} +1 -1
  119. package/dist/preview/{chunk.T4TRJDBF.js → chunk.RFVOXX3P.js} +1 -1
  120. package/dist/preview/chunk.RSS6OHXG.js +1 -0
  121. package/dist/preview/{chunk.ZA5TDCBC.js → chunk.S2DOVJRL.js} +1 -1
  122. package/dist/preview/chunk.S3EEY7T3.js +1 -0
  123. package/dist/preview/chunk.SBCAYTMT.js +1 -0
  124. package/dist/preview/chunk.SMTGRCMG.js +3 -0
  125. package/dist/preview/{chunk.7SRSE5IS.js → chunk.SOMRYDDH.js} +1 -1
  126. package/dist/preview/{chunk.7CLKGKSF.js → chunk.SPCAMQJE.js} +1 -1
  127. package/dist/preview/{chunk.OW3M4OBN.js → chunk.T3KNLP7C.js} +1 -1
  128. package/dist/preview/chunk.TBY5IR7C.js +1 -0
  129. package/dist/preview/chunk.TCZIZ2PU.js +1 -0
  130. package/dist/preview/{chunk.TMHVYI5R.js → chunk.TUCSUZNO.js} +1 -1
  131. package/dist/preview/{chunk.2G5WLG3Z.js → chunk.TY74U3EI.js} +1 -1
  132. package/dist/preview/chunk.U74PTRHJ.js +1 -0
  133. package/dist/preview/chunk.UAORKZLO.js +1 -0
  134. package/dist/preview/chunk.UDVTPI2W.js +1 -0
  135. package/dist/preview/{chunk.S6QZBWCJ.js → chunk.UETLP5KC.js} +1 -1
  136. package/dist/preview/{chunk.2E62YCMZ.js → chunk.UHI3X2YD.js} +1 -1
  137. package/dist/preview/chunk.UL62ELNR.js +1 -0
  138. package/dist/preview/chunk.VRYSZYAD.js +1 -0
  139. package/dist/preview/{chunk.G5BVZLCM.js → chunk.VUZFLDOX.js} +1 -1
  140. package/dist/preview/chunk.X2NGFOAF.js +1 -0
  141. package/dist/preview/chunk.XE762VL2.js +2 -0
  142. package/dist/preview/{chunk.TA2JTUNX.js → chunk.XSWR5LI4.js} +1 -1
  143. package/dist/preview/{chunk.HZPRMHSL.js → chunk.XTTESA7X.js} +1 -1
  144. package/dist/preview/chunk.Y2RZ5B4U.js +1 -0
  145. package/dist/preview/chunk.Y7QDQ3WF.js +1 -0
  146. package/dist/preview/{chunk.TUR2DA2M.js → chunk.YKMBXMZE.js} +1 -1
  147. package/dist/preview/chunk.Z34KASY7.js +1 -0
  148. package/dist/preview/{chunk.WHX47OJM.js → chunk.ZDUTEM3Z.js} +1 -1
  149. package/dist/preview/{chunk.DQAMVVE6.js → chunk.ZJFXM3LE.js} +1 -1
  150. package/dist/preview/{chunk.UN2IAA5R.js → chunk.ZMGKWMID.js} +1 -1
  151. package/dist/preview/{chunk.R5MLRKAO.js → chunk.ZMWAZACO.js} +1 -1
  152. package/dist/preview/chunk.ZT5YQSSP.js +21 -0
  153. package/dist/preview/{chunk.XCLW4GP7.js → chunk.ZTN7BS5O.js} +1 -1
  154. package/dist/preview/{chunk.4XCYZRZ3.js → chunk.ZYNC73DJ.js} +1 -1
  155. package/dist/preview/chunk.ZZM75ZTN.js +4 -0
  156. package/dist/preview/index.html +56 -56
  157. package/dist/preview/page.js +2 -2
  158. package/package.json +6 -6
  159. package/dist/preview/chunk.2D7K2IJQ.js +0 -4
  160. package/dist/preview/chunk.2HV5FF6O.js +0 -1
  161. package/dist/preview/chunk.37I45R6V.js +0 -35
  162. package/dist/preview/chunk.3FKKH2XU.js +0 -74
  163. package/dist/preview/chunk.3J7XLJP2.js +0 -1
  164. package/dist/preview/chunk.3OEODIHB.js +0 -1
  165. package/dist/preview/chunk.3RD4JHVG.js +0 -88
  166. package/dist/preview/chunk.3RUV4HE4.js +0 -1
  167. package/dist/preview/chunk.3SAESG6X.js +0 -1
  168. package/dist/preview/chunk.4HTB6TX2.js +0 -1
  169. package/dist/preview/chunk.4Q5PCMGZ.js +0 -18
  170. package/dist/preview/chunk.52MBXPEK.js +0 -1
  171. package/dist/preview/chunk.5AD2QHWH.js +0 -3
  172. package/dist/preview/chunk.5HJ2GTKZ.js +0 -1
  173. package/dist/preview/chunk.5IEZF433.js +0 -2
  174. package/dist/preview/chunk.5PPCK7QT.js +0 -1
  175. package/dist/preview/chunk.6NRWLCIZ.js +0 -5
  176. package/dist/preview/chunk.7AOEZJRM.js +0 -1
  177. package/dist/preview/chunk.7ZHH7WBN.js +0 -1
  178. package/dist/preview/chunk.APRWUIE3.js +0 -1
  179. package/dist/preview/chunk.B2YTHEX5.js +0 -1
  180. package/dist/preview/chunk.BN42H3C6.js +0 -1
  181. package/dist/preview/chunk.CC7P435K.js +0 -9
  182. package/dist/preview/chunk.CM65MCHA.js +0 -1
  183. package/dist/preview/chunk.DYRULRFX.js +0 -1
  184. package/dist/preview/chunk.FN34P4IS.js +0 -1
  185. package/dist/preview/chunk.FUPYIOXZ.js +0 -1
  186. package/dist/preview/chunk.FXRYMT3U.js +0 -1
  187. package/dist/preview/chunk.G7YLK4PX.js +0 -1
  188. package/dist/preview/chunk.GF62K25C.js +0 -1
  189. package/dist/preview/chunk.GFQPO3NC.js +0 -1
  190. package/dist/preview/chunk.GHHKRFPD.js +0 -1
  191. package/dist/preview/chunk.GP5DAA4P.js +0 -3
  192. package/dist/preview/chunk.HSJEOM3W.js +0 -1
  193. package/dist/preview/chunk.K2PXP5H6.js +0 -1
  194. package/dist/preview/chunk.K54ISAXN.js +0 -1
  195. package/dist/preview/chunk.KMIFSPGQ.js +0 -1
  196. package/dist/preview/chunk.L4V5VLSM.js +0 -1
  197. package/dist/preview/chunk.M5VHUIDB.js +0 -1
  198. package/dist/preview/chunk.N643PVQA.js +0 -1
  199. package/dist/preview/chunk.NRPBTV6O.js +0 -21
  200. package/dist/preview/chunk.O7HHNQK4.js +0 -2
  201. package/dist/preview/chunk.PR74PGLC.js +0 -1
  202. package/dist/preview/chunk.QROPDEJF.js +0 -1
  203. package/dist/preview/chunk.QRT6BZR6.js +0 -1
  204. package/dist/preview/chunk.RDA35HZB.js +0 -2
  205. package/dist/preview/chunk.SADHOSRC.js +0 -19
  206. package/dist/preview/chunk.SJHUC4TL.js +0 -1
  207. package/dist/preview/chunk.SL5FXE3R.js +0 -1
  208. package/dist/preview/chunk.TOLW64EO.js +0 -1
  209. package/dist/preview/chunk.TP3PZRHE.js +0 -1
  210. package/dist/preview/chunk.UD2GGG7L.js +0 -1
  211. package/dist/preview/chunk.VLX7YWVH.js +0 -25
  212. package/dist/preview/chunk.VT4YBFZL.js +0 -1
  213. package/dist/preview/chunk.WMARJ5E3.js +0 -1
  214. package/dist/preview/chunk.XEG7ZDRG.js +0 -1
  215. package/dist/preview/chunk.XQ5RTPEF.js +0 -1
  216. package/dist/preview/chunk.YLOGIJOH.js +0 -1
  217. package/dist/preview/chunk.Z4XGEV34.js +0 -1
  218. package/dist/preview/chunk.ZNDVJGTY.js +0 -1
  219. package/dist/preview/chunk.ZQGLPP7A.js +0 -1
  220. /package/dist/preview/{chunk.GZHZLJBF.js → chunk.MIE4TJRW.js} +0 -0
@@ -0,0 +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 Yt,f as ct,g as In}from"./chunk.2PK335JQ.js";import{h as Ri}from"./chunk.3KUYB5ZT.js";import{e as Mi,q as ar,r as Ei}from"./chunk.IMKD6QQG.js";import{b as Nn}from"./chunk.ZJFXM3LE.js";import{a as Fe,b as Qr,c as cn,d as Oi,e as Zr}from"./chunk.PTQPS2FJ.js";import{a as Si}from"./chunk.XSWR5LI4.js";import{a as xi,b as vi,c as ki}from"./chunk.J6KNEI5R.js";import{b as li,d as ci}from"./chunk.2YMO7ZVX.js";import{c as Go}from"./chunk.INTJD5WG.js";import{A as wi,B as bi,a as ui,b as _r,c as Kr,f as Ur,g as Xr,h as qr,i as hi,j as sn,k as dn,p as zt,q as ln,r as pi,s as gi,z as yi}from"./chunk.CXJJB3MK.js";import{A as si,f as Qo,g as on,h as Zo,i as Jo,j as ei,k as ti,m as ir,n as Cn,o as Tn,p as an,q as Yr,v as ni,w as ri,x as oi,y as ii,z as ai}from"./chunk.OJGHDWI6.js";import{a as fi,b as mi}from"./chunk.74B6KQF4.js";import{b as di}from"./chunk.NBVPWLRY.js";import{A as wt,B as $r,C as Pn,G as Pe,K as Ot,Ka as Ln,Pa as jr,Qa as Vr,Ra as Gt,Ta as Gr,V as Oe,X as rr,Xa as zr,Y as Fr,a as Tr,aa as Wr,b as Ir,ba as or,c as Nr,ca as jt,d as zo,da as xe,e as Yo,f as tr,fa as Vt,h as Ft,j as Et,k as Hr,ka as Ko,l as nr,la as Uo,m as On,oa as rn,p as Br,qa as Xo,r as Re,s as He,t as _o,u as An,v as Be,w as Wt,wa as qo,x as Rt,y as Dr}from"./chunk.3CJLAJXP.js";import{a as nn}from"./chunk.SDO3U72B.js";import{Qc as Rn,Ud as Cr,Wd as Wo,ga as Zn,ka as $o,ke as jo,la as en,na as tn,ne as Vo,oa as $t,pa as Jn,qd as We,ta as Fo,ue as er}from"./chunk.J24YPQ5I.js";import{b as ae}from"./chunk.AJZBJBMO.js";var sr=ae(Pe(),1);var Ai=ae(Oe(),1);function dr(e){let t=(0,sr.useRef)(e);t.current=e;let n=(0,sr.useRef)(null),o=(0,sr.useRef)(new Map),r=n.current;if(r&&(r.outer===e||Rs(r.outer,e)))return r.outer=e,r.inner;let i=ct(e.view,null),s=(c,l,a)=>{let u=o.current.get(c);return u&&u.made===l?u.call:(o.current.set(c,{made:l,call:a}),a)},d=Object.fromEntries(Object.entries(e).map(([c,l])=>[c,c==="view"?i:c==="setView"?s(c,l,Es(t)):typeof l=="function"?s(c,l,(...a)=>t.current[c](...a)):l]));return n.current={outer:e,inner:d},d}function Es(e){return t=>e.current.setView(typeof t=="function"?t:n=>t.pan===void 0&&n.pan?{...t,pan:n.pan}:t)}function Rs(e,t){let n=new Set([...Object.keys(e),...Object.keys(t)]);for(let o of n){if(o==="view"||o==="movedByHand")continue;let r=e[o],i=t[o];if(r!==i&&!(typeof r=="function"&&typeof i=="function"))return!1}return Jr(e.view,t.view)}function Jr(e,t){if(e===t)return!0;let n=new Set([...Object.keys(e),...Object.keys(t)]);for(let o of n)if(o!=="pan"&&e[o]!==t[o])return!1;return!0}function Os({children:e}){let t=dr(xe());return(0,Ai.jsx)(rr.Provider,{value:t,children:e})}var Pi={width:1200,height:760,focusSize:{width:1200,height:420},relationSize:{width:240,height:140},contextSize:{width:300,height:104},gap:16,unit:16};var Li=(e,t)=>e?`${e.edgeKind}|${e.direction}`:`raised|${t}`,_t=(e,t,n)=>`${$r}${e}|${t}|${n}`;function lr(e,t){let n=e.map(()=>0),o=e.map((s,d)=>({size:s,index:d})).sort((s,d)=>s.size-d.size||s.index-d.index),r=Math.max(t,e.length),i=e.length;for(let{size:s,index:d}of o){let c=Math.max(1,Math.floor(r/i));n[d]=Math.min(s,c),r-=n[d],i-=1}return n}function to(e){return Li(e.via,e.node.kind)}function un(e,t,n=[]){let o=[],r=0;return e.forEach((i,s)=>{if(i<=0)return;let d=Math.min(t,Math.max(1,n[s]??1)),c=Math.max(i,d);if(o.length>0&&i<=t&&c<=r){o[o.length-1].push({run:s,cards:i,slots:c}),r-=c;return}let l=i,a=!0;for(;l>0;){let u=Math.min(t,l),m=a?Math.max(u,d):u;o.push([{run:s,cards:u,slots:m}]),l-=u,r=t-m,a=!1}}),o}function no(e,t,n,o=[]){let r=lr(e,t*n);for(;un(r,t,o).length>n;){let i=-1;if(r.forEach((s,d)=>{s>1&&(i<0||s>r[i])&&(i=d)}),i<0)break;r[i]=r[i]-1}return r}function As(e,t,n){let o=r=>[t.chosen?.has(r.id)?0:1,t.hits?.has(r.id)?0:1,t.flagged?.has(r.id)?0:1,-(t.touched?.get(r.id)??0),-n.neighbors(r.id).length];return e.map((r,i)=>({node:r,index:i,key:o(r)})).sort((r,i)=>{for(let s=0;s<r.key.length;s++)if(r.key[s]!==i.key[s])return r.key[s]-i.key[s];return r.index-i.index}).map(r=>r.node)}var Ps=5,Ls=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1};function Ci(e,t,n){if(e.length===0||t<2)return;let o=e[0].kind,r={schema:n.schema,graph:n.graph,...n.today?{today:n.today}:{}},i=[];for(let d of Mi(n.schema,o).groups)if(d.key!==n.exclude)if(d.buckets)for(let c of["decade","year","month"])i.push({by:d.key,bucket:c});else i.push({by:d.key});let s;return i.forEach((d,c)=>{let a=Ri(e,{group:d},r).groups;if(a.length<2||a.length>t)return;let m=a.filter(b=>b.key!=="").reduce((b,h)=>b+h.nodes.length,0)/e.length;if(m<.5||a.some(b=>b.nodes.length>e.length*.75))return;let f=[-Math.round(m*100),Math.abs(a.length-Ps),c];(!s||Ls(f,s.score))&&(s={grouping:{by:d.by,...d.bucket?{bucket:d.bucket}:{},groups:a},score:f})}),s?.grouping}function ro(e,t){let n=h=>({id:h.node.id,kind:h.node.kind,node:h.node,...h.via?{via:h.via}:{}});if(e.length<=t.budget)return e.map(n);let o={...t.relevance,chosen:new Set([...t.relevance?.chosen??[],...t.selection??[]])},r=new Map;for(let h of e){let y=Li(h.via,h.node.kind),E=r.get(y);E?E.push(h):r.set(y,[h])}let i=[...r.entries()].map(([h,y])=>({key:h,run:y,via:y[0].via,kinds:[...new Set(y.map(E=>E.node.kind))],members:[],whole:!1,extra:0})),s=lr(i.map(h=>h.run.length),t.budget);i.forEach((h,y)=>h.whole=h.run.length<=s[y]);let d=i.filter(h=>!h.whole),c=i.filter(h=>h.whole).reduce((h,y)=>h+y.run.length,0),l=Math.max(d.length,t.budget-c);for(let h of d){h.members=As(h.run.map(E=>E.node),o,t.graph);let y=l-(d.length-1);h.kinds.length>1&&h.kinds.length<=y?h.byKind=!0:h.kinds.length===1&&(h.grouping=Ci(h.members,y,{schema:t.schema,graph:t.graph,...h.via?{exclude:h.via.edgeKind}:{},...t.today?{today:t.today}:{}}))}let a=h=>h.byKind?h.kinds.length:h.grouping?h.grouping.groups.length:1;for(;d.reduce((h,y)=>h+a(y),0)>l;){let h=[...d].filter(y=>a(y)>1).sort((y,E)=>a(E)-a(y))[0];if(!h)break;h.grouping=void 0,h.byKind=!1}l-=d.reduce((h,y)=>h+a(y),0);let u=h=>h.byKind?h.kinds.some(y=>t.expanded.has(_t(y,h.key,"kind"))):h.grouping?.groups.some(y=>t.expanded.has(_t(h.kinds[0],h.key,eo(h.grouping,y.key)))),m=d.filter(h=>!h.grouping&&!h.byKind?!0:u(h)),f=lr(m.map(h=>h.members.length),Math.max(0,l));m.forEach((h,y)=>h.extra=l>0?f[y]:0);let b=[];for(let h of i){let{key:y,via:E}=h;if(h.whole){b.push(...h.run.map(n));continue}let k=g=>({id:g.id,kind:g.kind,node:g,...E?{via:E}:{}}),w=new Map(h.run.map((g,M)=>[g.node.id,M])),x=(g,M,L)=>{let C=[...g.slice(0,M)].sort((ie,I)=>w.get(ie.id)-w.get(I.id));b.push(...C.map(k));let V=g.slice(M);if(V.length===0)return;let X=V[0].kind;b.push({id:_t(X,y,L?`more:${L}`:"more"),kind:X,...E?{via:E}:{},aggregate:{kind:X,memberIds:V.map(ie=>ie.id),label:M>0?`${V.length} more ${t.plural(X).toLowerCase()}`:`${V.length} ${t.plural(X).toLowerCase()}`,opens:{in:"picture",focus:Be(X),within:L?{filter:L}:{}}}})},A=E&&t.focusId?`${E.edgeKind}:${t.focusId}`:void 0;if(h.byKind){let g=h.kinds.find(M=>t.expanded.has(_t(M,y,"kind")));for(let M of h.kinds){let L=h.members.filter(C=>C.kind===M);if(M===g){let C=h.extra+1;L.length<=C?b.push(...L.map(k)):x(L,C-1,A);continue}b.push({id:_t(M,y,"kind"),kind:M,...E?{via:E}:{},aggregate:{kind:M,memberIds:L.map(C=>C.id),label:t.plural(M),opens:{in:"place"}}})}continue}let O=h.grouping;if(!O){x(h.members,h.extra,A);continue}let T=h.kinds[0],F=O.groups.find(g=>t.expanded.has(_t(T,y,eo(O,g.key))));for(let g of O.groups){if(g===F){let M=h.members.filter(C=>g.nodes.includes(C)),L=h.extra+1;if(M.length<=L)b.push(...M.map(k));else{let C=g.key!==""&&!g.key.includes(",")&&!O.bucket,V=[A,C?`${O.by}:${g.key}`:void 0].filter(Boolean).join(",")||void 0;x(M,L-1,V)}continue}b.push({id:_t(T,y,eo(O,g.key)),kind:T,...E?{via:E}:{},aggregate:{kind:T,memberIds:h.members.filter(M=>g.nodes.includes(M)).map(M=>M.id),label:g.label.charAt(0).toUpperCase()+g.label.slice(1),opens:{in:"place"}}})}}return b}var eo=(e,t)=>`${e.by}${e.bucket?`:${e.bucket}`:""}=${t||"none"}`;var cr=300,Ti=12,hn=8,oo=19;var ur=(e,t=1)=>(e.length*8.4+16)*t;function Hn(e){return e.description??`${e.direction==="in"?"\u2190":"\u2192"} ${Zn(e.edgeKind).toLowerCase()}`}function io(e,t,n=1){let o=d=>ur(d,n),r=new Map;for(let d of e){let c=r.get(d.key);c?c.push(d):r.set(d.key,[d])}let i=[...r.values()].map(d=>{let c=Math.min(...d.map(a=>a.top)),l=d.filter(a=>a.top-c<=Ti);return{key:d[0].key,text:d[0].text,left:Math.min(...l.map(a=>a.left)),right:Math.max(...l.map(a=>a.right)),top:c}});i.sort((d,c)=>d.top-c.top||d.left-c.left);let s=i.map(d=>{let c=Math.max(d.right-d.left,Math.min(cr,o(d.text))),l=(d.left+d.right)/2;return{left:l-c/2,right:l+c/2}});return i.map((d,c)=>{let l=i.map((w,x)=>({other:w,at:x})).filter(({other:w})=>w!==d&&Math.abs(w.top-d.top)<=Ti),a=l.filter(({other:w})=>w.right<=d.left).map(({other:w,at:x})=>s[x].right+hn<=(w.right+d.left)/2?s[x].right+hn:(w.right+d.left+hn)/2),u=l.filter(({other:w})=>w.left>=d.right).map(({other:w,at:x})=>s[x].left-hn>=(d.right+w.left)/2?s[x].left-hn:(d.right+w.left-hn)/2),m=Math.max(t.left,...a),f=Math.min(t.right,...u),b=d.right-d.left,h=s[c].right-s[c].left,y=Math.max(b,Math.min(h,f-m)),E=(d.left+d.right)/2,k=b>=y?d.left:Math.max(m,Math.min(E-y/2,f-y));return{key:d.key,text:d.text,left:k,width:y,top:d.top}})}function Ni(e,t,n,o,r=1){let i=d=>String(d).length*7.4,s=e.length*8.6+6+i(t)+14+(n>0?22+i(n):0);return{width:Math.max(s,o?184:0)*r,height:(o?38:22)*r,short:{width:s*r,height:22*r}}}function Kt(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 ao=(e,t,n,o)=>{let r=Math.max(e.x,Math.min(t.x,e.x+e.width)),i=Math.max(e.y,Math.min(t.y,e.y+e.height));return Math.abs(r-t.x)/n+Math.abs(i-t.y)/o<.92},Bn=4,Ii=.45;function so(e,t,n,o={},r={}){let i={};for(let v of e)i[v.kind]=v.count;let s={x:(o.left??0)+8,y:(o.top??0)+8,width:n.width-(o.left??0)-(o.right??0)-16,height:n.height-(o.top??0)-(o.bottom??0)-16},d=r.avoid??[],c=r.tilt??.5,l=v=>v.nameplate??{width:120,height:34,short:{width:90,height:20}},a=v=>e.map(R=>{let S=v.get(R.kind);return{card:R,plot:S,center:cn(S.col+S.side/2,S.row+S.side/2,1,c)}}),u=(v,R)=>{let S=1/0,B=-1/0,D=1/0,W=-1/0;for(let{card:Y,plot:_,center:Z}of v){let oe=Z.x*R,Q=Z.y*R,ge=_.side*R/2,ye=Y.opened>0?l(Y).width:l(Y).short.width;S=Math.min(S,oe-Math.max(ge+(Y.count>12?30:0),ye/2)),B=Math.max(B,oe+Math.max(ge,ye/2)),D=Math.min(D,Q-ge*c-R*Ii),W=Math.max(W,Q+ge*c+Bn+l(Y).short.height)}return{minX:S,maxX:B,minY:D,maxY:W}},m=v=>{let R=4,S=160;for(let B=0;B<24;B++){let D=(R+S)/2,W=u(v,D);W.maxX-W.minX<=s.width&&W.maxY-W.minY<=s.height?R=D:S=D}return R},f=v=>{let R={...r.order?{order:r.order}:{},counts:i,...r.plots?{plots:r.plots}:{},pitch:v},S=Qr(t,R),B=Qr(t,{...R,upright:!0}),D=m(a(S)),W=m(a(B)),Y=n.height>n.width&&W>=D?B:S;return{map:Y,fitted:Y===B?W:D}},b=[],h=new Map,y=0,E=(v,R={x:0,y:0})=>{let S=u(b,v),B=s.x+s.width/2-(S.minX+S.maxX)/2+R.x,D=s.y+s.height/2-(S.minY+S.maxY)/2+R.y;return{originX:B,originY:D,cell:v}},k=v=>{let{originX:R,originY:S,cell:B}=v,D=b.map(({center:_})=>_.y),W=Math.max(...D),Y=Math.min(...D);return b.map(({card:_,plot:Z,center:oe})=>{let Q=R+oe.x*B,ge=S+oe.y*B,ye=Z.side*B/2,ue=ye*c,Me=W===Y?.5:(oe.y-Y)/(W-Y);return{card:_,plot:Z,x:Q,y:ge,halfW:ye,halfH:ue,depth:1-Me*.65}})},w=(v,R=!0)=>{let S=[];return[...v].sort((D,W)=>(W.card.weight??W.card.count)-(D.card.weight??D.card.count)||e.indexOf(D.card)-e.indexOf(W.card)).filter(D=>[l(D.card),l(D.card).short].some(W=>{let Y=O(D,W),_=(!R||Y.x>=0&&Y.y>=0&&Y.x+Y.width<=n.width&&Y.y+Y.height<=n.height)&&!S.some(Z=>Kt(Y,Z,4))&&!v.some(Z=>Z!==D&&ao(Y,Z,Z.halfW,Z.halfH))&&!d.some(Z=>Kt(Y,Z,0));return _&&S.push(Y),_})).length},x=v=>v.card.marquee?{x:v.x-v.card.marquee.width/2,y:v.y+v.halfH+Bn+l(v.card).height,width:v.card.marquee.width,height:v.card.marquee.height}:null,A=(v,R,S)=>S.some(B=>{if(B===R)return!1;let D=x(B);return D!==null&&Kt(v,D,4)}),O=(v,R,S="under")=>S==="aside"?{x:v.x+v.halfW+Bn,y:v.y-R.height/2,width:R.width,height:R.height}:S==="above"?{x:v.x-R.width/2,y:v.y-v.halfH-Bn-Ii*M.cell-R.height,width:R.width,height:R.height}:{x:v.x-R.width/2,y:v.y+v.halfH+Bn,width:R.width,height:R.height},T=v=>v.some(R=>d.some(S=>ao(S,R,R.halfW,R.halfH)||Kt(S,O(R,l(R.card).short),0))),F=v=>v.every(R=>{let S=O(R,l(R.card).short);return R.x-R.halfW>=0&&R.x+R.halfW<=n.width&&R.y-R.halfH>=0&&S.x>=0&&S.x+S.width<=n.width&&S.y+S.height<=n.height}),g={pitch:Fe,said:-1};for(let v of[Fe,Fe+1,Fe+2,Fe+3,Fe+5,Fe+7]){({map:h,fitted:y}=f(v)),b=a(h);let R=w(k(E(y)));if(R>g.said&&(g={pitch:v,said:R}),R===e.length)break}(g.pitch!==Fe+7||g.said!==e.length)&&({map:h,fitted:y}=f(g.pitch),b=a(h));let M=E(y);if(d.length>0&&T(k(M))){let v;for(let R=1;R>=.3&&!v;R-=.05){let S=y*R,B=Math.max(...d.map(W=>W.width))/2+S,D=Math.max(...d.map(W=>W.height))/2+S/2;for(let W of[0,.5,.75,1,1.25]){for(let[Y,_]of[[1,0],[-1,0],[0,1],[0,-1],[1,1],[-1,1],[1,-1],[-1,-1]]){let Z=E(S,{x:Y*B*W,y:_*D*W}),oe=k(Z);if(!T(oe)&&F(oe)){v=Z;break}if(W===0)break}if(v)break}}v&&(M=v)}let L=(v,R,S={x:n.width/2,y:n.height/2})=>({cell:v.cell*R,originX:S.x+(v.originX-S.x)*R,originY:S.y+(v.originY-S.y)*R}),C=v=>{let R=v,S=r.stood&&Math.abs(r.stood.cell-R.cell)<.01?r.stood:null;S&&(R={...R,originX:R.originX+S.x,originY:R.originY+S.y});let B={x:R.originX-(S?.x??0),y:R.originY-(S?.y??0)},D=k(R).filter(W=>r.keep?.includes(W.card.kind));if(D.length>0){let W=r.seen??n,Y=D.flatMap(te=>[{x:te.x-te.halfW,y:te.y-te.halfH,width:te.halfW*2,height:te.halfH*2},O(te,l(te.card))]),_=r.seen?D.flatMap(te=>x(te)??[]):[],Z=te=>Math.max(...te.map(J=>J.y+J.height))-Math.min(...te.map(J=>J.y)),oe=_.length>0&&Z([...Y,..._])<=W.height-16?[...Y,..._]:Y,Q=Math.min(...oe.map(te=>te.x)),ge=Math.max(...oe.map(te=>te.x+te.width)),ye=Math.min(...oe.map(te=>te.y)),ue=Math.max(...oe.map(te=>te.y+te.height)),Me=(te,J,se)=>J-te>se-16?se/2-(te+J)/2:te<8?8-te:J>se-8?se-8-J:0;(!r.seen||ue-ye<=W.height-16)&&(R={...R,originX:R.originX+Me(Q,ge,W.width),originY:R.originY+Me(ye,ue,W.height)})}return{where:R,stood:{x:R.originX-B.x,y:R.originY-B.y,cell:R.cell}}},V=1,X;if(w(k(M))<e.length){let v={said:w(k(M),!1),area:1/0,pitch:-1,by:1},R={map:h,shape:b,fitted:y,where:M};for(let S of[Fe,Fe+1,Fe+2,Fe+3,Fe+5,Fe+7]){({map:h,fitted:y}=f(S)),b=a(h);let B=E(y);for(let D=1;D<=3.001;D+=.1){let W=w(k(L(B,D)),!1),Y=u(b,y*D),_=(Y.maxX-Y.minX)*(Y.maxY-Y.minY);if((W>v.said||W===v.said&&_<v.area)&&(v={said:W,area:_,pitch:S,by:D}),W===e.length)break}}v.pitch<0?{map:h,shape:b,fitted:y,where:M}=R:({map:h,fitted:y}=f(v.pitch),b=a(h),V=v.by,M=L(E(y),V)),{where:M,stood:X}=C(M)}else r.seen&&r.seen.height<n.height&&({where:M,stood:X}=C(M));let ie=r.zoom&&r.zoom!==1?r.zoom:1;ie!==1&&(M=L(M,ie,r.seen?{x:r.seen.width/2,y:r.seen.height/2}:void 0));let I=k(M),$=[],N=new Map,q=new Map,P=[...I].sort((v,R)=>(R.card.weight??R.card.count)-(v.card.weight??v.card.count)||e.indexOf(v.card)-e.indexOf(R.card));for(let v of P){let R=[["full",l(v.card),"under"],["short",l(v.card).short,"under"]],S="none",B=v===P[0],D=(Y,_)=>R.filter(([Z])=>Z.startsWith(_)).map(([Z,oe,Q])=>[Z,oe,Q,Y]),W=B?[...D(!1,"full"),...D(!1,"short"),...D(!0,"full"),...D(!0,"short")]:R.map(([Y,_,Z])=>[Y,_,Z,!1]);for(let[Y,_,Z,oe]of W){let Q=O(v,_,Z);if((ie!==1||V!==1||Q.x>=0&&Q.y>=0&&Q.x+Q.width<=n.width&&Q.y+Q.height<=n.height)&&!$.some(ue=>Kt(Q,ue,4))&&(oe||!I.some(ue=>ue!==v&&ao(Q,ue,ue.halfW,ue.halfH)))&&!A(Q,v,I)&&!d.some(ue=>Kt(Q,ue,0))){S=Y,$.push(Q),q.set(v.card.id,Q);break}}N.set(v.card.id,S)}let j=I.map(v=>({id:v.card.id,x:v.x-v.halfW,y:v.y-v.halfH,width:v.halfW*2,height:v.halfH*2+(v.card.opened>0?Math.max(v.card.openedMin??0,v.card.opened):0),depth:v.depth,plot:v.plot,nameplate:N.get(v.card.id)??"none"})),z=u(b,M.cell),re={cell:M.cell,originX:M.originX,originY:M.originY,pan:r.pan??{x:0,y:0},extent:{x:M.originX+z.minX,y:M.originY+z.minY,width:z.maxX-z.minX,height:z.maxY-z.minY},openedShare:1,...c!==.5?{tilt:c}:{},...X&&(X.x!==0||X.y!==0)?{stood:X}:{},...q.size>0?{nameplates:I.flatMap(v=>{let R=q.get(v.card.id);return R?[{id:v.card.id,x:R.x-(v.x-v.halfW),y:R.y-(v.y-v.halfH),width:R.width,height:R.height}]:[]})}:{},...I.some(v=>v.card.marquee)?{showings:I.flatMap(v=>{let R=x(v);return R?[{id:v.card.id,x:R.x-(v.x-v.halfW),y:R.y-(v.y-v.halfH),width:R.width,height:R.height}]:[]})}:{}};return{placed:j,frame:re,map:h}}function At(e){let{width:t,height:n}=e.visible??e,o={x:t*.45,y:n*.45};if(!e.city)return o;let{extent:r}=e.city,i=24;return{x:Math.max(o.x,r.x+r.width-t+i,-r.x+i),y:Math.max(o.y,r.y+r.height-n+i,-r.y+i)}}var hr=48;function lo(e){if(!e.city)return[];let{width:t,height:n}=e.visible??e,o=[];for(let r of e.nodes){if(!r.id.startsWith("kind:")||Math.round(r.plane)!==2)continue;let i=r.x+r.width/2,s=r.y+r.height/2,d=i<0?"left":i>t?"right":s<0?"top":s>n?"bottom":null;if(!d)continue;let c=d==="left"||d==="right",l=c?Math.max(0,Math.min(n,s)):Math.max(0,Math.min(t,i)),a=(f,b)=>f<b/4?b/4-f:f>b*3/4?b*3/4-f:0,u=(f,b)=>f<hr?hr-f:f>b-hr?b-hr-f:0,m=c?{x:a(i,t),y:u(s,n)}:{x:u(i,t),y:a(s,n)};o.push({id:r.id,kind:r.id.slice(5),side:d,along:l,by:m})}return o}function fr(e,t,n,o,r){return{x:e.x+(n.x-e.x-t.x-o.x)*(1-r),y:e.y+(n.y-e.y-t.y-o.y)*(1-r)}}var Cs={rankOf:()=>{},parentOf:()=>{}};function Hi(e,t){if(t.size===0)return Cs;let n=e.kinds,o=new Map,r=(l,a)=>{l!==a&&((o.get(l)??o.set(l,new Set).get(l)).add(a),(o.get(a)??o.set(a,new Set).get(a)).add(l))};for(let l of n){let a=e.tryDefinition(l);if(a)for(let u of Object.values(a.edges??{})){let m=u.to==="*"?n:u.to;for(let f of m)r(l,f)}}let i=new Map,s=new Map,d=[...t].filter(l=>n.includes(l));for(let l of d)i.set(l,0);let c=0;for(;d.length>0;){c+=1;let l=[];for(let a of[...d].sort((u,m)=>n.indexOf(u)-n.indexOf(m)))for(let u of[...o.get(a)??[]].sort((m,f)=>n.indexOf(m)-n.indexOf(f)))i.has(u)||(i.set(u,c),c===2&&s.set(u,a),l.push(u));d=l}return{rankOf:l=>{let a=i.get(l);if(a!==0)return a===1?"primary":"secondary"},parentOf:l=>s.get(l)}}function Bi(e,t,n,o,r={}){if(n){let i=new Map;for(let s of e.allEdges()){if(o&&s.kind!==o)continue;let d=s.from===n.id?s.to:s.to===n.id?s.from:null;if(d===null||d===n.id)continue;let c=e.getNode(d);if(!c||i.has(d))continue;let l=s.from===n.id?"out":"in",a=l==="out"?n.kind:c.kind,u=Ts(t,a,s.kind,l);i.set(d,{node:c,via:{edgeKind:s.kind,direction:l,...u?{description:u}:{}}})}if(i.size>0){let s=d=>`${d.via.edgeKind}|${d.via.description??""}`;return[...i.values()].sort((d,c)=>(s(d)<s(c)?-1:s(d)>s(c)?1:0)||wt(d.node,c.node))}}if(n){let i=r[n.id]??[],s=new Set,d=[];for(let c of i){if(c===n.id||s.has(c))continue;let l=e.getNode(c);l&&(o&&o!=="judges"&&l.kind!==o||(s.add(c),d.push({node:l,via:{edgeKind:"judges",direction:"out",description:"what it finds wrong"}})))}if(d.length>0)return d.sort((c,l)=>wt(c.node,l.node))}return o?e.allNodes().filter(i=>i.kind===o).sort(wt).map(i=>({node:i})):[]}function Ts(e,t,n,o){let i=e.tryDefinition(t)?.edges?.[n];return o==="out"?i?.description:i?.inverse}function Di(e,t,n){let o=new Map,r=[...t.values()].sort((l,a)=>l.plane-a.plane);for(let l of r)for(let a of l.aggregate?.memberIds??[])!t.has(a)&&!o.has(a)&&o.set(a,l.id);let i=l=>t.get(l)??t.get(o.get(l)??""),s=new Map,d=new Map,c=new Map;for(let l of e.allEdges()){let a=i(l.from),u=i(l.to);if(!a||!u||a.id===u.id&&!(n.overview&&a.aggregate&&a.plane===2))continue;let m=`${l.kind}:${a.id}:${u.id}`,f=s.get(m);if(f){let b=`${l.from}
2
+ ${l.to}`,h=d.get(m);if(h.has(b))continue;if(h.add(b),c.get(m).push({from:l.from,to:l.to}),f.single){let{single:y,...E}=f;s.set(m,E)}continue}d.set(m,new Set([`${l.from}
3
+ ${l.to}`])),c.set(m,[{from:l.from,to:l.to}]),s.set(m,{id:m,kind:l.kind,from:a.id,to:u.id,edges:[{from:l.from,to:l.to}],single:{from:l.from,to:l.to},...a.id===u.id?{loop:!0}:{},x1:a.x+a.width/2,y1:a.y+a.height/2,x2:u.x+u.width/2,y2:u.y+u.height/2})}return[...s.values()].map(l=>({...l,edges:c.get(l.id)})).sort(wt)}var Fi=.85,$i=60,co=160;function Is(e,t,n,o,r,i=Fi){let s=e*t.width+Math.max(0,e-1)*n,d=Math.max(n,(o-s)/2);return Array.from({length:e},(c,l)=>({x:d+l*(t.width+n),y:r,depth:i}))}function mr(e,t,n,o={}){let r={...Pi,...o},i=Math.max(8,r.unit??16)/16,s=r.inset?.left??0,d=n.overview?Math.max(0,r.dock?.right??0):0,c=n.overview?Math.max(0,r.dock?.bottom??0):0,l=r.width-d-s-(r.inset?.right??0),a=[],u=new Map,m=p=>n.past===!0||$o(t.tryDefinition(p.kind),p,r.today),f=new Set(o.hiddenKinds??[]),b=p=>!f.has(p.kind),h=n.focusId?Rt(n.focusId).filter(p=>t.tryDefinition(p)!==void 0).filter(p=>!f.has(p)):[];n.focusId&&Rt(n.focusId).length>0&&h.length===0&&(n={...n,focusId:null});let y=n.focusId?e.getNode(n.focusId):void 0;y&&!b(y)&&(n={...n,focusId:null},h=[]);let E=h.length>0?[...e.allNodes()].filter(p=>h.includes(p.kind)).sort(wt):[],k=E.filter(b).filter(m),w=E.length-k.length,x=n.focusId&&h.length===0?e.getNode(n.focusId):void 0,A=n.zoom===!0&&!n.overview&&n.focusId!==null,O=Math.max(56,r.height*.062),T=Math.min(r.height*.895,r.height-O),F=A?x!==void 0?{focusY:r.height*.03,focusH:r.height*.58,relationY:r.height*.645,relationH:r.height*.2,contextY:T,contextH:O}:{focusY:r.height*.03,focusH:r.height*.71,relationY:r.height*.765,relationH:r.height*.1,contextY:T,contextH:O}:x===void 0?{focusY:r.height*.045,focusH:r.height*.62,relationY:r.height*.68,relationH:r.height*.2,contextY:r.height*.918,contextH:r.height*.082}:(()=>{let p=r.height,G=p*.04,U=Math.max(p*.42,Math.min(p*.56,300)),ce=G+U+p*.06;return{focusY:G,focusH:U,relationY:ce,relationH:Math.max(p*.12,p*.878-p*.068-ce),contextY:p*.878,contextH:p*.092}})(),g=Math.min(r.headroom??0,F.focusY+F.focusH*.2),M=g>F.focusY?{...F,focusY:g,focusH:F.focusH-(g-F.focusY)}:F,L=p=>Math.min(r.gap*p,Math.round(l*.1)),C=A?Math.min(880,l-L(5)):Math.min(700,l-L(6)),V=A?l-L(5):Math.min(r.focusSize.width,l-L(6)),X=(p,G,U)=>({width:p===0?G:Math.min(G,(l-r.gap*(p+1))/p),height:U}),ie=(p,G,U)=>{let ce=X(p,G,U),Ee=Math.min(G,co*i,l-r.gap*2);return ce.width>=Ee?ce:{width:Ee,height:U}},I=p=>Math.max(1,Math.floor((l-r.gap)/(Math.min(p,co*i,l-r.gap*2)+r.gap))),$=new Set(n.expanded),N=n.overview?[]:Bi(e,t,x,n.relation,r.judged).filter(p=>b(p.node)).filter(p=>m(p.node)),q=n.overview?0:Math.max(0,$i*i-M.contextH),P=N.length>0?M.focusH:M.contextY-M.focusY-r.gap*2-q,j=V,z=r.height,re=Math.min(l*.5/j,r.height*.48/z),v=j*re,R=z*re,S=new Set(o.plainGroups??[]),B=n.overview&&!x&&h.length>0&&n.focusId!==null,D=B&&h.length>0&&h.every(p=>S.has(p));if(B)for(let p of h)D&&o.besideTheMap!==!0?$.add(Re(p)):$.delete(Re(p));let W=B&&!D&&h.length===1?h[0]:void 0,Y=W!==void 0&&(o.screens?.[W]?.length??0)>0,_,Z=n.overview===!0&&x!==void 0&&o.besideTheMap===!0;n.overview&&(x||h.length>0)&&n.focusId&&!D&&!Y&&!(B&&o.besideTheMap===!0)&&!Z?(_={x:s+(l-v)/2,y:r.height*.53-R/2,width:v,height:R},St({id:n.focusId,kind:x?x.kind:h[0],plane:0,x:_.x,y:_.y,width:v,height:R,natural:{width:j,height:z},...x?{}:{aggregate:{kind:h.join("+"),memberIds:k.map(p=>p.id),label:o.plurals?.[n.focusId]??h.map(p=>$t(t,p)).join(" and "),...w>0?{retired:w}:{}}}})):n.overview||(x?St({id:x.id,kind:x.kind,plane:0,x:s+(l-C)/2,y:M.focusY,width:C,height:P}):h.length>0&&n.focusId&&St({id:n.focusId,kind:h[0],plane:0,x:s+(l-V)/2,y:M.focusY,width:V,height:P,aggregate:{kind:h.join("+"),memberIds:k.map(p=>p.id),label:o.plurals?.[n.focusId]??h.map(p=>$t(t,p)).join(" and "),...w>0?{retired:w}:{}}}));let oe=26,Q=52,ge=22,ye=Math.round(r.relationSize.width*.75),ue=Math.max(1,Math.floor((l-r.gap)/(ye+r.gap))),Me=r.unit/16,De=new Map;for(let p of N){let G=to(p),U=De.get(G);U?U.push(p):De.set(G,[p])}let te=[...De.values()],J=te.length>1,se=Math.max(r.gap,ge*Me),at=J?se:r.gap,Ke=Math.max(2,Math.floor((M.relationH+at)/(oe*Me+at))),wn=Math.min(r.relationSize.width,(l-r.gap*(ue+1))/ue)+r.gap,Ze=te.map(p=>{let G=p[0].via;return!J||!G?1:Math.ceil((Math.min(cr*Me,ur(Hn(G),Me))+r.gap)/wn)}),Te=te.map(p=>p.length),Tt=un(Te,ue,Ze),Je=N.length>ue*Ke||Tt.length>Ke,It={schema:t,graph:e,focusId:x?.id,expanded:$,...r.relevance?{relevance:r.relevance}:{},...n.selection?{selection:n.selection}:{},plural:p=>$t(t,p),...r.today?{today:r.today}:{}},Ue=Je||J?se:r.gap,Le,Ie;if(!Je)Le=te.flat().map(p=>({id:p.node.id,kind:p.node.kind,node:p.node,...p.via?{via:p.via}:{}})),Ie=Tt;else{let p=Math.max(1,Math.floor((M.relationH+Ue)/(Q*Me+Ue))),U=un(Te.map(()=>1),ue,Ze).length<=p?Ze:[],ce=no(Te,ue,p,U),Ee=te.map((we,Ce)=>ro(we,{...It,budget:ce[Ce]}));Le=Ee.flat(),Ie=un(Ee.map(we=>we.length),ue,U)}let st=Ie.length,ne=st===1?M.relationH:(M.relationH-Ue*(st-1))/st,et=X(Math.max(...Ie.map(p=>p.reduce((G,U)=>G+U.slots,0)),1),Le.length<=2?Math.round(r.relationSize.width*1.35):r.relationSize.width,ne),pt=[];{let p=et.width+r.gap,G=[],U=0,ce=new Map;for(let we of Ie.flat())ce.set(we.run,(ce.get(we.run)??0)+we.cards);for(let we=0;we<te.length;we++)G[we]=U,U+=ce.get(we)??0;let Ee=te.map(()=>0);Ie.forEach((we,Ce)=>{let yt=we.reduce((Mt,Pr)=>Mt+Pr.slots,0),qn=yt*et.width+Math.max(0,yt-1)*r.gap,Qn=s+Math.max(r.gap,(l-qn)/2),ks=M.relationY+Ce*(ne+Ue);for(let Mt of we){let Pr=Mt.slots*p-r.gap,Ss=Mt.cards*p-r.gap,Ms=Qn+(Pr-Ss)/2;for(let Lr=0;Lr<Mt.cards;Lr++)pt[G[Mt.run]+Ee[Mt.run]++]={x:Ms+Lr*p,y:ks};Qn+=Mt.slots*p}})}Le.forEach((p,G)=>{let U=pt[G];St({id:p.id,kind:p.kind,plane:1,x:U.x,y:U.y,width:et.width,height:et.height,...p.via?{via:p.via}:{},...p.aggregate?{aggregate:p.aggregate}:{},...Je&&!p.aggregate?{compact:!0}:{}})});let bn=new Set(u.keys());for(let p of k)bn.add(p.id);let xt=new Map;for(let p of e.allNodes()){let G=xt.get(p.kind);G?G.push(p):xt.set(p.kind,[p])}let le=new Set(h.length>0?h:x?[x.kind]:[]),Ae=[];for(let p of t.kinds){if(f.has(p))continue;let G=xt.get(p)??[],U=G.filter(m);Ae.push({id:Re(p),kind:p,members:U.sort(wt),retired:G.length-U.length,...le.has(p)?{focused:!0}:{}})}for(let p of Ae)p.kind===n.relation&&(p.raised=!0);Ae.sort(wt);let dt=Hi(t,le),Nt=!n.overview&&t.kinds.some(p=>dt.rankOf(p)==="primary"),$e=[];for(let p of Ae)if(!n.overview&&$.has(p.id)&&p.members.length>0)for(let G of p.members)$e.push({id:G.id,kind:G.kind});else{let G=Nt?dt.rankOf(p.kind):void 0,U=G==="secondary"?dt.parentOf(p.kind):void 0;$e.push({id:p.id,kind:p.kind,...p.raised?{raised:!0}:{},...p.focused?{focused:!0}:{},...n.overview&&$.has(p.id)?{opened:!0}:{},...G?{rank:G}:{},...U&&!$.has(Re(U))?{nestedUnder:Re(U)}:{},aggregate:{kind:p.kind,memberIds:p.members.map(ce=>ce.id),label:o.plurals?.[p.kind]??$t(t,p.kind),...p.retired>0?{retired:p.retired}:{}}})}let tt=2;if($e.length<=I((A?240:r.contextSize.width)*i))for(let p of $e)delete p.nestedUnder;let xn=new Map;for(let p of $e){if(p.nestedUnder===void 0)continue;let G=xn.get(p.nestedUnder)??0;G>=tt?delete p.nestedUnder:xn.set(p.nestedUnder,G+1)}let zn=$e.filter(p=>p.nestedUnder!==void 0),vt=$e.filter(p=>p.nestedUnder===void 0),vn=I((A?240:r.contextSize.width)*i),kn=!n.overview&&vt.length>vn,Yn=Math.max(0,vn-1),gt=p=>p.focused?0:p.raised?1:2,kt=new Set([...vt].map((p,G)=>({item:p,at:G})).sort((p,G)=>gt(p.item)-gt(G.item)||p.at-G.at).slice(0,Yn).map(({item:p})=>p.id)),Qt=new Set(kn?vt.filter(p=>!kt.has(p.id)).map(p=>p.id):[]),_n=zn.filter(p=>!Qt.has(p.nestedUnder)),Kn=zn.filter(p=>Qt.has(p.nestedUnder)),Ht=kn?[...vt.filter(p=>kt.has(p.id)),{id:_o,kind:"",beyond:[...vt.filter(p=>Qt.has(p.id)),...Kn].map(p=>p.kind)}]:vt,lt=n.overview?{width:Math.min(220,l/6.5),height:Math.min(92,r.height*.125)}:ie(Ht.length,(A?240:r.contextSize.width)*i,M.contextH),Sn=r.relevance?.flagged,nt=(p,G)=>{let U=Zr(t,p);if(!U)return{};let ce=U.values.map(()=>0),Ee=0;for(let we of G){let Ce=U.values.indexOf(e.getNode(we)?.[U.field]);Ce<0?Ee++:ce[Ce]++}return{states:{field:U.field,values:[...U.values.map((we,Ce)=>({value:we,tier:U.tiers[Ce],count:ce[Ce]})),...Ee>0?[{value:null,tier:"waiting",count:Ee}]:[]]}}},Mn=[...n.selection??[],...n.focusId?[n.focusId]:[]].flatMap(p=>p.startsWith("kind:")?[p.slice(5)]:p.startsWith("aggregate:")&&!p.includes("|")?[p.slice(10)]:Z&&p===x?.id?[x.kind]:[]),Zt=c>0&&d===0&&Mn.length>0,Xe=n.overview?so(Ht.map(p=>{let G=p.aggregate?.memberIds??[],U=Sn?G.filter(ce=>Sn.has(ce)).length:0;return{id:p.id,kind:p.kind,count:G.length,opened:$.has(p.id)?dn(sn(G.length))*i:0,openedMin:$.has(p.id)?dn(Math.min(qr,sn(G.length)))*i:0,nameplate:Ni(p.aggregate?.label??$t(t,p.kind),G.length,U,Zr(t,p.kind)!==void 0,i),weight:U*1e3+G.length,...h.includes(p.kind)&&(o.screens?.[p.kind]?.length??0)>0?{marquee:{width:Kr+12,height:Ur(o.screens[p.kind].map(ce=>ce.title),Kr,o.nameWidth)+8}}:{}}}),t,{width:r.width-d,height:Zt?r.height:r.height-c},r.chrome?{...r.inset,right:Math.min(r.inset?.right??0,8)}:r.inset??{},{...r.cityOrder?{order:r.cityOrder}:{},...r.plots?{plots:r.plots}:{},...o.cityZoom&&o.cityZoom!==1?{zoom:o.cityZoom}:{},...o.cityStood?{stood:o.cityStood}:{},keep:Mn,...Zt?{seen:{width:r.width-d,height:r.height-c}}:{},...o.tilt!==void 0?{tilt:o.tilt}:{},pan:{x:n.pan?.x??0,y:n.pan?.y??0},..._||r.chrome?.length?{avoid:[..._?[_]:[],...(r.chrome??[]).filter(p=>!(Zt&&p.onSheet))]}:{}}):null,Un=new Map(Xe?.placed.map(p=>[p.id,p.plot])??[]),Jt=new Map(Xe?.placed.map(p=>[p.id,p.nameplate])??[]),Bt=Xe?Xe.placed.map(({x:p,y:G,depth:U,width:ce,height:Ee})=>({x:p,y:G,depth:U,width:ce,height:Ee})):Is(Ht.length,lt,r.gap,l,M.contextY,A?.97:Fi).map(p=>({...p,x:p.x+s})),H=.74,he=.8,be=52*i,Se=86*i,Ne=(p,G)=>Math.min(1,p+(1-p)*G),Ge=new Map;Ht.forEach((p,G)=>{let U=Bt[G],ce=U.width??lt.width,Ee=U.height??lt.height,we=p.rank==="secondary"?H:1,Ce=Xe?ce:Math.max(Math.min(ce,co*i),ce*we),yt=Xe?Ee:Math.max($i*i,Ee*we);Ge.set(p.id,{x:U.x+(ce-Ce)/2,y:U.y+(Ee-yt),depth:p.rank==="secondary"?Ne(U.depth,.5):U.depth,width:Ce,height:yt})});let qe=[],Dt=Bt[Bt.length-1],En=new Map;for(let p of _n)En.set(p.nestedUnder,(En.get(p.nestedUnder)??0)+1);let Xn=new Map;for(let p of _n){let G=Ge.get(p.nestedUnder);if(G){let U=En.get(p.nestedUnder)??1,ce=Xn.get(p.nestedUnder)??0;Xn.set(p.nestedUnder,ce+1);let Ee=.98,we=lt.width*he,Ce=Math.max(Se,Math.min(we,G.width/(Ee*(U-1)+1))),yt=Math.max(be,lt.height*he*(Ce/we)),qn=Ce*Ee,Qn=(U-1)*qn+Ce;qe.push({...p,x:G.x+(G.width-Qn)/2+ce*qn,y:Math.max(0,G.y-yt+Math.min(yt*.5,16)),width:Ce,height:yt,depth:Ne(G.depth,.8)})}else if(Dt){let U=lt.width*he,ce=lt.height*he;qe.push({...p,x:Dt.x,y:Dt.y,width:U,height:ce,depth:Ne(Dt.depth??1,.8)})}}for(let p of Ht)qe.push({...p,...Ge.get(p.id)});return qe.forEach(p=>{St({id:p.id,kind:p.kind,plane:2,x:p.x,y:p.y,width:p.width,height:p.height,...p.aggregate?{aggregate:p.aggregate}:{},...p.raised?{raised:!0}:{},...p.focused?{focused:!0}:{},...p.opened?{opened:!0}:{},...p.opened?{openedRows:Math.max(1,Math.floor((Math.max(dn(Math.min(qr,sn(p.aggregate?.memberIds.length??0))),dn(sn(p.aggregate?.memberIds.length??0))*(Xe?.frame.openedShare??1))-hi)/Xr))}:{},...p.rank?{rank:p.rank}:{},...p.nestedUnder?{nestedUnder:p.nestedUnder}:{},...p.beyond?{beyond:p.beyond}:{},...Un.has(p.id)?{plot:Un.get(p.id)}:{},...Jt.has(p.id)?{nameplate:Jt.get(p.id)}:{},...Xe&&p.aggregate?nt(p.kind,p.aggregate.memberIds):{},depth:p.depth})}),{nodes:a,connectors:Di(e,u,n),width:r.width,height:r.height,...Xe?{city:Xe.frame}:{},...n.pan&&(n.pan.x!==0||n.pan.y!==0)?{pan:{x:n.pan.x,y:n.pan.y}}:{},...d>0||c>0?{visible:{width:r.width-d,height:r.height-c}}:{}};function St(p){let G=n.overview&&He(p.id)!==null?void 0:n.pins[p.id],U=G?{...p,x:G.x,y:G.y,pinned:!0}:{...p,pinned:!1},ce=n.pan?{...U,x:U.x+n.pan.x,y:U.y+n.pan.y}:U;a.push(ce),u.set(ce.id,ce)}}function uo(e,t,n){let o=e.nodes.find(d=>d.id===t);if(!o||o.screenOf!==void 0)return null;let r={...o,x:n.x,y:n.y,pinned:!0},i=r.x+r.width/2,s=r.y+r.height/2;return{...e,nodes:e.nodes.map(d=>d.id===t?r:d),connectors:e.connectors.map(d=>d.from===t?{...d,x1:i,y1:s}:d.to===t?{...d,x2:i,y2:s}:d)}}function ho(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}}}:{},pan:{x:t.x,y:t.y}}}var ve=(e,t,n)=>e+(t-e)*n;function Wi(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}var ji=new WeakMap;function Ns(e){let t=ji.get(e);if(t)return t;let n=new Map,o=new Map;for(let r of e.nodes){n.set(r.id,r);for(let i of r.aggregate?.memberIds??[]){let s=o.get(i);s?s.push(r):o.set(i,[r])}}return t={byId:n,groupsOf:o},ji.set(e,t),t}var Vi=new WeakMap;function Gi(e,t){let n=Vi.get(t);if(n||Vi.set(t,n=new WeakMap),n.has(e))return n.get(e);let o=Hs(e,t);return n.set(e,o),o}function Hs(e,t){let{byId:n,groupsOf:o}=Ns(t);if(e.screenOf!==void 0){let s=n.get(Re(e.screenOf));if(s)return{...e,x:s.x,y:s.y,width:s.width,height:s.height}}if(Wt(e.id)||He(e.id)!==null){let s=(e.aggregate?.memberIds??[]).map(a=>n.get(a)).filter(a=>a!==void 0);if(s.length===0)return null;let d=s.map(Wi),c=d.reduce((a,u)=>a+u.x,0)/d.length,l=d.reduce((a,u)=>a+u.y,0)/d.length;return{...e,x:c-e.width/2,y:l-e.height/2}}let r=o.get(e.id)?.find(s=>s.id===Re(e.kind)||s.id===Be(e.kind));if(!r)return null;let i=Wi(r);return{...e,x:i.x-e.width/2,y:i.y-e.height/2}}function ut(e,t,n){let o=Math.max(0,Math.min(1,n)),r=new Map(e.nodes.map(a=>[a.id,a])),i=new Map(t.nodes.map(a=>[a.id,a])),s=[];for(let[a,u]of r){let m=i.get(a);if(m){s.push(fo(u,m,o,1));continue}let f=Gi(u,t)??u;s.push(fo(u,f,o,1-o))}for(let[a,u]of i){if(r.has(a))continue;let m=Gi(u,e)??u;s.push(fo(m,u,o,o))}let d=new Map(e.connectors.map(a=>[a.id,a])),c=new Map(t.connectors.map(a=>[a.id,a])),l=[];for(let[a,u]of d){let m=c.get(a);l.push(m?{...Bs(u,m,o),opacity:1}:{...u,opacity:1-o})}for(let[a,u]of c)d.has(a)||l.push({...u,opacity:o});return{nodes:s.filter(a=>a.opacity>0).sort((a,u)=>a.id<u.id?-1:a.id>u.id?1:0),connectors:l.filter(a=>a.opacity>0).sort((a,u)=>a.id<u.id?-1:a.id>u.id?1:0),width:ve(e.width,t.width,o),height:ve(e.height,t.height,o),t:o,...zi(e.city,t.city,o)?{city:zi(e.city,t.city,o)}:{},...e.pan||t.pan?{pan:{x:ve(e.pan?.x??0,t.pan?.x??0,o),y:ve(e.pan?.y??0,t.pan?.y??0,o)}}:{}}}function zi(e,t,n){return e?t?{cell:ve(e.cell,t.cell,n),...e.tilt!==void 0||t.tilt!==void 0?{tilt:ve(e.tilt??.5,t.tilt??.5,n)}:{},originX:ve(e.originX,t.originX,n),originY:ve(e.originY,t.originY,n),pan:{x:ve(e.pan.x,t.pan.x,n),y:ve(e.pan.y,t.pan.y,n)},extent:{x:ve(e.extent.x,t.extent.x,n),y:ve(e.extent.y,t.extent.y,n),width:ve(e.extent.width,t.extent.width,n),height:ve(e.extent.height,t.extent.height,n)}}:e:t}function fo(e,t,n,o){return{id:t.id,kind:t.kind,plane:ve(e.plane,t.plane,n),x:ve(e.x,t.x,n),y:ve(e.y,t.y,n),width:ve(e.width,t.width,n),height:ve(e.height,t.height,n),pinned:t.pinned,opacity:o,...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:ve(e.depth??1,t.depth,n)},...t.natural?{natural:t.natural}:{}}}function Bs(e,t,n){return{...t,x1:ve(e.x1,t.x1,n),y1:ve(e.y1,t.y1,n),x2:ve(e.x2,t.x2,n),y2:ve(e.y2,t.y2,n)}}function pr(e){let t=Math.max(0,Math.min(1,e));return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function Ds(e,t){let n=[];for(let r=0;r<e.length;r+=1){let i=e[r],s=e[(r+1)%e.length];if(i.y===s.y)continue;let d=Math.min(i.y,s.y),c=Math.max(i.y,s.y);t<d||t>=c||n.push(i.x+(t-i.y)/(s.y-i.y)*(s.x-i.x))}n.sort((r,i)=>r-i);let o={x0:0,x1:0};for(let r=0;r+1<n.length;r+=2){let i={x0:n[r],x1:n[r+1]};i.x1-i.x0>o.x1-o.x0&&(o=i)}return o}function $s(e){let t=1/0,n=-1/0;for(let o of e)o.y<t&&(t=o.y),o.y>n&&(n=o.y);return{top:t,bottom:n}}function Fs(e){let t=0;for(let n=0;n<e.length;n+=1){let o=e[n],r=e[(n+1)%e.length];t+=o.x*r.y-r.x*o.y}return Math.abs(t)/2}function Ws(e){let t=0,n=0,o=0;for(let r=0;r<e.length;r+=1){let i=e[r],s=e[(r+1)%e.length],d=i.x*s.y-s.x*i.y;t+=d,n+=(i.x+s.x)*d,o+=(i.y+s.y)*d}if(Math.abs(t)<1e-9){let r=e.reduce((i,s)=>({x:i.x+s.x,y:i.y+s.y}),{x:0,y:0});return{x:r.x/e.length,y:r.y/e.length}}return{x:n/(3*t),y:o/(3*t)}}function js(e,t){let{room:n,height:o,size:r,floor:i,measure:s=_r,lines:d=2}=t,c=(h,y)=>h.every(E=>s(E,y)<=n)&&h.length*y*1.15<=o;if(c([e],r))return{lines:[e],fontSize:r,whole:!0};let l=e.split(/\s+/);if(d>1&&l.length>1){let h=1,y=1/0,E=0;for(let w=0;w<l.length-1;w+=1){E+=l[w].length+1;let x=Math.abs(E-e.length/2);x<y&&(y=x,h=w+1)}let k=[l.slice(0,h).join(" "),l.slice(h).join(" ")];if(c(k,r))return{lines:k,fontSize:r,whole:!0};for(let w=r;w>=i;w-=r*.06)if(c(k,w))return{lines:k,fontSize:w,whole:!0}}for(let h=r;h>=i;h-=r*.06)if(c([e],h))return{lines:[e],fontSize:h,whole:!0};let a=s(e,i)/Math.max(1,e.length),u=Math.floor(n/a)-1;if(u<4||i*1.15>o)return null;let m=e.slice(0,u),f=m.lastIndexOf(" ");return{lines:[`${f>3?m.slice(0,f):m}\u2026`],fontSize:i,whole:!1}}var Vs=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1;var K=ae(Pe(),1);var mo=ae(Pe(),1),Gs=500,zs=10;function Yi(e){return e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA"||e.tagName==="SELECT"?!0:e.tagName==="INPUT"&&!["button","submit","reset","checkbox","radio","image","file","color","range"].includes(e.type):!1}function Ys(e){let t=typeof getSelection=="function"?getSelection():null;return t!==null&&!t.isCollapsed&&t.containsNode(e,!0)}function _s(e){return e.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??e.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0}function _i({swallow:e,setMenuAt:t,setSelection:n}){let o=(0,mo.useRef)(0),r=(0,mo.useRef)(null),i=()=>{r.current&&clearTimeout(r.current.timer),r.current=null},s=(d,c,l)=>{let a=_s(d);a&&n([a]),t(a?{x:c,y:l,on:a}:{x:c,y:l})};return{onContextMenu:d=>{let c=d.target;d.shiftKey||d.altKey||Yi(c)||Ys(c)||(d.preventDefault(),!c.closest("[data-graview-popover], [data-graview-offstage]")&&(Date.now()-o.current<700||s(c,d.clientX,d.clientY)))},onPointerDown:d=>{if(i(),d.pointerType==="mouse"||!d.isPrimary)return;let c=d.target;if(Yi(c)||c.closest("[data-graview-popover], [data-graview-offstage], button, a, input, select, textarea"))return;let{clientX:l,clientY:a}=d;r.current={x:l,y:a,timer:setTimeout(()=>{r.current=null,o.current=Date.now(),e.current=!0,setTimeout(()=>e.current=!1,700),s(c,l,a)},Gs)}},onPointerMove:d=>{let c=r.current;c&&Math.hypot(d.clientX-c.x,d.clientY-c.y)>zs&&i()},onPointerUp:i}}var Pt=ae(Pe(),1);function Ki(e){let[t,n]=(0,Pt.useState)(()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(e).matches);return(0,Pt.useEffect)(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let o=window.matchMedia(e),r=()=>n(o.matches);return r(),o.addEventListener("change",r),()=>o.removeEventListener("change",r)},[e]),t}function Ks(){let e=()=>typeof document>"u"?null:document.documentElement.getAttribute("data-graview-motion"),[t,n]=(0,Pt.useState)(e);return(0,Pt.useEffect)(()=>{if(typeof document>"u"||typeof MutationObserver>"u")return;let o=new MutationObserver(()=>n(e()));return o.observe(document.documentElement,{attributes:!0,attributeFilter:["data-graview-motion"]}),n(e()),()=>o.disconnect()},[]),t}function Ui(e){let t=Ki("(prefers-reduced-motion: reduce)"),n=Ki("(prefers-reduced-transparency: reduce)"),o=Ks();return ai({off:!e,reducedMotion:o==="reduce"||o!=="full"&&t,reducedTransparency:n})}var Us=ni*1.5,Xs=30;function Xi(e,t){let[n,o]=(0,Pt.useState)(!1),r=e&&!n;return(0,Pt.useEffect)(()=>{if(!r||!t||typeof requestAnimationFrame>"u")return;let i=[],s=0,d=0,c=l=>{if(s>0&&i.push(l-s),s=l,i.length>=Xs){if(!si(i,Us)){o(!0);return}i.length=0}d=requestAnimationFrame(c)};return d=requestAnimationFrame(c),()=>cancelAnimationFrame(d)},[r,t]),r}var je=ae(Pe(),1);var qs=520;function Qs(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function qi(e,t={}){let n=t.duration??qs,o=(t.enabled??!0)&&!Qs(),r=t.settle??!0,i=(0,je.useRef)(e),[,s]=(0,je.useState)(()=>ut(e,e,1)),d=(0,je.useRef)(null);d.current??=ut(e,e,1);let c=(0,je.useRef)(null),l=(0,je.useRef)(null);!o&&l.current!==e&&(l.current=e,d.current=ut(e,e,1)),o&&(l.current=null);let a=(0,je.useRef)(null);return(0,je.useEffect)(()=>{if(!o||typeof requestAnimationFrame>"u"){if(i.current=e,l.current!==e){let k=ut(e,e,1);d.current=k,s(k)}if(typeof requestAnimationFrame>"u"||!r)return;let E=requestAnimationFrame(()=>{let k=ut(e,e,1);d.current=k,s(k)});return()=>cancelAnimationFrame(E)}if(i.current===e&&d.current.t>=1){if(!r)return;let E=requestAnimationFrame(()=>{let k=ut(e,e,1);d.current=k,s(k)});return()=>cancelAnimationFrame(E)}let u=performance.now(),f=a.current!==null&&d.current.t<1&&u-a.current<n?a.current:u;a.current=f;let b=pr(Math.min(1,(u-f)/n)),h=i.current,y=E=>{let k=Math.min(1,(E-f)/n),w=b>=1?1:(pr(k)-b)/(1-b),x=ut(h,e,Math.max(0,w));d.current=x,s(x),k<1?c.current=requestAnimationFrame(y):(a.current=null,i.current=e,c.current=requestAnimationFrame(()=>{let A=ut(e,e,1);d.current=A,s(A),c.current=null}))};return c.current=requestAnimationFrame(y),()=>{c.current!==null&&cancelAnimationFrame(c.current);let E=d.current;i.current={...e,...E.city?{city:E.city}:{},pan:E.pan??{x:0,y:0},nodes:E.nodes.map(k=>({...k,plane:Math.round(k.plane)})),connectors:E.connectors}}},[e,n,o,r]),d.current}function Qi(e=1100){let{store:t}=xe(),[n,o]=(0,je.useState)(()=>new Set);return(0,je.useEffect)(()=>{let r=null,i=t.subscribe(s=>{o(new Set(s.touched)),r&&clearTimeout(r),r=setTimeout(()=>o(new Set),e)});return()=>{i(),r&&clearTimeout(r)}},[t,e]),n}var Zs={marks:new Map,acts:[]};function Zi(e=4e3){let{store:t}=xe(),[n,o]=(0,je.useState)(Zs);return(0,je.useEffect)(()=>{let r=null,i=t.subscribe((s,d)=>{o(c=>{let l=new Map(c.marks),a=[...c.acts];for(let u of d){if(u.undoes!==void 0){let b=a.find(y=>y.batch===u.undoes||y.wrote.length>0),h=a.filter(y=>u.writes.some(E=>y.wrote.includes(E)));for(let y of h.length>0?h:b?[b]:[]){for(let E of y.wrote)l.delete(E);a=a.filter(E=>E.batch!==y.batch)}continue}if(u.author.kind!=="agent")continue;let m=u.author.id??"the seat";for(let b of u.writes)l.set(b,m);a.find(b=>b.batch===u.batch)?a=a.map(b=>b.batch===u.batch?{...b,wrote:[...new Set([...b.wrote,...u.writes])]}:b):a=[{batch:u.batch,who:m,intent:u.batchIntent??u.intent,at:u.at,wrote:[...u.writes]},...a].slice(0,12)}return l.size===c.marks.size&&a===c.acts&&l.size===0?c:{marks:l,acts:a}}),r&&clearTimeout(r),r=setTimeout(()=>o(c=>c.marks.size===0?c:{...c,marks:new Map}),e)});return()=>{i(),r&&clearTimeout(r)}},[t,e]),n}var Ut=ae(Oe(),1),rt=16;function Ji({marks:e,questions:t=[],whereIs:n,stageRef:o,width:r,height:i}){if(e.size===0&&t.length===0)return null;let s=o.current,d=s?.getBoundingClientRect()??null,c=[];for(let[a,u]of e){let m=null;if(s&&d&&typeof CSS<"u"){let y=s.querySelector(`[data-graview-pick="${CSS.escape(a)}"]`)?.getBoundingClientRect();y&&y.width>0&&y.height>0&&(m={x:y.left-d.left,y:y.top-d.top,width:y.width,height:y.height})}if(m??=n(a),!m)continue;let f=Math.min(Math.max(m.x+m.width-rt/2,rt/2),r-rt/2),b=Math.min(Math.max(m.y-rt/4,rt/2),i-rt/2);c.push({id:a,who:u,x:f,y:b})}let l=[];for(let a of t){let u=n(a.id);u&&l.push({...a,x:Math.min(Math.max(u.x+u.width/2,rt),r-rt),y:Math.min(Math.max(u.y-rt/2,rt),i-rt)})}return c.length===0&&l.length===0?null:(0,Ut.jsxs)("div",{className:"graview-seat-marks","data-testid":"seat-marks","data-graview-seat-marks":c.length,children:[c.map(({id:a,who:u,x:m,y:f})=>(0,Ut.jsx)("span",{className:"graview-seat-mark","data-testid":"seat-mark","data-graview-seat-mark":a,"data-graview-seat-who":u,title:`${u} just changed this`,"aria-hidden":"true",style:{left:m,top:f,"--graview-hue":Rn(u)},children:"\u25C6"},a)),l.map(a=>(0,Ut.jsxs)("span",{className:"graview-seat-asking","data-testid":"seat-question","data-graview-seat-asking":a.id,title:a.asks,style:{left:a.x,top:a.y},children:[(0,Ut.jsx)("span",{"aria-hidden":"true",children:"?"}),(0,Ut.jsx)("span",{className:"graview-seat-asking-said",children:a.asks})]},`asking:${a.id}`))]})}var ee=ae(Oe(),1);function Js({hue:e,mode:t}){let n=t==="docked";return(0,ee.jsxs)("svg",{viewBox:"0 0 32 38","aria-hidden":"true",children:[(0,ee.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,ee.jsx)("line",{x1:"16",y1:"3.5",x2:"16",y2:"7"}),(0,ee.jsx)("circle",{cx:"16",cy:"2.6",r:"1.5",fill:"none"}),(0,ee.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,ee.jsx)("line",{x1:"11",y1:"12.5",x2:"21",y2:"12.5",strokeWidth:"2"}):(0,ee.jsxs)(ee.Fragment,{children:[(0,ee.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,ee.jsx)("circle",{cx:"13.4",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),(0,ee.jsx)("circle",{cx:"18.6",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),t==="reading"?(0,ee.jsx)("line",{x1:"10.2",y1:"12.5",x2:"21.8",y2:"12.5",strokeWidth:"0.8",opacity:"0.7"}):null]}),(0,ee.jsx)("line",{x1:"16",y1:"16",x2:"16",y2:"18.5"}),(0,ee.jsx)("polygon",{points:"16,18.5 24,22.5 16,26.5 8,22.5",fill:"currentColor",fillOpacity:"0.22"}),(0,ee.jsx)("polygon",{points:"8,22.5 16,26.5 16,33.5 8,29.5",fill:"currentColor",fillOpacity:"0.08"}),(0,ee.jsx)("polygon",{points:"24,22.5 16,26.5 16,33.5 24,29.5",fill:"currentColor",fillOpacity:"0.3"}),t==="writing"?(0,ee.jsxs)(ee.Fragment,{children:[(0,ee.jsx)("polyline",{points:"24,24 28.5,20.5"}),(0,ee.jsx)("line",{x1:"27.5",y1:"19",x2:"30",y2:"21.5",strokeWidth:"1.8"})]}):(0,ee.jsx)("line",{x1:"24",y1:"24",x2:"26.5",y2:"29"}),(0,ee.jsx)("line",{x1:"8",y1:"24",x2:"5.5",y2:"29"}),(0,ee.jsx)("path",{d:"M9.5 33.5 v2.2 h4"}),(0,ee.jsx)("path",{d:"M22.5 33.5 v2.2 h-4"})]}),(0,ee.jsx)("title",{children:`robot, ${t}`})]})}function ed({hue:e}){return(0,ee.jsxs)("svg",{viewBox:"0 0 22 24","aria-hidden":"true",style:{color:`hsl(${Math.round(e)} 50% 48%)`},children:[(0,ee.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,ee.jsx)("circle",{cx:"11",cy:"6",r:"4.2"}),(0,ee.jsx)("path",{d:"M3 23 C3 15.5 6 13 11 13 C16 13 19 15.5 19 23"})]}),(0,ee.jsx)("title",{children:"somebody"})]})}function ea({width:e,whereIs:t}){let{who:n,following:o,follow:r}=xe(),i=pi([...n.values()],t,e);if(i.length===0)return null;let s=h=>{let y=er(h.presence)||"somebody";return h.presence.kind==="agent"?y:`${y}'s agent`},d=new Map;for(let h of i){if(h.kind!=="robot")continue;let y=`${Math.round(h.point.x)}:${Math.round(h.point.y)}`;d.set(y,[...d.get(y)??[],s(h)])}let c=19,l=h=>h.length*9+4,a=[],u=new Map,m=new Set;for(let h of i){if(h.kind!=="robot"&&h.kind!=="person")continue;let y=`${Math.round(h.point.x)}:${Math.round(h.point.y)}`;if(h.kind==="robot"&&m.has(y))continue;h.kind==="robot"&&m.add(y);let E=h.kind==="robot"?[...new Set(d.get(y)??[])].join(" \xB7 "):er(h.presence)||"somebody",k=l(E)/2,w=0;for(;a.some(x=>x.row===w&&Math.abs(x.y-h.point.y)<c&&x.left<h.point.x+k&&x.right>h.point.x-k);)w++;a.push({left:h.point.x-k,right:h.point.x+k,y:h.point.y,row:w}),u.set(`${h.kind}:${h.presence.participant}`,w)}let f=h=>{let y=u.get(h)??0;return y>0?{top:2+y*c}:void 0},b=new Set;return(0,ee.jsx)("div",{className:"graview-occupants","data-testid":"occupants","data-graview-occupants":i.length,children:i.map((h,y)=>{if(h.kind==="over")return(0,ee.jsx)("div",{className:"graview-presence-over","data-testid":"presence-over","data-graview-over-by":h.presence.participant,style:{left:h.box.x-3,top:h.box.y-3,width:h.box.width+6,height:h.box.height+6,"--graview-hue":h.presence.hue}},`over:${h.presence.participant}`);if(h.kind==="count")return(0,ee.jsxs)("span",{className:"graview-figure-count","data-testid":"presence-count","data-graview-at":h.at,style:{left:h.point.x,top:h.point.y},title:`${h.n} more here`,children:["+",h.n]},`count:${h.at}:${y}`);let E=h.presence.hue,k=er(h.presence)||"somebody";if(h.kind==="edge")return(0,ee.jsxs)("button",{type:"button",className:"graview-figure-edge","data-testid":"presence-edge","data-graview-person":h.presence.participant,style:{right:`calc(${Math.max(8,e-h.point.x)}px + var(--graview-dock, 0px))`,top:h.point.y},onClick:()=>r(h.presence.participant),"aria-label":`${k} is somewhere else \u2014 press to go where they are`,children:["\u2192 ",k]},`edge:${h.presence.participant}`);if(h.kind==="robot"){let x=`${Math.round(h.point.x)}:${Math.round(h.point.y)}`;if(b.has(x))return null;b.add(x);let A=[...new Set(d.get(x)??[s(h)])].join(" \xB7 ");return(0,ee.jsxs)("div",{className:"graview-figure","data-graview-figure":`theirs:${h.presence.participant}`,"data-graview-theirs":"","data-graview-mode":h.mode,"data-graview-at":h.presence.robot?.at??"",style:{transform:`translate(${h.point.x.toFixed(1)}px, ${h.point.y.toFixed(1)}px)`,"--graview-hue":E},children:[(0,ee.jsx)("span",{className:"graview-figure-body",role:"img","aria-label":`${A} \u2014 ${h.mode}`,style:{cursor:"default"},children:(0,ee.jsx)(Js,{hue:E,mode:h.mode})}),(0,ee.jsx)("span",{className:"graview-figure-name","data-graview-label":"",style:f(`robot:${h.presence.participant}`),children:A})]},`robot:${h.presence.participant}`)}let w=o?.participant===h.presence.participant;return(0,ee.jsxs)("div",{className:"graview-figure","data-graview-figure":h.presence.participant,"data-graview-person":"","data-graview-at":h.at,"data-graview-audience":h.audience?"":void 0,"data-graview-followed":w?"":void 0,style:{transform:`translate(${h.point.x.toFixed(1)}px, ${h.point.y.toFixed(1)}px)`,"--graview-hue":E},children:[(0,ee.jsx)("button",{type:"button",className:"graview-figure-body","aria-label":`${k} is here${w?". Press to stop following":". Press to go where they go"}`,"aria-pressed":w,onClick:x=>{x.stopPropagation(),r(w?null:h.presence.participant)},onPointerDown:x=>x.stopPropagation(),children:(0,ee.jsx)(ed,{hue:E})}),(0,ee.jsx)("span",{className:"graview-figure-name",style:f(`person:${h.presence.participant}`),children:k})]},`person:${h.presence.participant}`)})})}var fn=ae(Pe(),1),Fn=ae(Oe(),1),ta={left:"\u2190",right:"\u2192",top:"\u2191",bottom:"\u2193"},po=36,td=140,$n=56;function na({result:e,schema:t,chrome:n=[],onGo:o}){let r=lo(e);if(r.length===0||(e.visible??e).height<td)return null;let i=a=>(a??[]).flatMap(u=>{let m=e.nodes.find(f=>f.id===u.id);return m?[{left:m.x+u.x,top:m.y+u.y,right:m.x+u.x+u.width,bottom:m.y+u.y+u.height}]:[]}),s=i(e.city?.showings),d=i(e.city?.nameplates),c=[...s,...d,...n.map(a=>({left:a.x,top:a.y,right:a.x+a.width,bottom:a.y+a.height}))],l=[];for(let a of["left","right","top","bottom"]){let u=e.visible??e,m=a==="left"||a==="right"?u.height:u.width,f=a==="left"||a==="right",b=a==="bottom"?od:a==="top"?$n:id+$n/2,h=-1/0,y=[],E=r.filter(k=>k.side===a).sort((k,w)=>k.along-w.along);for(let k of E){let w=Jn(t,k.kind),x=nd(w),A=f?gr:x/2,O=m-b-(f?0:A),T=Math.max($n,k.along,h+A+rd);if(T>O)continue;let{at:F,inset:g}=ad([...c,...y],a,T,x,u,m);if(F>O+.5)continue;h=F+A,y.push(ra(a,F,x,u,g));let M=a==="left"?{left:g,top:F,transform:"translateY(-50%)"}:a==="right"?{right:`calc(${g}px + var(--graview-dock, 0px))`,top:F,transform:"translateY(-50%)"}:a==="top"?{top:g,left:F,transform:"translateX(-50%)"}:{bottom:`calc(${g}px + var(--graview-scene-foot, var(--graview-sheet, 0px)))`,left:F,transform:"translateX(-50%)"};l.push((0,Fn.jsx)("button",{type:"button",className:"graview-edge-sign","data-graview-past-edge":k.id,"aria-label":`${w}, past the ${a} edge \u2014 bring it into view`,title:`${w} is past the ${a} edge`,tabIndex:-1,onPointerDown:L=>L.stopPropagation(),onClick:L=>{L.stopPropagation(),o(k.by)},style:{...sd,...M},children:a==="right"||a==="bottom"?`${w} ${ta[a]}`:`${ta[a]} ${w}`},k.id))}}return(0,Fn.jsx)(Fn.Fragment,{children:l})}var nd=e=>(e.length+2)*7.4+22,gr=po/2,Dn=6,rd=6,od=236,id=56;function ra(e,t,n,o,r=Dn){return e==="left"||e==="right"?{left:e==="left"?r:o.width-r-n,right:e==="left"?r+n:o.width-r,top:t-gr,bottom:t+gr}:{left:t-n/2,right:t+n/2,top:e==="top"?r:o.height-r-po,bottom:e==="top"?r+po:o.height-r}}function ad(e,t,n,o,r,i){let s=t==="left"||t==="right",d=h=>ra(t,h,o,r),c=h=>e.find(y=>{let E=d(h);return E.left<y.right&&y.left<E.right&&E.top<y.bottom&&y.top<E.bottom}),l=c(n);if(!l)return{at:n,inset:Dn};let a=s?gr:o/2,u=h=>{let y=n;for(let E=0;E<12;E++){let k=c(y);if(!k)return y;if(y=h>0?(s?k.bottom:k.right)+a+4:(s?k.top:k.left)-a-4,y>i-$n||y<$n)return null}return null},m=u(1);if(m!==null)return{at:m,inset:Dn};let f=u(-1);if(f!==null)return{at:f,inset:Dn};let b=t==="left"?l.right:t==="right"?r.width-l.left:t==="top"?l.bottom:r.height-l.top;return{at:n,inset:Math.max(Dn,b+4)}}var sd={position:"absolute",zIndex:We.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 oa(e){let[t,n]=(0,fn.useState)(null);return(0,fn.useLayoutEffect)(()=>{let o=e.current,r=null;for(let d=o?.parentElement??null,c=0;d&&!r&&c<4;d=d.parentElement,c++)r=d.querySelector(":scope > [data-graview-scene-trail]");if(!o||!r)return;let i=()=>{let d=o.getBoundingClientRect(),c=r.getBoundingClientRect(),l=c.width>0&&c.height>0?{x:c.left-d.left,y:c.top-d.top,width:c.width,height:c.height}:null;n(a=>a===l||a&&l&&a.x===l.x&&a.y===l.y&&a.width===l.width&&a.height===l.height?a:l)};if(i(),typeof ResizeObserver>"u")return;let s=new ResizeObserver(i);return s.observe(r),()=>s.disconnect()},[e]),t}function ia(e,t,n){let[o,r]=(0,fn.useState)([]);return(0,fn.useLayoutEffect)(()=>{let i=e.current;if(!i||!t)return;let s=[...i.querySelectorAll(".graview-drive-in")].flatMap(d=>{let c=d.closest("[data-graview-view]"),l=d.getBoundingClientRect();if(!c||l.width===0||l.height===0)return[];let a=c.getBoundingClientRect();return[{id:c.getAttribute("data-graview-view"),x:Math.round(l.left-a.left),y:Math.round(l.top-a.top),width:Math.round(l.width),height:Math.round(l.height)}]});r(d=>d.length===s.length&&d.every((c,l)=>c.id===s[l].id&&c.x===s[l].x&&c.y===s[l].y&&c.width===s[l].width&&c.height===s[l].height)?d:s)},[e,t,n]),o}function aa(e,t){return e.flatMap(n=>{let o=t.find(r=>r.id===n.id);return o?[{x:o.x+n.x,y:o.y+n.y,width:n.width,height:n.height}]:[]})}var Lt=ae(Pe(),1),dd=180;function sa({view:e,result:t,frame:n,panned:o,closer:r,screenId:i,setCamera:s}){let d=(0,Lt.useRef)(new Map),c=Math.round((t.nodes.find(u=>u.id===i)?.height??0)/16),l=(0,Lt.useRef)(e.overview??!1),a=(0,Lt.useRef)(null);if((0,Lt.useEffect)(()=>{if(!e.overview||!i||!t.city){if(l.current&&!e.overview)return;s(O=>O.x===0&&O.y===0?O:{x:0,y:0});return}let u=t.nodes.find(O=>O.id===i);if(!u)return;let m=r>1&&u.screenOf?t.nodes.find(O=>O.id===Re(u.screenOf)):void 0,f=m?{x:Math.min(u.x,m.x),y:Math.min(u.y,m.y),width:Math.max(u.x+u.width,m.x+m.width)-Math.min(u.x,m.x),height:Math.max(u.y+u.height,m.y+m.height)-Math.min(u.y,m.y)}:u;if(f.x>=0&&f.y>=0&&f.x+f.width<=t.width&&f.y+f.height<=t.height&&!m)return;let h=24,y=(O,T,F)=>O<h?h-O:O+T>F-h?F-h-(O+T):0,E=At(t),k=e.pan??{x:0,y:0},w=m?o.x+(t.width/2-(f.x+f.width/2)):o.x+y(f.x,f.width,t.width),x=t.height/2-(f.y+f.height/2),A=m?o.y+(u.y+x<h?h-u.y:x):o.y+y(f.y,f.height,t.height);s({x:(m?w:Math.max(-E.x,Math.min(E.x,w)))-k.x,y:(m?A:Math.max(-E.y,Math.min(E.y,A)))-k.y})},[i,e.overview,r,e.within?.view,c]),n.city){let u=new Map;for(let m of n.nodes){if(!m.plot||Math.round(m.plane)!==2)continue;let f=cn(m.plot.col+m.plot.side/2,m.plot.row+m.plot.side/2,n.city.cell,n.city.tilt);u.set(m.id,{x:n.city.originX+o.x+f.x,y:n.city.originY+o.y+f.y})}d.current=u}return(0,Lt.useEffect)(()=>{let u=e.overview??!1,m=l.current&&!u;if(l.current=u,u&&a.current&&(clearTimeout(a.current),a.current=null),!m)return;let f=e.focusId?Rt(e.focusId)[0]:void 0,b=f?d.current.get(Re(f)):void 0,h=t.nodes.find(y=>y.id===e.focusId);if(!b||!h){s({x:0,y:0});return}s({x:b.x-(h.x+h.width/2),y:b.y-(h.y+h.height/2)}),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{a.current=null,s({x:0,y:0})},dd)},[e.overview]),(0,Lt.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{gliding:()=>a.current!==null}}var wr=ae(Pe(),1),yr="[data-graview-view]";function ld(e,t){let n=null;for(let o=e?.closest(yr)??null;o&&t.contains(o);o=o.parentElement?.closest(yr)??null)n=o;return n}function da(e,t,n=!1){let o=e.getBoundingClientRect(),r=o.bottom-t.bottom;if(n&&t.bottom>0){let i=e.querySelector(".graview-zoom")?.getBoundingClientRect();i&&i.height>0&&i.top<r&&i.bottom>r-i.height-24&&(r=Math.min(r,i.top))}return{left:o.left,top:o.top,right:o.right-t.right,bottom:r,box:o}}function la(e,t,n){let o=(0,wr.useRef)({dock:t,reveal:n});o.current={dock:t,reveal:n},(0,wr.useEffect)(()=>{let r=e.current;if(!r)return;let i=l=>{let{dock:a}=o.current;if(l.key!=="Tab"||l.defaultPrevented||a.right<=0&&a.bottom<=0)return;let u=da(r,a),m=[];for(let f of r.querySelectorAll(yr)){if(f.parentElement?.closest(yr)||f.inert||f.contains(document.activeElement))continue;let b=f.getBoundingClientRect(),h=Math.max(b.left,u.box.left),y=Math.min(b.right,u.box.right),E=Math.max(b.top,u.box.top),k=Math.min(b.bottom,u.box.bottom);y<=h||k<=E||!(a.right>0&&h>=u.right-1||a.bottom>0&&E>=u.bottom-1)||(f.inert=!0,m.push(f))}m.length!==0&&setTimeout(()=>{for(let f of m)f.inert=!1},0)},s=l=>{let a=l.target,u=ld(a,r);if(!u)return;let m=!0;try{m=a?.matches(":focus-visible")??!0}catch{}requestAnimationFrame(()=>{for(let f=u.parentElement;f;f=f===r?null:f.parentElement)f.scrollTop!==0&&(f.scrollTop=0),f.scrollLeft!==0&&(f.scrollLeft=0);m&&u.isConnected&&d(()=>u.isConnected&&u.contains(document.activeElement)&&c(u))})},d=(l,a=120)=>{let u=r.closest(".graview-ground")??r.querySelector(".graview-ground");!u||u.hasAttribute("data-graview-settled")||a<=0?l():requestAnimationFrame(()=>d(l,a-1))},c=l=>{let a=da(r,o.current.dock,!0),u=l.getBoundingClientRect(),m=l.querySelector(".graview-drive-in")?.getBoundingClientRect(),f=m&&m.width>0&&m.height>0?m:null,b=12,h=f?{left:Math.min(u.left,f.left),right:Math.max(u.right,f.right),top:Math.min(u.top,f.top),bottom:Math.max(u.bottom,f.bottom)}:u,y=h.bottom-h.top<=a.bottom-a.top-2*b?h:u,E=(x,A,O,T)=>T-O>A-x-2*b||O<x+b?x+b-O:T>A-b?A-b-T:0,k=E(a.left,a.right,y.left,y.right),w=E(a.top,a.bottom,y.top,y.bottom);(Math.abs(k)>=1||Math.abs(w)>=1)&&o.current.reveal(Math.round(k),Math.round(w))};return document.addEventListener("keydown",i,!0),r.addEventListener("focusin",s),()=>{document.removeEventListener("keydown",i,!0),r.removeEventListener("focusin",s)}},[e])}var de=ae(Pe(),1);function ua(){let e=(0,de.useRef)(null),[t,n]=(0,de.useState)({right:0,bottom:0});return(0,de.useLayoutEffect)(()=>{let o=e.current;if(!o)return;let r=()=>{let s=o.getBoundingClientRect(),d={right:Math.round(s.width),bottom:Math.round(s.height)};n(c=>c.right===d.right&&c.bottom===d.bottom?c:d)};if(r(),typeof ResizeObserver>"u")return;let i=new ResizeObserver(r);return i.observe(o),()=>i.disconnect()},[]),{probe:e,dock:t}}function ha(){let[e,t]=(0,de.useState)(null),n=(0,de.useRef)(null),o=(0,de.useRef)(0),r=(0,de.useCallback)(s=>{n.current=s,o.current===0&&(o.current=requestAnimationFrame(()=>{o.current=0,t(n.current)}))},[]),i=(0,de.useCallback)(()=>{o.current!==0&&cancelAnimationFrame(o.current),o.current=0;let s=n.current;return n.current=null,s&&t(null),s},[]);return{held:e,place:r,release:i}}function fa({stage:e,pan:t,zoom:n,setView:o,settled:r,zoomTo:i}){let s=(0,de.useRef)({x:0,y:0,s:1}),d=(0,de.useRef)(0),c=(0,de.useRef)(!1),l=(0,de.useRef)(r);l.current=r;let a=(0,de.useCallback)(()=>[...e.current?.querySelectorAll("[data-graview-world]")??[]],[e]),u=(0,de.useCallback)(({x:w,y:x,s:A})=>{let O=A!==1?`translate3d(${w}px, ${x}px, 0) scale(${A})`:w===0&&x===0?"":`translate3d(${w}px, ${x}px, 0)`;for(let T of a())T.style.transform=O,T.style.transformOrigin=A!==1?"0 0":"";ca(e.current,w,x,A)},[a,e]),m=(0,de.useCallback)(()=>{d.current===0&&(d.current=requestAnimationFrame(()=>{d.current=0,u(s.current)}))},[u]),f=(0,de.useCallback)(()=>{c.current=!1;for(let w of a())w.style.transform="",w.style.transformOrigin="";ca(e.current,0,0,1),l.current()},[a,e]),b=(0,de.useCallback)((w,x)=>{s.current={x:w.x-x.x,y:w.y-x.y,s:s.current.s},m()},[m]),h=(0,de.useCallback)((w,x,A,O,T,F)=>{let{x:g,y:M,s:L}=s.current,C=Math.max(T,Math.min(F,L*w)),V=C/L;s.current={x:g*V+x.x*(1-V)+A,y:M*V+x.y*(1-V)+O,s:C},m()},[m]),y=(0,de.useCallback)(()=>{let{x:w,y:x,s:A}=s.current;return w===0&&x===0&&A===1?!1:(d.current!==0&&cancelAnimationFrame(d.current),d.current=0,u({x:w,y:x,s:A}),s.current={x:0,y:0,s:1},c.current=!0,Math.abs(A-1)>1e-4?i.current(A,{x:w/(1-A),y:x/(1-A)}):o(O=>{let T=O.pan??{x:0,y:0};return ct(O,{x:T.x+w,y:T.y+x})}),window.setTimeout(()=>{c.current&&f()},300),!0)},[o,f,u,i]);(0,de.useLayoutEffect)(()=>{c.current&&f()},[t,n,f]);let E=(0,de.useCallback)(()=>{d.current!==0&&cancelAnimationFrame(d.current),d.current=0,s.current={x:0,y:0,s:1},f()},[f]),k=(0,de.useCallback)(()=>s.current,[]);return{shiftTo:b,zoomBy:h,settle:y,drop:E,settling:c,offset:k}}function ca(e,t,n,o){for(let r of e?.querySelectorAll(":scope > .graview-lattice, :scope > .graview-measure")??[]){let i=o!==1&&r.classList.contains("graview-lattice")&&e?cd(e):null;i?r.style.setProperty("--graview-lattice-cell",`${(i.cell*o).toFixed(2)}px`):r.style.removeProperty("--graview-lattice-cell");let s=i?i.x*(o-1)+t:t,d=i?i.y*(o-1)+n:n;if(s===0&&d===0){r.style.removeProperty("--graview-hand-x"),r.style.removeProperty("--graview-hand-y");continue}r.style.setProperty("--graview-hand-x",`${s}px`),r.style.setProperty("--graview-hand-y",`${d}px`)}}function cd(e){let t=parseFloat(e.style.getPropertyValue("--graview-lattice-cell"));return Number.isFinite(t)?{cell:t,x:parseFloat(e.style.getPropertyValue("--graview-lattice-x"))||0,y:parseFloat(e.style.getPropertyValue("--graview-lattice-y"))||0}:null}var ud=4;function hd(e,t){for(let n=e;n&&n!==t;n=n.parentElement){let o=getComputedStyle(n);if(/(auto|scroll)/.test(o.overflowY)&&n.scrollHeight>n.clientHeight+1||/(auto|scroll)/.test(o.overflowX)&&n.scrollWidth>n.clientWidth+1)return!0}return!1}function ma({view:e,panned:t,limit:n,panWithin:o,moveByTransform:r,setView:i,setDragging:s,noteMoved:d,shift:c,district:l,pinching:a}){let u=(0,de.useRef)(!1),m=(0,de.useRef)(null),f=x=>{let A=e.pan??{x:0,y:0};m.current={kind:"pan",fromX:x.clientX,fromY:x.clientY,baseX:A.x,baseY:A.y,moved:!1}},b=x=>{x.button!==0||a.current||x.target.closest("[data-graview-view]")||f(x)},h=(x,A)=>{if(!(A.button!==0||a.current)&&!(A.pointerType!=="mouse"&&hd(A.target,A.currentTarget))){if(x.screenOf!==void 0&&!A.target.closest("[data-graview-grip]")){f(A);return}if(e.overview&&He(x.id)!==null){f(A);return}m.current={kind:"card",id:x.id,fromX:A.clientX,fromY:A.clientY,baseX:x.x-t.x,baseY:x.y-t.y,moved:!1}}},y=x=>{let A=m.current;m.current=null,l.release(),x?c.settle():c.drop(),A&&(u.current=!0,setTimeout(()=>u.current=!1,0)),c.settling.current||s(!1)};return{onGroundDown:b,onCardDown:h,onDragMove:x=>{let A=m.current;if(!A)return;if(a.current){y(!0);return}let O=x.clientX-A.fromX,T=x.clientY-A.fromY;if(!A.moved){if(Math.hypot(O,T)<ud)return;A.moved=!0,s(!0);try{x.currentTarget.setPointerCapture(x.pointerId)}catch{}}if(A.kind==="pan"){let F=o(n(),{x:A.baseX+O,y:A.baseY+T});r?c.shiftTo(F,e.pan??{x:0,y:0}):i(g=>ct(g,F))}else A.id&&l.place({id:A.id,x:A.baseX+O,y:A.baseY+T})},onDragUp:()=>{c.settle();let x=l.release();x&&i(A=>In(A,x.id,{x:x.x,y:x.y})),m.current?.moved&&(u.current=!0,setTimeout(()=>u.current=!1,0),d()),m.current=null,!c.settling.current&&s(!1)},onDragCancel:()=>{m.current&&y(!1)},swallow:u}}function pa({stage:e,view:t,setView:n}){let o=(0,de.useRef)({view:t,charge:0,coolUntil:0,lastScale:1});o.current.view=t;let r=(0,de.useRef)(()=>{}),i=(0,de.useRef)(()=>{}),s=(0,de.useRef)(()=>{}),d=(0,de.useRef)(()=>{}),c=(0,de.useRef)(!1),l=(0,de.useRef)({fingers:new Map,pinch:null,owed:null,owing:0});return(0,de.useEffect)(()=>{let a=e.current;if(!a)return;let u=(O,T)=>{let F=o.current;if(T<F.coolUntil)return;let g=F.view.overview??!1;O!==g&&(F.coolUntil=T+600,F.charge=0,n(On(F.view,O)))},m=O=>{let T=o.current,F=T.view.overview??!1;if(O.ctrlKey){if(O.preventDefault(),!F){if(T.charge+=O.deltaY,Math.abs(T.charge)<60)return;T.charge>0?u(!0,performance.now()):T.charge=0;return}s.current(Math.exp(-O.deltaY*.004),O.clientX,O.clientY,0,0);return}!F||O.target?.closest("[data-graview-view], .graview-scroll, [data-graview-overlay], .graview-zoom")||(O.preventDefault(),i.current(-O.deltaX,-O.deltaY))},f=l.current,b=f.fingers,h=()=>{f.owing=0;let O=f.owed;f.owed=null,O&&s.current(O.factor,O.x,O.y,O.dx,O.dy)},y=()=>{let[O,T]=[...b.values()];return{apart:Math.max(1,Math.hypot(O.x-T.x,O.y-T.y)),mid:{x:(O.x+T.x)/2,y:(O.y+T.y)/2}}},E=O=>{if(O.pointerType!=="touch"||(O.isPrimary&&(b.clear(),f.pinch=null,c.current=!1),b.set(O.pointerId,{x:O.clientX,y:O.clientY}),b.size!==2))return;let{apart:T,mid:F}=y();f.pinch={from:T,last:T,mid:F},c.current=!0},k=O=>{if(!b.has(O.pointerId))return;b.set(O.pointerId,{x:O.clientX,y:O.clientY});let T=f.pinch;if(!T||b.size!==2)return;let{apart:F,mid:g}=y();if(!(o.current.view.overview??!1))F/T.from<.72&&u(!0,performance.now());else{let L=f.owed??={factor:1,x:T.mid.x,y:T.mid.y,dx:0,dy:0};L.factor*=F/T.last,L.dx+=g.x-T.mid.x,L.dy+=g.y-T.mid.y,f.owing===0&&(f.owing=requestAnimationFrame(h))}T.last=F,T.mid=g},w=O=>{b.delete(O.pointerId)&&(b.size<2&&(f.pinch=null),!(b.size>0)&&(f.owing!==0&&cancelAnimationFrame(f.owing),h(),c.current=!1,d.current()))},x=O=>{O.preventDefault(),o.current.lastScale=1},A=O=>{if(O.preventDefault(),c.current||b.size>1)return;let T=o.current,F=O.scale??1;if(!(T.view.overview??!1)){F<.72&&u(!0,performance.now());return}let g=F/(T.lastScale||1);T.lastScale=F;let M=O;r.current(g,M.clientX,M.clientY)};return a.addEventListener("wheel",m,{passive:!1}),a.addEventListener("gesturestart",x),a.addEventListener("gesturechange",A),a.addEventListener("pointerdown",E),a.addEventListener("pointermove",k),a.addEventListener("pointerup",w),a.addEventListener("pointercancel",w),()=>{f.owing!==0&&(cancelAnimationFrame(f.owing),h()),a.removeEventListener("pointerdown",E),a.removeEventListener("pointermove",k),a.removeEventListener("pointerup",w),a.removeEventListener("pointercancel",w),a.removeEventListener("wheel",m),a.removeEventListener("gesturestart",x),a.removeEventListener("gesturechange",A)}},[n,e]),{zoomAbout:r,panBy:i,pinchBy:s,pinchDone:d,pinching:c}}var ya=ae(Pe(),1),fd=650,md=400,go="[data-graview-view]",wa="button, a, input, select, textarea, [role='button'], aside, section[aria-label], [data-graview-popover], [data-graview-offstage], [data-graview-overlay]";function pd(e,t){if(!(e instanceof Element)||e.closest("[data-graview-pick]"))return!1;let n=e.closest(wa);return n!==null&&n!==t&&t.contains(n)}function ga(e){return e instanceof Element?e.closest(go):null}function gd(e,t,n){let o=null;for(let{id:r,box:i}of e.cards){if(t<i.left||t>i.right||n<i.top||n>i.bottom)continue;let s=i.width*i.height;(!o||s<o.area)&&(o={id:r,area:s})}return o?.id??null}function ba(e,t){(0,ya.useEffect)(()=>{let n=e.current;if(!n)return;let o=null,r=null,i=-1/0,s=!1,d=m=>{let f=o;if(o=null,r=null,!m.isPrimary||m.button!==0||!f||m.timeStamp-f.at>fd)return;let b=ga(m.target)?.getAttribute("data-graview-view")??null,h=gd(f,m.clientX,m.clientY);!(m.pointerType==="touch"&&f.on!==null&&h===f.on&&m.timeStamp-f.at<=md)&&(h===b||pd(m.target,n)||h===null)||(m.stopPropagation(),r={to:h,double:h!==null&&h===f.on})},c=(m,f,b,h)=>{s=!0;try{m.dispatchEvent(new MouseEvent(f,{bubbles:!0,cancelable:!0,clientX:b.clientX,clientY:b.clientY,detail:h?2:1}))}finally{s=!1}},l=m=>{if(s)return;if(r){let{to:h,double:y}=r;r=null,i=m.timeStamp+500,m.stopPropagation(),m.preventDefault();let E=h===null?null:[...n.querySelectorAll(go)].find(k=>k.getAttribute("data-graview-view")===h);h===null?c(n,"click",m,!1):E&&c(E,y?"dblclick":"click",m,y);return}if(t.current)return;let f=m.target instanceof Element?m.target.closest(wa):null;if(f&&f!==n&&n.contains(f)&&!m.target.closest("[data-graview-pick]"))return;let b=ga(m.target)?.getAttribute("data-graview-view")??null;o={at:m.timeStamp,on:b,cards:[...n.querySelectorAll(go)].map(h=>({id:h.getAttribute("data-graview-view"),box:h.getBoundingClientRect()}))}},a=m=>{s||m.timeStamp>i||(m.stopPropagation(),m.preventDefault(),i=-1/0)},u=m=>{r&&m.stopPropagation()};return n.addEventListener("pointerdown",d,!0),n.addEventListener("pointerup",u,!0),n.addEventListener("click",l,!0),n.addEventListener("dblclick",a,!0),()=>{n.removeEventListener("pointerdown",d,!0),n.removeEventListener("pointerup",u,!0),n.removeEventListener("click",l,!0),n.removeEventListener("dblclick",a,!0)}},[e,t])}var xa={directed:"You",autonomous:"An agent","co-edited":"You and an agent",rule:"A rule"};function yo(e,t){let n=new Set(e.map(r=>r.id)),o=new Set;for(let r of t){if(n.has(r)){o.add(r);continue}let i=e.find(s=>s.aggregate?.memberIds.includes(r));i&&o.add(i.id)}return o}function wo(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 bo(e){return e.edgeChosen?.9:e.lit?.78:e.own*(e.anyLit?e.kit.dim:e.kit.rest)}function ht(e,t){if(!e)return null;let n=Math.max(0,Math.min(2,Math.floor(e.plane))),o=Math.max(0,Math.min(2,Math.ceil(e.plane))),{scale:r}=n===o?on(n,t):Zo(on(n,t),on(o,t),e.plane-n);return{x:e.x,y:e.y,width:e.width*r,height:e.height*r}}function mn(e,t){if(typeof getComputedStyle>"u"||getComputedStyle(e).visibility==="hidden")return null;let n=-1/0,o=-1/0,r=1/0,i=1/0,s=e.getBoundingClientRect();n=Math.max(n,s.left),o=Math.max(o,s.top),r=Math.min(r,s.right),i=Math.min(i,s.bottom);let d=e.parentElement;for(;d&&d!==t;){let l=getComputedStyle(d);if(l.overflowX!=="visible"||l.overflowY!=="visible"){let a=d.getBoundingClientRect();l.overflowX!=="visible"&&(n=Math.max(n,a.left),r=Math.min(r,a.right)),l.overflowY!=="visible"&&(o=Math.max(o,a.top),i=Math.min(i,a.bottom))}d=d.parentElement}if(r-n<=2||i-o<=2)return null;let c=t.getBoundingClientRect();return{x:n-c.left,y:o-c.top,width:r-n,height:i-o}}function Ve(e,t,n,o=!1){if(!e||typeof document>"u")return null;let r=e.querySelector(`[data-graview-view="${CSS.escape(t)}"]`);return r?mn(xo(r,n,o),e):null}function xo(e,t=!1,n=!1){return(t?e.querySelector(".graview-kind-block"):null)??e.querySelector('[data-graview-primitive="panel"], .graview-kind-face, .graview-kind-card')??(n?null:e.querySelector(':scope > [data-graview-primitive="chip"]'))??e}function br(e,t,n,o,r){let i=l=>e.nodes.find(a=>a.id===l);if(r.startsWith("screen:")){let l=e.nodes.find(a=>a.id===Re(r.slice(7)));return l?Ve(t,l.id,!0)??ht(l,n):null}let s=i(r),d=He(r);if(!s&&d!==null&&(s=i(Be(d))),!s&&Wt(r)){let[l]=Rt(r);l&&(s=i(Re(l)))}if(!s){let l=o.places().find(a=>a.as===r);l&&(s=i(Be(l.kind))??i(Re(l.kind)))}if(s||(s=[...e.nodes].filter(l=>l.aggregate?.memberIds.includes(r)).sort((l,a)=>l.plane-a.plane)[0]),!s)return null;let c=e.city!==void 0;return Ve(t,s.id,c&&s.aggregate!==void 0&&Math.round(s.plane)===2)??ht(s,n)}var ft=ae(Pe(),1);var Ye=ae(Pe(),1);var ze=ae(Oe(),1);function Ma({title:e,name:t,path:n,maxHeight:o,children:r}){let i=(0,Ye.useContext)(Uo),[s,d]=(0,Ye.useState)(void 0),[c,l]=(0,Ye.useState)(void 0),[a,u]=(0,Ye.useState)(void 0),[m,f]=(0,Ye.useState)(!1),[b,h]=(0,Ye.useState)(!1),y=(0,Ye.useRef)(null),E=(0,Ye.useRef)(null);(0,Ye.useLayoutEffect)(()=>{let M=y.current,L=E.current;if(!M||!L||typeof ResizeObserver>"u")return;let C=()=>{u(M.clientHeight),l(L.offsetHeight||void 0)};C();let V=new ResizeObserver(C);return V.observe(M),V.observe(L),()=>V.disconnect()},[]);let k=Math.max(s??0,c??0)||void 0,w=!m&&k!==void 0&&a!==void 0&&k>a+1,x=i&&n?n:void 0,A=x&&i?.href?i.href(x):void 0,O=M=>M.stopPropagation(),T=M=>{O(M),!(A&&(M.metaKey||M.ctrlKey||M.shiftKey||M.button!==0))&&(M.preventDefault(),x&&i?.open(x))},F=A?{href:A}:{role:"link",tabIndex:0},g={onPointerDown:O,onDoubleClick:O,onKeyDown:M=>{M.key!=="Enter"&&M.key!==" "||(O(M),M.key==="Enter"&&M.currentTarget.tagName==="A"&&!M.currentTarget.hasAttribute("href")&&(M.preventDefault(),M.currentTarget.click()))}};return(0,ze.jsxs)("section",{"data-graview-preview":t,"aria-label":e,...m?{"data-graview-expanded":"","data-graview-overlay":""}:{},onKeyDown:m?M=>{M.key==="Escape"&&(M.stopPropagation(),f(!1))}:void 0,style:{...yd,...m?wd:{}},children:[(0,ze.jsxs)("div",{style:bd,children:[(0,ze.jsx)("strong",{style:xd,children:e}),x?(0,ze.jsx)("a",{"data-graview-preview-open":"",...F,"aria-label":`Open ${e}`,style:va,...g,onClick:T,children:"Open"}):w||m?(0,ze.jsx)("button",{type:"button","data-graview-preview-expand":"","aria-expanded":m,"aria-label":`${m?"Collapse":"Expand"} ${e}`,style:{...va,...ka},...g,onClick:M=>{O(M),f(L=>!L)},children:m?"Collapse":"Expand"}):null]}),(0,ze.jsxs)("div",{ref:y,"data-graview-preview-body":"",...s!==void 0?{"data-graview-content-height":s}:{},...w?{"data-graview-more":""}:{},onFocus:()=>h(!0),onBlur:()=>h(!1),style:{...vd,...o!==void 0&&!m?{maxHeight:o}:{},...b?{overflowClipMargin:4}:{}},children:[(0,ze.jsx)("div",{ref:E,"data-graview-preview-drawn":"",style:kd,children:(0,ze.jsx)(Ko.Provider,{value:d,children:r})}),w?(0,ze.jsx)("div",{"aria-hidden":"true","data-graview-preview-fade":"",style:Sd}):null,w?x?(0,ze.jsx)("a",{"data-graview-preview-more":"",...F,"aria-label":`More of ${e}`,style:Sa,...g,onClick:T,children:"More"}):(0,ze.jsx)("button",{type:"button","data-graview-preview-more":"","aria-label":`More of ${e}`,style:{...Sa,...ka},...g,onClick:M=>{O(M),f(!0)},children:"More"}):null]})]})}var yd={display:"flex",flexDirection:"column",gap:"var(--graview-gap, 7px)",width:"100%",maxHeight:"100%",minHeight:0,padding:"var(--graview-pad, 15px)",boxSizing:"border-box",borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge, #e4e0d8)",boxShadow:"var(--graview-lift-low)",background:"var(--graview-panel, #ffffff)",color:"var(--graview-ink, #1a1a1a)",overflow:"hidden"},wd={maxHeight:"none",position:"absolute",top:0,left:0,right:0,width:"auto"},bd={display:"flex",alignItems:"baseline",flexWrap:"wrap",gap:8,minWidth:0,flex:"0 0 auto"},xd={fontFamily:"var(--graview-font-display, inherit)",fontSize:"0.9375rem",lineHeight:1.25,fontWeight:560,letterSpacing:"0.005em",minWidth:0,overflowWrap:"anywhere"},va={marginLeft:"auto",fontSize:"0.8125rem",fontWeight:560,color:"var(--graview-accent, #2f6f5e)",textDecoration:"none",textUnderlineOffset:"0.2em"},ka={font:"inherit",fontSize:"0.8125rem",fontWeight:560,background:"none",border:0,padding:0,cursor:"pointer"},vd={position:"relative",flex:"0 1 auto",minHeight:0,overflowX:"visible",overflowY:"clip",minWidth:0},kd={display:"flow-root",minWidth:0},Sd={position:"absolute",left:0,right:0,bottom:0,height:64,pointerEvents:"none",background:"linear-gradient(to bottom, transparent, var(--graview-panel, #ffffff) 66%)"},Sa={position:"absolute",right:0,bottom:0,lineHeight:1.5,fontSize:"0.8125rem",fontWeight:560,color:"var(--graview-accent, #2f6f5e)",textDecoration:"none",textUnderlineOffset:"0.2em"};var me=ae(Oe(),1),Ra=(0,ft.memo)(function({kinds:t}){let{store:n}=xe(),{view:o,go:r}=Vr(),i=(0,ft.useRef)(null),s=zr("districts",{align:"start"}),d=s.open,c=f=>Jn(n.schema,f),l=f=>n.graph.allNodes().filter(b=>b.kind===f).length,a=f=>!o.overview&&o.focusId===Be(f),u=t.filter(f=>!a(f)),m=f=>{s.setOpen(!1);let b=i.current?.querySelector(".graview-beyond-more")??null;a(f)||r(Et(o,Be(f))),b?.focus({preventScroll:!0});let h=`[data-graview-view="${Be(f)}"][tabindex], [data-graview-view="${Re(f)}"][tabindex]`,y=40,E=()=>{let k=document.querySelector(h);k?k.focus({preventScroll:!0}):--y>0&&requestAnimationFrame(E)};requestAnimationFrame(E)};return(0,me.jsxs)("div",{ref:i,className:"graview-beyond","data-graview-beyond":t.length,"data-graview-beyond-open":d?"":void 0,children:[(0,me.jsxs)("button",{type:"button",className:"graview-beyond-more","data-testid":"beyond-more",...s.trigger,"aria-haspopup":"menu",title:`${u.length} more district${u.length===1?"":"s"} \u2014 press to see them`,onPointerDown:f=>f.stopPropagation(),onClick:f=>{f.stopPropagation(),s.toggle()},children:[(0,me.jsx)("span",{className:"graview-beyond-count",children:u.length})," ",(0,me.jsxs)("span",{className:"graview-beyond-word",children:["more district",u.length===1?"":"s"]}),(0,me.jsx)("span",{className:"graview-beyond-chevron","aria-hidden":"true",children:d?"\u25BE":"\u25B4"})]}),d?(0,me.jsx)("ul",{...s.pane,className:"graview-beyond-list",role:"menu","aria-label":"The other districts","data-testid":"beyond-list",style:Gr,onPointerDown:f=>f.stopPropagation(),children:t.map(f=>(0,me.jsx)("li",{role:"none",children:(0,me.jsxs)("button",{type:"button",role:"menuitem","data-graview-pick":Re(f),"aria-current":a(f)?"location":void 0,title:a(f)?`${c(f)} \u2014 where you are`:`Go to ${c(f)}`,onPointerDown:b=>b.stopPropagation(),onClick:b=>{b.stopPropagation(),m(f)},children:[(0,me.jsx)("span",{className:"graview-beyond-name",children:c(f)}),(0,me.jsx)("span",{className:"graview-beyond-tally",children:a(f)?"here":l(f)})]})},f))}):null]})},(e,t)=>e.kinds.length===t.kinds.length&&e.kinds.every((n,o)=>n===t.kinds[o]));function Oa(e,t){if(e===t)return!0;let n=Object.keys(e);return n.length!==Object.keys(t).length?!1:n.every(o=>o==="x"||o==="y"||ko(e[o],t[o]))}function ko(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 r=t;if(e.length!==r.length)return!1;for(let i=0;i<e.length;i++)if(!ko(e[i],r[i]))return!1;return!0}let o=Object.keys(e);return o.length!==Object.keys(t).length?!1:o.every(r=>ko(e[r],t[r]))}var Aa=(0,ft.memo)(Pa,(e,t)=>e.mode===t.mode&&e.selected===t.selected&&e.fidelity===t.fidelity&&Oa(e.node,t.node));function Pa({node:e,mode:t,selected:n,fidelity:o}){let{store:r,views:i,view:s}=xe(),d=Vt(),c=mi(),l=fi(),a=e.aggregate||Wt(e.id)||He(e.id)!==null?"many":"one",u={cardinality:a,fidelity:o??Qo[Ed(e.plane)].fidelity},m=a==="many"&&e.id===s.focusId?s.within?.view:void 0,f=i.resolve(e.kind,u,m),b=f?.view,h=i.resolve(e.kind,{cardinality:"many",fidelity:"full"})?.view,y=h!==void 0&&h.generic!==!0,E=e.aggregate?.memberIds,k=(0,ft.useMemo)(()=>(E??[]).map(F=>r.graph.getNode(F)).filter(F=>F!==void 0),[E,r,d]),w={...e.aggregate?{nodes:k,label:f?.title??e.aggregate.label}:{node:r.graph.getNode(e.id)},fidelity:u.fidelity,cardinality:u.cardinality,mode:t,selected:n,implicated:c,flagged:l,...e.raised?{raised:!0}:{},...e.focused?{focused:!0}:{},...e.opened?{opened:!0}:{},...e.openedRows!==void 0?{openedRows:e.openedRows}:{},...e.plot?{plot:e.plot}:{},...e.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}:{},...y?{hasOwnView:!0}:{}};if(!b)return(0,me.jsx)(Rd,{node:e,props:w});let x=qo(b),A=!e.aggregate&&w.node?w.node:void 0,O=x?A?{title:en(r.schema.tryDefinition(A.kind),A),name:A.id,path:Wo(r.schema,A.kind,A.id)}:{title:w.label??e.kind,name:f?.title?Cr(f.title):"",path:f?.title?`/places/${Cr(f.title)}`:void 0}:void 0,T=[e.id,f?.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(F=>F.count).join(","):"",e.aggregate?vo(e.aggregate.memberIds):"",e.aggregate?.retired??"",c?vo(c):"",l?vo(l):"",y].join("|");return(0,me.jsx)(Fr,{mode:t,children:(0,me.jsx)(gi,{kind:w.label??e.kind,...f?.title?{view:f.title}:{},children:(0,me.jsx)(Md,{signature:T,graph:d,draw:()=>x&&O?(0,me.jsx)(Ma,{...O,maxHeight:x.maxHeight,children:(0,me.jsx)(b,{...w})}):(0,me.jsx)(b,{...w})})},`${e.id}|${f?.title??""}`)})}var Md=(0,ft.memo)(function({draw:t}){return(0,me.jsx)(me.Fragment,{children:t()})},(e,t)=>e.signature===t.signature&&e.graph===t.graph);function Ed(e){return Math.max(0,Math.min(2,Math.round(e)))}function Rd({node:e,props:t}){return(0,me.jsxs)("div",{style:{padding:8,font:"13px/1.4 system-ui",overflow:"hidden"},children:[(0,me.jsx)("strong",{children:t.label??e.kind}),t.nodes?(0,me.jsxs)("div",{children:[t.nodes.length," items"]}):(0,me.jsx)("div",{children:e.id})]})}var La=(0,ft.memo)(function({node:t}){let{store:n}=xe(),o=jt(),r=t.aggregate,i=r.opens,s=r.memberIds.length,d=tn(n.schema,r.kind,s),c=r.memberIds.slice(0,3).map(m=>{let f=n.graph.getNode(m),b=f?n.schema.tryDefinition(f.kind):void 0;return f?b?.label?b.label(f):String(f.label??m):m}),l=r.memberIds,a=(0,ft.useMemo)(()=>{let m=o?or(o):null;return m?l.filter(f=>m.has(f)).length:0},[o,l]),u=i.in==="picture";return(0,me.jsxs)("div",{className:"graview-band-group","data-graview-band":i.in,"data-graview-band-count":s,"data-graview-emphasis":o?a>0?"lit":"dimmed":void 0,title:u?`${r.label} \u2014 press twice to see them all, arranged`:`${r.label}: ${d} \u2014 press twice to open`,children:[(0,me.jsxs)("span",{className:"graview-band-group-head",children:[(0,me.jsx)("span",{className:"graview-band-group-name",children:r.label}),(0,me.jsx)("span",{className:"graview-band-group-open","aria-hidden":"true",children:u?"\u2197":"\u25BE"})]}),(0,me.jsxs)("span",{className:"graview-band-group-names",children:[u?null:(0,me.jsxs)("span",{className:"graview-band-group-count",children:[d,a>0?` \xB7 ${a} match`:""," \xB7 "]}),c.join(" \xB7 "),s>c.length?" \u2026":""]})]})},(e,t)=>Oa(e.node,t.node)),Ea=new WeakMap;function vo(e){let t=Ea.get(e);if(t!==void 0)return t;let n=2166136261;for(let r of e){for(let i=0;i<r.length;i++)n=Math.imul(n^r.charCodeAt(i),16777619);n=Math.imul(n^44,16777619)}let o=`${e.length}:${(n>>>0).toString(36)}`;return Ea.set(e,o),o}var mt=ae(Pe(),1);function So(e,t,n){let o=e.aggregate?[...e.aggregate.memberIds]:[e.id];return n?o.every(i=>t.includes(i))?t.filter(i=>!o.includes(i)):[...t,...o.filter(i=>!t.includes(i))]:o}function Ca(){let[e,t]=(0,mt.useState)(16);return(0,mt.useEffect)(()=>{if(typeof window>"u")return;let n=document.documentElement,o=()=>{let i=parseFloat(getComputedStyle(n).fontSize);Number.isFinite(i)&&t(s=>Math.abs(s-i)<.5?s:i)};o();let r=new MutationObserver(o);return r.observe(n,{attributes:!0,attributeFilter:["style"]}),window.addEventListener("resize",o),()=>{r.disconnect(),window.removeEventListener("resize",o)}},[]),e}function Ta(e){let[t,n]=(0,mt.useState)(null);return(0,mt.useLayoutEffect)(()=>{let o=e.current?.getBoundingClientRect();!o||o.width===0||o.height===0||n(r=>r??{width:Math.round(o.width),height:Math.round(o.height)})},[e]),(0,mt.useEffect)(()=>{let o=e.current;if(!o||typeof ResizeObserver>"u")return;let r=d=>{!d||d.width===0||d.height===0||n(c=>{let l={width:Math.round(d.width),height:Math.round(d.height)};return c&&c.width===l.width&&c.height===l.height?c:l})},i=new ResizeObserver(d=>r(d[0]?.contentRect)),s=()=>r(o.getBoundingClientRect());return i.observe(o),addEventListener("resize",s),()=>{i.disconnect(),removeEventListener("resize",s)}},[e]),t}var Od=120;function Ia(e){let t=(0,mt.useRef)(null);if(e===null)return t.current?.size??null;let n=t.current,o=typeof innerHeight=="number"?innerHeight:0;if(n&&n.size.width===e.width&&n.size.height===e.height)return n.size;let r=n?e.height-n.size.height:0,i=typeof navigator<"u"&&(navigator.maxTouchPoints>0||typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches);return n&&i&&e.width===n.size.width&&r>0&&r<=Od&&Math.abs(o-n.screen-r)<=1?n.size:(t.current={size:e,screen:o},e)}function Mo(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)})`,o=`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}, ${o}`}function Na(e){return`matrix3d(${e.join(",")})`}var pe=ae(Pe(),1);var Eo=(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 Ro(e,t){let n=[],o=[];for(let i=0;i<e.length-1;i++){let s=e[i],d=e[i+1],c=!Eo(s,t);c&&o.length===0&&o.push(s);for(let l=1;l<=48;l++){let a=l/48,u={x:s.x+(d.x-s.x)*a,y:s.y+(d.y-s.y)*a},m=!Eo(u,t);if(m===c)continue;let f=(l-1)/48,b=a;for(let E=0;E<10;E++){let k=(f+b)/2,w={x:s.x+(d.x-s.x)*k,y:s.y+(d.y-s.y)*k};!Eo(w,t)===c?f=k:b=k}let h=(f+b)/2,y={x:s.x+(d.x-s.x)*h,y:s.y+(d.y-s.y)*h};m?o=[y]:(o.push(y),o.length>=2&&n.push(o),o=[]),c=m}c&&o.push(d)}return o.length>=2&&n.push(o),n}function Wn(e,t){let n=Math.abs(t.x-e.x);if(Math.abs(t.y-e.y)>n){if(n<2)return[e,t];let i=(e.y+t.y)/2;return[e,{x:e.x,y:i},{x:t.x,y:i},t]}let r=(e.x+t.x)/2;return Math.abs(t.x-e.x)<2?[e,t]:[e,{x:r,y:e.y},{x:r,y:t.y},t]}var Qe=e=>Math.round(e*100)/100,Ct=e=>e.map(t=>t.map((n,o)=>`${o===0?"M":"L"} ${Qe(n.x)} ${Qe(n.y)}`).join(" ")).join(" ");function Oo(e,t){if(e.length<3)return Ct([e]);let n=[`M ${Qe(e[0].x)} ${Qe(e[0].y)}`];for(let r=1;r<e.length-1;r++){let i=e[r-1],s=e[r],d=e[r+1],c=Math.hypot(s.x-i.x,s.y-i.y),l=Math.hypot(d.x-s.x,d.y-s.y),a=Math.min(t,c/2,l/2),u={x:s.x+(i.x-s.x)/(c||1)*a,y:s.y+(i.y-s.y)/(c||1)*a},m={x:s.x+(d.x-s.x)/(l||1)*a,y:s.y+(d.y-s.y)/(l||1)*a};n.push(`L ${Qe(u.x)} ${Qe(u.y)} Q ${Qe(s.x)} ${Qe(s.y)} ${Qe(m.x)} ${Qe(m.y)}`)}let o=e[e.length-1];return n.push(`L ${Qe(o.x)} ${Qe(o.y)}`),n.join(" ")}function Ha(e,t){return t==="orthogonal"?Ct([e]):Oo(e,10)}function Ba(e,t,n){if(e==="orthogonal"){let d=Wn(t.p0,t.p1),c=d.slice(1).map((u,m)=>Math.hypot(u.x-d[m].x,u.y-d[m].y)),l=c.reduce((u,m)=>u+m,0)||1,a=n*l;for(let u=0;u<c.length;u++){let m=c[u];if(a<=m||u===c.length-1){let f=m===0?0:Math.min(1,a/m),b=d[u],h=d[u+1];return{x:b.x+(h.x-b.x)*f,y:b.y+(h.y-b.y)*f}}a-=m}return t.p1}let o=e==="straight"?{x:(t.p0.x+t.p1.x)/2,y:(t.p0.y+t.p1.y)/2}:t.c,r=(1-n)*(1-n),i=2*(1-n)*n,s=n*n;return{x:r*t.p0.x+i*o.x+s*t.p1.x,y:r*t.p0.y+i*o.y+s*t.p1.y}}function xr(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 Da(e,t){let n=t.x-e.x,o=t.y-e.y,r=(n/2+o)/2,i=(o-n/2)/2;if(Math.abs(r)<1||Math.abs(i)<1)return[e,t];let s={x:e.x+2*r,y:e.y+r};return[e,s,t]}function $a(e){let t=[...e].sort((o,r)=>o.y-r.y||o.x-r.x),n=[];for(let o of t){let r=n.find(i=>o.y<i.bottom+3&&o.y+o.height>i.top-3);r?(r.boxes.push(o),r.top=Math.min(r.top,o.y),r.bottom=Math.max(r.bottom,o.y+o.height)):n.push({top:o.y,bottom:o.y+o.height,boxes:[o]})}for(let o of n)o.boxes.sort((r,i)=>r.x-i.x);return n.sort((o,r)=>o.top-r.top)}var jn=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Po=(e,t)=>e.findIndex(n=>n.boxes.some(o=>jn(o,t)));function Fa(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 Co(e,t){let n=[{from:-1/0,to:1/0}];for(let i of e){let s=[],d=-1/0;for(let l of i.boxes)s.push({from:d,to:l.x-12}),d=Math.max(d,l.x+l.width+12);s.push({from:d,to:1/0});let c=[];for(let l of n)for(let a of s){let u=Math.max(l.from,a.from),m=Math.min(l.to,a.to);m-u>=0&&c.push({from:u,to:m})}n=c}let o=t,r=1/0;for(let i of n){let s=Math.min(Math.max(t,i.from),i.to),d=i.from===-1/0||i.to===1/0,c=Math.abs(s-t)+(d?60:0);c<r&&(r=c,o=s)}return o}var ot=e=>({x:e.x,y:-(e.y+e.height),width:e.width,height:e.height}),vr=e=>e.map(t=>({x:t.x,y:-t.y}));function Lo(e){let t=(o,r)=>Math.abs(o-r)<.5,n=e.filter((o,r)=>r===0||!(t(o.x,e[r-1].x)&&t(o.y,e[r-1].y)));return n.filter((o,r)=>{let i=n[r-1],s=n[r+1];return!i||!s||!(t(i.x,o.x)&&t(o.x,s.x)||t(i.y,o.y)&&t(o.y,s.y))})}function To(e,t,n){let o=e.boxes.filter(l=>!jn(l,t)&&l.y+l.height<=t.y+1&&l.x<t.x+t.width&&l.x+l.width>t.x),r=[{from:t.x+6,to:t.x+t.width-6}];for(let l of o)r=r.flatMap(a=>[{from:a.from,to:Math.min(a.to,l.x-12/2)},{from:Math.max(a.from,l.x+l.width+12/2),to:a.to}]).filter(a=>a.to>=a.from);let i=null;for(let l of r){let a=Math.min(Math.max(n,l.from),l.to);(i===null||Math.abs(a-n)<Math.abs(i-n))&&(i=a)}if(i!==null)return{x:i,tail:[{x:i,y:t.y}]};let s=n<t.x+t.width/2,d=Co([e],s?t.x-12:t.x+t.width+12),c=t.y+t.height/2;return{x:d,tail:[{x:d,y:c},{x:d<t.x?t.x:t.x+t.width,y:c}]}}function Ao(e,t,n){let o=To({top:-e.bottom,bottom:-e.top,boxes:e.boxes.map(ot)},ot(t),n);return{x:o.x,head:vr(o.tail).reverse()}}function Wa(e,t,n,o){let r=t;for(;r>o&&!e[r-1].boxes.some(i=>n>i.x-12/2&&n<i.x+i.width+12/2);)r--;return r}var ja=(e,t)=>(e%3-1)*Math.max(0,Math.min(4,t/2-3));function Va(e,t,n,o,r,i,s,d){let c=h=>h<0?e[0].top-n:e[h+1].top-e[h].bottom,l=h=>(h<0?(n+e[0].top)/2:Fa(e,h,h+1))+ja(d,c(h)),a=To(e[i],r,s),u=Wa(e,i,a.x,t+1),m=l(t);if(u===t+1)return Lo([...o.head,{x:o.x,y:m},{x:a.x,y:m},...a.tail]);let f=Co(e.slice(t+1,u),a.x),b=l(u-1);return Lo([...o.head,{x:o.x,y:m},{x:f,y:m},{x:f,y:b},{x:a.x,y:b},...a.tail])}function pn(e,t,n,o=0){let r=$a(n.some(a=>jn(a,e))&&n.some(a=>jn(a,t))?n:[...n,e,t]),i=Po(r,e),s=Po(r,t),d=e.x+e.width/2,c=t.x+t.width/2;if(i===s){if(!(i<r.length-1||r.length===1))return vr(pn(ot(e),ot(t),n.map(ot),o));let u=Fa(r,i,i+1)+ja(o,i<r.length-1?r[i+1].top-r[i].bottom:2*12),m=Ao(r[i],e,c),f=Ao(r[i],t,d);return Lo([...m.head,{x:m.x,y:u},{x:f.x,y:u},...[...f.head].reverse()])}if(s<i)return vr(pn(ot(e),ot(t),n.map(ot),o));let l=Ao(r[i],e,c);return Va(r,i,r[i].bottom,l,t,s,d,o)}function Io(e,t,n,o=0){if(t.y+t.height<=e.y){let f=Io(ot(e),ot(t),n.map(ot),o);return f?vr(f):null}let r=e.y+e.height;if(t.y<r)return null;let i=$a([...n.filter(f=>f.y>=r&&!jn(f,t)),t]),s=Po(i,t),d=t.x+t.width/2,c=To(i[s],t,d),l=Wa(i,s,c.x,0),a=l===0?c.x:Co(i.slice(0,l),c.x),u=Math.min(12,e.width/2),m=Math.min(Math.max(a,e.x+u),e.x+e.width-u);return Va(i,-1,r,{x:m,head:[{x:m,y:r}]},t,s,d,o)}function Ga(e,t=16){let n=new Map;for(let r of e){let i=r.a<r.b?`${r.a}\0${r.b}`:`${r.b}\0${r.a}`,s=n.get(i);s?s.push(r.key):n.set(i,[r.key])}let o=new Map;for(let r of n.values())r.forEach((i,s)=>o.set(i,(s-(r.length-1)/2)*t));return o}var _e=ae(Oe(),1);function Ho(e,t,n,o){let r=[];for(let i of e.querySelectorAll("[data-graview-relation] > span")){let s=i.getBoundingClientRect();if(s.width<=0||s.height<=0)continue;let d=s.top-t.top,c=i.parentElement?.getAttribute("data-graview-relation"),l=1/0;for(let a of n){if(Math.round(a.plane)!==1||!a.via||`${a.via.edgeKind}|${a.via.direction}`!==c)continue;let u=o(a.id);u&&u.y>=d+s.height-1&&(l=Math.min(l,u.y))}r.push({x:s.left-t.left,y:d,width:s.width,height:l-d<=s.height*4?l-d:s.height})}return r}function Sr(e,t){let n=Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x),o=Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y);if(n>0&&o>0)return null;let r=n>.5*Math.min(e.width,t.width),i=!r&&o>.5*Math.min(e.height,t.height);if(r){let b={x:e.x+e.width,y:e.y+e.height/2},h={x:t.x+t.width,y:t.y+t.height/2};return{from:b,to:h,control:{x:Math.max(b.x,h.x)+18,y:(b.y+h.y)/2},mode:"stacked"}}if(i){let b={x:e.x+e.width/2,y:e.y},h={x:t.x+t.width/2,y:t.y};return{from:b,to:h,control:{x:(b.x+h.x)/2,y:Math.min(b.y,h.y)-18},mode:"abreast"}}let s={x:t.x+t.width/2,y:t.y+t.height/2},d={x:e.x+e.width/2,y:e.y+e.height/2},c=kr(e,s),l=kr(t,d),a=Math.hypot(l.x-c.x,l.y-c.y);if(a<8)return null;let u=Math.min(36,a*.12),m=-(l.y-c.y)/a,f=(l.x-c.x)/a;return{from:c,to:l,control:{x:(c.x+l.x)/2+m*u,y:(c.y+l.y)/2+f*u},mode:"direct"}}function kr(e,t){let n=e.x+e.width/2,o=e.y+e.height/2,r=t.x-n,i=t.y-o;if(r===0&&i===0)return{x:n,y:o};let s=r===0?1/0:e.width/2/Math.abs(r),d=i===0?1/0:e.height/2/Math.abs(i),c=Math.min(s,d),l=Math.max(0,c*.98);return{x:n+r*l,y:o+i*l}}function Ad(e,t,n){let o=t.get(e.from),r=t.get(e.to);if(!o||!r)return!1;if(n)return!0;let i=Math.round(o.plane)===1||Math.round(r.plane)===1,s=d=>!!d.aggregate&&Math.round(d.plane)===2;return i&&!s(o)&&!s(r)}var Ya=e=>({clips:new Map,members:new Map,marks:new Map,...e?{owed:e}:{}});function _a(e,t){let n=Ya();for(let[o,r]of t){let i=e.querySelector(`[data-graview-view="${CSS.escape(o)}"]`);if(i!==null){for(let s of r)if(gn(e,i,s,n).length>0)return!0}}return!1}function Ka(e,t){let n=t.marks.get(e);if(n)return n;n=new Map;for(let o of e.querySelectorAll("[data-graview-pick], [data-graview-slot]"))for(let r of new Set([o.getAttribute("data-graview-pick"),o.getAttribute("data-graview-slot")])){if(r===null)continue;let i=n.get(r);i?i.push(o):n.set(r,[o])}return t.marks.set(e,n),n}function Pd(e,t){let n=t.clips.get(e);if(n===void 0){let o=getComputedStyle(e);n=o.overflow!=="visible"||o.overflowX!=="visible"||o.overflowY!=="visible"?e.getBoundingClientRect():null,t.clips.set(e,n)}return n}function Ld(e,t,n){let o=e.parentElement;for(;o!==null;){let r=Pd(o,n);if(r&&!(t.right>r.left+1&&t.left<r.right-1&&t.bottom>r.top+1&&t.top<r.bottom-1))return!1;if(o.hasAttribute("data-graview-view"))break;o=o.parentElement}return!0}function gn(e,t,n,o){if(!e||!t||typeof document>"u")return[];let r=o.members.get(t);r||o.members.set(t,r=new Map);let i=r.get(n);if(i)return i;let s=e.getBoundingClientRect(),d=[];for(let l of Ka(t,o).get(n)??[]){if(l.closest("[data-graview-offstage]"))continue;let a=l.getBoundingClientRect();a.width<=2||a.height<=2||Ld(l,a,o)&&d.push({x:a.left-s.left,y:a.top-s.top,width:a.width,height:a.height})}d.sort((l,a)=>l.width*l.height-a.width*a.height),r.set(n,d);let c=t.getAttribute("data-graview-view");return d.length===0&&o.owed&&c!==null&&o.owed.set(c,(o.owed.get(c)??new Set).add(n)),d}function Mr(e,t,n,o,r,i){let s=new Map(e.map(w=>[w.id,w])),d=Ya(i),c=new Map,l=w=>{if(!n||typeof document>"u")return null;let x=c.get(w);return x===void 0&&(x=n.querySelector(`[data-graview-view="${CSS.escape(w)}"]`),c.set(w,x)),x},a=new Map;for(let w of e){let x=Ve(n,w.id,o)??ht(w,r);x&&a.set(w.id,x)}let u=new Map;if(n&&typeof document<"u"){let w=n.getBoundingClientRect();for(let x of n.querySelectorAll("[data-graview-pick], [data-graview-slot]")){if(x.closest("[data-graview-offstage]"))continue;let A=x.getAttribute("data-graview-pick")??x.getAttribute("data-graview-slot");if(A===null)continue;let O=x.getBoundingClientRect();if(O.width<=2||O.height<=2||O.width>w.width*.6&&O.height>w.height*.6)continue;let T=u.get(A),F={x:O.left-w.left,y:O.top-w.top,width:O.width,height:O.height};T?T.push(F):u.set(A,[F])}}let m=(w,x)=>{let A=[];for(let[O,T]of a)O!==w&&O!==x&&A.push(T);for(let[O,T]of u)O!==w&&O!==x&&A.push(...T);return A},f=w=>Math.round(s.get(w)?.plane??-1)===1,b=[];for(let w of e){let x=a.get(w.id);x&&Math.round(w.plane)===1&&b.push(x)}if(!o&&n&&typeof document<"u"){let w=n.getBoundingClientRect();b.push(...Ho(n,w,e,x=>a.get(x)))}let h=(w,x)=>!o&&f(w)&&f(x)?b:void 0,y=o?void 0:e.find(w=>Math.round(w.plane)===0&&!w.aggregate),E=(w,x,A,O)=>{if(!y)return{};let T=w.to===y.id&&A===y.id;if(!T&&!(w.from===y.id&&x===y.id))return{};let F=T?w.from:w.to,g=a.get(y.id),M=a.get(F);if(F===y.id||!f(F)||!g||!M)return{};let L=l(y.id),C=ie=>L!==null&&Ka(L,d).get(ie)?.some(I=>!I.closest("[data-graview-offstage]"))===!0,V=O.map(ie=>ie.from===y.id?ie.to:ie.from),X=V.length>0&&V.every(C);return{band:b,tie:{card:g,chip:M,cardIsTo:T,toward:F,holds:s.get(F)?.aggregate?.memberIds??[F]},...X?{said:V}:{}}},k=[];for(let w of t){if(!Ad(w,s,o))continue;let x=a.get(w.from),A=a.get(w.to);if(!x||!A)continue;let O=m(w.from,w.to),T=w.edges,F=o&&T.some(L=>L.from!==w.from&&gn(n,l(w.from),L.from,d).length>0||L.to!==w.to&&gn(n,l(w.to),L.to,d).length>0),g=h(w.from,w.to);if(o&&!F||w.loop||T.length===0){k.push({key:w.id,connector:w,edges:T,fromBox:x,toBox:A,fromAnchor:w.from,toAnchor:w.to,obstacles:O,hosts:[],...g?{band:g}:{},...E(w,w.from,w.to,T)});continue}let M=new Map;for(let L of T){let C=L.from===w.from?[]:gn(n,l(w.from),L.from,d),V=L.to===w.to?[]:gn(n,l(w.to),L.to,d),X=[w.from,w.to].find(R=>Math.round(s.get(R)?.plane??-1)===0);if(!o&&X!==void 0&&(X===w.from?L.from!==w.from:L.to!==w.to)&&gn(n,l(X),X===w.from?L.to:L.from,d).length>0)continue;let ie=X!==void 0?s.get(X):void 0;if(!o&&ie?.aggregate&&n&&(X===w.from?L.from!==w.from&&C.length===0:L.to!==w.to&&V.length===0))continue;let I=C.length>0?L.from:w.from,$=V.length>0?L.to:w.to,N=`${w.id}|${I}|${$}`,q=M.get(N);if(q){q.edges.push(L);continue}let P=C.length>0?C:[x],j=V.length>0?V:[A],z=P[0],re=j[0],v=1/0;for(let R of P)for(let S of j){let B=Math.hypot(R.x+R.width/2-(S.x+S.width/2),R.y+R.height/2-(S.y+S.height/2));B<v&&(v=B,z=R,re=S)}M.set(N,{edges:[L],fromBox:z,toBox:re,fromAnchor:I,toAnchor:$})}for(let[L,C]of M)k.push({key:L,connector:w,obstacles:O,hosts:[...C.fromAnchor!==w.from?[x]:[],...C.toAnchor!==w.to?[A]:[]],...g?{band:g}:{},...C,...E(w,C.fromAnchor,C.toAnchor,C.edges)})}return k}function Ua(e,t,n){let o=new Map(t.map(s=>[s.id,s])),r=new Map;for(let s of n){let d=o.get(s.id);d&&(d.x!==s.x||d.y!==s.y)&&r.set(s.id,{x:s.x-d.x,y:s.y-d.y})}if(r.size===0)return[...e];let i=(s,d)=>{let c=r.get(d);return c?{...s,x:s.x+c.x,y:s.y+c.y}:s};return e.map(s=>{let{from:d,to:c}=s.connector;if(!r.has(d)&&!r.has(c))return s;let l=i(s.fromBox,d),a=i(s.toBox,c),u=s.tie&&{...s.tie,card:i(s.tie.card,s.tie.cardIsTo?c:d),chip:i(s.tie.chip,s.tie.toward)},m=f=>f===s.fromBox?l:f===s.toBox?a:s.tie&&f===s.tie.chip?u.chip:f;return{...s,fromBox:l,toBox:a,...u?{tie:u}:{},...s.band?{band:s.band.map(m)}:{}}})}function No(e,t){let n=(1-t)*(1-t),o=2*(1-t)*t,r=t*t;return{x:n*e.p0.x+o*e.c.x+r*e.p1.x,y:n*e.p0.y+o*e.c.y+r*e.p1.y}}function za(e,t,n){let o=(1-t)*(1-n),r=(1-t)*n+t*(1-n),i=t*n;return{p0:No(e,t),c:{x:o*e.p0.x+r*e.c.x+i*e.p1.x,y:o*e.p0.y+r*e.c.y+i*e.p1.y},p1:No(e,n)}}function Vn(e,t){let n=l=>t.some(a=>l.x>a.x&&l.x<a.x+a.width&&l.y>a.y&&l.y<a.y+a.height),o=l=>!n(No(e,l)),i=(l,a,u)=>{for(let m=0;m<10;m++){let f=(l+a)/2;o(f)===u?l=f:a=f}return(l+a)/2},s=[],d=null,c=o(0);c&&(d=0);for(let l=1;l<=64;l++){let a=l/64,u=o(a);if(u===c)continue;let m=i((l-1)/64,a,c);u?d=m:d!==null&&(m-d>.001&&s.push(za(e,d,m)),d=null),c=u}return d!==null&&1-d>.001&&s.push(za(e,d,1)),s}function Xa({strands:e,result:t,scheme:n,overview:o,selection:r,emphasis:i,stageRef:s,liveOf:d,onPickEdge:c,provisional:l,pointed:a=null}){let u=zt(),m=new Set(t.nodes.filter(g=>g.plot!==void 0&&Math.round(g.plane)===2).map(g=>g.id)),f=g=>o&&t.city!==void 0&&m.has(g.from)&&m.has(g.to),b=yo(t.nodes,r),h=g=>b.size===0||b.has(g.from)||b.has(g.to),y=new Set(r.filter(g=>Ft(g)===null)),E=o?t.nodes.find(g=>Math.round(g.plane)===0):void 0,k=E?Ve(s.current,E.id,!1)??ht(E,n):null;if(e.length===0)return null;let w=g=>g.edges.some(M=>y.has(M.from)||y.has(M.to)),x=y.size>0&&e.some(w),A=new Map;for(let g of e)A.set(g.connector.id,(A.get(g.connector.id)??0)+1);let O=Ga(e.map(g=>({key:g.key,a:g.fromAnchor,b:g.toAnchor}))),T=new Set,F=e.map((g,M)=>{let{connector:L,fromBox:C,toBox:V}=g,X={x:C.x+C.width/2,y:C.y+C.height/2},ie={x:V.x+V.width/2,y:V.y+V.height/2},I=o?kr(C,ie):X,$=o?kr(V,X):ie,N=L.loop===!0,{connector:q,style:P}=ln(u,L.kind);if(!q.visible)return null;let j=N?Math.max(22,Math.min(C.width,C.height)*.3):0,z=N?{x:X.x+C.width*.22,y:X.y-C.height/2-j+7}:I,re=(I.x+$.x)/2,v=(I.y+$.y)/2,R=Math.hypot($.x-I.x,$.y-I.y),S=Math.min(o?40:90,R*(o?.09:.16)),B=0,D=0;if(R>0){B=-($.y-I.y)/R,D=($.x-I.x)/R;let le=re-t.width/2,Ae=v-t.height/2;if(k&&!N){let dt=k.x+k.width/2,Nt=k.y+k.height/2;le=re-dt,Ae=v-Nt;let $e=Math.abs(B*(dt-I.x)+D*(Nt-I.y)),tt=Math.hypot(k.width/2,k.height/2)*.85+24,qt=((dt-I.x)*($.x-I.x)+(Nt-I.y)*($.y-I.y))/(R*R);$e<tt&&qt>.1&&qt<.9&&(S=Math.min(180,Math.max(S,(tt-$e)*2)))}B*le+D*Ae<0&&(B=-B,D=-D)}S+=2*(O.get(g.key)??0);let W=xr(q.route,{p0:I,c:{x:re+B*S,y:v+D*S},p1:$}),Y=f(L),_=q.route==="orthogonal"||Y,Z=(le,Ae)=>Y?Da(le,Ae):Wn(le,Ae),oe=!N&&g.tie?Io(g.tie.card,g.tie.chip,g.band??[],M):null,Q=oe?g.tie.cardIsTo?oe.reverse():oe:!N&&g.band?pn(C,V,g.band,M):null,ge=N||_||Q?[]:Vn(W,[C,V,...g.obstacles]),ye=Q?[Q]:!N&&_?Ro(Z(I,$),[C,V,...g.obstacles]):[];if(!N&&ge.length===0&&ye.length===0)return null;let ue=ye[ye.length-1],Me=_||Q?ye[0]?.[0]:ge[0]?.p0,De=_||Q?ue?.[ue.length-1]:ge[ge.length-1]?.p1,te=le=>le.map(Ae=>`M ${Ae.p0.x} ${Ae.p0.y} Q ${Ae.c.x} ${Ae.c.y} ${Ae.p1.x} ${Ae.p1.y}`).join(" "),J=`M ${z.x-j} ${z.y} A ${j} ${j} 0 1 1 ${z.x+j} ${z.y} A ${j} ${j} 0 0 1 ${z.x-j} ${z.y}`,se=N?J:Q?Ha(Q,q.route):_?Ct(ye):te(ge),at=le=>({x:le.x-8,y:le.y-8,width:le.width+16,height:le.height+16}),Ke=[C,V,...g.hosts,...g.obstacles].map(at),wn=N?J:Q?Ct(ye):_?Ct(Ro(Z(I,$),Ke)):te(Vn(W,Ke)),Ze=g.edges.length===1?g.edges[0]:null,Te=Ze?Yt(L.kind,Ze.from,Ze.to):null,Tt=Te!==null&&r.includes(Te),Je=Te!==null?l?.get(Te):void 0,It=g.edges.some(le=>y.has(le.from)||y.has(le.to)),Ue=g.tie?.toward??"",Le=g.tie!==void 0&&(a!==null&&(Ue===a||g.tie.holds.includes(a)||g.said?.includes(a)===!0)||y.has(Ue))&&!T.has(Ue);Le&&T.add(Ue);let Ie=!o&&y.size>0&&It||Le,st=i!==null&&L.kind===i||Tt,ne=d?.(L)!==void 0;if(o&&!ne||!o&&!ne&&y.size>0&&!It&&!st&&!Le||g.said!==void 0&&!Le&&!g.said.some(le=>y.has(le))&&!st)return null;let et=o?wo({emphasized:i!==null,stressed:st,anyChosen:x,mine:It,touches:h(L),siblings:A.get(L.id)??1}):bo({edgeChosen:Tt,lit:Ie,anyLit:x||i!==null,own:P.opacity,kit:u.emphasis}),pt=Ie&&Me&&De?g.tie?g.tie.cardIsTo?Me:De:g.edges.some(le=>y.has(le.from))?De:Me:null,bn=(0,_e.jsxs)("g",{children:[(0,_e.jsx)("path",{"data-graview-connector":L.kind,"data-graview-edges":g.edges.length,"data-graview-from":g.fromAnchor,"data-graview-to":g.toAnchor,"data-graview-lit":Ie||void 0,"data-graview-activity":d?.(L)?.manner,"data-graview-provisional":Je!==void 0||void 0,opacity:et*(L.opacity??1)*(Je!==void 0?Tn:1),d:se,fill:"none",stroke:an(P),strokeWidth:(Ie?Math.max(1.6,Yr(P,o)):Yr(P,o))+(st?.6:0),strokeDasharray:Je!==void 0?Cn:ir[P.pattern],strokeLinecap:"round"}),pt?(0,_e.jsx)("circle",{cx:pt.x,cy:pt.y,r:2.6,fill:an(P),opacity:et}):null,N&&o?(0,_e.jsx)("text",{x:z.x,y:z.y-j-5,textAnchor:"middle",opacity:et,style:{font:"9px var(--graview-font-body, system-ui)",letterSpacing:"0.09em",textTransform:"uppercase",fill:"var(--graview-ink-faint)"},children:Zn(L.kind).toLowerCase()}):null]},g.key),xt=null;return Te&&c&&!N&&et>=.2&&(xt=(0,_e.jsx)("path",{"data-graview-edge":Te,className:"graview-edge-hit",d:wn,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:le=>{le.stopPropagation(),c(Te,{x:le.clientX,y:le.clientY})},onContextMenu:le=>{le.altKey||(le.preventDefault(),le.stopPropagation(),c(Te,{x:le.clientX,y:le.clientY}))},children:Je!==void 0?(0,_e.jsx)("title",{children:Je}):null},`hit:${g.key}`)),{key:g.key,line:bn,hit:xt}});return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("svg",{"aria-hidden":"true","data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:We.ties},children:F.map(g=>g?.line)}),F.some(g=>g?.hit)?(0,_e.jsx)("svg",{"data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:We.tieLabels},children:F.map(g=>g?.hit)}):null]})}function qa(e,t,n){if(t.size===0||typeof MutationObserver>"u")return()=>{};let o=0,r=()=>{o=0,_a(e,t)&&n()},i=()=>{o===0&&(o=requestAnimationFrame(r))},s=({target:c})=>{for(let l=c instanceof Element?c:c.parentElement;l&&l!==e;l=l.parentElement)if(t.has(l.getAttribute("data-graview-view")??""))return!0;return!1},d=new MutationObserver(c=>{c.some(s)&&i()});return d.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-graview-pick","data-graview-slot","data-graview-offstage"]}),i(),()=>{d.disconnect(),cancelAnimationFrame(o)}}function Er(e){return e<640?{left:8,right:56}:{left:8,right:Math.round(Math.min(128,e*.107))}}function Cd(e){return Math.min(260,16+e.length*6.6)}var Gn=(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 Za(e,t,n){let o=new Map;for(let s of e){let d=o.get(s.said);d?d.push(s):o.set(s.said,[s])}let r=[],i=[];for(let[s,d]of o){let c=d[0],l=Cd(s),{end:a,far:u}=c,m=y=>Math.max(0,Math.min(n.width-l,y)),f=[{x:m(a.x-l/2),y:u.y-22-6,width:l,height:22},{x:m(a.x-l/2),y:u.y+u.height+6,width:l,height:22},{x:u.x+u.width+6,y:a.y-22/2,width:l,height:22},{x:u.x-l-6,y:a.y-22/2,width:l,height:22}],b=f[0],h=1/0;for(let y of f){let k=y.x<0||y.y<0||y.x+y.width>n.width||y.y+y.height>n.height?1e9:0;for(let w of t)k+=Gn(y,w.title)*100+Gn(y,w.box);for(let w of r)k+=Gn(y,w)*100;if(k<h&&(h=k,b=y),k===0)break}r.push(b),i.push({said:s,keys:d.map(y=>y.key),...b})}return i}var Qa=(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 Bo(e,t){let n=new Set;for(let o of e)(t.edgeId&&o.edgeId===t.edgeId||t.point&&(Qa(o.fromBox,t.point)||Qa(o.toBox,t.point))||t.ids?.some(r=>o.ids.includes(r))||t.box&&(Gn(t.box,o.fromBox)>0||Gn(t.box,o.toBox)>0))&&n.add(o.key);return n}var ke=ae(Oe(),1);function ts(e){let t=ci(e);return t.length>0?new Map(t.map(n=>[Yt(n.edge.kind,n.edge.from,n.edge.to),li(n)])):void 0}function ns({frame:e,width:t,height:n,scheme:o,overview:r,selection:i,emphasis:s,stageRef:d,store:c,graphNodes:l,onPickEdge:a,liveOf:u,holding:m=!1,provisional:f,focusId:b=null,beside:h=!1}){let[y,E]=(0,pe.useState)(0),[k,w]=(0,pe.useState)(null),x=e.t<1,A=(0,pe.useRef)(""),O=(0,pe.useRef)([]),T=(0,pe.useRef)(new Map),F=()=>[...d.current?.querySelectorAll("[data-graview-relation] > span")??[]].map(I=>{let $=I.getBoundingClientRect();return`${Math.round($.left)},${Math.round($.top)},${Math.round($.width)}`}).join(" ");(0,pe.useLayoutEffect)(()=>{if(x||m)return;A.current=F(),O.current=e.nodes;let I=new Map;w(Mr(e.nodes,e.connectors,d.current,r,o,I)),T.current=I},[e,x,m,i,r,l,o,y,d]),(0,pe.useEffect)(()=>{let I=d.current;if(!(x||m||I===null))return qa(I,T.current,()=>E($=>$+1))},[k,x,m,d]),(0,pe.useEffect)(()=>{if(x||m||r||typeof requestAnimationFrame>"u")return;let I=requestAnimationFrame(()=>{F()!==A.current&&E($=>$+1)});return()=>cancelAnimationFrame(I)},[k]);let g=e.nodes.map(I=>I.id).join(`
4
+ `);(0,pe.useLayoutEffect)(()=>{let I=d.current;if(I===null||typeof window>"u")return;let $=0,N=()=>{$===0&&($=requestAnimationFrame(()=>{$=0,E(P=>P+1)}))};I.addEventListener("scroll",N,{capture:!0,passive:!0}),window.addEventListener("resize",N,{passive:!0});let q=typeof ResizeObserver>"u"?null:new ResizeObserver(N);if(q){q.observe(I);for(let P of I.querySelectorAll("[data-graview-view]"))q.observe(P)}return()=>{$!==0&&cancelAnimationFrame($),I.removeEventListener("scroll",N,{capture:!0}),window.removeEventListener("resize",N),q?.disconnect()}},[d,g]);let M=(0,pe.useRef)(new WeakMap);(0,pe.useEffect)(()=>{let I=d.current;if(x||m||I===null||typeof ResizeObserver>"u")return;let $=0,N=new ResizeObserver(q=>{let P=!1;for(let{target:j,contentRect:z}of q){let re=`${Math.round(z.width)}x${Math.round(z.height)}`;M.current.has(j)&&M.current.get(j)!==re&&(P=!0),M.current.set(j,re)}P&&$===0&&($=requestAnimationFrame(()=>{$=0,E(j=>j+1)}))});for(let q of I.querySelectorAll("[data-graview-view]")){let P=xo(q);P!==q&&N.observe(P)}return()=>{$!==0&&cancelAnimationFrame($),N.disconnect()}},[k,x,m,d]);let[L,C]=(0,pe.useState)(null),V=(k??[]).some(I=>I.tie!==void 0);if((0,pe.useEffect)(()=>{let I=d.current;if(!V||I===null)return;let $=q=>{let P=q.target?.closest?.("[data-graview-pick], [data-graview-view]");C(P?.getAttribute("data-graview-pick")??P?.getAttribute("data-graview-view")??null)},N=()=>C(null);return I.addEventListener("pointerover",$),I.addEventListener("focusin",$),I.addEventListener("pointerleave",N),I.addEventListener("focusout",N),()=>{I.removeEventListener("pointerover",$),I.removeEventListener("focusin",$),I.removeEventListener("pointerleave",N),I.removeEventListener("focusout",N)}},[V,d]),x)return null;let X=(k&&m?Ua(k,O.current,e.nodes):k)??Mr(e.nodes,e.connectors,null,r,o),ie=new Set;for(let I of X){if(I.edges.length===1){let $=I.edges[0];ie.add(`${I.connector.kind}|${$.from}|${$.to}`);continue}for(let $ of I.edges)(I.connector.from===$.from||I.connector.to===$.to)&&ie.add(`${I.connector.kind}|${$.from}|${$.to}`)}return(0,ke.jsxs)(ke.Fragment,{children:[(0,ke.jsx)(Xa,{strands:X,result:e,scheme:o,overview:r,selection:i,emphasis:s,stageRef:d,onPickEdge:a,liveOf:u,pointed:L,...f?{provisional:f}:{}}),r&&Nn(i,{overview:r,focusId:b,beside:h},I=>c.graph.getNode(I)?.kind).records.length>0?(0,ke.jsx)(pe.Suspense,{fallback:null,children:(0,ke.jsx)(Id,{frame:e,width:t,height:n,stageRef:d,tick:y,store:c,graphVersion:l,selection:i,view:{overview:r,focusId:b,beside:h},rulers:f?{...Ja,unsureOf:(I,$,N)=>f.get(Yt(I,$,N))}:Ja})}):null,r?null:(0,ke.jsx)(Hd,{...f?{provisional:f}:{},stageRef:d,nodes:e.nodes,scheme:o,selection:i,store:c,graphNodes:l,overview:r,width:t,height:n,onPickEdge:a,alreadyDrawn:ie,tick:y})]})}var Ja={visibleRect:mn,clipQuadratic:Vn,unsureDash:Cn,unsureOpacity:Tn},Td=Ln(nn(()=>(__graviewPreload(import.meta.url,["./chunk.ZJFXM3LE.js","./chunk.DA4RSHLW.js","./chunk.FOSY7MZF.js","./chunk.NBVPWLRY.js","./chunk.S3EEY7T3.js","./chunk.3CJLAJXP.js","./chunk.SDO3U72B.js","./chunk.J24YPQ5I.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.KIQXTQDU.js")))),Id=Td.part((e,t)=>(0,ke.jsx)(e.RecordLinks,{...t}),{what:"The links",quiet:!0}),Nd=44;function Hd({stageRef:e,nodes:t,scheme:n,selection:o,store:r,graphNodes:i,overview:s,width:d,height:c,onPickEdge:l,alreadyDrawn:a,tick:u,provisional:m}){let f=zt(),b=(0,pe.useMemo)(()=>{if(o.length===0||o.length>4)return[];let g=new Set(o),M=[];for(let C of o){let V=Ft(C);V&&M.push({kind:V.kind,self:V.from,other:V.to})}for(let C of r.graph.allEdges()){let V=g.has(C.from)?C.from:g.has(C.to)?C.to:null;if(!V)continue;let X=V===C.from?C.to:C.from;g.has(X)||M.push({kind:C.kind,self:V,other:X})}if(M.length<=14)return M;let L=new Set(t.map(C=>C.id));return M.map((C,V)=>({tie:C,index:V,real:L.has(C.other)?0:1})).sort((C,V)=>C.real-V.real||C.index-V.index).slice(0,14).map(({tie:C})=>C)},[r,o,i,t]),h=()=>{if(b.length===0||typeof document>"u")return[];let g=e.current?.getBoundingClientRect();if(!g)return[];let M=[...e.current?.querySelectorAll("[data-graview-joins]")??[]].find(P=>{if(P.closest("[data-graview-offstage]"))return!1;try{let j=JSON.parse(P.getAttribute("data-graview-joins")??"[]");return j.length===o.length&&j.every(z=>o.includes(z))}catch{return!1}});if(M){let P=mn(M,e.current);if(!P)return[];let j=[];for(let z of o){let re=t.find(B=>B.id===z);if(!re)continue;let v=Ve(e.current,re.id,s)??ht(re,n),R=v?Sr(P,v):null;if(!v||!R)continue;let S=[...r.graph.allEdges()].find(B=>B.from===z&&o.includes(B.to)||B.to===z&&o.includes(B.from));j.push({key:`join:${z}`,self:z,other:"",others:1,kind:S?.kind??"",endX:R.to.x,endY:R.to.y,...R,fromBox:P,toBox:v,proxy:!1,edgeId:S?Yt(S.kind,S.from,S.to):null})}return j}let L=(P,j)=>{let z=e.current?.querySelectorAll(`[data-graview-pick="${CSS.escape(P)}"], [data-graview-slot="${CSS.escape(P)}"]`),re=[];for(let v of z??[]){if(v.closest("[data-graview-offstage]")||j(v)||v.closest("[data-graview-mark]"))continue;let R=mn(v,e.current);R&&re.push(R)}return re.sort((v,R)=>v.width*v.height-R.width*R.height)},C=P=>t.find(j=>j.id===P)??t.find(j=>j.aggregate?.memberIds.includes(P)),V=P=>`[data-graview-pick="${CSS.escape(P)}"], [data-graview-slot="${CSS.escape(P)}"]`,X=(P,j)=>{let z=e.current;if(!z)return!1;for(let re of z.querySelectorAll("[data-graview-view]")){let v=re.querySelector(V(P));if(v===null||v.closest("[data-graview-offstage]"))continue;let R=re.querySelector(V(j));if(R!==null&&!R.closest("[data-graview-offstage]"))return!0}return!1},ie=[];if(!s&&e.current){for(let j of t){if(Math.round(j.plane)!==1)continue;let z=Ve(e.current,j.id,!1);z&&ie.push(z)}let P=e.current;ie.push(...Ho(P,g,t,j=>Ve(P,j,!1)))}let I=new Map,$=[];for(let P of b){if(X(P.self,P.other))continue;let j=C(P.self),z=j?e.current?.querySelector(`[data-graview-view="${CSS.escape(j.id)}"]`):null,re=!s&&j?.id===P.self&&Math.round(j.plane)===1?Ve(e.current,j.id,!1):null,v=re?[re]:L(P.self,()=>!1);if(!(v.length>0)&&j){let J=Ve(e.current,j.id,!1)??ht(j,n);J&&v.push(J)}let S=t.find(J=>J.id===P.other),B=[],D=!1;if(S){let J=Ve(e.current,S.id,s)??ht(S,n);J&&B.push(J)}else if(B.push(...L(P.other,J=>z?z.contains(J):!1)),B.length===0){let J=C(P.other);if(J&&(!j||J.id!==j.id)){let se=Ve(e.current,J.id,s)??ht(J,n);se&&(B.push(se),D=!0)}}if(v.length===0||B.length===0||D&&s)continue;let W=v[0],Y=B[0],_=1/0;for(let J of v)for(let se of B){let at=Math.hypot(J.x+J.width/2-(se.x+se.width/2),J.y+J.height/2-(se.y+se.height/2));at<_&&(_=at,W=J,Y=se)}if(a?.has(`${P.kind}|${P.self}|${P.other}`)||a?.has(`${P.kind}|${P.other}|${P.self}`))continue;let Z=`${P.kind}:${Math.round(W.x)},${Math.round(W.y)}:${Math.round(Y.x)},${Math.round(Y.y)}`,oe=I.get(Z);if(oe){oe.others+=1;continue}let Q=Sr(W,Y);if(!Q)continue;let{from:ge,control:ye}=Q,ue=re&&W===re?pn(W,Y,ie,$.length):void 0,Me=ue?ue[ue.length-1]:Q.to,De=[...r.graph.allEdges()].find(J=>J.kind===P.kind&&(J.from===P.self&&J.to===P.other||J.from===P.other&&J.to===P.self)),te={key:`${P.kind}:${P.self}:${P.other}`,self:P.self,other:P.other,others:1,kind:P.kind,endX:Me.x,endY:Me.y,from:ge,to:Me,control:ye,fromBox:W,toBox:Y,...ue?{points:ue}:{},proxy:D,edgeId:De?Yt(De.kind,De.from,De.to):null};I.set(Z,te),$.push(te)}let N=s?void 0:t.find(P=>Math.round(P.plane)===0&&!P.aggregate),q=P=>{let j=t.find(z=>z.id===P.other)??t.find(z=>z.aggregate?.memberIds.includes(P.other));return j!==void 0&&Math.round(j.plane)===1&&j.via?.edgeKind===P.kind};for(let P of $){if(N&&(P.self!==N.id||q(P)))continue;let j=[...r.graph.allEdges()].find(B=>B.kind===P.kind&&(B.from===P.self&&B.to===P.other||B.from===P.other&&B.to===P.self)),z=r.graph.getNode(P.self),re=r.graph.getNode(P.other);if(!j||!z||!re)continue;let v=j.from===P.self?"out":"in",R=di(r.schema,v==="out"?z.kind:re.kind,P.kind,v),S=P.proxy?(v==="out"?r.graph.out(P.self,P.kind):r.graph.in(P.self,P.kind)).filter(B=>B.kind===re.kind).length:1;P.said=P.proxy?`${R}: ${tn(r.schema,re.kind,Math.max(S,P.others))}`:`${R}: ${en(r.schema.tryDefinition(re.kind),re)}`}return $},[y,E]=(0,pe.useState)([]),[k,w]=(0,pe.useState)([]);(0,pe.useLayoutEffect)(()=>{let g=h();E(g),w(g.some(M=>M.said)?x(g):[])},[b,t,s,n,d,c,a,u,e]);let x=g=>{let M=e.current;if(!M)return[];let L=[];for(let C of M.querySelectorAll("[data-graview-view]")){let V=[...C.children].find(ie=>!ie.classList.contains("graview-kind-tag")),X=V?mn(V,M):null;X&&L.push({box:X,title:{...X,height:Math.min(X.height,Nd)}})}return Za(g.flatMap(C=>C.said?[{key:C.key,said:C.said,end:{x:C.endX,y:C.endY},far:C.toBox}]:[]),L,{width:d,height:c})},[A,O]=(0,pe.useState)(()=>new Set),T=(0,pe.useRef)([]);T.current=y.map(g=>({key:g.key,fromBox:g.fromBox,toBox:g.toBox,ids:[g.self,g.other],edgeId:g.edgeId}));let F=k.length>0;return(0,pe.useEffect)(()=>{let g=e.current;if(!g||!F)return;let M=N=>O(q=>q.size===N.size&&[...N].every(P=>q.has(P))?q:N),L=0,C=null,V=()=>{if(L=0,!C)return;let N=g.getBoundingClientRect(),q=C.target instanceof Element?C.target:null;M(Bo(T.current,{point:{x:C.clientX-N.left,y:C.clientY-N.top},edgeId:q?.closest("[data-graview-edge]")?.getAttribute("data-graview-edge")??null}))},X=N=>{C=N,L||(L=requestAnimationFrame(V))},ie=()=>{C=null,M(new Set)},I=N=>{let q=N.target instanceof Element?N.target:null;if(!q)return;let P=g.getBoundingClientRect(),j=q.getBoundingClientRect(),z=q.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??q.closest("[data-graview-view]")?.getAttribute("data-graview-view");M(Bo(T.current,{...z?{ids:[z]}:{},box:{x:j.left-P.left,y:j.top-P.top,width:j.width,height:j.height}}))},$=N=>{N.relatedTarget instanceof Node&&g.contains(N.relatedTarget)||M(new Set)};return g.addEventListener("pointermove",X,{passive:!0}),g.addEventListener("pointerleave",ie),g.addEventListener("focusin",I),g.addEventListener("focusout",$),()=>{L&&cancelAnimationFrame(L),g.removeEventListener("pointermove",X),g.removeEventListener("pointerleave",ie),g.removeEventListener("focusin",I),g.removeEventListener("focusout",$)}},[e,F]),y.length===0?null:(0,ke.jsxs)(ke.Fragment,{children:[(0,ke.jsx)("svg",{"aria-hidden":y.some(g=>g.edgeId)?void 0:!0,"data-graview-ties":y.length,"data-graview-world":"",width:d,height:c,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:We.lines},children:y.map(g=>{let{connector:M,style:L}=ln(f,g.kind);if(!M.visible)return null;let C=g.edgeId?m?.get(g.edgeId):void 0,V={p0:g.from,c:g.control,p1:g.to},X=g.points?Oo(g.points,10):M.route==="orthogonal"?Ct([Wn(g.from,g.to)]):(({p0:I,c:$,p1:N})=>`M ${I.x} ${I.y} Q ${$.x} ${$.y} ${N.x} ${N.y}`)(xr(M.route,V)),ie=null;if(g.edgeId&&l&&!g.proxy){let I=(N,q)=>q.x>=N.x&&q.x<=N.x+N.width&&q.y>=N.y&&q.y<=N.y+N.height,$=g.points?[...g.points]:[];for(let N=0;N<=(g.points?-1:40);N++){let q=Ba(M.route,V,N/40);I(g.fromBox,q)||I(g.toBox,q)||$.push(q)}$.length>=2&&(ie=(0,ke.jsx)("path",{"data-graview-edge":g.edgeId,className:"graview-edge-hit",d:`M ${$[0].x} ${$[0].y} ${$.slice(1).map(N=>`L ${N.x} ${N.y}`).join(" ")}`,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:N=>{N.stopPropagation(),l(g.edgeId,{x:N.clientX,y:N.clientY})},onContextMenu:N=>{N.altKey||(N.preventDefault(),N.stopPropagation(),l(g.edgeId,{x:N.clientX,y:N.clientY}))},children:C!==void 0?(0,ke.jsx)("title",{children:C}):null}))}return(0,ke.jsxs)("g",{opacity:(g.proxy?.32:.72)*(C!==void 0?Tn:1),children:[(0,ke.jsx)("path",{"data-graview-tie":g.kind,"data-graview-tie-proxy":g.proxy||void 0,"data-graview-provisional":C!==void 0||void 0,d:X,fill:"none",stroke:an(L),strokeWidth:g.proxy?1.1:1.6,strokeDasharray:C!==void 0?Cn:ir[L.pattern],strokeLinecap:"round"}),(0,ke.jsx)("circle",{cx:g.endX,cy:g.endY,r:g.proxy?2:2.6,fill:an(L)}),ie]},g.key)})}),(0,ke.jsx)("div",{"aria-hidden":"true","data-graview-world":"",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:We.tieLabels},children:k.map(g=>{let M=y.find(L=>L.key===g.keys[0]);return(0,ke.jsx)("span",{className:"graview-record-link-said","data-graview-link-said":M?.kind,"data-graview-lands":M?.proxy?"district":"record","data-graview-said-for":g.keys.length,"data-graview-tie-said":g.keys.some(L=>A.has(L))?"shown":"waiting",style:{position:"absolute",left:g.x,top:g.y,transform:`translateX(min(0px, calc(${Math.round(d-g.x-8)}px - 100%)))`},children:g.said},g.said)})})]})}function es(){return typeof document>"u"?1:parseFloat(getComputedStyle(document.documentElement).fontSize)/16||1}function rs({nodes:e,scheme:t,width:n,stageRef:o,moving:r=!1,holding:i=!1}){let s=zt(),[d,c]=(0,pe.useState)([]);(0,pe.useLayoutEffect)(()=>{r||i||c(l())},[e,r,i,t,n,o]);function l(){let u=[],m=[];for(let y of e){if(!y.via||Math.round(y.plane)!==1)continue;let E=Ve(o.current,y.id,!1,!0),{scale:k}=on(1,t);u.push({key:`${y.via.edgeKind}|${y.via.direction}`,text:Hn(y.via),left:E?.x??y.x,right:E?E.x+E.width:y.x+y.width*k,top:E?.y??y.y}),m.push(Math.round(y.y))}let f=new Map;u.forEach((y,E)=>f.set(m[E],Math.min(f.get(m[E])??1/0,y.top)));let b=u.map((y,E)=>({...y,top:f.get(m[E])??y.top})),h=Er(n);return io(b,{left:h.left,right:n-h.right},es())}if(d.length===0||!s.captions.visible||r)return null;let a=oo*es();return(0,ke.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:We.lines},children:d.map(u=>{let{left:m,width:f}=u;return(0,ke.jsx)("div",{"data-graview-relation":u.key,title:u.text,style:{position:"absolute",left:m,width:f,textAlign:"center",top:Math.max(0,u.top-a),fontSize:"0.75rem",letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:(0,ke.jsx)("span",{style:{background:"var(--graview-ground)",padding:"1px 7px",borderRadius:4},children:u.text})},u.key)})})}var Xt=ae(Pe(),1);var Dd=new Set;function is(e,t,n,o,r,i,s=0,d=0){let{store:c,views:l,hiddenKinds:a}=xe(),u=jt(),m=(0,Xt.useContext)(rn),f=jr(),b=(0,Xt.useMemo)(()=>{let k={};for(let w of f){if(w.subjectId===void 0)continue;let x=k[w.subjectId]??=[];for(let A of w.nodeIds)A!==w.subjectId&&!x.includes(A)&&x.push(A)}return k},[f]),h=(0,Xt.useMemo)(()=>({flagged:new Set(f.flatMap(k=>k.nodeIds)),touched:ar(c.log.all())}),[f,c,i]),y=(0,Xt.useMemo)(()=>({hits:u?or(u):Dd,...h}),[u,h]),E=(t?.width??1200)-r.right<640;return(0,Xt.useMemo)(()=>({...e,cityZoom:o,...m?{besideTheMap:!0}:{},...a.size>0?{hiddenKinds:[...a].sort()}:{},...Object.keys(b).length>0?{judged:b}:{},relevance:y,inset:E?{left:8,right:8,top:8,bottom:0}:{...Er((t?.width??1200)-r.right),top:8,bottom:0},chrome:[{x:(t?.width??1200)-r.right-176,y:0,width:176,height:100},{...Fd(t,r),...r.bottom>0?{onSheet:!0}:{}}],...r.right>0||r.bottom>0?{dock:r}:{},...E||s>0?{headroom:E?Math.max(s,$d):s}:{},unit:n,plainGroups:c.schema.kinds.filter(k=>Xo(l.lookup(k,{cardinality:"many",fidelity:"full"}))),cityOrder:Vo(Si({name:"scene",schema:c.schema,mutations:c.allMutations().filter(k=>!k.derived)}).order.map(k=>k.kind),l.arrangement?.()?.order),screens:l.places().reduce((k,w)=>((k[w.kind]??=[]).push({as:w.as,title:w.title,...w.across?{across:w.across}:{}}),k),{}),...t?{width:t.width,height:Math.max(0,t.height-Math.max(64,d))}:{}}),[e,t,n,c,l,a,b,y,o,m,r.right,r.bottom,s,d,E])}var $d=60,os=224;function Fd(e,t){let n=e?.width??1200,o=e?.height??800,r=58;return{x:n-t.right-os,y:o-t.bottom-r,width:os,height:r}}var bt=ae(Pe(),1);var as=ae(Pe(),1);function Rr(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(o=>typeof o=="string")?n:null}catch{return null}}function ss(e){(0,as.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{for(let i of t.querySelectorAll("[data-graview-pick]"))i.getAttribute("tabindex")===null&&i.setAttribute("tabindex","0"),i.getAttribute("role")===null&&jd(i)&&i.setAttribute("role","button")};if(n(),typeof MutationObserver>"u")return;let o=0,r=new MutationObserver(()=>{o===0&&(o=typeof requestAnimationFrame>"u"?0:requestAnimationFrame(()=>{o=0,n()}),o===0&&n())});return r.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-graview-pick"]}),()=>{r.disconnect(),o!==0&&cancelAnimationFrame(o)}},[e])}var Wd=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 jd(e){return Wd.has(e.localName.toLowerCase())}var yn=ae(Oe(),1);function ds({node:e,useDom:t,blur:n,touched:o,frontY:r,centerY:i,screen:s,onDrawnHeight:d,crowded:c,activity:l,scheme:a,canvasWidth:u,canvasHeight:m,selected:f,onSelect:b,onPick:h,onTravel:y,onMenu:E,selection:k,onJackIn:w,onDragStart:x,onDragMove:A,onDragEnd:O,onDragCancel:T,swallowClick:F,children:g}){let{brand:M,store:L,actsDoor:C}=xe(),V=e.beyond?`${e.beyond.length} more district${e.beyond.length===1?"":"s"}`:e.aggregate?.opens?.in==="place"?`${e.aggregate.label}, ${tn(L.schema,e.aggregate.kind,e.aggregate.memberIds.length)}`:e.aggregate?e.aggregate.label:(()=>{let S=L.graph.getNode(e.id);return S?en(L.schema.tryDefinition(e.kind),S):e.id})(),[X,ie]=(0,bt.useState)(null),I=Math.round(e.plane)===0&&!e.aggregate;(0,bt.useLayoutEffect)(()=>{if(!I)return;let S=j.current;if(!S)return;let B=()=>{let W=[...S.children].find(Q=>Q.dataset.graviewKindtag===void 0);if(!W)return;let Y=S.getBoundingClientRect(),_=W.getBoundingClientRect(),Z=S.offsetWidth>0?Y.width/S.offsetWidth:1,oe={top:Math.round((_.top-Y.top)/Z)-9,right:Math.round((Y.right-_.right)/Z)+14};ie(Q=>Q&&Q.top===oe.top&&Q.right===oe.right?Q:oe)};if(typeof ResizeObserver>"u"){B();return}let D=new ResizeObserver(B);D.observe(S);for(let W of S.children)D.observe(W);return()=>D.disconnect()},[I,e.id]);let $=ei({plane:e.plane,...e.depth!==void 0?{depth:e.depth}:{},onPlot:r!==void 0},a),N=$.style,q=Jo(N,e.x,e.y,u,m),P=n?$.blur:0,j=(0,bt.useRef)(null);ss(j);let z=e.natural,re=z?Math.min(e.width/z.width,e.height/z.height):1,v=(0,bt.useRef)(null);(0,bt.useEffect)(()=>{if(!s||!d)return;let S=v.current;if(!S||typeof ResizeObserver>"u")return;let B=()=>{let Z=0,oe=0;for(let Q of S.children)if(!(!(Q instanceof HTMLElement)||Q.classList.contains("graview-screen-fullscreen"))){Z=Math.max(Z,Q.offsetTop+Q.offsetHeight);for(let ge of[Q,...Q.querySelectorAll("*")]){let ye=getComputedStyle(ge).overflowY;(ye==="auto"||ye==="scroll")&&(oe+=ge.scrollHeight-ge.clientHeight)}}d(Z+oe)},D=0,W=()=>{D||(D=requestAnimationFrame(()=>{D=0,B()}))};B();let Y=new ResizeObserver(W);Y.observe(S);for(let Z of S.children)Y.observe(Z);let _=new MutationObserver(W);return _.observe(S,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),()=>{D&&cancelAnimationFrame(D),Y.disconnect(),_.disconnect(),d(void 0)}},[s,d,e.id]);let R=t?{transform:Na(q),transformOrigin:"0 0",filter:P>0?`blur(${P}px)`:void 0,opacity:ti(N)*(e.opacity??1),"--graview-lift-low":Mo(N.shadow,a),...r!==void 0?{"--graview-front-y":`${r.toFixed(1)}px`}:{},...i!==void 0?{"--graview-center-y":`${i.toFixed(1)}px`}:{}}:{"--graview-lift-low":Mo(N.shadow,a)};return(0,yn.jsxs)("div",{ref:j,"data-graview-view":e.id,...t?{}:{drawable:""},"data-graview-plane":Math.round(e.plane),"data-graview-selected":f||void 0,"data-graview-touched":o||void 0,"data-graview-plot":r!==void 0?"":void 0,"data-graview-screen":s?"":void 0,"data-graview-record-focus":Math.round(e.plane)===0&&!e.aggregate&&!z&&!s?"":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":l?l.manner:void 0,"data-graview-wrote":l?.wrote||void 0,"data-graview-read":l&&!l.wrote?!0:void 0,"data-graview-broke":l?.broke||void 0,title:l?`${xa[l.manner]} ${l.wrote?"changed this":"read this"}: ${l.intent}`:e.aggregate&&Math.round(e.plane)!==0?`Open ${e.aggregate.label}`:void 0,role:"group","aria-label":V,"aria-keyshortcuts":C&&!e.beyond?C.key:void 0,tabIndex:0,onPointerDown:x,onPointerMove:A,onPointerUp:O,onPointerCancel:T??O,onClick:S=>{if(F.current)return;let B=S.target?.closest("input, textarea, select, button, a[href], [contenteditable='true']");if(B&&!B.hasAttribute("data-graview-pick"))return;let D=S.metaKey||S.shiftKey,W=Ot(S.target);if(W&&W!==e.id){S.stopPropagation(),h(W,D,Rr(S.target)??void 0);return}b(D)},onKeyDown:S=>{if(C&&!e.beyond&&S.key.toLowerCase()===C.key.toLowerCase()&&!S.metaKey&&!S.ctrlKey&&!S.altKey&&!S.target?.closest("input, textarea, select, [contenteditable='true']")){S.preventDefault(),S.stopPropagation();let _=Ot(S.target)??e.id;k.includes(_)||h(_,!1),C.open(S.target instanceof HTMLElement?S.target:S.currentTarget);return}if(S.key!=="Enter"&&S.key!==" "||S.target?.closest("input, textarea, select, button, [contenteditable='true']"))return;let D=Ot(S.target);if(S.preventDefault(),S.stopPropagation(),!D||D===e.id){k.length===1&&k[0]===e.id&&!S.metaKey&&!S.shiftKey?w():b(S.metaKey||S.shiftKey);return}let W=Rr(S.target);(W?k.length===W.length&&W.every(_=>k.includes(_)):k.length===1&&k[0]===D)&&!S.metaKey&&!S.shiftKey?y(D):h(D,S.metaKey||S.shiftKey,W??void 0)},onContextMenu:S=>{if(S.altKey)return;let B=Ot(S.target);S.preventDefault(),S.stopPropagation();let D=B&&B!==e.id?B:e.id;h(D,!1,(D===B?Rr(S.target):null)??void 0);let W=S.nativeEvent.composedPath?.()[0],{clientX:Y,clientY:_}=S,Z=()=>{let oe=wi(W);E({x:Y,y:_,on:D,...oe?{section:oe,title:oe.name}:{}})};bi(W)?yi().then(Z,Z):Z()},onDoubleClick:S=>{let B=Ot(S.target);if(B&&B!==e.id){S.stopPropagation(),y(B);return}w()},style:{position:"absolute",...t?{}:{pointerEvents:"none"},zIndex:e.opened?We.opened:We.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",...R},children:[z?(0,yn.jsx)("div",{ref:v,"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(${re})`,transformOrigin:"50% 50%",display:"flex",flexDirection:"column"},children:g}):g,Math.round(e.plane)===0&&!e.aggregate?(0,yn.jsxs)("span",{"data-graview-kindtag":"",className:"graview-kind-tag","aria-hidden":"true",style:{...X??{},"--graview-hue":Math.round(Rn(e.kind,M?.accents))},children:[(0,yn.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(Rn(e.kind,M?.accents))} 55% var(--graview-tint-lightness) / 0.9)`}}),Fo(L.schema.tryDefinition(e.kind),e.kind)]}):null]})}var fe=ae(Oe(),1);Wr({search:Ei,touchWeights:ar});var Vd=e=>e?{activity:e}:{},Gd=e=>`${Math.round(e.x)} ${Math.round(e.y)}`,ls=e=>e.stopPropagation(),Or=.6,Ar=3,zd=80,cs=e=>Math.round(e.plane)===1&&(e.compact===!0||e.width<175||e.height<zd);function Yd(e){let[t,n]=(0,K.useState)(1),o=(0,K.useRef)(1);return(0,K.useEffect)(()=>{e||(o.current=1,n(1))},[e]),[t,o,n]}function _d(e){let[t,n]=(0,K.useState)({x:0,y:0}),o=(0,K.useMemo)(()=>({x:(e.pan?.x??0)+t.x,y:(e.pan?.y??0)+t.y}),[e.pan,t]),r=(0,K.useMemo)(()=>t.x===0&&t.y===0?e:ct(e,o),[e,t,o]),i=(0,K.useRef)(t);i.current=t;let s=(0,K.useCallback)((d,c)=>{let l=i.current,a=(u,m,f)=>Math.max(Math.min(-u,m),Math.min(Math.max(u,m),f+m))-m;return{x:a(d.x,l.x,c.x),y:a(d.y,l.y,c.y)}},[]);return[o,r,s,i,n]}function Kd(e,t,n,o,r,i){let s=n!==null&&!t.overview,d=s?null:n,c=(0,K.useRef)(t);Jr(c.current,t)||(c.current=t);let l=c.current,a=(0,K.useMemo)(()=>{let h=l.pan?{...l,pan:void 0}:l;return d?In(h,d.id,{x:d.x,y:d.y}):h},[l,d]),u=(0,K.useRef)(void 0),m=(0,K.useMemo)(()=>{let h=u.current?.stood,y=mr(e.graph,e.schema,a,h?{...o,cityStood:h}:o);return u.current=y.city,y},[e,a,o,r]),f=(0,K.useMemo)(()=>n&&s?uo(m,n.id,{x:n.x,y:n.y})??mr(e.graph,e.schema,In(a,n.id,{x:n.x,y:n.y}),o):m,[m,n,s,e,a,o]);return[(0,K.useMemo)(()=>ho(f,i??{x:0,y:0}),[f,i]),s]}function Ud(e,t){let n=(0,K.useRef)(!1),o=(0,K.useRef)(!1),r=(0,K.useRef)(null),i=(0,K.useRef)(!1),s=(0,K.useCallback)(()=>{Xd(e.current,{dragging:n.current,steering:o.current}),t.set(n.current||o.current||i.current)},[e,t]),d=(0,K.useCallback)(u=>{n.current!==u&&(n.current=u,s())},[s]),c=(0,K.useRef)(()=>!1),l=(0,K.useCallback)(()=>{o.current||(o.current=!0,s()),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{r.current=null,!c.current()&&(o.current=!1,s())},160)},[s]),a=(0,K.useCallback)(()=>{n.current=!1,o.current=!1,s()},[s]);return{dragging:n,steering:o,tweening:i,setDragging:d,steer:l,settleLive:c,settled:a}}function Xd(e,{dragging:t,steering:n}){e&&(t||n?e.setAttribute("data-graview-hand",t?"drag":"wheel"):e.removeAttribute("data-graview-hand"),e.style.cursor=t?"grabbing":"grab",e.style.userSelect=t?"none":"")}function qd(e){let t=(0,K.useRef)(!1),n=e!==null&&!t.current;return(0,K.useEffect)(()=>{e!==null&&(t.current=!0)},[e]),n}function Qd({registerScene:e,scheme:t,views:n},o,r){let i=(0,K.useRef)(o);i.current=o,(0,K.useEffect)(()=>(e({whereIs:s=>br(i.current,r.current,t,n,s)}),()=>e(null)),[e,t,n])}function Zd(e,t){(0,K.useEffect)(()=>{let n;return e.onActive(o=>{let r=t.current;if(!r)return;let i=c=>{let l=r.getBoundingClientRect();e.set({x:c.clientX-l.left,y:c.clientY-l.top})},s=c=>{c.buttons===0&&i(c)},d=()=>e.set(null);o?(r.addEventListener("pointermove",s),r.addEventListener("pointerup",i),r.addEventListener("pointerleave",d),n=()=>{r.removeEventListener("pointermove",s),r.removeEventListener("pointerup",i),r.removeEventListener("pointerleave",d)}):(n?.(),n=void 0)})},[e])}function Jd(e,t,n,o,r,i,s,d){(0,K.useEffect)(()=>{let c=t.current;if(!c||!e)return;let l=new Set;for(let u of n.nodes)(o.has(u.id)||u.aggregate?.memberIds.some(m=>o.has(m)))&&l.add(u.id);let a=e({canvas:c,layout:n,dirty:l,hostOf:u=>(c.parentElement??c).querySelector(`[data-graview-view="${CSS.escape(u)}"]`),drawOnDom:r,blur:i,scheme:s,fallBack:d});return()=>{a?.()}},[e,n,o,r,i,s,d])}var el=nn(()=>(__graviewPreload(import.meta.url,["./chunk.OJGHDWI6.js","./chunk.J24YPQ5I.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.DJMSXXP4.js")));function tl(e,t){let[n]=(0,K.useState)(()=>{let a=ri();return t?e==="dom"||e==="auto"&&a==="dom"?"dom":"gpu":ii(e,{operator:a,present:oi()})}),[o,r]=(0,K.useState)(!1),i=(0,K.useCallback)(()=>r(!0),[]),[s,d]=(0,K.useState)(null),c=n==="gpu"&&!t&&!o&&s===null;return(0,K.useEffect)(()=>{if(!c)return;let a=!0;return el().then(u=>{a&&d(()=>u.attachGpu())},()=>{a&&r(!0)}),()=>{a=!1}},[c]),{attach:(n==="gpu"&&!o?t??s:null)??null,fallBack:i}}function nl(){let[e,t]=(0,K.useState)(()=>new Set),n=(0,K.useCallback)(o=>{t(r=>r.size===o.size&&[...o].every(i=>r.has(i))?r:new Set(o))},[]);return[e,n]}function rl(){let e=ui();return t=>{let n=t?e.get(t.id):void 0,o=t?.aggregate?.memberIds??[];if(!n&&o.length===0)return;let r=n,i=n?.wrote??!1,s=n?.read??!1,d=n?.broke??!1;for(let c of o){let l=e.get(c);l&&(i||=l.wrote,s||=l.read,d||=l.broke,(!r||l.at>r.at||l.at===r.at&&l.wrote&&!r.wrote)&&(r=l))}return r?{...r,wrote:i,read:s,broke:d}:void 0}}var us=(e,t)=>e.includes(t)?e.filter(n=>n!==t):[...e,t];function ol(){let{views:e,view:t,setView:n,setSelection:o}=xe(),r=jt(),i=(0,K.useContext)(rn),s=d=>{if(He(d.id)===null&&!d.aggregate)return!1;let c=e.resolve(d.kind,{cardinality:"many",fidelity:"full"})?.view;return c!==void 0&&c.generic!==!0};return d=>({onSelect:c=>{if(Pn(d.id)){o(a=>c?us(a,d.id):[d.id]);return}let l=d.aggregate?An(d.id):[];if(t.overview){o(a=>c?[...new Set([...a,d.id])]:[d.id]);return}if(l.length===1&&!c&&Math.round(d.plane)!==0){let a=l[0];n(u=>Hr(u,u.relation===a?null:a));return}o(a=>So(d,a,c))},onPick:(c,l,a)=>o(u=>a?l?[...new Set([...u,...a])]:[...a]:l?us(u,c):[c]),onTravel:c=>{n(l=>({...Et(l,c),relation:null})),o([c])},onJackIn:()=>{let c=d.aggregate?.opens;if(c){c.in==="place"?n(u=>Br(u,d.id)):n(u=>Object.entries(c.within).reduce((m,[f,b])=>nr(m,f,b),Et(On(u,!1),c.focus))),o([]);return}let l=He(d.id),a=l!==null&&(r?.byKind[l]??0)>0;if(i&&l!==null&&t.overview&&!s(d)&&!(a&&t.q)){n(u=>nr({...Et(u,`aggregate:${l}`),relation:null},"view",null)),o([]);return}n(u=>Dr(u,d.id,{ownPicture:s(d),...a&&u.q?{carry:u.q}:{}})),o(d.aggregate?[]:[d.id])}})}var il=Ln(nn(()=>(__graviewPreload(import.meta.url,["./chunk.HJCQ6I3S.js","./chunk.ZJFXM3LE.js","./chunk.NSO6RUKW.js","./chunk.PTQPS2FJ.js","./chunk.DA4RSHLW.js","./chunk.FOSY7MZF.js","./chunk.NBVPWLRY.js","./chunk.S3EEY7T3.js","./chunk.3CJLAJXP.js","./chunk.SDO3U72B.js","./chunk.J24YPQ5I.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.2UW5CRHF.js")))),al=il.part((e,t)=>(0,fe.jsx)(e.Ribbons,{...t}),{what:"The relations",quiet:!0}),hs="graview:map-from-above";function sl(){let[e,t]=(0,K.useState)(()=>{try{return globalThis.localStorage?.getItem(hs)==="1"}catch{return!1}}),n=(0,K.useCallback)(o=>{t(o);try{globalThis.localStorage?.setItem(hs,o?"1":"0")}catch{}},[]);return[e,n]}var fs=Ln(nn(()=>(__graviewPreload(import.meta.url,["./chunk.NSO6RUKW.js","./chunk.PTQPS2FJ.js","./chunk.74B6KQF4.js","./chunk.3CJLAJXP.js","./chunk.SDO3U72B.js","./chunk.J24YPQ5I.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.IFBGYFS4.js")))),dl=fs.part((e,t)=>(0,fe.jsx)(e.Plots,{...t}),{quiet:!0}),ll=fs.part((e,t)=>(0,fe.jsx)(e.WorkflowsLayer,{...t}),{quiet:!0});function cl({zoom:e,zoomBy:t,above:n,setAbove:o}){let r=(i,s,d,c)=>(0,fe.jsx)("button",{type:"button",className:"graview-zoom-button","data-testid":`zoom-${i}`,"aria-label":`Zoom ${i}`,title:`Zoom ${i} \u2014 or pinch, or ctrl+wheel`,disabled:c,onClick:()=>t(d),children:s});return(0,fe.jsxs)("div",{className:"graview-zoom","data-graview-foot":"",role:"group","aria-label":"Zoom",onPointerDown:ls,onClick:ls,children:[r("out","\u2212",1/1.25,e<=Or+1e-6),(0,fe.jsxs)("span",{className:"graview-zoom-level","data-testid":"zoom-level","aria-live":"polite",children:[Math.round(e*100),"%"]}),r("in","+",1.25,e>=Ar-1e-6),(0,fe.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:()=>o(!n),children:"From above"})]})}function ul({options:e,renderer:t="auto",attachRenderer:n,blur:o=!0,className:r,style:i,animate:s=!0,children:d}){let c=xe(),l=c.app?c.app.workflows??Go(c.app)?.workflows:void 0,{store:a,scheme:u,views:m,view:f,setView:b,selection:h,setSelection:y,setMenuAt:E,emphasis:k,brand:w,noteMoved:x,robots:A,motion:O}=c,T=(0,K.useContext)(rn),F=(0,K.useRef)(null),g=(0,K.useRef)(null),M=Ta(g),L=Ia(M),C=Ca(),{zoomAbout:V,panBy:X,pinchBy:ie,pinchDone:I,pinching:$}=pa({stage:g,view:f,setView:b}),N=Vt(),q=1,[P,j,z]=Yd(f.overview),[re,v]=sl(),R=(0,K.useMemo)(()=>re?{...e,tilt:Oi}:e,[e,re]),{probe:S,dock:B}=ua(),D=!f.overview&&(f.zoom||f.past||f.relation)?Math.ceil(14+34*C/16+6):0,W=M&&L?M.height-L.height:0,Y=(0,K.useRef)(B);W<=0&&(Y.current=B);let _=W>0?Y.current:B,Z=!!f.overview&&_.bottom>0&&_.right===0&&(h.length>0||f.focusId!==void 0),oe=is(R,L,C,q*P,_,N,D,f.overview?0:_.bottom),Q=oa(g),[ge,ye,ue,Me,De]=_d(f),te=(0,K.useMemo)(()=>new Set(Object.keys(f.pins).filter(H=>He(H)===null)),[f.pins]),J=ha(),[se,at]=Kd(a,f,J.held,oe,N,ye.pan),Ke=Ud(g,O),{setDragging:wn,steer:Ze,settleLive:Te,settled:Tt}=Ke,Je=Ke.dragging.current||Ke.steering.current,It=qd(L),Ue=(0,K.useRef)(()=>{}),Le=fa({stage:g,pan:f.pan,zoom:P,setView:b,settled:Tt,zoomTo:Ue}),Ie=(0,K.useRef)(!1);Le.settling.current||(Ie.current=!1);let st=Le.settling.current&&!Ie.current,ne=qi(se,{enabled:s&&!Je&&L!==null&&!It,settle:!st});Ke.tweening.current=ne.t<1;let et=ia(g,ne.t>=1,se);(0,K.useEffect)(()=>O.set(Ke.dragging.current||Ke.steering.current||ne.t<1),[O,ne]);let pt=Qi(),bn=Zi(),xt=sa({view:f,result:se,frame:ne,panned:ge,closer:q,screenId:null,setCamera:De});Qd(c,ne,g),Zd(c.pointer,g);let[le,Ae]=nl(),{attach:dt,fallBack:Nt}=tl(t,n),$e=Ui(o);Jd(dt,F,ne,pt,Ae,$e,u,Nt);let tt=dt===null,qt=Xi($e&&tt,ne.t<1),xn=rl();Te.current=Le.settle;let{onGroundDown:zn,onCardDown:vt,onDragMove:vn,onDragUp:kn,onDragCancel:Yn,swallow:gt}=ma({view:f,panned:ge,limit:()=>At(se),panWithin:ue,moveByTransform:!0,setView:b,setDragging:wn,noteMoved:x,shift:Le,district:J,pinching:$}),kt=_i({swallow:gt,setMenuAt:E,setSelection:y});ba(g,gt),V.current=(H,he,be)=>{if(!f.overview)return;Te.current();let Se=j.current,Ne=Math.max(Or,Math.min(Ar,Se*H));if(Math.abs(Ne-Se)<1e-4)return;j.current=Ne,Ie.current=!0,Ze(),z(Ne);let Ge=g.current?.getBoundingClientRect(),qe=se.visible??se,Dt={x:qe.width/2,y:qe.height/2},En=Ge&&he!==void 0&&be!==void 0?{x:he-Ge.left,y:be-Ge.top}:Dt,Xn=Ne/Se;b(St=>ct(St,fr(St.pan??{x:0,y:0},Me.current,En,Dt,Xn))),x()},ie.current=(H,he,be,Se,Ne)=>{if(!f.overview)return;Ze();let Ge=g.current?.getBoundingClientRect(),qe=Ge?{x:he-Ge.left,y:be-Ge.top}:{x:0,y:0};Le.zoomBy(H,qe,Se,Ne,Or/j.current,Ar/j.current),x()},I.current=()=>{Te.current()},Ue.current=(H,he)=>{let be=j.current,Se=Math.max(Or,Math.min(Ar,be*H));j.current=Se,Ie.current=!0,z(Se);let Ne=se.visible??se,Ge={x:Ne.width/2,y:Ne.height/2};b(qe=>ct(qe,fr(qe.pan??{x:0,y:0},Me.current,he,Ge,Se/be)))};let Qt=(H,he,be=At(se))=>b(Se=>ct(Se,ue(be,{x:(Se.pan?.x??0)+H,y:(Se.pan?.y??0)+he})));la(g,B,(H,he)=>Qt(H,he)),X.current=(H,he)=>{Ze();let be=At(se),Se=f.pan??{x:0,y:0},Ne=Le.offset();Le.shiftTo(ue(be,{x:Se.x+Ne.x+H,y:Se.y+Ne.y+he}),Se),x()};let _n=ol(),Kn=zt(),Ht=(0,K.useCallback)(H=>ln(Kn,H).connector.visible,[Kn]),lt=H=>xn(ne.nodes.find(he=>he.id===H)),Sn=(H,he,be,Se)=>H.originY+ge.y+cn(be.col+be.side/Se,be.row+be.side/Se,H.cell,H.tilt).y-he.y,nt={width:se.width,height:se.height},Mn={position:"relative",zIndex:We.stage,...nt},Zt=H=>br(ne,g.current,u,m,H),Xe=H=>tt||le.has(H),Un=dr(c),Jt=H=>(0,fe.jsx)(rr.Provider,{value:Un,children:H}),Bt=ne.nodes.filter(H=>H.screenOf===void 0).map(H=>(0,fe.jsx)(ds,{node:H,crowded:cs(H),useDom:Xe(H.id),blur:qt||!tt&&$e,...H.plot&&ne.city&&Math.round(H.plane)===2?{frontY:Sn(ne.city,H,H.plot,1),centerY:Sn(ne.city,H,H.plot,2)}:{},touched:pt.has(H.id),...Vd(xn(H)),scheme:u,canvasWidth:se.width,canvasHeight:se.height,selected:h.includes(H.id),..._n(H),onMenu:E,selection:h,onDragStart:he=>vt(H,he),onDragMove:vn,onDragEnd:kn,onDragCancel:Yn,swallowClick:gt,children:H.beyond?(0,fe.jsx)(Ra,{kinds:H.beyond}):H.aggregate?.opens?(0,fe.jsx)(La,{node:H}):(0,fe.jsx)(Aa,{node:H,mode:"scene",selected:h.includes(H.id),...cs(H)?{fidelity:"glyph"}:{}})},H.id));return(0,fe.jsxs)("div",{ref:g,className:`graview-ground${r?` ${r}`:""}`,"data-graview-altitude":f.overview?"":void 0,"data-graview-reach":ne.city?Gd(At(se)):void 0,"data-graview-settled":ne.t>=1&&!xt.gliding()?"":void 0,"data-graview-box":L?`${L.width}x${L.height}`:void 0,"data-graview-renderer":tt?"dom":"gpu","data-graview-blur":(tt?qt:$e)?"":void 0,onPointerDown:H=>{kt.onPointerDown(H),zn(H)},onPointerMove:H=>{kt.onPointerMove(H),vn(H)},onPointerUp:()=>{kt.onPointerUp(),kn()},onPointerCancel:()=>{kt.onPointerUp(),Yn()},onContextMenu:kt.onContextMenu,onClick:H=>{gt.current||H.target.closest("[data-graview-view], button, aside, section[aria-label], [data-graview-offstage], a, input, select")||(y([]),E(null))},style:{position:"relative",width:"100%",height:"100%",cursor:"grab",touchAction:"none",overscrollBehavior:"contain","--graview-altitude":f.overview?1:0,...ne.city?{"--graview-lattice-cell":`${ne.city.cell.toFixed(2)}px`,"--graview-lattice-tilt":(ne.city.tilt??.5).toFixed(3),"--graview-lattice-x":`${(ne.city.originX+ne.city.pan.x).toFixed(1)}px`,"--graview-lattice-y":`${(ne.city.originY+ne.city.pan.y).toFixed(1)}px`}:{},overflow:"hidden",...i},children:[(0,fe.jsx)("div",{className:"graview-measure","aria-hidden":"true",style:{"--graview-world-x":`${(ne.pan?.x??0).toFixed(1)}px`,"--graview-world-y":`${(ne.pan?.y??0).toFixed(1)}px`}}),f.overview&&ne.city?(0,fe.jsx)(K.Suspense,{fallback:null,children:(0,fe.jsx)(al,{frame:ne,...nt,pan:ne.city.pan,store:a,graphVersion:N,selection:h,view:{overview:f.overview,focusId:f.focusId,beside:T},emphasis:k,hiddenKinds:c.hiddenKinds,drawn:Ht})}):null,(0,fe.jsx)("div",{ref:S,"aria-hidden":"true",style:{position:"absolute",top:0,right:0,width:"var(--graview-dock, 0px)",height:"var(--graview-sheet, 0px)",visibility:"hidden",pointerEvents:"none"}}),ne.city?(0,fe.jsx)(K.Suspense,{fallback:null,children:(0,fe.jsx)(dl,{frame:ne,...nt,pan:ne.city?ne.city.pan:ge,brand:w,pinned:te,close:q*P>1.2,swallowed:gt,...f.overview?{chosen:Nn(h,{overview:f.overview,focusId:f.focusId,beside:T},H=>a.graph.getNode(H)?.kind).records}:{},onFocus:H=>{let he=He(H);he!==null&&b(be=>Et(be,Be(he)))}})}):null,f.overview&&ne.city&&l?(0,fe.jsx)(K.Suspense,{fallback:null,children:(0,fe.jsx)(ll,{frame:ne,...nt,pan:ne.city.pan,app:c.app,workflows:l,acts:a.allMutations(),runs:c.workflowRuns,graphVersion:N,hiddenKinds:c.hiddenKinds})}):null,tt?(0,fe.jsx)("div",{"data-graview-stage":"dom","data-graview-world":"",style:{...Mn,overflow:"hidden"},children:Jt(Bt)}):(0,fe.jsxs)("div",{"data-graview-world":"",style:Mn,children:[(0,fe.jsx)("div",{"data-graview-stage":"dom","data-graview-under-canvas":"",style:{position:"absolute",left:0,top:0,...nt,overflow:"hidden"},children:Jt(Bt.filter(H=>le.has(String(H.key))))}),(0,fe.jsx)("canvas",{ref:F,"data-graview-stage":"gpu",content:"drawable",layoutsubtree:"",...nt,style:{display:"block",position:"relative",...nt},children:Jt(Bt.filter(H=>!le.has(String(H.key))))})]}),f.overview?(0,fe.jsx)(na,{result:se,schema:a.schema,chrome:[...oe.chrome??[],...Q?[Q]:[],...aa(et,se.nodes)],onGo:H=>{Qt(H.x,H.y),x()}}):null,f.overview&&!Z?(0,fe.jsx)(cl,{zoom:P,zoomBy:H=>V.current(H),above:re,setAbove:v}):null,(0,fe.jsx)(ns,{frame:ne,focusId:f.focusId,beside:T,holding:at,...nt,scheme:u,overview:!!f.overview,selection:h,emphasis:k,stageRef:g,store:a,graphNodes:N,...(H=>H?{provisional:H}:{})(ts(a)),onPickEdge:(H,he)=>{gt.current||(y([H]),E(he?{...he,on:H}:null))},liveOf:H=>{let he=lt(H.from),be=lt(H.to);return he?.wrote&&be?.wrote?he.at>be.at?he:be:void 0}}),(0,fe.jsx)(ea,{width:se.width,whereIs:Zt}),(0,fe.jsx)(Ji,{marks:bn.marks,questions:[...A.values()].filter(H=>H.mode==="asking"&&H.at!==null&&H.say).map(H=>({id:H.at,who:H.who,asks:H.say})),whereIs:Zt,stageRef:g,...nt}),(0,fe.jsx)(rs,{nodes:ne.nodes,moving:ne.t<1,holding:at,scheme:u,width:se.width,stageRef:g}),d,(0,fe.jsx)("div",{className:"graview-lattice","aria-hidden":"true"})]})}var it=ae(Pe(),1);function hl(){return ys(),null}var gs=()=>window.location.pathname.endsWith(jo),ms=()=>(gs()?zo:Nr)(window.location.hash),fl=e=>(gs()?Yo:Ir)(e);function ys(){let{view:e,setView:t,views:n,principal:o}=xe(),r=JSON.stringify(o),i=(0,it.useCallback)(a=>{let u=a.within?.view;if(u===void 0||a.focusId)return a;let m=n.places().find(f=>f.as===u);return m?{...a,focusId:Be(m.kind)}:a},[n]),s=(0,it.useRef)(!1);(0,it.useEffect)(()=>{if(typeof window>"u")return;let a=i(ms());!tr(a,Tr)&&!tr(a,e)&&(s.current=!0,t(a))},[]),(0,it.useEffect)(()=>{if(typeof window>"u")return;let a=()=>t(i(ms()));return window.addEventListener("popstate",a),window.addEventListener("hashchange",a),()=>{window.removeEventListener("popstate",a),window.removeEventListener("hashchange",a)}},[t,i]);let d=(0,it.useRef)(!1),c=(0,it.useRef)(null),l=(0,it.useRef)(r);(0,it.useEffect)(()=>{if(typeof window>"u")return;if(s.current){s.current=!1;return}let a=l.current!==r;l.current=r;let u=fl(e),m=u||`${window.location.pathname}${window.location.search}`;if((window.location.hash||(window.location.href.includes("#")?"#":""))===u){d.current=!0,c.current=e;return}if(!d.current){d.current=!0,c.current=e,window.history.replaceState({graview:Gt.at},"",m);return}if(a||ws(c.current,e)){window.history.replaceState({graview:Gt.at},"",m),c.current=e;return}c.current=e,window.history.pushState({graview:++Gt.at},"",m),Gt.depth=Gt.at,Gt.tell()},[e,r])}function ws(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(",")&&ml(e.within,t.within):!1}function ml(e,t){let n=o=>Object.entries(o??{}).sort(([r],[i])=>r.localeCompare(i)).map(([r,i])=>`${r}=${i}`).join("&");return n(ps(e))===n(ps(t))}function ps(e){if(!e||!("q"in e))return e;let{q:t,...n}=e;return n}var Do=ae(Pe(),1);var bs=new WeakMap,pl=64,xs=new WeakMap,gl=0,yl=e=>{if(e===void 0)return 0;let t=xs.get(e);return t===void 0&&xs.set(e,t=gl+=1),t};function vs(e,t,n,o={}){let r=()=>{let l=[...new Set(t.flatMap(u=>An(u)))],a=t.map(u=>Ft(u)).filter(u=>u!==null);return xi(e,t,{...n.principal?{principal:n.principal}:{},kindSelection:l,edgeSelection:a,...n.providers?{providers:n.providers}:{},...n.pins?{pins:n.pins}:{},...n.focus!==void 0?{focus:n.focus}:{},...o})};if(Object.keys(o).length>0)return r();let i=bs.get(e);if(!i){let l={kept:new Map,at:e.log.length};bs.set(e,i=l),e.subscribe(()=>l.kept.clear())}i.at!==e.log.length&&(i.kept.clear(),i.at=e.log.length);let s=JSON.stringify([t,n.principal??null,yl(n.providers),n.pins??null,n.focus??null]),d=i.kept.get(s);if(d)return d;let c=r();return i.kept.set(s,c),i.kept.size>pl&&i.kept.delete(i.kept.keys().next().value),c}function wl(e,t,n={}){return vs(e,t,n)}function bl(e={}){let{store:t,selection:n,principal:o,providers:r}=xe(),{about:i,principal:s=o,providers:d=r,pins:c,focus:l,...a}=e,u=i??n,m=Vt();return(0,Do.useMemo)(()=>vs(t,u,{principal:s,providers:d,pins:c,focus:l},a),[t,u,e,m,s,d])}function xl(){let{store:e,principal:t}=xe();return(0,Do.useMemo)(()=>({preview:(n,o)=>ki(e,n,o??{},{pressed:t?{author:t}:{}}),apply:(n,o)=>vi(e,n,o??{},{author:t})}),[e,t])}export{Ds as a,$s as b,Fs as c,Ws as d,js as e,Vs as f,Os as g,ul as h,hl as i,wl as j,bl as k,xl as l};
@@ -5,70 +5,70 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>Graview preview</title>
7
7
  <link rel="preload" href="/graview/document" as="fetch" crossorigin="anonymous">
8
- <link rel="modulepreload" href="/chunk.K5YFUMRS.js">
9
- <link rel="modulepreload" href="/chunk.XJWKIXPV.js">
10
- <link rel="modulepreload" href="/chunk.TOLW64EO.js">
11
- <link rel="modulepreload" href="/chunk.4VRX7FCO.js">
8
+ <link rel="modulepreload" href="/chunk.DICM56FT.js">
9
+ <link rel="modulepreload" href="/chunk.LVD3V77M.js">
10
+ <link rel="modulepreload" href="/chunk.Z34KASY7.js">
11
+ <link rel="modulepreload" href="/chunk.BUQKRXI6.js">
12
12
  <link rel="modulepreload" href="/chunk.Q5WEOX3Q.js">
13
- <link rel="modulepreload" href="/chunk.DUP2CGVH.js">
14
- <link rel="modulepreload" href="/chunk.YMXWS4XN.js">
15
- <link rel="modulepreload" href="/chunk.3FKKH2XU.js">
16
- <link rel="modulepreload" href="/chunk.DLWFULWE.js">
17
- <link rel="modulepreload" href="/chunk.VLX7YWVH.js">
13
+ <link rel="modulepreload" href="/chunk.INTJD5WG.js">
14
+ <link rel="modulepreload" href="/chunk.CD6YWH6T.js">
15
+ <link rel="modulepreload" href="/chunk.MD36ZSM5.js">
16
+ <link rel="modulepreload" href="/chunk.L6FGKJ5H.js">
17
+ <link rel="modulepreload" href="/chunk.3CJLAJXP.js">
18
18
  <link rel="modulepreload" href="/chunk.SDO3U72B.js">
19
- <link rel="modulepreload" href="/chunk.IQGSEAQ2.js">
19
+ <link rel="modulepreload" href="/chunk.J24YPQ5I.js">
20
20
  <link rel="modulepreload" href="/chunk.FQLNBIQ5.js">
21
21
  <link rel="modulepreload" href="/chunk.AJZBJBMO.js">
22
- <link rel="modulepreload" href="/chunk.3J7XLJP2.js">
23
- <link rel="modulepreload" href="/chunk.4Q5PCMGZ.js">
24
- <link rel="modulepreload" href="/chunk.2VIS2NAT.js">
25
- <link rel="modulepreload" href="/chunk.KHXRJLLU.js">
26
- <link rel="modulepreload" href="/chunk.GHHKRFPD.js">
27
- <link rel="modulepreload" href="/chunk.6NRWLCIZ.js">
22
+ <link rel="modulepreload" href="/chunk.ABSY3UZF.js">
23
+ <link rel="modulepreload" href="/chunk.LQWVJQ5X.js">
24
+ <link rel="modulepreload" href="/chunk.KV7GZBJ6.js">
25
+ <link rel="modulepreload" href="/chunk.5YNLFOBJ.js">
26
+ <link rel="modulepreload" href="/chunk.FHHVW2WB.js">
28
27
  <link rel="modulepreload" href="/chunk.Q355UPFG.js">
29
- <link rel="modulepreload" href="/chunk.ZQGLPP7A.js">
30
- <link rel="modulepreload" href="/chunk.7SRSE5IS.js">
31
- <link rel="modulepreload" href="/chunk.VZAF3452.js">
32
- <link rel="modulepreload" href="/chunk.WHX47OJM.js">
33
- <link rel="modulepreload" href="/chunk.QRT6BZR6.js">
34
- <link rel="modulepreload" href="/chunk.2V7QTIAV.js">
35
- <link rel="modulepreload" href="/chunk.Z26T5E76.js">
36
- <link rel="modulepreload" href="/chunk.77JI5T4F.js">
37
- <link rel="modulepreload" href="/chunk.SADHOSRC.js">
38
- <link rel="modulepreload" href="/chunk.4DZOAB4D.js">
39
- <link rel="modulepreload" href="/chunk.UDU545CL.js">
40
- <link rel="modulepreload" href="/chunk.7VAHHEDX.js">
41
- <link rel="modulepreload" href="/chunk.P4TAX3HE.js">
42
- <link rel="modulepreload" href="/chunk.T4TRJDBF.js">
43
- <link rel="modulepreload" href="/chunk.2TCOLAL2.js">
44
- <link rel="modulepreload" href="/chunk.2VYGDY5Z.js">
45
- <link rel="modulepreload" href="/chunk.FUPYIOXZ.js">
46
- <link rel="modulepreload" href="/chunk.APRWUIE3.js">
47
- <link rel="modulepreload" href="/chunk.3OEODIHB.js">
48
- <link rel="modulepreload" href="/chunk.WFCE7NLK.js">
49
- <link rel="modulepreload" href="/chunk.HZPRMHSL.js">
28
+ <link rel="modulepreload" href="/chunk.HNMSYQRA.js">
29
+ <link rel="modulepreload" href="/chunk.SOMRYDDH.js">
30
+ <link rel="modulepreload" href="/chunk.44ZHHPPJ.js">
31
+ <link rel="modulepreload" href="/chunk.ZDUTEM3Z.js">
32
+ <link rel="modulepreload" href="/chunk.ARHAD5IS.js">
33
+ <link rel="modulepreload" href="/chunk.R2TSTDS3.js">
34
+ <link rel="modulepreload" href="/chunk.QSDBF7VL.js">
35
+ <link rel="modulepreload" href="/chunk.2PK335JQ.js">
36
+ <link rel="modulepreload" href="/chunk.MHTA4HYB.js">
37
+ <link rel="modulepreload" href="/chunk.BU5PVRX7.js">
38
+ <link rel="modulepreload" href="/chunk.3KUYB5ZT.js">
39
+ <link rel="modulepreload" href="/chunk.IMKD6QQG.js">
40
+ <link rel="modulepreload" href="/chunk.MB7LKKUD.js">
41
+ <link rel="modulepreload" href="/chunk.FXG5AJF6.js">
42
+ <link rel="modulepreload" href="/chunk.RFVOXX3P.js">
43
+ <link rel="modulepreload" href="/chunk.NKYYDFIX.js">
44
+ <link rel="modulepreload" href="/chunk.IR4OW67N.js">
45
+ <link rel="modulepreload" href="/chunk.6RZHKQP3.js">
46
+ <link rel="modulepreload" href="/chunk.N35SJWAM.js">
47
+ <link rel="modulepreload" href="/chunk.L7NJLZWV.js">
48
+ <link rel="modulepreload" href="/chunk.QO5RXOCS.js">
49
+ <link rel="modulepreload" href="/chunk.XTTESA7X.js">
50
50
  <link rel="modulepreload" href="/chunk.BJUUSIQY.js">
51
- <link rel="modulepreload" href="/chunk.TQ2G4AM4.js">
52
- <link rel="modulepreload" href="/chunk.X36BYTEG.js">
51
+ <link rel="modulepreload" href="/chunk.J6KNEI5R.js">
52
+ <link rel="modulepreload" href="/chunk.2YMO7ZVX.js">
53
53
  <link rel="modulepreload" href="/chunk.XOZU4OFA.js">
54
- <link rel="modulepreload" href="/chunk.G7YLK4PX.js">
55
- <link rel="modulepreload" href="/chunk.MB7LKKUD.js">
56
- <link rel="modulepreload" href="/chunk.WVUJXDXZ.js">
57
- <link rel="modulepreload" href="/chunk.ZA5TDCBC.js">
58
- <link rel="modulepreload" href="/chunk.2JEN2RCB.js">
59
- <link rel="modulepreload" href="/chunk.7CLKGKSF.js">
60
- <link rel="modulepreload" href="/chunk.TMHVYI5R.js">
61
- <link rel="modulepreload" href="/chunk.R5MLRKAO.js">
62
- <link rel="modulepreload" href="/chunk.GZHZLJBF.js">
63
- <link rel="modulepreload" href="/chunk.3SAESG6X.js">
54
+ <link rel="modulepreload" href="/chunk.5M34BJIQ.js">
55
+ <link rel="modulepreload" href="/chunk.MIE4TJRW.js">
56
+ <link rel="modulepreload" href="/chunk.CXJJB3MK.js">
64
57
  <link rel="modulepreload" href="/chunk.OJGHDWI6.js">
65
- <link rel="modulepreload" href="/chunk.F6BNFLQM.js">
66
- <link rel="modulepreload" href="/chunk.75JQCTR6.js">
67
- <link rel="modulepreload" href="/chunk.5IEZF433.js">
68
- <link rel="modulepreload" href="/chunk.5AD2QHWH.js">
69
- <link rel="modulepreload" href="/chunk.52MBXPEK.js">
70
- <link rel="modulepreload" href="/chunk.4U45EY5M.js">
71
- <script>(()=>{const later=["/chunk.GFQPO3NC.js","/chunk.2DH42I7L.js","/chunk.2D7K2IJQ.js","/chunk.HJCQ6I3S.js","/chunk.DQAMVVE6.js","/chunk.OXFDB5BB.js","/chunk.DJIF7IAQ.js","/chunk.BIDL7GQD.js","/chunk.TA2JTUNX.js","/chunk.2E62YCMZ.js","/chunk.YEXFVDRA.js","/chunk.HSJEOM3W.js","/chunk.37I45R6V.js","/chunk.CC7P435K.js","/chunk.ATHLE33D.js","/chunk.APUQIELA.js","/chunk.S6QZBWCJ.js","/chunk.LTOQ22ZJ.js","/chunk.U5P23GO7.js","/chunk.M5VHUIDB.js"],first=[...document.querySelectorAll('link[rel="modulepreload"]')];let left=first.length;const go=()=>{for(const href of later){const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};if(left===0)return go();const one=()=>{if(--left===0)go()};for(const link of first){link.addEventListener("load",one,{once:true});link.addEventListener("error",one,{once:true})}})()</script>
58
+ <link rel="modulepreload" href="/chunk.74B6KQF4.js">
59
+ <link rel="modulepreload" href="/chunk.WVUJXDXZ.js">
60
+ <link rel="modulepreload" href="/chunk.S2DOVJRL.js">
61
+ <link rel="modulepreload" href="/chunk.64FCAUAJ.js">
62
+ <link rel="modulepreload" href="/chunk.DA4RSHLW.js">
63
+ <link rel="modulepreload" href="/chunk.FOSY7MZF.js">
64
+ <link rel="modulepreload" href="/chunk.NBVPWLRY.js">
65
+ <link rel="modulepreload" href="/chunk.S3EEY7T3.js">
66
+ <link rel="modulepreload" href="/chunk.SPCAMQJE.js">
67
+ <link rel="modulepreload" href="/chunk.TUCSUZNO.js">
68
+ <link rel="modulepreload" href="/chunk.ZMWAZACO.js">
69
+ <link rel="modulepreload" href="/chunk.OHMHPTEW.js">
70
+ <link rel="modulepreload" href="/chunk.7Q43N5JS.js">
71
+ <script>(()=>{const later=["/chunk.K3JARAWU.js","/chunk.FDWRH5P2.js","/chunk.ZZM75ZTN.js","/chunk.ISN2QTVL.js","/chunk.HJCQ6I3S.js","/chunk.ZJFXM3LE.js","/chunk.PTQPS2FJ.js","/chunk.XSWR5LI4.js","/chunk.BIDL7GQD.js","/chunk.UHI3X2YD.js","/chunk.2QQ37RCZ.js","/chunk.UDVTPI2W.js","/chunk.4GJ7F4SP.js","/chunk.BOC2EOGB.js","/chunk.M5W2RHC6.js","/chunk.GPCKOYSF.js","/chunk.UETLP5KC.js","/chunk.IQC3GOXO.js","/chunk.U5P23GO7.js","/chunk.4PCVQEVI.js"],first=[...document.querySelectorAll('link[rel="modulepreload"]')];let left=first.length;const go=()=>{for(const href of later){const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};if(left===0)return go();const one=()=>{if(--left===0)go()};for(const link of first){link.addEventListener("load",one,{once:true});link.addEventListener("error",one,{once:true})}})()</script>
72
72
  <style>html,body{margin:0;height:100%}#graview-app{min-height:100dvh}</style>
73
73
  </head>
74
74
  <body>