graview 0.1.58 → 0.1.60

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 (178) hide show
  1. package/README.md +4 -2
  2. package/dist/preview/chunk.2K4TT2BV.js +1 -0
  3. package/dist/preview/{chunk.OHQ3JH65.js → chunk.2USDHXB4.js} +1 -1
  4. package/dist/preview/{chunk.F7SF6EP2.js → chunk.37TVS7CA.js} +1 -1
  5. package/dist/preview/chunk.3IZ3ABII.js +1 -0
  6. package/dist/preview/{chunk.NKC3JILT.js → chunk.3MOJF7BA.js} +1 -1
  7. package/dist/preview/{chunk.IDJPBWL2.js → chunk.3UOKUF5Z.js} +1 -1
  8. package/dist/preview/{chunk.2VYNNWW5.js → chunk.3V4WP7RY.js} +3 -3
  9. package/dist/preview/{chunk.WNSC3RWD.js → chunk.3XGA65Y3.js} +1 -1
  10. package/dist/preview/{chunk.D5KTGX7F.js → chunk.3ZT5WQYL.js} +1 -1
  11. package/dist/preview/{chunk.IULQRCEE.js → chunk.4LR64TPU.js} +1 -1
  12. package/dist/preview/chunk.4MP72LPR.js +25 -0
  13. package/dist/preview/{chunk.GQBJVCSM.js → chunk.4TCKEG6I.js} +1 -1
  14. package/dist/preview/chunk.5DD62IOW.js +21 -0
  15. package/dist/preview/{chunk.KJ264E6K.js → chunk.5YOLUDVO.js} +1 -1
  16. package/dist/preview/{chunk.EB4NVTJL.js → chunk.67U6M7OV.js} +1 -1
  17. package/dist/preview/{chunk.XU34T2H4.js → chunk.6C2MHWSX.js} +1 -1
  18. package/dist/preview/{chunk.ILRCNTGT.js → chunk.6HF6POIX.js} +1 -1
  19. package/dist/preview/{chunk.U6O3MMQR.js → chunk.6WHAWOO7.js} +1 -1
  20. package/dist/preview/{chunk.GKSUTAIX.js → chunk.6ZQAR5ZA.js} +1 -1
  21. package/dist/preview/{chunk.EPPXZZPK.js → chunk.7MHCGVGM.js} +1 -1
  22. package/dist/preview/{chunk.MQ5HBUBL.js → chunk.7N32AVIJ.js} +1 -1
  23. package/dist/preview/{chunk.7V23SXGJ.js → chunk.7OPM55I2.js} +1 -1
  24. package/dist/preview/chunk.7TFLRR7D.js +1 -0
  25. package/dist/preview/{chunk.LDAYDCUO.js → chunk.7VKSXGTX.js} +1 -1
  26. package/dist/preview/{chunk.KJHPDL4N.js → chunk.A3ZXDG6V.js} +1 -1
  27. package/dist/preview/{chunk.27CW6SCT.js → chunk.A5PDXNY6.js} +1 -1
  28. package/dist/preview/chunk.AVBTPSQF.js +1 -0
  29. package/dist/preview/{chunk.YZZONE4M.js → chunk.BF6S5UE4.js} +1 -1
  30. package/dist/preview/chunk.BLPYNNR4.js +1 -0
  31. package/dist/preview/{chunk.LRUNFSHP.js → chunk.BQIHNT7C.js} +1 -1
  32. package/dist/preview/{chunk.O4CVKTPJ.js → chunk.BRT27WON.js} +1 -1
  33. package/dist/preview/{chunk.HMFJT4KO.js → chunk.BXDM3UMN.js} +1 -1
  34. package/dist/preview/chunk.BYKD5RLA.js +1 -0
  35. package/dist/preview/chunk.C7OLSEWK.js +1 -0
  36. package/dist/preview/{chunk.3OYGXYQY.js → chunk.CC5BJH5A.js} +1 -1
  37. package/dist/preview/{chunk.GCBZ3WE2.js → chunk.CFKZXLXS.js} +1 -1
  38. package/dist/preview/chunk.CMN6BBAD.js +1 -0
  39. package/dist/preview/{chunk.YP2F5UGY.js → chunk.CQT3W2SF.js} +1 -1
  40. package/dist/preview/chunk.D7YSL3NK.js +2 -0
  41. package/dist/preview/chunk.DCHQHKSA.js +1 -0
  42. package/dist/preview/{chunk.H3BFHI3G.js → chunk.EL5ICOOM.js} +1 -1
  43. package/dist/preview/{chunk.PZG3B7F4.js → chunk.ENL2JJ47.js} +1 -1
  44. package/dist/preview/chunk.EQXB7LKI.js +1 -0
  45. package/dist/preview/{chunk.ELAMMS2V.js → chunk.ERFT54HT.js} +1 -1
  46. package/dist/preview/{chunk.XN2RVXOI.js → chunk.F6V7RWDK.js} +1 -1
  47. package/dist/preview/{chunk.64R3K2OE.js → chunk.FBJARKDT.js} +1 -1
  48. package/dist/preview/{chunk.SDLUWRGI.js → chunk.FC6AF6CC.js} +1 -1
  49. package/dist/preview/{chunk.GZB6A6KF.js → chunk.FFTYMBBT.js} +1 -1
  50. package/dist/preview/chunk.FLUK3UXF.js +1 -0
  51. package/dist/preview/{chunk.KFQSYCY3.js → chunk.FRYBMS3W.js} +1 -1
  52. package/dist/preview/chunk.G3R4BTI7.js +1 -0
  53. package/dist/preview/chunk.G4YJPKRG.js +5 -0
  54. package/dist/preview/{chunk.BB33TI4S.js → chunk.GLWSVSQL.js} +1 -1
  55. package/dist/preview/{chunk.SDVPJYVF.js → chunk.GNBIVVL3.js} +1 -1
  56. package/dist/preview/{chunk.ZN5HTWSI.js → chunk.GTKJJYQH.js} +1 -1
  57. package/dist/preview/{chunk.TUUVVO5U.js → chunk.H45Q3O4F.js} +1 -1
  58. package/dist/preview/{chunk.M34CS7DI.js → chunk.HDP3PS7N.js} +1 -1
  59. package/dist/preview/{chunk.CCWPF5PK.js → chunk.HDUO2USQ.js} +1 -1
  60. package/dist/preview/{chunk.PBCNOFQH.js → chunk.HUJ6YTWE.js} +1 -1
  61. package/dist/preview/{chunk.JB7TTJXQ.js → chunk.I4XQBQRC.js} +1 -1
  62. package/dist/preview/chunk.IBOKXVWN.js +1 -0
  63. package/dist/preview/{chunk.4HSH2UIK.js → chunk.IGJZ4UH3.js} +2 -2
  64. package/dist/preview/{chunk.WNQFHMNR.js → chunk.IGVASEZU.js} +1 -1
  65. package/dist/preview/{chunk.7SQAKSJD.js → chunk.IHBUBZQT.js} +1 -1
  66. package/dist/preview/chunk.IOK4GVJC.js +1 -0
  67. package/dist/preview/{chunk.I3WWCPQ2.js → chunk.JEYQBH33.js} +1 -1
  68. package/dist/preview/{chunk.S2H7B6RG.js → chunk.JJGCTGWA.js} +1 -1
  69. package/dist/preview/{chunk.E5MSFXL6.js → chunk.JPONLMU7.js} +1 -1
  70. package/dist/preview/{chunk.QPXXY2DL.js → chunk.KBVTLNS5.js} +3 -3
  71. package/dist/preview/{chunk.HS3GHAUR.js → chunk.KDRLUBVF.js} +1 -1
  72. package/dist/preview/{chunk.YIA2EDVF.js → chunk.KGW75Z5L.js} +1 -1
  73. package/dist/preview/{chunk.KWJWAIQJ.js → chunk.KI37ZEV3.js} +1 -1
  74. package/dist/preview/chunk.L6AWE76F.js +1 -0
  75. package/dist/preview/{chunk.LY3YOWKV.js → chunk.LGEA5257.js} +1 -1
  76. package/dist/preview/{chunk.TF5I4VHX.js → chunk.LLYRFVIN.js} +1 -1
  77. package/dist/preview/{chunk.WQOI6BLM.js → chunk.LQVAABPS.js} +1 -1
  78. package/dist/preview/{chunk.POBMGM3X.js → chunk.LSY256J4.js} +1 -1
  79. package/dist/preview/{chunk.HEWVPXRE.js → chunk.LZIBQ3VX.js} +1 -1
  80. package/dist/preview/{chunk.7MSFDD7J.js → chunk.M4UD4ARP.js} +1 -1
  81. package/dist/preview/chunk.MDJWK5W2.js +1 -0
  82. package/dist/preview/{chunk.4AFFPYOK.js → chunk.MJVYWLQQ.js} +1 -1
  83. package/dist/preview/{chunk.3YZHZGTM.js → chunk.MSWWWLEA.js} +1 -1
  84. package/dist/preview/{chunk.BTVBZ6KE.js → chunk.MVWC3VR3.js} +2 -2
  85. package/dist/preview/{chunk.B2GVJD6H.js → chunk.NC7FXY2H.js} +1 -1
  86. package/dist/preview/{chunk.LCPGZK7G.js → chunk.NGTRL5U4.js} +1 -1
  87. package/dist/preview/{chunk.NOFWGDOT.js → chunk.NHUQ2N6J.js} +1 -1
  88. package/dist/preview/{chunk.LL2MLSPH.js → chunk.OLFJH4RK.js} +1 -1
  89. package/dist/preview/{chunk.WXIEQZLY.js → chunk.P6RORYOT.js} +1 -1
  90. package/dist/preview/{chunk.SPXRLO5K.js → chunk.PFSYXD6Q.js} +1 -1
  91. package/dist/preview/chunk.PHJ6WPWH.js +1 -0
  92. package/dist/preview/{chunk.QGV7H7RQ.js → chunk.PI44XMY2.js} +1 -1
  93. package/dist/preview/{chunk.ZOHMWSHD.js → chunk.PNW5K7BW.js} +1 -1
  94. package/dist/preview/chunk.Q355UPFG.js +1 -0
  95. package/dist/preview/{chunk.GEB2DFBU.js → chunk.QBLKTFF4.js} +1 -1
  96. package/dist/preview/{chunk.HXRV3WVJ.js → chunk.QDSEVPF3.js} +1 -1
  97. package/dist/preview/chunk.QFUMFQJU.js +1 -0
  98. package/dist/preview/{chunk.B3WZHPM3.js → chunk.QHDCTAD7.js} +1 -1
  99. package/dist/preview/{chunk.UAP5M3CD.js → chunk.QI4SLPQ4.js} +2 -2
  100. package/dist/preview/{chunk.HZB5F476.js → chunk.RQOX5YDW.js} +1 -1
  101. package/dist/preview/{chunk.TBW7CU4G.js → chunk.RXYNW5QB.js} +1 -1
  102. package/dist/preview/{chunk.RE7DELSR.js → chunk.SB2PZKN5.js} +1 -1
  103. package/dist/preview/{chunk.INZQ6WZM.js → chunk.SRVQJZRT.js} +1 -1
  104. package/dist/preview/{chunk.TJ647W6J.js → chunk.T7LQD67N.js} +2 -2
  105. package/dist/preview/chunk.TAT2IQUR.js +1 -0
  106. package/dist/preview/chunk.TFWIG6LL.js +6 -0
  107. package/dist/preview/{chunk.GP7F3PEF.js → chunk.TKVLNBRD.js} +1 -1
  108. package/dist/preview/{chunk.YHTE34RN.js → chunk.TLJOZSDD.js} +1 -1
  109. package/dist/preview/{chunk.6W7O5YLL.js → chunk.TLWT67ON.js} +1 -1
  110. package/dist/preview/{chunk.KKNDX4JT.js → chunk.TY4GQJKC.js} +1 -1
  111. package/dist/preview/{chunk.EQTSV7BK.js → chunk.UITT6JWW.js} +1 -1
  112. package/dist/preview/{chunk.LO3U3P55.js → chunk.UJTE7UAP.js} +1 -1
  113. package/dist/preview/{chunk.DBZHRYBK.js → chunk.ULL6ZIJJ.js} +1 -1
  114. package/dist/preview/{chunk.VUPLFUUS.js → chunk.UQWTZJBV.js} +1 -1
  115. package/dist/preview/{chunk.NFX24NUI.js → chunk.URWAFZHF.js} +1 -1
  116. package/dist/preview/{chunk.A6C4AGJJ.js → chunk.VADQ7ZGA.js} +1 -1
  117. package/dist/preview/chunk.VDMDPZ6U.js +1 -0
  118. package/dist/preview/{chunk.2EDC63RI.js → chunk.VFOON3Z3.js} +1 -1
  119. package/dist/preview/{chunk.4444RPWW.js → chunk.VMV464JK.js} +1 -1
  120. package/dist/preview/{chunk.4KC35UNR.js → chunk.VNDKKTED.js} +4 -2
  121. package/dist/preview/chunk.VSCIXAHN.js +5 -0
  122. package/dist/preview/{chunk.34TW32TB.js → chunk.VUBNBTJP.js} +2 -2
  123. package/dist/preview/{chunk.JUNMJYH5.js → chunk.VWJGQDCE.js} +1 -1
  124. package/dist/preview/{chunk.KXPRILAO.js → chunk.VZJWJ5XM.js} +1 -1
  125. package/dist/preview/{chunk.5ICIMQE6.js → chunk.W3W54DSX.js} +1 -1
  126. package/dist/preview/{chunk.YD3TKV6P.js → chunk.WC3DENU4.js} +2 -2
  127. package/dist/preview/chunk.WQ6RCEUQ.js +1 -0
  128. package/dist/preview/{chunk.YS6GVLIP.js → chunk.WXUFATY5.js} +1 -1
  129. package/dist/preview/chunk.X6A4VSSD.js +1 -0
  130. package/dist/preview/{chunk.VHSWBFXB.js → chunk.XGASJAV2.js} +1 -1
  131. package/dist/preview/{chunk.RRKYJYZJ.js → chunk.XR6YR6RV.js} +1 -1
  132. package/dist/preview/chunk.XZPKBHJT.js +1 -0
  133. package/dist/preview/{chunk.GDOTG7YA.js → chunk.Y5C4RXG7.js} +1 -1
  134. package/dist/preview/{chunk.JES77WXG.js → chunk.Y7G3OGDE.js} +1 -1
  135. package/dist/preview/{chunk.E34OQVSR.js → chunk.YEBGI6ED.js} +1 -1
  136. package/dist/preview/{chunk.TWKXSLYY.js → chunk.YFSBVZTG.js} +1 -1
  137. package/dist/preview/chunk.YFVJUHAK.js +1 -0
  138. package/dist/preview/chunk.YH63KQ2G.js +1 -0
  139. package/dist/preview/{chunk.LMN4TSAP.js → chunk.YZ7FUKAL.js} +1 -1
  140. package/dist/preview/{chunk.JGKA5QBX.js → chunk.Z2ERZ4S6.js} +1 -1
  141. package/dist/preview/{chunk.VG7OWV2H.js → chunk.ZP5RT2EK.js} +1 -1
  142. package/dist/preview/{chunk.ETBFD76E.js → chunk.ZXOT3IXJ.js} +1 -1
  143. package/dist/preview/{chunk.TJOXNEFU.js → chunk.ZYM2SSGW.js} +1 -1
  144. package/dist/preview/index.html +51 -51
  145. package/dist/preview/page.js +2 -2
  146. package/package.json +6 -6
  147. package/dist/preview/chunk.32FMOHZK.js +0 -1
  148. package/dist/preview/chunk.3FCOFEGW.js +0 -1
  149. package/dist/preview/chunk.43OKZU73.js +0 -1
  150. package/dist/preview/chunk.47JQPYXL.js +0 -2
  151. package/dist/preview/chunk.4GGPPCMM.js +0 -1
  152. package/dist/preview/chunk.4Y2JTY6Q.js +0 -1
  153. package/dist/preview/chunk.6K7EN2YI.js +0 -1
  154. package/dist/preview/chunk.6VC6AGYV.js +0 -5
  155. package/dist/preview/chunk.7BBGRTXM.js +0 -5
  156. package/dist/preview/chunk.7ECBGIUK.js +0 -1
  157. package/dist/preview/chunk.ACYDJQRC.js +0 -1
  158. package/dist/preview/chunk.ARWBIBSI.js +0 -6
  159. package/dist/preview/chunk.BKVBX2YB.js +0 -1
  160. package/dist/preview/chunk.DM767F2Q.js +0 -21
  161. package/dist/preview/chunk.ELERUERU.js +0 -1
  162. package/dist/preview/chunk.GUEHKCWN.js +0 -1
  163. package/dist/preview/chunk.HT2BEOEV.js +0 -25
  164. package/dist/preview/chunk.JOAN54PN.js +0 -1
  165. package/dist/preview/chunk.L7V24JPO.js +0 -1
  166. package/dist/preview/chunk.LA4CPZ2N.js +0 -1
  167. package/dist/preview/chunk.MV3AJ7JH.js +0 -1
  168. package/dist/preview/chunk.MYNQWWCL.js +0 -1
  169. package/dist/preview/chunk.OASYYMG5.js +0 -1
  170. package/dist/preview/chunk.PM3SYXKB.js +0 -1
  171. package/dist/preview/chunk.QB25SMP6.js +0 -1
  172. package/dist/preview/chunk.R7LFO7KI.js +0 -1
  173. package/dist/preview/chunk.S5MGE2U5.js +0 -1
  174. package/dist/preview/chunk.TXGNPW76.js +0 -1
  175. package/dist/preview/chunk.UGFDSE37.js +0 -1
  176. package/dist/preview/chunk.UKMVJV6Q.js +0 -1
  177. package/dist/preview/chunk.UUG3BYVN.js +0 -1
  178. package/dist/preview/chunk.WJFQIE3Y.js +0 -1
@@ -1 +0,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 _,b as me,e as ce,f as ye,g as ge}from"./chunk.S5MGE2U5.js";import{b as G}from"./chunk.34TW32TB.js";import{c as ue}from"./chunk.LDAYDCUO.js";import{n as P}from"./chunk.ELERUERU.js";import{b as x,c as se,d as le,j as de,k as pe}from"./chunk.3YZHZGTM.js";import{d as ie,e as oe}from"./chunk.EQTSV7BK.js";import{b as ae,f as re}from"./chunk.27CW6SCT.js";import{Fa as te,G as ve,Ga as ne,T as Z,ba as O,ca as ee,ea as U}from"./chunk.HT2BEOEV.js";import{a as Y}from"./chunk.SDO3U72B.js";import{da as E,ma as X}from"./chunk.7BBGRTXM.js";import{b as D}from"./chunk.AJZBJBMO.js";var p=D(ve(),1);var ke=ne(Y(()=>(__graviewPreload(import.meta.url,["./chunk.ACYDJQRC.js","./chunk.S5MGE2U5.js","./chunk.34TW32TB.js","./chunk.WVUJXDXZ.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.GZHZLJBF.js","./chunk.ELERUERU.js","./chunk.OJGHDWI6.js","./chunk.YHTE34RN.js","./chunk.3YZHZGTM.js","./chunk.EQTSV7BK.js","./chunk.27CW6SCT.js","./chunk.YD3TKV6P.js","./chunk.4KC35UNR.js","./chunk.HT2BEOEV.js","./chunk.SDO3U72B.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ILRCNTGT.js")))),fe=ke.part((i,n)=>i.drawAppLink(n),{quiet:!0});var e=D(Z(),1);function K({nodeId:i,field:n,value:l,stored:s=l,said:c}){let{fields:m,commit:o}=P(i),t=m.find(r=>r.field===n),{store:g,principal:I}=O(),u=g.graph.getNode(i)?.kind,f=g.schema.definitions.find(r=>r.kind===u),h=X(f,n),k=h.toLowerCase(),a=c??`${h.charAt(0).toUpperCase()}${h.slice(1)}: ${l}`,[w,L]=(0,p.useState)(!1),d=t?.shape.type==="number"?t.shape.amount:void 0,y=d&&s!==""&&Number.isFinite(Number(s))?se(Number(s),d):s,[v,z]=(0,p.useState)(y),W=(0,p.useRef)(null),j=(0,p.useRef)(null),M=(0,p.useRef)(!1),[q,J]=(0,p.useState)(void 0),S=r=>{M.current=r,L(!1)};(0,p.useEffect)(()=>z(y),[y,w]);let Q=t?.shape.type==="date";if((0,p.useEffect)(()=>{if(Q)return te(()=>void ge())},[Q]),(0,p.useEffect)(()=>{w?W.current?.focus():M.current&&(M.current=!1,j.current?.focus())},[w]),!t)return(0,e.jsx)("span",{"data-graview-field":n,"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${k}`,style:{color:"var(--graview-ink)",cursor:"default",overflowWrap:"anywhere"},children:l});if(!w){let r=(0,e.jsx)("button",{ref:j,type:"button","data-graview-field":n,"data-graview-editable":t.mutation,...a===l?{}:{"aria-label":a},title:`${t.title} \u2014 changes the ${k}, and can be undone`,onClick:()=>{J(void 0),L(!0)},style:{all:"unset",cursor:"text",display:"inline-flex",alignItems:"flex-end",minHeight:24,minWidth:24,maxWidth:"100%",overflowWrap:"anywhere",paddingBottom:1,borderBottom:"1px dashed var(--graview-edge-bright)",color:"var(--graview-ink)"},children:l});return q?(0,e.jsxs)(e.Fragment,{children:[r,(0,e.jsx)("span",{role:"status","data-graview-refused":n,style:{marginLeft:6,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:q})]}):r}let $=(r,{left:b=!1}={})=>{if(S(!b),r!==s){if(r===""||r===void 0||r===null){if(s==="")return;t.clearable?o(t,null):J(`${h.charAt(0).toUpperCase()}${h.slice(1)} can't be empty; it keeps ${l}.`);return}t.shape.type==="date"&&typeof r=="string"&&be(r)||o(t,r)}},be=r=>{if(t.shape.type!=="date")return!1;let b=m.filter(C=>C.shape.type==="date"&&C.takesValue),T=pe(b.map(C=>C.field),f?.fieldRoles??{}),A=T?.start===n?b.find(C=>C.field===T.end):void 0,F=g.graph.getNode(i)?.[T?.end??""];if(!A||typeof F!="string")return!1;let N=de(s===""?void 0:s,r,F,{time:t.shape.time===!0,instant:t.shape.instant===!0});if(N===void 0||N===F)return!1;let R=t.call(r),V=A.call(N);return g.applyAll(R.name===V.name?[{name:R.name,args:{...R.args,...V.args}}]:[R,V],{author:I}),!0};if(!t.takesValue){let r=[t,...t.alternatives];return(0,e.jsx)("span",{role:"group","aria-label":`Change ${E(n).toLowerCase()}`,"data-graview-field":n,style:{display:"inline-flex",gap:6,alignItems:"center",flexWrap:"wrap"},onKeyDown:b=>{b.key==="Escape"&&S(!0)},children:r.map((b,T)=>(0,e.jsx)("button",{type:"button",ref:T===0?W:void 0,"data-graview-act":b.mutation,onClick:()=>{S(!0),o(b,void 0)},onBlur:A=>{let H=A.relatedTarget;(!H||!A.currentTarget.parentElement?.contains(H))&&S(!1)},style:{padding:"2px 9px",fontSize:"0.8125rem",borderRadius:999},children:b.title},b.mutation))})}return(0,e.jsxs)("form",{style:{display:"inline-flex",flexWrap:"wrap",gap:4,maxWidth:"100%"},onSubmit:r=>{r.preventDefault(),$(he(t,v))},children:[t.shape.type==="choice"?(0,e.jsx)("select",{ref:W,"aria-label":E(n),"data-graview-field":n,value:v,onChange:r=>$(r.target.value),onBlur:()=>S(!1),style:{font:"inherit",fontSize:"inherit"},children:t.shape.options.map(r=>(0,e.jsx)("option",{value:r,children:ae(f,n,r)},r))}):t.shape.type==="date"?(0,e.jsx)(ye,{inputRef:W,label:E(n),value:v===""?void 0:v,time:t.shape.time===!0,instant:t.shape.instant===!0,partial:t.shape.partial===!0,onChange:r=>z(r??""),onLeave:r=>$(r,{left:!0}),onCancel:()=>S(!0),autoSelect:!0,boxStyle:{fontSize:"inherit",minHeight:24,padding:"0 3px"}}):(0,e.jsxs)(e.Fragment,{children:[d&&x(d).prefix?(0,e.jsx)("span",{"aria-hidden":"true",children:x(d).prefix}):null,(0,e.jsx)("input",{ref:W,"aria-label":d?`${E(n)}, ${x(d).hint}`:E(n),"data-graview-field":n,...d?{inputMode:"decimal",placeholder:x(d).placeholder,"data-graview-amount":d.format??"unit"}:{},type:d?"text":t.shape.type==="number"&&!t.shape.duration?"number":"text",...t.shape.type==="number"&&t.shape.duration?{placeholder:"1h 30m"}:{},...t.shape.type==="text"&&t.shape.holds==="phone"?{inputMode:"tel",autoComplete:"tel"}:{},...t.shape.type==="number"&&t.shape.min!==void 0&&!d?{min:t.shape.min}:{},...t.shape.type==="number"&&t.shape.max!==void 0&&!d?{max:t.shape.max}:{},...t.shape.type==="number"&&t.shape.step!==void 0&&!d?{step:t.shape.step}:{},value:v,onChange:r=>z(r.target.value),onBlur:()=>$(he(t,v),{left:!0}),onKeyDown:r=>{r.key==="Escape"&&S(!0)},style:{font:"inherit",fontSize:"inherit",width:`min(${Math.max(6,v.length+1)}ch, 100%)`,maxWidth:"100%",minWidth:0,boxSizing:"border-box",minHeight:24,display:"inline-flex",alignItems:"center",padding:"0 3px"}}),d&&x(d).suffix?(0,e.jsx)("span",{"aria-hidden":"true",children:x(d).suffix}):null]}),t.open.length>0?(0,e.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["also needs ",t.open.map(r=>r.name).join(", ")]}):null]})}function he(i,n){return n.trim()===""?"":i.shape.type==="number"&&i.shape.amount?le(n,i.shape.amount):i.shape.type==="number"?i.shape.duration?re(n)??n:Number(n):i.shape.type==="text"&&i.shape.holds?n.trim():n}function we({href:i,field:n,value:l,stored:s,nodeId:c}){let m=i.startsWith("tel:"),o=(t,g)=>(0,e.jsx)("a",{href:i,"data-graview-link":n,...g?{"aria-label":g}:{},...m?{}:{target:"_blank",rel:"noopener noreferrer"},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,maxWidth:"100%",overflowWrap:"anywhere",color:"var(--graview-accent)"},children:t});return c===void 0?o(l):(0,e.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"center",gap:"0 10px",maxWidth:"100%"},children:[(0,e.jsx)(K,{nodeId:c,field:n,value:l,...s===void 0?{}:{stored:s}}),o(m?"Call":"Map",m?`Call ${l}`:`Open ${l} in maps`)]})}function Ue({id:i,hide:n=[],limit:l=10,labels:s={},shown:c=[]}){let{store:m}=O(),o=U(i);if(!o)return null;let t=m.schema.tryDefinition(o.kind),g=ie(o,t,{limit:l,said:c}).filter(u=>!n.includes(u.key)),I=ue(t).length>0;return g.length===0&&!I?null:(0,e.jsxs)("div",{"data-graview-fields":o.id,style:{display:"grid",gap:14,alignContent:"start",minWidth:0,fontSize:"0.875rem"},children:[oe(t,g).map((u,f)=>{let h=(0,e.jsx)("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto 1fr",gap:"5px 16px",alignContent:"start",minWidth:0},children:u.fields.map(a=>a.files?(0,e.jsx)(_,{as:"field",nodeId:o.id,field:a.key,label:s[a.key]??a.label,files:a.files,labelStyle:B,style:{marginTop:6}},a.key):a.long?(0,e.jsx)(xe,{nodeId:o.id,field:a.key,label:s[a.key]??a.label,value:a.value,markdown:a.markdown,labelStyle:B,style:{gridColumn:"1 / -1",marginTop:6}},a.key):(0,e.jsxs)("div",{style:{display:"contents"},children:[(0,e.jsx)("dt",{style:{...B,whiteSpace:"nowrap"},children:s[a.key]??a.label}),(0,e.jsxs)("dd",{style:{margin:0,minWidth:0},children:[a.linked?(0,e.jsx)(me,{relation:a.linked.relation,refs:a.linked.refs,nodeId:o.id,field:a.key}):a.app?(0,e.jsx)(fe,{address:a.app,as:"record",nodeId:o.id,field:a.key}):a.href?(0,e.jsx)(we,{href:a.href,field:a.key,value:a.value,stored:a.stored,nodeId:o.id}):(0,e.jsx)(K,{nodeId:o.id,field:a.key,value:a.value,stored:a.stored}),a.repeats?(0,e.jsx)(ce,{nodeId:o.id,field:a.key,start:o[a.key],value:o[`${a.key}Repeat`],label:`${s[a.key]??a.label} repeats`}):null]})]},a.key))});if(!u.title)return(0,e.jsx)("div",{children:h},f);let k=`graview-field-group-${o.id}-${f}`;return(0,e.jsxs)("div",{role:"group","aria-labelledby":k,style:{display:"grid",gap:6,minWidth:0},children:[(0,e.jsx)("p",{id:k,"data-graview-field-group":u.title,style:Se,children:u.title}),h]},f)}),I?(0,e.jsx)(_,{as:"unfilled",nodeId:o.id,skip:n,labels:s,labelStyle:B}):null]})}var B={color:"var(--graview-ink-faint)",fontSize:"0.8125rem"},Se={margin:0,fontSize:"0.75rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)",fontWeight:560};function xe(i){return ee()?(0,e.jsx)(Le,{...i}):(0,e.jsx)(Ie,{...i})}function Ie({field:i,label:n,value:l,labelStyle:s,valueStyle:c,style:m,markdown:o}){return(0,e.jsxs)("div",{"data-graview-long":i,style:{display:"grid",gap:6,minWidth:0,...m},children:[(0,e.jsx)("dt",{style:s,children:n}),(0,e.jsx)("dd",{style:{margin:0,minWidth:0,...c},children:(0,e.jsx)("div",{"data-graview-field":i,children:(0,e.jsx)(G,{text:l,markdown:o})})})]})}function Le({nodeId:i,field:n,label:l,value:s,labelStyle:c,valueStyle:m,style:o,markdown:t}){let{fields:g,commit:I}=P(i),u=g.find(y=>y.field===n&&y.takesValue),[f,h]=(0,p.useState)(!1),k=(0,p.useRef)(null),a=(0,p.useRef)(!1);(0,p.useEffect)(()=>{!f&&a.current&&(a.current=!1,k.current?.focus())},[f]);let w=y=>{a.current=y,h(!1)},L=l.toLowerCase(),d=(0,e.jsx)(G,{text:s,markdown:t});return(0,e.jsxs)("div",{"data-graview-long":n,style:{display:"grid",gap:6,minWidth:0,...o},children:[(0,e.jsxs)("dt",{style:{display:"flex",alignItems:"baseline",gap:10,...c},children:[(0,e.jsx)("span",{children:l}),u&&!f?(0,e.jsx)("button",{ref:k,type:"button","data-graview-editable":u.mutation,"aria-label":`Edit the ${L}`,title:`${u.title} \u2014 changes the ${L}, and can be undone`,onClick:()=>h(!0),style:Ee,children:"Edit"}):null]}),(0,e.jsx)("dd",{style:{margin:0,minWidth:0,...m},children:f&&u?(0,e.jsx)(p.Suspense,{fallback:d,children:(0,e.jsx)(Ce,{nodeId:i,field:n,label:l,value:s,...t?{markdown:!0}:{},onCancel:()=>w(!0),onDone:y=>w(!y),onSave:(y,v)=>{w(!v),y!==s&&I(u,y)}})}):(0,e.jsx)("div",{"data-graview-field":n,...u?{}:{"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${L}`},...u?{onClick:()=>h(!0)}:{},style:{cursor:u?"text":"default",minWidth:0},children:d})})]})}var Ce=(0,p.lazy)(()=>(__graviewPreload(import.meta.url,["./chunk.34TW32TB.js","./chunk.YD3TKV6P.js","./chunk.4KC35UNR.js","./chunk.HT2BEOEV.js","./chunk.SDO3U72B.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.4AFFPYOK.js"))),Ee={all:"unset",cursor:"pointer",fontSize:"0.75rem",letterSpacing:"normal",textTransform:"none",color:"var(--graview-accent)",borderBottom:"1px dashed currentColor",minHeight:24,minWidth:24,display:"inline-flex",alignItems:"flex-end"};function _e({nodeId:i,children:n}){let{fields:l}=P(i),s=U(i);if(!s)return(0,e.jsx)(e.Fragment,{children:n});let c=l.find(m=>{let o=s[m.field];return typeof o=="string"&&o===n});return c?(0,e.jsx)(K,{nodeId:i,field:c.field,value:n,said:n}):(0,e.jsx)(e.Fragment,{children:n})}export{fe as a,K as b,we as c,Ue as d,xe as e,_e as f};
@@ -1,6 +0,0 @@
1
- import{a as z,b as Y,d as ee}from"./chunk.TBW7CU4G.js";import"./chunk.SPXRLO5K.js";import{ec as J,ga as Q,ja as U,oa as X,sa as _}from"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";function ce(t){let r=t?.indexOf(":")??-1;if(!(!t||r<=0||r===t.length-1))return{relation:t.slice(0,r),record:t.slice(r+1)}}function ne(t,r){if(t.length===0)return!0;let d=`${r.split("/")[0]}/*`;return t.some(a=>a==="*"||a==="*/*"||a===r||a===d)}function re(t,r){let d=r.startsWith("image/")?"image":r.startsWith("video/")?"video":"file";return t.find(a=>a.as===d)??t.find(a=>a.as==="file")}function fe(t,r){let d=new Set(t.map(k=>k.as==="image"?"image/":k.as==="video"?"video/":""));if(d.has("")||r.kinds.length===0)return r.kinds.join(",");let a=[];for(let k of d){let m=r.kinds.filter(l=>l.startsWith(k));a.push(...m.length>0?m:[`${k}*`])}return a.join(",")}var T=t=>t.input?.shape??{},ie=(t,r)=>T(t)[r]?.safeParse(void 0).success===!1;function ae(t,r){let d=new Set(z(t.input).map(a=>a.name));return Object.keys(T(t)).filter(a=>!r.has(a)&&!d.has(a)&&ie(t,a)&&T(t)[a].safeParse("a name").success&&!T(t)[a].safeParse(1).success)}var ue=t=>t.replace(/\.[a-z0-9]{1,5}$/i,"")||t,se=(t,r)=>{let d=Number.isFinite(Date.parse(r))?new Date(Date.parse(r)).toISOString():r;return[r,d,d.replace(/\.\d{3}Z$/,"Z"),r.slice(0,10)].find(a=>t.safeParse(a).success)},pe="2026-01-01T00:00:00.000Z";function te(t,r){let d=T(t),a=new Set(ae(t,r)),k=Object.keys(d).filter(l=>!r.has(l)&&!a.has(l)&&ie(t,l)),m=k.filter(l=>se(d[l],pe)!==void 0);return{timed:m,left:k.filter(l=>!m.includes(l))}}function oe(t,r,d,a,k){let m=e=>({ok:!1,says:e}),{kind:l}=a,R=(d.accepts??[]).filter(e=>e.kind===l&&(a.field===void 0||e.field===a.field));if(R.length===0)return m(a.field===void 0?`The view's accepts names no field of "${l}", so nothing dropped there can become one.`:`The view's accepts does not name ${l}'s "${a.field}".`);let A=k.files;if(!A||!(A.maxBytes>0))return m("This host takes no files.");let j=R.flatMap(e=>{let n=ee(t,e.kind,e.field);return n?[{field:e.field,...n}]:[]}),w=j.filter(e=>e.as==="file"||A.kinds.length===0||A.kinds.some(n=>n==="*"||n==="*/*"||n.startsWith(e.as==="image"?"image/":"video/")));if(w.length===0)return m(`This host takes none of what ${l}'s ${j.map(e=>`"${e.field}"`).join(" or ")} holds.`);let c=a.connect===void 0?void 0:ce(a.connect);if(a.connect!==void 0&&(!c||k.shown.has(a.connect)))return m(`data-drop-connect is "<relation>:<record id>", not "${a.connect}".`);if(c&&!k.shown.has(c.record))return m(`data-drop-connect names "${c.record}", which this view was not shown.`);let g=c?t.seenBy(r).graph.getNode(c.record):void 0;if(c&&!g)return m(`data-drop-connect names "${c.record}", which this seat does not see.`);let $=e=>Object.hasOwn(t.schema.tryDefinition(e)?.edges??{},c.relation),E=c?$(l):!1;if(c&&!E&&!$(g.kind))return m(`Neither a "${l}" nor a "${g.kind}" has the relation "${c.relation}".`);let H=t.allMutations(),F=e=>t.permits(e,r).ok,Z=e=>w.every(n=>Object.hasOwn(T(e),n.field)),V=H.filter(e=>(e.creates??[]).includes(l)&&Z(e)),x=X(t.schema.tryDefinition(l),l),O=U(t.schema,l).toLowerCase(),S=g?Q(t.schema.tryDefinition(g.kind),g):void 0,G=e=>`${e===1?`a ${x}`:`${e} ${O}`}${S?` to ${S}`:""}`,K=e=>`Add ${G(e)}`,L=e=>`Added ${G(e)}.`,B=`Drop to add ${O}${S?` to ${S}`:""}.`,N=(e,n,u,v)=>{let I=new Set(Object.keys(n)),D=_(u.at)??v??new Date().toISOString();for(let C of te(e,I).timed)n[C]=se(T(e)[C],D);for(let C of ae(e,I))n[C]=ue(u.name);return n},q=(e,...n)=>new Set([...w.map(u=>u.field),...n,...z(e.input).map(u=>u.name)]),P=(e,...n)=>te(e,q(e,...n)).left,i=(e,n)=>m(`"${e.title??e.name}" asks for ${n.map(u=>`"${u}"`).join(" and ")}, which no dropped file says, so nothing dropped here can become a ${x}.`),o=(e,n)=>e.list?[n]:n,f={ok:!0,kind:l,fields:w,accept:fe(w,A),...c?{connect:c}:{},intent:K,invite:B,added:L};if(!c){let e=V.find(n=>!n.subject&&F({name:n.name,args:{}}));return e?P(e).length>0?i(e,P(e)):{...f,calls:n=>[{name:e.name,args:N(e,{[n.field]:o(w.find(u=>u.field===n.field),n.value)},n.value,n.at)}]}:m(`This seat may not make a "${l}" here.`)}let s=V.find(e=>e.subject&&(e.subject.kinds==="*"||e.subject.kinds.includes(g.kind))&&(e.connects??[]).includes(c.relation)&&F({name:e.name,args:{[e.subject.arg]:c.record}}));if(s){let e=s.subject.arg;return P(s,e).length>0?i(s,P(s,e)):{...f,calls:n=>[{name:s.name,args:N(s,{[e]:c.record,[n.field]:o(w.find(u=>u.field===n.field),n.value)},n.value,n.at)}]}}let p=V.find(e=>!e.subject&&F({name:e.name,args:{}}));if(!p)return m(`This seat may not make a "${l}" here.`);if(P(p).length>0)return i(p,P(p));let y=E?l:g.kind,W=E?g.kind:l,M=H.find(e=>{if(!(e.connects??[]).includes(c.relation)||!e.subject)return!1;let n=e.subject.kinds;if(n!=="*"&&!n.includes(y))return!1;let u=z(e.input).find(v=>v.name!==e.subject.arg&&(v.kinds.includes("*")||v.kinds.includes(W)));return u?F({name:e.name,args:E?{[u.name]:c.record}:{[e.subject.arg]:c.record}}):!1});if(!M)return m(`This seat may not link a "${l}" to ${c.record} by "${c.relation}".`);let h=M.subject.arg,b=z(M.input).find(e=>e.name!==h&&(e.kinds.includes("*")||e.kinds.includes(W))).name;return{...f,calls:(e,n)=>[{name:p.name,args:N(p,{[e.field]:o(w.find(u=>u.field===e.field),e.value)},e.value,e.at)},{name:M.name,args:E?{[h]:J(n*2),[b]:c.record}:{[h]:c.record,[b]:J(n*2)}}]}}var de=t=>t.type.startsWith("image/"),me=t=>t.type.startsWith("video/"),ge=`
2
- [data-graview-drop-over] { outline: 2px dashed var(--graview-accent, Highlight) !important; outline-offset: 2px !important; background-color: color-mix(in srgb, var(--graview-accent, Highlight) 10%, transparent) !important; }
3
- [data-graview-drop-status], [data-graview-drop-refused] { margin: 4px 0 0; font: 0.8125rem/1.4 var(--graview-font-body, system-ui, sans-serif); color: var(--graview-ink-muted, GrayText); }
4
- [data-graview-drop-refused] { color: var(--graview-warn, var(--graview-ink, CanvasText)); }
5
- [data-graview-drop-status]:empty, [data-graview-drop-refused]:empty { display: none; }
6
- `,ye="a, button, input, select, textarea, label, summary, [data-act], [data-lightbox], [data-record], [tabindex]";function le(t){return t<1e3?`${t} bytes`:t<1e6?`${Math.round(t/1e3)} KB`:`${(t/1e6).toFixed(t<1e7?1:0)} MB`}var he={mov:"video/quicktime",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",heic:"image/heic",heif:"image/heif",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png"},ve=t=>t.type||he[/\.([a-z0-9]{2,4})$/i.exec(t.name)?.[1]?.toLowerCase()??""]||"application/octet-stream";function we(t){let r=[...new Set(t.fields.map(d=>d.as==="image"?"a picture":d.as==="video"?"a video":"a file"))];return r.length<=1?r[0]??"a file":`${r.slice(0,-1).join(", ")} or ${r[r.length-1]}`}var ke=(t,r)=>`${t.invite.replace(/\.$/,"")}${r?", or tap to choose them":""}.`;function xe(t,r){let{shadow:d}=r,a=d.ownerDocument,k=r.coarse??(()=>typeof t.matchMedia=="function"&&t.matchMedia("(pointer: coarse)").matches),m=new WeakMap,l=new WeakSet,R=new Set,A=new Set,j=a.createElement("style");j.setAttribute("data-graview-drop-style",""),j.textContent=ge;let w=a.createElement("p");w.setAttribute("data-graview-drop-status",""),w.setAttribute("role","status"),w.setAttribute("aria-live","polite");let c=a.createElement("div");c.setAttribute("data-graview-drop-refused",""),c.setAttribute("role","alert");let g=a.createElement("input");g.type="file",g.multiple=!0,g.hidden=!0,g.tabIndex=-1,g.setAttribute("data-graview-drop-picker",""),g.setAttribute("aria-hidden","true"),d.append(j,w,c,g);let $=i=>{w.textContent!==i&&(w.textContent=i)},E=i=>{c.replaceChildren(...i.map(o=>{let f=a.createElement("p");return f.style.margin="0",f.textContent=o,f}))},H=()=>[...d.querySelectorAll("[data-drop]")],F=i=>{let o=i,f=o&&typeof o.closest=="function"?o.closest("[data-graview-drop]"):null;return f&&d.contains(f)?f:void 0},Z=()=>{let i=r.shown(),o=r.files(),f;for(let s of H()){let p=s.getAttribute("data-drop")??"",y=oe(r.store,r.principal,r.manifest,{kind:p,...s.hasAttribute("data-drop-field")?{field:s.getAttribute("data-drop-field")}:{},...s.hasAttribute("data-drop-connect")?{connect:s.getAttribute("data-drop-connect")}:{}},{shown:i,files:o});if(y.ok){f??=y,m.set(s,y),s.setAttribute("data-graview-drop",""),(!s.hasAttribute("aria-description")||l.has(s))&&(s.setAttribute("aria-description",ke(y,k())),l.add(s));continue}m.delete(s),s.removeAttribute("data-graview-drop"),s.removeAttribute("data-graview-drop-over"),l.has(s)&&(s.removeAttribute("aria-description"),l.delete(s)),!/^This seat may not|^This host takes no/.test(y.says)&&!R.has(y.says)&&(R.add(y.says),r.onProblem?.(`A drop target the view drew (data-drop="${p}") is not offered: ${y.says}`))}f&&(g.accept=f.accept)},V=i=>{let o=i.dataTransfer?.types;return o!==void 0&&Array.from(o).includes("Files")},x,O=i=>{x!==i&&(x?.removeAttribute("data-graview-drop-over"),x=i,i?(i.setAttribute("data-graview-drop-over",""),$(m.get(i)?.invite??"")):A.size===0&&$(""))},S=i=>{let o=F(i.composedPath()[0]);if(!o||!V(i))return;i.preventDefault();let f=i.dataTransfer;f&&(f.dropEffect="copy"),O(o)},G=i=>{if(!x)return;let o=i.relatedTarget;o&&x.contains(o)||O(void 0)},K=i=>{let o=F(i.composedPath()[0]);if(O(void 0),!o)return;i.preventDefault(),i.stopPropagation();let f=Array.from(i.dataTransfer?.files??[]);f.length>0&&q(o,f)},L=()=>O(void 0);d.addEventListener("dragenter",S),d.addEventListener("dragover",S),d.addEventListener("dragleave",G),d.addEventListener("drop",K),a.addEventListener("dragend",L),a.addEventListener("drop",L);let B,N=i=>{let o=m.get(i);o&&(B=i,g.accept=o.accept,g.click())};g.addEventListener("change",()=>{let i=Array.from(g.files??[]);try{g.value=""}catch{}B&&i.length>0&&q(B,i)});let q=(i,o)=>{let f=m.get(i),s=r.files();if(!f||!s)return;let p=P(i,f,s,o).finally(()=>{A.delete(p),r.onBusy?.()});A.add(p),r.onBusy?.()};async function P(i,o,f,s){E([]),$(`Adding ${s.length===1?`\u201C${s[0].name}\u201D`:`${s.length} files`}\u2026`);let p=[],y=[];for(let h of s){let b=h.name||"file",e=ve(h),n=re(o.fields,e);if(!n){p.push(`\u201C${b}\u201D isn\u2019t ${we(o)}.`);continue}if(!ne(f.kinds,e)){p.push(`\u201C${b}\u201D is ${e}; this host doesn\u2019t take it.`);continue}if(h.size>f.maxBytes){p.push(`\u201C${b}\u201D is ${le(h.size)}; this host takes files up to ${le(f.maxBytes)}.`);continue}let u;try{u=await f.upload(h,b)}catch(D){p.push(`\u201C${b}\u201D wasn\u2019t kept: ${D instanceof Error&&D.message.trim()?D.message.trim():"the host refused it"}`);continue}if(!Y(u)){p.push(`The host\u2019s answer for \u201C${b}\u201D isn\u2019t a file a record can keep.`);continue}if(n.as==="image"&&!de(u)||n.as==="video"&&!me(u)){p.push(`The host kept \u201C${b}\u201D as ${u.type}, not as ${n.as==="image"?"a picture":"a video"}.`);continue}let v=u;if(v.at!==void 0&&_(v.at)===void 0){let{at:D,...C}=v;v=C}if(de(v)&&(v.width===void 0||v.height===void 0)&&typeof t.createImageBitmap=="function")try{let D=await t.createImageBitmap(h);v={...v,width:D.width,height:D.height},D.close()}catch{}let I=_(v.at)??(Number.isFinite(h.lastModified)&&h.lastModified>0?new Date(h.lastModified).toISOString():void 0);y.push({field:n.field,value:v,...I?{at:I}:{}})}for(let h of y)r.handed(h.value);if(E(p),r.hears()){let h=r.idOf(i);if($(""),h===void 0)return;let b=y.map(({field:e,value:n,at:u})=>({href:n.href,name:n.name,type:n.type,bytes:n.bytes,...n.width!==void 0?{width:n.width}:{},...n.height!==void 0?{height:n.height}:{},...n.poster!==void 0?{poster:n.poster}:{},...n.duration!==void 0?{duration:n.duration}:{},...u?{at:u}:{},field:e}));r.send({type:"dom-event",target:h,event:"drop",files:b,...p.length>0?{refused:p}:{}});return}if(y.length===0)return $("");let W=y.flatMap((h,b)=>o.calls(h,b)),M=r.change(W,o.intent(y.length));M.ok?$(o.added(y.length)):($(""),E([...p,`Nothing was added: ${M.message}`]))}return{refresh:Z,before(i,o,f){let s=F(o);if(!s||!f.contains(s)||!m.has(s))return!1;let p=i.type==="keydown"?i.key:void 0,y=i.composedPath()[0]?.closest?.(ye),W=y!=null&&y!==s&&s.contains(y);return!(i.type==="click"&&k()&&!W)&&!((p==="Enter"||p===" ")&&o===s)?!1:(i.preventDefault(),i.stopPropagation(),N(s),!0)},idle:async()=>{for(;A.size>0;)await Promise.all([...A])},get waiting(){return A.size},dispose(){d.removeEventListener("dragenter",S),d.removeEventListener("dragover",S),d.removeEventListener("dragleave",G),d.removeEventListener("drop",K),a.removeEventListener("dragend",L),a.removeEventListener("drop",L),j.remove(),w.remove(),c.remove(),g.remove()}}}export{xe as createGuestDrops};
@@ -1 +0,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{r as Ie}from"./chunk.HEWVPXRE.js";import{d as Je,e as Ee,f as je,g as ze}from"./chunk.ZOHMWSHD.js";import{a as He}from"./chunk.VG7OWV2H.js";import{e as X}from"./chunk.BB33TI4S.js";import{a as z}from"./chunk.2EDC63RI.js";import{f as Pe,g as Y,i as De}from"./chunk.EQTSV7BK.js";import{a as Se}from"./chunk.27CW6SCT.js";import{Aa as me,Da as K,Eb as ve,Fa as he,Ha as ye,Hb as Ae,Ia as Z,Ib as Oe,Lb as Re,M as pe,Ob as _e,Pa as ge,Qa as be,Rb as C,Ta as we,Zb as Te,_a as W,a as fe,cb as ke,ha as G,md as $e,nc as xe,oc as Me,pc as Ne}from"./chunk.7BBGRTXM.js";var E=(n,e,t)=>{(n[e]===void 0||t>n[e])&&(n[e]=t)},j=(n,e,t)=>{(n[e]===void 0||t<n[e])&&(n[e]=t)},Q=(n,e)=>{n.format=e,e.includes("int")&&(n.isInt=!0)},Le=(n,e)=>{n.mime=n.mime?n.mime.filter(t=>e.includes(t)):[...e]},qe=(n,e)=>{n.multipleOf??=[],n.multipleOf.includes(e)||n.multipleOf.push(e)},Fe=(n,e)=>(n.patterns??=new Set).add(e),st={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function H(n){let e={},{def:t,bag:r}=n._zod,i=n._zod.traits.has("$ZodCheck")?[n,...t.checks??[]]:t.checks??[];for(let o of i){let a=o._zod.def;switch(a.check){case"greater_than":E(e,a.inclusive?"minimum":"exclusiveMinimum",a.value);break;case"less_than":j(e,a.inclusive?"maximum":"exclusiveMaximum",a.value);break;case"multiple_of":qe(e,a.value);break;case"number_format":{Q(e,a.format);let d=st[a.format];d&&(E(e,"minimum",d[0]),j(e,"maximum",d[1]));break}case"bigint_format":Q(e,a.format);break;case"min_length":case"min_size":E(e,"minimum",a.minimum);break;case"max_length":case"max_size":j(e,"maximum",a.maximum);break;case"length_equals":E(e,"minimum",a.length),j(e,"maximum",a.length);break;case"size_equals":E(e,"minimum",a.size),j(e,"maximum",a.size);break;case"string_format":Q(e,a.format),a.pattern&&Fe(e,a.pattern),(a.format==="base64"||a.format==="base64url")&&(e.contentEncoding=a.format),(a.local||a.precision===-1)&&(e.laxFormat=!0);break;case"mime_type":Le(e,a.mime);break}}r.minimum!==void 0&&E(e,"minimum",r.minimum),r.exclusiveMinimum!==void 0&&E(e,"exclusiveMinimum",r.exclusiveMinimum),r.maximum!==void 0&&j(e,"maximum",r.maximum),r.exclusiveMaximum!==void 0&&j(e,"exclusiveMaximum",r.exclusiveMaximum),r.multipleOf!==void 0&&qe(e,r.multipleOf),r.format!==void 0&&(e.format??=r.format,r.format.includes("int")&&(e.isInt=!0)),r.mime&&Le(e,r.mime);for(let o of r.patterns??[])Fe(e,o);return e}var dt={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""};function L(n){let e=n._zod.def;return e.type==="pipe"&&e.in._zod.traits.has("$ZodTransform")?L(e.out):e.type==="catch"?L(e.innerType):n._zod.optin}var ct=new Set(["promise","optional","nonoptional","nullable","readonly","default","prefault","catch"]);function T(n,e=new Set){if(e.has(n))return!1;e.add(n);let t=n._zod.def,r=t.type;return r==="transform"?!0:r==="array"?T(t.element,e):r==="set"?T(t.valueType,e):r==="lazy"?T(t.getter(),e):ct.has(r)?T(t.innerType,e):r==="intersection"?T(t.left,e)||T(t.right,e):r==="record"||r==="map"?T(t.keyType,e)||T(t.valueType,e):r==="pipe"?n._zod.traits.has("$ZodCodec")||T(t.in,e)||T(t.out,e):r==="object"?Object.values(t.shape).some(i=>T(i,e)):r==="union"?t.options.some(i=>T(i,e)):r==="tuple"?t.items.some(i=>T(i,e))||(t.rest?T(t.rest,e):!1):!1}function lt(n){let e=Object.values(n).filter(t=>typeof t=="number");return Object.entries(n).filter(([t])=>e.indexOf(+t)===-1).map(([,t])=>t)}function Be(n){let e=n.anyOf;if(!Array.isArray(e)||e.length===0||n.type!==void 0)return;let t=[];for(let r of e){if(!r||typeof r!="object")return;Be(r);let i=Object.keys(r);if(i.length!==1||i[0]!=="type")return;for(let o of[r.type].flat()){if(typeof o!="string")return;t.includes(o)||t.push(o)}}delete n.anyOf,n.type=t.length===1?t[0]:t}var Ue=new Set(["type","properties","required","additionalProperties"]),We=n=>{let e=n.additionalProperties;return e&&typeof e=="object"&&Object.keys(e).length?e:null},Ce=(n,e)=>JSON.stringify(n)===JSON.stringify(e);function ee(n){for(let i of n){if(typeof i!="object"||i.type!=="object")return null;for(let o in i)if(!Ue.has(o))return null}let e={},t=new Set;for(let i of n){for(let o in i.properties){if(Object.prototype.hasOwnProperty.call(e,o))continue;let a=[];for(let d of n){let s=d.properties?.[o]??We(d);s&&!a.some(b=>Ce(b,s))&&a.push(s)}e[o]=a.length===1?a[0]:ee(a)??{allOf:a}}for(let o of i.required??[])t.add(o)}let r={type:"object",properties:e};if(t.size&&(r.required=[...t]),n.every(i=>i.additionalProperties===!1))r.additionalProperties=!1;else{let i=[];for(let o of n){let a=We(o);a&&!i.some(d=>Ce(d,a))&&i.push(a)}i.length===1?r.additionalProperties=i[0]:i.length>1&&(r.additionalProperties={allOf:i})}return r}function ut(n){let e=n.allOf;if(!Array.isArray(e)||e.length<2)return;for(let i of Ue)if(i in n)return;let t=e.filter(i=>Array.isArray(i.oneOf)||Array.isArray(i.anyOf)),r;if(!t.length)r=ee(e);else{let i=t[0],o=Array.isArray(i.oneOf)?"oneOf":"anyOf";if(Object.keys(i).length!==1)return;let a=e.filter(s=>s!==i),d=i[o].map(s=>ee([...a,s]));if(d.some(s=>!s))return;r={[o]:d}}r&&(delete n.allOf,Object.assign(n,r))}function Ve(n){let e=n;for(let y of["anyOf","oneOf"]){let _=e[y];if(!Array.isArray(_))continue;let O=_.map(Ve);O.some((v,m)=>v!==_[m])&&(e={...e,[y]:O})}let t=[e.type].flat(),r=!t.includes("string")&&t.some(y=>y==="number"||y==="integer"),i=e.enum??(e.const!==void 0?[e.const]:void 0);if(!r&&!i?.some(y=>typeof y=="number"))return e;let{minimum:o,maximum:a,exclusiveMinimum:d,exclusiveMaximum:s,multipleOf:b,format:f,id:w,...h}=e;return h.enum?h.enum=h.enum.map(y=>typeof y=="number"?String(y):y):typeof h.const=="number"&&(h.const=String(h.const)),r&&(h.type="string",i||(h.pattern=t.includes("number")?"^-?\\d+(?:\\.\\d+)?$":"^-?\\d+$")),h}var B=class{constructor(e,t){this.override=e;this.refs=t}done=new Map;path=[];cyclic=new Map;write(e,t=!1){let r=this.refs.get(e);if(r!==void 0&&!t)return{$ref:r};if(this.path.includes(e))return this.cyclic.has(e)||this.cyclic.set(e,""),{};let i=this.done.get(e);if(i)return i;this.path.push(e);try{let o=this.written(e);return this.done.set(e,o),o}finally{this.path.pop()}}written(e){let t={},r,i=e._zod.toJSONSchema?.();i?Object.assign(t,i):r=this.process(e,t);let o=fe.get(e);if(o)for(let d of Object.keys(o))t[d]=o[d];T(e)&&(delete t.examples,delete t.default),"_prefault"in t&&(t.default??=t._prefault,delete t._prefault);let a=t;if(r){let d=this.write(r);a={...t};for(let s of Object.keys(d))s in t||(a[s]=d[s])}return this.override({zodSchema:e,jsonSchema:a}),Be(a),e._zod.def.type==="intersection"&&ut(a),a}process(e,t){let r=e._zod.def;switch(r.type){case"string":{t.type="string";let{minimum:i,maximum:o,format:a,patterns:d,contentEncoding:s,laxFormat:b}=H(e);if(typeof i=="number"&&(t.minLength=i),typeof o=="number"&&(t.maxLength=o),a&&(t.format=dt[a]??a,(t.format===""||a==="time"||b)&&delete t.format),s&&(t.contentEncoding=s),d&&d.size>0){let f=[...d];f.length===1?t.pattern=f[0].source:t.allOf=f.map(w=>({pattern:w.source}))}return}case"number":{let{minimum:i,maximum:o,multipleOf:a,exclusiveMinimum:d,exclusiveMaximum:s,isInt:b}=H(e);if(t.type=b?"integer":"number",typeof d=="number"&&d>=(i??Number.NEGATIVE_INFINITY)?t.exclusiveMinimum=d:typeof i=="number"&&(t.minimum=i),typeof s=="number"&&s<=(o??Number.POSITIVE_INFINITY)?t.exclusiveMaximum=s:typeof o=="number"&&(t.maximum=o),a){let[f,...w]=new Set(a.filter(h=>Number.isFinite(h)&&h!==0).map(Math.abs));f!==void 0&&(t.multipleOf=f),w.length&&(t.allOf=[...t.allOf??[],...w.map(h=>({multipleOf:h}))])}return}case"boolean":case"success":t.type="boolean";return;case"null":t.type="null";return;case"never":t.not={};return;case"enum":{let i=lt(r.entries);i.length===0?t.not={}:(i.every(o=>typeof o=="number")&&(t.type="number"),i.every(o=>typeof o=="string")&&(t.type="string"),t.enum=i);return}case"literal":{let i=r.values.filter(o=>o!==void 0).map(o=>typeof o=="bigint"?Number(o):o);if(r.values.length===0)t.not={};else if(i.length===1)t.type=i[0]===null?"null":typeof i[0],t.const=i[0];else if(i.length>1){for(let o of["number","string","boolean"])i.every(a=>typeof a===o)&&(t.type=o);i.every(o=>o===null)&&(t.type="null"),t.enum=i}return}case"template_literal":t.type="string",t.pattern=e._zod.pattern.source;return;case"file":{t.type="string",t.format="binary",t.contentEncoding="binary";let{minimum:i,maximum:o,mime:a}=H(e);i!==void 0&&(t.minLength=i),o!==void 0&&(t.maxLength=o),a&&(a.length===0?t.not={}:a.length===1?t.contentMediaType=a[0]:t.anyOf=a.map(d=>({contentMediaType:d})));return}case"array":{let{minimum:i,maximum:o}=H(e);typeof i=="number"&&(t.minItems=i),typeof o=="number"&&(t.maxItems=o),t.type="array",t.items=this.write(r.element);return}case"object":{let i=r.shape;t.type="object";let o={};t.properties=o;for(let d in i)Object.defineProperty(o,d,{value:this.write(i[d]),writable:!0,enumerable:!0,configurable:!0});let a=Object.keys(i).filter(d=>L(i[d])===void 0);a.length>0&&(t.required=a),r.catchall?._zod.def.type==="never"?t.additionalProperties=!1:r.catchall&&(t.additionalProperties=this.write(r.catchall));return}case"union":t[r.inclusive===!1?"oneOf":"anyOf"]=r.options.map(i=>this.write(i));return;case"intersection":{let i=d=>"allOf"in d&&Object.keys(d).length===1,o=this.write(r.left),a=this.write(r.right);t.allOf=[...i(o)?o.allOf:[o],...i(a)?a.allOf:[a]];return}case"tuple":{let i=r.items;t.type="array",t.prefixItems=i.map(s=>this.write(s)),r.rest?t.items=this.write(r.rest):t.items=!1;let o=i.length;for(;o>0&&L(i[o-1])!==void 0;)o-=1;o>0&&(t.minItems=o),r.rest||(t.maxItems=i.length);let{minimum:a,maximum:d}=H(e);typeof a=="number"&&(t.minItems=a),typeof d=="number"&&(t.maxItems=d);return}case"record":{let i=r.keyType;t.type="object";let o=H(i).patterns;if(r.mode==="loose"&&o&&o.size>0){let d=this.write(r.valueType),s={};for(let b of o)s[b.source]=d;t.patternProperties=s}else t.propertyNames=Ve(this.write(i)),t.additionalProperties=this.write(r.valueType);let a=i._zod.values;if(a&&!r.partial&&L(r.valueType)===void 0){let d=[...a].filter(s=>typeof s=="string"||typeof s=="number");d.length>0&&(t.required=d.map(String))}return}case"nullable":t.anyOf=[this.write(r.innerType),{type:"null"}];return;case"default":case"prefault":{let i=r.defaultValue,o,a=!1,d=JSON.stringify(i,(s,b)=>typeof b=="bigint"?(a=!0,null):b);return!a&&d!==void 0&&(o=JSON.parse(d)),a||(t[r.type==="default"?"default":"_prefault"]=o),r.innerType}case"catch":{try{t.default=r.catchValue(void 0)}catch{}return r.innerType}case"readonly":return t.readOnly=!0,r.innerType;case"pipe":return r.in._zod.traits.has("$ZodTransform")?r.out:r.in;case"lazy":return e._zod.innerType;case"optional":case"nonoptional":case"promise":return r.innerType;default:return}}};function Ge(n,e=()=>{}){let t=n,r=new B(e,new Map),i=r.write(t,!0);if(r.cyclic.size>0){let o=new Map,a=0,d=[];for(let b of r.cyclic.keys())if(b===t)o.set(b,"#");else{let f=`__schema${a++}`;o.set(b,`#/$defs/${f}`),d.push([b,f])}r=new B(e,o),i=r.write(t,!0);let s={};for(let[b,f]of d)s[f]=r.write(b,!0);d.length>0&&(i={...i,$defs:s})}return JSON.parse(JSON.stringify({$schema:"https://json-schema.org/draft/2020-12/schema",...i}))}function Ke(n){return Ge(n,mt)}var ft={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string"},pt={phone:"A phone number as it is written, like +1 555 123 4567 or 020 7946 0958 ext. 12.",place:"An address or a place's name, as a person would search a map for it.",duration:"A length of time in whole minutes: 90 is 1 h 30 min."};function mt(n){me(n.zodSchema)&&(n.jsonSchema["x-graview-app-link"]=!0);let e=ye(n.zodSchema);if(e&&(n.jsonSchema.type==="string"||n.jsonSchema.type==="array")){n.jsonSchema["x-graview-linked"]={address:e.address,kinds:[...e.kinds],cardinality:e.cardinality};let s=e.kinds.join(" or "),b=`${e.cardinality==="many"?"Records":"A record"}: a ${s} in the app ${e.address}, as "${e.kinds[0]}:<id>" \u2014 an id found there with find_linked. Linking never changes that app.`,f=n.jsonSchema.description;typeof f=="string"&&f.includes(b)||(n.jsonSchema.description=`${typeof f=="string"&&f?`${f.replace(/\.?$/,".")} `:""}${b}`)}if(we(n.zodSchema)&&(n.jsonSchema["x-graview-repeat"]=!0,!n.jsonSchema.type&&!n.jsonSchema.anyOf&&!n.jsonSchema.oneOf&&Object.assign(n.jsonSchema,ht())),Se(n.zodSchema)){n.jsonSchema.contentMediaType="text/markdown";let s=n.jsonSchema.description;typeof s=="string"&&s.endsWith("Written in Markdown.")||(n.jsonSchema.description=`${typeof s=="string"&&s?`${s.replace(/\.?$/,".")} `:""}Written in Markdown.`)}let t=_e(n.zodSchema);if(t){let s=n.jsonSchema;s["x-graview-type"]=t,t==="duration"&&(s["x-graview-unit"]="minutes"),s.description??=pt[t]}let r=Re(n.zodSchema,!1);if(r){let s=Pe(r);n.jsonSchema["x-graview-format"]=s.format??"unit",s.currency&&(n.jsonSchema["x-graview-currency"]=s.currency),s.unit&&s.format!=="money"&&(n.jsonSchema["x-graview-unit"]=s.unit);let b=n.jsonSchema.description;n.jsonSchema.description=typeof b=="string"&&b.length>0?`${b} ${Y(s)}`:Y(s)}let i=n.zodSchema._zod?.def;if(!i||i.type!=="string"||typeof i.format!="string"||i.format==="regex")return;let o=n.jsonSchema,a=(i.checks??[]).map(s=>s._zod?.def).filter(s=>s?.format==="regex"&&s.pattern instanceof RegExp).map(s=>s.pattern.source);delete o.pattern;let d=o.allOf;Array.isArray(d)&&d.every(s=>typeof s=="object"&&s!==null&&Object.keys(s).length===1&&"pattern"in s)&&delete o.allOf,o.format=ft[i.format]??i.format,a.length===1?o.pattern=a[0]:a.length>1&&(o.allOf=a.map(s=>({pattern:s})))}function te(n,e){let t=C(n.input),r=Ke(n.input);if(e&&r.properties){let o=a=>e.includes(a)?e.indexOf(a):e.length;r.properties=Object.fromEntries(Object.entries(r.properties).sort(([a],[d])=>o(a)-o(d)))}let i=r.properties??{};if(Ae(n)){let o=n.creates.join(" | ");i.id={type:"string",minLength:1,description:`Optional: the id for the ${o} this makes, beginning with its kind (${n.creates.map(a=>`"${a}:"`).join(" or ")}). Refused if the graph already has it; left out, one is minted from the label.`},r.properties=i}Oe(n)&&(r.additionalProperties=!1);for(let o of t){let a=i[o.name];if(!a)continue;let d=o.kinds.includes("*")?"any node kind":o.kinds.join(" | ");a.description=[a.description,`Id of a node (${d}).`].filter(Boolean).join(" ")}return{name:n.name,...n.title===void 0?{}:{title:n.title},description:n.description??n.title??n.name,inputSchema:r,nodeRefs:t}}function ht(){let n={type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$"},e=(t,r)=>({type:"integer",minimum:t,maximum:r});return{type:"object",description:'How the date beside it repeats; the date is the first occurrence. "on" is weekdays for "week", days of the month (-1 the last) for "month".',properties:{every:{type:"string",enum:[...be]},interval:e(1,99),on:{type:"array",minItems:1,maxItems:31,items:{anyOf:[{type:"string",enum:[...ge]},e(-1,31)]}},until:n,count:e(1,1e3),except:{type:"array",maxItems:500,items:n},continues:{type:"string",maxLength:200}},required:["every"],additionalProperties:!1}}function Ze(n){let e=new Set;for(let t=n;t;t=t.onBehalfOf)t.id!==void 0&&e.add(`${t.kind}:${t.id}`);return e}function U(n,e){let t=Ze(e),r=f=>{if(f.kind==="rule")return!1;let w=Ze(f);if(w.size===0)return!1;for(let h of w)if(t.has(h))return!1;return!0},i,o=()=>{if(i)return i;i=new Map;for(let f of n.log.live()){if(f.undoes!==void 0)continue;let w=r(f.author)?f.author:void 0;for(let h of f.primitives){h.op==="remove-node"&&i.delete(h.node.id);let y=h.op==="add-node"?h.node.id:h.op==="patch-node"||h.op==="splice-text"?h.id:void 0;if(y===void 0)continue;let _=h.op==="add-node"?Object.keys(h.node):h.op==="splice-text"?[h.field]:Object.keys(h.after),O=i.get(y);(h.op==="add-node"||!O)&&i.set(y,O=new Map);for(let v of _)v==="id"||v==="kind"||(w?O.set(v,w):O.delete(v))}}return i},a=n.schema,d=new Map,s=(f,w)=>{let h=`${f}\0${w}`,y=d.get(h);if(y===void 0){let _=a.tryDefinition(f)?.fields?.shape;y=_!==void 0&&w in _&&De(_[w]).type==="text",d.set(h,y)}return y},b=f=>n.graph.getNode(f)?.kind;return{prose:s,say:f=>W(f,{graph:n.graph,schema:a}),fieldBy(f,w){let h=b(f);if(!(h===void 0||!s(h,w)))return o().get(f)?.get(w)},recordBy(f){let w=b(f),h=o().get(f);if(w===void 0||!h)return;let y;for(let[_,O]of h)s(w,_)&&(y=O);return y}}}var ne=(n,e,t)=>({untrusted:!0,authoredBy:t.say(e),text:n}),yt="the host's ranker";function Ye(n,e){return{...n,hits:n.hits.map(t=>{if(t.about!=="node")return t;t.why.by==="meaning"&&t.why.matched!==void 0&&(t={...t,why:{...t.why,matched:{untrusted:!0,authoredBy:yt,text:t.why.matched}}});let r=e.recordBy(t.id);if(!r)return t;let i=e.prose(t.kind,t.why.field)?e.fieldBy(t.id,t.why.field):r;return{...t,label:ne(t.label,r,e),...t.apart!==void 0?{apart:ne(t.apart,r,e)}:{},why:i?{...t.why,fragment:ne(t.why.fragment,i,e)}:t.why}})}}var ie=(n,e,t)=>({title:n,readOnlyHint:e,destructiveHint:!1,idempotentHint:t,openWorldHint:!1}),gt={name:"subscribe",title:"Notify me when something happens",description:`Subscribe the person you act for to be told when something happens in this app \u2014 their host delivers it (an email, a push). on is one of: "act" (an act runs; give act, its declared name, and/or record), "created" (a record of kind is added), "changed" (a record of kind, or the one record, changes), "reaches" (a record of kind, or the one record, comes to satisfy condition, an expression in the app's rule language such as done == true or amount > 100). They are told only of changes someone else made, unless alsoMine is true, and only of records they may see. Returns the subscription and its sentence. Changes nothing in the app.`,inputSchema:{type:"object",properties:{on:{type:"string",enum:["act","created","changed","reaches"],description:"What to be told of."},act:{type:"string",description:"An act's declared name, for on: act."},kind:{type:"string",description:"A kind, for created, changed and reaches."},record:{type:"string",description:"One record, by id or name: for act, changed and reaches."},condition:{type:"string",description:"For reaches: what the record should come to satisfy, in the rule language (done == true)."},alsoMine:{type:"boolean",description:"Also when the person themselves made the change; false when unsaid."}},required:["on"],additionalProperties:!1},mutating:!1,annotations:ie("Notify me when something happens",!1,!1)},bt={name:"unsubscribe",title:"Stop notifying me",description:"Take away one of the person's subscriptions, by the id list_subscriptions or subscribe answered. Changes nothing in the app.",inputSchema:{type:"object",properties:{id:{type:"string",description:"The subscription's id."}},required:["id"],additionalProperties:!1},mutating:!1,annotations:ie("Stop notifying me",!1,!0)},wt={name:"list_subscriptions",title:"What I am notified of",description:`List what the person you act for is told of in this app: each subscription's id and its sentence ("When someone else adds a task").`,inputSchema:{type:"object",properties:{},additionalProperties:!1},mutating:!1,annotations:ie("What I am notified of",!0,!0)},re=[gt,bt,wt];var F=n=>{let e;return()=>e??=n().catch(t=>{throw e=void 0,t})},St=F(()=>(__graviewPreload(import.meta.url,["./chunk.7SQAKSJD.js","./chunk.EB4NVTJL.js","./chunk.BB33TI4S.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.EQTSV7BK.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.UUG3BYVN.js"))),kt=()=>(__graviewPreload(import.meta.url,["./chunk.2EDC63RI.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.D5KTGX7F.js")).catch(()=>{}),vt=async()=>{(await kt())?.judgeWithLines()},q=F(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.INZQ6WZM.js"))),At=F(()=>(__graviewPreload(import.meta.url,["./chunk.LY3YOWKV.js","./chunk.G4JJXA63.js","./chunk.LL2MLSPH.js","./chunk.EB4NVTJL.js","./chunk.XU34T2H4.js","./chunk.XOZU4OFA.js","./chunk.BB33TI4S.js","./chunk.2EDC63RI.js","./chunk.WVUJXDXZ.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.3YZHZGTM.js","./chunk.EQTSV7BK.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.L7V24JPO.js"))),Ot=F(()=>(__graviewPreload(import.meta.url,["./chunk.WNQFHMNR.js","./chunk.7SQAKSJD.js","./chunk.EB4NVTJL.js","./chunk.VG7OWV2H.js","./chunk.KXPRILAO.js","./chunk.BB33TI4S.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.3YZHZGTM.js","./chunk.EQTSV7BK.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.MV3AJ7JH.js"))),Rt=F(()=>(__graviewPreload(import.meta.url,["./chunk.XN2RVXOI.js","./chunk.HZB5F476.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.YS6GVLIP.js"))),_t=n=>n.definitions.some(e=>Z(e).size>0),Xe=n=>({value:K(n),label:n.label,...n.describe?{describe:n.describe}:{},...n.card?{card:n.card}:{},fields:n.fields,...n.app?{app:n.app}:{}});async function Tt(n,e,t,r){let i=String(t.relation??""),[o,a]=i.includes(".")?i.split(".",2):[void 0,i],d=n.schema.definitions.flatMap(v=>[...Z(v)].map(([m,u])=>({kind:v.kind,name:m,relation:u}))),s=d.filter(v=>v.name===a&&(o===void 0||v.kind===o));if(s.length!==1){let v=d.map(m=>`${m.kind}.${m.name}`).join(", ")||"none";return{ok:!1,error:`${s.length===0?`No relation to another app is called "${i}"`:`"${i}" names a relation of several kinds`}. The relations to other apps are: ${v}.`}}let{kind:b,name:f,relation:w}=s[0];if(!r)return{ok:!1,error:`This seat cannot read ${w.address}: its host reads no other app's records. Nothing was changed.`};let h={kind:e.kind,...e.id===void 0?{}:{id:e.id},...e.roles?{roles:e.roles}:{}},y=typeof t.of=="string"?t.of:void 0;if(y!==void 0){let v=n.graph.getNode(y);if(!v||v.kind!==b)return{ok:!1,error:`No ${b} "${y}".`};let m=he(v[f],w),u=await Promise.all(m.map(S=>Promise.resolve().then(()=>r.resolve(S,h)).catch(()=>null)));return{ok:!0,data:{relation:`${b}.${f}`,app:w.address,records:u.map((S,k)=>S===null?{value:K(m[k]),missing:!0}:"denied"in S?{denied:!0,said:"linked record (no access)"}:Xe(S))},reads:[y]}}let _=typeof t.limit=="number"&&t.limit>0?Math.min(t.limit,20):20,O=await Promise.resolve().then(()=>r.find({address:w.address,kinds:w.kinds,query:String(t.query??""),limit:_},h)).catch(()=>[]);return Array.isArray(O)?{ok:!0,data:{relation:`${b}.${f}`,app:w.address,records:O.map(Xe),link:`edit-${b} with ${f} set to a record's value`}}:{ok:!0,data:{relation:`${b}.${f}`,app:w.address,denied:!0,said:"linked record (no access)"}}}var N=n=>({title:n,readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}),Qe={description:'Which records: false (the default) the live ones, true only the archived ones, "all" both. An archived record is set aside, not gone: unarchive-<kind> brings it back.',anyOf:[{type:"boolean"},{type:"string",enum:["all"]}]},oe={type:"number",description:"Where the page starts; 0 when unsaid."},se=[{name:"search_graph",title:"Find by name",description:"Find things by name: records whose name or readable fields carry the words, and the kinds, places and rules the words name \u2014 each with why it matched. Reach for this before get_graph when you know what something is called. Words match the start of words, case and accents aside; key:value tokens narrow as a list's filter does (done:false, is:any for past records, kind:<kind>). Pass subject (a node id) to get the acts you may run on it as hits too. When few records match exactly, records with a near word follow \u2014 a typo, another form of the word, a meaning \u2014 each with near: true and why.matched, the record's own word that answered.",inputSchema:{type:"object",properties:{query:{type:"string",description:"Words, with optional key:value conditions."},limit:{type:"number",description:"Most hits to return; at most 20."},subject:{type:"string",description:"A node id whose acts to include."},archived:Qe},required:["query"],additionalProperties:!1},mutating:!1,annotations:N("Find by name")},{name:"get_graph",title:"Read the graph",description:"Read the graph, 25 nodes a page: their fields, the edges out of them, and how many more. Start here when you need the shape of the domain rather than one thing in it.",inputSchema:{type:"object",properties:{offset:oe,archived:Qe},additionalProperties:!1},mutating:!1,annotations:N("Read the graph")},{name:"get_node",title:"Read one node",description:"Read one node: its fields, its links (id, kind and label, 20 each way a page), the violations that implicate it, and its computed values: read-only fields worked out from what you can see, which no act sets. Use this to check a thing before you change it.",inputSchema:{type:"object",properties:{id:{type:"string",description:"A node's id, or its name."},offset:oe},required:["id"],additionalProperties:!1},mutating:!1,annotations:N("Read one node")},{name:"get_violations",title:"List the problems",description:"List the invariant violations the graph currently has, 20 a page, with the repairs that would resolve each one. Read this before proposing work: a rule that is already broken is more urgent than anything you could add.",inputSchema:{type:"object",properties:{offset:oe,context:{type:"object",description:"Evaluation context, e.g. { weekStart }."}},additionalProperties:!1},mutating:!1,annotations:N("List the problems")},{name:"get_affordances",title:"Ask what can be done",description:"Ask what can legally be done with a selection, ranked. Prefer these over composing a mutation by hand: they are derived from the schema, the invariants and the shape of the graph, so they cannot name an action that does not exist.",inputSchema:{type:"object",properties:{selection:{type:"array",items:{type:"string"},description:"Node ids."},context:{type:"object"}},required:["selection"],additionalProperties:!1},mutating:!1,annotations:N("Ask what can be done")},{name:"describe_place",title:"Say what a place shows",description:`Say what one place of the app shows you, as a person in your seat would see it: its headings, its figures as drawn, its lists with each record's title and what its card or row says, the headings a list is grouped under, what an empty list says, the forms it offers (each field in the order asked, its label, whether it must be answered, what it takes and its choices), and any block that could not be worked out. Pass a place's slug ("home", a lens's address like "the-offers", a kind's like "offers"), a record's id, or a visitor form's "forms/<name>", and width 390 for a phone. Use it after a change to check what somebody now sees, instead of guessing.`,inputSchema:{type:"object",properties:{place:{type:"string",description:`"home", a place's slug, a record's id, or "forms/<name>" for a visitor form.`},width:{type:"number",description:"The screen's width in CSS pixels; 390 is a phone, 1440 when unsaid."}},required:["place"],additionalProperties:!1},mutating:!1,annotations:N("Say what a place shows")},{name:"preview_mutation",title:"Try an act without applying it",description:"Try a mutation without applying it: get back the diff it would produce and any invariant it would break. Do this when you are unsure, rather than applying and undoing.",inputSchema:{type:"object",properties:{mutation:{type:"string"},args:{type:"object"}},required:["mutation","args"],additionalProperties:!1},mutating:!1,annotations:N("Try an act without applying it")},{name:"undo_batch",title:"Undo a batch",description:"Undo one batch of operations. Fails, naming the blocking operation, when a later operation read what it wrote.",inputSchema:{type:"object",properties:{batch:{type:"string"},include:{type:"array",items:{type:"string"}}},required:["batch"],additionalProperties:!1},mutating:!0,annotations:{title:"Undo a batch",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1}},{name:"list_suggestions",title:"List what is suggested",description:"List the suggestions waiting for a person: changes the app's own actor proposed and did not make, each with its id, what it would do, who suggested it, what it was based on and how sure (0 to 1). Nothing changes until one is accepted (accept_suggestion) or declined (decline_suggestion); a declined one is never suggested again.",inputSchema:{type:"object",properties:{},additionalProperties:!1},mutating:!1,annotations:N("List what is suggested")},{name:"accept_suggestion",title:"Accept a suggestion",description:"Make a waiting suggestion's change, as this seat, carrying what it was based on. Returns the batch (undo_batch takes it back).",inputSchema:{type:"object",properties:{suggestion:{type:"string",description:"The suggestion's id, from list_suggestions."}},required:["suggestion"],additionalProperties:!1},mutating:!0,annotations:{title:"Accept a suggestion",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1}},{name:"decline_suggestion",title:"Decline a suggestion",description:"Decline a waiting suggestion: nothing changes, the decline is kept in the log, and the same change is never suggested or made by the app's own actor again.",inputSchema:{type:"object",properties:{suggestion:{type:"string",description:"The suggestion's id, from list_suggestions."}},required:["suggestion"],additionalProperties:!1},mutating:!0,annotations:{title:"Decline a suggestion",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}}],tt={name:"act_on_several",title:"Do one act to several records",description:`Run one act on several records at once, as one change with one undo. act is the act (its tool name or its declared name), records the records it runs on (ids or names; each goes in the act's subject), args what every call shares ("Set stage to Declined" is args { stage: "declined" }). Each record is judged on its own: one this seat may not change is named with why, and the rest still apply. Returns the batch (undo_batch takes it all back), the records changed, those already so, and those refused.`,inputSchema:{type:"object",properties:{act:{type:"string",description:"The act to run on each record."},records:{type:"array",items:{type:"string"},minItems:1,maxItems:200,description:"Ids or names of the records."},args:{type:"object",description:"Arguments every call shares, besides the record."}},required:["act","records"],additionalProperties:!1},mutating:!0,annotations:{title:"Do one act to several records",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1}},ue={name:"suggest_changes",title:"Suggest changes",description:"Keep calls ({ act, args }) as one suggestion a person accepts or declines, with its basis and confidence (0 to 1). Changes nothing; a declined change is refused.",inputSchema:{type:"object",properties:{calls:{type:"array",items:{type:"object"}},basis:{type:"string"},confidence:{type:"number"}},required:["calls","basis"]},mutating:!0,annotations:{title:"Suggest changes",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},de={type:"object",description:"A lens, as draft_view returns one.",properties:{title:{type:"string"},lens:{type:"string"},on:{type:"string"},bindings:{type:"object"},options:{type:"object"}},required:["title","lens","on"]},ce={name:"draft_view",title:"Draw a view",description:'Draw a view of the data from words ("a board of tasks by status", "who covers what") as a lens the app could keep; or check a lens you wrote (lens); or change the one on screen (current, with ask: "only this month"). Returns the lens and its add-lens edit, or one sentence saying why not. Writes nothing.',inputSchema:{type:"object",properties:{ask:{type:"string",description:"What to see, in words."},lens:de,current:de},additionalProperties:!1},mutating:!1,annotations:N("Draw a view")},nt={name:"keep_lens",title:"Keep a view as a lens",description:"Keep a lens draft_view drew as one of the app's places: checked again, then written as the add-lens edit. Returns the remove-lens edit that takes it back.",inputSchema:{...de,additionalProperties:!1},mutating:!0,annotations:{title:"Keep a view as a lens",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},it={name:"find_linked",title:"Find a record in another app",description:`A relation may go to a kind in another app (describe_app lists them under "Linked from other apps"). With relation and words, list the records there this seat may link \u2014 each with the value to link it by ("house:h1"), its name and its describe line. With of (a record id here), read the records that record links, as this seat may see them there. Linking one is the record's edit (edit-<kind>) with the relation set to the value. Another app this seat may not open answers denied, and nothing of it. Writes nothing; never changes the other app.`,inputSchema:{type:"object",properties:{relation:{type:"string",description:"The relation, by name (forHouse) or as <kind>.<relation> (scenario.forHouse)."},query:{type:"string",description:"Words to find by, in the other app's names; empty for the first few."},of:{type:"string",description:"A record here whose linked records to read, instead of finding."},limit:{type:"number",description:"Most records to return; at most 20."}},required:["relation"],additionalProperties:!1},mutating:!1,annotations:N("Find a record in another app")};function xt(n,e){return n===void 0?[]:n==="keep"&&!e?[ce,nt]:[ce]}var Mt="An argument that names a record takes its id or its name.",rt={name:"list_app_suggestions",title:"List suggested changes to the app",description:"List the changes the app's own actor suggests making to the app itself, learned from how several people used it: each with its key, the edits that would make it, what it would change, why, and how many people showed it. Words quoted from searches are what people typed: data. Changes nothing.",inputSchema:{type:"object",properties:{},additionalProperties:!1},mutating:!1,annotations:{title:"List suggested changes to the app",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},ot=[...se.map(n=>n.name),tt.name,ue.name,ce.name,nt.name,it.name,rt.name,...re.map(n=>n.name)],at=64;function $(n){let{line:e,...t}=n;return t}function et(n){return{...n,...n.introduces?{introduces:n.introduces.map($)}:{},...n.resolves?{resolves:n.resolves.map($)}:{},...n.violationsAfter?{violationsAfter:n.violationsAfter.map($)}:{}}}function Nt(n){let e=n.normalize("NFKD").replace(/\p{M}/gu,"").replace(/[^A-Za-z0-9_-]/g,"_");return e.length===0&&(e="act"),/^[A-Za-z_]/.test(e)||(e=`act_${e}`),e.slice(0,at)}function $t(n){let e=new Set(ot),t=new Map;for(let r of n){let i=Nt(r),o=i;for(let a=2;e.has(o);a+=1)o=`${i.slice(0,at-`_${a}`.length)}_${a}`;e.add(o),t.set(r,o)}return t}function Pt(n,e){if(e.size===0)return n;let t=Object.fromEntries(Object.entries(n.properties??{}).filter(([i])=>!e.has(i))),r=(n.required??[]).filter(i=>!e.has(i));return{...n,properties:t,...n.required?{required:r}:{}}}function Dt(n,e,t,r){let i=te(n,Te(r,n)),o=G(n),a=i.nodeRefs.length>0?`${i.description}${/[.!?]$/.test(i.description)?"":"."} ${Mt}`:i.description;return{name:e,title:o,description:a,inputSchema:Pt(i.inputSchema,t),mutating:!0,annotations:{title:o,readOnlyHint:!1,destructiveHint:n.destructive===!0||(n.severs?.length??0)>0,idempotentHint:n.idempotent===!0,openWorldHint:!1},act:n.name}}function le(n){if(n===null||typeof n!="object")return JSON.stringify(n)??"null";if(Array.isArray(n))return`[${n.map(le).join(",")}]`;let e=n;return`{${Object.keys(e).filter(t=>e[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${le(e[t])}`).join(",")}}`}function Jt(n){return`sha256:${$e(le(n))}`}function Et(n,e,t,r,i,o=!1,a=!1,d=!1,s,b=!1){let f=$t(n.map(y=>y.name)),w=[...xt(r,t),...o?[it]:[],...a?re:[],...b?[rt]:[]];return{definitions:t?[...se.filter(y=>!y.mutating),...w]:[...se,tt,...d?[ue]:[],...w,...n.filter(y=>e.has(y.name)).map(y=>Dt(y,f.get(y.name),i(y),s))],names:f}}function On(n,e={}){let t=e.author??{kind:"agent"},r=n.allMutations(),i=new Set(n.permittedMutations(t).map(m=>m.name)),{definitions:o,names:a}=Et(r,i,e.readOnly===!0,e.drafts?e.drafts.keep?"keep":"draw":void 0,m=>X(n.schema,n.policy,t,m),_t(n.schema),e.subscriptions!==void 0,Ne(t),n.schema,e.learned!==void 0),d=Jt(o),s={app:e.app?.brand?.locale,appTimeZone:e.app?.brand?.timeZone},b=m=>pe(s,m),f=m=>{if(!ot.includes(m)){for(let[u,S]of a)if(S===m)return u;return a.has(m)?m:xe(m,a.keys())}},w=m=>{let u=Me(m,a.keys());return u?` Did you mean "${u}"?`:""},h=m=>{let u=o.find(k=>k.name===m)??o.find(k=>k.act===m);if(u)return u;let S=f(m);return S===void 0?void 0:o.find(k=>k.act===S)},y=(m,u)=>{let S=r.find(c=>c.name===m);if(!S)return{args:u,resolved:[]};let k={...u},l=[];for(let c of C(S.input)){let p=k[c.name];if(typeof p!="string"||p.trim()==="")continue;let g=n.resolveRef(c,p,t);if(!g.ok){let A=g.reason==="none"?` Nothing was changed. Use search_graph to look it up, then pass its id as ${c.name}.`:" Nothing was changed.";return{ok:!1,error:`${g.message}${A}`,argument:c.name,candidates:g.candidates}}g.by!=="id"&&(k[c.name]=g.id,l.push({argument:c.name,given:p,id:g.id,label:g.label}))}return{args:k,resolved:l}},_=async(m,u)=>{try{await vt();let S=h(m);if(!S&&m===ue.name)return{ok:!1,error:"Only the app's own actor (automated: true) suggests changes.",reason:"forbidden"};if(!S){let l=f(m);if(l){let c=n.permits({name:l,args:u},t);if(!c.ok)return{ok:!1,error:c.refusal.message,reason:"forbidden"}}return{ok:!1,error:`Unknown tool "${m}".${w(m)} Available: ${o.map(c=>c.name).join(", ")}`}}if(S.mutating&&e.readOnly)return{ok:!1,error:`"${m}" changes the graph, and this seat is read-only.`,reason:"forbidden"};if(S.act!==void 0){let l=y(S.act,u);if("ok"in l)return l;let c=S.act,p=b(()=>z(n,t,n.apply({name:c,args:l.args},{...e.author?{author:e.author}:{},...V(e.via)})));return{ok:!0,data:{batch:p.batch,intent:p.intent,introduces:p.introduces.map($),resolves:p.resolves.map($),...l.resolved.length>0?{resolved:l.resolved}:{}},diff:p.diff}}let k=n.seenBy(t);switch(S.name){case"search_graph":{let l=typeof e.places=="function"?e.places():e.places,c=typeof u.subject=="string"?u.subject:void 0,p=Ie(k,String(u.query??""),{principal:t,rank:e.near,archived:ke(u.archived),limit:typeof u.limit=="number"&&u.limit>0?Math.min(u.limit,20):20,...l?{places:l}:{},...c?{subject:c,from:[c]}:{}}),g=p.later?await p.later:p;return{ok:!0,data:(await q()).searchRead(g,Ye(g,U(k,t))),reads:g.hits.flatMap(A=>A.about==="node"?[A.id]:[])}}case"get_graph":return{ok:!0,...(await q()).graphRead(k,U(k,t),u)};case"get_node":{let l=String(u.id??""),c=l,p;if(!k.graph.getNode(l)){let A=l.trim()===""?void 0:n.resolveRef({name:"id",kinds:["*"]},l,t);if(A?.ok)c=A.id,p={argument:"id",given:l,id:c,label:A.label};else return A?.reason==="ambiguous"?{ok:!1,error:A.message,argument:"id",candidates:A.candidates}:{ok:!1,error:`No node "${l}".`}}let g=(await q()).nodeRead(k,U(k,t),c,u);return{ok:!0,data:p?{...g.data,resolved:[p]}:g.data,reads:g.reads}}case"describe_place":{let l=e.app??{name:"",schema:n.schema},c=typeof u.width=="number"&&Number.isFinite(u.width)&&u.width>0?u.width:1440,{describePlace:p}=await St(),g=p(n,t,String(u.place??""),{app:l,width:c});if(!g.ok)return{ok:!1,error:`${g.error} The places are: ${g.places.join(", ")}.`};let A=new Set,M=I=>{for(let D of I)for(let x of D.groups??[])for(let P of x.items)A.add(P.id),M(P.parts)};return M(g.description.parts),{ok:!0,data:g.description,reads:[...A]}}case"find_linked":return Tt(k,t,u,e.linked);case"draft_view":case"keep_lens":{let l=e.app??{name:"",schema:n.schema};return(await At()).runDraftTool(S.name,u,{app:l,principal:t,...e.drafts?{drafts:e.drafts}:{}})}case"get_violations":{let l=k.violations(u.context);return{ok:!0,...(await q()).violationsRead(l,u)}}case"get_affordances":{let l=u.selection??[];return{ok:!0,data:He(k,l,{...typeof e.derive=="function"?e.derive():e.derive,...e.author?{principal:e.author}:{},...u.context?{context:u.context}:{}}),reads:l.filter(p=>k.graph.has(p))}}case"preview_mutation":{let l=String(u.mutation),c=f(l)??l,p=y(c,u.args??{});if("ok"in p)return p;let g=n.missingFor({name:c,args:p.args},t);if(g)return{ok:!1,error:g.message,reason:"missing"};let A=z(n,t,n.preview({name:c,args:p.args},void 0,{author:t})),M=et(A);return{ok:!0,data:p.resolved.length>0?{...M,resolved:p.resolved}:M}}case"act_on_several":{let l=String(u.act??""),c=f(l)??l,p=r.find(R=>R.name===c);if(!p||!i.has(c)){let R=p?n.permits({name:c,args:{}},t):void 0;return R&&!R.ok?{ok:!1,error:R.refusal.message,reason:"forbidden"}:{ok:!1,error:`There is no act "${l}" this seat may run.${w(l)} Nothing was changed.`,reason:"invalid"}}let g=p.subject;if(!g)return{ok:!1,error:`"${G(p)}" does not act on a record, so it cannot be run on several. Nothing was changed.`,reason:"invalid"};let A=Array.isArray(u.records)?u.records.filter(R=>typeof R=="string"&&R.trim()!==""):[];if(A.length===0)return{ok:!1,error:"Name at least one record. Nothing was changed.",reason:"invalid"};let M=[],I=[];for(let R of A.slice(0,200)){let J=n.resolveRef({name:g.arg,kinds:g.kinds},R,t);if(!J.ok)return{ok:!1,error:`${J.message} Nothing was changed.`,argument:"records",candidates:J.candidates};M.push(J.id),J.by!=="id"&&I.push({argument:"records",given:R,id:J.id,label:J.label})}let D=y(c,{...u.args??{}});if("ok"in D)return D;let x=(await Ot()).actOnSeveral(n,{mutation:c,subject:g.arg,args:D.args},M,{author:t,...V(e.via)}),P=x.result?z(n,t,x.result):void 0;return{ok:!0,data:{...x.batch?{batch:x.batch,intent:x.intent}:{},applied:x.applied,unchanged:x.unchanged,refused:x.refused.map(R=>({record:R.id,label:R.label,error:R.message,reason:R.reason})),...x.allOrNothing?{keptNone:!0}:{},...P?{introduces:P.introduces.map($),resolves:P.resolves.map($)}:{},...I.length>0||D.resolved.length>0?{resolved:[...I,...D.resolved]}:{}},...P?{diff:P.diff}:{}}}case"subscribe":case"unsubscribe":case"list_subscriptions":{let l=await(await Rt()).runSubscriptionTool(S.name,u,{store:n,principal:e.subscriber??t,app:e.app?.name??"app",subscriptions:e.subscriptions});return l.ok?{ok:!0,data:l.data}:{ok:!1,error:l.error}}case"list_app_suggestions":return{ok:!0,data:{suggestions:(await e.learned()).map(({key:c,said:p,why:g,edits:A,evidence:M})=>({key:c,said:p,why:g,edits:A,evidence:M}))}};case"list_suggestions":{let l=Ee(n,t).map(c=>{let p=W(c.author,{graph:k.graph,schema:n.schema});return{id:c.id,intent:c.intent,by:p,at:c.at,about:c.about,...c.lineage?{basis:{untrusted:!0,authoredBy:p,text:c.lineage.basis},...c.lineage.confidence!==void 0?{confidence:c.lineage.confidence}:{}}:{}}});return{ok:!0,data:{suggestions:l},reads:[...new Set(l.flatMap(c=>c.about))]}}case"suggest_changes":{let l=u.calls.map(p=>({name:f(p.act)??p.act,args:p.args}));return{ok:!0,data:{suggestion:Je(n,l,{author:t,lineage:{basis:u.basis,confidence:u.confidence},...V(e.via)})?.id??null}}}case"accept_suggestion":case"decline_suggestion":{let l=String(u.suggestion??""),c={author:t,...V(e.via)},p=S.name==="accept_suggestion"?je(n,l,c):ze(n,l,c),g=z(n,t,p);return{ok:!0,data:{batch:g.batch,intent:g.intent,introduces:g.introduces.map($),resolves:g.resolves.map($)},diff:g.diff}}case"undo_batch":{let l=String(u.batch),c=u.include??[],p=k.canUndo([l,...c]);if(!p.ok)return{ok:!1,error:p.message};let g=z(n,t,n.undo([l,...c],{...e.author?{author:e.author}:{}}));return{ok:!0,data:et(g),diff:g.diff}}default:return{ok:!1,error:`Unknown tool "${m}".`}}}catch(S){let{reason:k,wouldNeed:l}=ve(S);return{ok:!1,error:S instanceof Error?S.message:String(S),reason:k,...l?{wouldNeed:l}:{}}}},O=new Set,v=m=>{for(let u of O)u(m)};return{definitions:o,hash:d,...e.author?{author:e.author}:{},onDiff(m){return n.subscribe(m)},onCall(m){return O.add(m),()=>O.delete(m)},async call(m,u){let S=h(m)?.mutating??!1,k={name:m,args:u,mutating:S,at:new Date().toISOString()};v({...k,phase:"running"});let l=p=>(v(p.ok?{...k,phase:"ok",...!S&&p.reads?{reads:p.reads}:{}}:{...k,phase:"failed",error:p.error}),p),c=await _(m,u);return l(c.ok&&!S?{...c,data:(await q()).withinReadChars(m,c.data)}:c)}}}function V(n){let e=typeof n=="function"?n():n;return e?{via:e}:{}}export{le as a,On as b};
@@ -1,21 +0,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 ut,b as yt,c as ht,d as wt,e as vt,f as kt,g as bt}from"./chunk.NFX24NUI.js";import{a as be,e as lt}from"./chunk.BBLIT7S7.js";import{a as mt,b as Te,c as xt}from"./chunk.5IEFTFKQ.js";import{a as se,f as at,h as dt}from"./chunk.JB7TTJXQ.js";import"./chunk.PXQVXBNG.js";import{i as ct}from"./chunk.UDCDK7XJ.js";import{e as gt}from"./chunk.3FCOFEGW.js";import"./chunk.B3WVCSW5.js";import{c as pt,f as ft,i as xe,j as Se}from"./chunk.TBW7CU4G.js";import{b as ie,e as ae}from"./chunk.SPXRLO5K.js";import{a as D}from"./chunk.SDO3U72B.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var St=["good","warn","bad","neutral","accent"],Tt=["value","max","aria-label","placeholder","disabled"],Et=["click","change"],Ee=["_blank","_self"],Mt=["section","div","span","strong","p","hr","a","button","input","progress"],de={type:{oneOf:St}},Me={"gv-card":{host:"section",properties:{tone:de},events:{},children:"any"},"gv-group":{host:"div",properties:{direction:{type:{oneOf:["row","column"]}}},events:{},children:"any"},"gv-title":{host:"strong",properties:{},events:{},children:"text"},"gv-text":{host:"p",properties:{tone:de},events:{},children:"text"},"gv-badge":{host:"span",properties:{tone:de},events:{},children:"text"},"gv-field":{host:"div",properties:{label:{type:"string"}},events:{},children:"text"},"gv-progress":{host:"progress",properties:{value:{type:"number",as:"value"},max:{type:"number",as:"max"},label:{type:"string",as:"aria-label"}},events:{},children:"none"},"gv-divider":{host:"hr",properties:{},events:{},children:"none"},"gv-link":{host:"a",properties:{href:{type:"url"}},events:{},children:"text"},"gv-button":{host:"button",properties:{tone:de,disabled:{type:"boolean",as:"disabled"}},events:{press:{from:"click"}},children:"text"},"gv-input":{host:"input",properties:{label:{type:"string",as:"aria-label"},value:{type:"string",as:"value"},placeholder:{type:"string",as:"placeholder"}},events:{change:{from:"change",detail:"value"}},children:"none"}},Re=1e4;var zt=0,qt=1,Xt=2,Yt=3,Rt=1,Jt=2,Qt=3,Zt=1,er=3,tr=8,Ke="~",Ge=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),J=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function Kt(n,e){return e.type==="url"?"href":e.as??`data-gv-${n.toLowerCase()}`}var rr=2e3;function Gt(n,e){if(e==null)return{ok:!0,value:null};let u=n.type;if(u==="boolean")return typeof e=="boolean"?{ok:!0,value:e}:{ok:!1,reason:"value"};if(u==="number")return typeof e=="number"&&Number.isFinite(e)?{ok:!0,value:String(e)}:{ok:!1,reason:"value"};if(typeof e!="string"||e.length>rr)return{ok:!1,reason:u==="url"?"url":"value"};if(typeof u=="object")return u.oneOf.includes(e)?{ok:!0,value:e}:{ok:!1,reason:"value"};if(u==="url"){let p;try{p=new URL(e)}catch{return{ok:!1,reason:"url"}}return p.protocol!=="https:"||p.hostname===""||!/^https:\/\//i.test(e)?{ok:!1,reason:"url"}:{ok:!0,value:p.href}}return{ok:!0,value:e}}function nr(n){let e=n.host==="a";return Mt.includes(n.host)&&(n.target===void 0||e&&Ee.includes(n.target))&&Object.values(n.properties).every(u=>u.type!=="url"||e)&&Object.values(n.properties).every(u=>u.as===void 0||u.type!=="url"&&Tt.includes(u.as))&&Object.values(n.events).every(u=>Et.includes(u.from))}function We(n,e){let u=e.kit??Me,p=e.maxNodes??2e3,o=n.ownerDocument,f=[],v=new Map,W={dom:n,name:Ke,component:{host:"div",properties:{},events:{},children:"any"},children:[],listeners:new Map,id:Ke};v.set(Ke,W);let K=e.links?new Set(e.links.origins.flatMap(r=>{try{let c=new URL(r);return c.protocol==="https:"&&c.hostname!==""?[c.origin]:[]}catch{return[]}})):void 0,L=0,R=0,A=!1,m=r=>{f.push(r),f.length>200&&f.shift()},h=()=>({dom:o.createComment(""),children:[],refused:!0,listeners:new Map}),_=(r,c,w)=>{let i=r.component;if(!Ge(i.properties,c))return m({reason:"property",element:r.name,name:c});let a=i.properties[c],y=Gt(a,w),b=y.ok&&a.type==="url"&&K&&typeof y.value=="string"&&!K.has(new URL(y.value).origin)?{ok:!1,reason:"url"}:y,T=r.dom,x=Kt(c,a);if(!b.ok)return T.removeAttribute(x),m({reason:b.reason,element:r.name,name:c});let k=b.value;k===null||k===!1?T.removeAttribute(x):T.setAttribute(x,k===!0?"":k),x==="value"&&"value"in T&&(T.value=typeof k=="string"?k:""),x==="disabled"&&"disabled"in T&&(T.disabled=k!==null&&k!==!1)},M=(r,c,w)=>{let i=r.component;if(!Ge(i.events,c))return m({reason:"event",element:r.name,name:c});let a=r.listeners.get(c);if(a&&(a(),r.listeners.delete(c),R-=1),w==null)return;if(!J(w)||typeof w.listener!="number")return m({reason:"value",element:r.name,name:c});let y=w.listener,b=i.events[c],T=r.dom,x=()=>e.onEvent(y,b.detail==="value"?String(T.value??""):void 0);T.addEventListener(b.from,x),r.listeners.set(c,()=>T.removeEventListener(b.from,x)),R+=1},g=r=>{if(!r.refused){L-=1,r.id!==void 0&&v.delete(r.id);for(let c of r.listeners.values())c();R-=r.listeners.size,r.listeners.clear();for(let c of r.children)g(c)}},O=(r,c)=>{if(!J(r)||typeof r.id!="string"||v.has(r.id))return m({reason:"record"}),h();if(L>=p)return m({reason:"budget"}),A||(A=!0,e.onOverBudget?.()),h();let w=r.id,i=c.component.children;if(r.type===tr)return h();if(r.type===er){if(i==="none")return m({reason:"child",element:c.name}),h();let x={dom:o.createTextNode(String(r.data??"").slice(0,Re)),children:[],text:!0,listeners:new Map,id:w};return v.set(w,x),L+=1,x}if(r.type!==Zt)return m({reason:"record"}),h();let a=String(r.element);if(!Ge(u,a)||!nr(u[a]))return m({reason:"element",element:a}),h();if(i!=="any")return m({reason:"child",element:a}),h();let y=u[a],b=o.createElement(y.host);b.setAttribute("data-gv",a.replace(/^gv-/,"")),b.className=`graview-guest-${a.replace(/^gv-/,"")}`,y.host==="a"&&(b.setAttribute("rel","noopener noreferrer"),b.setAttribute("target",y.target??"_blank"),b.setAttribute("referrerpolicy","no-referrer")),y.host==="button"&&b.setAttribute("type","button");let T={dom:b,name:a,component:y,children:[],listeners:new Map,id:w};if(v.set(w,T),L+=1,J(r.properties))for(let[x,k]of Object.entries(r.properties))_(T,x,k);if(J(r.attributes))for(let x of Object.keys(r.attributes))m({reason:"attribute",element:a,name:x});if(J(r.eventListeners))for(let[x,k]of Object.entries(r.eventListeners))M(T,x,k);if(Array.isArray(r.children))for(let x of r.children){let k=O(x,T);T.children.push(k),b.appendChild(k.dom)}return T},C=r=>{if(!Array.isArray(r))return m({reason:"record"});let[c,w]=r,i=typeof w=="string"?v.get(w):void 0;if(!i)return m({reason:"record"});switch(c){case zt:{if(i.text)return m({reason:"record"});let a=Number(r[3]),y=Number.isInteger(a)&&a>=0&&a<=i.children.length?a:i.children.length,b=O(r[2],i);i.dom.insertBefore(b.dom,i.children[y]?.dom??null),i.children.splice(y,0,b);return}case qt:{let a=Number(r[2]),y=i.children[a];if(!y)return m({reason:"record"});i.children.splice(a,1),y.dom.parentNode?.removeChild(y.dom),g(y);return}case Xt:if(!i.text)return m({reason:"record"});i.dom.data=String(r[2]??"").slice(0,Re);return;case Yt:{if(i===W||i.text)return m({reason:"record"});let a=String(r[2]),y=r[4]??Rt;return y===Rt?_(i,a,r[3]):y===Qt?M(i,a,r[3]):m(y===Jt?{reason:"attribute",element:i.name,name:a}:{reason:"record"})}default:return m({reason:"record"})}};return{apply(r,c){if(!Array.isArray(r))return m({reason:"record"}),!0;for(let w=0;w<r.length;w+=1){if(c&&w%32===0&&c())return!1;C(r[w])}return!0},get refused(){return f},get size(){return L},get listening(){return R},dispose(){for(let r of W.children)g(r);W.children.length=0,n.replaceChildren()}}}var Oe=`
2
- .graview-guest { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--graview-ink, inherit); font: inherit; }
3
- .graview-guest-card { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--graview-edge, #d0d0d0); border-radius: 10px; background: var(--graview-panel, transparent); }
4
- .graview-guest-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
5
- .graview-guest-group[data-gv-direction="row"] { flex-direction: row; flex-wrap: wrap; align-items: center; }
6
- .graview-guest-title { font-weight: 600; font-size: 1rem; overflow-wrap: anywhere; }
7
- .graview-guest-text { margin: 0; font-size: 0.875rem; line-height: 1.45; overflow-wrap: anywhere; }
8
- .graview-guest-badge { align-self: flex-start; padding: 1px 8px; border: 1px solid currentColor; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; }
9
- .graview-guest-field { font-size: 0.875rem; overflow-wrap: anywhere; }
10
- .graview-guest-field[data-gv-label]::before { content: attr(data-gv-label) " "; color: var(--graview-ink-muted, inherit); }
11
- .graview-guest-progress { width: 100%; }
12
- .graview-guest-divider { width: 100%; margin: 2px 0; border: 0; border-top: 1px solid var(--graview-edge, #d0d0d0); }
13
- .graview-guest-link { color: var(--graview-accent, inherit); text-decoration: underline; }
14
- .graview-guest-button { align-self: flex-start; font: inherit; padding: 4px 12px; border-radius: 8px; border: 1px solid var(--graview-edge, #d0d0d0); background: var(--graview-panel, transparent); color: inherit; cursor: pointer; }
15
- .graview-guest-input { font: inherit; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--graview-edge, #d0d0d0); }
16
- .graview-guest [data-gv-tone="good"] { color: var(--graview-good, inherit); }
17
- .graview-guest [data-gv-tone="bad"] { color: var(--graview-bad, inherit); }
18
- .graview-guest [data-gv-tone="warn"] { color: var(--graview-warn, inherit); }
19
- .graview-guest [data-gv-tone="accent"] { color: var(--graview-accent, inherit); }
20
- .graview-guest [data-gv-tone="neutral"] { color: var(--graview-ink-muted, inherit); }
21
- `;var Wt=new WeakSet;function or(n,e){if(n.startsWith("blob:"))return"blob:";try{return new URL(n,e.location.href).origin}catch{return n}}function Ot(n,e,u){let p=or(e,n),o=`this page's Content-Security-Policy${u?` (${u})`:""} does not allow a worker from ${p}: it needs worker-src ${p}`;return Wt.has(n)||(Wt.add(n),n.console?.warn?.(`Graview: worker views cannot start on this page, because ${o}. A host that will not allow ${p} serves each view's whole script from its own origin and passes worker: { url } (the @graview/guest README, "What the host page allows").`)),o}function sr(n,e){return n===""?!0:e.startsWith("blob:")?n.startsWith("blob"):e.startsWith(n)||n.startsWith(e)}function le(n,e){let u="script"in e.source?n.URL.createObjectURL(new n.Blob([e.source.script],{type:"text/javascript"})):void 0,p="script"in e.source?u:e.source.url,o,f,v=!1,W=!1,K=0,L=0,R="",A=0,m=0,h=n.performance,_=h.now(),M,g=i=>{let a=i,y=String(a.effectiveDirective||a.violatedDirective||"").split(" ")[0];/^(worker-src|script-src|script-src-elem|child-src|default-src)$/.test(y)&&sr(String(a.blockedURI??""),p)&&(M=y)},O=n.document;O?.addEventListener("securitypolicyviolation",g);let C=()=>O?.removeEventListener("securitypolicyviolation",g),r=()=>{W||(W=!0,f?.close(),o?.terminate(),o=void 0,n.clearTimeout(K),n.clearInterval(L),C(),u&&n.URL.revokeObjectURL(u))},c=(i,a)=>{W||(r(),e.onStop(i,a))},w=()=>{n.clearTimeout(K),C(),R=ut();let i=new n.MessageChannel;f=i.port1;let a=Math.max(1,e.silentMs),y=Math.max(10,Math.min(1e3,Math.floor(a/4)));_=h.now();let b=_;L=n.setInterval(()=>{let x=h.now();if(x-b>y*2&&(_+=x-b-y),b=x,x-_>=a)return c("silent");A+=1,i.port1.postMessage({type:"heartbeat",beat:A})},y);let T={graview:"host-hello",protocol:1,nonce:R,view:e.name};o.postMessage(T,[i.port2]),e.onReady(R,i.port1)};try{o=new n.Worker(p,{name:e.name})}catch(i){o=void 0;let a=i,y=a?.name==="SecurityError"?Ot(n,p,M):`the worker could not be made: ${String(a?.message??i)}`;queueMicrotask(()=>c("start",y))}return o&&(K=n.setTimeout(()=>c("start",`it never said it was ready in ${e.readyMs.toLocaleString("en-US")} ms`),e.readyMs),o.onerror=i=>{let a=typeof i.message=="string"&&i.message!==""?i.message:void 0;if(v)return void e.onError?.(a??"an error");n.clearTimeout(K),n.setTimeout(()=>!v&&c("start",M?Ot(n,p,M):a?`it failed before it said ready: ${a}`:"it failed before it said ready, and the engine gave no reason (a page policy that refuses it, or a script that does not load)"),0)},o.onmessage=i=>{if(!e.limiter.message()||v||!lt(i.data)||i.data.protocol!==1){e.onDropped();return}v=!0,w()}),{get worker(){return o},answer(i){let a=i;return typeof a!="object"||a===null||a.type!=="heartbeat"||a.nonce!==R?!1:(typeof a.beat=="number"&&a.beat>m&&a.beat<=A&&(m=a.beat,_=h.now()),!0)},stop:r}}function ue(n,e){let u=e(),p=0;return{draw(o){let f=e();f-u>=1e3&&(u=f,p=0);let v=o(()=>p+(e()-f)>=n);return p+=e()-f,v&&p<n}}}var ir=Symbol.for("graview.view.clicked");function At(n,e){n[ir]=Object.freeze([...e])}var ar=D(()=>(__graviewPreload(import.meta.url,["./chunk.UDCDK7XJ.js","./chunk.AJZBJBMO.js"]),import("./chunk.QUJS63OJ.js"))),dr=D(()=>(__graviewPreload(import.meta.url,["./chunk.3FCOFEGW.js","./chunk.B3WVCSW5.js","./chunk.TBW7CU4G.js","./chunk.SPXRLO5K.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.SDVPJYVF.js"))),lr=D(()=>(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.KNYLY7MH.js"))),ur=D(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.KJ264E6K.js"))),cr=D(()=>(__graviewPreload(import.meta.url,["./chunk.TBW7CU4G.js","./chunk.SPXRLO5K.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ARWBIBSI.js"))),pr=D(()=>(__graviewPreload(import.meta.url,["./chunk.BBLIT7S7.js","./chunk.AJZBJBMO.js"]),import("./chunk.RRCPEHM4.js"))),fr=D(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JOAN54PN.js")));function gr(n,e,u){switch(n){case"manifest":return u??"Its manifest names something this app does not have.";case"source":return u??`Its code is longer than the ${e.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`;case"start":return`It could not start${u?`: ${u}.`:"."}`;case"error":return`It failed before it drew anything${u?`: ${u}`:"."}`;case"silent":return`It stopped answering for ${e.silentMs.toLocaleString("en-US")} ms.`;case"nodes":return`It drew more than the ${e.maxNodes.toLocaleString("en-US")} things a view may draw.`;case"flood":return`It sent more than ${e.messages} messages in ${e.messageWindowMs.toLocaleString("en-US")} ms.`;case"slow":return`It took longer than ${e.pushMs.toLocaleString("en-US")} ms to draw what it was shown.`}}function mr(n,e){let u=n.ownerDocument,p=u.defaultView,{manifest:o}=e,f=u.createElement("div");f.className="graview-worker-view",f.setAttribute("role","region"),f.setAttribute("aria-label",o.title??o.name),f.setAttribute("data-worker-view",o.name),f.style.cssText="display:block;position:relative;contain:layout paint style;isolation:isolate;overflow:clip;min-width:0",n.appendChild(f);let v=f.attachShadow({mode:"open"}),W=e.author?u.createElement("p"):void 0;W&&(W.className="graview-worker-view-author",W.setAttribute("data-worker-view-author",o.name),W.style.cssText="margin:4px 0 0;font-size:0.75rem;color:var(--graview-ink-muted, inherit)",W.textContent=e.author,n.appendChild(W));let K={applied:0,refused:0,dropped:0},L=ie(e.limits),R={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,messageWindowMs:e.limits?.messageWindowMs??1e3,pushMs:e.limits?.pushMs??1e3,silentMs:e.limits?.silentMs??5e3,drawMs:e.limits?.drawMs??100},A,m,h,_,M,g=!1,O={applied:0,refused:0,dropped:0},C=[],r=()=>{if(!h)return;let t=h.stats;K.applied+=t.applied-O.applied,K.refused+=t.refused-O.refused,K.dropped+=t.dropped-O.dropped,O={...t}},c=()=>{},w,i,a=()=>{let t=v.querySelector("[data-graview-view-root]"),d=p.ResizeObserver;i||!t||typeof d!="function"||(i=new d(S=>{let E=S[S.length-1]?.borderBoxSize?.[0],s=Math.ceil(E?E.blockSize:t.offsetHeight);s!==w&&(w=s,f.setAttribute("data-graview-content-height",String(s)),e.onContentHeight?.(s))}),i.observe(t))},y=()=>{i&&(i.disconnect(),i=void 0,w=void 0,f.removeAttribute("data-graview-content-height"),e.onContentHeight?.(void 0))},b=0,T=()=>{},x=()=>{T(),T=()=>{},r(),h?.dispose(),h=void 0,_?.stop(),c(),p.clearInterval(b)},k=(t,d)=>{if(g)return;g=!0,x(),y(),M?.dispose();let S=gr(t,R,d);f.removeAttribute("data-worker-view-drawn"),f.setAttribute("data-worker-view-failed",t),e.fallback!==!1&&(e.fallback??_t)(f,t,S),e.onFailure?.(t,S)},_t=(t,d,S)=>{let E=A??(()=>{try{return Se(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},...m?{computed:m}:{}})}catch{return}})(),s=u.createElement("div");s.setAttribute("data-graview-fallback",d),s.style.cssText="padding:12px;display:grid;gap:6px;color:var(--graview-ink, inherit);font-family:var(--graview-font-body, inherit)";let I=u.createElement("strong");I.textContent=o.title??o.name;let N=u.createElement("ul");N.style.cssText="margin:0;padding-left:1.2em";for(let re of[...E?.node?[E.node]:[],...E?.nodes??[]]){let ne=u.createElement("li");ne.textContent=re.label??re.id,N.appendChild(ne)}let U=u.createElement("p");U.style.cssText="margin:0;font-size:0.8125rem;color:var(--graview-ink-muted, inherit)",U.textContent=`This view was stopped. ${S}`,s.append(I,N,U),v.replaceChildren(s)},Ae=ft(o,e.store);if(Ae.length>0)return queueMicrotask(()=>k("manifest",Ae.join(" "))),he();let Le=t=>{if(("source"in t?new TextEncoder().encode(t.source).length:"script"in t?new TextEncoder().encode(t.script).length:0)>R.maxSourceBytes)return["source"];let S="source"in t?mt(t.source):[];return S.length>0?["source",S.join(" ")]:void 0},$=e.worker,_e=typeof $=="function"?void 0:Le($);if(_e)return queueMicrotask(()=>k(..._e)),he();let Ie=bt(p,()=>Ne(),"blob"),ce=()=>kt(()=>e.theme?.()??wt(f),e.brand,Ie),Pe="",pe=()=>{Pe=JSON.stringify(ce()),h?.push()},Ne=()=>{h&&JSON.stringify(ce())!==Pe&&pe()},It=vt(u,Ne),j,Pt=xe(e.store,o)?fr().then(({computedOn:t})=>{m=t(e.store.schema)}):Promise.resolve(),B,Nt=o.pictures?lr().then(({createGuestPictures:t})=>{g||(j=t(p,{as:"blob",view:`"${o.title??o.name}"`,pictures:o.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>h?.push(),onLeft:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)}}))}):Promise.resolve();c=()=>{It(),Ie.dispose(),j?.dispose(),X?.dispose(),B?.dispose(),te?.dispose()};let V,Q=t=>V?.postMessage(t),Ce=!1,Ve=!1,Z=()=>f.toggleAttribute("data-worker-view-drawn",!g&&Ve&&M!==void 0&&C.length===0&&z.size===0&&!j?.waiting()&&!(B?.waiting??0)),F=p.performance,z=new Map,ee=F.now(),fe=Math.max(10,Math.min(250,Math.floor(R.pushMs/4))),Ct=()=>{b||(ee=F.now(),b=p.setInterval(()=>{let t=F.now(),d=t-ee>fe*2?t-ee-fe:0;ee=t;for(let[S,E]of z){let s=E+d;if(z.set(S,s),t-s>=R.pushMs)return k("slow")}},fe))},Vt=ue(R.drawMs,()=>F.now()),De=()=>{},ge=t=>{if(g)return;if(!M)return void C.push(t);let d=M;if(!Vt.draw(E=>t[0]==="render"?d.apply(t[1],E):(d.style(t[1]),!0)))return k("slow");t[0]==="render"&&De()},He=()=>at(e.store.schema,new Set([...e.store.kindsKeptFrom(e.principal),...e.store.modules.disabledKinds])),q=dt({sees:t=>e.store.seenBy(e.principal).graph.has(t),places:()=>se(e.places?.()??[]),lists:He,schema:e.store.schema,...e.onNavigate?{onNavigate:e.onNavigate}:e.goTo?{onNavigate:t=>yt(e.goTo(),t)}:{},...e.hrefOf?{hrefOf:e.hrefOf}:!e.onNavigate&&e.goTo?{hrefOf:t=>ht(e.goTo(),t)}:{},onLost:t=>{V?.postMessage({type:"notice",text:t}),e.onProblem?.(t)}}),H=new Set,je=new Set,X,Be=!1,Ue=()=>{Be||(Be=!0,ur().then(({createGuestMedia:t})=>{g||(X=t(p,{view:`"${o.title??o.name}"`,pictures:o.pictures!==void 0,shown:()=>A,...e.file?{file:e.file}:{},onProblem:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)}}),X.refresh(v))},()=>e.onProblem?.(`The view "${o.title??o.name}" places a video or a full-screen viewer, and the host's player could not be loaded.`)))},$e=!1,Fe=!1,me=new Map,ze=()=>{$e||!o.accepts?.length||($e=!0,cr().then(({createGuestDrops:t})=>{g||(B=t(p,{shadow:v,manifest:o,store:e.store,principal:e.principal,files:()=>e.files?.(),shown:()=>H,hears:()=>Fe,idOf:d=>M?.renderer.idOf(d),send:Q,change:(d,S)=>{if(!h)return{ok:!1,reason:"refused",message:"The view has gone."};let E=h.change(d,S);return r(),E},handed:d=>me.set(d.href,d),onProblem:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)},onBusy:()=>Z()}),B.refresh())},()=>e.onProblem?.(`The view "${o.title??o.name}" takes files, and the host's drop could not be loaded.`)))},te,qe=[],Xe=!1,Dt=t=>{qe=t,te?.bind(t),!(Xe||t.length===0)&&(Xe=!0,pr().then(({createGuestGestures:d,unheardWords:S})=>{if(!g){if(o.gestures!==!0){let E=S(o.title??o.name);return V?.postMessage({type:"notice",text:E}),e.onProblem?.(E)}te=d(v,{root:()=>v.querySelector("[data-graview-view-root]")??void 0,idOf:E=>M?.renderer.idOf(E),send:Q}),te.bind(qe)}},()=>{}))},Ht=t=>{let d=e.store.seenBy(e.principal).graph;for(let S of H){let E=d.getNode(S);for(let s of Object.values(E??{}))for(let I of pt(s))if(I.href===t)return I}},Ye=t=>{if(t.localName==="graview-video")return Ue();t.hasAttribute("data-lightbox")&&(t.setAttribute("aria-haspopup","dialog"),Ue())};Promise.all([ar(),dr()]).then(([{createOpenDrawing:t,handedLinks:d,judgeLink:S,linkRefusedWords:E},{createPressReader:s,createSaver:I,fillPrefills:N,judgePress:U,markPresses:re,prefillOf:ne,quietPictures:jt}])=>{if(g)return;let Y=s(),et=(l,G)=>{let P=M?.renderer.idOf(l);P!==void 0&&Q({type:"dom-event",target:P,event:"acted",pressed:G})},we=I({reader:Y,save:(l,G)=>{if(!h)return;let P=h.pressed(U(e.store,o,H,l));r(),et(G,{as:l.as,...P})}}),tt=()=>we.flush();p.addEventListener("pagehide",tt),T=()=>{p.removeEventListener("pagehide",tt),we.flush()};let Bt=new WeakSet;De=()=>{q.refresh(v),re(v),jt(v),N(v,Y,Bt,l=>ne(e.store,e.principal,o,H,l)),X?.refresh(v),B?.refresh()};let rt,nt=new Set,Ut=()=>(rt!==A&&([rt,nt]=[A,d(A)]),nt),ot=new Set;M=t(v,{origin:e.origin??p.location.origin,link:l=>S(l,{handed:Ut(),...e.links?{origins:e.links.origins}:{}}),...e.asset?{asset:e.asset}:{},...e.images?{imageOrigins:e.images.origins}:{},...o.pictures?{picture:l=>j?.drawn(l)}:{},onRefused:l=>{if(l.reason==="url"&&l.element==="a"&&l.address!==void 0&&!ot.has(l.address)){ot.add(l.address);let P=E(l.address,e.links?.origins);return V?.postMessage({type:"notice",text:P}),e.onProblem?.(P)}if(l.reason!=="url"||l.element!=="img"||l.address===void 0||je.has(l.address))return;je.add(l.address);let G=ct(l.address,{...e.images?{origins:e.images.origins}:{},assets:e.asset!==void 0},l.length);V?.postMessage({type:"notice",text:G}),e.onProblem?.(G)},...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>k("nodes"),send:Q,onFieldSet:l=>Y.filled(l),onAttribute:(l,G)=>{(G==="data-record"||G==="data-place")&&q.link(l),G==="data-lightbox"&&Ye(l),G==="data-drop"&&ze()},decorate:l=>{(l.hasAttribute("data-record")||l.hasAttribute("data-place"))&&q.link(l),Ye(l),l.hasAttribute("data-drop")&&ze()},before:(l,G,P)=>{Y.heard(l,G),we.heard(l,G,P),q.pressed(l,G,P);let ve=G.closest("a[href]");ve&&P.contains(ve)&&!ve.hasAttribute("data-graview-link")&&l.type==="click"&&l.stopPropagation();let oe=G.closest("[data-lightbox]"),st=l.type==="keydown"?l.key:void 0;if(oe&&P.contains(oe)&&l.isTrusted&&(l.type==="click"||(st==="Enter"||st===" ")&&oe.localName!=="button")&&(l.preventDefault(),l.stopPropagation(),X?.open(oe)),B?.before(l,G,P))return!1;let ke=Y.press(l,G,P);if(!ke||!h)return;l.stopPropagation(),l.type==="keydown"&&l.preventDefault();let $t=h.pressed(U(e.store,o,H,ke));r();let it={as:ke.as,...$t},Ft=G.closest("[data-act]");return queueMicrotask(()=>et(Ft,it)),{pressed:it}}});for(let l of C.splice(0))ge(l);a(),Z()},()=>k("start","the view's drawing could not be loaded"));let ye=t=>_=le(p,{source:t,name:o.name,limiter:L,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>K.dropped+=1,onStop:(d,S)=>k(d,S),onError:d=>{Ce||k("error",d)},onReady:(d,S)=>{V=S,Ct();let E=ae({store:e.store,principal:e.principal,view:o.name,nonce:d,send:s=>{s.type==="props"&&typeof s.push=="number"&&(z.set(s.push,F.now()),Z()),S.postMessage(s)},props:()=>{let s=Se(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},theme:ce(),...e.places?{places:se(e.places())}:{},...m?{computed:m}:{}});return H=new Set([...s.node?[s.node.id]:[],...(s.nodes??[]).map(I=>I.id)]),A=s,s},...j?{hand:j.hand}:{},judgeAct:(s,I)=>gt(e.store,o,s,I,{shown:H,file:N=>me.get(N)??Ht(N),dropped:N=>me.has(N)}),onHears:s=>{s.includes("drop")&&(Fe=!0)},onGestures:Dt,onClicks:s=>At(f,s),onRender:s=>{Ce=!0,ge(["render",s])},onPushed:(s,I)=>{if(z.delete(s),I>=R.pushMs)return k("slow");Ve=!0,Z()},onFlood:()=>k("flood"),onStyle:s=>ge(["style",s]),places:()=>[...new Set([...se(e.places?.()??[]).map(s=>s.as),...He().map(s=>s.slug)])],...e.limits?{limits:e.limits}:{},limiter:L});h=E,S.onmessage=({data:s})=>{if(!_?.answer(s)&&(E.receive(s),r(),!g&&s?.nonce===d&&s.type==="navigate")){let I={...s.where!==void 0?{where:s.where}:{},...s.section!==void 0?{section:s.section}:{}},N=typeof s.place=="string"?{place:s.place,...I}:typeof s.to=="string"&&{record:s.to,...I};N&&q.go(N)}},pe()}}),Je=o.pictures!==void 0||xe(e.store,o),Qe=()=>Promise.all([Nt.catch(()=>Promise.reject(new Error("the view's pictures could not be loaded"))),Pt.catch(()=>Promise.reject(new Error("the view's computed values could not be worked out")))]),Ze=t=>{"source"in t?(Je?Promise.all([Te(t.source),Qe()]).then(([d])=>d):Te(t.source)).then(d=>{g||ye({script:d})},d=>k("start",d instanceof Error&&d.message.startsWith("the view's")?d.message:"the view's runtime could not be loaded")):Je?Qe().then(()=>{g||ye(t)},d=>k("start",d instanceof Error?d.message:"the view's pictures could not be loaded")):ye(t)};return typeof $=="function"?xt($).then(t=>{if(g)return;let d=Le(t);d?k(...d):Ze(t)},t=>k("source",`Its code did not arrive${t instanceof Error&&t.message?`: ${t.message}`:""}.`)):Ze($),he();function he(){return{element:f,shadow:v,get worker(){return _?.worker},update:()=>{h&&pe()},get stats(){return r(),K},get refused(){return M?.refused??[]},get contentHeight(){return w},dispose(){g=!0,x(),i?.disconnect(),M?.dispose(),f.remove(),W?.remove()}}}}var Lt="graview-guest-kit";function $r(n,e){let u=n.ownerDocument,p=u.defaultView;if(!u.getElementById(Lt)){let g=u.createElement("style");g.id=Lt,g.textContent=Oe,u.head.appendChild(g)}let o=u.createElement("div");o.className="graview-guest",o.setAttribute("role","group"),o.setAttribute("aria-label",e.title??e.view),o.setAttribute("data-guest-view",e.view),n.appendChild(o);let f={applied:0,refused:0,dropped:0},v=ie(e.limits),W=ue(e.limits?.drawMs??100,()=>p.performance.now()),K,L,R,A=!1,m={applied:0,refused:0,dropped:0},h=()=>{if(!K)return;let g=K.stats;f.applied+=g.applied-m.applied,f.refused+=g.refused-m.refused,f.dropped+=g.dropped-m.dropped,m={...g}},_=()=>{h(),K?.dispose(),K=void 0,R?.stop()},M=(g,O)=>{A||(A=!0,_(),L?.dispose(),e.onFailure?.(g,O))};return R=le(p,{source:e.worker,name:e.view,limiter:v,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>f.dropped+=1,onStop:(g,O)=>M(g,O),onReady:(g,O)=>{let C=We(o,{...e.kit?{kit:e.kit}:{},...e.links?{links:e.links}:{},onEvent:(c,w)=>O.postMessage({type:"event",listener:c,...w!==void 0?{detail:w}:{}}),...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>M("budget")});L=C;let r=ae({store:e.store,principal:e.principal,view:e.view,nonce:g,send:c=>O.postMessage(c),onRender:c=>{W.draw(w=>C.apply(c,w))||M("slow")},...e.input?{input:e.input}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},onSize:e.onSize??(c=>o.style.minHeight=`${c}px`),...e.limits?{limits:e.limits}:{},limiter:v});K=r,O.onmessage=c=>{R?.answer(c.data)||(r.receive(c.data),h())},r.push()}}),{element:o,get worker(){return R?.worker},update:()=>K?.push(),get stats(){return h(),f},get refused(){return L?.refused??[]},dispose(){A=!0,_(),L?.dispose(),o.remove()}}}export{Me as GUEST_KIT,Oe as GUEST_KIT_CSS,Ee as KIT_LINK_TARGETS,St as KIT_TONES,We as createKitRenderer,Kt as hostAttribute,Gt as kitValue,$r as mountGuestWorker,mr as mountWorkerView};
@@ -1 +0,0 @@
1
- import{l as O}from"./chunk.OJGHDWI6.js";import{j as C}from"./chunk.EQTSV7BK.js";import{G as b,La as G,T as M,ba as w,c as V,ca as I,da as W,x as B}from"./chunk.HT2BEOEV.js";import{C as D,Qc as _,Rb as F,Rc as L,Xc as j,ac as N}from"./chunk.7BBGRTXM.js";import{b as m}from"./chunk.AJZBJBMO.js";function H(n,e){let t=n.graph.getNode(e);if(!t)return[];let i=t.kind,a=n.schema.tryDefinition(i);if(!a)return[];let c=n.seenFor,u=c?j.keptFrom?.(n,c)?.(t):void 0,o=new Map;for(let r of n.allMutations()){let s=r.subject;if(!s||!(s.kinds==="*"||s.kinds.includes(i)))continue;let l=r.input.shape??{};for(let d of N(r,a)){if(u?.(d))continue;let x=d in l,k=[];for(let h of Object.keys(l)){if(h===s.arg||h===d||X(l[h]))continue;let v=F(r.input).find(S=>S.name===h);k.push({name:h,...v?{kinds:v.kinds}:{},...v?{candidates:v.kinds.includes("*")?n.graph.allNodes().map(S=>S.id):v.kinds.flatMap(S=>n.graph.nodesOfKind(S).map(J=>J.id))}:{},shape:C(r.input,h)})}let Q={field:d,mutation:r.name,title:r.title??r.name,shape:x?C(r.input,d):{type:"unknown"},takesValue:x,alternatives:[],open:k,clearable:x&&(r.clearable?.includes(d)??!1),call:h=>({name:r.name,args:x?{[s.arg]:e,[d]:h}:{[s.arg]:e}})};o.set(d,[...o.get(d)??[],Q])}}return[...o.values()].map(r=>{let s=[...r.filter(d=>d.takesValue),...r.filter(d=>!d.takesValue)],[f,...l]=s;return{...f,alternatives:l}})}function X(n){let e=D(n)?.type;return e==="optional"||e==="default"||e==="nullable"}var R=m(b(),1);function we(n){let{store:e,principal:t}=w(),i=W(),a=(0,R.useMemo)(()=>n===null?[]:H(e,n),[e,n,i]),c=(0,R.useCallback)((u,o,r={})=>{let s=u.call(o);e.apply({name:s.name,args:{...s.args,...r}},{author:t})},[e,t]);return{fields:a,commit:c}}var K=m(b(),1);function Qe(){let{brand:n}=w(),e=n?.kit;return(0,K.useMemo)(()=>_(e),[e])}function Je(n,e){let t=L(n,e),i={...t.color!==void 0?{color:t.color}:{},...t.pattern!==void 0?{pattern:t.pattern}:{},...t.width!==void 0?{width:t.width}:{},...t.cap!==void 0?{cap:t.cap}:{},...t.opacity!==void 0?{opacity:t.opacity}:{}};return{connector:t,style:O(e,{[e]:i})}}var $=m(b(),1);var g=m(M(),1);function Z(n){let e=n?.hint;return typeof e=="string"&&e.length>0?e:void 0}function ee(n){if(n instanceof Error&&n.message)return n.message;let e=String(n);return e==="[object Object]"?"The view threw without a message.":e}var U=class extends $.Component{static contextType=G;state={};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`[graview] the ${this.props.view??"view"} of ${this.props.kind} threw while rendering`,e,t.componentStack),this.context?.(e,{module:"@graview/react"})}render(){let{error:e}=this.state;if(!e)return this.props.children;let t=Z(e);return(0,g.jsxs)("div",{role:"alert","data-graview-view-error":this.props.kind,style:{display:"flex",flexDirection:"column",gap:"0.375rem",padding:"var(--graview-pad, 12px)",height:"100%",overflow:"auto",boxSizing:"border-box",borderRadius:"var(--graview-radius-sm, 6px)",background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)",font:"var(--graview-font-body, 13px/1.45 system-ui)",fontSize:"0.875rem",lineHeight:1.45},children:[(0,g.jsx)("strong",{style:{color:"var(--graview-warn, #b4462a)"},children:this.props.view?`${this.props.view} could not draw`:"This view could not draw"}),(0,g.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:this.props.kind}),(0,g.jsx)("span",{children:ee(e)}),t?(0,g.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:t}):null]})}};var y=m(b(),1);var q=m(M(),1),A=(0,y.createContext)([]);function tn({sections:n,children:e}){let t=(0,y.useContext)(A),i=(0,y.useMemo)(()=>[...t,...n.filter(a=>!t.includes(a))],[t,n]);return(0,q.jsx)(A.Provider,{value:i,children:e})}function z(){let n=(0,y.useContext)(A),e=I()?.menuSections;return(0,y.useMemo)(()=>e?[...n,...e.filter(t=>!n.includes(t))]:n,[n,e])}function rn(){let n=z();return(0,y.useCallback)(e=>{for(let t of n)try{t(e)?.prepare?.()}catch{}},[n])}function on(n){let e=z();if(n===null||e.length===0)return{start:[],end:[]};let t=e.flatMap(i=>{try{let a=i(n);return a&&((a.items?.length??0)>0||a.render)?[a]:[]}catch{return[]}});return{start:t.filter(i=>i.at==="start"),end:t.filter(i=>i.at!=="start")}}var ne=m(b(),1);function cn(){return w().activity}var P=(n,e)=>n.length*e*.58;var te=156,re=2,E=te-18,oe=7.1,ie=16;function ae(n,e){let t=0,i=E;for(let a of n.split(" ")){let c=e(a),u=i+e(" ")+c;if(u<=E)i=u;else{let o=Math.ceil(c/E)||1;t+=o,i=c-(o-1)*E}}return t}var se=16.25,Y=27,ce=(n,e)=>{let t=Math.ceil(n.length*oe/E);return e?Math.max(Y,Math.ceil(Math.max(t,ae(n,e))*se)+6):Math.max(Y,t*ie+6)};function ln(n,e,t){return n.length===0?0:10+n.reduce((i,a)=>i+ce(a,t),0)+(n.length-1)*re}var de=27,ue=8,pn=4,le=64,fn=n=>Math.max(1,Math.min(ue,n)),mn=n=>n*de+le;var p=m(b(),1);function xn(n,{units:e,target:t=0,legibleAt:i=260}){let[a,c]=(0,p.useState)(e);(0,p.useEffect)(()=>{let o=n.current;if(o===null||typeof ResizeObserver>"u")return;let r=new ResizeObserver(([s])=>{let f=s?.contentRect.width??0;f>0&&c(f)});return r.observe(o),()=>r.disconnect()},[n]);let u=a/e;return{scale:u,width:a,touchable:u*t>=24,legible:a>=i}}function bn(n="--graview-font-body",e="sans-serif"){let t=(0,p.useRef)(void 0),i=(0,p.useMemo)(()=>{if(typeof getComputedStyle!="function"||typeof document>"u")return e;let a=getComputedStyle(document.documentElement).getPropertyValue(n).trim();return a.length>0?a:e},[n,e]);return(0,p.useMemo)(()=>{t.current===void 0&&(t.current=typeof document>"u"?null:document.createElement("canvas").getContext("2d")??null);let a=t.current;return a===null?P:(c,u)=>{a.font=`${u}px ${i}`;let o=a.measureText(c).width;return o>0?o:P(c,u)}},[i])}var wn=(0,p.createContext)(void 0);var T=3;function pe(n){let e=V(n),t=e.focusId;if(!t)return null;if(e.within?.view){let[a]=B(t);if(a)return{at:`screen:${a}`,audience:!0}}return{at:t,audience:!1}}var fe=102,me=32;function En(n,e,t){let i=[],a=new Map,c=new Map,u=0;for(let o of n){let r=pe(o.stop),s=r?e(r.at):null;if(!r||!s){o.name&&i.push({kind:"edge",presence:o,point:{x:t-8,y:fe+u++*me}});continue}if(!o.name){let k=c.get(r.at);c.set(r.at,{n:(k?.n??0)+1,box:s});continue}let f=a.get(r.at)??[];if(f.push(o),a.set(r.at,f),f.length>T)continue;let l=s,d=f.length-1,x=r.audience?{x:l.x+l.width*.5+(d-1)*26,y:l.y+Math.min(l.height,24)}:{x:l.x+l.width*.5-26-d*26,y:l.y+l.height-4};i.push({kind:"person",presence:o,point:x,at:r.at,index:d,of:f.length,audience:r.audience})}for(let[o,r]of a){if(r.length<=T)continue;let s=e(o);s&&i.push({kind:"count",at:o,point:{x:s.x+s.width*.5+2*26+18,y:s.y+s.height-4},n:r.length-T})}for(let[o,{n:r,box:s}]of c)i.push({kind:"count",at:o,point:{x:s.x+s.width*.5+40,y:s.y+s.height-4},n:r});for(let o of n)if(o.name){if(o.robot?.at&&o.robot.mode!=="docked"){let r=e(o.robot.at);r&&i.push({kind:"robot",presence:o,point:{x:r.x+r.width/2+22,y:r.y+r.height-4},mode:o.robot.mode})}if(o.over){let r=e(o.over);r&&i.push({kind:"over",presence:o,box:r})}}return i}export{cn as a,P as b,te as c,re as d,Y as e,ln as f,de as g,pn as h,le as i,fn as j,mn as k,xn as l,bn as m,we as n,Qe as o,Je as p,En as q,U as r,tn as s,rn as t,on as u};
@@ -1 +0,0 @@
1
- import{b as cn,c as ln,d as oe,e as fn,f as ie,h as Ae,i as Se,n as pn,r as ae}from"./chunk.YIA2EDVF.js";import{B as ue,Ba as Ue,C as re,Db as W,Ea as We,F as Ze,Ga as Je,Gb as tn,H as Ke,Ic as sn,J as qe,Jc as xe,K as Be,Ka as we,Kb as rn,Kc as dn,La as ve,Lc as Re,Pb as on,Ra as Ye,Ua as Qe,b as $e,c as Ge,d as Me,da as ke,e as Z,ea as _e,eb as Xe,g as ce,gb as en,h as F,i as Pe,j as Fe,k as le,l as Ne,lb as Oe,m as Ce,mb as nn,na as He,o as Ie,p as fe,q as he,v as Ve,x as te,xc as an,ya as be,z as pe}from"./chunk.7BBGRTXM.js";function un(e){if(typeof e=="string")return{form:"string",light:e};if(typeof e!="object"||e===null)return;let a=e,n=b=>typeof a[b]=="string"?a[b]:void 0,t=n("light")??n("src");if(t===void 0)return;let[i,f,m]=[n("dark"),n("alt"),n("darkFallback")];return{form:n("light")!==void 0?"light":"src",light:t,...i!==void 0?{dark:i}:{},...f!==void 0?{alt:f}:{},...m!==void 0?{darkFallback:m}:{}}}function Cn(e,a){let n=e.brand??{},t=n.ground,i=n.accent?Re(n.accent,t):void 0;t&&dn(i?.ok?i.schemes:xe(t),n.accent)&&(a.push(Se("brand","brand.ground","words would not read on that page background, so the app keeps Graview's","pick a lighter ground for the light scheme, a darker one for the dark")),t=void 0,i=n.accent?Re(n.accent):void 0),i&&!i.ok&&a.push(Se("brand","brand.accent",`that accent cannot make a readable brand, so the app keeps Graview's colors: ${i.why}`,"pick a color further from orange-red, or a darker one"));let f=un(n.logo),m=n.name??e.name,b=n.typography?Object.fromEntries(Object.entries(n.typography).filter(([,E])=>typeof E=="string"&&!/url\(|@import|[;{}<>\\]/i.test(E)).map(([E,D])=>[E,sn(D)])):void 0;return{name:m,schemes:i?.ok?i.schemes:t?xe(t):an,...n.currency?{currency:n.currency}:{},...n.locale?{locale:n.locale}:{},...n.timeZone?{timeZone:n.timeZone}:{},...f?{logo:f.dark||f.darkFallback==="invert"?{light:f.light,...f.dark?{dark:f.dark}:{darkFallback:"invert"}}:f.light,logoAlt:f.alt??m}:{},...n.favicon?{favicon:n.favicon}:{},...e.description?{subtitle:e.description}:{},...n.subtitle===!1?{subtitleDrawn:!1}:{},...b?{typography:b}:{},...n.shape?{shape:n.shape}:{},...n.accents?{accents:n.accents}:{},...n.scheme?{scheme:n.scheme}:{}}}function mn(e){let{currency:a,locale:n,timeZone:t}=e.brand??{};return{...a?{currency:a}:{},...n?{locale:n}:{},...t?{timeZone:t}:{}}}var xn=Symbol.for("@graview/core:typed-field"),gn=(e,a)=>(/^(phone|place|duration)$/.test(a)&&(re(e)[xn]=a),e),yn=/^(?=(?:\D*\d){3})\+?[\d ()./-]+(?: *(?:ext\.?|x|#) *\d+)?$/i;function hn(e){let a=F().check(Z(300),pe(t=>We(t,e)!==void 0,`a record of ${e.kinds.join(" or ")} in ${e.address}, as "<kind>:<id>"`)),n=e.cardinality==="one"?a:fe(a).check(Z(200));return Je(e.description?n.check(ue(e.description)):n,e)}var An=new WeakMap;function kn(e,a){An.set(e,a)}var Sn=[{where:"settings[]",was:"honoured",now:"honored",since:"0.1.16"},{where:"pages",was:"overview",now:"scene",since:"0.1.17"}],K=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function bn(e,a=Sn){if(!K(e))return{document:e,respelled:[]};let n=[],t=e;for(let i of a)t=ze(t,i.where.split("."),i,"",n);return{document:t,respelled:n}}function ze(e,a,n,t,i){if(a.length===0){if(!K(e)||!Object.hasOwn(e,n.was))return e;i.push(`${t}${n.was}`);let{[n.was]:$,...N}=e;return Object.hasOwn(e,n.now)?N:{...N,[n.now]:$}}if(!K(e))return e;let[f,...m]=a,b=f.endsWith("[]"),E=b?f.slice(0,-2):f,D=e[E],B=D;if(!b)B=ze(D,m,n,`${t}${E}.`,i);else if(Array.isArray(D)){let $=D.map((N,J)=>ze(N,m,n,`${t}${E}.${J}.`,i));B=$.some((N,J)=>N!==D[J])?$:D}return B===D?e:{...e,[E]:B}}var wn="graview-compiled@1";function zn(e,a){return e.find(([n,t])=>n!==q&&"ref"in t&&(t.ref==="*"||t.ref.includes(a)))?.[0]}var q="id",me=e=>typeof e=="string"&&/^\$[A-Za-z][A-Za-z0-9]*$/.test(e)?e.slice(1):void 0;function vn(e){let a=Object.entries(e.fields),n=t=>["name","title","label"].find(i=>t.some(([f])=>f===i))??t[0]?.[0];return n(a.filter(([,t])=>t.required&&(t.type==="string"||t.type==="text")))??n(a.filter(([,t])=>t.type==="string"))}function On(e,a,n){let t;switch(e.type){case"string":case"place":t=F().check(Z(500));break;case"phone":t=F().check(Z(40),ce(yn,"a phone number"));break;case"text":t=F().check(Z(2e4)),e.format&&(re(t)[Symbol.for("@graview/core:markdown")]=1);break;case"number":case"integer":case"duration":{let f=e.min??(e.type==="duration"?0:void 0),m=[...e.type==="number"?[]:[Ne()],...f===void 0?[]:[Ge(f)],...e.max===void 0?[]:[$e(e.max)],...e.step===void 0?[]:[Me(e.step)]];t=m.length>0?le().check(...m):le();break}case"boolean":t=Ce();break;case"date":t=F().check(ce(Ke,"a date like 2026-10-02, or a month (2016-05) or a year (2006) alone"));break;case"datetime":t=F().check(pe(qe,"a date and time like 2026-10-02T14:30:00Z"));break;case"enum":t=Ve(e.options);break;case"list":t=fe(e.of==="number"?le():e.of==="date"?F().check(ce(Ze)):e.of==="image"||e.of==="video"||e.of==="file"?be(e.of):F().check(Z(500))).check(Z(200));break;case"image":case"video":case"file":t=be(e.type);break;case"app-link":t=Ue();break;case"url":t=Fe();break;case"email":t=Pe();break}let i=e.type==="number"||e.type==="integer";return gn(t,i&&e.format==="duration"?"duration":e.type),e.collaborative!==void 0&&(e.type==="text"||e.type==="string")&&(re(t)[Symbol.for("@graview/core:collaborative")]=e.collaborative?1:0),e.description&&(t=t.check(ue(e.description))),i&&(e.format==="money"||e.format==="percent"||!e.format&&e.unit)&&rn(t,{...n,...e.format?{format:e.format}:{},...e.unit?{unit:e.unit}:{}}),a?te(t):t}var se=e=>{throw new W(`there is no record "${e}"`,"invalid")},jn=(e,a)=>"field"in e?On(e.field,e.optional,a):"ref"in e?on(e.ref):te(Ie()),En=new WeakMap;var je=(e,a)=>K(a)&&Object.keys(e??{}).length===Object.keys(a).length&&Object.keys(e??{}).every(n=>Object.hasOwn(a,n));function lt(e,a={}){let n=K(e)?e.format:void 0;if(n!==wn)return{ok:!1,findings:[Ae("compiled-format","format",n===void 0?"this is not a compiled Graview app":`this compiled app is ${JSON.stringify(n)}, and this build reads ${wn}`,"compile the document instead")]};let t=e,i=bn(t.document).document,f=i===t.document?t:{...t,document:i},m=K(i)&&typeof i.name=="string"&&K(i.kinds)&&je(i.kinds,f.kinds)&&je(i.acts,f.acts)&&je(i.rules,f.rules)&&Array.isArray(f.edges)&&Array.isArray(f.findings),b={ok:!1,findings:[Ae("compiled-shape","","this compiled app's parts do not match its document","compile the document instead")]};if(!m)return b;try{return Dn(f,a)}catch{return b}}function Dn(e,a={}){let{document:n}=e,t=n.brand?.timeZone,i=a.today??(()=>Be(t)),f=new Map(e.edges.map(([g,o])=>[g,o])),m=new Map;for(let[g,o]of Object.entries(n.kinds)){let A=e.kinds[g]?.computed,x=ve(o.edges);m.set(g,{fields:new Set([...Object.keys(o.fields),...x.keys()]),edges:new Map(Object.entries(we(o.edges)).map(([T,G])=>[T,G.cardinality??"many"])),...A?{computed:new Map(A)}:{},...x.size>0?{linked:x}:{}})}e.facts&&m.set(ln,{computed:new Map(e.facts)});let b=mn(n),E=new Map,D=Object.entries(n.kinds).map(([g,o])=>{let A={};for(let[r,d]of Object.entries(o.fields))A[r]=On(d,!d.required,b),d.repeats&&(A[Ye(r)]=te(Qe()));for(let[r,d]of ve(o.edges))A[r]=te(hn(d));let{label:x,describe:T,durations:G}=e.kinds[g]??{},M=Object.entries(o.computed??{}).map(([r,d])=>[r,typeof d=="string"?{expr:d}:d]),Y=Object.hasOwn(o.fields,"label")&&!o.fields.label.label&&!/\{\s*label\b/.test(o.label??`{${vn(o)??""}}`),_=Object.fromEntries([...Y?[["label","Label"]]:[],...Object.entries(o.fields).filter(([,r])=>r.label).map(([r,d])=>[r,d.label]),...M.filter(([,r])=>r.label).map(([r,d])=>[r,d.label])]),S=Object.keys(_).length>0,y=Object.entries(o.fields).filter(([,r])=>r.type==="enum"&&r.optionLabels&&Object.keys(r.optionLabels).length>0),L=Object.fromEntries(y.map(([r,d])=>[r,R=>typeof R=="string"&&Object.hasOwn(d.optionLabels,R)?d.optionLabels[R]:ke(String(R))])),C=y.length>0,P=Object.fromEntries(Object.entries(o.fields).filter(([,r])=>r.default!==void 0).map(([r,d])=>[r,d.default]));E.set(g,P);let H=Object.fromEntries(Object.entries(we(o.edges)).map(([r,{renamedFrom:d,...R}])=>[r,R])),I=Object.entries(o.fields).flatMap(([r,d])=>d.aliases?[[r,d.aliases]]:[]),z=r=>o[r]?{[r]:o[r]}:{};return _e(g,{fields:he(A),edges:H,...z("plural"),...z("noun"),...z("aliases"),...I.length>0?{fieldAliases:Object.fromEntries(I)}:{},...z("description"),...x?{label:r=>ae(x,{node:r,kinds:m,today:i(),money:b})||r.id}:{},...T?{describe:r=>ae(T,{node:r,kinds:m,today:i(),money:b})}:{},...z("lifecycle"),...z("figure"),...z("fieldRoles"),...z("people"),archives:o.archives,...o.tidying?{tidying:o.tidying}:{},...M.length>0?{computed:Object.fromEntries(M.map(([r,d])=>[r,Tn(d,G?.includes(r)??!1,b)??o.computed[r]]))}:{},...S||C||o.glance||o.page?{display:{...S?{labels:_}:{},...C?{format:L}:{},...o.glance?{glance:[...o.glance]}:{},...o.page?{page:o.page}:{}}}:{},...Object.keys(P).length>0?{defaults:P}:{},...e.kinds[g]?.keptInStep?{keptInStep:e.kinds[g].keptInStep}:{}})}),B=Xe(D,n.computed);function $(g){return B.tryDefinition(g.kind)?.label?.(g)??g.id}let N=g=>({id:"",kind:g,...E.get(g)}),J=[];for(let[g,o]of Object.entries(n.acts??{})){let A=e.acts[g],{title:x,effects:T,guard:G,refusal:M,destructive:Y,idempotent:_,creates:S,connects:y,severs:L,writes:C,writesOther:P,sets:H}=A,I=new Map(A.args),z={};for(let[c,v]of I)z[c]=jn(v,b);let r=[o.on??[]].flat(),d=new Map(A.exprs),R=T.find(c=>"create"in c),Q=(c,v,p,w=null)=>{if(K(c)&&"expr"in c)return ie(d.get(c.expr),{graph:p,subject:w,kinds:m,bindings:v,today:i()});let k=me(c);return k===void 0?typeof c=="string"&&c.startsWith("$$")?c.slice(1):c:k==="now"?new Date().toISOString():k==="today"?i():v[k]},Te=(c,v)=>{if(!R)return"";let p=n.kinds[R.create].fields,w=N(R.create),k=[];for(let[O,ne]of Object.entries(R.set??{})){try{w[O]=Q(ne,c,v)??w[O]}catch{}let X=me(ne);X&&c[X]!==void 0&&k.push(O)}let V=$(w).trim(),U=k.filter(O=>w[O]!==!1&&p[O].type!=="text"&&!(/[^]{41}/.test(w[O])||/ .*[.!?]$/.test(w[O])&&!/[ .][A-Z]\w{0,3}\.$/.test(w[O]))&&$({...w,[O]:void 0}).trim()===V).map(O=>w[O]===!0?p[O].label??ke(O):pn(w[O],p[O].format,i(),[],b));return V&&U.length>0?`${V} (${U.join(", ")})`:V};J.push(tn(g,{input:he(z),title:x,...o.description?{description:o.description}:{},...o.fromTheOtherEnd?{fromTheOtherEnd:o.fromTheOtherEnd}:{},...I.has(q)?{subject:{kinds:r.length>0?r:"*",arg:q}}:{},...Y?{destructive:!0}:{},..._?{idempotent:!0}:{},...S.length>0?{creates:S}:{},...y.length>0?{connects:y}:{},...L.length>0?{severs:L}:{},writes:C,...Object.keys(P).length>0?{writesOther:P}:{},...Object.keys(H).length>0?{sets:H}:{},describe:(c,v)=>{let p=typeof c[q]=="string"?v.getNode(c[q]):void 0,w=p?$(p):Te(c,v);return w?`${x}: ${w}`:x},apply(c,v){let p=c.graph,w=typeof v[q]=="string"?v[q]:void 0,k=w?p.getNode(w):void 0;if(w&&!k&&se(w),k&&r.length>0&&!r.includes(k.kind))throw new W(`"${x}" acts on ${r.join(" or ")}, not on ${He(k.kind)}`,"invalid");let V={};for(let[s,l]of Object.entries(v))l!==void 0&&(V[s]=l);if(G&&k){let s;try{s=ie(G,{graph:p,subject:k,kinds:m,bindings:V,today:i()})}catch(l){throw l instanceof oe?new W(`"${x}" could not be judged: ${l.sentence}`):l}if(s!==!0)throw new W(M?ae(M,{node:k,kinds:m,graph:p,bindings:V,today:i(),money:b}):`"${x}" is not allowed for ${$(k)} right now`)}let U=new Map,O=s=>p.has(s)||[...U.values()].includes(s),ne=new Set,X=s=>{let l=en(s);ne.has(l)||(ne.add(l),c.removeEdge(s))},ee=(s,l)=>{let u=me(s);if(u==="subject")return w;if(u==="me"){let h=c.me;if(h&&n.kinds[p.getNode(h)?.kind]?.people)return h;throw new W(`"${x}" is done as you, and you have no record here`)}if(U.has(u))return U.get(u);try{return Q(s,V,p,l??k??null)}catch(h){throw h instanceof oe?new W(`"${x}" could not work out a value: ${h.sentence}`):h}};for(let s of T)if("create"in s){let l=n.kinds[s.create],u=N(s.create);for(let[ye,de]of Object.entries(s.set??{})){let Le=ee(de,void 0);Le!==void 0&&(u[ye]=Le)}let h=vn(l),j=c.freshId(String((h&&u[h])??s.create),s.create);c.addNode({...u,id:j}),s.as&&U.set(s.as,j)}else if("connect"in s||"sever"in s){let l="connect"in s?s.connect:s.sever,u=String(ee(s.from,void 0)??""),h=String(ee(s.to,void 0)??"");if(O(u)||se(u),O(h)||se(h),"connect"in s){if(f.get(l)?.cardinality==="one")for(let j of p.out(u,l))j.id!==h&&X({kind:l,from:u,to:j.id});p.out(u,l).some(j=>j.id===h)||c.addEdge({kind:l,from:u,to:h})}else X({kind:l,from:u,to:h})}else if("set"in s){let l=String(ee(s.target??"$subject",void 0)??""),u=p.getNode(l);!u&&!O(l)&&se(l);let h={};for(let[j,ye]of Object.entries(s.set)){let de=ee(ye,u);de!==void 0&&(h[j]=de)}Object.keys(h).length>0&&c.patchNode(l,h)}else if("remove"in s){let l=String(ee(s.remove,void 0)??"");p.has(l)||se(l),c.removeNode(l)}else if("replace"in s&&k){let l=v.to;for(let u of s.replace){let h=f.get(u)?.from.includes(k.kind)??!0;for(let j of h?p.out(k.id,u):p.in(k.id,u))u===s.keep&&j.id===l||X(h?{kind:u,from:k.id,to:j.id}:{kind:u,from:j.id,to:k.id})}}}}))}let Ee=[];for(let[g,o]of Object.entries(n.rules??{})){let{title:A,require:x,when:T,says:G}=e.rules[g],M=o.repairs??[],Y=(S,y,L=i(),C)=>{let P=[],H={graph:S,subject:y,kinds:m,today:L,...C?{linked:C}:{},onUnread:r=>P.push(r)},I;try{if(T&&ie(T,H)!==!0)return[];if(I=ie(x,H)===!0,!I&&P.length>0)throw new oe(`it reads ${cn(P[0])}`,0)}catch(r){throw r instanceof fn?new nn(r.sentence):r instanceof oe?new Error(r.sentence):r}if(I)return[];let z=M.flatMap(r=>{let d=n.acts?.[r.act],R={},Q=y&&d?.on&&d.fromTheOtherEnd&&![d.on].flat().includes(y.kind)?zn(e.acts[r.act].args,y.kind):void 0;Q?R[Q]=y.id:y&&(d?.on||/^(edit|remove|archive|unarchive|merge|skip|detach|split)-/.test(r.act))&&(R[q]=y.id);for(let[v,p]of Object.entries(r.args??{}))R[v]=me(p)==="subject"?y?.id:p;let c=(d?e.acts[r.act].args:[]).filter(([v,p])=>p.required&&R[v]===void 0).map(([v])=>v);return[{mutation:r.act,label:r.label??(Q?d.fromTheOtherEnd:d?.title)??r.act.replace(/-/g," "),args:R,...c.length>0?{missing:c}:{}}]});return[{invariant:g,...y?{subjectId:y.id}:{},label:A,message:G?ae(G,{node:y,kinds:m,graph:S,today:L,money:b}):y?`${$(y)}: ${A}`:A,nodeIds:y?[y.id]:[],repairs:z}]},_={label:A,shape:{over:o.over,require:x,when:T,says:G,declared:n.kinds,money:b,kinds:m,today:i},judgment:{require:o.require,...o.when?{when:o.when}:{},...o.says?{says:o.says}:{}},...o.description?{description:o.description}:{},...M.length>0?{repairs:M.map(S=>S.act)}:{}};Ee.push(o.over==="graph"?Oe(g,{scope:"graph",..._,evaluate:({graph:S,today:y,context:L})=>Y(S,null,y,L?.linked)}):Oe(g,{scope:{kind:o.over},..._,evaluate:({graph:S,subject:y,today:L,context:C})=>Y(S,y,L,C?.linked)}))}let De=n.policy&&{...n.policy,...n.roles?{roles:n.roles}:{}},ge={name:n.name,schema:B,mutations:J,invariants:Ee,...De?{policy:De}:{},...e.brand?{brand:e.brand}:{},...n.modules?{modules:n.modules}:{},...n.lenses?{lenses:n.lenses}:{},...n.pages?{pages:n.pages}:{},...n.settings?{settings:n.settings}:{},...n.connections?{connections:n.connections}:{},...n.forms?{forms:n.forms}:{},...n.publishing?{publishing:n.publishing}:{},...n.purpose?{purpose:n.purpose}:{},...e.viewSpecs?{viewSpecs:e.viewSpecs}:{},...e.home?{home:e.home}:{},version:n.version??1};return kn(ge,n),En.set(ge,e),{ok:!0,app:ge,document:n,findings:e.findings,sights:n.policy?.sees,kinds:m}}function Tn(e,a,n){let t=a||e.format==="duration",i=e.format==="money"||e.format==="percent"||!e.format&&e.unit!==void 0;if(!(!t&&!i))return{...e,...t?{as:"duration"}:{},...i?{amount:{...n,...e.format?{format:e.format}:{},...e.unit?{unit:e.unit}:{}}}:{}}}export{bn as a,Cn as b,wn as c,q as d,me as e,vn as f,lt as g,Dn as h};
@@ -1,25 +0,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 Ye}from"./chunk.SDO3U72B.js";import{$d as Rt,Ed as ao,Ia as Xn,L as Zn,Ma as kt,Oa as Jn,Ud as so,Vc as to,Yd as lo,_a as Qn,_d as Ue,dd as no,fd as oo,ld as ro,od as io,uc as eo}from"./chunk.7BBGRTXM.js";import{a as $e,b as H}from"./chunk.AJZBJBMO.js";var To=$e(w=>{"use strict";var _t=Symbol.for("react.transitional.element"),ti=Symbol.for("react.portal"),ni=Symbol.for("react.fragment"),oi=Symbol.for("react.strict_mode"),ri=Symbol.for("react.profiler"),ii=Symbol.for("react.consumer"),ai=Symbol.for("react.context"),si=Symbol.for("react.forward_ref"),li=Symbol.for("react.suspense"),di=Symbol.for("react.memo"),xo=Symbol.for("react.lazy"),ui=Symbol.for("react.activity"),So=Symbol.iterator;function ci(e){return e===null||typeof e!="object"?null:(e=So&&e[So]||e["@@iterator"],typeof e=="function"?e:null)}var Eo={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Po=Object.assign,Ao={};function he(e,t,n){this.props=e,this.context=t,this.refs=Ao,this.updater=n||Eo}he.prototype.isReactComponent={};he.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};he.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ko(){}ko.prototype=he.prototype;function Ht(e,t,n){this.props=e,this.context=t,this.refs=Ao,this.updater=n||Eo}var Dt=Ht.prototype=new ko;Dt.constructor=Ht;Po(Dt,he.prototype);Dt.isPureReactComponent=!0;var wo=Array.isArray;function Lt(){}var O={H:null,A:null,T:null,S:null},Ro=Object.prototype.hasOwnProperty;function Nt(e,t,n){var o=n.ref;return{$$typeof:_t,type:e,key:t,ref:o!==void 0?o:null,props:n}}function pi(e,t){return Nt(e.type,t,e.props)}function jt(e){return typeof e=="object"&&e!==null&&e.$$typeof===_t}function fi(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var vo=/\/+/g;function It(e,t){return typeof e=="object"&&e!==null&&e.key!=null?fi(""+e.key):t.toString(36)}function yi(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Lt,Lt):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function ge(e,t,n,o,r){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(i){case"bigint":case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case _t:case ti:a=!0;break;case xo:return a=e._init,ge(a(e._payload),t,n,o,r)}}if(a)return r=r(e),a=o===""?"."+It(e,0):o,wo(r)?(n="",a!=null&&(n=a.replace(vo,"$&/")+"/"),ge(r,t,n,"",function(c){return c})):r!=null&&(jt(r)&&(r=pi(r,n+(r.key==null||e&&e.key===r.key?"":(""+r.key).replace(vo,"$&/")+"/")+a)),t.push(r)),1;a=0;var s=o===""?".":o+":";if(wo(e))for(var l=0;l<e.length;l++)o=e[l],i=s+It(o,l),a+=ge(o,t,n,i,r);else if(l=ci(e),typeof l=="function")for(e=l.call(e),l=0;!(o=e.next()).done;)o=o.value,i=s+It(o,l++),a+=ge(o,t,n,i,r);else if(i==="object"){if(typeof e.then=="function")return ge(yi(e),t,n,o,r);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return a}function ot(e,t,n){if(e==null)return e;var o=[],r=0;return ge(e,o,"","",function(i){return t.call(n,i,r++)}),o}function mi(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var bo=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},gi={map:ot,forEach:function(e,t,n){ot(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ot(e,function(){t++}),t},toArray:function(e){return ot(e,function(t){return t})||[]},only:function(e){if(!jt(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};w.Activity=ui;w.Children=gi;w.Component=he;w.Fragment=ni;w.Profiler=ri;w.PureComponent=Ht;w.StrictMode=oi;w.Suspense=li;w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=O;w.__COMPILER_RUNTIME={__proto__:null,c:function(e){return O.H.useMemoCache(e)}};w.cache=function(e){return function(){return e.apply(null,arguments)}};w.cacheSignal=function(){return null};w.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var o=Po({},e.props),r=e.key;if(t!=null)for(i in t.key!==void 0&&(r=""+t.key),t)!Ro.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(o[i]=t[i]);var i=arguments.length-2;if(i===1)o.children=n;else if(1<i){for(var a=Array(i),s=0;s<i;s++)a[s]=arguments[s+2];o.children=a}return Nt(e.type,r,o)};w.createContext=function(e){return e={$$typeof:ai,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:ii,_context:e},e};w.createElement=function(e,t,n){var o,r={},i=null;if(t!=null)for(o in t.key!==void 0&&(i=""+t.key),t)Ro.call(t,o)&&o!=="key"&&o!=="__self"&&o!=="__source"&&(r[o]=t[o]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var s=Array(a),l=0;l<a;l++)s[l]=arguments[l+2];r.children=s}if(e&&e.defaultProps)for(o in a=e.defaultProps,a)r[o]===void 0&&(r[o]=a[o]);return Nt(e,i,r)};w.createRef=function(){return{current:null}};w.forwardRef=function(e){return{$$typeof:si,render:e}};w.isValidElement=jt;w.lazy=function(e){return{$$typeof:xo,_payload:{_status:-1,_result:e},_init:mi}};w.memo=function(e,t){return{$$typeof:di,type:e,compare:t===void 0?null:t}};w.startTransition=function(e){var t=O.T,n={};O.T=n;try{var o=e(),r=O.S;r!==null&&r(n,o),typeof o=="object"&&o!==null&&typeof o.then=="function"&&o.then(Lt,bo)}catch(i){bo(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),O.T=t}};w.unstable_useCacheRefresh=function(){return O.H.useCacheRefresh()};w.use=function(e){return O.H.use(e)};w.useActionState=function(e,t,n){return O.H.useActionState(e,t,n)};w.useCallback=function(e,t){return O.H.useCallback(e,t)};w.useContext=function(e){return O.H.useContext(e)};w.useDebugValue=function(){};w.useDeferredValue=function(e,t){return O.H.useDeferredValue(e,t)};w.useEffect=function(e,t){return O.H.useEffect(e,t)};w.useEffectEvent=function(e){return O.H.useEffectEvent(e)};w.useId=function(){return O.H.useId()};w.useImperativeHandle=function(e,t,n){return O.H.useImperativeHandle(e,t,n)};w.useInsertionEffect=function(e,t){return O.H.useInsertionEffect(e,t)};w.useLayoutEffect=function(e,t){return O.H.useLayoutEffect(e,t)};w.useMemo=function(e,t){return O.H.useMemo(e,t)};w.useOptimistic=function(e,t){return O.H.useOptimistic(e,t)};w.useReducer=function(e,t,n){return O.H.useReducer(e,t,n)};w.useRef=function(e){return O.H.useRef(e)};w.useState=function(e){return O.H.useState(e)};w.useSyncExternalStore=function(e,t,n){return O.H.useSyncExternalStore(e,t,n)};w.useTransition=function(){return O.H.useTransition()};w.version="19.2.8"});var W=$e((es,Mo)=>{"use strict";Mo.exports=To()});var Wo=$e(at=>{"use strict";var ki=Symbol.for("react.transitional.element"),Ri=Symbol.for("react.fragment");function jo(e,t,n){var o=null;if(n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),"key"in t){n={};for(var r in t)r!=="key"&&(n[r]=t[r])}else n=t;return t=n.ref,{$$typeof:ki,type:e,key:o,ref:t!==void 0?t:null,props:n}}at.Fragment=Ri;at.jsx=jo;at.jsxs=jo});var De=$e((us,Go)=>{"use strict";Go.exports=Wo()});var fe={focusId:null,relation:null,expanded:[],pins:{}},Ze=e=>{let t=Number(e);return Number.isFinite(t)?t:null};function Q(e){let t=new URLSearchParams;e.focusId&&t.set("focus",e.focusId),e.relation&&t.set("relation",e.relation),e.overview&&t.set("overview","1"),e.zoom&&t.set("zoom","1"),e.past&&t.set("past","1"),e.shown&&e.shown.length>0&&t.set("show",[...e.shown].sort().join(",")),e.selection!==void 0&&e.selection.length>0&&t.set("sel",[...e.selection].sort().join(",")),e.expanded.length>0&&t.set("expand",[...e.expanded].sort().join(","));for(let o of Object.keys(e.pins).sort()){let r=e.pins[o];t.set(`pin.${o}`,`${Xe(r.x)},${Xe(r.y)}`)}e.pan&&(e.pan.x!==0||e.pan.y!==0)&&t.set("pan",`${Xe(e.pan.x)},${Xe(e.pan.y)}`);for(let o of Object.keys(e.within??{}).sort()){let r=e.within[o];r.length>0&&t.set(`in.${o}`,r)}e.q&&e.q.trim().length>0&&t.set("q",e.q);let n=t.toString();return n?`#${n}`:"#"}function Yr(e){return e&&e.startsWith("agg:")?`aggregate:${e.slice(4)}`:e}function Je(e){let t=e.includes("#")?e.slice(e.indexOf("#")+1):e,n=new URLSearchParams(t),o=Object.create(null);for(let[g,y]of n){if(!g.startsWith("pin."))continue;let[m,b]=y.split(","),k=m===void 0?null:Ze(m),f=b===void 0?null:Ze(b);k===null||f===null||(o[g.slice(4)]={x:k,y:f})}let r=Object.create(null);for(let[g,y]of n)!g.startsWith("in.")||y.length===0||(r[g.slice(3)]=y);let i=n.get("view");i&&i.length>0&&r.view===void 0&&(r.view=i);let a=n.get("pan")?.split(",")??[],s=a[0]===void 0?null:Ze(a[0]),l=a[1]===void 0?null:Ze(a[1]),c=(n.get("sel")??"").split(",").filter(g=>g.length>0).sort(),u=n.get("overview")==="1";return{...c.length>0?{selection:c}:{},...u?{overview:!0}:{},...n.get("zoom")==="1"?{zoom:!0}:{},...n.get("past")==="1"?{past:!0}:{},...n.get("show")?{shown:[...new Set(n.get("show").split(",").filter(Boolean))].sort()}:{},...s!==null&&l!==null?{pan:{x:s,y:l}}:{},...Object.keys(r).length>0?{within:r}:{},...n.get("q")?.trim()?{q:n.get("q")}:{},focusId:Yr(n.get("focus")),relation:n.get("relation"),expanded:(n.get("expand")??"").split(",").filter(g=>g.length>0&&(u||!g.startsWith("kind:"))).sort(),pins:o}}function Da(e){let t=Je(e);return Q(t)==="#"?{...t,overview:!0}:t}function Na(e){let t=Q(e);return t==="#overview=1"?"":t}function Xe(e){return Math.round(e*100)/100}function co(e,t){return Q(e)===Q(t)}var uo="edge:";function po(e){if(!e.startsWith(uo))return null;let t=e.slice(uo.length).split(":");if(t.length!==3)return null;let[n,o,r]=t;if(!n||!o||!r)return null;try{return{kind:decodeURIComponent(n),from:decodeURIComponent(o),to:decodeURIComponent(r)}}catch{return null}}function Tt(e){let{pan:t,...n}=e;return{...n,pins:{}}}function z(e,t){if(t===e.focusId)return{...e,focusId:t};let n=Tt(e);return{...n.within?.q!==void 0?le(n,"q",null):n,focusId:t}}function fo(e,t){return{...e,relation:t}}function le(e,t,n){let o={...e.within??{}};if(n===null?delete o[t]:o[t]=n,Object.keys(o).length===0){let{within:r,...i}=e;return i}return{...e,within:o}}function ye(e,t){if(t!==e.overview&&(e=Tt(e)),!t){let n=e.expanded.filter(o=>!o.startsWith("kind:"));return{...e,overview:!1,expanded:n}}return{...e,overview:t}}function Qe(e,t){if(t.length===0){let{selection:n,...o}=e;return o}return{...e,selection:[...t]}}function _e(e,t){if(t!==(e.zoom===!0)&&(e=Tt(e)),!t){let{zoom:n,...o}=e;return o}return{...e,zoom:!0}}function et(e,t){let n=new Set(e.expanded);return n.has(t)?n.delete(t):n.add(t),{...e,expanded:[...n].sort()}}var nt="aggregate:",tt="kind:";function Mt(e){return`${tt}${e}`}function me(e){return e.startsWith(tt)?e.slice(tt.length):null}var Ga="kinds:beyond";function Zr(e){let t=me(e);return t?[t]:de(e)}function ee(...e){return`${nt}${[...e].sort().join("+")}`}function yo(e){return e.startsWith(nt)}function de(e){return!yo(e)||e.includes("|")?[]:e.slice(nt.length).split("+").filter(Boolean)}function mo(e,t,n={}){let o=me(t);if(o!==null&&e.overview&&n.ownPicture!==!0)return et(e,t);let r=o!==null?ee(o):t;if(e.zoom&&e.focusId===r&&!(o!==null&&n.carry))return _e(e,!1);if(o!==null&&n.carry){let i=ye({...z(e,r),relation:null},!1);return le(_e(i,!0),"q",n.carry)}return _e({...z(e,r),relation:null},!0)}function Xr(e,t,n){return le(ye(z(e,ee(t)),!1),"view",n)}function Fa(e,t){return e.id<t.id?-1:e.id>t.id?1:0}var go="aggregate:";function Ct(e){return e.startsWith(go)&&e.includes("|")}var Ot=e=>e?.off===!0,Jr=e=>e!==void 0&&!Ot(e)&&(e.fast!==void 0||e.thinking!==void 0||e.answer!==void 0||e.decide!==void 0||e.complete!==void 0||e.turn!==void 0),ho=e=>e!==void 0&&!Ot(e)&&(e.fast!==void 0||e.decide!==void 0),Qr=e=>e?.suggestOnOpen!==!1&&ho(e),ei=e=>e?.hoverChips===!0&&ho(e);var Vt={};var Co=H(W(),1),hi={turns:[],outcomes:new Map,busy:!1,pending:null,draft:null,draftNote:null},Oo=e=>`graview:seat:${e}`;function Si(e){if(!e)return{};try{let t=sessionStorage.getItem(e);if(!t)return{};let n=JSON.parse(t);return{...Array.isArray(n.turns)?{turns:n.turns}:{},...Array.isArray(n.outcomes)?{outcomes:new Map(n.outcomes)}:{},...n.draft?.drawn?{draft:n.draft}:{}}}catch{return{}}}function wi(e,t){if(e)try{sessionStorage.setItem(e,JSON.stringify({turns:t.turns.slice(-40),outcomes:[...t.outcomes],draft:t.draft}))}catch{}}function Wt(e){let t=e===null?null:Oo(e),n={...hi,...Si(t)},o=new Set,r=(i,a=!0)=>{n=i,a&&wi(t,n);for(let s of[...o])s()};return{get:()=>n,subscribe(i){return o.add(i),()=>void o.delete(i)},setTurns:i=>r({...n,turns:i(n.turns)}),settle:(i,a)=>r({...n,outcomes:new Map(n.outcomes).set(i,a)}),setBusy:i=>r({...n,busy:i},!1),ask:i=>r({...n,pending:i.trim()||null}),takePending(){let i=n.pending;return i!==null&&r({...n,pending:null},!1),i},setDraft:(i,a=null)=>r({...n,draft:i,draftNote:a})}}function vi(e){return(0,Co.useSyncExternalStore)(e.subscribe,e.get,e.get)}var Io=H(W(),1),bi={entries:[],ghost:null,loaded:!1};function Vo(e,t){let n=new Map(e.map(o=>[o.id,o]));for(let o of t)n.set(o.id,{...n.get(o.id),...o});return[...n.values()].sort((o,r)=>o.at<r.at?1:o.at>r.at?-1:0)}function Gt(e){let t=bi,n=new Set,o=r=>{t=r;for(let i of[...n])i()};return{get:()=>t,subscribe:r=>(n.add(r),()=>n.delete(r)),record:r=>{o({...t,entries:Vo(t.entries,[r])}),Promise.resolve(e()?.keep?.(r)).catch(i=>{console.warn("The host did not keep an AI interaction:",i)})},setGhost:r=>o({...t,ghost:r}),load:()=>{if(t.loaded)return;o({...t,loaded:!0});let r=e()?.load;r&&Promise.resolve(r()).then(i=>o({...t,entries:Vo(t.entries,i)})).catch(i=>{console.warn("The host's AI interactions could not be read:",i)})}}}function xi(e){return(0,Io.useSyncExternalStore)(e.subscribe,e.get,e.get)}function Lo(e){return e?.closest?.("[data-graview-pick]")?.getAttribute("data-graview-pick")??null}var rt=H(W(),1),it=(0,rt.createContext)(void 0),Ei=()=>(0,rt.useContext)(it);var P=H(W(),1),He=(0,P.createContext)(null);function Ho(){return(0,P.useContext)(He)}function Pi(e,t){let n=Ho(),o=(0,P.useMemo)(()=>n?n.live.seenBy(t):e,[n,e,t]),r=(0,P.useRef)(0),i=(0,P.useCallback)(a=>o.subscribe(()=>{r.current+=1,a()}),[o]);return(0,P.useSyncExternalStore)(i,()=>r.current,()=>0),o}var Do=Ye(()=>(__graviewPreload(import.meta.url,["./chunk.7ECBGIUK.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.SDLUWRGI.js")));function Ft(e){let[,t]=(0,P.useReducer)(o=>o+1,0),n=e.publishing?.mode==="on-publish"&&!no();return(0,P.useEffect)(()=>{n&&Do().then(t,()=>{})},[n]),!n}var _o,Ai=400;function Kt(e,t,n){let o=(0,P.useContext)(He),r=o!==null&&o.owns(e,t),[i,a]=(0,P.useState)(null),[s,l]=(0,P.useState)(_o);(0,P.useEffect)(()=>{if(s||r||i===null)return;let E=!0;return Do().then(I=>{_o=I,E&&l(I)},()=>{}),()=>{E=!1}},[s,r,i]);let[c,u]=(0,P.useState)(0),[g,y]=(0,P.useMemo)(()=>r||i===null||!s?[]:[i>=e.log.length?void 0:s.askArchived(e,i,n)??s.askDeclaration(n,i),s.keptOf(e,n)],[r,e,i,n,s,c]),m=g&&"waiting"in g?g.waiting:void 0,b=g&&"seq"in g?g:null,[k,f]=(0,P.useState)(void 0);(0,P.useEffect)(()=>{if(!m)return;let E=!0,I=setTimeout(()=>E&&f(m),Ai);return m.then(()=>E&&u(_=>_+1)),()=>{E=!1,clearTimeout(I)}},[m]);let S=m!==void 0&&k!==m||b!==null,v=(0,P.useMemo)(()=>{if(r||i===null||i>=e.log.length||!s||S)return null;try{let E=s.pastAt(e,i,n);return{seq:i,at:E.past?.at,store:E}}catch{return null}},[r,e,i,n,s,S,c]),A=(0,P.useRef)(null),x=S?A.current:v;(0,P.useEffect)(()=>{A.current=x},[x]);let F=(0,P.useCallback)(E=>a(E===null?null:E>=e.log.length?Number.POSITIVE_INFINITY:E),[e]),D=(0,P.useCallback)((E,I)=>[e,x?.store].some(_=>_!==void 0&&(_===E||_.seenBy(I)===E)),[e,x]),N=i!==null,V=(0,P.useMemo)(()=>({past:x,open:N,show:F,live:e,host:n,owns:D,archive:b,kept:y}),[x,N,F,e,n,D,b,y]);return r?o:V}var No=H(W(),1),Bt=(0,No.createContext)(null);var Fo=e=>`graview:setting:${e}`;function Ko(){return localStorage}function Bo(e,t){try{let n=(t??Ko()).getItem(Fo(e.name));if(n!==null&&e.options.some(o=>o.value===n))return n}catch{}return e.initial}function qo(e,t,n){try{(n??Ko()).setItem(Fo(e.name),t)}catch{}}function zo(e,t){if(typeof document>"u")return;let n=document.documentElement;if(e.honored==="root-font-size"){n.style.fontSize=t===e.initial?"":t;return}let o=`graview${e.name.replace(/-([a-z0-9])/g,(r,i)=>i.toUpperCase()).replace(/^[a-z]/,r=>r.toUpperCase())}`;t===e.initial?delete n.dataset[o]:n.dataset[o]=t}var L=H(W(),1);function qt(e){return Ue(e)}var Ti=12,Mi=4;function Ci(e,t,n){let o=qt(t);return e.get(o)??{participant:o,who:t.id??t.kind,at:null,mode:"docked",since:n,trail:[]}}var st=(e,t)=>t===null||e[e.length-1]===t?e:[...e,t].slice(-Ti);function $o(e,t){let n=e.filter(r=>r.length>0);if(n.length===0)return null;if(n.length<=Mi)return n[0];let o=new Set(n.map(r=>t(r)).filter(r=>r!==void 0));return o.size===1?Mt([...o][0]):n[0]}function zt(e,t,n){let o=new Map(e);if(t.type==="rest"){for(let[a,s]of e)s.mode!=="asking"&&s.mode!=="docked"&&t.at-s.since>=t.holdMs&&o.set(a,{...s,mode:"docked",at:null,trail:[],say:void 0,confidence:void 0});return o}if(t.author.kind!=="agent")return o;let r=Ci(e,t.author,t.at),i=a=>o.set(r.participant,{...r,...a,since:t.at});switch(t.type){case"read":{let a=$o(t.ids,n);return i({at:a,mode:"reading",trail:st(r.trail,a)}),o}case"about-to-write":case"write":{let a=$o(t.ids,n);return i({at:a,mode:"writing",trail:st(r.trail,a),say:void 0,confidence:void 0}),o}case"refused":return i({at:t.where,mode:"refused",say:t.say,confidence:void 0,trail:st(r.trail,t.where)}),o;case"asking":return i({at:t.where??r.at,mode:"asking",say:t.say,...t.confidence!==void 0?{confidence:t.confidence}:{confidence:void 0},trail:st(r.trail,t.where)}),o;case"said":return i({say:t.say,...t.confidence!==void 0?{confidence:t.confidence}:{confidence:void 0},...t.caption?{caption:t.caption}:{}}),o;case"over":return i({over:t.over}),o;case"home":return i({at:null,mode:"docked",trail:[],say:void 0,confidence:void 0,over:null}),o;default:return o}}var Uo="graview:session";function Yo(e){let t=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID().slice(0,8):Math.random().toString(36).slice(2,10);try{let n=e??sessionStorage,o=n.getItem(Uo);if(o)return o;let r=t();return n.setItem(Uo,r),r}catch{return t()}}var $t={name:"share-where",title:"Where you are",description:"Whether the others here see which stop you are on.",honored:"root-attribute",options:[{value:"shared",label:"Shown"},{value:"private",label:"Hidden"}],initial:"shared"},Ut={name:"share-over",title:"What you point at",description:"Whether the others see the thing under your pointer, outlined in your color.",honored:"root-attribute",options:[{value:"private",label:"Kept to yourself"},{value:"shared",label:"Outlined for others"}],initial:"private"},Zo=[$t,Ut],Oi=800;function Xo(e){let{channel:t,store:n,view:o,principal:r,session:i,robots:a,seatWho:s,settingValues:l,setView:c,ttlMs:u=lo,people:g,seats:y}=e,[m,b]=(0,L.useState)(()=>new Map),[k,f]=(0,L.useState)(null),[S,v]=(0,L.useState)(null),[A,x]=(0,L.useState)(null),F=typeof r.id=="string"&&r.id.length>0,D=F&&(l[$t.name]??$t.initial)==="shared",N=D&&(l[Ut.name]??Ut.initial)==="shared",V=qt({kind:r.kind,...r.id?{id:r.id}:{},session:i}),E=F?Qn(r,{graph:n.graph,schema:n.schema,...y?{seats:y}:{},...g?{people:g}:{}}):"",I=s?a.get(`agent:${s}:${i}`):void 0,_=(0,L.useMemo)(()=>!t||!D?null:{participant:V,kind:r.kind,name:E,...r.onBehalfOf?.id?{onBehalfOf:r.onBehalfOf.id,...r.onBehalfOf.name?{onBehalfOfName:r.onBehalfOf.name}:{}}:{},hue:eo(r.id??"nobody"),stop:A??Q(o),...N?{over:k}:{},...I?{robot:{at:I.at,mode:I.mode}}:{},at:new Date().toISOString()},[t,D,N,V,E,r.id,r.kind,r.onBehalfOf?.id,r.onBehalfOf?.name,o,A,k,I?.at,I?.mode]),We=(0,L.useRef)(null),Pe=R=>R&&t?.here({...R,caret:We.current??void 0,at:new Date().toISOString()}),Ae=(0,L.useCallback)(R=>{We.current=R,Pe(_)},[t,_]);(0,L.useEffect)(()=>{if(!_)return;Pe(_);let R=setInterval(()=>Pe(_),Oi);return()=>clearInterval(R)},[t,_]),(0,L.useEffect)(()=>t?t.onWho(B=>b(Rt(new Map,B,Date.now(),u))):void 0,[t,u]);let ke=m.size>0;(0,L.useEffect)(()=>{if(!ke)return;let R=setInterval(()=>{b(B=>{let X=Rt(B,[],Date.now(),u);return X.size===B.size?B:X})},Math.max(250,Math.min(1e3,u/4)));return()=>clearInterval(R)},[ke,u]),(0,L.useEffect)(()=>{if(!t||typeof window>"u")return;let R=()=>t.leave();return window.addEventListener("pagehide",R),()=>window.removeEventListener("pagehide",R)},[t]),(0,L.useEffect)(()=>{if(!N||typeof document>"u")return;let R=null,B=X=>{let ie=Lo(X.target);ie!==R&&(R=ie,f(ie))};return document.addEventListener("pointermove",B,{passive:!0}),()=>document.removeEventListener("pointermove",B)},[N]);let ue=(0,L.useRef)(null),K=S?m.get(S)??null:null,oe=(0,L.useCallback)(R=>{ue.current=null,v(R)},[]);(0,L.useEffect)(()=>{if(S){if(!K){v(null);return}K.stop!==ue.current?.stop&&(ue.current={stop:K.stop,at:Date.now()},c(Je(K.stop)))}},[S,K,c]),(0,L.useEffect)(()=>{let R=ue.current;!S||R===null||Date.now()-R.at<400||co(o,Je(R.stop))||v(null)},[o,S]),(0,L.useEffect)(()=>{if(!S||typeof document>"u")return;let R=B=>{B.key==="Escape"&&v(null)};return document.addEventListener("keydown",R),()=>document.removeEventListener("keydown",R)},[S]);let Re=_!==null,re=(0,L.useMemo)(()=>Re?{participant:V,name:E}:null,[Re,V,E]);return(0,L.useMemo)(()=>({who:m,sharing:re,following:K,follow:oe,sayWhere:x,sayCaret:Ae}),[m,re,K,oe,Ae])}var U=H(W(),1);function Jo(e){return Ue(e.author)}function Vi(e,t){return e.length>1?"co-edited":t==="rule"?"rule":t==="agent"?"autonomous":"directed"}function Qo(e,t,n,o,r){let i=new Map;for(let[l,c]of e)o-c.at<r&&i.set(l,c);let a=new Set(n.flatMap(l=>l.nodeIds)),s=(l,c,u)=>{let g=i.get(l),y=g?.participants.includes(Jo(c))?g.participants:[...g?.participants??[],Jo(c)];i.set(l,{at:o,manner:Vi(y,c.author.kind),intent:c.intent,wrote:(g?.wrote??!1)||(u.wrote??!1),read:(g?.read??!1)||(u.read??!1),broke:(g?.broke??!1)||a.has(l),participants:y})};for(let l of t){for(let c of l.writes)s(c,l,{wrote:!0});for(let c of l.reads)l.writes.includes(c)||s(c,l,{read:!0})}for(let l of n)for(let c of l.nodeIds){let u=i.get(c);i.set(c,{at:o,manner:u?.manner??"rule",intent:u?.intent??l.message,wrote:u?.wrote??!1,read:u?.read??!1,broke:!0,participants:u?.participants??["rule::"]})}return i}var Ii=2600;function er(e,t=Ii){let[n,o]=(0,U.useState)(()=>new Map),r=(0,U.useRef)(n);r.current=n;let i=(0,U.useRef)(null),a=(0,U.useCallback)(l=>{r.current=l,o(l),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r.current=new Map,o(new Map)},t)},[t]);(0,U.useEffect)(()=>{let l=e.violations(),c=e.subscribe((u,g)=>{let y=e.violations(),m=io(e.allInvariants(),l,y).introduces;l=y,a(Qo(r.current,g,m.map(b=>({nodeIds:b.nodeIds,message:b.message})),Date.now(),t))});return()=>{c(),i.current&&clearTimeout(i.current)}},[e,t,a]);let s=(0,U.useCallback)(l=>{l.reads.length!==0&&a(Qo(r.current,[Li(l)],[],Date.now(),t))},[t,a]);return{activity:n,noteAttention:s}}function Li(e){return{id:`attention:${e.intent}`,seq:-1,batch:"attention",author:e.author,intent:e.intent,mutation:null,primitives:[],reads:e.reads,writes:[],at:new Date().toISOString()}}var d=H(W(),1);function tr(){let e=null,t=new Set,n=new Set,o=r=>{for(let i of n)i(r)};return{subscribe(r){return t.add(r),t.size===1&&o(!0),()=>{t.delete(r),t.size===0&&(e=null,o(!1))}},snapshot:()=>e,set(r){if(!(e===r||e&&r&&e.x===r.x&&e.y===r.y)){e=r;for(let i of t)i()}},get listeners(){return t.size},onActive(r){return n.add(r),()=>void n.delete(r)}}}var lt=H(W(),1),_i=e=>e.definitions.some(t=>Xn(t).size>0);function nr(e,t,n){let[o,r]=(0,lt.useState)(void 0),i=(n.roles??[]).join("\0");return(0,lt.useEffect)(()=>{if(!t||!_i(e.schema)){r(void 0);return}let a=!0,s=!1,l=e.graph,c=()=>{s||(s=!0,queueMicrotask(()=>{s=!1,a&&e.reread()}))},u=Jn(t,{kind:n.kind,...n.id===void 0?{}:{id:n.id},...n.roles?{roles:n.roles}:{}},c);return kt(l,u.read),r(u),e.reread(),()=>{a=!1,kt(l,void 0)}},[e,t,n.kind,n.id,i]),o}function or(){let e=!1,t=new Set;return{moving:()=>e,set(n){if(n!==e){e=n;for(let o of t)o()}},subscribe(n){return t.add(n),()=>t.delete(n)}}}var te=H(De(),1),Hi="graview:place-menu",Ne=(0,d.createContext)(null),sr=(0,d.createContext)("scene");function Di({mode:e,children:t}){return(0,te.jsx)(sr.Provider,{value:e,children:t})}function Ni(){return(0,d.useContext)(sr)}var lr={kind:"human"},ji=[],Wi=[],Gi=[],Yt=[];function dr(e,t){let n=(0,d.useId)();(0,d.useEffect)(()=>{if(!globalThis.__graviewWatch)return;let o=t??lr,r=()=>ro(e,o,n);r();let i,a=e.subscribe(()=>{clearTimeout(i),i=setTimeout(r,250)});return()=>{clearTimeout(i),a(),globalThis.__graviewWatch?.unseen?.({words:[],from:n,gone:!0})}},[e,t,n])}var Fi=()=>{try{return typeof location<"u"&&new URLSearchParams(location.search).get("as")==="published"?"published":void 0}catch{return}},Ki={off:!0};function Bi({store:e,views:t,initialView:n,scheme:o="dark",initialSelection:r,principal:i,as:a,seats:s=ji,onSeat:l,people:c=Wi,memory:u,presenceTtlMs:g,app:y,settings:m=y?.settings??Gi,presence:b,typing:k,brand:f,locale:S,timeZone:v,onKeepLens:A,providers:x,ai:F,files:D,resolveApp:N,history:V,linkedRecords:E,menuSections:I,keptViews:_,onExport:We,subscriptions:Pe,dismissals:Ae,whileAway:ke,signIn:ue,view:K,onViewChange:oe,children:Re}){let re=(0,d.useContext)(Ne),R=I??re?.menuSections,B=ue??re?.signIn,X=_??re?.keptViews,ie=We??re?.onExport,[_r,Hr]=(0,d.useState)(null),ce=_r??i??s[0]?.principal??lr,Ge=Kt(e,ce,V),fn=Ge.past&&Ge.live===e?Ge.past.store:e,wt=a??Fi(),vt=!Ft(e),j=(0,d.useMemo)(()=>vt?e:fn.seenBy(ce,wt?{as:wt}:void 0),[vt,e,fn,ce,wt]);dr(e,ce);let[ae]=(0,d.useState)(()=>Yo(u)),[yn,Dr]=(0,d.useState)(!1),mn=(0,d.useCallback)(()=>Dr(!0),[]),se=(0,d.useMemo)(()=>b?[...m,...Zo]:m,[m,b]),[bt]=(0,d.useState)(()=>n??Qt(t,e.schema)),[Nr,gn]=(0,d.useState)(()=>Qe(bt??fe,r??bt?.selection??[])),Te=(0,d.useRef)(bt??fe).current,[hn,jr]=(0,d.useState)(null),[Sn,Wr]=(0,d.useState)(null),Z=(0,d.useContext)(Ne),[wn]=(0,d.useState)(()=>Z?.seatTalk??Wt(f?.name??e.schema.kinds.join(","))),xt=F??Z?.ai??Vt,Fe=(0,d.useMemo)(()=>xt.off?Ki:xt,[xt]),vn=(0,d.useRef)(Fe.interactions);vn.current=Fe.interactions;let[bn]=(0,d.useState)(()=>Z?.aiDesk??Gt(()=>vn.current)),[Gr]=(0,d.useState)(()=>Z?.subscriptions??oo()),xn=Pe??Z?.subscriptions??Gr,Et=A??Z?.onKeepLens,Ke=y??Z?.app,Be=S??Z?.locale,Fr=f?.locale??Ke?.brand?.locale,qe=v??Z?.timeZone;Zn({reader:Be,app:Fr,readerTimeZone:qe,appTimeZone:f?.timeZone??Ke?.brand?.timeZone});let En=(0,d.useRef)(null),Pn=(0,d.useCallback)(p=>{En.current=p},[]),An=(0,d.useCallback)(p=>En.current?.whereIs(p)??null,[]),[kn]=(0,d.useState)(()=>tr()),[Rn]=(0,d.useState)(()=>or()),[Pt,Kr]=(0,d.useState)(null),[Me,Tn]=(0,d.useState)(()=>new Map),Ce=(0,d.useRef)(Me);Ce.current=Me;let Oe=(0,d.useRef)(null),At=(0,d.useCallback)(p=>j.graph.getNode(p)?.kind,[j]),J=(0,d.useCallback)(p=>{let h=zt(Ce.current,p,At);Ce.current=h,Tn(h),Oe.current&&clearTimeout(Oe.current),[...h.values()].some(C=>C.mode!=="docked"&&C.mode!=="asking")&&(Oe.current=setTimeout(()=>{let C=zt(Ce.current,{type:"rest",at:Date.now(),holdMs:Jt},At);Ce.current=C,Tn(C)},Jt+20))},[At]),Mn=(0,d.useCallback)(p=>J({...p,at:p.at??Date.now()}),[J]),Cn=(0,d.useCallback)(p=>{Kr(p),p&&J({type:"home",author:{kind:"agent",id:p,session:ae},at:Date.now()})},[J,ae]);(0,d.useEffect)(()=>j.subscribe((p,h)=>{for(let T of h)T.author.kind==="agent"&&J({type:"write",author:T.author,ids:T.writes,at:Date.now()})}),[j,J]),(0,d.useEffect)(()=>()=>{Oe.current&&clearTimeout(Oe.current)},[]);let $=(0,d.useMemo)(()=>({...ce,session:ae}),[ce,ae]),On=nr(j,E,$),Vn=(0,d.useCallback)(p=>{Hr(p),l?.(p)},[l]),[Ve,Br]=(0,d.useState)(()=>Object.fromEntries(se.map(p=>[p.name,Bo(p,u)])));(0,d.useEffect)(()=>{for(let p of se)zo(p,Ve[p.name]??p.initial)},[se,Ve]);let In=(0,d.useCallback)((p,h)=>{let T=se.find(C=>C.name===p);!T||!T.options.some(C=>C.value===h)||(qo(T,h,u),Br(C=>({...C,[p]:h})))},[se,u]),[Ln,qr]=(0,d.useState)(null),{activity:_n,noteAttention:Hn}=er(j),Dn=(0,d.useCallback)(p=>{Hn(p),J({type:"read",author:p.author,ids:p.reads,at:Date.now()})},[Hn,J]),pe=(0,d.useCallback)(p=>{if(me(p)!==null||de(p).length>0||Ct(p))return!0;let h=po(p);return h?j.graph.allEdges().some(T=>T.kind===h.kind&&T.from===h.from&&T.to===h.to):j.graph.getNode(p)!==void 0},[j]),Nn=(0,d.useCallback)(p=>{let h=p.selection??Yt,T=h.filter(pe),C=T.length===h.length?p:Qe(p,T);return C.focusId!==null&&!pe(C.focusId)&&(C=z(C,null)),C},[pe]),Ie=(0,d.useCallback)(p=>{let h=Nn(p),T=ar(j,$,h.shown);if(h.focusId!==null&&T.size>0){let C=de(h.focusId),Yn=j.graph.getNode(h.focusId);(C.length>0?C.every(Ur=>T.has(Ur)):Yn?T.has(Yn.kind):!1)&&(h={...h,focusId:null})}if(!h.overview&&h.focusId===null){let C=Te.focusId!==null&&!pe(Te.focusId)?Qt(t,e.schema)??{...fe,overview:!0}:Te;C.focusId!==null&&pe(C.focusId)?h={...h,focusId:C.focusId}:C.overview===!0&&(h={...h,overview:!0})}return h},[Nn,pe,j,Te,$,t,e.schema]),q=Ie(K??Nr),jn=(0,d.useMemo)(()=>ar(j,$,q.shown),[j,$,q.shown]),Wn=(0,d.useMemo)(()=>[...j.modules.administered.entries()].map(([p,h])=>{let T=j.mayAdminister(p,$);return{name:p,...h.description?{description:h.description}:{},kinds:h.kinds??[],canShow:T,shown:T&&(q.shown??[]).includes(p)}}),[j,$,q.shown]),Le=(0,d.useCallback)(p=>{let h=T=>Ie(typeof p=="function"?p(T):p);if(K!==void 0){oe?.(h(K));return}oe&&oe(h(q)),gn(T=>h(T))},[q,oe,K,Ie]);(0,d.useEffect)(()=>{K===void 0&&gn(p=>{let h=Ie(p);return h===p?p:h})},[q,K,Ie]);let Gn=q.selection??Yt,Fn=(0,d.useCallback)(p=>{Le(h=>Qe(h,typeof p=="function"?p(h.selection??Yt):p))},[Le]),{who:ze,following:Kn,follow:Bn,sayWhere:zr,sayCaret:qn,sharing:zn}=Xo({channel:b,store:j,view:q,principal:$,session:ae,robots:Me,seatWho:Pt,settingValues:Ve,setView:Le,seats:s,people:c,...g!==void 0?{ttlMs:g}:{}}),$r=(0,d.useMemo)(()=>({store:j,scheme:o,views:t,view:q,setView:Le,homeView:Te,selection:Gn,setSelection:Fn,menuAt:hn,setMenuAt:jr,whereIs:An,pointer:kn,motion:Rn,registerScene:Pn,robots:Me,noteSeat:Mn,seatWho:Pt,registerSeatWho:Cn,actsDoor:Sn,registerActsDoor:Wr,seatTalk:wn,aiDesk:bn,...u?{memory:u}:{},who:ze,following:Kn,follow:Bn,sayWhere:zr,sharing:zn,session:ae,ai:Fe,resolveApp:N,linkedRecords:E,menuSections:R,...X?{keptViews:X}:{},...ie?{onExport:ie}:{},subscriptions:xn,dismissals:Ae,whileAway:ke,signIn:B,linkedReads:On,movedByHand:yn,noteMoved:mn,emphasis:Ln,setEmphasis:qr,activity:_n,noteAttention:Dn,principal:$,seats:s,people:c,takeSeat:Vn,settings:se,settingValues:Ve,chooseSetting:In,hiddenKinds:jn,administered:Wn,...x?{providers:x}:{},...f?{brand:f}:{},...Et?{onKeepLens:Et}:{},app:Ke,...Be?{locale:Be}:{},...qe?{timeZone:qe}:{}}),[j,o,t,q,Le,Gn,Fn,hn,An,kn,Rn,Pn,Me,Mn,Pt,Cn,Sn,wn,bn,u,ze,Kn,Bn,zn,ae,Fe,N,E,R,X,ie,xn,Ae,ke,B,On,yn,mn,Ln,_n,Dn,$,s,c,Vn,se,Ve,In,jn,Wn,x,f,Et,Ke,Be,qe]),$n=(0,d.useMemo)(()=>k?{typing:k,sayCaret:qn,who:ze}:null,[k,qn,ze]),Un=D?(0,te.jsx)(it.Provider,{value:D,children:Re}):Re;return(0,te.jsx)(Ne.Provider,{value:$r,children:(0,te.jsx)(He.Provider,{value:Ge,children:(0,te.jsx)(Yi,{children:vt?null:$n?(0,te.jsx)(Bt.Provider,{value:$n,children:Un}):Un})})})}var ur=(0,d.createContext)(null),Zt,Xt=new Set,qi=e=>(Xt.add(e),()=>void Xt.delete(e)),rr=()=>Zt;function zi(e){if(!Zt){Zt=e;for(let t of[...Xt])t()}}var $i=300;function Ui(e){let t=0;return async(n,o)=>{let r=++t;return await new Promise(i=>setTimeout(i,$i)),r===t?e(n,o):[]}}function Yi({children:e}){let{store:t,view:n,views:o,principal:r,hiddenKinds:i,selection:a,ai:s}=ne(),l=dt(),c=n.q,u=n.focusId,g=!!(c&&c.trim().length>0),y=(0,d.useSyncExternalStore)(qi,rr,rr),m=(0,d.useMemo)(()=>g&&y?{flagged:new Set(t.violations().flatMap(A=>A.nodeIds)),touched:y.touchWeights(t.log.all())}:null,[t,l,g,y]),b=u?t.graph.getNode(u)?.kind??me(u)??(de(u).length===1?de(u)[0]:void 0):void 0,k=(0,d.useMemo)(()=>s.near&&Ui(s.near),[s.near]),f=(0,d.useMemo)(()=>!c||!m||!y?null:y.search(t,c,{...b?{inKind:b}:{},principal:r,places:o.places(),kinds:t.schema.kinds.filter(A=>!i.has(A)),from:[...a,...u&&t.graph.has(u)?[u]:[]],flagged:m.flagged,touched:m.touched,limit:200,rank:k}),[t,c,r,o,i,a,u,b,m,k]),[S,v]=(0,d.useState)();return(0,d.useEffect)(()=>void f?.later?.then(A=>v([f,A])),[f]),(0,te.jsx)(ur.Provider,{value:S?.[0]===f?S[1]:f,children:e})}var ir=new WeakMap;function Gs(e){let t=ir.get(e);return t||ir.set(e,t=new Set(e.matched)),t}function Zi(){return(0,d.useContext)(ur)}function ne(){let e=(0,d.useContext)(Ne);if(!e)throw new Error("useGraview must be used inside a <GraviewProvider>.");return e}function en(){return(0,d.useContext)(Ne)??null}function dt(){let{store:e}=ne(),t=(0,d.useRef)(null),n=(0,d.useRef)(null),o=(0,d.useCallback)(()=>(n.current!==e&&(n.current=e,t.current=null),t.current??=e.graph.allNodes(),t.current),[e]),r=(0,d.useCallback)(i=>e.subscribe(()=>{t.current=null,i()}),[e]);return(0,d.useSyncExternalStore)(r,o,o)}function Xi(e){let{store:t}=ne(),n=(0,d.useCallback)(r=>t.subscribe(r),[t]),o=(0,d.useCallback)(()=>e===null?void 0:t.graph.getNode(e),[t,e]);return(0,d.useSyncExternalStore)(n,o,o)}function ar(e,t,n){let o=new Set(e.modules.disabledKinds);for(let r of e.kindsKeptFrom(t))o.add(r);for(let[r,i]of e.modules.administered)if(!(e.mayAdminister(r,t)&&(n??[]).includes(r)))for(let a of i.kinds??[])o.add(a);return o}var Jt=2600;var cr=new WeakSet,Ji=e=>cr.has(e),Qi=e=>void cr.add(e);function Qt(e,t){let n=so(e.arrangement?.()?.first,t,e.places());if(!(!n||n.to==="home"))return n.to==="place"?{...fe,focusId:ee(n.place.kind),within:{view:n.place.as}}:{...fe,focusId:ee(n.kind)}}var pr=H(W(),1),ea=(0,pr.createContext)(!1);var ut=Symbol.for("graview.default-view");function fr(e){return Object.defineProperty(e,ut,{value:!0,enumerable:!1}),e}function yr(e){return typeof e=="function"&&e[ut]===!0}var ct=Symbol.for("graview.replaces-page");function mr(e){return Object.defineProperty(e,ct,{value:!0,enumerable:!1}),e}function gr(e){return typeof e=="function"&&e[ct]===!0}var pt=Symbol.for("graview.bleeds");function hr(e){return Object.defineProperty(e,pt,{value:!0,enumerable:!1}),e}function Sr(e){return typeof e=="function"&&e[pt]===!0}var ft=Symbol.for("graview.previews");function wr(e,t={}){return Object.defineProperty(e,ft,{value:t,enumerable:!1}),e}function vr(e){return typeof e=="function"?e[ft]:void 0}function ta(e){return ao(e)}function na(e,t){if(t===e)return e;for(let r of t.registrations())e.register(r.kind,r,r.view,r);let n=t.arrangement?.();n&&e.arrange?.(n);let o=t.homes?.()??[];if(o.length>0)for(let r of o)e.home?.(r.view,r.name!==void 0?{name:r.name}:void 0);else{let r=t.homeView?.();r&&e.home?.(r)}return e}var M=H(W(),1),Y=H(De(),1),tn=new Set,yt=0;function nn(e){return()=>{yt+=1;let t=e();return t.then(()=>void(yt-=1),()=>void(yt-=1)),t}}var oa=()=>yt,gt=(0,M.createContext)(null);function ra(){return{waiting:new Map,at:0}}function ia(e){for(let[t,n]of e.waiting)n<e.at&&e.waiting.delete(t);e.at+=1}var aa=e=>e?.waiting.size??0;function Er(e,t){e?.waiting.set(t,e.at)}function Pr(e){let t=(0,M.useContext)(gt);(0,M.useLayoutEffect)(()=>{t?.waiting.delete(e)},[t,e])}function sa(e){let t={},n=!1,o=new Set,r=(0,M.lazy)(nn(()=>e().then(a=>{n=!0;let s=a.default;function l(c){return Pr(t),(0,M.createElement)(s,c)}return{default:l}},a=>{for(let s of o)s.waiting.delete(t);throw a})));function i(a){let s=(0,M.useContext)(gt);return!n&&s&&(o.add(s),Er(s,t)),(0,M.createElement)(r,a)}return i}var Ar=!1,kr=!1,mt=new Set;function la(){Ar=!0}function da(){kr=!0;for(let e of[...mt])e();mt.clear()}var Rr=()=>kr||!Ar;function ua(e){return Rr()?(e(),()=>{}):(mt.add(e),()=>void mt.delete(e))}var br=!1;function on(){for(let e of[...tn])e()}function ca(){br||typeof window>"u"||(br=!0,window.addEventListener("online",on))}function rn(e){let t,n=!1,o=!1,r,i=0,a=new Set,s=()=>{i+=1;for(let y of[...a])y()},l=y=>(a.add(y),()=>void a.delete(y)),c=()=>i,u=()=>void g().catch(()=>{});function g(){if(n)return Promise.resolve(t);if(r)return r;let y=e().then(m=>(t=m,n=!0,o=!1,r=void 0,tn.delete(u),s(),m),m=>{throw r=void 0,o=!0,tn.add(u),ca(),s(),m});return y.catch(()=>{}),r=y,y}return{load:g,prefetch:u,get current(){return t},get failed(){return o},part(y,m={}){let b=m.what??"This part",k={};function f(A){(0,M.useSyncExternalStore)(l,c,c),Pr(k);let x=(0,M.useRef)(null),F=(0,M.useRef)(null),D=(0,M.useRef)(!1);return(0,M.useEffect)(()=>{o&&r===void 0&&u()},[]),n&&typeof document<"u"&&x.current!==null&&document.activeElement===x.current&&(D.current=!0),(0,M.useLayoutEffect)(()=>{if(!(!n||!D.current)){D.current=!1;for(let N=F.current?.nextElementSibling??null;N!==null;N=N.nextElementSibling){let V=N.matches(xr)?N:N.querySelector(xr);if(V instanceof HTMLElement){V.focus();return}}}}),n?(0,Y.jsxs)(Y.Fragment,{children:[D.current?(0,Y.jsx)("span",{ref:F,hidden:!0}):null,y(t,A)]}):m.quiet?null:(0,Y.jsx)(pa,{what:b,button:x,...m.as?{as:m.as}:{}})}let S=(0,M.lazy)(nn(()=>g().then(()=>({default:f}),()=>({default:f}))));function v(A){let x=(0,M.useContext)(gt),[F]=(0,M.useState)(()=>n||o);return!n&&!o&&Er(x,k),(0,M.createElement)(F?f:S,A)}return v}}}var xr="button,a[href],input,select,textarea,[tabindex]:not([tabindex='-1'])";function pa({what:e,button:t,as:n="p"}){let r=typeof navigator<"u"&&navigator.onLine===!1?`${e} will load when you're back online.`:`${e} didn't load.`;return(0,Y.jsxs)(n,{"data-testid":"lazy-part-missing",style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-muted)"},children:[(0,Y.jsx)("span",{role:"status",children:r})," ",(0,Y.jsx)("button",{ref:t,type:"button","data-testid":"lazy-part-retry",onClick:on,style:{font:"inherit",fontWeight:600,color:"var(--graview-ink)",background:"none",border:"1px solid var(--graview-edge)",borderRadius:6,padding:"2px 10px"},children:"Try again"})]})}var we=H(W(),1);function fa(){let{selection:e,setSelection:t}=ne();return(0,we.useMemo)(()=>({selection:e,set:n=>t(n),clear:()=>t([]),toggle:n=>t(o=>o.includes(n)?o.filter(r=>r!==n):[...o,n]),isSelected:n=>e.includes(n)}),[e,t])}function ya(){let{store:e}=ne(),t=dt();return(0,we.useMemo)(()=>ma(e),[e,t])}var Tr=new WeakMap;function ma(e){let t=Tr.get(e);if(!t){let n={violations:null};e.subscribe(()=>{n.violations=null}),Tr.set(e,n),t=n}return t.violations??=e.violations(),t.violations}function ga(){let{view:e,setView:t}=ne();return(0,we.useMemo)(()=>({view:e,url:Q(e),focus:n=>t(o=>z(o,n)),show:n=>t(o=>fo(o,n)),toggle:n=>t(o=>et(o,n)),go:n=>t(n)}),[e,t])}var Se={at:0,depth:0,listeners:new Set,tell(){for(let e of this.listeners)e()}};typeof window<"u"&&window.addEventListener("popstate",e=>{let t=e.state;Se.at=typeof t?.graview=="number"?t.graview:0,Se.at>Se.depth&&(Se.depth=Se.at),Se.tell()});var G=H(W(),1),sn={profile:{trigger:"profile-button",pane:"profile",opens:"press",focus:"into",drawn:["shell","embed"]},problems:{trigger:"standing",pane:"problems",opens:"press",focus:"into",drawn:["shell","embed"]},places:{trigger:"app-places-open",pane:"app-places",opens:"press",focus:"into",drawn:["embed"]},here:{trigger:"here-open",pane:"here-list",opens:"press",focus:"into",drawn:["shell","embed","pages"]},suggested:{trigger:"suggested-button",pane:"suggested",opens:"press",focus:"into",drawn:["shell","embed","pages"]},activity:{trigger:"activity-button",pane:"activity",opens:"press",focus:"into",drawn:["shell","embed","pages"]},find:{trigger:"find-box",pane:"find-strip",opens:"typing",focus:"stays",drawn:["shell"]},districts:{trigger:"beyond-more",pane:"beyond-list",opens:"press",focus:"into",drawn:["shell","embed"]},acts:{trigger:null,pane:"context-menu",opens:"context-menu",focus:"into",drawn:["shell","embed","pages"]},arrange:{trigger:"arrange-add",pane:"arrange-list",opens:"press",focus:"into",drawn:["pages"]},"studio-ask":{trigger:"studio-agent",pane:"studio-agent-panel",opens:"press",focus:"into",drawn:["studio"]}},ha={position:"fixed",inset:"auto",margin:0,zIndex:to("popover"),boxSizing:"border-box"},ht=6,ve=8,Sa=e=>typeof e.showPopover=="function";function St(e){try{return e.matches(":popover-open")}catch{return!1}}function wa(e){if(typeof e=="function"){let o=e();return o?{left:o.x,right:o.x,top:o.y,bottom:o.y}:null}let t=e.current;if(!t||!t.isConnected)return null;let n=t.getBoundingClientRect();return{left:n.left,right:n.right,top:n.top,bottom:n.bottom}}function ln(e,t,n={}){let o=wa(t);if(!o)return;let r={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},i=e.dataset.graviewDesignedHeight??=e.style.maxHeight;e.style.maxHeight=i;let a=e.getBoundingClientRect(),s=r.height-o.bottom-ht-ve,l=o.top-ht-ve,c=a.height<=s||s>=l,u=Math.max(96,Math.floor(c?s:l)),g=Math.min(a.height,u);a.height>u&&(e.style.maxHeight=i?`min(${i}, ${u}px)`:`${u}px`);let y=a.width,m=n.align==="start"?o.left:o.right-y,b=typeof t=="function"?null:t.current?.closest("[data-graview-embed]")?.getBoundingClientRect();b&&y<=b.right-b.left&&(m<b.left?m=o.left+y<=b.right?o.left:b.left:m+y>b.right&&(m=o.right-y>=b.left?o.right-y:b.right-y));let k=y>=r.width-2*ve?Math.max(0,(r.width-y)/2):Math.max(ve,Math.min(m,r.width-ve-y)),f=c?o.bottom+ht:Math.max(ve,o.top-ht-g);e.style.left=`${Math.round(k)}px`,e.style.top=`${Math.round(f)}px`}function Mr(e,t,n,o={}){let r=o.align??"end";(0,G.useLayoutEffect)(()=>{let i=e.current;if(!t||!i)return;if(Sa(i)&&!St(i))try{i.showPopover(),ba()}catch{}let a=0,s=c=>{c?.target instanceof Node&&i.contains(c.target)||(cancelAnimationFrame(a),a=requestAnimationFrame(()=>ln(i,n,{align:r})))};ln(i,n,{align:r}),addEventListener("resize",s),addEventListener("scroll",s,!0);let l=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>s());return l?.observe(i),()=>{if(cancelAnimationFrame(a),removeEventListener("resize",s),removeEventListener("scroll",s,!0),l?.disconnect(),i.isConnected&&St(i))try{i.hidePopover()}catch{}}},[t,e,r])}var dn=new Set;function va(e){return dn.add(e),()=>dn.delete(e)}function ba(){for(let e of dn)if(!(!e.isConnected||!St(e)))try{e.hidePopover(),e.showPopover()}catch{}}var be=null,xa='button:not([disabled]), [href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), summary, [tabindex]:not([tabindex="-1"])';function Ea(e){for(let t of e.querySelectorAll(xa))if(t.closest("[hidden]")===null&&getComputedStyle(t).visibility!=="hidden")return t;return e}var an=()=>{let e=document.activeElement;return e===null||e===document.body};function Pa(e,t={}){let{at:n,returnTo:o,onOpenChange:r}=t,i=t.popover!==!1,[a,s]=(0,G.useState)(!1),l=t.open??a,c=(0,G.useRef)(null),u=(0,G.useRef)(null),g=(0,G.useCallback)(v=>{c.current=v},[]),y=(0,G.useCallback)(v=>{u.current=v},[]),m=`graview-popover-${(0,G.useId)().replace(/:/g,"")}`,b=(0,G.useRef)({onOpenChange:r,returnTo:o,controlled:t.open!==void 0});b.current={onOpenChange:r,returnTo:o,controlled:t.open!==void 0};let k=(0,G.useCallback)(v=>{b.current.controlled||s(v),b.current.onOpenChange?.(v)},[]),f=(0,G.useCallback)(()=>{(document.querySelector(`[aria-controls="${m}"]`)??c.current??b.current.returnTo?.()??null)?.focus({preventScroll:!0})},[m]),S=(0,G.useCallback)(v=>{let A=u.current,x=typeof document>"u"?null:document.activeElement,F=x===null||x===document.body||A!==null&&A.contains(x);k(!1),!(!v||!F)&&(f(),requestAnimationFrame(()=>{an()&&f()}))},[k,f]);return Mr(u,i&&l,n??c,t.align?{align:t.align}:{}),(0,G.useEffect)(()=>{if(!i||!l)return;let v={name:e,close:()=>S(!1)};if(be&&be.close!==v.close&&be.close(),be=v,sn[e].focus==="into"){let V=u.current;V&&!V.contains(document.activeElement)&&Ea(V).focus({preventScroll:!0})}let A=V=>{V.key==="Escape"&&S(!0)},x=V=>{let E=V.target;if(!(E instanceof Node))return;let I=u.current;if(I?.contains(E)||c.current?.contains(E))return;let _=E instanceof Element?E.closest('[role="dialog"], [role="alertdialog"]'):null;_&&!(I&&_.contains(I))||(S(!1),sn[e].focus==="into"&&requestAnimationFrame(()=>{(an()||I!==null&&I.contains(document.activeElement))&&f()}))},F=null,D=null,N=V=>{let E=V.target;if(!(E instanceof Element))return;let I=u.current,_=E.closest('[role="dialog"], [role="alertdialog"]');!_||I&&(I.contains(_)||_.contains(I))||(F=_,S(!1))};return document.addEventListener("keydown",A),document.addEventListener("pointerdown",x,!0),document.addEventListener("focusin",N),()=>{document.removeEventListener("keydown",A),document.removeEventListener("pointerdown",x,!0),document.removeEventListener("focusin",N);let V=F;V&&typeof MutationObserver<"u"&&(D?.disconnect(),D=new MutationObserver(()=>{V.isConnected||(D?.disconnect(),requestAnimationFrame(()=>{(an()||document.activeElement.closest("[hidden]")!==null)&&f()}))}),D.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>D?.disconnect(),10*6e4)),be?.close===v.close&&(be=null)}},[i,l,e,S,f]),{open:l,setOpen:v=>v?k(!0):S(!0),toggle:()=>l?S(!0):k(!0),trigger:{ref:g,"aria-expanded":l,"aria-controls":m,"data-graview-popover-trigger":e},pane:{ref:y,id:m,popover:"manual",tabIndex:-1,"data-graview-popover":e,"data-graview-overlay":""}}}var xe=H(W(),1);var Cr=(0,xe.createContext)(null);function Aa(){let e=(0,xe.useContext)(Cr),t=en(),n=(o,r,i)=>t?.setView(a=>le(le(ye(z(a,ee(o)),!1),"view",r),"filter",i?.filter??null));return(0,xe.useMemo)(()=>e??{record:o=>{t&&(t.setView(r=>z(ye(r,!1),o)),t.setSelection([o]))},place:(o,r)=>{let i=t?.views.places().find(a=>a.as===o);i&&n(i.kind,i.as,r)},list:(o,r)=>n(o,null,r)},[e,t])}var Ee=H(W(),1);var ka=rn(Ye(()=>(__graviewPreload(import.meta.url,["./chunk.HT2BEOEV.js","./chunk.SDO3U72B.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.6W7O5YLL.js"))));function Ra(e,t,n){let o,r=!1,i=()=>{let{hidden:s,removed:l}=t.current();o||r||s.length+l.length===0||(o=()=>{},ka.load().then(c=>{r||(o=c.watchTidied(e,t,n))},String))};i();let a=t.onChange?.(i);return()=>{r=!0,a?.(),o?.()}}function Ta(e,t){let[n,o]=(0,Ee.useState)();return(0,Ee.useEffect)(()=>t?Ra(e,t,r=>o([e,r])):void 0,[e,t]),n?.[0]===e?n[1]:e}var Or=H(W(),1),Ma=(0,Or.createContext)(!1);var un=H(W(),1),Ca=(0,un.createContext)(null),Oa=(0,un.createContext)(null);var Vr=H(W(),1),Va=(0,Vr.createContext)(null);var Ir=H(W(),1),cn='button:not([disabled]), a[href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), summary, [tabindex]:not([tabindex="-1"])',pn=e=>e instanceof HTMLElement&&(e.matches(cn)||e.hasAttribute("tabindex")),je=e=>typeof e.checkVisibility=="function"?e.checkVisibility():e.getClientRects().length>0;function Ia(e,t){let n=l=>l.replace(/["\\]/g,"\\$&"),o=t.getAttribute("data-testid"),r=t.getAttribute("data-graview-pick"),i=t.getAttribute("aria-label"),a=o?`[data-testid="${n(o)}"]`:r?`[data-graview-pick="${n(r)}"]`:i?`${t.tagName.toLowerCase()}[aria-label="${n(i)}"]`:null;if(!a)return null;let s=e.querySelector(a);return s&&pn(s)&&je(s)?s:null}var La=e=>e.isConnected&&pn(e)&&!e.matches(":disabled")&&e instanceof HTMLElement&&je(e);function Lr(e,t){let n=t?Ia(e,t):null;if(n)return n;let o=e.querySelector("[data-graview-view][tabindex]");if(o&&je(o))return o;for(let r of e.querySelectorAll(cn))if(je(r))return r;return pn(e)&&je(e)?e:null}function _a(e){(0,Ir.useEffect)(()=>{let t=e.current;if(!t||typeof MutationObserver>"u")return;let n=[],o=f=>{let S=f.target;if(S instanceof Element){n=[];for(let v=S;v&&v!==t.parentElement;v=v.parentElement)n.push(v)}},r=!1,i=!1,a=t.ownerDocument,s=()=>!i&&a.defaultView!==null,l=(f,S)=>void setTimeout(()=>s()&&S(),f),c=f=>void requestAnimationFrame(()=>s()&&f()),u=f=>{if(r=!1,i)return;let S=a.activeElement;if(!(!(S===null||S===a.body||S===a.documentElement)||n.length===0)){if(La(n[0])){f&&n[0]instanceof HTMLElement&&n[0].focus({preventScroll:!0});return}for(let A of n.slice(1)){if(!A.isConnected)continue;let x=Lr(A,n[0]);if(x){x.focus({preventScroll:!0}),n=[];return}}}},g=(f,S=Date.now()+2500)=>{l(100,()=>{u(f);let v=a.activeElement;(v===null||v===a.body||v===a.documentElement)&&n.length>0&&Date.now()<S&&g(f,S)})},y=()=>{r||n.length===0||(r=!0,l(60,()=>c(()=>{u(!1),g(!1)})))},m=f=>{if(!(f instanceof KeyboardEvent&&!["Enter"," ","Escape"].includes(f.key))){if(!(f instanceof KeyboardEvent)){let S=f.target instanceof Element?f.target.closest(cn):null,v=a.activeElement,A=v===null||v===a.body||v===a.documentElement;if(S&&A&&t.contains(S)){n=[];for(let x=S;x&&x!==t.parentElement;x=x.parentElement)n.push(x);l(150,()=>c(()=>{u(!1),g(!1)}));return}}!(f instanceof KeyboardEvent)&&!(f.target instanceof Node&&n[0]?.contains(f.target))||l(150,()=>c(()=>{u(!0),g(!0)}))}},b=new MutationObserver(()=>{n.length>0&&!n[0].isConnected&&y()}),k=f=>{f.relatedTarget===null&&y()};return t.addEventListener("focusin",o),t.addEventListener("focusout",k),t.addEventListener("click",m),t.addEventListener("keydown",m),b.observe(t,{childList:!0,subtree:!0}),()=>{i=!0,t.removeEventListener("focusin",o),t.removeEventListener("focusout",k),t.removeEventListener("click",m),t.removeEventListener("keydown",m),b.disconnect()}},[e])}export{fe as a,Q as b,Je as c,Da as d,Na as e,co as f,uo as g,po as h,Tt as i,z as j,fo as k,le as l,ye as m,Qe as n,_e as o,et as p,nt as q,Mt as r,me as s,Ga as t,Zr as u,ee as v,yo as w,de as x,mo as y,Xr as z,Fa as A,go as B,Ct as C,Jr as D,Qr as E,ei as F,W as G,Wt as H,vi as I,xi as J,Lo as K,it as L,Ei as M,He as N,Ho as O,Pi as P,Ft as Q,Kt as R,Bt as S,De as T,Hi as U,Ne as V,Di as W,Ni as X,dr as Y,Bi as Z,zi as _,Gs as $,Zi as aa,ne as ba,en as ca,dt as da,Xi as ea,Ji as fa,Qi as ga,Qt as ha,Cr as ia,Aa as ja,ea as ka,fr as la,yr as ma,mr as na,gr as oa,hr as pa,Sr as qa,wr as ra,vr as sa,ta,na as ua,nn as va,oa as wa,gt as xa,ra as ya,ia as za,aa as Aa,sa as Ba,la as Ca,da as Da,Rr as Ea,ua as Fa,rn as Ga,Ta as Ha,Ma as Ia,Ca as Ja,Oa as Ka,Va as La,fa as Ma,ya as Na,ga as Oa,Se as Pa,_a as Qa,ha as Ra,St as Sa,Mr as Ta,va as Ua,Pa as Va};
2
- /*! Bundled license information:
3
-
4
- react/cjs/react.production.js:
5
- (**
6
- * @license React
7
- * react.production.js
8
- *
9
- * Copyright (c) Meta Platforms, Inc. and affiliates.
10
- *
11
- * This source code is licensed under the MIT license found in the
12
- * LICENSE file in the root directory of this source tree.
13
- *)
14
-
15
- react/cjs/react-jsx-runtime.production.js:
16
- (**
17
- * @license React
18
- * react-jsx-runtime.production.js
19
- *
20
- * Copyright (c) Meta Platforms, Inc. and affiliates.
21
- *
22
- * This source code is licensed under the MIT license found in the
23
- * LICENSE file in the root directory of this source tree.
24
- *)
25
- */
@@ -1 +0,0 @@
1
- import"./chunk.WVUJXDXZ.js";import{k as m,m as i}from"./chunk.LDAYDCUO.js";import"./chunk.KKNDX4JT.js";import"./chunk.GKSUTAIX.js";import"./chunk.5ICIMQE6.js";import"./chunk.QGV7H7RQ.js";import"./chunk.YIA2EDVF.js";import"./chunk.27CW6SCT.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";function a(t){let r=new Map;return(s,o)=>{let e=o.kind,n=r.get(e);return n===void 0&&r.set(e,n=i(t,e).length),n===0?{}:m(t,s,o).values}}export{a as computedOn};
@@ -1 +0,0 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o}from"./chunk.LY3YOWKV.js";import"./chunk.G4JJXA63.js";import"./chunk.LL2MLSPH.js";import"./chunk.EB4NVTJL.js";import"./chunk.XU34T2H4.js";import"./chunk.XOZU4OFA.js";import"./chunk.BB33TI4S.js";import"./chunk.2EDC63RI.js";import"./chunk.WVUJXDXZ.js";import"./chunk.LDAYDCUO.js";import"./chunk.KKNDX4JT.js";import"./chunk.GKSUTAIX.js";import"./chunk.5ICIMQE6.js";import"./chunk.QGV7H7RQ.js";import"./chunk.YIA2EDVF.js";import"./chunk.3YZHZGTM.js";import"./chunk.EQTSV7BK.js";import"./chunk.27CW6SCT.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{i as draftAnswer,h as draftFromLens,b as draftSight,l as draftView,a as isDraftFailure,c as judgeLens,d as lensEditOf,f as lensFromSpec,j as recipeDraft,g as recipeOfLens,m as refineDraft,o as runDraftTool,e as takeBackEditOf,k as templateDraft,n as withReaderLenses};
@@ -1 +0,0 @@
1
- import{i as n}from"./chunk.GCBZ3WE2.js";import"./chunk.GDOTG7YA.js";import"./chunk.EPPXZZPK.js";import"./chunk.KFQSYCY3.js";import"./chunk.LCPGZK7G.js";import"./chunk.NKC3JILT.js";import"./chunk.HEWVPXRE.js";import"./chunk.43OKZU73.js";import"./chunk.WNSC3RWD.js";import"./chunk.ACYDJQRC.js";import"./chunk.S5MGE2U5.js";import"./chunk.34TW32TB.js";import"./chunk.WVUJXDXZ.js";import{e as p}from"./chunk.LDAYDCUO.js";import"./chunk.KKNDX4JT.js";import"./chunk.GKSUTAIX.js";import"./chunk.5ICIMQE6.js";import"./chunk.QGV7H7RQ.js";import"./chunk.YIA2EDVF.js";import"./chunk.GZHZLJBF.js";import"./chunk.ELERUERU.js";import"./chunk.OJGHDWI6.js";import"./chunk.YHTE34RN.js";import"./chunk.3YZHZGTM.js";import"./chunk.EQTSV7BK.js";import"./chunk.27CW6SCT.js";import"./chunk.YD3TKV6P.js";import"./chunk.4KC35UNR.js";import{T as m}from"./chunk.HT2BEOEV.js";import"./chunk.SDO3U72B.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import{b as t}from"./chunk.AJZBJBMO.js";var i=t(m(),1),a=new WeakMap;function l(o){let e=a.get(o);if(!e){let r=p(o);e=c=>c.mode==="fullscreen"?(0,i.jsx)(n,{blocks:r,slot:"home",heading:2,firstHeading:1}):(0,i.jsx)(n,{blocks:r,slot:"home",heading:3,firstHeading:2}),a.set(o,e)}return e}export{l as homeView};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk.WNQFHMNR.js";import"./chunk.7SQAKSJD.js";import"./chunk.EB4NVTJL.js";import"./chunk.VG7OWV2H.js";import"./chunk.KXPRILAO.js";import"./chunk.BB33TI4S.js";import"./chunk.LDAYDCUO.js";import"./chunk.KKNDX4JT.js";import"./chunk.GKSUTAIX.js";import"./chunk.5ICIMQE6.js";import"./chunk.QGV7H7RQ.js";import"./chunk.YIA2EDVF.js";import"./chunk.3YZHZGTM.js";import"./chunk.EQTSV7BK.js";import"./chunk.27CW6SCT.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{b as actOnSeveral,a as actsForSeveral};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk.2VYNNWW5.js";import"./chunk.TF5I4VHX.js";import"./chunk.TWKXSLYY.js";import"./chunk.6VC6AGYV.js";import{l as s}from"./chunk.IDJPBWL2.js";import"./chunk.UGFDSE37.js";import"./chunk.PXQVXBNG.js";import"./chunk.BTVBZ6KE.js";import"./chunk.3OYGXYQY.js";import"./chunk.GCBZ3WE2.js";import"./chunk.GDOTG7YA.js";import"./chunk.EPPXZZPK.js";import"./chunk.KFQSYCY3.js";import"./chunk.WQOI6BLM.js";import"./chunk.LCPGZK7G.js";import"./chunk.NKC3JILT.js";import"./chunk.HEWVPXRE.js";import"./chunk.LMN4TSAP.js";import"./chunk.HS3GHAUR.js";import"./chunk.LRUNFSHP.js";import"./chunk.43OKZU73.js";import"./chunk.WNSC3RWD.js";import"./chunk.ACYDJQRC.js";import"./chunk.S5MGE2U5.js";import"./chunk.34TW32TB.js";import"./chunk.BJUUSIQY.js";import"./chunk.VG7OWV2H.js";import"./chunk.KXPRILAO.js";import"./chunk.XOZU4OFA.js";import"./chunk.BB33TI4S.js";import"./chunk.MB7LKKUD.js";import"./chunk.WVUJXDXZ.js";import"./chunk.LDAYDCUO.js";import"./chunk.KKNDX4JT.js";import"./chunk.GKSUTAIX.js";import"./chunk.5ICIMQE6.js";import"./chunk.QGV7H7RQ.js";import"./chunk.YIA2EDVF.js";import"./chunk.GZHZLJBF.js";import"./chunk.ELERUERU.js";import"./chunk.OJGHDWI6.js";import"./chunk.YHTE34RN.js";import"./chunk.3YZHZGTM.js";import"./chunk.EQTSV7BK.js";import"./chunk.27CW6SCT.js";import"./chunk.YD3TKV6P.js";import"./chunk.4KC35UNR.js";import{G as y,T as i}from"./chunk.HT2BEOEV.js";import"./chunk.SDO3U72B.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import{b as r}from"./chunk.AJZBJBMO.js";var c=r(y(),1),e=r(i(),1);function v({store:d,views:t,as:a,scope:o}){let l=(0,c.useMemo)(()=>s({scope:`.${o}`}),[o]);return(0,e.jsxs)("div",{"data-testid":"embed-picture","data-embed-content":"",tabIndex:0,"aria-label":t.places().find(m=>m.as===a)?.title??"The picture",style:{flex:"1 1 auto",minHeight:0,display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",background:"var(--graview-ground)",color:"var(--graview-ink)",fontFamily:"var(--graview-font-body, system-ui)"},children:[(0,e.jsx)("style",{children:l}),(0,e.jsx)(n,{store:d,views:t,as:a})]})}export{v as PictureFace};
@@ -1 +0,0 @@
1
- import{d as K}from"./chunk.HZB5F476.js";import{$b as Y,Db as V,ac as X,dc as B,h as P,jb as G,k as R,lc as $,mc as N,oa as q,q as I,rb as h,sb as v,x as _}from"./chunk.7BBGRTXM.js";import{a as T,c as C,h as L}from"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var te=Symbol.for("@graview/core:markdown"),ne=500;function ie(e){let n=e;for(let i=0;i<6;i++){let t=N(n);if(!t)return!1;if(t[$]!==void 0)return t[$]===1;if(t[te]===1)return!0;if(t.type==="string")return(t.checks??[]).some(s=>{let p=N(s);return p?.check==="max_length"&&(p.maximum??0)>ne});if(t.innerType===void 0)return!1;n=t.innerType}return!1}function O(e,n,i){if(n===void 0||i==="id"||i==="kind")return!1;let t=e.tryDefinition(n)?.fields?.shape;return!!t&&Object.prototype.hasOwnProperty.call(t,i)&&ie(t[i])}var re=e=>e>=55296&&e<=56319,oe=e=>e>=56320&&e<=57343;function S(e,n){let i=Math.min(e.length,n.length),t=0;for(;t<i&&e.charCodeAt(t)===n.charCodeAt(t);)t++;t>0&&re(e.charCodeAt(t-1))&&t--;let s=0;for(;s<i-t&&e.charCodeAt(e.length-1-s)===n.charCodeAt(n.length-1-s);)s++;return s>0&&oe(e.charCodeAt(e.length-s))&&s--,{at:t,removed:e.slice(t,e.length-s),inserted:n.slice(t,n.length-s)}}var w=e=>e.at+e.removed.length;function H(e){let n=S(e.removed,e.inserted);return{...n,at:e.at+n.at}}function U(e,n,i){if(w(e)<n.at)return e;if(e.at>w(n))return{...e,at:e.at+n.inserted.length-n.removed.length};let t=Math.min(e.at,n.at),s=w(e)-w(n),p=e.removed.slice(0,n.at-t)+n.inserted+(s>0?e.removed.slice(e.removed.length-s):""),r=n.at<e.at||n.at===e.at&&i;return H({at:t,removed:p,inserted:r?n.inserted+e.inserted:e.inserted+n.inserted})}function b(e,n){return[U(e,n,!1),U(n,e,!0)]}function D(e,n){let i=e.at+e.inserted.length;if(w(n)<e.at||n.at>i)return;let t=Math.min(e.at,n.at),s=w(n)-i,p=n.removed.slice(0,e.at-t),r=s>0?n.removed.slice(n.removed.length-s):"",f=T(p+e.inserted+r,{...n,at:n.at-t});return H({at:t,removed:p+e.removed+r,inserted:f})}function M(e,n,i){switch(e.op){case"patch-node":return e.id===n&&Object.prototype.hasOwnProperty.call(e.after,i);case"add-node":case"remove-node":return e.node.id===n;default:return!1}}function j(e,n,i){if(e.op!=="patch-node"||e.id!==n||!Object.prototype.hasOwnProperty.call(e.after,i))return;let t=e.before[i],s=e.after[i];return typeof s=="string"&&(t===void 0||t===""||C(t))?{at:0,removed:"",inserted:s}:void 0}var J=(e,n,i)=>e.flatMap(t=>t.op==="splice-text"&&t.id===n&&t.field===i?[t]:[]);function E(e,n,i,t,s,p){if(typeof p!="string"||s<n-1)return;let r=[];for(let o of e)if(!(o.seq<=s))for(let c of o.primitives){let a=j(c,i,t);if(a){r.push(a);continue}if(M(c,i,t))return;c.op==="splice-text"&&c.id===i&&c.field===t&&r.push(c)}let f=p;try{for(let o=r.length-1;o>=0;o--){let c=r[o];f=T(f,{at:c.at,removed:c.inserted,inserted:c.removed})}}catch{return}return{then:f,since:r}}function A(e,n){let i=e;for(let t of n)i=b(t,i)[1];return{at:i.at,removed:i.removed,inserted:i.inserted}}function Q(e,n,i){let t=i?A(S(i.then,n),i.since):S(e,n);return t.removed===""&&t.inserted===""?void 0:t}function Z(e){let n=e.schema,i=t=>{throw new V(t,"invalid")};return{name:h,title:"Type text",input:I({node:P(),field:P(),at:R(),remove:R(),insert:P(),rev:_(R())}),subject:{kinds:"*",arg:"node"},writes:[],describe:(t,s)=>{let{node:p,field:r,insert:f,remove:o}=t;return K({node:p,field:r,inserted:[...String(f??"")].length,removed:Number(o)||0},n,s)},apply(t,s){let{node:p,field:r,at:f,remove:o,insert:c,rev:a}=s;(![f,o,a??0].every(k=>Number.isInteger(k)&&k>=-1)||f<0||o<0)&&i("at and remove are whole numbers, none below 0, and rev a revision");let d=t.graph.getNode(p);if(!d)throw new G(p,"\u201CType text\u201D names a record that is not there.");if(O(n,d.kind,r)||i(`${q(n.tryDefinition(d.kind),d.kind)}'s "${r}" is not text typed together: write it whole, as its edit does`),o===0&&c==="")return;let l=d[r];if(typeof l!="string"||l===""){t.patchNode(p,{[r]:c});return}let g=e.graph.getNode(p)?.[r],m=a===void 0?{then:l,since:[]}:E(e.log.all(),e.log.horizon,p,r,Math.max(a,-1),g);m||i(`${r} was written whole since revision ${a}: read it again and type over what it holds now`);let{then:u,since:y}=m;f+o>u.length&&i(`${r} held ${u.length} characters at revision ${a??"now"}, so there is nothing at ${f}${o>0?`\u2013${f+o}`:""} to type over`);let x=A({at:f,removed:u.slice(f,f+o),inserted:c},y);x.removed===""&&x.inserted===""||t.emit({op:"splice-text",id:p,field:r,...x})}}}function ee(e,n,i,t){let s=i===void 0?void 0:e.tryDefinition(i);if(!s||typeof t!="string")return[];let p=new Set;for(let r of n)if(!(r.name===h||!Y(e,r).includes(i)||!X(r,s).includes(t))){p.add(r.name);for(let f of B(e,n,r)??[])p.add(f)}return[...p]}function se(e,n,i){if(!n.some(r=>r.op==="patch-node"))return[...n];let t=new Set,s=new Set,p=[];for(let r of n){if(r.op==="add-node"&&t.add(r.node.id),r.op!=="patch-node"||t.has(r.id)){r.op==="splice-text"&&s.add(`${r.id}\0${r.field}`),p.push(r);continue}let f=e.graph.getNode(r.id),o={},c={},a=[];for(let[d,l]of Object.entries(r.after)){let g=f?.[d],m=`${r.id}\0${d}`;if(typeof l=="string"&&typeof g=="string"&&g!==""&&!s.has(m)&&O(e.schema,f?.kind,d)){let u=i?.find(x=>x.node===r.id&&x.field===d),y=Q(g,l,u?E(e.log.all(),e.log.horizon,r.id,d,u.rev,g):void 0);if(y){a.push({op:"splice-text",id:r.id,field:d,...y}),s.add(m);continue}}o[d]=r.before[d],c[d]=l,s.add(m)}Object.keys(c).length>0&&p.push(a.length>0?{op:"patch-node",id:r.id,before:o,after:c}:r),p.push(...a)}return p}function de(e,n){let i=[];return[...n].sort((t,s)=>s.seq-t.seq).map(t=>{let s=L(t);if(!s.some(o=>o.op==="splice-text"))return i.push(...s),{op:t,primitives:s};let p=e.filter(o=>o.seq>t.seq).flatMap(o=>o.primitives),r=t.primitives.length,f=[];return s.forEach((o,c)=>{if(o.op!=="splice-text")return void f.push(o);let a=A(o,J([...t.primitives.slice(r-c),...p,...i,...f],o.id,o.field));(a.removed!==""||a.inserted!=="")&&f.push({op:"splice-text",id:o.id,field:o.field,...a})}),i.push(...f),{op:t,primitives:f}})}function ae(e,n){let i=(t,s)=>e.some(p=>M(p,t,s));return n.undoes!==void 0&&n.primitives.length===0&&e.some(t=>t.op==="splice-text")||n.primitives.length>0&&n.primitives.every(t=>t.op==="splice-text"&&!i(t.id,t.field))?!0:e.flatMap(t=>t.op==="splice-text"&&n.primitives.some(s=>M(s,t.id,t.field))?[t.id]:[])}function le(e,n,i){let t=new Map,s=[],p=new Set;for(let a of e){let d=a.primitives[0],l=a.mutation?.args,g=a.mutation?.name!==h||a.primitives.length!==1||!d?void 0:d.op==="splice-text"?d:j(d,String(l?.node),String(l?.field));g?s.push({batch:a.batch,node:String(l?.node),field:String(l?.field),splice:g}):p.add(a.batch)}if(s.length===0)return t;let r=a=>`${a.node}\0${a.field}`,f=new Set,o=new Set(e.map(a=>a.batch).filter(a=>!i.includes(a))),c=s;for(let a of n){if(o.has(a.batch)){c=c.filter(d=>d.batch!==a.batch);continue}for(let d of a.primitives){if(d.op==="add-edge"||d.op==="remove-edge")continue;let l=d.op==="add-node"||d.op==="remove-node"?d.node.id:d.id;for(let g of new Set(c.filter(m=>m.node===l).map(m=>m.field))){let m=d.op==="splice-text"?d.field===g?d:void 0:j(d,l,g);for(let u of c)u.node!==l||u.field!==g||(m?[m,u.splice]=b(m,u.splice):M(d,u.node,u.field)&&f.add(r(u)))}}}c.forEach((a,d)=>{if(!o.has(a.batch))return;let l={at:a.splice.at,removed:a.splice.inserted,inserted:a.splice.removed};for(let g of c.slice(d+1))r(g)===r(a)&&([l,g.splice]=b(l,g.splice))});for(let a of i){let d=c.filter(l=>l.batch===a);d.length===0||p.has(a)||d.some(l=>f.has(r(l)))||t.set(a,d.map(l=>({name:h,args:{node:l.node,field:l.field,at:l.splice.at,remove:l.splice.removed.length,insert:l.splice.inserted}})))}return t}v.typeText=Z;v.via=ee;v.collaborative=O;v.asSplices=se;v.undone=de;v.aside=ae;v.carried=le;function Ye(e){let{store:n,author:i,pending:t,provisional:s,asked:p}=e,r=new Map,f=(o,c)=>{r.get(o)?.(c),r.delete(o)};return{store:n,apply:(o,c)=>e.appliedAll(o,{...i?{author:i}:{},...c!==void 0?{batch:c}:{}}),hold(o){t.push(o),s.add(o),e.answers.set(o,new Promise(c=>r.set(o,c)))},ask:(o,c)=>void p.set(o,{calls:c}),send(o,c){p.set(o,{calls:c});let a=e.sent(o,c),d=()=>f(o,a);return a.then(l=>{Array.isArray(l?.ops)&&l.ops.length===0&&e.letGo.add(o),d()},d),a},drop(o){e.letGo.add(o),e.settle(o),p.delete(o),e.land([],[o]),f(o)},seen:e.seen,gone:e.gone,ahead(o,c,a){let d=t.indexOf(o),l=n.log.all(),g=m=>l.some(u=>u.batch===m&&u.primitives.some(y=>y.op==="splice-text"&&y.id===c&&y.field===a||y.op==="patch-node"&&y.id===c&&a in y.after));return t.slice(0,Math.max(0,d)).flatMap(m=>{let u=e.answers.get(m);return u&&g(m)?[{batch:m,answer:u}]:[]})}}}var pe=400,ce=/[\s.,;:!?)\]}]$/u,W=e=>typeof e=="string"?e:"";function z(e,n,i,t){let s=e.log.all(),p=s.findIndex(o=>o.batch===n);if(p<0)return;let r=W(e.graph.getNode(i)?.[t]),f;for(let o=s.length-1;o>=p;o--){let c=s[o];c.batch===n&&f===void 0&&(f=r);for(let a=c.primitives.length-1;a>=0;a--){let d=c.primitives[a];d.op==="splice-text"&&d.id===i&&d.field===t?r=T(r,{at:d.at,removed:d.inserted,inserted:d.removed}):d.op==="patch-node"&&d.id===i&&t in d.after&&(r=C(d.before[t])?"":W(d.before[t]))}}if(!(f===void 0||f===r))return S(r,f)}function Xe(e,n,i){let t,s=[],p,r,f=!1,o=new Set,c=l=>({name:h,args:{node:e,field:n,at:l.at,remove:l.removed.length,insert:l.inserted,rev:i.seen()}}),a=()=>{r&&clearTimeout(r),r=void 0,t!==void 0&&s.push(t),t=void 0,d()},d=()=>{if(p!==void 0||f||i.gone())return;let l=s.shift();if(l===void 0)return;let g=i.ahead(l,e,n).filter(u=>!o.has(u.batch));if(g.length>0){s.unshift(l),f=!0,Promise.allSettled(g.map(u=>u.answer)).then(()=>{for(let u of g)o.add(u.batch);f=!1,d()});return}let m=z(i.store,l,e,n);if(!m)return i.drop(l),d();p=l,i.send(l,[c(m)]).finally(()=>{p=void 0,d()})};return{splice(l,g,m){if(i.gone())return;let u=W(i.store.graph.getNode(e)?.[n]),y={at:l,removed:u.slice(l,l+g),inserted:m};if(t!==void 0){let F=z(i.store,t,e,n);(!F||!D(F,y))&&a()}let x=i.apply([{name:h,args:{node:e,field:n,at:l,remove:g,insert:m}}],t);if(x.ops.length===0)return;t===void 0&&(t=x.batch,i.hold(t));let k=z(i.store,t,e,n);if(k&&i.ask(t,[c(k)]),ce.test(m))return a();r&&clearTimeout(r),r=setTimeout(a,pe),r.unref?.()},flush:a,waiting:()=>s.length+(t!==void 0?1:0)+(p!==void 0?1:0)}}function Be(e,n){let i=n.find(f=>f.name===h)?.args;if(typeof i?.node!="string"||typeof i.field!="string")return;let{node:t,field:s}=i,p=()=>e.graph.getNode(t)?.[s],r=p();return{node:t,field:s,yours:r,over:f=>{let o=p();return{name:h,args:{node:t,field:s,at:0,remove:typeof o=="string"?o.length:0,insert:typeof r=="string"?r:"",rev:f}}}}}export{pe as TYPING_IDLE_MS,z as runSplice,Xe as typingOf,Ye as wireOf,Be as yoursOf};
@@ -1 +0,0 @@
1
- import{k as a,l as b,m as c,n as d,o as e,p as f,q as g,r as h,s as i}from"./chunk.47JQPYXL.js";import"./chunk.BJUUSIQY.js";import"./chunk.VG7OWV2H.js";import"./chunk.KXPRILAO.js";import"./chunk.XU34T2H4.js";import"./chunk.XOZU4OFA.js";import"./chunk.BB33TI4S.js";import"./chunk.CCWPF5PK.js";import"./chunk.KKNDX4JT.js";import"./chunk.3YZHZGTM.js";import"./chunk.EQTSV7BK.js";import"./chunk.27CW6SCT.js";import"./chunk.YD3TKV6P.js";import"./chunk.4KC35UNR.js";import"./chunk.HT2BEOEV.js";import"./chunk.SDO3U72B.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{i as GhostTray,h as InlineAiMenu,g as askAgain,c as askInline,a as askOf,b as drawPanel,d as heldSuggestion,e as suggestOnce,f as takeOffer};