graview 0.1.70 → 0.1.72

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 (235) hide show
  1. package/dist/preview/chunk.2IOJNFCR.js +1 -0
  2. package/dist/preview/{chunk.I7CSRZC2.js → chunk.2Q4ZXP7P.js} +1 -1
  3. package/dist/preview/{chunk.O2XPLDMM.js → chunk.2TTKQAWQ.js} +1 -1
  4. package/dist/preview/chunk.2YSE3SQN.js +23 -0
  5. package/dist/preview/{chunk.NZFO6BM3.js → chunk.2ZPR6FRI.js} +1 -1
  6. package/dist/preview/chunk.3BE4SHZD.js +1 -0
  7. package/dist/preview/{chunk.QODVFVWE.js → chunk.43HWCHBN.js} +1 -1
  8. package/dist/preview/{chunk.QILGAV7H.js → chunk.45OLF6BK.js} +1 -1
  9. package/dist/preview/{chunk.NTAC5NNE.js → chunk.47QWCVZD.js} +1 -1
  10. package/dist/preview/{chunk.7HNMG6LG.js → chunk.4A7BRBEA.js} +1 -1
  11. package/dist/preview/chunk.4EPCI6VY.js +1 -0
  12. package/dist/preview/{chunk.OXXZGPJZ.js → chunk.4PB5UFUJ.js} +1 -1
  13. package/dist/preview/{chunk.SWY6DIE4.js → chunk.4TDYDIIM.js} +3 -3
  14. package/dist/preview/{chunk.6VG2LCES.js → chunk.4VX7GPFS.js} +1 -1
  15. package/dist/preview/{chunk.TUVPQLFL.js → chunk.523X2YEQ.js} +1 -1
  16. package/dist/preview/{chunk.CHG522KL.js → chunk.53GQQETN.js} +1 -1
  17. package/dist/preview/{chunk.NBB5ALVJ.js → chunk.5MKZTHU2.js} +1 -1
  18. package/dist/preview/chunk.5OS4SYHE.js +1 -0
  19. package/dist/preview/{chunk.ZTHZHBVN.js → chunk.5ZT4R227.js} +1 -1
  20. package/dist/preview/{chunk.RIP2SAQ5.js → chunk.65SI77M7.js} +1 -1
  21. package/dist/preview/chunk.6ESAFTWB.js +1 -0
  22. package/dist/preview/chunk.6GUIFP2A.js +1 -0
  23. package/dist/preview/{chunk.M3HLZX6Q.js → chunk.6GZYKHEN.js} +1 -1
  24. package/dist/preview/{chunk.UVMHC6VM.js → chunk.6YKKZI4H.js} +1 -1
  25. package/dist/preview/{chunk.BBLA4PSP.js → chunk.73RMM4W7.js} +1 -1
  26. package/dist/preview/chunk.7DCBIMOI.js +1 -0
  27. package/dist/preview/chunk.7JE3J7H4.js +1 -0
  28. package/dist/preview/{chunk.YTRUZ56A.js → chunk.7QGDWAHH.js} +1 -1
  29. package/dist/preview/{chunk.JEQ6CA5M.js → chunk.7VCYVCYM.js} +2 -2
  30. package/dist/preview/{chunk.X7HMTN3Z.js → chunk.A4TBVXHQ.js} +1 -1
  31. package/dist/preview/{chunk.J4NY2K2A.js → chunk.A6LJPXJ3.js} +1 -1
  32. package/dist/preview/chunk.AAPXF6NP.js +1 -0
  33. package/dist/preview/chunk.APUICV5Z.js +1 -0
  34. package/dist/preview/chunk.ASNVH2G4.js +25 -0
  35. package/dist/preview/{chunk.CM7EDQ4E.js → chunk.CJHCUHVN.js} +1 -1
  36. package/dist/preview/chunk.CUEPNS3Z.js +1 -0
  37. package/dist/preview/{chunk.U3CV227I.js → chunk.CUJRWBPX.js} +1 -1
  38. package/dist/preview/{chunk.7TZXDPPO.js → chunk.D5PW6YWF.js} +3 -3
  39. package/dist/preview/chunk.DCIYOZYP.js +1 -0
  40. package/dist/preview/chunk.DEBW4FH6.js +1 -0
  41. package/dist/preview/{chunk.MR776WQ2.js → chunk.DYPSFTRP.js} +1 -1
  42. package/dist/preview/{chunk.BBMX3IIO.js → chunk.E6QZUT4L.js} +1 -1
  43. package/dist/preview/chunk.E7QZZRAQ.js +17 -0
  44. package/dist/preview/chunk.EHCMBAZO.js +3 -0
  45. package/dist/preview/chunk.EXTD5JWD.js +1 -0
  46. package/dist/preview/{chunk.KOVTQCHX.js → chunk.EZF2T3XQ.js} +1 -1
  47. package/dist/preview/chunk.EZSST3IU.js +1 -0
  48. package/dist/preview/{chunk.DIVANC3G.js → chunk.F2BZ4SC4.js} +1 -1
  49. package/dist/preview/chunk.F2I7ERGM.js +1 -0
  50. package/dist/preview/{chunk.UWEFODVV.js → chunk.FCV3NX6L.js} +1 -1
  51. package/dist/preview/{chunk.NZ5TJKPT.js → chunk.FFTBUXKX.js} +2 -2
  52. package/dist/preview/chunk.FILBI7XA.js +1 -0
  53. package/dist/preview/{chunk.MGG5DH2S.js → chunk.FKSI5522.js} +1 -1
  54. package/dist/preview/{chunk.I3ADXJQW.js → chunk.FQ2QUDZS.js} +1 -1
  55. package/dist/preview/{chunk.A5ENJJZN.js → chunk.G2ZDDO3C.js} +1 -1
  56. package/dist/preview/{chunk.IPKODEOZ.js → chunk.GAVEWSXU.js} +1 -1
  57. package/dist/preview/chunk.GH6QX7JR.js +87 -0
  58. package/dist/preview/chunk.GMHBAS45.js +1 -0
  59. package/dist/preview/{chunk.YCMMATFK.js → chunk.GOVRX2YX.js} +1 -1
  60. package/dist/preview/chunk.GXK5PI7I.js +1 -0
  61. package/dist/preview/{chunk.RECTEAG4.js → chunk.GYP3EF6Z.js} +1 -1
  62. package/dist/preview/chunk.H2RVMT4Y.js +111 -0
  63. package/dist/preview/chunk.HCHGKI64.js +1 -0
  64. package/dist/preview/chunk.HE7SAJKZ.js +1 -0
  65. package/dist/preview/{chunk.WAIIXXVI.js → chunk.HIIYDKFC.js} +2 -2
  66. package/dist/preview/chunk.HPDUGKEF.js +32 -0
  67. package/dist/preview/{chunk.DGDOZHYK.js → chunk.HQRPOGTS.js} +1 -1
  68. package/dist/preview/chunk.HUJLELZ3.js +1 -0
  69. package/dist/preview/chunk.HVRUHRXR.js +1 -0
  70. package/dist/preview/{chunk.6KYTCEIH.js → chunk.I46VNAMS.js} +1 -1
  71. package/dist/preview/{chunk.QAERSZVB.js → chunk.ID4GOKT6.js} +1 -1
  72. package/dist/preview/{chunk.RJ7UV3XI.js → chunk.IZKCTF2R.js} +1 -1
  73. package/dist/preview/chunk.IZUAZ6EV.js +1 -0
  74. package/dist/preview/{chunk.ZIGW5VOT.js → chunk.J3CUBMUZ.js} +1 -1
  75. package/dist/preview/{chunk.3HFBHLXC.js → chunk.J4D4BIB4.js} +1 -1
  76. package/dist/preview/{chunk.IRPMGHZN.js → chunk.J7GH2CGV.js} +1 -1
  77. package/dist/preview/{chunk.SSHEFQ4R.js → chunk.JE4RBRKH.js} +1 -1
  78. package/dist/preview/{chunk.4BSEYZMS.js → chunk.JJSZLCNU.js} +1 -1
  79. package/dist/preview/{chunk.KV3N6VRG.js → chunk.JKX4J3KG.js} +1 -1
  80. package/dist/preview/{chunk.FUTSLXWN.js → chunk.JMXBMLKH.js} +1 -1
  81. package/dist/preview/chunk.JOB3EKS6.js +1 -0
  82. package/dist/preview/{chunk.5IM2X3VT.js → chunk.JP33TNCH.js} +1 -1
  83. package/dist/preview/{chunk.BZXJKWNI.js → chunk.K6EN2YR4.js} +1 -1
  84. package/dist/preview/chunk.K6YKXTKC.js +1 -0
  85. package/dist/preview/{chunk.A7JORJJL.js → chunk.KAIZDIRK.js} +1 -1
  86. package/dist/preview/{chunk.7LAXSQQY.js → chunk.KAQGSLC6.js} +3 -3
  87. package/dist/preview/{chunk.QG3LV4RH.js → chunk.KFYSKZC4.js} +1 -1
  88. package/dist/preview/{chunk.VBHV4TLG.js → chunk.KHRS2SKB.js} +1 -1
  89. package/dist/preview/chunk.KHVW6Q3T.js +1 -0
  90. package/dist/preview/chunk.KMFH26SS.js +1 -0
  91. package/dist/preview/{chunk.2T24FYAO.js → chunk.L3ST2YKI.js} +1 -1
  92. package/dist/preview/{chunk.HIJ72QX6.js → chunk.L6BLZJ6K.js} +1 -1
  93. package/dist/preview/{chunk.NCBUECIW.js → chunk.LG2BQ5LB.js} +1 -1
  94. package/dist/preview/{chunk.LZ3HO3HM.js → chunk.LLYHHG67.js} +1 -1
  95. package/dist/preview/{chunk.VKQONZKR.js → chunk.LPWANRBL.js} +1 -1
  96. package/dist/preview/{chunk.3MPLUSVY.js → chunk.LSS64NAA.js} +1 -1
  97. package/dist/preview/{chunk.SUYYDJGZ.js → chunk.MFNWHXGL.js} +1 -1
  98. package/dist/preview/{chunk.UJF6YTEO.js → chunk.MNH3WUAB.js} +1 -1
  99. package/dist/preview/chunk.MQ7AB5N4.js +1 -0
  100. package/dist/preview/{chunk.CZUUFO6A.js → chunk.MU5JK5TK.js} +1 -1
  101. package/dist/preview/{chunk.RXUL6P7Y.js → chunk.N5CACZ5F.js} +1 -1
  102. package/dist/preview/{chunk.S6IKR6RD.js → chunk.NFC2TYA6.js} +1 -1
  103. package/dist/preview/{chunk.TD2V74XU.js → chunk.NKRDVOLJ.js} +1 -1
  104. package/dist/preview/{chunk.SGYZM6ZU.js → chunk.NNK2E2EP.js} +1 -1
  105. package/dist/preview/{chunk.J65CZJIC.js → chunk.NVPKYWMF.js} +1 -1
  106. package/dist/preview/{chunk.DWMFLLJO.js → chunk.NWJ7ELHN.js} +1 -1
  107. package/dist/preview/{chunk.NKUNCQB3.js → chunk.O5P6LXHF.js} +1 -1
  108. package/dist/preview/{chunk.2MWEYNVH.js → chunk.OFK6673S.js} +1 -1
  109. package/dist/preview/{chunk.C4LC2UEU.js → chunk.OG6FEP3K.js} +1 -1
  110. package/dist/preview/{chunk.CZI6J5CE.js → chunk.OHGAZ3D5.js} +1 -1
  111. package/dist/preview/{chunk.XJ4JYROM.js → chunk.ONVYKLRX.js} +1 -1
  112. package/dist/preview/chunk.OQ3FKUP2.js +1 -0
  113. package/dist/preview/chunk.OUJV4CYS.js +1 -0
  114. package/dist/preview/{chunk.T552MHMU.js → chunk.OWHH7JDV.js} +1 -1
  115. package/dist/preview/{chunk.SCN6IYDG.js → chunk.OXDCGGZV.js} +1 -1
  116. package/dist/preview/{chunk.YIDNZTON.js → chunk.P3Z4ZCL3.js} +1 -1
  117. package/dist/preview/chunk.PF7XQ5R5.js +1 -0
  118. package/dist/preview/{chunk.FSZQTX3K.js → chunk.PGT4ZQDG.js} +4 -4
  119. package/dist/preview/chunk.PH547SON.js +1 -0
  120. package/dist/preview/chunk.PS765ODQ.js +3 -0
  121. package/dist/preview/{chunk.MZSWWMX6.js → chunk.PVAYYFT2.js} +1 -1
  122. package/dist/preview/{chunk.F5STM4DX.js → chunk.Q6WOIE5I.js} +1 -1
  123. package/dist/preview/{chunk.55C7WO4X.js → chunk.QE257AXE.js} +1 -1
  124. package/dist/preview/chunk.QKNC5OUC.js +1 -0
  125. package/dist/preview/chunk.QMGBAKX6.js +2 -0
  126. package/dist/preview/{chunk.4QBW46XV.js → chunk.QNFX5VHW.js} +1 -1
  127. package/dist/preview/chunk.QPCDAQTW.js +1 -0
  128. package/dist/preview/{chunk.TS5APXWC.js → chunk.QPTQIGLX.js} +1 -1
  129. package/dist/preview/{chunk.LZNHTROY.js → chunk.R5YGW5ZX.js} +1 -1
  130. package/dist/preview/{chunk.4VTUC5TF.js → chunk.RJ6KEVZC.js} +1 -1
  131. package/dist/preview/{chunk.6QMRDSTD.js → chunk.RKVMRP7B.js} +1 -1
  132. package/dist/preview/{chunk.YBQUP3KE.js → chunk.S7U2CHHG.js} +1 -1
  133. package/dist/preview/{chunk.CLJKQLK2.js → chunk.SD2UYSV6.js} +2 -2
  134. package/dist/preview/chunk.SI5GGFQR.js +1 -0
  135. package/dist/preview/{chunk.7QWGIGHM.js → chunk.SMF5S4DQ.js} +1 -1
  136. package/dist/preview/{chunk.LEZGBHPZ.js → chunk.SNDFIJVX.js} +1 -1
  137. package/dist/preview/{chunk.F5756PXX.js → chunk.STHWM422.js} +2 -2
  138. package/dist/preview/{chunk.JIEBGUCA.js → chunk.SV75TRCH.js} +1 -1
  139. package/dist/preview/{chunk.U2DZE7A5.js → chunk.SXGPRFA4.js} +1 -1
  140. package/dist/preview/{chunk.ZGJUCVT5.js → chunk.T3RFZ66S.js} +1 -1
  141. package/dist/preview/{chunk.I6HIVTXU.js → chunk.T6ISUVUP.js} +1 -1
  142. package/dist/preview/{chunk.R65YX332.js → chunk.TBLOBXZ2.js} +1 -1
  143. package/dist/preview/{chunk.CVVNHQPO.js → chunk.TDWJU6GW.js} +1 -1
  144. package/dist/preview/{chunk.2QALBEWP.js → chunk.THLT6NVO.js} +1 -1
  145. package/dist/preview/{chunk.7FTATAH2.js → chunk.TQCVEKPH.js} +1 -1
  146. package/dist/preview/{chunk.PAIBRJVZ.js → chunk.TQF5XCUS.js} +1 -1
  147. package/dist/preview/{chunk.F5XWYO5W.js → chunk.TRP66PHK.js} +1 -1
  148. package/dist/preview/chunk.TWXYI5AP.js +2 -0
  149. package/dist/preview/{chunk.IQCMV5WD.js → chunk.UOUQZYVD.js} +1 -1
  150. package/dist/preview/{chunk.FJXKQZZS.js → chunk.UPL3D3ZO.js} +1 -1
  151. package/dist/preview/{chunk.U5Q7EVZQ.js → chunk.UXW43HNW.js} +1 -1
  152. package/dist/preview/{chunk.ZOSTOVXR.js → chunk.V4GSVXSV.js} +1 -1
  153. package/dist/preview/chunk.VCEDSOAK.js +1 -0
  154. package/dist/preview/{chunk.4O3STSC4.js → chunk.VE4AQFLW.js} +1 -1
  155. package/dist/preview/{chunk.HMV4ILAC.js → chunk.VGQDPEB5.js} +1 -1
  156. package/dist/preview/{chunk.5A5DI36V.js → chunk.VMYXBFPE.js} +1 -1
  157. package/dist/preview/{chunk.BQWMHHAZ.js → chunk.VNI6HZEF.js} +2 -2
  158. package/dist/preview/chunk.VQRY2NQ6.js +1 -0
  159. package/dist/preview/{chunk.K6EKSURO.js → chunk.VUE6ILQV.js} +1 -1
  160. package/dist/preview/{chunk.3KF5RYPW.js → chunk.W2VSEEKX.js} +1 -1
  161. package/dist/preview/{chunk.KP7HUXH5.js → chunk.WAPY4RCS.js} +1 -1
  162. package/dist/preview/chunk.WFRSGGU5.js +1 -0
  163. package/dist/preview/{chunk.XAN7QXMQ.js → chunk.WIVNFOQR.js} +1 -1
  164. package/dist/preview/chunk.WRIBFLVG.js +1 -0
  165. package/dist/preview/{chunk.TVNY7F64.js → chunk.WWD2TS47.js} +1 -1
  166. package/dist/preview/{chunk.5W7EGQCQ.js → chunk.WWFOQDPR.js} +2 -2
  167. package/dist/preview/{chunk.FBDCHJS2.js → chunk.X45EITTK.js} +1 -1
  168. package/dist/preview/{chunk.5FQHZVE3.js → chunk.X5MCAUFX.js} +1 -1
  169. package/dist/preview/{chunk.IJVR7ZL7.js → chunk.XBWFQ54R.js} +1 -1
  170. package/dist/preview/{chunk.JPJHM62B.js → chunk.XMBGT6UT.js} +1 -1
  171. package/dist/preview/chunk.XP4IVKKR.js +1 -0
  172. package/dist/preview/chunk.XYBWBMNU.js +1 -0
  173. package/dist/preview/{chunk.MYR36HW4.js → chunk.YC2IDHQX.js} +1 -1
  174. package/dist/preview/{chunk.ZQSV5XVB.js → chunk.YCYJHPWS.js} +1 -1
  175. package/dist/preview/{chunk.BJ3G7J2Z.js → chunk.YF5GCOSZ.js} +3 -2
  176. package/dist/preview/{chunk.3I2SGKKF.js → chunk.YGGBGHZU.js} +1 -1
  177. package/dist/preview/chunk.YRC6PKXP.js +1 -0
  178. package/dist/preview/{chunk.6NYSB6OZ.js → chunk.YRN67Z5K.js} +1 -1
  179. package/dist/preview/chunk.ZDUKVXBI.js +5 -0
  180. package/dist/preview/index.html +55 -55
  181. package/dist/preview/page.js +2 -2
  182. package/package.json +6 -6
  183. package/dist/preview/chunk.2QOB62XU.js +0 -1
  184. package/dist/preview/chunk.36FKQJFM.js +0 -2
  185. package/dist/preview/chunk.3A3DCALP.js +0 -1
  186. package/dist/preview/chunk.3GPYKWAD.js +0 -1
  187. package/dist/preview/chunk.3QPMFUMV.js +0 -1
  188. package/dist/preview/chunk.3ZP6IDUC.js +0 -1
  189. package/dist/preview/chunk.53HW224Y.js +0 -1
  190. package/dist/preview/chunk.AW74DZ5V.js +0 -17
  191. package/dist/preview/chunk.C67TMA4U.js +0 -111
  192. package/dist/preview/chunk.CCCSZRKU.js +0 -1
  193. package/dist/preview/chunk.CUA7F3YJ.js +0 -25
  194. package/dist/preview/chunk.DBSSCJQM.js +0 -1
  195. package/dist/preview/chunk.DW6KXAUM.js +0 -1
  196. package/dist/preview/chunk.DWPM7AWA.js +0 -1
  197. package/dist/preview/chunk.FXCKKVT5.js +0 -1
  198. package/dist/preview/chunk.HHQUCFN4.js +0 -1
  199. package/dist/preview/chunk.HPWMCS3H.js +0 -23
  200. package/dist/preview/chunk.HRLCDBMO.js +0 -1
  201. package/dist/preview/chunk.I7ODVOO5.js +0 -1
  202. package/dist/preview/chunk.IANOWT3Z.js +0 -1
  203. package/dist/preview/chunk.IFPJPJ4M.js +0 -1
  204. package/dist/preview/chunk.IUVRJDL3.js +0 -5
  205. package/dist/preview/chunk.J4CSY2D5.js +0 -2
  206. package/dist/preview/chunk.JJIKTTXB.js +0 -1
  207. package/dist/preview/chunk.KDOJC4FX.js +0 -1
  208. package/dist/preview/chunk.KJAOJTZZ.js +0 -1
  209. package/dist/preview/chunk.KLZPUTMU.js +0 -1
  210. package/dist/preview/chunk.LQ2PDW2M.js +0 -32
  211. package/dist/preview/chunk.M7DJJRFH.js +0 -1
  212. package/dist/preview/chunk.MNWP3TPN.js +0 -1
  213. package/dist/preview/chunk.MSWOETXN.js +0 -1
  214. package/dist/preview/chunk.NILR2BWR.js +0 -1
  215. package/dist/preview/chunk.NNYKLENL.js +0 -1
  216. package/dist/preview/chunk.PYGNO2AV.js +0 -87
  217. package/dist/preview/chunk.PZHCWMKT.js +0 -1
  218. package/dist/preview/chunk.QQUZ5RTQ.js +0 -1
  219. package/dist/preview/chunk.QVID5WHS.js +0 -1
  220. package/dist/preview/chunk.RHV73CBA.js +0 -3
  221. package/dist/preview/chunk.RP6C2IUM.js +0 -1
  222. package/dist/preview/chunk.RPHZY7N4.js +0 -1
  223. package/dist/preview/chunk.RSMCTI2N.js +0 -1
  224. package/dist/preview/chunk.S4QSZRKH.js +0 -1
  225. package/dist/preview/chunk.T4QRIJE4.js +0 -1
  226. package/dist/preview/chunk.UJM5EZDM.js +0 -3
  227. package/dist/preview/chunk.UJPX3BUV.js +0 -1
  228. package/dist/preview/chunk.UYBSVE2W.js +0 -1
  229. package/dist/preview/chunk.WMZ2BINI.js +0 -1
  230. package/dist/preview/chunk.X2RHBTJI.js +0 -1
  231. package/dist/preview/chunk.X3FPVFFB.js +0 -1
  232. package/dist/preview/chunk.X4PFLIXB.js +0 -1
  233. package/dist/preview/chunk.YR7DKU5T.js +0 -1
  234. package/dist/preview/chunk.ZBK3FCVE.js +0 -1
  235. package/dist/preview/chunk.ZH5L746C.js +0 -1
@@ -1,4 +1,4 @@
1
- var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as Yt,f as ct,g as Nn}from"./chunk.KP7HUXH5.js";import{h as Li}from"./chunk.FUTSLXWN.js";import{e as Ai,q as sr,r as Pi}from"./chunk.MZSWWMX6.js";import{b as Hn}from"./chunk.4QBW46XV.js";import{a as Fe,b as Zr,c as cn,d as Ti,e as Jr}from"./chunk.U5Q7EVZQ.js";import{a as Oi}from"./chunk.5IM2X3VT.js";import{a as Mi,b as Ei,c as Ri}from"./chunk.HMV4ILAC.js";import{b as ki,d as Si}from"./chunk.XAN7QXMQ.js";import{c as Go}from"./chunk.DW6KXAUM.js";import{A as xi,C as vi,a as fi,b as Kr,c as Ur,f as Xr,g as qr,h as Qr,i as mi,j as sn,k as dn,p as Gt,q as ln,r as yi,s as wi,z as bi}from"./chunk.RP6C2IUM.js";import{A as si,B as di,C as li,D as ci,E as ui,f as Jo,g as on,h as ei,i as ti,j as ni,k as ri,m as ar,n as Cn,o as In,p as an,q as _r,r as oi,s as ii,z as ai}from"./chunk.RD2FSSLV.js";import{a as pi,b as gi}from"./chunk.T552MHMU.js";import{b as hi}from"./chunk.QILGAV7H.js";import{$ as Wr,$a as Yr,A as bt,Aa as Zo,B as Fr,C as Ln,G as Ae,K as Ot,L as Uo,Oa as Tn,Ta as Vr,Ua as zr,Va as zt,Xa as Gr,Y as Pe,_ as or,a as Ir,b as Nr,c as Hr,d as Yo,da as jr,e as _o,ea as ir,f as nr,fa as jt,ga as ke,h as Ft,ia as Vt,j as Et,k as Br,l as rr,m as An,na as Xo,oa as qo,p as Dr,r as Oe,ra as rn,s as Be,t as Ko,ta as Qo,u as Pn,v as De,w as Wt,x as Rt,y as $r}from"./chunk.CUA7F3YJ.js";import{a as nn}from"./chunk.SDO3U72B.js";import{Ee as tr,Xc as On,ce as Cr,ee as jo,ha as Jn,la as Fo,ma as en,oa as tn,pa as $t,qa as er,ue as Vo,va as Wo,xd as We,xe as zo}from"./chunk.IUVRJDL3.js";import{b as se}from"./chunk.AJZBJBMO.js";var dr=se(Ae(),1);var Ci=se(Pe(),1);function lr(e){let t=(0,dr.useRef)(e);t.current=e;let n=(0,dr.useRef)(null),o=(0,dr.useRef)(new Map),r=n.current;if(r&&(r.outer===e||Ns(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,Is(t)):typeof l=="function"?s(c,l,(...a)=>t.current[c](...a)):l]));return n.current={outer:e,inner:d},d}function Is(e){return t=>e.current.setView(typeof t=="function"?t:n=>t.pan===void 0&&n.pan?{...t,pan:n.pan}:t)}function Ns(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 eo(e.view,t.view)}function eo(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 Hs({children:e}){let t=lr(ke());return(0,Ci.jsx)(or.Provider,{value:t,children:e})}var Ii={width:1200,height:760,focusSize:{width:1200,height:420},relationSize:{width:240,height:140},contextSize:{width:300,height:104},gap:16,unit:16};var Ni=(e,t)=>e?`${e.edgeKind}|${e.direction}`:`raised|${t}`,_t=(e,t,n)=>`${Fr}${e}|${t}|${n}`;function cr(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 no(e){return Ni(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 ro(e,t,n,o=[]){let r=cr(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 Bs(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 Ds=5,$s=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1};function Hi(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 Ai(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=Li(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-Ds),c];(!s||$s(f,s.score))&&(s={grouping:{by:d.by,...d.bucket?{bucket:d.bucket}:{},groups:a},score:f})}),s?.grouping}function oo(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=Ni(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=cr(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=Bs(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=Hi(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,to(h.grouping,y.key)))),m=d.filter(h=>!h.grouping&&!h.byKind?!0:u(h)),f=cr(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,P)=>{let T=[...g.slice(0,M)].sort((ae,I)=>w.get(ae.id)-w.get(I.id));b.push(...T.map(k));let F=g.slice(M);if(F.length===0)return;let q=F[0].kind;b.push({id:_t(q,y,P?`more:${P}`:"more"),kind:q,...E?{via:E}:{},aggregate:{kind:q,memberIds:F.map(ae=>ae.id),label:M>0?`${F.length} more ${t.plural(q).toLowerCase()}`:`${F.length} ${t.plural(q).toLowerCase()}`,opens:{in:"picture",focus:De(q),within:P?{filter:P}:{}}}})},O=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 P=h.members.filter(T=>T.kind===M);if(M===g){let T=h.extra+1;P.length<=T?b.push(...P.map(k)):x(P,T-1,O);continue}b.push({id:_t(M,y,"kind"),kind:M,...E?{via:E}:{},aggregate:{kind:M,memberIds:P.map(T=>T.id),label:t.plural(M),opens:{in:"place"}}})}continue}let R=h.grouping;if(!R){x(h.members,h.extra,O);continue}let C=h.kinds[0],D=R.groups.find(g=>t.expanded.has(_t(C,y,to(R,g.key))));for(let g of R.groups){if(g===D){let M=h.members.filter(T=>g.nodes.includes(T)),P=h.extra+1;if(M.length<=P)b.push(...M.map(k));else{let T=g.key!==""&&!g.key.includes(",")&&!R.bucket,F=[O,T?`${R.by}:${g.key}`:void 0].filter(Boolean).join(",")||void 0;x(M,P-1,F)}continue}b.push({id:_t(C,y,to(R,g.key)),kind:C,...E?{via:E}:{},aggregate:{kind:C,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 to=(e,t)=>`${e.by}${e.bucket?`:${e.bucket}`:""}=${t||"none"}`;var ur=300,Bi=12,hn=8,io=19;var hr=(e,t=1)=>(e.length*8.4+16)*t;function Bn(e){return e.description??`${e.direction==="in"?"\u2190":"\u2192"} ${Jn(e.edgeKind).toLowerCase()}`}function ao(e,t,n=1){let o=d=>hr(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<=Bi);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(ur,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)<=Bi),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 $i(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 so=(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},Dn=4,Di=.45;function lo(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(S=>{let B=v.get(S.kind);return{card:S,plot:B,center:cn(B.col+B.side/2,B.row+B.side/2,1,c)}}),u=(v,S)=>{let B=1/0,j=-1/0,G=1/0,_=-1/0;for(let{card:A,plot:z,center:K}of v){let Z=K.x*S,J=K.y*S,de=z.side*S/2,ge=A.opened>0?l(A).width:l(A).short.width;B=Math.min(B,Z-Math.max(de+(A.count>12?30:0),ge/2)),j=Math.max(j,Z+Math.max(de,ge/2)),G=Math.min(G,J-de*c-S*Di),_=Math.max(_,J+de*c+Dn+l(A).short.height)}return{minX:B,maxX:j,minY:G,maxY:_}},m=v=>{let S=4,B=160;for(let j=0;j<24;j++){let G=(S+B)/2,_=u(v,G);_.maxX-_.minX<=s.width&&_.maxY-_.minY<=s.height?S=G:B=G}return S},f=v=>{let S={...r.order?{order:r.order}:{},counts:i,...r.plots?{plots:r.plots}:{},pitch:v},B=Zr(t,S),j=Zr(t,{...S,upright:!0}),G=m(a(B)),_=m(a(j)),A=n.height>n.width&&_>=G?j:B;return{map:A,fitted:A===j?_:G}},b=[],h=new Map,y=0,E=(v,S={x:0,y:0})=>{let B=u(b,v),j=s.x+s.width/2-(B.minX+B.maxX)/2+S.x,G=s.y+s.height/2-(B.minY+B.maxY)/2+S.y;return{originX:j,originY:G,cell:v}},k=v=>{let{originX:S,originY:B,cell:j}=v,G=b.map(({center:z})=>z.y),_=Math.max(...G),A=Math.min(...G);return b.map(({card:z,plot:K,center:Z})=>{let J=S+Z.x*j,de=B+Z.y*j,ge=K.side*j/2,re=ge*c,le=_===A?.5:(Z.y-A)/(_-A);return{card:z,plot:K,x:J,y:de,halfW:ge,halfH:re,depth:1-le*.65}})},w=(v,S=!0)=>{let B=[];return[...v].sort((G,_)=>(_.card.weight??_.card.count)-(G.card.weight??G.card.count)||e.indexOf(G.card)-e.indexOf(_.card)).filter(G=>[l(G.card),l(G.card).short].some(_=>{let A=R(G,_),z=(!S||A.x>=0&&A.y>=0&&A.x+A.width<=n.width&&A.y+A.height<=n.height)&&!B.some(K=>Kt(A,K,4))&&!v.some(K=>K!==G&&so(A,K,K.halfW,K.halfH))&&!d.some(K=>Kt(A,K,0));return z&&B.push(A),z})).length},x=v=>v.card.marquee?{x:v.x-v.card.marquee.width/2,y:v.y+v.halfH+Dn+l(v.card).height,width:v.card.marquee.width,height:v.card.marquee.height}:null,O=(v,S,B)=>B.some(j=>{if(j===S)return!1;let G=x(j);return G!==null&&Kt(v,G,4)}),R=(v,S,B="under")=>B==="aside"?{x:v.x+v.halfW+Dn,y:v.y-S.height/2,width:S.width,height:S.height}:B==="above"?{x:v.x-S.width/2,y:v.y-v.halfH-Dn-Di*M.cell-S.height,width:S.width,height:S.height}:{x:v.x-S.width/2,y:v.y+v.halfH+Dn,width:S.width,height:S.height},C=v=>v.some(S=>d.some(B=>so(B,S,S.halfW,S.halfH)||Kt(B,R(S,l(S.card).short),0))),D=v=>v.every(S=>{let B=R(S,l(S.card).short);return S.x-S.halfW>=0&&S.x+S.halfW<=n.width&&S.y-S.halfH>=0&&B.x>=0&&B.x+B.width<=n.width&&B.y+B.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 S=w(k(E(y)));if(S>g.said&&(g={pitch:v,said:S}),S===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&&C(k(M))){let v;for(let S=1;S>=.3&&!v;S-=.05){let B=y*S,j=Math.max(...d.map(_=>_.width))/2+B,G=Math.max(...d.map(_=>_.height))/2+B/2;for(let _ of[0,.5,.75,1,1.25]){for(let[A,z]of[[1,0],[-1,0],[0,1],[0,-1],[1,1],[-1,1],[1,-1],[-1,-1]]){let K=E(B,{x:A*j*_,y:z*G*_}),Z=k(K);if(!C(Z)&&D(Z)){v=K;break}if(_===0)break}if(v)break}}v&&(M=v)}let P=(v,S,B={x:n.width/2,y:n.height/2})=>({cell:v.cell*S,originX:B.x+(v.originX-B.x)*S,originY:B.y+(v.originY-B.y)*S}),T=v=>{let S=v,B=r.stood&&Math.abs(r.stood.cell-S.cell)<.01?r.stood:null;B&&(S={...S,originX:S.originX+B.x,originY:S.originY+B.y});let j={x:S.originX-(B?.x??0),y:S.originY-(B?.y??0)},G=k(S).filter(_=>r.keep?.includes(_.card.kind));if(G.length>0){let _=r.seen??n,A=G.flatMap(ee=>[{x:ee.x-ee.halfW,y:ee.y-ee.halfH,width:ee.halfW*2,height:ee.halfH*2},R(ee,l(ee.card))]),z=r.seen?G.flatMap(ee=>x(ee)??[]):[],K=ee=>Math.max(...ee.map(te=>te.y+te.height))-Math.min(...ee.map(te=>te.y)),Z=z.length>0&&K([...A,...z])<=_.height-16?[...A,...z]:A,J=Math.min(...Z.map(ee=>ee.x)),de=Math.max(...Z.map(ee=>ee.x+ee.width)),ge=Math.min(...Z.map(ee=>ee.y)),re=Math.max(...Z.map(ee=>ee.y+ee.height)),le=(ee,te,ce)=>te-ee>ce-16?ce/2-(ee+te)/2:ee<8?8-ee:te>ce-8?ce-8-te:0;(!r.seen||re-ge<=_.height-16)&&(S={...S,originX:S.originX+le(J,de,_.width),originY:S.originY+le(ge,re,_.height)})}return{where:S,stood:{x:S.originX-j.x,y:S.originY-j.y,cell:S.cell}}},F=1,q;if(w(k(M))<e.length){let v={said:w(k(M),!1),area:1/0,pitch:-1,by:1},S={map:h,shape:b,fitted:y,where:M};for(let B of[Fe,Fe+1,Fe+2,Fe+3,Fe+5,Fe+7]){({map:h,fitted:y}=f(B)),b=a(h);let j=E(y);for(let G=1;G<=3.001;G+=.1){let _=w(k(P(j,G)),!1),A=u(b,y*G),z=(A.maxX-A.minX)*(A.maxY-A.minY);if((_>v.said||_===v.said&&z<v.area)&&(v={said:_,area:z,pitch:B,by:G}),_===e.length)break}}v.pitch<0?{map:h,shape:b,fitted:y,where:M}=S:({map:h,fitted:y}=f(v.pitch),b=a(h),F=v.by,M=P(E(y),F)),{where:M,stood:q}=T(M)}else r.seen&&r.seen.height<n.height&&({where:M,stood:q}=T(M));let ae=r.zoom&&r.zoom!==1?r.zoom:1;ae!==1&&(M=P(M,ae,r.seen?{x:r.seen.width/2,y:r.seen.height/2}:void 0));let I=k(M),$=[],N=new Map,Q=new Map,L=[...I].sort((v,S)=>(S.card.weight??S.card.count)-(v.card.weight??v.card.count)||e.indexOf(v.card)-e.indexOf(S.card));for(let v of L){let S=[["full",l(v.card),"under"],["short",l(v.card).short,"under"]],B="none",j=v===L[0],G=(A,z)=>S.filter(([K])=>K.startsWith(z)).map(([K,Z,J])=>[K,Z,J,A]),_=j?[...G(!1,"full"),...G(!1,"short"),...G(!0,"full"),...G(!0,"short")]:S.map(([A,z,K])=>[A,z,K,!1]);for(let[A,z,K,Z]of _){let J=R(v,z,K);if((ae!==1||F!==1||J.x>=0&&J.y>=0&&J.x+J.width<=n.width&&J.y+J.height<=n.height)&&!$.some(re=>Kt(J,re,4))&&(Z||!I.some(re=>re!==v&&so(J,re,re.halfW,re.halfH)))&&!O(J,v,I)&&!d.some(re=>Kt(J,re,0))){B=A,$.push(J),Q.set(v.card.id,J);break}}N.set(v.card.id,B)}let W=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"})),Y=u(b,M.cell),ie={cell:M.cell,originX:M.originX,originY:M.originY,pan:r.pan??{x:0,y:0},extent:{x:M.originX+Y.minX,y:M.originY+Y.minY,width:Y.maxX-Y.minX,height:Y.maxY-Y.minY},openedShare:1,...c!==.5?{tilt:c}:{},...q&&(q.x!==0||q.y!==0)?{stood:q}:{},...Q.size>0?{nameplates:I.flatMap(v=>{let S=Q.get(v.card.id);return S?[{id:v.card.id,x:S.x-(v.x-v.halfW),y:S.y-(v.y-v.halfH),width:S.width,height:S.height}]:[]})}:{},...I.some(v=>v.card.marquee)?{showings:I.flatMap(v=>{let S=x(v);return S?[{id:v.card.id,x:S.x-(v.x-v.halfW),y:S.y-(v.y-v.halfH),width:S.width,height:S.height}]:[]})}:{}};return{placed:W,frame:ie,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 fr=48;function co(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<fr?fr-f:f>b-fr?b-fr-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 mr(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 Fs={rankOf:()=>{},parentOf:()=>{}};function Fi(e,t){if(t.size===0)return Fs;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 Wi(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=Ws(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)||bt(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)=>bt(c.node,l.node))}return o?e.allNodes().filter(i=>i.kind===o).sort(bt).map(i=>({node:i})):[]}function Ws(e,t,n,o){let i=e.tryDefinition(t)?.edges?.[n];return o==="out"?i?.description:i?.inverse}function ji(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}
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 Nn}from"./chunk.WAPY4RCS.js";import{h as Li}from"./chunk.JMXBMLKH.js";import{e as Ai,q as sr,r as Pi}from"./chunk.PVAYYFT2.js";import{b as Hn}from"./chunk.QNFX5VHW.js";import{a as Fe,b as Zr,c as cn,d as Ti,e as Jr}from"./chunk.UXW43HNW.js";import{a as Oi}from"./chunk.JP33TNCH.js";import{a as Mi,b as Ei,c as Ri}from"./chunk.VGQDPEB5.js";import{b as ki,d as Si}from"./chunk.WIVNFOQR.js";import{c as Go}from"./chunk.GXK5PI7I.js";import{A as xi,C as vi,a as fi,b as Kr,c as Ur,f as Xr,g as qr,h as Qr,i as mi,j as sn,k as dn,p as Gt,q as ln,r as yi,s as wi,z as bi}from"./chunk.DEBW4FH6.js";import{A as si,B as di,C as li,D as ci,E as ui,f as Jo,g as on,h as ei,i as ti,j as ni,k as ri,m as ar,n as Cn,o as In,p as an,q as _r,r as oi,s as ii,z as ai}from"./chunk.RD2FSSLV.js";import{a as pi,b as gi}from"./chunk.OWHH7JDV.js";import{b as hi}from"./chunk.45OLF6BK.js";import{A as bt,B as Fr,C as Ln,Ca as Zo,G as Ae,K as Ot,L as Uo,Qa as Tn,Va as Vr,Wa as zr,Xa as zt,Za as Gr,_ as Pe,a as Ir,aa as or,b as Nr,ba as Wr,bb as Yr,c as Hr,d as Yo,e as _o,f as nr,fa as jr,ga as ir,h as Ft,ha as jt,ia as ke,j as Et,k as Br,ka as Vt,l as rr,m as An,p as Dr,pa as Xo,qa as qo,r as Oe,s as Be,t as Ko,ta as rn,u as Pn,v as De,va as Qo,w as Wt,x as Rt,y as $r}from"./chunk.ASNVH2G4.js";import{a as nn}from"./chunk.SDO3U72B.js";import{Ee as tr,Xc as On,ce as Cr,ee as jo,ha as Jn,la as Fo,ma as en,oa as tn,pa as $t,qa as er,ue as Vo,va as Wo,xd as We,xe as zo}from"./chunk.ZDUKVXBI.js";import{b as se}from"./chunk.AJZBJBMO.js";var dr=se(Ae(),1);var Ci=se(Pe(),1);function lr(e){let t=(0,dr.useRef)(e);t.current=e;let n=(0,dr.useRef)(null),o=(0,dr.useRef)(new Map),r=n.current;if(r&&(r.outer===e||Ns(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,Is(t)):typeof l=="function"?s(c,l,(...a)=>t.current[c](...a)):l]));return n.current={outer:e,inner:d},d}function Is(e){return t=>e.current.setView(typeof t=="function"?t:n=>t.pan===void 0&&n.pan?{...t,pan:n.pan}:t)}function Ns(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 eo(e.view,t.view)}function eo(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 Hs({children:e}){let t=lr(ke());return(0,Ci.jsx)(or.Provider,{value:t,children:e})}var Ii={width:1200,height:760,focusSize:{width:1200,height:420},relationSize:{width:240,height:140},contextSize:{width:300,height:104},gap:16,unit:16};var Ni=(e,t)=>e?`${e.edgeKind}|${e.direction}`:`raised|${t}`,_t=(e,t,n)=>`${Fr}${e}|${t}|${n}`;function cr(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 no(e){return Ni(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 ro(e,t,n,o=[]){let r=cr(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 Bs(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 Ds=5,$s=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1};function Hi(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 Ai(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=Li(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-Ds),c];(!s||$s(f,s.score))&&(s={grouping:{by:d.by,...d.bucket?{bucket:d.bucket}:{},groups:a},score:f})}),s?.grouping}function oo(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=Ni(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=cr(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=Bs(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=Hi(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,to(h.grouping,y.key)))),m=d.filter(h=>!h.grouping&&!h.byKind?!0:u(h)),f=cr(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,P)=>{let T=[...g.slice(0,M)].sort((ae,I)=>w.get(ae.id)-w.get(I.id));b.push(...T.map(k));let F=g.slice(M);if(F.length===0)return;let q=F[0].kind;b.push({id:_t(q,y,P?`more:${P}`:"more"),kind:q,...E?{via:E}:{},aggregate:{kind:q,memberIds:F.map(ae=>ae.id),label:M>0?`${F.length} more ${t.plural(q).toLowerCase()}`:`${F.length} ${t.plural(q).toLowerCase()}`,opens:{in:"picture",focus:De(q),within:P?{filter:P}:{}}}})},O=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 P=h.members.filter(T=>T.kind===M);if(M===g){let T=h.extra+1;P.length<=T?b.push(...P.map(k)):x(P,T-1,O);continue}b.push({id:_t(M,y,"kind"),kind:M,...E?{via:E}:{},aggregate:{kind:M,memberIds:P.map(T=>T.id),label:t.plural(M),opens:{in:"place"}}})}continue}let R=h.grouping;if(!R){x(h.members,h.extra,O);continue}let C=h.kinds[0],D=R.groups.find(g=>t.expanded.has(_t(C,y,to(R,g.key))));for(let g of R.groups){if(g===D){let M=h.members.filter(T=>g.nodes.includes(T)),P=h.extra+1;if(M.length<=P)b.push(...M.map(k));else{let T=g.key!==""&&!g.key.includes(",")&&!R.bucket,F=[O,T?`${R.by}:${g.key}`:void 0].filter(Boolean).join(",")||void 0;x(M,P-1,F)}continue}b.push({id:_t(C,y,to(R,g.key)),kind:C,...E?{via:E}:{},aggregate:{kind:C,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 to=(e,t)=>`${e.by}${e.bucket?`:${e.bucket}`:""}=${t||"none"}`;var ur=300,Bi=12,hn=8,io=19;var hr=(e,t=1)=>(e.length*8.4+16)*t;function Bn(e){return e.description??`${e.direction==="in"?"\u2190":"\u2192"} ${Jn(e.edgeKind).toLowerCase()}`}function ao(e,t,n=1){let o=d=>hr(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<=Bi);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(ur,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)<=Bi),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 $i(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 so=(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},Dn=4,Di=.45;function lo(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(S=>{let B=v.get(S.kind);return{card:S,plot:B,center:cn(B.col+B.side/2,B.row+B.side/2,1,c)}}),u=(v,S)=>{let B=1/0,j=-1/0,G=1/0,_=-1/0;for(let{card:A,plot:z,center:K}of v){let Z=K.x*S,J=K.y*S,de=z.side*S/2,ge=A.opened>0?l(A).width:l(A).short.width;B=Math.min(B,Z-Math.max(de+(A.count>12?30:0),ge/2)),j=Math.max(j,Z+Math.max(de,ge/2)),G=Math.min(G,J-de*c-S*Di),_=Math.max(_,J+de*c+Dn+l(A).short.height)}return{minX:B,maxX:j,minY:G,maxY:_}},m=v=>{let S=4,B=160;for(let j=0;j<24;j++){let G=(S+B)/2,_=u(v,G);_.maxX-_.minX<=s.width&&_.maxY-_.minY<=s.height?S=G:B=G}return S},f=v=>{let S={...r.order?{order:r.order}:{},counts:i,...r.plots?{plots:r.plots}:{},pitch:v},B=Zr(t,S),j=Zr(t,{...S,upright:!0}),G=m(a(B)),_=m(a(j)),A=n.height>n.width&&_>=G?j:B;return{map:A,fitted:A===j?_:G}},b=[],h=new Map,y=0,E=(v,S={x:0,y:0})=>{let B=u(b,v),j=s.x+s.width/2-(B.minX+B.maxX)/2+S.x,G=s.y+s.height/2-(B.minY+B.maxY)/2+S.y;return{originX:j,originY:G,cell:v}},k=v=>{let{originX:S,originY:B,cell:j}=v,G=b.map(({center:z})=>z.y),_=Math.max(...G),A=Math.min(...G);return b.map(({card:z,plot:K,center:Z})=>{let J=S+Z.x*j,de=B+Z.y*j,ge=K.side*j/2,re=ge*c,le=_===A?.5:(Z.y-A)/(_-A);return{card:z,plot:K,x:J,y:de,halfW:ge,halfH:re,depth:1-le*.65}})},w=(v,S=!0)=>{let B=[];return[...v].sort((G,_)=>(_.card.weight??_.card.count)-(G.card.weight??G.card.count)||e.indexOf(G.card)-e.indexOf(_.card)).filter(G=>[l(G.card),l(G.card).short].some(_=>{let A=R(G,_),z=(!S||A.x>=0&&A.y>=0&&A.x+A.width<=n.width&&A.y+A.height<=n.height)&&!B.some(K=>Kt(A,K,4))&&!v.some(K=>K!==G&&so(A,K,K.halfW,K.halfH))&&!d.some(K=>Kt(A,K,0));return z&&B.push(A),z})).length},x=v=>v.card.marquee?{x:v.x-v.card.marquee.width/2,y:v.y+v.halfH+Dn+l(v.card).height,width:v.card.marquee.width,height:v.card.marquee.height}:null,O=(v,S,B)=>B.some(j=>{if(j===S)return!1;let G=x(j);return G!==null&&Kt(v,G,4)}),R=(v,S,B="under")=>B==="aside"?{x:v.x+v.halfW+Dn,y:v.y-S.height/2,width:S.width,height:S.height}:B==="above"?{x:v.x-S.width/2,y:v.y-v.halfH-Dn-Di*M.cell-S.height,width:S.width,height:S.height}:{x:v.x-S.width/2,y:v.y+v.halfH+Dn,width:S.width,height:S.height},C=v=>v.some(S=>d.some(B=>so(B,S,S.halfW,S.halfH)||Kt(B,R(S,l(S.card).short),0))),D=v=>v.every(S=>{let B=R(S,l(S.card).short);return S.x-S.halfW>=0&&S.x+S.halfW<=n.width&&S.y-S.halfH>=0&&B.x>=0&&B.x+B.width<=n.width&&B.y+B.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 S=w(k(E(y)));if(S>g.said&&(g={pitch:v,said:S}),S===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&&C(k(M))){let v;for(let S=1;S>=.3&&!v;S-=.05){let B=y*S,j=Math.max(...d.map(_=>_.width))/2+B,G=Math.max(...d.map(_=>_.height))/2+B/2;for(let _ of[0,.5,.75,1,1.25]){for(let[A,z]of[[1,0],[-1,0],[0,1],[0,-1],[1,1],[-1,1],[1,-1],[-1,-1]]){let K=E(B,{x:A*j*_,y:z*G*_}),Z=k(K);if(!C(Z)&&D(Z)){v=K;break}if(_===0)break}if(v)break}}v&&(M=v)}let P=(v,S,B={x:n.width/2,y:n.height/2})=>({cell:v.cell*S,originX:B.x+(v.originX-B.x)*S,originY:B.y+(v.originY-B.y)*S}),T=v=>{let S=v,B=r.stood&&Math.abs(r.stood.cell-S.cell)<.01?r.stood:null;B&&(S={...S,originX:S.originX+B.x,originY:S.originY+B.y});let j={x:S.originX-(B?.x??0),y:S.originY-(B?.y??0)},G=k(S).filter(_=>r.keep?.includes(_.card.kind));if(G.length>0){let _=r.seen??n,A=G.flatMap(ee=>[{x:ee.x-ee.halfW,y:ee.y-ee.halfH,width:ee.halfW*2,height:ee.halfH*2},R(ee,l(ee.card))]),z=r.seen?G.flatMap(ee=>x(ee)??[]):[],K=ee=>Math.max(...ee.map(te=>te.y+te.height))-Math.min(...ee.map(te=>te.y)),Z=z.length>0&&K([...A,...z])<=_.height-16?[...A,...z]:A,J=Math.min(...Z.map(ee=>ee.x)),de=Math.max(...Z.map(ee=>ee.x+ee.width)),ge=Math.min(...Z.map(ee=>ee.y)),re=Math.max(...Z.map(ee=>ee.y+ee.height)),le=(ee,te,ce)=>te-ee>ce-16?ce/2-(ee+te)/2:ee<8?8-ee:te>ce-8?ce-8-te:0;(!r.seen||re-ge<=_.height-16)&&(S={...S,originX:S.originX+le(J,de,_.width),originY:S.originY+le(ge,re,_.height)})}return{where:S,stood:{x:S.originX-j.x,y:S.originY-j.y,cell:S.cell}}},F=1,q;if(w(k(M))<e.length){let v={said:w(k(M),!1),area:1/0,pitch:-1,by:1},S={map:h,shape:b,fitted:y,where:M};for(let B of[Fe,Fe+1,Fe+2,Fe+3,Fe+5,Fe+7]){({map:h,fitted:y}=f(B)),b=a(h);let j=E(y);for(let G=1;G<=3.001;G+=.1){let _=w(k(P(j,G)),!1),A=u(b,y*G),z=(A.maxX-A.minX)*(A.maxY-A.minY);if((_>v.said||_===v.said&&z<v.area)&&(v={said:_,area:z,pitch:B,by:G}),_===e.length)break}}v.pitch<0?{map:h,shape:b,fitted:y,where:M}=S:({map:h,fitted:y}=f(v.pitch),b=a(h),F=v.by,M=P(E(y),F)),{where:M,stood:q}=T(M)}else r.seen&&r.seen.height<n.height&&({where:M,stood:q}=T(M));let ae=r.zoom&&r.zoom!==1?r.zoom:1;ae!==1&&(M=P(M,ae,r.seen?{x:r.seen.width/2,y:r.seen.height/2}:void 0));let I=k(M),$=[],N=new Map,Q=new Map,L=[...I].sort((v,S)=>(S.card.weight??S.card.count)-(v.card.weight??v.card.count)||e.indexOf(v.card)-e.indexOf(S.card));for(let v of L){let S=[["full",l(v.card),"under"],["short",l(v.card).short,"under"]],B="none",j=v===L[0],G=(A,z)=>S.filter(([K])=>K.startsWith(z)).map(([K,Z,J])=>[K,Z,J,A]),_=j?[...G(!1,"full"),...G(!1,"short"),...G(!0,"full"),...G(!0,"short")]:S.map(([A,z,K])=>[A,z,K,!1]);for(let[A,z,K,Z]of _){let J=R(v,z,K);if((ae!==1||F!==1||J.x>=0&&J.y>=0&&J.x+J.width<=n.width&&J.y+J.height<=n.height)&&!$.some(re=>Kt(J,re,4))&&(Z||!I.some(re=>re!==v&&so(J,re,re.halfW,re.halfH)))&&!O(J,v,I)&&!d.some(re=>Kt(J,re,0))){B=A,$.push(J),Q.set(v.card.id,J);break}}N.set(v.card.id,B)}let W=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"})),Y=u(b,M.cell),ie={cell:M.cell,originX:M.originX,originY:M.originY,pan:r.pan??{x:0,y:0},extent:{x:M.originX+Y.minX,y:M.originY+Y.minY,width:Y.maxX-Y.minX,height:Y.maxY-Y.minY},openedShare:1,...c!==.5?{tilt:c}:{},...q&&(q.x!==0||q.y!==0)?{stood:q}:{},...Q.size>0?{nameplates:I.flatMap(v=>{let S=Q.get(v.card.id);return S?[{id:v.card.id,x:S.x-(v.x-v.halfW),y:S.y-(v.y-v.halfH),width:S.width,height:S.height}]:[]})}:{},...I.some(v=>v.card.marquee)?{showings:I.flatMap(v=>{let S=x(v);return S?[{id:v.card.id,x:S.x-(v.x-v.halfW),y:S.y-(v.y-v.halfH),width:S.width,height:S.height}]:[]})}:{}};return{placed:W,frame:ie,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 fr=48;function co(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<fr?fr-f:f>b-fr?b-fr-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 mr(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 Fs={rankOf:()=>{},parentOf:()=>{}};function Fi(e,t){if(t.size===0)return Fs;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 Wi(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=Ws(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)||bt(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)=>bt(c.node,l.node))}return o?e.allNodes().filter(i=>i.kind===o).sort(bt).map(i=>({node:i})):[]}function Ws(e,t,n,o){let i=e.tryDefinition(t)?.edges?.[n];return o==="out"?i?.description:i?.inverse}function ji(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
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
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(bt)}var zi=.85,Vi=60,uo=160;function js(e,t,n,o,r,i=zi){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 pr(e,t,n,o={}){let r={...Ii,...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||Fo(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(bt):[],k=E.filter(b).filter(m),w=E.length-k.length,x=n.focusId&&h.length===0?e.getNode(n.focusId):void 0,O=n.zoom===!0&&!n.overview&&n.focusId!==null,R=Math.max(56,r.height*.062),C=Math.min(r.height*.895,r.height-R),D=O?x!==void 0?{focusY:r.height*.03,focusH:r.height*.58,relationY:r.height*.645,relationH:r.height*.2,contextY:C,contextH:R}:{focusY:r.height*.03,focusH:r.height*.71,relationY:r.height*.765,relationH:r.height*.1,contextY:C,contextH:R}: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,V=p*.04,X=Math.max(p*.42,Math.min(p*.56,300)),fe=V+X+p*.06;return{focusY:V,focusH:X,relationY:fe,relationH:Math.max(p*.12,p*.878-p*.068-fe),contextY:p*.878,contextH:p*.092}})(),g=Math.min(r.headroom??0,D.focusY+D.focusH*.2),M=g>D.focusY?{...D,focusY:g,focusH:D.focusH-(g-D.focusY)}:D,P=p=>Math.min(r.gap*p,Math.round(l*.1)),T=O?Math.min(880,l-P(5)):Math.min(700,l-P(6)),F=O?l-P(5):Math.min(r.focusSize.width,l-P(6)),q=(p,V,X)=>({width:p===0?V:Math.min(V,(l-r.gap*(p+1))/p),height:X}),ae=(p,V,X)=>{let fe=q(p,V,X),Re=Math.min(V,uo*i,l-r.gap*2);return fe.width>=Re?fe:{width:Re,height:X}},I=p=>Math.max(1,Math.floor((l-r.gap)/(Math.min(p,uo*i,l-r.gap*2)+r.gap))),$=new Set(n.expanded),N=n.overview?[]:Wi(e,t,x,n.relation,r.judged).filter(p=>b(p.node)).filter(p=>m(p.node)),Q=n.overview?0:Math.max(0,Vi*i-M.contextH),L=N.length>0?M.focusH:M.contextY-M.focusY-r.gap*2-Q,W=F,Y=r.height,ie=Math.min(l*.5/W,r.height*.48/Y),v=W*ie,S=Y*ie,B=new Set(o.plainGroups??[]),j=n.overview&&!x&&h.length>0&&n.focusId!==null,G=j&&h.length>0&&h.every(p=>B.has(p));if(j)for(let p of h)G&&o.besideTheMap!==!0?$.add(Oe(p)):$.delete(Oe(p));let _=j&&!G&&h.length===1?h[0]:void 0,A=_!==void 0&&(o.screens?.[_]?.length??0)>0,z,K=n.overview===!0&&x!==void 0&&o.besideTheMap===!0;n.overview&&(x||h.length>0)&&n.focusId&&!G&&!A&&!(j&&o.besideTheMap===!0)&&!K?(z={x:s+(l-v)/2,y:r.height*.53-S/2,width:v,height:S},St({id:n.focusId,kind:x?x.kind:h[0],plane:0,x:z.x,y:z.y,width:v,height:S,natural:{width:W,height:Y},...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-T)/2,y:M.focusY,width:T,height:L}):h.length>0&&n.focusId&&St({id:n.focusId,kind:h[0],plane:0,x:s+(l-F)/2,y:M.focusY,width:F,height:L,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 Z=26,J=52,de=22,ge=Math.round(r.relationSize.width*.75),re=Math.max(1,Math.floor((l-r.gap)/(ge+r.gap))),le=r.unit/16,be=new Map;for(let p of N){let V=no(p),X=be.get(V);X?X.push(p):be.set(V,[p])}let ee=[...be.values()],te=ee.length>1,ce=Math.max(r.gap,de*le),at=te?ce:r.gap,Ke=Math.max(2,Math.floor((M.relationH+at)/(Z*le+at))),bn=Math.min(r.relationSize.width,(l-r.gap*(re+1))/re)+r.gap,Ze=ee.map(p=>{let V=p[0].via;return!te||!V?1:Math.ceil((Math.min(ur*le,hr(Bn(V),le))+r.gap)/bn)}),Ie=ee.map(p=>p.length),Ct=un(Ie,re,Ze),Je=N.length>re*Ke||Ct.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||te?ce:r.gap,Te,Ne;if(!Je)Te=ee.flat().map(p=>({id:p.node.id,kind:p.node.kind,node:p.node,...p.via?{via:p.via}:{}})),Ne=Ct;else{let p=Math.max(1,Math.floor((M.relationH+Ue)/(J*le+Ue))),X=un(Ie.map(()=>1),re,Ze).length<=p?Ze:[],fe=ro(Ie,re,p,X),Re=ee.map((xe,Ce)=>oo(xe,{...It,budget:fe[Ce]}));Te=Re.flat(),Ne=un(Re.map(xe=>xe.length),re,X)}let st=Ne.length,oe=st===1?M.relationH:(M.relationH-Ue*(st-1))/st,et=q(Math.max(...Ne.map(p=>p.reduce((V,X)=>V+X.slots,0)),1),Te.length<=2?Math.round(r.relationSize.width*1.35):r.relationSize.width,oe),gt=[];{let p=et.width+r.gap,V=[],X=0,fe=new Map;for(let xe of Ne.flat())fe.set(xe.run,(fe.get(xe.run)??0)+xe.cards);for(let xe=0;xe<ee.length;xe++)V[xe]=X,X+=fe.get(xe)??0;let Re=ee.map(()=>0);Ne.forEach((xe,Ce)=>{let wt=xe.reduce((Mt,Lr)=>Mt+Lr.slots,0),Qn=wt*et.width+Math.max(0,wt-1)*r.gap,Zn=s+Math.max(r.gap,(l-Qn)/2),Ls=M.relationY+Ce*(oe+Ue);for(let Mt of xe){let Lr=Mt.slots*p-r.gap,Ts=Mt.cards*p-r.gap,Cs=Zn+(Lr-Ts)/2;for(let Tr=0;Tr<Mt.cards;Tr++)gt[V[Mt.run]+Re[Mt.run]++]={x:Cs+Tr*p,y:Ls};Zn+=Mt.slots*p}})}Te.forEach((p,V)=>{let X=gt[V];St({id:p.id,kind:p.kind,plane:1,x:X.x,y:X.y,width:et.width,height:et.height,...p.via?{via:p.via}:{},...p.aggregate?{aggregate:p.aggregate}:{},...Je&&!p.aggregate?{compact:!0}:{}})});let xn=new Set(u.keys());for(let p of k)xn.add(p.id);let xt=new Map;for(let p of e.allNodes()){let V=xt.get(p.kind);V?V.push(p):xt.set(p.kind,[p])}let he=new Set(h.length>0?h:x?[x.kind]:[]),Le=[];for(let p of t.kinds){if(f.has(p))continue;let V=xt.get(p)??[],X=V.filter(m);Le.push({id:Oe(p),kind:p,members:X.sort(bt),retired:V.length-X.length,...he.has(p)?{focused:!0}:{}})}for(let p of Le)p.kind===n.relation&&(p.raised=!0);Le.sort(bt);let dt=Fi(t,he),Nt=!n.overview&&t.kinds.some(p=>dt.rankOf(p)==="primary"),$e=[];for(let p of Le)if(!n.overview&&$.has(p.id)&&p.members.length>0)for(let V of p.members)$e.push({id:V.id,kind:V.kind});else{let V=Nt?dt.rankOf(p.kind):void 0,X=V==="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}:{},...V?{rank:V}:{},...X&&!$.has(Oe(X))?{nestedUnder:Oe(X)}:{},aggregate:{kind:p.kind,memberIds:p.members.map(fe=>fe.id),label:o.plurals?.[p.kind]??$t(t,p.kind),...p.retired>0?{retired:p.retired}:{}}})}let tt=2;if($e.length<=I((O?240:r.contextSize.width)*i))for(let p of $e)delete p.nestedUnder;let vn=new Map;for(let p of $e){if(p.nestedUnder===void 0)continue;let V=vn.get(p.nestedUnder)??0;V>=tt?delete p.nestedUnder:vn.set(p.nestedUnder,V+1)}let Yn=$e.filter(p=>p.nestedUnder!==void 0),vt=$e.filter(p=>p.nestedUnder===void 0),kn=I((O?240:r.contextSize.width)*i),Sn=!n.overview&&vt.length>kn,_n=Math.max(0,kn-1),yt=p=>p.focused?0:p.raised?1:2,kt=new Set([...vt].map((p,V)=>({item:p,at:V})).sort((p,V)=>yt(p.item)-yt(V.item)||p.at-V.at).slice(0,_n).map(({item:p})=>p.id)),Qt=new Set(Sn?vt.filter(p=>!kt.has(p.id)).map(p=>p.id):[]),Kn=Yn.filter(p=>!Qt.has(p.nestedUnder)),Un=Yn.filter(p=>Qt.has(p.nestedUnder)),Ht=Sn?[...vt.filter(p=>kt.has(p.id)),{id:Ko,kind:"",beyond:[...vt.filter(p=>Qt.has(p.id)),...Un].map(p=>p.kind)}]:vt,lt=n.overview?{width:Math.min(220,l/6.5),height:Math.min(92,r.height*.125)}:ae(Ht.length,(O?240:r.contextSize.width)*i,M.contextH),Mn=r.relevance?.flagged,nt=(p,V)=>{let X=Jr(t,p);if(!X)return{};let fe=X.values.map(()=>0),Re=0;for(let xe of V){let Ce=X.values.indexOf(e.getNode(xe)?.[X.field]);Ce<0?Re++:fe[Ce]++}return{states:{field:X.field,values:[...X.values.map((xe,Ce)=>({value:xe,tier:X.tiers[Ce],count:fe[Ce]})),...Re>0?[{value:null,tier:"waiting",count:Re}]:[]]}}},En=[...n.selection??[],...n.focusId?[n.focusId]:[]].flatMap(p=>p.startsWith("kind:")?[p.slice(5)]:p.startsWith("aggregate:")&&!p.includes("|")?[p.slice(10)]:K&&p===x?.id?[x.kind]:[]),Zt=c>0&&d===0&&En.length>0,Xe=n.overview?lo(Ht.map(p=>{let V=p.aggregate?.memberIds??[],X=Mn?V.filter(fe=>Mn.has(fe)).length:0;return{id:p.id,kind:p.kind,count:V.length,opened:$.has(p.id)?dn(sn(V.length))*i:0,openedMin:$.has(p.id)?dn(Math.min(Qr,sn(V.length)))*i:0,nameplate:$i(p.aggregate?.label??$t(t,p.kind),V.length,X,Jr(t,p.kind)!==void 0,i),weight:X*1e3+V.length,...h.includes(p.kind)&&(o.screens?.[p.kind]?.length??0)>0?{marquee:{width:Ur+12,height:Xr(o.screens[p.kind].map(fe=>fe.title),Ur,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:En,...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},...z||r.chrome?.length?{avoid:[...z?[z]:[],...(r.chrome??[]).filter(p=>!(Zt&&p.onSheet))]}:{}}):null,Xn=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:V,depth:X,width:fe,height:Re})=>({x:p,y:V,depth:X,width:fe,height:Re})):js(Ht.length,lt,r.gap,l,M.contextY,O?.97:zi).map(p=>({...p,x:p.x+s})),H=.74,me=.8,ve=52*i,Ee=86*i,He=(p,V)=>Math.min(1,p+(1-p)*V),ze=new Map;Ht.forEach((p,V)=>{let X=Bt[V],fe=X.width??lt.width,Re=X.height??lt.height,xe=p.rank==="secondary"?H:1,Ce=Xe?fe:Math.max(Math.min(fe,uo*i),fe*xe),wt=Xe?Re:Math.max(Vi*i,Re*xe);ze.set(p.id,{x:X.x+(fe-Ce)/2,y:X.y+(Re-wt),depth:p.rank==="secondary"?He(X.depth,.5):X.depth,width:Ce,height:wt})});let qe=[],Dt=Bt[Bt.length-1],Rn=new Map;for(let p of Kn)Rn.set(p.nestedUnder,(Rn.get(p.nestedUnder)??0)+1);let qn=new Map;for(let p of Kn){let V=ze.get(p.nestedUnder);if(V){let X=Rn.get(p.nestedUnder)??1,fe=qn.get(p.nestedUnder)??0;qn.set(p.nestedUnder,fe+1);let Re=.98,xe=lt.width*me,Ce=Math.max(Ee,Math.min(xe,V.width/(Re*(X-1)+1))),wt=Math.max(ve,lt.height*me*(Ce/xe)),Qn=Ce*Re,Zn=(X-1)*Qn+Ce;qe.push({...p,x:V.x+(V.width-Zn)/2+fe*Qn,y:Math.max(0,V.y-wt+Math.min(wt*.5,16)),width:Ce,height:wt,depth:He(V.depth,.8)})}else if(Dt){let X=lt.width*me,fe=lt.height*me;qe.push({...p,x:Dt.x,y:Dt.y,width:X,height:fe,depth:He(Dt.depth??1,.8)})}}for(let p of Ht)qe.push({...p,...ze.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))-mi)/qr))}:{},...p.rank?{rank:p.rank}:{},...p.nestedUnder?{nestedUnder:p.nestedUnder}:{},...p.beyond?{beyond:p.beyond}:{},...Xn.has(p.id)?{plot:Xn.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:ji(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 V=n.overview&&Be(p.id)!==null?void 0:n.pins[p.id],X=V?{...p,x:V.x,y:V.y,pinned:!0}:{...p,pinned:!1},fe=n.pan?{...X,x:X.x+n.pan.x,y:X.y+n.pan.y}:X;a.push(fe),u.set(fe.id,fe)}}function ho(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 fo(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 Se=(e,t,n)=>e+(t-e)*n;function Gi(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}var Yi=new WeakMap;function Vs(e){let t=Yi.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},Yi.set(e,t),t}var _i=new WeakMap;function Ki(e,t){let n=_i.get(t);if(n||_i.set(t,n=new WeakMap),n.has(e))return n.get(e);let o=zs(e,t);return n.set(e,o),o}function zs(e,t){let{byId:n,groupsOf:o}=Vs(t);if(e.screenOf!==void 0){let s=n.get(Oe(e.screenOf));if(s)return{...e,x:s.x,y:s.y,width:s.width,height:s.height}}if(Wt(e.id)||Be(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(Gi),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===Oe(e.kind)||s.id===De(e.kind));if(!r)return null;let i=Gi(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(mo(u,m,o,1));continue}let f=Ki(u,t)??u;s.push(mo(u,f,o,1-o))}for(let[a,u]of i){if(r.has(a))continue;let m=Ki(u,e)??u;s.push(mo(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?{...Gs(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:Se(e.width,t.width,o),height:Se(e.height,t.height,o),t:o,...Ui(e.city,t.city,o)?{city:Ui(e.city,t.city,o)}:{},...e.pan||t.pan?{pan:{x:Se(e.pan?.x??0,t.pan?.x??0,o),y:Se(e.pan?.y??0,t.pan?.y??0,o)}}:{}}}function Ui(e,t,n){return e?t?{cell:Se(e.cell,t.cell,n),...e.tilt!==void 0||t.tilt!==void 0?{tilt:Se(e.tilt??.5,t.tilt??.5,n)}:{},originX:Se(e.originX,t.originX,n),originY:Se(e.originY,t.originY,n),pan:{x:Se(e.pan.x,t.pan.x,n),y:Se(e.pan.y,t.pan.y,n)},extent:{x:Se(e.extent.x,t.extent.x,n),y:Se(e.extent.y,t.extent.y,n),width:Se(e.extent.width,t.extent.width,n),height:Se(e.extent.height,t.extent.height,n)}}:e:t}function mo(e,t,n,o){return{id:t.id,kind:t.kind,plane:Se(e.plane,t.plane,n),x:Se(e.x,t.x,n),y:Se(e.y,t.y,n),width:Se(e.width,t.width,n),height:Se(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:Se(e.depth??1,t.depth,n)},...t.natural?{natural:t.natural}:{}}}function Gs(e,t,n){return{...t,x1:Se(e.x1,t.x1,n),y1:Se(e.y1,t.y1,n),x2:Se(e.x2,t.x2,n),y2:Se(e.y2,t.y2,n)}}function gr(e){let t=Math.max(0,Math.min(1,e));return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function Ys(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 Ks(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 Us(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 Xs(e,t){let{room:n,height:o,size:r,floor:i,measure:s=Kr,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 qs=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1;var U=se(Ae(),1);var po=se(Ae(),1),Qs=500,Zs=10;function Xi(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 Js(e){let t=typeof getSelection=="function"?getSelection():null;return t!==null&&!t.isCollapsed&&t.containsNode(e,!0)}function ed(e){return e.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??e.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0}function qi({swallow:e,setMenuAt:t,setSelection:n}){let o=(0,po.useRef)(0),r=(0,po.useRef)(null),i=()=>{r.current&&clearTimeout(r.current.timer),r.current=null},s=(d,c,l)=>{let a=ed(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||Xi(c)||Js(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(Xi(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)},Qs)}},onPointerMove:d=>{let c=r.current;c&&Math.hypot(d.clientX-c.x,d.clientY-c.y)>Zs&&i()},onPointerUp:i}}var Pt=se(Ae(),1);function Qi(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 td(){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 Zi(e){let t=Qi("(prefers-reduced-motion: reduce)"),n=Qi("(prefers-reduced-transparency: reduce)"),o=td();return ci({off:!e,reducedMotion:o==="reduce"||o!=="full"&&t,reducedTransparency:n})}var nd=ai*1.5,rd=30;function Ji(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>=rd){if(!ui(i,nd)){o(!0);return}i.length=0}d=requestAnimationFrame(c)};return d=requestAnimationFrame(c),()=>cancelAnimationFrame(d)},[r,t]),r}var je=se(Ae(),1);var od=520;function id(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function ea(e,t={}){let n=t.duration??od,o=(t.enabled??!0)&&!id(),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=gr(Math.min(1,(u-f)/n)),h=i.current,y=E=>{let k=Math.min(1,(E-f)/n),w=b>=1?1:(gr(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 O=ut(e,e,1);d.current=O,s(O),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 ta(e=1100){let{store:t}=ke(),[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 ad={marks:new Map,acts:[]};function na(e=4e3){let{store:t}=ke(),[n,o]=(0,je.useState)(ad);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=se(Pe(),1),rt=16;function ra({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":On(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 ne=se(Pe(),1);function sd({hue:e,mode:t}){let n=t==="docked";return(0,ne.jsxs)("svg",{viewBox:"0 0 32 38","aria-hidden":"true",children:[(0,ne.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,ne.jsx)("line",{x1:"16",y1:"3.5",x2:"16",y2:"7"}),(0,ne.jsx)("circle",{cx:"16",cy:"2.6",r:"1.5",fill:"none"}),(0,ne.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,ne.jsx)("line",{x1:"11",y1:"12.5",x2:"21",y2:"12.5",strokeWidth:"2"}):(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.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,ne.jsx)("circle",{cx:"13.4",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),(0,ne.jsx)("circle",{cx:"18.6",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),t==="reading"?(0,ne.jsx)("line",{x1:"10.2",y1:"12.5",x2:"21.8",y2:"12.5",strokeWidth:"0.8",opacity:"0.7"}):null]}),(0,ne.jsx)("line",{x1:"16",y1:"16",x2:"16",y2:"18.5"}),(0,ne.jsx)("polygon",{points:"16,18.5 24,22.5 16,26.5 8,22.5",fill:"currentColor",fillOpacity:"0.22"}),(0,ne.jsx)("polygon",{points:"8,22.5 16,26.5 16,33.5 8,29.5",fill:"currentColor",fillOpacity:"0.08"}),(0,ne.jsx)("polygon",{points:"24,22.5 16,26.5 16,33.5 24,29.5",fill:"currentColor",fillOpacity:"0.3"}),t==="writing"?(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)("polyline",{points:"24,24 28.5,20.5"}),(0,ne.jsx)("line",{x1:"27.5",y1:"19",x2:"30",y2:"21.5",strokeWidth:"1.8"})]}):(0,ne.jsx)("line",{x1:"24",y1:"24",x2:"26.5",y2:"29"}),(0,ne.jsx)("line",{x1:"8",y1:"24",x2:"5.5",y2:"29"}),(0,ne.jsx)("path",{d:"M9.5 33.5 v2.2 h4"}),(0,ne.jsx)("path",{d:"M22.5 33.5 v2.2 h-4"})]}),(0,ne.jsx)("title",{children:`robot, ${t}`})]})}function dd({hue:e}){return(0,ne.jsxs)("svg",{viewBox:"0 0 22 24","aria-hidden":"true",style:{color:`hsl(${Math.round(e)} 50% 48%)`},children:[(0,ne.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,ne.jsx)("circle",{cx:"11",cy:"6",r:"4.2"}),(0,ne.jsx)("path",{d:"M3 23 C3 15.5 6 13 11 13 C16 13 19 15.5 19 23"})]}),(0,ne.jsx)("title",{children:"somebody"})]})}function oa({width:e,whereIs:t}){let{who:n,following:o,follow:r}=ke(),i=yi([...n.values()],t,e);if(i.length===0)return null;let s=h=>{let y=tr(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 "):tr(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,ne.jsx)("div",{className:"graview-occupants","data-testid":"occupants","data-graview-occupants":i.length,children:i.map((h,y)=>{if(h.kind==="over")return(0,ne.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,ne.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=tr(h.presence)||"somebody";if(h.kind==="edge")return(0,ne.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 O=[...new Set(d.get(x)??[s(h)])].join(" \xB7 ");return(0,ne.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,ne.jsx)("span",{className:"graview-figure-body",role:"img","aria-label":`${O} \u2014 ${h.mode}`,style:{cursor:"default"},children:(0,ne.jsx)(sd,{hue:E,mode:h.mode})}),(0,ne.jsx)("span",{className:"graview-figure-name","data-graview-label":"",style:f(`robot:${h.presence.participant}`),children:O})]},`robot:${h.presence.participant}`)}let w=o?.participant===h.presence.participant;return(0,ne.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,ne.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,ne.jsx)(dd,{hue:E})}),(0,ne.jsx)("span",{className:"graview-figure-name",style:f(`person:${h.presence.participant}`),children:k})]},`person:${h.presence.participant}`)})})}var fn=se(Ae(),1),Wn=se(Pe(),1),ia={left:"\u2190",right:"\u2192",top:"\u2191",bottom:"\u2193"},go=36,ld=140,Fn=56;function aa({result:e,schema:t,chrome:n=[],onGo:o}){let r=co(e);if(r.length===0||(e.visible??e).height<ld)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"?hd:a==="top"?Fn:fd+Fn/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=er(t,k.kind),x=cd(w),O=f?yr:x/2,R=m-b-(f?0:O),C=Math.max(Fn,k.along,h+O+ud);if(C>R)continue;let{at:D,inset:g}=md([...c,...y],a,C,x,u,m);if(D>R+.5)continue;h=D+O,y.push(sa(a,D,x,u,g));let M=a==="left"?{left:g,top:D,transform:"translateY(-50%)"}:a==="right"?{right:`calc(${g}px + var(--graview-dock, 0px))`,top:D,transform:"translateY(-50%)"}:a==="top"?{top:g,left:D,transform:"translateX(-50%)"}:{bottom:`calc(${g}px + var(--graview-scene-foot, var(--graview-sheet, 0px)))`,left:D,transform:"translateX(-50%)"};l.push((0,Wn.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:P=>P.stopPropagation(),onClick:P=>{P.stopPropagation(),o(k.by)},style:{...pd,...M},children:a==="right"||a==="bottom"?`${w} ${ia[a]}`:`${ia[a]} ${w}`},k.id))}}return(0,Wn.jsx)(Wn.Fragment,{children:l})}var cd=e=>(e.length+2)*7.4+22,yr=go/2,$n=6,ud=6,hd=236,fd=56;function sa(e,t,n,o,r=$n){return e==="left"||e==="right"?{left:e==="left"?r:o.width-r-n,right:e==="left"?r+n:o.width-r,top:t-yr,bottom:t+yr}:{left:t-n/2,right:t+n/2,top:e==="top"?r:o.height-r-go,bottom:e==="top"?r+go:o.height-r}}function md(e,t,n,o,r,i){let s=t==="left"||t==="right",d=h=>sa(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:$n};let a=s?yr: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-Fn||y<Fn)return null}return null},m=u(1);if(m!==null)return{at:m,inset:$n};let f=u(-1);if(f!==null)return{at:f,inset:$n};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($n,b+4)}}var pd={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 da(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 la(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 ca(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=se(Ae(),1),gd=180;function ua({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(R=>R.x===0&&R.y===0?R:{x:0,y:0});return}let u=t.nodes.find(R=>R.id===i);if(!u)return;let m=r>1&&u.screenOf?t.nodes.find(R=>R.id===Oe(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=(R,C,D)=>R<h?h-R:R+C>D-h?D-h-(R+C):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),O=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?O:Math.max(-E.y,Math.min(E.y,O)))-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(Oe(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})},gd)},[e.overview]),(0,Lt.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{gliding:()=>a.current!==null}}var br=se(Ae(),1),wr="[data-graview-view]";function yd(e,t){let n=null;for(let o=e?.closest(wr)??null;o&&t.contains(o);o=o.parentElement?.closest(wr)??null)n=o;return n}function ha(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 fa(e,t,n){let o=(0,br.useRef)({dock:t,reveal:n});o.current={dock:t,reveal:n},(0,br.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=ha(r,a),m=[];for(let f of r.querySelectorAll(wr)){if(f.parentElement?.closest(wr)||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=yd(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=ha(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,O,R,C)=>C-R>O-x-2*b||R<x+b?x+b-R:C>O-b?O-b-C: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 ue=se(Ae(),1);function pa(){let e=(0,ue.useRef)(null),[t,n]=(0,ue.useState)({right:0,bottom:0});return(0,ue.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 ga(){let[e,t]=(0,ue.useState)(null),n=(0,ue.useRef)(null),o=(0,ue.useRef)(0),r=(0,ue.useCallback)(s=>{n.current=s,o.current===0&&(o.current=requestAnimationFrame(()=>{o.current=0,t(n.current)}))},[]),i=(0,ue.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 ya({stage:e,pan:t,zoom:n,setView:o,settled:r,zoomTo:i}){let s=(0,ue.useRef)({x:0,y:0,s:1}),d=(0,ue.useRef)(0),c=(0,ue.useRef)(!1),l=(0,ue.useRef)(r);l.current=r;let a=(0,ue.useCallback)(()=>[...e.current?.querySelectorAll("[data-graview-world]")??[]],[e]),u=(0,ue.useCallback)(({x:w,y:x,s:O})=>{let R=O!==1?`translate3d(${w}px, ${x}px, 0) scale(${O})`:w===0&&x===0?"":`translate3d(${w}px, ${x}px, 0)`;for(let C of a())C.style.transform=R,C.style.transformOrigin=O!==1?"0 0":"";ma(e.current,w,x,O)},[a,e]),m=(0,ue.useCallback)(()=>{d.current===0&&(d.current=requestAnimationFrame(()=>{d.current=0,u(s.current)}))},[u]),f=(0,ue.useCallback)(()=>{c.current=!1;for(let w of a())w.style.transform="",w.style.transformOrigin="";ma(e.current,0,0,1),l.current()},[a,e]),b=(0,ue.useCallback)((w,x)=>{s.current={x:w.x-x.x,y:w.y-x.y,s:s.current.s},m()},[m]),h=(0,ue.useCallback)((w,x,O,R,C,D)=>{let{x:g,y:M,s:P}=s.current,T=Math.max(C,Math.min(D,P*w)),F=T/P;s.current={x:g*F+x.x*(1-F)+O,y:M*F+x.y*(1-F)+R,s:T},m()},[m]),y=(0,ue.useCallback)(()=>{let{x:w,y:x,s:O}=s.current;return w===0&&x===0&&O===1?!1:(d.current!==0&&cancelAnimationFrame(d.current),d.current=0,u({x:w,y:x,s:O}),s.current={x:0,y:0,s:1},c.current=!0,Math.abs(O-1)>1e-4?i.current(O,{x:w/(1-O),y:x/(1-O)}):o(R=>{let C=R.pan??{x:0,y:0};return ct(R,{x:C.x+w,y:C.y+x})}),window.setTimeout(()=>{c.current&&f()},300),!0)},[o,f,u,i]);(0,ue.useLayoutEffect)(()=>{c.current&&f()},[t,n,f]);let E=(0,ue.useCallback)(()=>{d.current!==0&&cancelAnimationFrame(d.current),d.current=0,s.current={x:0,y:0,s:1},f()},[f]),k=(0,ue.useCallback)(()=>s.current,[]);return{shiftTo:b,zoomBy:h,settle:y,drop:E,settling:c,offset:k}}function ma(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?wd(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 wd(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 bd=4;function xd(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 wa({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,ue.useRef)(!1),m=(0,ue.useRef)(null),f=x=>{let O=e.pan??{x:0,y:0};m.current={kind:"pan",fromX:x.clientX,fromY:x.clientY,baseX:O.x,baseY:O.y,moved:!1}},b=x=>{x.button!==0||a.current||x.target.closest("[data-graview-view]")||f(x)},h=(x,O)=>{if(!(O.button!==0||a.current)&&!(O.pointerType!=="mouse"&&xd(O.target,O.currentTarget))){if(x.screenOf!==void 0&&!O.target.closest("[data-graview-grip]")){f(O);return}if(e.overview&&Be(x.id)!==null){f(O);return}m.current={kind:"card",id:x.id,fromX:O.clientX,fromY:O.clientY,baseX:x.x-t.x,baseY:x.y-t.y,moved:!1}}},y=x=>{let O=m.current;m.current=null,l.release(),x?c.settle():c.drop(),O&&(u.current=!0,setTimeout(()=>u.current=!1,0)),c.settling.current||s(!1)};return{onGroundDown:b,onCardDown:h,onDragMove:x=>{let O=m.current;if(!O)return;if(a.current){y(!0);return}let R=x.clientX-O.fromX,C=x.clientY-O.fromY;if(!O.moved){if(Math.hypot(R,C)<bd)return;O.moved=!0,s(!0);try{x.currentTarget.setPointerCapture(x.pointerId)}catch{}}if(O.kind==="pan"){let D=o(n(),{x:O.baseX+R,y:O.baseY+C});r?c.shiftTo(D,e.pan??{x:0,y:0}):i(g=>ct(g,D))}else O.id&&l.place({id:O.id,x:O.baseX+R,y:O.baseY+C})},onDragUp:()=>{c.settle();let x=l.release();x&&i(O=>Nn(O,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 ba({stage:e,view:t,setView:n}){let o=(0,ue.useRef)({view:t,charge:0,coolUntil:0,lastScale:1});o.current.view=t;let r=(0,ue.useRef)(()=>{}),i=(0,ue.useRef)(()=>{}),s=(0,ue.useRef)(()=>{}),d=(0,ue.useRef)(()=>{}),c=(0,ue.useRef)(!1),l=(0,ue.useRef)({fingers:new Map,pinch:null,owed:null,owing:0});return(0,ue.useEffect)(()=>{let a=e.current;if(!a)return;let u=(R,C)=>{let D=o.current;if(C<D.coolUntil)return;let g=D.view.overview??!1;R!==g&&(D.coolUntil=C+600,D.charge=0,n(An(D.view,R)))},m=R=>{let C=o.current,D=C.view.overview??!1;if(R.ctrlKey){if(R.preventDefault(),!D){if(C.charge+=R.deltaY,Math.abs(C.charge)<60)return;C.charge>0?u(!0,performance.now()):C.charge=0;return}s.current(Math.exp(-R.deltaY*.004),R.clientX,R.clientY,0,0);return}!D||R.target?.closest("[data-graview-view], .graview-scroll, [data-graview-overlay], .graview-zoom")||(R.preventDefault(),i.current(-R.deltaX,-R.deltaY))},f=l.current,b=f.fingers,h=()=>{f.owing=0;let R=f.owed;f.owed=null,R&&s.current(R.factor,R.x,R.y,R.dx,R.dy)},y=()=>{let[R,C]=[...b.values()];return{apart:Math.max(1,Math.hypot(R.x-C.x,R.y-C.y)),mid:{x:(R.x+C.x)/2,y:(R.y+C.y)/2}}},E=R=>{if(R.pointerType!=="touch"||(R.isPrimary&&(b.clear(),f.pinch=null,c.current=!1),b.set(R.pointerId,{x:R.clientX,y:R.clientY}),b.size!==2))return;let{apart:C,mid:D}=y();f.pinch={from:C,last:C,mid:D},c.current=!0},k=R=>{if(!b.has(R.pointerId))return;b.set(R.pointerId,{x:R.clientX,y:R.clientY});let C=f.pinch;if(!C||b.size!==2)return;let{apart:D,mid:g}=y();if(!(o.current.view.overview??!1))D/C.from<.72&&u(!0,performance.now());else{let P=f.owed??={factor:1,x:C.mid.x,y:C.mid.y,dx:0,dy:0};P.factor*=D/C.last,P.dx+=g.x-C.mid.x,P.dy+=g.y-C.mid.y,f.owing===0&&(f.owing=requestAnimationFrame(h))}C.last=D,C.mid=g},w=R=>{b.delete(R.pointerId)&&(b.size<2&&(f.pinch=null),!(b.size>0)&&(f.owing!==0&&cancelAnimationFrame(f.owing),h(),c.current=!1,d.current()))},x=R=>{R.preventDefault(),o.current.lastScale=1},O=R=>{if(R.preventDefault(),c.current||b.size>1)return;let C=o.current,D=R.scale??1;if(!(C.view.overview??!1)){D<.72&&u(!0,performance.now());return}let g=D/(C.lastScale||1);C.lastScale=D;let M=R;r.current(g,M.clientX,M.clientY)};return a.addEventListener("wheel",m,{passive:!1}),a.addEventListener("gesturestart",x),a.addEventListener("gesturechange",O),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",O)}},[n,e]),{zoomAbout:r,panBy:i,pinchBy:s,pinchDone:d,pinching:c}}var va=se(Ae(),1),vd=650,kd=400,yo="[data-graview-view]",ka="button, a, input, select, textarea, [role='button'], aside, section[aria-label], [data-graview-popover], [data-graview-offstage], [data-graview-overlay]";function Sd(e,t){if(!(e instanceof Element)||e.closest("[data-graview-pick]"))return!1;let n=e.closest(ka);return n!==null&&n!==t&&t.contains(n)}function xa(e){return e instanceof Element?e.closest(yo):null}function Md(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 Sa(e,t){(0,va.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>vd)return;let b=xa(m.target)?.getAttribute("data-graview-view")??null,h=Md(f,m.clientX,m.clientY);!(m.pointerType==="touch"&&f.on!==null&&h===f.on&&m.timeStamp-f.at<=kd)&&(h===b||Sd(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(yo)].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(ka):null;if(f&&f!==n&&n.contains(f)&&!m.target.closest("[data-graview-pick]"))return;let b=xa(m.target)?.getAttribute("data-graview-view")??null;o={at:m.timeStamp,on:b,cards:[...n.querySelectorAll(yo)].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 Ma={directed:"You",autonomous:"An agent","co-edited":"You and an agent",rule:"A rule"};function wo(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 bo(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 xo(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):ei(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(vo(r,n,o),e):null}function vo(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 xr(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===Oe(r.slice(7)));return l?Ve(t,l.id,!0)??ht(l,n):null}let s=i(r),d=Be(r);if(!s&&d!==null&&(s=i(De(d))),!s&&Wt(r)){let[l]=Rt(r);l&&(s=i(Oe(l)))}if(!s){let l=o.places().find(a=>a.as===r);l&&(s=i(De(l.kind))??i(Oe(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=se(Ae(),1);var Ye=se(Ae(),1);var Ge=se(Pe(),1);function Aa({title:e,name:t,path:n,maxHeight:o,children:r}){let i=(0,Ye.useContext)(qo),[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,P=E.current;if(!M||!P||typeof ResizeObserver>"u")return;let T=()=>{u(M.clientHeight),l(P.offsetHeight||void 0)};T();let F=new ResizeObserver(T);return F.observe(M),F.observe(P),()=>F.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,O=x&&i?.href?i.href(x):void 0,R=M=>M.stopPropagation(),C=M=>{R(M),!(O&&(M.metaKey||M.ctrlKey||M.shiftKey||M.button!==0))&&(M.preventDefault(),x&&i?.open(x))},D=O?{href:O}:{role:"link",tabIndex:0},g={onPointerDown:R,onDoubleClick:R,onKeyDown:M=>{M.key!=="Enter"&&M.key!==" "||(R(M),M.key==="Enter"&&M.currentTarget.tagName==="A"&&!M.currentTarget.hasAttribute("href")&&(M.preventDefault(),M.currentTarget.click()))}};return(0,Ge.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:{...Ed,...m?Rd:{}},children:[(0,Ge.jsxs)("div",{style:Od,children:[(0,Ge.jsx)("strong",{style:Ad,children:e}),x?(0,Ge.jsx)("a",{"data-graview-preview-open":"",...D,"aria-label":`Open ${e}`,style:Ea,...g,onClick:C,children:"Open"}):w||m?(0,Ge.jsx)("button",{type:"button","data-graview-preview-expand":"","aria-expanded":m,"aria-label":`${m?"Collapse":"Expand"} ${e}`,style:{...Ea,...Ra},...g,onClick:M=>{R(M),f(P=>!P)},children:m?"Collapse":"Expand"}):null]}),(0,Ge.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:{...Pd,...o!==void 0&&!m?{maxHeight:o}:{},...b?{overflowClipMargin:4}:{}},children:[(0,Ge.jsx)("div",{ref:E,"data-graview-preview-drawn":"",style:Ld,children:(0,Ge.jsx)(Xo.Provider,{value:d,children:r})}),w?(0,Ge.jsx)("div",{"aria-hidden":"true","data-graview-preview-fade":"",style:Td}):null,w?x?(0,Ge.jsx)("a",{"data-graview-preview-more":"",...D,"aria-label":`More of ${e}`,style:Oa,...g,onClick:C,children:"More"}):(0,Ge.jsx)("button",{type:"button","data-graview-preview-more":"","aria-label":`More of ${e}`,style:{...Oa,...Ra},...g,onClick:M=>{R(M),f(!0)},children:"More"}):null]})]})}var Ed={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"},Rd={maxHeight:"none",position:"absolute",top:0,left:0,right:0,width:"auto"},Od={display:"flex",alignItems:"baseline",flexWrap:"wrap",gap:8,minWidth:0,flex:"0 0 auto"},Ad={fontFamily:"var(--graview-font-display, inherit)",fontSize:"0.9375rem",lineHeight:1.25,fontWeight:560,letterSpacing:"0.005em",minWidth:0,overflowWrap:"anywhere"},Ea={marginLeft:"auto",fontSize:"0.8125rem",fontWeight:560,color:"var(--graview-accent, #2f6f5e)",textDecoration:"none",textUnderlineOffset:"0.2em"},Ra={font:"inherit",fontSize:"0.8125rem",fontWeight:560,background:"none",border:0,padding:0,cursor:"pointer"},Pd={position:"relative",flex:"0 1 auto",minHeight:0,overflowX:"visible",overflowY:"clip",minWidth:0},Ld={display:"flow-root",minWidth:0},Td={position:"absolute",left:0,right:0,bottom:0,height:64,pointerEvents:"none",background:"linear-gradient(to bottom, transparent, var(--graview-panel, #ffffff) 66%)"},Oa={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 ye=se(Pe(),1),La=(0,ft.memo)(function({kinds:t}){let{store:n}=ke(),{view:o,go:r}=zr(),i=(0,ft.useRef)(null),s=Yr("districts",{align:"start"}),d=s.open,c=f=>er(n.schema,f),l=f=>n.graph.allNodes().filter(b=>b.kind===f).length,a=f=>!o.overview&&o.focusId===De(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,De(f))),b?.focus({preventScroll:!0});let h=`[data-graview-view="${De(f)}"][tabindex], [data-graview-view="${Oe(f)}"][tabindex]`,y=40,E=()=>{let k=document.querySelector(h);k?k.focus({preventScroll:!0}):--y>0&&requestAnimationFrame(E)};requestAnimationFrame(E)};return(0,ye.jsxs)("div",{ref:i,className:"graview-beyond","data-graview-beyond":t.length,"data-graview-beyond-open":d?"":void 0,children:[(0,ye.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,ye.jsx)("span",{className:"graview-beyond-count",children:u.length})," ",(0,ye.jsxs)("span",{className:"graview-beyond-word",children:["more district",u.length===1?"":"s"]}),(0,ye.jsx)("span",{className:"graview-beyond-chevron","aria-hidden":"true",children:d?"\u25BE":"\u25B4"})]}),d?(0,ye.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,ye.jsx)("li",{role:"none",children:(0,ye.jsxs)("button",{type:"button",role:"menuitem","data-graview-pick":Oe(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,ye.jsx)("span",{className:"graview-beyond-name",children:c(f)}),(0,ye.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 Ta(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"||So(e[o],t[o]))}function So(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(!So(e[i],r[i]))return!1;return!0}let o=Object.keys(e);return o.length!==Object.keys(t).length?!1:o.every(r=>So(e[r],t[r]))}var Ca=(0,ft.memo)(Ia,(e,t)=>e.mode===t.mode&&e.selected===t.selected&&e.fidelity===t.fidelity&&Ta(e.node,t.node));function Ia({node:e,mode:t,selected:n,fidelity:o}){let{store:r,views:i,view:s}=ke(),d=Vt(),c=gi(),l=pi(),a=e.aggregate||Wt(e.id)||Be(e.id)!==null?"many":"one",u={cardinality:a,fidelity:o??Jo[Id(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(D=>r.graph.getNode(D)).filter(D=>D!==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,ye.jsx)(Nd,{node:e,props:w});let x=Zo(b),O=!e.aggregate&&w.node?w.node:void 0,R=x?O?{title:en(r.schema.tryDefinition(O.kind),O),name:O.id,path:jo(r.schema,O.kind,O.id)}:{title:w.label??e.kind,name:f?.title?Cr(f.title):"",path:f?.title?`/places/${Cr(f.title)}`:void 0}:void 0,C=[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(D=>D.count).join(","):"",e.aggregate?ko(e.aggregate.memberIds):"",e.aggregate?.retired??"",c?ko(c):"",l?ko(l):"",y].join("|");return(0,ye.jsx)(Wr,{mode:t,children:(0,ye.jsx)(wi,{kind:w.label??e.kind,...f?.title?{view:f.title}:{},children:(0,ye.jsx)(Cd,{signature:C,graph:d,draw:()=>x&&R?(0,ye.jsx)(Aa,{...R,maxHeight:x.maxHeight,children:(0,ye.jsx)(b,{...w})}):(0,ye.jsx)(b,{...w})})},`${e.id}|${f?.title??""}`)})}var Cd=(0,ft.memo)(function({draw:t}){return(0,ye.jsx)(ye.Fragment,{children:t()})},(e,t)=>e.signature===t.signature&&e.graph===t.graph);function Id(e){return Math.max(0,Math.min(2,Math.round(e)))}function Nd({node:e,props:t}){return(0,ye.jsxs)("div",{style:{padding:8,font:"13px/1.4 system-ui",overflow:"hidden"},children:[(0,ye.jsx)("strong",{children:t.label??e.kind}),t.nodes?(0,ye.jsxs)("div",{children:[t.nodes.length," items"]}):(0,ye.jsx)("div",{children:e.id})]})}var Na=(0,ft.memo)(function({node:t}){let{store:n}=ke(),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?ir(o):null;return m?l.filter(f=>m.has(f)).length:0},[o,l]),u=i.in==="picture";return(0,ye.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,ye.jsxs)("span",{className:"graview-band-group-head",children:[(0,ye.jsx)("span",{className:"graview-band-group-name",children:r.label}),(0,ye.jsx)("span",{className:"graview-band-group-open","aria-hidden":"true",children:u?"\u2197":"\u25BE"})]}),(0,ye.jsxs)("span",{className:"graview-band-group-names",children:[u?null:(0,ye.jsxs)("span",{className:"graview-band-group-count",children:[d,a>0?` \xB7 ${a} match`:""," \xB7 "]}),c.join(" \xB7 "),s>c.length?" \u2026":""]})]})},(e,t)=>Ta(e.node,t.node)),Pa=new WeakMap;function ko(e){let t=Pa.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 Pa.set(e,o),o}var mt=se(Ae(),1);function Mo(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 Ha(){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 Ba(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 Hd=120;function Da(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<=Hd&&Math.abs(o-n.screen-r)<=1?n.size:(t.current={size:e,screen:o},e)}function Eo(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 $a(e){return`matrix3d(${e.join(",")})`}var we=se(Ae(),1);var Ro=(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 Oo(e,t){let n=[],o=[];for(let i=0;i<e.length-1;i++){let s=e[i],d=e[i+1],c=!Ro(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=!Ro(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};!Ro(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 jn(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,Tt=e=>e.map(t=>t.map((n,o)=>`${o===0?"M":"L"} ${Qe(n.x)} ${Qe(n.y)}`).join(" ")).join(" ");function Ao(e,t){if(e.length<3)return Tt([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 Fa(e,t){return t==="orthogonal"?Tt([e]):Ao(e,10)}function Wa(e,t,n){if(e==="orthogonal"){let d=jn(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 vr(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 ja(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 Va(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 Vn=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Lo=(e,t)=>e.findIndex(n=>n.boxes.some(o=>Vn(o,t)));function za(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}),kr=e=>e.map(t=>({x:t.x,y:-t.y}));function To(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 Io(e,t,n){let o=e.boxes.filter(l=>!Vn(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 Po(e,t,n){let o=Io({top:-e.bottom,bottom:-e.top,boxes:e.boxes.map(ot)},ot(t),n);return{x:o.x,head:kr(o.tail).reverse()}}function Ga(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 Ya=(e,t)=>(e%3-1)*Math.max(0,Math.min(4,t/2-3));function _a(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:za(e,h,h+1))+Ya(d,c(h)),a=Io(e[i],r,s),u=Ga(e,i,a.x,t+1),m=l(t);if(u===t+1)return To([...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 To([...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=Va(n.some(a=>Vn(a,e))&&n.some(a=>Vn(a,t))?n:[...n,e,t]),i=Lo(r,e),s=Lo(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 kr(pn(ot(e),ot(t),n.map(ot),o));let u=za(r,i,i+1)+Ya(o,i<r.length-1?r[i+1].top-r[i].bottom:2*12),m=Po(r[i],e,c),f=Po(r[i],t,d);return To([...m.head,{x:m.x,y:u},{x:f.x,y:u},...[...f.head].reverse()])}if(s<i)return kr(pn(ot(e),ot(t),n.map(ot),o));let l=Po(r[i],e,c);return _a(r,i,r[i].bottom,l,t,s,d,o)}function No(e,t,n,o=0){if(t.y+t.height<=e.y){let f=No(ot(e),ot(t),n.map(ot),o);return f?kr(f):null}let r=e.y+e.height;if(t.y<r)return null;let i=Va([...n.filter(f=>f.y>=r&&!Vn(f,t)),t]),s=Lo(i,t),d=t.x+t.width/2,c=Io(i[s],t,d),l=Ga(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 _a(i,-1,r,{x:m,head:[{x:m,y:r}]},t,s,d,o)}function Ka(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=se(Pe(),1);function Bo(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 Mr(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=Sr(e,s),l=Sr(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 Sr(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 Bd(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 Xa=e=>({clips:new Map,members:new Map,marks:new Map,...e?{owed:e}:{}});function qa(e,t){let n=Xa();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 Qa(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 Dd(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 $d(e,t,n){let o=e.parentElement;for(;o!==null;){let r=Dd(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 Qa(t,o).get(n)??[]){if(l.closest("[data-graview-offstage]"))continue;let a=l.getBoundingClientRect();a.width<=2||a.height<=2||$d(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 Er(e,t,n,o,r,i){let s=new Map(e.map(w=>[w.id,w])),d=Xa(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 O=x.getAttribute("data-graview-pick")??x.getAttribute("data-graview-slot");if(O===null)continue;let R=x.getBoundingClientRect();if(R.width<=2||R.height<=2||R.width>w.width*.6&&R.height>w.height*.6)continue;let C=u.get(O),D={x:R.left-w.left,y:R.top-w.top,width:R.width,height:R.height};C?C.push(D):u.set(O,[D])}}let m=(w,x)=>{let O=[];for(let[R,C]of a)R!==w&&R!==x&&O.push(C);for(let[R,C]of u)R!==w&&R!==x&&O.push(...C);return O},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(...Bo(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,O,R)=>{if(!y)return{};let C=w.to===y.id&&O===y.id;if(!C&&!(w.from===y.id&&x===y.id))return{};let D=C?w.from:w.to,g=a.get(y.id),M=a.get(D);if(D===y.id||!f(D)||!g||!M)return{};let P=l(y.id),T=ae=>P!==null&&Qa(P,d).get(ae)?.some(I=>!I.closest("[data-graview-offstage]"))===!0,F=R.map(ae=>ae.from===y.id?ae.to:ae.from),q=F.length>0&&F.every(T);return{band:b,tie:{card:g,chip:M,cardIsTo:C,toward:D,holds:s.get(D)?.aggregate?.memberIds??[D]},...q?{said:F}:{}}},k=[];for(let w of t){if(!Bd(w,s,o))continue;let x=a.get(w.from),O=a.get(w.to);if(!x||!O)continue;let R=m(w.from,w.to),C=w.edges,D=o&&C.some(P=>P.from!==w.from&&gn(n,l(w.from),P.from,d).length>0||P.to!==w.to&&gn(n,l(w.to),P.to,d).length>0),g=h(w.from,w.to);if(o&&!D||w.loop||C.length===0){k.push({key:w.id,connector:w,edges:C,fromBox:x,toBox:O,fromAnchor:w.from,toAnchor:w.to,obstacles:R,hosts:[],...g?{band:g}:{},...E(w,w.from,w.to,C)});continue}let M=new Map;for(let P of C){let T=P.from===w.from?[]:gn(n,l(w.from),P.from,d),F=P.to===w.to?[]:gn(n,l(w.to),P.to,d),q=[w.from,w.to].find(S=>Math.round(s.get(S)?.plane??-1)===0);if(!o&&q!==void 0&&(q===w.from?P.from!==w.from:P.to!==w.to)&&gn(n,l(q),q===w.from?P.to:P.from,d).length>0)continue;let ae=q!==void 0?s.get(q):void 0;if(!o&&ae?.aggregate&&n&&(q===w.from?P.from!==w.from&&T.length===0:P.to!==w.to&&F.length===0))continue;let I=T.length>0?P.from:w.from,$=F.length>0?P.to:w.to,N=`${w.id}|${I}|${$}`,Q=M.get(N);if(Q){Q.edges.push(P);continue}let L=T.length>0?T:[x],W=F.length>0?F:[O],Y=L[0],ie=W[0],v=1/0;for(let S of L)for(let B of W){let j=Math.hypot(S.x+S.width/2-(B.x+B.width/2),S.y+S.height/2-(B.y+B.height/2));j<v&&(v=j,Y=S,ie=B)}M.set(N,{edges:[P],fromBox:Y,toBox:ie,fromAnchor:I,toAnchor:$})}for(let[P,T]of M)k.push({key:P,connector:w,obstacles:R,hosts:[...T.fromAnchor!==w.from?[x]:[],...T.toAnchor!==w.to?[O]:[]],...g?{band:g}:{},...T,...E(w,T.fromAnchor,T.toAnchor,T.edges)})}return k}function Za(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 Ho(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 Ua(e,t,n){let o=(1-t)*(1-n),r=(1-t)*n+t*(1-n),i=t*n;return{p0:Ho(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:Ho(e,n)}}function zn(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(Ho(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(Ua(e,d,m)),d=null),c=u}return d!==null&&1-d>.001&&s.push(Ua(e,d,1)),s}function Ja({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=Gt(),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=wo(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),O=new Map;for(let g of e)O.set(g.connector.id,(O.get(g.connector.id)??0)+1);let R=Ka(e.map(g=>({key:g.key,a:g.fromAnchor,b:g.toAnchor}))),C=new Set,D=e.map((g,M)=>{let{connector:P,fromBox:T,toBox:F}=g,q={x:T.x+T.width/2,y:T.y+T.height/2},ae={x:F.x+F.width/2,y:F.y+F.height/2},I=o?Sr(T,ae):q,$=o?Sr(F,q):ae,N=P.loop===!0,{connector:Q,style:L}=ln(u,P.kind);if(!Q.visible)return null;let W=N?Math.max(22,Math.min(T.width,T.height)*.3):0,Y=N?{x:q.x+T.width*.22,y:q.y-T.height/2-W+7}:I,ie=(I.x+$.x)/2,v=(I.y+$.y)/2,S=Math.hypot($.x-I.x,$.y-I.y),B=Math.min(o?40:90,S*(o?.09:.16)),j=0,G=0;if(S>0){j=-($.y-I.y)/S,G=($.x-I.x)/S;let he=ie-t.width/2,Le=v-t.height/2;if(k&&!N){let dt=k.x+k.width/2,Nt=k.y+k.height/2;he=ie-dt,Le=v-Nt;let $e=Math.abs(j*(dt-I.x)+G*(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))/(S*S);$e<tt&&qt>.1&&qt<.9&&(B=Math.min(180,Math.max(B,(tt-$e)*2)))}j*he+G*Le<0&&(j=-j,G=-G)}B+=2*(R.get(g.key)??0);let _=vr(Q.route,{p0:I,c:{x:ie+j*B,y:v+G*B},p1:$}),A=f(P),z=Q.route==="orthogonal"||A,K=(he,Le)=>A?ja(he,Le):jn(he,Le),Z=!N&&g.tie?No(g.tie.card,g.tie.chip,g.band??[],M):null,J=Z?g.tie.cardIsTo?Z.reverse():Z:!N&&g.band?pn(T,F,g.band,M):null,de=N||z||J?[]:zn(_,[T,F,...g.obstacles]),ge=J?[J]:!N&&z?Oo(K(I,$),[T,F,...g.obstacles]):[];if(!N&&de.length===0&&ge.length===0)return null;let re=ge[ge.length-1],le=z||J?ge[0]?.[0]:de[0]?.p0,be=z||J?re?.[re.length-1]:de[de.length-1]?.p1,ee=he=>he.map(Le=>`M ${Le.p0.x} ${Le.p0.y} Q ${Le.c.x} ${Le.c.y} ${Le.p1.x} ${Le.p1.y}`).join(" "),te=`M ${Y.x-W} ${Y.y} A ${W} ${W} 0 1 1 ${Y.x+W} ${Y.y} A ${W} ${W} 0 0 1 ${Y.x-W} ${Y.y}`,ce=N?te:J?Fa(J,Q.route):z?Tt(ge):ee(de),at=he=>({x:he.x-8,y:he.y-8,width:he.width+16,height:he.height+16}),Ke=[T,F,...g.hosts,...g.obstacles].map(at),bn=N?te:J?Tt(ge):z?Tt(Oo(K(I,$),Ke)):ee(zn(_,Ke)),Ze=g.edges.length===1?g.edges[0]:null,Ie=Ze?Yt(P.kind,Ze.from,Ze.to):null,Ct=Ie!==null&&r.includes(Ie),Je=Ie!==null?l?.get(Ie):void 0,It=g.edges.some(he=>y.has(he.from)||y.has(he.to)),Ue=g.tie?.toward??"",Te=g.tie!==void 0&&(a!==null&&(Ue===a||g.tie.holds.includes(a)||g.said?.includes(a)===!0)||y.has(Ue))&&!C.has(Ue);Te&&C.add(Ue);let Ne=!o&&y.size>0&&It||Te,st=i!==null&&P.kind===i||Ct,oe=d?.(P)!==void 0;if(o&&!oe||!o&&!oe&&y.size>0&&!It&&!st&&!Te||g.said!==void 0&&!Te&&!g.said.some(he=>y.has(he))&&!st)return null;let et=o?bo({emphasized:i!==null,stressed:st,anyChosen:x,mine:It,touches:h(P),siblings:O.get(P.id)??1}):xo({edgeChosen:Ct,lit:Ne,anyLit:x||i!==null,own:L.opacity,kit:u.emphasis}),gt=Ne&&le&&be?g.tie?g.tie.cardIsTo?le:be:g.edges.some(he=>y.has(he.from))?be:le:null,xn=(0,_e.jsxs)("g",{children:[(0,_e.jsx)("path",{"data-graview-connector":P.kind,"data-graview-edges":g.edges.length,"data-graview-from":g.fromAnchor,"data-graview-to":g.toAnchor,"data-graview-lit":Ne||void 0,"data-graview-activity":d?.(P)?.manner,"data-graview-provisional":Je!==void 0||void 0,opacity:et*(P.opacity??1)*(Je!==void 0?In:1),d:ce,fill:"none",stroke:an(L),strokeWidth:(Ne?Math.max(1.6,_r(L,o)):_r(L,o))+(st?.6:0),strokeDasharray:Je!==void 0?Cn:ar[L.pattern],strokeLinecap:"round"}),gt?(0,_e.jsx)("circle",{cx:gt.x,cy:gt.y,r:2.6,fill:an(L),opacity:et}):null,N&&o?(0,_e.jsx)("text",{x:Y.x,y:Y.y-W-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:Jn(P.kind).toLowerCase()}):null]},g.key),xt=null;return Ie&&c&&!N&&et>=.2&&(xt=(0,_e.jsx)("path",{"data-graview-edge":Ie,className:"graview-edge-hit",d:bn,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:he=>{he.stopPropagation(),c(Ie,{x:he.clientX,y:he.clientY})},onContextMenu:he=>{he.altKey||(he.preventDefault(),he.stopPropagation(),c(Ie,{x:he.clientX,y:he.clientY}))},children:Je!==void 0?(0,_e.jsx)("title",{children:Je}):null},`hit:${g.key}`)),{key:g.key,line:xn,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:D.map(g=>g?.line)}),D.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:D.map(g=>g?.hit)}):null]})}function es(e,t,n){if(t.size===0||typeof MutationObserver>"u")return()=>{};let o=0,r=()=>{o=0,qa(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 Rr(e){return e<640?{left:8,right:56}:{left:8,right:Math.round(Math.min(128,e*.107))}}function Fd(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 ns(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=Fd(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 ts=(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 Do(e,t){let n=new Set;for(let o of e)(t.edgeId&&o.edgeId===t.edgeId||t.point&&(ts(o.fromBox,t.point)||ts(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 Me=se(Pe(),1);function is(e){let t=Si(e);return t.length>0?new Map(t.map(n=>[Yt(n.edge.kind,n.edge.from,n.edge.to),ki(n)])):void 0}function as({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,we.useState)(0),[k,w]=(0,we.useState)(null),x=e.t<1,O=(0,we.useRef)(""),R=(0,we.useRef)([]),C=(0,we.useRef)(new Map),D=()=>[...d.current?.querySelectorAll("[data-graview-relation] > span")??[]].map(I=>{let $=I.getBoundingClientRect();return`${Math.round($.left)},${Math.round($.top)},${Math.round($.width)}`}).join(" ");(0,we.useLayoutEffect)(()=>{if(x||m)return;O.current=D(),R.current=e.nodes;let I=new Map;w(Er(e.nodes,e.connectors,d.current,r,o,I)),C.current=I},[e,x,m,i,r,l,o,y,d]),(0,we.useEffect)(()=>{let I=d.current;if(!(x||m||I===null))return es(I,C.current,()=>E($=>$+1))},[k,x,m,d]),(0,we.useEffect)(()=>{if(x||m||r||typeof requestAnimationFrame>"u")return;let I=requestAnimationFrame(()=>{D()!==O.current&&E($=>$+1)});return()=>cancelAnimationFrame(I)},[k]);let g=e.nodes.map(I=>I.id).join(`
4
- `);(0,we.useLayoutEffect)(()=>{let I=d.current;if(I===null||typeof window>"u")return;let $=0,N=()=>{$===0&&($=requestAnimationFrame(()=>{$=0,E(L=>L+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 L of I.querySelectorAll("[data-graview-view]"))Q.observe(L)}return()=>{$!==0&&cancelAnimationFrame($),I.removeEventListener("scroll",N,{capture:!0}),window.removeEventListener("resize",N),Q?.disconnect()}},[d,g]);let M=(0,we.useRef)(new WeakMap);(0,we.useEffect)(()=>{let I=d.current;if(x||m||I===null||typeof ResizeObserver>"u")return;let $=0,N=new ResizeObserver(Q=>{let L=!1;for(let{target:W,contentRect:Y}of Q){let ie=`${Math.round(Y.width)}x${Math.round(Y.height)}`;M.current.has(W)&&M.current.get(W)!==ie&&(L=!0),M.current.set(W,ie)}L&&$===0&&($=requestAnimationFrame(()=>{$=0,E(W=>W+1)}))});for(let Q of I.querySelectorAll("[data-graview-view]")){let L=vo(Q);L!==Q&&N.observe(L)}return()=>{$!==0&&cancelAnimationFrame($),N.disconnect()}},[k,x,m,d]);let[P,T]=(0,we.useState)(null),F=(k??[]).some(I=>I.tie!==void 0);if((0,we.useEffect)(()=>{let I=d.current;if(!F||I===null)return;let $=Q=>{let L=Q.target?.closest?.("[data-graview-pick], [data-graview-view]");T(L?.getAttribute("data-graview-pick")??L?.getAttribute("data-graview-view")??null)},N=()=>T(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)}},[F,d]),x)return null;let q=(k&&m?Za(k,R.current,e.nodes):k)??Er(e.nodes,e.connectors,null,r,o),ae=new Set;for(let I of q){if(I.edges.length===1){let $=I.edges[0];ae.add(`${I.connector.kind}|${$.from}|${$.to}`);continue}for(let $ of I.edges)(I.connector.from===$.from||I.connector.to===$.to)&&ae.add(`${I.connector.kind}|${$.from}|${$.to}`)}return(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(Ja,{strands:q,result:e,scheme:o,overview:r,selection:i,emphasis:s,stageRef:d,onPickEdge:a,liveOf:u,pointed:P,...f?{provisional:f}:{}}),r&&Hn(i,{overview:r,focusId:b,beside:h},I=>c.graph.getNode(I)?.kind).records.length>0?(0,Me.jsx)(we.Suspense,{fallback:null,children:(0,Me.jsx)(jd,{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?{...rs,unsureOf:(I,$,N)=>f.get(Yt(I,$,N))}:rs})}):null,r?null:(0,Me.jsx)(zd,{...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:ae,tick:y})]})}var rs={visibleRect:mn,clipQuadratic:zn,unsureDash:Cn,unsureOpacity:In},Wd=Tn(nn(()=>(__graviewPreload(import.meta.url,["./chunk.4QBW46XV.js","./chunk.ZGJUCVT5.js","./chunk.CVVNHQPO.js","./chunk.YIDNZTON.js","./chunk.QILGAV7H.js","./chunk.I6HIVTXU.js","./chunk.CUA7F3YJ.js","./chunk.SDO3U72B.js","./chunk.IUVRJDL3.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ZTHZHBVN.js")))),jd=Wd.part((e,t)=>(0,Me.jsx)(e.RecordLinks,{...t}),{what:"The links",quiet:!0}),Vd=44;function zd({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=Gt(),b=(0,we.useMemo)(()=>{if(o.length===0||o.length>4)return[];let g=new Set(o),M=[];for(let T of o){let F=Ft(T);F&&M.push({kind:F.kind,self:F.from,other:F.to})}for(let T of r.graph.allEdges()){let F=g.has(T.from)?T.from:g.has(T.to)?T.to:null;if(!F)continue;let q=F===T.from?T.to:T.from;g.has(q)||M.push({kind:T.kind,self:F,other:q})}if(M.length<=14)return M;let P=new Set(t.map(T=>T.id));return M.map((T,F)=>({tie:T,index:F,real:P.has(T.other)?0:1})).sort((T,F)=>T.real-F.real||T.index-F.index).slice(0,14).map(({tie:T})=>T)},[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(L=>{if(L.closest("[data-graview-offstage]"))return!1;try{let W=JSON.parse(L.getAttribute("data-graview-joins")??"[]");return W.length===o.length&&W.every(Y=>o.includes(Y))}catch{return!1}});if(M){let L=mn(M,e.current);if(!L)return[];let W=[];for(let Y of o){let ie=t.find(j=>j.id===Y);if(!ie)continue;let v=Ve(e.current,ie.id,s)??ht(ie,n),S=v?Mr(L,v):null;if(!v||!S)continue;let B=[...r.graph.allEdges()].find(j=>j.from===Y&&o.includes(j.to)||j.to===Y&&o.includes(j.from));W.push({key:`join:${Y}`,self:Y,other:"",others:1,kind:B?.kind??"",endX:S.to.x,endY:S.to.y,...S,fromBox:L,toBox:v,proxy:!1,edgeId:B?Yt(B.kind,B.from,B.to):null})}return W}let P=(L,W)=>{let Y=e.current?.querySelectorAll(`[data-graview-pick="${CSS.escape(L)}"], [data-graview-slot="${CSS.escape(L)}"]`),ie=[];for(let v of Y??[]){if(v.closest("[data-graview-offstage]")||W(v)||v.closest("[data-graview-mark]"))continue;let S=mn(v,e.current);S&&ie.push(S)}return ie.sort((v,S)=>v.width*v.height-S.width*S.height)},T=L=>t.find(W=>W.id===L)??t.find(W=>W.aggregate?.memberIds.includes(L)),F=L=>`[data-graview-pick="${CSS.escape(L)}"], [data-graview-slot="${CSS.escape(L)}"]`,q=(L,W)=>{let Y=e.current;if(!Y)return!1;for(let ie of Y.querySelectorAll("[data-graview-view]")){let v=ie.querySelector(F(L));if(v===null||v.closest("[data-graview-offstage]"))continue;let S=ie.querySelector(F(W));if(S!==null&&!S.closest("[data-graview-offstage]"))return!0}return!1},ae=[];if(!s&&e.current){for(let W of t){if(Math.round(W.plane)!==1)continue;let Y=Ve(e.current,W.id,!1);Y&&ae.push(Y)}let L=e.current;ae.push(...Bo(L,g,t,W=>Ve(L,W,!1)))}let I=new Map,$=[];for(let L of b){if(q(L.self,L.other))continue;let W=T(L.self),Y=W?e.current?.querySelector(`[data-graview-view="${CSS.escape(W.id)}"]`):null,ie=!s&&W?.id===L.self&&Math.round(W.plane)===1?Ve(e.current,W.id,!1):null,v=ie?[ie]:P(L.self,()=>!1);if(!(v.length>0)&&W){let te=Ve(e.current,W.id,!1)??ht(W,n);te&&v.push(te)}let B=t.find(te=>te.id===L.other),j=[],G=!1;if(B){let te=Ve(e.current,B.id,s)??ht(B,n);te&&j.push(te)}else if(j.push(...P(L.other,te=>Y?Y.contains(te):!1)),j.length===0){let te=T(L.other);if(te&&(!W||te.id!==W.id)){let ce=Ve(e.current,te.id,s)??ht(te,n);ce&&(j.push(ce),G=!0)}}if(v.length===0||j.length===0||G&&s)continue;let _=v[0],A=j[0],z=1/0;for(let te of v)for(let ce of j){let at=Math.hypot(te.x+te.width/2-(ce.x+ce.width/2),te.y+te.height/2-(ce.y+ce.height/2));at<z&&(z=at,_=te,A=ce)}if(a?.has(`${L.kind}|${L.self}|${L.other}`)||a?.has(`${L.kind}|${L.other}|${L.self}`))continue;let K=`${L.kind}:${Math.round(_.x)},${Math.round(_.y)}:${Math.round(A.x)},${Math.round(A.y)}`,Z=I.get(K);if(Z){Z.others+=1;continue}let J=Mr(_,A);if(!J)continue;let{from:de,control:ge}=J,re=ie&&_===ie?pn(_,A,ae,$.length):void 0,le=re?re[re.length-1]:J.to,be=[...r.graph.allEdges()].find(te=>te.kind===L.kind&&(te.from===L.self&&te.to===L.other||te.from===L.other&&te.to===L.self)),ee={key:`${L.kind}:${L.self}:${L.other}`,self:L.self,other:L.other,others:1,kind:L.kind,endX:le.x,endY:le.y,from:de,to:le,control:ge,fromBox:_,toBox:A,...re?{points:re}:{},proxy:G,edgeId:be?Yt(be.kind,be.from,be.to):null};I.set(K,ee),$.push(ee)}let N=s?void 0:t.find(L=>Math.round(L.plane)===0&&!L.aggregate),Q=L=>{let W=t.find(Y=>Y.id===L.other)??t.find(Y=>Y.aggregate?.memberIds.includes(L.other));return W!==void 0&&Math.round(W.plane)===1&&W.via?.edgeKind===L.kind};for(let L of $){if(N&&(L.self!==N.id||Q(L)))continue;let W=[...r.graph.allEdges()].find(j=>j.kind===L.kind&&(j.from===L.self&&j.to===L.other||j.from===L.other&&j.to===L.self)),Y=r.graph.getNode(L.self),ie=r.graph.getNode(L.other);if(!W||!Y||!ie)continue;let v=W.from===L.self?"out":"in",S=hi(r.schema,v==="out"?Y.kind:ie.kind,L.kind,v),B=L.proxy?(v==="out"?r.graph.out(L.self,L.kind):r.graph.in(L.self,L.kind)).filter(j=>j.kind===ie.kind).length:1;L.said=L.proxy?`${S}: ${tn(r.schema,ie.kind,Math.max(B,L.others))}`:`${S}: ${en(r.schema.tryDefinition(ie.kind),ie)}`}return $},[y,E]=(0,we.useState)([]),[k,w]=(0,we.useState)([]);(0,we.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 P=[];for(let T of M.querySelectorAll("[data-graview-view]")){let F=[...T.children].find(ae=>!ae.classList.contains("graview-kind-tag")),q=F?mn(F,M):null;q&&P.push({box:q,title:{...q,height:Math.min(q.height,Vd)}})}return ns(g.flatMap(T=>T.said?[{key:T.key,said:T.said,end:{x:T.endX,y:T.endY},far:T.toBox}]:[]),P,{width:d,height:c})},[O,R]=(0,we.useState)(()=>new Set),C=(0,we.useRef)([]);C.current=y.map(g=>({key:g.key,fromBox:g.fromBox,toBox:g.toBox,ids:[g.self,g.other],edgeId:g.edgeId}));let D=k.length>0;return(0,we.useEffect)(()=>{let g=e.current;if(!g||!D)return;let M=N=>R(Q=>Q.size===N.size&&[...N].every(L=>Q.has(L))?Q:N),P=0,T=null,F=()=>{if(P=0,!T)return;let N=g.getBoundingClientRect(),Q=T.target instanceof Element?T.target:null;M(Do(C.current,{point:{x:T.clientX-N.left,y:T.clientY-N.top},edgeId:Q?.closest("[data-graview-edge]")?.getAttribute("data-graview-edge")??null}))},q=N=>{T=N,P||(P=requestAnimationFrame(F))},ae=()=>{T=null,M(new Set)},I=N=>{let Q=N.target instanceof Element?N.target:null;if(!Q)return;let L=g.getBoundingClientRect(),W=Q.getBoundingClientRect(),Y=Q.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??Q.closest("[data-graview-view]")?.getAttribute("data-graview-view");M(Do(C.current,{...Y?{ids:[Y]}:{},box:{x:W.left-L.left,y:W.top-L.top,width:W.width,height:W.height}}))},$=N=>{N.relatedTarget instanceof Node&&g.contains(N.relatedTarget)||M(new Set)};return g.addEventListener("pointermove",q,{passive:!0}),g.addEventListener("pointerleave",ae),g.addEventListener("focusin",I),g.addEventListener("focusout",$),()=>{P&&cancelAnimationFrame(P),g.removeEventListener("pointermove",q),g.removeEventListener("pointerleave",ae),g.removeEventListener("focusin",I),g.removeEventListener("focusout",$)}},[e,D]),y.length===0?null:(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.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:P}=ln(f,g.kind);if(!M.visible)return null;let T=g.edgeId?m?.get(g.edgeId):void 0,F={p0:g.from,c:g.control,p1:g.to},q=g.points?Ao(g.points,10):M.route==="orthogonal"?Tt([jn(g.from,g.to)]):(({p0:I,c:$,p1:N})=>`M ${I.x} ${I.y} Q ${$.x} ${$.y} ${N.x} ${N.y}`)(vr(M.route,F)),ae=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=Wa(M.route,F,N/40);I(g.fromBox,Q)||I(g.toBox,Q)||$.push(Q)}$.length>=2&&(ae=(0,Me.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:T!==void 0?(0,Me.jsx)("title",{children:T}):null}))}return(0,Me.jsxs)("g",{opacity:(g.proxy?.32:.72)*(T!==void 0?In:1),children:[(0,Me.jsx)("path",{"data-graview-tie":g.kind,"data-graview-tie-proxy":g.proxy||void 0,"data-graview-provisional":T!==void 0||void 0,d:q,fill:"none",stroke:an(P),strokeWidth:g.proxy?1.1:1.6,strokeDasharray:T!==void 0?Cn:ar[P.pattern],strokeLinecap:"round"}),(0,Me.jsx)("circle",{cx:g.endX,cy:g.endY,r:g.proxy?2:2.6,fill:an(P)}),ae]},g.key)})}),(0,Me.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(P=>P.key===g.keys[0]);return(0,Me.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(P=>O.has(P))?"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 os(){return typeof document>"u"?1:parseFloat(getComputedStyle(document.documentElement).fontSize)/16||1}function ss({nodes:e,scheme:t,width:n,stageRef:o,moving:r=!1,holding:i=!1}){let s=Gt(),[d,c]=(0,we.useState)([]);(0,we.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:Bn(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=Rr(n);return ao(b,{left:h.left,right:n-h.right},os())}if(d.length===0||!s.captions.visible||r)return null;let a=io*os();return(0,Me.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,Me.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,Me.jsx)("span",{style:{background:"var(--graview-ground)",padding:"1px 7px",borderRadius:4},children:u.text})},u.key)})})}var Xt=se(Ae(),1);var Yd=new Set;function ls(e,t,n,o,r,i,s=0,d=0){let{store:c,views:l,hiddenKinds:a}=ke(),u=jt(),m=(0,Xt.useContext)(rn),f=Vr(),b=(0,Xt.useMemo)(()=>{let k={};for(let w of f){if(w.subjectId===void 0)continue;let x=k[w.subjectId]??=[];for(let O of w.nodeIds)O!==w.subjectId&&!x.includes(O)&&x.push(O)}return k},[f]),h=(0,Xt.useMemo)(()=>({flagged:new Set(f.flatMap(k=>k.nodeIds)),touched:sr(c.log.all())}),[f,c,i]),y=(0,Xt.useMemo)(()=>({hits:u?ir(u):Yd,...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}:{...Rr((t?.width??1200)-r.right),top:8,bottom:0},chrome:[{x:(t?.width??1200)-r.right-176,y:0,width:176,height:100},{...Kd(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=>Qo(l.lookup(k,{cardinality:"many",fidelity:"full"}))),cityOrder:zo(Oi({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,ds=224;function Kd(e,t){let n=e?.width??1200,o=e?.height??800,r=58;return{x:n-t.right-ds,y:o-t.bottom-r,width:ds,height:r}}var pt=se(Ae(),1);var cs=se(Ae(),1);function Or(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 us(e){(0,cs.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&&Xd(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 Ud=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 Xd(e){return Ud.has(e.localName.toLowerCase())}var yn=se(Ae(),1),fs=4,hs={top:0,right:0,bottom:0,left:0};function ms(e,t){let[n,o]=(0,yn.useState)(null),r=(0,yn.useRef)(null);return r.current=n,(0,yn.useLayoutEffect)(()=>{let i=e.current;if(!t||!i){o(null);return}let s=()=>{let m=i.getBoundingClientRect(),f=i.offsetWidth>0?m.width/i.offsetWidth:1;if(!(f>0))return;let b=r.current??hs,h={top:m.top+b.top*f,right:m.right-b.right*f,bottom:m.bottom-b.bottom*f,left:m.left+b.left*f},y=0,E=0,k=0,w=0;for(let D of i.querySelectorAll("*")){let g=D.getBoundingClientRect();g.width===0&&g.height===0||(y=Math.max(y,h.top-g.top),E=Math.max(E,g.right-h.right),k=Math.max(k,g.bottom-h.bottom),w=Math.max(w,h.left-g.left))}let x=D=>D>.5?Math.ceil(D/f)+fs:0,O={top:x(y),right:x(E),bottom:x(k),left:x(w)},R=r.current??hs;if(O.top===R.top&&O.right===R.right&&O.bottom===R.bottom&&O.left===R.left)return;let C=O.top+O.right+O.bottom+O.left===0;r.current=C?null:O,o(C?null:O)},d=0,c=()=>{d||(d=requestAnimationFrame(()=>{d=0,s()}))};s();let l=typeof MutationObserver>"u"?null:new MutationObserver(c);l?.observe(i,{childList:!0,subtree:!0,characterData:!0,attributes:!0});let a=typeof ResizeObserver>"u"?null:new ResizeObserver(c);a?.observe(i);let u=["pointerover","pointerout","focusin","focusout","transitionend","animationend"];for(let m of u)i.addEventListener(m,c);return()=>{d&&cancelAnimationFrame(d),l?.disconnect(),a?.disconnect();for(let m of u)i.removeEventListener(m,c)}},[e,t]),n}function ps(e){return!e||!(e.top<0)?null:{top:Math.ceil(-e.top)+fs,right:0,bottom:0,left:0}}var wn=se(Pe(),1);function gs({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:O,onDragEnd:R,onDragCancel:C,swallowClick:D,children:g}){let{brand:M,store:P,actsDoor:T}=ke(),F=e.beyond?`${e.beyond.length} more district${e.beyond.length===1?"":"s"}`:e.aggregate?.opens?.in==="place"?`${e.aggregate.label}, ${tn(P.schema,e.aggregate.kind,e.aggregate.memberIds.length)}`:e.aggregate?e.aggregate.label:(()=>{let A=P.graph.getNode(e.id);return A?en(P.schema.tryDefinition(e.kind),A):e.id})(),[q,ae]=(0,pt.useState)(null),I=(0,pt.useRef)(null),$=Math.round(e.plane)===0&&!e.aggregate;(0,pt.useLayoutEffect)(()=>{if(!$)return;let A=Y.current;if(!A)return;let z=()=>{let Z=[...A.children].find(be=>be.dataset.graviewKindtag===void 0);if(!Z)return;let J=A.getBoundingClientRect(),de=Z.getBoundingClientRect(),ge=A.offsetWidth>0?J.width/A.offsetWidth:1,re=I.current,le={top:Math.round((de.top-J.top)/ge)-(re?.top??0)-9,right:Math.round((J.right-de.right)/ge)-(re?.right??0)+14};ae(be=>be&&be.top===le.top&&be.right===le.right?be:le)};if(typeof ResizeObserver>"u"){z();return}let K=new ResizeObserver(z);K.observe(A);for(let Z of A.children)K.observe(Z);return()=>K.disconnect()},[$,e.id]);let N=ni({plane:e.plane,...e.depth!==void 0?{depth:e.depth}:{},onPlot:r!==void 0},a),Q=N.style,L=ti(Q,e.x,e.y,u,m),W=n?N.blur:0,Y=(0,pt.useRef)(null);us(Y);let v=ms(Y,!t&&r!==void 0)??(t||!$?null:ps(q));I.current=v;let S=e.natural,B=S?Math.min(e.width/S.width,e.height/S.height):1,j=(0,pt.useRef)(null);(0,pt.useEffect)(()=>{if(!s||!d)return;let A=j.current;if(!A||typeof ResizeObserver>"u")return;let z=()=>{let ge=0,re=0;for(let le of A.children)if(!(!(le instanceof HTMLElement)||le.classList.contains("graview-screen-fullscreen"))){ge=Math.max(ge,le.offsetTop+le.offsetHeight);for(let be of[le,...le.querySelectorAll("*")]){let ee=getComputedStyle(be).overflowY;(ee==="auto"||ee==="scroll")&&(re+=be.scrollHeight-be.clientHeight)}}d(ge+re)},K=0,Z=()=>{K||(K=requestAnimationFrame(()=>{K=0,z()}))};z();let J=new ResizeObserver(Z);J.observe(A);for(let ge of A.children)J.observe(ge);let de=new MutationObserver(Z);return de.observe(A,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),()=>{K&&cancelAnimationFrame(K),J.disconnect(),de.disconnect(),d(void 0)}},[s,d,e.id]);let G={...r!==void 0?{"--graview-front-y":`${r.toFixed(1)}px`}:{},...i!==void 0?{"--graview-center-y":`${i.toFixed(1)}px`}:{}},_=t?{transform:$a(L),transformOrigin:"0 0",filter:W>0?`blur(${W}px)`:void 0,opacity:ri(Q)*(e.opacity??1),"--graview-lift-low":Eo(Q.shadow,a),...G}:{"--graview-lift-low":Eo(Q.shadow,a),...G};return(0,wn.jsxs)("div",{ref:Y,"data-graview-view":e.id,...t?{}:{drawable:""},...v?{[oi]:ii(v)}:{},"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&&!S&&!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?`${Ma[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":F,"aria-keyshortcuts":T&&!e.beyond?T.key:void 0,tabIndex:0,onPointerDown:x,onPointerMove:O,onPointerUp:R,onPointerCancel:C??R,onClick:A=>{if(D.current)return;let z=A.target?.closest("input, textarea, select, button, a[href], [contenteditable='true']");if(z&&!z.hasAttribute("data-graview-pick"))return;let K=A.metaKey||A.shiftKey,Z=Ot(A.target);if(Z&&Z!==e.id){A.stopPropagation(),h(Z,K,Or(A.target)??void 0);return}b(K)},onKeyDown:A=>{if(T&&!e.beyond&&A.key.toLowerCase()===T.key.toLowerCase()&&!A.metaKey&&!A.ctrlKey&&!A.altKey&&!A.target?.closest("input, textarea, select, [contenteditable='true']")){A.preventDefault(),A.stopPropagation();let de=Ot(A.target)??e.id;k.includes(de)||h(de,!1),T.open(A.target instanceof HTMLElement?A.target:A.currentTarget);return}if(A.key!=="Enter"&&A.key!==" "||A.target?.closest("input, textarea, select, button, [contenteditable='true']"))return;let K=Ot(A.target);if(A.preventDefault(),A.stopPropagation(),!K||K===e.id){k.length===1&&k[0]===e.id&&!A.metaKey&&!A.shiftKey?w():b(A.metaKey||A.shiftKey);return}let Z=Or(A.target);(Z?k.length===Z.length&&Z.every(de=>k.includes(de)):k.length===1&&k[0]===K)&&!A.metaKey&&!A.shiftKey?y(K):h(K,A.metaKey||A.shiftKey,Z??void 0)},onContextMenu:A=>{if(A.altKey)return;let z=Ot(A.target);A.preventDefault(),A.stopPropagation();let K=z&&z!==e.id||!e.aggregate?null:Uo(A.target,A.currentTarget,(le,be)=>P.graph.neighbors(le).some(ee=>ee.id===be),e.id),Z=z&&z!==e.id?z:K??e.id;h(Z,!1,(Z===z?Or(A.target):null)??void 0);let J=A.nativeEvent.composedPath?.()[0],{clientX:de,clientY:ge}=A,re=()=>{let le=xi(J);E({x:de,y:ge,on:Z,...le?{section:le,title:le.name}:{}})};vi(J)?bi().then(re,re):re()},onDoubleClick:A=>{let z=Ot(A.target);if(z&&z!==e.id){A.stopPropagation(),y(z);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)-(v?.left??0),top:t?0:Math.round(e.y)-(v?.top??0),width:Math.round(e.width)+(v?v.left+v.right:0),height:Math.round(e.height)+(v?v.top+v.bottom:0),...v?{padding:`${v.top}px ${v.right}px ${v.bottom}px ${v.left}px`}:{},boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",..._},children:[S?(0,wn.jsx)("div",{ref:j,"data-graview-natural":`${Math.round(S.width)}x${Math.round(S.height)}`,style:{position:"absolute",left:v?`calc(50% + ${(v.left-v.right)/2}px)`:"50%",top:v?`calc(50% + ${(v.top-v.bottom)/2}px)`:"50%",width:S.width,height:S.height,transform:`translate(-50%, -50%) scale(${B})`,transformOrigin:"50% 50%",display:"flex",flexDirection:"column"},children:g}):g,Math.round(e.plane)===0&&!e.aggregate?(0,wn.jsxs)("span",{"data-graview-kindtag":"",className:"graview-kind-tag","aria-hidden":"true",style:{...q?{top:q.top+(v?.top??0),right:q.right+(v?.right??0)}:{},"--graview-hue":Math.round(On(e.kind,M?.accents))},children:[(0,wn.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(On(e.kind,M?.accents))} 55% var(--graview-tint-lightness) / 0.9)`}}),Wo(P.schema.tryDefinition(e.kind),e.kind)]}):null]})}var pe=se(Pe(),1);jr({search:Pi,touchWeights:sr});var qd=e=>e?{activity:e}:{},Qd=e=>`${Math.round(e.x)} ${Math.round(e.y)}`,ys=e=>e.stopPropagation(),Ar=.6,Pr=3,Zd=80,ws=e=>Math.round(e.plane)===1&&(e.compact===!0||e.width<175||e.height<Zd);function Jd(e){let[t,n]=(0,U.useState)(1),o=(0,U.useRef)(1);return(0,U.useEffect)(()=>{e||(o.current=1,n(1))},[e]),[t,o,n]}function el(e){let[t,n]=(0,U.useState)({x:0,y:0}),o=(0,U.useMemo)(()=>({x:(e.pan?.x??0)+t.x,y:(e.pan?.y??0)+t.y}),[e.pan,t]),r=(0,U.useMemo)(()=>t.x===0&&t.y===0?e:ct(e,o),[e,t,o]),i=(0,U.useRef)(t);i.current=t;let s=(0,U.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 tl(e,t,n,o,r,i){let s=n!==null&&!t.overview,d=s?null:n,c=(0,U.useRef)(t);eo(c.current,t)||(c.current=t);let l=c.current,a=(0,U.useMemo)(()=>{let h=l.pan?{...l,pan:void 0}:l;return d?Nn(h,d.id,{x:d.x,y:d.y}):h},[l,d]),u=(0,U.useRef)(void 0),m=(0,U.useMemo)(()=>{let h=u.current?.stood,y=pr(e.graph,e.schema,a,h?{...o,cityStood:h}:o);return u.current=y.city,y},[e,a,o,r]),f=(0,U.useMemo)(()=>n&&s?ho(m,n.id,{x:n.x,y:n.y})??pr(e.graph,e.schema,Nn(a,n.id,{x:n.x,y:n.y}),o):m,[m,n,s,e,a,o]);return[(0,U.useMemo)(()=>fo(f,i??{x:0,y:0}),[f,i]),s]}function nl(e,t){let n=(0,U.useRef)(!1),o=(0,U.useRef)(!1),r=(0,U.useRef)(null),i=(0,U.useRef)(!1),s=(0,U.useCallback)(()=>{rl(e.current,{dragging:n.current,steering:o.current}),t.set(n.current||o.current||i.current)},[e,t]),d=(0,U.useCallback)(u=>{n.current!==u&&(n.current=u,s())},[s]),c=(0,U.useRef)(()=>!1),l=(0,U.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,U.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 rl(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 ol(e){let t=(0,U.useRef)(!1),n=e!==null&&!t.current;return(0,U.useEffect)(()=>{e!==null&&(t.current=!0)},[e]),n}function il({registerScene:e,scheme:t,views:n},o,r){let i=(0,U.useRef)(o);i.current=o,(0,U.useEffect)(()=>(e({whereIs:s=>xr(i.current,r.current,t,n,s)}),()=>e(null)),[e,t,n])}function al(e,t){(0,U.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 sl(e,t,n,o,r,i,s,d){(0,U.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 dl=nn(()=>(__graviewPreload(import.meta.url,["./chunk.RD2FSSLV.js","./chunk.IUVRJDL3.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.7HNMG6LG.js")));function ll(e,t){let[n]=(0,U.useState)(()=>{let a=si();return t?e==="dom"||e==="auto"&&a==="dom"?"dom":"gpu":li(e,{operator:a,present:di()})}),[o,r]=(0,U.useState)(!1),i=(0,U.useCallback)(()=>r(!0),[]),[s,d]=(0,U.useState)(null),c=n==="gpu"&&!t&&!o&&s===null;return(0,U.useEffect)(()=>{if(!c)return;let a=!0;return dl().then(u=>{a&&d(()=>u.attachGpu())},()=>{a&&r(!0)}),()=>{a=!1}},[c]),{attach:(n==="gpu"&&!o?t??s:null)??null,fallBack:i}}function cl(){let[e,t]=(0,U.useState)(()=>new Set),n=(0,U.useCallback)(o=>{t(r=>r.size===o.size&&[...o].every(i=>r.has(i))?r:new Set(o))},[]);return[e,n]}function ul(){let e=fi();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 bs=(e,t)=>e.includes(t)?e.filter(n=>n!==t):[...e,t];function hl(){let{views:e,view:t,setView:n,setSelection:o}=ke(),r=jt(),i=(0,U.useContext)(rn),s=d=>{if(Be(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(Ln(d.id)){o(a=>c?bs(a,d.id):[d.id]);return}let l=d.aggregate?Pn(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=>Br(u,u.relation===a?null:a));return}o(a=>Mo(d,a,c))},onPick:(c,l,a)=>o(u=>a?l?[...new Set([...u,...a])]:[...a]:l?bs(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=>Dr(u,d.id)):n(u=>Object.entries(c.within).reduce((m,[f,b])=>rr(m,f,b),Et(An(u,!1),c.focus))),o([]);return}let l=Be(d.id),a=l!==null&&(r?.byKind[l]??0)>0;if(i&&l!==null&&t.overview&&!s(d)&&!(a&&t.q)){n(u=>rr({...Et(u,`aggregate:${l}`),relation:null},"view",null)),o([]);return}n(u=>$r(u,d.id,{ownPicture:s(d),...a&&u.q?{carry:u.q}:{}})),o(d.aggregate?[]:[d.id])}})}var fl=Tn(nn(()=>(__graviewPreload(import.meta.url,["./chunk.HJCQ6I3S.js","./chunk.4QBW46XV.js","./chunk.TUVPQLFL.js","./chunk.U5Q7EVZQ.js","./chunk.ZGJUCVT5.js","./chunk.CVVNHQPO.js","./chunk.YIDNZTON.js","./chunk.QILGAV7H.js","./chunk.I6HIVTXU.js","./chunk.CUA7F3YJ.js","./chunk.SDO3U72B.js","./chunk.IUVRJDL3.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.NBB5ALVJ.js")))),ml=fl.part((e,t)=>(0,pe.jsx)(e.Ribbons,{...t}),{what:"The relations",quiet:!0}),xs="graview:map-from-above";function pl(){let[e,t]=(0,U.useState)(()=>{try{return globalThis.localStorage?.getItem(xs)==="1"}catch{return!1}}),n=(0,U.useCallback)(o=>{t(o);try{globalThis.localStorage?.setItem(xs,o?"1":"0")}catch{}},[]);return[e,n]}var vs=Tn(nn(()=>(__graviewPreload(import.meta.url,["./chunk.TUVPQLFL.js","./chunk.U5Q7EVZQ.js","./chunk.T552MHMU.js","./chunk.CUA7F3YJ.js","./chunk.SDO3U72B.js","./chunk.IUVRJDL3.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.LZ3HO3HM.js")))),gl=vs.part((e,t)=>(0,pe.jsx)(e.Plots,{...t}),{quiet:!0}),yl=vs.part((e,t)=>(0,pe.jsx)(e.WorkflowsLayer,{...t}),{quiet:!0});function wl({zoom:e,zoomBy:t,above:n,setAbove:o}){let r=(i,s,d,c)=>(0,pe.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,pe.jsxs)("div",{className:"graview-zoom","data-graview-foot":"",role:"group","aria-label":"Zoom",onPointerDown:ys,onClick:ys,children:[r("out","\u2212",1/1.25,e<=Ar+1e-6),(0,pe.jsxs)("span",{className:"graview-zoom-level","data-testid":"zoom-level","aria-live":"polite",children:[Math.round(e*100),"%"]}),r("in","+",1.25,e>=Pr-1e-6),(0,pe.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 bl({options:e,renderer:t="auto",attachRenderer:n,blur:o=!0,className:r,style:i,animate:s=!0,children:d}){let c=ke(),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:O,motion:R}=c,C=(0,U.useContext)(rn),D=(0,U.useRef)(null),g=(0,U.useRef)(null),M=Ba(g),P=Da(M),T=Ha(),{zoomAbout:F,panBy:q,pinchBy:ae,pinchDone:I,pinching:$}=ba({stage:g,view:f,setView:b}),N=Vt(),Q=1,[L,W,Y]=Jd(f.overview),[ie,v]=pl(),S=(0,U.useMemo)(()=>ie?{...e,tilt:Ti}:e,[e,ie]),{probe:B,dock:j}=pa(),G=!f.overview&&(f.zoom||f.past||f.relation)?Math.ceil(14+34*T/16+6):0,_=M&&P?M.height-P.height:0,A=(0,U.useRef)(j);_<=0&&(A.current=j);let z=_>0?A.current:j,K=!!f.overview&&z.bottom>0&&z.right===0&&(h.length>0||f.focusId!==void 0),Z=ls(S,P,T,Q*L,z,N,G,f.overview?0:z.bottom),J=da(g),[de,ge,re,le,be]=el(f),ee=(0,U.useMemo)(()=>new Set(Object.keys(f.pins).filter(H=>Be(H)===null)),[f.pins]),te=ga(),[ce,at]=tl(a,f,te.held,Z,N,ge.pan),Ke=nl(g,R),{setDragging:bn,steer:Ze,settleLive:Ie,settled:Ct}=Ke,Je=Ke.dragging.current||Ke.steering.current,It=ol(P),Ue=(0,U.useRef)(()=>{}),Te=ya({stage:g,pan:f.pan,zoom:L,setView:b,settled:Ct,zoomTo:Ue}),Ne=(0,U.useRef)(!1);Te.settling.current||(Ne.current=!1);let st=Te.settling.current&&!Ne.current,oe=ea(ce,{enabled:s&&!Je&&P!==null&&!It,settle:!st});Ke.tweening.current=oe.t<1;let et=la(g,oe.t>=1,ce);(0,U.useEffect)(()=>R.set(Ke.dragging.current||Ke.steering.current||oe.t<1),[R,oe]);let gt=ta(),xn=na(),xt=ua({view:f,result:ce,frame:oe,panned:de,closer:Q,screenId:null,setCamera:be});il(c,oe,g),al(c.pointer,g);let[he,Le]=cl(),{attach:dt,fallBack:Nt}=ll(t,n),$e=Zi(o);sl(dt,D,oe,gt,Le,$e,u,Nt);let tt=dt===null,qt=Ji($e&&tt,oe.t<1),vn=ul();Ie.current=Te.settle;let{onGroundDown:Yn,onCardDown:vt,onDragMove:kn,onDragUp:Sn,onDragCancel:_n,swallow:yt}=wa({view:f,panned:de,limit:()=>At(ce),panWithin:re,moveByTransform:!0,setView:b,setDragging:bn,noteMoved:x,shift:Te,district:te,pinching:$}),kt=qi({swallow:yt,setMenuAt:E,setSelection:y});Sa(g,yt),F.current=(H,me,ve)=>{if(!f.overview)return;Ie.current();let Ee=W.current,He=Math.max(Ar,Math.min(Pr,Ee*H));if(Math.abs(He-Ee)<1e-4)return;W.current=He,Ne.current=!0,Ze(),Y(He);let ze=g.current?.getBoundingClientRect(),qe=ce.visible??ce,Dt={x:qe.width/2,y:qe.height/2},Rn=ze&&me!==void 0&&ve!==void 0?{x:me-ze.left,y:ve-ze.top}:Dt,qn=He/Ee;b(St=>ct(St,mr(St.pan??{x:0,y:0},le.current,Rn,Dt,qn))),x()},ae.current=(H,me,ve,Ee,He)=>{if(!f.overview)return;Ze();let ze=g.current?.getBoundingClientRect(),qe=ze?{x:me-ze.left,y:ve-ze.top}:{x:0,y:0};Te.zoomBy(H,qe,Ee,He,Ar/W.current,Pr/W.current),x()},I.current=()=>{Ie.current()},Ue.current=(H,me)=>{let ve=W.current,Ee=Math.max(Ar,Math.min(Pr,ve*H));W.current=Ee,Ne.current=!0,Y(Ee);let He=ce.visible??ce,ze={x:He.width/2,y:He.height/2};b(qe=>ct(qe,mr(qe.pan??{x:0,y:0},le.current,me,ze,Ee/ve)))};let Qt=(H,me,ve=At(ce))=>b(Ee=>ct(Ee,re(ve,{x:(Ee.pan?.x??0)+H,y:(Ee.pan?.y??0)+me})));fa(g,j,(H,me)=>Qt(H,me)),q.current=(H,me)=>{Ze();let ve=At(ce),Ee=f.pan??{x:0,y:0},He=Te.offset();Te.shiftTo(re(ve,{x:Ee.x+He.x+H,y:Ee.y+He.y+me}),Ee),x()};let Kn=hl(),Un=Gt(),Ht=(0,U.useCallback)(H=>ln(Un,H).connector.visible,[Un]),lt=H=>vn(oe.nodes.find(me=>me.id===H)),Mn=(H,me,ve,Ee)=>H.originY+de.y+cn(ve.col+ve.side/Ee,ve.row+ve.side/Ee,H.cell,H.tilt).y-me.y,nt={width:ce.width,height:ce.height},En={position:"relative",zIndex:We.stage,...nt},Zt=H=>xr(oe,g.current,u,m,H),Xe=H=>tt||he.has(H),Xn=lr(c),Jt=H=>(0,pe.jsx)(or.Provider,{value:Xn,children:H}),Bt=oe.nodes.filter(H=>H.screenOf===void 0).map(H=>(0,pe.jsx)(gs,{node:H,crowded:ws(H),useDom:Xe(H.id),blur:qt||!tt&&$e,...H.plot&&oe.city&&Math.round(H.plane)===2?{frontY:Mn(oe.city,H,H.plot,1),centerY:Mn(oe.city,H,H.plot,2)}:{},touched:gt.has(H.id),...qd(vn(H)),scheme:u,canvasWidth:ce.width,canvasHeight:ce.height,selected:h.includes(H.id),...Kn(H),onMenu:E,selection:h,onDragStart:me=>vt(H,me),onDragMove:kn,onDragEnd:Sn,onDragCancel:_n,swallowClick:yt,children:H.beyond?(0,pe.jsx)(La,{kinds:H.beyond}):H.aggregate?.opens?(0,pe.jsx)(Na,{node:H}):(0,pe.jsx)(Ca,{node:H,mode:"scene",selected:h.includes(H.id),...ws(H)?{fidelity:"glyph"}:{}})},H.id));return(0,pe.jsxs)("div",{ref:g,className:`graview-ground${r?` ${r}`:""}`,"data-graview-altitude":f.overview?"":void 0,"data-graview-reach":oe.city?Qd(At(ce)):void 0,"data-graview-settled":oe.t>=1&&!xt.gliding()?"":void 0,"data-graview-box":P?`${P.width}x${P.height}`:void 0,"data-graview-renderer":tt?"dom":"gpu","data-graview-blur":(tt?qt:$e)?"":void 0,onPointerDown:H=>{kt.onPointerDown(H),Yn(H)},onPointerMove:H=>{kt.onPointerMove(H),kn(H)},onPointerUp:()=>{kt.onPointerUp(),Sn()},onPointerCancel:()=>{kt.onPointerUp(),_n()},onContextMenu:kt.onContextMenu,onClick:H=>{yt.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,...oe.city?{"--graview-lattice-cell":`${oe.city.cell.toFixed(2)}px`,"--graview-lattice-tilt":(oe.city.tilt??.5).toFixed(3),"--graview-lattice-x":`${(oe.city.originX+oe.city.pan.x).toFixed(1)}px`,"--graview-lattice-y":`${(oe.city.originY+oe.city.pan.y).toFixed(1)}px`}:{},overflow:"hidden",...i},children:[(0,pe.jsx)("div",{className:"graview-measure","aria-hidden":"true",style:{"--graview-world-x":`${(oe.pan?.x??0).toFixed(1)}px`,"--graview-world-y":`${(oe.pan?.y??0).toFixed(1)}px`}}),f.overview&&oe.city?(0,pe.jsx)(U.Suspense,{fallback:null,children:(0,pe.jsx)(ml,{frame:oe,...nt,pan:oe.city.pan,store:a,graphVersion:N,selection:h,view:{overview:f.overview,focusId:f.focusId,beside:C},emphasis:k,hiddenKinds:c.hiddenKinds,drawn:Ht})}):null,(0,pe.jsx)("div",{ref:B,"aria-hidden":"true",style:{position:"absolute",top:0,right:0,width:"var(--graview-dock, 0px)",height:"var(--graview-sheet, 0px)",visibility:"hidden",pointerEvents:"none"}}),oe.city?(0,pe.jsx)(U.Suspense,{fallback:null,children:(0,pe.jsx)(gl,{frame:oe,...nt,pan:oe.city?oe.city.pan:de,brand:w,pinned:ee,close:Q*L>1.2,swallowed:yt,...f.overview?{chosen:Hn(h,{overview:f.overview,focusId:f.focusId,beside:C},H=>a.graph.getNode(H)?.kind).records}:{},onFocus:H=>{let me=Be(H);me!==null&&b(ve=>Et(ve,De(me)))}})}):null,f.overview&&oe.city&&l?(0,pe.jsx)(U.Suspense,{fallback:null,children:(0,pe.jsx)(yl,{frame:oe,...nt,pan:oe.city.pan,app:c.app,workflows:l,acts:a.allMutations(),runs:c.workflowRuns,graphVersion:N,hiddenKinds:c.hiddenKinds})}):null,tt?(0,pe.jsx)("div",{"data-graview-stage":"dom","data-graview-world":"",style:{...En,overflow:"hidden"},children:Jt(Bt)}):(0,pe.jsxs)("div",{"data-graview-world":"",style:En,children:[(0,pe.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=>he.has(String(H.key))))}),(0,pe.jsx)("canvas",{ref:D,"data-graview-stage":"gpu",content:"drawable",layoutsubtree:"",...nt,style:{display:"block",position:"relative",...nt},children:Jt(Bt.filter(H=>!he.has(String(H.key))))})]}),f.overview?(0,pe.jsx)(aa,{result:ce,schema:a.schema,chrome:[...Z.chrome??[],...J?[J]:[],...ca(et,ce.nodes)],onGo:H=>{Qt(H.x,H.y),x()}}):null,f.overview&&!K?(0,pe.jsx)(wl,{zoom:L,zoomBy:H=>F.current(H),above:ie,setAbove:v}):null,(0,pe.jsx)(as,{frame:oe,focusId:f.focusId,beside:C,holding:at,...nt,scheme:u,overview:!!f.overview,selection:h,emphasis:k,stageRef:g,store:a,graphNodes:N,...(H=>H?{provisional:H}:{})(is(a)),onPickEdge:(H,me)=>{yt.current||(y([H]),E(me?{...me,on:H}:null))},liveOf:H=>{let me=lt(H.from),ve=lt(H.to);return me?.wrote&&ve?.wrote?me.at>ve.at?me:ve:void 0}}),(0,pe.jsx)(oa,{width:ce.width,whereIs:Zt}),(0,pe.jsx)(ra,{marks:xn.marks,questions:[...O.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,pe.jsx)(ss,{nodes:oe.nodes,moving:oe.t<1,holding:at,scheme:u,width:ce.width,stageRef:g}),d,(0,pe.jsx)("div",{className:"graview-lattice","aria-hidden":"true"})]})}var it=se(Ae(),1);function xl(){return Es(),null}var Ms=()=>window.location.pathname.endsWith(Vo),ks=()=>(Ms()?Yo:Hr)(window.location.hash),vl=e=>(Ms()?_o:Nr)(e);function Es(){let{view:e,setView:t,views:n,principal:o}=ke(),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:De(m.kind)}:a},[n]),s=(0,it.useRef)(!1);(0,it.useEffect)(()=>{if(typeof window>"u")return;let a=i(ks());!nr(a,Ir)&&!nr(a,e)&&(s.current=!0,t(a))},[]),(0,it.useEffect)(()=>{if(typeof window>"u")return;let a=()=>t(i(ks()));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=vl(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:zt.at},"",m);return}if(a||Rs(c.current,e)){window.history.replaceState({graview:zt.at},"",m),c.current=e;return}c.current=e,window.history.pushState({graview:++zt.at},"",m),zt.depth=zt.at,zt.tell()},[e,r])}function Rs(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(",")&&kl(e.within,t.within):!1}function kl(e,t){let n=o=>Object.entries(o??{}).sort(([r],[i])=>r.localeCompare(i)).map(([r,i])=>`${r}=${i}`).join("&");return n(Ss(e))===n(Ss(t))}function Ss(e){if(!e||!("q"in e))return e;let{q:t,...n}=e;return n}var $o=se(Ae(),1);var Os=new WeakMap,Sl=64,As=new WeakMap,Ml=0,El=e=>{if(e===void 0)return 0;let t=As.get(e);return t===void 0&&As.set(e,t=Ml+=1),t};function Ps(e,t,n,o={}){let r=()=>{let l=[...new Set(t.flatMap(u=>Pn(u)))],a=t.map(u=>Ft(u)).filter(u=>u!==null);return Mi(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=Os.get(e);if(!i){let l={kept:new Map,at:e.log.length};Os.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,El(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>Sl&&i.kept.delete(i.kept.keys().next().value),c}function Rl(e,t,n={}){return Ps(e,t,n)}function Ol(e={}){let{store:t,selection:n,principal:o,providers:r}=ke(),{about:i,principal:s=o,providers:d=r,pins:c,focus:l,...a}=e,u=i??n,m=Vt();return(0,$o.useMemo)(()=>Ps(t,u,{principal:s,providers:d,pins:c,focus:l},a),[t,u,e,m,s,d])}function Al(){let{store:e,principal:t}=ke();return(0,$o.useMemo)(()=>({preview:(n,o)=>Ri(e,n,o??{},{pressed:t?{author:t}:{}}),apply:(n,o)=>Ei(e,n,o??{},{author:t})}),[e,t])}export{Ys as a,_s as b,Ks as c,Us as d,Xs as e,qs as f,Hs as g,bl as h,xl as i,Rl as j,Ol as k,Al as l};
4
+ `);(0,we.useLayoutEffect)(()=>{let I=d.current;if(I===null||typeof window>"u")return;let $=0,N=()=>{$===0&&($=requestAnimationFrame(()=>{$=0,E(L=>L+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 L of I.querySelectorAll("[data-graview-view]"))Q.observe(L)}return()=>{$!==0&&cancelAnimationFrame($),I.removeEventListener("scroll",N,{capture:!0}),window.removeEventListener("resize",N),Q?.disconnect()}},[d,g]);let M=(0,we.useRef)(new WeakMap);(0,we.useEffect)(()=>{let I=d.current;if(x||m||I===null||typeof ResizeObserver>"u")return;let $=0,N=new ResizeObserver(Q=>{let L=!1;for(let{target:W,contentRect:Y}of Q){let ie=`${Math.round(Y.width)}x${Math.round(Y.height)}`;M.current.has(W)&&M.current.get(W)!==ie&&(L=!0),M.current.set(W,ie)}L&&$===0&&($=requestAnimationFrame(()=>{$=0,E(W=>W+1)}))});for(let Q of I.querySelectorAll("[data-graview-view]")){let L=vo(Q);L!==Q&&N.observe(L)}return()=>{$!==0&&cancelAnimationFrame($),N.disconnect()}},[k,x,m,d]);let[P,T]=(0,we.useState)(null),F=(k??[]).some(I=>I.tie!==void 0);if((0,we.useEffect)(()=>{let I=d.current;if(!F||I===null)return;let $=Q=>{let L=Q.target?.closest?.("[data-graview-pick], [data-graview-view]");T(L?.getAttribute("data-graview-pick")??L?.getAttribute("data-graview-view")??null)},N=()=>T(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)}},[F,d]),x)return null;let q=(k&&m?Za(k,R.current,e.nodes):k)??Er(e.nodes,e.connectors,null,r,o),ae=new Set;for(let I of q){if(I.edges.length===1){let $=I.edges[0];ae.add(`${I.connector.kind}|${$.from}|${$.to}`);continue}for(let $ of I.edges)(I.connector.from===$.from||I.connector.to===$.to)&&ae.add(`${I.connector.kind}|${$.from}|${$.to}`)}return(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(Ja,{strands:q,result:e,scheme:o,overview:r,selection:i,emphasis:s,stageRef:d,onPickEdge:a,liveOf:u,pointed:P,...f?{provisional:f}:{}}),r&&Hn(i,{overview:r,focusId:b,beside:h},I=>c.graph.getNode(I)?.kind).records.length>0?(0,Me.jsx)(we.Suspense,{fallback:null,children:(0,Me.jsx)(jd,{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?{...rs,unsureOf:(I,$,N)=>f.get(Yt(I,$,N))}:rs})}):null,r?null:(0,Me.jsx)(zd,{...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:ae,tick:y})]})}var rs={visibleRect:mn,clipQuadratic:zn,unsureDash:Cn,unsureOpacity:In},Wd=Tn(nn(()=>(__graviewPreload(import.meta.url,["./chunk.QNFX5VHW.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.5ZT4R227.js")))),jd=Wd.part((e,t)=>(0,Me.jsx)(e.RecordLinks,{...t}),{what:"The links",quiet:!0}),Vd=44;function zd({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=Gt(),b=(0,we.useMemo)(()=>{if(o.length===0||o.length>4)return[];let g=new Set(o),M=[];for(let T of o){let F=Ft(T);F&&M.push({kind:F.kind,self:F.from,other:F.to})}for(let T of r.graph.allEdges()){let F=g.has(T.from)?T.from:g.has(T.to)?T.to:null;if(!F)continue;let q=F===T.from?T.to:T.from;g.has(q)||M.push({kind:T.kind,self:F,other:q})}if(M.length<=14)return M;let P=new Set(t.map(T=>T.id));return M.map((T,F)=>({tie:T,index:F,real:P.has(T.other)?0:1})).sort((T,F)=>T.real-F.real||T.index-F.index).slice(0,14).map(({tie:T})=>T)},[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(L=>{if(L.closest("[data-graview-offstage]"))return!1;try{let W=JSON.parse(L.getAttribute("data-graview-joins")??"[]");return W.length===o.length&&W.every(Y=>o.includes(Y))}catch{return!1}});if(M){let L=mn(M,e.current);if(!L)return[];let W=[];for(let Y of o){let ie=t.find(j=>j.id===Y);if(!ie)continue;let v=Ve(e.current,ie.id,s)??ht(ie,n),S=v?Mr(L,v):null;if(!v||!S)continue;let B=[...r.graph.allEdges()].find(j=>j.from===Y&&o.includes(j.to)||j.to===Y&&o.includes(j.from));W.push({key:`join:${Y}`,self:Y,other:"",others:1,kind:B?.kind??"",endX:S.to.x,endY:S.to.y,...S,fromBox:L,toBox:v,proxy:!1,edgeId:B?Yt(B.kind,B.from,B.to):null})}return W}let P=(L,W)=>{let Y=e.current?.querySelectorAll(`[data-graview-pick="${CSS.escape(L)}"], [data-graview-slot="${CSS.escape(L)}"]`),ie=[];for(let v of Y??[]){if(v.closest("[data-graview-offstage]")||W(v)||v.closest("[data-graview-mark]"))continue;let S=mn(v,e.current);S&&ie.push(S)}return ie.sort((v,S)=>v.width*v.height-S.width*S.height)},T=L=>t.find(W=>W.id===L)??t.find(W=>W.aggregate?.memberIds.includes(L)),F=L=>`[data-graview-pick="${CSS.escape(L)}"], [data-graview-slot="${CSS.escape(L)}"]`,q=(L,W)=>{let Y=e.current;if(!Y)return!1;for(let ie of Y.querySelectorAll("[data-graview-view]")){let v=ie.querySelector(F(L));if(v===null||v.closest("[data-graview-offstage]"))continue;let S=ie.querySelector(F(W));if(S!==null&&!S.closest("[data-graview-offstage]"))return!0}return!1},ae=[];if(!s&&e.current){for(let W of t){if(Math.round(W.plane)!==1)continue;let Y=Ve(e.current,W.id,!1);Y&&ae.push(Y)}let L=e.current;ae.push(...Bo(L,g,t,W=>Ve(L,W,!1)))}let I=new Map,$=[];for(let L of b){if(q(L.self,L.other))continue;let W=T(L.self),Y=W?e.current?.querySelector(`[data-graview-view="${CSS.escape(W.id)}"]`):null,ie=!s&&W?.id===L.self&&Math.round(W.plane)===1?Ve(e.current,W.id,!1):null,v=ie?[ie]:P(L.self,()=>!1);if(!(v.length>0)&&W){let te=Ve(e.current,W.id,!1)??ht(W,n);te&&v.push(te)}let B=t.find(te=>te.id===L.other),j=[],G=!1;if(B){let te=Ve(e.current,B.id,s)??ht(B,n);te&&j.push(te)}else if(j.push(...P(L.other,te=>Y?Y.contains(te):!1)),j.length===0){let te=T(L.other);if(te&&(!W||te.id!==W.id)){let ce=Ve(e.current,te.id,s)??ht(te,n);ce&&(j.push(ce),G=!0)}}if(v.length===0||j.length===0||G&&s)continue;let _=v[0],A=j[0],z=1/0;for(let te of v)for(let ce of j){let at=Math.hypot(te.x+te.width/2-(ce.x+ce.width/2),te.y+te.height/2-(ce.y+ce.height/2));at<z&&(z=at,_=te,A=ce)}if(a?.has(`${L.kind}|${L.self}|${L.other}`)||a?.has(`${L.kind}|${L.other}|${L.self}`))continue;let K=`${L.kind}:${Math.round(_.x)},${Math.round(_.y)}:${Math.round(A.x)},${Math.round(A.y)}`,Z=I.get(K);if(Z){Z.others+=1;continue}let J=Mr(_,A);if(!J)continue;let{from:de,control:ge}=J,re=ie&&_===ie?pn(_,A,ae,$.length):void 0,le=re?re[re.length-1]:J.to,be=[...r.graph.allEdges()].find(te=>te.kind===L.kind&&(te.from===L.self&&te.to===L.other||te.from===L.other&&te.to===L.self)),ee={key:`${L.kind}:${L.self}:${L.other}`,self:L.self,other:L.other,others:1,kind:L.kind,endX:le.x,endY:le.y,from:de,to:le,control:ge,fromBox:_,toBox:A,...re?{points:re}:{},proxy:G,edgeId:be?Yt(be.kind,be.from,be.to):null};I.set(K,ee),$.push(ee)}let N=s?void 0:t.find(L=>Math.round(L.plane)===0&&!L.aggregate),Q=L=>{let W=t.find(Y=>Y.id===L.other)??t.find(Y=>Y.aggregate?.memberIds.includes(L.other));return W!==void 0&&Math.round(W.plane)===1&&W.via?.edgeKind===L.kind};for(let L of $){if(N&&(L.self!==N.id||Q(L)))continue;let W=[...r.graph.allEdges()].find(j=>j.kind===L.kind&&(j.from===L.self&&j.to===L.other||j.from===L.other&&j.to===L.self)),Y=r.graph.getNode(L.self),ie=r.graph.getNode(L.other);if(!W||!Y||!ie)continue;let v=W.from===L.self?"out":"in",S=hi(r.schema,v==="out"?Y.kind:ie.kind,L.kind,v),B=L.proxy?(v==="out"?r.graph.out(L.self,L.kind):r.graph.in(L.self,L.kind)).filter(j=>j.kind===ie.kind).length:1;L.said=L.proxy?`${S}: ${tn(r.schema,ie.kind,Math.max(B,L.others))}`:`${S}: ${en(r.schema.tryDefinition(ie.kind),ie)}`}return $},[y,E]=(0,we.useState)([]),[k,w]=(0,we.useState)([]);(0,we.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 P=[];for(let T of M.querySelectorAll("[data-graview-view]")){let F=[...T.children].find(ae=>!ae.classList.contains("graview-kind-tag")),q=F?mn(F,M):null;q&&P.push({box:q,title:{...q,height:Math.min(q.height,Vd)}})}return ns(g.flatMap(T=>T.said?[{key:T.key,said:T.said,end:{x:T.endX,y:T.endY},far:T.toBox}]:[]),P,{width:d,height:c})},[O,R]=(0,we.useState)(()=>new Set),C=(0,we.useRef)([]);C.current=y.map(g=>({key:g.key,fromBox:g.fromBox,toBox:g.toBox,ids:[g.self,g.other],edgeId:g.edgeId}));let D=k.length>0;return(0,we.useEffect)(()=>{let g=e.current;if(!g||!D)return;let M=N=>R(Q=>Q.size===N.size&&[...N].every(L=>Q.has(L))?Q:N),P=0,T=null,F=()=>{if(P=0,!T)return;let N=g.getBoundingClientRect(),Q=T.target instanceof Element?T.target:null;M(Do(C.current,{point:{x:T.clientX-N.left,y:T.clientY-N.top},edgeId:Q?.closest("[data-graview-edge]")?.getAttribute("data-graview-edge")??null}))},q=N=>{T=N,P||(P=requestAnimationFrame(F))},ae=()=>{T=null,M(new Set)},I=N=>{let Q=N.target instanceof Element?N.target:null;if(!Q)return;let L=g.getBoundingClientRect(),W=Q.getBoundingClientRect(),Y=Q.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??Q.closest("[data-graview-view]")?.getAttribute("data-graview-view");M(Do(C.current,{...Y?{ids:[Y]}:{},box:{x:W.left-L.left,y:W.top-L.top,width:W.width,height:W.height}}))},$=N=>{N.relatedTarget instanceof Node&&g.contains(N.relatedTarget)||M(new Set)};return g.addEventListener("pointermove",q,{passive:!0}),g.addEventListener("pointerleave",ae),g.addEventListener("focusin",I),g.addEventListener("focusout",$),()=>{P&&cancelAnimationFrame(P),g.removeEventListener("pointermove",q),g.removeEventListener("pointerleave",ae),g.removeEventListener("focusin",I),g.removeEventListener("focusout",$)}},[e,D]),y.length===0?null:(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.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:P}=ln(f,g.kind);if(!M.visible)return null;let T=g.edgeId?m?.get(g.edgeId):void 0,F={p0:g.from,c:g.control,p1:g.to},q=g.points?Ao(g.points,10):M.route==="orthogonal"?Tt([jn(g.from,g.to)]):(({p0:I,c:$,p1:N})=>`M ${I.x} ${I.y} Q ${$.x} ${$.y} ${N.x} ${N.y}`)(vr(M.route,F)),ae=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=Wa(M.route,F,N/40);I(g.fromBox,Q)||I(g.toBox,Q)||$.push(Q)}$.length>=2&&(ae=(0,Me.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:T!==void 0?(0,Me.jsx)("title",{children:T}):null}))}return(0,Me.jsxs)("g",{opacity:(g.proxy?.32:.72)*(T!==void 0?In:1),children:[(0,Me.jsx)("path",{"data-graview-tie":g.kind,"data-graview-tie-proxy":g.proxy||void 0,"data-graview-provisional":T!==void 0||void 0,d:q,fill:"none",stroke:an(P),strokeWidth:g.proxy?1.1:1.6,strokeDasharray:T!==void 0?Cn:ar[P.pattern],strokeLinecap:"round"}),(0,Me.jsx)("circle",{cx:g.endX,cy:g.endY,r:g.proxy?2:2.6,fill:an(P)}),ae]},g.key)})}),(0,Me.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(P=>P.key===g.keys[0]);return(0,Me.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(P=>O.has(P))?"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 os(){return typeof document>"u"?1:parseFloat(getComputedStyle(document.documentElement).fontSize)/16||1}function ss({nodes:e,scheme:t,width:n,stageRef:o,moving:r=!1,holding:i=!1}){let s=Gt(),[d,c]=(0,we.useState)([]);(0,we.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:Bn(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=Rr(n);return ao(b,{left:h.left,right:n-h.right},os())}if(d.length===0||!s.captions.visible||r)return null;let a=io*os();return(0,Me.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,Me.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,Me.jsx)("span",{style:{background:"var(--graview-ground)",padding:"1px 7px",borderRadius:4},children:u.text})},u.key)})})}var Xt=se(Ae(),1);var Yd=new Set;function ls(e,t,n,o,r,i,s=0,d=0){let{store:c,views:l,hiddenKinds:a}=ke(),u=jt(),m=(0,Xt.useContext)(rn),f=Vr(),b=(0,Xt.useMemo)(()=>{let k={};for(let w of f){if(w.subjectId===void 0)continue;let x=k[w.subjectId]??=[];for(let O of w.nodeIds)O!==w.subjectId&&!x.includes(O)&&x.push(O)}return k},[f]),h=(0,Xt.useMemo)(()=>({flagged:new Set(f.flatMap(k=>k.nodeIds)),touched:sr(c.log.all())}),[f,c,i]),y=(0,Xt.useMemo)(()=>({hits:u?ir(u):Yd,...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}:{...Rr((t?.width??1200)-r.right),top:8,bottom:0},chrome:[{x:(t?.width??1200)-r.right-176,y:0,width:176,height:100},{...Kd(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=>Qo(l.lookup(k,{cardinality:"many",fidelity:"full"}))),cityOrder:zo(Oi({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,ds=224;function Kd(e,t){let n=e?.width??1200,o=e?.height??800,r=58;return{x:n-t.right-ds,y:o-t.bottom-r,width:ds,height:r}}var pt=se(Ae(),1);var cs=se(Ae(),1);function Or(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 us(e){(0,cs.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&&Xd(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 Ud=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 Xd(e){return Ud.has(e.localName.toLowerCase())}var yn=se(Ae(),1),fs=4,hs={top:0,right:0,bottom:0,left:0};function ms(e,t){let[n,o]=(0,yn.useState)(null),r=(0,yn.useRef)(null);return r.current=n,(0,yn.useLayoutEffect)(()=>{let i=e.current;if(!t||!i){o(null);return}let s=()=>{let m=i.getBoundingClientRect(),f=i.offsetWidth>0?m.width/i.offsetWidth:1;if(!(f>0))return;let b=r.current??hs,h={top:m.top+b.top*f,right:m.right-b.right*f,bottom:m.bottom-b.bottom*f,left:m.left+b.left*f},y=0,E=0,k=0,w=0;for(let D of i.querySelectorAll("*")){let g=D.getBoundingClientRect();g.width===0&&g.height===0||(y=Math.max(y,h.top-g.top),E=Math.max(E,g.right-h.right),k=Math.max(k,g.bottom-h.bottom),w=Math.max(w,h.left-g.left))}let x=D=>D>.5?Math.ceil(D/f)+fs:0,O={top:x(y),right:x(E),bottom:x(k),left:x(w)},R=r.current??hs;if(O.top===R.top&&O.right===R.right&&O.bottom===R.bottom&&O.left===R.left)return;let C=O.top+O.right+O.bottom+O.left===0;r.current=C?null:O,o(C?null:O)},d=0,c=()=>{d||(d=requestAnimationFrame(()=>{d=0,s()}))};s();let l=typeof MutationObserver>"u"?null:new MutationObserver(c);l?.observe(i,{childList:!0,subtree:!0,characterData:!0,attributes:!0});let a=typeof ResizeObserver>"u"?null:new ResizeObserver(c);a?.observe(i);let u=["pointerover","pointerout","focusin","focusout","transitionend","animationend"];for(let m of u)i.addEventListener(m,c);return()=>{d&&cancelAnimationFrame(d),l?.disconnect(),a?.disconnect();for(let m of u)i.removeEventListener(m,c)}},[e,t]),n}function ps(e){return!e||!(e.top<0)?null:{top:Math.ceil(-e.top)+fs,right:0,bottom:0,left:0}}var wn=se(Pe(),1);function gs({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:O,onDragEnd:R,onDragCancel:C,swallowClick:D,children:g}){let{brand:M,store:P,actsDoor:T}=ke(),F=e.beyond?`${e.beyond.length} more district${e.beyond.length===1?"":"s"}`:e.aggregate?.opens?.in==="place"?`${e.aggregate.label}, ${tn(P.schema,e.aggregate.kind,e.aggregate.memberIds.length)}`:e.aggregate?e.aggregate.label:(()=>{let A=P.graph.getNode(e.id);return A?en(P.schema.tryDefinition(e.kind),A):e.id})(),[q,ae]=(0,pt.useState)(null),I=(0,pt.useRef)(null),$=Math.round(e.plane)===0&&!e.aggregate;(0,pt.useLayoutEffect)(()=>{if(!$)return;let A=Y.current;if(!A)return;let z=()=>{let Z=[...A.children].find(be=>be.dataset.graviewKindtag===void 0);if(!Z)return;let J=A.getBoundingClientRect(),de=Z.getBoundingClientRect(),ge=A.offsetWidth>0?J.width/A.offsetWidth:1,re=I.current,le={top:Math.round((de.top-J.top)/ge)-(re?.top??0)-9,right:Math.round((J.right-de.right)/ge)-(re?.right??0)+14};ae(be=>be&&be.top===le.top&&be.right===le.right?be:le)};if(typeof ResizeObserver>"u"){z();return}let K=new ResizeObserver(z);K.observe(A);for(let Z of A.children)K.observe(Z);return()=>K.disconnect()},[$,e.id]);let N=ni({plane:e.plane,...e.depth!==void 0?{depth:e.depth}:{},onPlot:r!==void 0},a),Q=N.style,L=ti(Q,e.x,e.y,u,m),W=n?N.blur:0,Y=(0,pt.useRef)(null);us(Y);let v=ms(Y,!t&&r!==void 0)??(t||!$?null:ps(q));I.current=v;let S=e.natural,B=S?Math.min(e.width/S.width,e.height/S.height):1,j=(0,pt.useRef)(null);(0,pt.useEffect)(()=>{if(!s||!d)return;let A=j.current;if(!A||typeof ResizeObserver>"u")return;let z=()=>{let ge=0,re=0;for(let le of A.children)if(!(!(le instanceof HTMLElement)||le.classList.contains("graview-screen-fullscreen"))){ge=Math.max(ge,le.offsetTop+le.offsetHeight);for(let be of[le,...le.querySelectorAll("*")]){let ee=getComputedStyle(be).overflowY;(ee==="auto"||ee==="scroll")&&(re+=be.scrollHeight-be.clientHeight)}}d(ge+re)},K=0,Z=()=>{K||(K=requestAnimationFrame(()=>{K=0,z()}))};z();let J=new ResizeObserver(Z);J.observe(A);for(let ge of A.children)J.observe(ge);let de=new MutationObserver(Z);return de.observe(A,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),()=>{K&&cancelAnimationFrame(K),J.disconnect(),de.disconnect(),d(void 0)}},[s,d,e.id]);let G={...r!==void 0?{"--graview-front-y":`${r.toFixed(1)}px`}:{},...i!==void 0?{"--graview-center-y":`${i.toFixed(1)}px`}:{}},_=t?{transform:$a(L),transformOrigin:"0 0",filter:W>0?`blur(${W}px)`:void 0,opacity:ri(Q)*(e.opacity??1),"--graview-lift-low":Eo(Q.shadow,a),...G}:{"--graview-lift-low":Eo(Q.shadow,a),...G};return(0,wn.jsxs)("div",{ref:Y,"data-graview-view":e.id,...t?{}:{drawable:""},...v?{[oi]:ii(v)}:{},"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&&!S&&!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?`${Ma[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":F,"aria-keyshortcuts":T&&!e.beyond?T.key:void 0,tabIndex:0,onPointerDown:x,onPointerMove:O,onPointerUp:R,onPointerCancel:C??R,onClick:A=>{if(D.current)return;let z=A.target?.closest("input, textarea, select, button, a[href], [contenteditable='true']");if(z&&!z.hasAttribute("data-graview-pick"))return;let K=A.metaKey||A.shiftKey,Z=Ot(A.target);if(Z&&Z!==e.id){A.stopPropagation(),h(Z,K,Or(A.target)??void 0);return}b(K)},onKeyDown:A=>{if(T&&!e.beyond&&A.key.toLowerCase()===T.key.toLowerCase()&&!A.metaKey&&!A.ctrlKey&&!A.altKey&&!A.target?.closest("input, textarea, select, [contenteditable='true']")){A.preventDefault(),A.stopPropagation();let de=Ot(A.target)??e.id;k.includes(de)||h(de,!1),T.open(A.target instanceof HTMLElement?A.target:A.currentTarget);return}if(A.key!=="Enter"&&A.key!==" "||A.target?.closest("input, textarea, select, button, [contenteditable='true']"))return;let K=Ot(A.target);if(A.preventDefault(),A.stopPropagation(),!K||K===e.id){k.length===1&&k[0]===e.id&&!A.metaKey&&!A.shiftKey?w():b(A.metaKey||A.shiftKey);return}let Z=Or(A.target);(Z?k.length===Z.length&&Z.every(de=>k.includes(de)):k.length===1&&k[0]===K)&&!A.metaKey&&!A.shiftKey?y(K):h(K,A.metaKey||A.shiftKey,Z??void 0)},onContextMenu:A=>{if(A.altKey)return;let z=Ot(A.target);A.preventDefault(),A.stopPropagation();let K=z&&z!==e.id||!e.aggregate?null:Uo(A.target,A.currentTarget,(le,be)=>P.graph.neighbors(le).some(ee=>ee.id===be),e.id),Z=z&&z!==e.id?z:K??e.id;h(Z,!1,(Z===z?Or(A.target):null)??void 0);let J=A.nativeEvent.composedPath?.()[0],{clientX:de,clientY:ge}=A,re=()=>{let le=xi(J);E({x:de,y:ge,on:Z,...le?{section:le,title:le.name}:{}})};vi(J)?bi().then(re,re):re()},onDoubleClick:A=>{let z=Ot(A.target);if(z&&z!==e.id){A.stopPropagation(),y(z);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)-(v?.left??0),top:t?0:Math.round(e.y)-(v?.top??0),width:Math.round(e.width)+(v?v.left+v.right:0),height:Math.round(e.height)+(v?v.top+v.bottom:0),...v?{padding:`${v.top}px ${v.right}px ${v.bottom}px ${v.left}px`}:{},boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",..._},children:[S?(0,wn.jsx)("div",{ref:j,"data-graview-natural":`${Math.round(S.width)}x${Math.round(S.height)}`,style:{position:"absolute",left:v?`calc(50% + ${(v.left-v.right)/2}px)`:"50%",top:v?`calc(50% + ${(v.top-v.bottom)/2}px)`:"50%",width:S.width,height:S.height,transform:`translate(-50%, -50%) scale(${B})`,transformOrigin:"50% 50%",display:"flex",flexDirection:"column"},children:g}):g,Math.round(e.plane)===0&&!e.aggregate?(0,wn.jsxs)("span",{"data-graview-kindtag":"",className:"graview-kind-tag","aria-hidden":"true",style:{...q?{top:q.top+(v?.top??0),right:q.right+(v?.right??0)}:{},"--graview-hue":Math.round(On(e.kind,M?.accents))},children:[(0,wn.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(On(e.kind,M?.accents))} 55% var(--graview-tint-lightness) / 0.9)`}}),Wo(P.schema.tryDefinition(e.kind),e.kind)]}):null]})}var pe=se(Pe(),1);jr({search:Pi,touchWeights:sr});var qd=e=>e?{activity:e}:{},Qd=e=>`${Math.round(e.x)} ${Math.round(e.y)}`,ys=e=>e.stopPropagation(),Ar=.6,Pr=3,Zd=80,ws=e=>Math.round(e.plane)===1&&(e.compact===!0||e.width<175||e.height<Zd);function Jd(e){let[t,n]=(0,U.useState)(1),o=(0,U.useRef)(1);return(0,U.useEffect)(()=>{e||(o.current=1,n(1))},[e]),[t,o,n]}function el(e){let[t,n]=(0,U.useState)({x:0,y:0}),o=(0,U.useMemo)(()=>({x:(e.pan?.x??0)+t.x,y:(e.pan?.y??0)+t.y}),[e.pan,t]),r=(0,U.useMemo)(()=>t.x===0&&t.y===0?e:ct(e,o),[e,t,o]),i=(0,U.useRef)(t);i.current=t;let s=(0,U.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 tl(e,t,n,o,r,i){let s=n!==null&&!t.overview,d=s?null:n,c=(0,U.useRef)(t);eo(c.current,t)||(c.current=t);let l=c.current,a=(0,U.useMemo)(()=>{let h=l.pan?{...l,pan:void 0}:l;return d?Nn(h,d.id,{x:d.x,y:d.y}):h},[l,d]),u=(0,U.useRef)(void 0),m=(0,U.useMemo)(()=>{let h=u.current?.stood,y=pr(e.graph,e.schema,a,h?{...o,cityStood:h}:o);return u.current=y.city,y},[e,a,o,r]),f=(0,U.useMemo)(()=>n&&s?ho(m,n.id,{x:n.x,y:n.y})??pr(e.graph,e.schema,Nn(a,n.id,{x:n.x,y:n.y}),o):m,[m,n,s,e,a,o]);return[(0,U.useMemo)(()=>fo(f,i??{x:0,y:0}),[f,i]),s]}function nl(e,t){let n=(0,U.useRef)(!1),o=(0,U.useRef)(!1),r=(0,U.useRef)(null),i=(0,U.useRef)(!1),s=(0,U.useCallback)(()=>{rl(e.current,{dragging:n.current,steering:o.current}),t.set(n.current||o.current||i.current)},[e,t]),d=(0,U.useCallback)(u=>{n.current!==u&&(n.current=u,s())},[s]),c=(0,U.useRef)(()=>!1),l=(0,U.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,U.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 rl(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 ol(e){let t=(0,U.useRef)(!1),n=e!==null&&!t.current;return(0,U.useEffect)(()=>{e!==null&&(t.current=!0)},[e]),n}function il({registerScene:e,scheme:t,views:n},o,r){let i=(0,U.useRef)(o);i.current=o,(0,U.useEffect)(()=>(e({whereIs:s=>xr(i.current,r.current,t,n,s)}),()=>e(null)),[e,t,n])}function al(e,t){(0,U.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 sl(e,t,n,o,r,i,s,d){(0,U.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 dl=nn(()=>(__graviewPreload(import.meta.url,["./chunk.RD2FSSLV.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.4A7BRBEA.js")));function ll(e,t){let[n]=(0,U.useState)(()=>{let a=si();return t?e==="dom"||e==="auto"&&a==="dom"?"dom":"gpu":li(e,{operator:a,present:di()})}),[o,r]=(0,U.useState)(!1),i=(0,U.useCallback)(()=>r(!0),[]),[s,d]=(0,U.useState)(null),c=n==="gpu"&&!t&&!o&&s===null;return(0,U.useEffect)(()=>{if(!c)return;let a=!0;return dl().then(u=>{a&&d(()=>u.attachGpu())},()=>{a&&r(!0)}),()=>{a=!1}},[c]),{attach:(n==="gpu"&&!o?t??s:null)??null,fallBack:i}}function cl(){let[e,t]=(0,U.useState)(()=>new Set),n=(0,U.useCallback)(o=>{t(r=>r.size===o.size&&[...o].every(i=>r.has(i))?r:new Set(o))},[]);return[e,n]}function ul(){let e=fi();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 bs=(e,t)=>e.includes(t)?e.filter(n=>n!==t):[...e,t];function hl(){let{views:e,view:t,setView:n,setSelection:o}=ke(),r=jt(),i=(0,U.useContext)(rn),s=d=>{if(Be(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(Ln(d.id)){o(a=>c?bs(a,d.id):[d.id]);return}let l=d.aggregate?Pn(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=>Br(u,u.relation===a?null:a));return}o(a=>Mo(d,a,c))},onPick:(c,l,a)=>o(u=>a?l?[...new Set([...u,...a])]:[...a]:l?bs(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=>Dr(u,d.id)):n(u=>Object.entries(c.within).reduce((m,[f,b])=>rr(m,f,b),Et(An(u,!1),c.focus))),o([]);return}let l=Be(d.id),a=l!==null&&(r?.byKind[l]??0)>0;if(i&&l!==null&&t.overview&&!s(d)&&!(a&&t.q)){n(u=>rr({...Et(u,`aggregate:${l}`),relation:null},"view",null)),o([]);return}n(u=>$r(u,d.id,{ownPicture:s(d),...a&&u.q?{carry:u.q}:{}})),o(d.aggregate?[]:[d.id])}})}var fl=Tn(nn(()=>(__graviewPreload(import.meta.url,["./chunk.HJCQ6I3S.js","./chunk.QNFX5VHW.js","./chunk.523X2YEQ.js","./chunk.UXW43HNW.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.5MKZTHU2.js")))),ml=fl.part((e,t)=>(0,pe.jsx)(e.Ribbons,{...t}),{what:"The relations",quiet:!0}),xs="graview:map-from-above";function pl(){let[e,t]=(0,U.useState)(()=>{try{return globalThis.localStorage?.getItem(xs)==="1"}catch{return!1}}),n=(0,U.useCallback)(o=>{t(o);try{globalThis.localStorage?.setItem(xs,o?"1":"0")}catch{}},[]);return[e,n]}var vs=Tn(nn(()=>(__graviewPreload(import.meta.url,["./chunk.523X2YEQ.js","./chunk.UXW43HNW.js","./chunk.OWHH7JDV.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.LLYHHG67.js")))),gl=vs.part((e,t)=>(0,pe.jsx)(e.Plots,{...t}),{quiet:!0}),yl=vs.part((e,t)=>(0,pe.jsx)(e.WorkflowsLayer,{...t}),{quiet:!0});function wl({zoom:e,zoomBy:t,above:n,setAbove:o}){let r=(i,s,d,c)=>(0,pe.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,pe.jsxs)("div",{className:"graview-zoom","data-graview-foot":"",role:"group","aria-label":"Zoom",onPointerDown:ys,onClick:ys,children:[r("out","\u2212",1/1.25,e<=Ar+1e-6),(0,pe.jsxs)("span",{className:"graview-zoom-level","data-testid":"zoom-level","aria-live":"polite",children:[Math.round(e*100),"%"]}),r("in","+",1.25,e>=Pr-1e-6),(0,pe.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 bl({options:e,renderer:t="auto",attachRenderer:n,blur:o=!0,className:r,style:i,animate:s=!0,children:d}){let c=ke(),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:O,motion:R}=c,C=(0,U.useContext)(rn),D=(0,U.useRef)(null),g=(0,U.useRef)(null),M=Ba(g),P=Da(M),T=Ha(),{zoomAbout:F,panBy:q,pinchBy:ae,pinchDone:I,pinching:$}=ba({stage:g,view:f,setView:b}),N=Vt(),Q=1,[L,W,Y]=Jd(f.overview),[ie,v]=pl(),S=(0,U.useMemo)(()=>ie?{...e,tilt:Ti}:e,[e,ie]),{probe:B,dock:j}=pa(),G=!f.overview&&(f.zoom||f.past||f.relation)?Math.ceil(14+34*T/16+6):0,_=M&&P?M.height-P.height:0,A=(0,U.useRef)(j);_<=0&&(A.current=j);let z=_>0?A.current:j,K=!!f.overview&&z.bottom>0&&z.right===0&&(h.length>0||f.focusId!==void 0),Z=ls(S,P,T,Q*L,z,N,G,f.overview?0:z.bottom),J=da(g),[de,ge,re,le,be]=el(f),ee=(0,U.useMemo)(()=>new Set(Object.keys(f.pins).filter(H=>Be(H)===null)),[f.pins]),te=ga(),[ce,at]=tl(a,f,te.held,Z,N,ge.pan),Ke=nl(g,R),{setDragging:bn,steer:Ze,settleLive:Ie,settled:Ct}=Ke,Je=Ke.dragging.current||Ke.steering.current,It=ol(P),Ue=(0,U.useRef)(()=>{}),Te=ya({stage:g,pan:f.pan,zoom:L,setView:b,settled:Ct,zoomTo:Ue}),Ne=(0,U.useRef)(!1);Te.settling.current||(Ne.current=!1);let st=Te.settling.current&&!Ne.current,oe=ea(ce,{enabled:s&&!Je&&P!==null&&!It,settle:!st});Ke.tweening.current=oe.t<1;let et=la(g,oe.t>=1,ce);(0,U.useEffect)(()=>R.set(Ke.dragging.current||Ke.steering.current||oe.t<1),[R,oe]);let gt=ta(),xn=na(),xt=ua({view:f,result:ce,frame:oe,panned:de,closer:Q,screenId:null,setCamera:be});il(c,oe,g),al(c.pointer,g);let[he,Le]=cl(),{attach:dt,fallBack:Nt}=ll(t,n),$e=Zi(o);sl(dt,D,oe,gt,Le,$e,u,Nt);let tt=dt===null,qt=Ji($e&&tt,oe.t<1),vn=ul();Ie.current=Te.settle;let{onGroundDown:Yn,onCardDown:vt,onDragMove:kn,onDragUp:Sn,onDragCancel:_n,swallow:yt}=wa({view:f,panned:de,limit:()=>At(ce),panWithin:re,moveByTransform:!0,setView:b,setDragging:bn,noteMoved:x,shift:Te,district:te,pinching:$}),kt=qi({swallow:yt,setMenuAt:E,setSelection:y});Sa(g,yt),F.current=(H,me,ve)=>{if(!f.overview)return;Ie.current();let Ee=W.current,He=Math.max(Ar,Math.min(Pr,Ee*H));if(Math.abs(He-Ee)<1e-4)return;W.current=He,Ne.current=!0,Ze(),Y(He);let ze=g.current?.getBoundingClientRect(),qe=ce.visible??ce,Dt={x:qe.width/2,y:qe.height/2},Rn=ze&&me!==void 0&&ve!==void 0?{x:me-ze.left,y:ve-ze.top}:Dt,qn=He/Ee;b(St=>ct(St,mr(St.pan??{x:0,y:0},le.current,Rn,Dt,qn))),x()},ae.current=(H,me,ve,Ee,He)=>{if(!f.overview)return;Ze();let ze=g.current?.getBoundingClientRect(),qe=ze?{x:me-ze.left,y:ve-ze.top}:{x:0,y:0};Te.zoomBy(H,qe,Ee,He,Ar/W.current,Pr/W.current),x()},I.current=()=>{Ie.current()},Ue.current=(H,me)=>{let ve=W.current,Ee=Math.max(Ar,Math.min(Pr,ve*H));W.current=Ee,Ne.current=!0,Y(Ee);let He=ce.visible??ce,ze={x:He.width/2,y:He.height/2};b(qe=>ct(qe,mr(qe.pan??{x:0,y:0},le.current,me,ze,Ee/ve)))};let Qt=(H,me,ve=At(ce))=>b(Ee=>ct(Ee,re(ve,{x:(Ee.pan?.x??0)+H,y:(Ee.pan?.y??0)+me})));fa(g,j,(H,me)=>Qt(H,me)),q.current=(H,me)=>{Ze();let ve=At(ce),Ee=f.pan??{x:0,y:0},He=Te.offset();Te.shiftTo(re(ve,{x:Ee.x+He.x+H,y:Ee.y+He.y+me}),Ee),x()};let Kn=hl(),Un=Gt(),Ht=(0,U.useCallback)(H=>ln(Un,H).connector.visible,[Un]),lt=H=>vn(oe.nodes.find(me=>me.id===H)),Mn=(H,me,ve,Ee)=>H.originY+de.y+cn(ve.col+ve.side/Ee,ve.row+ve.side/Ee,H.cell,H.tilt).y-me.y,nt={width:ce.width,height:ce.height},En={position:"relative",zIndex:We.stage,...nt},Zt=H=>xr(oe,g.current,u,m,H),Xe=H=>tt||he.has(H),Xn=lr(c),Jt=H=>(0,pe.jsx)(or.Provider,{value:Xn,children:H}),Bt=oe.nodes.filter(H=>H.screenOf===void 0).map(H=>(0,pe.jsx)(gs,{node:H,crowded:ws(H),useDom:Xe(H.id),blur:qt||!tt&&$e,...H.plot&&oe.city&&Math.round(H.plane)===2?{frontY:Mn(oe.city,H,H.plot,1),centerY:Mn(oe.city,H,H.plot,2)}:{},touched:gt.has(H.id),...qd(vn(H)),scheme:u,canvasWidth:ce.width,canvasHeight:ce.height,selected:h.includes(H.id),...Kn(H),onMenu:E,selection:h,onDragStart:me=>vt(H,me),onDragMove:kn,onDragEnd:Sn,onDragCancel:_n,swallowClick:yt,children:H.beyond?(0,pe.jsx)(La,{kinds:H.beyond}):H.aggregate?.opens?(0,pe.jsx)(Na,{node:H}):(0,pe.jsx)(Ca,{node:H,mode:"scene",selected:h.includes(H.id),...ws(H)?{fidelity:"glyph"}:{}})},H.id));return(0,pe.jsxs)("div",{ref:g,className:`graview-ground${r?` ${r}`:""}`,"data-graview-altitude":f.overview?"":void 0,"data-graview-reach":oe.city?Qd(At(ce)):void 0,"data-graview-settled":oe.t>=1&&!xt.gliding()?"":void 0,"data-graview-box":P?`${P.width}x${P.height}`:void 0,"data-graview-renderer":tt?"dom":"gpu","data-graview-blur":(tt?qt:$e)?"":void 0,onPointerDown:H=>{kt.onPointerDown(H),Yn(H)},onPointerMove:H=>{kt.onPointerMove(H),kn(H)},onPointerUp:()=>{kt.onPointerUp(),Sn()},onPointerCancel:()=>{kt.onPointerUp(),_n()},onContextMenu:kt.onContextMenu,onClick:H=>{yt.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,...oe.city?{"--graview-lattice-cell":`${oe.city.cell.toFixed(2)}px`,"--graview-lattice-tilt":(oe.city.tilt??.5).toFixed(3),"--graview-lattice-x":`${(oe.city.originX+oe.city.pan.x).toFixed(1)}px`,"--graview-lattice-y":`${(oe.city.originY+oe.city.pan.y).toFixed(1)}px`}:{},overflow:"hidden",...i},children:[(0,pe.jsx)("div",{className:"graview-measure","aria-hidden":"true",style:{"--graview-world-x":`${(oe.pan?.x??0).toFixed(1)}px`,"--graview-world-y":`${(oe.pan?.y??0).toFixed(1)}px`}}),f.overview&&oe.city?(0,pe.jsx)(U.Suspense,{fallback:null,children:(0,pe.jsx)(ml,{frame:oe,...nt,pan:oe.city.pan,store:a,graphVersion:N,selection:h,view:{overview:f.overview,focusId:f.focusId,beside:C},emphasis:k,hiddenKinds:c.hiddenKinds,drawn:Ht})}):null,(0,pe.jsx)("div",{ref:B,"aria-hidden":"true",style:{position:"absolute",top:0,right:0,width:"var(--graview-dock, 0px)",height:"var(--graview-sheet, 0px)",visibility:"hidden",pointerEvents:"none"}}),oe.city?(0,pe.jsx)(U.Suspense,{fallback:null,children:(0,pe.jsx)(gl,{frame:oe,...nt,pan:oe.city?oe.city.pan:de,brand:w,pinned:ee,close:Q*L>1.2,swallowed:yt,...f.overview?{chosen:Hn(h,{overview:f.overview,focusId:f.focusId,beside:C},H=>a.graph.getNode(H)?.kind).records}:{},onFocus:H=>{let me=Be(H);me!==null&&b(ve=>Et(ve,De(me)))}})}):null,f.overview&&oe.city&&l?(0,pe.jsx)(U.Suspense,{fallback:null,children:(0,pe.jsx)(yl,{frame:oe,...nt,pan:oe.city.pan,app:c.app,workflows:l,acts:a.allMutations(),runs:c.workflowRuns,graphVersion:N,hiddenKinds:c.hiddenKinds})}):null,tt?(0,pe.jsx)("div",{"data-graview-stage":"dom","data-graview-world":"",style:{...En,overflow:"hidden"},children:Jt(Bt)}):(0,pe.jsxs)("div",{"data-graview-world":"",style:En,children:[(0,pe.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=>he.has(String(H.key))))}),(0,pe.jsx)("canvas",{ref:D,"data-graview-stage":"gpu",content:"drawable",layoutsubtree:"",...nt,style:{display:"block",position:"relative",...nt},children:Jt(Bt.filter(H=>!he.has(String(H.key))))})]}),f.overview?(0,pe.jsx)(aa,{result:ce,schema:a.schema,chrome:[...Z.chrome??[],...J?[J]:[],...ca(et,ce.nodes)],onGo:H=>{Qt(H.x,H.y),x()}}):null,f.overview&&!K?(0,pe.jsx)(wl,{zoom:L,zoomBy:H=>F.current(H),above:ie,setAbove:v}):null,(0,pe.jsx)(as,{frame:oe,focusId:f.focusId,beside:C,holding:at,...nt,scheme:u,overview:!!f.overview,selection:h,emphasis:k,stageRef:g,store:a,graphNodes:N,...(H=>H?{provisional:H}:{})(is(a)),onPickEdge:(H,me)=>{yt.current||(y([H]),E(me?{...me,on:H}:null))},liveOf:H=>{let me=lt(H.from),ve=lt(H.to);return me?.wrote&&ve?.wrote?me.at>ve.at?me:ve:void 0}}),(0,pe.jsx)(oa,{width:ce.width,whereIs:Zt}),(0,pe.jsx)(ra,{marks:xn.marks,questions:[...O.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,pe.jsx)(ss,{nodes:oe.nodes,moving:oe.t<1,holding:at,scheme:u,width:ce.width,stageRef:g}),d,(0,pe.jsx)("div",{className:"graview-lattice","aria-hidden":"true"})]})}var it=se(Ae(),1);function xl(){return Es(),null}var Ms=()=>window.location.pathname.endsWith(Vo),ks=()=>(Ms()?Yo:Hr)(window.location.hash),vl=e=>(Ms()?_o:Nr)(e);function Es(){let{view:e,setView:t,views:n,principal:o}=ke(),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:De(m.kind)}:a},[n]),s=(0,it.useRef)(!1);(0,it.useEffect)(()=>{if(typeof window>"u")return;let a=i(ks());!nr(a,Ir)&&!nr(a,e)&&(s.current=!0,t(a))},[]),(0,it.useEffect)(()=>{if(typeof window>"u")return;let a=()=>t(i(ks()));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=vl(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:zt.at},"",m);return}if(a||Rs(c.current,e)){window.history.replaceState({graview:zt.at},"",m),c.current=e;return}c.current=e,window.history.pushState({graview:++zt.at},"",m),zt.depth=zt.at,zt.tell()},[e,r])}function Rs(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(",")&&kl(e.within,t.within):!1}function kl(e,t){let n=o=>Object.entries(o??{}).sort(([r],[i])=>r.localeCompare(i)).map(([r,i])=>`${r}=${i}`).join("&");return n(Ss(e))===n(Ss(t))}function Ss(e){if(!e||!("q"in e))return e;let{q:t,...n}=e;return n}var $o=se(Ae(),1);var Os=new WeakMap,Sl=64,As=new WeakMap,Ml=0,El=e=>{if(e===void 0)return 0;let t=As.get(e);return t===void 0&&As.set(e,t=Ml+=1),t};function Ps(e,t,n,o={}){let r=()=>{let l=[...new Set(t.flatMap(u=>Pn(u)))],a=t.map(u=>Ft(u)).filter(u=>u!==null);return Mi(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=Os.get(e);if(!i){let l={kept:new Map,at:e.log.length};Os.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,El(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>Sl&&i.kept.delete(i.kept.keys().next().value),c}function Rl(e,t,n={}){return Ps(e,t,n)}function Ol(e={}){let{store:t,selection:n,principal:o,providers:r}=ke(),{about:i,principal:s=o,providers:d=r,pins:c,focus:l,...a}=e,u=i??n,m=Vt();return(0,$o.useMemo)(()=>Ps(t,u,{principal:s,providers:d,pins:c,focus:l},a),[t,u,e,m,s,d])}function Al(){let{store:e,principal:t}=ke();return(0,$o.useMemo)(()=>({preview:(n,o)=>Ri(e,n,o??{},{pressed:t?{author:t}:{}}),apply:(n,o)=>Ei(e,n,o??{},{author:t})}),[e,t])}export{Ys as a,_s as b,Ks as c,Us as d,Xs as e,qs as f,Hs as g,bl as h,xl as i,Rl as j,Ol as k,Al as l};