graview 0.1.61 → 0.1.63

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 (232) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +11 -7
  4. package/dist/index.js.map +1 -1
  5. package/dist/preview/{chunk.JEQO24GS.js → chunk.24HNOLUS.js} +1 -1
  6. package/dist/preview/chunk.25CQCCLN.js +1 -0
  7. package/dist/preview/{chunk.C634A6ZC.js → chunk.26H33GJC.js} +1 -1
  8. package/dist/preview/chunk.2F4AZZQR.js +1 -0
  9. package/dist/preview/chunk.2KIWGQXC.js +2 -0
  10. package/dist/preview/{chunk.IA5ZBMRD.js → chunk.2PJ6STKA.js} +1 -1
  11. package/dist/preview/{chunk.7LZ6JDJA.js → chunk.2RASWDMQ.js} +2 -2
  12. package/dist/preview/chunk.33XNYHI6.js +1 -0
  13. package/dist/preview/{chunk.SJALH7IX.js → chunk.34DRUCH2.js} +1 -1
  14. package/dist/preview/{chunk.SKQO467Y.js → chunk.36OE6RKG.js} +1 -1
  15. package/dist/preview/{chunk.3SMNWZ3M.js → chunk.37FLKAVZ.js} +1 -1
  16. package/dist/preview/chunk.3JCHJLH6.js +1 -0
  17. package/dist/preview/chunk.3L37FY3G.js +4 -0
  18. package/dist/preview/chunk.3OQ6S6H4.js +1 -0
  19. package/dist/preview/chunk.47QEWSSE.js +1 -0
  20. package/dist/preview/{chunk.W5TVQYAI.js → chunk.4DAKQXDG.js} +1 -1
  21. package/dist/preview/{chunk.BI6DS3PZ.js → chunk.4EXC26LI.js} +1 -1
  22. package/dist/preview/{chunk.ZKAZA6UJ.js → chunk.4MEQUUG4.js} +1 -1
  23. package/dist/preview/{chunk.LA2DMHZC.js → chunk.4TH3CGAZ.js} +1 -1
  24. package/dist/preview/{chunk.5POG3G2C.js → chunk.57YDGGJK.js} +1 -1
  25. package/dist/preview/chunk.5GC4VAHU.js +1 -0
  26. package/dist/preview/{chunk.XZWXDQ3N.js → chunk.5QXQ7PBI.js} +1 -1
  27. package/dist/preview/chunk.6CSHRMJC.js +1 -0
  28. package/dist/preview/chunk.6HKWAHPT.js +1 -0
  29. package/dist/preview/{chunk.ULHB3RYK.js → chunk.6XHPBJ5F.js} +1 -1
  30. package/dist/preview/chunk.6YK5E7ZQ.js +4 -0
  31. package/dist/preview/{chunk.UACSX64H.js → chunk.6Z2GHQQH.js} +3 -3
  32. package/dist/preview/chunk.72YXFJKC.js +2 -0
  33. package/dist/preview/{chunk.XFSGB6EU.js → chunk.735AFUP5.js} +1 -1
  34. package/dist/preview/chunk.75GENXGP.js +1 -0
  35. package/dist/preview/{chunk.SBLYBRDU.js → chunk.A2R53GWF.js} +1 -1
  36. package/dist/preview/{chunk.7R727IKU.js → chunk.AHPYNDVA.js} +2 -2
  37. package/dist/preview/chunk.ATDIDPKZ.js +1 -0
  38. package/dist/preview/{chunk.HQNE4I4M.js → chunk.AW26EETU.js} +1 -1
  39. package/dist/preview/chunk.AWUO3M5D.js +1 -0
  40. package/dist/preview/chunk.B46UZHGW.js +1 -0
  41. package/dist/preview/{chunk.WS7LAT4Z.js → chunk.B5PJCYBU.js} +1 -1
  42. package/dist/preview/chunk.BF3EZCG3.js +1 -0
  43. package/dist/preview/chunk.BIDL7GQD.js +0 -0
  44. package/dist/preview/chunk.BKQICGFW.js +1 -0
  45. package/dist/preview/{chunk.6HZY5NRX.js → chunk.BN7C5ZYX.js} +1 -1
  46. package/dist/preview/chunk.BQM3YAMR.js +35 -0
  47. package/dist/preview/chunk.C65EHQ7V.js +1 -0
  48. package/dist/preview/{chunk.3FUUYYR5.js → chunk.CAXILB7K.js} +1 -1
  49. package/dist/preview/{chunk.NUEPFPRA.js → chunk.CCQMDZHO.js} +1 -1
  50. package/dist/preview/{chunk.HOQMD6WQ.js → chunk.CGK2PY76.js} +14 -14
  51. package/dist/preview/chunk.CI4RZL4Z.js +1 -0
  52. package/dist/preview/chunk.CXDGE5ZS.js +1 -0
  53. package/dist/preview/chunk.CYTTZOYL.js +25 -0
  54. package/dist/preview/chunk.D5LOTCBU.js +3 -0
  55. package/dist/preview/chunk.DBFJVVWF.js +1 -0
  56. package/dist/preview/{chunk.A2ZQASQV.js → chunk.DDFRFSVN.js} +1 -1
  57. package/dist/preview/{chunk.UXOBUK3C.js → chunk.DIFIHNR3.js} +1 -1
  58. package/dist/preview/chunk.DVSTLVIH.js +15 -0
  59. package/dist/preview/chunk.DWK3GXRR.js +1 -0
  60. package/dist/preview/{chunk.2QFKNTAZ.js → chunk.DZSZUX34.js} +1 -1
  61. package/dist/preview/chunk.E3XJMO7Q.js +1 -0
  62. package/dist/preview/chunk.EJ2WE764.js +18 -0
  63. package/dist/preview/{chunk.SAYAFOF6.js → chunk.EJ4MSVX2.js} +1 -1
  64. package/dist/preview/chunk.ERPILTRY.js +1 -0
  65. package/dist/preview/chunk.FFXBDOKA.js +1 -0
  66. package/dist/preview/chunk.FGDGTES4.js +20 -0
  67. package/dist/preview/chunk.FNVGNISQ.js +3 -0
  68. package/dist/preview/chunk.FXCQJPN4.js +6 -0
  69. package/dist/preview/chunk.G2JAYG2Z.js +1 -0
  70. package/dist/preview/chunk.GHN62OMG.js +32 -0
  71. package/dist/preview/{chunk.F4VHCQNP.js → chunk.H5SN46VK.js} +1 -1
  72. package/dist/preview/{chunk.2XSIJH5J.js → chunk.H7AH3IW4.js} +1 -1
  73. package/dist/preview/{chunk.GI6XQF5X.js → chunk.HMMK7LCL.js} +1 -1
  74. package/dist/preview/{chunk.WICFQROI.js → chunk.HOFATBGD.js} +1 -1
  75. package/dist/preview/{chunk.PJ5AO7CK.js → chunk.HRNNRA2I.js} +1 -1
  76. package/dist/preview/{chunk.E7UDVC4V.js → chunk.HSMJHCR3.js} +1 -1
  77. package/dist/preview/{chunk.6SO64TUI.js → chunk.IEDCFSN5.js} +1 -1
  78. package/dist/preview/{chunk.VYFMUCBT.js → chunk.JIEDJEHK.js} +1 -1
  79. package/dist/preview/chunk.JNIDS66Z.js +1 -0
  80. package/dist/preview/{chunk.DHY7KOBV.js → chunk.JO3BBRSR.js} +1 -1
  81. package/dist/preview/chunk.JVDPRQ7J.js +1 -0
  82. package/dist/preview/chunk.K2HDEL7I.js +1 -0
  83. package/dist/preview/chunk.K7TK3KRB.js +7 -0
  84. package/dist/preview/{chunk.U2ISOUM2.js → chunk.KB5BCW23.js} +1 -1
  85. package/dist/preview/{chunk.EN2ABVIP.js → chunk.KL5H7KEV.js} +1 -1
  86. package/dist/preview/{chunk.ZC3FRCJQ.js → chunk.KPQLM4TM.js} +1 -1
  87. package/dist/preview/{chunk.R3N73BJO.js → chunk.KQPKYWDM.js} +1 -1
  88. package/dist/preview/{chunk.6DOOLVT4.js → chunk.KXFNRJ46.js} +1 -1
  89. package/dist/preview/chunk.KZUMXT5J.js +74 -0
  90. package/dist/preview/chunk.MAHNJO6U.js +1 -0
  91. package/dist/preview/{chunk.VN7I7XIO.js → chunk.MBB5A6BT.js} +1 -1
  92. package/dist/preview/chunk.MENLUNM5.js +1 -0
  93. package/dist/preview/{chunk.747OH3EE.js → chunk.MIE3ODQ2.js} +1 -1
  94. package/dist/preview/chunk.MT5DXJKN.js +1 -0
  95. package/dist/preview/chunk.MY5HJW2Z.js +1 -0
  96. package/dist/preview/{chunk.4LG34OC2.js → chunk.N3T2O6EW.js} +2 -2
  97. package/dist/preview/{chunk.E6RNMWFN.js → chunk.NEPQBMFT.js} +1 -1
  98. package/dist/preview/{chunk.ISRQQVS4.js → chunk.NIAM7OTV.js} +1 -1
  99. package/dist/preview/{chunk.5IEFTFKQ.js → chunk.NJSK3UO2.js} +1 -1
  100. package/dist/preview/chunk.NTC2H5ZX.js +1 -0
  101. package/dist/preview/chunk.NWWJNNEK.js +2 -0
  102. package/dist/preview/{chunk.6VLCMBRE.js → chunk.O3YIWIVQ.js} +1 -1
  103. package/dist/preview/chunk.O67JXUVG.js +1 -0
  104. package/dist/preview/{chunk.CRCJ3TAG.js → chunk.OIMGD7FR.js} +1 -1
  105. package/dist/preview/{chunk.ZJCM62GH.js → chunk.OM2NIQWA.js} +1 -1
  106. package/dist/preview/chunk.OMRQTLI5.js +1 -0
  107. package/dist/preview/{chunk.BDTT4ENI.js → chunk.OTSBF367.js} +2 -2
  108. package/dist/preview/{chunk.MU3XII7I.js → chunk.OXWOUE3W.js} +1 -1
  109. package/dist/preview/chunk.PDMX3GTL.js +1 -0
  110. package/dist/preview/{chunk.SIYBHZDD.js → chunk.PDS4HT46.js} +1 -1
  111. package/dist/preview/chunk.PWAP2GJS.js +1 -0
  112. package/dist/preview/chunk.Q2EGESEZ.js +1 -0
  113. package/dist/preview/{chunk.DHJI7LIW.js → chunk.Q4GJIJAU.js} +1 -1
  114. package/dist/preview/chunk.Q4MI53KK.js +5 -0
  115. package/dist/preview/chunk.Q5WEOX3Q.js +1 -0
  116. package/dist/preview/{chunk.2LNSENPV.js → chunk.QAMW5QDT.js} +1 -1
  117. package/dist/preview/{chunk.WD4VPMEE.js → chunk.QS32TO4N.js} +1 -1
  118. package/dist/preview/chunk.QSPLKCTX.js +1 -0
  119. package/dist/preview/chunk.R4HDKNT3.js +88 -0
  120. package/dist/preview/chunk.REUMBCSV.js +1 -0
  121. package/dist/preview/{chunk.CUTLO6DA.js → chunk.RUFYORIJ.js} +1 -1
  122. package/dist/preview/{chunk.PYVWGTQS.js → chunk.SGPXYDSG.js} +1 -1
  123. package/dist/preview/chunk.SJUXFPTI.js +1 -0
  124. package/dist/preview/{chunk.MBPOYZ3J.js → chunk.SME4HD5I.js} +1 -1
  125. package/dist/preview/{chunk.XZUHFXME.js → chunk.SMHP2CQH.js} +1 -1
  126. package/dist/preview/chunk.SSAETRHR.js +5 -0
  127. package/dist/preview/{chunk.PZXTSWDH.js → chunk.STDJ6XG5.js} +1 -1
  128. package/dist/preview/{chunk.66IKLMYX.js → chunk.T3JIZNE7.js} +2 -2
  129. package/dist/preview/chunk.T535ZLRM.js +1 -0
  130. package/dist/preview/chunk.T6PU3NKP.js +1 -0
  131. package/dist/preview/{chunk.U3JK2DNC.js → chunk.UAVK54Z6.js} +1 -1
  132. package/dist/preview/{chunk.EVEHSENK.js → chunk.V4HVFLFQ.js} +1 -1
  133. package/dist/preview/chunk.V6IL7CIZ.js +1 -0
  134. package/dist/preview/{chunk.ZVG3DR5G.js → chunk.VCTAFSZ5.js} +1 -1
  135. package/dist/preview/{chunk.GIW657OR.js → chunk.VZDHRY3U.js} +2 -1
  136. package/dist/preview/chunk.WBS7ND2C.js +1 -0
  137. package/dist/preview/chunk.WNS5LEO5.js +1 -0
  138. package/dist/preview/chunk.WUVXIUA7.js +1 -0
  139. package/dist/preview/{chunk.JHAFQNGC.js → chunk.WYPCLZL7.js} +1 -1
  140. package/dist/preview/{chunk.DLDP6OWD.js → chunk.XBYJCGPU.js} +1 -1
  141. package/dist/preview/{chunk.65KFZV3A.js → chunk.XCEZCOX4.js} +1 -1
  142. package/dist/preview/{chunk.KRFRREEW.js → chunk.XCWZFLIB.js} +1 -1
  143. package/dist/preview/chunk.XIW4SZHD.js +1 -0
  144. package/dist/preview/{chunk.MK72IRIY.js → chunk.XUO67YMT.js} +1 -1
  145. package/dist/preview/{chunk.FWUG7Y6C.js → chunk.XUXZW7DU.js} +1 -1
  146. package/dist/preview/chunk.XYGNS637.js +1 -0
  147. package/dist/preview/{chunk.FJIXSGYU.js → chunk.Y4ZM75WL.js} +1 -1
  148. package/dist/preview/{chunk.D5Q64GA4.js → chunk.YOUB3J3Y.js} +1 -1
  149. package/dist/preview/{chunk.3HFUO3DC.js → chunk.YXAKHXYB.js} +1 -1
  150. package/dist/preview/chunk.YZBJUAS6.js +1 -0
  151. package/dist/preview/chunk.Z2ZQJ3DD.js +1 -0
  152. package/dist/preview/chunk.ZELWW7UA.js +21 -0
  153. package/dist/preview/{chunk.YGIJDHAV.js → chunk.ZLTHWCKL.js} +2 -2
  154. package/dist/preview/chunk.ZP7JEVVU.js +1 -0
  155. package/dist/preview/chunk.ZRH5X3MR.js +1 -0
  156. package/dist/preview/{chunk.R5547CJ7.js → chunk.ZSGDVNVN.js} +1 -1
  157. package/dist/preview/chunk.ZVG4FXJK.js +1 -0
  158. package/dist/preview/chunk.ZY7US4Y7.js +6 -0
  159. package/dist/preview/{chunk.GQNSNJTJ.js → chunk.ZZAI57VI.js} +1 -1
  160. package/dist/preview/index.html +54 -51
  161. package/dist/preview/page.js +2 -2
  162. package/dist/preview/splash.js +58 -0
  163. package/package.json +6 -6
  164. package/dist/preview/chunk.2AWVQ5SW.js +0 -1
  165. package/dist/preview/chunk.2WZAFKJ2.js +0 -2
  166. package/dist/preview/chunk.3ICWPRRJ.js +0 -1
  167. package/dist/preview/chunk.3RW677X6.js +0 -1
  168. package/dist/preview/chunk.4G32374Q.js +0 -1
  169. package/dist/preview/chunk.4OEWFPH3.js +0 -1
  170. package/dist/preview/chunk.4STDIZVI.js +0 -2
  171. package/dist/preview/chunk.5S7IGASX.js +0 -28
  172. package/dist/preview/chunk.5T53SF2K.js +0 -1
  173. package/dist/preview/chunk.5X22RKB3.js +0 -1
  174. package/dist/preview/chunk.644FUGSX.js +0 -1
  175. package/dist/preview/chunk.7CETF4A6.js +0 -1
  176. package/dist/preview/chunk.AVFOTYZR.js +0 -74
  177. package/dist/preview/chunk.BFDJTWGX.js +0 -88
  178. package/dist/preview/chunk.BJI2C3IZ.js +0 -1
  179. package/dist/preview/chunk.D4TA5XDC.js +0 -4
  180. package/dist/preview/chunk.DKXVEVDG.js +0 -1
  181. package/dist/preview/chunk.DP5DUV6F.js +0 -6
  182. package/dist/preview/chunk.DXWTM4SH.js +0 -1
  183. package/dist/preview/chunk.F7IQ4B6A.js +0 -1
  184. package/dist/preview/chunk.F7PIW2EM.js +0 -5
  185. package/dist/preview/chunk.G4VMRYS4.js +0 -1
  186. package/dist/preview/chunk.GPWYWALF.js +0 -1
  187. package/dist/preview/chunk.HGVBGSRS.js +0 -6
  188. package/dist/preview/chunk.HZHNM2KI.js +0 -3
  189. package/dist/preview/chunk.ISXNAFRC.js +0 -20
  190. package/dist/preview/chunk.JU3BCCQM.js +0 -1
  191. package/dist/preview/chunk.K2AC536Q.js +0 -21
  192. package/dist/preview/chunk.K3UOXAZS.js +0 -1
  193. package/dist/preview/chunk.KNYLY7MH.js +0 -1
  194. package/dist/preview/chunk.LQAT7FA6.js +0 -3
  195. package/dist/preview/chunk.LTI5PKTS.js +0 -1
  196. package/dist/preview/chunk.MBP7VDYM.js +0 -1
  197. package/dist/preview/chunk.MBU7UH6J.js +0 -1
  198. package/dist/preview/chunk.MH6CCHEX.js +0 -1
  199. package/dist/preview/chunk.MNRTA2CB.js +0 -1
  200. package/dist/preview/chunk.MYVED5LU.js +0 -1
  201. package/dist/preview/chunk.N5WDQAIM.js +0 -5
  202. package/dist/preview/chunk.N7T7VB77.js +0 -25
  203. package/dist/preview/chunk.ODVRO2BJ.js +0 -1
  204. package/dist/preview/chunk.OVPFROL3.js +0 -1
  205. package/dist/preview/chunk.PGA5TUSN.js +0 -1
  206. package/dist/preview/chunk.PHC2MI4C.js +0 -1
  207. package/dist/preview/chunk.PXQVXBNG.js +0 -1
  208. package/dist/preview/chunk.Q5I5M3FR.js +0 -1
  209. package/dist/preview/chunk.QATUGE34.js +0 -1
  210. package/dist/preview/chunk.QL77K3D4.js +0 -1
  211. package/dist/preview/chunk.QUJS63OJ.js +0 -13
  212. package/dist/preview/chunk.REH6RXNH.js +0 -1
  213. package/dist/preview/chunk.RZ5PPQBV.js +0 -1
  214. package/dist/preview/chunk.SCGF4ZPP.js +0 -1
  215. package/dist/preview/chunk.SLAZFFCQ.js +0 -1
  216. package/dist/preview/chunk.SLPJWOKC.js +0 -1
  217. package/dist/preview/chunk.TKLYUVMR.js +0 -32
  218. package/dist/preview/chunk.TKUNRFDE.js +0 -1
  219. package/dist/preview/chunk.TMAZNDA6.js +0 -1
  220. package/dist/preview/chunk.UDCDK7XJ.js +0 -4
  221. package/dist/preview/chunk.UO544PZH.js +0 -1
  222. package/dist/preview/chunk.VKHAAH32.js +0 -1
  223. package/dist/preview/chunk.VOOOIECX.js +0 -1
  224. package/dist/preview/chunk.VS6NT5C4.js +0 -1
  225. package/dist/preview/chunk.VUAOCYG2.js +0 -1
  226. package/dist/preview/chunk.VX65S2FA.js +0 -1
  227. package/dist/preview/chunk.X2I3XH2E.js +0 -2
  228. package/dist/preview/chunk.XWWSW3ZV.js +0 -7
  229. package/dist/preview/chunk.Y7H5O2SL.js +0 -1
  230. package/dist/preview/chunk.YOT7ESDG.js +0 -18
  231. package/dist/preview/chunk.ZQHCNFJK.js +0 -1
  232. package/dist/preview/chunk.ZYNUMVEC.js +0 -1
@@ -0,0 +1 @@
1
+ import{a}from"./chunk.OXWOUE3W.js";import"./chunk.34DRUCH2.js";import"./chunk.KXFNRJ46.js";import"./chunk.OMRQTLI5.js";import"./chunk.MIE3ODQ2.js";import"./chunk.NEPQBMFT.js";import"./chunk.MBB5A6BT.js";import"./chunk.ERPILTRY.js";import"./chunk.H7AH3IW4.js";import{b as n}from"./chunk.DDFRFSVN.js";import"./chunk.U5P23GO7.js";import"./chunk.YOUB3J3Y.js";import"./chunk.GZHZLJBF.js";import"./chunk.WUVXIUA7.js";import"./chunk.OJGHDWI6.js";import"./chunk.BN7C5ZYX.js";import"./chunk.REUMBCSV.js";import"./chunk.2KIWGQXC.js";import"./chunk.D5LOTCBU.js";import"./chunk.KZUMXT5J.js";import"./chunk.CGK2PY76.js";import{T as i}from"./chunk.CYTTZOYL.js";import"./chunk.SDO3U72B.js";import"./chunk.Q4MI53KK.js";import"./chunk.FQLNBIQ5.js";import{b as o}from"./chunk.AJZBJBMO.js";var e=o(i(),1);function m({entries:d,style:l,headingStyle:p,className:r}){return(0,e.jsxs)("section",{...r?{className:r}:{},"data-testid":"record-ai","aria-label":"What AI did here",style:{display:"grid",gap:10,...l},children:[(0,e.jsx)("h2",{style:p??{margin:0,fontSize:"1rem"},children:"What AI did here"}),(0,e.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:8,fontSize:"0.875rem"},children:d.slice(0,8).map(t=>(0,e.jsx)(n,{entry:t,undo:s=>(0,e.jsx)(a,{batch:s})},t.id))})]})}export{m as RecordInteractions};
@@ -1 +1 @@
1
- import{b as x}from"./chunk.REH6RXNH.js";import"./chunk.MBP7VDYM.js";import"./chunk.BDTT4ENI.js";import"./chunk.WVUJXDXZ.js";import"./chunk.MBU7UH6J.js";import"./chunk.2QFKNTAZ.js";import"./chunk.BI6DS3PZ.js";import"./chunk.PGA5TUSN.js";import"./chunk.7R727IKU.js";import"./chunk.LQAT7FA6.js";import"./chunk.GZHZLJBF.js";import{n as R}from"./chunk.Y7H5O2SL.js";import"./chunk.OJGHDWI6.js";import"./chunk.6HZY5NRX.js";import"./chunk.UO544PZH.js";import"./chunk.4STDIZVI.js";import"./chunk.HZHNM2KI.js";import"./chunk.AVFOTYZR.js";import"./chunk.HOQMD6WQ.js";import{G as A,T as v,ca as g}from"./chunk.N7T7VB77.js";import"./chunk.SDO3U72B.js";import{$c as k,ma as y,qa as c}from"./chunk.F7PIW2EM.js";import"./chunk.FQLNBIQ5.js";import{b as u}from"./chunk.AJZBJBMO.js";var f=u(A(),1);var L=u(A(),1),S=(0,L.createContext)(void 0);var i=u(v(),1),W=new WeakMap,m=new WeakMap,P=(e,n)=>`${n.kind}\0${n.id??""}\0${e}`;function b(e,n,a){let p=P(n,a),o=W.get(e);o||W.set(e,o=new Map);let t=o.get(p);return t||(t=Promise.resolve().then(()=>e(n,a)).then(r=>C(r)?r:null,()=>null).then(r=>{let s=m.get(e);return s||m.set(e,s=new Map),s.set(p,r),r}),o.set(p,t)),t}function C(e){if(e===null)return!0;if(typeof e!="object"||e===void 0)return!1;if(e.denied===!0)return!0;let n=e;return typeof n.name=="string"&&n.name.trim()!==""&&typeof n.href=="string"}function h(e){if(/^https?:\/\//i.test(e))try{return new URL(e).href}catch{return}}var N=e=>h(e)??(c(e)?e:void 0),E=e=>h(e)??(e.startsWith("/")&&c(e)?e:void 0),I={kind:"human"},w={color:"var(--graview-ink-muted)"};function M({icon:e}){if(!e)return null;let n=E(e);if(n)return(0,i.jsx)("img",{src:n,alt:"",width:20,height:20,"data-graview-app-icon":"",style:{width:20,height:20,borderRadius:5,objectFit:"cover",flex:"0 0 auto"}});let a=[...e.trim()].slice(0,2).join("");return a?(0,i.jsx)("span",{"aria-hidden":"true","data-graview-app-icon":"",style:{flex:"0 0 auto",lineHeight:"20px"},children:a}):null}function V(e){let n=g(),a=(0,f.useContext)(S)??n?.resolveApp,p=n?.principal??I,o=()=>a?m.get(a)?.get(P(e,p))??"asking":null,[t,r]=(0,f.useState)(o);return(0,f.useEffect)(()=>{let s=o();if(r(s),s!=="asking"||!a)return;let l=!0;return b(a,e,p).then(d=>l&&r(d)),()=>{l=!1}},[a,e,p.kind,p.id]),t}function D({address:e,as:n="chip",nodeId:a,field:p,style:o}){let t=V(e),r={position:"relative",zIndex:k.raised,overflowWrap:"anywhere",minWidth:0,maxWidth:"100%",...o},s;if(t==="asking")s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"asking","aria-busy":"true",style:{...w,...r},children:"Linked app"});else if(t&&"denied"in t)s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"denied",style:{...w,fontStyle:"italic",...r},children:"linked app (no access)"});else if(t){let l=N(t.href),d=n==="record"?t.headline?.trim():void 0;s=(0,i.jsxs)(l?"a":"span",{"data-graview-app-link":"","data-graview-app-state":"found",...l?{href:l}:{},...!d&&t.headline?{title:t.headline}:{},style:{display:"inline-flex",alignItems:d?"flex-start":"center",minHeight:24,gap:8,color:"inherit",textUnderlineOffset:3,...r},children:[(0,i.jsx)(M,{icon:t.icon}),(0,i.jsxs)("span",{style:{display:"grid",minWidth:0},children:[(0,i.jsx)("span",{"data-graview-app-name":"",style:{fontWeight:600},children:t.name}),d?(0,i.jsx)("span",{"data-graview-app-headline":"",style:{...w,fontSize:"0.8125em",fontWeight:400},children:d}):null]})]})}else{let l=h(e);s=l?(0,i.jsx)("a",{"data-graview-app-link":"","data-graview-app-state":"plain",href:l,rel:"noopener noreferrer",target:"_blank",style:{color:"var(--graview-accent)",display:"inline-flex",alignItems:"center",minHeight:24,...r},children:e}):(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"plain",style:r,children:e})}return a&&p?(0,i.jsx)(H,{nodeId:a,field:p,address:e,drawn:s}):s}function H({nodeId:e,field:n,address:a,drawn:p}){let o=R(e).fields.some(s=>s.field===n),t=g()?.store;if(!o)return p;let r=y(t?t.schema.tryDefinition(String(t.graph.getNode(e)?.kind)):void 0,n).toLowerCase();return(0,i.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 12px",maxWidth:"100%",minWidth:0},children:[p,(0,i.jsx)("span",{style:{fontSize:"0.8125rem"},children:(0,i.jsx)(x,{nodeId:e,field:n,value:"Change",stored:a,said:`Change the ${r}`})})]})}var Y=e=>(0,i.jsx)(D,{...e});export{D as AppLink,Y as drawAppLink};
1
+ import{b as x}from"./chunk.T535ZLRM.js";import"./chunk.ERPILTRY.js";import"./chunk.OTSBF367.js";import"./chunk.WVUJXDXZ.js";import"./chunk.XYGNS637.js";import"./chunk.DZSZUX34.js";import"./chunk.4EXC26LI.js";import"./chunk.PWAP2GJS.js";import"./chunk.AHPYNDVA.js";import"./chunk.FNVGNISQ.js";import"./chunk.GZHZLJBF.js";import{o as R}from"./chunk.WUVXIUA7.js";import"./chunk.OJGHDWI6.js";import"./chunk.BN7C5ZYX.js";import"./chunk.REUMBCSV.js";import"./chunk.2KIWGQXC.js";import"./chunk.D5LOTCBU.js";import"./chunk.KZUMXT5J.js";import"./chunk.CGK2PY76.js";import{G as A,T as v,ca as g}from"./chunk.CYTTZOYL.js";import"./chunk.SDO3U72B.js";import{pd as k,ra as y,va as c}from"./chunk.Q4MI53KK.js";import"./chunk.FQLNBIQ5.js";import{b as u}from"./chunk.AJZBJBMO.js";var f=u(A(),1);var L=u(A(),1),S=(0,L.createContext)(void 0);var i=u(v(),1),W=new WeakMap,m=new WeakMap,P=(e,n)=>`${n.kind}\0${n.id??""}\0${e}`;function b(e,n,a){let p=P(n,a),o=W.get(e);o||W.set(e,o=new Map);let t=o.get(p);return t||(t=Promise.resolve().then(()=>e(n,a)).then(r=>C(r)?r:null,()=>null).then(r=>{let s=m.get(e);return s||m.set(e,s=new Map),s.set(p,r),r}),o.set(p,t)),t}function C(e){if(e===null)return!0;if(typeof e!="object"||e===void 0)return!1;if(e.denied===!0)return!0;let n=e;return typeof n.name=="string"&&n.name.trim()!==""&&typeof n.href=="string"}function h(e){if(/^https?:\/\//i.test(e))try{return new URL(e).href}catch{return}}var N=e=>h(e)??(c(e)?e:void 0),E=e=>h(e)??(e.startsWith("/")&&c(e)?e:void 0),I={kind:"human"},w={color:"var(--graview-ink-muted)"};function M({icon:e}){if(!e)return null;let n=E(e);if(n)return(0,i.jsx)("img",{src:n,alt:"",width:20,height:20,"data-graview-app-icon":"",style:{width:20,height:20,borderRadius:5,objectFit:"cover",flex:"0 0 auto"}});let a=[...e.trim()].slice(0,2).join("");return a?(0,i.jsx)("span",{"aria-hidden":"true","data-graview-app-icon":"",style:{flex:"0 0 auto",lineHeight:"20px"},children:a}):null}function V(e){let n=g(),a=(0,f.useContext)(S)??n?.resolveApp,p=n?.principal??I,o=()=>a?m.get(a)?.get(P(e,p))??"asking":null,[t,r]=(0,f.useState)(o);return(0,f.useEffect)(()=>{let s=o();if(r(s),s!=="asking"||!a)return;let l=!0;return b(a,e,p).then(d=>l&&r(d)),()=>{l=!1}},[a,e,p.kind,p.id]),t}function D({address:e,as:n="chip",nodeId:a,field:p,style:o}){let t=V(e),r={position:"relative",zIndex:k.raised,overflowWrap:"anywhere",minWidth:0,maxWidth:"100%",...o},s;if(t==="asking")s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"asking","aria-busy":"true",style:{...w,...r},children:"Linked app"});else if(t&&"denied"in t)s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"denied",style:{...w,fontStyle:"italic",...r},children:"linked app (no access)"});else if(t){let l=N(t.href),d=n==="record"?t.headline?.trim():void 0;s=(0,i.jsxs)(l?"a":"span",{"data-graview-app-link":"","data-graview-app-state":"found",...l?{href:l}:{},...!d&&t.headline?{title:t.headline}:{},style:{display:"inline-flex",alignItems:d?"flex-start":"center",minHeight:24,gap:8,color:"inherit",textUnderlineOffset:3,...r},children:[(0,i.jsx)(M,{icon:t.icon}),(0,i.jsxs)("span",{style:{display:"grid",minWidth:0},children:[(0,i.jsx)("span",{"data-graview-app-name":"",style:{fontWeight:600},children:t.name}),d?(0,i.jsx)("span",{"data-graview-app-headline":"",style:{...w,fontSize:"0.8125em",fontWeight:400},children:d}):null]})]})}else{let l=h(e);s=l?(0,i.jsx)("a",{"data-graview-app-link":"","data-graview-app-state":"plain",href:l,rel:"noopener noreferrer",target:"_blank",style:{color:"var(--graview-accent)",display:"inline-flex",alignItems:"center",minHeight:24,...r},children:e}):(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"plain",style:r,children:e})}return a&&p?(0,i.jsx)(H,{nodeId:a,field:p,address:e,drawn:s}):s}function H({nodeId:e,field:n,address:a,drawn:p}){let o=R(e).fields.some(s=>s.field===n),t=g()?.store;if(!o)return p;let r=y(t?t.schema.tryDefinition(String(t.graph.getNode(e)?.kind)):void 0,n).toLowerCase();return(0,i.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 12px",maxWidth:"100%",minWidth:0},children:[p,(0,i.jsx)("span",{style:{fontSize:"0.8125rem"},children:(0,i.jsx)(x,{nodeId:e,field:n,value:"Change",stored:a,said:`Change the ${r}`})})]})}var Y=e=>(0,i.jsx)(D,{...e});export{D as AppLink,Y as drawAppLink};
@@ -0,0 +1 @@
1
+ import{Pd as w,Qd as v,Sd as $,Td as c,Vd as k,Wd as x,ce as f,ge as b,he as S,ie as P,je as A,me as L,ne as N,pa as u}from"./chunk.Q4MI53KK.js";function T(s){if(!(s.attach==="home"||s.cardinality==="one"||!s.title))return{kind:s.attach,title:s.title,as:$(s.title),name:s.name,lens:"view",...s.hidden?{hidden:!0}:{}}}function G(s,r=[]){let a=[];for(let n of f(s).drawn)for(let i of n.kinds)a.push({kind:i,title:n.title,as:n.as,...n.across?{across:n.across}:{},...n.kinds.length>1?{over:n.kinds}:{},...n.hidden?{hidden:!0}:{}});for(let n of[...s.views?.places?.()??[],...r.flatMap(i=>T(i)??[])])a.some(i=>i.kind===n.kind&&i.as===n.as)||a.push(n);return a}function J(s,r={}){return V(s.schema,G(s,r.views),{...s.pages?{pages:s.pages}:{},lenses:f(s).drawn,home:(s.home?.length??0)>0})}function V(s,r,a={}){let{pages:n}=a,i=s.kinds,d=r.filter(e=>i.includes(e.kind)),o=N(n?.first,s,d),O=new Set(n?.hide??[]),p=L(i,n?.order,d),m=p.flatMap(e=>e.view?[]:[e.kind]),E=p.flatMap(e=>e.view?[e.view]:[]),h=[{slug:b,title:"Home",kind:null,cardinality:"many",address:"/",stop:"#",...o?.to==="home"||o===void 0&&a.home?{first:!0}:{}},{slug:S,title:A(n),kind:null,cardinality:"many",address:P,stop:"#"}],H=v([...d].sort((e,t)=>m.indexOf(e.kind)-m.indexOf(t.kind))),g=e=>{let t=a.lenses?.find(l=>l.as===e.as&&l.kinds.includes(e.kind)),y=x(e,d);return{slug:e.as,title:e.title,kind:e.kind,...e.over?{over:e.over.filter(l=>i.includes(l))}:{},cardinality:"many",address:k(e.as,y?c(s,e.kind).slice(1):void 0),stop:y?`#focus=aggregate:${e.kind}&in.view=${encodeURIComponent(e.as)}`:`#view=${encodeURIComponent(e.as)}`,...t?{lens:t.lens}:{},...e.name!==void 0?{view:e.name}:{},...e.hidden?{hidden:!0}:{},...o?.to==="place"&&o.place.as===e.as&&(o.place.kind===e.kind||e.over?.includes(o.place.kind))?{first:!0}:{}}};for(let e of H)E.some(t=>w(t,e))||h.push(g(e));for(let e of p){if(e.view){h.push(g(e.view));continue}let t=e.kind;h.push({slug:c(s,t).slice(1),title:u(s,t),kind:t,cardinality:"many",address:c(s,t),stop:`#focus=aggregate:${t}`,...O.has(t)?{hidden:!0}:{},...o?.to==="kind"&&o.kind===t?{first:!0}:{}})}return h}export{J as a,V as b};
@@ -0,0 +1 @@
1
+ import"./chunk.AJZBJBMO.js";var O=e=>Array.isArray(e);function q(e){return e===!0||O(e)||typeof e.width!="number"?Y:e.width}function Q(e){if(e===!0)return()=>!0;if(O(e)){let a=new Set(e);return s=>a.has(s)}let t=new Map;for(let[a,s]of Object.entries(e))typeof s=="string"?t.set(a,new Set([s])):Array.isArray(s)&&t.set(a,new Set(s));return t.size===0?()=>!0:(a,s)=>t.get(a)?.has(s)??!1}var Y=1200,ee="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",J=100,I=4e7,B=e=>/^image\//i.test(e.type)&&!/^image\/svg/i.test(e.type);function P(e,t={}){let a={name:e.name,type:e.type,bytes:e.bytes};return/^video\//i.test(e.type)?{...a,...e.width!==void 0?{width:e.width}:{},...e.height!==void 0?{height:e.height}:{},...e.caption!==void 0?{caption:e.caption}:{},...e.duration!==void 0?{duration:e.duration}:{},...e.poster?{poster:!0}:{}}:B(e)?{...a,...e.width!==void 0?{width:e.width}:{},...e.height!==void 0?{height:e.height}:{},...e.caption!==void 0?{caption:e.caption}:{},...t.src!==void 0?{src:t.src}:{},...t.left!==void 0?{left:t.left}:{}}:a}var X=new Set(["id","kind","label"]),N=e=>{let t=e;return typeof t=="object"&&t!==null&&typeof t.href=="string"&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.bytes=="number"};function L(e,t){let a=s=>{let l;for(let[h,u]of Object.entries(s)){if(X.has(h))continue;let m=N(u)?t(u,s,h):Array.isArray(u)&&u.length>0&&u.every(N)?u.map(d=>t(d,s,h)):void 0;m!==void 0&&((l??={...s})[h]=m)}return l??s};return{...e,...e.node?{node:a(e.node)}:{},...e.nodes?{nodes:e.nodes.map(a)}:{}}}var F=e=>e.toLocaleString("en-US"),S=(e,t)=>`The picture "${e.name}" on ${t.label?`"${t.label}"`:"a record"}`;function U(e,t,a){let s=q(e),l=t?.pictureBytes??15e5,h=t?.picturesBytes??12e6,u=Math.round(s*Math.min(2,Math.max(1,a||1)));return{width:s,perFile:l,perView:h,need:u,reckon:d=>Math.min(l,Math.ceil(d.bytes*(d.width&&d.width>u?(u/d.width)**2:1))),chosen:Q(e)}}var j=(e,t)=>`${S(e,t)} is left out: at ${F(e.bytes)} bytes it is more than the host fetches for a view.`,C=(e,t,a,s)=>`${S(e,t)} is left out: the view ${a} is handed at most ${F(s)} bytes of pictures, and the pictures before it, in the order its records are handed, took them. A view that draws only some kinds' pictures says which ("pictures": ["<kind>"]).`;function te(e,t){let{perView:a,reckon:s,chosen:l}=U(t.pictures,t.limits,2),h=[],u=0;return{props:L(e,(d,f,b)=>{if(!B(d)||!l(f.kind,b))return P(d);let v=y=>(h.includes(y)||h.push(y),P(d,{left:y}));if(d.bytes>I)return v(j(d,f));let g=s(d);return u+g>a?v(C(d,f,t.view,a)):(u+=g,P(d,{src:t.standIn}))}),left:h}}function ne(e,t){let{width:a,perFile:s,perView:l,need:h,reckon:u,chosen:m}=U(t.pictures,t.limits,e.devicePixelRatio),d=t.shrink??((n,r,i)=>Z(e,n,r,i)),f=new Map,b=new Map,v=new Set,g=!1,y,k=-1/0,z=()=>{if(y!==void 0||g)return;let n=()=>{y=void 0,!g&&(k=e.performance.now(),t.moved())},r=k+J-e.performance.now();r<=0?(y=!0,queueMicrotask(n)):y=e.setTimeout(n,r)},$=n=>{v.has(n)||(v.add(n),t.onLeft?.(n))},x=n=>{n?.state==="ready"&&(b.delete(n.url),n.url.startsWith("blob:")&&e.URL.revokeObjectURL(n.url))},T=S,V,H=n=>new Promise(r=>{let i=new e.Image;i.onload=()=>r(!0),i.onerror=()=>r(!1),e.setTimeout(()=>r(!1),2e3),i.src=n}),M=n=>new Promise((r,i)=>{let w=new e.FileReader;w.onload=()=>r(String(w.result)),w.onerror=i,w.readAsDataURL(n)}),W=async n=>{if(t.as==="blob"){let i=e.URL.createObjectURL(n);return V??=H(i),await V?{url:i,drawn:i}:{url:i,drawn:await M(n)}}let r=await M(n);return{url:r,drawn:r}},E=(n,r,i)=>({state:"left",said:`${T(n,r)} could not be loaded for the view ${t.view}${i?`: the host answered ${i}.`:"."}${i&&!t.file?" A host that serves the app under a base says where a record's files are (file, on the view's definition).":""}`}),D=async(n,r)=>{let i=E(n,r),w=t.file?t.file(n.href):n.href;if(w===void 0)return i;let o=new e.URL(w,e.document.baseURI);if(o.origin!==e.location.origin||!/^https?:$/.test(o.protocol))return i;let p=await e.fetch(o.href,{credentials:"same-origin"}),A=(p.headers.get("content-type")??"").split(";")[0].trim();if(!p.ok)return E(n,r,String(p.status));if(!B({type:A}))return E(n,r,`${A||"no type"}, not a picture`);let c=new e.Blob([await p.arrayBuffer()],{type:A});if(c.size>I)return i;if(!(n.width!==void 0&&n.width<=h)||c.size>s){let G=await d(c,h,s).catch(()=>{});if(G)c=G;else if(c.size>s)return i}return c.size>s?{state:"left",said:`${T(n,r)} is left out: made as small as the ${F(a)} pixels across the view ${t.view} draws a picture at, it is still more than the ${F(s)} bytes one picture is handed.`}:{state:"ready",...await W(c)}},K=(n,r)=>{f.set(n.href,{state:"pending"}),D(n,r).then(i=>_(n.href,i),()=>_(n.href,{state:"left",said:`${T(n,r)} could not be loaded for the view ${t.view}.`}))},_=(n,r)=>{if(g||f.get(n)?.state!=="pending")return x(r);f.set(n,r),r.state==="ready"&&b.set(r.url,r.drawn),r.state==="left"&&$(r.said),z()};return{hand(n){if(g)return L(n,o=>P(o));let r=0,i=new Set,w=L(n,(o,p,A)=>{if(!B(o)||!m(p.kind,A))return P(o);i.add(o.href);let c=f.get(o.href);if(c?.state==="left")return P(o,{left:c.said});if(!c&&o.bytes>I)return c={state:"left",said:j(o,p)},f.set(o.href,c),$(c.said),P(o,{left:c.said});let R=u(o);if(r+R>l){let G=C(o,p,t.view,l);return $(G),P(o,{left:G})}return r+=R,c||K(o,p),P(o,c?.state==="ready"?{src:c.url}:{})});for(let[o,p]of f)i.has(o)||(x(p),f.delete(o));return w},drawn:n=>b.get(n),waiting:()=>y!==void 0||[...f.values()].some(n=>n.state==="pending"),dispose(){g=!0,y!==void 0&&y!==!0&&e.clearTimeout(y);for(let n of f.values())x(n);f.clear(),b.clear()}}}async function Z(e,t,a,s){if(typeof e.createImageBitmap!="function")return;let l=await e.createImageBitmap(t);try{if(l.width<=a&&t.size<=s)return t;let h=Math.min(1,a/l.width),u=Math.max(1,Math.round(l.width*h)),m=Math.max(1,Math.round(l.height*h)),d=e.document.createElement("canvas");d.width=u,d.height=m;let f=d.getContext("2d");if(!f)return;f.drawImage(l,0,0,u,m);let b=y=>new Promise(k=>d.toBlob(k,y,.85)),v=/^image\/(jpeg|webp|png)$/i.test(t.type)?t.type:"image/png",g=await b(v);return g&&g.size<=s?g:await b("image/jpeg")??g??void 0}finally{l.close()}}export{J as PICTURES_SETTLE_MS,I as PICTURE_FETCH_BYTES,ee as PICTURE_STAND_IN,Y as PICTURE_WIDTH,ne as createGuestPictures,P as guestFileOf,L as handFiles,B as isGuestPicture,U as pictureBudget,q as pictureWidthOf,Q as picturesChosen,te as standInPictures};
@@ -0,0 +1,7 @@
1
+ import{n as K}from"./chunk.KZUMXT5J.js";import"./chunk.CGK2PY76.js";import{G as R,T as x,ba as N,ca as $}from"./chunk.CYTTZOYL.js";import"./chunk.SDO3U72B.js";import{Ld as v,Md as b,Nd as f,Td as h,Vd as k,pa as g}from"./chunk.Q4MI53KK.js";import"./chunk.FQLNBIQ5.js";import{b as w}from"./chunk.AJZBJBMO.js";var u=w(R(),1);var o=w(x(),1),E=()=>()=>{};function C(e){let n=(0,u.useMemo)(()=>e?.onChange?i=>e.onChange(i):E,[e]),t=()=>e?.current()??b;return(0,u.useSyncExternalStore)(n,t,t)}var D=(e,n)=>e.lens?n.may.lenses:n.may.views;async function p(e,n,t){try{return await n(),!0}catch(i){let r=i?.code,d=typeof r=="string"?r:void 0;return e?.notify({kind:"toast",tone:"bad",sentence:i instanceof Error&&i.message?i.message:t,...d?{code:d}:{}}),!1}}function H(e,n,t,i,r){let d=e.name;return p(r,()=>n==="view"&&d!==void 0?i?t.hide(d):t.show(d):t.lens?.({op:"set-lens-hidden",title:e.title,on:e.kind,hidden:i}),i?`\u201C${e.title}\u201D could not be hidden.`:`\u201C${e.title}\u201D could not be shown.`)}function L(e,n,t,i,r){return p(r,()=>t.lens?.({op:"set-lens-hidden",title:e,hidden:i}),i?`\u201C${n}\u201D could not be hidden.`:`\u201C${n}\u201D could not be shown.`)}function V(e,n,t){return p(t,()=>n.restore(e.name),`\u201C${e.title}\u201D could not be restored.`)}async function A(e,n,t,i){let r=n==="view"&&e.name!==void 0?e.name:v(e.title),d=await p(i,()=>n==="view"&&e.name!==void 0?t.remove(e.name,{title:e.title,kind:e.kind}):t.lens?.({op:"remove-lens",title:e.title,on:e.kind}),`\u201C${e.title}\u201D could not be deleted.`);return d&&i?.notify({kind:"toast",id:`deleted-view-${r}`,sentence:`Deleted \u201C${e.title}\u201D. It is under Recently deleted in the places for ${30} days.`,action:{label:"Restore",onSelect:()=>void V({name:r,title:e.title},t,i)}}),d}function G(){let e=$(),n=e?.keptViews,t=C(n),i=e?.views;return(0,u.useMemo)(()=>{if(!n||!i)return null;let r=s=>f(s,t,n),d=new Set,c=i.places().filter(s=>{if(!s.hidden||r(s)===null)return!1;let m=`${s.name??""}|${s.title}`;return d.has(m)?!1:(d.add(m),!0)}),l=e?.store.schema,y=t.may.lenses&&n.lens&&l?(i.arrangement?.()?.hide??[]).filter(s=>l.tryDefinition(s)!==void 0).map(s=>({kind:s,title:g(l,s),path:h(l,s)})):[];return{keeper:n,hidden:c,lists:y,removed:t.removed.filter(s=>D(s,t)),how:r}},[n,t,i,e?.store.schema])}function T(e,n){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(n??"en-US",{month:"short",day:"numeric"})}var I=`.graview-bar-list li.graview-bar-tidied{display:flex;align-items:flex-start;gap:8px;padding:0 0 0 2px}
2
+ .graview-bar-tidied>.graview-bar-item,.graview-bar-gone{flex:1 1 auto;min-width:0}
3
+ .graview-bar-gone{display:grid;gap:1px;padding:7px 8px;font-size:.875rem;line-height:1.3;overflow-wrap:anywhere;color:var(--graview-ink-muted)}
4
+ .graview-bar-gone small{font-size:.75rem}
5
+ .graview-bar-tidy{flex:0 0 auto;margin:3px 2px;padding:4px 10px;border:1px solid var(--graview-edge);border-radius:6px;background:none;font:inherit;font-size:.8125rem;color:var(--graview-ink);cursor:pointer}
6
+ .graview-bar-tidy:hover{background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
7
+ .graview-bar-tidy:focus-visible{outline:2px solid var(--graview-accent);outline-offset:1px}`;function P({place:e,scene:n,reach:t,done:i}){if(n)return(0,o.jsx)("span",{className:"graview-bar-gone",children:e.title});let r="as"in e?{key:`place:${e.kind}:${e.as}`,label:e.title,path:k(e.as),group:"pictures",kind:e.kind}:{key:`kind:${e.kind}`,label:e.title,path:e.path,group:"lists",kind:e.kind},d=t.href?.(r.path);return(0,o.jsx)(d!==void 0?"a":"button",{className:"graview-bar-item","data-testid":"app-view-hidden-place",...d!==void 0?{href:d}:{type:"button"},onClick:l=>{i(),!(!t.go||d!==void 0&&(l.button!==0||l.metaKey||l.ctrlKey||l.shiftKey||l.altKey))&&(l.preventDefault(),t.go(r))},children:e.title})}function M({id:e,scene:n,reach:t,done:i}){let r=G(),{locale:d}=N(),c=(0,u.useContext)(K);if(!r||r.hidden.length===0&&r.lists.length===0&&r.removed.length===0)return null;let{keeper:l,hidden:y,lists:s,removed:m,how:S}=r;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{children:I}),y.length>0||s.length>0?(0,o.jsxs)("div",{role:"group","aria-labelledby":`${e}-hidden`,"data-place-group":"hidden",children:[(0,o.jsx)("p",{id:`${e}-hidden`,children:"Hidden"}),(0,o.jsxs)("ul",{children:[s.map(a=>(0,o.jsxs)("li",{className:"graview-bar-tidied",children:[(0,o.jsx)(P,{place:a,scene:n,reach:t,done:i}),(0,o.jsx)("button",{type:"button",className:"graview-bar-tidy","data-testid":"app-list-show","data-kind":a.kind,"aria-label":`Show \u201C${a.title}\u201D`,onClick:()=>void L(a.kind,a.title,l,!1,c),children:"Show"})]},`kind:${a.kind}`)),y.map(a=>(0,o.jsxs)("li",{className:"graview-bar-tidied",children:[(0,o.jsx)(P,{place:a,scene:n,reach:t,done:i}),(0,o.jsx)("button",{type:"button",className:"graview-bar-tidy","data-testid":"app-view-show","data-view":a.name??a.title,"aria-label":`Show \u201C${a.title}\u201D`,onClick:()=>void H(a,S(a),l,!1,c),children:"Show"})]},`${a.kind}:${a.as}`))]})]}):null,m.length>0?(0,o.jsxs)("div",{role:"group","aria-labelledby":`${e}-removed`,"data-place-group":"removed",children:[(0,o.jsx)("p",{id:`${e}-removed`,children:"Recently deleted"}),(0,o.jsx)("ul",{children:m.map(a=>(0,o.jsxs)("li",{className:"graview-bar-tidied",children:[(0,o.jsxs)("span",{className:"graview-bar-gone",children:[(0,o.jsx)("span",{children:a.title}),(0,o.jsxs)("small",{children:["until ",T(a.until,d)]})]}),(0,o.jsx)("button",{type:"button",className:"graview-bar-tidy","data-testid":"app-view-restore","data-view":a.name,"aria-label":`Restore \u201C${a.title}\u201D`,onClick:()=>void V(a,l,c),children:"Restore"})]},a.name))})]}):null]})}export{M as TidyGroups,A as remove,V as restore,H as setHidden,L as setListHidden,C as useKeptViewsState,G as useTidied};
@@ -1 +1 @@
1
- import{e as $}from"./chunk.X2I3XH2E.js";import{a as C}from"./chunk.5POG3G2C.js";import{l as M}from"./chunk.4STDIZVI.js";import{Eb as x,ga as k,ha as v,ia as j}from"./chunk.F7PIW2EM.js";function N(a,s){let c=a.tryDefinition(s),r=Object.keys(c?.fields?.shape??{}),m=[c?.lifecycle?.field,...r.filter(l=>/^(status|stage|state|phase)$/i.test(l))].filter(l=>l!==void 0&&r.includes(l));return[...new Set(m)].slice(0,1)}function P(a,s){return a.tryDefinition(s)?.fieldRoles?.title??"label"}function V(a,s,c={}){let r=s.map(e=>a.graph.getNode(e)).filter(e=>e!==void 0);if(r.length===0)return{acts:[],withheld:[]};let u=c.principal??{kind:"human"},m=C(a,r.map(e=>e.id),{...c.derive,principal:u,...c.context?{context:c.context}:{}}),l=new Map(a.allMutations().map(e=>[e.name,e])),g=[...new Set(r.map(e=>e.kind))],p=new Set(g.map(e=>P(a.schema,e))),h=new Set(m.affordances.filter(e=>e.provider==="schema").map(e=>e.mutation)),o=e=>{let n=l.get(e.mutation);if(!n?.subject)return;let t=r.length===1&&e.provider==="invariant"&&!h.has(e.mutation)&&e.args[n.subject.arg]===r[0].id;if(!(e.provider!=="schema"&&!t)&&!(r.length>1&&e.batch?.length!==r.length)&&n.derived?.act!=="edit"&&!e.open.some(i=>p.has(i.name)))return n},y=[],b=new Set;for(let e of m.affordances){let n=o(e);if(!n||b.has(n.name))continue;b.add(n.name);let{[n.subject.arg]:t,...i}=e.args;y.push({id:e.id,label:v(n),mutation:n.name,subject:n.subject.arg,args:i,open:e.open,...e.destructive||e.setsAside?{more:!0}:{},...e.destructive?{destructive:!0}:{},affordance:{...e,label:v(n)}})}if(g.length===1){let e=g[0];for(let n of N(a.schema,e))for(let t of $(a.schema,[...l.values()],e,n)){if(t.by==="none"||r.every(d=>d[n]===t.value))continue;let i=r.find(d=>d[n]!==t.value),f=t.acts.find(d=>{let D=t.by==="step"?{[d.subject.arg]:i.id}:{[d.subject.arg]:i.id,[n]:t.value};return a.permits({name:d.name,args:D},u).ok});if(!f)continue;let w=t.by==="step"?{}:{[n]:t.value};if(t.by==="step"&&y.some(d=>d.mutation===f.name))continue;let R=t.by==="step"?v(f):`Move to ${t.label}`,O=`set:${n}:${t.value}`;y.push({id:O,label:R,mutation:f.name,subject:f.subject.arg,args:w,open:[],affordance:{id:O,label:R,provider:"schema",mutation:f.name,args:{[f.subject.arg]:i.id,...w},open:[],score:0,why:`every one is ${e}`,nodeIds:r.map(d=>d.id)}})}}let S=[...y.filter(e=>!e.more),...y.filter(e=>e.more)],A=m.withheld.filter(e=>{let n=l.get(e.mutation);return n?.subject!==void 0&&n.derived?.act!=="edit"&&(r.length===1||e.batch?.length===r.length)}).map(e=>({label:v(l.get(e.mutation)),message:e.refusal.message}));return{acts:S,withheld:A}}function _(a,s,c,r={}){let u=r.author,m=a.allMutations().find(e=>e.name===s.mutation),l=e=>M(a.schema,a.allMutations(),e),g=e=>{let n=a.graph.getNode(e);return n?k(a.schema.tryDefinition(n.kind),n):e},p=[],h=[],o=[];for(let e of[...new Set(c)]){let n={name:s.mutation,args:{...s.args,[s.subject]:e}};if(!m){p.push({id:e,label:g(e),message:`There is no act \u201C${s.mutation}\u201D.`,reason:"invalid"});continue}let t=a.permits(n,u);if(!t.ok){p.push({id:e,label:g(e),message:t.refusal.message,reason:"forbidden"});continue}if(!a.wouldChange(n,u)){h.push(e);continue}o.push({id:e,call:n})}let y=e=>a.previewAll(e,{...u?{author:u}:{},...r.context?{context:r.context}:{}});for(let e=0;o.length>0;e+=1)try{y(o.map(n=>n.call));break}catch(n){let t=[];for(let i of o)try{y([i.call]),t.push(i)}catch(f){p.push({id:i.id,label:g(i.id),message:l(f),reason:x(f).reason})}if(t.length===o.length||e>o.length){for(let i of t)p.push({id:i.id,label:g(i.id),message:l(n),reason:x(n).reason});o=[];break}o=t}if(o.length===0)return{applied:[],unchanged:h,refused:p};let b=s.label??(m?v(m):s.mutation),S=[...new Set(o.map(e=>a.graph.getNode(e.id)?.kind))],A=`${b} \u2014 ${S.length===1&&S[0]?j(a.schema,S[0],o.length):`${o.length} records`}`;try{let e=a.applyAll(o.map(n=>n.call),{intent:A,...u?{author:u}:{},...r.via?{via:r.via}:{}});return{batch:e.batch,intent:A,applied:o.map(n=>n.id),unchanged:h,refused:p,result:e}}catch(e){let n=l(e),t=x(e).reason;return{applied:[],unchanged:h,refused:[...p,...o.map(i=>({id:i.id,label:g(i.id),message:n,reason:t}))],allOrNothing:!0}}}export{V as a,_ as b};
1
+ import{e as $}from"./chunk.72YXFJKC.js";import{a as C}from"./chunk.57YDGGJK.js";import{l as M}from"./chunk.2KIWGQXC.js";import{Nb as x,la as k,ma as v,na as j}from"./chunk.Q4MI53KK.js";function N(a,s){let c=a.tryDefinition(s),r=Object.keys(c?.fields?.shape??{}),m=[c?.lifecycle?.field,...r.filter(l=>/^(status|stage|state|phase)$/i.test(l))].filter(l=>l!==void 0&&r.includes(l));return[...new Set(m)].slice(0,1)}function P(a,s){return a.tryDefinition(s)?.fieldRoles?.title??"label"}function V(a,s,c={}){let r=s.map(e=>a.graph.getNode(e)).filter(e=>e!==void 0);if(r.length===0)return{acts:[],withheld:[]};let u=c.principal??{kind:"human"},m=C(a,r.map(e=>e.id),{...c.derive,principal:u,...c.context?{context:c.context}:{}}),l=new Map(a.allMutations().map(e=>[e.name,e])),g=[...new Set(r.map(e=>e.kind))],p=new Set(g.map(e=>P(a.schema,e))),h=new Set(m.affordances.filter(e=>e.provider==="schema").map(e=>e.mutation)),o=e=>{let n=l.get(e.mutation);if(!n?.subject)return;let t=r.length===1&&e.provider==="invariant"&&!h.has(e.mutation)&&e.args[n.subject.arg]===r[0].id;if(!(e.provider!=="schema"&&!t)&&!(r.length>1&&e.batch?.length!==r.length)&&n.derived?.act!=="edit"&&!e.open.some(i=>p.has(i.name)))return n},y=[],b=new Set;for(let e of m.affordances){let n=o(e);if(!n||b.has(n.name))continue;b.add(n.name);let{[n.subject.arg]:t,...i}=e.args;y.push({id:e.id,label:v(n),mutation:n.name,subject:n.subject.arg,args:i,open:e.open,...e.destructive||e.setsAside?{more:!0}:{},...e.destructive?{destructive:!0}:{},affordance:{...e,label:v(n)}})}if(g.length===1){let e=g[0];for(let n of N(a.schema,e))for(let t of $(a.schema,[...l.values()],e,n)){if(t.by==="none"||r.every(d=>d[n]===t.value))continue;let i=r.find(d=>d[n]!==t.value),f=t.acts.find(d=>{let D=t.by==="step"?{[d.subject.arg]:i.id}:{[d.subject.arg]:i.id,[n]:t.value};return a.permits({name:d.name,args:D},u).ok});if(!f)continue;let w=t.by==="step"?{}:{[n]:t.value};if(t.by==="step"&&y.some(d=>d.mutation===f.name))continue;let R=t.by==="step"?v(f):`Move to ${t.label}`,O=`set:${n}:${t.value}`;y.push({id:O,label:R,mutation:f.name,subject:f.subject.arg,args:w,open:[],affordance:{id:O,label:R,provider:"schema",mutation:f.name,args:{[f.subject.arg]:i.id,...w},open:[],score:0,why:`every one is ${e}`,nodeIds:r.map(d=>d.id)}})}}let S=[...y.filter(e=>!e.more),...y.filter(e=>e.more)],A=m.withheld.filter(e=>{let n=l.get(e.mutation);return n?.subject!==void 0&&n.derived?.act!=="edit"&&(r.length===1||e.batch?.length===r.length)}).map(e=>({label:v(l.get(e.mutation)),message:e.refusal.message}));return{acts:S,withheld:A}}function _(a,s,c,r={}){let u=r.author,m=a.allMutations().find(e=>e.name===s.mutation),l=e=>M(a.schema,a.allMutations(),e),g=e=>{let n=a.graph.getNode(e);return n?k(a.schema.tryDefinition(n.kind),n):e},p=[],h=[],o=[];for(let e of[...new Set(c)]){let n={name:s.mutation,args:{...s.args,[s.subject]:e}};if(!m){p.push({id:e,label:g(e),message:`There is no act \u201C${s.mutation}\u201D.`,reason:"invalid"});continue}let t=a.permits(n,u);if(!t.ok){p.push({id:e,label:g(e),message:t.refusal.message,reason:"forbidden"});continue}if(!a.wouldChange(n,u)){h.push(e);continue}o.push({id:e,call:n})}let y=e=>a.previewAll(e,{...u?{author:u}:{},...r.context?{context:r.context}:{}});for(let e=0;o.length>0;e+=1)try{y(o.map(n=>n.call));break}catch(n){let t=[];for(let i of o)try{y([i.call]),t.push(i)}catch(f){p.push({id:i.id,label:g(i.id),message:l(f),reason:x(f).reason})}if(t.length===o.length||e>o.length){for(let i of t)p.push({id:i.id,label:g(i.id),message:l(n),reason:x(n).reason});o=[];break}o=t}if(o.length===0)return{applied:[],unchanged:h,refused:p};let b=s.label??(m?v(m):s.mutation),S=[...new Set(o.map(e=>a.graph.getNode(e.id)?.kind))],A=`${b} \u2014 ${S.length===1&&S[0]?j(a.schema,S[0],o.length):`${o.length} records`}`;try{let e=a.applyAll(o.map(n=>n.call),{intent:A,...u?{author:u}:{},...r.via?{via:r.via}:{}});return{batch:e.batch,intent:A,applied:o.map(n=>n.id),unchanged:h,refused:p,result:e}}catch(e){let n=l(e),t=x(e).reason;return{applied:[],unchanged:h,refused:[...p,...o.map(i=>({id:i.id,label:g(i.id),message:n,reason:t}))],allOrNothing:!0}}}export{V as a,_ as b};
@@ -1 +1 @@
1
- import{a as C,e as L,n as H,o as R,p as k}from"./chunk.YGIJDHAV.js";import"./chunk.BJUUSIQY.js";import"./chunk.5POG3G2C.js";import"./chunk.2XSIJH5J.js";import"./chunk.ZVG3DR5G.js";import"./chunk.XOZU4OFA.js";import"./chunk.LA2DMHZC.js";import{a as S}from"./chunk.D5Q64GA4.js";import"./chunk.2QFKNTAZ.js";import"./chunk.UO544PZH.js";import"./chunk.4STDIZVI.js";import"./chunk.HZHNM2KI.js";import"./chunk.AVFOTYZR.js";import"./chunk.HOQMD6WQ.js";import{G as T,Sa as E,T as b}from"./chunk.N7T7VB77.js";import"./chunk.SDO3U72B.js";import{ad as x}from"./chunk.F7PIW2EM.js";import"./chunk.FQLNBIQ5.js";import{b as g}from"./chunk.AJZBJBMO.js";var t=g(T(),1);var c=g(b(),1);function N(n){if(!n||n.interaction.outcome==="failed")return null;let s=n.offers[0],o=s?n.interaction.offered.find(i=>i.id===s.id)?.confidence:void 0;return s&&o!==void 0&&o>=.6?{offer:s,confidence:o}:null}function V({rest:n,hold:s,leave:o}){let i=S(),u=(0,t.useMemo)(()=>C(n.target,e=>i.store.graph.has(e)),[n.target,i.store]),l=u.on==="record"&&L(i.ai)!==void 0,m=l?H(i,u):void 0,p=JSON.stringify(u),[y,I]=(0,t.useState)(null);(0,t.useEffect)(()=>{if(!l||m!==void 0)return;let e=!0;return R(i,u).then(r=>{e&&I({key:p,result:r})}),()=>{e=!1}},[p,l]);let w=m??(y?.key===p?y.result:void 0),f=l?N(w):null,v=f?.offer.id??null,h=(0,t.useRef)(null);if((0,t.useEffect)(()=>{if(v===null)return;let e=r=>{r.target instanceof Node&&h.current?.contains(r.target)||o(!0)};return document.addEventListener("pointerdown",e,{capture:!0,passive:!0}),document.addEventListener("contextmenu",e,{capture:!0,passive:!0}),addEventListener("scroll",e,{capture:!0,passive:!0}),addEventListener("resize",e,{passive:!0}),()=>{document.removeEventListener("pointerdown",e,{capture:!0}),document.removeEventListener("contextmenu",e,{capture:!0}),removeEventListener("scroll",e,{capture:!0}),removeEventListener("resize",e)}},[v,o]),(0,t.useLayoutEffect)(()=>{let e=h.current;if(!e)return;if(typeof e.showPopover=="function"&&!E(e))try{e.showPopover()}catch{}let r=n.element.getBoundingClientRect(),d=e.getBoundingClientRect(),O=r.top-d.height-4>=4?r.top-d.height-4:Math.min(innerHeight-d.height-4,r.top+4),A=Math.max(4,Math.min(innerWidth-d.width-4,r.right-d.width));e.style.top=`${Math.round(O)}px`,e.style.left=`${Math.round(A)}px`},[v,n.element]),!f)return null;let{offer:a,confidence:P}=f,M=a.type==="panel"?"a panel":a.type==="place"?"go there":a.type==="record"?"open it":"suggested";return(0,c.jsxs)("button",{ref:h,type:"button",popover:"manual","data-testid":"hover-chip","data-ai-offer":a.id,"data-ai-offer-type":a.type,"data-graview-overlay":"","data-graview-popover":"","aria-label":`Suggested by AI: ${a.label}`,title:`Suggested by AI, ${Math.round(P*100)}% sure`,onPointerEnter:s,onPointerLeave:()=>o(),onClick:()=>{n.element.closest("[tabindex], a[href], button")?.focus({preventScroll:!0}),o(!0),k(i,w,a)},style:$,children:[(0,c.jsxs)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:["\u2726"," "]}),a.label,(0,c.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",M]})]})}var $={position:"fixed",inset:"auto",top:0,left:0,margin:0,zIndex:x("toast"),boxSizing:"border-box",width:"max-content",maxWidth:"min(320px, calc(100vw - 8px))",height:"auto",minHeight:24,padding:"2px 10px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",borderRadius:999,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",font:"inherit",fontSize:"0.75rem",cursor:"pointer"};export{V as HoverChip};
1
+ import{a as C,e as L,n as H,o as R,p as k}from"./chunk.ZLTHWCKL.js";import"./chunk.BJUUSIQY.js";import"./chunk.57YDGGJK.js";import"./chunk.H7AH3IW4.js";import"./chunk.VCTAFSZ5.js";import"./chunk.XOZU4OFA.js";import"./chunk.4TH3CGAZ.js";import{a as S}from"./chunk.YOUB3J3Y.js";import"./chunk.DZSZUX34.js";import"./chunk.REUMBCSV.js";import"./chunk.2KIWGQXC.js";import"./chunk.D5LOTCBU.js";import"./chunk.KZUMXT5J.js";import"./chunk.CGK2PY76.js";import{G as T,Sa as E,T as b}from"./chunk.CYTTZOYL.js";import"./chunk.SDO3U72B.js";import{qd as x}from"./chunk.Q4MI53KK.js";import"./chunk.FQLNBIQ5.js";import{b as g}from"./chunk.AJZBJBMO.js";var t=g(T(),1);var c=g(b(),1);function N(n){if(!n||n.interaction.outcome==="failed")return null;let s=n.offers[0],o=s?n.interaction.offered.find(i=>i.id===s.id)?.confidence:void 0;return s&&o!==void 0&&o>=.6?{offer:s,confidence:o}:null}function V({rest:n,hold:s,leave:o}){let i=S(),u=(0,t.useMemo)(()=>C(n.target,e=>i.store.graph.has(e)),[n.target,i.store]),l=u.on==="record"&&L(i.ai)!==void 0,m=l?H(i,u):void 0,p=JSON.stringify(u),[y,I]=(0,t.useState)(null);(0,t.useEffect)(()=>{if(!l||m!==void 0)return;let e=!0;return R(i,u).then(r=>{e&&I({key:p,result:r})}),()=>{e=!1}},[p,l]);let w=m??(y?.key===p?y.result:void 0),f=l?N(w):null,v=f?.offer.id??null,h=(0,t.useRef)(null);if((0,t.useEffect)(()=>{if(v===null)return;let e=r=>{r.target instanceof Node&&h.current?.contains(r.target)||o(!0)};return document.addEventListener("pointerdown",e,{capture:!0,passive:!0}),document.addEventListener("contextmenu",e,{capture:!0,passive:!0}),addEventListener("scroll",e,{capture:!0,passive:!0}),addEventListener("resize",e,{passive:!0}),()=>{document.removeEventListener("pointerdown",e,{capture:!0}),document.removeEventListener("contextmenu",e,{capture:!0}),removeEventListener("scroll",e,{capture:!0}),removeEventListener("resize",e)}},[v,o]),(0,t.useLayoutEffect)(()=>{let e=h.current;if(!e)return;if(typeof e.showPopover=="function"&&!E(e))try{e.showPopover()}catch{}let r=n.element.getBoundingClientRect(),d=e.getBoundingClientRect(),O=r.top-d.height-4>=4?r.top-d.height-4:Math.min(innerHeight-d.height-4,r.top+4),A=Math.max(4,Math.min(innerWidth-d.width-4,r.right-d.width));e.style.top=`${Math.round(O)}px`,e.style.left=`${Math.round(A)}px`},[v,n.element]),!f)return null;let{offer:a,confidence:P}=f,M=a.type==="panel"?"a panel":a.type==="place"?"go there":a.type==="record"?"open it":"suggested";return(0,c.jsxs)("button",{ref:h,type:"button",popover:"manual","data-testid":"hover-chip","data-ai-offer":a.id,"data-ai-offer-type":a.type,"data-graview-overlay":"","data-graview-popover":"","aria-label":`Suggested by AI: ${a.label}`,title:`Suggested by AI, ${Math.round(P*100)}% sure`,onPointerEnter:s,onPointerLeave:()=>o(),onClick:()=>{n.element.closest("[tabindex], a[href], button")?.focus({preventScroll:!0}),o(!0),k(i,w,a)},style:$,children:[(0,c.jsxs)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:["\u2726"," "]}),a.label,(0,c.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",M]})]})}var $={position:"fixed",inset:"auto",top:0,left:0,margin:0,zIndex:x("toast"),boxSizing:"border-box",width:"max-content",maxWidth:"min(320px, calc(100vw - 8px))",height:"auto",minHeight:24,padding:"2px 10px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",borderRadius:999,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",font:"inherit",fontSize:"0.75rem",cursor:"pointer"};export{V as HoverChip};
@@ -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{b as v}from"./chunk.BDTT4ENI.js";import"./chunk.AVFOTYZR.js";import"./chunk.HOQMD6WQ.js";import{G as S,S as y,T as b}from"./chunk.N7T7VB77.js";import"./chunk.SDO3U72B.js";import"./chunk.F7PIW2EM.js";import"./chunk.FQLNBIQ5.js";import{b as u}from"./chunk.AJZBJBMO.js";var r=u(S(),1);var t=u(b(),1);function E(o){let a=(0,r.useContext)(y),l=(0,t.jsx)(C,{...o});return!a||o.nodeId===void 0?l:(0,t.jsx)(P,{nodeId:o.nodeId,field:o.field,label:o.label,...o.markdown?{markdown:!0}:{},live:a,onDone:d=>o.onDone?o.onDone(d):o.onCancel(),writtenWhole:l})}var P=(0,r.lazy)(()=>(__graviewPreload(import.meta.url,["./chunk.BDTT4ENI.js","./chunk.AVFOTYZR.js","./chunk.HOQMD6WQ.js","./chunk.N7T7VB77.js","./chunk.SDO3U72B.js","./chunk.F7PIW2EM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.VYFMUCBT.js")));function C({field:o,label:a,value:l,markdown:d,onSave:s,onCancel:c}){let[i,h]=(0,r.useState)(l),[n,w]=(0,r.useState)(!1),f=(0,r.useRef)(null);return(0,r.useEffect)(()=>f.current?.focus(),[n]),(0,r.useLayoutEffect)(()=>{let e=f.current;if(!e||n||typeof CSS<"u"&&CSS.supports?.("field-sizing","content"))return;let p=()=>{e.style.height="auto";let m=getComputedStyle(e);e.style.height=`${e.scrollHeight+parseFloat(m.borderTopWidth)+parseFloat(m.borderBottomWidth)}px`};p();let x=requestAnimationFrame(p);return()=>cancelAnimationFrame(x)},[i,n]),(0,t.jsxs)("form",{style:{display:"grid",gap:8,minWidth:0},onSubmit:e=>{e.preventDefault(),s(i,!1)},children:[n?(0,t.jsx)("div",{"data-graview-preview":o,"aria-label":`${a}, as it will read`,role:"region",style:k,children:(0,t.jsx)(v,{text:i,markdown:!0})}):(0,t.jsx)("textarea",{ref:f,"aria-label":a,"data-graview-field":o,value:i,rows:3,onChange:e=>h(e.target.value),onKeyDown:e=>{e.key==="Escape"?(e.preventDefault(),c()):e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),s(i,!1))},onBlur:e=>{e.relatedTarget instanceof Node&&e.currentTarget.form?.contains(e.relatedTarget)||s(i,!0)},style:T}),(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8},children:[(0,t.jsx)("button",{type:"submit",style:g,children:"Save"}),(0,t.jsx)("button",{type:"button",onClick:c,style:g,children:"Cancel"}),d?(0,t.jsx)("button",{type:"button","aria-pressed":n,onClick:()=>w(!n),style:g,children:n?"Write":"Preview"}):null,(0,t.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"Ctrl or \u2318 Enter saves \xB7 Esc puts it back"})]})]})}var k={minHeight:"7.5em",padding:"8px 10px",border:"1px dashed var(--graview-edge-bright)",borderRadius:6,lineHeight:1.6,minWidth:0},g={font:"inherit",fontSize:"0.8125rem",minHeight:28,padding:"2px 12px"},T={font:"inherit",lineHeight:1.5,width:"100%",boxSizing:"border-box",minHeight:"7.5em",padding:"8px 10px",resize:"vertical",fieldSizing:"content",color:"var(--graview-ink)",background:"var(--graview-panel, transparent)",border:"1px solid var(--graview-edge-bright)",borderRadius:6};export{E as default};
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{b as v}from"./chunk.OTSBF367.js";import"./chunk.KZUMXT5J.js";import"./chunk.CGK2PY76.js";import{G as S,S as y,T as b}from"./chunk.CYTTZOYL.js";import"./chunk.SDO3U72B.js";import"./chunk.Q4MI53KK.js";import"./chunk.FQLNBIQ5.js";import{b as u}from"./chunk.AJZBJBMO.js";var r=u(S(),1);var t=u(b(),1);function E(o){let a=(0,r.useContext)(y),l=(0,t.jsx)(C,{...o});return!a||o.nodeId===void 0?l:(0,t.jsx)(P,{nodeId:o.nodeId,field:o.field,label:o.label,...o.markdown?{markdown:!0}:{},live:a,onDone:d=>o.onDone?o.onDone(d):o.onCancel(),writtenWhole:l})}var P=(0,r.lazy)(()=>(__graviewPreload(import.meta.url,["./chunk.OTSBF367.js","./chunk.KZUMXT5J.js","./chunk.CGK2PY76.js","./chunk.CYTTZOYL.js","./chunk.SDO3U72B.js","./chunk.Q4MI53KK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JIEDJEHK.js")));function C({field:o,label:a,value:l,markdown:d,onSave:s,onCancel:c}){let[i,h]=(0,r.useState)(l),[n,w]=(0,r.useState)(!1),f=(0,r.useRef)(null);return(0,r.useEffect)(()=>f.current?.focus(),[n]),(0,r.useLayoutEffect)(()=>{let e=f.current;if(!e||n||typeof CSS<"u"&&CSS.supports?.("field-sizing","content"))return;let p=()=>{e.style.height="auto";let m=getComputedStyle(e);e.style.height=`${e.scrollHeight+parseFloat(m.borderTopWidth)+parseFloat(m.borderBottomWidth)}px`};p();let x=requestAnimationFrame(p);return()=>cancelAnimationFrame(x)},[i,n]),(0,t.jsxs)("form",{style:{display:"grid",gap:8,minWidth:0},onSubmit:e=>{e.preventDefault(),s(i,!1)},children:[n?(0,t.jsx)("div",{"data-graview-preview":o,"aria-label":`${a}, as it will read`,role:"region",style:k,children:(0,t.jsx)(v,{text:i,markdown:!0})}):(0,t.jsx)("textarea",{ref:f,"aria-label":a,"data-graview-field":o,value:i,rows:3,onChange:e=>h(e.target.value),onKeyDown:e=>{e.key==="Escape"?(e.preventDefault(),c()):e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),s(i,!1))},onBlur:e=>{e.relatedTarget instanceof Node&&e.currentTarget.form?.contains(e.relatedTarget)||s(i,!0)},style:T}),(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8},children:[(0,t.jsx)("button",{type:"submit",style:g,children:"Save"}),(0,t.jsx)("button",{type:"button",onClick:c,style:g,children:"Cancel"}),d?(0,t.jsx)("button",{type:"button","aria-pressed":n,onClick:()=>w(!n),style:g,children:n?"Write":"Preview"}):null,(0,t.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"Ctrl or \u2318 Enter saves \xB7 Esc puts it back"})]})]})}var k={minHeight:"7.5em",padding:"8px 10px",border:"1px dashed var(--graview-edge-bright)",borderRadius:6,lineHeight:1.6,minWidth:0},g={font:"inherit",fontSize:"0.8125rem",minHeight:28,padding:"2px 12px"},T={font:"inherit",lineHeight:1.5,width:"100%",boxSizing:"border-box",minHeight:"7.5em",padding:"8px 10px",resize:"vertical",fieldSizing:"content",color:"var(--graview-ink)",background:"var(--graview-panel, transparent)",border:"1px solid var(--graview-edge-bright)",borderRadius:6};export{E as default};
@@ -1 +1 @@
1
- import{C as O}from"./chunk.F7PIW2EM.js";var k=3,A=k+1,P=A+1,z=(o,r)=>o<r?-1:o>r?1:0;function L(o){return(o??0)>4?k:2}function N(o,r,a){let n=[];for(let d of Object.values(o.tryDefinition(r)?.edges??{}))if(d.to!=="*")for(let i of d.to)i!==r&&a.includes(i)&&!n.includes(i)&&n.push(i);return n}function W(o,r={}){let a=[...o.kinds],n=[...(r.order??[]).filter(e=>a.includes(e)),...a.filter(e=>!(r.order??[]).includes(e)).sort(z)].filter((e,t,s)=>s.indexOf(e)===t),d=e=>n.indexOf(e),i=new Map,g=[],h=(e,t,s)=>{i.set(e,{col:t,row:s,side:L(r.counts?.[e])}),g.push({col:t,row:s})};for(let e of n){let t=o.tryDefinition(e)?.plot??r.plots?.[e];t&&h(e,t.col,t.row)}let l=new Map(n.map(e=>[e,N(o,e,a)])),b=new Set(n.filter(e=>l.get(e).length>0||n.some(t=>l.get(t).includes(e)))),v=new Map,C=new Set,D=e=>{let t=v.get(e);if(t!==void 0)return t;if(C.has(e))return-1;C.add(e);let s=0;for(let c of l.get(e))s=Math.max(s,D(c)+1);return C.delete(e),v.set(e,s),s};for(let e of n)b.has(e)&&D(e);let f=[];for(let e of n)b.has(e)&&(f[v.get(e)]??=[]).push(e);let I=new Map,T=Math.max(1,Math.ceil(Math.sqrt(f.length))),H=Math.max(1,...f.map(e=>e?.length??0)),w=Math.max(P,Math.round(r.pitch??P)),R=(e,t)=>r.upright?{col:e%T*w,row:(Math.floor(e/T)*(H+1)+t)*w}:{col:t*w,row:e===0?0:-e*w},$=e=>!g.some(t=>V(t,e)),S=(e,t,s)=>{let c=s;for(;!$(R(t,c))&&c<s+64;)c++;return i.has(e)||h(e,R(t,c).col,R(t,c).row),c},x=0;f.forEach((e=[],t)=>{let s=u=>{let m=l.get(u).map(p=>I.get(p)).filter(p=>p!==void 0);return m.length>0?m.reduce((p,q)=>p+q,0)/m.length:1/0},c=[...e].sort((u,m)=>s(u)-s(m)||d(u)-d(m)),y=0;for(let u of c)i.has(u)||(y=S(u,t,y),I.set(u,y),x=Math.max(x,y+1),y++)});let j=n.filter(e=>!b.has(e)&&!i.has(e)),M=Math.max(r.upright?x:f.length,Math.ceil(Math.sqrt(j.length*2)),1),E=b.size>0?1:0;return j.forEach((e,t)=>{r.upright?S(e,f.length+E+Math.floor(t/M),t%M):S(e,t%M,x+E+Math.floor(t/M))}),i}function V(o,r){return Math.abs(o.col-r.col)<A&&Math.abs(o.row-r.row)<A}function X(o,r,a,n=.5){return{x:(o-r)*a/2,y:(o+r)*a*n/2}}var G=1,B=/^(done|completed?|closed|finished|shipped|sent|won|lost|passed|declined|dropped|answered|resolved|fixed|archived|cancell?ed|retired|released|published|delivered|paid|merged|rejected|written[-_ ]?up|out)$/i,F=/^(doing|in[-_ ]?progress|active|building|started|working|in[-_ ]?review|review(ing)?|fixing|ongoing|underway|testing|drafting|writing|running)$/i;function _(o,r,a){let n=O(o.tryDefinition(r)?.fields.shape?.[a]);for(;n&&n.innerType!==void 0&&n.type!=="enum";)n=O(n.innerType);if(n?.type!=="enum")return;let d=(n.entries?Object.values(n.entries):n.values??[]).filter(i=>typeof i=="string");return d.length>0?d:void 0}function J(o,r){let a=o.tryDefinition(r);if(!a)return;let n=a.lifecycle,d=Object.keys(a.fields.shape??{}),i=[n?.field,...d.filter(l=>/^(status|stage|state|phase)$/i.test(l))].find(l=>l!==void 0&&_(o,r,l)!==void 0);if(!i)return;let g=_(o,r,i),h=n?.field===i&&Array.isArray(n.retired)?n.retired:[];return{field:i,values:g,tiers:g.map(l=>h.includes(l)||B.test(l)?"done":F.test(l)?"active":"waiting")}}export{P as a,W as b,X as c,G as d,J as e};
1
+ import{C as O}from"./chunk.Q4MI53KK.js";var k=3,A=k+1,P=A+1,z=(o,r)=>o<r?-1:o>r?1:0;function L(o){return(o??0)>4?k:2}function N(o,r,a){let n=[];for(let d of Object.values(o.tryDefinition(r)?.edges??{}))if(d.to!=="*")for(let i of d.to)i!==r&&a.includes(i)&&!n.includes(i)&&n.push(i);return n}function W(o,r={}){let a=[...o.kinds],n=[...(r.order??[]).filter(e=>a.includes(e)),...a.filter(e=>!(r.order??[]).includes(e)).sort(z)].filter((e,t,s)=>s.indexOf(e)===t),d=e=>n.indexOf(e),i=new Map,g=[],h=(e,t,s)=>{i.set(e,{col:t,row:s,side:L(r.counts?.[e])}),g.push({col:t,row:s})};for(let e of n){let t=o.tryDefinition(e)?.plot??r.plots?.[e];t&&h(e,t.col,t.row)}let l=new Map(n.map(e=>[e,N(o,e,a)])),b=new Set(n.filter(e=>l.get(e).length>0||n.some(t=>l.get(t).includes(e)))),v=new Map,C=new Set,D=e=>{let t=v.get(e);if(t!==void 0)return t;if(C.has(e))return-1;C.add(e);let s=0;for(let c of l.get(e))s=Math.max(s,D(c)+1);return C.delete(e),v.set(e,s),s};for(let e of n)b.has(e)&&D(e);let f=[];for(let e of n)b.has(e)&&(f[v.get(e)]??=[]).push(e);let I=new Map,T=Math.max(1,Math.ceil(Math.sqrt(f.length))),H=Math.max(1,...f.map(e=>e?.length??0)),w=Math.max(P,Math.round(r.pitch??P)),R=(e,t)=>r.upright?{col:e%T*w,row:(Math.floor(e/T)*(H+1)+t)*w}:{col:t*w,row:e===0?0:-e*w},$=e=>!g.some(t=>V(t,e)),S=(e,t,s)=>{let c=s;for(;!$(R(t,c))&&c<s+64;)c++;return i.has(e)||h(e,R(t,c).col,R(t,c).row),c},x=0;f.forEach((e=[],t)=>{let s=u=>{let m=l.get(u).map(p=>I.get(p)).filter(p=>p!==void 0);return m.length>0?m.reduce((p,q)=>p+q,0)/m.length:1/0},c=[...e].sort((u,m)=>s(u)-s(m)||d(u)-d(m)),y=0;for(let u of c)i.has(u)||(y=S(u,t,y),I.set(u,y),x=Math.max(x,y+1),y++)});let j=n.filter(e=>!b.has(e)&&!i.has(e)),M=Math.max(r.upright?x:f.length,Math.ceil(Math.sqrt(j.length*2)),1),E=b.size>0?1:0;return j.forEach((e,t)=>{r.upright?S(e,f.length+E+Math.floor(t/M),t%M):S(e,t%M,x+E+Math.floor(t/M))}),i}function V(o,r){return Math.abs(o.col-r.col)<A&&Math.abs(o.row-r.row)<A}function X(o,r,a,n=.5){return{x:(o-r)*a/2,y:(o+r)*a*n/2}}var G=1,B=/^(done|completed?|closed|finished|shipped|sent|won|lost|passed|declined|dropped|answered|resolved|fixed|archived|cancell?ed|retired|released|published|delivered|paid|merged|rejected|written[-_ ]?up|out)$/i,F=/^(doing|in[-_ ]?progress|active|building|started|working|in[-_ ]?review|review(ing)?|fixing|ongoing|underway|testing|drafting|writing|running)$/i;function _(o,r,a){let n=O(o.tryDefinition(r)?.fields.shape?.[a]);for(;n&&n.innerType!==void 0&&n.type!=="enum";)n=O(n.innerType);if(n?.type!=="enum")return;let d=(n.entries?Object.values(n.entries):n.values??[]).filter(i=>typeof i=="string");return d.length>0?d:void 0}function J(o,r){let a=o.tryDefinition(r);if(!a)return;let n=a.lifecycle,d=Object.keys(a.fields.shape??{}),i=[n?.field,...d.filter(l=>/^(status|stage|state|phase)$/i.test(l))].find(l=>l!==void 0&&_(o,r,l)!==void 0);if(!i)return;let g=_(o,r,i),h=n?.field===i&&Array.isArray(n.retired)?n.retired:[];return{field:i,values:g,tiers:g.map(l=>h.includes(l)||B.test(l)?"done":F.test(l)?"active":"waiting")}}export{P as a,W as b,X as c,G as d,J as e};
@@ -1 +1 @@
1
- import{d as i}from"./chunk.VN7I7XIO.js";import{T as o}from"./chunk.N7T7VB77.js";import{b as a}from"./chunk.AJZBJBMO.js";var t=a(o(),1);function s({id:r,label:e,go:n,testId:d}){return n?(0,t.jsx)("button",{type:"button","data-testid":d,"data-record":r,title:`Go to ${e}`,onClick:()=>n(r),style:{all:"unset",display:"inline-flex",maxWidth:"100%",minWidth:0,cursor:"pointer",borderRadius:7},className:"graview-activity-record",children:(0,t.jsx)(i,{label:e})}):(0,t.jsx)(i,{label:e})}export{s as a};
1
+ import{d as i}from"./chunk.MBB5A6BT.js";import{T as o}from"./chunk.CYTTZOYL.js";import{b as a}from"./chunk.AJZBJBMO.js";var t=a(o(),1);function s({id:r,label:e,go:n,testId:d}){return n?(0,t.jsx)("button",{type:"button","data-testid":d,"data-record":r,title:`Go to ${e}`,onClick:()=>n(r),style:{all:"unset",display:"inline-flex",maxWidth:"100%",minWidth:0,cursor:"pointer",borderRadius:7},className:"graview-activity-record",children:(0,t.jsx)(i,{label:e})}):(0,t.jsx)(i,{label:e})}export{s as a};
@@ -0,0 +1,74 @@
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{c as mr}from"./chunk.CGK2PY76.js";import{G as R,Ia as O,Ma as bn,Na as kn,Oa as xn,Ra as j,T as P,Va as Y,a as Ne,ba as fe,ca as J,e as Te,l as gn,m as mn,na as hn,s as yn,v as oe,va as vn,z as wn}from"./chunk.CYTTZOYL.js";import{a as C}from"./chunk.SDO3U72B.js";import{Pc as Xe,Pd as ue,Qd as ae,Rd as an,Td as Ee,Vd as on,Wc as $,Wd as sn,Xc as en,Xd as Z,Yc as nn,_c as rn,ad as tn,ce as ln,db as Ze,de as dn,ee as cn,fe as pn,he as un,ie as Ae,la as Ye,me as fn,pa as Ue,qa as Qe,vb as Je}from"./chunk.Q4MI53KK.js";import{b as v}from"./chunk.AJZBJBMO.js";var He=v(R(),1),Sn=new WeakMap,ge=e=>{let n=Sn.get(e);return n||Sn.set(e,n={open:null,drawn:0,listeners:new Set}),n},yr=e=>{for(let n of[...e.listeners])n()},wr=0;function Mt(e,n){let t=ge(e);t.open=n?{...n,at:++wr}:null,yr(t)}var Pn=e=>n=>{let t=ge(e);return t.listeners.add(n),()=>void t.listeners.delete(n)};function Ln(e){let n=()=>e?ge(e).drawn>0:!1;return(0,He.useSyncExternalStore)(e?Pn(e):hr,n,n)}var hr=()=>()=>{};function Ct(e){let n=()=>ge(e).open;return(0,He.useSyncExternalStore)(Pn(e),n,n)}var V=v(R(),1),En=v(mr(),1);function vr(e){let[n,t]=(0,V.useState)(null),[r,o]=(0,V.useState)(null);return(0,V.useLayoutEffect)(()=>{e.current!==r&&o(e.current)}),(0,V.useLayoutEffect)(()=>{if(!r||typeof ResizeObserver>"u")return;let a=()=>Math.round(r.getBoundingClientRect().width),i=a();t(i);let p=new ResizeObserver(()=>{let c=a();c!==i&&(i=c,(0,En.flushSync)(()=>t(c)))});return p.observe(r),()=>p.disconnect()},[r]),n}function br(e=!0){let[n,t]=(0,V.useState)();return(0,V.useEffect)(()=>{if(!e)return t(void 0);let r=0,o=()=>t(innerHeight),a=()=>{o(),clearTimeout(r),r=window.setTimeout(o,300)},i=p=>{for(let[c,d]of[[window,"resize"],[window,"orientationchange"],[window.visualViewport,"resize"]])c?.[p](d,a)};return i("addEventListener"),o(),()=>{clearTimeout(r),i("removeEventListener")}},[e]),n}var me={position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap"};var A=v(R(),1);var H=v(P(),1),An=6e3;function kr(e){return{...e,notify:n=>e.notify({...n,from:"framework"})}}var xr=e=>({place:"overview",...e&&!/^(aggregate|kind):/.test(e)?{record:e}:{}});function Sr(){let e=[],n=0,t=new Set,r=new Map,o,a=()=>{for(let d of[...t])d()},i=d=>{if(clearTimeout(r.get(d.id)),r.delete(d.id),d.kind!=="toast")return;let u=(d.actions?.length??0)+(d.action?1:0),l=d.timeout??(u>0?!1:An);l!==!1&&r.set(d.id,setTimeout(()=>o?.()?i(d):p(d.id),l))},p=d=>{clearTimeout(r.get(d)),r.delete(d),e.some(u=>u.id===d)&&(e=e.filter(u=>u.id!==d),a())},c=d=>{e=e.some(u=>u.id===d.id)?e.map(u=>u.id===d.id?d:u):[...e,d],i(d),a()};return{notify(d){let u=d.id??`notice-${++n}`;return c({...d,id:u,said:++n}),{id:u,dismiss:()=>p(u),update:l=>{let m=e.find(w=>w.id===u);m&&c({...m,...l,id:u,kind:m.kind,said:l.sentence!==void 0&&l.sentence!==m.sentence?++n:m.said})}}},dismiss:p,hold(d){o=d},list:()=>e,subscribe(d){return t.add(d),()=>t.delete(d)}}}function Pr({notices:e}){let n=e.reduce((p,c)=>!p||c.said>p.said?c:p,void 0),[t,r]=(0,A.useState)(""),[o,a]=(0,A.useState)(""),i=(0,A.useRef)(0);return(0,A.useEffect)(()=>{if(!n||n.said===i.current)return;i.current=n.said;let p=n.tone==="bad";(p?a:r)("");let c=setTimeout(()=>(p?a:r)(n.sentence),50);return()=>clearTimeout(c)},[n]),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)("div",{role:"status","aria-live":"polite","data-testid":"notices-said",style:me,children:t}),(0,H.jsx)("div",{role:"alert","data-testid":"notices-alarm",style:me,children:o})]})}var Lr=(0,A.createContext)(null);function Er({board:e,anchor:n,report:t}){let r=(0,A.useSyncExternalStore)(e.subscribe,e.list,e.list);return(0,A.useEffect)(()=>Tr(Be.prefetch),[]),(0,H.jsxs)(H.Fragment,{children:[r.length>0?(0,H.jsx)(A.Suspense,{fallback:null,children:(0,H.jsx)(Nr,{notices:r,anchor:n,board:e,...t?{report:t}:{}})}):null,(0,H.jsx)(Pr,{notices:r})]})}var Be=O(C(()=>(__graviewPreload(import.meta.url,["./chunk.MB7LKKUD.js","./chunk.KZUMXT5J.js","./chunk.CGK2PY76.js","./chunk.CYTTZOYL.js","./chunk.SDO3U72B.js","./chunk.Q4MI53KK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.2F4AZZQR.js")))),Ar=()=>Be.load().then(()=>{},()=>{}),Nr=Be.part((e,n)=>(0,H.jsx)(e.NoticeStacks,{...n}),{quiet:!0});function Tr(e){let n=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},t=globalThis;if(t.requestIdleCallback){let o=t.requestIdleCallback(n,{timeout:5e3});return()=>t.cancelIdleCallback?.(o)}let r=setTimeout(n,2500);return()=>clearTimeout(r)}var M=O(C(()=>(__graviewPreload(import.meta.url,["./chunk.OXWOUE3W.js","./chunk.ZZAI57VI.js","./chunk.34DRUCH2.js","./chunk.KXFNRJ46.js","./chunk.OMRQTLI5.js","./chunk.MIE3ODQ2.js","./chunk.NEPQBMFT.js","./chunk.2PJ6STKA.js","./chunk.MBB5A6BT.js","./chunk.ERPILTRY.js","./chunk.H7AH3IW4.js","./chunk.U5P23GO7.js","./chunk.GZHZLJBF.js","./chunk.WUVXIUA7.js","./chunk.OJGHDWI6.js","./chunk.BN7C5ZYX.js","./chunk.REUMBCSV.js","./chunk.2KIWGQXC.js","./chunk.D5LOTCBU.js","./chunk.KZUMXT5J.js","./chunk.CGK2PY76.js","./chunk.CYTTZOYL.js","./chunk.SDO3U72B.js","./chunk.Q4MI53KK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.N3T2O6EW.js"))));var y=v(R(),1);var Hn=v(R(),1);var Nn=v(R(),1);function ie(e){return(0,Nn.useMemo)(()=>e===void 0||e===""?void 0:{__html:e},[e])}var _=v(P(),1);function Me({brand:e,size:n=22}){let t=rn(e),r=Tn(t?.light),o=r?Tn(t?.dark):void 0,a=ie(r!==void 0&&$(r)?r:void 0),i=ie(o!==void 0&&$(o)?o:void 0),p={display:"inline-flex",flex:"0 0 auto",height:n,color:"var(--graview-accent)"},c=tn(e);if(c)return(0,_.jsx)("span",{className:"graview-logo graview-emoji-mark","data-testid":"app-mark","aria-hidden":!0,style:{...p,alignItems:"center",fontSize:`${n*.86/16}rem`,lineHeight:1},children:c});if(!r)return null;let d=e?.logoAlt??e?.name??"",u=d!==""&&d!==e?.name,l=u?{role:"img","aria-label":d}:{"aria-hidden":!0};if(o){let w=(h,S,b)=>$(h)?(0,_.jsx)("span",{className:"graview-logo-face","data-graview-scheme-only":b,dangerouslySetInnerHTML:S}):(0,_.jsx)("img",{className:"graview-logo-face","data-graview-scheme-only":b,src:h,alt:""});return(0,_.jsxs)("span",{className:"graview-logo","data-testid":"app-mark",style:p,...l,children:[w(r,a,"light"),w(o,i,"dark")]})}let m=t?.darkFallback==="invert"?{"data-graview-logo-fallback":"invert"}:{};return $(r)?(0,_.jsx)("span",{className:"graview-logo","data-testid":"app-mark",style:p,...m,...l,dangerouslySetInnerHTML:a}):(0,_.jsx)("img",{className:"graview-logo","data-testid":"app-mark",src:r,alt:u?d:"",...m,style:{...p,width:"auto"}})}function Tn(e){if(!(!e||!nn(e)))return $(e)&&en(e)!==null?void 0:e}function Hr(e){(0,Hn.useEffect)(()=>{if(!e||typeof document>"u")return;let n=[...document.querySelectorAll('link[rel~="icon"]')],t=n.map(o=>o.getAttribute("href")),r;n.length===0&&(r=document.createElement("link"),r.rel="icon",r.setAttribute("data-graview-favicon",""),document.head.appendChild(r),n.push(r));for(let o of n)o.href=e;return()=>{r&&r.remove(),n.forEach((o,a)=>{o!==r&&t[a]!==null&&t[a]!==void 0&&o.setAttribute("href",t[a])})}},[e])}var s=v(P(),1),Br=M.part((e,n)=>(0,s.jsx)(e.TidyFoot,{...n}),{quiet:!0}),Mr=M.part((e,n)=>(0,s.jsx)(e.Here,{...n}),{quiet:!0});function Cr(){let e=J(),[n,t]=(0,y.useState)("");return(0,y.useEffect)(()=>e?.store.subscribe((r,o)=>{o.some(a=>a.author.id!==e.principal.id)&&M.load().then(a=>a.sayTheirChange(o,e,t),String)}),[e]),(0,s.jsx)("span",{role:"status",className:"graview-bar-said",children:n})}var Bn="home",Mn="/",U="scene:whole";function Rr(e){let{store:n,principal:t,views:r}=e,o=n.kindsKeptFrom(t),a=n.schema.kinds.filter(f=>!n.modules.disabledKinds.has(f)&&!o.has(f)),i=r?.arrangement?.(),p=r?.places()??[],c=pn(i,n.schema,p),d=cn(n.schema,i,[...n.modules.administered.values()].flatMap(f=>f.kinds??[])),u=(f,x)=>(!n.graph.size.nodes||n.graph.count(f)>0)&&(c?x?c.places.has(`${f}|${x}`):c.kinds.has(f):!d.has(f)),l=[{key:Bn,label:"Home",path:Mn,group:"home",primary:!0}],m=p.filter(f=>a.includes(f.kind)&&f.as!==un),w=m.filter(f=>!f.hidden),h=new Set(ae(w).map(f=>Z(f,p,n.schema).toLowerCase())),S=f=>on(f.as,sn(f,p)?Ee(n.schema,f.kind).slice(1):void 0),b=new Set(i?.hide??[]),L=fn(a,i?.order,w);for(let{kind:f,view:x}of L){if(x){l.push({key:`place:${x.kind}:${x.as}`,label:Z(x,p,n.schema),path:S(x),group:"lists",kind:f,primary:c?c.places.has(`${f}|${x.as}`):!0});continue}let Q=Ue(n.schema,f),T=h.has(Q.toLowerCase());l.push({key:`kind:${f}`,label:T?Qe(n.schema,f):Q,path:Ee(n.schema,f),group:"lists",kind:f,primary:T||b.has(f)?!1:u(f),...b.has(f)?{hidden:!0}:{}})}for(let f of ae(m)){if(L.some(T=>T.view&&ue(T.view,f)))continue;let x=S(f),Q=[f.kind,...f.over??[]].some(T=>a.includes(T)&&u(T,f.as));l.some(T=>T.path===x)||l.push({key:`place:${f.kind}:${f.as}`,label:Z(f,p,n.schema),path:x,group:"pictures",kind:f.kind,primary:Q,hidden:f.hidden})}return a.some(f=>Object.keys(n.schema.tryDefinition(f)?.edges??{}).length>0)&&l.push({key:"connections",label:"Connections",path:"/map",group:"pictures",primary:!1}),l}function Or(e,n){let[t="/",r=""]=n.split("?"),o=e.find(i=>i.path===(r?`${t}?${r}`:t))??e.find(i=>i.path===t);if(o)return o.key;let a=`/${t.split("/").filter(Boolean)[0]??""}`;return e.find(i=>i.group==="lists"&&i.path===a)?.key??null}var Cn=(0,y.createContext)(null),Fr=()=>(0,y.useContext)(Cn),W=30,Rn=48,X=640,Re=4,Ce=2;function On(e){let{widths:n,current:t,room:r,more:o,gap:a=Re,primary:i,most:p=dn}=e;if(n.length===0||!(r>0)||!(o>0)||n.some(l=>!(l>0)))return null;let c=(l,m)=>l.reduce((w,h)=>w+n[h],0)+a*Math.max(0,l.length-1)+(m?a+o:0),d=(l,m)=>t<0||!l.includes(t)||l.slice(0,m).includes(t)?l.slice(0,m):[...l.filter(w=>w!==t).slice(0,m-1),t].sort((w,h)=>w-h),u=d(n.map((l,m)=>m).filter(l=>i?.[l]!==!1||l===t),p);if(c(u,u.length<n.length)<=r)return u.length>=Ce?u:null;for(let l=u.length-1;l>=Ce;l--){let m=d(u,l);if(c(m,!0)<=r)return m}return null}var Vr=`
2
+ .graview-bar{display:block;margin:0;padding:0;container:graview-bar/inline-size;flex:0 0 auto;position:relative;background:var(--graview-bar);border-bottom:1px solid var(--graview-edge);color:var(--graview-ink);font-family:var(--graview-font-body,system-ui)}
3
+ .graview-bar-row{display:flex;flex-wrap:nowrap;align-items:center;gap:16px;height:${Rn-1}px;margin:0;padding:0 16px}
4
+ .graview-bar-home,.graview-bar-face,.graview-bar-place,.graview-bar-item,.graview-bar-at{display:inline-flex;align-items:center;box-sizing:border-box;min-width:0;margin:0;border:0;background:none;box-shadow:none;font:inherit;letter-spacing:normal;text-transform:none;text-decoration:none;color:var(--graview-ink);cursor:pointer;text-align:left}
5
+ .graview-bar-app{display:flex;flex:0 1 auto;max-width:50%}
6
+ .graview-bar-app::after{content:"";flex:0 100000 auto;width:2px;min-width:0}
7
+ .graview-bar-name{margin:0;display:flex;font-family:var(--graview-font-display,var(--graview-font-body,system-ui));font-size:.9375rem;font-weight:600;line-height:1.25}
8
+ .graview-bar-home{gap:8px;min-width:auto;min-height:30px;padding:0;letter-spacing:-.005em}
9
+ .graview-bar-app-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal}
10
+ .graview-bar-faces{display:inline-flex;flex:0 0 auto;box-sizing:border-box;height:30px;margin:0;padding:2px;gap:2px;border:1px solid var(--graview-edge);border-radius:8px}
11
+ .graview-bar-face{gap:6px;padding:0 10px;border-radius:6px;font-size:.8125rem;white-space:nowrap;color:var(--graview-ink-muted)}
12
+ .graview-bar-face span{min-width:0;max-width:11em;overflow:hidden;text-overflow:ellipsis}
13
+ .graview-bar-face[aria-pressed=true]{color:var(--graview-ink);font-weight:600;background:color-mix(in srgb,var(--graview-accent) 16%,transparent)}
14
+ [data-switch-drawn=icons] .graview-bar-face{padding:0 8px}
15
+ .graview-bar-said,[data-switch-drawn=icons] .graview-bar-face span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
16
+ .graview-bar-mid{display:flex;flex:1 100 0;min-width:0}
17
+ .graview-bar-mid[data-place]{min-width:9em;flex-basis:auto}
18
+ .graview-bar-place-at{position:relative;display:inline-flex;min-width:0;max-width:100%}
19
+ .graview-bar-place{gap:6px;height:30px;max-width:100%;padding:0 8px;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:600}
20
+ .graview-bar-face:hover,.graview-bar-place:hover{border-color:var(--graview-edge);color:var(--graview-ink)}
21
+ .graview-bar-place-words{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
22
+ .graview-bar-mid[data-places=standing]{flex:0 0 auto}
23
+ .graview-bar-places{display:flex;align-items:center;gap:${Re}px;min-width:0;margin:0;padding:0}
24
+ .graview-bar-at{gap:6px;flex:0 0 auto;height:30px;padding:0 8px;border-block:2px solid transparent;border-radius:0;font-size:.875rem;font-weight:500;white-space:nowrap;color:var(--graview-ink-muted)}
25
+ .graview-bar-at:is(:hover,[aria-current],[aria-expanded=true]){color:var(--graview-ink)}
26
+ .graview-bar-at[aria-current]{font-weight:600;border-bottom-color:var(--graview-accent)}
27
+ .graview-bar-ruler{position:absolute;left:0;top:0;display:flex;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none}
28
+ .graview-bar-ruler .graview-bar-at{font-weight:600}
29
+ .graview-bar-ruler>.graview-bar-name{flex:none;white-space:nowrap;letter-spacing:-.005em}
30
+ .graview-bar-list{display:grid;align-content:start;width:min(320px,calc(100vw - 24px));height:auto;max-height:min(70vh,560px);overflow:auto;margin:0;padding:6px;border-radius:10px;border:1px solid var(--graview-edge);background:var(--graview-float);box-shadow:var(--graview-lift-high);color:var(--graview-ink)}
31
+ .graview-bar-list[hidden]{display:none}
32
+ .graview-bar-list p{margin:8px 8px 2px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--graview-ink-muted)}
33
+ .graview-bar-list ul,.graview-bar-list li{display:grid;margin:0;padding:0;list-style:none}
34
+ .graview-bar-item{align-items:flex-start;gap:10px;width:100%;padding:7px 8px;border-radius:7px;font-size:.875rem;line-height:1.3;overflow-wrap:anywhere}
35
+ .graview-bar-item:hover{background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
36
+ .graview-bar-item[aria-current]{font-weight:600;background:color-mix(in srgb,var(--graview-accent) 14%,transparent)}
37
+ .graview-bar-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:14px;height:1.3em;color:var(--graview-ink-muted)}
38
+ .graview-bar :focus-visible{outline:2px solid var(--graview-accent);outline-offset:1px}
39
+ .graview-bar-tools{display:contents}
40
+ .graview-bar-tools>*{margin-left:-8px}
41
+ .graview-bar-tools>:is(.graview-bar-find,.graview-bar-find-open){margin-left:auto}
42
+ .graview-bar-own{display:flex;align-items:center;flex:0 0 auto}
43
+ .graview-bar-own:empty{display:none}
44
+ .graview-bar-host{display:flex;align-items:center;gap:2px;flex:0 0 auto}
45
+ .graview-bar-host-action{display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;min-width:${W}px;height:${W}px;margin:0;padding:0 10px;border-radius:8px;border:1px solid transparent;background:none;box-shadow:none;font:inherit;font-size:.875rem;font-weight:500;letter-spacing:normal;text-transform:none;white-space:nowrap;color:var(--graview-ink-muted);cursor:pointer}
46
+ .graview-bar-host-action:is(:hover,[aria-expanded=true]){border-color:var(--graview-edge);color:var(--graview-ink)}
47
+ .graview-bar-host-action[data-folded]{padding:0}
48
+ .graview-bar-host-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;font-size:.9375rem;line-height:1}
49
+ .graview-bar-host-mark svg{width:16px;height:16px}
50
+ .graview-bar-list .graview-bar-host-action{width:100%;justify-content:flex-start;white-space:normal;overflow-wrap:anywhere}
51
+ .graview-bar-find{position:relative;display:flex;min-width:7.5rem;flex:0 600 9rem;--graview-bar-find-end:3.25em}
52
+ .graview-bar-find-slot{display:flex;flex:1;min-width:0}
53
+ .graview-bar-find-keys{position:absolute;right:10px;line-height:30px;pointer-events:none;font-size:.75rem;color:var(--graview-ink-faint)}
54
+ .graview-bar-find:is(:focus-within,:has(input:not(:placeholder-shown))){flex-basis:16rem;--graview-bar-find-end:10px}
55
+ :is(:focus-within,:has(input:not(:placeholder-shown)))>.graview-bar-find-keys,.graview-bar-find-open{display:none}
56
+ .graview-bar-line{display:flex;flex:0 0 auto;padding:6px 8px;background:var(--graview-ground);border-bottom:1px solid var(--graview-edge);font-family:var(--graview-font-body,system-ui)}
57
+ .graview-bar-line .graview-bar-place{height:auto;min-height:32px}
58
+ .graview-bar-line .graview-bar-place-words{white-space:normal}
59
+ @media (pointer:coarse){.graview-bar-find-keys{display:none}}
60
+ @container graview-bar (max-width: ${X-1}px){
61
+ .graview-bar-row{gap:10px;padding:0 12px}
62
+ .graview-bar-app,.graview-bar-home{max-width:none;flex:1 1 auto;min-width:28px}
63
+ .graview-bar-name,.graview-bar-app-name{min-width:0}
64
+ .graview-bar-mid,.graview-bar-find{display:none}
65
+ .graview-bar-find-open{display:inline-flex}
66
+ .graview-bar-own{--graview-activity-mark:inline}
67
+ .graview-bar-own .graview-activity-word{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
68
+ .graview-bar[data-finding] :is(.graview-bar-app,.graview-bar-faces,.graview-bar-find-open){display:none}
69
+ .graview-bar[data-finding] .graview-bar-find{display:flex;flex:1 1 auto;min-width:0}
70
+ }
71
+ @container graview-bar (max-width: 300px){
72
+ .graview-bar-row{gap:4px;padding:0 10px}
73
+ }`,ee={display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,minWidth:W,height:W,padding:0,borderRadius:8,border:"1px solid transparent",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"0.875rem",cursor:"pointer",flex:"0 0 auto"};function Dr({brand:e,name:n,heading:t=1,home:r,faces:o,places:a,current:i,reach:p,tools:c,find:d=!0,description:u,findBox:l,onFind:m,switch:w="words",scenePlaces:h,skips:S,named:b=!0,actions:L}){let se=(0,y.useRef)(null),f=J()?.who.size,[x,Q]=(0,y.useState)(null),[T,Xn]=(0,y.useState)(null),[E,er]=(0,y.useState)(!1),[nr,$e]=(0,y.useState)(!1),[rr,tr]=(0,y.useState)(!0),[_e,ar]=(0,y.useState)(null),[or,ir]=(0,y.useState)(!0),le=o?o.pages.current:!h,te=le?{places:a,current:i,reach:p}:h,xe=te&&{...te,places:an(te.places),here:te.places.find(g=>g.key===te.current)?.label},k=xe&&xe.places.length>0?xe:null,Se=k?k.places.findIndex(g=>g.key===k.current):-1,We=!!o&&w==="words",Ke=k?k.places.map(g=>g.primary===!1?"0":"1").join(""):"",I=(0,y.useCallback)(()=>{let g=se.current;if(!g)return;let B=Zr(g,Se,We,Ke);B!==void 0&&ar(B);let z=B?!0:$r(g);z!==null&&tr(z)},[Se,We,Ke]);(0,y.useLayoutEffect)(()=>{let g=se.current;if(!g)return;let B=()=>{let G=g.getBoundingClientRect().width;er(G<X);let gr=g.querySelector("[data-graview-bar-host-ruler]");ir(G>=X+(gr?.getBoundingClientRect().width??0)),g.style.setProperty("--graview-bar-width",`${Math.round(G)}px`),I()};B();let z=typeof document>"u"?void 0:document.fonts;if(z?.ready.then(I),z?.addEventListener?.("loadingdone",I),typeof ResizeObserver>"u")return()=>z?.removeEventListener?.("loadingdone",I);let pe=new ResizeObserver(B);pe.observe(g);for(let G of g.querySelectorAll(".graview-bar-tools > *"))pe.observe(G);let Le=g.querySelector(".graview-bar-tools"),je=typeof MutationObserver>"u"||!Le?null:new MutationObserver(()=>{for(let G of Le.children)pe.observe(G)});return je?.observe(Le,{childList:!0}),()=>{je?.disconnect(),pe.disconnect(),z?.removeEventListener?.("loadingdone",I)}},[I]);let Pe=(0,y.useRef)(m);Pe.current=m,(0,y.useLayoutEffect)(()=>{Pe.current?.(d&&x?{slot:x,compact:E,own:T}:null)},[d,x,E,T]),(0,y.useLayoutEffect)(()=>()=>Pe.current?.(null),[]);let sr=(0,y.useCallback)(()=>{$e(!0),requestAnimationFrame(()=>x?.querySelector("input")?.focus())},[x]),qe=(0,y.useRef)(null),de=(0,y.useRef)(!1),ze=(0,y.useCallback)(()=>{$e(!1),de.current&&(de.current=!1,requestAnimationFrame(()=>qe.current?.focus()))},[]),lr=t===!1?"span":`h${t}`,dr=r.href!==void 0?"a":"button",cr=g=>B=>{!g||!Dn(B)||(B.preventDefault(),g())},pr=!le,Ge=k&&!E&&_e!==null&&!(Se<0&&k.here)?_e.split(",").map(Number).filter(g=>g<k.places.length):null,ce=k?(0,s.jsx)(Ur,{places:k.places,current:k.current,here:k.here,reach:k.reach,scene:pr,stands:Ge}):null,ur=k?k.places.map(g=>g.label).join(`
74
+ `):"";(0,y.useLayoutEffect)(I,[I,n,e,ur,k?.current,le,E,w,d]);let fr=w==="icons"||!rr||E?"icons":"words";return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("header",{ref:se,className:"graview-bar","data-testid":"app-bar","data-graview-app-bar":"",...nr&&E?{"data-finding":""}:{},children:[(0,s.jsx)("style",{children:Vr}),S,(0,s.jsxs)("div",{className:"graview-bar-row",children:[b?(0,s.jsx)("div",{className:"graview-bar-app",children:(0,s.jsx)(lr,{className:"graview-bar-name",children:(0,s.jsxs)(dr,{...r.href!==void 0?{href:r.href,onClick:cr(r.go)}:{type:"button",onClick:r.go},"data-testid":"app-home",...r.current?{"aria-current":"page"}:{},title:u?`${n} \u2014 ${u}`:`${n} \u2014 home`,className:"graview-bar-home",children:[(0,s.jsx)(Me,{brand:e,size:20}),(0,s.jsx)("span",{className:"graview-bar-app-name","data-testid":"app-name",children:n})]})})}):null,o?(0,s.jsx)(Ir,{faces:o,form:w,drawn:fr}):null,(0,s.jsx)("div",{className:"graview-bar-mid",...Ge?{"data-places":"standing"}:!E&&ce?{"data-place":""}:{},children:E?null:ce}),!E&&k&&k.places.length>1?(0,s.jsxs)("span",{className:"graview-bar-ruler","aria-hidden":"true","data-graview-bar-ruler":"",children:[k.places.map(g=>(0,s.jsx)("span",{className:"graview-bar-at",children:g.label},g.key)),(0,s.jsxs)("span",{className:"graview-bar-at",children:[ye,(0,s.jsx)($n,{})]})]}):null,L&&L.length>0?(0,s.jsx)("span",{className:"graview-bar-ruler","aria-hidden":"true","data-graview-bar-host-ruler":"",children:(0,s.jsx)("span",{className:"graview-bar-host",children:L.map(g=>(0,s.jsxs)("span",{className:"graview-bar-host-action",children:[g.icon?(0,s.jsx)(_n,{icon:g.icon}):null,(0,s.jsx)("span",{children:g.label})]},g.label))})}):null,b?(0,s.jsx)("span",{className:"graview-bar-ruler","aria-hidden":"true",children:(0,s.jsx)("span",{className:"graview-bar-name",children:n})}):null,(0,s.jsxs)("div",{className:"graview-bar-tools",children:[d?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",className:"graview-bar-find-open",ref:qe,"data-testid":"app-find-open","aria-label":"Find",title:"Find",onClick:sr,style:{...ee,display:void 0},children:(0,s.jsx)(qr,{})}),(0,s.jsxs)("div",{className:"graview-bar-find","data-testid":"app-find",onBlur:g=>{let B=g.relatedTarget;B instanceof Node&&g.currentTarget.contains(B)||g.currentTarget.querySelector("input")?.value||ze()},onKeyDownCapture:g=>{g.key==="Escape"&&E&&(de.current=!0)},onKeyDown:g=>{g.key!=="Escape"||!E||(!g.defaultPrevented||!g.currentTarget.querySelector("input")?.value?ze():de.current=!1)},children:[(0,s.jsx)("div",{ref:Q,className:"graview-bar-find-slot",children:l}),(0,s.jsx)(Wr,{})]})]}):null,(0,s.jsx)("div",{ref:Xn,className:"graview-bar-own","data-graview-bar-own":""}),f?(0,s.jsx)(y.Suspense,{fallback:null,children:(0,s.jsx)(Mr,{scene:!le,compact:E})}):null,(0,s.jsx)(Cr,{}),L&&L.length>0?(0,s.jsx)(jr,{actions:L,folded:E||!or}):null,c]})]})]}),E&&ce?(0,s.jsx)("div",{className:"graview-bar-line","data-graview-place-line":"","data-testid":"app-place-line",children:ce}):null]})}function Ir({faces:e,form:n,drawn:t}){let r=o=>{let a=e[o];return(0,s.jsxs)("button",{type:"button",className:"graview-bar-face","data-testid":`app-face-${o}`,"aria-pressed":a.current,title:a.label,...a.reach&&!a.current?{onPointerEnter:a.reach,onPointerDown:a.reach,onFocus:a.reach}:{},onClick:()=>{a.current||a.go()},children:[o==="scene"?(0,s.jsx)(In,{}):(0,s.jsx)(Kr,{}),(0,s.jsx)("span",{children:a.label})]})};return(0,s.jsxs)("div",{className:"graview-bar-faces",role:"group","aria-label":`${e.scene.label} or ${e.pages.label}`,"data-testid":"app-faces","data-switch":n,"data-switch-drawn":t,children:[r("scene"),r("pages")]})}function $r(e){let n=e.querySelector(".graview-bar-faces"),t=e.querySelector(".graview-bar-mid"),r=e.querySelector(".graview-bar-find");if(!n||!t||r?.matches(":focus-within")||e.getBoundingClientRect().width<X)return null;let a=Kn(n),i=t.querySelector(".graview-bar-place-words"),p=i?parseFloat(getComputedStyle(i).fontSize)||14:0,c=i?Math.min(i.scrollWidth+34,14*p):0,d=Vn(e);if(d===null)return!1;let u=t.getBoundingClientRect().width-c-d-Fn(e);if(r&&r.getBoundingClientRect().width>0){let l=parseFloat(getComputedStyle(r).flexBasis);isFinite(l)&&(u-=Math.max(0,l-r.getBoundingClientRect().width))}return n.getAttribute("data-switch-drawn")==="icons"?u>=a+2:u>=-1}function Fn(e){let n=e.querySelector(".graview-bar-row"),t=e.getBoundingClientRect();if(!n||!(t.width>0))return 0;let r=t.right-(parseFloat(getComputedStyle(n).paddingRight)||0),o=r;for(let a of n.querySelectorAll(":scope > *, .graview-bar-tools > *")){if(a.classList.contains("graview-bar-tools")||a.classList.contains("graview-bar-ruler")||a.classList.contains("graview-bar-said"))continue;let i=a.getBoundingClientRect();i.width>0&&(o=Math.max(o,i.right))}return Math.max(0,o-r)}function Vn(e){let n=e.querySelector(".graview-bar-app"),t=e.querySelector(".graview-bar-ruler>.graview-bar-name");if(!n||!t)return 0;let r=i=>i?.getBoundingClientRect().width??0,o=r(n.firstElementChild)-r(e.querySelector(".graview-bar-app-name"))+r(t)+2,a=parseFloat(getComputedStyle(n).maxWidth)/100*(n.parentElement.clientWidth-2*n.offsetLeft)||1/0;return o>a+.5?null:Math.max(0,o-r(n))}var Dn=e=>e.button===0&&!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey);function _r(){let e=globalThis.navigator?.platform??"";return/Mac|iPhone|iPad|iPod/.test(e)?"\u2318K":"Ctrl K"}function Wr(){let e=Ln(J()?.aiDesk);return(0,s.jsx)("span",{className:"graview-bar-find-keys","data-testid":"app-find-keys","aria-hidden":"true",children:e?"/":_r()})}function ne({size:e,box:n=e,children:t}){return(0,s.jsx)("svg",{width:e,height:e,viewBox:`0 0 ${n} ${n}`,"aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto"},children:t})}function In(){return(0,s.jsxs)(ne,{size:14,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 Kr(){return(0,s.jsxs)(ne,{size:14,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 $n(){return(0,s.jsx)(ne,{size:10,children:(0,s.jsx)("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function qr(){return(0,s.jsxs)(ne,{size:16,children:[(0,s.jsx)("circle",{cx:"7",cy:"7",r:"4.75",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,s.jsx)("path",{d:"M10.5 10.5 L14 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function zr({place:e}){if(e.key===U)return(0,s.jsx)(In,{});if(e.group==="home")return(0,s.jsx)(ne,{size:13,box:14,children:(0,s.jsx)("path",{d:"M2 6.5 L7 2 L12 6.5 V12 H2 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})});let n=e.kind?`hsl(${Math.round(Xe(e.kind))} 55% 52%`:"rgb(128 128 128";return(0,s.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:12,height:8,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",background:e.group==="lists"?`${n})`:`linear-gradient(${n}), ${n})) center / 6px 4px no-repeat, ${n} / 0.35)`}})}var Gr=[{group:"home"},{group:"lists",heading:"Lists"},{group:"pictures",heading:"Pictures"}],ye="More";function jr({actions:e,folded:n}){let t=Y("host-actions",{popover:n}),r=e.map(a=>a.label).join(", "),o=a=>e.map(i=>(0,s.jsxs)("button",{type:"button",className:n?"graview-bar-host-action graview-bar-item":"graview-bar-host-action","data-testid":"host-bar-action",onClick:()=>{a(),i.onSelect()},children:[i.icon?(0,s.jsx)(_n,{icon:i.icon}):null,(0,s.jsx)("span",{children:i.label})]},i.label));return n?(0,s.jsxs)("div",{className:"graview-bar-host",children:[(0,s.jsx)("button",{type:"button",className:"graview-bar-host-action","data-testid":"host-bar-actions-open","data-folded":"",...t.trigger,onClick:t.toggle,"aria-label":`${ye} \u2014 ${r}`,title:r,children:(0,s.jsxs)(ne,{size:16,children:[(0,s.jsx)("circle",{cx:"3",cy:"8",r:"1.4",fill:"currentColor"}),(0,s.jsx)("circle",{cx:"8",cy:"8",r:"1.4",fill:"currentColor"}),(0,s.jsx)("circle",{cx:"13",cy:"8",r:"1.4",fill:"currentColor"})]})}),(0,s.jsx)("div",{...t.pane,"data-testid":"host-bar-actions",hidden:!t.open,className:"graview-bar-list",style:j,"aria-label":"From the host",children:o(()=>t.setOpen(!1))})]}):(0,s.jsx)("div",{className:"graview-bar-host","data-testid":"host-bar-actions-standing",role:"group","aria-label":"From the host",children:o(()=>{})})}function _n({icon:e}){let n=ie($(e)?e:void 0);return n?(0,s.jsx)("span",{className:"graview-bar-host-mark","aria-hidden":"true",dangerouslySetInnerHTML:n}):(0,s.jsx)("span",{className:"graview-bar-host-mark","aria-hidden":"true",children:e})}function Wn({place:e,current:n,reach:t,standing:r,done:o}){let a=e.key===n,i=t.href?.(e.path);return(0,s.jsxs)(i!==void 0?"a":"button",{className:r?"graview-bar-at":"graview-bar-item","data-testid":`app-place-${e.key}`,"data-place-path":e.path,...a?{"aria-current":"page"}:{},...i!==void 0?{href:i}:{type:"button"},onClick:c=>{o(),t.go&&(i!==void 0&&!Dn(c)||(c.preventDefault(),t.go(e)))},children:[r?null:(0,s.jsx)("span",{className:"graview-bar-mark",children:(0,s.jsx)(zr,{place:e})}),r&&a?(0,s.jsx)("span",{"data-testid":"app-place-current",children:e.label}):(0,s.jsx)("span",{children:e.label})]})}function Yr({places:e,current:n,reach:t,id:r,done:o}){return(0,s.jsx)(s.Fragment,{children:Gr.map(({group:a,heading:i})=>{let p=e.filter(d=>d.group===a);if(p.length===0)return null;let c=`${r}-${a}`;return(0,s.jsxs)("div",{role:"group",...i?{"aria-labelledby":c}:{"aria-label":p[0].label},"data-place-group":a,children:[i?(0,s.jsx)("p",{id:c,children:i}):null,(0,s.jsx)("ul",{children:p.map(d=>(0,s.jsx)("li",{children:(0,s.jsx)(Wn,{place:d,current:n,reach:t,standing:!1,done:o})},d.key))})]},a)})})}function Ur({places:e,current:n,here:t,reach:r,scene:o,stands:a}){let i=Y("places"),p=(0,y.useRef)(a);i.open||(p.current=a);let c=p.current,u=e.find(b=>b.key===n)?.label??t??"Places",l=c?e.filter((b,L)=>!c.includes(L)):e,m=Qr(e,n,o),w=J(),h=w?.keptViews?.current(),S=!!(h&&(h.removed.length>0||w.views.places().some(b=>b.hidden)||h.may.lenses&&(w.views.arrangement?.()?.hide?.length??0)>0));return(0,s.jsxs)("nav",{className:c?"graview-bar-places":"graview-bar-place-at","aria-label":o?"What the scene shows":"The app\u2019s places",...c?{"data-testid":"app-places-standing"}:{},...m,children:[c?.map(b=>(0,s.jsx)(Wn,{place:e[b],current:n,reach:r,standing:!0,done:()=>{}},e[b].key)),l.length>0||S?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("button",{type:"button",className:c?"graview-bar-at":"graview-bar-place","data-testid":"app-places-open",...i.trigger,onClick:i.toggle,"aria-label":c?`${ye} \u2014 ${l.length} more ${o?"pictures":"places"}`:`${u} \u2014 ${o?"everything the scene shows":"every place"}`,title:c?l.map(b=>b.label).join(", "):u,children:[c?ye:(0,s.jsx)("span",{className:"graview-bar-place-words","data-testid":"app-place-current",children:u}),(0,s.jsx)($n,{})]}),(0,s.jsxs)("div",{...i.pane,"data-testid":"app-places",hidden:!i.open,className:"graview-bar-list",style:j,children:[(0,s.jsx)(Yr,{places:l,current:n,reach:r,id:i.pane.id,done:()=>i.setOpen(!1)}),S&&i.open?(0,s.jsx)(y.Suspense,{fallback:null,children:(0,s.jsx)(Br,{id:i.pane.id,scene:o,reach:r,done:()=>i.setOpen(!1)})}):null]})]}):null]})}function Qr(e,n,t){let r=J()?.setMenuAt,o=a=>{let i=a.target.closest?.("[data-place-path],[data-testid=app-places-open]");if(!i||!r)return;let p={at:0};a.type==="pointerdown"?document.addEventListener("pointerup",()=>p.at||=Date.now(),{once:!0}):a.preventDefault();let c=a.nativeEvent;M.load().then(d=>d.placeGesture(c,i,e,n,t,r,p),String)};return{onContextMenu:a=>a.shiftKey||o(a),onKeyDown:a=>(a.key==="ContextMenu"||a.key==="F10"&&a.shiftKey)&&o(a),onPointerDown:a=>a.pointerType!=="mouse"&&a.isPrimary&&o(a)}}function Zr(e,n,t,r){let o=e.querySelector("[data-graview-bar-ruler]"),a=e.querySelector(".graview-bar-mid");if(!o||!a)return null;let i=e.querySelector(".graview-bar-find");if(i?.matches(":focus-within"))return;if(e.getBoundingClientRect().width<X)return null;let p=Vn(e);if(p===null)return null;let c=[...o.children].map(L=>L.getBoundingClientRect().width),d=c.pop()??0,u=e.querySelector(".graview-bar-faces"),l=u&&t?Kn(u):0,m=u?.getAttribute("data-switch-drawn")==="words"?l:0,w=a.getBoundingClientRect().left+p,h=i?.getBoundingClientRect(),S=(h&&h.width>0?h.right-w-(parseFloat(getComputedStyle(i).minWidth)||0)-16:a.getBoundingClientRect().width-p)-Fn(e),b=[...r].map(L=>L!=="0");return On({widths:c,current:n,room:Math.floor(S+m-l),more:d,primary:b})?.join(",")??null}function Kn(e){return[...e.querySelectorAll(".graview-bar-face span")].reduce((n,t)=>n+t.scrollWidth+10,0)}var Jr=e=>`graview:lenses:${e}`,Xr=(e,n)=>e?.name??n.kinds.join(",");function Oe(e){try{let n=JSON.parse(localStorage.getItem(Jr(e))??"[]");return Array.isArray(n)?n.filter(t=>typeof t?.title=="string"&&typeof t.lens=="string"):[]}catch{return[]}}var K=v(R(),1);var N=v(P(),1);function et({scheme:e,onScheme:n,profileHref:t,keeping:r,hostActions:o=nt,signature:a=!1}){let{store:i,principal:p,seats:c,people:d}=fe(),u=Y("profile"),l=u.open,[m,w]=(0,K.useState)(!1);(0,K.useEffect)(()=>at(we),[]),l&&!m&&w(!0),(0,K.useEffect)(()=>{l&&we()},[l]);let h=p.id===void 0?void 0:i.graph.getNode(p.id),S=h===void 0?p.id===void 0?"Nobody in particular":Ze(p,{graph:i.graph,schema:i.schema,seats:c,people:d}):Ye(i.schema.tryDefinition(h.kind),h);return(0,N.jsxs)("div",{style:{position:"relative"},children:[(0,N.jsx)("button",{type:"button","data-testid":"profile-button",...u.trigger,onClick:u.toggle,onPointerEnter:we,onFocus:we,"aria-label":`${S} \u2014 you, your seat and your settings`,title:`${S} \u2014 you, your seat and your settings`,style:{...ee,borderRadius:999},children:(0,N.jsx)("span",{"aria-hidden":"true","data-testid":"profile-mark",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:W-4,height:W-4,borderRadius:999,fontSize:"0.8125rem",fontWeight:600,background:"var(--graview-panel-muted)",color:"var(--graview-ink)",border:"1px solid var(--graview-edge)"},children:ot(S)})}),(0,N.jsxs)("section",{...u.pane,"aria-label":"Profile","data-testid":"profile","data-graview-offstage":"",hidden:!l,style:{...j,width:280,maxWidth:"calc(100vw - 32px)",maxHeight:"min(62cqh, 520px)",overflowY:"auto",overflowX:"hidden",display:l?"grid":"none",gap:12,padding:12,borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[m?(0,N.jsx)(K.Suspense,{fallback:null,children:(0,N.jsx)(rt,{part:"top",name:S,me:h,profileHref:t,hostActions:o,close:()=>u.setOpen(!1)})}):null,(0,N.jsxs)("div",{className:"graview-profile-keeping","data-testid":"profile-keeping",style:st,children:[(0,N.jsx)("span",{style:it,children:"Keeping this app"}),r]}),m?(0,N.jsx)(K.Suspense,{fallback:null,children:(0,N.jsx)(tt,{part:"rest",name:S,me:h,scheme:e,onScheme:n,hostActions:o,signature:a,close:()=>u.setOpen(!1)})}):null]})]})}var nt=[],we=()=>M.prefetch(),rt=M.part((e,n)=>(0,N.jsx)(e.ProfilePane,{...n}),{what:"The rest of your menu"}),tt=M.part((e,n)=>(0,N.jsx)(e.ProfilePane,{...n}),{quiet:!0});function at(e){let n=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},t=globalThis;if(t.requestIdleCallback){let o=t.requestIdleCallback(n,{timeout:5e3});return()=>t.cancelIdleCallback?.(o)}let r=setTimeout(n,2500);return()=>clearTimeout(r)}function ot(e){return(e.trim()[0]??"?").toUpperCase()}var it={fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},st={paddingTop:10,borderTop:"1px solid var(--graview-edge)"};function lt(e){return!(e==="hidden"||e===!1)}var Fe=v(R(),1);var qn="The whole thing",he=e=>`scene:${e.kind}:${e.as}`;function zn(e){let{view:n}=e,t=e.places.filter(l=>!e.hidden.has(l.kind)),r=ae(t),o=(l,m)=>{if(l===U)return gn(mn(m,!0),"view",null);let w=r.find(h=>he(h)===l);return w?wn(m,w.over?.find(h=>m.focusId===oe(h))??w.kind,w.as):null},a=n.within?.view,i=l=>n.focusId===oe(l.kind)&&(a===void 0?t.filter(m=>m.kind===l.kind).at(-1)===l:a===l.as),p=t.find(l=>i(l)&&(a!==void 0||!n.overview)),c=p?r.find(l=>ue(l,p)):void 0,d=r.filter(l=>!l.hidden||l===c);return{places:[{key:U,label:qn,path:`${Ae}${Te(o(U,Ne))}`,group:"home"},...d.map(l=>({key:he(l),label:Z(l,t,e.schema),path:`${Ae}${Te(o(he(l),Ne))}`,group:"pictures",kind:l.kind,hidden:l.hidden}))],current:c?he(c):U,to:o}}function dt(){let{store:e,views:n,hiddenKinds:t}=fe(),{view:r,go:o}=xn(),a=n.places(),i=(0,Fe.useMemo)(()=>zn({places:a,hidden:t,view:r,schema:e.schema}),[a,t,r,e.schema]),p=(0,Fe.useMemo)(()=>({go:c=>{let d=i.to(c.key,r);d&&o(d)}}),[i,r,o]);return{places:i.places,current:i.current,reach:p}}var re=v(R(),1);var F=v(P(),1),ct=M.part((e,n)=>(0,F.jsx)(e.ProblemRows,{...n}),{what:"The problems",as:"li"}),Ve=()=>M.prefetch();function pt({clean:e="All rules hold"}){let n=kn(),{set:t}=bn(),r=n.length,[o,a]=(0,re.useState)(!1),i=Y("problems",{open:o&&r>0,onOpenChange:a}),p=i.open,c=jn(n,e);return(0,re.useEffect)(()=>{if(r===0)return;let d=setTimeout(Ve,1500);return()=>clearTimeout(d)},[r>0]),(0,F.jsxs)("div",{style:{position:"relative",display:"inline-flex"},children:[(0,F.jsxs)("button",{type:"button","data-testid":"standing",...i.trigger,"aria-disabled":r===0?!0:void 0,"aria-label":c,onClick:r===0?void 0:i.toggle,onPointerEnter:r===0?void 0:Ve,onFocus:r===0?void 0:Ve,title:c,style:{...ee,padding:r===0?0:"0 8px",cursor:r===0?"default":"pointer",color:r===0?"var(--graview-ink-muted)":Gn(n),fontVariantNumeric:"tabular-nums",fontWeight:600},children:[(0,F.jsx)(Yn,{tone:r===0?"var(--graview-good)":Gn(n)}),r>0?(0,F.jsx)("span",{"aria-hidden":"true",children:r}):null]}),p?(0,F.jsx)("ol",{...i.pane,"data-testid":"problems",style:{...j,width:300,maxHeight:"min(48cqh, 420px)",overflow:"auto",margin:0,padding:4,listStyle:"none",display:"grid",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:(0,F.jsx)(re.Suspense,{fallback:null,children:(0,F.jsx)(ct,{violations:n,pick:d=>{t(d.nodeIds),i.setOpen(!1)}})})}):null]})}function jn(e,n){return e.length===0?n:`${Je(e)} \u2014 open what is broken, and what would fix it`}var Gn=e=>e.some(n=>n.status==="could-not-judge"||n.status==="over-budget")?"var(--graview-bad)":"var(--graview-warn)";function Yn({tone:e}){return(0,F.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:999,flex:"0 0 auto",background:e}})}function ut(e,n,t=[]){if(e.focusId)return e.focusId;let o=(e.selection??[]).map(yn).find(a=>a!==null)??t.find(a=>n.includes(a))??n[0]??null;return o===null?null:oe(o)}var be=v(P(),1),ve=O(C(()=>(__graviewPreload(import.meta.url,["./chunk.AWUO3M5D.js","./chunk.VZDHRY3U.js","./chunk.V4HVFLFQ.js","./chunk.A2R53GWF.js","./chunk.B5PJCYBU.js","./chunk.Q2EGESEZ.js","./chunk.SMHP2CQH.js","./chunk.2PJ6STKA.js","./chunk.MBB5A6BT.js","./chunk.T535ZLRM.js","./chunk.ERPILTRY.js","./chunk.OTSBF367.js","./chunk.WVUJXDXZ.js","./chunk.XYGNS637.js","./chunk.DZSZUX34.js","./chunk.4EXC26LI.js","./chunk.PWAP2GJS.js","./chunk.AHPYNDVA.js","./chunk.FNVGNISQ.js","./chunk.GZHZLJBF.js","./chunk.WUVXIUA7.js","./chunk.OJGHDWI6.js","./chunk.BN7C5ZYX.js","./chunk.REUMBCSV.js","./chunk.2KIWGQXC.js","./chunk.D5LOTCBU.js","./chunk.KZUMXT5J.js","./chunk.CGK2PY76.js","./chunk.CYTTZOYL.js","./chunk.SDO3U72B.js","./chunk.Q4MI53KK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.6HKWAHPT.js"))));function ft(){return ve.load().then(()=>{})}var gt=[{cardinality:"one",fidelity:"full",slot:"page"},{cardinality:"one",fidelity:"summary",slot:"card"},{cardinality:"one",fidelity:"glyph",slot:"row"},{cardinality:"many",fidelity:"full"},{cardinality:"many",fidelity:"summary"},{cardinality:"many",fidelity:"glyph"}];function mt({schema:e,specs:n,kind:t,view:r}){let o=ve.current.frameworkViews(e,n).lookup(t,{cardinality:r.cardinality,fidelity:r.fidelity});return o?(0,be.jsx)(o,{...r}):null}var yt=ve.part((e,n)=>(0,be.jsx)(mt,{...n}),{what:"This view"});function Un(e,n,t){for(let r of n.kinds){let o=t?.[r];for(let a of gt){let i=c=>(0,be.jsx)(yt,{schema:n,specs:t,kind:r,view:c}),p=a.slot!==void 0&&o?.[a.slot]!==void 0;p&&(i.says=(c,d)=>ve.current?.frameworkViews(n,t).lookup(r,{cardinality:a.cardinality,fidelity:a.fidelity})?.says?.(c,d)),e.register(r,{cardinality:a.cardinality,fidelity:a.fidelity},p?i:hn(i))}}return e}function wt(e,n){return Un(vn(e),e,n)}var De=v(R(),1);var D=v(P(),1),Qn=O(C(()=>(__graviewPreload(import.meta.url,["./chunk.GHN62OMG.js","./chunk.2RASWDMQ.js","./chunk.XCWZFLIB.js","./chunk.6YK5E7ZQ.js","./chunk.AWUO3M5D.js","./chunk.VZDHRY3U.js","./chunk.V4HVFLFQ.js","./chunk.A2R53GWF.js","./chunk.QAMW5QDT.js","./chunk.B5PJCYBU.js","./chunk.Q2EGESEZ.js","./chunk.SMHP2CQH.js","./chunk.HJCQ6I3S.js","./chunk.EJ4MSVX2.js","./chunk.KQPKYWDM.js","./chunk.72YXFJKC.js","./chunk.2PJ6STKA.js","./chunk.MBB5A6BT.js","./chunk.T535ZLRM.js","./chunk.ERPILTRY.js","./chunk.OTSBF367.js","./chunk.BIDL7GQD.js","./chunk.QS32TO4N.js","./chunk.JVDPRQ7J.js","./chunk.57YDGGJK.js","./chunk.H7AH3IW4.js","./chunk.4TH3CGAZ.js","./chunk.Q5WEOX3Q.js","./chunk.MAHNJO6U.js","./chunk.75GENXGP.js","./chunk.NIAM7OTV.js","./chunk.WVUJXDXZ.js","./chunk.XYGNS637.js","./chunk.DZSZUX34.js","./chunk.4EXC26LI.js","./chunk.PWAP2GJS.js","./chunk.AHPYNDVA.js","./chunk.FNVGNISQ.js","./chunk.GZHZLJBF.js","./chunk.WUVXIUA7.js","./chunk.OJGHDWI6.js","./chunk.BN7C5ZYX.js","./chunk.REUMBCSV.js","./chunk.2KIWGQXC.js","./chunk.D5LOTCBU.js","./chunk.KZUMXT5J.js","./chunk.CGK2PY76.js","./chunk.CYTTZOYL.js","./chunk.SDO3U72B.js","./chunk.Q4MI53KK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ZVG4FXJK.js"))));function ht({lens:e,view:n}){let t=Qn.current.declaredLensView(e);return(0,D.jsx)(t,{...n})}var vt=Qn.part((e,n)=>(0,D.jsx)(ht,{...n}),{what:"This picture"});function bt(e){let n=r=>(0,D.jsx)(De.Suspense,{fallback:null,children:(0,D.jsx)(vt,{lens:e,view:r})});e.lens==="blocks"&&(n.flows=!0);let t=e.lens==="blocks"?e.options.blocks?.[0]:void 0;return typeof t?.headline=="string"&&(n.lede=t),e.create===!1&&(n.creates=!1),n}var Zn=O(C(()=>(__graviewPreload(import.meta.url,["./chunk.AWUO3M5D.js","./chunk.VZDHRY3U.js","./chunk.V4HVFLFQ.js","./chunk.A2R53GWF.js","./chunk.B5PJCYBU.js","./chunk.Q2EGESEZ.js","./chunk.SMHP2CQH.js","./chunk.2PJ6STKA.js","./chunk.MBB5A6BT.js","./chunk.T535ZLRM.js","./chunk.ERPILTRY.js","./chunk.OTSBF367.js","./chunk.WVUJXDXZ.js","./chunk.XYGNS637.js","./chunk.DZSZUX34.js","./chunk.4EXC26LI.js","./chunk.PWAP2GJS.js","./chunk.AHPYNDVA.js","./chunk.FNVGNISQ.js","./chunk.GZHZLJBF.js","./chunk.WUVXIUA7.js","./chunk.OJGHDWI6.js","./chunk.BN7C5ZYX.js","./chunk.REUMBCSV.js","./chunk.2KIWGQXC.js","./chunk.D5LOTCBU.js","./chunk.KZUMXT5J.js","./chunk.CGK2PY76.js","./chunk.CYTTZOYL.js","./chunk.SDO3U72B.js","./chunk.Q4MI53KK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.3JCHJLH6.js"))));function kt({blocks:e,view:n}){let t=Zn.current.homeView(e);return(0,D.jsx)(t,{...n})}var xt=Zn.part((e,n)=>(0,D.jsx)(kt,{...n}),{what:"The home"});function St(e){let n=t=>(0,D.jsx)(De.Suspense,{fallback:null,children:(0,D.jsx)(xt,{blocks:e,view:t})});return Object.defineProperty(n,Symbol.for("graview.home-blocks"),{value:!0}),n}function Pt(e,n){return n.home&&n.home.length>0&&e.home?.(St(n.home)),Jn(e,n),e.arrange?.(n.pages),e}function Jn(e,n,t){for(let r of ln(n).drawn){if(t&&e.places().some(i=>i.title===r.title))continue;let o=bt(r),a={title:r.title,lens:r.lens,...r.across?{across:r.across}:{},...t?{beside:t}:{},...r.hidden?{hidden:!0}:{},over:r.kinds,...t?{}:{declared:!0}};for(let i of r.kinds)e.register(i,{cardinality:"many",fidelity:"full"},o,a),e.register(i,{cardinality:"many",fidelity:"summary"},o,a)}}function Lt(e,n,t){t.length>0&&Jn(e,{schema:n,lenses:t.map(({lens:r,...o})=>({...o,name:r}))},!0)}function Et(e,n,t){Lt(e,n,Oe(t))}var q=v(R(),1),ke=v(P(),1);var Ie=e=>`graview:first-look:${e}`;function At(e,n){if(e.seen!==void 0)try{return typeof e.seen=="function"?e.seen():e.seen}catch{return!0}try{return window.localStorage.getItem(Ie(n))!==null}catch{return!1}}function Nt(e,n){if(e.seen===void 0)try{window.localStorage.setItem(Ie(n),"seen")}catch{}}var Tt=O(C(()=>(__graviewPreload(import.meta.url,["./chunk.CYTTZOYL.js","./chunk.SDO3U72B.js","./chunk.Q4MI53KK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.UAVK54Z6.js")))),Ht=Tt.part((e,n)=>{let t=e.FirstLookHints;return(0,ke.jsx)(t,{...n})},{quiet:!0});function Bt({firstLook:e,root:n,app:t}){let r=(0,q.useRef)(null);r.current=e===!0?{}:e||null;let[o,a]=(0,q.useState)(()=>r.current!==null&&typeof window<"u"&&!At(r.current,t)),i=(0,q.useCallback)(p=>{if(a(!1),p===null)return;let c=r.current??{};Nt(c,t),c.onDone?.(p)},[t]);return!o||r.current===null?null:(0,ke.jsx)(q.Suspense,{fallback:null,children:(0,ke.jsx)(Ht,{root:n,steps:r.current.steps??[],onEnd:i})})}export{ge as a,yr as b,Mt as c,Ln as d,Ct as e,ie as f,Hr as g,vr as h,br as i,me as j,kr as k,xr as l,Sr as m,Lr as n,Er as o,Ar as p,M as q,Rr as r,Or as s,Cn as t,Fr as u,ee as v,Dr as w,et as x,lt as y,dt as z,Jr as A,Xr as B,Oe as C,pt as D,jn as E,Yn as F,ut as G,Pt as H,Lt as I,Et as J,ft as K,wt as L,Bt as M};
@@ -0,0 +1 @@
1
+ import{a as fe,b as Ne,d as Ze,e as He,f as he,g as F,h as ke,j as We}from"./chunk.75GENXGP.js";import{h as Je,i as Xe,j as Qe}from"./chunk.4EXC26LI.js";import{a as ae,b as ce,c as J,d as Ye,e as Q,g as se,h as en}from"./chunk.AHPYNDVA.js";import{c as Be,h as k,i as Ue,j as ze,t as ye}from"./chunk.FNVGNISQ.js";import{A as re,Ha as Ie,Ic as qe,Jc as Ve,Oa as Ke,Pa as oe,Qa as me,b as Z,c as U,e as ue,f as Me,g as P,h as O,hc as Pe,ic as ge,jc as Le,k as L,kc as Ge,l as X,lc as Ce,m as _,n as _e,o as H,p as I,r as $,s as te,t as R,u as j,v as C,w as T,x as n,y as N,z as Y}from"./chunk.Q4MI53KK.js";var be=e=>Object.entries(e).map(([s,i])=>[s,Object.keys(oe(i?.edges))]),$e=(e,s)=>Le(e,be(s));function nn(e){return[...Object.keys(e.acts??{}),...Object.keys(e.kinds).flatMap(s=>Pe(s)),...Ge(be(e.kinds))]}var V=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function tn(e){if(!V(e)||!V(e.kinds))return e;let s;try{let f=Object.fromEntries(Object.entries(e.kinds).map(([g,l])=>[g,V(l)&&V(l.edges)?{edges:l.edges}:{}]));s=nn({acts:V(e.acts)?e.acts:{},kinds:f})}catch{return e}let i=new Set(s),t=!1,o=f=>{if(typeof f!="string"||i.has(f))return f;let g=qe(f,s);return g===void 0?f:(t=!0,g)},a=V(e.policy)&&Array.isArray(e.policy.grants)?{...e.policy,grants:e.policy.grants.map(f=>V(f)&&Array.isArray(f.mutations)?{...f,mutations:f.mutations.map(o)}:f)}:void 0,u=V(e.rules)?Object.fromEntries(Object.entries(e.rules).map(([f,g])=>[f,V(g)&&Array.isArray(g.repairs)?{...g,repairs:g.repairs.map(l=>V(l)?{...l,act:o(l.act)}:l)}:g])):void 0;return t?{...e,...a?{policy:a}:{},...u?{rules:u}:{}}:e}function we(e,s){let i=Ve(e,nn(s));return i&&i!==e?`did you mean "${i}"?`:void 0}var Oe="graview-document",je=1,xe=256*1024,ee=64*1024,vn=["plain","editorial","shader","ascii"];var Se=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,ve=/^[a-z][A-Za-z0-9]*$/,On=/^[a-z0-9\u00df-\u00ff'-]+( [a-z0-9\u00df-\u00ff'-]+){0,2}$/,on=12,sn=60,jn=new Set(["id","kind"]),xn=/^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$/,An=["string","text","number","integer","boolean","date","datetime","enum","list","url","email","image","video","file","app-link","phone","place","duration"];function En(){let e=h=>h in Object.prototype,s=Y(h=>!e(h),"every object already has this name \u2014 choose another"),i=(h,D)=>[...h===void 0?[]:[Me(h)],...D===void 0?[]:[ue(D)]],t=(h,D)=>O().check(...i(h,D)),o=(h,D,ne)=>I(h).check(...i(D,ne)),a=h=>O().check(P(Se,`${h} names are kebab-case, lower-case words joined by hyphens like "tool-note" (field and relation names are camelCase, like "supersededBy")`)),u=O().check(P(xn,'relation names are one camelCase word, like "supersededBy" (kind names are kebab-case, like "tool-note")'),s),f=O().check(P(ve,'field names are one word or camelCase, like "dueDate", so rules say them bare (kind names are kebab-case, like "tool-note")'),Y(h=>!jn.has(h),'a field cannot be called "id" or "kind" \u2014 the framework keeps those; try "type" or "category"'),s),g=t(1,500),l=O().check(ue(40),P(On,'an alias is up to three lower-case words, like "supplier"')),r=t(1,2e3),p=t(1,300),y=$({type:C(An),required:n(_()),description:n(g),label:n(t(1,60)),aliases:n(o(l,1,on)),options:n(o(t(1,80),1,100)),multiple:n(_()),optionLabels:n(j(t(1,80),t(1,80))),of:n(C(["string","number","date","image","video","file"])),default:n(H()),unit:n(t(void 0,12)),format:n(C(["money","percent","duration","markdown"])),places:n(T(0)),min:n(L()),max:n(L()),step:n(L()),renamedFrom:n(O().check(P(ve))),repeats:n(_()),collaborative:n(_())}).check(re((h,D)=>{h.type==="enum"&&!h.options&&D.addIssue({code:"custom",message:'an enum field lists its "options"',path:["options"]}),h.type!=="enum"&&h.options&&D.addIssue({code:"custom",message:'"options" belongs only on an enum field',path:["options"]}),h.type!=="enum"&&h.multiple!==void 0&&D.addIssue({code:"custom",message:'"multiple" belongs only on an enum field: a choice that takes several of its options',path:["multiple"]});for(let ne of Object.keys(h.optionLabels??{}))h.options?.includes(ne)||D.addIssue({code:"custom",message:`"${ne}" is labeled, and is none of the field's options`,path:["optionLabels",ne]});h.type!=="list"&&h.of&&D.addIssue({code:"custom",message:'"of" belongs only on a list field',path:["of"]}),h.places!==void 0&&!(h.format==="money"||!h.format&&/^[A-Z]{3}$/.test(h.unit??""))&&D.addIssue({code:"custom",message:'"places" belongs only on money: a number field with "format": "money"',path:["places"]}),h.repeats&&h.type!=="date"&&h.type!=="datetime"&&D.addIssue({code:"custom",message:'"repeats" belongs only on a date or datetime field',path:["repeats"]})})),m=O().check(P(new RegExp(`${Se.source}|${Ie.source}`),'a relation goes to a kind of this document, like "house", or of another app, like "@nick/house/house"')),d=$({to:R([o(m,1),T("*")]),cardinality:n(C(["one","many"])),description:n(g),inverse:n(t(1,80)),appendOnly:n(_()),renamedFrom:n(O()),tidying:n(T("never"))}),c=R([r,$({expr:r,label:n(t(1,60)),description:n(g),format:n(C(["money","percent","duration"])),unit:n(t(1,12)),places:n(T(0)),hidden:n(_())})]),w=R([O(),L(),_(),_e(),I(H()),$({expr:r})]),b=$({noun:n(t(1,40)),plural:n(t(1,40)),aliases:n(o(l,1,on)),description:n(g),fields:j(f,y).check(Y(h=>Object.keys(h).length>0,"a kind has at least one field")),label:n(p),describe:n(p),lifecycle:n($({field:f,retired:o(R([O(),L(),_()]),1)})),figure:n(t(void 0,2e4)),glance:n(o(f,1,20)),page:n($({fields:n(o(f,1,40)),groups:n(o($({title:t(1,60),fields:o(f,1,40)}),1,12))})),edges:n(j(u,d)),computed:n(j(O(),c).check(Y(h=>Object.keys(h).length<=sn,`a kind works out at most ${sn} computed fields`))),fieldRoles:n(j(O(),O())),renamedFrom:n(O().check(P(Se))),people:n(_()),archives:n(T(!1)),tidying:n(C(["never","no-links"])),derives:n($({from:a("kind"),via:u,set:j(f,w)}))}),S=O().check(P(/^\$[A-Za-z][A-Za-z0-9]*$/,'a reference is "$" and a name, like "$subject" or "$new"')),x=R([$({create:a("kind"),as:n(O().check(P(ve))),set:n(j(f,w))}),$({set:j(f,w),target:n(S)}),$({connect:u,from:S,to:S}),$({sever:u,from:S,to:S}),$({remove:S})]),E=$({title:n(t(1,80)),description:n(g),fromTheOtherEnd:n(t(1,80)),on:n(R([a("kind"),o(a("kind"),1)])),creates:n(a("kind")),sets:n(j(f,w)),writes:n(o(f,1)),connects:n(u),severs:n(u),setsOther:n(j(f,w)),setsLinked:n(j(u,j(f,w))),replaces:n(R([T(!0),o(u,1,10)])),removes:n(T(!0)),args:n(j(f,y)),effects:n(o(x,1,20)),allowedWhen:n(r),refusal:n(p),destructive:n(_())}),v=$({act:a("act"),label:n(t(1,80)),args:n(j(O(),w))}),B=$({every:a("kind"),through:u,via:n(u)}),G=$({title:n(t(1,120)),description:n(g),over:R([T("graph"),a("kind")]),when:n(r),require:n(r),covers:n(B),says:n(p),repairs:n(o(v,void 0,10))}).check(re((h,D)=>{!h.require&&!h.covers&&D.addIssue({code:"custom",message:'a rule says what must hold in "require", or what each record must be linked to in "covers"',path:["require"]}),h.require&&h.covers&&D.addIssue({code:"custom",message:'a rule is judged by "require" or by "covers", not both',path:["covers"]}),h.covers&&h.over==="graph"&&D.addIssue({code:"custom",message:'a coverage rule is over a kind, whose records it follows through their links; name the kind in "over"',path:["over"]})})),z=$({roles:R([o(a("role"),1),T("*")]),mutations:R([o(a("act")),T("*")]),kinds:n(R([I(a("kind")),T("*")])),describe:n(g),self:n(_()),ownEnd:n(_()),propose:n(R([o(a("act"),1),T("*")]))}).check(re((h,D)=>{Array.isArray(h.mutations)&&h.mutations.length===0&&h.propose===void 0&&D.addIssue({code:"custom",message:'a grant names at least one act in "mutations", or the acts it lets these roles propose in "propose"',path:["mutations"]})})),A=n(o(f,1)),M=$({roles:R([o(a("role"),1),T("*")]),kinds:o(a("kind"),1),own:n(_()),via:n(u),fields:A,hide:A}),ie=$({grants:I(z),sees:n(I(M))}),W=$({accent:n(O().check(P(/^#[0-9a-fA-F]{6}$/,'an accent is a color like "#c2577a"'))),ground:n(R([O().check(P(/^#[0-9a-fA-F]{6}$/,'a ground is a color like "#eef3f8"')),$({light:n(O().check(P(/^#[0-9a-fA-F]{6}$/,'a ground is a color like "#eef3f8"'))),dark:n(O().check(P(/^#[0-9a-fA-F]{6}$/,'a ground is a color like "#101826"')))})])),name:n(t(1,60)),currency:n(O().check(P(/^[A-Z]{3}$/,'a currency is its three-letter code, like "USD" or "EUR"'))),locale:n(t(2,35)),timeZone:n(t(1,64)),logo:n(R([t(1,ee),$({src:t(1,ee),alt:n(t(1,120))}),$({light:t(1,ee),dark:n(t(1,ee)),alt:n(t(1,120)),darkFallback:n(T("invert"))})])),favicon:n(R([t(1,ee),$({emoji:O()})])),typography:n($({display:n(t(1,200)),body:n(t(1,200)),mono:n(t(1,200))})),shape:n($({radius:n(L().check(U(0),Z(32))),density:n(L().check(U(.75),Z(1.5)))})),accents:n(j(O(),L().check(U(0),Z(360)))),scheme:n(C(["light","dark","auto"])),subtitle:n(T(!1)),splash:n($({style:C(vn),image:n(t(1,ee)),title:n(t(1,80)),kicker:n(t(1,80)),shader:n(t(1,40))})),views:n($({css:n(t(1)),motion:n(C(["none","fade"]))}))}),q=j(O(),H()),Fe=R([t(1,120),$({by:t(1,120),direction:n(C(["asc","desc"]))})]),De=L().check(X(),U(1),Z(9999)),hn=te({create:n(_()),options:n(te({sort:n(Fe),columnSort:n(Fe),search:n(o(t(1,120),void 0,40)),filters:n(o(t(1,120),void 0,40)),horizon:n(R([L().check(X(),U(1),Z(200)),te({years:L().check(X(),U(1),Z(200)),title:t(1,80),from:n(De),to:n(De)})]))}))}),kn=$({card:n(I(H())),row:n(I(H())),page:n(I(H()))}),bn=()=>{let h=n(C(["asc","desc"]));return R([t(1,120),$({by:t(1,120),direction:h,then:n(R([t(1,120),$({by:t(1,120),direction:h})]))})])},$n=()=>R([t(1,120),$({by:t(1,120),order:n(o(t(1,80),void 0,40)),closed:n(o(t(1,80),void 0,40))})]),Te=te({order:n(I(O())),hide:n(I(O())),first:n(O()),primary:n(o(t(1,80),void 0,40)),scene:n(t(1,40)),pages:n(t(1,40)),lists:n(j(O(),$({filters:n(o(t(1,120),void 0,40)),sort:n(bn()),group:n($n()),export:n(_())})))}),wn=$({act:a("act"),title:n(t(1,80)),intro:n(g),fields:n(o(f,1,40)),say:n(g),submit:n(t(1,80)),role:n(a("role"))}),Sn=$({$schema:n(O()),format:T(Oe),formatVersion:T(je),name:t(1,80),description:n(g),version:n(L().check(X(),U(1))),kinds:j(a("kind"),b).check(Y(h=>Object.keys(h).length>0,"a document declares at least one kind"),Y(h=>Object.keys(h).length<=40,"a document declares at most 40 kinds")),computed:n(j(O(),c)),acts:n(j(a("act"),E)),rules:n(j(a("rule"),G)),roles:n(I(a("role"))),policy:n(ie),modules:n(q),lenses:n(I(hn)),pages:n(Te),views:n(j(O(),R([kn,I(H())]))),brand:n(W),settings:n(I(q)),migrations:n(I(q)),connections:n(j(a("connection"),q)),purpose:n(q),workflows:n(j(a("workflow"),q)),forms:n(j(a("form"),wn)),publishing:n($({mode:C(["live","on-publish"]),working:o(a("role"),void 0,40),publishers:n(o(a("role"),1,40))})),tidying:n($({autoAcceptAt:n(L().check(X(),U(1),Z(1e4)))}))});return{FieldSpec:y,EdgeSpec:d,ComputedSpec:c,KindSpec:b,ValueSpec:w,EffectSpec:x,ActSpec:E,RepairSpec:v,CoverSpec:B,RuleSpec:G,GrantSpec:z,SightSpec:M,PolicySpec:ie,BrandSpec:W,PagesSpec:Te,DocumentSpec:Sn}}var Rn,K=()=>Rn??=En(),Xn=N(()=>K().FieldSpec),Qn=N(()=>K().EdgeSpec),et=N(()=>K().ComputedSpec),nt=N(()=>K().KindSpec),tt=N(()=>K().ValueSpec),ot=N(()=>K().EffectSpec),st=N(()=>K().ActSpec),it=N(()=>K().RepairSpec),rt=N(()=>K().CoverSpec),at=N(()=>K().RuleSpec),ct=N(()=>K().GrantSpec),lt=N(()=>K().SightSpec),dt=N(()=>K().PolicySpec),pt=N(()=>K().BrandSpec),ft=N(()=>K().PagesSpec),rn=N(()=>K().DocumentSpec);var Fn={};function an(e,s=Fn,i=je){let{document:t,respelled:o}=Ne(e),a=o.length>0?{respelled:o}:{};if(!t||typeof t!="object"||Array.isArray(t))return{document:t};let u=t;if(u.format!==Oe||typeof u.formatVersion!="number"||u.formatVersion>=i)return{document:t,...a};let f=u.formatVersion,g=structuredClone(u);for(let l=f;l<i;l++){let r=s[l];if(!r)throw new Error(`there is no upgrade from format ${l} to ${l+1}`);g={...r(g),formatVersion:l+1}}return{document:g,from:f,...a}}function Ae(e,s,i){let t=Object.keys(e).filter(f=>e[f].edges?.[s]!==void 0);if(t.length===0)return;let o=t.map(f=>e[f].edges[s].to),a=o.some(f=>f==="*")?"*":[...new Set(o.flatMap(f=>f))];if(i.length===0||i.some(f=>t.includes(f)))return{reversed:!1,kinds:a};let u=t.filter(f=>{let g=e[f].edges[s].to;return g==="*"||i.every(l=>g.includes(l))});return u.length>0?{reversed:!0,kinds:u}:{reversed:!1,kinds:a}}var dn=(e,s)=>{let i=e?.fields[s];return i!==void 0&&(i.type==="duration"||(i.type==="number"||i.type==="integer")&&i.format==="duration")};function cn(e,s,i,t){if(t==="out"){let o=e[s]?.edges?.[i]?.to;return o===void 0?[]:o==="*"?Object.keys(e):o}return Object.entries(e).filter(([,o])=>{let a=o.edges?.[i]?.to;return a!==void 0&&(a==="*"||a.includes(s))}).map(([o])=>o)}function Ee(e,s,i){if(i.t==="ident")return e[s]?.edges?.[i.name]?cn(e,s,i.name,"out"):void 0;if(i.t==="where")return Ee(e,s,i.set);if(i.t==="call"&&(i.fn==="out"||i.fn==="in")&&i.args[0]?.t==="lit"&&typeof i.args[0].value=="string")return cn(e,s,i.args[0].value,i.fn)}var ln=(e,s,i)=>{let t=s.filter(o=>e[o]?.fields[i]!==void 0);return t.length>0&&t.every(o=>dn(e[o],i))};function pn(e,s,i){let t=e.kinds,o=t[s],a=new Map(i),u=new Map,f=(l,r)=>{if(r>8)return!1;switch(l.t){case"ident":return dn(o,l.name)||g(l.name,r+1);case"member":{let p=Ee(t,s,l.object);return p!==void 0&&ln(t,p,l.name)}case"call":{if(l.fn!=="sum"&&l.fn!=="min"&&l.fn!=="max")return!1;let[p,y]=l.args,m=p&&Ee(t,s,p);return m!==void 0&&y?.t==="ident"&&ln(t,m,y.name)}case"binary":return(l.op==="+"||l.op==="-")&&f(l.left,r)&&f(l.right,r);case"unary":return l.op==="-"&&f(l.operand,r);default:return!1}},g=(l,r)=>{if(o?.computed?.[l]===void 0)return!1;if(u.has(l))return u.get(l);u.set(l,!1);let p=a.get(l),y=p!==void 0&&f(p,r);return u.set(l,y),y};return i.map(([l])=>l).filter(l=>g(l,0))}var Dn="several choices";var Tn={title:["string","text"],rich_text:["string","text"],number:["number","integer"],select:["enum","string"],status:["enum","string"],multi_select:["list",Dn],date:["date","datetime"],checkbox:["boolean"],url:["url","string"],email:["email","string"],phone_number:["phone","string"],people:["string","text","list"]};var fn=new Set(Object.values(Tn).flat());function un(e,s){let i=new Map;if(!e||typeof e!="object")return new Map;let t=Object.values(e).flatMap(o=>o&&typeof o=="object"&&o.system==="notion"&&Array.isArray(o.sources)?o.sources.filter(a=>a&&typeof a=="object").map(a=>({system:"notion",kind:a.kind,properties:a.properties})):[o]);for(let o of t){if(!o||typeof o!="object"||typeof o.kind!="string")continue;let a=s[o.kind]?.fields;if(!a)continue;let u=[];o.system==="google-calendar"&&o.fields&&typeof o.fields=="object"?u=Object.values(o.fields).filter(g=>typeof g=="string"):o.system==="notion"&&(u=o.properties&&typeof o.properties=="object"?Object.keys(o.properties):Object.keys(a).filter(g=>fn.has(a[g].type)));let f=i.get(o.kind)??new Set;for(let g of u)Object.hasOwn(a,g)&&f.add(g);i.set(o.kind,f)}return new Map([...i].filter(([,o])=>o.size>0).map(([o,a])=>[o,Object.keys(s[o].fields).filter(u=>a.has(u))]))}function mn(e,s,i=`kinds.${e}.page`){let t=s.page;if(!t)return[];let o=[],a=[...Object.keys(s.fields),...Object.keys(s.computed??{})],u=new Set,f=(l,r)=>{a.includes(l)?u.has(l)&&o.push(k("page-field-twice",r,`"${l}" is on ${e}'s page twice; name each field once`)):o.push(k("page-field",r,`${e}'s page is to show "${l}", and ${e} has no field or computed field called that`,`use one of: ${a.join(", ")}`)),u.add(l)};(t.fields??[]).forEach((l,r)=>f(l,`${i}.fields.${r}`));let g=new Set;return(t.groups??[]).forEach((l,r)=>{let p=l.title.trim().toLowerCase();g.has(p)&&o.push(k("page-group-twice",`${i}.groups.${r}.title`,`${e}'s page has two groups called "${l.title}"; give each its own title`)),g.add(p),l.fields.forEach((y,m)=>f(y,`${i}.groups.${r}.fields.${m}`))}),o}function gn(e,s=[]){return Ce({declared:Object.keys(e.fields),paged:[...e.page?.fields??[],...(e.page?.groups??[]).flatMap(i=>i.fields)],must:i=>!!e.fields[i].required&&e.fields[i].default===void 0,naming:s})}var Nn=new Set(["subject","now","today","me"]);function Mn(e){if((typeof e=="string"?e:JSON.stringify(e??null)).length>xe)return{findings:[k("too-large","",`a document may be at most ${xe/1024} KB`)]};if(typeof e=="string")try{e=JSON.parse(e)}catch(t){return{findings:[k("not-json","",`this is not JSON: ${t.message}`)]}}try{e=an(e).document}catch(t){return{findings:[k("format","formatVersion",t.message)]}}e=tn(e);let s=rn.safeParse(e);if(!s.success)return{findings:s.error.issues.map(t=>{let o=t.path.map(String).join(".");if(t.code==="unrecognized_keys")return k("unknown-key",o,`${t.keys.map(a=>`"${a}"`).join(", ")} ${t.keys.length===1?"is":"are"} not part of a Graview document here`,"check the spelling against docs/declaration-document.md");if(t.code==="invalid_union"&&/\.effects\.\d+$/.test(o))return k("effect-shape",o,"this effect is not one Graview knows",'an effect is one of {"create": kind, "as"?: name, "set"?: {field: value}}, {"set": {field: value, \u2026}, "target"?: "$ref"}, {"connect"|"sever": relation, "from": "$ref", "to": "$ref"}, {"remove": "$ref"}');if(t.code==="invalid_key"){let a=t.issues?.[0]?.message;return k("shape",o,`the name "${String(t.path.at(-1))}" is not allowed here${a?`: ${a}`:""}`)}return k("shape",o,t.message)})};let i=s.data;return{document:i,findings:_n(i)}}var pe=e=>[e??[]].flat();function zn(e){let s=new Map;for(let[i,t]of Object.entries(e.kinds))for(let[o,a]of Object.entries(oe(t.edges))){let u=s.get(o);s.set(o,{name:o,from:[...u?.from??[],i],to:a.to==="*"||u?.to==="*"?"*":[...new Set([...u?.to??[],...a.to])],cardinality:a.cardinality??"many"})}return s}function Ht(e){let s=new Map;for(let[t,o]of Object.entries(e.kinds)){let a=se(o),u=me(o.edges);s.set(t,{fields:new Set([...Object.keys(o.fields),...u.keys()]),edges:new Map(Object.entries(oe(o.edges)).map(([f,g])=>[f,g.cardinality??"many"])),...a?{computed:a}:{},...u.size>0?{linked:u}:{}})}let i=se(e);return i&&s.set(Be,{computed:i}),s}function yn(e,s){let i=[],t=pe(e.on),o=(a,u)=>{let f=Ae(s.kinds,a,t)?.reversed===!0,[g,l]=f?["$to","$subject"]:["$subject","$to"];return u==="connect"?{connect:a,from:g,to:l}:{sever:a,from:g,to:l}};if(e.creates){let a=s.kinds[e.creates],u={};for(let f of Object.keys(a?.fields??{}))u[f]=`$${f}`;for(let f of e.effects??[])"set"in f&&!("create"in f)&&F(f.target)==="new"&&Object.assign(u,f.set);i.push({create:e.creates,as:"new",set:u})}if(e.sets&&i.push({set:e.sets}),e.writes&&!(e.creates&&e.on===void 0)&&i.push({set:Object.fromEntries(e.writes.map(a=>[a,`$${a}`]))}),e.connects&&(e.replaces&&i.push({replace:e.replaces===!0?[e.connects]:[...e.replaces],keep:e.connects}),i.push(o(e.connects,"connect"))),e.severs&&i.push(o(e.severs,"sever")),e.setsOther&&(e.connects||e.severs)&&i.push({set:e.setsOther,target:"$to"}),e.setsLinked&&t.length>0)for(let[a,u]of Object.entries(e.setsLinked))i.push({set:u,through:a});return e.removes&&i.push({remove:"$subject"}),e.effects&&i.push(...e.effects.filter(a=>!(e.creates&&"set"in a&&!("create"in a)&&F(a.target)==="new"))),i}function le(e,s,i){try{let t=J(e),o=ae(t);for(let a of o.unknownFunctions)i.push(k("unknown-function",s,`"${a}" is not a function the rule language knows`,"see the rule language in the graview-invariant skill"));return t}catch(t){if(t instanceof ce){i.push(k("expression",s,t.sentence+` (at character ${t.at+1})`));return}throw t}}function Re(e,s,i){try{return Q(e)}catch(t){if(t instanceof Ye||t instanceof ce){i.push(k("template",s,(t instanceof ce,t.sentence)));return}throw t}}function _n(e){let s=[],i=new Set(Object.keys(e.kinds)),t=zn(e),o=e.acts??{},a=new Set(e.roles??[]),u=(l,r)=>me(e.kinds[l]?.edges).has(r),f=l=>Object.keys(e.kinds).some(r=>u(r,l));for(let[l,r]of Object.entries(e.kinds)){let p=`kinds.${l}`;for(let[m,d]of Object.entries(r.edges??{})){if(!Ke(d)&&d.to!=="*")for(let c of d.to)i.has(c)||s.push(k("edge-target",`${p}.edges.${m}.to`,`"${c}" is not a kind this document declares`));r.fields[m]&&s.push(k("edge-field-clash",`${p}.edges.${m}`,`"${m}" is both a field and a relation of ${l}`,"rename one of them"))}r.lifecycle&&!r.fields[r.lifecycle.field]&&s.push(k("lifecycle-field",`${p}.lifecycle.field`,`${l} has no field "${r.lifecycle.field}"`));let y=m=>r.computed!==void 0&&Object.hasOwn(r.computed,m);for(let m of r.glance??[])!r.fields[m]&&!y(m)&&s.push(k("glance-field",`${p}.glance`,`a glance at ${l} is to say "${m}", and ${l} has no field or computed field called that`,`use one of: ${[...Object.keys(r.fields),...Object.keys(r.computed??{})].join(", ")}`));s.push(...mn(l,r));for(let m of["label","describe"]){let d=r[m];if(!d)continue;let c=Re(d,`${p}.${m}`,s);for(let w of c??[])if(w.expr){for(let b of ae(w.expr).names)if(!r.fields[b]){if(y(b)){en(r,b)||s.push(k("template-field",`${p}.${m}`,`${l}'s ${b} is worked out from beyond the record, and a ${m} is said with no graph to read`,`show it in a view instead, or name a computed field worked out from ${l}'s own fields`));continue}s.push(k("template-field",`${p}.${m}`,`${l} has no field "${b}" for its ${m} to show`,m==="label"?"a label can only show the record's own fields and what they work out":void 0))}}}for(let[m,d]of Object.entries(r.derives?.set??{}))fe(d)&&"expr"in d&&le(String(d.expr),`${p}.derives.set.${m}`,s);for(let[m,d]of Object.entries(r.fields)){if(d.default!==void 0&&d.type==="enum"){let b=(d.multiple?Array.isArray(d.default)?d.default:[d.default]:[d.default]).find(S=>!d.options?.includes(String(S)));(b!==void 0||!d.multiple&&Array.isArray(d.default))&&s.push(k("default-option",`${p}.fields.${m}.default`,`"${String(b??d.default)}" is not one of ${m}'s options`))}let c=`${m}Repeat`;d.repeats&&(r.fields[c]||r.edges?.[c]||r.computed?.[c])&&s.push(k("repeat-clash",`${p}.fields.${m}.repeats`,`${l} already has "${c}", where how ${m} repeats is kept`))}}for(let[l,r]of Object.entries(o)){let p=`acts.${l}`;for(let c of pe(r.on))i.has(c)||s.push(k("act-kind",`${p}.on`,`"${c}" is not a kind this document declares`));let y=pe(r.on),m=yn(r,e);if(r.creates&&r.on===void 0&&r.writes&&i.has(r.creates)){for(let c of r.writes)if(!e.kinds[r.creates].fields[c])if(e.kinds[r.creates].computed?.[c]!==void 0)s.push(k("computed-written",`${p}.writes`,`${r.creates}'s ${c} is worked out, not written: no act can set it`,"write the stored fields it is worked out from"));else{if(u(r.creates,c))continue;s.push(k("act-field",`${p}.writes`,`${r.creates} has no field "${c}"`))}}m.length===0&&s.push(k("act-empty",p,`"${l}" does nothing`,"give it effects or a shorthand such as sets or creates"));let d=new Map;m.forEach((c,w)=>{let b=m.length-(r.effects?.length??0),S=r.effects&&w>=b?`${p}.effects.${w-b}`:p;if("create"in c){if(!i.has(c.create))s.push(k("act-kind",`${S}.create`,`"${c.create}" is not a kind this document declares`));else for(let v of Object.keys(c.set??{}))e.kinds[c.create].fields[v]||(e.kinds[c.create].computed?.[v]!==void 0?s.push(k("computed-written",`${S}.set.${v}`,`${c.create}'s ${v} is worked out, not written: no act can set it`,"set the stored fields it is worked out from")):s.push(k("act-field",`${S}.set.${v}`,`${c.create} has no field "${v}"`)));c.as&&d.set(c.as,c.create)}else if("connect"in c||"sever"in c){let v="connect"in c?c.connect:c.sever;!t.has(v)&&!f(v)&&s.push(k("act-edge",`${S}.${"connect"in c?"connect":"sever"}`,`"${v}" is not a relation any kind declares`)),F(c.from)==="subject"&&y.length===0&&s.push(k("act-subject",`${p}.on`,`"${l}" acts on "$subject" but does not say which kinds it is "on"`))}else if(!("through"in c))if("set"in c){let v=F(c.target??"$subject"),B=v==="subject"?y:d.has(v??"")?[d.get(v)]:[];v==="subject"&&y.length===0&&s.push(k("act-subject",`${p}.on`,`"${l}" changes "$subject" but does not say which kinds it is "on"`));for(let G of Object.keys(c.set))for(let z of B)if(!(!i.has(z)||e.kinds[z].fields[G]))if(e.kinds[z].computed?.[G]!==void 0)s.push(k("computed-written",`${S}.set.${G}`,`${z}'s ${G} is worked out, not written: no act can set it`,"set the stored fields it is worked out from"));else{if(u(z,G))continue;s.push(k("act-field",`${S}.set.${G}`,`${z} has no field "${G}"`))}}else"remove"in c&&F(c.remove)==="subject"&&y.length===0&&s.push(k("act-subject",`${p}.on`,`"${l}" removes "$subject" but does not say which kinds it is "on"`));let x="set"in c&&c.set?Object.values(c.set):[],E="through"in c?`${p}.setsLinked.${c.through}`:`${S}.set`;x.forEach(v=>{v&&typeof v=="object"&&!Array.isArray(v)&&"expr"in v&&le(v.expr,E,s)})}),r.allowedWhen&&le(r.allowedWhen,`${p}.allowedWhen`,s),r.refusal&&Re(r.refusal,`${p}.refusal`,s)}for(let[l,r]of Object.entries(e.rules??{})){let p=`rules.${l}`;r.over!=="graph"&&!i.has(r.over)&&s.push(k("rule-kind",`${p}.over`,`"${r.over}" is not a kind this document declares`));let y=r.over==="graph"?void 0:e.kinds[r.over];if(r.covers&&y){let m=ye(r.over,r.covers,d=>t.get(d),d=>i.has(d));if("problem"in m){let{key:d,message:c,fix:w}=m.problem;d==="every"?s.push(k("rule-kind",`${p}.covers.every`,c,w)):s.push(k("rule-covers-relation",`${p}.covers.${d}`,c,w))}}for(let m of["when","require"]){let d=r[m];if(!d)continue;let c=le(d,`${p}.${m}`,s);if(!c)continue;let w=ae(c);for(let b of w.names)if(r.over==="graph")s.push(k("rule-name",`${p}.${m}`,`"${b}" means nothing in a rule over the whole graph`,`name a kind in "over", or use all('kind')`));else if(y&&!y.fields[b]&&!y.edges?.[b]&&y.computed?.[b]===void 0){let S=Object.keys(y.edges??{}).find(x=>x.includes("-")&&x.split("-").includes(b));s.push(k("rule-name",`${p}.${m}`,`${r.over} has no field or relation called "${b}"`,S?`"${S}" reads as a subtraction in a rule; rename the relation to one camelCase word, like "${S.replace(/-([a-z0-9])/g,(x,E)=>E.toUpperCase())}"`:void 0))}for(let b of w.edges)!t.has(b)&&!f(b)&&s.push(k("rule-edge",`${p}.${m}`,`"${b}" is not a relation any kind declares`));for(let b of w.sweeps)i.has(b)?r.over!=="graph"&&s.push(Ue("rule-cost",`${p}.${m}`,`this rule looks at every ${b} for every ${r.over}, which grows slowly as the app grows`,"walk a relation with out()/in() instead of all() where you can")):s.push(k("rule-kind",`${p}.${m}`,`"${b}" is not a kind this document declares`))}r.says&&Re(r.says,`${p}.says`,s),(r.repairs??[]).forEach((m,d)=>{!o[m.act]&&!ge(m.act)&&!$e(m.act,e.kinds)&&s.push(k("repair-act",`${p}.repairs.${d}.act`,`"${m.act}" is not an act this document declares`,we(m.act,e)))})}let g=e.policy;return g&&(g.grants.forEach((l,r)=>{if(l.roles!=="*"&&a.size>0)for(let p of l.roles)a.has(p)||s.push(k("grant-role",`policy.grants.${r}.roles`,`"${p}" is not one of the document's roles`));for(let p of["mutations","propose"]){let y=l[p];if(y!==void 0&&y!=="*")for(let m of y)!o[m]&&!ge(m)&&!$e(m,e.kinds)&&s.push(k("grant-act",`policy.grants.${r}.${p}`,`"${m}" is not an act this document declares`,we(m,e)))}}),(g.sees??[]).forEach((l,r)=>{for(let p of l.kinds)i.has(p)||s.push(k("sight-kind",`policy.sees.${r}.kinds`,`"${p}" is not a kind this document declares`));if(l.roles!=="*"&&a.size>0)for(let p of l.roles)a.has(p)||s.push(k("sight-role",`policy.sees.${r}.roles`,`"${p}" is not one of the document's roles`))})),s.push(...Qe(e)),s}function In(e){return e.label?[...e.label.matchAll(/\{\s*([A-Za-z_][A-Za-z0-9_]*)/g)].map(s=>s[1]):[ke(e)??[]].flat()}function Kn(e,s,i,t){let o=new Map,a=pe(e.on),u=new Map,f=new Map;(a.length>0||s.some(d=>"remove"in d&&F(d.remove)==="subject"||"from"in d&&(F(d.from)==="subject"||F(d.to)==="subject")||"set"in d&&!("create"in d)&&!("through"in d)&&F(d.target??"$subject")==="subject"||"through"in d))&&o.set(he,{ref:a.length>0?a:"*",required:!0});let l=e.args??{},r=e.writes?.length===1,p=(d,c)=>c&&d.type===c.type&&d.min===void 0&&d.max===void 0&&d.step===void 0?{...d,...c.min===void 0?{}:{min:c.min},...c.max===void 0?{}:{max:c.max},...c.step===void 0?{}:{step:c.step}}:d,y=(d,c)=>c&&d.type===c.type&&d.format===void 0&&d.unit===void 0?{...p(d,c),...c.format?{format:c.format}:{},...c.unit?{unit:c.unit}:{}}:p(d,c),m=(d,c,w)=>{if(d===he||Nn.has(d)||u.has(d)||o.has(d))return;let b=l[d]?y(l[d],w):void 0;o.set(d,b?{field:b,optional:!b.required,required:!!b.required}:c())};for(let d of s)if("create"in d){let c=i.kinds[d.create],w=c?gn(c,In(c)):[],b=S=>w.includes(S)?w.indexOf(S):w.length;for(let[S,x]of Object.entries(d.set??{}).sort(([E],[v])=>b(E)-b(v))){let E=F(x),v=c?.fields[S];if(E&&v){let B=!!v.required&&v.default===void 0;m(E,()=>({field:v,optional:!B,required:B}),v)}}d.as&&u.set(d.as,d.create)}else if("connect"in d||"sever"in d){let c=t.get("connect"in d?d.connect:d.sever);for(let[w,b]of[["from",d.from],["to",d.to]]){let S=F(b);if(!S)continue;let x=w==="to"?c?.to??"*":c?.from??"*";x!=="*"&&!f.has(S)&&f.set(S,x),m(S,()=>({ref:x,required:!0}))}}else if("through"in d){let c=Ae(i.kinds,d.through,a),w=c&&c.kinds!=="*"?c.kinds[0]:void 0;for(let[b,S]of Object.entries(d.set)){let x=F(S);if(!x||x==="to")continue;let E=w?i.kinds[w]?.fields[b]:void 0;m(x,()=>E?{field:E,optional:!0,required:!1}:{any:!0,required:!1},E)}}else if("set"in d){let c=F(d.target??"$subject"),w=c==="subject"?a[0]:u.get(c??"")??f.get(c??"")?.[0];c&&c!=="subject"&&!u.has(c)&&m(c,()=>({ref:"*",required:!0}));for(let[b,S]of Object.entries(d.set)){let x=F(S);if(!x)continue;let E=w?i.kinds[w]?.fields[b]:void 0;m(x,()=>E?{field:E,optional:!r,required:r}:{any:!0,required:!1},E)}}else if("remove"in d){let c=F(d.remove);c&&m(c,()=>({ref:"*",required:!0}))}for(let[d,c]of Object.entries(l))o.has(d)||o.set(d,{field:c,optional:!c.required,required:!!c.required});return o}function Wt(e,s={}){let i=Mn(e);if(!i.document||ze(i.findings))return{ok:!1,findings:i.findings};let t=i.document,o=[...i.findings];s.previous&&o.push(...Gn(t,s.previous));let a=Ln(t,o);return ze(a.findings)?{ok:!1,findings:a.findings}:We(a,s)}function de(e,s,i){return e.map(t=>{if(t.format||t.expr?.t!=="ident")return t;let o=t.expr.name,a=i?.[o],u=s?.[o]??(typeof a=="object"?a:void 0),f=u?.format;return f==="money"||f==="percent"?{...t,format:f,...f==="money"&&u?.places===0?{formatArgs:["0"]}:{}}:t})}function Pn(e,s,i){let t=i.kinds[e]?.edges?.[s.via]!==void 0?"to":"from",o=i.kinds[s.from],a=[],u={};for(let[f,g]of Object.entries(s.set))if(fe(g)&&"expr"in g){let l=J(g.expr);a.push([f,{expr:l}]),l.t==="ident"&&o?.fields[l.name]&&(u[f]=l.name)}else a.push([f,{value:typeof g=="string"&&g.startsWith("$$")?g.slice(1):g}]);return{from:s.from,via:s.via,sourceEnd:t,set:a,back:u}}function Ln(e,s){let i=zn(e),t={},o=un(e.connections,e.kinds);for(let[r,p]of Object.entries(e.kinds)){let y=ke(p),m=p.label??(y?`{${y}}`:void 0),d=se(p),c=d?pn(e,r,[...d]):[];t[r]={...m?{label:de(Q(m),p.fields,p.computed)}:{},...p.describe?{describe:de(Q(p.describe),p.fields,p.computed)}:{},...d?{computed:[...d]}:{},...c.length>0?{durations:c}:{},...o.has(r)?{keptInStep:o.get(r)}:{},...p.derives?{derives:Pn(r,p.derives,e)}:{}}}let a={};for(let[r,p]of Object.entries(e.acts??{})){let y=yn(p,e),m=Kn(p,y,e,i),d=p.destructive??y.some(z=>"remove"in z||"sever"in z||"replace"in z),c=[...new Set(y.flatMap(z=>"create"in z?[z.create]:[]))],w=[...new Set(y.flatMap(z=>"connect"in z?[z.connect]:[]))],b=[...new Set(y.flatMap(z=>"sever"in z?[z.sever]:"replace"in z?z.replace:[]))],S=[...new Set(y.flatMap(z=>"set"in z&&!("create"in z)&&!("through"in z)&&F(z.target??"$subject")==="subject"?Object.keys(z.set):[]))],x=new Map;for(let z of y){if(!("connect"in z)&&!("sever"in z))continue;let A=i.get("connect"in z?z.connect:z.sever);for(let[M,ie]of[["from",z.from],["to",z.to]]){let W=F(ie),q=M==="to"?A?.to:A?.from;W&&W!=="subject"&&q&&q!=="*"&&x.set(W,[...new Set([...x.get(W)??[],...q])])}}let E={};for(let z of y){if(!("set"in z)||"create"in z||"through"in z)continue;let A=F(z.target??"$subject");for(let M of A&&A!=="subject"&&x.get(A)||[])E[M]=[...new Set([...E[M]??[],...Object.keys(z.set)])]}let v={};for(let z of y)if(!(!("set"in z)||"create"in z||"through"in z||F(z.target??"$subject")!=="subject"))for(let[A,M]of Object.entries(z.set??{}))typeof M=="string"&&F(M)===void 0||typeof M=="number"||typeof M=="boolean"?v[A]=typeof M=="string"&&M.startsWith("$$")?M.slice(1):M:delete v[A];let B=c.length===0&&y.every(z=>!("set"in z)||!z.set||Object.values(z.set).every(A=>!(A&&typeof A=="object"&&!Array.isArray(A)&&"expr"in A))),G=new Map;for(let z of y)if(!(!("set"in z)||!z.set))for(let A of Object.values(z.set))A&&typeof A=="object"&&!Array.isArray(A)&&"expr"in A&&G.set(A.expr,J(A.expr));a[r]={title:p.title??r.replace(/-/g," "),effects:y,args:[...m],...p.allowedWhen?{guard:J(p.allowedWhen)}:{},...p.refusal?{refusal:de(Q(p.refusal),e.kinds[[p.on??[]].flat()[0]??""]?.fields)}:{},exprs:[...G],destructive:d,idempotent:B,creates:c,connects:w,severs:b,writes:S,writesOther:E,sets:v}}let u={};for(let[r,p]of Object.entries(e.rules??{})){let y=p.covers&&p.over!=="graph"?ye(p.over,p.covers,m=>i.get(m),m=>m in e.kinds):void 0;u[r]={title:p.title??r.replace(/-/g," "),...p.require?{require:J(p.require)}:{},...y&&"plan"in y?{covers:y.plan}:{},...p.when?{when:J(p.when)}:{},...p.says?{says:de(Q(p.says),e.kinds[p.over]?.fields)}:{}}}let f=Ze(e,s),g=Je(e),l=Xe(e);return{format:He,document:e,findings:s,kinds:t,...e.computed?{facts:[...se(e)??[]]}:{},edges:[...i].map(([r,{from:p,to:y,cardinality:m}])=>[r,{from:p,to:y,cardinality:m}]),acts:a,rules:u,brand:f,...Object.keys(g).length>0?{viewSpecs:g}:{},...l?{home:l}:{}}}function Yt(e,s,i){let t=/^defineNode\("([^"]+)"\)/.exec(s)?.[1],o=t?i.kinds[t]:void 0;if(!t||!o)return e;let a=Object.keys(o.fields).filter(u=>u!=="label").slice(0,3);return{...e,path:`kinds.${t}.glance`,fix:`Say which: "glance": [${a.map(u=>`"${u}"`).join(", ")}] on kinds.${t} \u2014 the facts a person compares one by, at a glance.`}}function Gn(e,s){let i=[],t=new Set(Object.values(s.kinds).flatMap(o=>Object.keys(o.edges??{})));for(let[o,a]of Object.entries(e.kinds)){let u=a.renamedFrom;u&&!s.kinds[u]&&i.push(k("renamed-from-nothing",`kinds.${o}.renamedFrom`,`${o} says it was ${u}, and the previous version has no kind called ${u}`,"name the kind it was, or drop renamedFrom"));let f=s.kinds[u??o];for(let[g,l]of Object.entries(a.fields)){let r=l.renamedFrom;r&&!f?.fields[r]&&i.push(k("renamed-from-nothing",`kinds.${o}.fields.${g}.renamedFrom`,`${g} says it was ${r}, and the previous ${u??o} has no field called ${r}`,"name the field it was, or drop renamedFrom"))}for(let[g,l]of Object.entries(a.edges??{})){let r=l.renamedFrom;r&&!t.has(r)&&i.push(k("renamed-from-nothing",`kinds.${o}.edges.${g}.renamedFrom`,`${g} says it was ${r}, and the previous version has no relation called ${r}`,"name the relation it was, or drop renamedFrom"))}}return i}export{Mn as a,Ht as b,yn as c,Wt as d,Yt as e};
@@ -1 +1 @@
1
- import{j as m}from"./chunk.AVFOTYZR.js";import{G as N,T as f,X as y}from"./chunk.N7T7VB77.js";import{b as g}from"./chunk.AJZBJBMO.js";var p=g(N(),1);var a=g(f(),1);var R={default:{background:"var(--graview-panel, #ffffff)",color:"var(--graview-ink, #1a1a1a)"},muted:{background:"var(--graview-panel-muted, #f7f5f1)",color:"var(--graview-ink, #1a1a1a)"},warning:{background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)"}},T={color:"var(--graview-ink-muted, #55514a)"},C={color:"var(--graview-ink-faint, #625d55)"};function H(e){let[l,o]=(0,p.useState)(z);return(0,p.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let t=()=>{let i=W(r,parseFloat(getComputedStyle(r).paddingBottom)||0);o(s=>s.overflowing===i.overflowing&&s.above===i.above&&s.below===i.below?s:i)};t();let d=new ResizeObserver(t);d.observe(r);for(let i of r.children)d.observe(i);return r.addEventListener("scroll",t,{passive:!0}),()=>{d.disconnect(),r.removeEventListener("scroll",t)}}),l}var z={overflowing:!1,above:!1,below:!1};function W(e,l=0){let o=e.scrollHeight>e.clientHeight+1,r=e.scrollWidth>e.clientWidth+1;return{overflowing:o||r,above:o&&e.scrollTop>1,below:o&&e.scrollTop+e.clientHeight<e.scrollHeight-l-1}}var A=(0,p.createContext)(null),I=(0,p.createContext)(null);function O({level:e,said:l=!0,style:o,children:r}){if(e===void 0)return(0,a.jsx)("strong",{style:o,...l?{}:{"aria-hidden":!0},children:r});let t=`h${e}`;return(0,a.jsx)(t,{style:{margin:0,...o},children:r})}function E({title:e,subtitle:l,meta:o,selected:r,tone:t="default",children:d,style:i,fit:s=!1,variant:w,heading:b}){let c=(0,p.useRef)(null),{overflowing:v,above:x,below:S}=H(c),P=y(),n=(w??(P==="fullscreen"?"page":"card"))==="page",k=(0,p.useContext)(A),u=(0,p.useContext)(I);return(0,a.jsxs)("div",{"data-graview-primitive":"panel","data-graview-variant":n?"page":"card","data-selected":r||void 0,style:{display:"flex",flexDirection:"column",gap:n?12:"var(--graview-gap, 7px)",height:n||s?"auto":"100%",maxHeight:n?"none":"100%",padding:n?0:"var(--graview-pad, 15px)",boxSizing:"border-box",borderRadius:n?0:"var(--graview-radius, 12px)",border:n?"none":`1px solid ${r?"var(--graview-accent, #2f6f5e)":"var(--graview-edge, #e4e0d8)"}`,boxShadow:n?"none":r?"0 0 0 1px var(--graview-accent-dim), var(--graview-lift-low)":"var(--graview-lift-low)",overflow:n?"visible":"hidden",...R[t],...n?{background:"transparent"}:{},...i},children:[t==="warning"?(0,a.jsx)("span",{"data-graview-broken":"",style:m,children:"Implicated in a problem."}):null,e===void 0||e===k?null:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",flexWrap:"wrap",gap:8,minWidth:0},children:[t==="warning"?(0,a.jsx)("span",{"aria-hidden":"true",title:"Implicated in a problem",style:{color:"var(--graview-warn)",flex:"0 0 auto"},children:"\u26A0"}):null,(0,a.jsx)(O,{level:b,said:u===null||e!==u,style:{fontFamily:"var(--graview-font-display, inherit)",fontSize:n?"1.5625rem":"0.9375rem",lineHeight:n?1.15:1.25,fontWeight:n?600:560,letterSpacing:n?"-0.012em":"0.005em",minWidth:0,overflowWrap:"anywhere"},children:e}),o===void 0?null:(0,a.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",letterSpacing:"0.08em",textTransform:"uppercase",minWidth:0,overflowWrap:"anywhere",...C},children:o})]}),l===void 0?null:(0,a.jsx)("div",{style:{fontSize:n?"0.90625rem":"0.8125rem",lineHeight:1.5,...T},children:l}),(0,a.jsx)("div",{ref:c,className:n?void 0:"graview-scroll",...v&&!n?{tabIndex:0,role:"region",...typeof e=="string"?{"aria-label":e}:{}}:{},style:{display:"flex",flexDirection:"column",gap:n?22:"var(--graview-gap, 7px)",flex:"1 1 auto",...n?{overflow:"visible"}:{marginBottom:"calc(-1 * var(--graview-pad, 15px))",paddingBottom:"var(--graview-pad, 15px)"},...!n&&!v?{overflow:"hidden"}:{}},"data-graview-more-above":x&&!n?"":void 0,"data-graview-more-below":S&&!n?"":void 0,children:d})]})}function h({label:e,hue:l,selected:o,title:r,pickId:t,emphasis:d}){let i=typeof e=="string"?e:void 0,s=l===void 0?void 0:Math.round(l);return(0,a.jsxs)("span",{"data-graview-primitive":"chip","data-selected":o||void 0,"data-graview-pick":t,"data-graview-emphasis":d,title:r??i,style:{cursor:t?"pointer":void 0,display:"inline-flex",alignItems:"center",alignSelf:"flex-start",minHeight:24,boxSizing:"border-box",padding:"3px 9px",borderRadius:6,fontSize:"0.8125rem",lineHeight:1.5,whiteSpace:"nowrap",maxWidth:"min(28ch, 100%)",overflow:"hidden",letterSpacing:"0.01em",border:`1px solid ${o?"var(--graview-accent)":s===void 0?"var(--graview-edge)":`hsl(${s} 55% var(--graview-tint-lightness) / 0.45)`}`,background:s===void 0?"var(--graview-panel-muted)":`hsl(${s} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * 0.65))`,color:"var(--graview-ink, #1a1a1a)",boxShadow:o?"0 0 14px -4px var(--graview-accent)":void 0},children:[s===void 0?null:(0,a.jsx)("span",{"aria-hidden":"true",style:{width:9,height:6,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",flex:"0 0 auto",marginRight:6,background:`hsl(${s} 55% var(--graview-tint-lightness) / 0.9)`}}),(0,a.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]})}function L({items:e,max:l=8,selectedIds:o=[],pick:r=!1}){let t=e.slice(0,l),d=e.length-t.length;return(0,a.jsxs)("div",{"data-graview-primitive":"roster",style:{display:"flex",flexWrap:"wrap",gap:6,alignContent:"flex-start"},children:[t.map(i=>(0,a.jsx)(h,{label:i.label,...i.hue===void 0?{}:{hue:i.hue},...r?{pickId:i.id}:{},...i.emphasis===void 0?{}:{emphasis:i.emphasis},selected:o.includes(i.id)},i.id)),d>0?(0,a.jsx)(h,{label:`+${d} more`}):null]})}function F({label:e,count:l,items:o,onExpand:r,flagged:t,problems:d}){return(0,a.jsx)(E,{title:e,meta:d?(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[d,(0,a.jsx)("span",{children:l})]}):l,tone:t?"warning":"muted",style:r?{cursor:"zoom-in"}:void 0,children:o&&o.length>0?(0,a.jsx)(L,{items:o,max:6,pick:!0}):null})}export{A as a,I as b,E as c,h as d,L as e,F as f};
1
+ import{j as m}from"./chunk.KZUMXT5J.js";import{G as N,T as f,X as y}from"./chunk.CYTTZOYL.js";import{b as g}from"./chunk.AJZBJBMO.js";var p=g(N(),1);var a=g(f(),1);var R={default:{background:"var(--graview-panel, #ffffff)",color:"var(--graview-ink, #1a1a1a)"},muted:{background:"var(--graview-panel-muted, #f7f5f1)",color:"var(--graview-ink, #1a1a1a)"},warning:{background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)"}},T={color:"var(--graview-ink-muted, #55514a)"},C={color:"var(--graview-ink-faint, #625d55)"};function H(e){let[l,o]=(0,p.useState)(z);return(0,p.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let t=()=>{let i=W(r,parseFloat(getComputedStyle(r).paddingBottom)||0);o(s=>s.overflowing===i.overflowing&&s.above===i.above&&s.below===i.below?s:i)};t();let d=new ResizeObserver(t);d.observe(r);for(let i of r.children)d.observe(i);return r.addEventListener("scroll",t,{passive:!0}),()=>{d.disconnect(),r.removeEventListener("scroll",t)}}),l}var z={overflowing:!1,above:!1,below:!1};function W(e,l=0){let o=e.scrollHeight>e.clientHeight+1,r=e.scrollWidth>e.clientWidth+1;return{overflowing:o||r,above:o&&e.scrollTop>1,below:o&&e.scrollTop+e.clientHeight<e.scrollHeight-l-1}}var A=(0,p.createContext)(null),I=(0,p.createContext)(null);function O({level:e,said:l=!0,style:o,children:r}){if(e===void 0)return(0,a.jsx)("strong",{style:o,...l?{}:{"aria-hidden":!0},children:r});let t=`h${e}`;return(0,a.jsx)(t,{style:{margin:0,...o},children:r})}function E({title:e,subtitle:l,meta:o,selected:r,tone:t="default",children:d,style:i,fit:s=!1,variant:w,heading:b}){let c=(0,p.useRef)(null),{overflowing:v,above:x,below:S}=H(c),P=y(),n=(w??(P==="fullscreen"?"page":"card"))==="page",k=(0,p.useContext)(A),u=(0,p.useContext)(I);return(0,a.jsxs)("div",{"data-graview-primitive":"panel","data-graview-variant":n?"page":"card","data-selected":r||void 0,style:{display:"flex",flexDirection:"column",gap:n?12:"var(--graview-gap, 7px)",height:n||s?"auto":"100%",maxHeight:n?"none":"100%",padding:n?0:"var(--graview-pad, 15px)",boxSizing:"border-box",borderRadius:n?0:"var(--graview-radius, 12px)",border:n?"none":`1px solid ${r?"var(--graview-accent, #2f6f5e)":"var(--graview-edge, #e4e0d8)"}`,boxShadow:n?"none":r?"0 0 0 1px var(--graview-accent-dim), var(--graview-lift-low)":"var(--graview-lift-low)",overflow:n?"visible":"hidden",...R[t],...n?{background:"transparent"}:{},...i},children:[t==="warning"?(0,a.jsx)("span",{"data-graview-broken":"",style:m,children:"Implicated in a problem."}):null,e===void 0||e===k?null:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",flexWrap:"wrap",gap:8,minWidth:0},children:[t==="warning"?(0,a.jsx)("span",{"aria-hidden":"true",title:"Implicated in a problem",style:{color:"var(--graview-warn)",flex:"0 0 auto"},children:"\u26A0"}):null,(0,a.jsx)(O,{level:b,said:u===null||e!==u,style:{fontFamily:"var(--graview-font-display, inherit)",fontSize:n?"1.5625rem":"0.9375rem",lineHeight:n?1.15:1.25,fontWeight:n?600:560,letterSpacing:n?"-0.012em":"0.005em",minWidth:0,overflowWrap:"anywhere"},children:e}),o===void 0?null:(0,a.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",letterSpacing:"0.08em",textTransform:"uppercase",minWidth:0,overflowWrap:"anywhere",...C},children:o})]}),l===void 0?null:(0,a.jsx)("div",{style:{fontSize:n?"0.90625rem":"0.8125rem",lineHeight:1.5,...T},children:l}),(0,a.jsx)("div",{ref:c,className:n?void 0:"graview-scroll",...v&&!n?{tabIndex:0,role:"region",...typeof e=="string"?{"aria-label":e}:{}}:{},style:{display:"flex",flexDirection:"column",gap:n?22:"var(--graview-gap, 7px)",flex:"1 1 auto",...n?{overflow:"visible"}:{marginBottom:"calc(-1 * var(--graview-pad, 15px))",paddingBottom:"var(--graview-pad, 15px)"},...!n&&!v?{overflow:"hidden"}:{}},"data-graview-more-above":x&&!n?"":void 0,"data-graview-more-below":S&&!n?"":void 0,children:d})]})}function h({label:e,hue:l,selected:o,title:r,pickId:t,emphasis:d}){let i=typeof e=="string"?e:void 0,s=l===void 0?void 0:Math.round(l);return(0,a.jsxs)("span",{"data-graview-primitive":"chip","data-selected":o||void 0,"data-graview-pick":t,"data-graview-emphasis":d,title:r??i,style:{cursor:t?"pointer":void 0,display:"inline-flex",alignItems:"center",alignSelf:"flex-start",minHeight:24,boxSizing:"border-box",padding:"3px 9px",borderRadius:6,fontSize:"0.8125rem",lineHeight:1.5,whiteSpace:"nowrap",maxWidth:"min(28ch, 100%)",overflow:"hidden",letterSpacing:"0.01em",border:`1px solid ${o?"var(--graview-accent)":s===void 0?"var(--graview-edge)":`hsl(${s} 55% var(--graview-tint-lightness) / 0.45)`}`,background:s===void 0?"var(--graview-panel-muted)":`hsl(${s} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * 0.65))`,color:"var(--graview-ink, #1a1a1a)",boxShadow:o?"0 0 14px -4px var(--graview-accent)":void 0},children:[s===void 0?null:(0,a.jsx)("span",{"aria-hidden":"true",style:{width:9,height:6,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",flex:"0 0 auto",marginRight:6,background:`hsl(${s} 55% var(--graview-tint-lightness) / 0.9)`}}),(0,a.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]})}function L({items:e,max:l=8,selectedIds:o=[],pick:r=!1}){let t=e.slice(0,l),d=e.length-t.length;return(0,a.jsxs)("div",{"data-graview-primitive":"roster",style:{display:"flex",flexWrap:"wrap",gap:6,alignContent:"flex-start"},children:[t.map(i=>(0,a.jsx)(h,{label:i.label,...i.hue===void 0?{}:{hue:i.hue},...r?{pickId:i.id}:{},...i.emphasis===void 0?{}:{emphasis:i.emphasis},selected:o.includes(i.id)},i.id)),d>0?(0,a.jsx)(h,{label:`+${d} more`}):null]})}function F({label:e,count:l,items:o,onExpand:r,flagged:t,problems:d}){return(0,a.jsx)(E,{title:e,meta:d?(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[d,(0,a.jsx)("span",{children:l})]}):l,tone:t?"warning":"muted",style:r?{cursor:"zoom-in"}:void 0,children:o&&o.length>0?(0,a.jsx)(L,{items:o,max:6,pick:!0}):null})}export{A as a,I as b,E as c,h as d,L as e,F as f};
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk.KB5BCW23.js";import"./chunk.72YXFJKC.js";import"./chunk.JVDPRQ7J.js";import"./chunk.57YDGGJK.js";import"./chunk.H7AH3IW4.js";import"./chunk.4TH3CGAZ.js";import"./chunk.XYGNS637.js";import"./chunk.DZSZUX34.js";import"./chunk.4EXC26LI.js";import"./chunk.PWAP2GJS.js";import"./chunk.AHPYNDVA.js";import"./chunk.FNVGNISQ.js";import"./chunk.REUMBCSV.js";import"./chunk.2KIWGQXC.js";import"./chunk.D5LOTCBU.js";import"./chunk.Q4MI53KK.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{b as actOnSeveral,a as actsForSeveral};
@@ -1 +1 @@
1
- import{a as B,b as ve}from"./chunk.E6RNMWFN.js";import{a as ye,c as he,d as be,f as we}from"./chunk.MBP7VDYM.js";import{b as S,c as fe,d as me,j as ce,k as ge}from"./chunk.UO544PZH.js";import{b as pe,k as q}from"./chunk.4STDIZVI.js";import{c as de,f as ue}from"./chunk.HZHNM2KI.js";import{G as Re,T as se,ca as le,h as ae,u as ie}from"./chunk.N7T7VB77.js";import{Ha as te,Sa as re,Ta as oe,da as Z,ga as ee,oa as ne}from"./chunk.F7PIW2EM.js";import{b as W}from"./chunk.AJZBJBMO.js";var l=W(Re(),1);var i=W(se(),1);function qe({affordance:n,onApply:a,onCancel:u,store:w}){let y=le(),s=w??y?.store,[x,_]=(0,l.useState)({}),[p,D]=(0,l.useState)(""),[I,F]=(0,l.useState)(G),[J,V]=(0,l.useState)(void 0),U=(0,l.useId)(),L=(0,l.useRef)(null),A=n.open.filter(e=>!(e.name in x)),o=A[0],v=s.allMutations().find(e=>e.name===n.mutation),P=(0,l.useMemo)(()=>De(v,s,n.args??{}),[v,s,n.args]),d=o?P[o.name]:void 0,E=ge(n.open.filter(e=>e.shape?.type==="date").map(e=>e.name)),Se=(()=>{if(!E||o?.name!==E.end||o.shape?.type!=="date")return;let e=x[E.start];if(typeof e!="string")return;let r=P[E.start];return ce(typeof r=="string"?r:void 0,e,typeof d=="string"?d:void 0,{time:o.shape.time===!0,instant:o.shape.instant===!0})})();(0,l.useEffect)(()=>{D(Se??ke(d,o?.shape)),F(Array.isArray(d)?d:G),V(d)},[o?.name]),(0,l.useEffect)(()=>{L.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[o?.name]),(0,l.useLayoutEffect)(()=>{let e=L.current,r=typeof document>"u"?null:document.activeElement,f=r instanceof HTMLElement&&r.getAttribute("data-affordance")===n.id;if(!e||r&&r!==document.body&&!e.contains(r)&&!f)return;let b=e.querySelector('[data-testid="ask-filter"], form input, [role=group] button:not([disabled])');b&&b!==r&&b.focus()},[o?.name]);let Y=ve({flow:"both",letters:!0});if(!o)return null;let h=e=>{let r=d!==void 0&&JSON.stringify(e)===JSON.stringify(d)?void 0:e,f={...x,[o.name]:r};if(n.open.filter(R=>!(R.name in f)).length===0){let R=a(Object.fromEntries(Object.entries(f).filter(([,M])=>M!==void 0)));R&&R.length>0&&_(Object.fromEntries(Object.entries(f).filter(([M])=>!R.includes(M))))}else _(f)},O=o.optional?(0,i.jsx)("button",{type:"button",onClick:()=>h(void 0),style:{fontSize:"0.8125rem"},children:"Skip"}):null,t=o.shape??{type:"unknown"},c=t.type==="number"?t.amount:void 0,g=Ee(o,t),m=q(s.schema,v,o.name),Q=te((v?.input?.shape??{})[o.name]),xe=oe((v?.input?.shape??{})[o.name]),N=re(o.name),Ae=typeof d=="boolean"?d?"yes":"no":d,[T,Oe]=(0,l.useState)(""),X=(0,l.useMemo)(()=>{let e=g.map(r=>s.graph.getNode(r)).filter(r=>r!==void 0);return pe(e,r=>s.schema.tryDefinition(r))},[g,s]),j=e=>{let r=Ce(s,t,e),f=t.type==="choice"||t.type==="several"&&t.of.type==="choice"?m.option(e):r,b=X.get(e);return b?`${f} \xB7 ${b}`:f},$=(0,l.useMemo)(()=>{let e=T.trim().toLowerCase();return e===""?g:g.filter(r=>j(r).toLowerCase().includes(e))},[g,T,s,t,X]),k=t.type==="several",H=t.type==="file"?t:t.type==="several"&&t.of.type==="file"?t.of:void 0,K=k&&g.length===0,C=o.kinds&&o.kinds.length>0&&!o.kinds.includes("*")?o.kinds.map(e=>Z(ne(s.schema.tryDefinition(e),e))).join(" or "):m.label,Ne=n.open.length>1?`${C} \xB7 ${n.open.length-A.length+1} of ${n.open.length}`:C;return(0,i.jsxs)("div",{ref:L,"data-graview-asking":n.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,padding:"5px 0 2px"},children:[n.open.length>1||g.length>0?(0,i.jsx)("span",{id:U,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:Ne}):null,g.length>z?(0,i.jsx)("input",{type:"search",value:T,onChange:e=>Oe(e.target.value),placeholder:`Filter ${g.length}\u2026`,"aria-label":`Filter ${C}`,"data-testid":"ask-filter",onKeyDown:e=>{if(e.key!=="ArrowDown"||e.metaKey||e.ctrlKey||e.altKey)return;let r=Y.ref.current?.querySelector(`[${B}][tabindex="0"]`);r&&(e.preventDefault(),r.focus())},style:{font:"inherit",fontSize:"0.8125rem",minWidth:0,padding:"3px 7px"}}):null,xe?(0,i.jsxs)("form",{style:{display:"grid",gap:4},onSubmit:e=>{e.preventDefault(),h(J??(d===void 0?void 0:null))},children:[(0,i.jsx)(be,{value:J,onChange:V,start:N?x[N]??P[N]:void 0,label:`${N?q(s.schema,v,N).label:m.label} repeats`,name:o.name}),(0,i.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,i.jsx)("button",{type:"submit",style:{fontSize:"0.8125rem"},children:A.length>1?"Next":"Apply"}),O]})]}):Q?(0,i.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,i.jsx)(he,{relation:Q,value:d,onChange:h,label:m.label}),O]}):H?(0,i.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,i.jsx)(ye,{as:"control",value:d,onChange:h,several:k,image:H.image===!0,video:H.video===!0,label:m.label}),O]}):g.length>0?(0,i.jsxs)("div",{...Y,role:"group","aria-labelledby":U,style:{display:"flex",flexWrap:"wrap",gap:4},children:[$.slice(0,z).map(e=>{let r=k?I.includes(e):e===Ae;return(0,i.jsx)("button",{type:"button",[B]:"","aria-label":`${C}: ${j(e)}`,...k?{"aria-pressed":r}:r?{"aria-current":!0}:{},style:{padding:"3px 9px",fontSize:"0.8125rem",...r?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},onClick:()=>k?F(f=>f.includes(e)?f.filter(b=>b!==e):[...f,e]):h(t.type==="boolean"?e==="yes":e),children:j(e)},e)}),$.length>z?(0,i.jsxs)("span",{"data-testid":"ask-more",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:[$.length-z," more \u2014 type to narrow"]}):null,$.length===0?(0,i.jsxs)("span",{"data-testid":"ask-none",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["None of the ",g.length," match that."]}):null,k?(0,i.jsx)("button",{type:"button",disabled:I.length===0,style:{fontSize:"0.8125rem"},onClick:()=>{let e=I;F(G),h(e)},children:A.length>1?"Next":"Apply"}):null,O]}):(0,i.jsxs)("form",{style:{display:"flex",flexWrap:"wrap",gap:4},onSubmit:e=>{if(e.preventDefault(),d!==void 0&&p===ke(d,t)){h(void 0);return}if(K){h(p.split(/[,\n]/).map(r=>r.trim()).filter(Boolean));return}if(p.trim().length!==0){if(c){let r=me(p,c);r!==void 0&&h(r);return}h(t.type==="number"?t.duration?ue(p)??p:Number(p):p)}},children:[t.type==="text"&&t.long?(0,i.jsx)("textarea",{autoFocus:!0,name:o.name,"aria-label":m.label,placeholder:m.label,value:p,rows:4,onChange:e=>D(e.target.value),onKeyDown:e=>{e.key==="Escape"?u():e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())},style:{flex:"1 1 100%",minWidth:0,font:"inherit",fontSize:"0.875rem",lineHeight:1.45,padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",resize:"vertical",fieldSizing:"content",minHeight:"5.5em",maxHeight:"40vh"}}):t.type==="date"?(0,i.jsx)(we,{autoFocus:!0,name:o.name,label:m.label,value:p===""?void 0:p,time:t.time===!0,instant:t.instant===!0,partial:t.partial===!0,onChange:e=>D(e??""),onCancel:u,boxStyle:{fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}):(0,i.jsx)("input",{autoFocus:!0,type:t.type==="number"&&!t.duration&&!c?"number":t.type==="text"&&t.holds==="phone"?"tel":"text",...c?{inputMode:"decimal","data-graview-amount":c.format??"unit"}:{},name:o.name,"aria-label":m.label,placeholder:K?`${m.label}, separated by commas`:c?`${m.label}, ${S(c).hint} \u2014 ${S(c).prefix??""}${S(c).placeholder}${S(c).suffix?` ${S(c).suffix}`:""}`:m.label,value:p,...t.type==="number"&&t.min!==void 0?{min:t.min}:{},...t.type==="number"&&t.max!==void 0?{max:t.max}:{},...t.type==="number"&&t.step!==void 0?{step:t.step}:{},onChange:e=>D(e.target.value),onKeyDown:e=>{e.key==="Escape"&&u()},style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,i.jsx)("button",{type:"submit",disabled:!K&&p.trim().length===0,style:{fontSize:"0.8125rem"},children:A.length>1?"Next":"Apply"}),O]})]})}var G=[];function De(n,a,u){let w=n?.derived?.act==="edit"&&n.subject?u[n.subject.arg]:void 0,y=typeof w=="string"?a.graph.getNode(w):void 0;return y?Object.fromEntries((n.writes??[]).filter(s=>y[s]!==void 0&&y[s]!==null).map(s=>[s,y[s]])):{}}function ke(n,a){return typeof n=="number"?a?.type==="number"&&a.amount?fe(n,a.amount):String(n):Array.isArray(n)?n.every(u=>typeof u=="string")?n.join(", "):"":typeof n!="string"?"":n}var z=10;function Ee(n,a){return n.candidates&&n.candidates.length>0?n.candidates:a.type==="choice"?a.options:a.type==="several"&&a.of.type==="choice"?a.of.options:a.type==="boolean"?$e:[]}var $e=["yes","no"];function Ce(n,a,u){return a.type==="boolean"||a.type==="choice"||a.type==="several"&&a.of.type==="choice"?u:ze(n,u)}function ze(n,a){let u=ae(a);if(u){let s=de(n.schema,n.graph.getNode(u.from)?.kind??"",u.kind,"out");return s.charAt(0).toUpperCase()+s.slice(1)}let w=ie(a);if(w.length>0)return w.map(s=>n.schema.tryDefinition(s)?.plural??`${s}s`).join(" + ");let y=n.graph.getNode(a);return y?ee(n.schema.tryDefinition(y.kind),y):a}export{qe as a,ze as b};
1
+ import{a as B,b as ve}from"./chunk.NEPQBMFT.js";import{a as ye,c as he,d as be,f as we}from"./chunk.ERPILTRY.js";import{b as S,c as fe,d as me,j as ce,k as ge}from"./chunk.REUMBCSV.js";import{b as pe,k as q}from"./chunk.2KIWGQXC.js";import{c as de,f as ue}from"./chunk.D5LOTCBU.js";import{G as Re,T as se,ca as le,h as ae,u as ie}from"./chunk.CYTTZOYL.js";import{Ma as te,Xa as re,Ya as oe,ga as Z,la as ee,ta as ne}from"./chunk.Q4MI53KK.js";import{b as W}from"./chunk.AJZBJBMO.js";var l=W(Re(),1);var i=W(se(),1);function qe({affordance:n,onApply:a,onCancel:u,store:w}){let y=le(),s=w??y?.store,[x,_]=(0,l.useState)({}),[p,D]=(0,l.useState)(""),[I,F]=(0,l.useState)(G),[J,V]=(0,l.useState)(void 0),U=(0,l.useId)(),L=(0,l.useRef)(null),A=n.open.filter(e=>!(e.name in x)),o=A[0],v=s.allMutations().find(e=>e.name===n.mutation),P=(0,l.useMemo)(()=>De(v,s,n.args??{}),[v,s,n.args]),d=o?P[o.name]:void 0,E=ge(n.open.filter(e=>e.shape?.type==="date").map(e=>e.name)),Se=(()=>{if(!E||o?.name!==E.end||o.shape?.type!=="date")return;let e=x[E.start];if(typeof e!="string")return;let r=P[E.start];return ce(typeof r=="string"?r:void 0,e,typeof d=="string"?d:void 0,{time:o.shape.time===!0,instant:o.shape.instant===!0})})();(0,l.useEffect)(()=>{D(Se??ke(d,o?.shape)),F(Array.isArray(d)?d:G),V(d)},[o?.name]),(0,l.useEffect)(()=>{L.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[o?.name]),(0,l.useLayoutEffect)(()=>{let e=L.current,r=typeof document>"u"?null:document.activeElement,f=r instanceof HTMLElement&&r.getAttribute("data-affordance")===n.id;if(!e||r&&r!==document.body&&!e.contains(r)&&!f)return;let b=e.querySelector('[data-testid="ask-filter"], form input, [role=group] button:not([disabled])');b&&b!==r&&b.focus()},[o?.name]);let Y=ve({flow:"both",letters:!0});if(!o)return null;let h=e=>{let r=d!==void 0&&JSON.stringify(e)===JSON.stringify(d)?void 0:e,f={...x,[o.name]:r};if(n.open.filter(R=>!(R.name in f)).length===0){let R=a(Object.fromEntries(Object.entries(f).filter(([,M])=>M!==void 0)));R&&R.length>0&&_(Object.fromEntries(Object.entries(f).filter(([M])=>!R.includes(M))))}else _(f)},O=o.optional?(0,i.jsx)("button",{type:"button",onClick:()=>h(void 0),style:{fontSize:"0.8125rem"},children:"Skip"}):null,t=o.shape??{type:"unknown"},c=t.type==="number"?t.amount:void 0,g=Ee(o,t),m=q(s.schema,v,o.name),Q=te((v?.input?.shape??{})[o.name]),xe=oe((v?.input?.shape??{})[o.name]),N=re(o.name),Ae=typeof d=="boolean"?d?"yes":"no":d,[T,Oe]=(0,l.useState)(""),X=(0,l.useMemo)(()=>{let e=g.map(r=>s.graph.getNode(r)).filter(r=>r!==void 0);return pe(e,r=>s.schema.tryDefinition(r))},[g,s]),j=e=>{let r=Ce(s,t,e),f=t.type==="choice"||t.type==="several"&&t.of.type==="choice"?m.option(e):r,b=X.get(e);return b?`${f} \xB7 ${b}`:f},$=(0,l.useMemo)(()=>{let e=T.trim().toLowerCase();return e===""?g:g.filter(r=>j(r).toLowerCase().includes(e))},[g,T,s,t,X]),k=t.type==="several",H=t.type==="file"?t:t.type==="several"&&t.of.type==="file"?t.of:void 0,K=k&&g.length===0,C=o.kinds&&o.kinds.length>0&&!o.kinds.includes("*")?o.kinds.map(e=>Z(ne(s.schema.tryDefinition(e),e))).join(" or "):m.label,Ne=n.open.length>1?`${C} \xB7 ${n.open.length-A.length+1} of ${n.open.length}`:C;return(0,i.jsxs)("div",{ref:L,"data-graview-asking":n.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,padding:"5px 0 2px"},children:[n.open.length>1||g.length>0?(0,i.jsx)("span",{id:U,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:Ne}):null,g.length>z?(0,i.jsx)("input",{type:"search",value:T,onChange:e=>Oe(e.target.value),placeholder:`Filter ${g.length}\u2026`,"aria-label":`Filter ${C}`,"data-testid":"ask-filter",onKeyDown:e=>{if(e.key!=="ArrowDown"||e.metaKey||e.ctrlKey||e.altKey)return;let r=Y.ref.current?.querySelector(`[${B}][tabindex="0"]`);r&&(e.preventDefault(),r.focus())},style:{font:"inherit",fontSize:"0.8125rem",minWidth:0,padding:"3px 7px"}}):null,xe?(0,i.jsxs)("form",{style:{display:"grid",gap:4},onSubmit:e=>{e.preventDefault(),h(J??(d===void 0?void 0:null))},children:[(0,i.jsx)(be,{value:J,onChange:V,start:N?x[N]??P[N]:void 0,label:`${N?q(s.schema,v,N).label:m.label} repeats`,name:o.name}),(0,i.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,i.jsx)("button",{type:"submit",style:{fontSize:"0.8125rem"},children:A.length>1?"Next":"Apply"}),O]})]}):Q?(0,i.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,i.jsx)(he,{relation:Q,value:d,onChange:h,label:m.label}),O]}):H?(0,i.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,i.jsx)(ye,{as:"control",value:d,onChange:h,several:k,image:H.image===!0,video:H.video===!0,label:m.label}),O]}):g.length>0?(0,i.jsxs)("div",{...Y,role:"group","aria-labelledby":U,style:{display:"flex",flexWrap:"wrap",gap:4},children:[$.slice(0,z).map(e=>{let r=k?I.includes(e):e===Ae;return(0,i.jsx)("button",{type:"button",[B]:"","aria-label":`${C}: ${j(e)}`,...k?{"aria-pressed":r}:r?{"aria-current":!0}:{},style:{padding:"3px 9px",fontSize:"0.8125rem",...r?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},onClick:()=>k?F(f=>f.includes(e)?f.filter(b=>b!==e):[...f,e]):h(t.type==="boolean"?e==="yes":e),children:j(e)},e)}),$.length>z?(0,i.jsxs)("span",{"data-testid":"ask-more",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:[$.length-z," more \u2014 type to narrow"]}):null,$.length===0?(0,i.jsxs)("span",{"data-testid":"ask-none",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["None of the ",g.length," match that."]}):null,k?(0,i.jsx)("button",{type:"button",disabled:I.length===0,style:{fontSize:"0.8125rem"},onClick:()=>{let e=I;F(G),h(e)},children:A.length>1?"Next":"Apply"}):null,O]}):(0,i.jsxs)("form",{style:{display:"flex",flexWrap:"wrap",gap:4},onSubmit:e=>{if(e.preventDefault(),d!==void 0&&p===ke(d,t)){h(void 0);return}if(K){h(p.split(/[,\n]/).map(r=>r.trim()).filter(Boolean));return}if(p.trim().length!==0){if(c){let r=me(p,c);r!==void 0&&h(r);return}h(t.type==="number"?t.duration?ue(p)??p:Number(p):p)}},children:[t.type==="text"&&t.long?(0,i.jsx)("textarea",{autoFocus:!0,name:o.name,"aria-label":m.label,placeholder:m.label,value:p,rows:4,onChange:e=>D(e.target.value),onKeyDown:e=>{e.key==="Escape"?u():e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())},style:{flex:"1 1 100%",minWidth:0,font:"inherit",fontSize:"0.875rem",lineHeight:1.45,padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",resize:"vertical",fieldSizing:"content",minHeight:"5.5em",maxHeight:"40vh"}}):t.type==="date"?(0,i.jsx)(we,{autoFocus:!0,name:o.name,label:m.label,value:p===""?void 0:p,time:t.time===!0,instant:t.instant===!0,partial:t.partial===!0,onChange:e=>D(e??""),onCancel:u,boxStyle:{fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}):(0,i.jsx)("input",{autoFocus:!0,type:t.type==="number"&&!t.duration&&!c?"number":t.type==="text"&&t.holds==="phone"?"tel":"text",...c?{inputMode:"decimal","data-graview-amount":c.format??"unit"}:{},name:o.name,"aria-label":m.label,placeholder:K?`${m.label}, separated by commas`:c?`${m.label}, ${S(c).hint} \u2014 ${S(c).prefix??""}${S(c).placeholder}${S(c).suffix?` ${S(c).suffix}`:""}`:m.label,value:p,...t.type==="number"&&t.min!==void 0?{min:t.min}:{},...t.type==="number"&&t.max!==void 0?{max:t.max}:{},...t.type==="number"&&t.step!==void 0?{step:t.step}:{},onChange:e=>D(e.target.value),onKeyDown:e=>{e.key==="Escape"&&u()},style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,i.jsx)("button",{type:"submit",disabled:!K&&p.trim().length===0,style:{fontSize:"0.8125rem"},children:A.length>1?"Next":"Apply"}),O]})]})}var G=[];function De(n,a,u){let w=n?.derived?.act==="edit"&&n.subject?u[n.subject.arg]:void 0,y=typeof w=="string"?a.graph.getNode(w):void 0;return y?Object.fromEntries((n.writes??[]).filter(s=>y[s]!==void 0&&y[s]!==null).map(s=>[s,y[s]])):{}}function ke(n,a){return typeof n=="number"?a?.type==="number"&&a.amount?fe(n,a.amount):String(n):Array.isArray(n)?n.every(u=>typeof u=="string")?n.join(", "):"":typeof n!="string"?"":n}var z=10;function Ee(n,a){return n.candidates&&n.candidates.length>0?n.candidates:a.type==="choice"?a.options:a.type==="several"&&a.of.type==="choice"?a.of.options:a.type==="boolean"?$e:[]}var $e=["yes","no"];function Ce(n,a,u){return a.type==="boolean"||a.type==="choice"||a.type==="several"&&a.of.type==="choice"?u:ze(n,u)}function ze(n,a){let u=ae(a);if(u){let s=de(n.schema,n.graph.getNode(u.from)?.kind??"",u.kind,"out");return s.charAt(0).toUpperCase()+s.slice(1)}let w=ie(a);if(w.length>0)return w.map(s=>n.schema.tryDefinition(s)?.plural??`${s}s`).join(" + ");let y=n.graph.getNode(a);return y?ee(n.schema.tryDefinition(y.kind),y):a}export{qe as a,ze as b};