graview 0.1.38 → 0.1.39

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 (197) hide show
  1. package/dist/preview/chunk.23WYWIAJ.js +1 -0
  2. package/dist/preview/{chunk.5XJEGXDO.js → chunk.2BJRS3YJ.js} +1 -1
  3. package/dist/preview/{chunk.ROGYDMES.js → chunk.2GGDOFTF.js} +1 -1
  4. package/dist/preview/chunk.2HF54MYG.js +1 -0
  5. package/dist/preview/{chunk.OE4QOBJF.js → chunk.2IX3CZNP.js} +1 -1
  6. package/dist/preview/chunk.2NSTEREJ.js +1 -0
  7. package/dist/preview/chunk.2RCNSHXK.js +1 -0
  8. package/dist/preview/chunk.37ASLBGE.js +1 -0
  9. package/dist/preview/{chunk.33GN2NUT.js → chunk.3ZNQ5YKX.js} +1 -1
  10. package/dist/preview/{chunk.EUGWV3S6.js → chunk.4BBJ62ZO.js} +1 -1
  11. package/dist/preview/chunk.4ECICQ2S.js +1 -0
  12. package/dist/preview/{chunk.B5ILKGEF.js → chunk.4PNFX3TX.js} +1 -1
  13. package/dist/preview/{chunk.WG5NIR23.js → chunk.546WEHEX.js} +1 -1
  14. package/dist/preview/chunk.57OPL5WD.js +1 -0
  15. package/dist/preview/{chunk.36SQJMEE.js → chunk.5JPRFXYQ.js} +1 -1
  16. package/dist/preview/chunk.5OJJ2TKZ.js +9 -0
  17. package/dist/preview/chunk.5R4E5C76.js +1 -0
  18. package/dist/preview/{chunk.7H5KVW2F.js → chunk.5XNVN4HE.js} +1 -1
  19. package/dist/preview/chunk.5ZMENPY4.js +5 -0
  20. package/dist/preview/{chunk.YPY5BOEI.js → chunk.67USHK26.js} +1 -1
  21. package/dist/preview/chunk.6CFP5UYP.js +1 -0
  22. package/dist/preview/{chunk.74RMHUCX.js → chunk.6DHHUBSC.js} +1 -1
  23. package/dist/preview/chunk.6HBEYRJU.js +1 -0
  24. package/dist/preview/chunk.6L7IDF3J.js +1 -0
  25. package/dist/preview/{chunk.ZRQI5VJF.js → chunk.6XU2CXRZ.js} +1 -1
  26. package/dist/preview/{chunk.2VIGF4FO.js → chunk.7EFNLMKU.js} +1 -1
  27. package/dist/preview/chunk.7WSXVXP3.js +1 -0
  28. package/dist/preview/chunk.ALDLAQ7V.js +1 -0
  29. package/dist/preview/chunk.AYHCQWSU.js +1 -0
  30. package/dist/preview/{chunk.QYRPELLU.js → chunk.B2IRADR2.js} +1 -1
  31. package/dist/preview/{chunk.V2NBJDAX.js → chunk.B7TB6YRZ.js} +1 -1
  32. package/dist/preview/chunk.BCHHBGM6.js +1 -0
  33. package/dist/preview/{chunk.LHO7L3CS.js → chunk.BEC5ZH2L.js} +1 -1
  34. package/dist/preview/chunk.BL4S3I2N.js +1 -0
  35. package/dist/preview/chunk.BS3FX4PX.js +1 -0
  36. package/dist/preview/chunk.BTSXYZ6Z.js +25 -0
  37. package/dist/preview/chunk.BYKR7NEE.js +1 -0
  38. package/dist/preview/chunk.BZSU4HH2.js +1 -0
  39. package/dist/preview/chunk.C2OAKTZX.js +1 -0
  40. package/dist/preview/chunk.C4CFYTCW.js +1 -0
  41. package/dist/preview/{chunk.6ONRWFA6.js → chunk.C6X7CKU6.js} +1 -1
  42. package/dist/preview/chunk.CAMQ7MYJ.js +1 -0
  43. package/dist/preview/{chunk.NPX7SPXM.js → chunk.CC47O2DW.js} +1 -1
  44. package/dist/preview/{chunk.ZLXPIEUC.js → chunk.CF7DHTKL.js} +2 -2
  45. package/dist/preview/{chunk.SGB6IMWN.js → chunk.CMN6VVK2.js} +1 -1
  46. package/dist/preview/chunk.CTK2P4JV.js +3 -0
  47. package/dist/preview/chunk.DAA7IDQ4.js +1 -0
  48. package/dist/preview/{chunk.6UCRL4OF.js → chunk.DYNBWIPF.js} +1 -1
  49. package/dist/preview/chunk.E3HXXUKY.js +1 -0
  50. package/dist/preview/{chunk.GZ3IXNA4.js → chunk.EBHKKOPO.js} +1 -1
  51. package/dist/preview/chunk.EDC4EMIX.js +1 -0
  52. package/dist/preview/chunk.EM4Y4YAD.js +2 -0
  53. package/dist/preview/{chunk.IEDXW36H.js → chunk.EWWJMS6G.js} +1 -1
  54. package/dist/preview/chunk.F5UVEF2R.js +1 -0
  55. package/dist/preview/{chunk.TKSGC6XH.js → chunk.FCXBCKED.js} +1 -1
  56. package/dist/preview/chunk.FGDHEVH4.js +1 -0
  57. package/dist/preview/{chunk.IM7LXLIB.js → chunk.FILCNVGH.js} +1 -1
  58. package/dist/preview/chunk.FJBQ4UP3.js +32 -0
  59. package/dist/preview/{chunk.RZVZG2BQ.js → chunk.FMN5XDLE.js} +1 -1
  60. package/dist/preview/chunk.G23VFYGF.js +88 -0
  61. package/dist/preview/chunk.G46WGK5E.js +1 -0
  62. package/dist/preview/chunk.GAFYE37S.js +3 -0
  63. package/dist/preview/{chunk.VNBR4DHD.js → chunk.GP2F7TIN.js} +1 -1
  64. package/dist/preview/chunk.GXKECZ4S.js +19 -0
  65. package/dist/preview/{chunk.3D5T3XIE.js → chunk.H5CZZZLX.js} +1 -1
  66. package/dist/preview/{chunk.V5ZT5NSJ.js → chunk.HA3PPIEQ.js} +1 -1
  67. package/dist/preview/chunk.HFDYFPMJ.js +1 -0
  68. package/dist/preview/chunk.HFYUAK5Z.js +6 -0
  69. package/dist/preview/chunk.HGS32FT2.js +1 -0
  70. package/dist/preview/chunk.HHUCPVG5.js +1 -0
  71. package/dist/preview/{chunk.LF7PU77M.js → chunk.I7CU2E3C.js} +1 -1
  72. package/dist/preview/{chunk.MCVY6RRS.js → chunk.IAZRY42B.js} +1 -1
  73. package/dist/preview/{chunk.5MSO3KRO.js → chunk.ITEF3U2E.js} +1 -1
  74. package/dist/preview/{chunk.AZCFXPEL.js → chunk.IXYBIDAN.js} +1 -1
  75. package/dist/preview/{chunk.FTJBW25J.js → chunk.J3M2MZHG.js} +1 -1
  76. package/dist/preview/{chunk.MVNUWK5Y.js → chunk.JBTU2PJ4.js} +1 -1
  77. package/dist/preview/chunk.JCR3ECUM.js +1 -0
  78. package/dist/preview/{chunk.JWJQ2VXS.js → chunk.JEZTPXEB.js} +1 -1
  79. package/dist/preview/chunk.KIJCOW25.js +1 -0
  80. package/dist/preview/{chunk.2EJAIT33.js → chunk.KJNUZYXS.js} +1 -1
  81. package/dist/preview/chunk.L7DQKPJV.js +117 -0
  82. package/dist/preview/{chunk.RVJYEOFN.js → chunk.LCYMYLOP.js} +1 -1
  83. package/dist/preview/chunk.LP2DJ5ZB.js +6 -0
  84. package/dist/preview/chunk.LP3QUPCE.js +1 -0
  85. package/dist/preview/chunk.M5QFUGGG.js +1 -0
  86. package/dist/preview/chunk.N2SV3KX7.js +1 -0
  87. package/dist/preview/chunk.N7N5OFPL.js +1 -0
  88. package/dist/preview/{chunk.WERYQENC.js → chunk.NG3YMQ36.js} +1 -1
  89. package/dist/preview/{chunk.MWZK3HVG.js → chunk.NSNGPQGT.js} +1 -1
  90. package/dist/preview/chunk.OJKS3UQS.js +1 -0
  91. package/dist/preview/{chunk.KNJZ2YNJ.js → chunk.OM5CDW2S.js} +1 -1
  92. package/dist/preview/{chunk.QT4XGC5Z.js → chunk.ORXFUK6F.js} +2 -2
  93. package/dist/preview/chunk.OXTUXWMU.js +1 -0
  94. package/dist/preview/chunk.OYMM2UWE.js +1 -0
  95. package/dist/preview/chunk.P3JYH6HO.js +1 -0
  96. package/dist/preview/{chunk.FMVWXSQ7.js → chunk.P4WYBSYA.js} +1 -1
  97. package/dist/preview/chunk.P5325GYR.js +1 -0
  98. package/dist/preview/chunk.PMER4LVT.js +1 -0
  99. package/dist/preview/chunk.PONWLTTB.js +1 -0
  100. package/dist/preview/chunk.PXQVXBNG.js +1 -0
  101. package/dist/preview/chunk.QCF6Z2AZ.js +1 -0
  102. package/dist/preview/chunk.QEXXLWEU.js +6 -0
  103. package/dist/preview/chunk.QMFUPTR4.js +1 -0
  104. package/dist/preview/{chunk.BUVAMSOZ.js → chunk.RM7NVN7B.js} +2 -2
  105. package/dist/preview/{chunk.YUJG5SN5.js → chunk.ROINZMNO.js} +1 -1
  106. package/dist/preview/chunk.ROKRQRID.js +35 -0
  107. package/dist/preview/chunk.RWB4235L.js +1 -0
  108. package/dist/preview/chunk.RXSHFG6S.js +1 -0
  109. package/dist/preview/chunk.SDO3U72B.js +1 -0
  110. package/dist/preview/chunk.SHNYYBNW.js +1 -0
  111. package/dist/preview/{chunk.L73VUBXN.js → chunk.SK33IHL2.js} +2 -2
  112. package/dist/preview/chunk.STBJV6HJ.js +1 -0
  113. package/dist/preview/chunk.TCUB6IDY.js +1 -0
  114. package/dist/preview/chunk.TJCTTJWE.js +1 -0
  115. package/dist/preview/{chunk.SZWX56WR.js → chunk.TU4KG22J.js} +2 -2
  116. package/dist/preview/chunk.U4E5GQTK.js +1 -0
  117. package/dist/preview/{chunk.Z3ZKYSPN.js → chunk.U7QMA4H7.js} +1 -1
  118. package/dist/preview/{chunk.UXIFQIHA.js → chunk.UB3O3QJQ.js} +1 -1
  119. package/dist/preview/{chunk.6XJP7F3I.js → chunk.UCZR33MK.js} +1 -1
  120. package/dist/preview/chunk.UGCNMAPC.js +1 -0
  121. package/dist/preview/{chunk.VKHKYK5L.js → chunk.UIUHGA6W.js} +1 -1
  122. package/dist/preview/chunk.VC4JPG7O.js +1 -0
  123. package/dist/preview/{chunk.DL637Q3W.js → chunk.W4OX4BMP.js} +1 -1
  124. package/dist/preview/chunk.WJQY4E45.js +1 -0
  125. package/dist/preview/{chunk.XHWL7QBF.js → chunk.WQPNGBR7.js} +1 -1
  126. package/dist/preview/chunk.WTZOOAIW.js +1 -0
  127. package/dist/preview/{chunk.FUJM7GDV.js → chunk.WXYUWBKX.js} +1 -1
  128. package/dist/preview/chunk.XBOZTQQA.js +1 -0
  129. package/dist/preview/{chunk.TOWYHWPB.js → chunk.XLI44BBI.js} +1 -1
  130. package/dist/preview/chunk.XLZ2QRRS.js +1 -0
  131. package/dist/preview/chunk.XQTMO5PW.js +1 -0
  132. package/dist/preview/chunk.YWVOACSX.js +5 -0
  133. package/dist/preview/{chunk.67WL7BGF.js → chunk.YXGI7H4Y.js} +1 -1
  134. package/dist/preview/{chunk.GR5Q4HTW.js → chunk.Z7JRBKA7.js} +1 -1
  135. package/dist/preview/chunk.ZR5KVYWZ.js +21 -0
  136. package/dist/preview/{chunk.6IHXTT6Z.js → chunk.ZTMDU3OH.js} +1 -1
  137. package/dist/preview/index.html +45 -43
  138. package/dist/preview/page.js +7 -7
  139. package/package.json +6 -6
  140. package/dist/preview/chunk.2HFRVWWM.js +0 -1
  141. package/dist/preview/chunk.3FW4QNGV.js +0 -1
  142. package/dist/preview/chunk.3RT2GUZ5.js +0 -1
  143. package/dist/preview/chunk.3ZRHHB7X.js +0 -1
  144. package/dist/preview/chunk.4DEUD66C.js +0 -6
  145. package/dist/preview/chunk.4EQSP7I3.js +0 -1
  146. package/dist/preview/chunk.4Y6BCHV2.js +0 -1
  147. package/dist/preview/chunk.5VBBQ6Z3.js +0 -1
  148. package/dist/preview/chunk.6CKBIY7L.js +0 -1
  149. package/dist/preview/chunk.7RSZMIAL.js +0 -1
  150. package/dist/preview/chunk.AFY35RJP.js +0 -1
  151. package/dist/preview/chunk.BRHRAVU2.js +0 -3
  152. package/dist/preview/chunk.DFVVS6C5.js +0 -1
  153. package/dist/preview/chunk.DQJAEU4V.js +0 -1
  154. package/dist/preview/chunk.ESSQAMPM.js +0 -1
  155. package/dist/preview/chunk.EV553KRT.js +0 -1
  156. package/dist/preview/chunk.EZP4FHDX.js +0 -35
  157. package/dist/preview/chunk.F6PIK2J2.js +0 -1
  158. package/dist/preview/chunk.FYIQZMVF.js +0 -1
  159. package/dist/preview/chunk.HUSFMFXH.js +0 -1
  160. package/dist/preview/chunk.HVTGPEVW.js +0 -1
  161. package/dist/preview/chunk.I3SQJ2L2.js +0 -1
  162. package/dist/preview/chunk.IU6ISXXC.js +0 -1
  163. package/dist/preview/chunk.K5KEECHL.js +0 -88
  164. package/dist/preview/chunk.L34FY7QQ.js +0 -1
  165. package/dist/preview/chunk.L7JKEEMM.js +0 -1
  166. package/dist/preview/chunk.LAW5PQEM.js +0 -1
  167. package/dist/preview/chunk.LDD3QX7G.js +0 -1
  168. package/dist/preview/chunk.LU5LSXSW.js +0 -1
  169. package/dist/preview/chunk.MQ7FNHXG.js +0 -25
  170. package/dist/preview/chunk.NH5TDAB2.js +0 -1
  171. package/dist/preview/chunk.NORRCKGN.js +0 -1
  172. package/dist/preview/chunk.NQQHOSOK.js +0 -1
  173. package/dist/preview/chunk.NWWMUOZM.js +0 -1
  174. package/dist/preview/chunk.OEF3GPRM.js +0 -1
  175. package/dist/preview/chunk.OS3L4ZOF.js +0 -2
  176. package/dist/preview/chunk.OTL3Z345.js +0 -1
  177. package/dist/preview/chunk.P3UPCI23.js +0 -1
  178. package/dist/preview/chunk.PGKIEDYV.js +0 -9
  179. package/dist/preview/chunk.PKUWET2F.js +0 -1
  180. package/dist/preview/chunk.POHEWJKZ.js +0 -1
  181. package/dist/preview/chunk.PUBG2L6F.js +0 -117
  182. package/dist/preview/chunk.QTTBZJ6W.js +0 -1
  183. package/dist/preview/chunk.RJDZOF2L.js +0 -1
  184. package/dist/preview/chunk.SGLJTSTD.js +0 -1
  185. package/dist/preview/chunk.SITFEJES.js +0 -1
  186. package/dist/preview/chunk.UF3L6FJO.js +0 -1
  187. package/dist/preview/chunk.VSYHU5MA.js +0 -1
  188. package/dist/preview/chunk.VTWFVPKD.js +0 -19
  189. package/dist/preview/chunk.VV4BPOIK.js +0 -1
  190. package/dist/preview/chunk.W2HCJQVK.js +0 -32
  191. package/dist/preview/chunk.WLPTY4BF.js +0 -5
  192. package/dist/preview/chunk.XM3NPZLP.js +0 -1
  193. package/dist/preview/chunk.YAXZNQY6.js +0 -1
  194. package/dist/preview/chunk.YG423NEB.js +0 -1
  195. package/dist/preview/chunk.YVR3ZMTV.js +0 -1
  196. package/dist/preview/chunk.YXH3IWNR.js +0 -1
  197. package/dist/preview/chunk.ZYCNEOAQ.js +0 -1
@@ -1,4 +1,4 @@
1
- import{pc as e}from"./chunk.WLPTY4BF.js";var a=`
1
+ import{sc as e}from"./chunk.5ZMENPY4.js";var a=`
2
2
  .graview-spec{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--graview-ink)}
3
3
 
4
4
  .graview-spec-row{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 10px;box-sizing:border-box;max-width:100%;padding:5px 10px;border:1px solid var(--graview-edge);border-radius:var(--graview-radius-sm,8px);background:var(--graview-panel);font-size:.875rem}
@@ -0,0 +1,19 @@
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{d as C,e as re}from"./chunk.3ZNQ5YKX.js";import{e as ee}from"./chunk.7EFNLMKU.js";import{b as S}from"./chunk.Z7JRBKA7.js";import{m as X}from"./chunk.ORXFUK6F.js";import{Da as Q,G as se,R as Z,qa as V,za as J}from"./chunk.BTSXYZ6Z.js";import{a as K}from"./chunk.SDO3U72B.js";import{N as Y,T as M,ba as U}from"./chunk.5ZMENPY4.js";import{b as D}from"./chunk.AJZBJBMO.js";var h=D(se(),1);var n=D(Z(),1),Re=9,le=40,ge=2;function de(e){let r=new Map;for(let i of e.allNodes())r.set(i.kind,(r.get(i.kind)??0)+1);return r}var ue=(e,r)=>(e.far??[]).reduce((i,a)=>i+(r.get(a)??0),0);function ce(e,r,i){if(i)return i.flatMap(s=>e.filters.filter(u=>u.key===s));let a=de(r),o=new Set(e.filters.filter(s=>s.about==="edge"&&ue(s,a)>le).map(s=>s.key));return e.filters.filter(s=>s.about==="edge"?!o.has(s.key):s.about==="via"?o.has(s.key.split(".")[0]):!0)}function pe(e,r){let i=e.filter(a=>a.about==="field"&&a.type==="choice"&&(a.options?.length??0)>0);return r?i:i.slice(0,ge)}var fe=520;function ye(e,r,i,a){let o=i.filters.find(s=>s.key===a.key);if(!o)return`${a.key}: ${a.value}`;if(o.about==="is")return a.value.charAt(0).toUpperCase()+a.value.slice(1);if(o.about==="via")return`${o.label}: ${S(e.tryDefinition(o.far?.[0]??""),o.key.split(".")[1],a.value)}`;if(o.about==="edge"){if(a.value==="*")return`${o.label}: anything`;if(a.value==="none")return`${o.label}: nothing`;let s=r.getNode(a.value);return`${o.label}: ${s?U(e.tryDefinition(s.kind),s):a.value}`}if(o.type==="date"){let[s,u]=a.value.split(":");return`${o.label} ${s} ${u?Y(u):""}`.trim()}if(o.type==="boolean")return`${o.label}: ${a.value==="true"?"yes":"no"}`;if(o.type==="number"){let s=a.value.lastIndexOf(":"),u=a.value.slice(0,Math.max(0,s));if(u==="at-most"||u==="at-least")return`${o.label}: ${u==="at-most"?"at most":"at least"} ${S(e.tryDefinition(i.kind),o.key,Number(a.value.slice(s+1)))}`}return o.type==="text"?`${o.label}: ${a.value}`:`${o.label}: ${S(e.tryDefinition(i.kind),o.key,a.value)}`}var P=e=>/^[A-Z][a-z]/.test(e)?e.charAt(0).toLowerCase()+e.slice(1):e;function me(e){return e?.type==="date"?{asc:"Earliest first",desc:"Latest first"}:e?.type==="number"?{asc:"Lowest first",desc:"Highest first"}:e?.type==="boolean"?{asc:"No first",desc:"Yes first"}:e?.type==="choice"?{asc:"In their order",desc:"In reverse order"}:{asc:"A to Z",desc:"Z to A"}}var x=V(K(()=>(__graviewPreload(import.meta.url,["./chunk.GXKECZ4S.js","./chunk.6XU2CXRZ.js","./chunk.3ZNQ5YKX.js","./chunk.7EFNLMKU.js","./chunk.NSNGPQGT.js","./chunk.H5CZZZLX.js","./chunk.Z7JRBKA7.js","./chunk.ORXFUK6F.js","./chunk.BTSXYZ6Z.js","./chunk.SDO3U72B.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.ROKRQRID.js")))),N=x.part((e,r)=>(0,n.jsx)(e.ArrangeLists,{...r}),{what:"This list",quiet:!0}),he=x.part((e,r)=>(0,n.jsx)(e.ArrangeChips,{...r}),{what:"This list",quiet:!0}),Te=()=>x.load(),q=new Map;function Ie(e){let{schema:r,graph:i,kind:a,arrangement:o,onChange:s}=e,u=e.offers??ee(r,a),g=e.testId??"arrange",y=C(e.allow,"sort")&&u.sorts.length>1,m=C(e.allow,"group")&&u.groups.length>0,F=C(e.allow,"filter")?ce(u,i,e.filters):[],L=e.chips?pe(F,e.filters):[],H=F.filter(t=>!L.includes(t)),G=H.length>0,_=e.query!==!1&&e.allow!==!1,w=we(e.noun,e.kept),v=e.past&&e.past.count>0?e.past:null;if(!y&&!m&&!G&&!_&&!w&&!v)return null;let z=t=>JSON.stringify(re(t)),O=`${g}|${a}`,p={current:q.get(O)??{words:new Set,latest:null,at:0}};q.set(O,p.current),p.current.latest&&Date.now()-p.current.at>1500&&!p.current.words.has(z(o))&&(p.current={words:new Set,latest:null,at:0},q.set(O,p.current));let d=p.current.latest??o,b=t=>{let l={...p.current.latest??o,...t};for(let c of Object.keys(l))l[c]===void 0&&delete l[c];p.current.latest=l,p.current.at=Date.now(),p.current.words.add(z(l)),s(l)},f=d.filter??[],R=t=>{let l=f.filter((c,I)=>I!==t);b({filter:l.length>0?l:void 0})},A=t=>f.some(l=>l.key===t.key&&l.value===t.value),te=t=>A(t)?R(f.findIndex(l=>l.key===t.key&&l.value===t.value)):b({filter:[...f,t]}),T=d.sort?u.sorts.find(t=>t.key===d.sort.by):void 0,j=d.group?u.groups.find(t=>t.key===d.group.by):void 0,ne=me(T),k={schema:r,graph:i,offers:{...u,filters:H},arrangement:d,set:b,toggle:te,has:A,testId:g},ae=(t,l)=>A({key:t,value:l})?R(f.findIndex(c=>c.key===t&&c.value===l)):b({filter:[...f.filter(c=>c.key!==t),{key:t,value:l}]}),oe=d.sort?(0,n.jsxs)(n.Fragment,{children:["Sorted by ",P(T?.label??d.sort.by),(0,n.jsx)("span",{"aria-hidden":"true",children:d.sort.direction==="desc"?" \u2193":" \u2191"})]}):"Sort",ie=d.group?.bucket&&j?.buckets?`, a ${d.group.bucket} each`:"",B=d.group?`Grouped by ${P(j?.label??d.group.by)}${ie}`:"Group";return(0,n.jsxs)("div",{"data-testid":`${g}-bar`,role:"group","aria-label":"Arrange",className:"graview-arrange",style:e.style,onPointerEnter:x.prefetch,onFocus:x.prefetch,children:[(0,n.jsx)("style",{children:xe}),(0,n.jsxs)("div",{className:"graview-arrange-line",children:[w?(0,n.jsxs)("span",{className:"graview-arrange-count","data-testid":`${g}-count`,children:[w.kept?(0,n.jsx)("span",{"data-testid":`${g}-kept`,children:w.kept}):null,w.words]}):null,v?(0,n.jsxs)("button",{type:"button",className:"graview-arrange-open","data-testid":`${g}-past`,title:`${M(v.count)} more behind the horizon \u2014 press to widen the view to the past`,onClick:t=>{let l=t.currentTarget.closest("[data-graview-view]"),c=t.currentTarget;v.widen();let I=0,W=()=>{if(document.activeElement!==c&&document.activeElement!==document.body&&c.isConnected)return;let $=l?.querySelector('[role="group"][aria-label="Arrange"] :is(button, input)');if($&&$!==c&&$.isConnected)return $.focus({preventScroll:!0});++I<120&&requestAnimationFrame(W)};requestAnimationFrame(W)},children:["+",M(v.count)," past"]}):null,f.map((t,l)=>{let c=ye(r,i,u,t);return(0,n.jsxs)("span",{className:"graview-arrange-token","data-testid":`${g}-condition`,children:[c,(0,n.jsx)("button",{type:"button","aria-label":`Remove: ${c}`,title:"Remove",onClick:()=>R(l),children:"\xD7"})]},`${t.key}:${t.value}`)}),y?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-one",children:(0,n.jsx)(E,{testId:`${g}-sort`,value:d.sort?.by??"",set:d.sort!==void 0,label:"Sort",name:d.sort?`Sorted by ${P(T?.label??d.sort.by)}, ${ne[d.sort.direction].toLowerCase()}`:"Sort",list:t=>(0,n.jsx)(N,{which:"sort",done:t,...k}),children:oe})}):null,m?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-one",children:(0,n.jsx)(E,{testId:`${g}-group`,value:d.group?.by??"",set:d.group!==void 0,label:"Group",name:B,list:t=>(0,n.jsx)(N,{which:"group",done:t,...k}),children:B})}):null,G?(0,n.jsx)("span",{className:"graview-arrange-part",children:(0,n.jsx)(E,{testId:`${g}-add`,value:"",set:!1,label:"Filter",name:f.length>0?`Filter \u2014 ${f.length} on`:"Filter",list:t=>(0,n.jsx)(N,{which:"filter",done:t,...k}),children:"Filter"})}):null,y||m?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-all",children:(0,n.jsx)(E,{testId:`${g}-all`,value:"",set:!1,label:"Arrange",name:"Arrange: sort and group",list:t=>(0,n.jsx)(N,{which:"all",done:t,parts:{sort:y,group:m,filter:!1},...k}),children:"Arrange"})}):null,_?(0,n.jsxs)("label",{className:"graview-arrange-words-at",children:[(0,n.jsx)("span",{style:X,children:"Find"}),(0,n.jsx)("input",{type:"search",className:"graview-arrange-words","data-testid":`${g}-query`,value:d.query??"",placeholder:"Find\u2026",onChange:t=>b({query:t.target.value.length>0?t.target.value:void 0})})]}):null,L.length>0&&e.chips?(0,n.jsx)(h.Suspense,{fallback:null,children:(0,n.jsx)(he,{offers:L,chips:e.chips,schema:r,graph:i,kind:a,arrangement:d,has:A,choose:ae,testId:g})}):null]})]})}function we(e,r){if(!r)return null;let i=r.shown!==r.of;if(!e)return i?{words:"",kept:`${r.shown} of ${r.of}`}:null;let a=r.of===1?e.one:e.many;return i?{words:` ${a}`,kept:`${r.shown} of ${r.of}`}:{words:`${r.of} ${a}`}}function E({testId:e,value:r,set:i,label:a,name:o,list:s,children:u}){let g=Q("arrange",{align:"start"}),y=(0,h.useRef)(null);return(0,h.useEffect)(()=>{g.open&&y.current?.querySelector('[aria-pressed="true"]')?.focus({preventScroll:!0})},[g.open]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",className:"graview-arrange-open","data-testid":e,"data-set":i?"":void 0,value:r,"aria-label":o,...g.trigger,onClick:g.toggle,children:[u,(0,n.jsx)(be,{})]}),g.open?(0,n.jsx)("div",{...g.pane,ref:m=>{g.pane.ref(m),y.current=m},role:"group","aria-label":a,"data-testid":"arrange-list","data-arrange":e,className:"graview-arrange-list",style:J,onKeyDown:ve,children:s(()=>g.setOpen(!1))}):null]})}function ve(e){if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key))return;let r=[...e.currentTarget.querySelectorAll("button:not([disabled]), input")];if(r.length===0)return;let i=r.indexOf(document.activeElement);if(document.activeElement instanceof HTMLInputElement&&document.activeElement.type==="date"&&(e.key==="ArrowUp"||e.key==="ArrowDown"))return;e.preventDefault();let a=e.key==="Home"?0:e.key==="End"?r.length-1:e.key==="ArrowDown"?(i+1)%r.length:(i-1+r.length)%r.length;r[a].focus()}function be(){return(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10","aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto",opacity:.7},children:(0,n.jsx)("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}var xe=`
2
+ .graview-arrange{container-type:inline-size;box-sizing:border-box;width:100%;min-width:0;max-width:100%}
3
+ .graview-arrange-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0;font-size:.875rem;line-height:1.35;color:var(--graview-ink-muted)}
4
+ .graview-arrange-count{margin-right:2px;color:var(--graview-ink-muted)}
5
+ .graview-arrange-part{display:inline-flex;align-items:center;min-width:0}
6
+ .graview-arrange-count~.graview-arrange-part::before{content:"\xB7" / "";margin-right:6px;color:var(--graview-ink-muted)}
7
+ .graview-arrange-open{display:inline-flex;align-items:center;gap:5px;min-height:28px;min-width:0;max-width:100%;margin:0;padding:0 6px;border:1px solid transparent;border-radius:7px;background:none;box-shadow:none;font:inherit;letter-spacing:normal;text-transform:none;text-align:left;color:var(--graview-ink-muted);cursor:pointer}
8
+ .graview-arrange-open[data-set]{color:var(--graview-ink)}
9
+ .graview-arrange-open:hover,.graview-arrange-open[aria-expanded=true]{border-color:var(--graview-edge);color:var(--graview-ink)}
10
+ .graview-arrange :focus-visible,.graview-arrange-list :focus-visible{outline:2px solid var(--graview-accent);outline-offset:1px}
11
+ .graview-arrange-all{display:none}
12
+ @container (max-width: ${fe-1}px){.graview-arrange-one{display:none}.graview-arrange-all{display:inline-flex}}
13
+ .graview-arrange-token{display:inline-flex;align-items:center;gap:0;min-width:0;min-height:26px;box-sizing:border-box;padding:0 2px 0 10px;border:1px solid var(--graview-edge);border-radius:999px;background:var(--graview-panel);color:var(--graview-ink);overflow-wrap:anywhere}
14
+ .graview-arrange-token button{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:0;padding:0;border:0;border-radius:6px;background:none;font:inherit;line-height:1;color:var(--graview-ink-muted);cursor:pointer}
15
+ .graview-arrange-token button:hover{color:var(--graview-ink);background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
16
+ .graview-arrange-words-at{display:inline-flex;min-width:0;max-width:100%}
17
+ .graview-arrange-words{box-sizing:border-box;width:min(100%,12rem);min-height:28px;margin:0;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;font:inherit;color:var(--graview-ink)}
18
+ .graview-arrange-words:hover,.graview-arrange-words:focus{border-color:var(--graview-edge)}
19
+ `;function De(e){let r=[];return e.query&&r.push(`\u201C${e.query}\u201D`),e.filter?.length&&r.push(`${e.filter.length} condition${e.filter.length===1?"":"s"}`),e.group&&r.push(`by ${e.group.by}`),e.sort&&r.push(`sorted by ${e.sort.by}`),r.length>0?r.join(" \xB7 "):null}export{Re as a,le as b,ge as c,de as d,ue as e,ce as f,pe as g,fe as h,ye as i,P as j,me as k,Te as l,Ie as m,De as n};
@@ -1,2 +1,2 @@
1
- import{a as te,b as E,d as re,g as ie,h as de,i as ae}from"./chunk.GR5Q4HTW.js";import{Aa as J,Bb as se,Ca as Q,E as I,F as x,H as P,Ka as M,N as A,Oa as X,Q as K,Qa as ee,R as Y,Sa as ne,V as T,X as Z,ba as v,ia as B,ka as H,pa as U,qa as G,ra as V,va as q,zb as oe}from"./chunk.WLPTY4BF.js";var ye=t=>`${t}${t%100>=11&&t%100<=13?"th":["th","st","nd","rd"][t%10]??"th"}`,ue={day:"day",week:"week",month:"month",year:"year"},S=t=>t.length<2?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`;function ge(t,e,n){let o=e.interval??1,d=ue[e.every],c=t.slice(0,10),y=o===1?`Every ${d}`:o===2?`Every other ${d}`:`Every ${o} ${d}s`,a;if(e.every==="week"){let u=(e.on?.length?e.on:[M[new Date(`${c}T00:00:00Z`).getUTCDay()]]).map(f=>Z(M.indexOf(f),"long",n));a=o===1?`Every ${S(u)}`:o===2?`Every other ${S(u)}`:`${y} on ${S(u)}`}else if(e.every==="month"){let u=(e.on?.length?e.on:[+c.slice(8,10)]).map(f=>f===-1?"the last day":`the ${ye(Number(f))}`);a=`${y} on ${S(u)}`}else e.every==="year"?a=`${y} on ${T(c,n)}`:a=y;return x.test(t)&&(a+=` at ${Y(t,n)}`),e.until&&(a+=`, until ${A(e.until,n)}`),e.count&&(a+=`, ${e.count===1?"once":`${e.count} times`}`),a}function le(t,e,n={}){if(!ee(e)||typeof t!="string")return;let o=n.today??P(),d=ne(t,e,o),c=ge(t,e,n.locale),y=d.slice(0,4)===o.slice(0,4)?T(d.slice(0,10),n.locale):A(d.slice(0,10),n.locale);return d.slice(0,10)<o?`${c}, last ${y}`:`${c}, next ${y}`}function Ye(t,e){let n=new Map,o=new Map;for(let d of t){let c=v(e(d.kind),d).trim().toLowerCase();o.set(c,[...o.get(c)??[],d])}for(let d of o.values()){if(d.length<2)continue;let c=new Map;for(let y of d)c.set(y.kind,[...c.get(y.kind)??[],y]);for(let[y,a]of c){if(a.length===1){n.set(a[0].id,H(e(y),y));continue}let u=a.map(r=>new Map(he(r,e(r.kind)).map(l=>[l.key,l.alone]))),f=[...new Set(u.flatMap(r=>[...r.keys()]))],h=r=>u.every(l=>!/\d/.test(l.get(r)??"")),$=[...f.filter(h),...f.filter(r=>!h(r))],O=(r,l)=>l.map(g=>u[r].get(g)??"").filter(Boolean).join(" \xB7 "),_=r=>new Set(a.map((l,g)=>O(g,r))).size===a.length&&a.every((l,g)=>O(g,r)!==""),i=$.find(r=>_([r])),s=i?void 0:$.flatMap((r,l)=>$.slice(l+1).map(g=>[r,g])).find(r=>_(r));a.forEach((r,l)=>{if(i||s)return void n.set(r.id,O(l,i?[i]:s));let g=$.find(b=>{let k=u[l].get(b);return k!==void 0&&k!==""&&u.every((R,m)=>m===l||R.get(b)!==k)});n.set(r.id,g?u[l].get(g):`${l+1} of ${a.length}`)})}}return n}function Ze(t,e){return t?.describe?t.describe(e):`${e.kind} ${v(t,e)}`}var pe=new Set(["id","kind","label"]);function me(t,e){if(e.length===0)return!1;let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[\\s\xB7,(/])${n}($|[\\s\xB7,)/])`).test(t)}function he(t,e,n={}){let o=e?.display,d=new Set([...pe,...o?.hide??[]]);typeof t.label=="string"&&e?.label&&!v(e,t).includes(t.label)&&d.delete("label");let c=(n.said??[]).filter(i=>!!i),y=c.filter(i=>i.endsWith("\u2026")).map(i=>i.replace(/…$/,"").trim()).filter(i=>i.length>12),a=[],u=e?.fields?.shape,f=e?.fieldRoles,h=n.glance?o?.glance??[f?.who,f?.when].filter(i=>!!i):ce(o?.page),$=n.glance&&o?.glance!==void 0,_=[...new Set($?h:[...h,...be(e),...Object.keys(t)])].filter(i=>Object.hasOwn(t,i)).map(i=>[i,t[i]]);for(let[i,s]of _){if(d.has(i)||s===void 0||s===null)continue;let r=o?.format?.[i],l=r?[]:V(s);if(l[0]&&n.glance)continue;let g=e?.fields?.shape?.[i],b=!r&&typeof s=="string"&&q(g)?s:void 0,k=!r&&typeof s=="string"&&te(g);if(b&&n.glance)continue;let R=r?void 0:Q(g),m=R?{relation:R,refs:J(s,R)}:void 0;if(m&&(n.glance||m.refs.length===0)||!l[0]&&typeof s=="object"&&(!Array.isArray(s)||s.some(p=>typeof p=="object"&&p!==null))&&r===void 0)continue;let j=typeof s=="string"&&!r?le(s,t[`${i}Repeat`],{locale:n.locale}):void 0,F=l[0]?l.map(p=>`${p.caption?`${p.name} \u2014 ${p.caption}`:p.name}${U(p)?` (${G(p)})`:""}`).join(", "):Array.isArray(s)?s.join(", "):typeof s=="boolean"?s?"Yes":"No":String(s),N=r?void 0:ie(e,i),L=ae(N,s),W=!r&&!N&&typeof s=="number"?oe(e?.fields?.shape?.[i]):void 0,z=m?m.refs.length>1?`${m.refs.length} linked records`:"linked record":r?r(s):W?se(s,W):de(N,s,n.locale)??(Array.isArray(s)||typeof s=="boolean"?F:typeof s=="string"&&j!==void 0?j:typeof s=="string"&&I.test(s)?A(s,n.locale):typeof s=="string"&&x.test(s)?K(s,n.locale,n.timeZone):typeof s=="string"&&$e(e,i)?E(e,i,s):F),C=typeof s=="string"&&_e(e,i,z),w=(n.glance||n.excerpt)&&!r&&(C||k)?re(z,{markdown:k}):z;if(c.includes(w)||y.some(p=>w.startsWith(p))||n.glance&&(typeof s=="string"||typeof s=="number")&&c.some(p=>me(p,w)))continue;let D=B(e,i),fe=typeof s=="number"?`${D} ${w}`:typeof s=="boolean"&&!r?`${D}: ${w.toLowerCase()}`:w;if(a.push({key:i,label:D,value:w,stored:F,alone:fe,long:C,...k?{markdown:!0}:{},...l[0]?{files:l}:{},...b?{app:b}:{},...m?{linked:m}:{},...L?{href:L}:{},...X(u?.[`${i}Repeat`])?{repeats:!0}:{}}),n.limit!==void 0&&a.length>=n.limit)break}return ke(a,e)}function ke(t,e){let n=new Map;for(let o of t){let d=we(e,o.key);d&&n.set(o.key,new Set(d.map(c=>E(e,o.key,c).toLowerCase())))}return n.size<2?t:t.map(o=>{let d=n.get(o.key);return d!==void 0&&[...n].some(([y,a])=>y!==o.key&&[...d].some(u=>a.has(u)))?{...o,alone:`${o.label}: ${o.value.toLowerCase()}`}:o})}function we(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"&&n._zod.def.entries?Object.values(n._zod.def.entries).map(String):void 0}function $e(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"}function be(t){let e=t?.fields?.shape;return[...Object.keys(e??{}),...Object.keys(t?.computed??{})]}function ce(t){return[...t?.fields??[],...(t?.groups??[]).flatMap(e=>e.fields)]}var Re=500,Ae=160;function Oe(t){let e=t;for(let n=0;n<6&&e?._zod?.def?.innerType!==void 0;n++)e=e._zod.def.innerType;return e?._zod?.def?.type==="string"?e._zod.def:void 0}function _e(t,e,n){return Oe(t?.fields?.shape?.[e])?.checks?.some(d=>d._zod?.def?.check==="max_length"&&(d._zod.def.maximum??0)>Re)?!0:typeof n=="string"&&(n.includes(`
1
+ import{a as te,b as E,d as re,g as ie,h as de,i as ae}from"./chunk.Z7JRBKA7.js";import{Aa as J,Ab as oe,Ca as Q,Cb as se,E as I,F as x,H as P,Ka as M,N as A,Oa as X,Q as K,Qa as ee,R as Y,Sa as ne,V as T,X as Z,ba as v,ia as B,ka as H,pa as U,qa as G,ra as V,va as q}from"./chunk.5ZMENPY4.js";var ye=t=>`${t}${t%100>=11&&t%100<=13?"th":["th","st","nd","rd"][t%10]??"th"}`,ue={day:"day",week:"week",month:"month",year:"year"},S=t=>t.length<2?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`;function ge(t,e,n){let o=e.interval??1,d=ue[e.every],c=t.slice(0,10),y=o===1?`Every ${d}`:o===2?`Every other ${d}`:`Every ${o} ${d}s`,a;if(e.every==="week"){let u=(e.on?.length?e.on:[M[new Date(`${c}T00:00:00Z`).getUTCDay()]]).map(f=>Z(M.indexOf(f),"long",n));a=o===1?`Every ${S(u)}`:o===2?`Every other ${S(u)}`:`${y} on ${S(u)}`}else if(e.every==="month"){let u=(e.on?.length?e.on:[+c.slice(8,10)]).map(f=>f===-1?"the last day":`the ${ye(Number(f))}`);a=`${y} on ${S(u)}`}else e.every==="year"?a=`${y} on ${T(c,n)}`:a=y;return x.test(t)&&(a+=` at ${Y(t,n)}`),e.until&&(a+=`, until ${A(e.until,n)}`),e.count&&(a+=`, ${e.count===1?"once":`${e.count} times`}`),a}function le(t,e,n={}){if(!ee(e)||typeof t!="string")return;let o=n.today??P(),d=ne(t,e,o),c=ge(t,e,n.locale),y=d.slice(0,4)===o.slice(0,4)?T(d.slice(0,10),n.locale):A(d.slice(0,10),n.locale);return d.slice(0,10)<o?`${c}, last ${y}`:`${c}, next ${y}`}function Ye(t,e){let n=new Map,o=new Map;for(let d of t){let c=v(e(d.kind),d).trim().toLowerCase();o.set(c,[...o.get(c)??[],d])}for(let d of o.values()){if(d.length<2)continue;let c=new Map;for(let y of d)c.set(y.kind,[...c.get(y.kind)??[],y]);for(let[y,a]of c){if(a.length===1){n.set(a[0].id,H(e(y),y));continue}let u=a.map(r=>new Map(he(r,e(r.kind)).map(l=>[l.key,l.alone]))),f=[...new Set(u.flatMap(r=>[...r.keys()]))],h=r=>u.every(l=>!/\d/.test(l.get(r)??"")),$=[...f.filter(h),...f.filter(r=>!h(r))],O=(r,l)=>l.map(g=>u[r].get(g)??"").filter(Boolean).join(" \xB7 "),_=r=>new Set(a.map((l,g)=>O(g,r))).size===a.length&&a.every((l,g)=>O(g,r)!==""),i=$.find(r=>_([r])),s=i?void 0:$.flatMap((r,l)=>$.slice(l+1).map(g=>[r,g])).find(r=>_(r));a.forEach((r,l)=>{if(i||s)return void n.set(r.id,O(l,i?[i]:s));let g=$.find(b=>{let k=u[l].get(b);return k!==void 0&&k!==""&&u.every((R,m)=>m===l||R.get(b)!==k)});n.set(r.id,g?u[l].get(g):`${l+1} of ${a.length}`)})}}return n}function Ze(t,e){return t?.describe?t.describe(e):`${e.kind} ${v(t,e)}`}var pe=new Set(["id","kind","label"]);function me(t,e){if(e.length===0)return!1;let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[\\s\xB7,(/])${n}($|[\\s\xB7,)/])`).test(t)}function he(t,e,n={}){let o=e?.display,d=new Set([...pe,...o?.hide??[]]);typeof t.label=="string"&&e?.label&&!v(e,t).includes(t.label)&&d.delete("label");let c=(n.said??[]).filter(i=>!!i),y=c.filter(i=>i.endsWith("\u2026")).map(i=>i.replace(/…$/,"").trim()).filter(i=>i.length>12),a=[],u=e?.fields?.shape,f=e?.fieldRoles,h=n.glance?o?.glance??[f?.who,f?.when].filter(i=>!!i):ce(o?.page),$=n.glance&&o?.glance!==void 0,_=[...new Set($?h:[...h,...be(e),...Object.keys(t)])].filter(i=>Object.hasOwn(t,i)).map(i=>[i,t[i]]);for(let[i,s]of _){if(d.has(i)||s===void 0||s===null)continue;let r=o?.format?.[i],l=r?[]:V(s);if(l[0]&&n.glance)continue;let g=e?.fields?.shape?.[i],b=!r&&typeof s=="string"&&q(g)?s:void 0,k=!r&&typeof s=="string"&&te(g);if(b&&n.glance)continue;let R=r?void 0:Q(g),m=R?{relation:R,refs:J(s,R)}:void 0;if(m&&(n.glance||m.refs.length===0)||!l[0]&&typeof s=="object"&&(!Array.isArray(s)||s.some(p=>typeof p=="object"&&p!==null))&&r===void 0)continue;let j=typeof s=="string"&&!r?le(s,t[`${i}Repeat`],{locale:n.locale}):void 0,F=l[0]?l.map(p=>`${p.caption?`${p.name} \u2014 ${p.caption}`:p.name}${U(p)?` (${G(p)})`:""}`).join(", "):Array.isArray(s)?s.join(", "):typeof s=="boolean"?s?"Yes":"No":String(s),N=r?void 0:ie(e,i),L=ae(N,s),W=!r&&!N&&typeof s=="number"?oe(e?.fields?.shape?.[i]):void 0,z=m?m.refs.length>1?`${m.refs.length} linked records`:"linked record":r?r(s):W?se(s,W):de(N,s,n.locale)??(Array.isArray(s)||typeof s=="boolean"?F:typeof s=="string"&&j!==void 0?j:typeof s=="string"&&I.test(s)?A(s,n.locale):typeof s=="string"&&x.test(s)?K(s,n.locale,n.timeZone):typeof s=="string"&&$e(e,i)?E(e,i,s):F),C=typeof s=="string"&&_e(e,i,z),w=(n.glance||n.excerpt)&&!r&&(C||k)?re(z,{markdown:k}):z;if(c.includes(w)||y.some(p=>w.startsWith(p))||n.glance&&(typeof s=="string"||typeof s=="number")&&c.some(p=>me(p,w)))continue;let D=B(e,i),fe=typeof s=="number"?`${D} ${w}`:typeof s=="boolean"&&!r?`${D}: ${w.toLowerCase()}`:w;if(a.push({key:i,label:D,value:w,stored:F,alone:fe,long:C,...k?{markdown:!0}:{},...l[0]?{files:l}:{},...b?{app:b}:{},...m?{linked:m}:{},...L?{href:L}:{},...X(u?.[`${i}Repeat`])?{repeats:!0}:{}}),n.limit!==void 0&&a.length>=n.limit)break}return ke(a,e)}function ke(t,e){let n=new Map;for(let o of t){let d=we(e,o.key);d&&n.set(o.key,new Set(d.map(c=>E(e,o.key,c).toLowerCase())))}return n.size<2?t:t.map(o=>{let d=n.get(o.key);return d!==void 0&&[...n].some(([y,a])=>y!==o.key&&[...d].some(u=>a.has(u)))?{...o,alone:`${o.label}: ${o.value.toLowerCase()}`}:o})}function we(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"&&n._zod.def.entries?Object.values(n._zod.def.entries).map(String):void 0}function $e(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"}function be(t){let e=t?.fields?.shape;return[...Object.keys(e??{}),...Object.keys(t?.computed??{})]}function ce(t){return[...t?.fields??[],...(t?.groups??[]).flatMap(e=>e.fields)]}var Re=500,Ae=160;function Oe(t){let e=t;for(let n=0;n<6&&e?._zod?.def?.innerType!==void 0;n++)e=e._zod.def.innerType;return e?._zod?.def?.type==="string"?e._zod.def:void 0}function _e(t,e,n){return Oe(t?.fields?.shape?.[e])?.checks?.some(d=>d._zod?.def?.check==="max_length"&&(d._zod.def.maximum??0)>Re)?!0:typeof n=="string"&&(n.includes(`
2
2
  `)||n.length>Ae)}function Be(t,e){let n=t?.display?.page,o=n?.groups??[],d=new Map(e.map(f=>[f.key,f])),c=new Set(ce(n)),y=f=>f.flatMap(h=>d.has(h)?[d.get(h)]:[]),a=e.filter(f=>!c.has(f.key));return[{fields:[...y(n?.fields??[]),...o.length>0?[]:a]},...o.map(f=>({title:f.title,fields:y(f.fields)})),...o.length>0?[{title:"Details",fields:a}]:[]].filter(f=>f.fields.length>0)}export{ge as a,Ye as b,Ze as c,he as d,Be as e};
@@ -1 +1 @@
1
- import{b as pt}from"./chunk.V2NBJDAX.js";import{a as dt}from"./chunk.NPX7SPXM.js";import{f as ct}from"./chunk.OE4QOBJF.js";import{a as C,f as q}from"./chunk.74RMHUCX.js";import{$a as st,Bb as ut,E as Q,F as X,Gc as ft,H as k,N as G,Q as tt,S as nt,T as et,ba as _,bb as it,da as M,eb as lt,fa as rt,ia as ot,ka as at}from"./chunk.WLPTY4BF.js";import"./chunk.AJZBJBMO.js";function J(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let s=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!s}),n=r.as==="open"}return e}function D(t,e){return J(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function Ot(t){return D(t,!1)}function Et(t){return D(t,!0)}function mt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function z(t){let e=u=>J(u).map(({part:o,space:a})=>({...o,space:a})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,s=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:s(!1),said:s(!0)}}function Pt(t,e=!1){return t.line?mt(t.line,e):t.message}var yt=60,O=t=>({text:t,as:"name"}),c=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},L=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},R=(t,e)=>({text:t,as:"op",said:e}),v={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},V={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},Lt={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},ht=t=>t.t==="binary"&&t.op in V;function I(t){return t.length>1&&t[1]===t[1].toUpperCase()&&/[A-Z]/.test(t[1])?t:t.charAt(0).toLowerCase()+t.slice(1)}function bt(t){let{schema:e}=t,n=l=>l===null?void 0:e.tryDefinition(l),r=(l,m)=>{let g=n(l)?.edges;return g&&Object.hasOwn(g,m)?g[m]:void 0},s=(l,m)=>{let g=r(l,m)?.to;return Array.isArray(g)&&g.length===1?g[0]:null},u=(l,m)=>{let g=(e.edge(m)?.from??[]).filter(W=>{let K=r(W,m)?.to;return l===null||K==="*"||Array.isArray(K)&&K.includes(l)});return g.length===1?g[0]:null},o=(l,m)=>r(l,m)?M(m).toLowerCase():I(ot(n(l),m)),a=l=>I(rt(e,l)),d=l=>I(ct(e).get(l)?.label??M(l)),x=l=>I(at(n(l),l)),i=(l,m)=>{let g=l===null?void 0:t.formatOf?.(l,m);if(g?.format)return g;let W=t.said?.get(m);return W?{...g,format:W}:g},p=l=>_(e.tryDefinition(l.kind),l),h=t.money?.locale,y=(l,m)=>{if(l==null)return N;if(l instanceof C){if(l.nodes.length===0)return N;let A=l.nodes.slice(0,3).map(p),Y=l.nodes.length-A.length;return L(Y>0?`${A.join(", ")} and ${Y} more`:A.length>1?`${A.slice(0,-1).join(", ")} and ${A[A.length-1]}`:A[0])}if(Array.isArray(l))return L(`{${l.map(A=>y(A,m).text).join(", ")}}`,l.map(A=>y(A,m).text).join(" or "));if(typeof l=="object")return L(p(l));if(typeof l=="boolean")return L(l?"yes":"no");let g=m?.format??(m?i(m.kind,m.key):void 0);if(typeof l=="number")return L(g&&g.format!=="date"?ut(l,{...t.money,...g}):et(l,h));if(Q.test(l)||g?.format==="date")return L(G(nt(l,t.money?.timeZone)??l.slice(0,10),h));if(X.test(l))return L(tt(l,h,t.money?.timeZone));let W=m&&m.kind!==null?n(m.kind)?.display?.format?.[m.key]:void 0;if(W)return L(W(l));let K=l.length>yt?`${l.slice(0,yt-1).trimEnd()}\u2026`:l;return L(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test(K)?K.replace(/[-_]+/g," "):K)};return{definition:n,relation:r,farOf:s,nearOf:u,fieldName:o,plural:a,noun:x,factName:d,formatOf:i,valueWords:y,locale:h}}function P(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:E(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=E(t.args[0],e,n),s=t.args[1];if(s.t==="ident")return{kind:r,key:s.name};if(s.t==="lit"&&typeof s.value=="string")return{kind:r,key:s.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return P(t.left,e,n)??P(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return P(t.args[1],e,n)??P(t.args[2],e,n)}function E(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(E(t.object,e,n),t.name);case"where":return E(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?E(t.left,e,n):null;case"call":{let r=s=>{let u=t.args[s];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(E(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(E(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?E(t.args[0],e,n):null}default:return null}}function j(t){return t.t==="binary"?t.op==="||"?U(t)?4:1:t.op==="&&"?2:t.op in V||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var $=t=>t.t==="lit",b=(t,e)=>t.t==="call"&&t.fn===e;function F(t,e){return t.t==="binary"&&t.op===e?[...F(t.left,e),...F(t.right,e)]:[t]}function U(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...F(t,"||"));let n,r=[];for(let s of e){if(s.t!=="binary"||s.op!=="=="||!$(s.right)||typeof s.right.value!="string"||n&&JSON.stringify(gt(n))!==JSON.stringify(gt(s.left)))return;n=s.left,r.push(s.right)}return n?{subject:n,values:r}:void 0}var gt=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let s=(u,o,a=e)=>j(u)<o?[v,...f(u,a,n),w]:f(u,a,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[O(n.fieldName(e,t.name))];case"member":{let u=b(t.object,"first")&&t.object.args[0]&&b(t.object.args[0],"all"),o=E(t.object,e,n);if(u&&o)return e!==null&&n.fieldName(e,t.name)===n.fieldName(o,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[O(`${n.noun(o)}'s ${n.fieldName(o,t.name)}`)]:[O(n.fieldName(o,t.name))];let a=f(t.object,e,n),d=a[a.length-1];return a.length===1&&d?.as==="name"?[O(`${d.text}'s ${n.fieldName(o,t.name)}`)]:[...a,c("'s"),O(n.fieldName(o,t.name))]}case"unary":return t.op==="-"?[R("\u2212","minus"),...s(t.operand,7)]:T(t.operand,e,n);case"where":{let u=E(t.set,e,n),o=f(t.filter,u,n),a=o.every(d=>d.as==="name"||d.as==="word"&&d.text==="not");return[...s(t.set,4),...a?[]:[c("with")],...j(t.filter)<=2?[v,...o,w]:o]}case"binary":return xt(t,e,n);case"call":return At(t,e,n)}}function T(t,e,n){return ht(t)?xt({...t,op:B[t.op]},e,n):b(t,"present")||b(t,"exists")?[...f(t.args[0],e,n),R("=","is"),N]:t.t==="ident"?[c("not"),O(n.fieldName(e,t.name))]:[c("not"),v,...f(t,e,n),w]}function xt(t,e,n){let r=(o,a)=>j(o)<a?[v,...f(o,e,n),w]:f(o,e,n);if(t.op==="&&"||t.op==="||"){let o=U(t);if(o){let d=P(o.subject,e,n);return[...f(o.subject,e,n),R("\u2208","is one of"),n.valueWords(o.values.map(x=>x.value),d)]}let a=t.op==="&&"?2:1;return[...r(t.left,a),c(t.op==="&&"?"and":"or"),...r(t.right,a+.5)]}if(t.op in V){if($(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):T(t.left,e,n);let[o,a]=V[t.op],d=P(t.left,e,n),x=P(t.right,e,n);return[...S(t.left,e,n,x),R(o,a),...S(t.right,e,n,d)]}if(t.op==="in")return[...r(t.left,5),R("\u2208","is one of"),...S(t.right,e,n,P(t.left,e,n))];let s=Lt[t.op];if(s){let o=j(t);return[...r(t.left,o),R(s[0],s[1]),...r(t.right,o+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),c(u[t.op]??t.op),...r(t.right,5)]}function S(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):j(t)<5?[v,...f(t,e,n),w]:f(t,e,n)}function At(t,e,n){let r=o=>t.args[o],s=o=>{let a=t.args[o];return a?.t==="lit"&&typeof a.value=="string"?a.value:void 0},u=o=>{let a=r(o);return j(a)<9&&a.t!=="where"?[v,...f(a,e,n),w]:f(a,e,n)};switch(t.fn){case"out":{let o=s(t.args.length-1)??"",a=O(M(o).toLowerCase());return t.args.length===2?[a,c("of"),...u(0)]:[a]}case"in":{let o=s(t.args.length-1)??"",a=t.args.length===2?n.nearOf(E(r(0),e,n),o):n.nearOf(e,o),d=O(a?n.plural(a):M(o).toLowerCase());return t.args.length===2?[d,c("of"),...u(0)]:[d]}case"all":{let o=s(0),a=t.args[1]?.t==="lit"?t.args[1].value:void 0,d=a===!0?[c("archived")]:a==="all"?[c("archived or not")]:[];return a===!0?[...d,O(o?n.plural(o):"everything")]:[O(o?n.plural(o):"everything"),...d]}case"fact":{let o=s(0);return[O(o?n.factName(o):"fact")]}case"count":return[c("number of"),...u(0)];case"exists":return[...u(0),R("\u2260","is not"),N];case"present":return[...f(r(0),e,n),R("\u2260","is not"),N];case"some":case"every":{let o=E(r(0),e,n),a=r(1);return[...t.fn==="some"?[c("some")]:[],...u(0),c(t.fn==="some"?"with":"all with"),...j(a)<=2?[v,...f(a,o,n),w]:f(a,o,n)]}case"sum":case"min":case"max":{let o=E(r(0),e,n),a=r(1),d=a.t==="lit"&&typeof a.value=="string"?[O(n.fieldName(o,a.value))]:j(a)<9?[v,...f(a,o,n),w]:f(a,o,n);return[c(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...d,c("of"),...u(0)]}case"first":{let o=r(0);if(b(o,"all")){let a=o.args[0]?.value;if(typeof a=="string")return[O(`the ${n.noun(a)}`)]}return[c("first of"),...u(0)]}case"sort":return[...u(0),c("by"),...f(r(1),E(r(0),e,n),n)];case"len":return[c("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"contains":case"startsWith":return[...f(r(0),e,n),c(t.fn==="contains"?"contains":"starts with"),...S(r(1),e,n,P(r(0),e,n))];case"today":return[L("today")];case"now":return[L("now")];case"date":return $(r(0))&&typeof r(0).value=="string"?[L(G(String(r(0).value),n.locale))]:f(r(0),e,n);case"days":case"hours":{let o=t.fn,[a,d]=[r(0),r(1)];return b(d,"today")||b(d,"now")?[c(`${o} since`),...f(a,e,n)]:b(a,"today")||b(a,"now")?[c(`${o} until`),...f(d,e,n)]:[c(`${o} from`),...f(a,e,n),c("to"),...f(d,e,n)]}case"if":return[v,...f(r(1),e,n),c("if"),...f(r(0),e,n),c(","),c("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),c("else"),...f(o,e,n)]);default:return[c(t.fn),v,...t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),...f(o,e,n)]),w]}}function Z(t,e){let n=bt(e),r=t.over==="graph"?null:t.over;return z({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function H(t,e,n){let r=bt(e),s=t.over==="graph"?null:t.over,u=n.subject,o=i=>{try{return q(i,{...n,budget:2e3})}catch{return}},a=(i,p)=>{let h=S(i,s,r,p);if(i.t==="lit"||i.t==="list"||b(i,"today")||b(i,"now")||b(i,"date"))return h;let y=o(i);if(y===void 0)return h;let l=P(i,s,r),m=r.valueWords(y,l?{...l,format:r.formatOf(l.kind,l.key)??(p?r.formatOf(p.kind,p.key):void 0)}:p);return y instanceof C?[...h,c(":"),m]:[...h,m]},d=i=>{if(i.t==="binary"&&i.op==="&&"){let p=[];p.push(...F(i,"&&"));let h=p.filter(y=>o(y)!==!0);return(h.length>0?h:p).flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op==="||"){let p=U(i);if(p){let y=P(p.subject,s,r);return[...a(p.subject),R("\u2209","is not one of"),r.valueWords(p.values.map(l=>l.value),y)]}let h=[];return h.push(...F(i,"||")),h.flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op in V){if($(i.right)&&typeof i.right.value=="boolean"&&(i.op==="=="||i.op==="!="))return i.op==="=="===i.right.value?T(i.left,s,r):f(i.left,s,r);let p=B[i.op],[h,y]=V[p],l=P(i.left,s,r),m=P(i.right,s,r);if($(i.right)&&i.right.value===null)return[...p==="=="?S(i.left,s,r,m):a(i.left,m),R(h,y),N];let g=p==="=="&&($(i.right)||$(i.left));return[...g?S(i.left,s,r,m):a(i.left,m),R(h,y),...g?S(i.right,s,r,l):a(i.right,l)]}if(i.t==="binary"&&i.op==="in")return[...a(i.left),R("\u2209","is not one of"),...S(i.right,s,r,P(i.left,s,r))];if(i.t==="unary"&&i.op==="!"){let p=i.operand;return ht(p)?d({...p,op:B[p.op]}):b(p,"present")||b(p,"exists")?[...a(p.args[0]),R("\u2260","is not"),N]:p.t==="ident"?f(p,s,r):[c("not"),v,...T(p,s,r),w]}if(b(i,"present")||b(i,"exists"))return[...f(i.args[0],s,r),R("=","is"),N];if(b(i,"some"))return[...f(i,s,r).slice(1),R("=","is"),N];if(b(i,"every")&&i.args.length===2){let p=o(i.args[0]);if(p instanceof C){let h=p.nodes.filter(y=>{try{return q(i.args[1],{...n,subject:y,budget:2e3})!==!0}catch{return!0}});return[...f(i,s,r),c(","),c("not"),r.valueWords(new C(h))]}}return i.t==="ident"?[c("not"),O(r.fieldName(s,i.name))]:[c("not"),v,...f(i,s,r),w]},x;try{x=d(t.require)}catch{x=[c("not"),v,...f(t.require,s,r),w]}return z({...s===null?{}:{kind:s},parts:x,...u?{record:_(e.schema.tryDefinition(u.kind),u)}:{}})}function Rt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function jt(t){return(e,n)=>{let r=t[e]?.fields?.[n],s=r?.format??(r?.type==="date"?"date":void 0);return s||r?.unit?{...s?{format:s}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function wt(t,e){return{schema:e,said:Rt(t.says),...t.declared?{formatOf:jt(t.declared)}:{},...t.money?{money:t.money}:{}}}function Yt(t,e){return t.shape?Z(t.shape,wt(t.shape,e)):void 0}var vt=new WeakMap;function St(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let s=Kt(r),u=n.get(s.invariant)?.shape;if(!u||s.status&&s.status!=="violated")return s;let o=s.subjectId?t.graph.getNode(s.subjectId):void 0;if(u.over!=="graph"&&!o)return s;let a=u.kinds;a||(a=vt.get(t.schema),a||vt.set(t.schema,a=dt(t.schema)));try{let d=t.today?.()??u.today?.()??k(),x=H(u,wt(u,t.schema),{graph:t.graph,subject:o??null,kinds:a,today:d});return{...s,line:x,...u.says?{}:{message:`${s.message} \u2014 ${x.text}`}}}catch{return s}})}function Nt(){lt((t,e,n,r)=>St({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),pt(Wt)}function Wt(t,e,n,r){let s=e.graph,u=it.from(t.schema,s.snapshot(),{validate:!1});for(let x of n?[...r].reverse().map(st):r)try{u.applyPrimitives([x],{restoring:!0})}catch{}let o=x=>t.violations(void 0,x),a=o(n?u:s),d=o(n?s:u);return{...ft(t.allInvariants(),a,d),violationsAfter:d}}function Kt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}Nt();export{H as brokenLineOf,Nt as judgeWithLines,Wt as judgedForASeat,Pt as problemWords,Yt as ruleLine,Z as ruleLineOf,mt as ruleLineWords,J as ruleSpacing,Et as ruleSpoken,Ot as ruleText,Kt as unlined,St as withLines};
1
+ import{b as pt}from"./chunk.B7TB6YRZ.js";import{a as dt}from"./chunk.CC47O2DW.js";import{f as ct}from"./chunk.2IX3CZNP.js";import{a as C,f as q}from"./chunk.6DHHUBSC.js";import{$a as st,Cb as ut,E as Q,F as X,H as k,Jc as ft,N as G,Q as tt,S as nt,T as et,ba as _,bb as it,da as M,eb as lt,fa as rt,ia as ot,ka as at}from"./chunk.5ZMENPY4.js";import"./chunk.AJZBJBMO.js";function J(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let s=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!s}),n=r.as==="open"}return e}function D(t,e){return J(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function Ot(t){return D(t,!1)}function Et(t){return D(t,!0)}function mt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function z(t){let e=u=>J(u).map(({part:o,space:a})=>({...o,space:a})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,s=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:s(!1),said:s(!0)}}function Pt(t,e=!1){return t.line?mt(t.line,e):t.message}var yt=60,O=t=>({text:t,as:"name"}),c=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},L=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},R=(t,e)=>({text:t,as:"op",said:e}),v={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},V={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},Lt={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},ht=t=>t.t==="binary"&&t.op in V;function I(t){return t.length>1&&t[1]===t[1].toUpperCase()&&/[A-Z]/.test(t[1])?t:t.charAt(0).toLowerCase()+t.slice(1)}function bt(t){let{schema:e}=t,n=l=>l===null?void 0:e.tryDefinition(l),r=(l,m)=>{let g=n(l)?.edges;return g&&Object.hasOwn(g,m)?g[m]:void 0},s=(l,m)=>{let g=r(l,m)?.to;return Array.isArray(g)&&g.length===1?g[0]:null},u=(l,m)=>{let g=(e.edge(m)?.from??[]).filter(W=>{let K=r(W,m)?.to;return l===null||K==="*"||Array.isArray(K)&&K.includes(l)});return g.length===1?g[0]:null},o=(l,m)=>r(l,m)?M(m).toLowerCase():I(ot(n(l),m)),a=l=>I(rt(e,l)),d=l=>I(ct(e).get(l)?.label??M(l)),x=l=>I(at(n(l),l)),i=(l,m)=>{let g=l===null?void 0:t.formatOf?.(l,m);if(g?.format)return g;let W=t.said?.get(m);return W?{...g,format:W}:g},p=l=>_(e.tryDefinition(l.kind),l),h=t.money?.locale,y=(l,m)=>{if(l==null)return N;if(l instanceof C){if(l.nodes.length===0)return N;let A=l.nodes.slice(0,3).map(p),Y=l.nodes.length-A.length;return L(Y>0?`${A.join(", ")} and ${Y} more`:A.length>1?`${A.slice(0,-1).join(", ")} and ${A[A.length-1]}`:A[0])}if(Array.isArray(l))return L(`{${l.map(A=>y(A,m).text).join(", ")}}`,l.map(A=>y(A,m).text).join(" or "));if(typeof l=="object")return L(p(l));if(typeof l=="boolean")return L(l?"yes":"no");let g=m?.format??(m?i(m.kind,m.key):void 0);if(typeof l=="number")return L(g&&g.format!=="date"?ut(l,{...t.money,...g}):et(l,h));if(Q.test(l)||g?.format==="date")return L(G(nt(l,t.money?.timeZone)??l.slice(0,10),h));if(X.test(l))return L(tt(l,h,t.money?.timeZone));let W=m&&m.kind!==null?n(m.kind)?.display?.format?.[m.key]:void 0;if(W)return L(W(l));let K=l.length>yt?`${l.slice(0,yt-1).trimEnd()}\u2026`:l;return L(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test(K)?K.replace(/[-_]+/g," "):K)};return{definition:n,relation:r,farOf:s,nearOf:u,fieldName:o,plural:a,noun:x,factName:d,formatOf:i,valueWords:y,locale:h}}function P(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:E(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=E(t.args[0],e,n),s=t.args[1];if(s.t==="ident")return{kind:r,key:s.name};if(s.t==="lit"&&typeof s.value=="string")return{kind:r,key:s.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return P(t.left,e,n)??P(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return P(t.args[1],e,n)??P(t.args[2],e,n)}function E(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(E(t.object,e,n),t.name);case"where":return E(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?E(t.left,e,n):null;case"call":{let r=s=>{let u=t.args[s];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(E(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(E(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?E(t.args[0],e,n):null}default:return null}}function j(t){return t.t==="binary"?t.op==="||"?U(t)?4:1:t.op==="&&"?2:t.op in V||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var $=t=>t.t==="lit",b=(t,e)=>t.t==="call"&&t.fn===e;function F(t,e){return t.t==="binary"&&t.op===e?[...F(t.left,e),...F(t.right,e)]:[t]}function U(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...F(t,"||"));let n,r=[];for(let s of e){if(s.t!=="binary"||s.op!=="=="||!$(s.right)||typeof s.right.value!="string"||n&&JSON.stringify(gt(n))!==JSON.stringify(gt(s.left)))return;n=s.left,r.push(s.right)}return n?{subject:n,values:r}:void 0}var gt=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let s=(u,o,a=e)=>j(u)<o?[v,...f(u,a,n),w]:f(u,a,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[O(n.fieldName(e,t.name))];case"member":{let u=b(t.object,"first")&&t.object.args[0]&&b(t.object.args[0],"all"),o=E(t.object,e,n);if(u&&o)return e!==null&&n.fieldName(e,t.name)===n.fieldName(o,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[O(`${n.noun(o)}'s ${n.fieldName(o,t.name)}`)]:[O(n.fieldName(o,t.name))];let a=f(t.object,e,n),d=a[a.length-1];return a.length===1&&d?.as==="name"?[O(`${d.text}'s ${n.fieldName(o,t.name)}`)]:[...a,c("'s"),O(n.fieldName(o,t.name))]}case"unary":return t.op==="-"?[R("\u2212","minus"),...s(t.operand,7)]:T(t.operand,e,n);case"where":{let u=E(t.set,e,n),o=f(t.filter,u,n),a=o.every(d=>d.as==="name"||d.as==="word"&&d.text==="not");return[...s(t.set,4),...a?[]:[c("with")],...j(t.filter)<=2?[v,...o,w]:o]}case"binary":return xt(t,e,n);case"call":return At(t,e,n)}}function T(t,e,n){return ht(t)?xt({...t,op:B[t.op]},e,n):b(t,"present")||b(t,"exists")?[...f(t.args[0],e,n),R("=","is"),N]:t.t==="ident"?[c("not"),O(n.fieldName(e,t.name))]:[c("not"),v,...f(t,e,n),w]}function xt(t,e,n){let r=(o,a)=>j(o)<a?[v,...f(o,e,n),w]:f(o,e,n);if(t.op==="&&"||t.op==="||"){let o=U(t);if(o){let d=P(o.subject,e,n);return[...f(o.subject,e,n),R("\u2208","is one of"),n.valueWords(o.values.map(x=>x.value),d)]}let a=t.op==="&&"?2:1;return[...r(t.left,a),c(t.op==="&&"?"and":"or"),...r(t.right,a+.5)]}if(t.op in V){if($(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):T(t.left,e,n);let[o,a]=V[t.op],d=P(t.left,e,n),x=P(t.right,e,n);return[...S(t.left,e,n,x),R(o,a),...S(t.right,e,n,d)]}if(t.op==="in")return[...r(t.left,5),R("\u2208","is one of"),...S(t.right,e,n,P(t.left,e,n))];let s=Lt[t.op];if(s){let o=j(t);return[...r(t.left,o),R(s[0],s[1]),...r(t.right,o+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),c(u[t.op]??t.op),...r(t.right,5)]}function S(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):j(t)<5?[v,...f(t,e,n),w]:f(t,e,n)}function At(t,e,n){let r=o=>t.args[o],s=o=>{let a=t.args[o];return a?.t==="lit"&&typeof a.value=="string"?a.value:void 0},u=o=>{let a=r(o);return j(a)<9&&a.t!=="where"?[v,...f(a,e,n),w]:f(a,e,n)};switch(t.fn){case"out":{let o=s(t.args.length-1)??"",a=O(M(o).toLowerCase());return t.args.length===2?[a,c("of"),...u(0)]:[a]}case"in":{let o=s(t.args.length-1)??"",a=t.args.length===2?n.nearOf(E(r(0),e,n),o):n.nearOf(e,o),d=O(a?n.plural(a):M(o).toLowerCase());return t.args.length===2?[d,c("of"),...u(0)]:[d]}case"all":{let o=s(0),a=t.args[1]?.t==="lit"?t.args[1].value:void 0,d=a===!0?[c("archived")]:a==="all"?[c("archived or not")]:[];return a===!0?[...d,O(o?n.plural(o):"everything")]:[O(o?n.plural(o):"everything"),...d]}case"fact":{let o=s(0);return[O(o?n.factName(o):"fact")]}case"count":return[c("number of"),...u(0)];case"exists":return[...u(0),R("\u2260","is not"),N];case"present":return[...f(r(0),e,n),R("\u2260","is not"),N];case"some":case"every":{let o=E(r(0),e,n),a=r(1);return[...t.fn==="some"?[c("some")]:[],...u(0),c(t.fn==="some"?"with":"all with"),...j(a)<=2?[v,...f(a,o,n),w]:f(a,o,n)]}case"sum":case"min":case"max":{let o=E(r(0),e,n),a=r(1),d=a.t==="lit"&&typeof a.value=="string"?[O(n.fieldName(o,a.value))]:j(a)<9?[v,...f(a,o,n),w]:f(a,o,n);return[c(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...d,c("of"),...u(0)]}case"first":{let o=r(0);if(b(o,"all")){let a=o.args[0]?.value;if(typeof a=="string")return[O(`the ${n.noun(a)}`)]}return[c("first of"),...u(0)]}case"sort":return[...u(0),c("by"),...f(r(1),E(r(0),e,n),n)];case"len":return[c("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"contains":case"startsWith":return[...f(r(0),e,n),c(t.fn==="contains"?"contains":"starts with"),...S(r(1),e,n,P(r(0),e,n))];case"today":return[L("today")];case"now":return[L("now")];case"date":return $(r(0))&&typeof r(0).value=="string"?[L(G(String(r(0).value),n.locale))]:f(r(0),e,n);case"days":case"hours":{let o=t.fn,[a,d]=[r(0),r(1)];return b(d,"today")||b(d,"now")?[c(`${o} since`),...f(a,e,n)]:b(a,"today")||b(a,"now")?[c(`${o} until`),...f(d,e,n)]:[c(`${o} from`),...f(a,e,n),c("to"),...f(d,e,n)]}case"if":return[v,...f(r(1),e,n),c("if"),...f(r(0),e,n),c(","),c("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),c("else"),...f(o,e,n)]);default:return[c(t.fn),v,...t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),...f(o,e,n)]),w]}}function Z(t,e){let n=bt(e),r=t.over==="graph"?null:t.over;return z({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function H(t,e,n){let r=bt(e),s=t.over==="graph"?null:t.over,u=n.subject,o=i=>{try{return q(i,{...n,budget:2e3})}catch{return}},a=(i,p)=>{let h=S(i,s,r,p);if(i.t==="lit"||i.t==="list"||b(i,"today")||b(i,"now")||b(i,"date"))return h;let y=o(i);if(y===void 0)return h;let l=P(i,s,r),m=r.valueWords(y,l?{...l,format:r.formatOf(l.kind,l.key)??(p?r.formatOf(p.kind,p.key):void 0)}:p);return y instanceof C?[...h,c(":"),m]:[...h,m]},d=i=>{if(i.t==="binary"&&i.op==="&&"){let p=[];p.push(...F(i,"&&"));let h=p.filter(y=>o(y)!==!0);return(h.length>0?h:p).flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op==="||"){let p=U(i);if(p){let y=P(p.subject,s,r);return[...a(p.subject),R("\u2209","is not one of"),r.valueWords(p.values.map(l=>l.value),y)]}let h=[];return h.push(...F(i,"||")),h.flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op in V){if($(i.right)&&typeof i.right.value=="boolean"&&(i.op==="=="||i.op==="!="))return i.op==="=="===i.right.value?T(i.left,s,r):f(i.left,s,r);let p=B[i.op],[h,y]=V[p],l=P(i.left,s,r),m=P(i.right,s,r);if($(i.right)&&i.right.value===null)return[...p==="=="?S(i.left,s,r,m):a(i.left,m),R(h,y),N];let g=p==="=="&&($(i.right)||$(i.left));return[...g?S(i.left,s,r,m):a(i.left,m),R(h,y),...g?S(i.right,s,r,l):a(i.right,l)]}if(i.t==="binary"&&i.op==="in")return[...a(i.left),R("\u2209","is not one of"),...S(i.right,s,r,P(i.left,s,r))];if(i.t==="unary"&&i.op==="!"){let p=i.operand;return ht(p)?d({...p,op:B[p.op]}):b(p,"present")||b(p,"exists")?[...a(p.args[0]),R("\u2260","is not"),N]:p.t==="ident"?f(p,s,r):[c("not"),v,...T(p,s,r),w]}if(b(i,"present")||b(i,"exists"))return[...f(i.args[0],s,r),R("=","is"),N];if(b(i,"some"))return[...f(i,s,r).slice(1),R("=","is"),N];if(b(i,"every")&&i.args.length===2){let p=o(i.args[0]);if(p instanceof C){let h=p.nodes.filter(y=>{try{return q(i.args[1],{...n,subject:y,budget:2e3})!==!0}catch{return!0}});return[...f(i,s,r),c(","),c("not"),r.valueWords(new C(h))]}}return i.t==="ident"?[c("not"),O(r.fieldName(s,i.name))]:[c("not"),v,...f(i,s,r),w]},x;try{x=d(t.require)}catch{x=[c("not"),v,...f(t.require,s,r),w]}return z({...s===null?{}:{kind:s},parts:x,...u?{record:_(e.schema.tryDefinition(u.kind),u)}:{}})}function Rt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function jt(t){return(e,n)=>{let r=t[e]?.fields?.[n],s=r?.format??(r?.type==="date"?"date":void 0);return s||r?.unit?{...s?{format:s}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function wt(t,e){return{schema:e,said:Rt(t.says),...t.declared?{formatOf:jt(t.declared)}:{},...t.money?{money:t.money}:{}}}function Yt(t,e){return t.shape?Z(t.shape,wt(t.shape,e)):void 0}var vt=new WeakMap;function St(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let s=Kt(r),u=n.get(s.invariant)?.shape;if(!u||s.status&&s.status!=="violated")return s;let o=s.subjectId?t.graph.getNode(s.subjectId):void 0;if(u.over!=="graph"&&!o)return s;let a=u.kinds;a||(a=vt.get(t.schema),a||vt.set(t.schema,a=dt(t.schema)));try{let d=t.today?.()??u.today?.()??k(),x=H(u,wt(u,t.schema),{graph:t.graph,subject:o??null,kinds:a,today:d});return{...s,line:x,...u.says?{}:{message:`${s.message} \u2014 ${x.text}`}}}catch{return s}})}function Nt(){lt((t,e,n,r)=>St({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),pt(Wt)}function Wt(t,e,n,r){let s=e.graph,u=it.from(t.schema,s.snapshot(),{validate:!1});for(let x of n?[...r].reverse().map(st):r)try{u.applyPrimitives([x],{restoring:!0})}catch{}let o=x=>t.violations(void 0,x),a=o(n?u:s),d=o(n?s:u);return{...ft(t.allInvariants(),a,d),violationsAfter:d}}function Kt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}Nt();export{H as brokenLineOf,Nt as judgeWithLines,Wt as judgedForASeat,Pt as problemWords,Yt as ruleLine,Z as ruleLineOf,mt as ruleLineWords,J as ruleSpacing,Et as ruleSpoken,Ot as ruleText,Kt as unlined,St as withLines};
@@ -0,0 +1 @@
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as _,b as de,e as pe,f as ue,g as me}from"./chunk.RWB4235L.js";import{b as G}from"./chunk.CTK2P4JV.js";import{c as le}from"./chunk.KJNUZYXS.js";import{n as P}from"./chunk.HHUCPVG5.js";import{i as x,j as re,k as ie,q as oe,r as se}from"./chunk.NSNGPQGT.js";import{d as ne,e as ae}from"./chunk.H5CZZZLX.js";import{b as ee,f as te}from"./chunk.Z7JRBKA7.js";import{$ as Y,G as fe,R as X,_ as O,ba as U,qa as Z}from"./chunk.BTSXYZ6Z.js";import{a as Q}from"./chunk.SDO3U72B.js";import{da as W,ia as J}from"./chunk.5ZMENPY4.js";import{b as D}from"./chunk.AJZBJBMO.js";var p=D(fe(),1);var he=Z(Q(()=>(__graviewPreload(import.meta.url,["./chunk.HFDYFPMJ.js","./chunk.RWB4235L.js","./chunk.CTK2P4JV.js","./chunk.WVUJXDXZ.js","./chunk.KJNUZYXS.js","./chunk.4BBJ62ZO.js","./chunk.UCZR33MK.js","./chunk.CC47O2DW.js","./chunk.2IX3CZNP.js","./chunk.6DHHUBSC.js","./chunk.GZHZLJBF.js","./chunk.HHUCPVG5.js","./chunk.OJGHDWI6.js","./chunk.WXYUWBKX.js","./chunk.NSNGPQGT.js","./chunk.H5CZZZLX.js","./chunk.Z7JRBKA7.js","./chunk.ORXFUK6F.js","./chunk.BTSXYZ6Z.js","./chunk.SDO3U72B.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.5R4E5C76.js")))),ce=he.part((i,a)=>i.drawAppLink(a),{quiet:!0});var e=D(X(),1);function K({nodeId:i,field:a,value:l,stored:s=l,said:c}){let{fields:m,commit:o}=P(i),t=m.find(r=>r.field===a),{store:y,principal:I}=O(),u=y.graph.getNode(i)?.kind,g=y.schema.definitions.find(r=>r.kind===u),v=J(g,a),k=v.toLowerCase(),n=c??`${v.charAt(0).toUpperCase()}${v.slice(1)}: ${l}`,[w,E]=(0,p.useState)(!1),d=t?.shape.type==="number"?t.shape.amount:void 0,f=d&&s!==""&&Number.isFinite(Number(s))?re(Number(s),d):s,[b,M]=(0,p.useState)(f),C=(0,p.useRef)(null),j=(0,p.useRef)(null),z=(0,p.useRef)(!1),S=r=>{z.current=r,E(!1)};(0,p.useEffect)(()=>M(f),[f,w]);let q=t?.shape.type==="date";if((0,p.useEffect)(()=>{q&&me()},[q]),(0,p.useEffect)(()=>{w?C.current?.focus():z.current&&(z.current=!1,j.current?.focus())},[w]),!t)return(0,e.jsx)("span",{"data-graview-field":a,"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)return(0,e.jsx)("button",{ref:j,type:"button","data-graview-field":a,"data-graview-editable":t.mutation,...n===l?{}:{"aria-label":n},title:`${t.title} \u2014 changes the ${k}, and can be undone`,onClick:()=>E(!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});let R=(r,{left:h=!1}={})=>{S(!h),!(r===s||r===""||r===void 0)&&(t.shape.type==="date"&&typeof r=="string"&&ge(r)||o(t,r))},ge=r=>{if(t.shape.type!=="date")return!1;let h=m.filter(L=>L.shape.type==="date"&&L.takesValue),T=se(h.map(L=>L.field),g?.fieldRoles??{}),A=T?.start===a?h.find(L=>L.field===T.end):void 0,N=y.graph.getNode(i)?.[T?.end??""];if(!A||typeof N!="string")return!1;let F=oe(s===""?void 0:s,r,N,{time:t.shape.time===!0,instant:t.shape.instant===!0});if(F===void 0||F===N)return!1;let $=t.call(r),V=A.call(F);return y.applyAll($.name===V.name?[{name:$.name,args:{...$.args,...V.args}}]:[$,V],{author:I}),!0};if(!t.takesValue){let r=[t,...t.alternatives];return(0,e.jsx)("span",{role:"group","aria-label":`Change ${W(a).toLowerCase()}`,"data-graview-field":a,style:{display:"inline-flex",gap:6,alignItems:"center",flexWrap:"wrap"},onKeyDown:h=>{h.key==="Escape"&&S(!0)},children:r.map((h,T)=>(0,e.jsx)("button",{type:"button",ref:T===0?C:void 0,"data-graview-act":h.mutation,onClick:()=>{S(!0),o(h,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:h.title},h.mutation))})}return(0,e.jsxs)("form",{style:{display:"inline-flex",flexWrap:"wrap",gap:4,maxWidth:"100%"},onSubmit:r=>{r.preventDefault(),R(ye(t,b))},children:[t.shape.type==="choice"?(0,e.jsx)("select",{ref:C,"aria-label":W(a),"data-graview-field":a,value:b,onChange:r=>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:ee(g,a,r)},r))}):t.shape.type==="date"?(0,e.jsx)(ue,{inputRef:C,label:W(a),value:b===""?void 0:b,time:t.shape.time===!0,instant:t.shape.instant===!0,onChange:r=>M(r??""),onLeave:r=>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:C,"aria-label":d?`${W(a)}, ${x(d).hint}`:W(a),"data-graview-field":a,...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:b,onChange:r=>M(r.target.value),onBlur:()=>R(ye(t,b),{left:!0}),onKeyDown:r=>{r.key==="Escape"&&S(!0)},style:{font:"inherit",fontSize:"inherit",width:`min(${Math.max(6,b.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 ye(i,a){return i.shape.type==="number"&&i.shape.amount?ie(a,i.shape.amount):i.shape.type==="number"?i.shape.duration?te(a)??a:Number(a):i.shape.type==="text"&&i.shape.holds?a.trim():a}function ve({href:i,field:a,value:l,stored:s,nodeId:c}){let m=i.startsWith("tel:"),o=(t,y)=>(0,e.jsx)("a",{href:i,"data-graview-link":a,...y?{"aria-label":y}:{},...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:a,value:l,...s===void 0?{}:{stored:s}}),o(m?"Call":"Map",m?`Call ${l}`:`Open ${l} in maps`)]})}function Ve({id:i,hide:a=[],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),y=ne(o,t,{limit:l,said:c}).filter(u=>!a.includes(u.key)),I=le(t).length>0;return y.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:[ae(t,y).map((u,g)=>{let v=(0,e.jsx)("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto 1fr",gap:"5px 16px",alignContent:"start",minWidth:0},children:u.fields.map(n=>n.files?(0,e.jsx)(_,{as:"field",nodeId:o.id,field:n.key,label:s[n.key]??n.label,files:n.files,labelStyle:B,style:{marginTop:6}},n.key):n.long?(0,e.jsx)(ke,{nodeId:o.id,field:n.key,label:s[n.key]??n.label,value:n.value,markdown:n.markdown,labelStyle:B,style:{gridColumn:"1 / -1",marginTop:6}},n.key):(0,e.jsxs)("div",{style:{display:"contents"},children:[(0,e.jsx)("dt",{style:{...B,whiteSpace:"nowrap"},children:s[n.key]??n.label}),(0,e.jsxs)("dd",{style:{margin:0,minWidth:0},children:[n.linked?(0,e.jsx)(de,{relation:n.linked.relation,refs:n.linked.refs,nodeId:o.id,field:n.key}):n.app?(0,e.jsx)(ce,{address:n.app,as:"record",nodeId:o.id,field:n.key}):n.href?(0,e.jsx)(ve,{href:n.href,field:n.key,value:n.value,stored:n.stored,nodeId:o.id}):(0,e.jsx)(K,{nodeId:o.id,field:n.key,value:n.value,stored:n.stored}),n.repeats?(0,e.jsx)(pe,{nodeId:o.id,field:n.key,start:o[n.key],value:o[`${n.key}Repeat`],label:`${s[n.key]??n.label} repeats`}):null]})]},n.key))});if(!u.title)return(0,e.jsx)("div",{children:v},g);let k=`graview-field-group-${o.id}-${g}`;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:be,children:u.title}),v]},g)}),I?(0,e.jsx)(_,{as:"unfilled",nodeId:o.id,skip:a,labels:s,labelStyle:B}):null]})}var B={color:"var(--graview-ink-faint)",fontSize:"0.8125rem"},be={margin:0,fontSize:"0.75rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)",fontWeight:560};function ke(i){return Y()?(0,e.jsx)(Se,{...i}):(0,e.jsx)(we,{...i})}function we({field:i,label:a,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:a}),(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 Se({nodeId:i,field:a,label:l,value:s,labelStyle:c,valueStyle:m,style:o,markdown:t}){let{fields:y,commit:I}=P(i),u=y.find(f=>f.field===a&&f.takesValue),[g,v]=(0,p.useState)(!1),k=(0,p.useRef)(null),n=(0,p.useRef)(!1);(0,p.useEffect)(()=>{!g&&n.current&&(n.current=!1,k.current?.focus())},[g]);let w=f=>{n.current=f,v(!1)},E=l.toLowerCase(),d=(0,e.jsx)(G,{text:s,markdown:t});return(0,e.jsxs)("div",{"data-graview-long":a,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&&!g?(0,e.jsx)("button",{ref:k,type:"button","data-graview-editable":u.mutation,"aria-label":`Edit the ${E}`,title:`${u.title} \u2014 changes the ${E}, and can be undone`,onClick:()=>v(!0),style:Ie,children:"Edit"}):null]}),(0,e.jsx)("dd",{style:{margin:0,minWidth:0,...m},children:g&&u?(0,e.jsx)(p.Suspense,{fallback:d,children:(0,e.jsx)(xe,{field:a,label:l,value:s,...t?{markdown:!0}:{},onCancel:()=>w(!0),onSave:(f,b)=>{w(!b),f!==s&&I(u,f)}})}):(0,e.jsx)("div",{"data-graview-field":a,...u?{}:{"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${E}`},...u?{onClick:()=>v(!0)}:{},style:{cursor:u?"text":"default",minWidth:0},children:d})})]})}var xe=(0,p.lazy)(()=>(__graviewPreload(import.meta.url,["./chunk.CTK2P4JV.js","./chunk.ORXFUK6F.js","./chunk.BTSXYZ6Z.js","./chunk.SDO3U72B.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.G46WGK5E.js"))),Ie={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 De({nodeId:i,children:a}){let{fields:l}=P(i),s=U(i);if(!s)return(0,e.jsx)(e.Fragment,{children:a});let c=l.find(m=>{let o=s[m.field];return typeof o=="string"&&o===a});return c?(0,e.jsx)(K,{nodeId:i,field:c.field,value:a,said:a}):(0,e.jsx)(e.Fragment,{children:a})}export{ce as a,K as b,ve as c,Ve as d,ke as e,De as f};
@@ -0,0 +1,6 @@
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)}};function r(t){let i=[];return typeof t!="string"?["A view's source is text."]:(/\bimport\b/.test(t)&&i.push("It says import: a view loads nothing, so the word may not appear in it at all, even in a string or a comment."),/\bimportScripts\b/.test(t)&&i.push("It names importScripts: a view loads nothing."),/^\s*export\b/m.test(t)&&i.push("It exports something: a view is a plain script that draws through the graview global, not a module."),/\brequire\s*\(/.test(t)&&i.push("It calls require(): a view has no modules to require."),i)}var e,n=()=>e??=(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.XQTMO5PW.js")).catch(t=>{throw e=void 0,t});async function o(t){let{VIEW_RUNTIME:i}=await n();return`${i}
2
+ ;(function () {
3
+ "use strict";
4
+ ${t}
5
+ })();
6
+ `}export{r as a,o as b};
@@ -0,0 +1 @@
1
+ import{A as J,C as Q,E as X,I as Y,K as ee,N as ne,a as I,i as q,l as Z,p as z,s as W,t as _,x as j,y as U}from"./chunk.ORXFUK6F.js";import{G as se,R as N,_ as T,aa as $,na as G,ra as K,ya as D}from"./chunk.BTSXYZ6Z.js";import{Lc as O,_b as B,hc as M,jc as P}from"./chunk.5ZMENPY4.js";import{b as A}from"./chunk.AJZBJBMO.js";var a=A(se(),1);function ce(e){let n=[e?.typography?.body,e?.typography?.display,e?.typography?.mono],t=[];for(let r of n){let o=r?.split(",")[0]?.trim().replace(/^["']|["']$/g,"");!o||P(o)||o.toLowerCase()!==B.toLowerCase()&&(t.includes(o)||t.push(o))}return t}function te(e){let n=ce(e);return n.length===0?null:`https://fonts.googleapis.com/css2?${n.map(r=>`family=${encodeURIComponent(r).replace(/%20/g,"+")}:wght@400;500;600;700`).join("&")}&display=swap`}var u=A(N(),1);function ve({rootRef:e,firstLook:n,app:t}){let r=(0,a.useCallback)(()=>e.current,[e]);return n?(0,u.jsx)(ne,{firstLook:n,root:r,app:t}):null}function we(e,n,t){let{app:r}=e,o=(0,a.useMemo)(()=>{let i=Y(n(r.schema,r.viewSpecs),r),c=t?de(i,t):i,s=e.views?e.views(r.schema,c):i,l=s===c?i:G(i,s);return ee(l,r.schema,Q(e.brand??r.brand,r.schema)),t?t.register(l):l},[e.views,r.schema,r.viewSpecs,r.lenses,r.pages,r.home,t]);return K(o,e.keptViews)}function de(e,n){let t={...e,register(r,o,i,c){return c?.name!==n.name&&e.register(r,o,i,c),t},...e.home?{home:r=>(n.home||e.home(r),t)}:{}};return t}function le(e,n){return new O({schema:e.schema,mutations:e.mutations??[],invariants:e.invariants??[],...n?{snapshot:n}:{},...e.policy?{policy:e.policy}:{},...e.intelligence?{intelligence:e.intelligence}:{},...e.brand?.timeZone?{timeZone:e.brand.timeZone}:{}})}function re(e){if(typeof document>"u")return e==="dark"?"dark":"light";let n=document.documentElement.dataset.theme;return n==="dark"||n==="light"?n:e==="dark"||e==="light"?e:typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ue(e,n){let[t,r]=(0,a.useState)(()=>re(n));return(0,a.useEffect)(()=>{if(!e||typeof document>"u")return;let o=()=>r(re(n));o();let i=new MutationObserver(o);i.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});let c=typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null;return c?.addEventListener?.("change",o),()=>{i.disconnect(),c?.removeEventListener?.("change",o)}},[e,n]),t}var k=e=>e?e.getBoundingClientRect().height:0;function Re(e,n,t){let r=(0,a.useRef)(t);r.current=t;let o=t!==void 0;(0,a.useLayoutEffect)(()=>{let i=e.current;if(!i||!o)return;let c=()=>{let m=[...i.children],b=m.find(S=>S.hasAttribute("data-graview-app-bar")),p=m.find(S=>S.hasAttribute("data-embed-content")),f=p?.querySelector("[data-embed-measure]")??null,d=m.find(S=>S.hasAttribute("data-graview-place-line"));return{strip:b,line:d,content:p,measure:f}},s=-1,l=()=>{let{strip:m,line:b,content:p,measure:f}=c(),d=Math.ceil(k(m)+k(b)+k(f||p));d!==s&&(s=d,r.current?.(d))};if(l(),typeof ResizeObserver>"u")return;let y=new ResizeObserver(l),R=()=>{y.disconnect();let{strip:m,line:b,content:p,measure:f}=c();for(let d of[i,m,b,p,f])d&&y.observe(d)};R();let g=new MutationObserver(()=>{R(),l()});return g.observe(i,{childList:!0}),()=>{y.disconnect(),g.disconnect()}},[e,n,o])}var Ee=480,me=0;function xe(e){let{app:n,seed:t,scheme:r="auto",brand:o=n.brand,fonts:i=!0,height:c="100%",label:s}=e,l=(0,a.useRef)(null);D(l);let y=c==="viewport"?"100dvh":c,R=Z(typeof y=="string"&&/vh\b/.test(y)),g=(0,a.useMemo)(()=>`graview-embed-${++me}`,[]),m=(0,a.useMemo)(()=>e.store??e.remote?.store??le(n,t),[e.store,e.remote,n,t]),b=e.presence??e.remote?.presence,p=e.hostContext?.theme,f=ue(r==="auto"&&p===void 0,o?.scheme),d=r==="auto"?p??f:r,S=(0,a.useMemo)(()=>I(d,o,{scope:`.${g}`}),[d,o,g]);q(e.favicon?M(o):void 0),(0,a.useEffect)(()=>{if(!i||typeof document>"u")return;let w=te(o);if(!w||document.querySelector(`link[href="${w}"]`))return;let h=document.createElement("link");h.rel="stylesheet",h.href=w,document.head.appendChild(h)},[o,i]);let L=(0,a.useRef)(void 0);(0,a.useLayoutEffect)(()=>{let w=l.current,h=L.current;if(L.current=s,!w||!s)return;let ie=v=>{let E=v.getAttribute("aria-label")??"",x=h&&h!==s?E.startsWith(`${h} \xB7 `)?E.slice(h.length+3):E===h?"":E:E;x===s&&(v.getAttribute("role")==="region"||v.tagName==="SECTION"&&!v.hasAttribute("role"))&&v.setAttribute("role","group");let V=x.startsWith(`${s} \xB7 `)||x===s?x:x?`${s} \xB7 ${x}`:s;V!==E&&v.setAttribute("aria-label",V)},H=()=>w.querySelectorAll("aside, nav, main, header, footer, section[aria-label]:not([role]), [role=region], [role=complementary], [role=navigation], [role=search]").forEach(v=>{v.hasAttribute("data-graview-named-by-lens")||ie(v)});H();let C=new MutationObserver(H);return C.observe(w,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["aria-label"]}),()=>C.disconnect()},[s]);let ae=R?`${y}`.replace(/([\d.]+)[sdl]?vh\b/g,(w,h)=>`${+h*R/100}px`):y;return{rootRef:l,scope:g,css:S,scheme:d,store:m,presence:b,brand:o,auto:c==="auto",height:ae}}function ke({rootRef:e,board:n}){let t=(0,a.useCallback)(()=>e.current?.querySelector("[data-embed-content]")??e.current,[e]);return(0,u.jsx)(z,{board:n,anchor:t})}function Ae(e,n,t){return{brand:t,locale:e.locale,timeZone:e.timeZone,principal:e.principal,seats:e.seats,presence:n,people:e.people,memory:e.memory,presenceTtlMs:e.presenceTtlMs,onKeepLens:e.onKeepLens,ai:e.ai,files:e.files,resolveApp:e.resolveApp,history:e.history,linkedRecords:e.linkedRecords,subscriptions:e.subscriptions,keptViews:e.keptViews,signIn:e.signIn,menuSections:e.menuSections,app:e.app}}function Fe({name:e,heading:n,faces:t,at:r,without:o,home:i,reach:c,standing:s,hostActions:l,keeping:y,onFind:R,switch:g}){let{brand:m,store:b,principal:p,views:f}=T();$();let d=o?.has("places")?[]:W({store:b,principal:p,views:f}),S=J();return(0,u.jsx)(j,{brand:m,name:e,description:m?.subtitle,heading:n,faces:t,home:i,places:d,current:r===null?null:_(d,r),reach:c,onFind:R,...g?{switch:g}:{},...t?{scenePlaces:S}:{},tools:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(X,{clean:s}),(0,u.jsx)(U,{...l?{hostActions:l}:{},...y?{keeping:y}:{}})]})})}var Le=e=>e===!1?2:Math.min(e+1,6);function He(e){let[n,t]=(0,a.useState)(e),r=(0,a.useRef)(void 0),o=(0,a.useRef)(void 0),i=(0,a.useMemo)(()=>({go:r,at:t,pending:o}),[]),c=(0,a.useCallback)(s=>{if(r.current){r.current(s);return}o.current=s,t(s)},[]);return{at:n,setAt:t,steering:i,steer:c}}function ye(e){let n=typeof e=="object"&&e!==null?e.name:void 0;return{name:typeof n=="string"&&n.length>0?n:typeof e=="object"?"Error":typeof e}}var F=()=>typeof performance<"u"?performance.now():Date.now();function Ce(e,n){let t=(0,a.useRef)({onError:e,face:n});return t.current={onError:e,face:n},(0,a.useCallback)((r,o)=>t.current.onError?.(ye(r),{module:o.module,face:t.current.face}),[])}function Ve(e,n){let t=(0,a.useRef)(null);t.current===null&&(t.current=F());let r=(0,a.useRef)({onReady:e,face:n});r.current={onReady:e,face:n};let o=(0,a.useRef)(!1);return(0,a.useCallback)(i=>{o.current||(o.current=!0,r.current.onReady?.({ms:Math.max(0,F()-(t.current??F())),face:i}))},[])}var oe=class extends a.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(n,t){console.error(`[graview] ${this.props.module} threw while rendering`,n,t.componentStack),this.props.report(n,{module:this.props.module})}render(){return this.state.failed?(0,u.jsxs)("div",{role:"alert","data-graview-face-error":this.props.module,...this.props.content?{"data-embed-content":""}:{},style:this.props.content?{flex:"1 1 auto",display:"grid",alignContent:"center",justifyItems:"center",gap:8,padding:24,background:"var(--graview-ground)",color:"var(--graview-ink)",fontSize:"0.9375rem"}:{display:"inline-flex",alignItems:"center",gap:6,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,u.jsx)("span",{children:this.props.content?"This part of the app could not draw.":"Could not draw."}),(0,u.jsx)("button",{type:"button",onClick:()=>this.setState({failed:!1}),style:{padding:"3px 11px",fontSize:"0.8125rem"},children:"Try again"})]}):this.props.children}};export{ve as a,we as b,le as c,Re as d,Ee as e,xe as f,ke as g,Ae as h,Fe as i,Le as j,He as k,Ce as l,Ve as m,oe as n};
@@ -0,0 +1 @@
1
+ import{l as O}from"./chunk.OJGHDWI6.js";import{e as C}from"./chunk.NSNGPQGT.js";import{$ as I,G as x,R as M,_ as w,aa as W,c as V,ta as G,x as B}from"./chunk.BTSXYZ6Z.js";import{B as D,Gb as F,Mb as N,oc as _,pc as L,vc as j}from"./chunk.5ZMENPY4.js";import{b as m}from"./chunk.AJZBJBMO.js";function H(t,e){let n=t.graph.getNode(e);if(!n)return[];let i=n.kind,a=t.schema.tryDefinition(i);if(!a)return[];let c=t.seenFor,u=c?j.keptFrom?.(t,c)?.(n):void 0,o=new Map;for(let r of t.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 b=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("*")?t.graph.allNodes().map(S=>S.id):v.kinds.flatMap(S=>t.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:b?C(r.input,d):{type:"unknown"},takesValue:b,alternatives:[],open:k,call:h=>({name:r.name,args:b?{[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(t){let e=D(t)?.type;return e==="optional"||e==="default"||e==="nullable"}var R=m(x(),1);function be(t){let{store:e,principal:n}=w(),i=W(),a=(0,R.useMemo)(()=>t===null?[]:H(e,t),[e,t,i]),c=(0,R.useCallback)((u,o,r={})=>{let s=u.call(o);e.apply({name:s.name,args:{...s.args,...r}},{author:n})},[e,n]);return{fields:a,commit:c}}var K=m(x(),1);function Qe(){let{brand:t}=w(),e=t?.kit;return(0,K.useMemo)(()=>_(e),[e])}function Je(t,e){let n=L(t,e),i={...n.color!==void 0?{color:n.color}:{},...n.pattern!==void 0?{pattern:n.pattern}:{},...n.width!==void 0?{width:n.width}:{},...n.cap!==void 0?{cap:n.cap}:{},...n.opacity!==void 0?{opacity:n.opacity}:{}};return{connector:n,style:O(e,{[e]:i})}}var $=m(x(),1);var g=m(M(),1);function Z(t){let e=t?.hint;return typeof e=="string"&&e.length>0?e:void 0}function ee(t){if(t instanceof Error&&t.message)return t.message;let e=String(t);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,n){console.error(`[graview] the ${this.props.view??"view"} of ${this.props.kind} threw while rendering`,e,n.componentStack),this.context?.(e,{module:"@graview/react"})}render(){let{error:e}=this.state;if(!e)return this.props.children;let n=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)}),n?(0,g.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:n}):null]})}};var y=m(x(),1);var q=m(M(),1),A=(0,y.createContext)([]);function nt({sections:t,children:e}){let n=(0,y.useContext)(A),i=(0,y.useMemo)(()=>[...n,...t.filter(a=>!n.includes(a))],[n,t]);return(0,q.jsx)(A.Provider,{value:i,children:e})}function z(){let t=(0,y.useContext)(A),e=I()?.menuSections;return(0,y.useMemo)(()=>e?[...t,...e.filter(n=>!t.includes(n))]:t,[t,e])}function rt(){let t=z();return(0,y.useCallback)(e=>{for(let n of t)try{n(e)?.prepare?.()}catch{}},[t])}function ot(t){let e=z();if(t===null||e.length===0)return{start:[],end:[]};let n=e.flatMap(i=>{try{let a=i(t);return a&&((a.items?.length??0)>0||a.render)?[a]:[]}catch{return[]}});return{start:n.filter(i=>i.at==="start"),end:n.filter(i=>i.at!=="start")}}var te=m(x(),1);function st(){return w().activity}var P=(t,e)=>t.length*e*.58;var ne=156,re=2,E=ne-18,oe=7.1,ie=16;function ae(t,e){let n=0,i=E;for(let a of t.split(" ")){let c=e(a),u=i+e(" ")+c;if(u<=E)i=u;else{let o=Math.ceil(c/E)||1;n+=o,i=c-(o-1)*E}}return n}var se=16.25,Y=27,ce=(t,e)=>{let n=Math.ceil(t.length*oe/E);return e?Math.max(Y,Math.ceil(Math.max(n,ae(t,e))*se)+6):Math.max(Y,n*ie+6)};function ut(t,e,n){return t.length===0?0:10+t.reduce((i,a)=>i+ce(a,n),0)+(t.length-1)*re}var de=27,ue=8,lt=4,le=64,pt=t=>Math.max(1,Math.min(ue,t)),ft=t=>t*de+le;var p=m(x(),1);function gt(t,{units:e,target:n=0,legibleAt:i=260}){let[a,c]=(0,p.useState)(e);(0,p.useEffect)(()=>{let o=t.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()},[t]);let u=a/e;return{scale:u,width:a,touchable:u*n>=24,legible:a>=i}}function xt(t="--graview-font-body",e="sans-serif"){let n=(0,p.useRef)(void 0),i=(0,p.useMemo)(()=>{if(typeof getComputedStyle!="function"||typeof document>"u")return e;let a=getComputedStyle(document.documentElement).getPropertyValue(t).trim();return a.length>0?a:e},[t,e]);return(0,p.useMemo)(()=>{n.current===void 0&&(n.current=typeof document>"u"?null:document.createElement("canvas").getContext("2d")??null);let a=n.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 wt=(0,p.createContext)(void 0);var T=3;function pe(t){let e=V(t),n=e.focusId;if(!n)return null;if(e.within?.view){let[a]=B(n);if(a)return{at:`screen:${a}`,audience:!0}}return{at:n,audience:!1}}var fe=102,me=32;function St(t,e,n){let i=[],a=new Map,c=new Map,u=0;for(let o of t){let r=pe(o.stop),s=r?e(r.at):null;if(!r||!s){o.name&&i.push({kind:"edge",presence:o,point:{x:n-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,b=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:b,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 t)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{st as a,P as b,ne as c,re as d,Y as e,ut as f,de as g,lt as h,le as i,pt as j,ft as k,gt as l,xt as m,be as n,Qe as o,Je as p,St as q,U as r,nt as s,rt as t,ot as u};
@@ -1,4 +1,4 @@
1
- import{o as N}from"./chunk.QT4XGC5Z.js";import{$ as h,H as $,S as f,aa as x}from"./chunk.MQ7FNHXG.js";import{Jc as w,Kc as p,Lc as g,Sc as b}from"./chunk.WLPTY4BF.js";import{b as c}from"./chunk.AJZBJBMO.js";var s=c($(),1);var i=c(f(),1),P=()=>()=>{};function S(e){let n=(0,s.useMemo)(()=>e?.onChange?o=>e.onChange(o):P,[e]),t=()=>e?.current()??p;return(0,s.useSyncExternalStore)(n,t,t)}var R=(e,n)=>e.lens?n.may.lenses:n.may.views;async function v(e,n,t){try{return await n(),!0}catch(o){return e?.notify({kind:"toast",tone:"bad",sentence:o instanceof Error&&o.message?o.message:t}),!1}}function B(e,n,t,o,d){let a=e.name;return v(d,()=>n==="view"&&a!==void 0?o?t.hide(a):t.show(a):t.lens?.({op:"set-lens-hidden",title:e.title,on:e.kind,hidden:o}),o?`\u201C${e.title}\u201D could not be hidden.`:`\u201C${e.title}\u201D could not be shown.`)}function k(e,n,t){return v(t,()=>n.restore(e.name),`\u201C${e.title}\u201D could not be restored.`)}async function H(e,n,t,o){let d=n==="view"&&e.name!==void 0?e.name:w(e.title),a=await v(o,()=>n==="view"&&e.name!==void 0?t.remove(e.name,{title:e.title,kind:e.kind}):t.lens?.({op:"remove-lens",title:e.title,on:e.kind}),`\u201C${e.title}\u201D could not be deleted.`);return a&&o?.notify({kind:"toast",id:`deleted-view-${d}`,sentence:`Deleted \u201C${e.title}\u201D. It is under Recently deleted in the places for ${30} days.`,action:{label:"Restore",onSelect:()=>void k({name:d,title:e.title},t,o)}}),a}function E(){let e=x(),n=e?.keptViews,t=S(n),o=e?.views;return(0,s.useMemo)(()=>{if(!n||!o)return null;let d=r=>g(r,t,n),a=new Set,u=o.places().filter(r=>{if(!r.hidden||d(r)===null)return!1;let m=`${r.name??""}|${r.title}`;return a.has(m)?!1:(a.add(m),!0)});return{keeper:n,hidden:u,removed:t.removed.filter(r=>R(r,t)),how:d}},[n,t,o])}function C(e,n){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(n??"en-US",{month:"short",day:"numeric"})}var D=`.graview-bar-list li.graview-bar-tidied{display:flex;align-items:flex-start;gap:8px;padding:0 0 0 2px}
1
+ import{o as N}from"./chunk.ORXFUK6F.js";import{$ as x,G as $,R as f,_ as h}from"./chunk.BTSXYZ6Z.js";import"./chunk.SDO3U72B.js";import{Mc as w,Nc as p,Oc as g,Vc as b}from"./chunk.5ZMENPY4.js";import{b as c}from"./chunk.AJZBJBMO.js";var s=c($(),1);var i=c(f(),1),P=()=>()=>{};function S(e){let n=(0,s.useMemo)(()=>e?.onChange?o=>e.onChange(o):P,[e]),t=()=>e?.current()??p;return(0,s.useSyncExternalStore)(n,t,t)}var R=(e,n)=>e.lens?n.may.lenses:n.may.views;async function v(e,n,t){try{return await n(),!0}catch(o){return e?.notify({kind:"toast",tone:"bad",sentence:o instanceof Error&&o.message?o.message:t}),!1}}function B(e,n,t,o,d){let a=e.name;return v(d,()=>n==="view"&&a!==void 0?o?t.hide(a):t.show(a):t.lens?.({op:"set-lens-hidden",title:e.title,on:e.kind,hidden:o}),o?`\u201C${e.title}\u201D could not be hidden.`:`\u201C${e.title}\u201D could not be shown.`)}function k(e,n,t){return v(t,()=>n.restore(e.name),`\u201C${e.title}\u201D could not be restored.`)}async function H(e,n,t,o){let d=n==="view"&&e.name!==void 0?e.name:w(e.title),a=await v(o,()=>n==="view"&&e.name!==void 0?t.remove(e.name,{title:e.title,kind:e.kind}):t.lens?.({op:"remove-lens",title:e.title,on:e.kind}),`\u201C${e.title}\u201D could not be deleted.`);return a&&o?.notify({kind:"toast",id:`deleted-view-${d}`,sentence:`Deleted \u201C${e.title}\u201D. It is under Recently deleted in the places for ${30} days.`,action:{label:"Restore",onSelect:()=>void k({name:d,title:e.title},t,o)}}),a}function E(){let e=x(),n=e?.keptViews,t=S(n),o=e?.views;return(0,s.useMemo)(()=>{if(!n||!o)return null;let d=r=>g(r,t,n),a=new Set,u=o.places().filter(r=>{if(!r.hidden||d(r)===null)return!1;let m=`${r.name??""}|${r.title}`;return a.has(m)?!1:(a.add(m),!0)});return{keeper:n,hidden:u,removed:t.removed.filter(r=>R(r,t)),how:d}},[n,t,o])}function C(e,n){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(n??"en-US",{month:"short",day:"numeric"})}var D=`.graview-bar-list li.graview-bar-tidied{display:flex;align-items:flex-start;gap:8px;padding:0 0 0 2px}
2
2
  .graview-bar-tidied>.graview-bar-item,.graview-bar-gone{flex:1 1 auto;min-width:0}
3
3
  .graview-bar-gone{display:grid;gap:1px;padding:7px 8px;font-size:.875rem;line-height:1.3;overflow-wrap:anywhere;color:var(--graview-ink-muted)}
4
4
  .graview-bar-gone small{font-size:.75rem}
@@ -1 +1 @@
1
- import{a as f}from"./chunk.RZVZG2BQ.js";import{ba as d}from"./chunk.WLPTY4BF.js";function w(n){let o=n.indexOf("{"),r=n.indexOf("["),t=r!==-1&&(o===-1||r<o)?r:o;if(t===-1)return;let e=n[t],a=e==="["?"]":"}",i=0,c=!1,l=!1;for(let s=t;s<n.length;s++){let u=n[s];if(c){l?l=!1:u==="\\"?l=!0:u==='"'&&(c=!1);continue}if(u==='"')c=!0;else if(u===e)i+=1;else if(u===a&&(i-=1,i===0))try{return JSON.parse(n.slice(t,s+1))}catch{return}}}function v(n,o){let r;try{r=n.mutation(o.mutation)}catch{return o}let t={...o.args},e=!1;for(let a of f(r.input)){if(a.control!=="node")continue;let i=t[a.name];if(typeof i!="string"||i.length===0||n.graph.getNode(i))continue;let c=i.trim().toLowerCase(),l=[...n.graph.allNodes()].filter(s=>(a.kinds.includes("*")||a.kinds.includes(s.kind))&&d(n.schema.tryDefinition(s.kind),s).trim().toLowerCase()===c);l.length===1&&(t[a.name]=l[0].id,e=!0)}return e?{...o,args:t}:o}function P(n,o,r){let t=r===void 0?null:new Set(r),e=[];for(let a of o){if(typeof a.mutation!="string")continue;let i=!0;try{n.mutation(a.mutation)}catch{i=!1}i?t&&!t.has(a.mutation)&&e.push({proposal:a,why:"not-allowed"}):e.push({proposal:a,why:"unknown"})}return e}function x(n,o,r){let t=r===void 0?null:new Set(r);return o.filter(e=>{if(typeof e.mutation!="string"||t&&!t.has(e.mutation))return!1;try{n.mutation(e.mutation)}catch{return!1}return e.args!==null&&typeof e.args=="object"})}export{w as a,v as b,P as c,x as d};
1
+ import{a as f}from"./chunk.FMN5XDLE.js";import{ba as d}from"./chunk.5ZMENPY4.js";function w(n){let o=n.indexOf("{"),r=n.indexOf("["),t=r!==-1&&(o===-1||r<o)?r:o;if(t===-1)return;let e=n[t],a=e==="["?"]":"}",i=0,c=!1,l=!1;for(let s=t;s<n.length;s++){let u=n[s];if(c){l?l=!1:u==="\\"?l=!0:u==='"'&&(c=!1);continue}if(u==='"')c=!0;else if(u===e)i+=1;else if(u===a&&(i-=1,i===0))try{return JSON.parse(n.slice(t,s+1))}catch{return}}}function v(n,o){let r;try{r=n.mutation(o.mutation)}catch{return o}let t={...o.args},e=!1;for(let a of f(r.input)){if(a.control!=="node")continue;let i=t[a.name];if(typeof i!="string"||i.length===0||n.graph.getNode(i))continue;let c=i.trim().toLowerCase(),l=[...n.graph.allNodes()].filter(s=>(a.kinds.includes("*")||a.kinds.includes(s.kind))&&d(n.schema.tryDefinition(s.kind),s).trim().toLowerCase()===c);l.length===1&&(t[a.name]=l[0].id,e=!0)}return e?{...o,args:t}:o}function P(n,o,r){let t=r===void 0?null:new Set(r),e=[];for(let a of o){if(typeof a.mutation!="string")continue;let i=!0;try{n.mutation(a.mutation)}catch{i=!1}i?t&&!t.has(a.mutation)&&e.push({proposal:a,why:"not-allowed"}):e.push({proposal:a,why:"unknown"})}return e}function x(n,o,r){let t=r===void 0?null:new Set(r);return o.filter(e=>{if(typeof e.mutation!="string"||t&&!t.has(e.mutation))return!1;try{n.mutation(e.mutation)}catch{return!1}return e.args!==null&&typeof e.args=="object"})}export{w as a,v as b,P as c,x as d};
@@ -1 +1 @@
1
- import{Fb as w,Nb as S}from"./chunk.WLPTY4BF.js";function B(s){return[...s.mutations??[],...S(s.schema,s.mutations??[])]}function b(s){let i=[...s.schema.kinds],a=B(s),d=new Map,c=new Map;for(let n of a){c.set(n.name,n.creates??[]);let e=w(n.input).filter(t=>!t.optional&&!t.kinds.includes("*")).flatMap(t=>t.kinds);d.set(n.name,[...new Set(e)])}let g=new Map;for(let n of i)g.set(n,[]);for(let n of a)for(let e of c.get(n.name)??[])g.get(e)?.push(n.name);let p=new Map,l=new Set;for(let n=0;;n+=1){let e=[];for(let t of a)if((d.get(t.name)??[]).every(o=>l.has(o)))for(let o of c.get(t.name)??[])l.has(o)||e.push(o);if(e.length===0)break;for(let t of e)l.add(t),p.set(t,n)}let h=n=>{let e=g.get(n)??[];if(e.length===0)return[];let t=e.map(r=>d.get(r)??[]).sort((r,o)=>r.length-o.length)[0];return[...new Set(t)].filter(r=>r!==n)},y=new Map,u=n=>{let e=y.get(n);if(e)return e;let t=new Set;y.set(n,t);for(let r of h(n)){t.add(r);for(let o of u(r))t.add(o)}return t.delete(n),t},f=new Map(i.map(n=>[n,0]));for(let n of i)for(let e of u(n))f.set(e,(f.get(e)??0)+1);let m=i.map(n=>({kind:n,madeBy:[...g.get(n)??[]].sort(),needs:[...h(n)].sort(),depth:p.get(n)??null})).sort((n,e)=>(n.depth??Number.MAX_SAFE_INTEGER)-(e.depth??Number.MAX_SAFE_INTEGER)||(f.get(e.kind)??0)-(f.get(n.kind)??0)||n.kind.localeCompare(e.kind)),k=m.filter(n=>n.depth===0).map(n=>n.kind),A=[...new Set(a.filter(n=>(d.get(n.name)??[]).length===0).filter(n=>(c.get(n.name)??[]).length>0).map(n=>n.name))].sort(),M=m.filter(n=>n.depth===null).map(n=>({kind:n.kind,why:n.madeBy.length===0?"no act declares that it creates this kind":`every act that makes it needs ${n.needs.map(e=>`"${e}"`).join(", ")}, which nothing can make first`}));return{order:m,roots:k,doors:A,unreachable:M}}export{b as a};
1
+ import{Gb as w,Ob as S}from"./chunk.5ZMENPY4.js";function B(s){return[...s.mutations??[],...S(s.schema,s.mutations??[])]}function b(s){let i=[...s.schema.kinds],a=B(s),d=new Map,c=new Map;for(let n of a){c.set(n.name,n.creates??[]);let e=w(n.input).filter(t=>!t.optional&&!t.kinds.includes("*")).flatMap(t=>t.kinds);d.set(n.name,[...new Set(e)])}let g=new Map;for(let n of i)g.set(n,[]);for(let n of a)for(let e of c.get(n.name)??[])g.get(e)?.push(n.name);let p=new Map,l=new Set;for(let n=0;;n+=1){let e=[];for(let t of a)if((d.get(t.name)??[]).every(o=>l.has(o)))for(let o of c.get(t.name)??[])l.has(o)||e.push(o);if(e.length===0)break;for(let t of e)l.add(t),p.set(t,n)}let h=n=>{let e=g.get(n)??[];if(e.length===0)return[];let t=e.map(r=>d.get(r)??[]).sort((r,o)=>r.length-o.length)[0];return[...new Set(t)].filter(r=>r!==n)},y=new Map,u=n=>{let e=y.get(n);if(e)return e;let t=new Set;y.set(n,t);for(let r of h(n)){t.add(r);for(let o of u(r))t.add(o)}return t.delete(n),t},f=new Map(i.map(n=>[n,0]));for(let n of i)for(let e of u(n))f.set(e,(f.get(e)??0)+1);let m=i.map(n=>({kind:n,madeBy:[...g.get(n)??[]].sort(),needs:[...h(n)].sort(),depth:p.get(n)??null})).sort((n,e)=>(n.depth??Number.MAX_SAFE_INTEGER)-(e.depth??Number.MAX_SAFE_INTEGER)||(f.get(e.kind)??0)-(f.get(n.kind)??0)||n.kind.localeCompare(e.kind)),k=m.filter(n=>n.depth===0).map(n=>n.kind),A=[...new Set(a.filter(n=>(d.get(n.name)??[]).length===0).filter(n=>(c.get(n.name)??[]).length>0).map(n=>n.name))].sort(),M=m.filter(n=>n.depth===null).map(n=>({kind:n.kind,why:n.madeBy.length===0?"no act declares that it creates this kind":`every act that makes it needs ${n.needs.map(e=>`"${e}"`).join(", ")}, which nothing can make first`}));return{order:m,roots:k,doors:A,unreachable:M}}export{b as a};
@@ -1 +1 @@
1
- import{B as v,C,D as S,J as G,o as O}from"./chunk.QT4XGC5Z.js";import{$ as m,A as E,H as I,d as V,k as y,m as p,n as g,o as u,p as D,w as B}from"./chunk.MQ7FNHXG.js";import{Pc as P,Qc as k,Sc as R,Tc as T,ga as M}from"./chunk.WLPTY4BF.js";import{b as A}from"./chunk.AJZBJBMO.js";var W=A(I(),1);function j(e,t){try{t.length===0?localStorage.removeItem(v(e)):localStorage.setItem(v(e),JSON.stringify(t))}catch{}}function F(e,t){j(e,[...S(e).filter(n=>n.title!==t.title),t])}function H(e,t){j(e,S(e).filter(n=>n.title!==t))}function J(e,t){for(let n of e.places().filter(o=>o.title===t))e.forget?.(n.kind,n.as)}var U=e=>e===!0?{written:!0}:typeof e=="object"&&e!==null?{written:e.kept===!0,...e.said?{said:e.said}:{}}:{written:!1},N=e=>({title:e.title,lens:e.lens,on:e.on,...e.bindings?{bindings:e.bindings}:{},...e.options?{options:e.options}:{}});function Z(e,t){let n=o=>t.some(r=>r.title===o||r.as===P(o));if(!n(e))return e;for(let o=2;;o++)if(!n(`${e} ${o}`))return`${e} ${o}`}function ie(e){let{store:t,views:n,brand:o,seatTalk:r,onKeepLens:d}=m(),h=(0,W.useContext)(O),L=C(o,t.schema),b=async f=>{let{edit:i}=f;if(f.written&&d)try{await d({op:"remove-lens",title:i.title,on:i.on})}catch{}H(L,i.title),J(n,i.title),h?.dismiss(`kept:${i.title}`),r.setTurns(l=>[...l.map(s=>s.kept&&s.kept.edit.title===i.title&&!s.kept.taken?{...s,kept:{...s.kept,taken:!0}}:s),{role:"seat",text:`Took \u201C${i.title}\u201D back out of the places.`}]);let a=M(t.schema,i.on);e({to:"kind",kind:i.on,title:a,address:k(t.schema,i.on),said:`Went to ${a}.`})};return{keep:async f=>{let i=Z(f.edit.title,n.places()),a={...f.edit,title:i},l=!1,s;if(d)try{({written:l,said:s}=U(await d(a)))}catch{l=!1}l||F(L,N(a)),G(n,t.schema,[N(a)]);let K=n.places(),c=K.find(w=>w.title===i),x=s??(l?`Kept \u201C${i}\u201D as a lens: it is in the places now.`:d?`Kept \u201C${i}\u201D as your own lens. Ask the owner to keep it for everyone.`:`Kept \u201C${i}\u201D as your own lens.`),$={edit:a,written:l};r.setDraft(null),r.setTurns(w=>[...w,{role:"seat",text:x,kept:$}]),h?.notify({kind:"toast",id:`kept:${i}`,sentence:x,timeout:1e4,action:{label:"Take back",onSelect:()=>void b($)}}),c&&e({to:"picture",kind:c.kind,as:c.as,title:i,address:R(c.as,T(c,K)?k(t.schema,c.kind).slice(1):void 0),said:`Went to ${i}.`})},takeBack:b}}var q=A(I(),1);function _(e,t){switch(t.to){case"place":return{view:V("#")};case"picture":return{view:u(E(p(e,"filter",null),t.kind,t.as),[])};case"kind":{let n=D(g({...y(e,B(t.kind)),relation:null},!1),!0);return{view:u(p(p(n,"view",null),"filter",t.filter??null),[])}}case"record":return{view:u(y(g(p(p(e,"view",null),"filter",null),!1),t.id),[t.id])};case"problems":return{pane:"problems"}}}function z(e){let t=typeof document>"u"?null:document.querySelector('[data-testid="standing"]');t&&t.getAttribute("aria-expanded")==="true"!==e&&t.click()}function ae(){let{setView:e,seatTalk:t}=m();return(0,q.useCallback)(n=>{t.get().draft&&t.setDraft(null),z(n.to==="problems"),n.to!=="problems"&&e(o=>{let r=_(o,n);return"view"in r?r.view:o})},[e,t])}export{ie as a,z as b,ae as c};
1
+ import{B as v,C,D as S,J as G,o as O}from"./chunk.ORXFUK6F.js";import{G as I,_ as m,c as V,j as y,l as p,m as g,n as u,o as D,v as B,z as E}from"./chunk.BTSXYZ6Z.js";import{Sc as P,Tc as k,Vc as R,Wc as T,ga as M}from"./chunk.5ZMENPY4.js";import{b as A}from"./chunk.AJZBJBMO.js";var W=A(I(),1);function j(e,t){try{t.length===0?localStorage.removeItem(v(e)):localStorage.setItem(v(e),JSON.stringify(t))}catch{}}function F(e,t){j(e,[...S(e).filter(n=>n.title!==t.title),t])}function H(e,t){j(e,S(e).filter(n=>n.title!==t))}function J(e,t){for(let n of e.places().filter(o=>o.title===t))e.forget?.(n.kind,n.as)}var U=e=>e===!0?{written:!0}:typeof e=="object"&&e!==null?{written:e.kept===!0,...e.said?{said:e.said}:{}}:{written:!1},N=e=>({title:e.title,lens:e.lens,on:e.on,...e.bindings?{bindings:e.bindings}:{},...e.options?{options:e.options}:{}});function Z(e,t){let n=o=>t.some(r=>r.title===o||r.as===P(o));if(!n(e))return e;for(let o=2;;o++)if(!n(`${e} ${o}`))return`${e} ${o}`}function ie(e){let{store:t,views:n,brand:o,seatTalk:r,onKeepLens:d}=m(),h=(0,W.useContext)(O),L=C(o,t.schema),b=async f=>{let{edit:i}=f;if(f.written&&d)try{await d({op:"remove-lens",title:i.title,on:i.on})}catch{}H(L,i.title),J(n,i.title),h?.dismiss(`kept:${i.title}`),r.setTurns(l=>[...l.map(s=>s.kept&&s.kept.edit.title===i.title&&!s.kept.taken?{...s,kept:{...s.kept,taken:!0}}:s),{role:"seat",text:`Took \u201C${i.title}\u201D back out of the places.`}]);let a=M(t.schema,i.on);e({to:"kind",kind:i.on,title:a,address:k(t.schema,i.on),said:`Went to ${a}.`})};return{keep:async f=>{let i=Z(f.edit.title,n.places()),a={...f.edit,title:i},l=!1,s;if(d)try{({written:l,said:s}=U(await d(a)))}catch{l=!1}l||F(L,N(a)),G(n,t.schema,[N(a)]);let K=n.places(),c=K.find(w=>w.title===i),x=s??(l?`Kept \u201C${i}\u201D as a lens: it is in the places now.`:d?`Kept \u201C${i}\u201D as your own lens. Ask the owner to keep it for everyone.`:`Kept \u201C${i}\u201D as your own lens.`),$={edit:a,written:l};r.setDraft(null),r.setTurns(w=>[...w,{role:"seat",text:x,kept:$}]),h?.notify({kind:"toast",id:`kept:${i}`,sentence:x,timeout:1e4,action:{label:"Take back",onSelect:()=>void b($)}}),c&&e({to:"picture",kind:c.kind,as:c.as,title:i,address:R(c.as,T(c,K)?k(t.schema,c.kind).slice(1):void 0),said:`Went to ${i}.`})},takeBack:b}}var q=A(I(),1);function _(e,t){switch(t.to){case"place":return{view:V("#")};case"picture":return{view:u(E(p(e,"filter",null),t.kind,t.as),[])};case"kind":{let n=D(g({...y(e,B(t.kind)),relation:null},!1),!0);return{view:u(p(p(n,"view",null),"filter",t.filter??null),[])}}case"record":return{view:u(y(g(p(p(e,"view",null),"filter",null),!1),t.id),[t.id])};case"problems":return{pane:"problems"}}}function z(e){let t=typeof document>"u"?null:document.querySelector('[data-testid="standing"]');t&&t.getAttribute("aria-expanded")==="true"!==e&&t.click()}function ae(){let{setView:e,seatTalk:t}=m();return(0,q.useCallback)(n=>{t.get().draft&&t.setDraft(null),z(n.to==="problems"),n.to!=="problems"&&e(o=>{let r=_(o,n);return"view"in r?r.view:o})},[e,t])}export{ie as a,z as b,ae as c};
@@ -1 +1 @@
1
- import{b as on,c as rn}from"./chunk.UT6642FC.js";import{e as N}from"./chunk.MWZK3HVG.js";import{c as B}from"./chunk.GR5Q4HTW.js";import{Eb as sn,Fb as E,Rb as V,Ub as Q,Va as H,ba as F,ca as K,da as q,ea as nn,fa as en,ia as tn,ja as J,ka as T}from"./chunk.WLPTY4BF.js";function an(){return{name:"insight",derive({store:n,nodes:a,kindSelection:t}){let l=[],v=f=>F(n.schema.tryDefinition(f.kind),f);for(let f of a){if([...n.schema.edgeKinds].reduce((c,S)=>c+n.graph.out(f.id,S).length+n.graph.in(f.id,S).length,0)===0){l.push({id:`insight:island:${f.id}`,text:`${v(f)} is connected to nothing yet`,nodeIds:[f.id]});continue}for(let c of n.schema.edgeKinds){let S=n.graph.in(f.id,c).length;if(S<3)continue;let s=[...n.graph.allEdges()].filter(r=>r.kind===c),e=s.length;e>=4&&S/e>.6&&l.push({id:`insight:load:${f.id}:${c}`,text:`${v(f)} ${mn(n,s,c,S)}`,nodeIds:[f.id]})}}for(let f of t){if(n.graph.nodesOfKind(f).length>0)continue;let A=n.schema.definitions.filter(c=>c.kind!==f).filter(c=>Object.values(c.edges).some(S=>S.to!=="*"&&S.to.includes(f))).map(c=>c.plural??`${c.kind}s`);A.length>0&&l.push({id:`insight:gap:${f}`,text:`Nothing here yet, though ${A.join(" and ")} expect to connect to these`,nodeIds:[]})}return{observations:l}}}}function mn(n,a,t,l){let v=new Set(a.map(s=>n.graph.getNode(s.from)?.kind).filter(s=>s!==void 0)),f=v.size===1?[...v][0]:void 0,A=a.length,c=B(n.schema,f??[...v][0]??"",t,"in"),S=s=>f?nn(n.schema,f,s):String(s);return l===A?`${c}: all ${S(l)}`:`${c}: ${l} of the ${S(A)}`}function dn(n){let a=new Map;if(n.length===0)return a;let t=n.slice(-512),l=new Set;for(let f of t)f.undoes&&l.add(f.undoes);let v=n[n.length-1].seq;for(let f of t){if(!f.mutation||l.has(f.id))continue;let A=Math.pow(.5,(v-f.seq)/64);a.set(f.mutation.name,(a.get(f.mutation.name)??0)+A)}return a}function cn(n){return 8*(n/(n+1))}var pn=100;function un(){return{name:"invariant",derive({store:n,selection:a,nodes:t,violations:l}){let v=s=>F(n.schema.tryDefinition(s.kind),s),f=new Set(a),A=l.filter(s=>s.nodeIds.some(e=>f.has(e))||s.subjectId!==void 0&&f.has(s.subjectId)),c=[],S=[];A.forEach((s,e)=>{S.push({id:`violation:${s.invariant}:${e}`,text:s.message,nodeIds:s.nodeIds}),s.repairs.forEach((r,h)=>{c.push({id:`invariant:${s.invariant}:${e}:${h}`,label:r.label,provider:"invariant",mutation:r.mutation,args:r.args??{},open:(r.missing??[]).map(k=>{let d=n.allMutations().find(p=>p.name===r.mutation);if(!d)return{name:k};let o=E(d.input).find(p=>p.name===k),m=o?o.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):o.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id)):void 0;return{name:k,shape:N(d.input,k),...o?{kinds:o.kinds}:{},...m?{candidates:m}:{}}}),score:pn-h-(r.missing?.length??0),why:s.message,nodeIds:s.nodeIds,...s.subjectId===void 0?{}:{subjectId:s.subjectId}})})});for(let s of t){let e=n.allInvariants().filter(r=>{if(r.scope==="graph")return!1;let h=r.scope;return h.kind!==s.kind?!1:h.match?h.match(s):!0});e.length!==0&&(A.some(r=>r.subjectId===s.id||r.nodeIds.includes(s.id))||S.push({id:`holds:${s.id}`,text:`${v(s)} holds \u2014 nothing currently breaks ${e.length===1?"it":`any of its ${e.length} rules`}`,nodeIds:[s.id]}))}return{affordances:c,observations:S}}}}var U=40;function fn(){return{name:"schema",derive({store:n,selection:a,nodes:t,kindSelection:l,edgeSelection:v,principal:f}){let A=(e,r)=>f!==void 0&&!n.permits({name:e,args:r},f).ok,c=[];if(t.length===0&&v.length>0){for(let e of v){let r=n.graph.getNode(e.from),h=n.graph.getNode(e.to);if(!r||!h)continue;let k=rn(n,e);k?.provisional&&c.push({id:`schema:edge:${V}:${e.kind}:${e.from}:${e.to}`,label:"Keep this link",provider:"schema",mutation:V,args:{kind:e.kind,from:e.from,to:e.to},open:[],score:64,why:on(k),nodeIds:[e.from,e.to]});for(let d of n.allMutations()){let o=(d.connects??[]).includes(e.kind),m=(d.severs??[]).includes(e.kind);if(!o&&!m||d.derived?.relation!==void 0&&d.derived.kind!==r.kind)continue;let p={},$=[],j=E(d.input);for(let g of j){let w=g.kinds.includes("*")||g.kinds.includes(r.kind),P=g.kinds.includes("*")||g.kinds.includes(h.kind),y=w&&!j.some(I=>I!==g&&(I.kinds.includes(r.kind)||I.kinds.includes("*")));w&&!P?p[g.name]=e.from:P&&!w?p[g.name]=e.to:w&&P&&y?p[g.name]=e.from:$.push({name:g.name,kinds:g.kinds,candidates:[e.from,e.to],shape:N(d.input,g.name)})}for(let g of G(d.input,""))g in p||$.some(w=>w.name===g)||$.push({name:g,shape:N(d.input,g)});$.every(g=>g.optional===!0?!0:g.kinds!==void 0?(g.candidates?.length??0)>0:(g.candidates?.length??0)>0||g.shape!==void 0&&g.shape.type!=="unknown")&&(o&&!m&&$.length===0||c.push({id:`schema:edge:${d.name}:${e.kind}:${e.from}:${e.to}`,label:K(d),provider:"schema",mutation:d.name,args:p,open:$,...d.destructive?{destructive:!0}:{},score:(m?62:58)-$.length,why:`this line is "${B(n.schema,n.graph.getNode(e.from)?.kind??"",e.kind,"out")}"`,nodeIds:[e.from,e.to]}))}}return{affordances:c}}if(t.length===0&&l.length>0){let e=new Set(l),r=[];for(let h of n.allMutations()){if(!(h.creates??[]).some(o=>e.has(o)))continue;let k=[];for(let o of E(h.input)){let m=o.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):o.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id));k.push({name:o.name,kinds:o.kinds,candidates:m,shape:N(h.input,o.name),...o.optional?{optional:!0}:{}})}for(let o of G(h.input,""))k.some(m=>m.name===o)||k.push({name:o,shape:N(h.input,o)});if(!k.every(o=>o.optional===!0?!0:o.kinds!==void 0?(o.candidates?.length??0)>0:(o.candidates?.length??0)>0||o.shape!==void 0&&o.shape.type!=="unknown")&&!A(h.name,{})){let o=k.filter(m=>m.optional!==!0&&m.kinds!==void 0&&!m.kinds.includes("*")&&(m.candidates?.length??0)===0);if(o.length>0){let m=[...new Set(o.flatMap(p=>p.kinds??[]))].map(p=>J(T(n.schema.tryDefinition(p),p)));r.push({id:`schema:waits:${h.name}`,text:`"${h.title??h.name}" cannot begin until there is ${m.length===1?m[0]:`${m.slice(0,-1).join(", ")} and ${m[m.length-1]}`}.`,nodeIds:[]})}continue}c.push({id:`schema:add:${h.name}`,label:K(h),provider:"schema",mutation:h.name,args:{},open:k,score:U-k.length,why:`this makes ${(h.creates??[]).filter(o=>e.has(o)).map(o=>J(T(n.schema.tryDefinition(o),o))).join(", ")}`,nodeIds:[]})}return{affordances:c,observations:r}}if(t.length===0)return{};let S=new Set(t.map(e=>e.kind)),s=(e,r,h)=>{let k=[];for(let d of n.graph.allEdges()){if(!r.includes(d.kind))continue;let o=d.from===e?d.to:d.to===e?d.from:null;if(!o)continue;let m=n.graph.getNode(o);m&&(!h.includes("*")&&!h.includes(m.kind)||k.includes(o)||k.push(o))}return k};for(let e of n.allMutations()){let r=e.subject;if(!r||!(r.kinds==="*"?!0:[...S].every(u=>r.kinds.includes(u))))continue;let k=e.derived?.act;if((k==="archive"||k==="merge")&&t.some(u=>H(u))||k==="unarchive"&&!t.some(u=>H(u))||k==="leave-alone"&&t.every(u=>Q(n,u.id))||k==="allow-tidying"&&!t.some(u=>Q(n,u.id)))continue;let d=t.length===1?t[0].id:null,o=e.severs??[],m=e.connects??[];if(d&&o.length>0&&m.length===0&&s(d,o,["*"]).length===0)continue;let p=[];for(let u of E(e.input)){if(u.name===r.arg)continue;let g=u.kinds.includes("*")?n.graph.allNodes().map(w=>w.id):u.kinds.flatMap(w=>n.graph.nodesOfKind(w).map(P=>P.id));if(d&&m.length>0){let w=new Set(s(d,m,u.kinds));g=g.filter(P=>!w.has(P))}else d&&o.length>0&&(g=s(d,o,u.kinds));p.push({name:u.name,kinds:u.kinds,candidates:g.filter(w=>!a.includes(w)),shape:N(e.input,u.name),...u.optional?{optional:!0}:{}})}for(let u of G(e.input,r.arg))p.some(g=>g.name===u)||p.push({name:u,shape:N(e.input,u)});if(p.length===0&&d){let u=kn(e.input,r.arg);if(u.length>0&&!yn(n,e.name,{[r.arg]:d}))for(let g of u){let w=E(e.input).find(P=>P.name===g);p.push({name:g,optional:!0,...w?{kinds:w.kinds}:{},shape:N(e.input,g)})}}if(!p.every(u=>u.optional===!0?!0:u.kinds!==void 0?(u.candidates?.length??0)>0:(u.candidates?.length??0)>0||u.shape!==void 0&&u.shape.type!=="unknown")&&!A(e.name,d?{[r.arg]:d}:{}))continue;let j=t.map(u=>({[r.arg]:u.id}));p.length===0&&!j.some(u=>n.wouldChange({name:e.name,args:u}))||c.push({id:`schema:${e.name}`,label:t.length>1?`${K(e)} (${t.length})`:K(e),provider:"schema",mutation:e.name,args:j[0]??{},open:p,...e.destructive?{destructive:!0}:{},...e.derived?.act==="archive"||e.derived?.act==="merge"||e.derived?.act==="leave-alone"||e.derived?.act==="allow-tidying"?{setsAside:!0}:{},...o.length>0||m.length>0?{ties:!0}:{},...t.length>1?{batch:j}:{},score:U-p.length,why:t.length>1?`all ${t.length} selected nodes are ${[...S].map(u=>en(n.schema,u).toLowerCase()).join(" or ")}`:`this is ${J(T(n.schema.tryDefinition(t[0].kind),t[0].kind))}`,nodeIds:t.map(u=>u.id)})}if(t.length===1){let e=t[0];for(let r of n.allMutations()){let h=r.subject,k=r.severs??[],d=r.connects??[];if(!h||k.length===0&&d.length===0)continue;let o=h.kinds==="*"?"*":h.kinds;if(o==="*"||o.includes(e.kind))continue;let m=E(r.input),p=m.find(y=>y.name!==h.arg&&(y.kinds.includes("*")||y.kinds.includes(e.kind)));if(!p)continue;let $=o,j=$.includes("*")?n.graph.allNodes().map(y=>y.id):$.flatMap(y=>n.graph.nodesOfKind(y).map(I=>I.id)),u=new Set(s(e.id,d.length>0?d:k,$)),g=d.length>0?j.filter(y=>!u.has(y)):j.filter(y=>u.has(y));if(g.length===0)continue;let w=[{name:h.arg,kinds:$,candidates:g,shape:N(r.input,h.arg)}];for(let y of m){if(y.name===p.name||y.name===h.arg)continue;let I=y.kinds.includes("*")?n.graph.allNodes().map(D=>D.id):y.kinds.flatMap(D=>n.graph.nodesOfKind(D).map(O=>O.id));w.push({name:y.name,kinds:y.kinds,candidates:I,shape:N(r.input,y.name),...y.optional?{optional:!0}:{}})}for(let y of G(r.input,p.name))y===h.arg||w.some(I=>I.name===y)||w.push({name:y,shape:N(r.input,y)});w.every(y=>y.optional===!0?!0:y.kinds!==void 0?(y.candidates?.length??0)>0:(y.candidates?.length??0)>0||y.shape!==void 0&&y.shape.type!=="unknown")&&c.push({id:`schema:tie:${r.name}:${e.id}`,label:r.fromTheOtherEnd??K(r),provider:"schema",mutation:r.name,args:{[p.name]:e.id},open:w,ties:!0,...r.destructive?{destructive:!0}:{},score:U-w.length+2,why:`${k.length>0?"this one is on":"this one could join"} ${w[0].candidates.length===1?"it":"one of these"}`,nodeIds:[e.id]})}}return{affordances:c}}}}function kn(n,a){let t=n.shape;return t?Object.entries(t).filter(([l,v])=>l!==a&&v.safeParse(void 0).success).map(([l])=>l):[]}function yn(n,a,t){try{return n.preview({name:a,args:t}),!0}catch{return!1}}function G(n,a){let t=n.shape;return t?Object.entries(t).filter(([l,v])=>l!==a&&!v.safeParse(void 0).success).map(([l])=>l):[]}var vn=70,bn=80,Sn=new Set(["id","kind"]);function ln(){return{name:"structure",derive({store:n,nodes:a}){let t=c=>F(n.schema.tryDefinition(c.kind),c);if(a.length<2)return{};let l=[],v=[],f=a.map(c=>c.id);for(let c of n.schema.edgeKinds){let S=wn(a.map(e=>new Set([...n.graph.out(e.id,c).map(r=>r.id),...n.graph.in(e.id,c).map(r=>r.id)])));for(let e of S){let r=n.graph.getNode(e);r&&l.push({id:`shared:${c}:${e}`,text:`all ${a.length} share "${t(r)}" (${q(c).toLowerCase()})`,nodeIds:[...f,e]})}let s=new Map;for(let e of a)for(let r of[...n.graph.out(e.id,c),...n.graph.in(e.id,c)])s.set(r.id,(s.get(r.id)??0)+1);for(let[e,r]of s){if(r!==a.length-1||a.length<3||f.includes(e))continue;let h=n.graph.getNode(e);if(!h)continue;let k=a.find(d=>![...n.graph.out(d.id,c),...n.graph.in(d.id,c)].some(o=>o.id===e));if(k){l.push({id:`near-shared:${c}:${e}`,text:`all but "${t(k)}" share "${t(h)}" (${q(c).toLowerCase()})`,nodeIds:[...f,e]});for(let d of n.allMutations()){let o=d.subject;if(!o||o.kinds!=="*"&&!o.kinds.includes(k.kind))continue;let m=An(d.input,h.kind);m&&v.push({id:`structure:join:${d.name}:${k.id}:${e}`,label:`${K(d)}: bring "${t(k)}" in line with the others`,provider:"structure",mutation:d.name,args:{[o.arg]:k.id,[m]:e},open:[],score:vn,why:`every other selected node is connected to "${t(h)}"`,nodeIds:[k.id,e]})}}}}let A=new Map;for(let c of a)A.set(c.kind,[...A.get(c.kind)??[],c]);for(let[c,S]of A){if(S.length<2)continue;let s=S,e=S.map(d=>d.id),r=A.size>1?`${c}:`:"",h=new Set;for(let d of s)for(let o of Object.keys(d))Sn.has(o)||h.add(o);let k=d=>n.schema.definitions.find(o=>o.kind===d);for(let d of[...h].sort()){let o=k(s[0].kind),m=tn(o,d).toLowerCase(),p=o?.display?.format?.[d],$=O=>{if(!p)return O;try{return String(p(JSON.parse(O)))}catch{return O}},j=s.map(O=>O[d]),u=new Map;if(j.forEach((O,R)=>{let L=JSON.stringify(O??null),x=u.get(L);x?x.push(s[R]):u.set(L,[s[R]])}),u.size===1){let O=[...u.keys()][0];if(O==="null")continue;l.push({id:`agree:${r}${d}`,text:`all ${s.length} share the ${m} ${$(O)}`,nodeIds:e});continue}if(s.length<3||u.size!==2)continue;let g=[...u.entries()].sort((O,R)=>R[1].length-O[1].length),[w,P]=g[0],[,y]=g[1];if(y.length!==1||w==="null")continue;let I=y[0],D=JSON.parse(w);l.push({id:`odd-one-out:${r}${d}`,text:`${P.length} share the ${m} ${$(w)}; "${t(I)}" does not`,nodeIds:e});for(let O of n.allMutations()){let R=O.subject;if(!R||R.kinds!=="*"&&!R.kinds.includes(I.kind))continue;let L=hn(O.input);if(!L||!(d in L))continue;let x={[R.arg]:I.id,[d]:D},_=!0;for(let[C,Z]of Object.entries(L)){if(C in x||Z.safeParse(void 0).success)continue;let i=I[C];if(i===void 0){_=!1;break}x[C]=i}!_||!O.input.safeParse(x).success||v.push({id:`structure:align:${O.name}:${d}:${I.id}`,label:`Align the ${m} of "${t(I)}" with the other ${P.length}`,provider:"structure",mutation:O.name,args:x,open:[],score:bn,why:`${P.length} of ${s.length} share the ${m} ${$(w)}`,nodeIds:e})}}}return{affordances:v,observations:l}}}}function wn(n){if(n.length===0)return[];let[a,...t]=n;return[...a].filter(l=>t.every(v=>v.has(l))).sort()}function hn(n){return n.shape??null}function An(n,a){let t=hn(n);if(!t)return null;for(let[l]of Object.entries(t)){let v=sn(t[l]);if(v&&(v.includes("*")||v.includes(a)))return l}return null}function $n(){return[un(),ln(),fn(),an()]}function Hn(n,a,t={}){let l=gn(),v=t.providers??$n(),f=a.map(i=>n.graph.getNode(i)).filter(i=>i!==void 0),A={store:n,selection:a,nodes:f,kindSelection:t.kindSelection??[],edgeSelection:t.edgeSelection??[],violations:n.violations(t.context),context:t.context??{},principal:t.principal??{kind:"human"}},c=[],S=[];for(let i of v){let b=i.derive(A);c.push(...b.affordances??[]),S.push(...b.observations??[])}let s=new Set(n.allMutations().filter(i=>i.pinned).map(i=>i.name)),e=new Set(t.pins?.pinned??[]),r=new Set(t.pins?.unpinned??[]),h=i=>e.has(i.mutation)?"user":s.has(i.mutation)&&!r.has(i.mutation)?"declared":void 0,k=i=>{let b=h(i);return b?{...i,pinned:b}:i},d=new Map;for(let[i,b]of dn(n.log.all()))d.set(i,cn(b));let o=i=>i.pinned==="user"?0:i.pinned==="declared"?1:2,m=i=>i.score+(d.get(i.mutation)??0),p=new Map(n.allMutations().map(i=>[i.name,i])),$=new Map,j=i=>{let b=p.get(i.mutation);if(!b)return[];let M=$.get(i.mutation);M||(M=E(b.input).map(W=>W.name),$.set(i.mutation,M));let z=[];for(let W of i.batch??[i.args])for(let X of M){let Y=W[X]??i.args[X];typeof Y=="string"&&z.push(Y)}return z},u=t.focus,g=4,w=i=>i.open.length>0?1:0,P=i=>{if(u===void 0)return g;let b=j(i);return b.length>0?b.includes(u)?y(i,0):g:i.nodeIds.includes(u)||i.subjectId===u?y(i,1):g},y=(i,b)=>i.provider==="invariant"?b:2+w(i),I=i=>i.setsAside?1:0,D=On(c).map(k),O=new Map(D.map((i,b)=>[i,b])),R=D.sort((i,b)=>{let M=Number(i.destructive??!1)-Number(b.destructive??!1);if(M!==0)return M;let z=I(i)-I(b);if(z!==0)return z;let W=P(i)-P(b);return W!==0?W:P(i)<2?O.get(i)-O.get(b):+(b.provider==="invariant")-+(i.provider==="invariant")||o(i)-o(b)||m(b)-m(i)||i.id.localeCompare(b.id)}),L=t.principal??{kind:"human"},x=[],_=[];for(let i of R){let b=n.permits({name:i.mutation,args:{...i.args,...i.batch?.[0]??{}}},L);if(b.ok)x.push(i);else{let M=Pn(n,i,L);if(M==="done")continue;M?x.push(M):_.push({...i,refusal:b.refusal})}}let C=x.map((i,b)=>({...i,rank:b})),Z=_.map((i,b)=>({...i,rank:x.length+b}));return{affordances:t.limit===void 0?C:C.slice(0,t.limit),withheld:Z,observations:In(S),ms:gn()-l}}function On(n){let a=new Map;for(let t of n){let l=[t.mutation,JSON.stringify(t.args),JSON.stringify(t.batch??null)].join("|"),v=a.get(l);(!v||t.score>v.score)&&a.set(l,t)}return[...a.values()]}function In(n){let a=new Map;for(let t of n)a.set(t.text,t);return[...a.values()]}function gn(){return typeof performance<"u"?performance.now():Date.now()}function Vn(n,a,t={},l={}){let v=(a.batch??[a.args]).map(A=>({name:a.mutation,args:{...a.args,...A,...t}})),f=n.allMutations().find(A=>A.name===a.mutation);return n.applyAll(v,{...f?.describe?{}:{intent:a.label},...l.author?{author:l.author}:{}})}function Qn(n,a,t={}){return n.preview({name:a.mutation,args:{...a.args,...t}})}function Pn(n,a,t){let l=n.allMutations().find(s=>s.name===a.mutation)?.subject,v=l!==void 0&&a.args[l.arg]===void 0,f=v?a.open.find(s=>s.name===l.arg):a.open.find(s=>s.name!==l?.arg&&s.candidates);if(!f?.candidates)return;let A=s=>n.permits({name:a.mutation,args:{...a.args,...a.batch?.[0]??{},[f.name]:s}},t).ok,c=f.candidates.filter(A),S=t.id===void 0?void 0:n.graph.getNode(t.id);if(c.length===0){let s=v?l.kinds:"*";return S!==void 0&&(s==="*"||s.includes(S.kind))&&A(S.id)?"done":void 0}return c.length===1&&c[0]===t.id?{...a,args:{...a.args,[f.name]:t.id},open:a.open.filter(s=>s!==f)}:{...a,open:a.open.map(s=>s===f?{...s,candidates:c}:s)}}export{Hn as a,Vn as b,Qn as c};
1
+ import{b as on,c as rn}from"./chunk.UT6642FC.js";import{e as N}from"./chunk.NSNGPQGT.js";import{c as B}from"./chunk.Z7JRBKA7.js";import{Fb as sn,Gb as E,Ub as V,Va as H,Xb as Q,ba as F,ca as K,da as q,ea as nn,fa as en,ia as tn,ja as J,ka as T}from"./chunk.5ZMENPY4.js";function an(){return{name:"insight",derive({store:n,nodes:a,kindSelection:t}){let l=[],v=f=>F(n.schema.tryDefinition(f.kind),f);for(let f of a){if([...n.schema.edgeKinds].reduce((c,S)=>c+n.graph.out(f.id,S).length+n.graph.in(f.id,S).length,0)===0){l.push({id:`insight:island:${f.id}`,text:`${v(f)} is connected to nothing yet`,nodeIds:[f.id]});continue}for(let c of n.schema.edgeKinds){let S=n.graph.in(f.id,c).length;if(S<3)continue;let s=[...n.graph.allEdges()].filter(r=>r.kind===c),e=s.length;e>=4&&S/e>.6&&l.push({id:`insight:load:${f.id}:${c}`,text:`${v(f)} ${mn(n,s,c,S)}`,nodeIds:[f.id]})}}for(let f of t){if(n.graph.nodesOfKind(f).length>0)continue;let A=n.schema.definitions.filter(c=>c.kind!==f).filter(c=>Object.values(c.edges).some(S=>S.to!=="*"&&S.to.includes(f))).map(c=>c.plural??`${c.kind}s`);A.length>0&&l.push({id:`insight:gap:${f}`,text:`Nothing here yet, though ${A.join(" and ")} expect to connect to these`,nodeIds:[]})}return{observations:l}}}}function mn(n,a,t,l){let v=new Set(a.map(s=>n.graph.getNode(s.from)?.kind).filter(s=>s!==void 0)),f=v.size===1?[...v][0]:void 0,A=a.length,c=B(n.schema,f??[...v][0]??"",t,"in"),S=s=>f?nn(n.schema,f,s):String(s);return l===A?`${c}: all ${S(l)}`:`${c}: ${l} of the ${S(A)}`}function dn(n){let a=new Map;if(n.length===0)return a;let t=n.slice(-512),l=new Set;for(let f of t)f.undoes&&l.add(f.undoes);let v=n[n.length-1].seq;for(let f of t){if(!f.mutation||l.has(f.id))continue;let A=Math.pow(.5,(v-f.seq)/64);a.set(f.mutation.name,(a.get(f.mutation.name)??0)+A)}return a}function cn(n){return 8*(n/(n+1))}var pn=100;function un(){return{name:"invariant",derive({store:n,selection:a,nodes:t,violations:l}){let v=s=>F(n.schema.tryDefinition(s.kind),s),f=new Set(a),A=l.filter(s=>s.nodeIds.some(e=>f.has(e))||s.subjectId!==void 0&&f.has(s.subjectId)),c=[],S=[];A.forEach((s,e)=>{S.push({id:`violation:${s.invariant}:${e}`,text:s.message,nodeIds:s.nodeIds}),s.repairs.forEach((r,h)=>{c.push({id:`invariant:${s.invariant}:${e}:${h}`,label:r.label,provider:"invariant",mutation:r.mutation,args:r.args??{},open:(r.missing??[]).map(k=>{let d=n.allMutations().find(p=>p.name===r.mutation);if(!d)return{name:k};let o=E(d.input).find(p=>p.name===k),m=o?o.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):o.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id)):void 0;return{name:k,shape:N(d.input,k),...o?{kinds:o.kinds}:{},...m?{candidates:m}:{}}}),score:pn-h-(r.missing?.length??0),why:s.message,nodeIds:s.nodeIds,...s.subjectId===void 0?{}:{subjectId:s.subjectId}})})});for(let s of t){let e=n.allInvariants().filter(r=>{if(r.scope==="graph")return!1;let h=r.scope;return h.kind!==s.kind?!1:h.match?h.match(s):!0});e.length!==0&&(A.some(r=>r.subjectId===s.id||r.nodeIds.includes(s.id))||S.push({id:`holds:${s.id}`,text:`${v(s)} holds \u2014 nothing currently breaks ${e.length===1?"it":`any of its ${e.length} rules`}`,nodeIds:[s.id]}))}return{affordances:c,observations:S}}}}var U=40;function fn(){return{name:"schema",derive({store:n,selection:a,nodes:t,kindSelection:l,edgeSelection:v,principal:f}){let A=(e,r)=>f!==void 0&&!n.permits({name:e,args:r},f).ok,c=[];if(t.length===0&&v.length>0){for(let e of v){let r=n.graph.getNode(e.from),h=n.graph.getNode(e.to);if(!r||!h)continue;let k=rn(n,e);k?.provisional&&c.push({id:`schema:edge:${V}:${e.kind}:${e.from}:${e.to}`,label:"Keep this link",provider:"schema",mutation:V,args:{kind:e.kind,from:e.from,to:e.to},open:[],score:64,why:on(k),nodeIds:[e.from,e.to]});for(let d of n.allMutations()){let o=(d.connects??[]).includes(e.kind),m=(d.severs??[]).includes(e.kind);if(!o&&!m||d.derived?.relation!==void 0&&d.derived.kind!==r.kind)continue;let p={},$=[],j=E(d.input);for(let g of j){let w=g.kinds.includes("*")||g.kinds.includes(r.kind),P=g.kinds.includes("*")||g.kinds.includes(h.kind),y=w&&!j.some(I=>I!==g&&(I.kinds.includes(r.kind)||I.kinds.includes("*")));w&&!P?p[g.name]=e.from:P&&!w?p[g.name]=e.to:w&&P&&y?p[g.name]=e.from:$.push({name:g.name,kinds:g.kinds,candidates:[e.from,e.to],shape:N(d.input,g.name)})}for(let g of G(d.input,""))g in p||$.some(w=>w.name===g)||$.push({name:g,shape:N(d.input,g)});$.every(g=>g.optional===!0?!0:g.kinds!==void 0?(g.candidates?.length??0)>0:(g.candidates?.length??0)>0||g.shape!==void 0&&g.shape.type!=="unknown")&&(o&&!m&&$.length===0||c.push({id:`schema:edge:${d.name}:${e.kind}:${e.from}:${e.to}`,label:K(d),provider:"schema",mutation:d.name,args:p,open:$,...d.destructive?{destructive:!0}:{},score:(m?62:58)-$.length,why:`this line is "${B(n.schema,n.graph.getNode(e.from)?.kind??"",e.kind,"out")}"`,nodeIds:[e.from,e.to]}))}}return{affordances:c}}if(t.length===0&&l.length>0){let e=new Set(l),r=[];for(let h of n.allMutations()){if(!(h.creates??[]).some(o=>e.has(o)))continue;let k=[];for(let o of E(h.input)){let m=o.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):o.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id));k.push({name:o.name,kinds:o.kinds,candidates:m,shape:N(h.input,o.name),...o.optional?{optional:!0}:{}})}for(let o of G(h.input,""))k.some(m=>m.name===o)||k.push({name:o,shape:N(h.input,o)});if(!k.every(o=>o.optional===!0?!0:o.kinds!==void 0?(o.candidates?.length??0)>0:(o.candidates?.length??0)>0||o.shape!==void 0&&o.shape.type!=="unknown")&&!A(h.name,{})){let o=k.filter(m=>m.optional!==!0&&m.kinds!==void 0&&!m.kinds.includes("*")&&(m.candidates?.length??0)===0);if(o.length>0){let m=[...new Set(o.flatMap(p=>p.kinds??[]))].map(p=>J(T(n.schema.tryDefinition(p),p)));r.push({id:`schema:waits:${h.name}`,text:`"${h.title??h.name}" cannot begin until there is ${m.length===1?m[0]:`${m.slice(0,-1).join(", ")} and ${m[m.length-1]}`}.`,nodeIds:[]})}continue}c.push({id:`schema:add:${h.name}`,label:K(h),provider:"schema",mutation:h.name,args:{},open:k,score:U-k.length,why:`this makes ${(h.creates??[]).filter(o=>e.has(o)).map(o=>J(T(n.schema.tryDefinition(o),o))).join(", ")}`,nodeIds:[]})}return{affordances:c,observations:r}}if(t.length===0)return{};let S=new Set(t.map(e=>e.kind)),s=(e,r,h)=>{let k=[];for(let d of n.graph.allEdges()){if(!r.includes(d.kind))continue;let o=d.from===e?d.to:d.to===e?d.from:null;if(!o)continue;let m=n.graph.getNode(o);m&&(!h.includes("*")&&!h.includes(m.kind)||k.includes(o)||k.push(o))}return k};for(let e of n.allMutations()){let r=e.subject;if(!r||!(r.kinds==="*"?!0:[...S].every(u=>r.kinds.includes(u))))continue;let k=e.derived?.act;if((k==="archive"||k==="merge")&&t.some(u=>H(u))||k==="unarchive"&&!t.some(u=>H(u))||k==="leave-alone"&&t.every(u=>Q(n,u.id))||k==="allow-tidying"&&!t.some(u=>Q(n,u.id)))continue;let d=t.length===1?t[0].id:null,o=e.severs??[],m=e.connects??[];if(d&&o.length>0&&m.length===0&&s(d,o,["*"]).length===0)continue;let p=[];for(let u of E(e.input)){if(u.name===r.arg)continue;let g=u.kinds.includes("*")?n.graph.allNodes().map(w=>w.id):u.kinds.flatMap(w=>n.graph.nodesOfKind(w).map(P=>P.id));if(d&&m.length>0){let w=new Set(s(d,m,u.kinds));g=g.filter(P=>!w.has(P))}else d&&o.length>0&&(g=s(d,o,u.kinds));p.push({name:u.name,kinds:u.kinds,candidates:g.filter(w=>!a.includes(w)),shape:N(e.input,u.name),...u.optional?{optional:!0}:{}})}for(let u of G(e.input,r.arg))p.some(g=>g.name===u)||p.push({name:u,shape:N(e.input,u)});if(p.length===0&&d){let u=kn(e.input,r.arg);if(u.length>0&&!yn(n,e.name,{[r.arg]:d}))for(let g of u){let w=E(e.input).find(P=>P.name===g);p.push({name:g,optional:!0,...w?{kinds:w.kinds}:{},shape:N(e.input,g)})}}if(!p.every(u=>u.optional===!0?!0:u.kinds!==void 0?(u.candidates?.length??0)>0:(u.candidates?.length??0)>0||u.shape!==void 0&&u.shape.type!=="unknown")&&!A(e.name,d?{[r.arg]:d}:{}))continue;let j=t.map(u=>({[r.arg]:u.id}));p.length===0&&!j.some(u=>n.wouldChange({name:e.name,args:u}))||c.push({id:`schema:${e.name}`,label:t.length>1?`${K(e)} (${t.length})`:K(e),provider:"schema",mutation:e.name,args:j[0]??{},open:p,...e.destructive?{destructive:!0}:{},...e.derived?.act==="archive"||e.derived?.act==="merge"||e.derived?.act==="leave-alone"||e.derived?.act==="allow-tidying"?{setsAside:!0}:{},...o.length>0||m.length>0?{ties:!0}:{},...t.length>1?{batch:j}:{},score:U-p.length,why:t.length>1?`all ${t.length} selected nodes are ${[...S].map(u=>en(n.schema,u).toLowerCase()).join(" or ")}`:`this is ${J(T(n.schema.tryDefinition(t[0].kind),t[0].kind))}`,nodeIds:t.map(u=>u.id)})}if(t.length===1){let e=t[0];for(let r of n.allMutations()){let h=r.subject,k=r.severs??[],d=r.connects??[];if(!h||k.length===0&&d.length===0)continue;let o=h.kinds==="*"?"*":h.kinds;if(o==="*"||o.includes(e.kind))continue;let m=E(r.input),p=m.find(y=>y.name!==h.arg&&(y.kinds.includes("*")||y.kinds.includes(e.kind)));if(!p)continue;let $=o,j=$.includes("*")?n.graph.allNodes().map(y=>y.id):$.flatMap(y=>n.graph.nodesOfKind(y).map(I=>I.id)),u=new Set(s(e.id,d.length>0?d:k,$)),g=d.length>0?j.filter(y=>!u.has(y)):j.filter(y=>u.has(y));if(g.length===0)continue;let w=[{name:h.arg,kinds:$,candidates:g,shape:N(r.input,h.arg)}];for(let y of m){if(y.name===p.name||y.name===h.arg)continue;let I=y.kinds.includes("*")?n.graph.allNodes().map(D=>D.id):y.kinds.flatMap(D=>n.graph.nodesOfKind(D).map(O=>O.id));w.push({name:y.name,kinds:y.kinds,candidates:I,shape:N(r.input,y.name),...y.optional?{optional:!0}:{}})}for(let y of G(r.input,p.name))y===h.arg||w.some(I=>I.name===y)||w.push({name:y,shape:N(r.input,y)});w.every(y=>y.optional===!0?!0:y.kinds!==void 0?(y.candidates?.length??0)>0:(y.candidates?.length??0)>0||y.shape!==void 0&&y.shape.type!=="unknown")&&c.push({id:`schema:tie:${r.name}:${e.id}`,label:r.fromTheOtherEnd??K(r),provider:"schema",mutation:r.name,args:{[p.name]:e.id},open:w,ties:!0,...r.destructive?{destructive:!0}:{},score:U-w.length+2,why:`${k.length>0?"this one is on":"this one could join"} ${w[0].candidates.length===1?"it":"one of these"}`,nodeIds:[e.id]})}}return{affordances:c}}}}function kn(n,a){let t=n.shape;return t?Object.entries(t).filter(([l,v])=>l!==a&&v.safeParse(void 0).success).map(([l])=>l):[]}function yn(n,a,t){try{return n.preview({name:a,args:t}),!0}catch{return!1}}function G(n,a){let t=n.shape;return t?Object.entries(t).filter(([l,v])=>l!==a&&!v.safeParse(void 0).success).map(([l])=>l):[]}var vn=70,bn=80,Sn=new Set(["id","kind"]);function ln(){return{name:"structure",derive({store:n,nodes:a}){let t=c=>F(n.schema.tryDefinition(c.kind),c);if(a.length<2)return{};let l=[],v=[],f=a.map(c=>c.id);for(let c of n.schema.edgeKinds){let S=wn(a.map(e=>new Set([...n.graph.out(e.id,c).map(r=>r.id),...n.graph.in(e.id,c).map(r=>r.id)])));for(let e of S){let r=n.graph.getNode(e);r&&l.push({id:`shared:${c}:${e}`,text:`all ${a.length} share "${t(r)}" (${q(c).toLowerCase()})`,nodeIds:[...f,e]})}let s=new Map;for(let e of a)for(let r of[...n.graph.out(e.id,c),...n.graph.in(e.id,c)])s.set(r.id,(s.get(r.id)??0)+1);for(let[e,r]of s){if(r!==a.length-1||a.length<3||f.includes(e))continue;let h=n.graph.getNode(e);if(!h)continue;let k=a.find(d=>![...n.graph.out(d.id,c),...n.graph.in(d.id,c)].some(o=>o.id===e));if(k){l.push({id:`near-shared:${c}:${e}`,text:`all but "${t(k)}" share "${t(h)}" (${q(c).toLowerCase()})`,nodeIds:[...f,e]});for(let d of n.allMutations()){let o=d.subject;if(!o||o.kinds!=="*"&&!o.kinds.includes(k.kind))continue;let m=An(d.input,h.kind);m&&v.push({id:`structure:join:${d.name}:${k.id}:${e}`,label:`${K(d)}: bring "${t(k)}" in line with the others`,provider:"structure",mutation:d.name,args:{[o.arg]:k.id,[m]:e},open:[],score:vn,why:`every other selected node is connected to "${t(h)}"`,nodeIds:[k.id,e]})}}}}let A=new Map;for(let c of a)A.set(c.kind,[...A.get(c.kind)??[],c]);for(let[c,S]of A){if(S.length<2)continue;let s=S,e=S.map(d=>d.id),r=A.size>1?`${c}:`:"",h=new Set;for(let d of s)for(let o of Object.keys(d))Sn.has(o)||h.add(o);let k=d=>n.schema.definitions.find(o=>o.kind===d);for(let d of[...h].sort()){let o=k(s[0].kind),m=tn(o,d).toLowerCase(),p=o?.display?.format?.[d],$=O=>{if(!p)return O;try{return String(p(JSON.parse(O)))}catch{return O}},j=s.map(O=>O[d]),u=new Map;if(j.forEach((O,R)=>{let L=JSON.stringify(O??null),x=u.get(L);x?x.push(s[R]):u.set(L,[s[R]])}),u.size===1){let O=[...u.keys()][0];if(O==="null")continue;l.push({id:`agree:${r}${d}`,text:`all ${s.length} share the ${m} ${$(O)}`,nodeIds:e});continue}if(s.length<3||u.size!==2)continue;let g=[...u.entries()].sort((O,R)=>R[1].length-O[1].length),[w,P]=g[0],[,y]=g[1];if(y.length!==1||w==="null")continue;let I=y[0],D=JSON.parse(w);l.push({id:`odd-one-out:${r}${d}`,text:`${P.length} share the ${m} ${$(w)}; "${t(I)}" does not`,nodeIds:e});for(let O of n.allMutations()){let R=O.subject;if(!R||R.kinds!=="*"&&!R.kinds.includes(I.kind))continue;let L=hn(O.input);if(!L||!(d in L))continue;let x={[R.arg]:I.id,[d]:D},_=!0;for(let[C,Z]of Object.entries(L)){if(C in x||Z.safeParse(void 0).success)continue;let i=I[C];if(i===void 0){_=!1;break}x[C]=i}!_||!O.input.safeParse(x).success||v.push({id:`structure:align:${O.name}:${d}:${I.id}`,label:`Align the ${m} of "${t(I)}" with the other ${P.length}`,provider:"structure",mutation:O.name,args:x,open:[],score:bn,why:`${P.length} of ${s.length} share the ${m} ${$(w)}`,nodeIds:e})}}}return{affordances:v,observations:l}}}}function wn(n){if(n.length===0)return[];let[a,...t]=n;return[...a].filter(l=>t.every(v=>v.has(l))).sort()}function hn(n){return n.shape??null}function An(n,a){let t=hn(n);if(!t)return null;for(let[l]of Object.entries(t)){let v=sn(t[l]);if(v&&(v.includes("*")||v.includes(a)))return l}return null}function $n(){return[un(),ln(),fn(),an()]}function Hn(n,a,t={}){let l=gn(),v=t.providers??$n(),f=a.map(i=>n.graph.getNode(i)).filter(i=>i!==void 0),A={store:n,selection:a,nodes:f,kindSelection:t.kindSelection??[],edgeSelection:t.edgeSelection??[],violations:n.violations(t.context),context:t.context??{},principal:t.principal??{kind:"human"}},c=[],S=[];for(let i of v){let b=i.derive(A);c.push(...b.affordances??[]),S.push(...b.observations??[])}let s=new Set(n.allMutations().filter(i=>i.pinned).map(i=>i.name)),e=new Set(t.pins?.pinned??[]),r=new Set(t.pins?.unpinned??[]),h=i=>e.has(i.mutation)?"user":s.has(i.mutation)&&!r.has(i.mutation)?"declared":void 0,k=i=>{let b=h(i);return b?{...i,pinned:b}:i},d=new Map;for(let[i,b]of dn(n.log.all()))d.set(i,cn(b));let o=i=>i.pinned==="user"?0:i.pinned==="declared"?1:2,m=i=>i.score+(d.get(i.mutation)??0),p=new Map(n.allMutations().map(i=>[i.name,i])),$=new Map,j=i=>{let b=p.get(i.mutation);if(!b)return[];let M=$.get(i.mutation);M||(M=E(b.input).map(W=>W.name),$.set(i.mutation,M));let z=[];for(let W of i.batch??[i.args])for(let X of M){let Y=W[X]??i.args[X];typeof Y=="string"&&z.push(Y)}return z},u=t.focus,g=4,w=i=>i.open.length>0?1:0,P=i=>{if(u===void 0)return g;let b=j(i);return b.length>0?b.includes(u)?y(i,0):g:i.nodeIds.includes(u)||i.subjectId===u?y(i,1):g},y=(i,b)=>i.provider==="invariant"?b:2+w(i),I=i=>i.setsAside?1:0,D=On(c).map(k),O=new Map(D.map((i,b)=>[i,b])),R=D.sort((i,b)=>{let M=Number(i.destructive??!1)-Number(b.destructive??!1);if(M!==0)return M;let z=I(i)-I(b);if(z!==0)return z;let W=P(i)-P(b);return W!==0?W:P(i)<2?O.get(i)-O.get(b):+(b.provider==="invariant")-+(i.provider==="invariant")||o(i)-o(b)||m(b)-m(i)||i.id.localeCompare(b.id)}),L=t.principal??{kind:"human"},x=[],_=[];for(let i of R){let b=n.permits({name:i.mutation,args:{...i.args,...i.batch?.[0]??{}}},L);if(b.ok)x.push(i);else{let M=Pn(n,i,L);if(M==="done")continue;M?x.push(M):_.push({...i,refusal:b.refusal})}}let C=x.map((i,b)=>({...i,rank:b})),Z=_.map((i,b)=>({...i,rank:x.length+b}));return{affordances:t.limit===void 0?C:C.slice(0,t.limit),withheld:Z,observations:In(S),ms:gn()-l}}function On(n){let a=new Map;for(let t of n){let l=[t.mutation,JSON.stringify(t.args),JSON.stringify(t.batch??null)].join("|"),v=a.get(l);(!v||t.score>v.score)&&a.set(l,t)}return[...a.values()]}function In(n){let a=new Map;for(let t of n)a.set(t.text,t);return[...a.values()]}function gn(){return typeof performance<"u"?performance.now():Date.now()}function Vn(n,a,t={},l={}){let v=(a.batch??[a.args]).map(A=>({name:a.mutation,args:{...a.args,...A,...t}})),f=n.allMutations().find(A=>A.name===a.mutation);return n.applyAll(v,{...f?.describe?{}:{intent:a.label},...l.author?{author:l.author}:{}})}function Qn(n,a,t={}){return n.preview({name:a.mutation,args:{...a.args,...t}})}function Pn(n,a,t){let l=n.allMutations().find(s=>s.name===a.mutation)?.subject,v=l!==void 0&&a.args[l.arg]===void 0,f=v?a.open.find(s=>s.name===l.arg):a.open.find(s=>s.name!==l?.arg&&s.candidates);if(!f?.candidates)return;let A=s=>n.permits({name:a.mutation,args:{...a.args,...a.batch?.[0]??{},[f.name]:s}},t).ok,c=f.candidates.filter(A),S=t.id===void 0?void 0:n.graph.getNode(t.id);if(c.length===0){let s=v?l.kinds:"*";return S!==void 0&&(s==="*"||s.includes(S.kind))&&A(S.id)?"done":void 0}return c.length===1&&c[0]===t.id?{...a,args:{...a.args,[f.name]:t.id},open:a.open.filter(s=>s!==f)}:{...a,open:a.open.map(s=>s===f?{...s,candidates:c}:s)}}export{Hn as a,Vn as b,Qn as c};
@@ -1 +1 @@
1
- import"./chunk.WVUJXDXZ.js";import{i as x}from"./chunk.2EJAIT33.js";import"./chunk.EUGWV3S6.js";import"./chunk.6XJP7F3I.js";import"./chunk.NPX7SPXM.js";import"./chunk.OE4QOBJF.js";import"./chunk.74RMHUCX.js";import"./chunk.GR5Q4HTW.js";import{Va as f,Xa as N,ba as S}from"./chunk.WLPTY4BF.js";import"./chunk.AJZBJBMO.js";var k=(n,r,t)=>({untrusted:!0,authoredBy:t.say(r),text:n});function O(n,r){let t;for(let[a,e]of Object.entries(n)){if(typeof e!="string"||a==="id"||a==="kind")continue;let o=r.fieldBy(n.id,a);o&&(t??={...n},t[a]=k(e,o,r))}return t??n}function L(n,r,t){let a=e=>{if(Array.isArray(e))return e.map(a);if(e!==null&&typeof e=="object"&&"id"in e&&"label"in e){let o=e,i=t.recordBy(o.id);return i?{...o,label:k(o.label,i,t)}:o}if(typeof e=="string"){let o=t.recordBy(n);return o?k(e,o,t):e}return e};return Object.fromEntries(Object.entries(r).map(([e,o])=>[e,a(o)]))}function $(n,r){return n.map(t=>{let a=r.recordBy(t.id);return a?{...t,label:k(t.label,a,r)}:t})}function D(n,r){return{...n,nodes:n.nodes.map(t=>O(t,r))}}var E=n=>(JSON.stringify(n)??"null").length,R=n=>typeof n=="number"&&Number.isFinite(n)&&n>0?Math.floor(n):0;function w(n,r,t,a,e,o=""){let i=n-r-t;return i>0?`and ${i} more ${e}: call ${a} with ${o}offset ${r+t} for the next page.`:void 0}var j=({line:n,...r})=>r;function T(n){let r;for(let[t,a]of Object.entries(n))typeof a!="string"||a.length<=600||(r??={...n},r[t]=`${a.slice(0,600)}\u2026 (cut at ${600} of ${a.length} characters)`);return r??n}function B(n,r,t,a){let e=Math.min(t,Math.max(0,n.length-r)),o=n.slice(r,r+e),i=a(o);for(;e>1&&E(i)>8e3;)e=Math.max(1,Math.floor(e*.75)),o=n.slice(r,r+e),i=a(o);return{page:o,answer:i}}function C(n,r){let t=JSON.stringify(r)??"null";if(t.length<=8e3)return r;let a=`This answer was ${t.length} characters, more than the ${8e3} one read answers, so it is cut. Ask ${n} for less, or use search_graph and get_node to read one thing.`;for(let e=8e3-a.length-40;;){let o={cut:a,partial:t.slice(0,e)},i=E(o)-8e3;if(i<=0)return o;e=Math.max(0,e-i-8)}}function I(n,r){let{matched:t,later:a,...e}=r,o=n.hits.filter(i=>i.about==="node").length;return n.total>o?{...e,more:`and ${n.total-o} more records match: narrow the words, or add kind:<kind>.`}:e}function P(n,r,t){let a=N(t.archived),e={nodes:n.graph.allNodes({archived:a}),edges:n.graph.allEdges({archived:"all"})},o=R(t.offset),i=e.nodes.length,{page:h,answer:u}=B(e.nodes,o,25,d=>{let g=new Set(d.map(s=>s.id)),l=new Set(d.map(s=>s.id)),c=w(i,o,d.length,"get_graph","nodes"),p=s=>l.has(s)||(a==="all"?n.graph.has(s):n.graph.has(s)&&f(n.graph.getNode(s))===a);return{...D({nodes:d.map(T),edges:e.edges.filter(s=>g.has(s.from)&&p(s.to))},r),total:i,...c?{more:c}:{}}});return{data:u,reads:h.map(d=>d.id)}}function U(n,r,t,a){let e=n.graph.getNode(t),o=R(a.offset),i=n.graph.outEdges(t),h=n.graph.inEdges(t),u=i.slice(o,o+20),d=h.slice(o,o+20),g=(s,A)=>{let m=n.graph.getNode(A);return{kind:s,id:A,label:m?S(n.schema.tryDefinition(m.kind),m):A,...f(m)?{archived:!0}:{}}},l=x(n.schema,n.graph,e),c=n.violations().filter(s=>s.nodeIds.includes(t)),p=[w(i.length,o,u.length,"get_node","links out",`id "${t}" and `),w(h.length,o,d.length,"get_node","links in",`id "${t}" and `),c.length>20?`and ${c.length-20} more problems: get_violations lists them.`:void 0].filter(Boolean);return{data:{node:O(T(e),r),...f(e)?{archived:!0}:{},...Object.keys(l.values).length>0?{computed:L(t,l.values,r)}:{},...Object.keys(l.refused).length>0?{uncomputed:l.refused}:{},out:$(u.map(s=>g(s.kind,s.to)),r),in:$(d.map(s=>g(s.kind,s.from)),r),violations:c.slice(0,20).map(j),...p.length>0?{more:p.join(" ")}:{}},reads:[t,...u.map(s=>s.to),...d.map(s=>s.from)]}}function F(n,r){let t=R(r.offset),{page:a,answer:e}=B(n,t,20,o=>{let i=w(n.length,t,o.length,"get_violations","problems");return{violations:o.map(j),total:n.length,...i?{more:i}:{}}});return{data:e,reads:[...new Set(a.flatMap(o=>o.nodeIds))]}}export{P as graphRead,U as nodeRead,I as searchRead,F as violationsRead,C as withinReadChars};
1
+ import"./chunk.WVUJXDXZ.js";import{i as x}from"./chunk.KJNUZYXS.js";import"./chunk.4BBJ62ZO.js";import"./chunk.UCZR33MK.js";import"./chunk.CC47O2DW.js";import"./chunk.2IX3CZNP.js";import"./chunk.6DHHUBSC.js";import"./chunk.Z7JRBKA7.js";import{Va as f,Xa as N,ba as S}from"./chunk.5ZMENPY4.js";import"./chunk.AJZBJBMO.js";var k=(n,r,t)=>({untrusted:!0,authoredBy:t.say(r),text:n});function O(n,r){let t;for(let[a,e]of Object.entries(n)){if(typeof e!="string"||a==="id"||a==="kind")continue;let o=r.fieldBy(n.id,a);o&&(t??={...n},t[a]=k(e,o,r))}return t??n}function L(n,r,t){let a=e=>{if(Array.isArray(e))return e.map(a);if(e!==null&&typeof e=="object"&&"id"in e&&"label"in e){let o=e,i=t.recordBy(o.id);return i?{...o,label:k(o.label,i,t)}:o}if(typeof e=="string"){let o=t.recordBy(n);return o?k(e,o,t):e}return e};return Object.fromEntries(Object.entries(r).map(([e,o])=>[e,a(o)]))}function $(n,r){return n.map(t=>{let a=r.recordBy(t.id);return a?{...t,label:k(t.label,a,r)}:t})}function D(n,r){return{...n,nodes:n.nodes.map(t=>O(t,r))}}var E=n=>(JSON.stringify(n)??"null").length,R=n=>typeof n=="number"&&Number.isFinite(n)&&n>0?Math.floor(n):0;function w(n,r,t,a,e,o=""){let i=n-r-t;return i>0?`and ${i} more ${e}: call ${a} with ${o}offset ${r+t} for the next page.`:void 0}var j=({line:n,...r})=>r;function T(n){let r;for(let[t,a]of Object.entries(n))typeof a!="string"||a.length<=600||(r??={...n},r[t]=`${a.slice(0,600)}\u2026 (cut at ${600} of ${a.length} characters)`);return r??n}function B(n,r,t,a){let e=Math.min(t,Math.max(0,n.length-r)),o=n.slice(r,r+e),i=a(o);for(;e>1&&E(i)>8e3;)e=Math.max(1,Math.floor(e*.75)),o=n.slice(r,r+e),i=a(o);return{page:o,answer:i}}function C(n,r){let t=JSON.stringify(r)??"null";if(t.length<=8e3)return r;let a=`This answer was ${t.length} characters, more than the ${8e3} one read answers, so it is cut. Ask ${n} for less, or use search_graph and get_node to read one thing.`;for(let e=8e3-a.length-40;;){let o={cut:a,partial:t.slice(0,e)},i=E(o)-8e3;if(i<=0)return o;e=Math.max(0,e-i-8)}}function I(n,r){let{matched:t,later:a,...e}=r,o=n.hits.filter(i=>i.about==="node").length;return n.total>o?{...e,more:`and ${n.total-o} more records match: narrow the words, or add kind:<kind>.`}:e}function P(n,r,t){let a=N(t.archived),e={nodes:n.graph.allNodes({archived:a}),edges:n.graph.allEdges({archived:"all"})},o=R(t.offset),i=e.nodes.length,{page:h,answer:u}=B(e.nodes,o,25,d=>{let g=new Set(d.map(s=>s.id)),l=new Set(d.map(s=>s.id)),c=w(i,o,d.length,"get_graph","nodes"),p=s=>l.has(s)||(a==="all"?n.graph.has(s):n.graph.has(s)&&f(n.graph.getNode(s))===a);return{...D({nodes:d.map(T),edges:e.edges.filter(s=>g.has(s.from)&&p(s.to))},r),total:i,...c?{more:c}:{}}});return{data:u,reads:h.map(d=>d.id)}}function U(n,r,t,a){let e=n.graph.getNode(t),o=R(a.offset),i=n.graph.outEdges(t),h=n.graph.inEdges(t),u=i.slice(o,o+20),d=h.slice(o,o+20),g=(s,A)=>{let m=n.graph.getNode(A);return{kind:s,id:A,label:m?S(n.schema.tryDefinition(m.kind),m):A,...f(m)?{archived:!0}:{}}},l=x(n.schema,n.graph,e),c=n.violations().filter(s=>s.nodeIds.includes(t)),p=[w(i.length,o,u.length,"get_node","links out",`id "${t}" and `),w(h.length,o,d.length,"get_node","links in",`id "${t}" and `),c.length>20?`and ${c.length-20} more problems: get_violations lists them.`:void 0].filter(Boolean);return{data:{node:O(T(e),r),...f(e)?{archived:!0}:{},...Object.keys(l.values).length>0?{computed:L(t,l.values,r)}:{},...Object.keys(l.refused).length>0?{uncomputed:l.refused}:{},out:$(u.map(s=>g(s.kind,s.to)),r),in:$(d.map(s=>g(s.kind,s.from)),r),violations:c.slice(0,20).map(j),...p.length>0?{more:p.join(" ")}:{}},reads:[t,...u.map(s=>s.to),...d.map(s=>s.from)]}}function F(n,r){let t=R(r.offset),{page:a,answer:e}=B(n,t,20,o=>{let i=w(n.length,t,o.length,"get_violations","problems");return{violations:o.map(j),total:n.length,...i?{more:i}:{}}});return{data:e,reads:[...new Set(a.flatMap(o=>o.nodeIds))]}}export{P as graphRead,U as nodeRead,I as searchRead,F as violationsRead,C as withinReadChars};
@@ -0,0 +1 @@
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{b as z}from"./chunk.C2OAKTZX.js";import{a as p,b as T,c as S,d as _,e as U,f as V,g as b,h as B,i as C,j as W}from"./chunk.OYMM2UWE.js";import{a as J,b as h,d as A}from"./chunk.FGDHEVH4.js";import{a as R}from"./chunk.SDO3U72B.js";import"./chunk.5ZMENPY4.js";import"./chunk.AJZBJBMO.js";var Q=R(()=>(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.SHNYYBNW.js")));function te(d,e){let f=d.ownerDocument,u=f.defaultView,t=f.createElement("iframe");t.setAttribute("sandbox",T),t.setAttribute("referrerpolicy","no-referrer"),t.setAttribute("allow",""),t.setAttribute("title",e.title??e.view),t.setAttribute("data-guest-view",e.view),t.setAttribute("aria-busy","true"),t.style.border="0",t.style.width="100%",t.style.display="block",t.src=e.url;let a={applied:0,refused:0,dropped:0},P=h(e.limits),i,y,o={applied:0,refused:0,dropped:0},v=()=>{if(!i)return;let r=i.stats;a.applied+=r.applied-o.applied,a.refused+=r.refused-o.refused,a.dropped+=r.dropped-o.dropped,o={...r}},O=W(u,()=>l(),"data"),g=()=>C(()=>e.theme?.()??b(d),e.brand,O),L="",l=()=>{i&&(L=JSON.stringify(g()),i.push())},k=B(f,()=>{i&&JSON.stringify(g())!==L&&l()}),n,w=!1,D=e.pictures?z(Q,({createGuestPictures:r})=>{n=r(u,{as:"data",view:`"${e.title??e.view}"`,pictures:e.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>{i?.push(),G&&E()}}),w&&x()}):()=>{},G=!1,c,N=()=>{!G||n?.waiting()||(clearTimeout(c),t.removeAttribute("data-guest-view-failed"),t.removeAttribute("aria-busy"),t.setAttribute("data-guest-view-drawn",""))},E=()=>{clearTimeout(c),c=setTimeout(N,250)},F=setTimeout(()=>{i||(t.removeAttribute("aria-busy"),t.setAttribute("data-guest-view-failed","silent"))},e.limits?.readyMs??8e3),H=()=>{v(),i?.dispose(),y?.close(),i=void 0,y=void 0,o={applied:0,refused:0,dropped:0}},M=r=>{if(!(r.source===null||r.source!==t.contentWindow)){if(r.origin!==S||!P.message()){a.dropped+=1;return}if(!_(r.data)||r.data.protocol!==1){a.dropped+=1;return}if(e.pictures&&!n){w=!0;return}x()}},x=()=>{w=!1,H();let r=U(),m=new MessageChannel;y=m.port1;let I=A({store:e.store,principal:e.principal,view:e.view,nonce:r,send:s=>m.port1.postMessage(s),...e.input?{input:e.input}:{},...e.reads?{reads:e.reads}:{},...n?{hand:n.hand}:{},theme:g,...e.places?{places:()=>[...new Set(e.places().map(s=>s.as))],placesShown:e.places}:{},...e.onNavigatePlace?{onNavigatePlace:e.onNavigatePlace}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},...e.onArrive?{onArrive:e.onArrive}:e.goTo?{onArrive:s=>V(e.goTo(),s)}:{},...e.onLost?{onLost:e.onLost}:{},onSize:s=>{e.onSize?e.onSize(s):t.style.height=`${s}px`,N()},...e.limits?{limits:e.limits}:{},limiter:P});i=I,m.port1.onmessage=s=>{I.receive(s.data),v()};let j={graview:"host-hello",protocol:1,nonce:r,view:e.view};t.contentWindow.postMessage(j,"*",[m.port2]),l(),G=!0,E()};return u.addEventListener("message",M),d.appendChild(t),d.removeAttribute("aria-busy"),{iframe:t,update:l,get stats(){return v(),a},dispose(){H(),clearTimeout(F),clearTimeout(c),k(),O.dispose(),D(),n?.dispose(),u.removeEventListener("message",M),t.remove()}}}export{p as GUEST_PROTOCOL,T as GUEST_SANDBOX,S as OPAQUE_ORIGIN,A as createGuestHost,h as createGuestLimiter,te as mountGuestView,J as readAcross,b as readTheme};
@@ -1,4 +1,4 @@
1
- import"./chunk.QT4XGC5Z.js";import{S as T}from"./chunk.MQ7FNHXG.js";import"./chunk.WLPTY4BF.js";import{b as A}from"./chunk.AJZBJBMO.js";var F=/^ {0,3}(`{3,}|~{3,})[ \t]*([^`\s]*)/,D=/^ {0,3}(#{1,6})(?:[ \t]+|$)/,R=/^ {0,3}(?:(?:-[ \t]*){3,}|(?:\*[ \t]*){3,}|(?:_[ \t]*){3,})$/,v=/^ {0,3}>[ \t]?/,_=/^([ \t]*)([-*+]|(\d{1,9})[.)])(?:[ \t]+|$)/,K=/^\|?\s*:?-+:?\s*(?:\|\s*:?-+:?\s*)+\|?$|^\|\s*:?-+:?\s*\|$/,w=/^[ \t]*$/;function O(t){let n=F.exec(t);if(!(!n||n[1][0]==="`"&&t.indexOf("`",n[0].length)>=0))return{mark:n[1],lang:n[2]}}function U(t,n){let r=t.trim().slice(n).trim(),e=r.length;for(;e>0&&r[e-1]==="#";)e--;return(e===0||r[e-1]===" "||r[e-1]===" ")&&(r=r.slice(0,e).trim()),r}var $=t=>O(t)!==void 0||D.test(t)||R.test(t)||v.test(t)||_.test(t),b=t=>[...t].reduce((n,r)=>r===" "?n+4-n%4:n+1,0);function E(t){let n=t.trim().replace(/^\|/,"").replace(/(?<!\\)\|$/,""),r=[],e="",l=!1;for(let c=0;c<n.length;c++){let h=n[c];h==="\\"&&n[c+1]==="|"?(e+="|",c++):h==="`"?(l=!l,e+=h):h==="|"&&!l?(r.push(e.trim()),e=""):e+=h}return r.push(e.trim()),r}function W(t){return B(t.replace(/\r\n?/g,`
1
+ import"./chunk.ORXFUK6F.js";import{R as T}from"./chunk.BTSXYZ6Z.js";import"./chunk.SDO3U72B.js";import"./chunk.5ZMENPY4.js";import{b as A}from"./chunk.AJZBJBMO.js";var F=/^ {0,3}(`{3,}|~{3,})[ \t]*([^`\s]*)/,D=/^ {0,3}(#{1,6})(?:[ \t]+|$)/,R=/^ {0,3}(?:(?:-[ \t]*){3,}|(?:\*[ \t]*){3,}|(?:_[ \t]*){3,})$/,v=/^ {0,3}>[ \t]?/,_=/^([ \t]*)([-*+]|(\d{1,9})[.)])(?:[ \t]+|$)/,K=/^\|?\s*:?-+:?\s*(?:\|\s*:?-+:?\s*)+\|?$|^\|\s*:?-+:?\s*\|$/,w=/^[ \t]*$/;function O(t){let n=F.exec(t);if(!(!n||n[1][0]==="`"&&t.indexOf("`",n[0].length)>=0))return{mark:n[1],lang:n[2]}}function U(t,n){let r=t.trim().slice(n).trim(),e=r.length;for(;e>0&&r[e-1]==="#";)e--;return(e===0||r[e-1]===" "||r[e-1]===" ")&&(r=r.slice(0,e).trim()),r}var $=t=>O(t)!==void 0||D.test(t)||R.test(t)||v.test(t)||_.test(t),b=t=>[...t].reduce((n,r)=>r===" "?n+4-n%4:n+1,0);function E(t){let n=t.trim().replace(/^\|/,"").replace(/(?<!\\)\|$/,""),r=[],e="",l=!1;for(let c=0;c<n.length;c++){let h=n[c];h==="\\"&&n[c+1]==="|"?(e+="|",c++):h==="`"?(l=!l,e+=h):h==="|"&&!l?(r.push(e.trim()),e=""):e+=h}return r.push(e.trim()),r}function W(t){return B(t.replace(/\r\n?/g,`
2
2
  `).replace(/\0/g,"\uFFFD").split(`
3
3
  `),0)}function B(t,n){let r=[],e=0;for(;e<t.length;){let l=t[e];if(w.test(l)){e++;continue}let c=O(l);if(c){let o=new RegExp(`^ {0,3}${c.mark[0]==="`"?"`":"~"}{${c.mark.length},}[ \\t]*$`),a=[];for(e++;e<t.length&&!o.test(t[e]);)a.push(t[e++]);e++,r.push({t:"code",text:a.join(`
4
4
  `),...c.lang?{lang:c.lang}:{}});continue}let h=D.exec(l);if(h){r.push({t:"heading",level:h[1].length,children:k(U(l,h[1].length),0)}),e++;continue}if(R.test(l)){r.push({t:"rule"}),e++;continue}if(v.test(l)){let o=[];for(;e<t.length&&(v.test(t[e])||o.length>0&&!w.test(t[e])&&!$(t[e])&&!w.test(o[o.length-1]));)o.push(t[e++].replace(v,""));r.push(n<8?{t:"quote",blocks:B(o,n+1)}:{t:"p",children:k(o.join(`
@@ -0,0 +1 @@
1
+ import{e as L}from"./chunk.BZSU4HH2.js";import{a as R,b as O,c as v,d as P}from"./chunk.UGFDSE37.js";import"./chunk.P5325GYR.js";import"./chunk.QEXXLWEU.js";import"./chunk.BEC5ZH2L.js";import"./chunk.6HBEYRJU.js";import"./chunk.U7QMA4H7.js";import"./chunk.GP2F7TIN.js";import"./chunk.C6X7CKU6.js";import"./chunk.6CFP5UYP.js";import"./chunk.CAMQ7MYJ.js";import"./chunk.2GGDOFTF.js";import"./chunk.ZTMDU3OH.js";import"./chunk.HFDYFPMJ.js";import"./chunk.RWB4235L.js";import"./chunk.CTK2P4JV.js";import"./chunk.GXKECZ4S.js";import"./chunk.6XU2CXRZ.js";import"./chunk.3ZNQ5YKX.js";import"./chunk.7EFNLMKU.js";import{a as E,b as T}from"./chunk.MB7LKKUD.js";import"./chunk.WVUJXDXZ.js";import"./chunk.KJNUZYXS.js";import"./chunk.4BBJ62ZO.js";import"./chunk.UCZR33MK.js";import"./chunk.CC47O2DW.js";import"./chunk.2IX3CZNP.js";import"./chunk.6DHHUBSC.js";import"./chunk.GZHZLJBF.js";import"./chunk.HHUCPVG5.js";import"./chunk.OJGHDWI6.js";import"./chunk.WXYUWBKX.js";import"./chunk.NSNGPQGT.js";import"./chunk.H5CZZZLX.js";import"./chunk.Z7JRBKA7.js";import"./chunk.ORXFUK6F.js";import{Aa as x,G as D,R as C}from"./chunk.BTSXYZ6Z.js";import"./chunk.SDO3U72B.js";import{tc as k}from"./chunk.5ZMENPY4.js";import{b as S}from"./chunk.AJZBJBMO.js";var o=S(D(),1);var i=S(C(),1);function W(c){let e=document.activeElement;if(e!==null&&e!==document.body&&e!==document.documentElement&&e.isConnected)return;let r=c??document,a=r.querySelector("main")??r.querySelector("[data-graview-page]")??null,n=r.querySelector("[data-graview-page-title]")??a?.querySelector("h1, h2")??a;n instanceof HTMLElement&&(n.hasAttribute("tabindex")||n.setAttribute("tabindex","-1"),n.focus({preventScroll:!0}))}var H=1500;function z(c,e,r){let{store:a,principal:n}=c,u=L(a),l=(0,o.useMemo)(()=>R(a,n),[a,n,u]),b=(0,o.useRef)(r),[p,m]=(0,o.useState)(),[s,f]=(0,o.useState)("");(0,o.useEffect)(()=>{let t=O(a,n,b.current);b.current=a.batches().length,t&&(m({batch:t.batch,at:e,when:Date.now()}),f(""))},[a,n,u]),(0,o.useEffect)(()=>{m(t=>!t||t.at===e?t:Date.now()-t.when<H?{...t,at:e}:void 0)},[e]);let[g,h]=(0,o.useState)(null),y=(0,o.useCallback)(()=>{m(void 0),h(null)},[]),w=(0,o.useCallback)(()=>{h(null);try{let t=P(a,n);t&&f(`Took back \u201C${t.intent}\u201D`)}catch(t){h(t instanceof Error?t.message:String(t))}},[a,n]),d=l&&p?.batch===l.batch&&p.at===e?l:void 0;return{change:l,offered:d,close:y,takeBack:w,refused:g,said:s}}function Y({context:c,docked:e,at:r,since:a}){let{change:n,offered:u,close:l,takeBack:b,refused:p,said:m}=z(c,r,a),s=e?u:n,f=(0,o.useRef)(null),g=e&&(s!==void 0||p!==null);B(f,g),(0,o.useEffect)(()=>{if(!g)return;let d,t=()=>d=setTimeout(()=>f.current?.matches(":hover, :focus-within")?t():l(),1e4);return t(),()=>clearTimeout(d)},[g,s?.batch,p,l]);let h=m||(e&&s?v(s):""),y=e?{position:"fixed",inset:"auto",margin:0,padding:0,border:"none",background:"none",overflow:"visible",zIndex:k("toast"),width:"max-content",height:"auto",bottom:"calc(16px + env(safe-area-inset-bottom, 0px))",left:16,justifyItems:"start",color:"var(--graview-ink)",...g?{}:{display:"none"}}:{},w=s?(0,i.jsxs)("button",{type:"button","data-testid":"page-undo",title:`${v(s)} \u2014 \u2318Z or Ctrl+Z`,"aria-keyshortcuts":"Meta+Z Control+Z",onClick:d=>{let t=d.currentTarget.closest("[data-graview-face]");b(),requestAnimationFrame(()=>W(t))},style:e?I:A,children:[(0,i.jsx)("span",{"aria-hidden":"true",children:"\u21B6"}),(0,i.jsx)("span",{style:e?j:F,children:v(s)})]}):null;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{role:"status","aria-live":"polite",style:N,children:h}),(0,i.jsxs)("div",{ref:f,...e?{popover:"manual","data-graview-foot":"","data-graview-offstage":""}:{},"data-testid":e?"face-undo-dock":"page-undo-place",style:{display:"grid",justifyItems:"end",gap:4,maxWidth:"100%",minWidth:0,...y},children:[e&&s?(0,i.jsxs)("div",{"data-testid":"page-undo-notice",style:_,children:[w,(0,i.jsx)("button",{type:"button","data-testid":"page-undo-dismiss","aria-label":`Dismiss: ${v(s)}`,title:"Dismiss",onClick:d=>{let t=d.currentTarget.closest("[data-graview-face]");l(),requestAnimationFrame(()=>W(t))},style:q,children:"\xD7"})]}):w,p?(0,i.jsx)("span",{"data-testid":"page-undo-refused",role:"alert",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-warn)",background:e?"var(--graview-float)":void 0,padding:e?"4px 8px":void 0,borderRadius:6},children:p}):null]})]})}function B(c,e){(0,o.useLayoutEffect)(()=>{let r=c.current;if(!r||!e)return;if(typeof r.showPopover=="function"&&!x(r))try{r.showPopover()}catch{}let a=()=>r.parentElement?.closest("[data-embed-content]")??null,n=()=>{T(r,a()),dispatchEvent(new Event(E))};n(),addEventListener("resize",n),addEventListener("scroll",n,!0);let u=typeof ResizeObserver=="function"?new ResizeObserver(n):null;return u?.observe(r),()=>{if(u?.disconnect(),removeEventListener("resize",n),removeEventListener("scroll",n,!0),r.isConnected&&x(r))try{r.hidePopover()}catch{}dispatchEvent(new Event(E))}},[c,e])}var A={display:"inline-flex",alignItems:"center",gap:6,minHeight:36,maxWidth:"100%",minWidth:0,padding:"0 14px",borderRadius:999,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",font:"inherit",fontSize:"0.875rem",cursor:"pointer"},I={...A,textAlign:"start",lineHeight:1.4,padding:"8px 4px 8px 14px",border:"none",background:"none",color:"inherit"},_={display:"flex",alignItems:"center",gap:2,maxWidth:"100%",minWidth:0,paddingRight:6,borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},q={flex:"0 0 auto",minWidth:28,minHeight:28,padding:0,border:"none",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"1rem",cursor:"pointer"},F={minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},j={minWidth:0,overflow:"hidden",overflowWrap:"anywhere",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:4},N={position:"absolute",width:1,height:1,margin:-1,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0};export{Y as TakeBack};
@@ -1 +1 @@
1
- import{a as L}from"./chunk.EUGWV3S6.js";import{a as ae,b as ie,c as de,d as se,e as M,f as V,g as le}from"./chunk.6XJP7F3I.js";import{a as ue}from"./chunk.NPX7SPXM.js";import{c as G,e as oe}from"./chunk.OE4QOBJF.js";import{a as j,b as Q,c as ee,d as ne,f as E,m as re,n as b,o as te,p as B}from"./chunk.74RMHUCX.js";import{b as v,d as ye,e as fe,g as pe,h as me,i as ce}from"./chunk.GR5Q4HTW.js";import{Aa as J,Ab as q,B as x,Bb as C,H as W,Q as H,T as P,Z as K,ba as X,ia as F,ka as Z,oa as T,pa as A,qa as z,ra as O,sa as N,zb as Y}from"./chunk.WLPTY4BF.js";var ge=e=>e.caption?.trim()||e.name,_=e=>A(e)?`${ge(e)}, ${z(e)}`:ge(e);function Ye(e){let n=Math.max(0,Math.round(e)),o=a=>String(a).padStart(2,"0"),r=Math.floor(n/3600),t=Math.floor(n%3600/60);return r>0?`${r}:${o(t)}:${o(n%60)}`:`${t}:${o(n%60)}`}function Ee(e){let n=e?.fields?.shape??{};return Object.keys(n).filter(o=>{let r=x(n[o]);for(;r?.innerType;)r=x(r.innerType);return N(n[o])!==void 0||r?.type==="array"&&N(r.element)!==void 0})}function qe(e,n){for(let o of Ee(n)){let r=O(e[o]).find(t=>T(t)||A(t));if(r)return r}}var R=e=>{try{return e()}catch{return null}},Re=e=>typeof e=="string"&&ae.includes(e);function Be(e){if(e!==void 0)return Re(e)?e:e&&typeof e=="object"&&typeof e.expr=="string"?{expr:R(()=>G(e.expr))}:"neutral"}var ve=4;function xe(e){let n=typeof e.list=="string"?R(()=>G(e.list)):null,o=e.sort,r=typeof o=="string"?o:o&&typeof o=="object"&&typeof o.by=="string"?o.by:void 0,t=o&&typeof o=="object"?o.direction:void 0,a=n,d;if(n&&r!==void 0)if(t==="choices")d=r;else{let f=R(()=>G(r));a=f?{t:"call",fn:"sort",args:[n,f,{t:"lit",value:t==="desc"?"desc":"asc",at:0}],at:0}:null}let l=typeof e.limit=="number"&&Number.isInteger(e.limit)&&e.limit>=1?Math.min(e.limit,M):void 0,i=e.group,s=typeof i=="string"?i:i&&typeof i=="object"&&typeof i.by=="string"?i.by:void 0,y=i&&typeof i=="object"&&i.headings&&typeof i.headings=="object"?i.headings:{};return{t:"list",source:a,...d?{choiceOrder:d}:{},...l?{limit:l}:{},...s?{group:{by:s,headings:Object.fromEntries(Object.entries(y).filter(f=>typeof f[1]=="string"))}}:{},...typeof e.empty=="string"?{empty:e.empty}:{},as:e.as==="card"?"card":"row"}}function he(e,n=1,o=""){if(!Array.isArray(e)||n>ve)return[];let r={};return e.flatMap(t=>{if(!t||typeof t!="object"||Array.isArray(t))return[];let a=t,d=p=>typeof p=="string"?R(()=>oe(p)):null,l=p=>typeof p=="string"?R(()=>G(p)):null,i=Be(a.tone),s=typeof a.label=="string"?a.label:void 0,y=p=>Object.hasOwn(a,p),f=typeof a.currency=="string"&&/^[A-Z]{3}$/.test(a.currency)?a.currency:void 0,u=y("list")?"list":y("headline")?"headline":typeof a.figure=="string"?"number":Pe.find(y);if(!u)return[];let m=r[u]=(r[u]??0)+1,c=a.key,S=typeof c=="string"&&c?c:`${o}${u}.${m}`;return[{...(()=>{switch(u){case"list":return xe(a);case"number":{let p=de.includes(a.as)?a.as:void 0,U=se.includes(a.emphasis)?a.emphasis:void 0;return{t:u,value:l(a.figure),...p?{as:p}:{},...f?{currency:f}:{},...s?{label:d(s)}:{},...U?{emphasis:U}:{}}}case"headline":case"title":return{t:u,parts:d(a[u])};case"text":case"badge":return{t:u,parts:d(a[u]),...i?{tone:i}:{}};case"field":{let p=ie.includes(a.as)?a.as:void 0;return{t:u,field:String(a.field),...p?{as:p}:{},...f?{currency:f}:{},...s?{label:s}:{}}}case"image":return{t:u,field:String(a.image),as:a.as==="gallery"?"gallery":"thumb",...s?{label:s}:{}};case"progress":{let p=a.progress??{};return{t:u,value:l(p.value),max:l(p.max),...s?{label:d(s)}:{}}}case"group":return{t:u,blocks:he(a.group,n+1,`${S}.`),direction:a.direction==="row"?"row":"column"};case"when":return{t:u,when:l(a.when),show:he(a.show,n+1,`${S}.`)};default:return{t:u}}})(),key:S}]})}var Pe=["title","text","badge","field","image","progress","group","when","divider","figure"],g="\u2014",Fe=500;function w(e,n){if(!e)return{ok:!1,problem:"an expression that does not parse"};try{return{ok:!0,value:E(e,{graph:n.graph??re,subject:n.node,kinds:n.kinds,today:n.today,budget:n.budget??Fe})}}catch(o){return{ok:!1,problem:o instanceof Error?o.message:String(o)}}}var Ne=(e,n,o)=>!e.format&&e.expr?.t==="ident"&&typeof o=="string"&&n.fields[e.expr.name]?.format==="markdown";function k(e,n,o){if(!e)return{text:g,problem:"a template that does not parse"};let r,t;return{text:e.map(d=>{if(d.text!==void 0)return d.text;let l=w(d.expr??null,n);if(!l.ok)return r??=`{${d.source??""}}: ${l.problem}`,g;if(Ne(d,n,l.value))return n.glance?ye(l.value,{markdown:!0}):o&&e.length===1?(t=!0,l.value):fe(l.value);let i=!d.format&&d.expr?.t==="ident"&&typeof l.value=="number"?Oe(n,d.expr.name):void 0;return te(d,i?C(l.value,i):b(l.value,d.format,n.today,d.formatArgs,n.money,B(n.schema)))}).join(""),...r?{problem:r}:{},...t?{markdown:t}:{}}}function be(e,n){if(e===void 0)return;if(typeof e=="string")return e;let o=w(e.expr,n);return o.ok&&Re(o.value)?o.value:"neutral"}function Ce(e){if(typeof e=="string")try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"?n.href:void 0}catch{return}}var Ae=(e,n)=>{let o=e.fields[n]?.type;return o==="phone"||o==="place"||o==="duration"?o:pe(e.definition,n)},Oe=(e,n)=>Y(e.definition?.fields?.shape?.[n]);function Me(e,n,o,r,t){if(n==null||n==="")return g;if(typeof n=="boolean")return n?"yes":"no";if(r)return b(n,r,o.today,[],t?{...o.money,currency:t}:o.money);let a=o.fields[e];if(o.definition?.display?.format?.[e])return v(o.definition,e,n);let d=me(Ae(o,e),n,o.money?.locale);if(d!==void 0)return d;if(a?.type==="date")return b(n,"date",o.today,[],o.money);if(a?.type==="datetime"&&typeof n=="string")return H(n,o.money?.locale,o.money?.timeZone);if(a?.type==="enum"&&typeof n=="string")return v(o.definition,e,n);let l=typeof n=="number"?Oe(o,e):void 0;if(l)return C(n,l);if(typeof n=="number")return P(n,o.money?.locale,{});let i=O(n);return i[0]?i.map(_).join(", "):Array.isArray(n)?n.map(s=>String(s)).join(", "):typeof n=="object"?g:String(n)}function Ve(e,n,o,r,t){return typeof e!="number"?String(e):n==="money"?q(e,o?{...t,currency:o}:t):n==="percent"?b(e,n,r,[],t):P(e,t?.locale)}var h=(e,n)=>n?{...e,problem:n}:e;function we(e){return e.firstHeading===void 0?e:{...e,firstHeading:void 0}}function Le(e,n,o){switch(e.t){case"title":{let r=k(e.parts,n);return h({t:"title",text:r.text},r.problem)}case"text":{let r=k(e.parts,n,!0),t=be(e.tone,n);return h({t:"text",text:r.text,...t?{tone:t}:{},...r.markdown?{markdown:r.markdown}:{}},r.problem)}case"badge":{let r=k(e.parts,n);return h({t:"badge",text:r.text,tone:be(e.tone,n)??"neutral"},r.problem)}case"field":{let r=e.label??F(n.definition,e.field);if(!n.node)return{t:"field",field:e.field,label:r,text:g,problem:`"${e.field}" names a field, and these blocks are about no one record`};let t=e.as===void 0?n.kinds.get(n.node.kind)?.linked?.get(e.field):void 0;if(t){let f=J(Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0,t);return{t:"field",field:e.field,label:r,text:f.length>0?"linked record":g,...f.length>0?{linked:{relation:t,refs:f}}:{}}}let a=n.kinds.get(n.node.kind)?.computed?.has(e.field),d,l;if(a){let f=w({t:"ident",name:e.field,at:0},n);f.ok?d=f.value!==null&&typeof f.value=="object"?b(f.value,void 0,n.today,[],n.money,B(n.schema)):f.value:l=f.problem}else d=Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0;let i=e.as!==void 0?void 0:n.fields[e.field]?.type==="url"?Ce(d):ce(Ae(n,e.field),d),s=R(()=>Me(e.field,d,n,e.as,e.currency))??g,y=n.fields[e.field]?.type==="app-link"&&e.as===void 0&&typeof d=="string"?d:void 0;return h({t:"field",field:e.field,label:r,text:s,...i?{href:i}:{},...y?{app:y}:{}},l)}case"image":{let r=O(n.node&&Object.hasOwn(n.node,e.field)?n.node[e.field]:null),t=e.as==="gallery"?r:r.filter(a=>T(a)||A(a)).slice(0,1);return{t:"image",field:e.field,label:e.label??F(n.definition,e.field),as:e.as,files:t,text:t.map(_).join(", ")||g}}case"progress":{let r=w(e.value,n),t=w(e.max,n),a=e.label?k(e.label,n):{text:"Progress"},d=a.text,l=r.ok?t.ok?a.problem:t.problem:r.problem;return r.ok&&t.ok&&typeof r.value=="number"&&typeof t.value=="number"&&Number.isFinite(r.value)&&Number.isFinite(t.value)&&t.value>0?h({t:"progress",label:d,value:r.value,max:t.value,text:`${b(r.value,void 0,n.today)} of ${b(t.value,void 0,n.today)}`},l):h({t:"progress",label:d,text:g},l)}case"group":return{t:"group",direction:e.direction,blocks:Se(e.blocks,we(n))};case"when":{let r=w(e.when,n),t=r.ok&&r.value===!0;return h({t:"when",shown:t,blocks:t?Se(e.show,we(n)):[]},r.ok?void 0:r.problem)}case"divider":return{t:"divider"};case"figure":return{t:"figure"};case"headline":{let r=k(e.parts,n),t=Math.min(6,Math.max(1,(o?n.firstHeading:void 0)??n.heading??3));return h({t:"headline",level:t,text:r.text},r.problem)}case"number":{let r=w(e.value,n),t=!r.ok||r.value===null||typeof r.value=="object"?g:Ve(r.value,e.as,e.currency,n.today,n.money),a=e.label?k(e.label,n):void 0;return h({t:"number",text:t,...a?{label:a.text}:{},...e.emphasis?{emphasis:e.emphasis}:{}},r.ok?a?.problem:r.problem)}case"list":return Ie(e,n)}}function Se(e,n){let o=e.findIndex(r=>r.t==="headline");return e.map((r,t)=>({...Le(r,n,t===o),key:r.key}))}var _e=new Set(["every","some","sum","min","max","sort"]);function wn(e,n){let o=new Set,r=new Set,t=i=>{if(i)switch(i.t){case"ident":o.add(i.name);return;case"list":i.items.forEach(t);return;case"member":return t(i.object);case"unary":return t(i.operand);case"binary":return t(i.left),t(i.right);case"where":return t(i.set);case"call":i.args.forEach((s,y)=>{y===1&&_e.has(i.fn)||t(s)});return;default:return}},a=i=>{for(let s of i??[])t(s.expr)},d=(i,s)=>{i.forEach((y,f)=>{let u=s[f];if(u)switch(y.t){case"field":case"image":o.add(y.field);return;case"title":case"text":case"badge":case"headline":a(y.parts);return;case"number":t(y.value),a(y.label);return;case"progress":t(y.value),t(y.max);return;case"group":u.t==="group"&&d(y.blocks,u.blocks);return;case"when":u.t==="when"&&u.shown&&d(y.show,u.blocks);return;case"list":if(u.t==="list")for(let m of u.members)r.add(m.id);return;default:return}})};d(e,n);let l=n[0];return{fields:o,records:r,...e[0]?.t==="title"&&l?.t==="title"?{title:l.text}:{}}}function Ie(e,n){let o=Math.min(6,(n.heading??3)+1),r=w(e.source,n);if(!r.ok)return{t:"list",as:e.as,failed:!0,members:[],headingLevel:o,more:0,problem:r.problem};let t=r.value,a=t instanceof j?t.nodes:t!==null&&typeof t=="object"&&!Array.isArray(t)?[t]:[];e.choiceOrder&&n.schema&&(a=De(a,e.choiceOrder,n.schema));let d=a.length,l=a.slice(0,e.limit??M),i=l.slice(0,V),s=l.slice(V),y=(e.limit===void 0?d:l.length)-i.length,f=c=>e.group&&n.schema&&c.length>0?$e(c,e.group,n.schema,n.graph):void 0,u=f(i),m=s.length>0?f(l):void 0;return{t:"list",as:e.as,failed:!1,members:i,...s.length>0?{rest:s}:{},...u?{groups:u}:{},...m?{everyGroup:m}:{},headingLevel:o,...i.length===0&&e.empty?{empty:e.empty}:{},more:y,total:d}}function I(e,n,o){let r=e.tryDefinition(n)?.fields?.shape,t=r&&Object.hasOwn(r,o)?L(r[o]):void 0;return t?.type==="enum"?t.options??[]:[]}var D=(e,n)=>Object.hasOwn(e,n)?e[n]:void 0;function De(e,n,o){let r=t=>{let a=I(o,t.kind,n).indexOf(String(D(t,n)));return a<0?Number.MAX_SAFE_INTEGER:a};return e.map((t,a)=>({node:t,i:a,rank:r(t)})).sort((t,a)=>t.rank-a.rank||t.i-a.i).map(t=>t.node)}function $e(e,n,o,r){let t=e.some(i=>I(o,i.kind,n.by).length>0)?void 0:le(n.by);if(t&&r)return Ue(e,t,n.headings,o,r);let a=[];for(let i of e)for(let s of I(o,i.kind,n.by))a.includes(s)||a.push(s);let d=[];for(let i of a){let s=e.filter(f=>D(f,n.by)===i);if(s.length===0)continue;let y=o.tryDefinition(s[0].kind);d.push({value:i,heading:n.headings[i]??K(v(y,n.by,i)),members:s})}let l=e.filter(i=>!a.includes(String(D(i,n.by))));return l.length>0&&d.push({value:null,members:l}),d}function Ue(e,n,o,r,t){let a=u=>n.way??(Object.hasOwn(r.tryDefinition(u.kind)?.edges??{},n.edge)?"out":"in"),d=new Map,l=[],i=B(r),s;for(let u of e){let m=a(u)==="out"?t.out(u.id,n.edge):t.in(u.id,n.edge);m.length===0&&l.push(u);for(let c of m){s??=c.kind;let S=d.get(c.id)??{node:c,members:[]};S.members.push(u),d.set(c.id,S)}}let y=[...d.values()].map(({node:u,members:m})=>({value:u.id,heading:o[u.id]??i(u),members:m})).sort((u,m)=>u.heading.localeCompare(m.heading,void 0,{numeric:!0}));!s&&e[0]&&a(e[0])==="out"&&(s=(r.tryDefinition(e[0].kind)?.edges??{})[n.edge]?.to?.[0]);let f=s&&s!=="*"?Z(r.tryDefinition(s),s):void 0;return l.length>0&&y.push({value:null,...f?{heading:`No ${f}`}:{},members:l}),y}function ke(e){return e.t==="list"||e.t==="headline"||e.t==="number"||e.t==="image"&&e.as==="gallery"?!0:e.t==="group"?e.blocks.some(ke):e.t==="when"?e.show.some(ke):!1}function je(e,n){let o=e.tryDefinition(n)?.fields?.shape??{},r={};for(let[t,a]of Object.entries(o)){let d=L(a);d&&(r[t]=d)}return r}var Ge=new WeakMap;function $(e){let n=Ge.get(e);return n||Ge.set(e,n=ue(e)),n}function We(e,n,o,r={}){let t=$(e),a={},d={},l=i=>{if(i instanceof j)return i.nodes.map(s=>l(s));if(Array.isArray(i))return i.map(s=>l(s));if(i!==null&&typeof i=="object"){let s=i;return{id:s.id,kind:s.kind,label:X(e.tryDefinition(s.kind),s)}}return i};for(let[i,s]of t.get(o?o.kind:ee)?.computed??[])try{let y=[],f=E(s,{graph:n,subject:o,kinds:t,...r.today?{today:r.today}:{},...r.budget?{budget:r.budget}:{},...r.linked?{linked:r.linked}:{},onUnread:u=>y.push(u)});y.length>0&&(f===null||f instanceof j&&f.nodes.length===0)?d[i]=Q(y[0]):a[i]=l(f)}catch(y){if(!(y instanceof ne))throw y;d[i]=y.sentence}return{values:a,refused:d}}function On(e,n,o){let{values:r}=We(e,n,o);if(Object.keys(r).length===0)return o;let t=a=>Array.isArray(a)?a.map(t):a!==null&&typeof a=="object"?a.label:a;return{...o,...Object.fromEntries(Object.entries(r).map(([a,d])=>[a,t(d)]))}}var He=500,Ke=2e4,Te=new WeakMap;function Xe(e,n){let o=Te.get(e);o||Te.set(e,o=new Map);let r=o.get(n);return r||o.set(n,r=je(e,n)),r}function Bn(e,n,o,r={}){if(n&&typeof e.seenBy!="function")throw new TypeError("blockContextFor: a seat is read from a store (its `seenBy`); a bare { graph, schema } is read as it is handed, with no principal");let t=n?e.seenBy(n):e,a=n&&o?t.graph.getNode(o.id)??null:o,d=t.schema,l=a&&d.tryDefinition(a.kind),i=!a||(r.slot??"page")==="page",{money:s,firstHeading:y}=r;return{node:a,graph:t.graph,schema:d,kinds:$(d),fields:a?Xe(d,a.kind):{},definition:l||void 0,today:r.today??t.today?.()??W(s?.timeZone),money:s,heading:r.heading??(i?2:3),firstHeading:y,budget:r.budget??(i?Ke:He),...i?{}:{glance:!0}}}export{ge as a,Ye as b,Ee as c,qe as d,he as e,Se as f,wn as g,ke as h,We as i,On as j,Bn as k};
1
+ import{a as L}from"./chunk.4BBJ62ZO.js";import{a as ae,b as ie,c as de,d as se,e as M,f as V,g as le}from"./chunk.UCZR33MK.js";import{a as ue}from"./chunk.CC47O2DW.js";import{c as G,e as oe}from"./chunk.2IX3CZNP.js";import{a as j,b as Q,c as ee,d as ne,f as E,m as re,n as b,o as te,p as B}from"./chunk.6DHHUBSC.js";import{b as v,d as ye,e as fe,g as pe,h as me,i as ce}from"./chunk.Z7JRBKA7.js";import{Aa as J,Ab as Y,B as x,Bb as q,Cb as C,H as W,Q as H,T as P,Z as K,ba as X,ia as F,ka as Z,oa as T,pa as A,qa as z,ra as O,sa as N}from"./chunk.5ZMENPY4.js";var ge=e=>e.caption?.trim()||e.name,_=e=>A(e)?`${ge(e)}, ${z(e)}`:ge(e);function Ye(e){let n=Math.max(0,Math.round(e)),o=a=>String(a).padStart(2,"0"),r=Math.floor(n/3600),t=Math.floor(n%3600/60);return r>0?`${r}:${o(t)}:${o(n%60)}`:`${t}:${o(n%60)}`}function Ee(e){let n=e?.fields?.shape??{};return Object.keys(n).filter(o=>{let r=x(n[o]);for(;r?.innerType;)r=x(r.innerType);return N(n[o])!==void 0||r?.type==="array"&&N(r.element)!==void 0})}function qe(e,n){for(let o of Ee(n)){let r=O(e[o]).find(t=>T(t)||A(t));if(r)return r}}var R=e=>{try{return e()}catch{return null}},Re=e=>typeof e=="string"&&ae.includes(e);function Be(e){if(e!==void 0)return Re(e)?e:e&&typeof e=="object"&&typeof e.expr=="string"?{expr:R(()=>G(e.expr))}:"neutral"}var ve=4;function xe(e){let n=typeof e.list=="string"?R(()=>G(e.list)):null,o=e.sort,r=typeof o=="string"?o:o&&typeof o=="object"&&typeof o.by=="string"?o.by:void 0,t=o&&typeof o=="object"?o.direction:void 0,a=n,d;if(n&&r!==void 0)if(t==="choices")d=r;else{let f=R(()=>G(r));a=f?{t:"call",fn:"sort",args:[n,f,{t:"lit",value:t==="desc"?"desc":"asc",at:0}],at:0}:null}let l=typeof e.limit=="number"&&Number.isInteger(e.limit)&&e.limit>=1?Math.min(e.limit,M):void 0,i=e.group,s=typeof i=="string"?i:i&&typeof i=="object"&&typeof i.by=="string"?i.by:void 0,y=i&&typeof i=="object"&&i.headings&&typeof i.headings=="object"?i.headings:{};return{t:"list",source:a,...d?{choiceOrder:d}:{},...l?{limit:l}:{},...s?{group:{by:s,headings:Object.fromEntries(Object.entries(y).filter(f=>typeof f[1]=="string"))}}:{},...typeof e.empty=="string"?{empty:e.empty}:{},as:e.as==="card"?"card":"row"}}function he(e,n=1,o=""){if(!Array.isArray(e)||n>ve)return[];let r={};return e.flatMap(t=>{if(!t||typeof t!="object"||Array.isArray(t))return[];let a=t,d=p=>typeof p=="string"?R(()=>oe(p)):null,l=p=>typeof p=="string"?R(()=>G(p)):null,i=Be(a.tone),s=typeof a.label=="string"?a.label:void 0,y=p=>Object.hasOwn(a,p),f=typeof a.currency=="string"&&/^[A-Z]{3}$/.test(a.currency)?a.currency:void 0,u=y("list")?"list":y("headline")?"headline":typeof a.figure=="string"?"number":Pe.find(y);if(!u)return[];let m=r[u]=(r[u]??0)+1,c=a.key,S=typeof c=="string"&&c?c:`${o}${u}.${m}`;return[{...(()=>{switch(u){case"list":return xe(a);case"number":{let p=de.includes(a.as)?a.as:void 0,U=se.includes(a.emphasis)?a.emphasis:void 0;return{t:u,value:l(a.figure),...p?{as:p}:{},...f?{currency:f}:{},...s?{label:d(s)}:{},...U?{emphasis:U}:{}}}case"headline":case"title":return{t:u,parts:d(a[u])};case"text":case"badge":return{t:u,parts:d(a[u]),...i?{tone:i}:{}};case"field":{let p=ie.includes(a.as)?a.as:void 0;return{t:u,field:String(a.field),...p?{as:p}:{},...f?{currency:f}:{},...s?{label:s}:{}}}case"image":return{t:u,field:String(a.image),as:a.as==="gallery"?"gallery":"thumb",...s?{label:s}:{}};case"progress":{let p=a.progress??{};return{t:u,value:l(p.value),max:l(p.max),...s?{label:d(s)}:{}}}case"group":return{t:u,blocks:he(a.group,n+1,`${S}.`),direction:a.direction==="row"?"row":"column"};case"when":return{t:u,when:l(a.when),show:he(a.show,n+1,`${S}.`)};default:return{t:u}}})(),key:S}]})}var Pe=["title","text","badge","field","image","progress","group","when","divider","figure"],g="\u2014",Fe=500;function w(e,n){if(!e)return{ok:!1,problem:"an expression that does not parse"};try{return{ok:!0,value:E(e,{graph:n.graph??re,subject:n.node,kinds:n.kinds,today:n.today,budget:n.budget??Fe})}}catch(o){return{ok:!1,problem:o instanceof Error?o.message:String(o)}}}var Ne=(e,n,o)=>!e.format&&e.expr?.t==="ident"&&typeof o=="string"&&n.fields[e.expr.name]?.format==="markdown";function k(e,n,o){if(!e)return{text:g,problem:"a template that does not parse"};let r,t;return{text:e.map(d=>{if(d.text!==void 0)return d.text;let l=w(d.expr??null,n);if(!l.ok)return r??=`{${d.source??""}}: ${l.problem}`,g;if(Ne(d,n,l.value))return n.glance?ye(l.value,{markdown:!0}):o&&e.length===1?(t=!0,l.value):fe(l.value);let i=!d.format&&d.expr?.t==="ident"&&typeof l.value=="number"?Oe(n,d.expr.name):void 0;return te(d,i?C(l.value,i):b(l.value,d.format,n.today,d.formatArgs,n.money,B(n.schema)))}).join(""),...r?{problem:r}:{},...t?{markdown:t}:{}}}function be(e,n){if(e===void 0)return;if(typeof e=="string")return e;let o=w(e.expr,n);return o.ok&&Re(o.value)?o.value:"neutral"}function Ce(e){if(typeof e=="string")try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"?n.href:void 0}catch{return}}var Ae=(e,n)=>{let o=e.fields[n]?.type;return o==="phone"||o==="place"||o==="duration"?o:pe(e.definition,n)},Oe=(e,n)=>Y(e.definition?.fields?.shape?.[n]);function Me(e,n,o,r,t){if(n==null||n==="")return g;if(typeof n=="boolean")return n?"yes":"no";if(r)return b(n,r,o.today,[],t?{...o.money,currency:t}:o.money);let a=o.fields[e];if(o.definition?.display?.format?.[e])return v(o.definition,e,n);let d=me(Ae(o,e),n,o.money?.locale);if(d!==void 0)return d;if(a?.type==="date")return b(n,"date",o.today,[],o.money);if(a?.type==="datetime"&&typeof n=="string")return H(n,o.money?.locale,o.money?.timeZone);if(a?.type==="enum"&&typeof n=="string")return v(o.definition,e,n);let l=typeof n=="number"?Oe(o,e):void 0;if(l)return C(n,l);if(typeof n=="number")return P(n,o.money?.locale,{});let i=O(n);return i[0]?i.map(_).join(", "):Array.isArray(n)?n.map(s=>String(s)).join(", "):typeof n=="object"?g:String(n)}function Ve(e,n,o,r,t){return typeof e!="number"?String(e):n==="money"?q(e,o?{...t,currency:o}:t):n==="percent"?b(e,n,r,[],t):P(e,t?.locale)}var h=(e,n)=>n?{...e,problem:n}:e;function we(e){return e.firstHeading===void 0?e:{...e,firstHeading:void 0}}function Le(e,n,o){switch(e.t){case"title":{let r=k(e.parts,n);return h({t:"title",text:r.text},r.problem)}case"text":{let r=k(e.parts,n,!0),t=be(e.tone,n);return h({t:"text",text:r.text,...t?{tone:t}:{},...r.markdown?{markdown:r.markdown}:{}},r.problem)}case"badge":{let r=k(e.parts,n);return h({t:"badge",text:r.text,tone:be(e.tone,n)??"neutral"},r.problem)}case"field":{let r=e.label??F(n.definition,e.field);if(!n.node)return{t:"field",field:e.field,label:r,text:g,problem:`"${e.field}" names a field, and these blocks are about no one record`};let t=e.as===void 0?n.kinds.get(n.node.kind)?.linked?.get(e.field):void 0;if(t){let f=J(Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0,t);return{t:"field",field:e.field,label:r,text:f.length>0?"linked record":g,...f.length>0?{linked:{relation:t,refs:f}}:{}}}let a=n.kinds.get(n.node.kind)?.computed?.has(e.field),d,l;if(a){let f=w({t:"ident",name:e.field,at:0},n);f.ok?d=f.value!==null&&typeof f.value=="object"?b(f.value,void 0,n.today,[],n.money,B(n.schema)):f.value:l=f.problem}else d=Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0;let i=e.as!==void 0?void 0:n.fields[e.field]?.type==="url"?Ce(d):ce(Ae(n,e.field),d),s=R(()=>Me(e.field,d,n,e.as,e.currency))??g,y=n.fields[e.field]?.type==="app-link"&&e.as===void 0&&typeof d=="string"?d:void 0;return h({t:"field",field:e.field,label:r,text:s,...i?{href:i}:{},...y?{app:y}:{}},l)}case"image":{let r=O(n.node&&Object.hasOwn(n.node,e.field)?n.node[e.field]:null),t=e.as==="gallery"?r:r.filter(a=>T(a)||A(a)).slice(0,1);return{t:"image",field:e.field,label:e.label??F(n.definition,e.field),as:e.as,files:t,text:t.map(_).join(", ")||g}}case"progress":{let r=w(e.value,n),t=w(e.max,n),a=e.label?k(e.label,n):{text:"Progress"},d=a.text,l=r.ok?t.ok?a.problem:t.problem:r.problem;return r.ok&&t.ok&&typeof r.value=="number"&&typeof t.value=="number"&&Number.isFinite(r.value)&&Number.isFinite(t.value)&&t.value>0?h({t:"progress",label:d,value:r.value,max:t.value,text:`${b(r.value,void 0,n.today)} of ${b(t.value,void 0,n.today)}`},l):h({t:"progress",label:d,text:g},l)}case"group":return{t:"group",direction:e.direction,blocks:Se(e.blocks,we(n))};case"when":{let r=w(e.when,n),t=r.ok&&r.value===!0;return h({t:"when",shown:t,blocks:t?Se(e.show,we(n)):[]},r.ok?void 0:r.problem)}case"divider":return{t:"divider"};case"figure":return{t:"figure"};case"headline":{let r=k(e.parts,n),t=Math.min(6,Math.max(1,(o?n.firstHeading:void 0)??n.heading??3));return h({t:"headline",level:t,text:r.text},r.problem)}case"number":{let r=w(e.value,n),t=!r.ok||r.value===null||typeof r.value=="object"?g:Ve(r.value,e.as,e.currency,n.today,n.money),a=e.label?k(e.label,n):void 0;return h({t:"number",text:t,...a?{label:a.text}:{},...e.emphasis?{emphasis:e.emphasis}:{}},r.ok?a?.problem:r.problem)}case"list":return Ie(e,n)}}function Se(e,n){let o=e.findIndex(r=>r.t==="headline");return e.map((r,t)=>({...Le(r,n,t===o),key:r.key}))}var _e=new Set(["every","some","sum","min","max","sort"]);function wn(e,n){let o=new Set,r=new Set,t=i=>{if(i)switch(i.t){case"ident":o.add(i.name);return;case"list":i.items.forEach(t);return;case"member":return t(i.object);case"unary":return t(i.operand);case"binary":return t(i.left),t(i.right);case"where":return t(i.set);case"call":i.args.forEach((s,y)=>{y===1&&_e.has(i.fn)||t(s)});return;default:return}},a=i=>{for(let s of i??[])t(s.expr)},d=(i,s)=>{i.forEach((y,f)=>{let u=s[f];if(u)switch(y.t){case"field":case"image":o.add(y.field);return;case"title":case"text":case"badge":case"headline":a(y.parts);return;case"number":t(y.value),a(y.label);return;case"progress":t(y.value),t(y.max);return;case"group":u.t==="group"&&d(y.blocks,u.blocks);return;case"when":u.t==="when"&&u.shown&&d(y.show,u.blocks);return;case"list":if(u.t==="list")for(let m of u.members)r.add(m.id);return;default:return}})};d(e,n);let l=n[0];return{fields:o,records:r,...e[0]?.t==="title"&&l?.t==="title"?{title:l.text}:{}}}function Ie(e,n){let o=Math.min(6,(n.heading??3)+1),r=w(e.source,n);if(!r.ok)return{t:"list",as:e.as,failed:!0,members:[],headingLevel:o,more:0,problem:r.problem};let t=r.value,a=t instanceof j?t.nodes:t!==null&&typeof t=="object"&&!Array.isArray(t)?[t]:[];e.choiceOrder&&n.schema&&(a=De(a,e.choiceOrder,n.schema));let d=a.length,l=a.slice(0,e.limit??M),i=l.slice(0,V),s=l.slice(V),y=(e.limit===void 0?d:l.length)-i.length,f=c=>e.group&&n.schema&&c.length>0?$e(c,e.group,n.schema,n.graph):void 0,u=f(i),m=s.length>0?f(l):void 0;return{t:"list",as:e.as,failed:!1,members:i,...s.length>0?{rest:s}:{},...u?{groups:u}:{},...m?{everyGroup:m}:{},headingLevel:o,...i.length===0&&e.empty?{empty:e.empty}:{},more:y,total:d}}function I(e,n,o){let r=e.tryDefinition(n)?.fields?.shape,t=r&&Object.hasOwn(r,o)?L(r[o]):void 0;return t?.type==="enum"?t.options??[]:[]}var D=(e,n)=>Object.hasOwn(e,n)?e[n]:void 0;function De(e,n,o){let r=t=>{let a=I(o,t.kind,n).indexOf(String(D(t,n)));return a<0?Number.MAX_SAFE_INTEGER:a};return e.map((t,a)=>({node:t,i:a,rank:r(t)})).sort((t,a)=>t.rank-a.rank||t.i-a.i).map(t=>t.node)}function $e(e,n,o,r){let t=e.some(i=>I(o,i.kind,n.by).length>0)?void 0:le(n.by);if(t&&r)return Ue(e,t,n.headings,o,r);let a=[];for(let i of e)for(let s of I(o,i.kind,n.by))a.includes(s)||a.push(s);let d=[];for(let i of a){let s=e.filter(f=>D(f,n.by)===i);if(s.length===0)continue;let y=o.tryDefinition(s[0].kind);d.push({value:i,heading:n.headings[i]??K(v(y,n.by,i)),members:s})}let l=e.filter(i=>!a.includes(String(D(i,n.by))));return l.length>0&&d.push({value:null,members:l}),d}function Ue(e,n,o,r,t){let a=u=>n.way??(Object.hasOwn(r.tryDefinition(u.kind)?.edges??{},n.edge)?"out":"in"),d=new Map,l=[],i=B(r),s;for(let u of e){let m=a(u)==="out"?t.out(u.id,n.edge):t.in(u.id,n.edge);m.length===0&&l.push(u);for(let c of m){s??=c.kind;let S=d.get(c.id)??{node:c,members:[]};S.members.push(u),d.set(c.id,S)}}let y=[...d.values()].map(({node:u,members:m})=>({value:u.id,heading:o[u.id]??i(u),members:m})).sort((u,m)=>u.heading.localeCompare(m.heading,void 0,{numeric:!0}));!s&&e[0]&&a(e[0])==="out"&&(s=(r.tryDefinition(e[0].kind)?.edges??{})[n.edge]?.to?.[0]);let f=s&&s!=="*"?Z(r.tryDefinition(s),s):void 0;return l.length>0&&y.push({value:null,...f?{heading:`No ${f}`}:{},members:l}),y}function ke(e){return e.t==="list"||e.t==="headline"||e.t==="number"||e.t==="image"&&e.as==="gallery"?!0:e.t==="group"?e.blocks.some(ke):e.t==="when"?e.show.some(ke):!1}function je(e,n){let o=e.tryDefinition(n)?.fields?.shape??{},r={};for(let[t,a]of Object.entries(o)){let d=L(a);d&&(r[t]=d)}return r}var Ge=new WeakMap;function $(e){let n=Ge.get(e);return n||Ge.set(e,n=ue(e)),n}function We(e,n,o,r={}){let t=$(e),a={},d={},l=i=>{if(i instanceof j)return i.nodes.map(s=>l(s));if(Array.isArray(i))return i.map(s=>l(s));if(i!==null&&typeof i=="object"){let s=i;return{id:s.id,kind:s.kind,label:X(e.tryDefinition(s.kind),s)}}return i};for(let[i,s]of t.get(o?o.kind:ee)?.computed??[])try{let y=[],f=E(s,{graph:n,subject:o,kinds:t,...r.today?{today:r.today}:{},...r.budget?{budget:r.budget}:{},...r.linked?{linked:r.linked}:{},onUnread:u=>y.push(u)});y.length>0&&(f===null||f instanceof j&&f.nodes.length===0)?d[i]=Q(y[0]):a[i]=l(f)}catch(y){if(!(y instanceof ne))throw y;d[i]=y.sentence}return{values:a,refused:d}}function On(e,n,o){let{values:r}=We(e,n,o);if(Object.keys(r).length===0)return o;let t=a=>Array.isArray(a)?a.map(t):a!==null&&typeof a=="object"?a.label:a;return{...o,...Object.fromEntries(Object.entries(r).map(([a,d])=>[a,t(d)]))}}var He=500,Ke=2e4,Te=new WeakMap;function Xe(e,n){let o=Te.get(e);o||Te.set(e,o=new Map);let r=o.get(n);return r||o.set(n,r=je(e,n)),r}function Bn(e,n,o,r={}){if(n&&typeof e.seenBy!="function")throw new TypeError("blockContextFor: a seat is read from a store (its `seenBy`); a bare { graph, schema } is read as it is handed, with no principal");let t=n?e.seenBy(n):e,a=n&&o?t.graph.getNode(o.id)??null:o,d=t.schema,l=a&&d.tryDefinition(a.kind),i=!a||(r.slot??"page")==="page",{money:s,firstHeading:y}=r;return{node:a,graph:t.graph,schema:d,kinds:$(d),fields:a?Xe(d,a.kind):{},definition:l||void 0,today:r.today??t.today?.()??W(s?.timeZone),money:s,heading:r.heading??(i?2:3),firstHeading:y,budget:r.budget??(i?Ke:He),...i?{}:{glance:!0}}}export{ge as a,Ye as b,Ee as c,qe as d,he as e,Se as f,wn as g,ke as h,We as i,On as j,Bn as k};