graview 0.1.68 → 0.1.69

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 (184) hide show
  1. package/dist/preview/{chunk.ODYJEDIW.js → chunk.26RYER7Y.js} +1 -1
  2. package/dist/preview/{chunk.TRNJKHIA.js → chunk.2AL26ZPJ.js} +1 -1
  3. package/dist/preview/chunk.2WFOKJB4.js +1 -0
  4. package/dist/preview/chunk.3D37E2G5.js +1 -0
  5. package/dist/preview/chunk.3PT3BU6K.js +1 -0
  6. package/dist/preview/{chunk.7ZTGB4O7.js → chunk.3TKIZGC7.js} +1 -1
  7. package/dist/preview/{chunk.AQ2PI6MR.js → chunk.3VNOTHA5.js} +1 -1
  8. package/dist/preview/{chunk.QWLK3GKG.js → chunk.3XTIYX6M.js} +1 -1
  9. package/dist/preview/{chunk.GF3ZCX46.js → chunk.447RWLS7.js} +2 -2
  10. package/dist/preview/{chunk.E423JCOS.js → chunk.47VEV4BX.js} +1 -1
  11. package/dist/preview/{chunk.NRCWMYLH.js → chunk.4FJ4OPSJ.js} +1 -1
  12. package/dist/preview/{chunk.XFH6GHBQ.js → chunk.4O7WYLCK.js} +1 -1
  13. package/dist/preview/{chunk.MSUZAJ2K.js → chunk.4R7H3GIL.js} +2 -2
  14. package/dist/preview/{chunk.EB7PZJEO.js → chunk.4RPKCW4J.js} +1 -1
  15. package/dist/preview/{chunk.YM6SWEUI.js → chunk.523EFGHU.js} +1 -1
  16. package/dist/preview/chunk.5DU6FA5R.js +1 -0
  17. package/dist/preview/{chunk.LFFJB6D3.js → chunk.5MOXQUZH.js} +1 -1
  18. package/dist/preview/chunk.5TWRTGP6.js +1 -0
  19. package/dist/preview/{chunk.AWV57UBJ.js → chunk.66TRDXYR.js} +1 -1
  20. package/dist/preview/{chunk.AYZL3LCR.js → chunk.6BNSDPZE.js} +3 -3
  21. package/dist/preview/chunk.6BR2SUAE.js +1 -0
  22. package/dist/preview/{chunk.32JE2WS7.js → chunk.6TDVNWFU.js} +1 -1
  23. package/dist/preview/{chunk.UAMPR4MD.js → chunk.6XBQDXT6.js} +1 -1
  24. package/dist/preview/{chunk.TVWK3SGD.js → chunk.6ZFYFT5A.js} +1 -1
  25. package/dist/preview/{chunk.N5Z34V7U.js → chunk.7L3I776Z.js} +1 -1
  26. package/dist/preview/chunk.7OLKVOS6.js +1 -0
  27. package/dist/preview/{chunk.MKL4THIV.js → chunk.7T2P42VW.js} +1 -1
  28. package/dist/preview/{chunk.QM54TGU6.js → chunk.AG7WJYM5.js} +2 -2
  29. package/dist/preview/{chunk.ECNGVD25.js → chunk.AHYMIVBX.js} +1 -1
  30. package/dist/preview/chunk.AMAOZVEO.js +1 -0
  31. package/dist/preview/chunk.AMV2ILR6.js +1 -0
  32. package/dist/preview/{chunk.RQG672MJ.js → chunk.AUNQNTKY.js} +1 -1
  33. package/dist/preview/{chunk.HXTKBISQ.js → chunk.AZRICZKT.js} +1 -1
  34. package/dist/preview/{chunk.L7XKYGV7.js → chunk.B422DSYN.js} +1 -1
  35. package/dist/preview/{chunk.XDZDNZ7B.js → chunk.B5EFNTDA.js} +1 -1
  36. package/dist/preview/{chunk.F5GNNVSQ.js → chunk.BO32A3W5.js} +1 -1
  37. package/dist/preview/{chunk.ZLEBOR5T.js → chunk.BQORHDAH.js} +1 -1
  38. package/dist/preview/{chunk.4GVKKBQL.js → chunk.BSQI3KM2.js} +1 -1
  39. package/dist/preview/{chunk.BPNW5KCP.js → chunk.C6CT6F4C.js} +1 -1
  40. package/dist/preview/{chunk.JV432T4Q.js → chunk.CA2SYEYE.js} +1 -1
  41. package/dist/preview/{chunk.64LCHHZB.js → chunk.CCCONK73.js} +1 -1
  42. package/dist/preview/{chunk.GONZB3J3.js → chunk.CDSHUWSK.js} +1 -1
  43. package/dist/preview/{chunk.NFTPJAMJ.js → chunk.CKSRW3LA.js} +1 -1
  44. package/dist/preview/{chunk.LOKGUALC.js → chunk.CLIC2QBA.js} +1 -1
  45. package/dist/preview/{chunk.PLIV3IQK.js → chunk.CLZYNFFH.js} +1 -1
  46. package/dist/preview/{chunk.GKTQ5CZA.js → chunk.CSVDBDRZ.js} +2 -2
  47. package/dist/preview/{chunk.GJTEV6CK.js → chunk.CUEIGKFG.js} +1 -1
  48. package/dist/preview/{chunk.IPGLITWA.js → chunk.CYEPHT7V.js} +1 -1
  49. package/dist/preview/{chunk.BQAFFEOA.js → chunk.D3SWJ7OS.js} +1 -1
  50. package/dist/preview/{chunk.ACNOP2IU.js → chunk.D5JZQZ74.js} +1 -1
  51. package/dist/preview/{chunk.6AANHELP.js → chunk.DHPXRDT5.js} +5 -5
  52. package/dist/preview/{chunk.R3GE37OI.js → chunk.DKUEZPGR.js} +1 -1
  53. package/dist/preview/{chunk.2TUEBU7X.js → chunk.DO3FQM6R.js} +1 -1
  54. package/dist/preview/{chunk.G2BDEWJC.js → chunk.DRAPVGQZ.js} +1 -1
  55. package/dist/preview/{chunk.6WB2TYK7.js → chunk.DU76ASS4.js} +1 -1
  56. package/dist/preview/{chunk.AENP662H.js → chunk.EEUCRZA3.js} +1 -1
  57. package/dist/preview/{chunk.WC5WE34A.js → chunk.EK3JXEZL.js} +1 -1
  58. package/dist/preview/{chunk.2BMZPALF.js → chunk.EL7XXGQY.js} +1 -1
  59. package/dist/preview/{chunk.2KCDLCB2.js → chunk.EP7YT7LT.js} +1 -1
  60. package/dist/preview/{chunk.SS6KL5NT.js → chunk.EQZPEOIW.js} +1 -1
  61. package/dist/preview/{chunk.VW632VNJ.js → chunk.F4CDJBDS.js} +1 -1
  62. package/dist/preview/{chunk.O5FTWXA2.js → chunk.FE3SINPK.js} +1 -1
  63. package/dist/preview/{chunk.JULD4XFB.js → chunk.FIY4RUK5.js} +1 -1
  64. package/dist/preview/{chunk.3VEZ5MOC.js → chunk.FWXW4T4I.js} +1 -1
  65. package/dist/preview/{chunk.FSW535EA.js → chunk.G43YUGNW.js} +1 -1
  66. package/dist/preview/{chunk.QYPU444Y.js → chunk.GF5CZPZ7.js} +1 -1
  67. package/dist/preview/{chunk.4TT3ZHSJ.js → chunk.GPBHUIZQ.js} +1 -1
  68. package/dist/preview/{chunk.YL2RBZFE.js → chunk.GTF6EMVE.js} +1 -1
  69. package/dist/preview/chunk.GVFGS2HY.js +1 -0
  70. package/dist/preview/{chunk.EGSOHTZZ.js → chunk.HCX6KPRF.js} +1 -1
  71. package/dist/preview/{chunk.4YAO3A5Q.js → chunk.HGH27XZG.js} +3 -3
  72. package/dist/preview/{chunk.7WPVLEX2.js → chunk.HMJXB6KC.js} +2 -2
  73. package/dist/preview/chunk.HTEQCRVP.js +1 -0
  74. package/dist/preview/{chunk.VTDOWXCP.js → chunk.HU3KEWFO.js} +1 -1
  75. package/dist/preview/{chunk.DZ6UDZOB.js → chunk.I4H2GS4O.js} +2 -2
  76. package/dist/preview/{chunk.UD7VLXPM.js → chunk.I7KN732Z.js} +1 -1
  77. package/dist/preview/{chunk.YBQ5GVAX.js → chunk.I7OFRF6N.js} +2 -2
  78. package/dist/preview/{chunk.ZKXIZBCN.js → chunk.IAVIYJTL.js} +1 -1
  79. package/dist/preview/{chunk.CNN32262.js → chunk.IO5VFTXC.js} +1 -1
  80. package/dist/preview/{chunk.PIMAG4WT.js → chunk.IPKESOIU.js} +2 -2
  81. package/dist/preview/{chunk.42KHFGN6.js → chunk.IRNEWNUB.js} +1 -1
  82. package/dist/preview/{chunk.XRE7SHLD.js → chunk.ISZFRLNJ.js} +1 -1
  83. package/dist/preview/{chunk.GRTBEA7O.js → chunk.IY3DV52G.js} +1 -1
  84. package/dist/preview/{chunk.VES4XMZX.js → chunk.IYHY4VEC.js} +1 -1
  85. package/dist/preview/{chunk.HWFJQ42Y.js → chunk.J2N7EKMX.js} +1 -1
  86. package/dist/preview/{chunk.IT5DVKXY.js → chunk.J7O23NKZ.js} +2 -2
  87. package/dist/preview/chunk.JDUA5PH2.js +1 -0
  88. package/dist/preview/{chunk.DCLF4WWZ.js → chunk.JHAMSDAI.js} +1 -1
  89. package/dist/preview/{chunk.IKKKHHRN.js → chunk.JN3WZGJY.js} +1 -1
  90. package/dist/preview/{chunk.H4VNIAHN.js → chunk.JPAE6K4E.js} +1 -1
  91. package/dist/preview/{chunk.DGDW54KE.js → chunk.JQEXH23N.js} +1 -1
  92. package/dist/preview/{chunk.MPWLDQOG.js → chunk.KEGL6NBD.js} +1 -1
  93. package/dist/preview/{chunk.EGVM24ND.js → chunk.KHKCTVHD.js} +1 -1
  94. package/dist/preview/{chunk.VV5JAM5W.js → chunk.KKFKSJUN.js} +1 -1
  95. package/dist/preview/{chunk.Q6H5HESF.js → chunk.KLEKC4ZX.js} +1 -1
  96. package/dist/preview/chunk.KVQYOFDV.js +1 -0
  97. package/dist/preview/{chunk.ZLNUZ6LR.js → chunk.KW7PHJYX.js} +1 -1
  98. package/dist/preview/{chunk.PPCDPYYU.js → chunk.LAVLPYSC.js} +1 -1
  99. package/dist/preview/{chunk.FZELUSK5.js → chunk.LGNGFG5V.js} +1 -1
  100. package/dist/preview/{chunk.SADR3MQI.js → chunk.LKM2R5UF.js} +1 -1
  101. package/dist/preview/{chunk.42C3FIKK.js → chunk.LMZ2WMGH.js} +1 -1
  102. package/dist/preview/{chunk.KAM73WVF.js → chunk.MATUPDZ3.js} +1 -1
  103. package/dist/preview/{chunk.Z2X7BFCB.js → chunk.MD3N26BC.js} +2 -2
  104. package/dist/preview/{chunk.TFJA4QV4.js → chunk.MH3AQO2R.js} +1 -1
  105. package/dist/preview/chunk.MHHNO3O2.js +1 -0
  106. package/dist/preview/{chunk.DMZRFXH7.js → chunk.MKN7ADJB.js} +1 -1
  107. package/dist/preview/{chunk.ND3DEDWB.js → chunk.ML5EHDZG.js} +1 -1
  108. package/dist/preview/{chunk.Q4VFLLUT.js → chunk.MUWI54IP.js} +1 -1
  109. package/dist/preview/{chunk.PZQ5P6WK.js → chunk.MV27WMNW.js} +1 -1
  110. package/dist/preview/{chunk.6DMCEBSO.js → chunk.N7A3T5QU.js} +1 -1
  111. package/dist/preview/{chunk.H3IGXHZR.js → chunk.NLZHNPDU.js} +2 -2
  112. package/dist/preview/{chunk.4DXPPM6T.js → chunk.NRECR3NQ.js} +1 -1
  113. package/dist/preview/{chunk.LZ6MSQ5O.js → chunk.NSAGOOJW.js} +1 -1
  114. package/dist/preview/{chunk.LMTG5NPG.js → chunk.O7NYSO6F.js} +1 -1
  115. package/dist/preview/{chunk.2ME4DVBI.js → chunk.OD5QZHRC.js} +1 -1
  116. package/dist/preview/{chunk.QUETLFBJ.js → chunk.P26ATAAI.js} +1 -1
  117. package/dist/preview/{chunk.3JMQKANL.js → chunk.PJL3I2IW.js} +1 -1
  118. package/dist/preview/{chunk.6IR5LBJU.js → chunk.POKGLN4T.js} +1 -1
  119. package/dist/preview/{chunk.IXMIU4D4.js → chunk.PZ3KM3TY.js} +1 -1
  120. package/dist/preview/{chunk.MIOLBZBS.js → chunk.QEBD7SC4.js} +1 -1
  121. package/dist/preview/{chunk.DPHH5ZVL.js → chunk.QK7EUIPL.js} +1 -1
  122. package/dist/preview/{chunk.7TDML5YU.js → chunk.QNC2OKLF.js} +1 -1
  123. package/dist/preview/{chunk.QOQ26NXM.js → chunk.QRNKGPAD.js} +1 -1
  124. package/dist/preview/{chunk.QZP3ARLH.js → chunk.QVCKTDG3.js} +1 -1
  125. package/dist/preview/{chunk.2U6HB4XU.js → chunk.R7POSVUK.js} +1 -1
  126. package/dist/preview/{chunk.UFURYU4R.js → chunk.RNAL35ID.js} +1 -1
  127. package/dist/preview/{chunk.KUCBNMIY.js → chunk.ROYCJXPE.js} +1 -1
  128. package/dist/preview/chunk.RZ73YG5K.js +1 -0
  129. package/dist/preview/{chunk.JLDJZET2.js → chunk.S2NQRD6W.js} +1 -1
  130. package/dist/preview/{chunk.O32F6LGK.js → chunk.SAWASNDO.js} +1 -1
  131. package/dist/preview/{chunk.CFE3MHWZ.js → chunk.SCVKHGO3.js} +1 -1
  132. package/dist/preview/chunk.SM37MNS2.js +1 -0
  133. package/dist/preview/{chunk.DLSS56EU.js → chunk.T2BZBR7S.js} +1 -1
  134. package/dist/preview/{chunk.OQ4ZO3YY.js → chunk.T3PELB6I.js} +1 -1
  135. package/dist/preview/{chunk.TR4YFVZN.js → chunk.TAJBXG5U.js} +1 -1
  136. package/dist/preview/{chunk.3DEWQDP7.js → chunk.TLPCYKLW.js} +1 -1
  137. package/dist/preview/{chunk.7K2V5FUB.js → chunk.TQQDUJLX.js} +1 -1
  138. package/dist/preview/{chunk.CGBOPPNL.js → chunk.TQRC5VAM.js} +1 -1
  139. package/dist/preview/chunk.U563J5IM.js +1 -0
  140. package/dist/preview/{chunk.GRBWXTST.js → chunk.UAEOCWSG.js} +1 -1
  141. package/dist/preview/{chunk.Y7OGJOPA.js → chunk.UHJSZ2XZ.js} +1 -1
  142. package/dist/preview/{chunk.JGRSUTPJ.js → chunk.UPOYRCKI.js} +1 -1
  143. package/dist/preview/{chunk.I63462I3.js → chunk.VBBH5R5T.js} +1 -1
  144. package/dist/preview/chunk.VBYJBW32.js +1 -0
  145. package/dist/preview/{chunk.HH4D3JEI.js → chunk.VEQIH7HR.js} +1 -1
  146. package/dist/preview/chunk.VHLL6VC6.js +1 -0
  147. package/dist/preview/{chunk.VLXLBGMY.js → chunk.VQDL4EEP.js} +1 -1
  148. package/dist/preview/{chunk.UODTUBQ7.js → chunk.VQOYFBEV.js} +1 -1
  149. package/dist/preview/{chunk.H3W5C3XQ.js → chunk.VR553M6J.js} +1 -1
  150. package/dist/preview/{chunk.ENLIIZF2.js → chunk.VXPEXUQF.js} +1 -1
  151. package/dist/preview/{chunk.Z67LBSQO.js → chunk.W3WXI5B3.js} +1 -1
  152. package/dist/preview/{chunk.5JKUT2OM.js → chunk.W43XWQRC.js} +1 -1
  153. package/dist/preview/{chunk.BHJRT57H.js → chunk.WFJCC6G3.js} +1 -1
  154. package/dist/preview/{chunk.I34BWUB4.js → chunk.WJHLE73Y.js} +1 -1
  155. package/dist/preview/{chunk.MK5RPEB2.js → chunk.WQ7K5O2I.js} +1 -1
  156. package/dist/preview/{chunk.EP5JS7ZH.js → chunk.WV6SP6IJ.js} +1 -1
  157. package/dist/preview/{chunk.XXCHO2A5.js → chunk.YJ4PFOPC.js} +1 -1
  158. package/dist/preview/{chunk.JCETQQ7J.js → chunk.YZKHTBTC.js} +1 -1
  159. package/dist/preview/{chunk.CE3NKAF7.js → chunk.ZE5RSKXF.js} +1 -1
  160. package/dist/preview/{chunk.WV45KLXC.js → chunk.ZQYHNFRZ.js} +1 -1
  161. package/dist/preview/{chunk.TOUSIUJF.js → chunk.ZT3ZG52B.js} +1 -1
  162. package/dist/preview/{chunk.O2VXTYUJ.js → chunk.ZU3RPI34.js} +1 -1
  163. package/dist/preview/index.html +55 -55
  164. package/dist/preview/page.js +2 -2
  165. package/package.json +6 -6
  166. package/dist/preview/chunk.3WPCS6KP.js +0 -1
  167. package/dist/preview/chunk.5L4ADKTW.js +0 -1
  168. package/dist/preview/chunk.6ZENHSTQ.js +0 -1
  169. package/dist/preview/chunk.7OL6H4LF.js +0 -1
  170. package/dist/preview/chunk.ARS4HJD2.js +0 -1
  171. package/dist/preview/chunk.C2QKA6XY.js +0 -1
  172. package/dist/preview/chunk.FHQ25SWY.js +0 -1
  173. package/dist/preview/chunk.MBTEOF4R.js +0 -1
  174. package/dist/preview/chunk.N64RVSH3.js +0 -1
  175. package/dist/preview/chunk.PI4RFOBU.js +0 -1
  176. package/dist/preview/chunk.Q42R2KW4.js +0 -1
  177. package/dist/preview/chunk.R66ZVMWB.js +0 -1
  178. package/dist/preview/chunk.RYA7A4NA.js +0 -1
  179. package/dist/preview/chunk.SUG6LIOX.js +0 -1
  180. package/dist/preview/chunk.U7PAFLUM.js +0 -1
  181. package/dist/preview/chunk.WN7SAAH6.js +0 -1
  182. package/dist/preview/chunk.ZMADWPJO.js +0 -1
  183. package/dist/preview/chunk.ZO6VMEPP.js +0 -1
  184. package/dist/preview/chunk.ZUG7U7AT.js +0 -1
@@ -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{r as We}from"./chunk.SADR3MQI.js";import{a as ae,b as Oe,f as Ne,i as ze}from"./chunk.AQ2PI6MR.js";import{a as Le,e as Re,l as De}from"./chunk.H3W5C3XQ.js";import{b as $e,c as O,d as qe,e as Ee}from"./chunk.6WB2TYK7.js";import"./chunk.BJUUSIQY.js";import{a as He,b as Ie,c as Pe}from"./chunk.N5Z34V7U.js";import{a as Me}from"./chunk.YL2RBZFE.js";import"./chunk.LOKGUALC.js";import"./chunk.JGRSUTPJ.js";import"./chunk.XOZU4OFA.js";import"./chunk.EP5JS7ZH.js";import"./chunk.CE3NKAF7.js";import"./chunk.TFJA4QV4.js";import"./chunk.HWFJQ42Y.js";import"./chunk.QUETLFBJ.js";import"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import{e as Te,m as Ce}from"./chunk.H3IGXHZR.js";import"./chunk.7TDML5YU.js";import{G as Je,J as be,La as xe,W as Se,ea as Ae}from"./chunk.3VEZ5MOC.js";import{a as ve}from"./chunk.SDO3U72B.js";import{eb as ke,oa as ye,td as we}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as ie}from"./chunk.AJZBJBMO.js";var s=ie(Je(),1);var r=ie(Se(),1),N=xe(ve(()=>(__graviewPreload(import.meta.url,["./chunk.6WB2TYK7.js","./chunk.BJUUSIQY.js","./chunk.CE3NKAF7.js","./chunk.GRTBEA7O.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ZLNUZ6LR.js")))),Xe=N.part((a,i)=>(0,r.jsx)(a.RateTelling,{...i}),{quiet:!0}),Ze=a=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>setTimeout(a,0)):setTimeout(a,0)},et=()=>`tl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,tt=/^(yes|yep|yeah|sure|ok(ay)?|do it|go ahead|please do)\b/i,nt=/^(no|nope|don'?t|not now|never ?mind)\b/i;function it(a,i,o){let t=i.on==="list"||i.on==="lens"?i.kind:void 0;if(i.on==="selection")return i.ids;if(i.on!=="list"&&i.on!=="lens")return[];if(o==="pages"&&typeof document<"u"){let y=new Set;for(let u of document.querySelectorAll("main [data-graview-listed], main [data-graview-record], main [data-graview-pick]")){let m=u.getAttribute("data-graview-listed")??u.getAttribute("data-graview-record")??u.getAttribute("data-graview-pick"),b=m?a.graph.getNode(m):void 0;m&&b&&(t===void 0||b.kind===t)&&y.add(m)}if(y.size>0)return[...y]}return t?a.graph.allNodes().filter(y=>y.kind===t).map(y=>y.id):[]}var at=new Set(["show","go","to","open","the","a","an","me"]),Fe=a=>a.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,""),oe=(a,i)=>{let o=Fe(a);return i.every(t=>o.includes(t))},Ge=a=>a&&!/^.\p{Lu}/u.test(a)?`${a[0].toLowerCase()}${a.slice(1)}`:a,X={act:4,show:3,place:3,record:4},Ke=360,f=12;function $t({face:a,opening:i,close:o}){let t=Me(),{setMenuAt:y,aiHere:u,session:m,people:b,seats:E,onProposeChange:C,composeChange:$}=Ae(),[g,q]=(0,s.useState)({state:"offered"}),l=(0,s.useMemo)(()=>i.target??$e(i.pointed??{about:[]},e=>t.store.graph.has(e)),[i,t.store]),z=(0,s.useMemo)(()=>Re(t.store,l,t.places),[t.store,l,t.places]),[A,Q]=(0,s.useState)(""),[B,F]=(0,s.useState)(-1),[p,re]=(0,s.useState)(null),[se,ee]=(0,s.useState)(null),K=(0,s.useRef)(null),le=(0,s.useRef)(null),Y=(0,s.useRef)(null),j=(0,s.useId)(),I=(0,s.useRef)(!0),{ghost:de}=be(t.desk),[te,Qe]=(0,s.useState)(null),P=(0,s.useRef)(null),H=(0,s.useCallback)(e=>{let n=P.current;!n||!t.ai.told||(n.kept&&N.current?N.current.changeTelling(t.ai.told,n.id,e):n.queued={...n.queued,...e})},[t.ai.told]);(0,s.useEffect)(()=>{let e=t.ai.told;if(!e)return;let n=globalThis,d=()=>void N.load().then(w=>w.toldListed(e),()=>{});if(n.requestIdleCallback){let w=n.requestIdleCallback(d,{timeout:1500});return()=>n.cancelIdleCallback?.(w)}let T=setTimeout(d,200);return()=>clearTimeout(T)},[t.ai.told]),(0,s.useEffect)(()=>()=>{I.current=!1;let e=P.current,n=t.desk.get().ghost;e&&!(n&&n.ghost.interaction===e.interaction&&n.batch===void 0)&&H({outcome:"abandoned"});let d=t.desk.get().ghost;d?.onCard&&t.desk.setGhost({...d,onCard:!1})},[t.desk]);let ce=p!==null;(0,s.useEffect)(()=>{if(!ce)return;let e=O(l)[0]??(l.on==="list"?`kind:${l.kind}`:l.on==="lens"&&l.kind?`kind:${l.kind}`:null),n=t.principal,d=n.id?ke(n,{graph:t.store.graph,schema:t.store.schema,...E?{seats:E}:{},...b?{people:b}:{}}):void 0;return u({participant:`agent:graview-for-${n.id??"anyone"}:${m}`,kind:"agent",name:"Graview",...n.id?{onBehalfOf:n.id,...d?{onBehalfOfName:d}:{}}:{},over:e,robot:{at:e,mode:"thinking"}}),()=>u(null)},[ce]);let U=(0,s.useMemo)(()=>{let e=ae(t,l);return qe(t.store,l,{principal:t.principal,places:t.places,...e.acts?{acts:e.acts}:{}})},[t,l]),ue=(0,s.useMemo)(()=>{let e=O(l);if(e.length===0)return[];let n=new Set(U.candidates.flatMap(d=>d.type==="act"?[d.mutation]:[]));return He(t.store,e,{principal:t.principal,...e.length===1?{focus:e[0]}:{}}).affordances.filter(d=>!d.destructive&&n.has(d.mutation))},[t.store,t.principal,l,U]),V=(0,s.useCallback)(()=>{let e=i.returnTo,n=Be(K.current,l,a);o(),requestAnimationFrame(()=>{if(e?.isConnected&&!e.closest("[inert]"))return e.focus({preventScroll:!0});let d=(n&&n.tabIndex>=0?n:null)??document.querySelector("[data-graview-page-title]")??document.querySelector("main");d&&d.tabIndex<0&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","-1"),d?.focus({preventScroll:!0})})},[i.returnTo,l,a,o]),pe=(0,s.useCallback)(e=>{if(e.open.length>0){let n=K.current?.getBoundingClientRect();o(),y({x:n?.left??0,y:n?.top??0,on:e.args.id??O(l)[0],about:O(l)});return}try{Pe(t.store,e,{},{pressed:t.principal?{author:t.principal}:{}}),Ie(t.store,e,{},{author:t.principal}),V()}catch(n){ee(n instanceof Error?n.message:String(n))}},[t.store,t.principal,o,V,y,l]),_=(0,s.useCallback)(async e=>{let n=e.trim();if(!n)return;let d=p?.result?.answer?{said:p.said,answer:p.result.answer,...p.result.reading?{reading:p.result.reading.which}:{}}:void 0,T=l.on==="lens"?t.places.find(M=>M.as===l.place)?.title:(l.on==="list",void 0);Q(""),F(-1),ee(null),re({said:n,result:null}),q({state:"offered"});let w=it(t.store,l,a),S=P.current;S&&H({outcome:"abandoned"});let c=Date.now(),k=t.ai.told?N.current??await Promise.race([N.load().catch(()=>{}),new Promise(M=>setTimeout(M,50))]):void 0,R=t.ai.told&&k?k.examplesHere(t.ai.told,t.store,t.principal,n,l):{examples:[],ids:[]},Ve=[...new Set([...S?[]:i.suggested?[i.suggested]:[],...R.ids])],v=await De(t.ai,{...ae(t,l,n),said:n,...d?{follows:d}:{},...w.length>0?{members:w}:{},...T?{where:T}:{},...R.examples.length>0?{examples:R.examples}:{}});t.desk.record(v.interaction),v.ghost&&v.ghost.proposals.length>0&&t.desk.setGhost({ghost:v.ghost,onCard:!0});let W;if(v.missing)try{let{planFor:M}=await (__graviewPreload(import.meta.url,["./chunk.6WB2TYK7.js","./chunk.BJUUSIQY.js","./chunk.CE3NKAF7.js","./chunk.GRTBEA7O.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.HH4D3JEI.js")),G=Date.now(),me=T??(v.reading&&v.reading.which==="held"&&l.on==="record"?v.reading.words.replace(/^the \d+ \S+ in /,""):void 0);W=await M(t,{said:n,missing:v.missing,members:v.reading?.records??w,host:C!==void 0,...$?{compose:$}:{},...me?{where:me}:{}}),t.desk.record({...v.interaction,stages:[...v.interaction.stages??[],{stage:"compose",ms:Date.now()-G}]})}catch{W={refused:`${v.missing.said} That change could not be made here.`}}I.current&&re({said:n,result:v,...W?{plan:W}:{}});let J=t.ai.told;if(!J)return;let _e=Date.now()-c;P.current?.stop?.();let ne={id:et(),conversation:S?.conversation??"",interaction:v.interaction.id};P.current={...ne,conversation:ne.conversation||ne.id};let D=P.current;Ze(()=>void N.load().then(M=>{let G=M.keepTelling(J,{...M.tellingDraftOf(t.store,{words:n,target:l,result:v,...W?{plan:W}:{},ms:_e,...S?{conversation:S.conversation,follows:S.id}:{},examples:Ve}),id:D.id,conversation:D.conversation},t.principal);G&&(D.kept=!0,D.queued&&M.changeTelling(J,G.id,D.queued),D.stop=M.watchTelling(t.desk,J,G),I.current&&P.current===D&&Qe(G))},()=>{}))},[p,t,l,a,C,$,i.suggested,H]),L=p?.plan&&"question"in p.plan?p.plan:void 0,ge=(0,s.useCallback)(async()=>{let e=L?.proposal;if(!(!e||!C||g.state!=="offered")){q({state:"applying"});try{let n=await C(e);if(!I.current)return;H({outcome:n==="declined"?"declined":"accepted"}),q(n==="declined"?{state:"declined",said:"The host declined this change to the app."}:{state:"applied",...typeof n=="object"?{undo:n.undo,...n.note?{note:n.note}:{}}:{}})}catch(n){I.current&&q({state:"declined",said:n instanceof Error?n.message:String(n)})}}},[L,C,g,H]),fe=(0,s.useCallback)(()=>{H({outcome:"declined"}),q({state:"declined",said:"Left as it is."})},[H]),Ye=(0,s.useCallback)(async()=>{g.state!=="applied"||!g.undo||(await g.undo(),H({outcome:"undone"}),I.current&&q({state:"undone"}))},[g,H]),he=(0,s.useRef)(i.asked);(0,s.useEffect)(()=>{let e=he.current;he.current=void 0,e&&_(e)},[]);let x=(0,s.useMemo)(()=>{let e=A.trim();if(!e&&p)return[];let n=Fe(e).split(/\s+/).filter(c=>c&&!at.has(c)),d=/^show\b/i.test(e),T=/^(go|open)\b/i.test(e),w=[];if(!d&&!T)for(let c of ue.filter(k=>oe(k.label,n)).slice(0,X.act))w.push({id:`act:${c.id}`,kind:"act",label:c.label,hint:c.open.length>0?"asks more":"do it",take:()=>pe(c)});let S=e&&!/\?\s*$/.test(e)?Ee(t.store,l,{principal:t.principal,places:t.places,said:e}):[];for(let c of S)w.push({id:`place:${c.place}`,kind:"place",label:c.fit==="full"?`Open ${c.title}`:`Open and adjust ${c.title}`,hint:c.fit==="full"?"a view you have":"adjust it",take:()=>{o(),t.goTo.place(c.place),c.fit==="partial"&&Te(t.desk,{target:{on:"lens",place:c.place,...c.kind?{kind:c.kind}:{}},asked:e})}});if(!T){let c=U.candidates.filter(k=>k.type==="panel");for(let k of c.filter(R=>oe(`show ${R.label}`,n)).slice(0,X.show))w.push({id:k.id,kind:"show",label:`Show ${Ge(k.label)}`,hint:"a panel",take:()=>{o(),Oe(t,{title:k.label,recipe:{...k.panel,title:k.label}})}})}if(!d){for(let c of t.places.filter(k=>oe(k.title,n)&&!S.some(R=>R.place===k.as)).slice(0,X.place))w.push({id:`place:${c.as}`,kind:"place",label:`Go to ${c.title}`,take:()=>(o(),t.goTo.place(c.as))});if(n.length>0){let c=We(t.store,e.replace(/^(go to|open)\s+/i,""),{principal:t.principal,from:O(l),limit:X.record}).hits;for(let k of c)k.about==="node"&&w.push({id:`record:${k.id}`,kind:"record",label:k.label,hint:ye(t.store.schema,k.kind),take:()=>(o(),t.goTo.record(k.id))})}}return e&&w.push({id:"ask",kind:"ask",label:e,take:()=>void _(e)}),w},[A,ue,U,t,l,pe,_,o,p]);(0,s.useEffect)(()=>F(A.trim()?0:-1),[A]),(0,s.useLayoutEffect)(()=>{let e=K.current;if(!e)return;if(typeof e.showPopover=="function")try{e.showPopover()}catch{}le.current?.focus({preventScroll:!0});let n=0,d=null,T=i.from;T&&rt(e,T);let w=()=>{let S=Be(e,l,a);T?st(e,S):ot(e,S);let c=Y.current?S:null;d!==c&&(d?.removeAttribute("data-graview-ai-thinking"),c?.setAttribute("data-graview-ai-thinking",""),d=c),Y.current&&lt(Y.current,c),n=requestAnimationFrame(w)};return w(),()=>{cancelAnimationFrame(n),d?.removeAttribute("data-graview-ai-thinking")}},[l,a,i.from]),(0,s.useEffect)(()=>{if(p)return;let e=n=>{n.target instanceof Node&&K.current?.contains(n.target)||o()};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[p,o]);let je=e=>{if(e.key==="ArrowDown"&&x.length>0)e.preventDefault(),F(n=>Math.min(x.length-1,n+1));else if(e.key==="ArrowUp"&&x.length>0)e.preventDefault(),F(n=>Math.max(0,n-1));else if(e.key==="Enter"){e.preventDefault();let n=x[B];n?n.take():L?.proposal&&g.state==="offered"&&tt.test(A.trim())?(Q(""),ge()):L&&g.state==="offered"&&nt.test(A.trim())?(Q(""),fe()):A.trim()&&_(A)}},h=p?.result??null,Ue=x[B];return(0,r.jsxs)("section",{ref:K,popover:"manual",role:"region","aria-label":p?`Answer about ${z}`:`Tell Graview about ${z}`,"data-testid":"quick-ask","data-quick-ask":p?"answer":"bar","data-quick-ask-face":a,"data-graview-offstage":"","data-graview-overlay":"",onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),V())},onMouseDown:e=>e.stopPropagation(),style:pt,children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,r.jsxs)("p",{"data-testid":"quick-ask-about",style:{margin:0,flex:"1 1 auto",minWidth:0,fontSize:"0.75rem",color:"var(--graview-ink-muted)",overflowWrap:"anywhere"},children:["About ",z]}),(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-close","aria-label":"Close",title:"Close",onClick:V,style:gt,children:(0,r.jsx)("span",{"aria-hidden":"true",children:"\u2715"})})]}),p?(0,r.jsxs)("div",{"data-testid":"quick-answer",style:{display:"grid",gap:8},children:[(0,r.jsxs)("p",{"data-testid":"quick-answer-asked",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",fontStyle:"italic",overflowWrap:"anywhere"},children:["\u201C",p.said,"\u201D"]}),(0,r.jsx)("p",{"data-testid":"quick-answer-text","aria-live":"polite",style:{margin:0,fontSize:"0.9375rem",lineHeight:1.45,color:h?.interaction.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)",overflowWrap:"anywhere"},children:h===null?"Thinking\u2026":h.interaction.outcome==="failed"?h.interaction.failed??"The AI could not answer that here.":Le(p.plan?"question"in p.plan?p.plan.question:p.plan.refused:h.answer,h.ghost&&h.ghost.proposals.length>0?"Here is what I would change.":h.offers.length>0?"These may help.":void 0)}),h?.taken?(0,r.jsxs)("p",{"data-testid":"quick-ask-taken",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Taking \u201C",h.taken.said,"\u201D as ",h.taken.as,"."]}):null,h?.reading?.close?(0,r.jsxs)("p",{"data-testid":"quick-ask-reading",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Taking this as ",h.reading.words,"."]}):null,L?(0,r.jsxs)("section",{"data-testid":"quick-ask-plan","data-plan-state":g.state,"aria-label":"What I would do",style:ut,children:[(0,r.jsx)("ol",{style:{margin:0,paddingInlineStart:18,display:"grid",gap:2},children:L.parts.map((e,n)=>(0,r.jsx)("li",{"data-plan-part":e.part,style:{fontStyle:g.state==="applied"?"normal":"italic"},children:e.said},n))}),L.proposal&&C?g.state==="offered"||g.state==="applying"?(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-yes",disabled:g.state==="applying",onClick:()=>void ge(),style:Z,children:"Yes"}),(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-no",disabled:g.state==="applying",onClick:fe,style:Z,children:"No"})]}):g.state==="applied"?(0,r.jsxs)("div",{role:"status",style:{display:"flex",gap:6,alignItems:"center"},children:[(0,r.jsxs)("span",{"data-testid":"quick-ask-plan-done",children:["Done, as one change.",g.note?` ${g.note}`:""]}),g.undo?(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-undo",onClick:()=>void Ye(),style:Z,children:"Undo"}):null]}):(0,r.jsx)("p",{role:"status",style:{margin:0,color:"var(--graview-ink-muted)"},children:g.state==="undone"?"Taken back.":g.said}):null]}):null,h&&h.offers.length>0?(0,r.jsx)("ul",{"aria-label":"What acts on it",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:6},children:h.offers.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)("button",{type:"button","data-testid":"quick-answer-offer","data-ai-offer":e.id,"data-ai-offer-type":e.type,onClick:()=>{Ne(t,h,e,o,{onCard:e.type==="act"||e.type==="fill"}).then(n=>{n&&I.current&&ee(n)})},style:Z,children:e.type==="panel"?`Show ${Ge(e.label)}`:e.type==="place"?`Go to ${e.label}`:e.type==="act"||e.type==="fill"?`${e.label.replace(/[.?]$/,"")}?`:e.label})},e.id))}):null,de?.onCard&&de.ghost.interaction===h?.interaction.id?(0,r.jsx)(ze,{placement:"card"}):null,h&&te&&t.ai.told&&te.interaction===h.interaction.id?(0,r.jsx)(Xe,{told:t.ai.told,telling:te}):null]}):null,(0,r.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,r.jsx)("input",{ref:le,type:"text",role:"combobox","data-testid":"quick-ask-input","aria-label":p?`Reply about ${z}`:`Tell Graview about ${z}, or go somewhere`,"aria-expanded":x.length>0,"aria-controls":j,"aria-autocomplete":"list",...Ue?{"aria-activedescendant":`${j}-${B}`}:{},autoComplete:"off",enterKeyHint:"go",placeholder:p?"Reply\u2026":"Tell Graview, or go to\u2026",value:A,readOnly:p!==null&&h===null,"aria-busy":p!==null&&h===null,onChange:e=>Q(e.target.value),onKeyDown:je,style:ft}),(0,r.jsx)("div",{id:j,role:"listbox","aria-label":A.trim()?`What \u201C${A.trim()}\u201D finds here`:"What can be done here",hidden:x.length===0,style:{display:x.length===0?"none":"grid",gap:1,maxHeight:280,overflowY:"auto"},children:x.map((e,n)=>(0,r.jsx)("div",{id:`${j}-${n}`,role:"option","aria-selected":n===B,"data-testid":"quick-ask-option","data-quick-ask-kind":e.kind,"data-quick-ask-row":e.id,onMouseEnter:()=>F(n),onMouseDown:d=>d.preventDefault(),onClick:e.take,style:{...ht,background:n===B?"var(--graview-panel-muted)":"transparent",...e.kind==="ask"?{borderTop:"1px solid var(--graview-edge)",marginTop:2}:{}},children:e.kind==="ask"?(0,r.jsxs)("span",{children:["Tell Graview: ",(0,r.jsxs)("span",{style:{fontWeight:600},children:["\u2018",e.label,"\u2019"]})]}):(0,r.jsxs)("span",{children:[e.label,e.hint?(0,r.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.hint]}):null]})},e.id))})]}),se?(0,r.jsx)("p",{role:"alert","data-testid":"quick-ask-refused",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-warn)"},children:se}):null,(0,r.jsx)("span",{style:Ce,"aria-live":"polite",children:x.length>0&&A.trim()?`${x.length} ${x.length===1?"way":"ways"} to go on`:""}),p!==null&&h===null?(0,r.jsxs)("span",{ref:Y,role:"status","data-testid":"ai-thinking-mark",style:dt,children:[(0,r.jsx)("style",{children:"@keyframes graview-thinking{from{opacity:.35}to{opacity:1}}@media (prefers-reduced-motion:reduce){[data-testid=ai-thinking-mark]>span{animation:none!important}}"}),(0,r.jsx)("span",{"aria-hidden":"true",style:ct}),(0,r.jsxs)("span",{children:["Thinking about ",z,"\u2026"]})]}):null]})}function Be(a,i,o){let t=a?.closest("[data-graview-embed]")??document,y=i.on==="list"?[`aggregate:${i.kind}`,`kind:${i.kind}`]:i.on==="lens"&&i.kind?[`aggregate:${i.kind}`]:O(i);for(let u of y)for(let m of t.querySelectorAll(`[data-graview-view="${CSS.escape(u)}"], [data-graview-pick="${CSS.escape(u)}"], [data-graview-record="${CSS.escape(u)}"], [data-graview-listed="${CSS.escape(u)}"]`)){if(a?.contains(m))continue;let b=m.getBoundingClientRect();if(b.width>0&&b.height>0)return m}return o==="pages"?t.querySelector("main [data-graview-page-title]")??t.querySelector("main h1"):null}function ot(a,i){let o={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(Ke,o.width-2*f),y=a.getBoundingClientRect().height,u=i?.getBoundingClientRect(),m,b,E,C=l=>Math.max(f,Math.min(l,o.height-y-f));if(u&&u.width>0&&u.bottom>0&&u.top<o.height)if(u.right+f+t<=o.width-f)m=u.right+f,b=C(u.top),E="right";else if(u.left-f-t>=f)m=u.left-f-t,b=C(u.top),E="left";else{m=Math.max(f,Math.min(u.left,o.width-t-f));let l=u.bottom+f;b=l+y<=o.height-f?l:C(u.top-f-y),E=l+y<=o.height-f?"below":"above"}else m=(o.width-t)/2,b=C(72),E="top";let $=a.style,g={left:`${Math.round(m)}px`,top:`${Math.round(b)}px`,width:`${Math.round(t)}px`};$.left!==g.left&&($.left=g.left),$.top!==g.top&&($.top=g.top),$.width!==g.width&&($.width=g.width);let q=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");a.getAttribute("data-quick-ask-beside")!==q&&a.setAttribute("data-quick-ask-beside",q),a.getAttribute("data-quick-ask-side")!==E&&a.setAttribute("data-quick-ask-side",E)}function rt(a,i){let o={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(Ke,o.width-2*f),y=i.left+t>o.width-f?Math.max(f,o.width-f-t):Math.max(f,i.left),u=240,m=i.top+u>o.height-f?Math.max(f,o.height-f-u):Math.max(f,i.top);a.style.left=`${Math.round(y)}px`,a.style.top=`${Math.round(m)}px`,a.style.width=`${Math.round(t)}px`,a.style.maxHeight=`${Math.round(o.height-m-f)}px`,a.setAttribute("data-quick-ask-side","where-the-menu-stood"),a.setAttribute("data-quick-ask-from",`${Math.round(i.left)},${Math.round(i.top)}`)}function st(a,i){let o=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");a.getAttribute("data-quick-ask-beside")!==o&&a.setAttribute("data-quick-ask-beside",o)}function lt(a,i){let o=i?.getBoundingClientRect(),t=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");if(a.getAttribute("data-thinking-on")!==t&&a.setAttribute("data-thinking-on",t),!o||o.width===0){a.style.visibility!=="hidden"&&(a.style.visibility="hidden");return}let y=a.getBoundingClientRect().width,u=`${Math.round(Math.max(f/2,o.right-y-6))}px`,m=`${Math.round(Math.max(f/2,o.top-10))}px`;a.style.left!==u&&(a.style.left=u),a.style.top!==m&&(a.style.top=m),a.style.visibility!=="visible"&&(a.style.visibility="visible")}var dt={position:"fixed",visibility:"hidden",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 8px",borderRadius:999,fontSize:"0.75rem",lineHeight:1.4,whiteSpace:"nowrap",color:"var(--graview-ink)",background:"var(--graview-float)",border:"1px dashed var(--graview-accent)",boxShadow:"var(--graview-lift-low)",pointerEvents:"none"},ct={width:7,height:7,borderRadius:999,background:"var(--graview-accent)",animation:"graview-thinking 1s ease-in-out infinite alternate"},ut={display:"grid",gap:8,padding:10,borderRadius:10,border:"1px dashed var(--graview-accent)",fontSize:"0.875rem"},pt={position:"fixed",inset:"auto",height:"auto",margin:0,zIndex:we("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},gt={display:"inline-grid",placeItems:"center",width:28,height:28,padding:0,font:"inherit",fontSize:"0.875rem",lineHeight:1,color:"var(--graview-ink-muted)",background:"transparent",border:"1px solid transparent",borderRadius:6,boxShadow:"none",cursor:"pointer"},ft={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ht={display:"flex",alignItems:"center",minHeight:30,padding:"4px 8px",borderRadius:6,cursor:"pointer",overflowWrap:"anywhere"},Z={display:"inline-flex",alignItems:"center",minHeight:30,padding:"2px 10px",font:"inherit",fontSize:"0.8125rem",borderRadius:8};export{$t as QuickAskCard};
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{r as We}from"./chunk.LKM2R5UF.js";import{a as ae,b as Oe,f as Ne,i as ze}from"./chunk.3VNOTHA5.js";import{a as Le,e as Re,l as De}from"./chunk.VR553M6J.js";import{b as $e,c as O,d as qe,e as Ee}from"./chunk.DU76ASS4.js";import"./chunk.BJUUSIQY.js";import{a as He,b as Ie,c as Pe}from"./chunk.7L3I776Z.js";import{a as Me}from"./chunk.GTF6EMVE.js";import"./chunk.CLIC2QBA.js";import"./chunk.UPOYRCKI.js";import"./chunk.XOZU4OFA.js";import"./chunk.WV6SP6IJ.js";import"./chunk.ZE5RSKXF.js";import"./chunk.MH3AQO2R.js";import"./chunk.J2N7EKMX.js";import"./chunk.P26ATAAI.js";import"./chunk.FIY4RUK5.js";import"./chunk.IY3DV52G.js";import{e as Te,m as Ce}from"./chunk.NLZHNPDU.js";import"./chunk.QNC2OKLF.js";import{G as Je,J as be,La as xe,W as Se,ea as Ae}from"./chunk.FWXW4T4I.js";import{a as ve}from"./chunk.SDO3U72B.js";import{eb as ke,oa as ye,td as we}from"./chunk.DHPXRDT5.js";import"./chunk.FQLNBIQ5.js";import{b as ie}from"./chunk.AJZBJBMO.js";var s=ie(Je(),1);var r=ie(Se(),1),N=xe(ve(()=>(__graviewPreload(import.meta.url,["./chunk.DU76ASS4.js","./chunk.BJUUSIQY.js","./chunk.ZE5RSKXF.js","./chunk.IY3DV52G.js","./chunk.NLZHNPDU.js","./chunk.QNC2OKLF.js","./chunk.FWXW4T4I.js","./chunk.SDO3U72B.js","./chunk.DHPXRDT5.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.KW7PHJYX.js")))),Xe=N.part((a,i)=>(0,r.jsx)(a.RateTelling,{...i}),{quiet:!0}),Ze=a=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>setTimeout(a,0)):setTimeout(a,0)},et=()=>`tl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,tt=/^(yes|yep|yeah|sure|ok(ay)?|do it|go ahead|please do)\b/i,nt=/^(no|nope|don'?t|not now|never ?mind)\b/i;function it(a,i,o){let t=i.on==="list"||i.on==="lens"?i.kind:void 0;if(i.on==="selection")return i.ids;if(i.on!=="list"&&i.on!=="lens")return[];if(o==="pages"&&typeof document<"u"){let y=new Set;for(let u of document.querySelectorAll("main [data-graview-listed], main [data-graview-record], main [data-graview-pick]")){let m=u.getAttribute("data-graview-listed")??u.getAttribute("data-graview-record")??u.getAttribute("data-graview-pick"),b=m?a.graph.getNode(m):void 0;m&&b&&(t===void 0||b.kind===t)&&y.add(m)}if(y.size>0)return[...y]}return t?a.graph.allNodes().filter(y=>y.kind===t).map(y=>y.id):[]}var at=new Set(["show","go","to","open","the","a","an","me"]),Fe=a=>a.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,""),oe=(a,i)=>{let o=Fe(a);return i.every(t=>o.includes(t))},Ge=a=>a&&!/^.\p{Lu}/u.test(a)?`${a[0].toLowerCase()}${a.slice(1)}`:a,X={act:4,show:3,place:3,record:4},Ke=360,f=12;function $t({face:a,opening:i,close:o}){let t=Me(),{setMenuAt:y,aiHere:u,session:m,people:b,seats:E,onProposeChange:C,composeChange:$}=Ae(),[g,q]=(0,s.useState)({state:"offered"}),l=(0,s.useMemo)(()=>i.target??$e(i.pointed??{about:[]},e=>t.store.graph.has(e)),[i,t.store]),z=(0,s.useMemo)(()=>Re(t.store,l,t.places),[t.store,l,t.places]),[A,Q]=(0,s.useState)(""),[B,F]=(0,s.useState)(-1),[p,re]=(0,s.useState)(null),[se,ee]=(0,s.useState)(null),K=(0,s.useRef)(null),le=(0,s.useRef)(null),Y=(0,s.useRef)(null),j=(0,s.useId)(),I=(0,s.useRef)(!0),{ghost:de}=be(t.desk),[te,Qe]=(0,s.useState)(null),P=(0,s.useRef)(null),H=(0,s.useCallback)(e=>{let n=P.current;!n||!t.ai.told||(n.kept&&N.current?N.current.changeTelling(t.ai.told,n.id,e):n.queued={...n.queued,...e})},[t.ai.told]);(0,s.useEffect)(()=>{let e=t.ai.told;if(!e)return;let n=globalThis,d=()=>void N.load().then(w=>w.toldListed(e),()=>{});if(n.requestIdleCallback){let w=n.requestIdleCallback(d,{timeout:1500});return()=>n.cancelIdleCallback?.(w)}let T=setTimeout(d,200);return()=>clearTimeout(T)},[t.ai.told]),(0,s.useEffect)(()=>()=>{I.current=!1;let e=P.current,n=t.desk.get().ghost;e&&!(n&&n.ghost.interaction===e.interaction&&n.batch===void 0)&&H({outcome:"abandoned"});let d=t.desk.get().ghost;d?.onCard&&t.desk.setGhost({...d,onCard:!1})},[t.desk]);let ce=p!==null;(0,s.useEffect)(()=>{if(!ce)return;let e=O(l)[0]??(l.on==="list"?`kind:${l.kind}`:l.on==="lens"&&l.kind?`kind:${l.kind}`:null),n=t.principal,d=n.id?ke(n,{graph:t.store.graph,schema:t.store.schema,...E?{seats:E}:{},...b?{people:b}:{}}):void 0;return u({participant:`agent:graview-for-${n.id??"anyone"}:${m}`,kind:"agent",name:"Graview",...n.id?{onBehalfOf:n.id,...d?{onBehalfOfName:d}:{}}:{},over:e,robot:{at:e,mode:"thinking"}}),()=>u(null)},[ce]);let U=(0,s.useMemo)(()=>{let e=ae(t,l);return qe(t.store,l,{principal:t.principal,places:t.places,...e.acts?{acts:e.acts}:{}})},[t,l]),ue=(0,s.useMemo)(()=>{let e=O(l);if(e.length===0)return[];let n=new Set(U.candidates.flatMap(d=>d.type==="act"?[d.mutation]:[]));return He(t.store,e,{principal:t.principal,...e.length===1?{focus:e[0]}:{}}).affordances.filter(d=>!d.destructive&&n.has(d.mutation))},[t.store,t.principal,l,U]),V=(0,s.useCallback)(()=>{let e=i.returnTo,n=Be(K.current,l,a);o(),requestAnimationFrame(()=>{if(e?.isConnected&&!e.closest("[inert]"))return e.focus({preventScroll:!0});let d=(n&&n.tabIndex>=0?n:null)??document.querySelector("[data-graview-page-title]")??document.querySelector("main");d&&d.tabIndex<0&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","-1"),d?.focus({preventScroll:!0})})},[i.returnTo,l,a,o]),pe=(0,s.useCallback)(e=>{if(e.open.length>0){let n=K.current?.getBoundingClientRect();o(),y({x:n?.left??0,y:n?.top??0,on:e.args.id??O(l)[0],about:O(l)});return}try{Pe(t.store,e,{},{pressed:t.principal?{author:t.principal}:{}}),Ie(t.store,e,{},{author:t.principal}),V()}catch(n){ee(n instanceof Error?n.message:String(n))}},[t.store,t.principal,o,V,y,l]),_=(0,s.useCallback)(async e=>{let n=e.trim();if(!n)return;let d=p?.result?.answer?{said:p.said,answer:p.result.answer,...p.result.reading?{reading:p.result.reading.which}:{}}:void 0,T=l.on==="lens"?t.places.find(M=>M.as===l.place)?.title:(l.on==="list",void 0);Q(""),F(-1),ee(null),re({said:n,result:null}),q({state:"offered"});let w=it(t.store,l,a),S=P.current;S&&H({outcome:"abandoned"});let c=Date.now(),k=t.ai.told?N.current??await Promise.race([N.load().catch(()=>{}),new Promise(M=>setTimeout(M,50))]):void 0,R=t.ai.told&&k?k.examplesHere(t.ai.told,t.store,t.principal,n,l):{examples:[],ids:[]},Ve=[...new Set([...S?[]:i.suggested?[i.suggested]:[],...R.ids])],v=await De(t.ai,{...ae(t,l,n),said:n,...d?{follows:d}:{},...w.length>0?{members:w}:{},...T?{where:T}:{},...R.examples.length>0?{examples:R.examples}:{}});t.desk.record(v.interaction),v.ghost&&v.ghost.proposals.length>0&&t.desk.setGhost({ghost:v.ghost,onCard:!0});let W;if(v.missing)try{let{planFor:M}=await (__graviewPreload(import.meta.url,["./chunk.DU76ASS4.js","./chunk.BJUUSIQY.js","./chunk.ZE5RSKXF.js","./chunk.IY3DV52G.js","./chunk.DHPXRDT5.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.VEQIH7HR.js")),G=Date.now(),me=T??(v.reading&&v.reading.which==="held"&&l.on==="record"?v.reading.words.replace(/^the \d+ \S+ in /,""):void 0);W=await M(t,{said:n,missing:v.missing,members:v.reading?.records??w,host:C!==void 0,...$?{compose:$}:{},...me?{where:me}:{}}),t.desk.record({...v.interaction,stages:[...v.interaction.stages??[],{stage:"compose",ms:Date.now()-G}]})}catch{W={refused:`${v.missing.said} That change could not be made here.`}}I.current&&re({said:n,result:v,...W?{plan:W}:{}});let J=t.ai.told;if(!J)return;let _e=Date.now()-c;P.current?.stop?.();let ne={id:et(),conversation:S?.conversation??"",interaction:v.interaction.id};P.current={...ne,conversation:ne.conversation||ne.id};let D=P.current;Ze(()=>void N.load().then(M=>{let G=M.keepTelling(J,{...M.tellingDraftOf(t.store,{words:n,target:l,result:v,...W?{plan:W}:{},ms:_e,...S?{conversation:S.conversation,follows:S.id}:{},examples:Ve}),id:D.id,conversation:D.conversation},t.principal);G&&(D.kept=!0,D.queued&&M.changeTelling(J,G.id,D.queued),D.stop=M.watchTelling(t.desk,J,G),I.current&&P.current===D&&Qe(G))},()=>{}))},[p,t,l,a,C,$,i.suggested,H]),L=p?.plan&&"question"in p.plan?p.plan:void 0,ge=(0,s.useCallback)(async()=>{let e=L?.proposal;if(!(!e||!C||g.state!=="offered")){q({state:"applying"});try{let n=await C(e);if(!I.current)return;H({outcome:n==="declined"?"declined":"accepted"}),q(n==="declined"?{state:"declined",said:"The host declined this change to the app."}:{state:"applied",...typeof n=="object"?{undo:n.undo,...n.note?{note:n.note}:{}}:{}})}catch(n){I.current&&q({state:"declined",said:n instanceof Error?n.message:String(n)})}}},[L,C,g,H]),fe=(0,s.useCallback)(()=>{H({outcome:"declined"}),q({state:"declined",said:"Left as it is."})},[H]),Ye=(0,s.useCallback)(async()=>{g.state!=="applied"||!g.undo||(await g.undo(),H({outcome:"undone"}),I.current&&q({state:"undone"}))},[g,H]),he=(0,s.useRef)(i.asked);(0,s.useEffect)(()=>{let e=he.current;he.current=void 0,e&&_(e)},[]);let x=(0,s.useMemo)(()=>{let e=A.trim();if(!e&&p)return[];let n=Fe(e).split(/\s+/).filter(c=>c&&!at.has(c)),d=/^show\b/i.test(e),T=/^(go|open)\b/i.test(e),w=[];if(!d&&!T)for(let c of ue.filter(k=>oe(k.label,n)).slice(0,X.act))w.push({id:`act:${c.id}`,kind:"act",label:c.label,hint:c.open.length>0?"asks more":"do it",take:()=>pe(c)});let S=e&&!/\?\s*$/.test(e)?Ee(t.store,l,{principal:t.principal,places:t.places,said:e}):[];for(let c of S)w.push({id:`place:${c.place}`,kind:"place",label:c.fit==="full"?`Open ${c.title}`:`Open and adjust ${c.title}`,hint:c.fit==="full"?"a view you have":"adjust it",take:()=>{o(),t.goTo.place(c.place),c.fit==="partial"&&Te(t.desk,{target:{on:"lens",place:c.place,...c.kind?{kind:c.kind}:{}},asked:e})}});if(!T){let c=U.candidates.filter(k=>k.type==="panel");for(let k of c.filter(R=>oe(`show ${R.label}`,n)).slice(0,X.show))w.push({id:k.id,kind:"show",label:`Show ${Ge(k.label)}`,hint:"a panel",take:()=>{o(),Oe(t,{title:k.label,recipe:{...k.panel,title:k.label}})}})}if(!d){for(let c of t.places.filter(k=>oe(k.title,n)&&!S.some(R=>R.place===k.as)).slice(0,X.place))w.push({id:`place:${c.as}`,kind:"place",label:`Go to ${c.title}`,take:()=>(o(),t.goTo.place(c.as))});if(n.length>0){let c=We(t.store,e.replace(/^(go to|open)\s+/i,""),{principal:t.principal,from:O(l),limit:X.record}).hits;for(let k of c)k.about==="node"&&w.push({id:`record:${k.id}`,kind:"record",label:k.label,hint:ye(t.store.schema,k.kind),take:()=>(o(),t.goTo.record(k.id))})}}return e&&w.push({id:"ask",kind:"ask",label:e,take:()=>void _(e)}),w},[A,ue,U,t,l,pe,_,o,p]);(0,s.useEffect)(()=>F(A.trim()?0:-1),[A]),(0,s.useLayoutEffect)(()=>{let e=K.current;if(!e)return;if(typeof e.showPopover=="function")try{e.showPopover()}catch{}le.current?.focus({preventScroll:!0});let n=0,d=null,T=i.from;T&&rt(e,T);let w=()=>{let S=Be(e,l,a);T?st(e,S):ot(e,S);let c=Y.current?S:null;d!==c&&(d?.removeAttribute("data-graview-ai-thinking"),c?.setAttribute("data-graview-ai-thinking",""),d=c),Y.current&&lt(Y.current,c),n=requestAnimationFrame(w)};return w(),()=>{cancelAnimationFrame(n),d?.removeAttribute("data-graview-ai-thinking")}},[l,a,i.from]),(0,s.useEffect)(()=>{if(p)return;let e=n=>{n.target instanceof Node&&K.current?.contains(n.target)||o()};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[p,o]);let je=e=>{if(e.key==="ArrowDown"&&x.length>0)e.preventDefault(),F(n=>Math.min(x.length-1,n+1));else if(e.key==="ArrowUp"&&x.length>0)e.preventDefault(),F(n=>Math.max(0,n-1));else if(e.key==="Enter"){e.preventDefault();let n=x[B];n?n.take():L?.proposal&&g.state==="offered"&&tt.test(A.trim())?(Q(""),ge()):L&&g.state==="offered"&&nt.test(A.trim())?(Q(""),fe()):A.trim()&&_(A)}},h=p?.result??null,Ue=x[B];return(0,r.jsxs)("section",{ref:K,popover:"manual",role:"region","aria-label":p?`Answer about ${z}`:`Tell Graview about ${z}`,"data-testid":"quick-ask","data-quick-ask":p?"answer":"bar","data-quick-ask-face":a,"data-graview-offstage":"","data-graview-overlay":"",onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),V())},onMouseDown:e=>e.stopPropagation(),style:pt,children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,r.jsxs)("p",{"data-testid":"quick-ask-about",style:{margin:0,flex:"1 1 auto",minWidth:0,fontSize:"0.75rem",color:"var(--graview-ink-muted)",overflowWrap:"anywhere"},children:["About ",z]}),(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-close","aria-label":"Close",title:"Close",onClick:V,style:gt,children:(0,r.jsx)("span",{"aria-hidden":"true",children:"\u2715"})})]}),p?(0,r.jsxs)("div",{"data-testid":"quick-answer",style:{display:"grid",gap:8},children:[(0,r.jsxs)("p",{"data-testid":"quick-answer-asked",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",fontStyle:"italic",overflowWrap:"anywhere"},children:["\u201C",p.said,"\u201D"]}),(0,r.jsx)("p",{"data-testid":"quick-answer-text","aria-live":"polite",style:{margin:0,fontSize:"0.9375rem",lineHeight:1.45,color:h?.interaction.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)",overflowWrap:"anywhere"},children:h===null?"Thinking\u2026":h.interaction.outcome==="failed"?h.interaction.failed??"The AI could not answer that here.":Le(p.plan?"question"in p.plan?p.plan.question:p.plan.refused:h.answer,h.ghost&&h.ghost.proposals.length>0?"Here is what I would change.":h.offers.length>0?"These may help.":void 0)}),h?.taken?(0,r.jsxs)("p",{"data-testid":"quick-ask-taken",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Taking \u201C",h.taken.said,"\u201D as ",h.taken.as,"."]}):null,h?.reading?.close?(0,r.jsxs)("p",{"data-testid":"quick-ask-reading",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Taking this as ",h.reading.words,"."]}):null,L?(0,r.jsxs)("section",{"data-testid":"quick-ask-plan","data-plan-state":g.state,"aria-label":"What I would do",style:ut,children:[(0,r.jsx)("ol",{style:{margin:0,paddingInlineStart:18,display:"grid",gap:2},children:L.parts.map((e,n)=>(0,r.jsx)("li",{"data-plan-part":e.part,style:{fontStyle:g.state==="applied"?"normal":"italic"},children:e.said},n))}),L.proposal&&C?g.state==="offered"||g.state==="applying"?(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-yes",disabled:g.state==="applying",onClick:()=>void ge(),style:Z,children:"Yes"}),(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-no",disabled:g.state==="applying",onClick:fe,style:Z,children:"No"})]}):g.state==="applied"?(0,r.jsxs)("div",{role:"status",style:{display:"flex",gap:6,alignItems:"center"},children:[(0,r.jsxs)("span",{"data-testid":"quick-ask-plan-done",children:["Done, as one change.",g.note?` ${g.note}`:""]}),g.undo?(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-undo",onClick:()=>void Ye(),style:Z,children:"Undo"}):null]}):(0,r.jsx)("p",{role:"status",style:{margin:0,color:"var(--graview-ink-muted)"},children:g.state==="undone"?"Taken back.":g.said}):null]}):null,h&&h.offers.length>0?(0,r.jsx)("ul",{"aria-label":"What acts on it",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:6},children:h.offers.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)("button",{type:"button","data-testid":"quick-answer-offer","data-ai-offer":e.id,"data-ai-offer-type":e.type,onClick:()=>{Ne(t,h,e,o,{onCard:e.type==="act"||e.type==="fill"}).then(n=>{n&&I.current&&ee(n)})},style:Z,children:e.type==="panel"?`Show ${Ge(e.label)}`:e.type==="place"?`Go to ${e.label}`:e.type==="act"||e.type==="fill"?`${e.label.replace(/[.?]$/,"")}?`:e.label})},e.id))}):null,de?.onCard&&de.ghost.interaction===h?.interaction.id?(0,r.jsx)(ze,{placement:"card"}):null,h&&te&&t.ai.told&&te.interaction===h.interaction.id?(0,r.jsx)(Xe,{told:t.ai.told,telling:te}):null]}):null,(0,r.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,r.jsx)("input",{ref:le,type:"text",role:"combobox","data-testid":"quick-ask-input","aria-label":p?`Reply about ${z}`:`Tell Graview about ${z}, or go somewhere`,"aria-expanded":x.length>0,"aria-controls":j,"aria-autocomplete":"list",...Ue?{"aria-activedescendant":`${j}-${B}`}:{},autoComplete:"off",enterKeyHint:"go",placeholder:p?"Reply\u2026":"Tell Graview, or go to\u2026",value:A,readOnly:p!==null&&h===null,"aria-busy":p!==null&&h===null,onChange:e=>Q(e.target.value),onKeyDown:je,style:ft}),(0,r.jsx)("div",{id:j,role:"listbox","aria-label":A.trim()?`What \u201C${A.trim()}\u201D finds here`:"What can be done here",hidden:x.length===0,style:{display:x.length===0?"none":"grid",gap:1,maxHeight:280,overflowY:"auto"},children:x.map((e,n)=>(0,r.jsx)("div",{id:`${j}-${n}`,role:"option","aria-selected":n===B,"data-testid":"quick-ask-option","data-quick-ask-kind":e.kind,"data-quick-ask-row":e.id,onMouseEnter:()=>F(n),onMouseDown:d=>d.preventDefault(),onClick:e.take,style:{...ht,background:n===B?"var(--graview-panel-muted)":"transparent",...e.kind==="ask"?{borderTop:"1px solid var(--graview-edge)",marginTop:2}:{}},children:e.kind==="ask"?(0,r.jsxs)("span",{children:["Tell Graview: ",(0,r.jsxs)("span",{style:{fontWeight:600},children:["\u2018",e.label,"\u2019"]})]}):(0,r.jsxs)("span",{children:[e.label,e.hint?(0,r.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.hint]}):null]})},e.id))})]}),se?(0,r.jsx)("p",{role:"alert","data-testid":"quick-ask-refused",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-warn)"},children:se}):null,(0,r.jsx)("span",{style:Ce,"aria-live":"polite",children:x.length>0&&A.trim()?`${x.length} ${x.length===1?"way":"ways"} to go on`:""}),p!==null&&h===null?(0,r.jsxs)("span",{ref:Y,role:"status","data-testid":"ai-thinking-mark",style:dt,children:[(0,r.jsx)("style",{children:"@keyframes graview-thinking{from{opacity:.35}to{opacity:1}}@media (prefers-reduced-motion:reduce){[data-testid=ai-thinking-mark]>span{animation:none!important}}"}),(0,r.jsx)("span",{"aria-hidden":"true",style:ct}),(0,r.jsxs)("span",{children:["Thinking about ",z,"\u2026"]})]}):null]})}function Be(a,i,o){let t=a?.closest("[data-graview-embed]")??document,y=i.on==="list"?[`aggregate:${i.kind}`,`kind:${i.kind}`]:i.on==="lens"&&i.kind?[`aggregate:${i.kind}`]:O(i);for(let u of y)for(let m of t.querySelectorAll(`[data-graview-view="${CSS.escape(u)}"], [data-graview-pick="${CSS.escape(u)}"], [data-graview-record="${CSS.escape(u)}"], [data-graview-listed="${CSS.escape(u)}"]`)){if(a?.contains(m))continue;let b=m.getBoundingClientRect();if(b.width>0&&b.height>0)return m}return o==="pages"?t.querySelector("main [data-graview-page-title]")??t.querySelector("main h1"):null}function ot(a,i){let o={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(Ke,o.width-2*f),y=a.getBoundingClientRect().height,u=i?.getBoundingClientRect(),m,b,E,C=l=>Math.max(f,Math.min(l,o.height-y-f));if(u&&u.width>0&&u.bottom>0&&u.top<o.height)if(u.right+f+t<=o.width-f)m=u.right+f,b=C(u.top),E="right";else if(u.left-f-t>=f)m=u.left-f-t,b=C(u.top),E="left";else{m=Math.max(f,Math.min(u.left,o.width-t-f));let l=u.bottom+f;b=l+y<=o.height-f?l:C(u.top-f-y),E=l+y<=o.height-f?"below":"above"}else m=(o.width-t)/2,b=C(72),E="top";let $=a.style,g={left:`${Math.round(m)}px`,top:`${Math.round(b)}px`,width:`${Math.round(t)}px`};$.left!==g.left&&($.left=g.left),$.top!==g.top&&($.top=g.top),$.width!==g.width&&($.width=g.width);let q=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");a.getAttribute("data-quick-ask-beside")!==q&&a.setAttribute("data-quick-ask-beside",q),a.getAttribute("data-quick-ask-side")!==E&&a.setAttribute("data-quick-ask-side",E)}function rt(a,i){let o={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(Ke,o.width-2*f),y=i.left+t>o.width-f?Math.max(f,o.width-f-t):Math.max(f,i.left),u=240,m=i.top+u>o.height-f?Math.max(f,o.height-f-u):Math.max(f,i.top);a.style.left=`${Math.round(y)}px`,a.style.top=`${Math.round(m)}px`,a.style.width=`${Math.round(t)}px`,a.style.maxHeight=`${Math.round(o.height-m-f)}px`,a.setAttribute("data-quick-ask-side","where-the-menu-stood"),a.setAttribute("data-quick-ask-from",`${Math.round(i.left)},${Math.round(i.top)}`)}function st(a,i){let o=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");a.getAttribute("data-quick-ask-beside")!==o&&a.setAttribute("data-quick-ask-beside",o)}function lt(a,i){let o=i?.getBoundingClientRect(),t=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");if(a.getAttribute("data-thinking-on")!==t&&a.setAttribute("data-thinking-on",t),!o||o.width===0){a.style.visibility!=="hidden"&&(a.style.visibility="hidden");return}let y=a.getBoundingClientRect().width,u=`${Math.round(Math.max(f/2,o.right-y-6))}px`,m=`${Math.round(Math.max(f/2,o.top-10))}px`;a.style.left!==u&&(a.style.left=u),a.style.top!==m&&(a.style.top=m),a.style.visibility!=="visible"&&(a.style.visibility="visible")}var dt={position:"fixed",visibility:"hidden",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 8px",borderRadius:999,fontSize:"0.75rem",lineHeight:1.4,whiteSpace:"nowrap",color:"var(--graview-ink)",background:"var(--graview-float)",border:"1px dashed var(--graview-accent)",boxShadow:"var(--graview-lift-low)",pointerEvents:"none"},ct={width:7,height:7,borderRadius:999,background:"var(--graview-accent)",animation:"graview-thinking 1s ease-in-out infinite alternate"},ut={display:"grid",gap:8,padding:10,borderRadius:10,border:"1px dashed var(--graview-accent)",fontSize:"0.875rem"},pt={position:"fixed",inset:"auto",height:"auto",margin:0,zIndex:we("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},gt={display:"inline-grid",placeItems:"center",width:28,height:28,padding:0,font:"inherit",fontSize:"0.875rem",lineHeight:1,color:"var(--graview-ink-muted)",background:"transparent",border:"1px solid transparent",borderRadius:6,boxShadow:"none",cursor:"pointer"},ft={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ht={display:"flex",alignItems:"center",minHeight:30,padding:"4px 8px",borderRadius:6,cursor:"pointer",overflowWrap:"anywhere"},Z={display:"inline-flex",alignItems:"center",minHeight:30,padding:"2px 10px",font:"inherit",fontSize:"0.8125rem",borderRadius:8};export{$t as QuickAskCard};
@@ -1,3 +1,3 @@
1
- var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as Ze,b as et}from"./chunk.EGVM24ND.js";import{a as _e,b as Ve,c as je,d as Ye,e as Ke,f as Ge,g as Xe,j as Qe,p as Je,q as xe,r as de,s as Ce}from"./chunk.2TUEBU7X.js";import{d as Ue}from"./chunk.H3W5C3XQ.js";import{A as qe,x as Fe}from"./chunk.CFE3MHWZ.js";import{m as ze}from"./chunk.H3IGXHZR.js";import{G as ke,La as Se,W as Y,ea as We}from"./chunk.3VEZ5MOC.js";import{a as ve}from"./chunk.SDO3U72B.js";import{la as $e,td as W}from"./chunk.6AANHELP.js";import{b as O}from"./chunk.AJZBJBMO.js";var f=O(ke(),1);var G=O(ke(),1);var K=O(Y(),1),N=e=>(e??"").replace(/\s+/g," ").trim();function Et(e){let t=[e];e.shadowRoot&&t.push(e.shadowRoot);for(let a of e.querySelectorAll("[data-worker-view]"))a.shadowRoot&&t.push(a.shadowRoot);return t}function Pt(e){return e instanceof HTMLElement?e.innerText??e.textContent??"":[...e.children].map(t=>t instanceof HTMLElement?t.innerText??t.textContent??"":t.textContent??"").join(" ")}var Tt="li, tr, article, [data-graview-listed], [data-graview-record], [data-record], [data-key]",Rt=/^[\s·•|,:;–—\-+…✓✔×↓↑▸▾☆★⋯]*$/u;function Dt(e,t,a=[]){let c=[],p=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT),l=new Map,i=[...e.querySelectorAll(Tt)].filter(o=>!o.contains(t)&&a.some(s=>o.contains(s)));for(let o=p.nextNode();o;o=p.nextNode()){let s=o.parentElement;if(!s||t.contains(s)||i.some(d=>d.contains(s))||s.closest("button, input, select, textarea, [role='button'], nav, [hidden], [aria-hidden='true'], script, style"))continue;let r=s.closest("a[href]");r&&!r.contains(t)||l.set(s,(l.get(s)??"")+(o.textContent??""))}for(let[o,s]of[...l].flatMap(([r,d])=>d.split(/\s+·\s+/).map(n=>[r,n]))){let r=N(s);if(!(!r||r.length>40||Rt.test(r)||!/[\p{L}\p{N}]/u.test(r)||o.getClientRects().length===0)&&(c.includes(r)||c.push(r),c.length>=6))break}return c}var Mt=/^[\s\p{So}\p{Sk}\p{Sm}\uFE0F·•|–—✓✔×▸▾…-]+|[\s\p{So}\p{Sk}\p{Sm}\uFE0F·•|–—✓✔×▸▾…-]+$/gu,tt=e=>N(e).replace(Mt,"").toLowerCase();function At(e){let t=[],a=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT);for(let c=a.nextNode();c;c=a.nextNode()){let p=N(c.textContent);p&&!c.parentElement?.closest("button, script, style, [hidden], [aria-hidden='true']")&&t.push(p)}return t}function nt(e,t){if(!e)return[];let a=[],c=p=>{let l=N(p);l.length>1&&l.length<80&&!a.some(i=>i.toLowerCase()===l.toLowerCase())&&a.push(l)};for(let p of e.querySelectorAll("[data-key], [data-record]")){let l=p.getAttribute("data-record")??p.getAttribute("data-key")??"",i=At(p),o=l&&t?t(l):void 0;if(o&&i.join(" ").toLowerCase().includes(N(o).toLowerCase()))c(o);else{if(!p.hasAttribute("data-record")&&p.querySelector("[data-record]"))continue;i.length===1&&c(i[0])}}return a.slice(0,40)}function rt(e){let t=[];for(let a of e)for(let c of[a,...a.querySelectorAll("*")]){if(!c.matches("h1, h2, h3, h4, h5, h6, [role='heading']"))continue;let p=c.cloneNode(!0);for(let i of p.querySelectorAll("span"))/^[\s·\d]+$/.test(i.textContent??"")&&i.remove();let l=N(p.textContent).replace(/^[▸▾]\s*/,"");l&&!t.includes(l)&&t.push(l)}return t}function ce(e,t){if(!e?.isConnected)return{headings:[],records:[],text:""};let a=Et(e),c=[],p=[];for(let r of a)for(let d of r.querySelectorAll("h1, h2, h3, [role='heading']")){if(d.closest("[data-graview-popover], [hidden], [aria-hidden='true'], nav"))continue;let n=d.cloneNode(!0);for(let b of n.querySelectorAll("span"))/^[\s·\d]+$/.test(b.textContent??"")&&b.remove();let h=N(n.textContent).replace(/^[▸▾]\s*/,"");h&&(c.push(h),p.push({element:d,said:h}))}let l=new Map,i=new Map;for(let r of t){let d=tt(r);if(!d||l.has(r))continue;let n,h=[];for(let b of a)for(let u of b.querySelectorAll("a, li, p, span, h2, h3, h4, h5, h6, strong, div, button, td"))tt(u.textContent)===d&&(h.push(u),(!n||n.contains(u))&&(n=u));n&&(l.set(r,n),i.set(r,h))}let o=[...l.values()],s=[];for(let[r,d]of l){let n=d;for(let w=d.parentElement;w&&w!==e&&!(w instanceof HTMLBodyElement)&&!(o.some(D=>D!==d&&w.contains(D))||w.matches("main, section, ul, ol, table, tbody, [data-graview-page]"));w=w.parentElement)n=w;let h,b=new Set(t.map(w=>N(w).toLowerCase()));for(let w of p)w.element.getRootNode()!==d.getRootNode()||n.contains(w.element)||w.element.contains(d)||b.has(w.said.toLowerCase())||w.element.compareDocumentPosition(d)&Node.DOCUMENT_POSITION_FOLLOWING&&(h=w.said);let u=d.getBoundingClientRect(),E=Number.parseFloat(getComputedStyle(d).fontSize)||16,q=[...i].flatMap(([w,D])=>w===r?[]:D),B=n;for(let w=n.parentElement;w&&w!==e&&!(w instanceof HTMLBodyElement)&&!(q.some(D=>w.contains(D))||w.matches("main, [data-graview-page], [data-graview-view-root]"));w=w.parentElement)B=w;let te=B instanceof HTMLElement?B.innerText??B.textContent??"":B.textContent??"",v=d.matches("h1, [data-graview-page-title]")||d.closest("h1, [data-graview-page-title]")!==null,$=!v&&n!==d&&[...n.querySelectorAll("button, [role='button'], [role='checkbox'], [aria-pressed], input[type='checkbox'], [data-act]")].some(w=>!w.contains(d)&&!d.contains(w)),A=!v&&d.closest("a[href], [data-record]")!==null;s.push({label:r,top:Math.round(u.top),left:Math.round(u.left),size:E,facts:v?[]:Dt(n,d,q),row:N(te),...h?{under:h}:{},...$?{presses:$}:{},...A?{opens:A}:{}})}return s.sort((r,d)=>r.top-d.top||r.left-d.left),{headings:c,records:s,text:a.map(Pt).join(" ")}}function Ht(e,t,a=0){(0,G.useLayoutEffect)(()=>{let c=0,p=()=>{let l=t.current,i=e?.isConnected?de([e]):null;if(l&&i){let o=Math.max(i.top,0),s=Math.min(i.bottom,innerHeight);l.style.display=s>o?"grid":"none",l.style.left=`${Math.round(i.left-a)}px`,l.style.top=`${Math.round(o-a)}px`,l.style.width=`${Math.round(i.width+2*a)}px`,l.style.height=`${Math.round(s-o+2*a)}px`}c=requestAnimationFrame(p)};return p(),()=>cancelAnimationFrame(c)},[e,t,a])}var It=`@keyframes graview-redesign{0%{background-position:100% 0}100%{background-position:-100% 0}}
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as Ze,b as et}from"./chunk.KHKCTVHD.js";import{a as _e,b as Ve,c as je,d as Ye,e as Ke,f as Ge,g as Xe,j as Qe,p as Je,q as xe,r as de,s as Ce}from"./chunk.DO3FQM6R.js";import{d as Ue}from"./chunk.VR553M6J.js";import{A as qe,x as Fe}from"./chunk.SCVKHGO3.js";import{m as ze}from"./chunk.NLZHNPDU.js";import{G as ke,La as Se,W as Y,ea as We}from"./chunk.FWXW4T4I.js";import{a as ve}from"./chunk.SDO3U72B.js";import{la as $e,td as W}from"./chunk.DHPXRDT5.js";import{b as O}from"./chunk.AJZBJBMO.js";var f=O(ke(),1);var G=O(ke(),1);var K=O(Y(),1),N=e=>(e??"").replace(/\s+/g," ").trim();function Et(e){let t=[e];e.shadowRoot&&t.push(e.shadowRoot);for(let a of e.querySelectorAll("[data-worker-view]"))a.shadowRoot&&t.push(a.shadowRoot);return t}function Pt(e){return e instanceof HTMLElement?e.innerText??e.textContent??"":[...e.children].map(t=>t instanceof HTMLElement?t.innerText??t.textContent??"":t.textContent??"").join(" ")}var Tt="li, tr, article, [data-graview-listed], [data-graview-record], [data-record], [data-key]",Rt=/^[\s·•|,:;–—\-+…✓✔×↓↑▸▾☆★⋯]*$/u;function Dt(e,t,a=[]){let c=[],p=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT),l=new Map,i=[...e.querySelectorAll(Tt)].filter(o=>!o.contains(t)&&a.some(s=>o.contains(s)));for(let o=p.nextNode();o;o=p.nextNode()){let s=o.parentElement;if(!s||t.contains(s)||i.some(d=>d.contains(s))||s.closest("button, input, select, textarea, [role='button'], nav, [hidden], [aria-hidden='true'], script, style"))continue;let r=s.closest("a[href]");r&&!r.contains(t)||l.set(s,(l.get(s)??"")+(o.textContent??""))}for(let[o,s]of[...l].flatMap(([r,d])=>d.split(/\s+·\s+/).map(n=>[r,n]))){let r=N(s);if(!(!r||r.length>40||Rt.test(r)||!/[\p{L}\p{N}]/u.test(r)||o.getClientRects().length===0)&&(c.includes(r)||c.push(r),c.length>=6))break}return c}var Mt=/^[\s\p{So}\p{Sk}\p{Sm}\uFE0F·•|–—✓✔×▸▾…-]+|[\s\p{So}\p{Sk}\p{Sm}\uFE0F·•|–—✓✔×▸▾…-]+$/gu,tt=e=>N(e).replace(Mt,"").toLowerCase();function At(e){let t=[],a=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT);for(let c=a.nextNode();c;c=a.nextNode()){let p=N(c.textContent);p&&!c.parentElement?.closest("button, script, style, [hidden], [aria-hidden='true']")&&t.push(p)}return t}function nt(e,t){if(!e)return[];let a=[],c=p=>{let l=N(p);l.length>1&&l.length<80&&!a.some(i=>i.toLowerCase()===l.toLowerCase())&&a.push(l)};for(let p of e.querySelectorAll("[data-key], [data-record]")){let l=p.getAttribute("data-record")??p.getAttribute("data-key")??"",i=At(p),o=l&&t?t(l):void 0;if(o&&i.join(" ").toLowerCase().includes(N(o).toLowerCase()))c(o);else{if(!p.hasAttribute("data-record")&&p.querySelector("[data-record]"))continue;i.length===1&&c(i[0])}}return a.slice(0,40)}function rt(e){let t=[];for(let a of e)for(let c of[a,...a.querySelectorAll("*")]){if(!c.matches("h1, h2, h3, h4, h5, h6, [role='heading']"))continue;let p=c.cloneNode(!0);for(let i of p.querySelectorAll("span"))/^[\s·\d]+$/.test(i.textContent??"")&&i.remove();let l=N(p.textContent).replace(/^[▸▾]\s*/,"");l&&!t.includes(l)&&t.push(l)}return t}function ce(e,t){if(!e?.isConnected)return{headings:[],records:[],text:""};let a=Et(e),c=[],p=[];for(let r of a)for(let d of r.querySelectorAll("h1, h2, h3, [role='heading']")){if(d.closest("[data-graview-popover], [hidden], [aria-hidden='true'], nav"))continue;let n=d.cloneNode(!0);for(let b of n.querySelectorAll("span"))/^[\s·\d]+$/.test(b.textContent??"")&&b.remove();let h=N(n.textContent).replace(/^[▸▾]\s*/,"");h&&(c.push(h),p.push({element:d,said:h}))}let l=new Map,i=new Map;for(let r of t){let d=tt(r);if(!d||l.has(r))continue;let n,h=[];for(let b of a)for(let u of b.querySelectorAll("a, li, p, span, h2, h3, h4, h5, h6, strong, div, button, td"))tt(u.textContent)===d&&(h.push(u),(!n||n.contains(u))&&(n=u));n&&(l.set(r,n),i.set(r,h))}let o=[...l.values()],s=[];for(let[r,d]of l){let n=d;for(let w=d.parentElement;w&&w!==e&&!(w instanceof HTMLBodyElement)&&!(o.some(D=>D!==d&&w.contains(D))||w.matches("main, section, ul, ol, table, tbody, [data-graview-page]"));w=w.parentElement)n=w;let h,b=new Set(t.map(w=>N(w).toLowerCase()));for(let w of p)w.element.getRootNode()!==d.getRootNode()||n.contains(w.element)||w.element.contains(d)||b.has(w.said.toLowerCase())||w.element.compareDocumentPosition(d)&Node.DOCUMENT_POSITION_FOLLOWING&&(h=w.said);let u=d.getBoundingClientRect(),E=Number.parseFloat(getComputedStyle(d).fontSize)||16,q=[...i].flatMap(([w,D])=>w===r?[]:D),B=n;for(let w=n.parentElement;w&&w!==e&&!(w instanceof HTMLBodyElement)&&!(q.some(D=>w.contains(D))||w.matches("main, [data-graview-page], [data-graview-view-root]"));w=w.parentElement)B=w;let te=B instanceof HTMLElement?B.innerText??B.textContent??"":B.textContent??"",v=d.matches("h1, [data-graview-page-title]")||d.closest("h1, [data-graview-page-title]")!==null,$=!v&&n!==d&&[...n.querySelectorAll("button, [role='button'], [role='checkbox'], [aria-pressed], input[type='checkbox'], [data-act]")].some(w=>!w.contains(d)&&!d.contains(w)),A=!v&&d.closest("a[href], [data-record]")!==null;s.push({label:r,top:Math.round(u.top),left:Math.round(u.left),size:E,facts:v?[]:Dt(n,d,q),row:N(te),...h?{under:h}:{},...$?{presses:$}:{},...A?{opens:A}:{}})}return s.sort((r,d)=>r.top-d.top||r.left-d.left),{headings:c,records:s,text:a.map(Pt).join(" ")}}function Ht(e,t,a=0){(0,G.useLayoutEffect)(()=>{let c=0,p=()=>{let l=t.current,i=e?.isConnected?de([e]):null;if(l&&i){let o=Math.max(i.top,0),s=Math.min(i.bottom,innerHeight);l.style.display=s>o?"grid":"none",l.style.left=`${Math.round(i.left-a)}px`,l.style.top=`${Math.round(o-a)}px`,l.style.width=`${Math.round(i.width+2*a)}px`,l.style.height=`${Math.round(s-o+2*a)}px`}c=requestAnimationFrame(p)};return p(),()=>cancelAnimationFrame(c)},[e,t,a])}var It=`@keyframes graview-redesign{0%{background-position:100% 0}100%{background-position:-100% 0}}
2
2
  [data-graview-redesigning]{background:linear-gradient(90deg,var(--graview-ground) 0%,color-mix(in srgb,var(--graview-panel) 70%,var(--graview-accent) 6%) 50%,var(--graview-ground) 100%);background-size:200% 100%;animation:graview-redesign 1.6s linear infinite}
3
- @media (prefers-reduced-motion: reduce){[data-graview-redesigning]{animation:none}}`;function ot({over:e,name:t,said:a}){let c=(0,G.useRef)(null);return Ht(e,c,2),(0,K.jsxs)("div",{ref:c,"data-graview-redesigning":"","data-testid":"redesigning","data-graview-popover":"",style:Lt,children:[(0,K.jsx)("style",{children:It}),(0,K.jsxs)("p",{role:"status","aria-live":"polite",style:Ot,children:[(0,K.jsx)("span",{"aria-hidden":"true",style:Nt,children:"\u2726"})," ",a??`Graview is redesigning \u201C${t}\u201D\u2026`]})]})}var Lt={position:"fixed",display:"none",placeItems:"center",boxSizing:"border-box",borderRadius:12,zIndex:W("popover"),pointerEvents:"auto",overflow:"hidden"},Ot={margin:0,padding:"8px 14px",borderRadius:999,fontSize:"0.9375rem",color:"var(--graview-ink)",background:"var(--graview-float, var(--graview-panel))",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-low)",position:"sticky",top:16},Nt={color:"var(--graview-accent)"},Pn={position:"fixed",left:"max(12px, calc(50% - 440px))",right:"max(12px, calc(50% - 440px))",bottom:12,zIndex:W("popover"),boxSizing:"border-box",display:"grid",gap:8,padding:"10px 12px",borderRadius:14,border:"1px solid var(--graview-edge)",background:"var(--graview-float, var(--graview-panel))",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",fontSize:"0.875rem"};var ue={minHeight:34,padding:"0 12px",font:"inherit",borderRadius:8,cursor:"pointer"},Tn={...ue,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},Rn={...ue,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"};var Dn={...ue,minHeight:28,padding:"0 10px",borderRadius:999,border:0,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)"},Mn={...ue,minHeight:28,padding:"0 10px",borderRadius:999,border:0,color:"var(--graview-ink)",background:"transparent"};var P=O(ke(),1);var m=O(Y(),1),Bt=640,Ee=372,$t=1100,at=()=>typeof innerWidth!="number"||innerWidth>=$t?"side":innerWidth>=Bt?"drawer":"sheet";function Wt(){let e=document.querySelector('[data-testid="app-bar"]');return e||([...document.querySelectorAll("header")].find(t=>{let a=t.getBoundingClientRect();return a.top<=1&&a.width>=innerWidth*.8&&a.height>0})??null)}function zt(e){let t=document.querySelector("[data-graview-page-main], main");for(;t?.parentElement&&t.parentElement!==document.body&&!(e&&t.parentElement.contains(e));)t=t.parentElement;return t}function Ft(e){let[t,a]=(0,P.useState)(at);return(0,P.useLayoutEffect)(()=>{let c=document.body.style,p=c.paddingBottom,l=null,i="",o=0,s=(d,n)=>{l&&l!==d&&(l.style.paddingRight=i),d&&d!==l&&(i=d.style.paddingRight),l=d,l&&(l.style.paddingRight=n?`${Ee}px`:i)},r=()=>{let d=at();a(d);let n=Wt(),h=Math.max(0,Math.round(n?.getBoundingClientRect().bottom??0));e.current&&d!=="sheet"&&(e.current.style.top=`${h}px`),s(zt(n),d==="side"),c.paddingBottom=d==="sheet"?`${Math.round((e.current?.getBoundingClientRect().height??0)+16)}px`:p,o=requestAnimationFrame(r)};return r(),()=>{cancelAnimationFrame(o),s(null,!1),c.paddingBottom=p}},[e]),t}var qt=e=>`${Math.floor(e/6e4)}:${String(Math.floor(e%6e4/1e3)).padStart(2,"0")}`;function lt(e){let t=(0,P.useRef)(null),a=(0,P.useRef)(null),c=(0,P.useRef)(null),[p,l]=(0,P.useState)(""),[,i]=(0,P.useState)(0),o=Ft(t);(0,P.useEffect)(()=>{if(!e.working)return;let n=setInterval(()=>i(h=>h+1),1e3);return()=>clearInterval(n)},[e.working]),(0,P.useEffect)(()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},[e.talk.length,e.steps.length]),(0,P.useEffect)(()=>{e.working||c.current?.focus({preventScroll:!0})},[e.working,e.phase]);let s=e.talk.map(n=>n.who).lastIndexOf("person"),r=e.steps.length>0?(0,m.jsx)("li",{"data-testid":"better-steps",style:Xt,children:(0,m.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:3},children:e.steps.map((n,h)=>{let b=e.working&&h===e.steps.length-1;return(0,m.jsxs)("li",{"data-testid":"better-step","data-step-kind":n.kind,style:{display:"flex",gap:6,alignItems:"baseline",color:b?"var(--graview-ink)":"var(--graview-ink-muted)"},children:[(0,m.jsx)("span",{"aria-hidden":"true",style:{width:14,flex:"none",color:n.kind==="check"||n.kind==="stuck"?"var(--graview-warn)":"var(--graview-accent)"},children:b?"\u2026":n.kind==="check"||n.kind==="stuck"?"!":"\u2713"}),(0,m.jsx)("span",{children:n.text})]},`s${h}`)})})}):null,d=e.talk.length===0;return(0,m.jsxs)("aside",{ref:t,role:"complementary","aria-label":`Change how \u201C${e.name}\u201D looks`,"data-testid":"better-panel","data-better-phase":e.phase,"data-better-dock":o,"data-graview-popover":"",style:o==="sheet"?_t:o==="drawer"?Ut:ct,children:[(0,m.jsxs)("header",{style:jt,children:[(0,m.jsxs)("p",{style:{margin:0,fontWeight:600},children:["Change how \u201C",e.name,"\u201D looks"]}),(0,m.jsx)("button",{type:"button","data-testid":"better-close","aria-label":"Close",onClick:e.close,style:Qt,children:"\xD7"})]}),(0,m.jsx)("p",{"data-testid":"better-scope",style:it,children:e.scope}),e.about?(0,m.jsxs)("p",{"data-testid":"better-about",style:Vt,children:["About: ",e.about]}):null,(0,m.jsxs)("ol",{ref:a,"data-testid":"better-talk",style:Yt,children:[e.talk.map((n,h)=>(0,m.jsxs)(P.Fragment,{children:[(0,m.jsx)("li",{"data-testid":"better-message","data-who":n.who,style:n.who==="person"?Kt:Gt,children:n.said}),h===s?r:null]},`t${h}`)),s<0?r:null]}),e.working?(0,m.jsxs)("div",{style:ee,children:[(0,m.jsxs)("p",{role:"status","aria-live":"polite","data-testid":"better-working",style:{margin:0,flex:1,color:"var(--graview-ink-muted)"},children:["Graview is working on \u201C",e.name,"\u201D \xB7 ",(0,m.jsx)("span",{"data-testid":"better-time",children:qt(Date.now()-e.since)})]}),(0,m.jsx)("button",{type:"button","data-testid":"better-stop",onClick:e.stop,style:z,children:"Stop"})]}):null,e.draft&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-draft",style:{flexShrink:0,display:"grid",gap:6},children:[(0,m.jsx)("p",{"data-testid":"better-changed",style:{margin:0},children:e.draft.said}),(0,m.jsxs)("div",{style:ee,children:[(0,m.jsx)("div",{role:"group","aria-label":"Compare",style:Zt,children:["Before","After"].map(n=>{let h=n==="Before"?e.draft.before:!e.draft.before;return(0,m.jsx)("button",{type:"button","data-testid":`better-${n.toLowerCase()}`,"aria-pressed":h,onClick:()=>e.compare(n==="Before"),style:h?en:tn,children:n},n)})}),(0,m.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",gap:6},children:[(0,m.jsx)("button",{type:"button","data-testid":"better-keep",onClick:e.keep,style:st,children:"Keep"}),(0,m.jsx)("button",{type:"button","data-testid":"better-discard",onClick:e.discard,style:z,children:"Discard"})]})]})]}):null,e.stuck&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-stuck",style:ee,children:[e.stuck.keepAnyway?(0,m.jsx)("button",{type:"button","data-testid":"better-keep-anyway",onClick:e.stuck.keepAnyway,style:z,children:"Keep anyway"}):null,(0,m.jsx)("button",{type:"button","data-testid":"better-stuck-stop",onClick:e.stuck.stop,style:z,children:"Stop"})]}):null,e.children,e.kept&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-kept",style:ee,children:[(0,m.jsx)("p",{style:{margin:0,flex:1},children:e.kept.note?/^kept\b/i.test(e.kept.note.trim())?e.kept.note.trim():`Kept. ${e.kept.note}`:"Kept."}),e.kept.undo?(0,m.jsx)("button",{type:"button","data-testid":"better-undo",onClick:e.kept.undo,style:z,children:"Undo"}):null]}):null,d&&!e.working?(0,m.jsxs)("div",{style:ee,children:[(0,m.jsx)("button",{type:"button","data-testid":"better-just",onClick:e.just,style:z,children:"Make it easier to read"}),(0,m.jsx)("button",{type:"button","data-testid":"better-point",onClick:e.point,style:z,children:"Point at a part\u2026"})]}):null,e.pointed&&!e.working?(0,m.jsxs)("p",{"data-testid":"better-pointed",style:it,children:["You pointed at ",e.pointed,"."]}):null,(0,m.jsxs)("form",{onSubmit:n=>{n.preventDefault(),!(!p.trim()||e.working)&&(e.ask(p.trim()),l(""))},style:{flexShrink:0,display:"flex",gap:6},children:[(0,m.jsx)("label",{htmlFor:"graview-better-panel-words",style:ze,children:"Tell Graview what to change"}),(0,m.jsx)("input",{id:"graview-better-panel-words",ref:c,"data-testid":"better-words",value:p,disabled:e.working,onChange:n=>l(n.target.value),placeholder:d?"What should change?":"Tell Graview what to change\u2026",style:Jt}),(0,m.jsx)("button",{type:"submit",disabled:e.working||!p.trim(),"data-testid":"better-send",style:st,children:"Send"})]})]})}var dt={position:"fixed",zIndex:W("popover"),boxSizing:"border-box",display:"flex",flexDirection:"column",gap:10,padding:14,margin:0,fontSize:"0.875rem",lineHeight:1.45,color:"var(--graview-ink)",background:"var(--graview-panel)",overflow:"hidden"},ct={...dt,top:0,right:0,bottom:0,width:Ee,borderLeft:"1px solid var(--graview-edge)"},Ut={...ct,width:`min(${Ee}px, 86vw)`,boxShadow:"var(--graview-lift-high, -12px 0 32px rgba(0,0,0,0.18))"},_t={...dt,left:0,right:0,bottom:0,maxHeight:"55vh",borderTop:"1px solid var(--graview-edge)",borderRadius:"14px 14px 0 0",boxShadow:"var(--graview-lift-high, 0 -12px 32px rgba(0,0,0,0.18))"},Vt={flexShrink:0,margin:0,justifySelf:"start",alignSelf:"flex-start",padding:"2px 10px",borderRadius:999,fontSize:"0.8125rem",color:"var(--graview-ink)",background:"var(--graview-ground)",border:"1px solid var(--graview-edge)"},jt={flexShrink:0,display:"flex",alignItems:"center",gap:8,justifyContent:"space-between"},it={flexShrink:0,margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},Yt={margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:8,overflowY:"auto",flex:"1 1 0",minHeight:0},ut={padding:"7px 10px",borderRadius:10,maxWidth:"88%",whiteSpace:"pre-wrap",flex:"none"},Kt={...ut,alignSelf:"flex-end",background:"color-mix(in srgb, var(--graview-accent) 12%, var(--graview-panel))"},Gt={...ut,alignSelf:"flex-start",background:"var(--graview-ground)"},Xt={flex:"none",padding:"6px 10px",borderRadius:10,border:"1px dashed var(--graview-edge)",fontSize:"0.8125rem"},ee={flexShrink:0,display:"flex",flexWrap:"wrap",alignItems:"center",gap:6},ge={minHeight:32,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem",cursor:"pointer"},st={...ge,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},z={...ge,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"},Qt={...z,minHeight:28,padding:"0 9px",fontSize:"1rem",lineHeight:1},Jt={flex:"1 1 auto",minWidth:0,minHeight:34,padding:"0 10px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",fontSize:"0.875rem"},Zt={display:"inline-flex",border:"1px solid var(--graview-edge)",borderRadius:999,padding:2},en={...ge,minHeight:28,borderRadius:999,border:"none",color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)"},tn={...ge,minHeight:28,borderRadius:999,border:"none",color:"var(--graview-ink)",background:"transparent"};var C=O(Y(),1);var Pe=Se(ve(()=>(__graviewPreload(import.meta.url,["./chunk.6WB2TYK7.js","./chunk.BJUUSIQY.js","./chunk.CE3NKAF7.js","./chunk.GRTBEA7O.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ZLNUZ6LR.js")))),nn=Pe.part((e,t)=>(0,C.jsx)(e.RateTelling,{...t}),{quiet:!0});function Yn({ask:e,open:t,close:a}){return e?.part?(0,C.jsx)(on,{ask:e,close:a},e.at):e?.section?(0,C.jsx)(un,{ask:e,close:a},e.at):t?(0,C.jsx)(Ce,{elements:t}):null}var rn=Se(ve(()=>(__graviewPreload(import.meta.url,["./chunk.QM54TGU6.js","./chunk.EGVM24ND.js","./chunk.2TUEBU7X.js","./chunk.NYLKG25K.js","./chunk.TBY5IR7C.js","./chunk.H3W5C3XQ.js","./chunk.6WB2TYK7.js","./chunk.BJUUSIQY.js","./chunk.JGRSUTPJ.js","./chunk.XOZU4OFA.js","./chunk.EP5JS7ZH.js","./chunk.CE3NKAF7.js","./chunk.MIE4TJRW.js","./chunk.CFE3MHWZ.js","./chunk.RD2FSSLV.js","./chunk.HXTKBISQ.js","./chunk.TFJA4QV4.js","./chunk.HWFJQ42Y.js","./chunk.QUETLFBJ.js","./chunk.JULD4XFB.js","./chunk.GRTBEA7O.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.GF3ZCX46.js")))),on=rn.part((e,t)=>(0,C.jsx)(e.PageCard,{...t}),{what:"Make this better"}),an=360,R=12;function Kn(e,t){let a={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},c=Math.min(an,a.width-2*R),p=e.getBoundingClientRect().height,l=s=>Math.max(R,Math.min(s,a.height-p-R)),i=(a.width-c)/2,o=l(72);t&&t.width>0&&(t.right+R+c<=a.width-R?[i,o]=[t.right+R,l(t.top)]:t.left-R-c>=R?[i,o]=[t.left-R-c,l(t.top)]:(i=Math.max(R,Math.min(t.left,a.width-c-R)),o=t.bottom+R+p<=a.height-R?t.bottom+R:l(t.top-R-p))),e.style.left=`${Math.round(i)}px`,e.style.top=`${Math.round(o)}px`,e.style.width=`${Math.round(c)}px`}var sn=e=>e.map(t=>t.innerText??t.textContent??"").join(" ").replace(/\s+/g," ").trim(),gt=e=>{let t=e.getBoundingClientRect();return{tag:(e.getAttribute("data-graview-as")??e.localName).toLowerCase(),classes:[...e.classList],text:e.textContent??"",box:{left:t.left,top:t.top,width:t.width,height:t.height}}};function ln(e,t,a){let c=[...e.querySelectorAll("*")].filter(i=>{let o=i.getBoundingClientRect();return o.width>0&&o.height>0});if(a){let i=c.filter(r=>{let d=r.getBoundingClientRect();return t.left>=d.left&&t.left<=d.right&&t.top>=d.top&&t.top<=d.bottom}),s=i.filter(r=>!i.some(d=>d!==r&&r.contains(d)))[0];if(!s)return[];for(let r=s;r&&r!==e;r=r.parentElement)if(r.classList.length>0||/^(h[1-6]|li|a|button|img|p|article|section)$/.test(r.localName))return[r];return[s]}let p=c.filter(i=>{let o=i.getBoundingClientRect();return o.left>=t.left-2&&o.right<=t.right+2&&o.top>=t.top-2&&o.bottom<=t.bottom+2}),l=p.filter(i=>!p.some(o=>o!==i&&o.contains(i)));for(;l.length===1;){let i=[...l[0].children].filter(o=>p.includes(o));if(i.length<2)break;l=i}return l}function dn(e,t,a={}){let c=s=>({source:s.source,css:s.css,...s.root?{drawing:s.root}:{},...s.height!==void 0?{height:s.height}:{}}),p=et(c(e),c(t)),l=[];for(let s of p.unstyled)l.push(`The class \u201C${s.class}\u201D is still drawn and no rule styles it now.`);let i=s=>s.root?Ze(s.root).map(r=>r.name):[],o=e.root&&t.root?Ke(p.sectionsMissing.map(s=>s.name),i(e),i(t),a):p.sectionsMissing.map(s=>s.name);for(let s of o)l.push(`\u201C${s}\u201D is not drawn any more.`);return l}function cn(e,t,a,c,p,l){let i=c.drawing(),o=dn({source:e,css:t.css,root:t.root,height:t.height},{source:p,css:i.css,root:i.root,height:i.height},l);for(let s of c.refused())a.includes(s)||o.push(s);return o}function un({ask:e,close:t}){let{ai:a,aiDesk:c,aiHere:p,session:l,principal:i,keptViews:o,store:s}=We(),[r,d]=(0,f.useState)(e.section),n=_e(e.section),h=(0,f.useRef)(Fe(n)),b=(0,f.useRef)(null),[u,E]=(0,f.useState)(e.mode==="highlight"?{at:"highlighting"}:{at:"open"}),q=(0,f.useRef)(void 0),B=(0,f.useRef)(null),te=(0,f.useRef)(null),v=(0,f.useRef)([]),$=(0,f.useRef)([]),A=(0,f.useRef)([]),w=(0,f.useRef)(Date.now()),D=(0,f.useRef)(null),ne=(0,f.useRef)(null),re=(0,f.useRef)(null),[mt,fe]=(0,f.useState)(!1),[me,oe]=(0,f.useState)(!1),[,ht]=(0,f.useState)(0),ae=(0,f.useCallback)(()=>ht(g=>g+1),[]),[Te,yt]=(0,f.useState)(null),Re=(0,f.useRef)(null),I=(0,f.useCallback)(g=>{let y=Re.current;y&&a.told&&Pe.load().then(k=>k.changeTelling(a.told,y.id,{outcome:g}),()=>{})},[a.told]),De=(0,f.useCallback)((g,y,k,H,S,ye)=>{let se=a.told;se&&Pe.load().then(L=>{let Z=L.keepTelling(se,{words:g,target:{on:"place",place:y.view},decided:k?{type:"refusal"}:{type:"view",section:y.name},slot:"full",stages:H.map(F=>({stage:F.stage==="thinking"?"full":"light",ms:F.ms,model:F.model})),ms:S,outcome:k?"abandoned":"previewed",interaction:ye},i);Re.current=Z??null,yt(Z??null)},()=>{})},[a.told,i]);(0,f.useEffect)(()=>()=>{D.current?.abort(),b.current?.dispose(),b.current=null},[]);let Me=u.at==="working";(0,f.useEffect)(()=>{if(Me)return p({participant:`agent:graview-for-${i.id??"anyone"}:${l}`,kind:"agent",name:"Graview",...i.id?{onBehalfOf:i.id}:{},over:null,robot:{at:null,mode:"thinking"}}),()=>p(null)},[Me]);let X=(0,f.useCallback)((g,y,k,H={})=>({id:Ue(),at:new Date().toISOString(),by:i,target:{on:"place",place:r.view},targetLabel:h.current?.title??r.view,ask:{kind:"section",said:g},offered:[],outcome:y,stages:k.map(S=>({stage:S.stage,ms:S.ms,model:S.model})),usage:k.flatMap(S=>S.usage?[{tier:S.stage==="light"?"fast":"thinking",model:S.model,inputTokens:S.usage.inputTokens,outputTokens:S.usage.outputTokens}]:[]),...H}),[i,r.view]),U=(0,f.useCallback)(async g=>{b.current?.dispose();let k=h.current.draft(g);return b.current=k,await k.drawn,k},[]),_=(0,f.useCallback)(async()=>{let g=v.current.at(-1);oe(!1),g?await U(g.source):(b.current?.dispose(),b.current=null)},[U]),T=(0,f.useCallback)((g,y)=>{$.current.push({who:g,said:y}),ae()},[ae]),Q=()=>$.current.filter(g=>g.who==="person").map(g=>g.said).join(" "),ie=(0,f.useCallback)(async g=>{let y=h.current;if(!y||u.at==="working")return;let k=ne.current;ne.current=null,k&&(re.current=k),T("person",g),A.current=[],w.current=Date.now(),E({at:"working"});let H=await y.source();if(H===void 0)return T("graview","This view can't be changed here."),E({at:"open"});q.current??=H;let S=y.drawing(),ye=y.refused(),se=x=>{let V=s.graph.getNode(x);return V?$e(s.schema.tryDefinition(V.kind),V):void 0};B.current??=ce(S.root?.parentElement??S.root??n,nt(S.root,se)),te.current??=rt(r.elements);let L=B.current,Z=te.current,F=new AbortController;D.current=F;let St=Date.now(),xt=v.current.length,M=await Je({ai:a,part:{name:r.name,slot:"place"},manifest:{name:y.name,attach:"view",cardinality:"many"},talk:$.current,keep:{title:"",headings:L.headings,records:L.records.map(x=>x.label),says:Object.fromEntries(L.records.flatMap(x=>x.facts?.length||x.under?[[x.label,{...x.facts?.length?{shows:x.facts}:{},...x.under?{under:x.under}:{}}]]:[]))},current:v.current.at(-1)?.source??H,section:r.name,rewordable:Z,noun:"records",...re.current?{about:re.current}:{},host:{look:()=>xe(ce(y.drawing().root?.parentElement??n,L.records.map(x=>x.label))),read:()=>({shows:sn(r.elements)}),draft:async x=>{fe(!0);try{let V=await y.check(x);if(V.length>0)return await _(),{findings:V,drew:void 0};let we=await U(x),{failed:Le}=await we.drawn;if(Le)return await _(),{findings:[`The view did not draw: ${Le}`],drew:void 0};await new Promise(j=>requestAnimationFrame(()=>requestAnimationFrame(j)));let Oe=we.drawing().root,be=ce(Oe?.parentElement??Oe,L.records.map(j=>j.label)),Ct=y.presses?await y.presses(x).catch(()=>{}):void 0,Ne={asked:Q(),mayReword:Z},Be=[...cn(q.current,S,ye,we,x,Ne),...Ge(L,be,Ne),...(Ct?.problems??[]).slice(0,5).map(j=>`${j.control}: ${j.says}`)];return Be.length>0?await _():(v.current.push({source:x,said:Xe(r.name,L,be)??`\u201C${r.name}\u201D has changed. Compare Before and After.`,entry:X(`Make \u201C${r.name}\u201D better: ${Q()}`,"offered",[])}),oe(!1)),{findings:Be,drew:xe(be)}}finally{fe(!1)}}},onEvent:x=>{A.current.at(-1)?.kind==="streaming"&&A.current.pop(),A.current.push(x),ae()},signal:F.signal});if(D.current!==F)return;D.current=null,A.current.at(-1)?.kind==="streaming"&&A.current.pop();let le=v.current.length>xt,Ie=X(`Make \u201C${r.name}\u201D better: ${Q()}`,le?"offered":"failed",M.stages,le?{}:{failed:M.last?.findings.join(" ")??M.said});if(c.record(Ie),De(Q(),r,!le,M.stages,Date.now()-St,Ie.id),T("graview",M.passed&&Qe.test(M.said)?"Here it is on the page.":M.said),M.ended==="stuck"&&!le)return E({at:"stuck",...M.keepable&&M.last?{source:M.last.source}:{}});E(v.current.length>0?{at:"draft"}:{at:"open"})},[a,c,U,X,u.at,n,ae,T,r,_,s,De]),he=(0,f.useCallback)(()=>{if(u.at!=="working")return;let g=D.current;D.current=null,g?.abort(),fe(!1);let y=new Date(w.current).toISOString();v.current=v.current.filter(k=>k.entry.at<y),_(),T("graview","Stopped. The view is as it was."),E(v.current.length>0?{at:"draft"}:{at:"open"})},[u.at,T,_]),Ae=(0,f.useRef)(!1);(0,f.useEffect)(()=>{Ae.current||!(e.mode==="just"||e.mode==="describe"&&e.words)||(Ae.current=!0,ie(e.mode==="just"?"Make it easier to read at a glance":e.words))},[e.mode,e.words,ie]);let J=v.current.at(-1),wt=(0,f.useCallback)(async g=>{!J||g===me||(oe(g),g?(b.current?.dispose(),b.current=null):await U(J.source))},[J,me,U]),He=(0,f.useCallback)(async g=>{g!==void 0&&u.at==="stuck"&&v.current.push({source:g,said:`\u201C${r.name}\u201D kept as it was last drafted.`,entry:X(`Make \u201C${r.name}\u201D better: ${Q()}`,"offered",[])});let y=v.current.at(-1);if(u.at!=="draft"&&!(g!==void 0&&u.at==="stuck")||!y||!o?.revise||!h.current)return;let k=h.current,H=await k.source()??"";E({at:"keeping"});try{let S=await o.revise({name:k.name,title:k.title,source:y.source,before:H,section:r.name,said:y.said});b.current?.dispose(),b.current=null,k.draw(y.source),c.record({...y.entry,outcome:"accepted"}),I("accepted"),v.current=[],E({at:"kept",source:H,...S&&S.note?{note:S.note}:{},answer:S,entry:y.entry})}catch{if(T("graview","It couldn't be kept."),g!==void 0)return v.current.pop(),E(v.current.length>0?{at:"draft"}:{at:"open"});E({at:"draft"})}},[u,o,c,r.name,I,T,X]),bt=(0,f.useCallback)(()=>{T("graview","Stopped. The view is as it was."),E(v.current.length>0?{at:"draft"}:{at:"open"})},[T]),vt=(0,f.useCallback)(()=>{b.current?.dispose(),b.current=null;let g=v.current.at(-1);g&&(c.record({...g.entry,outcome:"dismissed"}),I("declined")),v.current=[],oe(!1),T("graview","Put back as it was."),E({at:"open"})},[c,I,T]),kt=(0,f.useCallback)(async()=>{if(u.at!=="kept"||!h.current)return;let g=h.current,y=await g.source()??"";try{u.answer&&typeof u.answer.undo=="function"?await u.answer.undo():await o?.revise?.({name:g.name,title:g.title,source:u.source,before:y,section:r.name,said:"Put back as it was.",undoes:!0}),g.draw(u.source===q.current?void 0:u.source),c.record({...u.entry,outcome:"dismissed"}),I("undone"),T("graview","Undone. The view is as it was."),E({at:"undone"})}catch{T("graview","It couldn't be put back.")}},[u,o,c,r.name,I,T]);return(0,f.useEffect)(()=>{let g=y=>{if(!(y.key!=="Escape"||u.at==="highlighting")){if(y.preventDefault(),u.at==="working")return he();v.current.length>0&&I("declined"),t(),e.returnTo?.focus?.()}};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[u.at,he,t,I,e.returnTo]),u.at==="highlighting"?(0,C.jsx)(gn,{box:n,root:n?.querySelector("[data-worker-view]")?.shadowRoot?.querySelector("[data-graview-view-root]")??void 0,whole:r.elements,cancel:()=>E({at:"open"}),chose:g=>{let y=g[0],k=y?qe(y):void 0;d(k??r),ne.current={name:Ye(g)??Ve(g.map(gt)),lines:je(g.map(gt))},E({at:"open"})}}):(0,C.jsxs)(C.Fragment,{children:[r.elements.length>0&&u.at==="open"&&$.current.length===0?(0,C.jsx)(Ce,{elements:r.elements}):null,mt?(0,C.jsx)(ot,{over:n,name:r.name,said:`Graview is drafting \u201C${r.name}\u201D\u2026`}):null,(0,C.jsx)(lt,{name:r.name,scope:`This changes how \u201C${r.name}\u201D looks for everyone in this app.`,phase:u.at,talk:$.current,steps:A.current,since:w.current,working:u.at==="working"||u.at==="keeping",...J&&u.at==="draft"?{draft:{said:J.said,before:me}}:{},...u.at==="kept"?{kept:{...u.note?{note:u.note}:{},undo:()=>void kt()}}:{},...u.at==="stuck"?{stuck:{...u.source!==void 0?{keepAnyway:()=>void He(u.source)}:{},stop:bt}}:{},about:(ne.current??re.current)?.name??r.name,ask:g=>void ie(g),just:()=>void ie("Make it easier to read at a glance"),point:()=>E({at:"highlighting"}),stop:he,compare:g=>void wt(g),keep:()=>void He(),discard:vt,close:()=>{D.current?.abort(),v.current.length>0&&I("declined"),t()},children:Te&&a.told&&u.at!=="working"?(0,C.jsx)(nn,{told:a.told,telling:Te}):null})]})}function gn({box:e,root:t,whole:a,wholeSaid:c="The whole section",cancel:p,chose:l}){let i=(0,f.useRef)(null),[o,s]=(0,f.useState)(null);(0,f.useLayoutEffect)(()=>{let n=0,h=()=>{let b=e?de([e]):null,u=i.current;u&&b&&(u.style.left=`${Math.round(b.left-pe)}px`,u.style.top=`${Math.round(b.top-pe)}px`,u.style.width=`${Math.round(b.width+2*pe)}px`,u.style.height=`${Math.round(b.height+2*pe)}px`),n=requestAnimationFrame(h)};return h(),()=>cancelAnimationFrame(n)},[e]),(0,f.useEffect)(()=>{i.current?.focus()},[]);let r=n=>{if(!o||!t)return s(null);let h=Math.hypot(n.clientX-o.x0,n.clientY-o.y0)>4,b={left:Math.min(o.x0,n.clientX),top:Math.min(o.y0,n.clientY),right:Math.max(o.x0,n.clientX),bottom:Math.max(o.y0,n.clientY)};s(null);let u=ln(t,b,!h);u.length>0&&l(u)},d=o?{left:Math.min(o.x0,o.x1),top:Math.min(o.y0,o.y1),width:Math.abs(o.x1-o.x0),height:Math.abs(o.y1-o.y0)}:null;return(0,C.jsxs)("div",{ref:i,tabIndex:-1,role:"application","aria-label":"Highlight the area to change: drag over it, or click one part","data-testid":"section-highlighter","data-graview-popover":"",onKeyDown:n=>{n.key==="Escape"&&(n.preventDefault(),n.stopPropagation(),p())},onMouseDown:n=>n.preventDefault(),onPointerDown:n=>{n.preventDefault(),n.currentTarget.setPointerCapture?.(n.pointerId),s({x0:n.clientX,y0:n.clientY,x1:n.clientX,y1:n.clientY})},onPointerMove:n=>s(h=>h&&{...h,x1:n.clientX,y1:n.clientY}),onPointerUp:r,onPointerCancel:()=>s(null),style:kn,children:[(0,C.jsxs)("p",{style:Sn,children:["Drag over the part to change, or click one \xB7"," ",(0,C.jsx)("button",{type:"button",onPointerDown:n=>n.stopPropagation(),onClick:()=>l(a),style:pt,children:c})," ","\xB7"," ",(0,C.jsx)("button",{type:"button",onPointerDown:n=>n.stopPropagation(),onClick:p,style:pt,children:"Cancel"})]}),d?(0,C.jsx)("div",{"data-testid":"section-drag",style:{...xn,left:d.left-(i.current?.getBoundingClientRect().left??0),top:d.top-(i.current?.getBoundingClientRect().top??0),width:d.width,height:d.height}}):null]})}var pn={position:"fixed",zIndex:W("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float, var(--graview-panel))",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},fn={margin:0,fontSize:"0.9375rem"},mn={margin:0,color:"var(--graview-ink-muted)"},hn={margin:0,color:"var(--graview-ink)",fontStyle:"italic"},yn={display:"flex",flexWrap:"wrap",gap:8},wn={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ft={minHeight:36,padding:"0 14px",font:"inherit",borderRadius:8,cursor:"pointer"},bn={...ft,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},vn={...ft,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"},pt={font:"inherit",color:"inherit",background:"none",border:0,padding:0,textDecoration:"underline",cursor:"pointer"},pe=12,kn={userSelect:"none",WebkitUserSelect:"none",position:"fixed",zIndex:W("popover"),boxSizing:"border-box",cursor:"crosshair",touchAction:"none",outline:"2px dashed var(--graview-accent)",background:"color-mix(in srgb, var(--graview-accent) 6%, transparent)"},Sn={position:"absolute",left:8,top:8,margin:0,padding:"4px 10px",borderRadius:999,fontSize:"0.8125rem",color:"var(--graview-ink)",background:"var(--graview-float, var(--graview-panel))",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-low)",cursor:"default"},xn={position:"absolute",border:"2px solid var(--graview-accent)",background:"color-mix(in srgb, var(--graview-accent) 14%, transparent)",borderRadius:4,pointerEvents:"none"},Gn={CARD:pn,HEAD:fn,MUTED:mn,THINKING:hn,ROW:yn,FIELD:wn,PRIMARY:bn,QUIET:vn};export{ce as a,ot as b,lt as c,Yn as d,Kn as e,gt as f,dn as g,un as h,gn as i,Gn as j};
3
+ @media (prefers-reduced-motion: reduce){[data-graview-redesigning]{animation:none}}`;function ot({over:e,name:t,said:a}){let c=(0,G.useRef)(null);return Ht(e,c,2),(0,K.jsxs)("div",{ref:c,"data-graview-redesigning":"","data-testid":"redesigning","data-graview-popover":"",style:Lt,children:[(0,K.jsx)("style",{children:It}),(0,K.jsxs)("p",{role:"status","aria-live":"polite",style:Ot,children:[(0,K.jsx)("span",{"aria-hidden":"true",style:Nt,children:"\u2726"})," ",a??`Graview is redesigning \u201C${t}\u201D\u2026`]})]})}var Lt={position:"fixed",display:"none",placeItems:"center",boxSizing:"border-box",borderRadius:12,zIndex:W("popover"),pointerEvents:"auto",overflow:"hidden"},Ot={margin:0,padding:"8px 14px",borderRadius:999,fontSize:"0.9375rem",color:"var(--graview-ink)",background:"var(--graview-float, var(--graview-panel))",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-low)",position:"sticky",top:16},Nt={color:"var(--graview-accent)"},Pn={position:"fixed",left:"max(12px, calc(50% - 440px))",right:"max(12px, calc(50% - 440px))",bottom:12,zIndex:W("popover"),boxSizing:"border-box",display:"grid",gap:8,padding:"10px 12px",borderRadius:14,border:"1px solid var(--graview-edge)",background:"var(--graview-float, var(--graview-panel))",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",fontSize:"0.875rem"};var ue={minHeight:34,padding:"0 12px",font:"inherit",borderRadius:8,cursor:"pointer"},Tn={...ue,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},Rn={...ue,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"};var Dn={...ue,minHeight:28,padding:"0 10px",borderRadius:999,border:0,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)"},Mn={...ue,minHeight:28,padding:"0 10px",borderRadius:999,border:0,color:"var(--graview-ink)",background:"transparent"};var P=O(ke(),1);var m=O(Y(),1),Bt=640,Ee=372,$t=1100,at=()=>typeof innerWidth!="number"||innerWidth>=$t?"side":innerWidth>=Bt?"drawer":"sheet";function Wt(){let e=document.querySelector('[data-testid="app-bar"]');return e||([...document.querySelectorAll("header")].find(t=>{let a=t.getBoundingClientRect();return a.top<=1&&a.width>=innerWidth*.8&&a.height>0})??null)}function zt(e){let t=document.querySelector("[data-graview-page-main], main");for(;t?.parentElement&&t.parentElement!==document.body&&!(e&&t.parentElement.contains(e));)t=t.parentElement;return t}function Ft(e){let[t,a]=(0,P.useState)(at);return(0,P.useLayoutEffect)(()=>{let c=document.body.style,p=c.paddingBottom,l=null,i="",o=0,s=(d,n)=>{l&&l!==d&&(l.style.paddingRight=i),d&&d!==l&&(i=d.style.paddingRight),l=d,l&&(l.style.paddingRight=n?`${Ee}px`:i)},r=()=>{let d=at();a(d);let n=Wt(),h=Math.max(0,Math.round(n?.getBoundingClientRect().bottom??0));e.current&&d!=="sheet"&&(e.current.style.top=`${h}px`),s(zt(n),d==="side"),c.paddingBottom=d==="sheet"?`${Math.round((e.current?.getBoundingClientRect().height??0)+16)}px`:p,o=requestAnimationFrame(r)};return r(),()=>{cancelAnimationFrame(o),s(null,!1),c.paddingBottom=p}},[e]),t}var qt=e=>`${Math.floor(e/6e4)}:${String(Math.floor(e%6e4/1e3)).padStart(2,"0")}`;function lt(e){let t=(0,P.useRef)(null),a=(0,P.useRef)(null),c=(0,P.useRef)(null),[p,l]=(0,P.useState)(""),[,i]=(0,P.useState)(0),o=Ft(t);(0,P.useEffect)(()=>{if(!e.working)return;let n=setInterval(()=>i(h=>h+1),1e3);return()=>clearInterval(n)},[e.working]),(0,P.useEffect)(()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},[e.talk.length,e.steps.length]),(0,P.useEffect)(()=>{e.working||c.current?.focus({preventScroll:!0})},[e.working,e.phase]);let s=e.talk.map(n=>n.who).lastIndexOf("person"),r=e.steps.length>0?(0,m.jsx)("li",{"data-testid":"better-steps",style:Xt,children:(0,m.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:3},children:e.steps.map((n,h)=>{let b=e.working&&h===e.steps.length-1;return(0,m.jsxs)("li",{"data-testid":"better-step","data-step-kind":n.kind,style:{display:"flex",gap:6,alignItems:"baseline",color:b?"var(--graview-ink)":"var(--graview-ink-muted)"},children:[(0,m.jsx)("span",{"aria-hidden":"true",style:{width:14,flex:"none",color:n.kind==="check"||n.kind==="stuck"?"var(--graview-warn)":"var(--graview-accent)"},children:b?"\u2026":n.kind==="check"||n.kind==="stuck"?"!":"\u2713"}),(0,m.jsx)("span",{children:n.text})]},`s${h}`)})})}):null,d=e.talk.length===0;return(0,m.jsxs)("aside",{ref:t,role:"complementary","aria-label":`Change how \u201C${e.name}\u201D looks`,"data-testid":"better-panel","data-better-phase":e.phase,"data-better-dock":o,"data-graview-popover":"",style:o==="sheet"?_t:o==="drawer"?Ut:ct,children:[(0,m.jsxs)("header",{style:jt,children:[(0,m.jsxs)("p",{style:{margin:0,fontWeight:600},children:["Change how \u201C",e.name,"\u201D looks"]}),(0,m.jsx)("button",{type:"button","data-testid":"better-close","aria-label":"Close",onClick:e.close,style:Qt,children:"\xD7"})]}),(0,m.jsx)("p",{"data-testid":"better-scope",style:it,children:e.scope}),e.about?(0,m.jsxs)("p",{"data-testid":"better-about",style:Vt,children:["About: ",e.about]}):null,(0,m.jsxs)("ol",{ref:a,"data-testid":"better-talk",style:Yt,children:[e.talk.map((n,h)=>(0,m.jsxs)(P.Fragment,{children:[(0,m.jsx)("li",{"data-testid":"better-message","data-who":n.who,style:n.who==="person"?Kt:Gt,children:n.said}),h===s?r:null]},`t${h}`)),s<0?r:null]}),e.working?(0,m.jsxs)("div",{style:ee,children:[(0,m.jsxs)("p",{role:"status","aria-live":"polite","data-testid":"better-working",style:{margin:0,flex:1,color:"var(--graview-ink-muted)"},children:["Graview is working on \u201C",e.name,"\u201D \xB7 ",(0,m.jsx)("span",{"data-testid":"better-time",children:qt(Date.now()-e.since)})]}),(0,m.jsx)("button",{type:"button","data-testid":"better-stop",onClick:e.stop,style:z,children:"Stop"})]}):null,e.draft&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-draft",style:{flexShrink:0,display:"grid",gap:6},children:[(0,m.jsx)("p",{"data-testid":"better-changed",style:{margin:0},children:e.draft.said}),(0,m.jsxs)("div",{style:ee,children:[(0,m.jsx)("div",{role:"group","aria-label":"Compare",style:Zt,children:["Before","After"].map(n=>{let h=n==="Before"?e.draft.before:!e.draft.before;return(0,m.jsx)("button",{type:"button","data-testid":`better-${n.toLowerCase()}`,"aria-pressed":h,onClick:()=>e.compare(n==="Before"),style:h?en:tn,children:n},n)})}),(0,m.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",gap:6},children:[(0,m.jsx)("button",{type:"button","data-testid":"better-keep",onClick:e.keep,style:st,children:"Keep"}),(0,m.jsx)("button",{type:"button","data-testid":"better-discard",onClick:e.discard,style:z,children:"Discard"})]})]})]}):null,e.stuck&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-stuck",style:ee,children:[e.stuck.keepAnyway?(0,m.jsx)("button",{type:"button","data-testid":"better-keep-anyway",onClick:e.stuck.keepAnyway,style:z,children:"Keep anyway"}):null,(0,m.jsx)("button",{type:"button","data-testid":"better-stuck-stop",onClick:e.stuck.stop,style:z,children:"Stop"})]}):null,e.children,e.kept&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-kept",style:ee,children:[(0,m.jsx)("p",{style:{margin:0,flex:1},children:e.kept.note?/^kept\b/i.test(e.kept.note.trim())?e.kept.note.trim():`Kept. ${e.kept.note}`:"Kept."}),e.kept.undo?(0,m.jsx)("button",{type:"button","data-testid":"better-undo",onClick:e.kept.undo,style:z,children:"Undo"}):null]}):null,d&&!e.working?(0,m.jsxs)("div",{style:ee,children:[(0,m.jsx)("button",{type:"button","data-testid":"better-just",onClick:e.just,style:z,children:"Make it easier to read"}),(0,m.jsx)("button",{type:"button","data-testid":"better-point",onClick:e.point,style:z,children:"Point at a part\u2026"})]}):null,e.pointed&&!e.working?(0,m.jsxs)("p",{"data-testid":"better-pointed",style:it,children:["You pointed at ",e.pointed,"."]}):null,(0,m.jsxs)("form",{onSubmit:n=>{n.preventDefault(),!(!p.trim()||e.working)&&(e.ask(p.trim()),l(""))},style:{flexShrink:0,display:"flex",gap:6},children:[(0,m.jsx)("label",{htmlFor:"graview-better-panel-words",style:ze,children:"Tell Graview what to change"}),(0,m.jsx)("input",{id:"graview-better-panel-words",ref:c,"data-testid":"better-words",value:p,disabled:e.working,onChange:n=>l(n.target.value),placeholder:d?"What should change?":"Tell Graview what to change\u2026",style:Jt}),(0,m.jsx)("button",{type:"submit",disabled:e.working||!p.trim(),"data-testid":"better-send",style:st,children:"Send"})]})]})}var dt={position:"fixed",zIndex:W("popover"),boxSizing:"border-box",display:"flex",flexDirection:"column",gap:10,padding:14,margin:0,fontSize:"0.875rem",lineHeight:1.45,color:"var(--graview-ink)",background:"var(--graview-panel)",overflow:"hidden"},ct={...dt,top:0,right:0,bottom:0,width:Ee,borderLeft:"1px solid var(--graview-edge)"},Ut={...ct,width:`min(${Ee}px, 86vw)`,boxShadow:"var(--graview-lift-high, -12px 0 32px rgba(0,0,0,0.18))"},_t={...dt,left:0,right:0,bottom:0,maxHeight:"55vh",borderTop:"1px solid var(--graview-edge)",borderRadius:"14px 14px 0 0",boxShadow:"var(--graview-lift-high, 0 -12px 32px rgba(0,0,0,0.18))"},Vt={flexShrink:0,margin:0,justifySelf:"start",alignSelf:"flex-start",padding:"2px 10px",borderRadius:999,fontSize:"0.8125rem",color:"var(--graview-ink)",background:"var(--graview-ground)",border:"1px solid var(--graview-edge)"},jt={flexShrink:0,display:"flex",alignItems:"center",gap:8,justifyContent:"space-between"},it={flexShrink:0,margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},Yt={margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:8,overflowY:"auto",flex:"1 1 0",minHeight:0},ut={padding:"7px 10px",borderRadius:10,maxWidth:"88%",whiteSpace:"pre-wrap",flex:"none"},Kt={...ut,alignSelf:"flex-end",background:"color-mix(in srgb, var(--graview-accent) 12%, var(--graview-panel))"},Gt={...ut,alignSelf:"flex-start",background:"var(--graview-ground)"},Xt={flex:"none",padding:"6px 10px",borderRadius:10,border:"1px dashed var(--graview-edge)",fontSize:"0.8125rem"},ee={flexShrink:0,display:"flex",flexWrap:"wrap",alignItems:"center",gap:6},ge={minHeight:32,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem",cursor:"pointer"},st={...ge,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},z={...ge,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"},Qt={...z,minHeight:28,padding:"0 9px",fontSize:"1rem",lineHeight:1},Jt={flex:"1 1 auto",minWidth:0,minHeight:34,padding:"0 10px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",fontSize:"0.875rem"},Zt={display:"inline-flex",border:"1px solid var(--graview-edge)",borderRadius:999,padding:2},en={...ge,minHeight:28,borderRadius:999,border:"none",color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)"},tn={...ge,minHeight:28,borderRadius:999,border:"none",color:"var(--graview-ink)",background:"transparent"};var C=O(Y(),1);var Pe=Se(ve(()=>(__graviewPreload(import.meta.url,["./chunk.DU76ASS4.js","./chunk.BJUUSIQY.js","./chunk.ZE5RSKXF.js","./chunk.IY3DV52G.js","./chunk.NLZHNPDU.js","./chunk.QNC2OKLF.js","./chunk.FWXW4T4I.js","./chunk.SDO3U72B.js","./chunk.DHPXRDT5.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.KW7PHJYX.js")))),nn=Pe.part((e,t)=>(0,C.jsx)(e.RateTelling,{...t}),{quiet:!0});function Yn({ask:e,open:t,close:a}){return e?.part?(0,C.jsx)(on,{ask:e,close:a},e.at):e?.section?(0,C.jsx)(un,{ask:e,close:a},e.at):t?(0,C.jsx)(Ce,{elements:t}):null}var rn=Se(ve(()=>(__graviewPreload(import.meta.url,["./chunk.AG7WJYM5.js","./chunk.KHKCTVHD.js","./chunk.DO3FQM6R.js","./chunk.NYLKG25K.js","./chunk.TBY5IR7C.js","./chunk.VR553M6J.js","./chunk.DU76ASS4.js","./chunk.BJUUSIQY.js","./chunk.UPOYRCKI.js","./chunk.XOZU4OFA.js","./chunk.WV6SP6IJ.js","./chunk.ZE5RSKXF.js","./chunk.MIE4TJRW.js","./chunk.SCVKHGO3.js","./chunk.RD2FSSLV.js","./chunk.AZRICZKT.js","./chunk.MH3AQO2R.js","./chunk.J2N7EKMX.js","./chunk.P26ATAAI.js","./chunk.FIY4RUK5.js","./chunk.IY3DV52G.js","./chunk.NLZHNPDU.js","./chunk.QNC2OKLF.js","./chunk.FWXW4T4I.js","./chunk.SDO3U72B.js","./chunk.DHPXRDT5.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.447RWLS7.js")))),on=rn.part((e,t)=>(0,C.jsx)(e.PageCard,{...t}),{what:"Make this better"}),an=360,R=12;function Kn(e,t){let a={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},c=Math.min(an,a.width-2*R),p=e.getBoundingClientRect().height,l=s=>Math.max(R,Math.min(s,a.height-p-R)),i=(a.width-c)/2,o=l(72);t&&t.width>0&&(t.right+R+c<=a.width-R?[i,o]=[t.right+R,l(t.top)]:t.left-R-c>=R?[i,o]=[t.left-R-c,l(t.top)]:(i=Math.max(R,Math.min(t.left,a.width-c-R)),o=t.bottom+R+p<=a.height-R?t.bottom+R:l(t.top-R-p))),e.style.left=`${Math.round(i)}px`,e.style.top=`${Math.round(o)}px`,e.style.width=`${Math.round(c)}px`}var sn=e=>e.map(t=>t.innerText??t.textContent??"").join(" ").replace(/\s+/g," ").trim(),gt=e=>{let t=e.getBoundingClientRect();return{tag:(e.getAttribute("data-graview-as")??e.localName).toLowerCase(),classes:[...e.classList],text:e.textContent??"",box:{left:t.left,top:t.top,width:t.width,height:t.height}}};function ln(e,t,a){let c=[...e.querySelectorAll("*")].filter(i=>{let o=i.getBoundingClientRect();return o.width>0&&o.height>0});if(a){let i=c.filter(r=>{let d=r.getBoundingClientRect();return t.left>=d.left&&t.left<=d.right&&t.top>=d.top&&t.top<=d.bottom}),s=i.filter(r=>!i.some(d=>d!==r&&r.contains(d)))[0];if(!s)return[];for(let r=s;r&&r!==e;r=r.parentElement)if(r.classList.length>0||/^(h[1-6]|li|a|button|img|p|article|section)$/.test(r.localName))return[r];return[s]}let p=c.filter(i=>{let o=i.getBoundingClientRect();return o.left>=t.left-2&&o.right<=t.right+2&&o.top>=t.top-2&&o.bottom<=t.bottom+2}),l=p.filter(i=>!p.some(o=>o!==i&&o.contains(i)));for(;l.length===1;){let i=[...l[0].children].filter(o=>p.includes(o));if(i.length<2)break;l=i}return l}function dn(e,t,a={}){let c=s=>({source:s.source,css:s.css,...s.root?{drawing:s.root}:{},...s.height!==void 0?{height:s.height}:{}}),p=et(c(e),c(t)),l=[];for(let s of p.unstyled)l.push(`The class \u201C${s.class}\u201D is still drawn and no rule styles it now.`);let i=s=>s.root?Ze(s.root).map(r=>r.name):[],o=e.root&&t.root?Ke(p.sectionsMissing.map(s=>s.name),i(e),i(t),a):p.sectionsMissing.map(s=>s.name);for(let s of o)l.push(`\u201C${s}\u201D is not drawn any more.`);return l}function cn(e,t,a,c,p,l){let i=c.drawing(),o=dn({source:e,css:t.css,root:t.root,height:t.height},{source:p,css:i.css,root:i.root,height:i.height},l);for(let s of c.refused())a.includes(s)||o.push(s);return o}function un({ask:e,close:t}){let{ai:a,aiDesk:c,aiHere:p,session:l,principal:i,keptViews:o,store:s}=We(),[r,d]=(0,f.useState)(e.section),n=_e(e.section),h=(0,f.useRef)(Fe(n)),b=(0,f.useRef)(null),[u,E]=(0,f.useState)(e.mode==="highlight"?{at:"highlighting"}:{at:"open"}),q=(0,f.useRef)(void 0),B=(0,f.useRef)(null),te=(0,f.useRef)(null),v=(0,f.useRef)([]),$=(0,f.useRef)([]),A=(0,f.useRef)([]),w=(0,f.useRef)(Date.now()),D=(0,f.useRef)(null),ne=(0,f.useRef)(null),re=(0,f.useRef)(null),[mt,fe]=(0,f.useState)(!1),[me,oe]=(0,f.useState)(!1),[,ht]=(0,f.useState)(0),ae=(0,f.useCallback)(()=>ht(g=>g+1),[]),[Te,yt]=(0,f.useState)(null),Re=(0,f.useRef)(null),I=(0,f.useCallback)(g=>{let y=Re.current;y&&a.told&&Pe.load().then(k=>k.changeTelling(a.told,y.id,{outcome:g}),()=>{})},[a.told]),De=(0,f.useCallback)((g,y,k,H,S,ye)=>{let se=a.told;se&&Pe.load().then(L=>{let Z=L.keepTelling(se,{words:g,target:{on:"place",place:y.view},decided:k?{type:"refusal"}:{type:"view",section:y.name},slot:"full",stages:H.map(F=>({stage:F.stage==="thinking"?"full":"light",ms:F.ms,model:F.model})),ms:S,outcome:k?"abandoned":"previewed",interaction:ye},i);Re.current=Z??null,yt(Z??null)},()=>{})},[a.told,i]);(0,f.useEffect)(()=>()=>{D.current?.abort(),b.current?.dispose(),b.current=null},[]);let Me=u.at==="working";(0,f.useEffect)(()=>{if(Me)return p({participant:`agent:graview-for-${i.id??"anyone"}:${l}`,kind:"agent",name:"Graview",...i.id?{onBehalfOf:i.id}:{},over:null,robot:{at:null,mode:"thinking"}}),()=>p(null)},[Me]);let X=(0,f.useCallback)((g,y,k,H={})=>({id:Ue(),at:new Date().toISOString(),by:i,target:{on:"place",place:r.view},targetLabel:h.current?.title??r.view,ask:{kind:"section",said:g},offered:[],outcome:y,stages:k.map(S=>({stage:S.stage,ms:S.ms,model:S.model})),usage:k.flatMap(S=>S.usage?[{tier:S.stage==="light"?"fast":"thinking",model:S.model,inputTokens:S.usage.inputTokens,outputTokens:S.usage.outputTokens}]:[]),...H}),[i,r.view]),U=(0,f.useCallback)(async g=>{b.current?.dispose();let k=h.current.draft(g);return b.current=k,await k.drawn,k},[]),_=(0,f.useCallback)(async()=>{let g=v.current.at(-1);oe(!1),g?await U(g.source):(b.current?.dispose(),b.current=null)},[U]),T=(0,f.useCallback)((g,y)=>{$.current.push({who:g,said:y}),ae()},[ae]),Q=()=>$.current.filter(g=>g.who==="person").map(g=>g.said).join(" "),ie=(0,f.useCallback)(async g=>{let y=h.current;if(!y||u.at==="working")return;let k=ne.current;ne.current=null,k&&(re.current=k),T("person",g),A.current=[],w.current=Date.now(),E({at:"working"});let H=await y.source();if(H===void 0)return T("graview","This view can't be changed here."),E({at:"open"});q.current??=H;let S=y.drawing(),ye=y.refused(),se=x=>{let V=s.graph.getNode(x);return V?$e(s.schema.tryDefinition(V.kind),V):void 0};B.current??=ce(S.root?.parentElement??S.root??n,nt(S.root,se)),te.current??=rt(r.elements);let L=B.current,Z=te.current,F=new AbortController;D.current=F;let St=Date.now(),xt=v.current.length,M=await Je({ai:a,part:{name:r.name,slot:"place"},manifest:{name:y.name,attach:"view",cardinality:"many"},talk:$.current,keep:{title:"",headings:L.headings,records:L.records.map(x=>x.label),says:Object.fromEntries(L.records.flatMap(x=>x.facts?.length||x.under?[[x.label,{...x.facts?.length?{shows:x.facts}:{},...x.under?{under:x.under}:{}}]]:[]))},current:v.current.at(-1)?.source??H,section:r.name,rewordable:Z,noun:"records",...re.current?{about:re.current}:{},host:{look:()=>xe(ce(y.drawing().root?.parentElement??n,L.records.map(x=>x.label))),read:()=>({shows:sn(r.elements)}),draft:async x=>{fe(!0);try{let V=await y.check(x);if(V.length>0)return await _(),{findings:V,drew:void 0};let we=await U(x),{failed:Le}=await we.drawn;if(Le)return await _(),{findings:[`The view did not draw: ${Le}`],drew:void 0};await new Promise(j=>requestAnimationFrame(()=>requestAnimationFrame(j)));let Oe=we.drawing().root,be=ce(Oe?.parentElement??Oe,L.records.map(j=>j.label)),Ct=y.presses?await y.presses(x).catch(()=>{}):void 0,Ne={asked:Q(),mayReword:Z},Be=[...cn(q.current,S,ye,we,x,Ne),...Ge(L,be,Ne),...(Ct?.problems??[]).slice(0,5).map(j=>`${j.control}: ${j.says}`)];return Be.length>0?await _():(v.current.push({source:x,said:Xe(r.name,L,be)??`\u201C${r.name}\u201D has changed. Compare Before and After.`,entry:X(`Make \u201C${r.name}\u201D better: ${Q()}`,"offered",[])}),oe(!1)),{findings:Be,drew:xe(be)}}finally{fe(!1)}}},onEvent:x=>{A.current.at(-1)?.kind==="streaming"&&A.current.pop(),A.current.push(x),ae()},signal:F.signal});if(D.current!==F)return;D.current=null,A.current.at(-1)?.kind==="streaming"&&A.current.pop();let le=v.current.length>xt,Ie=X(`Make \u201C${r.name}\u201D better: ${Q()}`,le?"offered":"failed",M.stages,le?{}:{failed:M.last?.findings.join(" ")??M.said});if(c.record(Ie),De(Q(),r,!le,M.stages,Date.now()-St,Ie.id),T("graview",M.passed&&Qe.test(M.said)?"Here it is on the page.":M.said),M.ended==="stuck"&&!le)return E({at:"stuck",...M.keepable&&M.last?{source:M.last.source}:{}});E(v.current.length>0?{at:"draft"}:{at:"open"})},[a,c,U,X,u.at,n,ae,T,r,_,s,De]),he=(0,f.useCallback)(()=>{if(u.at!=="working")return;let g=D.current;D.current=null,g?.abort(),fe(!1);let y=new Date(w.current).toISOString();v.current=v.current.filter(k=>k.entry.at<y),_(),T("graview","Stopped. The view is as it was."),E(v.current.length>0?{at:"draft"}:{at:"open"})},[u.at,T,_]),Ae=(0,f.useRef)(!1);(0,f.useEffect)(()=>{Ae.current||!(e.mode==="just"||e.mode==="describe"&&e.words)||(Ae.current=!0,ie(e.mode==="just"?"Make it easier to read at a glance":e.words))},[e.mode,e.words,ie]);let J=v.current.at(-1),wt=(0,f.useCallback)(async g=>{!J||g===me||(oe(g),g?(b.current?.dispose(),b.current=null):await U(J.source))},[J,me,U]),He=(0,f.useCallback)(async g=>{g!==void 0&&u.at==="stuck"&&v.current.push({source:g,said:`\u201C${r.name}\u201D kept as it was last drafted.`,entry:X(`Make \u201C${r.name}\u201D better: ${Q()}`,"offered",[])});let y=v.current.at(-1);if(u.at!=="draft"&&!(g!==void 0&&u.at==="stuck")||!y||!o?.revise||!h.current)return;let k=h.current,H=await k.source()??"";E({at:"keeping"});try{let S=await o.revise({name:k.name,title:k.title,source:y.source,before:H,section:r.name,said:y.said});b.current?.dispose(),b.current=null,k.draw(y.source),c.record({...y.entry,outcome:"accepted"}),I("accepted"),v.current=[],E({at:"kept",source:H,...S&&S.note?{note:S.note}:{},answer:S,entry:y.entry})}catch{if(T("graview","It couldn't be kept."),g!==void 0)return v.current.pop(),E(v.current.length>0?{at:"draft"}:{at:"open"});E({at:"draft"})}},[u,o,c,r.name,I,T,X]),bt=(0,f.useCallback)(()=>{T("graview","Stopped. The view is as it was."),E(v.current.length>0?{at:"draft"}:{at:"open"})},[T]),vt=(0,f.useCallback)(()=>{b.current?.dispose(),b.current=null;let g=v.current.at(-1);g&&(c.record({...g.entry,outcome:"dismissed"}),I("declined")),v.current=[],oe(!1),T("graview","Put back as it was."),E({at:"open"})},[c,I,T]),kt=(0,f.useCallback)(async()=>{if(u.at!=="kept"||!h.current)return;let g=h.current,y=await g.source()??"";try{u.answer&&typeof u.answer.undo=="function"?await u.answer.undo():await o?.revise?.({name:g.name,title:g.title,source:u.source,before:y,section:r.name,said:"Put back as it was.",undoes:!0}),g.draw(u.source===q.current?void 0:u.source),c.record({...u.entry,outcome:"dismissed"}),I("undone"),T("graview","Undone. The view is as it was."),E({at:"undone"})}catch{T("graview","It couldn't be put back.")}},[u,o,c,r.name,I,T]);return(0,f.useEffect)(()=>{let g=y=>{if(!(y.key!=="Escape"||u.at==="highlighting")){if(y.preventDefault(),u.at==="working")return he();v.current.length>0&&I("declined"),t(),e.returnTo?.focus?.()}};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[u.at,he,t,I,e.returnTo]),u.at==="highlighting"?(0,C.jsx)(gn,{box:n,root:n?.querySelector("[data-worker-view]")?.shadowRoot?.querySelector("[data-graview-view-root]")??void 0,whole:r.elements,cancel:()=>E({at:"open"}),chose:g=>{let y=g[0],k=y?qe(y):void 0;d(k??r),ne.current={name:Ye(g)??Ve(g.map(gt)),lines:je(g.map(gt))},E({at:"open"})}}):(0,C.jsxs)(C.Fragment,{children:[r.elements.length>0&&u.at==="open"&&$.current.length===0?(0,C.jsx)(Ce,{elements:r.elements}):null,mt?(0,C.jsx)(ot,{over:n,name:r.name,said:`Graview is drafting \u201C${r.name}\u201D\u2026`}):null,(0,C.jsx)(lt,{name:r.name,scope:`This changes how \u201C${r.name}\u201D looks for everyone in this app.`,phase:u.at,talk:$.current,steps:A.current,since:w.current,working:u.at==="working"||u.at==="keeping",...J&&u.at==="draft"?{draft:{said:J.said,before:me}}:{},...u.at==="kept"?{kept:{...u.note?{note:u.note}:{},undo:()=>void kt()}}:{},...u.at==="stuck"?{stuck:{...u.source!==void 0?{keepAnyway:()=>void He(u.source)}:{},stop:bt}}:{},about:(ne.current??re.current)?.name??r.name,ask:g=>void ie(g),just:()=>void ie("Make it easier to read at a glance"),point:()=>E({at:"highlighting"}),stop:he,compare:g=>void wt(g),keep:()=>void He(),discard:vt,close:()=>{D.current?.abort(),v.current.length>0&&I("declined"),t()},children:Te&&a.told&&u.at!=="working"?(0,C.jsx)(nn,{told:a.told,telling:Te}):null})]})}function gn({box:e,root:t,whole:a,wholeSaid:c="The whole section",cancel:p,chose:l}){let i=(0,f.useRef)(null),[o,s]=(0,f.useState)(null);(0,f.useLayoutEffect)(()=>{let n=0,h=()=>{let b=e?de([e]):null,u=i.current;u&&b&&(u.style.left=`${Math.round(b.left-pe)}px`,u.style.top=`${Math.round(b.top-pe)}px`,u.style.width=`${Math.round(b.width+2*pe)}px`,u.style.height=`${Math.round(b.height+2*pe)}px`),n=requestAnimationFrame(h)};return h(),()=>cancelAnimationFrame(n)},[e]),(0,f.useEffect)(()=>{i.current?.focus()},[]);let r=n=>{if(!o||!t)return s(null);let h=Math.hypot(n.clientX-o.x0,n.clientY-o.y0)>4,b={left:Math.min(o.x0,n.clientX),top:Math.min(o.y0,n.clientY),right:Math.max(o.x0,n.clientX),bottom:Math.max(o.y0,n.clientY)};s(null);let u=ln(t,b,!h);u.length>0&&l(u)},d=o?{left:Math.min(o.x0,o.x1),top:Math.min(o.y0,o.y1),width:Math.abs(o.x1-o.x0),height:Math.abs(o.y1-o.y0)}:null;return(0,C.jsxs)("div",{ref:i,tabIndex:-1,role:"application","aria-label":"Highlight the area to change: drag over it, or click one part","data-testid":"section-highlighter","data-graview-popover":"",onKeyDown:n=>{n.key==="Escape"&&(n.preventDefault(),n.stopPropagation(),p())},onMouseDown:n=>n.preventDefault(),onPointerDown:n=>{n.preventDefault(),n.currentTarget.setPointerCapture?.(n.pointerId),s({x0:n.clientX,y0:n.clientY,x1:n.clientX,y1:n.clientY})},onPointerMove:n=>s(h=>h&&{...h,x1:n.clientX,y1:n.clientY}),onPointerUp:r,onPointerCancel:()=>s(null),style:kn,children:[(0,C.jsxs)("p",{style:Sn,children:["Drag over the part to change, or click one \xB7"," ",(0,C.jsx)("button",{type:"button",onPointerDown:n=>n.stopPropagation(),onClick:()=>l(a),style:pt,children:c})," ","\xB7"," ",(0,C.jsx)("button",{type:"button",onPointerDown:n=>n.stopPropagation(),onClick:p,style:pt,children:"Cancel"})]}),d?(0,C.jsx)("div",{"data-testid":"section-drag",style:{...xn,left:d.left-(i.current?.getBoundingClientRect().left??0),top:d.top-(i.current?.getBoundingClientRect().top??0),width:d.width,height:d.height}}):null]})}var pn={position:"fixed",zIndex:W("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float, var(--graview-panel))",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},fn={margin:0,fontSize:"0.9375rem"},mn={margin:0,color:"var(--graview-ink-muted)"},hn={margin:0,color:"var(--graview-ink)",fontStyle:"italic"},yn={display:"flex",flexWrap:"wrap",gap:8},wn={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ft={minHeight:36,padding:"0 14px",font:"inherit",borderRadius:8,cursor:"pointer"},bn={...ft,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},vn={...ft,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"},pt={font:"inherit",color:"inherit",background:"none",border:0,padding:0,textDecoration:"underline",cursor:"pointer"},pe=12,kn={userSelect:"none",WebkitUserSelect:"none",position:"fixed",zIndex:W("popover"),boxSizing:"border-box",cursor:"crosshair",touchAction:"none",outline:"2px dashed var(--graview-accent)",background:"color-mix(in srgb, var(--graview-accent) 6%, transparent)"},Sn={position:"absolute",left:8,top:8,margin:0,padding:"4px 10px",borderRadius:999,fontSize:"0.8125rem",color:"var(--graview-ink)",background:"var(--graview-float, var(--graview-panel))",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-low)",cursor:"default"},xn={position:"absolute",border:"2px solid var(--graview-accent)",background:"color-mix(in srgb, var(--graview-accent) 14%, transparent)",borderRadius:4,pointerEvents:"none"},Gn={CARD:pn,HEAD:fn,MUTED:mn,THINKING:hn,ROW:yn,FIELD:wn,PRIMARY:bn,QUIET:vn};export{ce as a,ot as b,lt as c,Yn as d,Kn as e,gt as f,dn as g,un as h,gn as i,Gn as j};
@@ -1 +1 @@
1
- import{b as yt}from"./chunk.EGSOHTZZ.js";import{a as mt}from"./chunk.2KCDLCB2.js";import{f as pt}from"./chunk.UD7VLXPM.js";import{a as C,f as J}from"./chunk.3DEWQDP7.js";import{F as X,J as k,L as tt,Od as dt,T as q,W as nt,Y as et,Z as rt,bc as ct,ea as ot,ga as V,la as F,oa as at,ra as st,rb as ut,ua as it,ub as ft}from"./chunk.6AANHELP.js";import{e as lt}from"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";function z(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let o=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!o}),n=r.as==="open"}return e}function D(t,e){return z(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function Pt(t){return D(t,!1)}function Lt(t){return D(t,!0)}function gt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function G(t){let e=l=>z(l).map(({part:a,space:s})=>({...a,space:s})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,o=l=>`${D(n,l)}${r?`, when ${D(r,l)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:o(!1),said:o(!0)}}function jt(t,e=!1){return t.line?gt(t.line,e):t.message}var ht=60,b=t=>({text:t,as:"name"}),f=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},P=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},v=(t,e)=>({text:t,as:"op",said:e}),R={text:"(",as:"open"},w={text:")",as:"close"},W={text:"\u2014",as:"value",said:"empty"},M={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},At={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},bt=t=>t.t==="binary"&&t.op in M;function T(t){return ot(t)}function vt(t){let{schema:e}=t,n=i=>i===null?void 0:e.tryDefinition(i),r=(i,d)=>{let y=n(i)?.edges;return y&&Object.hasOwn(y,d)?y[d]:void 0},o=(i,d)=>{let y=r(i,d)?.to;return Array.isArray(y)&&y.length===1?y[0]:null},l=(i,d)=>{let y=(e.edge(d)?.from??[]).filter(j=>{let $=r(j,d)?.to;return i===null||$==="*"||Array.isArray($)&&$.includes(i)});return y.length===1?y[0]:null},a=(i,d)=>r(i,d)?V(d).toLowerCase():T(st(n(i),d)),s=i=>T(at(e,i)),m=i=>T(pt(e).get(i)?.label??V(i)),g=i=>T(it(n(i),i)),S=(i,d)=>{let y=i===null?void 0:t.formatOf?.(i,d);if(y?.format)return y;let j=t.said?.get(d);return j?{...y,format:j}:y},u=i=>F(e.tryDefinition(i.kind),i),p=t.money?.locale,h=(i,d)=>{if(i==null)return W;if(i instanceof C){if(i.nodes.length===0)return W;let L=i.nodes.slice(0,3).map(u),Q=i.nodes.length-L.length;return P(Q>0?`${L.join(", ")} and ${Q} more`:L.length>1?`${L.slice(0,-1).join(", ")} and ${L[L.length-1]}`:L[0])}if(Array.isArray(i))return P(`{${i.map(L=>h(L,d).text).join(", ")}}`,i.map(L=>h(L,d).text).join(" or "));if(typeof i=="object")return P(u(i));if(typeof i=="boolean")return P(i?"yes":"no");let y=d?.format??(d?S(d.kind,d.key):void 0);if(typeof i=="number")return P(y&&y.format!=="date"?ct(i,{...t.money,...y}):rt(i,p));if(X.test(i)||y?.format==="date")return P(q(et(i,t.money?.timeZone)??i.slice(0,10),p));if(k.test(i))return P(nt(i,p,t.money?.timeZone));let j=d&&d.kind!==null?n(d.kind)?.display?.format?.[d.key]:void 0;if(j)return P(j(i));let $=i.length>ht?`${i.slice(0,ht-1).trimEnd()}\u2026`:i;return P(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test($)?$.replace(/[-_]+/g," "):$)};return{definition:n,relation:r,farOf:o,nearOf:l,fieldName:a,plural:s,noun:g,factName:m,formatOf:S,valueWords:h,locale:p}}function E(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:O(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=O(t.args[0],e,n),o=t.args[1];if(o.t==="ident")return{kind:r,key:o.name};if(o.t==="lit"&&typeof o.value=="string")return{kind:r,key:o.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return E(t.left,e,n)??E(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return E(t.args[1],e,n)??E(t.args[2],e,n)}function O(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(O(t.object,e,n),t.name);case"where":return O(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?O(t.left,e,n):null;case"call":{let r=o=>{let l=t.args[o];return l?.t==="lit"&&typeof l.value=="string"?l.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(O(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(O(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?O(t.args[0],e,n):null}default:return null}}function A(t){return t.t==="binary"?t.op==="||"?U(t)?4:1:t.op==="&&"?2:t.op in M||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var K=t=>t.t==="lit",x=(t,e)=>t.t==="call"&&t.fn===e;function I(t,e){return t.t==="binary"&&t.op===e?[...I(t.left,e),...I(t.right,e)]:[t]}function U(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...I(t,"||"));let n,r=[];for(let o of e){if(o.t!=="binary"||o.op!=="=="||!K(o.right)||typeof o.right.value!="string"||n&&JSON.stringify(xt(n))!==JSON.stringify(xt(o.left)))return;n=o.left,r.push(o.right)}return n?{subject:n,values:r}:void 0}var xt=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function c(t,e,n,r){let o=(l,a,s=e)=>A(l)<a?[R,...c(l,s,n),w]:c(l,s,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(l=>l.t==="lit"?l.value:null),r)];case"ident":return[b(n.fieldName(e,t.name))];case"member":{let l=x(t.object,"first")&&t.object.args[0]&&x(t.object.args[0],"all"),a=O(t.object,e,n);if(l&&a)return e!==null&&n.fieldName(e,t.name)===n.fieldName(a,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[b(`${n.noun(a)}'s ${n.fieldName(a,t.name)}`)]:[b(n.fieldName(a,t.name))];let s=c(t.object,e,n),m=s[s.length-1];return s.length===1&&m?.as==="name"?[b(`${m.text}'s ${n.fieldName(a,t.name)}`)]:[...s,f("'s"),b(n.fieldName(a,t.name))]}case"unary":return t.op==="-"?[v("\u2212","minus"),...o(t.operand,7)]:_(t.operand,e,n);case"where":{let l=O(t.set,e,n),a=c(t.filter,l,n),s=a.every(m=>m.as==="name"||m.as==="word"&&m.text==="not");return[...o(t.set,4),...s?[]:[f("with")],...A(t.filter)<=2?[R,...a,w]:a]}case"binary":return Rt(t,e,n);case"call":return St(t,e,n)}}function _(t,e,n){return bt(t)?Rt({...t,op:B[t.op]},e,n):x(t,"present")||x(t,"exists")?[...c(t.args[0],e,n),v("=","is"),W]:t.t==="ident"?[f("not"),b(n.fieldName(e,t.name))]:[f("not"),R,...c(t,e,n),w]}function Rt(t,e,n){let r=(a,s)=>A(a)<s?[R,...c(a,e,n),w]:c(a,e,n);if(t.op==="&&"||t.op==="||"){let a=U(t);if(a){let m=E(a.subject,e,n);return[...c(a.subject,e,n),v("\u2208","is one of"),n.valueWords(a.values.map(g=>g.value),m)]}let s=t.op==="&&"?2:1;return[...r(t.left,s),f(t.op==="&&"?"and":"or"),...r(t.right,s+.5)]}if(t.op in M){if(K(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?c(t.left,e,n):_(t.left,e,n);let[a,s]=M[t.op],m=E(t.left,e,n),g=E(t.right,e,n);return[...N(t.left,e,n,g),v(a,s),...N(t.right,e,n,m)]}if(t.op==="in")return[...r(t.left,5),v("\u2208","is one of"),...N(t.right,e,n,E(t.left,e,n))];let o=At[t.op];if(o){let a=A(t);return[...r(t.left,a),v(o[0],o[1]),...r(t.right,a+.5)]}let l={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),f(l[t.op]??t.op),...r(t.right,5)]}function N(t,e,n,r){return t.t==="lit"||t.t==="list"?c(t,e,n,r):A(t)<5?[R,...c(t,e,n),w]:c(t,e,n)}function St(t,e,n){let r=a=>t.args[a],o=a=>{let s=t.args[a];return s?.t==="lit"&&typeof s.value=="string"?s.value:void 0},l=a=>{let s=r(a);return A(s)<9&&s.t!=="where"?[R,...c(s,e,n),w]:c(s,e,n)};switch(t.fn){case"out":{let a=o(t.args.length-1)??"",s=b(V(a).toLowerCase());return t.args.length===2?[s,f("of"),...l(0)]:[s]}case"in":{let a=o(t.args.length-1)??"",s=t.args.length===2?n.nearOf(O(r(0),e,n),a):n.nearOf(e,a),m=b(s?n.plural(s):V(a).toLowerCase());return t.args.length===2?[m,f("of"),...l(0)]:[m]}case"all":{let a=o(0),s=t.args[1]?.t==="lit"?t.args[1].value:void 0,m=s===!0?[f("archived")]:s==="all"?[f("archived or not")]:[];return s===!0?[...m,b(a?n.plural(a):"everything")]:[b(a?n.plural(a):"everything"),...m]}case"fact":{let a=o(0);return[b(a?n.factName(a):"fact")]}case"count":return[f("number of"),...l(0)];case"exists":return[...l(0),v("\u2260","is not"),W];case"present":return[...c(r(0),e,n),v("\u2260","is not"),W];case"some":case"every":{let a=O(r(0),e,n),s=r(1);return[...t.fn==="some"?[f("some")]:[],...l(0),f(t.fn==="some"?"with":"all with"),...A(s)<=2?[R,...c(s,a,n),w]:c(s,a,n)]}case"sum":case"min":case"max":{let a=O(r(0),e,n),s=r(1),m=s.t==="lit"&&typeof s.value=="string"?[b(n.fieldName(a,s.value))]:A(s)<9?[R,...c(s,a,n),w]:c(s,a,n);return[f(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...m,f("of"),...l(0)]}case"first":{let a=r(0);if(x(a,"all")){let s=a.args[0]?.value;if(typeof s=="string")return[b(`the ${n.noun(s)}`)]}return[f("first of"),...l(0)]}case"sort":return[...l(0),f("by"),...c(r(1),O(r(0),e,n),n)];case"len":return[f("length of"),...c(r(0),e,n)];case"lower":return c(r(0),e,n);case"round":return[...c(r(0),e,n),f(t.args.length===2&&K(r(1))?`rounded to ${String(r(1).value)} places`:"rounded")];case"contains":case"startsWith":return[...c(r(0),e,n),f(t.fn==="contains"?"contains":"starts with"),...N(r(1),e,n,E(r(0),e,n))];case"today":return[P("today")];case"now":return[P("now")];case"date":return K(r(0))&&typeof r(0).value=="string"?[P(q(String(r(0).value),n.locale))]:c(r(0),e,n);case"days":case"hours":{let a=t.fn,[s,m]=[r(0),r(1)];return x(m,"today")||x(m,"now")?[f(`${a} since`),...c(s,e,n)]:x(s,"today")||x(s,"now")?[f(`${a} until`),...c(m,e,n)]:[f(`${a} from`),...c(s,e,n),f("to"),...c(m,e,n)]}case"if":return[R,...c(r(1),e,n),f("if"),...c(r(0),e,n),f(","),f("else"),...c(r(2),e,n),w];case"either":return t.args.flatMap((a,s)=>s===0?c(a,e,n):[f(","),f("else"),...c(a,e,n)]);default:return[f(t.fn),R,...t.args.flatMap((a,s)=>s===0?c(a,e,n):[f(","),...c(a,e,n)]),w]}}function H(t){let e=n=>b(V(n).toLowerCase());return[f("through"),e(t.through.relation),...t.via?[f(","),f("then"),e(t.via.relation)]:[]]}function Z(t,e){let n=vt(e),r=t.over==="graph"?null:t.over,o=t.covers?[f("reaches every"),b(n.noun(t.covers.every)),...H(t.covers)]:c(t.require,r,n);return G({...r===null?{}:{kind:r},parts:o,...t.when?{when:c(t.when,r,n)}:{}})}function Y(t,e,n,r){let o=vt(e),l=t.over==="graph"?null:t.over,a=n.subject;if(t.covers)return G({...l===null?{}:{kind:l},parts:r?[f("does not reach"),o.valueWords(r),...H(t.covers)]:[f("does not reach every"),b(o.noun(t.covers.every)),...H(t.covers)],...a?{record:F(e.schema.tryDefinition(a.kind),a)}:{}});let s=u=>{try{return J(u,{...n,budget:2e3})}catch{return}},m=(u,p)=>{let h=N(u,l,o,p);if(u.t==="lit"||u.t==="list"||x(u,"today")||x(u,"now")||x(u,"date"))return h;let i=s(u);if(i===void 0)return h;let d=E(u,l,o),y=o.valueWords(i,d?{...d,format:o.formatOf(d.kind,d.key)??(p?o.formatOf(p.kind,p.key):void 0)}:p);return i instanceof C?[...h,f(":"),y]:[...h,y]},g=u=>{if(u.t==="binary"&&u.op==="&&"){let p=[];p.push(...I(u,"&&"));let h=p.filter(i=>s(i)!==!0);return(h.length>0?h:p).flatMap((i,d)=>[...d>0?[f("and")]:[],...A(i)<=2?[R,...g(i),w]:g(i)])}if(u.t==="binary"&&u.op==="||"){let p=U(u);if(p){let i=E(p.subject,l,o);return[...m(p.subject),v("\u2209","is not one of"),o.valueWords(p.values.map(d=>d.value),i)]}let h=[];return h.push(...I(u,"||")),h.flatMap((i,d)=>[...d>0?[f("and")]:[],...A(i)<=2?[R,...g(i),w]:g(i)])}if(u.t==="binary"&&u.op in M){if(K(u.right)&&typeof u.right.value=="boolean"&&(u.op==="=="||u.op==="!="))return u.op==="=="===u.right.value?_(u.left,l,o):c(u.left,l,o);let p=B[u.op],[h,i]=M[p],d=E(u.left,l,o),y=E(u.right,l,o);if(K(u.right)&&u.right.value===null)return[...p==="=="?N(u.left,l,o,y):m(u.left,y),v(h,i),W];let j=p==="=="&&(K(u.right)||K(u.left));return[...j?N(u.left,l,o,y):m(u.left,y),v(h,i),...j?N(u.right,l,o,d):m(u.right,d)]}if(u.t==="binary"&&u.op==="in")return[...m(u.left),v("\u2209","is not one of"),...N(u.right,l,o,E(u.left,l,o))];if(u.t==="unary"&&u.op==="!"){let p=u.operand;return bt(p)?g({...p,op:B[p.op]}):x(p,"present")||x(p,"exists")?[...m(p.args[0]),v("\u2260","is not"),W]:p.t==="ident"?c(p,l,o):[f("not"),R,..._(p,l,o),w]}if(x(u,"present")||x(u,"exists"))return[...c(u.args[0],l,o),v("=","is"),W];if(x(u,"some"))return[...c(u,l,o).slice(1),v("=","is"),W];if(x(u,"every")&&u.args.length===2){let p=s(u.args[0]);if(p instanceof C){let h=p.nodes.filter(i=>{try{return J(u.args[1],{...n,subject:i,budget:2e3})!==!0}catch{return!0}});return[...c(u,l,o),f(","),f("not"),o.valueWords(new C(h))]}}return u.t==="ident"?[f("not"),b(o.fieldName(l,u.name))]:[f("not"),R,...c(u,l,o),w]},S;try{S=g(t.require)}catch{S=[f("not"),R,...c(t.require,l,o),w]}return G({...l===null?{}:{kind:l},parts:S,...a?{record:F(e.schema.tryDefinition(a.kind),a)}:{}})}function wt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function Nt(t){return(e,n)=>{let r=t[e]?.fields?.[n],o=r?.format??(r?.type==="date"?"date":void 0);return o||r?.unit?{...o?{format:o}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function Et(t,e){return{schema:e,said:wt(t.says),...t.declared?{formatOf:Nt(t.declared)}:{},...t.money?{money:t.money}:{}}}function Xt(t,e){return t.shape?Z(t.shape,Et(t.shape,e)):void 0}var Ot=new WeakMap;function Wt(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let o=Vt(r),l=n.get(o.invariant)?.shape;if(!l||o.status&&o.status!=="violated")return o;let a=o.subjectId?t.graph.getNode(o.subjectId):void 0;if(l.over!=="graph"&&!a)return o;let s=l.kinds;s||(s=Ot.get(t.schema),s||Ot.set(t.schema,s=mt(t.schema)));try{let m=t.today?.()??l.today?.()??tt(),g=l.covers?o.nodeIds.find(p=>p!==o.subjectId):void 0,S=g?t.graph.getNode(g):void 0,u=Y(l,Et(l,t.schema),{graph:t.graph,subject:a??null,kinds:s,today:m},S);return{...o,line:u,...l.says||l.covers?{}:{message:`${o.message} \u2014 ${u.text}`}}}catch{return o}})}function $t(){ft((t,e,n,r)=>Wt({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),yt(Kt)}function Kt(t,e,n,r){let o=e.graph,l=ut.from(t.schema,o.snapshot(),{validate:!1});for(let g of n?[...r].reverse().map(lt):r)try{l.applyPrimitives([g],{restoring:!0})}catch{}let a=g=>t.violations(void 0,g),s=a(n?l:o),m=a(n?o:l);return{...dt(t.allInvariants(),s,m),violationsAfter:m}}function Vt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}$t();export{Y as brokenLineOf,$t as judgeWithLines,Kt as judgedForASeat,jt as problemWords,Xt as ruleLine,Z as ruleLineOf,gt as ruleLineWords,z as ruleSpacing,Lt as ruleSpoken,Pt as ruleText,Vt as unlined,Wt as withLines};
1
+ import{b as yt}from"./chunk.HCX6KPRF.js";import{a as mt}from"./chunk.EP7YT7LT.js";import{f as pt}from"./chunk.I7KN732Z.js";import{a as C,f as J}from"./chunk.TLPCYKLW.js";import{F as X,J as k,L as tt,Od as dt,T as q,W as nt,Y as et,Z as rt,bc as ct,ea as ot,ga as V,la as F,oa as at,ra as st,rb as ut,ua as it,ub as ft}from"./chunk.DHPXRDT5.js";import{e as lt}from"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";function z(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let o=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!o}),n=r.as==="open"}return e}function D(t,e){return z(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function Pt(t){return D(t,!1)}function Lt(t){return D(t,!0)}function gt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function G(t){let e=l=>z(l).map(({part:a,space:s})=>({...a,space:s})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,o=l=>`${D(n,l)}${r?`, when ${D(r,l)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:o(!1),said:o(!0)}}function jt(t,e=!1){return t.line?gt(t.line,e):t.message}var ht=60,b=t=>({text:t,as:"name"}),f=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},P=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},v=(t,e)=>({text:t,as:"op",said:e}),R={text:"(",as:"open"},w={text:")",as:"close"},W={text:"\u2014",as:"value",said:"empty"},M={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},At={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},bt=t=>t.t==="binary"&&t.op in M;function T(t){return ot(t)}function vt(t){let{schema:e}=t,n=i=>i===null?void 0:e.tryDefinition(i),r=(i,d)=>{let y=n(i)?.edges;return y&&Object.hasOwn(y,d)?y[d]:void 0},o=(i,d)=>{let y=r(i,d)?.to;return Array.isArray(y)&&y.length===1?y[0]:null},l=(i,d)=>{let y=(e.edge(d)?.from??[]).filter(j=>{let $=r(j,d)?.to;return i===null||$==="*"||Array.isArray($)&&$.includes(i)});return y.length===1?y[0]:null},a=(i,d)=>r(i,d)?V(d).toLowerCase():T(st(n(i),d)),s=i=>T(at(e,i)),m=i=>T(pt(e).get(i)?.label??V(i)),g=i=>T(it(n(i),i)),S=(i,d)=>{let y=i===null?void 0:t.formatOf?.(i,d);if(y?.format)return y;let j=t.said?.get(d);return j?{...y,format:j}:y},u=i=>F(e.tryDefinition(i.kind),i),p=t.money?.locale,h=(i,d)=>{if(i==null)return W;if(i instanceof C){if(i.nodes.length===0)return W;let L=i.nodes.slice(0,3).map(u),Q=i.nodes.length-L.length;return P(Q>0?`${L.join(", ")} and ${Q} more`:L.length>1?`${L.slice(0,-1).join(", ")} and ${L[L.length-1]}`:L[0])}if(Array.isArray(i))return P(`{${i.map(L=>h(L,d).text).join(", ")}}`,i.map(L=>h(L,d).text).join(" or "));if(typeof i=="object")return P(u(i));if(typeof i=="boolean")return P(i?"yes":"no");let y=d?.format??(d?S(d.kind,d.key):void 0);if(typeof i=="number")return P(y&&y.format!=="date"?ct(i,{...t.money,...y}):rt(i,p));if(X.test(i)||y?.format==="date")return P(q(et(i,t.money?.timeZone)??i.slice(0,10),p));if(k.test(i))return P(nt(i,p,t.money?.timeZone));let j=d&&d.kind!==null?n(d.kind)?.display?.format?.[d.key]:void 0;if(j)return P(j(i));let $=i.length>ht?`${i.slice(0,ht-1).trimEnd()}\u2026`:i;return P(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test($)?$.replace(/[-_]+/g," "):$)};return{definition:n,relation:r,farOf:o,nearOf:l,fieldName:a,plural:s,noun:g,factName:m,formatOf:S,valueWords:h,locale:p}}function E(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:O(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=O(t.args[0],e,n),o=t.args[1];if(o.t==="ident")return{kind:r,key:o.name};if(o.t==="lit"&&typeof o.value=="string")return{kind:r,key:o.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return E(t.left,e,n)??E(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return E(t.args[1],e,n)??E(t.args[2],e,n)}function O(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(O(t.object,e,n),t.name);case"where":return O(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?O(t.left,e,n):null;case"call":{let r=o=>{let l=t.args[o];return l?.t==="lit"&&typeof l.value=="string"?l.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(O(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(O(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?O(t.args[0],e,n):null}default:return null}}function A(t){return t.t==="binary"?t.op==="||"?U(t)?4:1:t.op==="&&"?2:t.op in M||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var K=t=>t.t==="lit",x=(t,e)=>t.t==="call"&&t.fn===e;function I(t,e){return t.t==="binary"&&t.op===e?[...I(t.left,e),...I(t.right,e)]:[t]}function U(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...I(t,"||"));let n,r=[];for(let o of e){if(o.t!=="binary"||o.op!=="=="||!K(o.right)||typeof o.right.value!="string"||n&&JSON.stringify(xt(n))!==JSON.stringify(xt(o.left)))return;n=o.left,r.push(o.right)}return n?{subject:n,values:r}:void 0}var xt=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function c(t,e,n,r){let o=(l,a,s=e)=>A(l)<a?[R,...c(l,s,n),w]:c(l,s,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(l=>l.t==="lit"?l.value:null),r)];case"ident":return[b(n.fieldName(e,t.name))];case"member":{let l=x(t.object,"first")&&t.object.args[0]&&x(t.object.args[0],"all"),a=O(t.object,e,n);if(l&&a)return e!==null&&n.fieldName(e,t.name)===n.fieldName(a,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[b(`${n.noun(a)}'s ${n.fieldName(a,t.name)}`)]:[b(n.fieldName(a,t.name))];let s=c(t.object,e,n),m=s[s.length-1];return s.length===1&&m?.as==="name"?[b(`${m.text}'s ${n.fieldName(a,t.name)}`)]:[...s,f("'s"),b(n.fieldName(a,t.name))]}case"unary":return t.op==="-"?[v("\u2212","minus"),...o(t.operand,7)]:_(t.operand,e,n);case"where":{let l=O(t.set,e,n),a=c(t.filter,l,n),s=a.every(m=>m.as==="name"||m.as==="word"&&m.text==="not");return[...o(t.set,4),...s?[]:[f("with")],...A(t.filter)<=2?[R,...a,w]:a]}case"binary":return Rt(t,e,n);case"call":return St(t,e,n)}}function _(t,e,n){return bt(t)?Rt({...t,op:B[t.op]},e,n):x(t,"present")||x(t,"exists")?[...c(t.args[0],e,n),v("=","is"),W]:t.t==="ident"?[f("not"),b(n.fieldName(e,t.name))]:[f("not"),R,...c(t,e,n),w]}function Rt(t,e,n){let r=(a,s)=>A(a)<s?[R,...c(a,e,n),w]:c(a,e,n);if(t.op==="&&"||t.op==="||"){let a=U(t);if(a){let m=E(a.subject,e,n);return[...c(a.subject,e,n),v("\u2208","is one of"),n.valueWords(a.values.map(g=>g.value),m)]}let s=t.op==="&&"?2:1;return[...r(t.left,s),f(t.op==="&&"?"and":"or"),...r(t.right,s+.5)]}if(t.op in M){if(K(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?c(t.left,e,n):_(t.left,e,n);let[a,s]=M[t.op],m=E(t.left,e,n),g=E(t.right,e,n);return[...N(t.left,e,n,g),v(a,s),...N(t.right,e,n,m)]}if(t.op==="in")return[...r(t.left,5),v("\u2208","is one of"),...N(t.right,e,n,E(t.left,e,n))];let o=At[t.op];if(o){let a=A(t);return[...r(t.left,a),v(o[0],o[1]),...r(t.right,a+.5)]}let l={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),f(l[t.op]??t.op),...r(t.right,5)]}function N(t,e,n,r){return t.t==="lit"||t.t==="list"?c(t,e,n,r):A(t)<5?[R,...c(t,e,n),w]:c(t,e,n)}function St(t,e,n){let r=a=>t.args[a],o=a=>{let s=t.args[a];return s?.t==="lit"&&typeof s.value=="string"?s.value:void 0},l=a=>{let s=r(a);return A(s)<9&&s.t!=="where"?[R,...c(s,e,n),w]:c(s,e,n)};switch(t.fn){case"out":{let a=o(t.args.length-1)??"",s=b(V(a).toLowerCase());return t.args.length===2?[s,f("of"),...l(0)]:[s]}case"in":{let a=o(t.args.length-1)??"",s=t.args.length===2?n.nearOf(O(r(0),e,n),a):n.nearOf(e,a),m=b(s?n.plural(s):V(a).toLowerCase());return t.args.length===2?[m,f("of"),...l(0)]:[m]}case"all":{let a=o(0),s=t.args[1]?.t==="lit"?t.args[1].value:void 0,m=s===!0?[f("archived")]:s==="all"?[f("archived or not")]:[];return s===!0?[...m,b(a?n.plural(a):"everything")]:[b(a?n.plural(a):"everything"),...m]}case"fact":{let a=o(0);return[b(a?n.factName(a):"fact")]}case"count":return[f("number of"),...l(0)];case"exists":return[...l(0),v("\u2260","is not"),W];case"present":return[...c(r(0),e,n),v("\u2260","is not"),W];case"some":case"every":{let a=O(r(0),e,n),s=r(1);return[...t.fn==="some"?[f("some")]:[],...l(0),f(t.fn==="some"?"with":"all with"),...A(s)<=2?[R,...c(s,a,n),w]:c(s,a,n)]}case"sum":case"min":case"max":{let a=O(r(0),e,n),s=r(1),m=s.t==="lit"&&typeof s.value=="string"?[b(n.fieldName(a,s.value))]:A(s)<9?[R,...c(s,a,n),w]:c(s,a,n);return[f(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...m,f("of"),...l(0)]}case"first":{let a=r(0);if(x(a,"all")){let s=a.args[0]?.value;if(typeof s=="string")return[b(`the ${n.noun(s)}`)]}return[f("first of"),...l(0)]}case"sort":return[...l(0),f("by"),...c(r(1),O(r(0),e,n),n)];case"len":return[f("length of"),...c(r(0),e,n)];case"lower":return c(r(0),e,n);case"round":return[...c(r(0),e,n),f(t.args.length===2&&K(r(1))?`rounded to ${String(r(1).value)} places`:"rounded")];case"contains":case"startsWith":return[...c(r(0),e,n),f(t.fn==="contains"?"contains":"starts with"),...N(r(1),e,n,E(r(0),e,n))];case"today":return[P("today")];case"now":return[P("now")];case"date":return K(r(0))&&typeof r(0).value=="string"?[P(q(String(r(0).value),n.locale))]:c(r(0),e,n);case"days":case"hours":{let a=t.fn,[s,m]=[r(0),r(1)];return x(m,"today")||x(m,"now")?[f(`${a} since`),...c(s,e,n)]:x(s,"today")||x(s,"now")?[f(`${a} until`),...c(m,e,n)]:[f(`${a} from`),...c(s,e,n),f("to"),...c(m,e,n)]}case"if":return[R,...c(r(1),e,n),f("if"),...c(r(0),e,n),f(","),f("else"),...c(r(2),e,n),w];case"either":return t.args.flatMap((a,s)=>s===0?c(a,e,n):[f(","),f("else"),...c(a,e,n)]);default:return[f(t.fn),R,...t.args.flatMap((a,s)=>s===0?c(a,e,n):[f(","),...c(a,e,n)]),w]}}function H(t){let e=n=>b(V(n).toLowerCase());return[f("through"),e(t.through.relation),...t.via?[f(","),f("then"),e(t.via.relation)]:[]]}function Z(t,e){let n=vt(e),r=t.over==="graph"?null:t.over,o=t.covers?[f("reaches every"),b(n.noun(t.covers.every)),...H(t.covers)]:c(t.require,r,n);return G({...r===null?{}:{kind:r},parts:o,...t.when?{when:c(t.when,r,n)}:{}})}function Y(t,e,n,r){let o=vt(e),l=t.over==="graph"?null:t.over,a=n.subject;if(t.covers)return G({...l===null?{}:{kind:l},parts:r?[f("does not reach"),o.valueWords(r),...H(t.covers)]:[f("does not reach every"),b(o.noun(t.covers.every)),...H(t.covers)],...a?{record:F(e.schema.tryDefinition(a.kind),a)}:{}});let s=u=>{try{return J(u,{...n,budget:2e3})}catch{return}},m=(u,p)=>{let h=N(u,l,o,p);if(u.t==="lit"||u.t==="list"||x(u,"today")||x(u,"now")||x(u,"date"))return h;let i=s(u);if(i===void 0)return h;let d=E(u,l,o),y=o.valueWords(i,d?{...d,format:o.formatOf(d.kind,d.key)??(p?o.formatOf(p.kind,p.key):void 0)}:p);return i instanceof C?[...h,f(":"),y]:[...h,y]},g=u=>{if(u.t==="binary"&&u.op==="&&"){let p=[];p.push(...I(u,"&&"));let h=p.filter(i=>s(i)!==!0);return(h.length>0?h:p).flatMap((i,d)=>[...d>0?[f("and")]:[],...A(i)<=2?[R,...g(i),w]:g(i)])}if(u.t==="binary"&&u.op==="||"){let p=U(u);if(p){let i=E(p.subject,l,o);return[...m(p.subject),v("\u2209","is not one of"),o.valueWords(p.values.map(d=>d.value),i)]}let h=[];return h.push(...I(u,"||")),h.flatMap((i,d)=>[...d>0?[f("and")]:[],...A(i)<=2?[R,...g(i),w]:g(i)])}if(u.t==="binary"&&u.op in M){if(K(u.right)&&typeof u.right.value=="boolean"&&(u.op==="=="||u.op==="!="))return u.op==="=="===u.right.value?_(u.left,l,o):c(u.left,l,o);let p=B[u.op],[h,i]=M[p],d=E(u.left,l,o),y=E(u.right,l,o);if(K(u.right)&&u.right.value===null)return[...p==="=="?N(u.left,l,o,y):m(u.left,y),v(h,i),W];let j=p==="=="&&(K(u.right)||K(u.left));return[...j?N(u.left,l,o,y):m(u.left,y),v(h,i),...j?N(u.right,l,o,d):m(u.right,d)]}if(u.t==="binary"&&u.op==="in")return[...m(u.left),v("\u2209","is not one of"),...N(u.right,l,o,E(u.left,l,o))];if(u.t==="unary"&&u.op==="!"){let p=u.operand;return bt(p)?g({...p,op:B[p.op]}):x(p,"present")||x(p,"exists")?[...m(p.args[0]),v("\u2260","is not"),W]:p.t==="ident"?c(p,l,o):[f("not"),R,..._(p,l,o),w]}if(x(u,"present")||x(u,"exists"))return[...c(u.args[0],l,o),v("=","is"),W];if(x(u,"some"))return[...c(u,l,o).slice(1),v("=","is"),W];if(x(u,"every")&&u.args.length===2){let p=s(u.args[0]);if(p instanceof C){let h=p.nodes.filter(i=>{try{return J(u.args[1],{...n,subject:i,budget:2e3})!==!0}catch{return!0}});return[...c(u,l,o),f(","),f("not"),o.valueWords(new C(h))]}}return u.t==="ident"?[f("not"),b(o.fieldName(l,u.name))]:[f("not"),R,...c(u,l,o),w]},S;try{S=g(t.require)}catch{S=[f("not"),R,...c(t.require,l,o),w]}return G({...l===null?{}:{kind:l},parts:S,...a?{record:F(e.schema.tryDefinition(a.kind),a)}:{}})}function wt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function Nt(t){return(e,n)=>{let r=t[e]?.fields?.[n],o=r?.format??(r?.type==="date"?"date":void 0);return o||r?.unit?{...o?{format:o}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function Et(t,e){return{schema:e,said:wt(t.says),...t.declared?{formatOf:Nt(t.declared)}:{},...t.money?{money:t.money}:{}}}function Xt(t,e){return t.shape?Z(t.shape,Et(t.shape,e)):void 0}var Ot=new WeakMap;function Wt(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let o=Vt(r),l=n.get(o.invariant)?.shape;if(!l||o.status&&o.status!=="violated")return o;let a=o.subjectId?t.graph.getNode(o.subjectId):void 0;if(l.over!=="graph"&&!a)return o;let s=l.kinds;s||(s=Ot.get(t.schema),s||Ot.set(t.schema,s=mt(t.schema)));try{let m=t.today?.()??l.today?.()??tt(),g=l.covers?o.nodeIds.find(p=>p!==o.subjectId):void 0,S=g?t.graph.getNode(g):void 0,u=Y(l,Et(l,t.schema),{graph:t.graph,subject:a??null,kinds:s,today:m},S);return{...o,line:u,...l.says||l.covers?{}:{message:`${o.message} \u2014 ${u.text}`}}}catch{return o}})}function $t(){ft((t,e,n,r)=>Wt({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),yt(Kt)}function Kt(t,e,n,r){let o=e.graph,l=ut.from(t.schema,o.snapshot(),{validate:!1});for(let g of n?[...r].reverse().map(lt):r)try{l.applyPrimitives([g],{restoring:!0})}catch{}let a=g=>t.violations(void 0,g),s=a(n?l:o),m=a(n?o:l);return{...dt(t.allInvariants(),s,m),violationsAfter:m}}function Vt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}$t();export{Y as brokenLineOf,$t as judgeWithLines,Kt as judgedForASeat,jt as problemWords,Xt as ruleLine,Z as ruleLineOf,gt as ruleLineWords,z as ruleSpacing,Lt as ruleSpoken,Pt as ruleText,Vt as unlined,Wt as withLines};
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk.ZU3RPI34.js";import"./chunk.CCCONK73.js";import"./chunk.IO5VFTXC.js";import"./chunk.7L3I776Z.js";import"./chunk.CLIC2QBA.js";import"./chunk.WV6SP6IJ.js";import"./chunk.B422DSYN.js";import"./chunk.ZE5RSKXF.js";import"./chunk.DKUEZPGR.js";import"./chunk.EP7YT7LT.js";import"./chunk.I7KN732Z.js";import"./chunk.TLPCYKLW.js";import"./chunk.MH3AQO2R.js";import"./chunk.J2N7EKMX.js";import"./chunk.P26ATAAI.js";import"./chunk.FIY4RUK5.js";import"./chunk.IY3DV52G.js";import"./chunk.DHPXRDT5.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{b as actOnSeveral,a as actsForSeveral};
@@ -0,0 +1 @@
1
+ import{a as b,b as c,c as d,d as e,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,n as o,o as p}from"./chunk.HU3KEWFO.js";import"./chunk.G4JJXA63.js";import{a}from"./chunk.TBY5IR7C.js";import"./chunk.WFJCC6G3.js";import"./chunk.BIDL7GQD.js";import"./chunk.IO5VFTXC.js";import"./chunk.UPOYRCKI.js";import"./chunk.XOZU4OFA.js";import"./chunk.WV6SP6IJ.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.MATUPDZ3.js";import"./chunk.SAWASNDO.js";import"./chunk.HCX6KPRF.js";import"./chunk.WVUJXDXZ.js";import"./chunk.B422DSYN.js";import"./chunk.ZE5RSKXF.js";import"./chunk.DKUEZPGR.js";import"./chunk.EP7YT7LT.js";import"./chunk.I7KN732Z.js";import"./chunk.TLPCYKLW.js";import"./chunk.MH3AQO2R.js";import"./chunk.J2N7EKMX.js";import"./chunk.P26ATAAI.js";import"./chunk.FIY4RUK5.js";import"./chunk.IY3DV52G.js";import"./chunk.DHPXRDT5.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{j as draftAnswer,i as draftFromLens,c as draftSight,m as draftView,b as isDraftFailure,d as judgeLens,e as lensEditOf,g as lensFromSpec,a as mayChangeDeclaration,k as recipeDraft,h as recipeOfLens,n as refineDraft,p as runDraftTool,f as takeBackEditOf,l as templateDraft,o as withReaderLenses};
@@ -1,4 +1,4 @@
1
- import{sd as e}from"./chunk.6AANHELP.js";var i=`
1
+ import{sd as e}from"./chunk.DHPXRDT5.js";var i=`
2
2
  .graview-spec{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--graview-ink)}
3
3
 
4
4
  .graview-spec-row{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 10px;box-sizing:border-box;max-width:100%;padding:5px 10px;border:1px solid var(--graview-edge);border-radius:var(--graview-radius-sm,8px);background:var(--graview-panel);font-size:.875rem}
@@ -1,2 +1,2 @@
1
- import{G as w,Qa as c,da as f,ea as h,ga as g}from"./chunk.3VEZ5MOC.js";import{b as m}from"./chunk.AJZBJBMO.js";var d=m(w(),1);function j(){let e=c();return(0,d.useMemo)(()=>[...new Set(e.flatMap(n=>n.nodeIds))],[e])}function x(){let e=I(),n=f();return(0,d.useMemo)(()=>{if(!n)return e;let t=n.matched;return t.length===0&&e.length===0?[k]:[...new Set([...e,...t])]},[n,e])}function I(){let{store:e,selection:n}=h(),t=g(),r=c();return(0,d.useMemo)(()=>{if(n.length===0)return v;let u=n.join(`
1
+ import{G as w,Qa as c,da as f,ea as h,ga as g}from"./chunk.FWXW4T4I.js";import{b as m}from"./chunk.AJZBJBMO.js";var d=m(w(),1);function j(){let e=c();return(0,d.useMemo)(()=>[...new Set(e.flatMap(n=>n.nodeIds))],[e])}function x(){let e=I(),n=f();return(0,d.useMemo)(()=>{if(!n)return e;let t=n.matched;return t.length===0&&e.length===0?[k]:[...new Set([...e,...t])]},[n,e])}function I(){let{store:e,selection:n}=h(),t=g(),r=c();return(0,d.useMemo)(()=>{if(n.length===0)return v;let u=n.join(`
2
2
  `),s=y.get(e);if(s&&s.violations===r&&s.key===u)return s.reached;let a=new Set(n),i=new Set(a);for(let o of e.graph.allEdges())a.has(o.from)&&i.add(o.to),a.has(o.to)&&i.add(o.from);for(let o of r)if(o.subjectId!==void 0&&a.has(o.subjectId))for(let p of o.nodeIds)i.add(p);let l=[...i];return y.set(e,{violations:r,key:u,reached:l}),l},[e,n,t,r])}var v=[],y=new WeakMap,k="search:nothing";export{j as a,x as b,I as c};
@@ -1 +1 @@
1
- import{a as _}from"./chunk.CE3NKAF7.js";import{a as se,b as le,c as ue,d as fe,e as L,f as I,g as ye}from"./chunk.R3GE37OI.js";import{a as me}from"./chunk.2KCDLCB2.js";import{c as T,e as de,f as pe}from"./chunk.UD7VLXPM.js";import{a as j,b as re,c as te,d as oe,f as G,m as ae,n as b,o as V,p as B,q as v,r as ie}from"./chunk.3DEWQDP7.js";import{a as x,c as ce,d as ge,f as he,h as be,i as we,j as Se}from"./chunk.JULD4XFB.js";import{$b as ee,Aa as A,Ba as q,C as P,Ca as O,Da as M,L as K,La as Q,W as z,Z as F,ac as ne,bc as C,da as J,ha as X,la as Z,ra as N,ua as Y,za as E}from"./chunk.6AANHELP.js";var Re=e=>e.caption?.trim()||e.name,D=e=>A(e)?`${Re(e)}, ${q(e)}`:Re(e);function dn(e){let n=Math.max(0,Math.round(e)),t=a=>String(a).padStart(2,"0"),r=Math.floor(n/3600),o=Math.floor(n%3600/60);return r>0?`${r}:${t(o)}:${t(n%60)}`:`${o}:${t(n%60)}`}function Ne(e){let n=e?.fields?.shape??{};return Object.keys(n).filter(t=>{let r=P(n[t]);for(;r?.innerType;)r=P(r.innerType);return M(n[t])!==void 0||r?.type==="array"&&M(r.element)!==void 0})}function sn(e,n){for(let t of Ne(n)){let r=O(e[t]).find(o=>E(o)||A(o));if(r)return r}}var k=e=>{try{return e()}catch{return null}},Ee=e=>typeof e=="string"&&se.includes(e);function Me(e){if(e!==void 0)return Ee(e)?e:e&&typeof e=="object"&&typeof e.expr=="string"?{expr:k(()=>T(e.expr))}:"neutral"}var Ce=4;function Ve(e){let n=typeof e.list=="string"?k(()=>T(e.list)):null,t=e.sort,r=typeof t=="string"?t:t&&typeof t=="object"&&typeof t.by=="string"?t.by:void 0,o=t&&typeof t=="object"?t.direction:void 0,a=n,d;if(n&&r!==void 0)if(o==="choices")d=r;else{let y=k(()=>T(r));a=y?{t:"call",fn:"sort",args:[n,y,{t:"lit",value:o==="desc"?"desc":"asc",at:0}],at:0}:null}let l=typeof e.limit=="number"&&Number.isInteger(e.limit)&&e.limit>=1?Math.min(e.limit,L):void 0,i=e.group,s=typeof i=="string"?i:i&&typeof i=="object"&&typeof i.by=="string"?i.by:void 0,f=i&&typeof i=="object"&&i.headings&&typeof i.headings=="object"?i.headings:{};return{t:"list",source:a,...d?{choiceOrder:d}:{},...l?{limit:l}:{},...s?{group:{by:s,headings:Object.fromEntries(Object.entries(f).filter(y=>typeof y[1]=="string"))}}:{},...typeof e.empty=="string"?{empty:e.empty}:{},as:e.as==="card"?"card":"row"}}function ke(e,n=1,t=""){if(!Array.isArray(e)||n>Ce)return[];let r={};return e.flatMap(o=>{if(!o||typeof o!="object"||Array.isArray(o))return[];let a=o,d=p=>typeof p=="string"?k(()=>de(p)):null,l=p=>typeof p=="string"?k(()=>T(p)):null,i=Me(a.tone),s=typeof a.label=="string"?a.label:void 0,f=p=>Object.hasOwn(a,p),y=typeof a.currency=="string"&&/^[A-Z]{3}$/.test(a.currency)?a.currency:void 0,u=f("list")?"list":f("headline")?"headline":typeof a.figure=="string"?"number":Le.find(f);if(!u)return[];let m=r[u]=(r[u]??0)+1,c=a.key,R=typeof c=="string"&&c?c:`${t}${u}.${m}`;return[{...(()=>{switch(u){case"list":return Ve(a);case"number":{let p=ue.includes(a.as)?a.as:void 0,H=fe.includes(a.emphasis)?a.emphasis:void 0;return{t:u,value:l(a.figure),...p?{as:p}:{},...y?{currency:y}:{},...s?{label:d(s)}:{},...H?{emphasis:H}:{}}}case"headline":case"title":return{t:u,parts:d(a[u])};case"text":{let p=a.lines;return{t:u,parts:d(a[u]),...i?{tone:i}:{},...typeof p=="number"&&Number.isInteger(p)&&p>=0?{lines:p}:{}}}case"badge":return{t:u,parts:d(a[u]),...i?{tone:i}:{}};case"field":{let p=le.includes(a.as)?a.as:void 0;return{t:u,field:String(a.field),...p?{as:p}:{},...y?{currency:y}:{},...s?{label:s}:{}}}case"image":return{t:u,field:String(a.image),as:a.as==="gallery"?"gallery":"thumb",...s?{label:s}:{}};case"progress":{let p=a.progress??{};return{t:u,value:l(p.value),max:l(p.max),...s?{label:d(s)}:{}}}case"group":return{t:u,blocks:ke(a.group,n+1,`${R}.`),direction:a.direction==="row"?"row":"column"};case"when":return{t:u,when:l(a.when),show:ke(a.show,n+1,`${R}.`)};default:return{t:u}}})(),key:R}]})}var Le=["title","text","badge","field","image","progress","group","when","divider","figure"],g="\u2014",Ie=500;function w(e,n){if(!e)return{ok:!1,problem:"an expression that does not parse"};try{return{ok:!0,value:G(e,{graph:n.graph??ae,subject:n.node,kinds:n.kinds,today:n.today,budget:n.budget??Ie})}}catch(t){return{ok:!1,problem:t instanceof Error?t.message:String(t)}}}function _e(e,n){let t=e.definition?.display?.format?.[n],r=e.fields[n]?.options??[];return t?Object.fromEntries(r.flatMap(o=>{let a=t(o);return a!==X(o)?[[o,a]]:[]})):{}}var De=(e,n,t)=>!e.format&&e.expr?.t==="ident"&&typeof t=="string"&&n.fields[e.expr.name]?.format==="markdown";function S(e,n,t){if(!e)return{text:g,problem:"a template that does not parse"};let r,o;return{text:e.map(d=>{if(d.text!==void 0)return d.text;let l=w(d.expr??null,n);if(!l.ok)return r??=`{${d.source??""}}: ${l.problem}`,g;if(De(d,n,l.value))return n.glance?ce(l.value,{markdown:!0}):t&&e.length===1?(o=!0,l.value):ge(l.value);let i=!d.format&&d.expr?.t==="ident"&&n.fields[d.expr.name]?.type==="enum"?d.expr.name:void 0;if(i&&(typeof l.value=="string"||Array.isArray(l.value)))return V(d,ie(l.value,_e(n,i),e.length===1));let s=!d.format&&d.expr?.t==="ident"&&typeof l.value=="number"?Be(n,d.expr.name):void 0;return V(d,s?C(l.value,s):b(l.value,d.format,n.today,d.formatArgs,n.money,v(n.schema)))}).join(""),...r?{problem:r}:{},...o?{markdown:o}:{}}}var $e=" \xB7 ";function Ue(e,n){if(!e||!n.node)return;let t=[[]];for(let d of e){if(d.text===void 0){t[t.length-1].push(d);continue}d.text.split($e).forEach((i,s)=>{s>0&&t.push([]),i!==""&&t[t.length-1].push({text:i})})}if(t.length<2)return;let r=d=>{let[l]=d;if(!(d.length!==1||!l||l.format||l.expr?.t!=="ident"))return n.fields[l.expr.name]?.type==="enum"?l.expr.name:void 0},o=0,a=t.flatMap(d=>{let l=r(d);if(l){let s=Object.hasOwn(n.node,l)?n.node[l]:void 0;return s==null||s===""?[]:(o++,[{text:x(n.definition,l,s),field:l}])}let i=S(d,n).text.trim();return i===""||i===g?[]:[{text:i}]});return o>0?a:void 0}function Ae(e,n){if(e===void 0)return;if(typeof e=="string")return e;let t=w(e.expr,n);return t.ok&&Ee(t.value)?t.value:"neutral"}function We(e){if(typeof e=="string")try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"?n.href:void 0}catch{return}}var Ge=(e,n)=>{let t=e.fields[n]?.type;return t==="phone"||t==="place"||t==="duration"?t:be(e.definition,n)},Be=(e,n)=>ee(e.definition?.fields?.shape?.[n])??he(e.definition,n);function He(e,n,t,r,o){if(n==null||n==="")return g;if(typeof n=="boolean")return n?"yes":"no";if(r)return b(n,r,t.today,[],o?{...t.money,currency:o}:t.money);let a=t.fields[e];if(t.definition?.display?.format?.[e])return x(t.definition,e,n);let d=we(Ge(t,e),n,t.money?.locale);if(d!==void 0)return d;if(a?.type==="date")return b(n,"date",t.today,[],t.money);if(a?.type==="datetime"&&typeof n=="string")return z(n,t.money?.locale,t.money?.timeZone);if(a?.type==="enum"&&(typeof n=="string"||Array.isArray(n)))return x(t.definition,e,n);let l=typeof n=="number"?Be(t,e):void 0;if(l)return C(n,l);if(typeof n=="number")return F(n,t.money?.locale,{});let i=O(n);return i[0]?i.map(D).join(", "):Array.isArray(n)?n.map(s=>String(s)).join(", "):typeof n=="object"?g:String(n)}function Ke(e,n,t,r,o){return typeof e!="number"?String(e):n==="money"?ne(e,t?{...o,currency:t}:o):n==="percent"?b(e,n,r,[],o):F(e,o?.locale)}var h=(e,n)=>n?{...e,problem:n}:e;function Oe(e){return e.firstHeading===void 0?e:{...e,firstHeading:void 0}}function ze(e,n,t){switch(e.t){case"title":{let r=S(e.parts,n);return h({t:"title",text:r.text},r.problem)}case"text":{let r=S(e.parts,n,!0),o=Ae(e.tone,n),a=n.glance&&!r.problem?Ue(e.parts,n):void 0;return h({t:"text",text:r.text,...o?{tone:o}:{},...e.lines!==void 0?{lines:e.lines}:{},...r.markdown?{markdown:r.markdown}:{},...a?{runs:a}:{}},r.problem)}case"badge":{let r=S(e.parts,n);return h({t:"badge",text:r.text,tone:Ae(e.tone,n)??"neutral"},r.problem)}case"field":{let r=e.label??N(n.definition,e.field);if(!n.node)return{t:"field",field:e.field,label:r,text:g,problem:`"${e.field}" names a field, and these blocks are about no one record`};let o=e.as===void 0?n.kinds.get(n.node.kind)?.linked?.get(e.field):void 0;if(o){let y=Q(Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0,o);return{t:"field",field:e.field,label:r,text:y.length>0?"linked record":g,...y.length>0?{linked:{relation:o,refs:y}}:{}}}let a=n.kinds.get(n.node.kind)?.computed?.has(e.field),d,l;if(a){let y=w({t:"ident",name:e.field,at:0},n);y.ok?d=y.value!==null&&typeof y.value=="object"?b(y.value,void 0,n.today,[],n.money,v(n.schema)):y.value:l=y.problem}else d=Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0;let i=e.as!==void 0?void 0:n.fields[e.field]?.type==="url"?We(d):Se(Ge(n,e.field),d),s=k(()=>He(e.field,d,n,e.as,e.currency))??g,f=n.fields[e.field]?.type==="app-link"&&e.as===void 0&&typeof d=="string"?d:void 0;return h({t:"field",field:e.field,label:r,text:s,...i?{href:i}:{},...f?{app:f}:{}},l)}case"image":{let r=O(n.node&&Object.hasOwn(n.node,e.field)?n.node[e.field]:null),o=e.as==="gallery"?r:r.filter(a=>E(a)||A(a)).slice(0,1);return{t:"image",field:e.field,label:e.label??N(n.definition,e.field),as:e.as,files:o,text:o.map(D).join(", ")||g}}case"progress":{let r=w(e.value,n),o=w(e.max,n),a=e.label?S(e.label,n):{text:"Progress"},d=e.label?B(e.label,a.text):a.text,l=r.ok?o.ok?a.problem:o.problem:r.problem;return r.ok&&o.ok&&typeof r.value=="number"&&typeof o.value=="number"&&Number.isFinite(r.value)&&Number.isFinite(o.value)&&o.value>0?h({t:"progress",label:d,value:r.value,max:o.value,text:`${b(r.value,void 0,n.today)} of ${b(o.value,void 0,n.today)}`},l):h({t:"progress",label:d,text:g},l)}case"group":return{t:"group",direction:e.direction,blocks:je(e.blocks,Oe(n))};case"when":{let r=w(e.when,n),o=r.ok&&r.value===!0;return h({t:"when",shown:o,blocks:o?je(e.show,Oe(n)):[]},r.ok?void 0:r.problem)}case"divider":return{t:"divider"};case"figure":return{t:"figure"};case"headline":{let r=S(e.parts,n),o=Math.min(6,Math.max(1,(t?n.firstHeading:void 0)??n.heading??3));return h({t:"headline",level:o,text:e.parts?B(e.parts,r.text):r.text},r.problem)}case"number":{let r=w(e.value,n),o=!r.ok||r.value===null||typeof r.value=="object"?g:Ke(r.value,e.as,e.currency,n.today,n.money),a=e.label?S(e.label,n):void 0;return h({t:"number",text:o,...a&&e.label?{label:B(e.label,a.text)}:{},...e.emphasis?{emphasis:e.emphasis}:{}},r.ok?a?.problem:r.problem)}case"list":return Xe(e,n)}}function je(e,n){let t=e.findIndex(r=>r.t==="headline");return e.map((r,o)=>({...ze(r,n,o===t),key:r.key}))}function Te(e,n){let t=n.trim().toLowerCase();return e.some(r=>{switch(r.t){case"title":case"headline":return r.text.trim()!=="";case"text":case"badge":return t!==""&&r.text.toLowerCase().includes(t);case"group":return Te(r.blocks,n);case"when":return r.shown&&Te(r.blocks,n);default:return!1}})}var Je=new Set(["every","some","sum","min","max","sort"]);function Gn(e,n){let t=new Set,r=new Set,o=i=>{if(i)switch(i.t){case"ident":t.add(i.name);return;case"list":i.items.forEach(o);return;case"member":return o(i.object);case"unary":return o(i.operand);case"binary":return o(i.left),o(i.right);case"where":return o(i.set);case"call":i.args.forEach((s,f)=>{f===1&&Je.has(i.fn)||o(s)});return;default:return}},a=i=>{for(let s of i??[])o(s.expr)},d=(i,s)=>{i.forEach((f,y)=>{let u=s[y];if(u)switch(f.t){case"field":case"image":t.add(f.field);return;case"title":case"text":case"badge":case"headline":a(f.parts);return;case"number":o(f.value),a(f.label);return;case"progress":o(f.value),o(f.max);return;case"group":u.t==="group"&&d(f.blocks,u.blocks);return;case"when":u.t==="when"&&u.shown&&d(f.show,u.blocks);return;case"list":if(u.t==="list")for(let m of u.members)r.add(m.id);return;default:return}})};d(e,n);let l=n[0];return{fields:t,records:r,...e[0]?.t==="title"&&l?.t==="title"?{title:l.text}:{}}}function Xe(e,n){let t=Math.min(6,(n.heading??3)+1),r=w(e.source,n);if(!r.ok)return{t:"list",as:e.as,failed:!0,members:[],headingLevel:t,more:0,problem:r.problem};let o=r.value,a=o instanceof j?o.nodes:o!==null&&typeof o=="object"&&!Array.isArray(o)?[o]:[];e.choiceOrder&&n.schema&&(a=Ze(a,e.choiceOrder,n.schema));let d=a.length,l=a.slice(0,e.limit??L),i=l.slice(0,I),s=l.slice(I),f=(e.limit===void 0?d:l.length)-i.length,y=c=>e.group&&n.schema&&c.length>0?Ye(c,e.group,n.schema,n.graph):void 0,u=y(i),m=s.length>0?y(l):void 0;return{t:"list",as:e.as,failed:!1,members:i,...s.length>0?{rest:s}:{},...u?{groups:u}:{},...m?{everyGroup:m}:{},headingLevel:t,...i.length===0&&e.empty?{empty:e.empty}:{},more:f,total:d}}function $(e,n,t){let r=e.tryDefinition(n)?.fields?.shape,o=r&&Object.hasOwn(r,t)?_(r[t]):void 0;return o?.type==="enum"?o.options??[]:[]}var U=(e,n)=>Object.hasOwn(e,n)?e[n]:void 0;function Ze(e,n,t){let r=o=>{let a=$(t,o.kind,n).indexOf(String(U(o,n)));return a<0?Number.MAX_SAFE_INTEGER:a};return e.map((o,a)=>({node:o,i:a,rank:r(o)})).sort((o,a)=>o.rank-a.rank||o.i-a.i).map(o=>o.node)}function Ye(e,n,t,r){let o=e.some(i=>$(t,i.kind,n.by).length>0)?void 0:ye(n.by);if(o&&r)return qe(e,o,n.headings,t,r);let a=[];for(let i of e)for(let s of $(t,i.kind,n.by))a.includes(s)||a.push(s);let d=[];for(let i of a){let s=e.filter(y=>U(y,n.by)===i);if(s.length===0)continue;let f=t.tryDefinition(s[0].kind);d.push({value:i,heading:n.headings[i]??J(x(f,n.by,i)),members:s})}let l=e.filter(i=>!a.includes(String(U(i,n.by))));return l.length>0&&d.push({value:null,members:l}),d}function qe(e,n,t,r,o){let a=u=>n.way??(Object.hasOwn(r.tryDefinition(u.kind)?.edges??{},n.edge)?"out":"in"),d=new Map,l=[],i=v(r),s;for(let u of e){let m=a(u)==="out"?o.out(u.id,n.edge):o.in(u.id,n.edge);m.length===0&&l.push(u);for(let c of m){s??=c.kind;let R=d.get(c.id)??{node:c,members:[]};R.members.push(u),d.set(c.id,R)}}let f=[...d.values()].map(({node:u,members:m})=>({value:u.id,heading:t[u.id]??i(u),members:m})).sort((u,m)=>u.heading.localeCompare(m.heading,void 0,{numeric:!0}));!s&&e[0]&&a(e[0])==="out"&&(s=(r.tryDefinition(e[0].kind)?.edges??{})[n.edge]?.to?.[0]);let y=s&&s!=="*"?Y(r.tryDefinition(s),s):void 0;return l.length>0&&f.push({value:null,...y?{heading:`No ${y}`}:{},members:l}),f}function xe(e){return e.t==="list"||e.t==="headline"||e.t==="number"||e.t==="image"&&e.as==="gallery"?!0:e.t==="group"?e.blocks.some(xe):e.t==="when"?e.show.some(xe):!1}function ve(e,n){let t=e.tryDefinition(n)?.fields?.shape??{},r={};for(let[o,a]of Object.entries(t)){let d=_(a);d&&(r[o]=d)}return r}var Pe=new WeakMap;function W(e){let n=Pe.get(e);return n||Pe.set(e,n=me(e)),n}function Qe(e,n,t,r={}){let o=W(e),a={},d={},l=i=>{if(i instanceof j)return i.nodes.map(s=>l(s));if(Array.isArray(i))return i.map(s=>l(s));if(i!==null&&typeof i=="object"){let s=i;return{id:s.id,kind:s.kind,label:Z(e.tryDefinition(s.kind),s)}}return i};for(let[i,s]of o.get(t?t.kind:te)?.computed??[])try{let f=[],y=G(s,{graph:n,subject:t,kinds:o,...r.today?{today:r.today}:{},...r.budget?{budget:r.budget}:{},...r.linked?{linked:r.linked}:{},onUnread:u=>f.push(u)});f.length>0&&(y===null||y instanceof j&&y.nodes.length===0)?d[i]=re(f[0]):a[i]=l(y)}catch(f){if(!(f instanceof oe))throw f;d[i]=f.sentence}return{values:a,refused:d}}function Mn(e,n,t){let{values:r}=Qe(e,n,t);if(Object.keys(r).length===0)return t;let o=a=>Array.isArray(a)?a.map(o):a!==null&&typeof a=="object"?a.label:a;return{...t,...Object.fromEntries(Object.entries(r).map(([a,d])=>[a,o(d)]))}}function Cn(e,n){return[...pe(e.tryDefinition(n)).keys()]}var en=500,nn=2e4,Fe=new WeakMap;function rn(e,n){let t=Fe.get(e);t||Fe.set(e,t=new Map);let r=t.get(n);return r||t.set(n,r=ve(e,n)),r}function Dn(e,n,t,r={}){if(n&&typeof e.seenBy!="function")throw new TypeError("blockContextFor: a seat is read from a store (its `seenBy`); a bare { graph, schema } is read as it is handed, with no principal");let o=n?e.seenBy(n):e,a=n&&t?o.graph.getNode(t.id)??null:t,d=o.schema,l=a&&d.tryDefinition(a.kind),i=!a||(r.slot??"page")==="page",{money:s,firstHeading:f}=r;return{node:a,graph:o.graph,schema:d,kinds:W(d),fields:a?rn(d,a.kind):{},definition:l||void 0,today:r.today??o.today?.()??K(s?.timeZone),money:s,heading:r.heading??(i?2:3),firstHeading:f,budget:r.budget??(i?nn:en),...i?{}:{glance:!0}}}export{Re as a,dn as b,Ne as c,sn as d,ke as e,je as f,Te as g,Gn as h,xe as i,W as j,Qe as k,Mn as l,Cn as m,Dn as n};
1
+ import{a as _}from"./chunk.ZE5RSKXF.js";import{a as se,b as le,c as ue,d as fe,e as L,f as I,g as ye}from"./chunk.DKUEZPGR.js";import{a as me}from"./chunk.EP7YT7LT.js";import{c as T,e as de,f as pe}from"./chunk.I7KN732Z.js";import{a as j,b as re,c as te,d as oe,f as G,m as ae,n as b,o as V,p as B,q as v,r as ie}from"./chunk.TLPCYKLW.js";import{a as x,c as ce,d as ge,f as he,h as be,i as we,j as Se}from"./chunk.FIY4RUK5.js";import{$b as ee,Aa as A,Ba as q,C as P,Ca as O,Da as M,L as K,La as Q,W as z,Z as F,ac as ne,bc as C,da as J,ha as X,la as Z,ra as N,ua as Y,za as E}from"./chunk.DHPXRDT5.js";var Re=e=>e.caption?.trim()||e.name,D=e=>A(e)?`${Re(e)}, ${q(e)}`:Re(e);function dn(e){let n=Math.max(0,Math.round(e)),t=a=>String(a).padStart(2,"0"),r=Math.floor(n/3600),o=Math.floor(n%3600/60);return r>0?`${r}:${t(o)}:${t(n%60)}`:`${o}:${t(n%60)}`}function Ne(e){let n=e?.fields?.shape??{};return Object.keys(n).filter(t=>{let r=P(n[t]);for(;r?.innerType;)r=P(r.innerType);return M(n[t])!==void 0||r?.type==="array"&&M(r.element)!==void 0})}function sn(e,n){for(let t of Ne(n)){let r=O(e[t]).find(o=>E(o)||A(o));if(r)return r}}var k=e=>{try{return e()}catch{return null}},Ee=e=>typeof e=="string"&&se.includes(e);function Me(e){if(e!==void 0)return Ee(e)?e:e&&typeof e=="object"&&typeof e.expr=="string"?{expr:k(()=>T(e.expr))}:"neutral"}var Ce=4;function Ve(e){let n=typeof e.list=="string"?k(()=>T(e.list)):null,t=e.sort,r=typeof t=="string"?t:t&&typeof t=="object"&&typeof t.by=="string"?t.by:void 0,o=t&&typeof t=="object"?t.direction:void 0,a=n,d;if(n&&r!==void 0)if(o==="choices")d=r;else{let y=k(()=>T(r));a=y?{t:"call",fn:"sort",args:[n,y,{t:"lit",value:o==="desc"?"desc":"asc",at:0}],at:0}:null}let l=typeof e.limit=="number"&&Number.isInteger(e.limit)&&e.limit>=1?Math.min(e.limit,L):void 0,i=e.group,s=typeof i=="string"?i:i&&typeof i=="object"&&typeof i.by=="string"?i.by:void 0,f=i&&typeof i=="object"&&i.headings&&typeof i.headings=="object"?i.headings:{};return{t:"list",source:a,...d?{choiceOrder:d}:{},...l?{limit:l}:{},...s?{group:{by:s,headings:Object.fromEntries(Object.entries(f).filter(y=>typeof y[1]=="string"))}}:{},...typeof e.empty=="string"?{empty:e.empty}:{},as:e.as==="card"?"card":"row"}}function ke(e,n=1,t=""){if(!Array.isArray(e)||n>Ce)return[];let r={};return e.flatMap(o=>{if(!o||typeof o!="object"||Array.isArray(o))return[];let a=o,d=p=>typeof p=="string"?k(()=>de(p)):null,l=p=>typeof p=="string"?k(()=>T(p)):null,i=Me(a.tone),s=typeof a.label=="string"?a.label:void 0,f=p=>Object.hasOwn(a,p),y=typeof a.currency=="string"&&/^[A-Z]{3}$/.test(a.currency)?a.currency:void 0,u=f("list")?"list":f("headline")?"headline":typeof a.figure=="string"?"number":Le.find(f);if(!u)return[];let m=r[u]=(r[u]??0)+1,c=a.key,R=typeof c=="string"&&c?c:`${t}${u}.${m}`;return[{...(()=>{switch(u){case"list":return Ve(a);case"number":{let p=ue.includes(a.as)?a.as:void 0,H=fe.includes(a.emphasis)?a.emphasis:void 0;return{t:u,value:l(a.figure),...p?{as:p}:{},...y?{currency:y}:{},...s?{label:d(s)}:{},...H?{emphasis:H}:{}}}case"headline":case"title":return{t:u,parts:d(a[u])};case"text":{let p=a.lines;return{t:u,parts:d(a[u]),...i?{tone:i}:{},...typeof p=="number"&&Number.isInteger(p)&&p>=0?{lines:p}:{}}}case"badge":return{t:u,parts:d(a[u]),...i?{tone:i}:{}};case"field":{let p=le.includes(a.as)?a.as:void 0;return{t:u,field:String(a.field),...p?{as:p}:{},...y?{currency:y}:{},...s?{label:s}:{}}}case"image":return{t:u,field:String(a.image),as:a.as==="gallery"?"gallery":"thumb",...s?{label:s}:{}};case"progress":{let p=a.progress??{};return{t:u,value:l(p.value),max:l(p.max),...s?{label:d(s)}:{}}}case"group":return{t:u,blocks:ke(a.group,n+1,`${R}.`),direction:a.direction==="row"?"row":"column"};case"when":return{t:u,when:l(a.when),show:ke(a.show,n+1,`${R}.`)};default:return{t:u}}})(),key:R}]})}var Le=["title","text","badge","field","image","progress","group","when","divider","figure"],g="\u2014",Ie=500;function w(e,n){if(!e)return{ok:!1,problem:"an expression that does not parse"};try{return{ok:!0,value:G(e,{graph:n.graph??ae,subject:n.node,kinds:n.kinds,today:n.today,budget:n.budget??Ie})}}catch(t){return{ok:!1,problem:t instanceof Error?t.message:String(t)}}}function _e(e,n){let t=e.definition?.display?.format?.[n],r=e.fields[n]?.options??[];return t?Object.fromEntries(r.flatMap(o=>{let a=t(o);return a!==X(o)?[[o,a]]:[]})):{}}var De=(e,n,t)=>!e.format&&e.expr?.t==="ident"&&typeof t=="string"&&n.fields[e.expr.name]?.format==="markdown";function S(e,n,t){if(!e)return{text:g,problem:"a template that does not parse"};let r,o;return{text:e.map(d=>{if(d.text!==void 0)return d.text;let l=w(d.expr??null,n);if(!l.ok)return r??=`{${d.source??""}}: ${l.problem}`,g;if(De(d,n,l.value))return n.glance?ce(l.value,{markdown:!0}):t&&e.length===1?(o=!0,l.value):ge(l.value);let i=!d.format&&d.expr?.t==="ident"&&n.fields[d.expr.name]?.type==="enum"?d.expr.name:void 0;if(i&&(typeof l.value=="string"||Array.isArray(l.value)))return V(d,ie(l.value,_e(n,i),e.length===1));let s=!d.format&&d.expr?.t==="ident"&&typeof l.value=="number"?Be(n,d.expr.name):void 0;return V(d,s?C(l.value,s):b(l.value,d.format,n.today,d.formatArgs,n.money,v(n.schema)))}).join(""),...r?{problem:r}:{},...o?{markdown:o}:{}}}var $e=" \xB7 ";function Ue(e,n){if(!e||!n.node)return;let t=[[]];for(let d of e){if(d.text===void 0){t[t.length-1].push(d);continue}d.text.split($e).forEach((i,s)=>{s>0&&t.push([]),i!==""&&t[t.length-1].push({text:i})})}if(t.length<2)return;let r=d=>{let[l]=d;if(!(d.length!==1||!l||l.format||l.expr?.t!=="ident"))return n.fields[l.expr.name]?.type==="enum"?l.expr.name:void 0},o=0,a=t.flatMap(d=>{let l=r(d);if(l){let s=Object.hasOwn(n.node,l)?n.node[l]:void 0;return s==null||s===""?[]:(o++,[{text:x(n.definition,l,s),field:l}])}let i=S(d,n).text.trim();return i===""||i===g?[]:[{text:i}]});return o>0?a:void 0}function Ae(e,n){if(e===void 0)return;if(typeof e=="string")return e;let t=w(e.expr,n);return t.ok&&Ee(t.value)?t.value:"neutral"}function We(e){if(typeof e=="string")try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"?n.href:void 0}catch{return}}var Ge=(e,n)=>{let t=e.fields[n]?.type;return t==="phone"||t==="place"||t==="duration"?t:be(e.definition,n)},Be=(e,n)=>ee(e.definition?.fields?.shape?.[n])??he(e.definition,n);function He(e,n,t,r,o){if(n==null||n==="")return g;if(typeof n=="boolean")return n?"yes":"no";if(r)return b(n,r,t.today,[],o?{...t.money,currency:o}:t.money);let a=t.fields[e];if(t.definition?.display?.format?.[e])return x(t.definition,e,n);let d=we(Ge(t,e),n,t.money?.locale);if(d!==void 0)return d;if(a?.type==="date")return b(n,"date",t.today,[],t.money);if(a?.type==="datetime"&&typeof n=="string")return z(n,t.money?.locale,t.money?.timeZone);if(a?.type==="enum"&&(typeof n=="string"||Array.isArray(n)))return x(t.definition,e,n);let l=typeof n=="number"?Be(t,e):void 0;if(l)return C(n,l);if(typeof n=="number")return F(n,t.money?.locale,{});let i=O(n);return i[0]?i.map(D).join(", "):Array.isArray(n)?n.map(s=>String(s)).join(", "):typeof n=="object"?g:String(n)}function Ke(e,n,t,r,o){return typeof e!="number"?String(e):n==="money"?ne(e,t?{...o,currency:t}:o):n==="percent"?b(e,n,r,[],o):F(e,o?.locale)}var h=(e,n)=>n?{...e,problem:n}:e;function Oe(e){return e.firstHeading===void 0?e:{...e,firstHeading:void 0}}function ze(e,n,t){switch(e.t){case"title":{let r=S(e.parts,n);return h({t:"title",text:r.text},r.problem)}case"text":{let r=S(e.parts,n,!0),o=Ae(e.tone,n),a=n.glance&&!r.problem?Ue(e.parts,n):void 0;return h({t:"text",text:r.text,...o?{tone:o}:{},...e.lines!==void 0?{lines:e.lines}:{},...r.markdown?{markdown:r.markdown}:{},...a?{runs:a}:{}},r.problem)}case"badge":{let r=S(e.parts,n);return h({t:"badge",text:r.text,tone:Ae(e.tone,n)??"neutral"},r.problem)}case"field":{let r=e.label??N(n.definition,e.field);if(!n.node)return{t:"field",field:e.field,label:r,text:g,problem:`"${e.field}" names a field, and these blocks are about no one record`};let o=e.as===void 0?n.kinds.get(n.node.kind)?.linked?.get(e.field):void 0;if(o){let y=Q(Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0,o);return{t:"field",field:e.field,label:r,text:y.length>0?"linked record":g,...y.length>0?{linked:{relation:o,refs:y}}:{}}}let a=n.kinds.get(n.node.kind)?.computed?.has(e.field),d,l;if(a){let y=w({t:"ident",name:e.field,at:0},n);y.ok?d=y.value!==null&&typeof y.value=="object"?b(y.value,void 0,n.today,[],n.money,v(n.schema)):y.value:l=y.problem}else d=Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0;let i=e.as!==void 0?void 0:n.fields[e.field]?.type==="url"?We(d):Se(Ge(n,e.field),d),s=k(()=>He(e.field,d,n,e.as,e.currency))??g,f=n.fields[e.field]?.type==="app-link"&&e.as===void 0&&typeof d=="string"?d:void 0;return h({t:"field",field:e.field,label:r,text:s,...i?{href:i}:{},...f?{app:f}:{}},l)}case"image":{let r=O(n.node&&Object.hasOwn(n.node,e.field)?n.node[e.field]:null),o=e.as==="gallery"?r:r.filter(a=>E(a)||A(a)).slice(0,1);return{t:"image",field:e.field,label:e.label??N(n.definition,e.field),as:e.as,files:o,text:o.map(D).join(", ")||g}}case"progress":{let r=w(e.value,n),o=w(e.max,n),a=e.label?S(e.label,n):{text:"Progress"},d=e.label?B(e.label,a.text):a.text,l=r.ok?o.ok?a.problem:o.problem:r.problem;return r.ok&&o.ok&&typeof r.value=="number"&&typeof o.value=="number"&&Number.isFinite(r.value)&&Number.isFinite(o.value)&&o.value>0?h({t:"progress",label:d,value:r.value,max:o.value,text:`${b(r.value,void 0,n.today)} of ${b(o.value,void 0,n.today)}`},l):h({t:"progress",label:d,text:g},l)}case"group":return{t:"group",direction:e.direction,blocks:je(e.blocks,Oe(n))};case"when":{let r=w(e.when,n),o=r.ok&&r.value===!0;return h({t:"when",shown:o,blocks:o?je(e.show,Oe(n)):[]},r.ok?void 0:r.problem)}case"divider":return{t:"divider"};case"figure":return{t:"figure"};case"headline":{let r=S(e.parts,n),o=Math.min(6,Math.max(1,(t?n.firstHeading:void 0)??n.heading??3));return h({t:"headline",level:o,text:e.parts?B(e.parts,r.text):r.text},r.problem)}case"number":{let r=w(e.value,n),o=!r.ok||r.value===null||typeof r.value=="object"?g:Ke(r.value,e.as,e.currency,n.today,n.money),a=e.label?S(e.label,n):void 0;return h({t:"number",text:o,...a&&e.label?{label:B(e.label,a.text)}:{},...e.emphasis?{emphasis:e.emphasis}:{}},r.ok?a?.problem:r.problem)}case"list":return Xe(e,n)}}function je(e,n){let t=e.findIndex(r=>r.t==="headline");return e.map((r,o)=>({...ze(r,n,o===t),key:r.key}))}function Te(e,n){let t=n.trim().toLowerCase();return e.some(r=>{switch(r.t){case"title":case"headline":return r.text.trim()!=="";case"text":case"badge":return t!==""&&r.text.toLowerCase().includes(t);case"group":return Te(r.blocks,n);case"when":return r.shown&&Te(r.blocks,n);default:return!1}})}var Je=new Set(["every","some","sum","min","max","sort"]);function Gn(e,n){let t=new Set,r=new Set,o=i=>{if(i)switch(i.t){case"ident":t.add(i.name);return;case"list":i.items.forEach(o);return;case"member":return o(i.object);case"unary":return o(i.operand);case"binary":return o(i.left),o(i.right);case"where":return o(i.set);case"call":i.args.forEach((s,f)=>{f===1&&Je.has(i.fn)||o(s)});return;default:return}},a=i=>{for(let s of i??[])o(s.expr)},d=(i,s)=>{i.forEach((f,y)=>{let u=s[y];if(u)switch(f.t){case"field":case"image":t.add(f.field);return;case"title":case"text":case"badge":case"headline":a(f.parts);return;case"number":o(f.value),a(f.label);return;case"progress":o(f.value),o(f.max);return;case"group":u.t==="group"&&d(f.blocks,u.blocks);return;case"when":u.t==="when"&&u.shown&&d(f.show,u.blocks);return;case"list":if(u.t==="list")for(let m of u.members)r.add(m.id);return;default:return}})};d(e,n);let l=n[0];return{fields:t,records:r,...e[0]?.t==="title"&&l?.t==="title"?{title:l.text}:{}}}function Xe(e,n){let t=Math.min(6,(n.heading??3)+1),r=w(e.source,n);if(!r.ok)return{t:"list",as:e.as,failed:!0,members:[],headingLevel:t,more:0,problem:r.problem};let o=r.value,a=o instanceof j?o.nodes:o!==null&&typeof o=="object"&&!Array.isArray(o)?[o]:[];e.choiceOrder&&n.schema&&(a=Ze(a,e.choiceOrder,n.schema));let d=a.length,l=a.slice(0,e.limit??L),i=l.slice(0,I),s=l.slice(I),f=(e.limit===void 0?d:l.length)-i.length,y=c=>e.group&&n.schema&&c.length>0?Ye(c,e.group,n.schema,n.graph):void 0,u=y(i),m=s.length>0?y(l):void 0;return{t:"list",as:e.as,failed:!1,members:i,...s.length>0?{rest:s}:{},...u?{groups:u}:{},...m?{everyGroup:m}:{},headingLevel:t,...i.length===0&&e.empty?{empty:e.empty}:{},more:f,total:d}}function $(e,n,t){let r=e.tryDefinition(n)?.fields?.shape,o=r&&Object.hasOwn(r,t)?_(r[t]):void 0;return o?.type==="enum"?o.options??[]:[]}var U=(e,n)=>Object.hasOwn(e,n)?e[n]:void 0;function Ze(e,n,t){let r=o=>{let a=$(t,o.kind,n).indexOf(String(U(o,n)));return a<0?Number.MAX_SAFE_INTEGER:a};return e.map((o,a)=>({node:o,i:a,rank:r(o)})).sort((o,a)=>o.rank-a.rank||o.i-a.i).map(o=>o.node)}function Ye(e,n,t,r){let o=e.some(i=>$(t,i.kind,n.by).length>0)?void 0:ye(n.by);if(o&&r)return qe(e,o,n.headings,t,r);let a=[];for(let i of e)for(let s of $(t,i.kind,n.by))a.includes(s)||a.push(s);let d=[];for(let i of a){let s=e.filter(y=>U(y,n.by)===i);if(s.length===0)continue;let f=t.tryDefinition(s[0].kind);d.push({value:i,heading:n.headings[i]??J(x(f,n.by,i)),members:s})}let l=e.filter(i=>!a.includes(String(U(i,n.by))));return l.length>0&&d.push({value:null,members:l}),d}function qe(e,n,t,r,o){let a=u=>n.way??(Object.hasOwn(r.tryDefinition(u.kind)?.edges??{},n.edge)?"out":"in"),d=new Map,l=[],i=v(r),s;for(let u of e){let m=a(u)==="out"?o.out(u.id,n.edge):o.in(u.id,n.edge);m.length===0&&l.push(u);for(let c of m){s??=c.kind;let R=d.get(c.id)??{node:c,members:[]};R.members.push(u),d.set(c.id,R)}}let f=[...d.values()].map(({node:u,members:m})=>({value:u.id,heading:t[u.id]??i(u),members:m})).sort((u,m)=>u.heading.localeCompare(m.heading,void 0,{numeric:!0}));!s&&e[0]&&a(e[0])==="out"&&(s=(r.tryDefinition(e[0].kind)?.edges??{})[n.edge]?.to?.[0]);let y=s&&s!=="*"?Y(r.tryDefinition(s),s):void 0;return l.length>0&&f.push({value:null,...y?{heading:`No ${y}`}:{},members:l}),f}function xe(e){return e.t==="list"||e.t==="headline"||e.t==="number"||e.t==="image"&&e.as==="gallery"?!0:e.t==="group"?e.blocks.some(xe):e.t==="when"?e.show.some(xe):!1}function ve(e,n){let t=e.tryDefinition(n)?.fields?.shape??{},r={};for(let[o,a]of Object.entries(t)){let d=_(a);d&&(r[o]=d)}return r}var Pe=new WeakMap;function W(e){let n=Pe.get(e);return n||Pe.set(e,n=me(e)),n}function Qe(e,n,t,r={}){let o=W(e),a={},d={},l=i=>{if(i instanceof j)return i.nodes.map(s=>l(s));if(Array.isArray(i))return i.map(s=>l(s));if(i!==null&&typeof i=="object"){let s=i;return{id:s.id,kind:s.kind,label:Z(e.tryDefinition(s.kind),s)}}return i};for(let[i,s]of o.get(t?t.kind:te)?.computed??[])try{let f=[],y=G(s,{graph:n,subject:t,kinds:o,...r.today?{today:r.today}:{},...r.budget?{budget:r.budget}:{},...r.linked?{linked:r.linked}:{},onUnread:u=>f.push(u)});f.length>0&&(y===null||y instanceof j&&y.nodes.length===0)?d[i]=re(f[0]):a[i]=l(y)}catch(f){if(!(f instanceof oe))throw f;d[i]=f.sentence}return{values:a,refused:d}}function Mn(e,n,t){let{values:r}=Qe(e,n,t);if(Object.keys(r).length===0)return t;let o=a=>Array.isArray(a)?a.map(o):a!==null&&typeof a=="object"?a.label:a;return{...t,...Object.fromEntries(Object.entries(r).map(([a,d])=>[a,o(d)]))}}function Cn(e,n){return[...pe(e.tryDefinition(n)).keys()]}var en=500,nn=2e4,Fe=new WeakMap;function rn(e,n){let t=Fe.get(e);t||Fe.set(e,t=new Map);let r=t.get(n);return r||t.set(n,r=ve(e,n)),r}function Dn(e,n,t,r={}){if(n&&typeof e.seenBy!="function")throw new TypeError("blockContextFor: a seat is read from a store (its `seenBy`); a bare { graph, schema } is read as it is handed, with no principal");let o=n?e.seenBy(n):e,a=n&&t?o.graph.getNode(t.id)??null:t,d=o.schema,l=a&&d.tryDefinition(a.kind),i=!a||(r.slot??"page")==="page",{money:s,firstHeading:f}=r;return{node:a,graph:o.graph,schema:d,kinds:W(d),fields:a?rn(d,a.kind):{},definition:l||void 0,today:r.today??o.today?.()??K(s?.timeZone),money:s,heading:r.heading??(i?2:3),firstHeading:f,budget:r.budget??(i?nn:en),...i?{}:{glance:!0}}}export{Re as a,dn as b,Ne as c,sn as d,ke as e,je as f,Te as g,Gn as h,xe as i,W as j,Qe as k,Mn as l,Cn as m,Dn as n};