graview 0.1.71 → 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 (212) hide show
  1. package/dist/preview/chunk.2IOJNFCR.js +1 -0
  2. package/dist/preview/{chunk.5EQRIZ6I.js → chunk.2Q4ZXP7P.js} +1 -1
  3. package/dist/preview/{chunk.MEAUTBVM.js → chunk.2TTKQAWQ.js} +1 -1
  4. package/dist/preview/{chunk.6BBUTKFC.js → chunk.2YSE3SQN.js} +3 -3
  5. package/dist/preview/{chunk.CGRX6SDE.js → chunk.2ZPR6FRI.js} +1 -1
  6. package/dist/preview/chunk.3BE4SHZD.js +1 -0
  7. package/dist/preview/{chunk.TSZ2S3VG.js → chunk.43HWCHBN.js} +1 -1
  8. package/dist/preview/{chunk.TQ3MNB6K.js → chunk.45OLF6BK.js} +1 -1
  9. package/dist/preview/{chunk.ZY3NAJDM.js → chunk.47QWCVZD.js} +1 -1
  10. package/dist/preview/{chunk.WU6D3SPL.js → chunk.4A7BRBEA.js} +1 -1
  11. package/dist/preview/chunk.4EPCI6VY.js +1 -0
  12. package/dist/preview/{chunk.UZKBFI52.js → chunk.4PB5UFUJ.js} +1 -1
  13. package/dist/preview/{chunk.MKJV3BM5.js → chunk.4TDYDIIM.js} +1 -1
  14. package/dist/preview/{chunk.HXRHEPPJ.js → chunk.4VX7GPFS.js} +1 -1
  15. package/dist/preview/{chunk.OUF2QFZL.js → chunk.523X2YEQ.js} +1 -1
  16. package/dist/preview/{chunk.KBJ3UUER.js → chunk.53GQQETN.js} +1 -1
  17. package/dist/preview/{chunk.DHO3QZYK.js → chunk.5MKZTHU2.js} +1 -1
  18. package/dist/preview/{chunk.F5O3HR7X.js → chunk.5ZT4R227.js} +1 -1
  19. package/dist/preview/{chunk.LHCGC3K6.js → chunk.65SI77M7.js} +1 -1
  20. package/dist/preview/chunk.6ESAFTWB.js +1 -0
  21. package/dist/preview/chunk.6GUIFP2A.js +1 -0
  22. package/dist/preview/{chunk.D6ODKMOV.js → chunk.6GZYKHEN.js} +1 -1
  23. package/dist/preview/{chunk.F7KVEWFH.js → chunk.6YKKZI4H.js} +1 -1
  24. package/dist/preview/{chunk.Z2BCOZDZ.js → chunk.73RMM4W7.js} +1 -1
  25. package/dist/preview/{chunk.4O64QV2Y.js → chunk.7DCBIMOI.js} +1 -1
  26. package/dist/preview/chunk.7JE3J7H4.js +1 -0
  27. package/dist/preview/{chunk.RDUGUC7R.js → chunk.7QGDWAHH.js} +1 -1
  28. package/dist/preview/{chunk.7PWLRRUS.js → chunk.7VCYVCYM.js} +2 -2
  29. package/dist/preview/{chunk.GFBE4VNT.js → chunk.A4TBVXHQ.js} +1 -1
  30. package/dist/preview/{chunk.LDWWUKKX.js → chunk.A6LJPXJ3.js} +1 -1
  31. package/dist/preview/chunk.AAPXF6NP.js +1 -0
  32. package/dist/preview/{chunk.UJ7RTNT4.js → chunk.APUICV5Z.js} +1 -1
  33. package/dist/preview/chunk.ASNVH2G4.js +25 -0
  34. package/dist/preview/{chunk.OKHXXIMN.js → chunk.CJHCUHVN.js} +1 -1
  35. package/dist/preview/chunk.CUEPNS3Z.js +1 -0
  36. package/dist/preview/{chunk.H33XWGAY.js → chunk.CUJRWBPX.js} +1 -1
  37. package/dist/preview/{chunk.4YZ2A6SJ.js → chunk.D5PW6YWF.js} +3 -3
  38. package/dist/preview/chunk.DCIYOZYP.js +1 -0
  39. package/dist/preview/{chunk.3CLTABGP.js → chunk.DEBW4FH6.js} +1 -1
  40. package/dist/preview/{chunk.UQZ2P6KD.js → chunk.DYPSFTRP.js} +1 -1
  41. package/dist/preview/{chunk.BWMPC7LK.js → chunk.E6QZUT4L.js} +1 -1
  42. package/dist/preview/{chunk.MEBKTW7H.js → chunk.E7QZZRAQ.js} +1 -1
  43. package/dist/preview/chunk.EHCMBAZO.js +3 -0
  44. package/dist/preview/chunk.EXTD5JWD.js +1 -0
  45. package/dist/preview/{chunk.S2BMI23H.js → chunk.EZF2T3XQ.js} +1 -1
  46. package/dist/preview/chunk.EZSST3IU.js +1 -0
  47. package/dist/preview/{chunk.7THS3DLZ.js → chunk.F2BZ4SC4.js} +1 -1
  48. package/dist/preview/chunk.F2I7ERGM.js +1 -0
  49. package/dist/preview/{chunk.VUDNQOOX.js → chunk.FCV3NX6L.js} +1 -1
  50. package/dist/preview/{chunk.QVBP4UZG.js → chunk.FFTBUXKX.js} +2 -2
  51. package/dist/preview/{chunk.7MDGPTYF.js → chunk.FILBI7XA.js} +1 -1
  52. package/dist/preview/{chunk.D4F6QX5L.js → chunk.FKSI5522.js} +1 -1
  53. package/dist/preview/{chunk.QNWGDG2Z.js → chunk.FQ2QUDZS.js} +1 -1
  54. package/dist/preview/{chunk.O5RPSUXV.js → chunk.G2ZDDO3C.js} +1 -1
  55. package/dist/preview/{chunk.IPKODEOZ.js → chunk.GAVEWSXU.js} +1 -1
  56. package/dist/preview/chunk.GH6QX7JR.js +87 -0
  57. package/dist/preview/chunk.GMHBAS45.js +1 -0
  58. package/dist/preview/{chunk.OYMN3IFX.js → chunk.GXK5PI7I.js} +1 -1
  59. package/dist/preview/{chunk.DDSAFU3B.js → chunk.GYP3EF6Z.js} +1 -1
  60. package/dist/preview/chunk.H2RVMT4Y.js +111 -0
  61. package/dist/preview/chunk.HCHGKI64.js +1 -0
  62. package/dist/preview/chunk.HE7SAJKZ.js +1 -0
  63. package/dist/preview/{chunk.JLNTE5CH.js → chunk.HIIYDKFC.js} +2 -2
  64. package/dist/preview/chunk.HPDUGKEF.js +32 -0
  65. package/dist/preview/{chunk.H4BPTMED.js → chunk.HQRPOGTS.js} +1 -1
  66. package/dist/preview/chunk.HUJLELZ3.js +1 -0
  67. package/dist/preview/chunk.HVRUHRXR.js +1 -0
  68. package/dist/preview/{chunk.QJJWAYHB.js → chunk.I46VNAMS.js} +1 -1
  69. package/dist/preview/{chunk.QK4QZVQG.js → chunk.ID4GOKT6.js} +1 -1
  70. package/dist/preview/{chunk.64K5ELSQ.js → chunk.IZKCTF2R.js} +1 -1
  71. package/dist/preview/{chunk.4HU2ILFY.js → chunk.IZUAZ6EV.js} +1 -1
  72. package/dist/preview/{chunk.5PQV7GFE.js → chunk.J3CUBMUZ.js} +1 -1
  73. package/dist/preview/{chunk.P43LPXXJ.js → chunk.J4D4BIB4.js} +1 -1
  74. package/dist/preview/{chunk.NI4OPHTL.js → chunk.J7GH2CGV.js} +1 -1
  75. package/dist/preview/{chunk.5WCSQFS5.js → chunk.JE4RBRKH.js} +1 -1
  76. package/dist/preview/{chunk.ARGEGV5T.js → chunk.JJSZLCNU.js} +1 -1
  77. package/dist/preview/{chunk.WS5ORRGS.js → chunk.JKX4J3KG.js} +1 -1
  78. package/dist/preview/{chunk.ZONRIOIA.js → chunk.JMXBMLKH.js} +1 -1
  79. package/dist/preview/{chunk.6ZRVVRDQ.js → chunk.JOB3EKS6.js} +1 -1
  80. package/dist/preview/{chunk.PQTXM4VY.js → chunk.JP33TNCH.js} +1 -1
  81. package/dist/preview/{chunk.Z3TK2LJM.js → chunk.K6EN2YR4.js} +1 -1
  82. package/dist/preview/chunk.K6YKXTKC.js +1 -0
  83. package/dist/preview/{chunk.VPFUOTY7.js → chunk.KAIZDIRK.js} +1 -1
  84. package/dist/preview/{chunk.KZUHXOZU.js → chunk.KAQGSLC6.js} +3 -3
  85. package/dist/preview/{chunk.WGH2P2YL.js → chunk.KFYSKZC4.js} +1 -1
  86. package/dist/preview/chunk.KHVW6Q3T.js +1 -0
  87. package/dist/preview/chunk.KMFH26SS.js +1 -0
  88. package/dist/preview/{chunk.67S2UWBT.js → chunk.L3ST2YKI.js} +1 -1
  89. package/dist/preview/{chunk.V5JB5UJS.js → chunk.L6BLZJ6K.js} +1 -1
  90. package/dist/preview/{chunk.MQNW3O67.js → chunk.LG2BQ5LB.js} +1 -1
  91. package/dist/preview/{chunk.T6KOL7TW.js → chunk.LLYHHG67.js} +1 -1
  92. package/dist/preview/{chunk.MWWNKM3I.js → chunk.LPWANRBL.js} +1 -1
  93. package/dist/preview/{chunk.EJC7ACZT.js → chunk.LSS64NAA.js} +1 -1
  94. package/dist/preview/{chunk.NH3VXTGX.js → chunk.MFNWHXGL.js} +1 -1
  95. package/dist/preview/{chunk.DG3YNOH3.js → chunk.MNH3WUAB.js} +1 -1
  96. package/dist/preview/chunk.MQ7AB5N4.js +1 -0
  97. package/dist/preview/{chunk.KJPLX72N.js → chunk.MU5JK5TK.js} +1 -1
  98. package/dist/preview/{chunk.L6P55HFW.js → chunk.N5CACZ5F.js} +1 -1
  99. package/dist/preview/{chunk.W3TJF4EH.js → chunk.NFC2TYA6.js} +1 -1
  100. package/dist/preview/{chunk.VL3YDD7D.js → chunk.NKRDVOLJ.js} +1 -1
  101. package/dist/preview/{chunk.SGYZM6ZU.js → chunk.NNK2E2EP.js} +1 -1
  102. package/dist/preview/{chunk.W332P5T3.js → chunk.NVPKYWMF.js} +1 -1
  103. package/dist/preview/{chunk.EEGVI266.js → chunk.NWJ7ELHN.js} +1 -1
  104. package/dist/preview/{chunk.7KX36ENH.js → chunk.O5P6LXHF.js} +1 -1
  105. package/dist/preview/{chunk.DX7RGK5G.js → chunk.OFK6673S.js} +1 -1
  106. package/dist/preview/{chunk.HPFEYMGP.js → chunk.OG6FEP3K.js} +1 -1
  107. package/dist/preview/{chunk.EA2KYBBR.js → chunk.OHGAZ3D5.js} +1 -1
  108. package/dist/preview/{chunk.SPJ34VHA.js → chunk.ONVYKLRX.js} +1 -1
  109. package/dist/preview/chunk.OQ3FKUP2.js +1 -0
  110. package/dist/preview/chunk.OUJV4CYS.js +1 -0
  111. package/dist/preview/{chunk.CVN2XFMF.js → chunk.OWHH7JDV.js} +1 -1
  112. package/dist/preview/{chunk.G767NLBH.js → chunk.OXDCGGZV.js} +1 -1
  113. package/dist/preview/{chunk.VVIQSFM4.js → chunk.P3Z4ZCL3.js} +1 -1
  114. package/dist/preview/{chunk.FNSVGSZI.js → chunk.PF7XQ5R5.js} +1 -1
  115. package/dist/preview/chunk.PH547SON.js +1 -0
  116. package/dist/preview/{chunk.N3MXLORL.js → chunk.PS765ODQ.js} +1 -1
  117. package/dist/preview/{chunk.NXHEOHRR.js → chunk.PVAYYFT2.js} +1 -1
  118. package/dist/preview/{chunk.Z22C2JJ4.js → chunk.Q6WOIE5I.js} +1 -1
  119. package/dist/preview/{chunk.CEJIH3CN.js → chunk.QE257AXE.js} +1 -1
  120. package/dist/preview/chunk.QKNC5OUC.js +1 -0
  121. package/dist/preview/{chunk.W6L2VAJG.js → chunk.QMGBAKX6.js} +1 -1
  122. package/dist/preview/{chunk.DJGZOPAS.js → chunk.QNFX5VHW.js} +1 -1
  123. package/dist/preview/chunk.QPCDAQTW.js +1 -0
  124. package/dist/preview/{chunk.Y5WQD6KV.js → chunk.QPTQIGLX.js} +1 -1
  125. package/dist/preview/{chunk.IXYG65TM.js → chunk.R5YGW5ZX.js} +1 -1
  126. package/dist/preview/{chunk.7FI75ZVE.js → chunk.RJ6KEVZC.js} +1 -1
  127. package/dist/preview/{chunk.OVSKPBPS.js → chunk.RKVMRP7B.js} +1 -1
  128. package/dist/preview/{chunk.7TACFS7Q.js → chunk.S7U2CHHG.js} +1 -1
  129. package/dist/preview/{chunk.HT35PAHI.js → chunk.SD2UYSV6.js} +2 -2
  130. package/dist/preview/{chunk.LQ5J6YQW.js → chunk.SI5GGFQR.js} +1 -1
  131. package/dist/preview/{chunk.U5KJQFAP.js → chunk.SMF5S4DQ.js} +1 -1
  132. package/dist/preview/{chunk.RO3D2RNP.js → chunk.SNDFIJVX.js} +1 -1
  133. package/dist/preview/{chunk.CEOQY5KS.js → chunk.STHWM422.js} +2 -2
  134. package/dist/preview/{chunk.X7U3JMBR.js → chunk.SV75TRCH.js} +1 -1
  135. package/dist/preview/{chunk.Q6GEPVQ7.js → chunk.SXGPRFA4.js} +1 -1
  136. package/dist/preview/{chunk.6TBQV3NO.js → chunk.T3RFZ66S.js} +1 -1
  137. package/dist/preview/{chunk.VGYG2IBZ.js → chunk.T6ISUVUP.js} +1 -1
  138. package/dist/preview/{chunk.L3MLGFIS.js → chunk.TBLOBXZ2.js} +1 -1
  139. package/dist/preview/{chunk.MT252WP4.js → chunk.TDWJU6GW.js} +1 -1
  140. package/dist/preview/{chunk.EPSYX2SF.js → chunk.THLT6NVO.js} +1 -1
  141. package/dist/preview/{chunk.W5O5F4FT.js → chunk.TQCVEKPH.js} +1 -1
  142. package/dist/preview/{chunk.4ZEHLUXV.js → chunk.TQF5XCUS.js} +1 -1
  143. package/dist/preview/{chunk.VICBF3MQ.js → chunk.TWXYI5AP.js} +1 -1
  144. package/dist/preview/{chunk.LNKY6MT4.js → chunk.UOUQZYVD.js} +1 -1
  145. package/dist/preview/{chunk.FIUPDGUZ.js → chunk.UPL3D3ZO.js} +1 -1
  146. package/dist/preview/{chunk.GFOZVQBQ.js → chunk.UXW43HNW.js} +1 -1
  147. package/dist/preview/{chunk.MM7MLBGB.js → chunk.V4GSVXSV.js} +1 -1
  148. package/dist/preview/chunk.VCEDSOAK.js +1 -0
  149. package/dist/preview/{chunk.3RRK6UTN.js → chunk.VE4AQFLW.js} +1 -1
  150. package/dist/preview/{chunk.QDDDKEBH.js → chunk.VGQDPEB5.js} +1 -1
  151. package/dist/preview/{chunk.XTHSPLZZ.js → chunk.VMYXBFPE.js} +1 -1
  152. package/dist/preview/{chunk.EHLV3LND.js → chunk.VNI6HZEF.js} +2 -2
  153. package/dist/preview/chunk.VQRY2NQ6.js +1 -0
  154. package/dist/preview/{chunk.MFMC35ET.js → chunk.VUE6ILQV.js} +1 -1
  155. package/dist/preview/{chunk.BSWR5SGX.js → chunk.W2VSEEKX.js} +1 -1
  156. package/dist/preview/{chunk.4QMAYVPU.js → chunk.WAPY4RCS.js} +1 -1
  157. package/dist/preview/chunk.WFRSGGU5.js +1 -0
  158. package/dist/preview/{chunk.QKRQPUCE.js → chunk.WIVNFOQR.js} +1 -1
  159. package/dist/preview/chunk.WRIBFLVG.js +1 -0
  160. package/dist/preview/{chunk.RHIP2UYE.js → chunk.WWD2TS47.js} +1 -1
  161. package/dist/preview/{chunk.7XGU6KVF.js → chunk.WWFOQDPR.js} +2 -2
  162. package/dist/preview/{chunk.JNK5WBSU.js → chunk.X5MCAUFX.js} +1 -1
  163. package/dist/preview/{chunk.G5AF5IXL.js → chunk.XBWFQ54R.js} +1 -1
  164. package/dist/preview/{chunk.7LPHWJB4.js → chunk.XMBGT6UT.js} +1 -1
  165. package/dist/preview/{chunk.FOHZPYUV.js → chunk.XP4IVKKR.js} +1 -1
  166. package/dist/preview/chunk.XYBWBMNU.js +1 -0
  167. package/dist/preview/{chunk.OPMGQS5J.js → chunk.YC2IDHQX.js} +1 -1
  168. package/dist/preview/{chunk.JAPTTM6Y.js → chunk.YCYJHPWS.js} +1 -1
  169. package/dist/preview/{chunk.T6UJEXFL.js → chunk.YF5GCOSZ.js} +1 -1
  170. package/dist/preview/{chunk.VDFQFLTU.js → chunk.YGGBGHZU.js} +1 -1
  171. package/dist/preview/{chunk.U6V4KZF5.js → chunk.YRC6PKXP.js} +1 -1
  172. package/dist/preview/{chunk.EJIQDMLU.js → chunk.YRN67Z5K.js} +1 -1
  173. package/dist/preview/{chunk.6L6RUOSF.js → chunk.ZDUKVXBI.js} +1 -1
  174. package/dist/preview/index.html +55 -55
  175. package/dist/preview/page.js +2 -2
  176. package/package.json +6 -6
  177. package/dist/preview/chunk.23DATB5Y.js +0 -1
  178. package/dist/preview/chunk.2INDKSJI.js +0 -1
  179. package/dist/preview/chunk.45HUV56Z.js +0 -1
  180. package/dist/preview/chunk.4LWWXIM4.js +0 -1
  181. package/dist/preview/chunk.4UDST6IF.js +0 -1
  182. package/dist/preview/chunk.6A3KTD66.js +0 -1
  183. package/dist/preview/chunk.6IMRCKB4.js +0 -1
  184. package/dist/preview/chunk.7ZLCA3WK.js +0 -1
  185. package/dist/preview/chunk.CPK6CYKN.js +0 -111
  186. package/dist/preview/chunk.DGYWNM5U.js +0 -1
  187. package/dist/preview/chunk.EOSN5DWW.js +0 -1
  188. package/dist/preview/chunk.EUXAIG73.js +0 -1
  189. package/dist/preview/chunk.EZQK23AB.js +0 -1
  190. package/dist/preview/chunk.F6MY6WJ4.js +0 -1
  191. package/dist/preview/chunk.FW6M6GIU.js +0 -32
  192. package/dist/preview/chunk.GKYJQE5A.js +0 -1
  193. package/dist/preview/chunk.HLKDYI6J.js +0 -1
  194. package/dist/preview/chunk.IZDB777E.js +0 -1
  195. package/dist/preview/chunk.JCKIJSW7.js +0 -25
  196. package/dist/preview/chunk.JREA2XDG.js +0 -1
  197. package/dist/preview/chunk.MJ4T6YXI.js +0 -1
  198. package/dist/preview/chunk.ML4X7VVK.js +0 -1
  199. package/dist/preview/chunk.NNGG7RCO.js +0 -1
  200. package/dist/preview/chunk.OOQG2AEF.js +0 -1
  201. package/dist/preview/chunk.RJ7VSWTA.js +0 -87
  202. package/dist/preview/chunk.RSMCTI2N.js +0 -1
  203. package/dist/preview/chunk.TBEKEHFS.js +0 -1
  204. package/dist/preview/chunk.TO3ZKCA2.js +0 -1
  205. package/dist/preview/chunk.TTM5GQ2U.js +0 -1
  206. package/dist/preview/chunk.TUBY6SV3.js +0 -1
  207. package/dist/preview/chunk.UJPX3BUV.js +0 -1
  208. package/dist/preview/chunk.X2UYEA7H.js +0 -1
  209. package/dist/preview/chunk.XSM4OTF4.js +0 -1
  210. package/dist/preview/chunk.YXVUJ3NB.js +0 -1
  211. package/dist/preview/chunk.ZGLOXN7O.js +0 -1
  212. package/dist/preview/chunk.ZLQIGZXO.js +0 -3
@@ -0,0 +1,32 @@
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 me,b as ye,c as Ie}from"./chunk.VE4AQFLW.js";import{b as he,c as fe,d as be}from"./chunk.LPWANRBL.js";import{a as pe,c as G,d as ce,e as ue}from"./chunk.I46VNAMS.js";import{a as j}from"./chunk.3BE4SHZD.js";import{a as de}from"./chunk.5OS4SYHE.js";import"./chunk.LG2BQ5LB.js";import"./chunk.U5P23GO7.js";import"./chunk.SNDFIJVX.js";import"./chunk.2TTKQAWQ.js";import"./chunk.CJHCUHVN.js";import"./chunk.MFNWHXGL.js";import"./chunk.DCIYOZYP.js";import"./chunk.A4TBVXHQ.js";import"./chunk.7QGDWAHH.js";import"./chunk.YC2IDHQX.js";import"./chunk.WIVNFOQR.js";import"./chunk.MIE4TJRW.js";import"./chunk.DEBW4FH6.js";import"./chunk.RD2FSSLV.js";import"./chunk.OWHH7JDV.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import{l as ge}from"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import{h as le,m as F}from"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{$ as ae,F as ne,G as V,Qa as _,T as re,Ua as oe,Za as ie,_ as P,bb as se,c as ee,ia as C,x as te}from"./chunk.ASNVH2G4.js";import{a as D}from"./chunk.SDO3U72B.js";import{Tb as J,cd as Q,eb as X,ha as K,ma as U,pb as Z,qa as Y}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as M}from"./chunk.AJZBJBMO.js";var Ee=M(V(),1);function T(e){return{minHeight:24,padding:"3px 10px",borderRadius:6,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:e?"transparent":"var(--graview-edge)",color:e?"var(--graview-ink)":"var(--graview-ink-muted)",fontWeight:e?600:400,background:e?"color-mix(in srgb, var(--graview-accent) 16%, transparent)":"transparent"}}var I=M(P(),1);function ve(){let{seats:e,principal:t,takeSeat:o}=C();return e.length<2?null:(0,I.jsxs)("div",{role:"group","aria-label":"Seat","data-testid":"seats",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6,rowGap:4},children:[(0,I.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"As"}),e.map(n=>{let d=Re(t,n.principal);return(0,I.jsx)("button",{type:"button","aria-pressed":d,"data-testid":`seat-${n.principal.id??n.label}`,title:`Sit down as ${n.label}: the acts, the kinds and the pages narrow to what this seat may do`,onClick:()=>o(n.principal),style:{...T(d),whiteSpace:"nowrap"},children:n.label},n.principal.id??n.label)})]})}function Re(e,t){return e.kind===t.kind&&e.id===t.id}var H=M(V(),1),w=M(P(),1),$e=`
2
+ .graview-here{display:flex;flex:none}
3
+ .graview-here>button{display:inline-flex;align-items:center;gap:4px;height:30px;margin:0;padding:0 4px;border:1px solid transparent;border-radius:8px;background:none;box-shadow:none;font:inherit;font-size:.75rem;color:var(--graview-ink-muted);cursor:pointer}
4
+ .graview-here-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:24px;height:24px;border-radius:50%;border:1.5px solid hsl(var(--graview-hue) 50% 48%);background:var(--graview-panel-muted);color:var(--graview-ink);font-size:.75rem;font-weight:600;box-shadow:0 0 0 2px var(--graview-bar)}
5
+ .graview-here-mark+.graview-here-mark{margin-left:-10px}
6
+ .graview-here-mark[data-agent]{border-radius:5px}
7
+ .graview-here-mark[data-counted]{--graview-hue:0;border-color:var(--graview-edge)}
8
+ .graview-here small{display:block;font-size:.75rem;color:var(--graview-ink-muted)}
9
+ .graview-bar[data-finding] .graview-here{display:none}`,He={position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)"};function ze(e,t){let o=t.id===void 0?null:`${t.kind}:${t.id}`,n=new Map;for(let d of e.values()){let p=d.participant.slice(0,d.participant.lastIndexOf(":"));if(p===o)continue;let i=p.endsWith(":")?d.participant:p,a=n.get(i);(!a||a.at<d.at)&&n.set(i,d)}return[...n.values()]}var we=e=>e.name&&e.onBehalfOfName?`${e.name}, for ${e.onBehalfOfName}`:e.name??"",xe=e=>e===1?"1 viewer":`${e} viewers`;function We(e){let t=e.map(we).filter(Boolean),o=t.length<e.length?[...t,xe(e.length-t.length)]:t,n=o.pop();return`${o.length>0?`${o.join(", ")} and ${n}`:n} ${e.length===1?"is":"are"} here`}function Oe(e,t){let{store:o,hidden:n,pictures:d}=t,p=ee(e),i=o.kindsKeptFrom(t.principal),a=y=>!n.has(y)&&!i.has(y)&&!o.modules.disabledKinds.has(y),m=d.find(y=>y.as===p.within?.view&&a(y.kind));if(m)return m.title;if(!p.focusId)return p.overview?"everything":null;let c=te(p.focusId);if(c.length>0)return c.every(a)?c.map(y=>Y(o.schema,y)).join(" and "):null;let v=o.graph.getNode(p.focusId);return v&&a(v.kind)?U(o.schema.tryDefinition(v.kind),v):null}function Be(e,t){let o=a=>a.id!==void 0&&(a.id===t.principal.id||a.onBehalfOf?.id===t.principal.id),n=e.filter(a=>!J(a)&&X(a.author)!=="system"&&!o(a.author)),d=n[0];if(!d)return null;let p=Z(d.author,{graph:t.store.graph,schema:t.store.schema,...t.seats?{seats:t.seats}:{},...t.people?{people:t.people}:{}}),i=[...new Set(n.map(a=>a.intent))].join("; ");return`${p}: ${i}`}function De(e,t,o){let n=Be(e,t);n&&(o(""),setTimeout(()=>o(n),50))}function Ve({scene:e,compact:t}){let{who:o,principal:n,store:d,views:p,hiddenKinds:i,follow:a}=C(),m=se("here"),c=ze(o,n),v=c.length===0?"":We(c),[y,f]=(0,H.useState)("");if((0,H.useEffect)(()=>f(v),[v]),c.length===0)return null;let x=c.filter(k=>k.name),b=x.slice(0,t?2:3),u=c.length-b.length,S=c.length-x.length,g=p.places();return(0,w.jsxs)("div",{className:"graview-here","data-testid":"here",children:[(0,w.jsx)("style",{children:$e}),(0,w.jsx)("span",{role:"status","aria-live":"polite",style:He,children:y}),(0,w.jsxs)("button",{type:"button","data-testid":"here-open",...m.trigger,onClick:m.toggle,"aria-label":`${v} \u2014 who and where`,title:v,children:[b.length>0?(0,w.jsx)("span",{style:{display:"flex"},children:b.map(k=>(0,w.jsx)($,{one:k},k.participant))}):(0,w.jsx)($,{count:u}),b.length>0&&u>0?(0,w.jsxs)("span",{"aria-hidden":"true",children:["+",u]}):null]}),(0,w.jsxs)("ul",{...m.pane,"aria-label":"Who is here","data-testid":"here-list",hidden:!m.open,className:"graview-bar-list",style:ie,children:[x.map(k=>{let L=Oe(k.stop,{store:d,principal:n,hidden:i,pictures:g}),h=we(k);return(0,w.jsx)("li",{children:(0,w.jsxs)(e?"button":"span",{className:"graview-bar-item","data-testid":"here-one",...e?{type:"button",title:`Go where ${h} is`,onClick:()=>{m.setOpen(!1),a(k.participant)}}:{style:{cursor:"default"}},children:[(0,w.jsx)($,{one:k}),(0,w.jsxs)("span",{children:[h,L?(0,w.jsxs)("small",{children:["On ",L]}):null]})]})},k.participant)}),S>0?(0,w.jsx)("li",{children:(0,w.jsxs)("span",{className:"graview-bar-item","data-testid":"here-viewers",style:{cursor:"default"},children:[(0,w.jsx)($,{count:S}),(0,w.jsxs)("span",{children:[xe(S),(0,w.jsx)("small",{children:"Not signed in"})]})]})}):null]})]})}function $({one:e,count:t}){return(0,w.jsx)("span",{className:"graview-here-mark","aria-hidden":"true",...e?{style:{"--graview-hue":Math.round(e.hue)}}:{"data-counted":""},...e?.kind==="agent"?{"data-agent":""}:{},children:e?(e.name??"").trim().charAt(0).toUpperCase():t})}var N=M(V(),1);function ke(e){let t=e.line?` \u2014 ${e.line.text}`:"";return t&&e.message.endsWith(t)?e.message.slice(0,-t.length):e.message}var r=M(P(),1),_e=[{tab:"for-you",label:"For you"},{tab:"activity",label:"Activity"},{tab:"asks",label:"Your asks"}],Fe=`
10
+ .graview-inbox-tabs{display:flex;gap:4px;padding:6px 8px 0;border-bottom:1px solid var(--graview-edge);position:sticky;top:0;background:var(--graview-float)}
11
+ .graview-inbox-tabs button{display:inline-flex;align-items:center;gap:6px;min-height:34px;margin:0 0 -1px;padding:0 8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;box-shadow:none;font:inherit;font-size:.8125rem;font-weight:500;white-space:nowrap;color:var(--graview-ink-muted);cursor:pointer}
12
+ .graview-inbox-tabs button[aria-selected=true]{color:var(--graview-ink);font-weight:600;border-bottom-color:var(--graview-accent)}
13
+ .graview-inbox-tab-count{font-size:.6875rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--graview-ink-faint)}
14
+ .graview-inbox-row{display:grid;gap:2px;width:100%;box-sizing:border-box;padding:7px 8px;border:0;border-radius:7px;background:none;box-shadow:none;font:inherit;font-size:.8125rem;line-height:1.4;text-align:left;text-decoration:none;color:var(--graview-ink)}
15
+ :is(a,button).graview-inbox-row{cursor:pointer}
16
+ :is(a,button).graview-inbox-row:hover{background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
17
+ .graview-inbox-part{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0}
18
+ .graview-inbox-part+.graview-inbox-part{margin-top:10px}
19
+ .graview-inbox-part>h3{margin:0;font-size:.75rem;font-weight:600;color:var(--graview-ink-muted)}
20
+ .graview-inbox-problem{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;font-size:.8125rem;line-height:1.45;overflow-wrap:anywhere}
21
+ .graview-inbox-problem-words{all:unset;box-sizing:border-box;min-height:24px;cursor:pointer;color:var(--graview-ink);overflow-wrap:anywhere}
22
+ .graview-inbox-problem-words:hover{text-decoration:underline;text-underline-offset:2px}
23
+ .graview-inbox-problem-words:focus-visible{outline:2px solid var(--graview-accent);outline-offset:2px;border-radius:4px}
24
+ .graview-inbox-fixes{display:flex;flex-wrap:wrap;gap:4px}
25
+ .graview-inbox-fixes button{min-height:24px;padding:1px 10px;font-size:.75rem}
26
+ .graview-inbox-unread{flex:none;width:7px;height:7px;border-radius:50%;background:var(--graview-accent);transform:translateY(-1px)}`,Ge=e=>e>99?"99+":String(e);function je({tab:e,choose:t,asksOn:o,counts:n,notifications:d,rules:p,asks:i,tray:a,waiting:m,activityHas:c,calls:v,seat:y,remembers:f,close:x}){let b=(0,N.useRef)(null),u=(0,N.useId)(),S=_e.filter(h=>h.tab!=="asks"||o),g=h=>requestAnimationFrame(()=>b.current?.querySelector(`[data-inbox-tab="${h}"]`)?.focus());(0,N.useEffect)(()=>{let h=b.current?.parentElement;h&&document.activeElement===h&&b.current?.querySelector('[aria-selected="true"]')?.focus()},[]);let k=h=>{let A=S.findIndex(Te=>Te.tab===e),E=h.key==="ArrowRight"?A+1:h.key==="ArrowLeft"?A-1:h.key==="Home"?0:h.key==="End"?S.length-1:null;if(E===null)return;h.preventDefault();let q=S[(E+S.length)%S.length].tab;t(q),g(q)},L=()=>{t("activity"),g("activity")};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{children:Fe}),(0,r.jsx)("h2",{style:{...F,margin:0},children:"Inbox"}),(0,r.jsx)("div",{ref:b,role:"tablist","aria-label":"Inbox",className:"graview-inbox-tabs",onKeyDown:k,children:S.map(h=>{let A=h.tab===e,E=n[h.tab];return(0,r.jsxs)("button",{type:"button",role:"tab",id:`${u}-${h.tab}`,"data-testid":`inbox-tab-${h.tab}`,"data-inbox-tab":h.tab,"aria-selected":A,"aria-controls":`${u}-${h.tab}-panel`,tabIndex:A?0:-1,onClick:()=>t(h.tab),children:[h.label,E>0?(0,r.jsx)("span",{className:"graview-inbox-tab-count",children:Ge(E)}):null]},h.tab)})}),(0,r.jsx)("div",{role:"tabpanel",id:`${u}-${e}-panel`,"aria-labelledby":`${u}-${e}`,"data-testid":`inbox-panel-${e}`,style:{display:"flex",flexDirection:"column",gap:9,padding:12,minWidth:0},children:e==="for-you"?(0,r.jsx)(qe,{notifications:d,rules:p,tray:a,waiting:m,close:x,done:L}):e==="activity"?(0,r.jsxs)("div",{"data-testid":"activity","aria-label":"Activity",style:{display:"flex",flexDirection:"column",gap:9,minWidth:0},children:[(0,r.jsx)(be,{calls:v,remembers:f,close:x,headed:!1,...y!==void 0?{seat:y}:{}}),c?null:(0,r.jsx)(Ce,{children:"Nothing has happened here yet."})]}):(0,r.jsx)(Ke,{asks:i})})]})}function qe({notifications:e,rules:t,tray:o,waiting:n,close:d,done:p}){let i=e.filter(c=>c.needs),a=e.filter(c=>!c.needs),m=n===0&&t.yours.length===0&&i.length===0;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("section",{className:"graview-inbox-part","data-testid":"inbox-needs-you","aria-labelledby":"graview-inbox-needs-you",children:[(0,r.jsx)("h3",{id:"graview-inbox-needs-you",children:"Needs you"}),o?(0,r.jsx)(N.Suspense,{fallback:null,children:(0,r.jsx)(me,{close:d,done:p})}):null,t.yours.length>0?(0,r.jsx)(Se,{violations:t.yours,close:d}):null,(0,r.jsx)(Pe,{notifications:i,close:d,label:"From the host, needing you"}),m?(0,r.jsx)("p",{"data-testid":"inbox-needs-you-empty",style:Me,children:"Nothing needs you right now."}):null]}),(0,r.jsxs)("section",{className:"graview-inbox-part","data-testid":"inbox-updates","aria-labelledby":"graview-inbox-updates",children:[(0,r.jsx)("h3",{id:"graview-inbox-updates",children:"Updates"}),(0,r.jsx)(Pe,{notifications:a,close:d,label:"From the host"}),t.others.length>0?(0,r.jsx)(Se,{violations:t.others,close:d,told:!0}):null,o?(0,r.jsx)(N.Suspense,{fallback:null,children:(0,r.jsx)(ye,{alone:a.length===0&&t.others.length===0,close:d,done:p})}):null,a.length===0&&t.others.length===0&&!o?(0,r.jsx)("p",{"data-testid":"inbox-updates-empty",style:Me,children:"No updates."}):null]})]})}function Se({violations:e,close:t,told:o=!1}){let{store:n,principal:d,setMenuAt:p}=C(),{set:i}=oe(),[a,m]=(0,N.useState)(null),c=f=>{try{return n.permits({name:f.mutation,args:f.args??{}},d).ok}catch{return!1}},v=(f,x)=>{let b=x.closest('[data-testid="inbox"]').getBoundingClientRect();i(f.nodeIds),t(),p({x:b.left,y:b.top,on:f.subjectId})},y=(f,x,b)=>{if(m(null),x.missing!==void 0&&x.missing.length>0)return v(f,b);try{n.apply({name:x.mutation,args:x.args??{}},{author:d}),requestAnimationFrame(()=>{let u=document.querySelector('[data-testid="inbox"]');(u?.querySelector('[data-testid="inbox-problem-fix"]')??u?.querySelector('[aria-selected="true"]'))?.focus()})}catch(u){m(ge(n.schema,n.allMutations(),u))}};return(0,r.jsxs)("ol",{"data-testid":"problems","aria-label":"Rules broken",style:{margin:0,padding:0,listStyle:"none",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:10,minWidth:0},children:[e.map((f,x)=>{let b=o?[]:f.repairs.filter(c).slice(0,3);return(0,r.jsxs)("li",{className:"graview-inbox-problem","data-testid":"inbox-problem",children:[(0,r.jsx)("button",{type:"button",className:"graview-inbox-problem-words","data-testid":"inbox-problem-words",onClick:u=>v(f,u.currentTarget),children:ke(f)}),b.length>0?(0,r.jsx)("span",{className:"graview-inbox-fixes",children:b.map(u=>(0,r.jsx)("button",{type:"button","data-testid":"inbox-problem-fix",onClick:S=>y(f,u,S.currentTarget),children:u.label},u.label))}):null]},`${f.invariant}:${x}`)}),a?(0,r.jsx)("li",{"data-testid":"inbox-problem-refused",role:"alert",style:{fontSize:"0.75rem",color:"var(--graview-warn)",overflowWrap:"anywhere"},children:a}):null]})}var Me={margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"};function Ce({children:e}){return(0,r.jsx)("p",{"data-testid":"inbox-empty",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:e})}function Ne(e){if(!e)return"";let t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function Pe({notifications:e,close:t,label:o}){return e.length===0?null:(0,r.jsx)("ol",{"data-testid":"inbox-notifications","aria-label":o,style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:2,minWidth:0},children:e.map(n=>{let d=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0},children:[n.read?null:(0,r.jsx)("span",{className:"graview-inbox-unread","aria-hidden":"true"}),(0,r.jsx)("span",{style:{fontWeight:n.read?400:600,overflowWrap:"anywhere"},children:n.title}),n.read?null:(0,r.jsx)("span",{style:F,children:", unread"})]}),n.body?(0,r.jsx)("span",{style:{color:"var(--graview-ink-muted)",overflowWrap:"anywhere"},children:n.body}):null,Ne(n.at)?(0,r.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:Ne(n.at)}):null]}),p=n.href!==void 0?"a":n.onSelect?"button":"div";return(0,r.jsx)("li",{children:(0,r.jsx)(p,{className:"graview-inbox-row","data-testid":"inbox-notification",...n.read?{}:{"data-unread":""},...n.href!==void 0?{href:n.href,...n.target?{target:n.target,rel:"noopener"}:{}}:n.onSelect?{type:"button"}:{},...n.href!==void 0||n.onSelect?{onClick:()=>{n.onSelect?.(),t()}}:{},children:d})},n.id)})})}function Ke({asks:e}){return e.length===0?(0,r.jsx)(Ce,{children:"What you ask the app is kept here, with what came of it."}):(0,r.jsx)("ol",{"data-testid":"inbox-asks",style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6,fontSize:"0.8125rem",minWidth:0},children:e.slice(0,20).map(t=>(0,r.jsx)(N.Suspense,{fallback:null,children:(0,r.jsx)(he,{entry:t,undo:o=>(0,r.jsx)(fe,{batch:o})})},t.id))})}var s=M(P(),1),Ue=`
27
+ .graview-app-menu{width:min(280px,calc(100vw - 24px))}
28
+ .graview-app-menu-group{display:grid;margin:0;padding:0 0 4px;list-style:none}
29
+ .graview-app-menu-group+.graview-app-menu-group{padding-top:4px;border-top:1px solid var(--graview-edge)}
30
+ .graview-app-menu-choice{display:flex;gap:2px;margin:4px 8px 6px;padding:2px;border:1px solid var(--graview-edge);border-radius:8px}
31
+ .graview-app-menu-choice button{flex:1 1 0;min-height:28px;margin:0;padding:0 8px;border:0;border-radius:6px;background:none;box-shadow:none;font:inherit;font-size:.8125rem;color:var(--graview-ink-muted);cursor:pointer}
32
+ .graview-app-menu-choice button[aria-pressed=true]{background:color-mix(in srgb,var(--graview-accent) 16%,transparent);color:var(--graview-ink);font-weight:600}`,Ye={system:"System",light:"Light",dark:"Dark"};function Xe({faces:e,rows:t,scheme:o,history:n=!1,close:d}){let p=o?.offers??["system","light","dark"];return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{children:Ue}),e?(0,s.jsx)("div",{role:"group","aria-label":`${e.scene.label} or ${e.pages.label}`,"data-testid":"app-faces",className:"graview-app-menu-group",children:["scene","pages"].map(i=>{let a=e[i];return(0,s.jsxs)("button",{type:"button",className:"graview-bar-item","data-testid":`app-face-${i}`,"aria-pressed":a.current,...a.reach&&!a.current?{onPointerEnter:a.reach,onPointerDown:a.reach,onFocus:a.reach}:{},onClick:()=>{d(),a.current||a.go()},children:[(0,s.jsx)("span",{className:"graview-bar-mark",children:i==="scene"?(0,s.jsx)(et,{}):(0,s.jsx)(nt,{})}),(0,s.jsx)("span",{style:{flex:"1 1 auto"},children:a.label}),a.current?(0,s.jsx)("span",{className:"graview-bar-mark","aria-hidden":"true",children:(0,s.jsx)(rt,{})}):null]},i)})}):null,n?(0,s.jsx)(Ze,{close:d}):null,t.length>0?(0,s.jsx)("ul",{"aria-label":"From the host","data-testid":"app-menu-rows",className:"graview-app-menu-group",children:t.map(i=>(0,s.jsx)("li",{children:(0,s.jsx)(Je,{row:i,close:d})},i.label))}):null,o?(0,s.jsxs)("div",{role:"group","aria-labelledby":"graview-app-menu-scheme","data-testid":"app-menu-scheme",className:"graview-app-menu-group",children:[(0,s.jsx)("p",{id:"graview-app-menu-scheme",children:"Appearance"}),(0,s.jsx)("div",{className:"graview-app-menu-choice",children:p.map(i=>(0,s.jsx)("button",{type:"button","data-testid":`app-menu-scheme-${i}`,"aria-pressed":o.value===i,onClick:()=>o.onChoose(i),children:Ye[i]},i))})]}):null]})}function Ze({close:e}){let t=re();return t?(0,s.jsx)("div",{className:"graview-app-menu-group",children:(0,s.jsxs)("button",{type:"button",className:"graview-bar-item","data-testid":"app-menu-history",onPointerEnter:j,onFocus:j,onClick:()=>{e(),t.show(t.live.log.length,{focus:!0})},children:[(0,s.jsx)("span",{className:"graview-bar-mark",children:(0,s.jsx)(tt,{})}),(0,s.jsx)("span",{children:"History"})]})}):null}function Je({row:e,close:t}){let o=e.href!==void 0?"a":"button";return(0,s.jsxs)(o,{className:"graview-bar-item","data-testid":"app-menu-row",...e.href!==void 0?{href:e.href,...e.target?{target:e.target,rel:"noopener"}:{}}:{type:"button"},onClick:n=>{t(),e.onSelect?.()},children:[(0,s.jsx)("span",{className:"graview-bar-mark",children:e.icon?(0,s.jsx)(Qe,{icon:e.icon}):null}),(0,s.jsx)("span",{children:e.label})]})}function Qe({icon:e}){let t=le(Q(e)?e:void 0);return t?(0,s.jsx)("span",{className:"graview-bar-host-mark","aria-hidden":"true",dangerouslySetInnerHTML:t}):(0,s.jsx)("span",{className:"graview-bar-host-mark","aria-hidden":"true",children:e})}function z({children:e}){return(0,s.jsx)("svg",{width:14,height:14,viewBox:"0 0 14 14","aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto"},children:e})}function et(){return(0,s.jsxs)(z,{children:[(0,s.jsx)("path",{d:"M7 1.5 L12.5 4.5 L7 7.5 L1.5 4.5 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),(0,s.jsx)("path",{d:"M1.5 7.5 L7 10.5 L12.5 7.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",strokeLinecap:"round"})]})}function tt(){return(0,s.jsxs)(z,{children:[(0,s.jsx)("path",{d:"M2.25 7 a4.75 4.75 0 1 0 1.4-3.35",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),(0,s.jsx)("path",{d:"M1.75 2.25 V4.75 H4.25",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),(0,s.jsx)("path",{d:"M7 4.25 V7 L8.75 8",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function nt(){return(0,s.jsxs)(z,{children:[(0,s.jsx)("rect",{x:"2.25",y:"1.75",width:"9.5",height:"10.5",rx:"1.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),(0,s.jsx)("path",{d:"M4.5 5 H9.5 M4.5 7.25 H9.5 M4.5 9.5 H7.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function rt(){return(0,s.jsx)(z,{children:(0,s.jsx)("path",{d:"M3 7.25 L5.75 10 L11 4.25",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function at(e){let t=/^(?:place|scene):([^:]+):(.+)$/.exec(e.key);return t?{place:t[2],about:[`aggregate:${t[1]}`],title:e.label}:{about:e.group==="lists"&&e.kind?[`aggregate:${e.kind}`]:[],title:e.label}}function W(e,t,o,n,d,p){let i=at(t),a=e.getBoundingClientRect(),m={...i,face:o?"scene":"pages",x:Math.round(d??a.left+Math.min(16,a.width/2)),y:Math.round(p??Math.min(a.bottom,a.top+36)),returnTo:e},c=o?null:e.closest("[data-graview-embed], [data-graview-shell]")?.querySelector("[data-graview-face='pages']")??document.querySelector("[data-graview-face='pages']");c?c.dispatchEvent(new CustomEvent(ae,{detail:m})):n(m)}var O={on:null,at:0},Le=500,ot=10;function it(e,t,o,n,d,p,i){let a=t.getAttribute("data-testid")??"",m=a==="app-places-open"?n:a.slice(10),c=o.find(u=>u.key===m);if(!c)return;if(e.type==="keydown")return O={on:t,at:Date.now()},W(t,c,d,p);let{clientX:v,clientY:y}=e;if(e.type==="contextmenu")return O.on===t&&Date.now()-O.at<700?void 0:v===0&&y===0?W(t,c,d,p):W(t,c,d,p,v,y);let f=Date.now()-Math.max(0,performance.now()-e.timeStamp),x=!1,b=u=>{Math.hypot(u.clientX-v,u.clientY-y)>ot&&(x=!0)};document.addEventListener("pointermove",b),setTimeout(()=>{document.removeEventListener("pointermove",b),!(x||i.at!==0&&i.at-f<Le)&&(O={on:t,at:Date.now()},t.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation()},{capture:!0,once:!0}),W(t,c,d,p,v,y))},Math.max(0,Le-(Date.now()-f)))}var l=M(P(),1),Dt=_(D(()=>(__graviewPreload(import.meta.url,["./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.2ZPR6FRI.js")))).part((e,t)=>(0,l.jsx)(e.TidyGroups,{...t}),{quiet:!0}),st=_(D(()=>(__graviewPreload(import.meta.url,["./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.E6QZUT4L.js")))).part((e,t)=>(0,l.jsx)(e.HoverChipsSwitch,{...t}),{quiet:!0});function Vt({violations:e,pick:t}){let{store:o,brand:n,setMenuAt:d}=C(),p=pe(o,e);return(0,l.jsx)(l.Fragment,{children:p.map((i,a)=>{let m=ue(i),c=i.repairs.length>0?`${i.repairs.length} ${i.repairs.length===1?"way":"ways"} to fix`:"";return(0,l.jsx)("li",{style:{borderTop:a===0?"none":"1px solid var(--graview-edge)"},children:(0,l.jsxs)("button",{type:"button",onClick:v=>{let y=v.currentTarget.closest("ol").getBoundingClientRect();t(i),d({x:y.left,y:y.top,on:i.subjectId})},...G(i)!==void 0?{title:G(i)}:{},style:{width:"100%",textAlign:"left",fontSize:"0.8125rem",lineHeight:1.4,padding:"7px 8px",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7},children:[i.line?(0,l.jsx)(ce,{line:i.line,schema:o.schema,...n?{brand:n}:{},stacked:!0,style:{display:"block",color:"var(--graview-ink)"}}):(0,l.jsx)("span",{style:{display:"block",color:"var(--graview-ink)"},children:i.message}),m||c?(0,l.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:[m,c].filter(Boolean).join(" \xB7 ")}):null]})},`${i.invariant}:${a}`)})})}function _t({name:e,me:t,profileHref:o,hostActions:n,close:d,part:p,signature:i=!1}){let{principal:a,seats:m,settings:c,settingValues:v,chooseSetting:y,sharing:f,ai:x,signIn:b}=C(),u=a.roles??[],S={setOpen:g=>d()};return(0,l.jsx)(l.Fragment,{children:p==="top"?(0,l.jsxs)(l.Fragment,{children:[b?(0,l.jsxs)("div",{style:{display:"grid",gap:6},children:[(0,l.jsx)("strong",{"data-testid":"profile-signed-out",style:{fontSize:"1rem",fontWeight:550},children:"Not signed in"}),(0,l.jsx)("button",{type:"button","data-testid":"profile-sign-in",onClick:()=>{S.setOpen(!1),b.run()},style:de,children:b.label}),f?(0,l.jsx)("span",{"data-testid":"profile-seen-as",style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:"Others here see you as a visitor"}):null]}):(0,l.jsxs)("div",{style:{display:"grid",gap:3},children:[(0,l.jsx)("span",{style:B,children:"Signed in as"}),(0,l.jsx)("strong",{style:{fontSize:"1rem",fontWeight:550},children:e}),(0,l.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:u.length>0?u.map(g=>K(g)).join(", "):t===void 0?"This app has no sign-in; everything here is yours.":"No role in particular"}),t!==void 0&&o!==void 0?(0,l.jsx)("a",{href:o(t.id),"data-testid":"profile-record",style:{display:"inline-flex",alignItems:"center",minHeight:24,justifySelf:"start",fontSize:"0.875rem",color:"var(--graview-accent)"},children:"Your record \u2197"}):null,f?(0,l.jsxs)("span",{"data-testid":"profile-seen-as",style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Seen by others as ",f.name]}):null]}),n.length>0?(0,l.jsx)("ul",{role:"list","aria-label":"From the host","data-testid":"host-actions",style:{...R,margin:0,paddingLeft:0,listStyle:"none",display:"grid",gap:2},children:n.map(g=>(0,l.jsx)("li",{children:g.href!==void 0?(0,l.jsx)("a",{href:g.href,"data-testid":"host-action",className:"graview-host-action",...g.target?{target:g.target,rel:"noopener"}:{},onClick:()=>{g.onSelect?.(),S.setOpen(!1)},style:Ae,children:g.label}):(0,l.jsx)("button",{type:"button","data-testid":"host-action",className:"graview-host-action",onClick:()=>{S.setOpen(!1),g.onSelect?.()},style:{...Ae,width:"100%",textAlign:"left",border:"none",background:"none",boxShadow:"none",font:"inherit",cursor:"pointer"},children:g.label})},g.label))}):null]}):(0,l.jsxs)(l.Fragment,{children:[m.length>1?(0,l.jsxs)("div",{style:{display:"grid",gap:6,...R},children:[(0,l.jsx)("span",{style:B,children:"Sit as somebody else"}),(0,l.jsx)(ve,{})]}):null,c.length>0?(0,l.jsx)("div",{style:{display:"grid",gap:10,...R},children:c.map(g=>(0,l.jsxs)("fieldset",{"data-testid":`setting-${g.name}`,style:{border:0,margin:0,padding:0,display:"grid",gap:5},children:[(0,l.jsx)("legend",{style:{...B,padding:0},children:g.title}),g.description?(0,l.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:g.description}):null,(0,l.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:g.options.map(k=>{let L=(v[g.name]??g.initial)===k.value;return(0,l.jsx)("button",{type:"button","aria-pressed":L,"data-testid":`setting-${g.name}-${k.value}`,onClick:()=>y(g.name,k.value),style:T(L),children:k.label},k.value)})})]},g.name))}):null,ne(x)?(0,l.jsx)(Ee.Suspense,{fallback:null,children:(0,l.jsx)(st,{legend:B,style:R,choice:T})}):null,i?(0,l.jsxs)("p",{"data-testid":"graview-signature",style:{...R,margin:0,display:"flex",alignItems:"center",gap:6,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["Built with",(0,l.jsxs)("a",{href:"https://graview.dev",target:"_blank",rel:"noopener",style:{display:"inline-flex",alignItems:"center",gap:4,minHeight:24,color:"var(--graview-ink-muted)",fontWeight:600,textDecoration:"none"},children:[(0,l.jsx)("span",{"data-testid":"graview-mark",style:{display:"inline-flex",lineHeight:0},dangerouslySetInnerHTML:{__html:lt}}),"Graview"]})]}):null]})})}var lt='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="14" height="14" aria-hidden="true" focusable="false"><g fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"><path d="M13 11 L3 8 L14 3 H29 L21 9"/><path d="M10 18 L3 23 L16.5 28 L29 21 L22 19"/><path d="M16.5 18.5 V23.5" stroke-linecap="round"/></g><circle cx="16.5" cy="13.5" r="2" fill="var(--graview-mark-point, currentColor)"/></svg>',Ae={display:"flex",alignItems:"center",minHeight:28,padding:"2px 8px",borderRadius:7,fontSize:"0.875rem",color:"var(--graview-ink)",textDecoration:"none"},B={fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},R={paddingTop:10,borderTop:"1px solid var(--graview-edge)"};export{Xe as AppMenuPane,Ve as Here,Ie as Inbox,je as InboxPane,Vt as ProblemRows,_t as ProfilePane,Dt as TidyFoot,it as placeGesture,De as sayTheirChange};
@@ -1 +1 @@
1
- import{a as r,b as m,d as k,e as y}from"./chunk.Q355UPFG.js";import"./chunk.RJ7VSWTA.js";import"./chunk.P43LPXXJ.js";import"./chunk.JCKIJSW7.js";import"./chunk.SDO3U72B.js";import"./chunk.6L6RUOSF.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var i="way-back",b='[data-testid="notices-toasts"]';function g(t){let o=document.activeElement;o!==null&&o!==document.body&&!o.closest(b)||(t??document).querySelector('[data-graview-app-bar] [data-testid="app-home"]')?.focus({preventScroll:!0})}function E(t,o,a,d,h){if(t.past)return a?.dismiss(i),()=>{};let c=h?.closest("[data-graview-embed]"),s,f=e=>{if(e!==void 0&&r(t,o)?.batch!==e)return!1;try{let n=k(t,o);return n&&a?.notify({kind:"toast",id:i,sentence:`Took back \u201C${n.intent}\u201D`}),n!==void 0}catch(n){return a?.notify({kind:"toast",id:i,tone:"warn",sentence:n instanceof Error?n.message:String(n)}),!0}},u=()=>{let e=m(t,o,d);if(d=t.batches().length,e){let n=s=e.batch;a?.notify({kind:"toast",id:i,sentence:e.intent,timeout:1e4,action:{label:"Take back",keys:"Meta+Z Control+Z",onSelect:()=>(g(c),f(n))}})}else s&&r(t,o)?.batch!==s&&(s=void 0,a?.dismiss(i))},l=e=>{y(e)&&(!c||c.contains(e.target))&&f()&&e.preventDefault()};u();let p=t.subscribe(u);return document.addEventListener("keydown",l),(e=!1)=>{p(),document.removeEventListener("keydown",l),e&&s&&a?.dismiss(i)}}export{E as sceneWay};
1
+ import{a as r,b as m,d as k,e as y}from"./chunk.Q355UPFG.js";import"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import"./chunk.ASNVH2G4.js";import"./chunk.SDO3U72B.js";import"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var i="way-back",b='[data-testid="notices-toasts"]';function g(t){let o=document.activeElement;o!==null&&o!==document.body&&!o.closest(b)||(t??document).querySelector('[data-graview-app-bar] [data-testid="app-home"]')?.focus({preventScroll:!0})}function E(t,o,a,d,h){if(t.past)return a?.dismiss(i),()=>{};let c=h?.closest("[data-graview-embed]"),s,f=e=>{if(e!==void 0&&r(t,o)?.batch!==e)return!1;try{let n=k(t,o);return n&&a?.notify({kind:"toast",id:i,sentence:`Took back \u201C${n.intent}\u201D`}),n!==void 0}catch(n){return a?.notify({kind:"toast",id:i,tone:"warn",sentence:n instanceof Error?n.message:String(n)}),!0}},u=()=>{let e=m(t,o,d);if(d=t.batches().length,e){let n=s=e.batch;a?.notify({kind:"toast",id:i,sentence:e.intent,timeout:1e4,action:{label:"Take back",keys:"Meta+Z Control+Z",onSelect:()=>(g(c),f(n))}})}else s&&r(t,o)?.batch!==s&&(s=void 0,a?.dismiss(i))},l=e=>{y(e)&&(!c||c.contains(e.target))&&f()&&e.preventDefault()};u();let p=t.subscribe(u);return document.addEventListener("keydown",l),(e=!1)=>{p(),document.removeEventListener("keydown",l),e&&s&&a?.dismiss(i)}}export{E as sceneWay};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk.GYP3EF6Z.js";import"./chunk.O5P6LXHF.js";import"./chunk.53GQQETN.js";import"./chunk.J7GH2CGV.js";import"./chunk.SMF5S4DQ.js";import"./chunk.XP4IVKKR.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{g as columnActs,d as columnChoices,c as columnMoves,b as columnOf,e as columnReach,f as columnSteps,j as describePlace,k as placeText,h as resolveFor,i as shadowedPageSlots,a as statusColumns};
@@ -0,0 +1 @@
1
+ import{T as k,V as y,c,h as l,o as p}from"./chunk.4TDYDIIM.js";import"./chunk.STHWM422.js";import"./chunk.Q355UPFG.js";import{b as m}from"./chunk.IZUAZ6EV.js";import"./chunk.VNI6HZEF.js";import"./chunk.THLT6NVO.js";import"./chunk.KMFH26SS.js";import"./chunk.YF5GCOSZ.js";import"./chunk.F2BZ4SC4.js";import"./chunk.WAPY4RCS.js";import"./chunk.JJSZLCNU.js";import"./chunk.JKX4J3KG.js";import"./chunk.JMXBMLKH.js";import"./chunk.PVAYYFT2.js";import"./chunk.MB7LKKUD.js";import"./chunk.I46VNAMS.js";import"./chunk.3BE4SHZD.js";import"./chunk.LG2BQ5LB.js";import"./chunk.L3ST2YKI.js";import"./chunk.7VCYVCYM.js";import"./chunk.CJHCUHVN.js";import"./chunk.MFNWHXGL.js";import"./chunk.DCIYOZYP.js";import"./chunk.WVUJXDXZ.js";import"./chunk.J7GH2CGV.js";import"./chunk.SMF5S4DQ.js";import"./chunk.XP4IVKKR.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import"./chunk.MIE4TJRW.js";import"./chunk.DEBW4FH6.js";import"./chunk.RD2FSSLV.js";import"./chunk.OWHH7JDV.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{G as S,H as s,I as d,_ as f,ja as g}from"./chunk.ASNVH2G4.js";import"./chunk.SDO3U72B.js";import"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as n}from"./chunk.AJZBJBMO.js";var u=n(S(),1);var t=n(f(),1);function D({context:a}){let r=l(),h=g(),[w]=(0,u.useState)(()=>s(null)),o=d(h?.seatTalk??w),P=()=>{(window.history.state?.idx??0)>0?r(-1):r("/")};return(0,t.jsxs)(k,{context:a,"data-testid":"draft-page",children:[(0,t.jsx)(y,{context:a,...o.draft?{"data-testid":"draft-title"}:{},children:o.draft?o.draft.title:"Nothing drawn"}),o.draft?(0,t.jsx)(m,{page:!0,go:e=>r(e.address),onPick:e=>{let i=a.store.graph.getNode(e);i&&r(c(a.store.schema,i.kind,e))},onDiscard:P}):(0,t.jsxs)("p",{style:{margin:0,color:"var(--graview-ink-muted)"},children:["Ask for a way of seeing \u2014 \u201Ca board of tasks by status\u201D \u2014 and it is drawn here."," ",(0,t.jsx)(p,{to:"/",style:{color:"var(--graview-accent)"},children:"Home \u2192"})]})]})}export{D as DraftPage};
@@ -1 +1 @@
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 y}from"./chunk.MQNW3O67.js";import{m as g}from"./chunk.RJ7VSWTA.js";import{G as R,Oa as m,Y as c}from"./chunk.JCKIJSW7.js";import{a as f}from"./chunk.SDO3U72B.js";import{va as p}from"./chunk.6L6RUOSF.js";import{b as u}from"./chunk.AJZBJBMO.js";var o=u(R(),1);var r=u(c(),1),S,h=()=>S??=m(f(()=>(__graviewPreload(import.meta.url,["./chunk.UQZ2P6KD.js","./chunk.IXYG65TM.js","./chunk.W6L2VAJG.js","./chunk.N3MXLORL.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.DG3YNOH3.js"))));function L(e){let[n,t]=(0,o.useState)(()=>h().current);return(0,o.useEffect)(()=>{if(!e||n)return;let i=!0;return h().load().then(a=>i&&t(a),()=>{}),()=>{i=!1}},[e,n]),n}function D(e,n){let t=L(n.length>0);return(0,o.useMemo)(()=>t?t.withLines(e,n):n,[t,e,n])}function I(e,n){let t=L(n.some(i=>i.shape));return(0,o.useMemo)(()=>{let i=new Map;if(!t)return i;for(let a of n){let l=t.ruleLine(a,e);l&&i.set(a.name,l)}return i},[t,e,n])}function M(e){let n=e.line;if(!(!n||e.message.endsWith(` \u2014 ${n.text}`)||e.message===b(e)))return e.message}function b(e){let n=e.line;return n?n.record!==void 0?`${n.record} \u2014 ${n.text}`:n.text:e.message}var P={name:{},op:{color:"var(--graview-ink-muted)",fontWeight:500},value:{fontWeight:600,fontVariantNumeric:"tabular-nums"},word:{color:"var(--graview-ink-muted)"},open:{color:"var(--graview-ink-faint)"},close:{color:"var(--graview-ink-faint)"}};function w({parts:e}){return(0,r.jsx)(r.Fragment,{children:e.map((n,t)=>(0,r.jsxs)("span",{children:[n.space?" ":"",(0,r.jsx)("span",{"data-graview-rule-part":n.as,style:P[n.as],children:n.text})]},t))})}function x(e,n){let t=p(e?.tryDefinition(n),n);return t.charAt(0).toUpperCase()+t.slice(1)}function C({line:e,schema:n,brand:t,lead:i=e.record===void 0?"kind":"record",stacked:a=!1,style:l}){let d=e.kind,s=i==="kind"?d?x(n,d):void 0:i==="record"?e.record:void 0,k=i==="kind"&&s?`${s}: ${e.said}`:i==="record"&&s?`${s} \u2014 ${e.said}`:e.said;return(0,r.jsxs)("span",{"data-graview-rule-line":"",style:{overflowWrap:"anywhere",...l},children:[(0,r.jsx)("span",{style:g,children:k}),(0,r.jsxs)("span",{"aria-hidden":"true",children:[i!=="none"&&d?(0,r.jsx)("span",{style:{display:"inline-flex",verticalAlign:"-0.1em",marginRight:"0.4em"},children:(0,r.jsx)(y,{kind:d,...n?{schema:n}:{},...t?{brand:t}:{},size:13})}):null,s?(0,r.jsxs)("span",{"data-graview-rule-head":"",style:{fontWeight:600,marginRight:i==="record"||a?0:"0.6em"},children:[s,i==="record"&&!a?(0,r.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontWeight:400},children:" \u2014 "}):null]}):null,a&&s?(0,r.jsx)("br",{}):null,(0,r.jsx)(w,{parts:e.parts}),e.when&&e.when.length>0?(0,r.jsxs)("span",{"data-graview-rule-when":"",style:{color:"var(--graview-ink-faint)"},children:[", when ",(0,r.jsx)(w,{parts:e.when})]}):null]})]})}function z(e){return e.line?e.label&&e.label.trim().length>0?e.label:void 0:e.label&&e.label!==e.message&&!e.message.startsWith(e.label)?e.label:void 0}export{D as a,I as b,M as c,C as d,z as e};
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 y}from"./chunk.LG2BQ5LB.js";import{m as g}from"./chunk.GH6QX7JR.js";import{G as R,Qa as m,_ as c}from"./chunk.ASNVH2G4.js";import{a as f}from"./chunk.SDO3U72B.js";import{va as p}from"./chunk.ZDUKVXBI.js";import{b as u}from"./chunk.AJZBJBMO.js";var o=u(R(),1);var r=u(c(),1),S,h=()=>S??=m(f(()=>(__graviewPreload(import.meta.url,["./chunk.DYPSFTRP.js","./chunk.R5YGW5ZX.js","./chunk.QMGBAKX6.js","./chunk.PS765ODQ.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.MNH3WUAB.js"))));function L(e){let[n,t]=(0,o.useState)(()=>h().current);return(0,o.useEffect)(()=>{if(!e||n)return;let i=!0;return h().load().then(a=>i&&t(a),()=>{}),()=>{i=!1}},[e,n]),n}function D(e,n){let t=L(n.length>0);return(0,o.useMemo)(()=>t?t.withLines(e,n):n,[t,e,n])}function I(e,n){let t=L(n.some(i=>i.shape));return(0,o.useMemo)(()=>{let i=new Map;if(!t)return i;for(let a of n){let l=t.ruleLine(a,e);l&&i.set(a.name,l)}return i},[t,e,n])}function M(e){let n=e.line;if(!(!n||e.message.endsWith(` \u2014 ${n.text}`)||e.message===b(e)))return e.message}function b(e){let n=e.line;return n?n.record!==void 0?`${n.record} \u2014 ${n.text}`:n.text:e.message}var P={name:{},op:{color:"var(--graview-ink-muted)",fontWeight:500},value:{fontWeight:600,fontVariantNumeric:"tabular-nums"},word:{color:"var(--graview-ink-muted)"},open:{color:"var(--graview-ink-faint)"},close:{color:"var(--graview-ink-faint)"}};function w({parts:e}){return(0,r.jsx)(r.Fragment,{children:e.map((n,t)=>(0,r.jsxs)("span",{children:[n.space?" ":"",(0,r.jsx)("span",{"data-graview-rule-part":n.as,style:P[n.as],children:n.text})]},t))})}function x(e,n){let t=p(e?.tryDefinition(n),n);return t.charAt(0).toUpperCase()+t.slice(1)}function C({line:e,schema:n,brand:t,lead:i=e.record===void 0?"kind":"record",stacked:a=!1,style:l}){let d=e.kind,s=i==="kind"?d?x(n,d):void 0:i==="record"?e.record:void 0,k=i==="kind"&&s?`${s}: ${e.said}`:i==="record"&&s?`${s} \u2014 ${e.said}`:e.said;return(0,r.jsxs)("span",{"data-graview-rule-line":"",style:{overflowWrap:"anywhere",...l},children:[(0,r.jsx)("span",{style:g,children:k}),(0,r.jsxs)("span",{"aria-hidden":"true",children:[i!=="none"&&d?(0,r.jsx)("span",{style:{display:"inline-flex",verticalAlign:"-0.1em",marginRight:"0.4em"},children:(0,r.jsx)(y,{kind:d,...n?{schema:n}:{},...t?{brand:t}:{},size:13})}):null,s?(0,r.jsxs)("span",{"data-graview-rule-head":"",style:{fontWeight:600,marginRight:i==="record"||a?0:"0.6em"},children:[s,i==="record"&&!a?(0,r.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontWeight:400},children:" \u2014 "}):null]}):null,a&&s?(0,r.jsx)("br",{}):null,(0,r.jsx)(w,{parts:e.parts}),e.when&&e.when.length>0?(0,r.jsxs)("span",{"data-graview-rule-when":"",style:{color:"var(--graview-ink-faint)"},children:[", when ",(0,r.jsx)(w,{parts:e.when})]}):null]})]})}function z(e){return e.line?e.label&&e.label.trim().length>0?e.label:void 0:e.label&&e.label!==e.message&&!e.message.startsWith(e.label)?e.label:void 0}export{D as a,I as b,M as c,C as d,z as e};
@@ -1 +1 @@
1
- import{a as Se,b as ve}from"./chunk.25VJPUDH.js";import{b as ue,c as pe,d as K,e as ye,f as j,g as me,h as fe,i as he,j as be,k as we,l as E}from"./chunk.G767NLBH.js";import{a as $e}from"./chunk.RO3D2RNP.js";import{b as ke}from"./chunk.MEAUTBVM.js";import"./chunk.OKHXXIMN.js";import"./chunk.NH3VXTGX.js";import"./chunk.6IMRCKB4.js";import"./chunk.RDUGUC7R.js";import"./chunk.6TBQV3NO.js";import"./chunk.MT252WP4.js";import{l as ge}from"./chunk.VVIQSFM4.js";import"./chunk.TQ3MNB6K.js";import"./chunk.VGYG2IBZ.js";import{m as G}from"./chunk.RJ7VSWTA.js";import"./chunk.P43LPXXJ.js";import{G as le,Y as I,ga as M,ia as _,qa as ce}from"./chunk.JCKIJSW7.js";import"./chunk.SDO3U72B.js";import{Nc as F,fb as re,ia as ne,ma as B,oa as oe,pa as se,pb as ae,pc as de,ta as ie}from"./chunk.6L6RUOSF.js";import"./chunk.FQLNBIQ5.js";import{b as z}from"./chunk.AJZBJBMO.js";function xe(e){let n=e.basis.trim(),d=/^[^:]{1,40}: (?:\d(?:\.\d+)?|none|no)\b/i.test(n)?/\(([^()]+)\)\s*$/.exec(n)?.[1]??"":n;if(!d||/^[\d.\s%]+$/.test(d))return"No reason was kept.";let o=d.charAt(0).toUpperCase()+d.slice(1);return/[.!?]$/.test(o)?o:`${o}.`}var ze=new Set(["in","into","on","onto","under","at","within","inside","near","beside","behind","over","after","before"]),Ee=new Set(["for","to","on","in","with","by","from","of","after","before","into","about","under"]),He=e=>/ies$/.test(e)?e.replace(/ies$/,"y"):/(ch|sh|x|ss|o)es$/.test(e)?e.replace(/es$/,""):e.replace(/s$/,""),Pe=e=>/^[A-Z][a-z]/.test(e)?e.charAt(0).toLowerCase()+e.slice(1):e;function Q(e,n){let l=e.schema,d=c=>typeof c=="string"?e.graph.getNode(c):void 0,o=(c,S=!1)=>({record:c.id,label:B(l.tryDefinition(c.kind),c),...S?{quoted:!0}:{}}),i=(c,S,h,A,T)=>({parts:c,text:c.map(v=>typeof v=="string"?v:v.quoted?`\u201C${v.label}\u201D`:v.label).join(""),group:S,many:h,...A&&T?{subject:{record:A.id,label:B(l.tryDefinition(A.kind),A)},alone:T}:{alone:c}}),r=i([n.intent],`intent:${n.intent}`,c=>`${c} suggestions`);if(n.calls.length!==1)return r;let a=n.calls[0],f=a.args,p=e.allMutations().find(c=>c.name===a.name),b=p?.subject?.arg,s=b?d(f[b]):void 0;if(!p||!s)return r;let g=c=>oe(l,s.kind,c),u=c=>`${a.name}:${c}`,w=()=>{let c=de(p.input).filter(S=>S.name!==b&&f[S.name]!==void 0);return c.length===1?d(f[c[0].name]):void 0},W=d(f.into);if(a.name===`merge-${s.kind}`&&W)return i(["Merge ",o(s,!0)," into ",o(W),"?"],u("merge"),c=>`${g(c)} to merge`,s,["Merge into ",o(W),"?"]);if(a.name===`archive-${s.kind}`)return i(["Set ",o(s,!0)," aside?"],u("archive"),c=>`${g(c)} to set aside`,s,["Set aside?"]);let x=w(),N=p.connects?.find(c=>l.tryDefinition(s.kind)?.edges?.[c]!==void 0);if(x&&N){let c=l.tryDefinition(s.kind).edges[N],S=ie(l.tryDefinition(s.kind),N).split(" "),[h,A]=S,T=Pe(se(l,x.kind));if(h&&ze.has(h))return i(["Put ",o(s,!0),` ${h} `,o(x),"?"],u(`put:${h}`),$=>`${g($)} to put ${h} ${T}`,s,[`Put ${h} `,o(x),"?"]);if(h&&A&&Ee.has(A)&&/[^s]s$/.test(h)){let $=[He(h),...S.slice(1)].join(" ");return i(["Should ",o(s,!0),` ${$} `,o(x),"?"],u("verb"),P=>`${g(P)} to link`,s,[`${$.charAt(0).toUpperCase()}${$.slice(1)} `,o(x),"?"])}let v=S.join(" ");return c.cardinality==="one"?i(["Make ",o(x),` the ${v} of `,o(s,!0),"?"],u("one"),$=>`${g($)} to give ${/^[aeiou]/i.test(v)?"an":"a"} ${v}`,s,["Make ",o(x),` the ${v}?`]):i(["Add ",o(x),` to the ${v} of `,o(s,!0),"?"],u("many"),$=>`${g($)} to link`,s,["Add ",o(x),` to the ${v}?`])}let k=Object.entries(f).filter(([c,S])=>c!==b&&typeof S=="string"&&!d(S));if(n.lineage?.actor==="categorize"&&k.length===1){let c=ne(String(k[0][1]));return i(["Mark ",o(s,!0),` as ${c}?`],u("mark"),S=>`${g(S)} to mark`,s,[`Mark as ${c}?`])}return r}function We(e,n){let l=n.map(i=>({one:i,sentence:Q(e,i)})),d=new Map;for(let{sentence:i}of l)i.subject&&d.set(i.subject.record,(d.get(i.subject.record)??0)+1);let o=new Map;for(let{one:i,sentence:r}of l){let a=r.subject!==void 0&&d.get(r.subject.record)>1,f=a?`record:${r.subject.record}`:i.calls.length===1?r.group:`one:${o.size}`,p=o.get(f);p?p.suggestions.push(i):o.set(f,{sentence:r,byRecord:a,suggestions:[i]})}return[...o.values()].map(({sentence:i,byRecord:r,suggestions:a})=>r?{record:i.subject,suggestions:a}:a.length>1?{words:i.many(a.length),suggestions:a}:{suggestions:a})}var y=z(le(),1);var Te=z(le(),1),R=z(I(),1),Ae={minWidth:0,overflowWrap:"anywhere"};function Re({suggestion:e,decides:n,heard:l}){let{store:d,principal:o}=M(),[i,r]=(0,Te.useState)(null),a=e.items;if(a.length<2)return null;let f=(p,b)=>{r(null);try{j(d,e.id,{author:o,items:[p]}),l("Accepted that change; the rest still wait."),requestAnimationFrame(()=>{let s=document.querySelector(`[data-suggestion="${CSS.escape(e.id)}"]`);(s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b]??s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b-1]??s?.querySelector('[data-testid="suggestion-accept"]'))?.focus()})}catch(s){r(s instanceof Error?s.message:String(s))}};return(0,R.jsxs)("details",{"data-testid":"suggestion-items",style:{minWidth:0},children:[(0,R.jsx)("summary",{style:{cursor:"pointer",fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:`Show the ${a.length} changes`}),(0,R.jsx)("ol",{style:{margin:"6px 0 0",padding:0,listStyle:"none",display:"grid",gap:4,minWidth:0},children:a.map((p,b)=>(0,R.jsxs)("li",{"data-testid":"suggestion-item","data-item":p.at,style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontSize:"0.75rem"},children:[(0,R.jsx)("span",{style:{...Ae,flex:"1 1 auto"},children:p.intent}),n?(0,R.jsx)("button",{type:"button","data-testid":"suggestion-item-accept","aria-label":`Accept: ${p.intent}`,onClick:()=>f(p.at,b),style:{minHeight:24,padding:"1px 8px",fontSize:"0.75rem",flex:"0 0 auto"},children:"Accept"}):null]},p.at))}),i?(0,R.jsx)("span",{"data-testid":"suggestion-item-refused",role:"alert",style:{...Ae,display:"block",fontSize:"0.75rem",color:"var(--graview-warn)"},children:i}):null]})}var t=z(I(),1);function Ie(e,n,l=0){let d=[e>0?`${e===1?"one suggestion":`${e} suggestions`} waiting`:"",e>0&&l>0?`${l===1?"a reader agrees":`${l} readers agree`} with one that waits`:"",n>0?`tidied ${n===1?"one thing":`${n} things`} while you were away`:""].filter(Boolean);return d.length>0?d.join(" \xB7 ").replace(/^./,o=>o.toUpperCase()):void 0}function J(){let{store:e,principal:n,dismissals:l,app:d}=M(),o=_(),i=(0,y.useMemo)(()=>ve(l,d?.name??"app",n),[l,d?.name,n]),[r,a]=(0,y.useReducer)(g=>g+1,0);(0,y.useEffect)(()=>i.onChange?.(a),[i]),(0,y.useEffect)(()=>e.subscribe((g,u)=>u.some(w=>w.vote!==void 0)&&a()),[e]);let f=(0,y.useMemo)(()=>ue(e,n,{dismissed:i.list()}),[e,n,o,i,r]),p=(0,y.useCallback)(g=>K(e,g,n)||e.permits({name:F,args:{suggestion:g.id,vote:"for"}},n).ok,[e,n]),b=(0,y.useMemo)(()=>f.filter(p),[f,p]),s=(0,y.useMemo)(()=>f.filter(g=>!p(g)),[f,p]);return{waiting:b,toldOf:s,notNow:i}}function st({onCount:e}){let{waiting:n}=J();return(0,y.useEffect)(()=>e(n.length),[e,n.length]),null}function it({close:e,done:n}){let{waiting:l,notNow:d}=J();return(0,t.jsx)(Ce,{waiting:l,notNow:d,close:e,done:n})}function Ce({waiting:e,notNow:n,close:l,done:d}){let{store:o}=M(),[i,r]=(0,y.useState)(""),a=ce(),f=s=>o.graph.has(s)?g=>{l(),a.record(g)}:null,p=s=>{r(s),requestAnimationFrame(()=>{let g=document.querySelector('[data-testid="inbox"] [data-testid="suggestion"]'),u=g?.querySelector('[data-testid="suggestion-accept"], [data-testid="suggestion-sign-in"], [data-testid="suggestion-not-now"]')??g?.querySelector("button")??document.querySelector('[data-testid="inbox-needs-you"] [data-testid="inbox-problem-words"]:is(button), [data-testid="inbox-needs-you"] [data-testid="inbox-notification"]:is(a, button)');u?u.focus():d()})},b=(0,t.jsx)("span",{role:"status","data-testid":"suggestion-heard",style:G,children:i});return e.length===0?b:(0,t.jsxs)("div",{"data-testid":"suggested",style:{display:"flex",flexDirection:"column",gap:9,minWidth:0},children:[[e.filter(E),e.filter(s=>!E(s))].map((s,g)=>s.length===0?null:(0,t.jsxs)("div",{style:{display:"grid",gap:6,minWidth:0},children:[e.some(E)?(0,t.jsx)("h4",{style:{margin:0,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:g===0?"Proposed":"Suggested by the app"}):null,(0,t.jsx)("ol",{"data-testid":g===0?"proposals":"suggestions",style:O,children:We(o,s).map(u=>u.record?(0,t.jsx)(Ge,{record:u.record,level:e.some(E)?5:4,go:f(u.record.record),children:w=>u.suggestions.map(W=>(0,t.jsx)(Z,{suggestion:W,notNow:n,settled:p,heard:r,goes:f,under:w},W.id))},u.suggestions[0].id):u.words?(0,t.jsxs)("li",{"data-testid":"suggestion-group",style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:6,minWidth:0},children:[(0,t.jsx)("span",{style:{...C,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:u.words}),(0,t.jsx)("ol",{style:O,children:u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id))})]},u.suggestions[0].id):u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id)))})]},g)),b]})}function rt({alone:e,close:n,done:l}){let{store:d,whileAway:o,principal:i}=M(),{waiting:r,toldOf:a,notNow:f}=J();_();let[p,b]=(0,y.useState)(null),s=o?.tidied??0,g=o?Ie(r.length,s,o.agreed):void 0,u=pe(d,i).filter(w=>d.mayUndo(w.batch,i).ok);return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:8,minWidth:0},children:[g?(0,t.jsxs)("p",{"data-testid":"while-away",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[g,"."]}):null,a.length>0?(0,t.jsx)(Ce,{waiting:a,notNow:f,close:n,done:l}):null,u.length>0?(0,t.jsx)("ul",{"data-testid":"suggestions-stopped","aria-label":"What is not suggested any more",style:{...O,gap:6},children:u.map(w=>(0,t.jsxs)("li",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0,color:"var(--graview-ink-muted)"},children:[(0,t.jsx)("span",{style:{...C,flex:"1 1 14em"},children:w.words}),(0,t.jsx)("button",{type:"button","data-testid":"suggestion-suggest-again",onClick:()=>{b(null);try{d.undo(w.batch,{author:i})}catch(W){b(ge(d.schema,d.allMutations(),W))}requestAnimationFrame(()=>document.querySelector('[data-testid="inbox"] [aria-selected="true"]')?.focus())},style:H,children:"Suggest again"})]},w.batch))}):null,p?(0,t.jsx)("span",{role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:p}):null,e&&!g&&u.length===0&&a.length===0?(0,t.jsx)("p",{"data-testid":"inbox-updates-empty",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:"No updates."}):null]})}function Ge({record:e,level:n,go:l,children:d}){let o=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion-record-group","data-record":e.record,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,minWidth:0},children:[(0,t.jsx)("span",{id:o,role:"heading","aria-level":n,"data-testid":"suggestion-record-heading",style:{...C,display:"block",fontSize:"0.8125rem",lineHeight:1.45},children:(0,t.jsx)(Ne,{part:e,go:l})}),(0,t.jsx)("ol",{"aria-labelledby":o,style:{...O,gap:6,paddingInlineStart:12},children:d(o)})]})}var C={minWidth:0,overflowWrap:"anywhere"},O={margin:0,padding:0,listStyle:"none",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:10,fontSize:"0.8125rem",minWidth:0},H={minHeight:24,padding:"1px 10px",fontSize:"0.75rem"},q={...H,border:"1px solid transparent",background:"transparent",boxShadow:"none",color:"var(--graview-ink-muted)"};function Ne({part:e,go:n}){let l={display:"inline-block",maxWidth:"min(24ch, 100%)",minHeight:24,lineHeight:"24px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",verticalAlign:"bottom"},d=n?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-record","data-record":e.record,title:`Go to ${e.label}`,onClick:()=>n(e.record),className:"graview-activity-record",style:{all:"unset",...l,cursor:"pointer",fontWeight:600,color:"var(--graview-ink)",textDecoration:"underline",textDecorationColor:"color-mix(in srgb, var(--graview-ink) 35%, transparent)",textUnderlineOffset:2},children:e.label}):(0,t.jsx)("span",{title:e.label,style:{...l,fontWeight:600},children:e.label});return e.quoted?(0,t.jsxs)(t.Fragment,{children:["\u201C",d,"\u201D"]}):d}var je={accept:"Accepted.",decline:"Declined: it will not be suggested again.",stop:"This kind of thing will not be suggested again. You can undo that in Activity.",later:"Hidden from you until tomorrow.",withdraw:"Withdrawn."},L={recorded:"Your vote was recorded.",withdrawn:"Your vote was withdrawn."},qe=(e,n)=>n.startsWith(`${e}: `)?n.slice(e.length+2):n,Le=e=>{let n=`${e.for} for, ${e.against} against`,l=Oe(e.advisory);return l?`${n} \xB7 ${l}`:n};function Oe(e){if(!e)return"";let n=e.for===0?"":e.for===1?"a visitor agrees":`${e.for} visitors agree`,l=e.against===0?"":e.against===1?`${n?"one":"a visitor"} disagrees`:`${e.against}${n?"":" visitors"} disagree`;return[n,l].filter(Boolean).join(", ")}function Z({suggestion:e,notNow:n,settled:l,heard:d,goes:o,under:i}){let{store:r,principal:a,seats:f,people:p,signIn:b}=M(),[s,g]=(0,y.useState)(null),[u,w]=(0,y.useState)(null),W=(0,y.useId)(),x=(0,y.useId)(),N=ae(e.author,{graph:r.graph,schema:r.schema,seats:f,people:p}),k=(0,y.useMemo)(()=>K(r,e,a),[r,e,a]),c=(0,y.useMemo)(()=>k&&he(r,e,a),[k,r,e,a]),S=(0,y.useMemo)(()=>k||r.permits({name:F,args:{suggestion:e.id,vote:"for"}},a).ok,[k,r,e.id,a]),{tally:h}=e,A=E(e),T=A&&a!==void 0&&!k&&re(a).id===e.lineage.proposedBy,v=async m=>{g(null);try{if(m==="withdraw")we(r,e.id,{author:a});else if(m==="stop")be(r,e.id,{author:a});else if(m==="accept"||m==="decline"){if((m==="accept"?j(r,e.id,{author:a}):me(r,e.id,{author:a})).voted!==void 0){w(L.recorded),d(L.recorded);return}}else if(m==="unvote"){ye(r,e.id,null,{author:a}),w(L.withdrawn),d(L.withdrawn);return}else await n.dismiss({suggestion:e.id,at:new Date().toISOString(),until:Se()});l(je[m])}catch(D){g(D instanceof Error?D.message:String(D))}},$=e.items.length>1,P=(0,y.useMemo)(()=>Q(r,e),[r,e]),U=(0,y.useId)(),Me=i?P.alone:P.parts,X=i?`${i} ${U}`:U,V=new Set(P.parts.flatMap(m=>typeof m=="string"?[]:[m.record])),Y=e.lineage&&!(A&&e.lineage.basis.startsWith("Proposed by "))?xe(e.lineage):void 0,[ee,De]=(0,y.useState)(!1),te=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion","data-suggestion":e.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,lineHeight:1.45,minWidth:0},children:[(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0},children:[(0,t.jsxs)("span",{id:U,"data-graview-suggestion-words":"",style:{...C,flex:"1 1 14em"},children:[A?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{"data-testid":"proposed-by",style:{color:"var(--graview-ink-muted)"},children:["Proposed by ",(0,t.jsx)("strong",{style:{fontWeight:600,color:"var(--graview-ink)"},children:T?"you":N}),":"]})," "]}):$?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("strong",{style:{fontWeight:600},children:N})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:"suggests"})," "]}):null,$?qe(N,e.headline??e.intent):Me.map((m,D)=>typeof m=="string"?m:(0,t.jsx)(Ne,{part:m,go:o(m.record)},D))]}),(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,marginInlineStart:"auto",minWidth:0},children:[Y?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-why","aria-expanded":ee,"aria-controls":te,onClick:()=>De(m=>!m),style:{...q,padding:"1px 6px"},children:"Why?"}):null,T?(0,t.jsx)("button",{type:"button","data-testid":"proposal-withdraw",onClick:()=>void v("withdraw"),style:H,children:"Withdraw"}):S?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-accept",onClick:()=>void v("accept"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="for","aria-describedby":x},style:H,children:k&&$?"Accept all":"Yes"}):b?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-sign-in",onClick:()=>b.run(),style:H,children:"Sign in to vote"}):null,S&&!T?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-decline",onClick:()=>void v("decline"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="against","aria-describedby":x},style:H,children:"No"}):null,c?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-stop-kind",onClick:()=>void v("stop"),title:`Stops suggesting ${fe(r,e)}. You can undo it.`,style:q,children:"Don't suggest this kind of thing"}):null,!k&&S&&!T&&h.mine!==void 0?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-withdraw-vote",onClick:()=>void v("unvote"),style:q,children:"Withdraw vote"}):null,(0,t.jsx)("button",{type:"button","data-testid":"suggestion-not-now",onClick:()=>void v("later"),title:"Hide it from you until tomorrow. It still waits for everyone else.","aria-describedby":W,style:q,children:"Later"})]})]}),(0,t.jsx)("span",{id:W,style:G,children:"Hides it from you until tomorrow; it still waits for everyone else."}),!k&&S&&!T?(0,t.jsx)("span",{id:x,style:G,children:"Counts as your vote; somebody who may make it decides."}):null,Y?(0,t.jsx)("span",{id:te,"data-graview-lineage":"",hidden:!ee,style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Y}):null,$?(0,t.jsx)(Re,{suggestion:e,decides:k,heard:d}):null,e.about.some(m=>!V.has(m))&&($||V.size===0)?(0,t.jsx)("div",{"data-graview-suggestion-records":"",style:{display:"flex",flexWrap:"wrap",gap:4,minWidth:0},children:e.about.filter(m=>!V.has(m)).slice(0,4).map(m=>(0,t.jsx)($e,{id:m,label:ke(r,m),go:o(m),testId:"suggestion-record"},m))}):null,k&&h.for+h.against+(h.advisory?h.advisory.for+h.advisory.against:0)>0?(0,t.jsx)("span",{"data-testid":"suggestion-tally",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Le(h)}):null,u?(0,t.jsx)("span",{"data-testid":"suggestion-voted",role:"status",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:u}):null,s?(0,t.jsx)("span",{"data-testid":"suggestion-refused",role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:s}):null]})}export{st as SuggestedCount,it as SuggestedList,rt as SuggestedUpdates,Oe as advisoryWords,Ie as awayWords,Le as tallyWords};
1
+ import{a as Se,b as ve}from"./chunk.25VJPUDH.js";import{b as ue,c as pe,d as K,e as ye,f as j,g as me,h as fe,i as he,j as be,k as we,l as E}from"./chunk.OXDCGGZV.js";import{a as $e}from"./chunk.SNDFIJVX.js";import{b as ke}from"./chunk.2TTKQAWQ.js";import"./chunk.CJHCUHVN.js";import"./chunk.MFNWHXGL.js";import"./chunk.DCIYOZYP.js";import"./chunk.7QGDWAHH.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import{l as ge}from"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import{m as G}from"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{G as le,_ as I,ia as M,ka as _,sa as ce}from"./chunk.ASNVH2G4.js";import"./chunk.SDO3U72B.js";import{Nc as F,fb as re,ia as ne,ma as B,oa as oe,pa as se,pb as ae,pc as de,ta as ie}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as z}from"./chunk.AJZBJBMO.js";function xe(e){let n=e.basis.trim(),d=/^[^:]{1,40}: (?:\d(?:\.\d+)?|none|no)\b/i.test(n)?/\(([^()]+)\)\s*$/.exec(n)?.[1]??"":n;if(!d||/^[\d.\s%]+$/.test(d))return"No reason was kept.";let o=d.charAt(0).toUpperCase()+d.slice(1);return/[.!?]$/.test(o)?o:`${o}.`}var ze=new Set(["in","into","on","onto","under","at","within","inside","near","beside","behind","over","after","before"]),Ee=new Set(["for","to","on","in","with","by","from","of","after","before","into","about","under"]),He=e=>/ies$/.test(e)?e.replace(/ies$/,"y"):/(ch|sh|x|ss|o)es$/.test(e)?e.replace(/es$/,""):e.replace(/s$/,""),Pe=e=>/^[A-Z][a-z]/.test(e)?e.charAt(0).toLowerCase()+e.slice(1):e;function Q(e,n){let l=e.schema,d=c=>typeof c=="string"?e.graph.getNode(c):void 0,o=(c,S=!1)=>({record:c.id,label:B(l.tryDefinition(c.kind),c),...S?{quoted:!0}:{}}),i=(c,S,h,A,T)=>({parts:c,text:c.map(v=>typeof v=="string"?v:v.quoted?`\u201C${v.label}\u201D`:v.label).join(""),group:S,many:h,...A&&T?{subject:{record:A.id,label:B(l.tryDefinition(A.kind),A)},alone:T}:{alone:c}}),r=i([n.intent],`intent:${n.intent}`,c=>`${c} suggestions`);if(n.calls.length!==1)return r;let a=n.calls[0],f=a.args,p=e.allMutations().find(c=>c.name===a.name),b=p?.subject?.arg,s=b?d(f[b]):void 0;if(!p||!s)return r;let g=c=>oe(l,s.kind,c),u=c=>`${a.name}:${c}`,w=()=>{let c=de(p.input).filter(S=>S.name!==b&&f[S.name]!==void 0);return c.length===1?d(f[c[0].name]):void 0},W=d(f.into);if(a.name===`merge-${s.kind}`&&W)return i(["Merge ",o(s,!0)," into ",o(W),"?"],u("merge"),c=>`${g(c)} to merge`,s,["Merge into ",o(W),"?"]);if(a.name===`archive-${s.kind}`)return i(["Set ",o(s,!0)," aside?"],u("archive"),c=>`${g(c)} to set aside`,s,["Set aside?"]);let x=w(),N=p.connects?.find(c=>l.tryDefinition(s.kind)?.edges?.[c]!==void 0);if(x&&N){let c=l.tryDefinition(s.kind).edges[N],S=ie(l.tryDefinition(s.kind),N).split(" "),[h,A]=S,T=Pe(se(l,x.kind));if(h&&ze.has(h))return i(["Put ",o(s,!0),` ${h} `,o(x),"?"],u(`put:${h}`),$=>`${g($)} to put ${h} ${T}`,s,[`Put ${h} `,o(x),"?"]);if(h&&A&&Ee.has(A)&&/[^s]s$/.test(h)){let $=[He(h),...S.slice(1)].join(" ");return i(["Should ",o(s,!0),` ${$} `,o(x),"?"],u("verb"),P=>`${g(P)} to link`,s,[`${$.charAt(0).toUpperCase()}${$.slice(1)} `,o(x),"?"])}let v=S.join(" ");return c.cardinality==="one"?i(["Make ",o(x),` the ${v} of `,o(s,!0),"?"],u("one"),$=>`${g($)} to give ${/^[aeiou]/i.test(v)?"an":"a"} ${v}`,s,["Make ",o(x),` the ${v}?`]):i(["Add ",o(x),` to the ${v} of `,o(s,!0),"?"],u("many"),$=>`${g($)} to link`,s,["Add ",o(x),` to the ${v}?`])}let k=Object.entries(f).filter(([c,S])=>c!==b&&typeof S=="string"&&!d(S));if(n.lineage?.actor==="categorize"&&k.length===1){let c=ne(String(k[0][1]));return i(["Mark ",o(s,!0),` as ${c}?`],u("mark"),S=>`${g(S)} to mark`,s,[`Mark as ${c}?`])}return r}function We(e,n){let l=n.map(i=>({one:i,sentence:Q(e,i)})),d=new Map;for(let{sentence:i}of l)i.subject&&d.set(i.subject.record,(d.get(i.subject.record)??0)+1);let o=new Map;for(let{one:i,sentence:r}of l){let a=r.subject!==void 0&&d.get(r.subject.record)>1,f=a?`record:${r.subject.record}`:i.calls.length===1?r.group:`one:${o.size}`,p=o.get(f);p?p.suggestions.push(i):o.set(f,{sentence:r,byRecord:a,suggestions:[i]})}return[...o.values()].map(({sentence:i,byRecord:r,suggestions:a})=>r?{record:i.subject,suggestions:a}:a.length>1?{words:i.many(a.length),suggestions:a}:{suggestions:a})}var y=z(le(),1);var Te=z(le(),1),R=z(I(),1),Ae={minWidth:0,overflowWrap:"anywhere"};function Re({suggestion:e,decides:n,heard:l}){let{store:d,principal:o}=M(),[i,r]=(0,Te.useState)(null),a=e.items;if(a.length<2)return null;let f=(p,b)=>{r(null);try{j(d,e.id,{author:o,items:[p]}),l("Accepted that change; the rest still wait."),requestAnimationFrame(()=>{let s=document.querySelector(`[data-suggestion="${CSS.escape(e.id)}"]`);(s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b]??s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b-1]??s?.querySelector('[data-testid="suggestion-accept"]'))?.focus()})}catch(s){r(s instanceof Error?s.message:String(s))}};return(0,R.jsxs)("details",{"data-testid":"suggestion-items",style:{minWidth:0},children:[(0,R.jsx)("summary",{style:{cursor:"pointer",fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:`Show the ${a.length} changes`}),(0,R.jsx)("ol",{style:{margin:"6px 0 0",padding:0,listStyle:"none",display:"grid",gap:4,minWidth:0},children:a.map((p,b)=>(0,R.jsxs)("li",{"data-testid":"suggestion-item","data-item":p.at,style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontSize:"0.75rem"},children:[(0,R.jsx)("span",{style:{...Ae,flex:"1 1 auto"},children:p.intent}),n?(0,R.jsx)("button",{type:"button","data-testid":"suggestion-item-accept","aria-label":`Accept: ${p.intent}`,onClick:()=>f(p.at,b),style:{minHeight:24,padding:"1px 8px",fontSize:"0.75rem",flex:"0 0 auto"},children:"Accept"}):null]},p.at))}),i?(0,R.jsx)("span",{"data-testid":"suggestion-item-refused",role:"alert",style:{...Ae,display:"block",fontSize:"0.75rem",color:"var(--graview-warn)"},children:i}):null]})}var t=z(I(),1);function Ie(e,n,l=0){let d=[e>0?`${e===1?"one suggestion":`${e} suggestions`} waiting`:"",e>0&&l>0?`${l===1?"a reader agrees":`${l} readers agree`} with one that waits`:"",n>0?`tidied ${n===1?"one thing":`${n} things`} while you were away`:""].filter(Boolean);return d.length>0?d.join(" \xB7 ").replace(/^./,o=>o.toUpperCase()):void 0}function J(){let{store:e,principal:n,dismissals:l,app:d}=M(),o=_(),i=(0,y.useMemo)(()=>ve(l,d?.name??"app",n),[l,d?.name,n]),[r,a]=(0,y.useReducer)(g=>g+1,0);(0,y.useEffect)(()=>i.onChange?.(a),[i]),(0,y.useEffect)(()=>e.subscribe((g,u)=>u.some(w=>w.vote!==void 0)&&a()),[e]);let f=(0,y.useMemo)(()=>ue(e,n,{dismissed:i.list()}),[e,n,o,i,r]),p=(0,y.useCallback)(g=>K(e,g,n)||e.permits({name:F,args:{suggestion:g.id,vote:"for"}},n).ok,[e,n]),b=(0,y.useMemo)(()=>f.filter(p),[f,p]),s=(0,y.useMemo)(()=>f.filter(g=>!p(g)),[f,p]);return{waiting:b,toldOf:s,notNow:i}}function st({onCount:e}){let{waiting:n}=J();return(0,y.useEffect)(()=>e(n.length),[e,n.length]),null}function it({close:e,done:n}){let{waiting:l,notNow:d}=J();return(0,t.jsx)(Ce,{waiting:l,notNow:d,close:e,done:n})}function Ce({waiting:e,notNow:n,close:l,done:d}){let{store:o}=M(),[i,r]=(0,y.useState)(""),a=ce(),f=s=>o.graph.has(s)?g=>{l(),a.record(g)}:null,p=s=>{r(s),requestAnimationFrame(()=>{let g=document.querySelector('[data-testid="inbox"] [data-testid="suggestion"]'),u=g?.querySelector('[data-testid="suggestion-accept"], [data-testid="suggestion-sign-in"], [data-testid="suggestion-not-now"]')??g?.querySelector("button")??document.querySelector('[data-testid="inbox-needs-you"] [data-testid="inbox-problem-words"]:is(button), [data-testid="inbox-needs-you"] [data-testid="inbox-notification"]:is(a, button)');u?u.focus():d()})},b=(0,t.jsx)("span",{role:"status","data-testid":"suggestion-heard",style:G,children:i});return e.length===0?b:(0,t.jsxs)("div",{"data-testid":"suggested",style:{display:"flex",flexDirection:"column",gap:9,minWidth:0},children:[[e.filter(E),e.filter(s=>!E(s))].map((s,g)=>s.length===0?null:(0,t.jsxs)("div",{style:{display:"grid",gap:6,minWidth:0},children:[e.some(E)?(0,t.jsx)("h4",{style:{margin:0,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:g===0?"Proposed":"Suggested by the app"}):null,(0,t.jsx)("ol",{"data-testid":g===0?"proposals":"suggestions",style:O,children:We(o,s).map(u=>u.record?(0,t.jsx)(Ge,{record:u.record,level:e.some(E)?5:4,go:f(u.record.record),children:w=>u.suggestions.map(W=>(0,t.jsx)(Z,{suggestion:W,notNow:n,settled:p,heard:r,goes:f,under:w},W.id))},u.suggestions[0].id):u.words?(0,t.jsxs)("li",{"data-testid":"suggestion-group",style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:6,minWidth:0},children:[(0,t.jsx)("span",{style:{...C,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:u.words}),(0,t.jsx)("ol",{style:O,children:u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id))})]},u.suggestions[0].id):u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id)))})]},g)),b]})}function rt({alone:e,close:n,done:l}){let{store:d,whileAway:o,principal:i}=M(),{waiting:r,toldOf:a,notNow:f}=J();_();let[p,b]=(0,y.useState)(null),s=o?.tidied??0,g=o?Ie(r.length,s,o.agreed):void 0,u=pe(d,i).filter(w=>d.mayUndo(w.batch,i).ok);return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:8,minWidth:0},children:[g?(0,t.jsxs)("p",{"data-testid":"while-away",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[g,"."]}):null,a.length>0?(0,t.jsx)(Ce,{waiting:a,notNow:f,close:n,done:l}):null,u.length>0?(0,t.jsx)("ul",{"data-testid":"suggestions-stopped","aria-label":"What is not suggested any more",style:{...O,gap:6},children:u.map(w=>(0,t.jsxs)("li",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0,color:"var(--graview-ink-muted)"},children:[(0,t.jsx)("span",{style:{...C,flex:"1 1 14em"},children:w.words}),(0,t.jsx)("button",{type:"button","data-testid":"suggestion-suggest-again",onClick:()=>{b(null);try{d.undo(w.batch,{author:i})}catch(W){b(ge(d.schema,d.allMutations(),W))}requestAnimationFrame(()=>document.querySelector('[data-testid="inbox"] [aria-selected="true"]')?.focus())},style:H,children:"Suggest again"})]},w.batch))}):null,p?(0,t.jsx)("span",{role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:p}):null,e&&!g&&u.length===0&&a.length===0?(0,t.jsx)("p",{"data-testid":"inbox-updates-empty",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:"No updates."}):null]})}function Ge({record:e,level:n,go:l,children:d}){let o=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion-record-group","data-record":e.record,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,minWidth:0},children:[(0,t.jsx)("span",{id:o,role:"heading","aria-level":n,"data-testid":"suggestion-record-heading",style:{...C,display:"block",fontSize:"0.8125rem",lineHeight:1.45},children:(0,t.jsx)(Ne,{part:e,go:l})}),(0,t.jsx)("ol",{"aria-labelledby":o,style:{...O,gap:6,paddingInlineStart:12},children:d(o)})]})}var C={minWidth:0,overflowWrap:"anywhere"},O={margin:0,padding:0,listStyle:"none",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:10,fontSize:"0.8125rem",minWidth:0},H={minHeight:24,padding:"1px 10px",fontSize:"0.75rem"},q={...H,border:"1px solid transparent",background:"transparent",boxShadow:"none",color:"var(--graview-ink-muted)"};function Ne({part:e,go:n}){let l={display:"inline-block",maxWidth:"min(24ch, 100%)",minHeight:24,lineHeight:"24px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",verticalAlign:"bottom"},d=n?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-record","data-record":e.record,title:`Go to ${e.label}`,onClick:()=>n(e.record),className:"graview-activity-record",style:{all:"unset",...l,cursor:"pointer",fontWeight:600,color:"var(--graview-ink)",textDecoration:"underline",textDecorationColor:"color-mix(in srgb, var(--graview-ink) 35%, transparent)",textUnderlineOffset:2},children:e.label}):(0,t.jsx)("span",{title:e.label,style:{...l,fontWeight:600},children:e.label});return e.quoted?(0,t.jsxs)(t.Fragment,{children:["\u201C",d,"\u201D"]}):d}var je={accept:"Accepted.",decline:"Declined: it will not be suggested again.",stop:"This kind of thing will not be suggested again. You can undo that in Activity.",later:"Hidden from you until tomorrow.",withdraw:"Withdrawn."},L={recorded:"Your vote was recorded.",withdrawn:"Your vote was withdrawn."},qe=(e,n)=>n.startsWith(`${e}: `)?n.slice(e.length+2):n,Le=e=>{let n=`${e.for} for, ${e.against} against`,l=Oe(e.advisory);return l?`${n} \xB7 ${l}`:n};function Oe(e){if(!e)return"";let n=e.for===0?"":e.for===1?"a visitor agrees":`${e.for} visitors agree`,l=e.against===0?"":e.against===1?`${n?"one":"a visitor"} disagrees`:`${e.against}${n?"":" visitors"} disagree`;return[n,l].filter(Boolean).join(", ")}function Z({suggestion:e,notNow:n,settled:l,heard:d,goes:o,under:i}){let{store:r,principal:a,seats:f,people:p,signIn:b}=M(),[s,g]=(0,y.useState)(null),[u,w]=(0,y.useState)(null),W=(0,y.useId)(),x=(0,y.useId)(),N=ae(e.author,{graph:r.graph,schema:r.schema,seats:f,people:p}),k=(0,y.useMemo)(()=>K(r,e,a),[r,e,a]),c=(0,y.useMemo)(()=>k&&he(r,e,a),[k,r,e,a]),S=(0,y.useMemo)(()=>k||r.permits({name:F,args:{suggestion:e.id,vote:"for"}},a).ok,[k,r,e.id,a]),{tally:h}=e,A=E(e),T=A&&a!==void 0&&!k&&re(a).id===e.lineage.proposedBy,v=async m=>{g(null);try{if(m==="withdraw")we(r,e.id,{author:a});else if(m==="stop")be(r,e.id,{author:a});else if(m==="accept"||m==="decline"){if((m==="accept"?j(r,e.id,{author:a}):me(r,e.id,{author:a})).voted!==void 0){w(L.recorded),d(L.recorded);return}}else if(m==="unvote"){ye(r,e.id,null,{author:a}),w(L.withdrawn),d(L.withdrawn);return}else await n.dismiss({suggestion:e.id,at:new Date().toISOString(),until:Se()});l(je[m])}catch(D){g(D instanceof Error?D.message:String(D))}},$=e.items.length>1,P=(0,y.useMemo)(()=>Q(r,e),[r,e]),U=(0,y.useId)(),Me=i?P.alone:P.parts,X=i?`${i} ${U}`:U,V=new Set(P.parts.flatMap(m=>typeof m=="string"?[]:[m.record])),Y=e.lineage&&!(A&&e.lineage.basis.startsWith("Proposed by "))?xe(e.lineage):void 0,[ee,De]=(0,y.useState)(!1),te=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion","data-suggestion":e.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,lineHeight:1.45,minWidth:0},children:[(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0},children:[(0,t.jsxs)("span",{id:U,"data-graview-suggestion-words":"",style:{...C,flex:"1 1 14em"},children:[A?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{"data-testid":"proposed-by",style:{color:"var(--graview-ink-muted)"},children:["Proposed by ",(0,t.jsx)("strong",{style:{fontWeight:600,color:"var(--graview-ink)"},children:T?"you":N}),":"]})," "]}):$?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("strong",{style:{fontWeight:600},children:N})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:"suggests"})," "]}):null,$?qe(N,e.headline??e.intent):Me.map((m,D)=>typeof m=="string"?m:(0,t.jsx)(Ne,{part:m,go:o(m.record)},D))]}),(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,marginInlineStart:"auto",minWidth:0},children:[Y?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-why","aria-expanded":ee,"aria-controls":te,onClick:()=>De(m=>!m),style:{...q,padding:"1px 6px"},children:"Why?"}):null,T?(0,t.jsx)("button",{type:"button","data-testid":"proposal-withdraw",onClick:()=>void v("withdraw"),style:H,children:"Withdraw"}):S?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-accept",onClick:()=>void v("accept"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="for","aria-describedby":x},style:H,children:k&&$?"Accept all":"Yes"}):b?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-sign-in",onClick:()=>b.run(),style:H,children:"Sign in to vote"}):null,S&&!T?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-decline",onClick:()=>void v("decline"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="against","aria-describedby":x},style:H,children:"No"}):null,c?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-stop-kind",onClick:()=>void v("stop"),title:`Stops suggesting ${fe(r,e)}. You can undo it.`,style:q,children:"Don't suggest this kind of thing"}):null,!k&&S&&!T&&h.mine!==void 0?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-withdraw-vote",onClick:()=>void v("unvote"),style:q,children:"Withdraw vote"}):null,(0,t.jsx)("button",{type:"button","data-testid":"suggestion-not-now",onClick:()=>void v("later"),title:"Hide it from you until tomorrow. It still waits for everyone else.","aria-describedby":W,style:q,children:"Later"})]})]}),(0,t.jsx)("span",{id:W,style:G,children:"Hides it from you until tomorrow; it still waits for everyone else."}),!k&&S&&!T?(0,t.jsx)("span",{id:x,style:G,children:"Counts as your vote; somebody who may make it decides."}):null,Y?(0,t.jsx)("span",{id:te,"data-graview-lineage":"",hidden:!ee,style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Y}):null,$?(0,t.jsx)(Re,{suggestion:e,decides:k,heard:d}):null,e.about.some(m=>!V.has(m))&&($||V.size===0)?(0,t.jsx)("div",{"data-graview-suggestion-records":"",style:{display:"flex",flexWrap:"wrap",gap:4,minWidth:0},children:e.about.filter(m=>!V.has(m)).slice(0,4).map(m=>(0,t.jsx)($e,{id:m,label:ke(r,m),go:o(m),testId:"suggestion-record"},m))}):null,k&&h.for+h.against+(h.advisory?h.advisory.for+h.advisory.against:0)>0?(0,t.jsx)("span",{"data-testid":"suggestion-tally",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Le(h)}):null,u?(0,t.jsx)("span",{"data-testid":"suggestion-voted",role:"status",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:u}):null,s?(0,t.jsx)("span",{"data-testid":"suggestion-refused",role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:s}):null]})}export{st as SuggestedCount,it as SuggestedList,rt as SuggestedUpdates,Oe as advisoryWords,Ie as awayWords,Le as tallyWords};
@@ -1,4 +1,4 @@
1
- import{a as k}from"./chunk.G4JJXA63.js";import{b as Q}from"./chunk.7KX36ENH.js";import{a as Z}from"./chunk.SPJ34VHA.js";import{a as Y}from"./chunk.U5KJQFAP.js";import{c as V}from"./chunk.W6L2VAJG.js";import{fb as z,jb as B,ke as P,me as H,ne as T,oe as U}from"./chunk.6L6RUOSF.js";var x=n=>"failed"in n;function fn(n,e){let s=n.schema.kinds,t=n.policy?.sees;if(!t?.length||B(e))return{kinds:s};let o=z(e).roles??[],r=new Set(t.filter(i=>i.roles==="*"||o.some(a=>i.roles.includes(a))).flatMap(i=>i.kinds));return{kinds:s.filter(i=>r.has(i))}}function O(n,e){if(!e)return n;let s=new Set(e.kinds.filter(r=>n.tryDefinition(r)!==void 0));if(s.size===n.kinds.length)return n;let t=new Map,o=r=>{if(s.has(r)){if(!t.has(r)){let i=n.tryDefinition(r),a=Object.fromEntries(Object.entries(i?.edges??{}).flatMap(([l,d])=>{if(d.to==="*")return[[l,d]];let c=d.to.filter(u=>s.has(u));return c.length>0?[[l,{...d,to:c}]]:[]}));t.set(r,{...i,edges:a})}return t.get(r)}};return{...n,definitions:n.definitions.filter(r=>s.has(r.kind)),kinds:n.kinds.filter(r=>s.has(r)),tryDefinition:o,definition:r=>{let i=o(r);if(!i)throw new Error(`Unknown node kind "${r}"`);return i}}}var gn=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),b=n=>gn(n).replace(/[-_]+/g," ").trim();function j(n){let e=[];for(let t of n.kinds){let o=n.tryDefinition(t);if(!o)continue;let r=o.display?.labels??{},i=Object.entries(o.fields?.shape??{}).filter(([d])=>d!=="id"&&d!=="kind").map(([d,c])=>{let u=Y(c);return{name:d,type:u?.type==="enum"&&u.multiple?"list":u?.type,...u?.options?{options:u.options}:{},words:(r[d]??b(d)).toLowerCase()}}),a=Object.entries(o.edges??{}).map(([d,c])=>({name:d,from:t,to:c.to==="*"?n.kinds.filter(u=>u!==t):c.to,words:b(d)})),l=(o.plural??`${b(t)}s`).toLowerCase();e.push({kind:t,plural:l,noun:(o.noun??b(t)).toLowerCase(),fields:i,roles:o.fieldRoles??{},edges:a})}let s=new Map(e.map(t=>[t.kind,t]));return{schema:n,kinds:e,info:t=>s.get(t)}}var $=(n,e)=>e===void 0?void 0:n.fields.find(s=>s.name===e),R=n=>n?.type==="date"||n?.type==="datetime",K=n=>n?.type==="number"||n?.type==="integer"||n?.type==="duration",sn=n=>` ${n.toLowerCase().replace(/[“”"’‘]/g,"'").replace(/[^\p{L}\p{N}' -]+/gu," ").replace(/\s+/g," ").trim()} `,A=(n,e)=>n.includes(` ${e} `),L=n=>n.endsWith("ies")?`${n.slice(0,-3)}y`:n.endsWith("ses")?n.slice(0,-2):n.endsWith("s")?n.slice(0,-1):n;function yn(n,e){let s=[];for(let t of e.kinds){let o=new Set([t.plural,t.noun,`${t.noun}s`,b(t.kind),`${b(t.kind)}s`]),r=-1;for(let i of o){let a=n.indexOf(` ${i} `);a>=0&&(r<0||a<r)&&(r=a)}r>=0&&s.push({info:t,at:r})}return s.sort((t,o)=>t.at-o.at).map(t=>t.info)}function I(n,e,s){let t=e.trim().toLowerCase();if(t.length===0)return;let o=n.fields.filter(r=>!s||s(r));return o.find(r=>r.words===t||b(r.name)===t||r.name.toLowerCase()===t)??o.find(r=>r.words===L(t)||b(r.name)===L(t))??o.find(r=>t.split(" ").some(i=>i.length>2&&(r.words.split(" ").includes(i)||r.words.split(" ").includes(L(i)))))}function rn(n,e,s){let t=e.trim().toLowerCase();if(t.length!==0)return n.edges.find(o=>o.words===t||o.name.toLowerCase()===t)??n.edges.find(o=>o.to.some(r=>{let i=s.info(r);return i!==void 0&&(i.noun===L(t)||i.plural===t||b(r)===L(t))}))??n.edges.find(o=>t.split(" ").some(r=>r.length>2&&o.words.split(" ").includes(r)))}function W(n){return/ (?:grouped |group |split |sorted |organi[sz]ed )?by ([\p{L}\p{N}' -]+?)(?= (?:and|with|for|in|on|only|where|from|this|that|as|sorted|grouped) |\s*$)/u.exec(n)?.[1]?.trim()}var mn=/\bwho\b.*\b(covers?|cover|tends?|owns?|handles?|does|works? on|looks? after|is on|is assigned|staffs?|runs?)\b|\bcoverage\b|\bmatrix\b|\bwho covers\b/,bn=/\bcalendar\b|\bmonth\b|\bagenda\b|\bschedule\b|\bdue\b|\bdeadlines?\b|\bdates?\b|\bwhen\b/,hn=/\btimeline\b|\bover time\b|\bgantt\b|\bspans?\b|\bweek\b/,pn=/\bboard\b|\bkanban\b|\bcolumns?\b|\bpipeline\b|\bstages?\b|\bstatus\b/,wn=/\blaid out\b|\blayout\b|\bseating\b|\bwhere (?:they|it|each) (?:sits?|lies?|stands?)\b|\bfloor\b/,kn=/\bplan\b|\bmap\b|\bregions?\b/,$n=/\blist\b|\btable\b|\bgroup(?:ed)? by\b|\bsort(?:ed)? by\b|\bonly\b|\bjust the\b/;function Sn(n){let e=[];return/\blist\b|\btable\b/.test(n)&&e.push("blocks"),mn.test(n)&&e.push("coverage"),wn.test(n)&&e.push("board"),(/\bfloor plan\b/.test(n)||kn.test(n))&&e.push("plan"),hn.test(n)&&e.push("timeline"),bn.test(n)&&e.push("calendar"),pn.test(n)&&e.push("columns"),$n.test(n)&&!e.includes("blocks")&&e.push("blocks"),e.length===0&&W(n)&&e.push("columns"),e}var on=n=>{let e=s=>s?` and not ${s}`:"";if(/\boverdue\b|\blate\b|\bpast due\b/.test(n))return{cond:(s,t)=>`days(today(), ${s}) < 0${e(t)}`,says:s=>`overdue by ${s.words}`};if(/\btoday\b/.test(n))return{range:"day",cond:s=>`days(today(), ${s}) == 0`,says:s=>`with ${s.words} today`};if(/\bthis week\b|\bnext 7 days\b|\bnext week\b/.test(n))return{range:"week",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 6`,says:s=>`with ${s.words} in the next week`};if(/\bthis month\b|\bnext 30 days\b|\bnext month\b/.test(n))return{range:"month",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 30`,says:s=>`with ${s.words} in the next month`};if(/\blast month\b|\bpast month\b/.test(n))return{range:"month",cond:s=>`days(today(), ${s}) >= -30 and days(today(), ${s}) <= 0`,says:s=>`with ${s.words} in the last month`};if(/\bthis year\b/.test(n))return{range:"year",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 365`,says:s=>`with ${s.words} in the next year`};if(/\bquarter\b/.test(n))return{range:"quarter",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 91`,says:s=>`with ${s.words} in the next quarter`}},_=n=>{if(/\bagenda\b|\bin order\b/.test(n))return"agenda";if(/\btoday\b|\bday\b/.test(n))return"day";if(/\bweek\b/.test(n))return"week";if(/\bquarter\b/.test(n))return"quarter";if(/\byears\b/.test(n))return"years";if(/\byear\b/.test(n))return"year";if(/\bmonth\b/.test(n))return"month"},X=/^(user|person|people|member|staff|gardener|volunteer|owner|agent|employee|worker|team|player|customer|client|contact|party|attendee|guest)s?$/,N=class extends Error{},h=n=>{throw new N(n)};function Dn(n,e){let s=n.fields.filter(r=>r.type==="enum");if(e){let r=I(n,e);if(r&&r.type==="enum")return r;r&&h(`${n.plural}' ${r.words} is not a choice, so it has no columns`)}let t=$(n,n.roles.status??n.roles.column);if(t?.type==="enum")return t;let o=s.find(r=>/^(status|stage|state|phase)$/.test(r.name));return o||(s[0]?s[0]:h(`${n.plural} have no choice field to put in columns`))}function nn(n,e){let s=n.fields.filter(R),t=l=>{let d=$(n,n.roles[l]);return R(d)?d:void 0},r=s.find(l=>A(e,l.words)||A(e,b(l.name)))??t("start")??s.find(l=>/^(due|date|on|at|start|starts|begins|from|sown|when)/i.test(l.name))??s[0];if(!r)return h(`no date field on ${n.plural}`);let i=t("end")??s.find(l=>l!==r&&/^(end|ends|until|to|finish|finished|harvested|due|closes|through)/i.test(l.name)),a=n.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));return{start:r,...i&&i!==r?{end:i}:{},...a?{done:a}:{}}}function an(n){let e=$(n,n.roles.start),s=$(n,n.roles.end),t=$(n,n.roles.column??n.roles.day??n.roles.columns);if(K(e)&&K(s)&&t?.type==="enum")return{start:e,end:s,column:t}}function vn(n,e,s,t){let o=[];for(let i of n.kinds)for(let a of i.edges)for(let l of a.to){let d=n.info(l);if(!d||d.kind===i.kind)continue;let c=0;e.includes(i)&&(c+=4),e.includes(d)&&(c+=4),(X.test(d.kind)||X.test(d.noun))&&(c+=3),t&&(a.words.includes(t)||d.noun===L(t))&&(c+=5),a.words.split(" ").some(u=>u.length>2&&s.includes(` ${u}`))&&(c+=2),o.push({rows:i,across:d,link:a,score:c})}let r=o.sort((i,a)=>a.score-i.score)[0];return r||h(e[0]?`${e[0].plural} are joined to nothing else, so there is no who-covers-what to draw`:"nothing here is joined to anything else, so there is no who-covers-what to draw")}function dn(n,e,s,t,o){let r=W(t);switch(n){case"columns":{if(r){let i=I(e,r);if(!i||i.type!=="enum"){let a=rn(e,r,s);if(a){let l=s.info(a.to[0]);return{lens:"coverage",kind:e.kind,across:l.kind,link:a.name}}}}return{lens:"columns",kind:e.kind,column:Dn(e,r).name}}case"calendar":{let i=nn(e,t),a=_(t);return{lens:"calendar",kind:e.kind,start:i.start.name,...i.end?{end:i.end.name}:{},...i.done?{done:i.done.name}:{},...a?{range:a}:{}}}case"timeline":{let i=an(e);if(i&&!/\bdates?\b|\bdue\b|\bdeadlines?\b|\bmonths?\b|\byears?\b/.test(t))return{lens:"timeline",kind:e.kind,start:i.start.name,end:i.end.name,column:i.column.name};let a=nn(e,t);return{lens:"calendar",kind:e.kind,start:a.start.name,...a.end?{end:a.end.name}:{},...a.done?{done:a.done.name}:{},range:_(t)??"quarter"}}case"coverage":{let i=vn(s,o,t,r);return{lens:"coverage",kind:i.rows.kind,across:i.across.kind,link:i.link.name}}case"board":{let i=$(e,e.roles.x)??e.fields.find(c=>c.name==="x"),a=$(e,e.roles.y)??e.fields.find(c=>c.name==="y");if(!K(i)||!K(a))return h(`${e.plural} have no x and y to be laid out by`);let d=s.kinds.flatMap(c=>c.edges.filter(u=>u.to.includes(e.kind)&&c.kind!==e.kind))[0]??e.edges[0];return d?{lens:"board",kind:e.kind,x:i.name,y:a.name,fill:d.name,...d.from!==e.kind?{fillFrom:"occupant"}:{}}:h(`nothing is joined to ${e.plural} to fill them`)}case"plan":{let i=$(e,e.roles.outline)??e.fields.find(a=>a.name==="outline");return i?{lens:"plan",kind:e.kind,outline:i.name}:h(`${e.plural} have no outline to draw a plan from`)}case"blocks":{let i={lens:"blocks",kind:e.kind,as:/\bcards?\b/.test(t)?"card":"row"},a=/ group(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|sorted|with)|\s*$)/u.exec(t)?.[1]??(r&&!/ sort(?:ed)? by /.test(t)?r:void 0);if(a){let c=I(e,a);if(!c||c.type!=="enum")return h(c?`${e.plural}' ${c.words} is not a choice, so they cannot be grouped by it`:`${e.plural} have nothing called ${a} to group by`);i.group=c.name}let l=/ sort(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|grouped|with)|\s*$)/u.exec(t)?.[1];if(l){let c=I(e,l);if(!c)return h(`${e.plural} have nothing called ${l} to sort by`);i.sort={by:c.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}let d=q(e,t);return d.length>0&&(i.where=d),i}}}function q(n,e){let s=[],t=on(e);if(t){let o=n.fields.filter(R),r=$(n,n.roles.start),i=o.find(l=>A(e,l.words))??(R(r)?r:void 0)??o[0];(!i||!R(i))&&h(`no date field on ${n.plural}`);let a=n.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));s.push({expr:t.cond(i.name,/\boverdue\b|\blate\b|\bpast due\b/.test(e)?a?.name:void 0),says:t.says(i)})}if(/\bonly\b|\bjust\b|\bthat are\b|\bwhich are\b/.test(e)){for(let o of n.fields){if(o.type!=="enum")continue;let r=o.options?.find(i=>A(e,i.toLowerCase())||A(e,b(i)));r&&s.push({expr:`${o.name} == '${r.replace(/'/g,"")}'`,says:`that are ${b(r)}`})}if(/\bnot done\b|\bundone\b|\bunfinished\b|\bopen ones\b|\bstill to do\b/.test(e)){let o=n.fields.find(r=>r.type==="boolean"&&/^(done|finished|complete|completed)$/.test(r.name));o&&s.push({expr:`not ${o.name}`,says:`not ${o.words}`})}}return s}var J={columns:"A board",calendar:"A calendar",timeline:"A timeline",coverage:"A grid",board:"A layout",plan:"A plan",blocks:"A list",reach:"A picture"};function Rn(n,e){let s=e.info(n.kind),t=o=>o?$(s,o)?.words??b(o):"";switch(n.lens){case"columns":return{title:`${k(s.plural)} by ${t(n.column)}`,detail:`of ${s.plural} by ${t(n.column)}`};case"calendar":{let o=n.range??"month";if(o==="agenda")return{title:`${k(s.plural)} in date order`,detail:`of ${s.plural} in order of ${t(n.start)}`};let r=o==="years"?"year":o;return{title:`${k(s.plural)} by ${r}`,detail:`of ${s.plural} by ${t(n.start)}, a ${r} at a time`}}case"timeline":return{title:`${k(s.plural)} over the ${t(n.column)}`,detail:`of ${s.plural} from ${t(n.start)} to ${t(n.end)}, by ${t(n.column)}`};case"coverage":{let o=e.info(n.across);return{title:`${k(s.plural)} by ${o.noun}`,detail:`of which ${o.noun} covers which ${s.noun}`}}case"board":return{title:`${k(s.plural)} where they stand`,detail:`of ${s.plural} where they stand`};case"plan":return{title:`${k(s.plural)} on a plan`,detail:`of ${s.plural}`};default:{let o=[n.where?.map(r=>r.says).join(" and "),n.group?`by ${t(n.group)}`:void 0,n.sort?`in order of ${t(n.sort.by)}`:void 0].filter(r=>!!r);return{title:[k(s.plural),...o].join(" "),detail:[`of ${s.plural}`,...o].join(" ")}}}}function An(n,e){let s={title:e,on:n.kind};switch(n.lens){case"columns":return{name:"columns",...s,bindings:{[n.kind]:{column:n.column}}};case"calendar":return{name:"calendar",...s,bindings:{[n.kind]:{start:n.start,...n.end?{end:n.end}:{},...n.done?{done:n.done}:{}}},...n.range?{options:{range:n.range}}:{}};case"timeline":return{name:"timeline",...s,bindings:{[n.kind]:{start:n.start,end:n.end,column:n.column}}};case"coverage":return{name:"coverage",...s,bindings:{rows:{kind:n.kind},columns:{kind:n.across},link:{edge:n.link}}};case"board":return{name:"board",...s,bindings:{slots:{kind:n.kind},x:{field:n.x,on:"slots"},y:{field:n.y,on:"slots"},fill:{edge:n.fill}},...n.fillFrom?{options:{fillFrom:n.fillFrom}}:{}};case"plan":return{name:"plan",...s,bindings:{regions:{kind:n.kind},outline:{field:n.outline,on:"regions"}}};default:{let t=n.where?.length?` where ${n.where.map(r=>n.where.length>1?`(${r.expr})`:r.expr).join(" and ")}`:"",o={list:`all('${n.kind}')${t}`,as:n.as??"row"};return n.group&&(o.group=n.group),n.sort&&(o.sort=n.sort.direction?{by:n.sort.by,direction:n.sort.direction}:n.sort.by),o.empty="Nothing here yet.",{name:"blocks",...s,options:{blocks:[o]}}}}}function F(n,e){let{app:s}=e,t=r=>r.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,""),o=new Set(["home","overview",...Q(s,e.views?{views:e.views}:{}).map(r=>r.slug),...(s.lenses??[]).flatMap(r=>r.title?[t(r.title)]:[])]);if(!o.has(t(n)))return n;for(let r=2;;r++)if(!o.has(t(`${n} ${r}`)))return`${n} ${r}`}var en={title:[],headline:[],text:["tone"],figure:["as","currency","label"],list:["sort","limit","group","empty","as"],progress:["label"],group:["direction"],when:["show"],divider:[]};function Ln(n,e){if(!Array.isArray(e)||e.length===0)return"it has no blocks to draw";if(e.length>40)return"it has more blocks than a place draws";let s=(i,a)=>{if(typeof i!="string"||i.trim()==="")return`its ${a} says nothing`;try{return V(i)}catch(l){return`its ${a} does not read: ${l instanceof Error?l.message.replace(/ \(at character.*$/,""):String(l)}`}},t=i=>{if(i.t==="where")return t(i.set);if(i.t==="call"&&i.fn==="all"){let a=i.args[0];return a?.t==="lit"&&typeof a.value=="string"?n.info(a.value)??null:void 0}},o=(i,a)=>{switch(i.t){case"lit":return;case"ident":return a&&!a.fields.some(l=>l.name===i.name)&&!a.edges.some(l=>l.name===i.name)?`${a.plural} have nothing called ${i.name}`:void 0;case"member":return o(i.object,a);case"list":return i.items.map(l=>o(l,a)).find(Boolean);case"unary":return o(i.operand,a);case"binary":return o(i.left,a)??o(i.right,a);case"where":{let l=t(i.set);return l===null?"Nothing by that name here":o(i.set,a)??o(i.filter,l??void 0)}case"call":return i.fn==="all"?t(i)===null?"Nothing by that name here":void 0:i.args.map(l=>o(l,a)).find(Boolean)}},r=(i,a)=>{if(a>4)return"its blocks nest deeper than a place draws";for(let l of i){if(!w(l))return"a block is not an object";let d=Object.keys(en).find(g=>g in l);if(!d)return`"${Object.keys(l)[0]??""}" is not a block a place draws`;let c=Object.keys(l).find(g=>g!==d&&g!=="key"&&!en[d].includes(g));if(c)return`a ${d} block takes no "${c}"`;let u=l[d];if(d==="list"||d==="figure"||d==="when"){if(d==="figure"&&u===!0)continue;let g=s(u,d);if(typeof g=="string")return g;let m=o(g,void 0);if(m)return m;if(d==="list"){let f=t(g);if(f==null)return f===null?"Nothing by that name here":"its list does not say which records it lists, like all('task')";for(let y of["group","sort"]){let p=l[y],S=typeof p=="string"?p:w(p)&&typeof p.by=="string"?p.by:void 0;if(p===void 0)continue;let D=S?f.fields.find(un=>un.name===S):void 0;if(!D)return`${f.plural} have nothing called ${String(S??p)} to ${y} by`;if(y==="group"&&D.type!=="enum")return`${f.plural}' ${D.words} is not a choice, so they cannot be grouped by it`}}if(d==="when"){let f=l.show;if(!Array.isArray(f))return"a when block shows a list of blocks";let y=r(f,a+1);if(y)return y}}else if(d==="group"){if(!Array.isArray(u))return"a group block holds a list of blocks";let g=r(u,a+1);if(g)return g}else{if(d!=="divider"&&typeof u!="string")return`a ${d} block says words`;if(typeof u=="string")for(let g of u.matchAll(/\{([^{}]*)\}/g)){let m=g[1].split(/\|(?![|])/)[0],f=s(m,`${d}'s braces`);if(typeof f=="string")return f;let y=o(f,void 0);if(y)return y}}}};return r(e,1)}function E(n,e,s){let t=O(n.schema,s),o=f=>({ok:!1,failed:`Couldn't draw that: ${f.replace(/\.$/,"")}.`});if(!T(e.name)||e.name==="reach")return o(`"${String(e.name)}" is not a picture the seat can draw; it draws ${H.filter(f=>f!=="reach").join(", ")}`);if(typeof e.title!="string"||e.title.trim().length===0||e.title.length>80)return o("it needs a title of a few words");if(typeof e.on!="string"||!t.tryDefinition(e.on))return o("Nothing by that name here");let r=P[e.name],i=e.bindings??{};if(r.binds==="fields")for(let[f,y]of Object.entries(i)){if(!t.tryDefinition(f))return o("Nothing by that name here");let p=Object.keys(t.tryDefinition(f).fields?.shape??{});for(let[S,D]of Object.entries(y??{}))if(typeof D!="string"||!p.includes(D))return o(`${b(f)} has no field "${String(D)}" for its ${S}`);for(let S of r.requiredRoles)if(!(S in(y??{})))return o(`a ${e.name} needs ${b(f)}'s ${S}`)}else if(r.binds==="entities")for(let f of r.requiredRoles){let y=i[f];if(!y)return o(`a ${e.name} needs its ${f}`);if(typeof y.kind=="string"&&!t.tryDefinition(y.kind))return o("Nothing by that name here")}let a={...n,schema:t,lenses:[...n.lenses??[],e]},l=a.lenses.length-1,d=U(a),c=`lenses.${l}`,u=d.findings.find(f=>f.path===c||f.path.startsWith(`${c}.`));if(u)return o(u.message.replace(/^"[^"]*" /,"it "));let g=d.undrawn.find(f=>f.index===l);if(g)return o(g.why);let m=d.drawn.find(f=>f.index===l);if(!m)return o("its bindings name something the app does not have");if(m.as==="overview")return o(`"${e.title}" is the scene's own address; give it another title`);if(e.name==="blocks"){let f=Ln(j(t),e.options?.blocks);if(f)return o(f)}return{ok:!0,drawn:m}}function G(n){return{op:"add-lens",title:n.title,lens:n.name,on:n.on,...n.bindings?{bindings:n.bindings}:{},...n.options?{options:n.options}:{}}}function In(n){return{op:"remove-lens",title:n.title,on:n.on}}var w=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function ln(n){let e=w(n)?n:{},s=String(e.lens??e.name??""),t=e.bindings,o=typeof e.on=="string"?e.on:w(t)&&P[s]?.binds==="fields"?Object.keys(t)[0]??"":"";return{name:s,title:typeof e.title=="string"?e.title.trim():"",on:o,...w(t)?{bindings:t}:{},...w(e.options)?{options:e.options}:{}}}function On(n){let e=o=>w(n.bindings?.[o])?n.bindings[o]:{},s=o=>typeof o=="string"?o:void 0,t=e(n.on);switch(n.name){case"columns":return s(t.column)?{lens:"columns",kind:n.on,column:t.column}:void 0;case"calendar":{let o=s(n.options?.range);return s(t.start)?{lens:"calendar",kind:n.on,start:t.start,...s(t.end)?{end:t.end}:{},...s(t.done)?{done:t.done}:{},...o?{range:o}:{}}:void 0}case"timeline":return s(t.start)&&s(t.end)&&s(t.column)?{lens:"timeline",kind:n.on,start:t.start,end:t.end,column:t.column}:void 0;case"coverage":{let o=w(n.bindings?.columns)?s(n.bindings.columns.kind):void 0,r=w(n.bindings?.link)?s(n.bindings.link.edge):void 0;return o&&r?{lens:"coverage",kind:n.on,across:o,link:r}:void 0}case"blocks":{let o=n.options?.blocks;if(!Array.isArray(o)||o.length!==1||!w(o[0]))return;let r=o[0],i=new RegExp(`^all\\('${n.on}'\\)(?: where (.+))?$`).exec(String(r.list??""));if(!i)return;let a=r.sort;return{lens:"blocks",kind:n.on,as:r.as==="card"?"card":"row",...typeof r.group=="string"?{group:r.group}:{},...typeof a=="string"?{sort:{by:a}}:w(a)&&typeof a.by=="string"?{sort:{by:a.by,...a.direction==="desc"?{direction:"desc"}:{}}}:{},...i[1]?{where:[{expr:i[1],says:"as asked"}]}:{}}}default:return}}function M(n,e,s,t,o){let r=j(O(n.schema,t)).info(e.on),i=On(e);return{title:e.title,said:`${J[e.name]??"A picture"} of ${r?.plural??b(e.on)}.`,kind:e.on,lens:e,drawn:s,edit:G(e),by:o,asks:[],...i?{recipe:i}:{}}}function tn(n){return{title:n.title,said:n.said,lens:{title:n.lens.title,lens:n.lens.name,on:n.lens.on,...n.lens.bindings?{bindings:n.lens.bindings}:{},...n.lens.options?{options:n.lens.options}:{}},edit:n.edit,by:n.by,check:"It draws, and graview check would take it."}}function C(n,e,s,t,o){let r=Rn(n,e),i=n.title??o??F(r.title,s),a=An(n,i),l=E(s.app,a,s.sight);return l.ok?{title:i,said:`${J[n.lens]} ${r.detail}.`,kind:n.kind,lens:a,drawn:l.drawn,edit:G(a),by:"template",asks:t,recipe:n}:{failed:l.failed,...s.lastGood?{lastGood:s.lastGood}:{}}}function zn(n,e){let s=j(O(e.app.schema,e.sight)),t=s.info(n.kind);if(!t)return{failed:"Couldn't draw that: Nothing by that name here."};let o=n.lens==="blocks"&&!n.group&&!n.sort&&!n.where?.length&&n.title===void 0;return C(o?{...n,title:F(`Every ${t.noun}`,e)}:n,s,e,[])}function jn(n,e,s,t){if(s.length>0)return s;let o=i=>{switch(n){case"columns":return i.fields.some(a=>a.type==="enum");case"calendar":return i.fields.some(R);case"timeline":return an(i)!==void 0||i.fields.some(R);case"coverage":return i.edges.some(a=>a.to.some(l=>l!==i.kind));case"board":return i.fields.some(a=>a.name==="x")&&i.fields.some(a=>a.name==="y");case"plan":return i.fields.some(a=>a.name==="outline")||i.roles.outline!==void 0;default:return!0}};return[...e.kinds.filter(o)].sort((i,a)=>Number(a.fields.some(l=>A(t,l.words)))-Number(i.fields.some(l=>A(t,l.words))))}function xn(n,e){let s=j(O(e.app.schema,e.sight)),t=sn(n),o=Sn(t);if(o.length===0)return;let r=yn(t,s),i;for(let a of o){let l=a==="coverage"?[r[0]??s.kinds[0]].filter(d=>!!d):jn(a,s,r,t);for(let d of l)try{let c=dn(a,d,s,t,r),u=C(c,s,e,[n]);if(!x(u))return u;i??=u.failed}catch(c){if(!(c instanceof N))throw c;i??=`Couldn't draw that: ${c.message}.`}l.length===0&&r.length===0&&(i??=`Couldn't draw that: nothing here has what ${J[a].toLowerCase()} needs.`)}return{failed:i??"Couldn't draw that: Nothing by that name here.",...e.lastGood?{lastGood:e.lastGood}:{}}}async function Nn(n,e){let s=e.lastGood?{lastGood:e.lastGood}:{};if(n.trim().length===0)return{failed:"Say what you would like to see, like \u201Ca board of tasks by status\u201D.",...s};let t=xn(n,e);if(t&&!x(t))return t;if(!e.complete)return t??{failed:"Couldn't draw that: drawing freely needs AI, which isn't on here. Ask for a board, a calendar, a timeline, a list or who covers what.",...s};let o=await cn(n,e,void 0);return x(o)&&t?t:o}async function En(n,e,s){let t={lastGood:n},o={...s,lastGood:n},r=j(O(s.app.schema,s.sight)),i=sn(e),a=r.info(n.kind),l=[...n.asks,e];if(!a)return{failed:"Couldn't change that: Nothing by that name here.",...t};let d=n.recipe,c=/^ (?:call|name|title) (?:it|this)? ?(.+?) $/.exec(i)??/ (?:call|name) it (.+?) $/.exec(i);try{if(c){let m=e.replace(/^.*?\b(?:call|name|title)\b\s*(?:it|this)?\s*/i,"").replace(/^["“']|["”']$/g,"").trim();if(m.length===0)return{failed:"Couldn't change that: say what to call it.",...t};let f={...n.lens,title:F(m,s)},y=E(s.app,f,s.sight);return y.ok?{...n,title:f.title,lens:f,drawn:y.drawn,edit:G(f),asks:l,...d?{recipe:{...d,title:f.title}}:{}}:{failed:y.failed,...t}}let g=/ as (?:a |an )?(board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)\b/.exec(i);if(g){let m=g[1]==="board"||g[1]==="kanban"?"columns":g[1]==="calendar"?"calendar":g[1]==="timeline"?"timeline":g[1]==="grid"?"coverage":g[1]==="plan"?"plan":g[1]==="layout"?"board":"blocks",f=dn(m,a,r,i,[a]),y=g[1]==="cards"?"card":g[1]==="rows"?"row":void 0,p=m==="blocks"&&d?.lens==="blocks"?{...d,...y?{as:y}:{}}:m==="blocks"&&d?.lens==="columns"?{...f,group:d.column,...y?{as:y}:{}}:f;return C(v(p),r,o,l)}if(d){let m=Kn(d,a,r,i);if(m)return C(m,r,o,l)}}catch(g){if(!(g instanceof N))throw g;return{failed:`Couldn't change that: ${g.message}.`,...t}}if(!s.complete)return{failed:"Couldn't change that: changing it freely needs AI, which isn't on here. Try \u201Cgroup by status\u201D, \u201Conly this month\u201D or \u201Cas a calendar\u201D.",...t};let u=await cn(e,o,n);return x(u)?u:{...u,asks:l}}var v=n=>{let{title:e,...s}=n;return s};function Kn(n,e,s,t){let o=/ (?:group(?:ed)?|split|organi[sz]ed?|put them|columns) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1]??(/^ by /.test(t)?W(t):void 0);if(o){let d=I(e,o);if(d?.type==="enum")return n.lens==="blocks"?{...v(n),group:d.name}:{lens:"columns",kind:n.kind,column:d.name};let c=rn(e,o,s);return c?{lens:"coverage",kind:n.kind,across:c.to[0],link:c.name}:h(d?`${e.plural}' ${d.words} is not a choice, so they cannot be grouped by it`:`${e.plural} have nothing called ${o} to group by`)}let r=/ (?:sort(?:ed)?|order(?:ed)?) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1];if(r){let d=I(e,r);return d?{...n.lens==="blocks"?v(n):{lens:"blocks",kind:n.kind,as:"row",...n.lens==="columns"?{group:n.column}:{}},sort:{by:d.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}:h(`${e.plural} have nothing called ${r} to sort by`)}if(/\b(?:all of them|everything|show all|clear the filter|no filter|without the filter)\b/.test(t)){if(n.lens!=="blocks"||!n.where)return h("it already shows all of them");let{where:d,...c}=v(n);return c}let i=on(t);if(i&&n.lens==="calendar"&&i.range)return{...v(n),range:i.range};if(i&&n.lens==="calendar"&&!i.range)return{lens:"blocks",kind:n.kind,as:"row",sort:{by:n.start},where:q(e,t)};let a=q(e,t);if(a.length>0){let d=n.lens==="blocks"?v(n):{lens:"blocks",kind:n.kind,as:"row",...n.lens==="columns"?{group:n.column}:{}};return{...d,where:[...d.where??[],...a]}}let l=n.lens==="calendar"?_(t):void 0;if(l)return{...v(n),range:l}}function Cn(n){return n.kinds.map(e=>{let s=e.fields.map(r=>`${r.name} (${r.type??"value"}${r.options?`: ${r.options.join(" | ")}`:""})`).join(", "),t=e.edges.map(r=>`${r.name} \u2192 ${r.to.join(" | ")}`).join(", "),o=Object.entries(e.roles).map(([r,i])=>`${r}=${i}`).join(", ");return`- ${e.kind} ("${e.plural}"): ${s}${t?`; relations: ${t}`:""}${o?`; roles: ${o}`:""}`}).join(`
1
+ import{a as k}from"./chunk.G4JJXA63.js";import{b as Q}from"./chunk.O5P6LXHF.js";import{a as Z}from"./chunk.ONVYKLRX.js";import{a as Y}from"./chunk.SMF5S4DQ.js";import{c as V}from"./chunk.QMGBAKX6.js";import{fb as z,jb as B,ke as P,me as H,ne as T,oe as U}from"./chunk.ZDUKVXBI.js";var x=n=>"failed"in n;function fn(n,e){let s=n.schema.kinds,t=n.policy?.sees;if(!t?.length||B(e))return{kinds:s};let o=z(e).roles??[],r=new Set(t.filter(i=>i.roles==="*"||o.some(a=>i.roles.includes(a))).flatMap(i=>i.kinds));return{kinds:s.filter(i=>r.has(i))}}function O(n,e){if(!e)return n;let s=new Set(e.kinds.filter(r=>n.tryDefinition(r)!==void 0));if(s.size===n.kinds.length)return n;let t=new Map,o=r=>{if(s.has(r)){if(!t.has(r)){let i=n.tryDefinition(r),a=Object.fromEntries(Object.entries(i?.edges??{}).flatMap(([l,d])=>{if(d.to==="*")return[[l,d]];let c=d.to.filter(u=>s.has(u));return c.length>0?[[l,{...d,to:c}]]:[]}));t.set(r,{...i,edges:a})}return t.get(r)}};return{...n,definitions:n.definitions.filter(r=>s.has(r.kind)),kinds:n.kinds.filter(r=>s.has(r)),tryDefinition:o,definition:r=>{let i=o(r);if(!i)throw new Error(`Unknown node kind "${r}"`);return i}}}var gn=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),b=n=>gn(n).replace(/[-_]+/g," ").trim();function j(n){let e=[];for(let t of n.kinds){let o=n.tryDefinition(t);if(!o)continue;let r=o.display?.labels??{},i=Object.entries(o.fields?.shape??{}).filter(([d])=>d!=="id"&&d!=="kind").map(([d,c])=>{let u=Y(c);return{name:d,type:u?.type==="enum"&&u.multiple?"list":u?.type,...u?.options?{options:u.options}:{},words:(r[d]??b(d)).toLowerCase()}}),a=Object.entries(o.edges??{}).map(([d,c])=>({name:d,from:t,to:c.to==="*"?n.kinds.filter(u=>u!==t):c.to,words:b(d)})),l=(o.plural??`${b(t)}s`).toLowerCase();e.push({kind:t,plural:l,noun:(o.noun??b(t)).toLowerCase(),fields:i,roles:o.fieldRoles??{},edges:a})}let s=new Map(e.map(t=>[t.kind,t]));return{schema:n,kinds:e,info:t=>s.get(t)}}var $=(n,e)=>e===void 0?void 0:n.fields.find(s=>s.name===e),R=n=>n?.type==="date"||n?.type==="datetime",K=n=>n?.type==="number"||n?.type==="integer"||n?.type==="duration",sn=n=>` ${n.toLowerCase().replace(/[“”"’‘]/g,"'").replace(/[^\p{L}\p{N}' -]+/gu," ").replace(/\s+/g," ").trim()} `,A=(n,e)=>n.includes(` ${e} `),L=n=>n.endsWith("ies")?`${n.slice(0,-3)}y`:n.endsWith("ses")?n.slice(0,-2):n.endsWith("s")?n.slice(0,-1):n;function yn(n,e){let s=[];for(let t of e.kinds){let o=new Set([t.plural,t.noun,`${t.noun}s`,b(t.kind),`${b(t.kind)}s`]),r=-1;for(let i of o){let a=n.indexOf(` ${i} `);a>=0&&(r<0||a<r)&&(r=a)}r>=0&&s.push({info:t,at:r})}return s.sort((t,o)=>t.at-o.at).map(t=>t.info)}function I(n,e,s){let t=e.trim().toLowerCase();if(t.length===0)return;let o=n.fields.filter(r=>!s||s(r));return o.find(r=>r.words===t||b(r.name)===t||r.name.toLowerCase()===t)??o.find(r=>r.words===L(t)||b(r.name)===L(t))??o.find(r=>t.split(" ").some(i=>i.length>2&&(r.words.split(" ").includes(i)||r.words.split(" ").includes(L(i)))))}function rn(n,e,s){let t=e.trim().toLowerCase();if(t.length!==0)return n.edges.find(o=>o.words===t||o.name.toLowerCase()===t)??n.edges.find(o=>o.to.some(r=>{let i=s.info(r);return i!==void 0&&(i.noun===L(t)||i.plural===t||b(r)===L(t))}))??n.edges.find(o=>t.split(" ").some(r=>r.length>2&&o.words.split(" ").includes(r)))}function W(n){return/ (?:grouped |group |split |sorted |organi[sz]ed )?by ([\p{L}\p{N}' -]+?)(?= (?:and|with|for|in|on|only|where|from|this|that|as|sorted|grouped) |\s*$)/u.exec(n)?.[1]?.trim()}var mn=/\bwho\b.*\b(covers?|cover|tends?|owns?|handles?|does|works? on|looks? after|is on|is assigned|staffs?|runs?)\b|\bcoverage\b|\bmatrix\b|\bwho covers\b/,bn=/\bcalendar\b|\bmonth\b|\bagenda\b|\bschedule\b|\bdue\b|\bdeadlines?\b|\bdates?\b|\bwhen\b/,hn=/\btimeline\b|\bover time\b|\bgantt\b|\bspans?\b|\bweek\b/,pn=/\bboard\b|\bkanban\b|\bcolumns?\b|\bpipeline\b|\bstages?\b|\bstatus\b/,wn=/\blaid out\b|\blayout\b|\bseating\b|\bwhere (?:they|it|each) (?:sits?|lies?|stands?)\b|\bfloor\b/,kn=/\bplan\b|\bmap\b|\bregions?\b/,$n=/\blist\b|\btable\b|\bgroup(?:ed)? by\b|\bsort(?:ed)? by\b|\bonly\b|\bjust the\b/;function Sn(n){let e=[];return/\blist\b|\btable\b/.test(n)&&e.push("blocks"),mn.test(n)&&e.push("coverage"),wn.test(n)&&e.push("board"),(/\bfloor plan\b/.test(n)||kn.test(n))&&e.push("plan"),hn.test(n)&&e.push("timeline"),bn.test(n)&&e.push("calendar"),pn.test(n)&&e.push("columns"),$n.test(n)&&!e.includes("blocks")&&e.push("blocks"),e.length===0&&W(n)&&e.push("columns"),e}var on=n=>{let e=s=>s?` and not ${s}`:"";if(/\boverdue\b|\blate\b|\bpast due\b/.test(n))return{cond:(s,t)=>`days(today(), ${s}) < 0${e(t)}`,says:s=>`overdue by ${s.words}`};if(/\btoday\b/.test(n))return{range:"day",cond:s=>`days(today(), ${s}) == 0`,says:s=>`with ${s.words} today`};if(/\bthis week\b|\bnext 7 days\b|\bnext week\b/.test(n))return{range:"week",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 6`,says:s=>`with ${s.words} in the next week`};if(/\bthis month\b|\bnext 30 days\b|\bnext month\b/.test(n))return{range:"month",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 30`,says:s=>`with ${s.words} in the next month`};if(/\blast month\b|\bpast month\b/.test(n))return{range:"month",cond:s=>`days(today(), ${s}) >= -30 and days(today(), ${s}) <= 0`,says:s=>`with ${s.words} in the last month`};if(/\bthis year\b/.test(n))return{range:"year",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 365`,says:s=>`with ${s.words} in the next year`};if(/\bquarter\b/.test(n))return{range:"quarter",cond:s=>`days(today(), ${s}) >= 0 and days(today(), ${s}) <= 91`,says:s=>`with ${s.words} in the next quarter`}},_=n=>{if(/\bagenda\b|\bin order\b/.test(n))return"agenda";if(/\btoday\b|\bday\b/.test(n))return"day";if(/\bweek\b/.test(n))return"week";if(/\bquarter\b/.test(n))return"quarter";if(/\byears\b/.test(n))return"years";if(/\byear\b/.test(n))return"year";if(/\bmonth\b/.test(n))return"month"},X=/^(user|person|people|member|staff|gardener|volunteer|owner|agent|employee|worker|team|player|customer|client|contact|party|attendee|guest)s?$/,N=class extends Error{},h=n=>{throw new N(n)};function Dn(n,e){let s=n.fields.filter(r=>r.type==="enum");if(e){let r=I(n,e);if(r&&r.type==="enum")return r;r&&h(`${n.plural}' ${r.words} is not a choice, so it has no columns`)}let t=$(n,n.roles.status??n.roles.column);if(t?.type==="enum")return t;let o=s.find(r=>/^(status|stage|state|phase)$/.test(r.name));return o||(s[0]?s[0]:h(`${n.plural} have no choice field to put in columns`))}function nn(n,e){let s=n.fields.filter(R),t=l=>{let d=$(n,n.roles[l]);return R(d)?d:void 0},r=s.find(l=>A(e,l.words)||A(e,b(l.name)))??t("start")??s.find(l=>/^(due|date|on|at|start|starts|begins|from|sown|when)/i.test(l.name))??s[0];if(!r)return h(`no date field on ${n.plural}`);let i=t("end")??s.find(l=>l!==r&&/^(end|ends|until|to|finish|finished|harvested|due|closes|through)/i.test(l.name)),a=n.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));return{start:r,...i&&i!==r?{end:i}:{},...a?{done:a}:{}}}function an(n){let e=$(n,n.roles.start),s=$(n,n.roles.end),t=$(n,n.roles.column??n.roles.day??n.roles.columns);if(K(e)&&K(s)&&t?.type==="enum")return{start:e,end:s,column:t}}function vn(n,e,s,t){let o=[];for(let i of n.kinds)for(let a of i.edges)for(let l of a.to){let d=n.info(l);if(!d||d.kind===i.kind)continue;let c=0;e.includes(i)&&(c+=4),e.includes(d)&&(c+=4),(X.test(d.kind)||X.test(d.noun))&&(c+=3),t&&(a.words.includes(t)||d.noun===L(t))&&(c+=5),a.words.split(" ").some(u=>u.length>2&&s.includes(` ${u}`))&&(c+=2),o.push({rows:i,across:d,link:a,score:c})}let r=o.sort((i,a)=>a.score-i.score)[0];return r||h(e[0]?`${e[0].plural} are joined to nothing else, so there is no who-covers-what to draw`:"nothing here is joined to anything else, so there is no who-covers-what to draw")}function dn(n,e,s,t,o){let r=W(t);switch(n){case"columns":{if(r){let i=I(e,r);if(!i||i.type!=="enum"){let a=rn(e,r,s);if(a){let l=s.info(a.to[0]);return{lens:"coverage",kind:e.kind,across:l.kind,link:a.name}}}}return{lens:"columns",kind:e.kind,column:Dn(e,r).name}}case"calendar":{let i=nn(e,t),a=_(t);return{lens:"calendar",kind:e.kind,start:i.start.name,...i.end?{end:i.end.name}:{},...i.done?{done:i.done.name}:{},...a?{range:a}:{}}}case"timeline":{let i=an(e);if(i&&!/\bdates?\b|\bdue\b|\bdeadlines?\b|\bmonths?\b|\byears?\b/.test(t))return{lens:"timeline",kind:e.kind,start:i.start.name,end:i.end.name,column:i.column.name};let a=nn(e,t);return{lens:"calendar",kind:e.kind,start:a.start.name,...a.end?{end:a.end.name}:{},...a.done?{done:a.done.name}:{},range:_(t)??"quarter"}}case"coverage":{let i=vn(s,o,t,r);return{lens:"coverage",kind:i.rows.kind,across:i.across.kind,link:i.link.name}}case"board":{let i=$(e,e.roles.x)??e.fields.find(c=>c.name==="x"),a=$(e,e.roles.y)??e.fields.find(c=>c.name==="y");if(!K(i)||!K(a))return h(`${e.plural} have no x and y to be laid out by`);let d=s.kinds.flatMap(c=>c.edges.filter(u=>u.to.includes(e.kind)&&c.kind!==e.kind))[0]??e.edges[0];return d?{lens:"board",kind:e.kind,x:i.name,y:a.name,fill:d.name,...d.from!==e.kind?{fillFrom:"occupant"}:{}}:h(`nothing is joined to ${e.plural} to fill them`)}case"plan":{let i=$(e,e.roles.outline)??e.fields.find(a=>a.name==="outline");return i?{lens:"plan",kind:e.kind,outline:i.name}:h(`${e.plural} have no outline to draw a plan from`)}case"blocks":{let i={lens:"blocks",kind:e.kind,as:/\bcards?\b/.test(t)?"card":"row"},a=/ group(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|sorted|with)|\s*$)/u.exec(t)?.[1]??(r&&!/ sort(?:ed)? by /.test(t)?r:void 0);if(a){let c=I(e,a);if(!c||c.type!=="enum")return h(c?`${e.plural}' ${c.words} is not a choice, so they cannot be grouped by it`:`${e.plural} have nothing called ${a} to group by`);i.group=c.name}let l=/ sort(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|grouped|with)|\s*$)/u.exec(t)?.[1];if(l){let c=I(e,l);if(!c)return h(`${e.plural} have nothing called ${l} to sort by`);i.sort={by:c.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}let d=q(e,t);return d.length>0&&(i.where=d),i}}}function q(n,e){let s=[],t=on(e);if(t){let o=n.fields.filter(R),r=$(n,n.roles.start),i=o.find(l=>A(e,l.words))??(R(r)?r:void 0)??o[0];(!i||!R(i))&&h(`no date field on ${n.plural}`);let a=n.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));s.push({expr:t.cond(i.name,/\boverdue\b|\blate\b|\bpast due\b/.test(e)?a?.name:void 0),says:t.says(i)})}if(/\bonly\b|\bjust\b|\bthat are\b|\bwhich are\b/.test(e)){for(let o of n.fields){if(o.type!=="enum")continue;let r=o.options?.find(i=>A(e,i.toLowerCase())||A(e,b(i)));r&&s.push({expr:`${o.name} == '${r.replace(/'/g,"")}'`,says:`that are ${b(r)}`})}if(/\bnot done\b|\bundone\b|\bunfinished\b|\bopen ones\b|\bstill to do\b/.test(e)){let o=n.fields.find(r=>r.type==="boolean"&&/^(done|finished|complete|completed)$/.test(r.name));o&&s.push({expr:`not ${o.name}`,says:`not ${o.words}`})}}return s}var J={columns:"A board",calendar:"A calendar",timeline:"A timeline",coverage:"A grid",board:"A layout",plan:"A plan",blocks:"A list",reach:"A picture"};function Rn(n,e){let s=e.info(n.kind),t=o=>o?$(s,o)?.words??b(o):"";switch(n.lens){case"columns":return{title:`${k(s.plural)} by ${t(n.column)}`,detail:`of ${s.plural} by ${t(n.column)}`};case"calendar":{let o=n.range??"month";if(o==="agenda")return{title:`${k(s.plural)} in date order`,detail:`of ${s.plural} in order of ${t(n.start)}`};let r=o==="years"?"year":o;return{title:`${k(s.plural)} by ${r}`,detail:`of ${s.plural} by ${t(n.start)}, a ${r} at a time`}}case"timeline":return{title:`${k(s.plural)} over the ${t(n.column)}`,detail:`of ${s.plural} from ${t(n.start)} to ${t(n.end)}, by ${t(n.column)}`};case"coverage":{let o=e.info(n.across);return{title:`${k(s.plural)} by ${o.noun}`,detail:`of which ${o.noun} covers which ${s.noun}`}}case"board":return{title:`${k(s.plural)} where they stand`,detail:`of ${s.plural} where they stand`};case"plan":return{title:`${k(s.plural)} on a plan`,detail:`of ${s.plural}`};default:{let o=[n.where?.map(r=>r.says).join(" and "),n.group?`by ${t(n.group)}`:void 0,n.sort?`in order of ${t(n.sort.by)}`:void 0].filter(r=>!!r);return{title:[k(s.plural),...o].join(" "),detail:[`of ${s.plural}`,...o].join(" ")}}}}function An(n,e){let s={title:e,on:n.kind};switch(n.lens){case"columns":return{name:"columns",...s,bindings:{[n.kind]:{column:n.column}}};case"calendar":return{name:"calendar",...s,bindings:{[n.kind]:{start:n.start,...n.end?{end:n.end}:{},...n.done?{done:n.done}:{}}},...n.range?{options:{range:n.range}}:{}};case"timeline":return{name:"timeline",...s,bindings:{[n.kind]:{start:n.start,end:n.end,column:n.column}}};case"coverage":return{name:"coverage",...s,bindings:{rows:{kind:n.kind},columns:{kind:n.across},link:{edge:n.link}}};case"board":return{name:"board",...s,bindings:{slots:{kind:n.kind},x:{field:n.x,on:"slots"},y:{field:n.y,on:"slots"},fill:{edge:n.fill}},...n.fillFrom?{options:{fillFrom:n.fillFrom}}:{}};case"plan":return{name:"plan",...s,bindings:{regions:{kind:n.kind},outline:{field:n.outline,on:"regions"}}};default:{let t=n.where?.length?` where ${n.where.map(r=>n.where.length>1?`(${r.expr})`:r.expr).join(" and ")}`:"",o={list:`all('${n.kind}')${t}`,as:n.as??"row"};return n.group&&(o.group=n.group),n.sort&&(o.sort=n.sort.direction?{by:n.sort.by,direction:n.sort.direction}:n.sort.by),o.empty="Nothing here yet.",{name:"blocks",...s,options:{blocks:[o]}}}}}function F(n,e){let{app:s}=e,t=r=>r.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,""),o=new Set(["home","overview",...Q(s,e.views?{views:e.views}:{}).map(r=>r.slug),...(s.lenses??[]).flatMap(r=>r.title?[t(r.title)]:[])]);if(!o.has(t(n)))return n;for(let r=2;;r++)if(!o.has(t(`${n} ${r}`)))return`${n} ${r}`}var en={title:[],headline:[],text:["tone"],figure:["as","currency","label"],list:["sort","limit","group","empty","as"],progress:["label"],group:["direction"],when:["show"],divider:[]};function Ln(n,e){if(!Array.isArray(e)||e.length===0)return"it has no blocks to draw";if(e.length>40)return"it has more blocks than a place draws";let s=(i,a)=>{if(typeof i!="string"||i.trim()==="")return`its ${a} says nothing`;try{return V(i)}catch(l){return`its ${a} does not read: ${l instanceof Error?l.message.replace(/ \(at character.*$/,""):String(l)}`}},t=i=>{if(i.t==="where")return t(i.set);if(i.t==="call"&&i.fn==="all"){let a=i.args[0];return a?.t==="lit"&&typeof a.value=="string"?n.info(a.value)??null:void 0}},o=(i,a)=>{switch(i.t){case"lit":return;case"ident":return a&&!a.fields.some(l=>l.name===i.name)&&!a.edges.some(l=>l.name===i.name)?`${a.plural} have nothing called ${i.name}`:void 0;case"member":return o(i.object,a);case"list":return i.items.map(l=>o(l,a)).find(Boolean);case"unary":return o(i.operand,a);case"binary":return o(i.left,a)??o(i.right,a);case"where":{let l=t(i.set);return l===null?"Nothing by that name here":o(i.set,a)??o(i.filter,l??void 0)}case"call":return i.fn==="all"?t(i)===null?"Nothing by that name here":void 0:i.args.map(l=>o(l,a)).find(Boolean)}},r=(i,a)=>{if(a>4)return"its blocks nest deeper than a place draws";for(let l of i){if(!w(l))return"a block is not an object";let d=Object.keys(en).find(g=>g in l);if(!d)return`"${Object.keys(l)[0]??""}" is not a block a place draws`;let c=Object.keys(l).find(g=>g!==d&&g!=="key"&&!en[d].includes(g));if(c)return`a ${d} block takes no "${c}"`;let u=l[d];if(d==="list"||d==="figure"||d==="when"){if(d==="figure"&&u===!0)continue;let g=s(u,d);if(typeof g=="string")return g;let m=o(g,void 0);if(m)return m;if(d==="list"){let f=t(g);if(f==null)return f===null?"Nothing by that name here":"its list does not say which records it lists, like all('task')";for(let y of["group","sort"]){let p=l[y],S=typeof p=="string"?p:w(p)&&typeof p.by=="string"?p.by:void 0;if(p===void 0)continue;let D=S?f.fields.find(un=>un.name===S):void 0;if(!D)return`${f.plural} have nothing called ${String(S??p)} to ${y} by`;if(y==="group"&&D.type!=="enum")return`${f.plural}' ${D.words} is not a choice, so they cannot be grouped by it`}}if(d==="when"){let f=l.show;if(!Array.isArray(f))return"a when block shows a list of blocks";let y=r(f,a+1);if(y)return y}}else if(d==="group"){if(!Array.isArray(u))return"a group block holds a list of blocks";let g=r(u,a+1);if(g)return g}else{if(d!=="divider"&&typeof u!="string")return`a ${d} block says words`;if(typeof u=="string")for(let g of u.matchAll(/\{([^{}]*)\}/g)){let m=g[1].split(/\|(?![|])/)[0],f=s(m,`${d}'s braces`);if(typeof f=="string")return f;let y=o(f,void 0);if(y)return y}}}};return r(e,1)}function E(n,e,s){let t=O(n.schema,s),o=f=>({ok:!1,failed:`Couldn't draw that: ${f.replace(/\.$/,"")}.`});if(!T(e.name)||e.name==="reach")return o(`"${String(e.name)}" is not a picture the seat can draw; it draws ${H.filter(f=>f!=="reach").join(", ")}`);if(typeof e.title!="string"||e.title.trim().length===0||e.title.length>80)return o("it needs a title of a few words");if(typeof e.on!="string"||!t.tryDefinition(e.on))return o("Nothing by that name here");let r=P[e.name],i=e.bindings??{};if(r.binds==="fields")for(let[f,y]of Object.entries(i)){if(!t.tryDefinition(f))return o("Nothing by that name here");let p=Object.keys(t.tryDefinition(f).fields?.shape??{});for(let[S,D]of Object.entries(y??{}))if(typeof D!="string"||!p.includes(D))return o(`${b(f)} has no field "${String(D)}" for its ${S}`);for(let S of r.requiredRoles)if(!(S in(y??{})))return o(`a ${e.name} needs ${b(f)}'s ${S}`)}else if(r.binds==="entities")for(let f of r.requiredRoles){let y=i[f];if(!y)return o(`a ${e.name} needs its ${f}`);if(typeof y.kind=="string"&&!t.tryDefinition(y.kind))return o("Nothing by that name here")}let a={...n,schema:t,lenses:[...n.lenses??[],e]},l=a.lenses.length-1,d=U(a),c=`lenses.${l}`,u=d.findings.find(f=>f.path===c||f.path.startsWith(`${c}.`));if(u)return o(u.message.replace(/^"[^"]*" /,"it "));let g=d.undrawn.find(f=>f.index===l);if(g)return o(g.why);let m=d.drawn.find(f=>f.index===l);if(!m)return o("its bindings name something the app does not have");if(m.as==="overview")return o(`"${e.title}" is the scene's own address; give it another title`);if(e.name==="blocks"){let f=Ln(j(t),e.options?.blocks);if(f)return o(f)}return{ok:!0,drawn:m}}function G(n){return{op:"add-lens",title:n.title,lens:n.name,on:n.on,...n.bindings?{bindings:n.bindings}:{},...n.options?{options:n.options}:{}}}function In(n){return{op:"remove-lens",title:n.title,on:n.on}}var w=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function ln(n){let e=w(n)?n:{},s=String(e.lens??e.name??""),t=e.bindings,o=typeof e.on=="string"?e.on:w(t)&&P[s]?.binds==="fields"?Object.keys(t)[0]??"":"";return{name:s,title:typeof e.title=="string"?e.title.trim():"",on:o,...w(t)?{bindings:t}:{},...w(e.options)?{options:e.options}:{}}}function On(n){let e=o=>w(n.bindings?.[o])?n.bindings[o]:{},s=o=>typeof o=="string"?o:void 0,t=e(n.on);switch(n.name){case"columns":return s(t.column)?{lens:"columns",kind:n.on,column:t.column}:void 0;case"calendar":{let o=s(n.options?.range);return s(t.start)?{lens:"calendar",kind:n.on,start:t.start,...s(t.end)?{end:t.end}:{},...s(t.done)?{done:t.done}:{},...o?{range:o}:{}}:void 0}case"timeline":return s(t.start)&&s(t.end)&&s(t.column)?{lens:"timeline",kind:n.on,start:t.start,end:t.end,column:t.column}:void 0;case"coverage":{let o=w(n.bindings?.columns)?s(n.bindings.columns.kind):void 0,r=w(n.bindings?.link)?s(n.bindings.link.edge):void 0;return o&&r?{lens:"coverage",kind:n.on,across:o,link:r}:void 0}case"blocks":{let o=n.options?.blocks;if(!Array.isArray(o)||o.length!==1||!w(o[0]))return;let r=o[0],i=new RegExp(`^all\\('${n.on}'\\)(?: where (.+))?$`).exec(String(r.list??""));if(!i)return;let a=r.sort;return{lens:"blocks",kind:n.on,as:r.as==="card"?"card":"row",...typeof r.group=="string"?{group:r.group}:{},...typeof a=="string"?{sort:{by:a}}:w(a)&&typeof a.by=="string"?{sort:{by:a.by,...a.direction==="desc"?{direction:"desc"}:{}}}:{},...i[1]?{where:[{expr:i[1],says:"as asked"}]}:{}}}default:return}}function M(n,e,s,t,o){let r=j(O(n.schema,t)).info(e.on),i=On(e);return{title:e.title,said:`${J[e.name]??"A picture"} of ${r?.plural??b(e.on)}.`,kind:e.on,lens:e,drawn:s,edit:G(e),by:o,asks:[],...i?{recipe:i}:{}}}function tn(n){return{title:n.title,said:n.said,lens:{title:n.lens.title,lens:n.lens.name,on:n.lens.on,...n.lens.bindings?{bindings:n.lens.bindings}:{},...n.lens.options?{options:n.lens.options}:{}},edit:n.edit,by:n.by,check:"It draws, and graview check would take it."}}function C(n,e,s,t,o){let r=Rn(n,e),i=n.title??o??F(r.title,s),a=An(n,i),l=E(s.app,a,s.sight);return l.ok?{title:i,said:`${J[n.lens]} ${r.detail}.`,kind:n.kind,lens:a,drawn:l.drawn,edit:G(a),by:"template",asks:t,recipe:n}:{failed:l.failed,...s.lastGood?{lastGood:s.lastGood}:{}}}function zn(n,e){let s=j(O(e.app.schema,e.sight)),t=s.info(n.kind);if(!t)return{failed:"Couldn't draw that: Nothing by that name here."};let o=n.lens==="blocks"&&!n.group&&!n.sort&&!n.where?.length&&n.title===void 0;return C(o?{...n,title:F(`Every ${t.noun}`,e)}:n,s,e,[])}function jn(n,e,s,t){if(s.length>0)return s;let o=i=>{switch(n){case"columns":return i.fields.some(a=>a.type==="enum");case"calendar":return i.fields.some(R);case"timeline":return an(i)!==void 0||i.fields.some(R);case"coverage":return i.edges.some(a=>a.to.some(l=>l!==i.kind));case"board":return i.fields.some(a=>a.name==="x")&&i.fields.some(a=>a.name==="y");case"plan":return i.fields.some(a=>a.name==="outline")||i.roles.outline!==void 0;default:return!0}};return[...e.kinds.filter(o)].sort((i,a)=>Number(a.fields.some(l=>A(t,l.words)))-Number(i.fields.some(l=>A(t,l.words))))}function xn(n,e){let s=j(O(e.app.schema,e.sight)),t=sn(n),o=Sn(t);if(o.length===0)return;let r=yn(t,s),i;for(let a of o){let l=a==="coverage"?[r[0]??s.kinds[0]].filter(d=>!!d):jn(a,s,r,t);for(let d of l)try{let c=dn(a,d,s,t,r),u=C(c,s,e,[n]);if(!x(u))return u;i??=u.failed}catch(c){if(!(c instanceof N))throw c;i??=`Couldn't draw that: ${c.message}.`}l.length===0&&r.length===0&&(i??=`Couldn't draw that: nothing here has what ${J[a].toLowerCase()} needs.`)}return{failed:i??"Couldn't draw that: Nothing by that name here.",...e.lastGood?{lastGood:e.lastGood}:{}}}async function Nn(n,e){let s=e.lastGood?{lastGood:e.lastGood}:{};if(n.trim().length===0)return{failed:"Say what you would like to see, like \u201Ca board of tasks by status\u201D.",...s};let t=xn(n,e);if(t&&!x(t))return t;if(!e.complete)return t??{failed:"Couldn't draw that: drawing freely needs AI, which isn't on here. Ask for a board, a calendar, a timeline, a list or who covers what.",...s};let o=await cn(n,e,void 0);return x(o)&&t?t:o}async function En(n,e,s){let t={lastGood:n},o={...s,lastGood:n},r=j(O(s.app.schema,s.sight)),i=sn(e),a=r.info(n.kind),l=[...n.asks,e];if(!a)return{failed:"Couldn't change that: Nothing by that name here.",...t};let d=n.recipe,c=/^ (?:call|name|title) (?:it|this)? ?(.+?) $/.exec(i)??/ (?:call|name) it (.+?) $/.exec(i);try{if(c){let m=e.replace(/^.*?\b(?:call|name|title)\b\s*(?:it|this)?\s*/i,"").replace(/^["“']|["”']$/g,"").trim();if(m.length===0)return{failed:"Couldn't change that: say what to call it.",...t};let f={...n.lens,title:F(m,s)},y=E(s.app,f,s.sight);return y.ok?{...n,title:f.title,lens:f,drawn:y.drawn,edit:G(f),asks:l,...d?{recipe:{...d,title:f.title}}:{}}:{failed:y.failed,...t}}let g=/ as (?:a |an )?(board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)\b/.exec(i);if(g){let m=g[1]==="board"||g[1]==="kanban"?"columns":g[1]==="calendar"?"calendar":g[1]==="timeline"?"timeline":g[1]==="grid"?"coverage":g[1]==="plan"?"plan":g[1]==="layout"?"board":"blocks",f=dn(m,a,r,i,[a]),y=g[1]==="cards"?"card":g[1]==="rows"?"row":void 0,p=m==="blocks"&&d?.lens==="blocks"?{...d,...y?{as:y}:{}}:m==="blocks"&&d?.lens==="columns"?{...f,group:d.column,...y?{as:y}:{}}:f;return C(v(p),r,o,l)}if(d){let m=Kn(d,a,r,i);if(m)return C(m,r,o,l)}}catch(g){if(!(g instanceof N))throw g;return{failed:`Couldn't change that: ${g.message}.`,...t}}if(!s.complete)return{failed:"Couldn't change that: changing it freely needs AI, which isn't on here. Try \u201Cgroup by status\u201D, \u201Conly this month\u201D or \u201Cas a calendar\u201D.",...t};let u=await cn(e,o,n);return x(u)?u:{...u,asks:l}}var v=n=>{let{title:e,...s}=n;return s};function Kn(n,e,s,t){let o=/ (?:group(?:ed)?|split|organi[sz]ed?|put them|columns) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1]??(/^ by /.test(t)?W(t):void 0);if(o){let d=I(e,o);if(d?.type==="enum")return n.lens==="blocks"?{...v(n),group:d.name}:{lens:"columns",kind:n.kind,column:d.name};let c=rn(e,o,s);return c?{lens:"coverage",kind:n.kind,across:c.to[0],link:c.name}:h(d?`${e.plural}' ${d.words} is not a choice, so they cannot be grouped by it`:`${e.plural} have nothing called ${o} to group by`)}let r=/ (?:sort(?:ed)?|order(?:ed)?) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1];if(r){let d=I(e,r);return d?{...n.lens==="blocks"?v(n):{lens:"blocks",kind:n.kind,as:"row",...n.lens==="columns"?{group:n.column}:{}},sort:{by:d.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}:h(`${e.plural} have nothing called ${r} to sort by`)}if(/\b(?:all of them|everything|show all|clear the filter|no filter|without the filter)\b/.test(t)){if(n.lens!=="blocks"||!n.where)return h("it already shows all of them");let{where:d,...c}=v(n);return c}let i=on(t);if(i&&n.lens==="calendar"&&i.range)return{...v(n),range:i.range};if(i&&n.lens==="calendar"&&!i.range)return{lens:"blocks",kind:n.kind,as:"row",sort:{by:n.start},where:q(e,t)};let a=q(e,t);if(a.length>0){let d=n.lens==="blocks"?v(n):{lens:"blocks",kind:n.kind,as:"row",...n.lens==="columns"?{group:n.column}:{}};return{...d,where:[...d.where??[],...a]}}let l=n.lens==="calendar"?_(t):void 0;if(l)return{...v(n),range:l}}function Cn(n){return n.kinds.map(e=>{let s=e.fields.map(r=>`${r.name} (${r.type??"value"}${r.options?`: ${r.options.join(" | ")}`:""})`).join(", "),t=e.edges.map(r=>`${r.name} \u2192 ${r.to.join(" | ")}`).join(", "),o=Object.entries(e.roles).map(([r,i])=>`${r}=${i}`).join(", ");return`- ${e.kind} ("${e.plural}"): ${s}${t?`; relations: ${t}`:""}${o?`; roles: ${o}`:""}`}).join(`
2
2
  `)}var Fn=['columns \u2014 a board, records in columns by one choice field: {"lens": "columns", "on": K, "bindings": {K: {"column": "<enum field>"}}}','calendar \u2014 records on a calendar by a date: {"lens": "calendar", "on": K, "bindings": {K: {"start": "<date field>", "end"?: "<date field>", "done"?: "<boolean field>"}}, "options": {"range"?: "day" | "week" | "month" | "quarter" | "year" | "agenda"}}','timeline \u2014 minutes of a day in columns: {"lens": "timeline", "on": K, "bindings": {K: {"start": "<number field>", "end": "<number field>", "column": "<enum field>"}}}','coverage \u2014 who covers what, a grid of two kinds joined by a relation: {"lens": "coverage", "on": K, "bindings": {"rows": {"kind": K}, "columns": {"kind": J}, "link": {"edge": "<relation of K to J>"}}}',`blocks \u2014 anything else, as blocks: {"lens": "blocks", "on": K, "options": {"blocks": [{"headline": "words"}, {"list": "all('K') where <condition>", "group"?: "<enum field>", "sort"?: "<field>" | {"by": "<field>", "direction": "desc"}, "as"?: "row" | "card", "empty"?: "words"}, {"figure": "count(all('K'))", "label": "words"}]}}. Conditions read a record's own fields: status == 'open', not done, days(today(), due) <= 7.`].join(`
3
3
  `);function Gn(n,e,s){return["You draw a view of an app's data as JSON \u2014 never code. The app's kinds, their fields (with types) and relations:",Cn(e),"","The lenses you may use (prefer the first four; use blocks only when none of them fits):",Fn,"",s?`The view on screen now:
4
4
  ${JSON.stringify(s.lens)}
@@ -1 +1 @@
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 re}from"./chunk.T6UJEXFL.js";import{p as De,q as te,t as G,u as Ie,y as oe}from"./chunk.3CLTABGP.js";import{m as Z,n as Ee,o as Te,p as ee,q as ne}from"./chunk.RD2FSSLV.js";import{b as xe}from"./chunk.TQ3MNB6K.js";import{b as Me,d as J,e as X,g as Ae,q as Pe}from"./chunk.RJ7VSWTA.js";import{b as ve}from"./chunk.P43LPXXJ.js";import{D as H,F as U,G as R,J as ye,Ma as Se,Na as be,Oa as I,Sa as $,T as we,Ua as Q,Y as E,ga as b,ha as V,ia as ke,m as me,v as he,z as ge}from"./chunk.JCKIJSW7.js";import{a as D}from"./chunk.SDO3U72B.js";import{Zd as fe,qa as q,ud as de,zd as pe}from"./chunk.6L6RUOSF.js";import{b as w}from"./chunk.AJZBJBMO.js";var x=w(R(),1),P=w(E(),1),ie=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.JCKIJSW7.js","./chunk.SDO3U72B.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.BWMPC7LK.js")))),Ne=ie.part(e=>(0,P.jsx)(e.HoverChipDoor,{}),{quiet:!0}),Re="A",K=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.KHRS2SKB.js","./chunk.T6PU3NKP.js","./chunk.U6V4KZF5.js","./chunk.6ZRVVRDQ.js","./chunk.JLNTE5CH.js","./chunk.DDSAFU3B.js","./chunk.4QMAYVPU.js","./chunk.ZONRIOIA.js","./chunk.NXHEOHRR.js","./chunk.HJCQ6I3S.js","./chunk.DJGZOPAS.js","./chunk.GFOZVQBQ.js","./chunk.5OS4SYHE.js","./chunk.G767NLBH.js","./chunk.MEAUTBVM.js","./chunk.OKHXXIMN.js","./chunk.NH3VXTGX.js","./chunk.6IMRCKB4.js","./chunk.RDUGUC7R.js","./chunk.TBY5IR7C.js","./chunk.PQTXM4VY.js","./chunk.BIDL7GQD.js","./chunk.7KX36ENH.js","./chunk.QDDDKEBH.js","./chunk.QKRQPUCE.js","./chunk.SPJ34VHA.js","./chunk.XOZU4OFA.js","./chunk.KBJ3UUER.js","./chunk.Q5WEOX3Q.js","./chunk.4O64QV2Y.js","./chunk.OYMN3IFX.js","./chunk.YFVJUHAK.js","./chunk.UQZ2P6KD.js","./chunk.NI4OPHTL.js","./chunk.U5KJQFAP.js","./chunk.FOHZPYUV.js","./chunk.IXYG65TM.js","./chunk.W6L2VAJG.js","./chunk.N3MXLORL.js","./chunk.3CLTABGP.js","./chunk.RD2FSSLV.js","./chunk.CVN2XFMF.js","./chunk.6TBQV3NO.js","./chunk.MT252WP4.js","./chunk.VVIQSFM4.js","./chunk.TQ3MNB6K.js","./chunk.VGYG2IBZ.js","./chunk.RJ7VSWTA.js","./chunk.P43LPXXJ.js","./chunk.JCKIJSW7.js","./chunk.SDO3U72B.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.VICBF3MQ.js"))));var We=K.part((e,n)=>(0,P.jsx)(e.InspectorPane,{...n}),{what:"This card's acts"});function He(e){let n=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},t=globalThis;if(t.requestIdleCallback){let u=t.requestIdleCallback(n,{timeout:5e3});return()=>t.cancelIdleCallback?.(u)}let r=setTimeout(n,2500);return()=>clearTimeout(r)}var Ge=150,Be="[data-graview-pick], [data-graview-view], [data-graview-record], [data-graview-act], [data-graview-field], a[href]";function ze(e){if(e.closest("[data-graview-face='pages'], [data-graview-popover]"))return null;let n=e.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??e.closest("[data-graview-view]")?.getAttribute("data-graview-view");return n?{face:"scene",on:n,about:[n]}:null}function Fe(e){let{store:n,principal:t,providers:r,ai:u}=b(),c=Ie(),p=U(u),o=(0,x.useRef)({aimAt:e,store:n,principal:t,providers:r,prepareSections:c,chipsOn:p});o.current={aimAt:e,store:n,principal:t,providers:r,prepareSections:c,chipsOn:p},(0,x.useEffect)(()=>{if(typeof document>"u")return;let s=null,g=null,k=null,d=v=>{let m=o.current,A=m.chipsOn?m.aimAt(v):null;A&&(k=v,ie.load().then(_=>{k===v&&_.restOn(A,v)},()=>{}))},h=()=>{s&&clearTimeout(s.timer),s=null},l=v=>{let m=o.current,A=m.aimAt(v);if(!A)return;let _=JSON.stringify([A.face,A.on,A.about,A.field,A.place,A.act,m.store.log.length]);_!==g&&(g=_,m.prepareSections(A),K.load().then(Oe=>Oe.prepareActs(m.store,A,{principal:m.principal,providers:m.providers}),()=>{}))},i=v=>v.target instanceof Element?v.target.closest(Be):null,f=v=>{if(v.pointerType==="touch")return;let m=i(v);m!==null&&m===s?.element||(h(),m!==null&&(s={element:m,timer:setTimeout(()=>{s=null,l(m),d(m)},Ge)}))},y=v=>{let m=v.relatedTarget;k!==null&&!(m instanceof Node&&k.contains(m))&&(k=null,ie.current?.leaveRest()),s!==null&&(m instanceof Node&&s.element.contains(m)||h())},S=v=>{if(v.pointerType==="mouse")return;let m=i(v);m&&l(m)},T=v=>{if(!Se())return;let m=i(v);m&&l(m)};return document.addEventListener("pointerover",f,{passive:!0}),document.addEventListener("pointerout",y,{passive:!0}),document.addEventListener("pointerdown",S,{capture:!0,passive:!0}),document.addEventListener("focusin",T),()=>{h(),document.removeEventListener("pointerover",f),document.removeEventListener("pointerout",y),document.removeEventListener("pointerdown",S,{capture:!0}),document.removeEventListener("focusin",T)}},[])}function dn({placement:e="float",openActs:n,aimAt:t}={}){let{menuAt:r,setMenuAt:u,registerActsDoor:c,ai:p}=b(),{selection:o}=$();Fe(t??ze),(0,x.useEffect)(()=>{if(K.current)return;let h=()=>{y(),K.prefetch()},l=()=>{},i=be(()=>void(l=He(h))),f=["pointerdown","keydown"];for(let S of f)document.addEventListener(S,h,{capture:!0,passive:!0});function y(){i(),l();for(let S of f)document.removeEventListener(S,h,{capture:!0})}return y},[]),(0,x.useEffect)(()=>{if(e==="menu")return c({key:Re,open:n??(h=>{let l=h.getBoundingClientRect(),i=h.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??h.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0;u({x:Math.round(l.left+Math.min(16,l.width/2)),y:Math.round(Math.min(l.bottom,l.top+36)),...i?{on:i}:{}})})}),()=>c(null)},[e,c,u,n]);let s=r!==null||o.length>0&&n===void 0,[g,k]=(0,x.useState)(s);(0,x.useEffect)(()=>{s&&k(!0)},[s]);let d=U(p)?(0,P.jsx)(x.Suspense,{fallback:null,children:(0,P.jsx)(Ne,{})}):null;return!g&&!s?d:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(x.Suspense,{fallback:null,children:(0,P.jsx)(We,{placement:e,chosen:n===void 0})}),d]})}var j=w(R(),1),Y=w(E(),1),_e=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.KHRS2SKB.js","./chunk.T6PU3NKP.js","./chunk.U6V4KZF5.js","./chunk.6ZRVVRDQ.js","./chunk.MM7MLBGB.js","./chunk.V5JB5UJS.js","./chunk.EHLV3LND.js","./chunk.EPSYX2SF.js","./chunk.JLNTE5CH.js","./chunk.DDSAFU3B.js","./chunk.EOSN5DWW.js","./chunk.T6UJEXFL.js","./chunk.7THS3DLZ.js","./chunk.4QMAYVPU.js","./chunk.ARGEGV5T.js","./chunk.WS5ORRGS.js","./chunk.ZONRIOIA.js","./chunk.NXHEOHRR.js","./chunk.HJCQ6I3S.js","./chunk.DJGZOPAS.js","./chunk.GFOZVQBQ.js","./chunk.MQNW3O67.js","./chunk.67S2UWBT.js","./chunk.7PWLRRUS.js","./chunk.25VJPUDH.js","./chunk.G767NLBH.js","./chunk.MEAUTBVM.js","./chunk.OKHXXIMN.js","./chunk.NH3VXTGX.js","./chunk.6IMRCKB4.js","./chunk.RDUGUC7R.js","./chunk.TBY5IR7C.js","./chunk.PQTXM4VY.js","./chunk.BIDL7GQD.js","./chunk.7KX36ENH.js","./chunk.QDDDKEBH.js","./chunk.QKRQPUCE.js","./chunk.SPJ34VHA.js","./chunk.XOZU4OFA.js","./chunk.KBJ3UUER.js","./chunk.Q5WEOX3Q.js","./chunk.4O64QV2Y.js","./chunk.OYMN3IFX.js","./chunk.YFVJUHAK.js","./chunk.UQZ2P6KD.js","./chunk.WVUJXDXZ.js","./chunk.NI4OPHTL.js","./chunk.U5KJQFAP.js","./chunk.FOHZPYUV.js","./chunk.IXYG65TM.js","./chunk.W6L2VAJG.js","./chunk.N3MXLORL.js","./chunk.MIE4TJRW.js","./chunk.3CLTABGP.js","./chunk.RD2FSSLV.js","./chunk.CVN2XFMF.js","./chunk.6TBQV3NO.js","./chunk.MT252WP4.js","./chunk.VVIQSFM4.js","./chunk.TQ3MNB6K.js","./chunk.VGYG2IBZ.js","./chunk.RJ7VSWTA.js","./chunk.P43LPXXJ.js","./chunk.JCKIJSW7.js","./chunk.SDO3U72B.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.VUDNQOOX.js")))),qe=_e.part((e,n)=>{let t=e.DraftFrame;return(0,Y.jsx)(t,{...n})},{what:"The view"});function hn(e){let{seatTalk:n}=b();return(0,j.useSyncExternalStore)(n.subscribe,()=>n.get().draft!==null,()=>!1)?(0,Y.jsx)(j.Suspense,{fallback:null,children:(0,Y.jsx)(qe,{...e})}):null}var L=w(R(),1),C=w(E(),1),se=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.NXHEOHRR.js","./chunk.4LWWXIM4.js","./chunk.HXRHEPPJ.js","./chunk.QNWGDG2Z.js","./chunk.BJUUSIQY.js","./chunk.QDDDKEBH.js","./chunk.F7KVEWFH.js","./chunk.QKRQPUCE.js","./chunk.SPJ34VHA.js","./chunk.XOZU4OFA.js","./chunk.KBJ3UUER.js","./chunk.U5KJQFAP.js","./chunk.6TBQV3NO.js","./chunk.MT252WP4.js","./chunk.VVIQSFM4.js","./chunk.TQ3MNB6K.js","./chunk.VGYG2IBZ.js","./chunk.RJ7VSWTA.js","./chunk.P43LPXXJ.js","./chunk.JCKIJSW7.js","./chunk.SDO3U72B.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.7TACFS7Q.js")))),Ve=se.part((e,n)=>{let t=e.QuickAskCard;return(0,C.jsx)(t,{...n})},{what:"The quick ask"});function Sn({face:e,on:n=!0}){let{ai:t,aiDesk:r,selection:u,view:c}=b(),p=we()?.open??!1,o=n&&H(t)&&!p,s=Ae(r),g=(0,L.useRef)(null),k=(0,L.useRef)({selection:u,place:c.within?.view});return k.current={selection:u,place:c.within?.view},(0,L.useEffect)(()=>{if(!o)return;let d=Me(r);return d.drawn+=1,d.preload=()=>{se.load().catch(()=>{}),(__graviewPreload(import.meta.url,["./chunk.QNWGDG2Z.js","./chunk.BJUUSIQY.js","./chunk.U5KJQFAP.js","./chunk.VGYG2IBZ.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.HPFEYMGP.js")).catch(()=>{})},J(d),()=>{d.drawn=Math.max(0,d.drawn-1),d.drawn===0&&(d.open=null),J(d)}},[o,r]),(0,L.useEffect)(()=>{if(!o)return;let d=h=>{if(h.defaultPrevented||h.key.toLowerCase()!=="k"||!(h.metaKey||h.ctrlKey)||h.altKey||h.shiftKey)return;let l=g.current?.closest("[data-graview-embed]"),i=h.target,f=!(i instanceof Node)||i===document.body||i===document.documentElement;if(l&&!(f||i instanceof Node&&l.contains(i)))return;h.preventDefault(),se.prefetch();let y=document.activeElement,{selection:S,place:T}=k.current;X(r,{pointed:{...S[0]!==void 0?{on:S[0]}:{},about:S,...T?{place:T}:{}},returnTo:y instanceof HTMLElement&&y!==document.body?y:null})};return window.addEventListener("keydown",d,!0),()=>window.removeEventListener("keydown",d,!0)},[o,r]),o?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("span",{ref:g,hidden:!0,"data-graview-quick-ask":e}),s?(0,C.jsx)(L.Suspense,{fallback:null,children:(0,C.jsx)(Ve,{face:e,opening:s,close:()=>X(r,null)},s.at)}):null]}):null}var B=w(R(),1),O=w(E(),1),ae=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.4LWWXIM4.js","./chunk.HXRHEPPJ.js","./chunk.QNWGDG2Z.js","./chunk.BJUUSIQY.js","./chunk.QDDDKEBH.js","./chunk.F7KVEWFH.js","./chunk.QKRQPUCE.js","./chunk.SPJ34VHA.js","./chunk.XOZU4OFA.js","./chunk.KBJ3UUER.js","./chunk.U5KJQFAP.js","./chunk.6TBQV3NO.js","./chunk.MT252WP4.js","./chunk.VVIQSFM4.js","./chunk.TQ3MNB6K.js","./chunk.VGYG2IBZ.js","./chunk.RJ7VSWTA.js","./chunk.P43LPXXJ.js","./chunk.JCKIJSW7.js","./chunk.SDO3U72B.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.HLKDYI6J.js")))),$e=ae.part((e,n)=>{let t=e.InlineAiMenu;return(0,O.jsx)(t,{...n})},{what:"The AI's suggestions"}),Qe=ae.part((e,n)=>{let t=e.GhostTray;return(0,O.jsx)(t,{...n})},{quiet:!0});function Ke(){let{ai:e}=b(),n=H(e);return(0,B.useMemo)(()=>n?t=>({id:"inline-ai",heading:"AI",render:r=>(0,O.jsx)(B.Suspense,{fallback:null,children:(0,O.jsx)($e,{target:t,close:r})}),prepare:()=>ae.prefetch()}):null,[n])}var Ye=[];function xn({children:e}){let n=Ke(),t=(0,B.useMemo)(()=>n?[n]:Ye,[n]);return(0,O.jsx)(G,{sections:t,children:e})}function Dn(e){let{ai:n,aiDesk:t}=b(),{ghost:r}=ye(t);return r===null||r.onCard||n.off?null:(0,O.jsx)(B.Suspense,{fallback:null,children:(0,O.jsx)(Qe,{...e})})}var W=w(R(),1);var Le=w(E(),1),Ue=e=>globalThis[Symbol.for("graview.shown-lists")]?.get(e),Ce=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.RJ7VSWTA.js","./chunk.P43LPXXJ.js","./chunk.JCKIJSW7.js","./chunk.SDO3U72B.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.CGRX6SDE.js"))));function Je(e){let n=e.about[0];if(e.about.length!==1||!n?.startsWith("aggregate:"))return;let t=n.slice(10).split("+");return t.length===1?t[0]:void 0}function Xe(e,n){return e.filter(t=>t.as!==n.as&&!t.hidden&&(t.kind===n.kind||t.over?.includes(n.kind)===!0)).at(-1)}function Ze(e){let n=V(),t=n?.keptViews,r=n?.views,u=(0,W.useContext)(Pe);return(0,W.useMemo)(()=>r?c=>{let p=t?.current(),o=Je(c),s=l=>l.length>0?{id:"tidy-view",items:l,prepare:()=>Ce.prefetch()}:null,g=(l,...i)=>Ce.load().then(f=>f[l](...i),()=>!1),k=(l,i)=>Ue(l)?.().menu(i,t,u)??[];if(c.place===void 0){if(c.face!=="pages"||o===void 0||c.on!==void 0)return null;let l=p?.may.lenses===!0&&t?.lens!==void 0,i=q(n.store.schema,o),f=r.arrangement?.()?.hide?.includes(o)===!0;return s([...l?[{id:f?"show-list":"hide-list",label:f?"Show":"Hide",hint:f?"Back in the places, for everyone":"Off the places, for everyone; still at its address",run:()=>void g("setListHidden",o,i,t,!f,u)}]:[],...k(`list:${o}`,l)])}let d=r.places().find(l=>l.as===c.place&&(o===void 0||l.kind===o||l.over?.includes(o)===!0));if(!d)return null;let h=t&&p?fe(d,p,t):null;return s([...h?[d.hidden?{id:"show-view",label:"Show",hint:"Back in the places, for everyone",run:()=>void g("setHidden",d,h,t,!1,u)}:{id:"hide-view",label:"Hide",hint:"Off the places and the scene, for everyone",run:()=>void g("setHidden",d,h,t,!0,u)},{id:"delete-view",label:"Delete",hint:`Kept ${30} days under Recently deleted`,run:()=>{let l=Xe(r.places(),d);g("remove",d,h,t,u).then(i=>i&&e?.(d,l))}}]:[],...k(`place:${d.as}`,h==="lens")])}:null,[t,r,u,e])}var en=[];function Wn({children:e}){let{view:n,go:t}=Q(),r=(0,W.useCallback)((p,o)=>{let s=n.within?.view;n.focusId===he(p.kind)&&(s===void 0||s===p.as)&&t(o?ge(n,o.kind,o.as):me(n,!0))},[n,t]),u=Ze(r),c=(0,W.useMemo)(()=>u?[u]:en,[u]);return(0,Le.jsx)(G,{sections:c,children:e})}var M=w(R(),1),ue=w(E(),1),N,ce=new Set,le=e=>(ce.add(e),()=>void ce.delete(e)),z=()=>(__graviewPreload(import.meta.url,["./chunk.LQ5J6YQW.js","./chunk.DOJCYXIJ.js","./chunk.W332P5T3.js","./chunk.PGT4ZQDG.js","./chunk.ZONRIOIA.js","./chunk.NXHEOHRR.js","./chunk.TBY5IR7C.js","./chunk.BIDL7GQD.js","./chunk.HXRHEPPJ.js","./chunk.QNWGDG2Z.js","./chunk.BJUUSIQY.js","./chunk.SPJ34VHA.js","./chunk.XOZU4OFA.js","./chunk.KBJ3UUER.js","./chunk.Q5WEOX3Q.js","./chunk.4O64QV2Y.js","./chunk.OYMN3IFX.js","./chunk.U5KJQFAP.js","./chunk.FOHZPYUV.js","./chunk.IXYG65TM.js","./chunk.W6L2VAJG.js","./chunk.N3MXLORL.js","./chunk.MIE4TJRW.js","./chunk.3CLTABGP.js","./chunk.RD2FSSLV.js","./chunk.CVN2XFMF.js","./chunk.6TBQV3NO.js","./chunk.MT252WP4.js","./chunk.VVIQSFM4.js","./chunk.TQ3MNB6K.js","./chunk.VGYG2IBZ.js","./chunk.RJ7VSWTA.js","./chunk.P43LPXXJ.js","./chunk.JCKIJSW7.js","./chunk.SDO3U72B.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.7MDGPTYF.js")).then(e=>{N=e,ce.forEach(n=>n())});function nn(){let e=b(),{ai:n,keptViews:t,onProposeChange:r,composeChange:u}=e,c=(0,M.useRef)(e);c.current=e;let p=r!==void 0&&u!==void 0||typeof t?.fork=="function",o=H(n)&&(typeof t?.revise=="function"||p);o&&oe(z);let s=(0,M.useSyncExternalStore)(le,()=>N!==void 0,()=>!1);return(0,M.useMemo)(()=>o?g=>g.section||g.page||g.face==="scene"&&p&&(g.on!==void 0||g.place!==void 0||g.about.length===1)?N?N.sectionFor(g,c.current):(z(),null):null:null,[o,p,s])}function Fn(e,n){let t=b(),r=(0,M.useRef)(t);r.current=t;let u=(0,M.useRef)(e);u.current=e;let c=(0,M.useRef)(n);c.current=n;let p=t.onProposeChange!==void 0&&t.composeChange!==void 0;p&&oe(z);let o=(0,M.useSyncExternalStore)(le,()=>N!==void 0,()=>!1);return(0,M.useMemo)(()=>p?s=>!s.page||s.face!=="pages"?null:N?N.displayOptionsSection(s,r.current,u.current,c.current):(z(),null):null,[p,o])}var tn=[];function _n({children:e}){let n=nn(),t=(0,M.useMemo)(()=>n?[n]:tn,[n]);return(0,ue.jsx)(G,{sections:t,children:e})}function qn(){let e=(0,M.useSyncExternalStore)(le,()=>N?.SectionDoor,()=>{});return(0,M.useEffect)(()=>{try{sessionStorage.getItem("graview.better.from-scene")&&z()}catch{}},[]),e?(0,ue.jsx)(e,{}):null}function Kn(e={}){return e.scope===void 0?re:ve(re,e.scope)}var F=w(R(),1),a=w(E(),1);function et({inside:e=!1,widthOf:n}={}){let{store:t,view:r,emphasis:u,setEmphasis:c}=b(),p=De(),{selection:o,set:s}=$(),{show:g}=Q(),k=ke(),d=(0,F.useMemo)(()=>{let i=new Map;for(let f of t.graph.allEdges()){let y=i.get(f.kind)??{count:0,ends:new Set};y.count+=1;for(let S of[f.from,f.to]){let T=t.graph.getNode(S);T&&y.ends.add(`kind:${T.kind}`)}i.set(f.kind,y)}return[...i.entries()].sort(([f],[y])=>f.localeCompare(y)).map(([f,y])=>({kind:f,count:y.count,ends:[...y.ends]}))},[t,k]),h=Math.max(0,...d.map(i=>i.count));if((0,F.useEffect)(()=>()=>c(null),[c]),!r.overview&&!e||d.length===0)return null;let l=new Set;for(let i of o){if(i.startsWith("kind:")){l.add(i);continue}let f=t.graph.getNode(i);f&&l.add(`kind:${f.kind}`)}return(0,a.jsxs)("section",{"aria-label":"What the lines mean",role:e?"group":void 0,"data-testid":"relation-key",style:e?{display:"grid",gap:1}:{position:"absolute",left:16,top:14,zIndex:pe("rail"),display:"grid",gap:1,padding:"8px 10px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",maxWidth:on,animation:"graview-settle 380ms 280ms ease backwards"},children:[e?null:(0,a.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",paddingBottom:2},children:d.length===1?"1 relation":`${d.length} relations`}),n?(0,a.jsx)(sn,{aloft:r.overview===!0}):null,d.map(({kind:i,count:f,ends:y})=>{let{connector:S,style:T}=te(p,i),v=rn(t.schema,i),m=u!==null?u===i:l.size===0||y.some(A=>l.has(A));return(0,a.jsxs)("button",{type:"button",title:t.schema.edge(i)?.description===void 0?`${f} of these`:v.words,onMouseEnter:()=>c(i),onMouseLeave:()=>c(null),onFocus:()=>c(i),onBlur:()=>c(null),onClick:()=>{s(y),g(null)},style:{all:"unset",outline:"revert-layer",cursor:"pointer",display:"grid",gridTemplateColumns:"30px 1fr auto",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px",borderRadius:6,opacity:m?1:.4},children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",style:{display:"block",opacity:S.visible?1:.35},children:r.overview&&n?(0,a.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",className:"graview-key-ribbon",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:n(f,h)}):(0,a.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",stroke:ee(T),strokeWidth:ne(T,!0),strokeDasharray:Z[T.pattern],strokeLinecap:"round"})}),(0,a.jsxs)("span",{style:{display:"grid",minWidth:0},"data-graview-relation-words":i,children:[(0,a.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink)"},children:v.words}),(0,a.jsx)("span",{style:{fontSize:"0.6875rem",color:"var(--graview-ink-faint)"},children:v.ends})]}),S.visible?null:(0,a.jsx)("span",{"data-graview-quiet":i,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontStyle:"italic"},children:"not drawn"}),(0,a.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},children:f})]},i)})]})}var on="min(280px, calc(100% - 28px))";function rn(e,n,t){let r=e.edge(n)?.from??[],u=new Map;for(let o of t!==void 0&&r.includes(t)?[t]:r.length>0?r:[""]){let s=xe(e,o,n,"out");u.set(s,[...u.get(s)??[],o])}let c=o=>o==="*"?"anything":q(e,o),p=[...u].map(([o,s])=>{let g=s.flatMap(d=>e.tryDefinition(d)?.edges[n]?.to??[]),k=s[0]&&g.length>0?`${s.map(c).join(", ")} \u2192 ${(g.includes("*")?["*"]:[...new Set(g)]).map(c).join(", ")}`:"";return[o.charAt(0).toUpperCase()+o.slice(1),k]});return{words:p.map(([o])=>o).join(" \xB7 "),ends:p.flatMap(([,o])=>o?[o]:[]).join(" \xB7 ")}}function nt({edgeKind:e,kit:n,width:t=30}){let r=V(),u=(0,F.useMemo)(()=>de(n??r?.brand?.kit),[n,r?.brand?.kit]),{connector:c,style:p}=te(u,e);return(0,a.jsx)("svg",{width:t,height:"8","aria-hidden":"true","data-testid":"relation-mark","data-graview-relation":e,style:{display:"inline-block",verticalAlign:"middle",opacity:c.visible?1:.35},children:(0,a.jsx)("path",{d:`M 1 4 L ${t-1} 4`,fill:"none",stroke:ee(p),strokeWidth:ne(p,!0),strokeDasharray:Z[p.pattern],strokeLinecap:"round"})})}function sn({aloft:e}){let n={display:"grid",gridTemplateColumns:"30px 1fr",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px"},t={fontSize:"0.75rem",color:"var(--graview-ink-muted)"};return(0,a.jsxs)("div",{role:"group","aria-label":"The lines","data-testid":"line-manners",style:{display:"grid",gap:1,paddingBottom:6,marginBottom:4,borderBottom:"1px solid var(--graview-edge)"},children:[e?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{style:n,"data-graview-manner":"ribbon",children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:6})}),(0,a.jsx)("span",{style:t,children:"A relation between two districts, as wide as the links along it \u2014 point at one for its words"})]}),(0,a.jsxs)("div",{style:n,"data-graview-manner":"record",children:[(0,a.jsxs)("svg",{width:"30",height:"10","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M 1 5 L 25 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeLinecap:"round"}),(0,a.jsx)("circle",{cx:26,cy:5,r:3,fill:"var(--graview-accent)"})]}),(0,a.jsx)("span",{style:t,children:"A chosen record's link to another record, labeled with the relation"})]}),(0,a.jsxs)("div",{style:n,"data-graview-manner":"district",children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeDasharray:"5 4"})}),(0,a.jsx)("span",{style:t,children:"A chosen record's links into a district, with how many"})]})]}):null,(0,a.jsxs)("div",{style:n,"data-graview-manner":"unsure",children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeOpacity:Te,strokeWidth:1.8,strokeDasharray:Ee,strokeLinecap:"round"})}),(0,a.jsx)("span",{style:t,children:"Unsure: a link its maker was less than sure of, until a person keeps it \u2014 point at its words for what it was based on"})]})]})}export{dn as a,hn as b,Sn as c,et as d,on as e,nt as f,Ke as g,xn as h,Dn as i,Ze as j,Wn as k,nn as l,Fn as m,_n as n,qn as o,Kn as p};
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 re}from"./chunk.YF5GCOSZ.js";import{p as De,q as te,t as G,u as Ie,y as oe}from"./chunk.DEBW4FH6.js";import{m as Z,n as Ee,o as Te,p as ee,q as ne}from"./chunk.RD2FSSLV.js";import{b as xe}from"./chunk.45OLF6BK.js";import{b as Me,d as J,e as X,g as Ae,q as Pe}from"./chunk.GH6QX7JR.js";import{b as ve}from"./chunk.J4D4BIB4.js";import{D as H,F as U,G as R,J as ye,Oa as Se,Pa as be,Qa as I,T as we,Ua as $,Wa as Q,_ as E,ia as b,ja as V,ka as ke,m as me,v as he,z as ge}from"./chunk.ASNVH2G4.js";import{a as D}from"./chunk.SDO3U72B.js";import{Zd as fe,qa as q,ud as de,zd as pe}from"./chunk.ZDUKVXBI.js";import{b as w}from"./chunk.AJZBJBMO.js";var x=w(R(),1),P=w(E(),1),ie=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.E6QZUT4L.js")))),Ne=ie.part(e=>(0,P.jsx)(e.HoverChipDoor,{}),{quiet:!0}),Re="A",K=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.KHRS2SKB.js","./chunk.T6PU3NKP.js","./chunk.YRC6PKXP.js","./chunk.JOB3EKS6.js","./chunk.HIIYDKFC.js","./chunk.GYP3EF6Z.js","./chunk.WAPY4RCS.js","./chunk.JMXBMLKH.js","./chunk.PVAYYFT2.js","./chunk.HJCQ6I3S.js","./chunk.QNFX5VHW.js","./chunk.UXW43HNW.js","./chunk.5OS4SYHE.js","./chunk.OXDCGGZV.js","./chunk.2TTKQAWQ.js","./chunk.CJHCUHVN.js","./chunk.MFNWHXGL.js","./chunk.DCIYOZYP.js","./chunk.7QGDWAHH.js","./chunk.TBY5IR7C.js","./chunk.JP33TNCH.js","./chunk.BIDL7GQD.js","./chunk.O5P6LXHF.js","./chunk.VGQDPEB5.js","./chunk.WIVNFOQR.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.Q5WEOX3Q.js","./chunk.7DCBIMOI.js","./chunk.GXK5PI7I.js","./chunk.YFVJUHAK.js","./chunk.DYPSFTRP.js","./chunk.J7GH2CGV.js","./chunk.SMF5S4DQ.js","./chunk.XP4IVKKR.js","./chunk.R5YGW5ZX.js","./chunk.QMGBAKX6.js","./chunk.PS765ODQ.js","./chunk.DEBW4FH6.js","./chunk.RD2FSSLV.js","./chunk.OWHH7JDV.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.TWXYI5AP.js"))));var We=K.part((e,n)=>(0,P.jsx)(e.InspectorPane,{...n}),{what:"This card's acts"});function He(e){let n=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},t=globalThis;if(t.requestIdleCallback){let u=t.requestIdleCallback(n,{timeout:5e3});return()=>t.cancelIdleCallback?.(u)}let r=setTimeout(n,2500);return()=>clearTimeout(r)}var Ge=150,Be="[data-graview-pick], [data-graview-view], [data-graview-record], [data-graview-act], [data-graview-field], a[href]";function ze(e){if(e.closest("[data-graview-face='pages'], [data-graview-popover]"))return null;let n=e.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??e.closest("[data-graview-view]")?.getAttribute("data-graview-view");return n?{face:"scene",on:n,about:[n]}:null}function Fe(e){let{store:n,principal:t,providers:r,ai:u}=b(),c=Ie(),p=U(u),o=(0,x.useRef)({aimAt:e,store:n,principal:t,providers:r,prepareSections:c,chipsOn:p});o.current={aimAt:e,store:n,principal:t,providers:r,prepareSections:c,chipsOn:p},(0,x.useEffect)(()=>{if(typeof document>"u")return;let s=null,g=null,k=null,d=v=>{let m=o.current,A=m.chipsOn?m.aimAt(v):null;A&&(k=v,ie.load().then(_=>{k===v&&_.restOn(A,v)},()=>{}))},h=()=>{s&&clearTimeout(s.timer),s=null},l=v=>{let m=o.current,A=m.aimAt(v);if(!A)return;let _=JSON.stringify([A.face,A.on,A.about,A.field,A.place,A.act,m.store.log.length]);_!==g&&(g=_,m.prepareSections(A),K.load().then(Oe=>Oe.prepareActs(m.store,A,{principal:m.principal,providers:m.providers}),()=>{}))},i=v=>v.target instanceof Element?v.target.closest(Be):null,f=v=>{if(v.pointerType==="touch")return;let m=i(v);m!==null&&m===s?.element||(h(),m!==null&&(s={element:m,timer:setTimeout(()=>{s=null,l(m),d(m)},Ge)}))},y=v=>{let m=v.relatedTarget;k!==null&&!(m instanceof Node&&k.contains(m))&&(k=null,ie.current?.leaveRest()),s!==null&&(m instanceof Node&&s.element.contains(m)||h())},S=v=>{if(v.pointerType==="mouse")return;let m=i(v);m&&l(m)},T=v=>{if(!Se())return;let m=i(v);m&&l(m)};return document.addEventListener("pointerover",f,{passive:!0}),document.addEventListener("pointerout",y,{passive:!0}),document.addEventListener("pointerdown",S,{capture:!0,passive:!0}),document.addEventListener("focusin",T),()=>{h(),document.removeEventListener("pointerover",f),document.removeEventListener("pointerout",y),document.removeEventListener("pointerdown",S,{capture:!0}),document.removeEventListener("focusin",T)}},[])}function dn({placement:e="float",openActs:n,aimAt:t}={}){let{menuAt:r,setMenuAt:u,registerActsDoor:c,ai:p}=b(),{selection:o}=$();Fe(t??ze),(0,x.useEffect)(()=>{if(K.current)return;let h=()=>{y(),K.prefetch()},l=()=>{},i=be(()=>void(l=He(h))),f=["pointerdown","keydown"];for(let S of f)document.addEventListener(S,h,{capture:!0,passive:!0});function y(){i(),l();for(let S of f)document.removeEventListener(S,h,{capture:!0})}return y},[]),(0,x.useEffect)(()=>{if(e==="menu")return c({key:Re,open:n??(h=>{let l=h.getBoundingClientRect(),i=h.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??h.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0;u({x:Math.round(l.left+Math.min(16,l.width/2)),y:Math.round(Math.min(l.bottom,l.top+36)),...i?{on:i}:{}})})}),()=>c(null)},[e,c,u,n]);let s=r!==null||o.length>0&&n===void 0,[g,k]=(0,x.useState)(s);(0,x.useEffect)(()=>{s&&k(!0)},[s]);let d=U(p)?(0,P.jsx)(x.Suspense,{fallback:null,children:(0,P.jsx)(Ne,{})}):null;return!g&&!s?d:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(x.Suspense,{fallback:null,children:(0,P.jsx)(We,{placement:e,chosen:n===void 0})}),d]})}var j=w(R(),1),Y=w(E(),1),_e=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.KHRS2SKB.js","./chunk.T6PU3NKP.js","./chunk.YRC6PKXP.js","./chunk.JOB3EKS6.js","./chunk.V4GSVXSV.js","./chunk.L6BLZJ6K.js","./chunk.VNI6HZEF.js","./chunk.THLT6NVO.js","./chunk.HIIYDKFC.js","./chunk.GYP3EF6Z.js","./chunk.KMFH26SS.js","./chunk.YF5GCOSZ.js","./chunk.F2BZ4SC4.js","./chunk.WAPY4RCS.js","./chunk.JJSZLCNU.js","./chunk.JKX4J3KG.js","./chunk.JMXBMLKH.js","./chunk.PVAYYFT2.js","./chunk.HJCQ6I3S.js","./chunk.QNFX5VHW.js","./chunk.UXW43HNW.js","./chunk.LG2BQ5LB.js","./chunk.L3ST2YKI.js","./chunk.7VCYVCYM.js","./chunk.25VJPUDH.js","./chunk.OXDCGGZV.js","./chunk.2TTKQAWQ.js","./chunk.CJHCUHVN.js","./chunk.MFNWHXGL.js","./chunk.DCIYOZYP.js","./chunk.7QGDWAHH.js","./chunk.TBY5IR7C.js","./chunk.JP33TNCH.js","./chunk.BIDL7GQD.js","./chunk.O5P6LXHF.js","./chunk.VGQDPEB5.js","./chunk.WIVNFOQR.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.Q5WEOX3Q.js","./chunk.7DCBIMOI.js","./chunk.GXK5PI7I.js","./chunk.YFVJUHAK.js","./chunk.DYPSFTRP.js","./chunk.WVUJXDXZ.js","./chunk.J7GH2CGV.js","./chunk.SMF5S4DQ.js","./chunk.XP4IVKKR.js","./chunk.R5YGW5ZX.js","./chunk.QMGBAKX6.js","./chunk.PS765ODQ.js","./chunk.MIE4TJRW.js","./chunk.DEBW4FH6.js","./chunk.RD2FSSLV.js","./chunk.OWHH7JDV.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.FCV3NX6L.js")))),qe=_e.part((e,n)=>{let t=e.DraftFrame;return(0,Y.jsx)(t,{...n})},{what:"The view"});function hn(e){let{seatTalk:n}=b();return(0,j.useSyncExternalStore)(n.subscribe,()=>n.get().draft!==null,()=>!1)?(0,Y.jsx)(j.Suspense,{fallback:null,children:(0,Y.jsx)(qe,{...e})}):null}var L=w(R(),1),C=w(E(),1),se=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.PVAYYFT2.js","./chunk.GMHBAS45.js","./chunk.4VX7GPFS.js","./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.VGQDPEB5.js","./chunk.6YKKZI4H.js","./chunk.WIVNFOQR.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.SMF5S4DQ.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.S7U2CHHG.js")))),Ve=se.part((e,n)=>{let t=e.QuickAskCard;return(0,C.jsx)(t,{...n})},{what:"The quick ask"});function Sn({face:e,on:n=!0}){let{ai:t,aiDesk:r,selection:u,view:c}=b(),p=we()?.open??!1,o=n&&H(t)&&!p,s=Ae(r),g=(0,L.useRef)(null),k=(0,L.useRef)({selection:u,place:c.within?.view});return k.current={selection:u,place:c.within?.view},(0,L.useEffect)(()=>{if(!o)return;let d=Me(r);return d.drawn+=1,d.preload=()=>{se.load().catch(()=>{}),(__graviewPreload(import.meta.url,["./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.SMF5S4DQ.js","./chunk.T6ISUVUP.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.OG6FEP3K.js")).catch(()=>{})},J(d),()=>{d.drawn=Math.max(0,d.drawn-1),d.drawn===0&&(d.open=null),J(d)}},[o,r]),(0,L.useEffect)(()=>{if(!o)return;let d=h=>{if(h.defaultPrevented||h.key.toLowerCase()!=="k"||!(h.metaKey||h.ctrlKey)||h.altKey||h.shiftKey)return;let l=g.current?.closest("[data-graview-embed]"),i=h.target,f=!(i instanceof Node)||i===document.body||i===document.documentElement;if(l&&!(f||i instanceof Node&&l.contains(i)))return;h.preventDefault(),se.prefetch();let y=document.activeElement,{selection:S,place:T}=k.current;X(r,{pointed:{...S[0]!==void 0?{on:S[0]}:{},about:S,...T?{place:T}:{}},returnTo:y instanceof HTMLElement&&y!==document.body?y:null})};return window.addEventListener("keydown",d,!0),()=>window.removeEventListener("keydown",d,!0)},[o,r]),o?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("span",{ref:g,hidden:!0,"data-graview-quick-ask":e}),s?(0,C.jsx)(L.Suspense,{fallback:null,children:(0,C.jsx)(Ve,{face:e,opening:s,close:()=>X(r,null)},s.at)}):null]}):null}var B=w(R(),1),O=w(E(),1),ae=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.GMHBAS45.js","./chunk.4VX7GPFS.js","./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.VGQDPEB5.js","./chunk.6YKKZI4H.js","./chunk.WIVNFOQR.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.SMF5S4DQ.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.QKNC5OUC.js")))),$e=ae.part((e,n)=>{let t=e.InlineAiMenu;return(0,O.jsx)(t,{...n})},{what:"The AI's suggestions"}),Qe=ae.part((e,n)=>{let t=e.GhostTray;return(0,O.jsx)(t,{...n})},{quiet:!0});function Ke(){let{ai:e}=b(),n=H(e);return(0,B.useMemo)(()=>n?t=>({id:"inline-ai",heading:"AI",render:r=>(0,O.jsx)(B.Suspense,{fallback:null,children:(0,O.jsx)($e,{target:t,close:r})}),prepare:()=>ae.prefetch()}):null,[n])}var Ye=[];function xn({children:e}){let n=Ke(),t=(0,B.useMemo)(()=>n?[n]:Ye,[n]);return(0,O.jsx)(G,{sections:t,children:e})}function Dn(e){let{ai:n,aiDesk:t}=b(),{ghost:r}=ye(t);return r===null||r.onCard||n.off?null:(0,O.jsx)(B.Suspense,{fallback:null,children:(0,O.jsx)(Qe,{...e})})}var W=w(R(),1);var Le=w(E(),1),Ue=e=>globalThis[Symbol.for("graview.shown-lists")]?.get(e),Ce=I(D(()=>(__graviewPreload(import.meta.url,["./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.2ZPR6FRI.js"))));function Je(e){let n=e.about[0];if(e.about.length!==1||!n?.startsWith("aggregate:"))return;let t=n.slice(10).split("+");return t.length===1?t[0]:void 0}function Xe(e,n){return e.filter(t=>t.as!==n.as&&!t.hidden&&(t.kind===n.kind||t.over?.includes(n.kind)===!0)).at(-1)}function Ze(e){let n=V(),t=n?.keptViews,r=n?.views,u=(0,W.useContext)(Pe);return(0,W.useMemo)(()=>r?c=>{let p=t?.current(),o=Je(c),s=l=>l.length>0?{id:"tidy-view",items:l,prepare:()=>Ce.prefetch()}:null,g=(l,...i)=>Ce.load().then(f=>f[l](...i),()=>!1),k=(l,i)=>Ue(l)?.().menu(i,t,u)??[];if(c.place===void 0){if(c.face!=="pages"||o===void 0||c.on!==void 0)return null;let l=p?.may.lenses===!0&&t?.lens!==void 0,i=q(n.store.schema,o),f=r.arrangement?.()?.hide?.includes(o)===!0;return s([...l?[{id:f?"show-list":"hide-list",label:f?"Show":"Hide",hint:f?"Back in the places, for everyone":"Off the places, for everyone; still at its address",run:()=>void g("setListHidden",o,i,t,!f,u)}]:[],...k(`list:${o}`,l)])}let d=r.places().find(l=>l.as===c.place&&(o===void 0||l.kind===o||l.over?.includes(o)===!0));if(!d)return null;let h=t&&p?fe(d,p,t):null;return s([...h?[d.hidden?{id:"show-view",label:"Show",hint:"Back in the places, for everyone",run:()=>void g("setHidden",d,h,t,!1,u)}:{id:"hide-view",label:"Hide",hint:"Off the places and the scene, for everyone",run:()=>void g("setHidden",d,h,t,!0,u)},{id:"delete-view",label:"Delete",hint:`Kept ${30} days under Recently deleted`,run:()=>{let l=Xe(r.places(),d);g("remove",d,h,t,u).then(i=>i&&e?.(d,l))}}]:[],...k(`place:${d.as}`,h==="lens")])}:null,[t,r,u,e])}var en=[];function Wn({children:e}){let{view:n,go:t}=Q(),r=(0,W.useCallback)((p,o)=>{let s=n.within?.view;n.focusId===he(p.kind)&&(s===void 0||s===p.as)&&t(o?ge(n,o.kind,o.as):me(n,!0))},[n,t]),u=Ze(r),c=(0,W.useMemo)(()=>u?[u]:en,[u]);return(0,Le.jsx)(G,{sections:c,children:e})}var M=w(R(),1),ue=w(E(),1),N,ce=new Set,le=e=>(ce.add(e),()=>void ce.delete(e)),z=()=>(__graviewPreload(import.meta.url,["./chunk.SI5GGFQR.js","./chunk.DOJCYXIJ.js","./chunk.NVPKYWMF.js","./chunk.PGT4ZQDG.js","./chunk.JMXBMLKH.js","./chunk.PVAYYFT2.js","./chunk.TBY5IR7C.js","./chunk.BIDL7GQD.js","./chunk.4VX7GPFS.js","./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.Q5WEOX3Q.js","./chunk.7DCBIMOI.js","./chunk.GXK5PI7I.js","./chunk.SMF5S4DQ.js","./chunk.XP4IVKKR.js","./chunk.R5YGW5ZX.js","./chunk.QMGBAKX6.js","./chunk.PS765ODQ.js","./chunk.MIE4TJRW.js","./chunk.DEBW4FH6.js","./chunk.RD2FSSLV.js","./chunk.OWHH7JDV.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.FILBI7XA.js")).then(e=>{N=e,ce.forEach(n=>n())});function nn(){let e=b(),{ai:n,keptViews:t,onProposeChange:r,composeChange:u}=e,c=(0,M.useRef)(e);c.current=e;let p=r!==void 0&&u!==void 0||typeof t?.fork=="function",o=H(n)&&(typeof t?.revise=="function"||p);o&&oe(z);let s=(0,M.useSyncExternalStore)(le,()=>N!==void 0,()=>!1);return(0,M.useMemo)(()=>o?g=>g.section||g.page||g.face==="scene"&&p&&(g.on!==void 0||g.place!==void 0||g.about.length===1)?N?N.sectionFor(g,c.current):(z(),null):null:null,[o,p,s])}function Fn(e,n){let t=b(),r=(0,M.useRef)(t);r.current=t;let u=(0,M.useRef)(e);u.current=e;let c=(0,M.useRef)(n);c.current=n;let p=t.onProposeChange!==void 0&&t.composeChange!==void 0;p&&oe(z);let o=(0,M.useSyncExternalStore)(le,()=>N!==void 0,()=>!1);return(0,M.useMemo)(()=>p?s=>!s.page||s.face!=="pages"?null:N?N.displayOptionsSection(s,r.current,u.current,c.current):(z(),null):null,[p,o])}var tn=[];function _n({children:e}){let n=nn(),t=(0,M.useMemo)(()=>n?[n]:tn,[n]);return(0,ue.jsx)(G,{sections:t,children:e})}function qn(){let e=(0,M.useSyncExternalStore)(le,()=>N?.SectionDoor,()=>{});return(0,M.useEffect)(()=>{try{sessionStorage.getItem("graview.better.from-scene")&&z()}catch{}},[]),e?(0,ue.jsx)(e,{}):null}function Kn(e={}){return e.scope===void 0?re:ve(re,e.scope)}var F=w(R(),1),a=w(E(),1);function et({inside:e=!1,widthOf:n}={}){let{store:t,view:r,emphasis:u,setEmphasis:c}=b(),p=De(),{selection:o,set:s}=$(),{show:g}=Q(),k=ke(),d=(0,F.useMemo)(()=>{let i=new Map;for(let f of t.graph.allEdges()){let y=i.get(f.kind)??{count:0,ends:new Set};y.count+=1;for(let S of[f.from,f.to]){let T=t.graph.getNode(S);T&&y.ends.add(`kind:${T.kind}`)}i.set(f.kind,y)}return[...i.entries()].sort(([f],[y])=>f.localeCompare(y)).map(([f,y])=>({kind:f,count:y.count,ends:[...y.ends]}))},[t,k]),h=Math.max(0,...d.map(i=>i.count));if((0,F.useEffect)(()=>()=>c(null),[c]),!r.overview&&!e||d.length===0)return null;let l=new Set;for(let i of o){if(i.startsWith("kind:")){l.add(i);continue}let f=t.graph.getNode(i);f&&l.add(`kind:${f.kind}`)}return(0,a.jsxs)("section",{"aria-label":"What the lines mean",role:e?"group":void 0,"data-testid":"relation-key",style:e?{display:"grid",gap:1}:{position:"absolute",left:16,top:14,zIndex:pe("rail"),display:"grid",gap:1,padding:"8px 10px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",maxWidth:on,animation:"graview-settle 380ms 280ms ease backwards"},children:[e?null:(0,a.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",paddingBottom:2},children:d.length===1?"1 relation":`${d.length} relations`}),n?(0,a.jsx)(sn,{aloft:r.overview===!0}):null,d.map(({kind:i,count:f,ends:y})=>{let{connector:S,style:T}=te(p,i),v=rn(t.schema,i),m=u!==null?u===i:l.size===0||y.some(A=>l.has(A));return(0,a.jsxs)("button",{type:"button",title:t.schema.edge(i)?.description===void 0?`${f} of these`:v.words,onMouseEnter:()=>c(i),onMouseLeave:()=>c(null),onFocus:()=>c(i),onBlur:()=>c(null),onClick:()=>{s(y),g(null)},style:{all:"unset",outline:"revert-layer",cursor:"pointer",display:"grid",gridTemplateColumns:"30px 1fr auto",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px",borderRadius:6,opacity:m?1:.4},children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",style:{display:"block",opacity:S.visible?1:.35},children:r.overview&&n?(0,a.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",className:"graview-key-ribbon",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:n(f,h)}):(0,a.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",stroke:ee(T),strokeWidth:ne(T,!0),strokeDasharray:Z[T.pattern],strokeLinecap:"round"})}),(0,a.jsxs)("span",{style:{display:"grid",minWidth:0},"data-graview-relation-words":i,children:[(0,a.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink)"},children:v.words}),(0,a.jsx)("span",{style:{fontSize:"0.6875rem",color:"var(--graview-ink-faint)"},children:v.ends})]}),S.visible?null:(0,a.jsx)("span",{"data-graview-quiet":i,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontStyle:"italic"},children:"not drawn"}),(0,a.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},children:f})]},i)})]})}var on="min(280px, calc(100% - 28px))";function rn(e,n,t){let r=e.edge(n)?.from??[],u=new Map;for(let o of t!==void 0&&r.includes(t)?[t]:r.length>0?r:[""]){let s=xe(e,o,n,"out");u.set(s,[...u.get(s)??[],o])}let c=o=>o==="*"?"anything":q(e,o),p=[...u].map(([o,s])=>{let g=s.flatMap(d=>e.tryDefinition(d)?.edges[n]?.to??[]),k=s[0]&&g.length>0?`${s.map(c).join(", ")} \u2192 ${(g.includes("*")?["*"]:[...new Set(g)]).map(c).join(", ")}`:"";return[o.charAt(0).toUpperCase()+o.slice(1),k]});return{words:p.map(([o])=>o).join(" \xB7 "),ends:p.flatMap(([,o])=>o?[o]:[]).join(" \xB7 ")}}function nt({edgeKind:e,kit:n,width:t=30}){let r=V(),u=(0,F.useMemo)(()=>de(n??r?.brand?.kit),[n,r?.brand?.kit]),{connector:c,style:p}=te(u,e);return(0,a.jsx)("svg",{width:t,height:"8","aria-hidden":"true","data-testid":"relation-mark","data-graview-relation":e,style:{display:"inline-block",verticalAlign:"middle",opacity:c.visible?1:.35},children:(0,a.jsx)("path",{d:`M 1 4 L ${t-1} 4`,fill:"none",stroke:ee(p),strokeWidth:ne(p,!0),strokeDasharray:Z[p.pattern],strokeLinecap:"round"})})}function sn({aloft:e}){let n={display:"grid",gridTemplateColumns:"30px 1fr",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px"},t={fontSize:"0.75rem",color:"var(--graview-ink-muted)"};return(0,a.jsxs)("div",{role:"group","aria-label":"The lines","data-testid":"line-manners",style:{display:"grid",gap:1,paddingBottom:6,marginBottom:4,borderBottom:"1px solid var(--graview-edge)"},children:[e?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{style:n,"data-graview-manner":"ribbon",children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:6})}),(0,a.jsx)("span",{style:t,children:"A relation between two districts, as wide as the links along it \u2014 point at one for its words"})]}),(0,a.jsxs)("div",{style:n,"data-graview-manner":"record",children:[(0,a.jsxs)("svg",{width:"30",height:"10","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M 1 5 L 25 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeLinecap:"round"}),(0,a.jsx)("circle",{cx:26,cy:5,r:3,fill:"var(--graview-accent)"})]}),(0,a.jsx)("span",{style:t,children:"A chosen record's link to another record, labeled with the relation"})]}),(0,a.jsxs)("div",{style:n,"data-graview-manner":"district",children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeDasharray:"5 4"})}),(0,a.jsx)("span",{style:t,children:"A chosen record's links into a district, with how many"})]})]}):null,(0,a.jsxs)("div",{style:n,"data-graview-manner":"unsure",children:[(0,a.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeOpacity:Te,strokeWidth:1.8,strokeDasharray:Ee,strokeLinecap:"round"})}),(0,a.jsx)("span",{style:t,children:"Unsure: a link its maker was less than sure of, until a person keeps it \u2014 point at its words for what it was based on"})]})]})}export{dn as a,hn as b,Sn as c,et as d,on as e,nt as f,Ke as g,xn as h,Dn as i,Ze as j,Wn as k,nn as l,Fn as m,_n as n,qn as o,Kn as p};