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
@@ -0,0 +1,32 @@
1
+ import{a as zt,b as Bt,c as It,d as In}from"./chunk.QEXXLWEU.js";import{a as Dt}from"./chunk.BEC5ZH2L.js";import{a as zn,b as Rt,c as Bn,d as Et,e as Mt,f as Lt}from"./chunk.SK33IHL2.js";import{c as Wt,g as Ht,h as Vt}from"./chunk.6HBEYRJU.js";import{e as Ct}from"./chunk.C6X7CKU6.js";import{a as Tt,b as dn,c as Pt,d as Nt}from"./chunk.FILCNVGH.js";import{b as wt,c as de,d as be,e as Pe}from"./chunk.ZTMDU3OH.js";import{m as At}from"./chunk.GXKECZ4S.js";import{a as Ot,b as $t}from"./chunk.6XU2CXRZ.js";import{f as St,h as kt}from"./chunk.3ZNQ5YKX.js";import{e as xt}from"./chunk.7EFNLMKU.js";import{e as vt}from"./chunk.KJNUZYXS.js";import{l as bt,m as Dn}from"./chunk.HHUCPVG5.js";import{m as Pn,n as Nn}from"./chunk.NSNGPQGT.js";import{k as je,m as yt}from"./chunk.ORXFUK6F.js";import{G as Ne,R as ee,T as pt,_ as ae,aa as ft,l as Ze,va as ht,wa as en}from"./chunk.BTSXYZ6Z.js";import{$c as mt,Fc as Tn,Ma as lt,Nb as ut,Qa as st,Ra as dt,Sa as ct,U as tt,V as rt,W as En,X as at,Y as Je,Zb as fe,aa as Ve,ba as ve,ea as Ge,fa as ln,ga as it,ia as Mn,ja as ot,ka as sn,lb as Ln,mc as Xe,nc as gt,sc as Ae}from"./chunk.5ZMENPY4.js";import{b as Y}from"./chunk.AJZBJBMO.js";var Wn=Y(ee(),1);function De(e,t,n){let r=e.nodes?.length??0;if(e.total===void 0||e.total<=r)return n;let a=e.nodes?.[0]?.kind,i=a?ln(t,a).toLowerCase():"more";return(0,Wn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,Wn.jsxs)("p",{"data-testid":"lens-more",style:{margin:"4px 0 0",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["+",e.total-r," more ",i]})]})}var Gt=Y(ee(),1),Nr=(e,t)=>{if(e===!1||t===!1)return!1;let n=e===void 0||e===!0?{}:e,r=t===void 0||t===!0?{}:t;return{sort:n.sort!==!1&&r.sort!==!1,filter:n.filter!==!1&&r.filter!==!1,group:n.group!==!1&&r.group!==!1}},Dr=["sort","filter","group","q","archived"];function Re(e,t={}){let{store:n}=ae(),{view:r,go:a}=en(),s=Dr.some(E=>r.within?.[E]!==void 0)?Ot(r):t.arrangedBy??{},p=e.nodes??[],g=t.kind??p[0]?.kind??e.node?.kind,b=s.archived!==void 0&&s.archived!==!1&&g!==void 0&&!t.subject?n.graph.nodesOfKind(g,{archived:s.archived}):p,d=t.subject??(t.only?b.filter(t.only):b),h=t.subject?[]:t.only?b.filter(E=>!t.only(E)):[],f=t.kind??d[0]?.kind,l=Nr(t.allow,t.lensAllows),c=f?xt(n.schema,String(f)):void 0,S=c?St(s,c).arrangement:{},u=kt(d,l===!1?{}:S,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[]),...t.search?{searchIn:t.search}:{}}),x=e.retired!==void 0&&e.retired>0&&(p[0]?.kind??f)===f?e.retired:0,A=f&&l!==!1&&e.fidelity==="full"&&e.budget===void 0&&(d.length>1||x>0)?(0,Gt.jsx)(At,{schema:n.schema,graph:n.graph,kind:String(f),arrangement:S,allow:l,query:t.query!==!1,...t.filters?{filters:t.filters,chips:{nodes:d,flagged:new Set(e.flagged??[])}}:{},onChange:E=>a($t(r,E)),kept:{shown:u.nodes.length,of:d.length},...x>0?{past:{count:x,widen:()=>a(Ct(r,!0))}}:{}}):null;return{nodes:[...h,...u.nodes],arranged:u,arrangement:S,bar:A}}function qe(e,t,n){let r=new Set((n??[]).map(i=>i.kind)),a=new Set((n??[]).map(i=>i.id));return e.allNodes().filter(i=>r.has(i.kind)?a.has(i.id):Ve(t.tryDefinition(i.kind),i))}var ze=Y(Ne(),1);var j=Y(ee(),1),zr=["slots","x","y","fill"],cn=class extends Error{constructor(n,r){super(`${n}
2
+ ${r}`);this.hint=r;this.name="BoardBindingError"}},jt=e=>Math.max(0,Math.min(1,e));function Hn(e,t,n,r){let a=c=>c,i=c=>r?ve(r.tryDefinition(c.kind),c):String(a(c).label??c.id);if(r&&r.tryDefinition(n.slots)===void 0)throw new cn(`No kind is declared for "${n.slots}".`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let s=e.filter(c=>c.kind===n.slots);if(!r&&s.length===0)throw new cn(`Nothing to arrange: no "${n.slots}" nodes.`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let p=t.filter(c=>c.kind===n.fill),g=new Map(e.map(c=>[c.id,c])),b=new Map(e.map((c,S)=>[c.id,S])),d=s.map(c=>{let S=a(c),u=n.fillFrom==="occupant",x=p.filter(A=>(u?A.to:A.from)===c.id).map(A=>g.get(u?A.from:A.to)).filter(A=>A!==void 0).sort((A,E)=>(b.get(A.id)??0)-(b.get(E.id)??0)).map(A=>({id:A.id,label:i(A)}));return{id:c.id,code:String(S[n.slotCode??""]??"").trim()||i(c),label:i(c),x:jt(Number(S[n.x]??.5)),y:jt(Number(S[n.y]??.5)),occupants:x}}).sort((c,S)=>c.y-S.y||c.x-S.x),h=new Set(d.flatMap(c=>c.occupants.map(S=>S.id))),f=new Set([...h].map(c=>g.get(c)?.kind).filter(c=>c!==void 0)),l=e.filter(c=>f.has(c.kind)&&!h.has(c.id)).map(c=>({id:c.id,label:i(c)})).sort((c,S)=>c.label<S.label?-1:c.label>S.label?1:0);return{slots:d,empty:d.filter(c=>c.occupants.length===0).map(c=>c.id),spare:l}}function Br({nodes:e,occupants:t,label:n,fidelity:r,mode:a,options:i,schema:s,implicated:p=[],flagged:g=[]}){let{store:b}=ae(),d=qe(b.graph,b.schema,e),h=t?[...d.filter(o=>o.kind===i.slots),...t.map(o=>b.graph.getNode(o)).filter(o=>o!==void 0)]:d,f=Hn(h,b.graph.allEdges(),i,s),l=new Set(p),c=new Set(g),S=ht(),u=new Map;for(let o of S)for(let O of o.nodeIds)u.set(O,[...u.get(O)??[],o.message]);let x=o=>o?u.get(o)??[]:[];if(r==="glyph")return(0,j.jsx)(be,{label:`${n??"Board"} \xB7 ${f.slots.length-f.empty.length}/${f.slots.length}`,hue:fe("board")});if(r==="summary"){let o=f.slots.filter(O=>f.empty.includes(O.id));return(0,j.jsx)(de,{title:n??"Board",meta:`${f.slots.length-f.empty.length}/${f.slots.length}`,tone:o.length>0?"warning":"muted",fit:!0,children:o.length>0?(0,j.jsx)(Pe,{pick:!0,max:5,items:o.map(O=>({id:O.id,label:O.code}))}):(0,j.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"Every slot filled."})})}let A=i.aspect??.68,E=(0,ze.useRef)(null),[z,w]=(0,ze.useState)(!1),[C,m]=(0,ze.useState)(null),M=160,[D,H]=(0,ze.useState)(!1);(0,ze.useEffect)(()=>{let o=E.current;if(!o||typeof ResizeObserver>"u")return;let O=new ResizeObserver(P=>{let N=P[0]?.contentRect;if(!N)return;let y=N.height<M;H(y),w(!y&&A<1&&N.width/N.height>1.3),m(y?null:N.height)});return O.observe(o),()=>O.disconnect()},[A]);let k=(o,O)=>z?{x:1-O,y:o}:{x:o,y:O},F=(()=>{let o=new Map,O=(P,N,y)=>{let $=o.get(y)??{ids:[],codes:[]};$.ids.includes(P)||($.ids.push(P),$.codes.includes(N)||$.codes.push(N)),o.set(y,$)};for(let P of f.slots){for(let N of x(P.id))O(P.id,P.code,N);for(let N of P.occupants)for(let y of x(N.id))O(N.id,N.label,y)}return[...o.entries()].map(([P,N])=>({id:N.ids[0],code:N.codes.join(", "),text:P}))})(),T=a==="fullscreen",Q=F.length===0?null:(0,j.jsxs)("ul",{"data-graview-primitive":"board-key",style:{margin:"2px 0 0",padding:0,listStyle:"none",display:"grid",gap:3,flex:"0 0 auto"},children:[F.slice(0,T?6:2).map(o=>(0,j.jsxs)("li",{"data-graview-pick":o.id,"data-graview-emphasis":l.size===0?"plain":l.has(o.id)?"lit":"dimmed",title:o.text,style:{display:T?"grid":"flex",gap:T?1:7,alignItems:T?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:T?"2px 0":"3px 6px",marginLeft:T?0:-6,borderRadius:7,cursor:"pointer"},children:[(0,j.jsxs)("span",{style:{flex:"0 0 auto",fontWeight:600,color:"var(--graview-warn)",letterSpacing:"0.02em"},children:["\u26A0 ",o.code]}),(0,j.jsx)("span",{style:{minWidth:0,...T?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:o.text})]},o.id)),F.length>(T?6:2)?(0,j.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",F.length-(T?6:2)," more"]}):null]}),se=i.arrange==="shelf",oe=f.slots.every(o=>o.code.length<=3&&!/\s/.test(o.code)),J=(o,O)=>{let P=o.occupants.length===0,N=l.size>0&&!l.has(o.id)&&!o.occupants.some(G=>l.has(G.id)),y=c.has(o.id),$=o.occupants.some(G=>c.has(G.id)),L=y,K=[...x(o.id),...o.occupants.flatMap(G=>x(G.id))],Z=o.occupants.length===1?o.occupants[0]:null,le=i.pickTarget==="slot"?o.id:Z?Z.id:o.id,V=G=>Z?{}:{"data-graview-pick":G.id,"data-graview-emphasis":l.size===0?"plain":N?"dimmed":"lit"},he=G=>c.has(G.id)?"var(--graview-warn)":"var(--graview-ink-muted)",_=i.emptyLabel??"empty";return(0,j.jsxs)("div",{"data-graview-pick":le,"data-graview-slot":o.id,"data-graview-mark":oe?"disc":"token","data-graview-flagged":y&&$?"both":y?"slot":$?"occupant":void 0,"data-graview-emphasis":l.size===0?"plain":N?"dimmed":"lit",title:[P?`${o.label} \u2014 nobody in it`:`${o.occupants.map(G=>G.label).join(", ")} at ${o.label}`,...K].join(`
3
+ `),style:{...O,display:"grid",justifyItems:oe?"center":"start",gap:3,opacity:N?.5:1,transition:"opacity 160ms ease"},children:[oe?(0,j.jsxs)("span",{style:{position:"relative",width:34,height:34,borderRadius:999,display:"grid",placeItems:"center",fontSize:"0.75rem",letterSpacing:"0.02em",border:P?"1.5px dashed var(--graview-warn)":`1px solid ${L?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:P?"transparent":L?"var(--graview-panel-warning)":"var(--graview-panel)",color:P||L?"var(--graview-warn)":"var(--graview-ink)",boxShadow:P?void 0:"var(--graview-lift-low)"},children:[o.code,y&&!P?(0,j.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-3,right:-3,fontSize:"0.6875rem",lineHeight:1,color:"var(--graview-warn)"},children:"\u26A0"}):null]}):(0,j.jsxs)("span",{style:{display:"grid",gap:1,minWidth:0,maxWidth:180,padding:"5px 10px 6px",borderRadius:8,border:P?"1.5px dashed var(--graview-warn)":`1px solid ${L?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:P?"transparent":L?"var(--graview-panel-warning)":"var(--graview-panel)",boxShadow:P?void 0:"var(--graview-lift-low)"},children:[(0,j.jsxs)("span",{style:{fontSize:"0.8125rem",fontWeight:550,lineHeight:1.25,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:P||L?"var(--graview-warn)":"var(--graview-ink)"},children:[o.code,y&&!P?" \u26A0":null]}),P?(0,j.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.3,color:"var(--graview-warn)"},children:_}):(0,j.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:"0 8px",fontSize:"0.75rem",lineHeight:1.3},children:o.occupants.map(G=>(0,j.jsxs)("span",{...V(G),style:{whiteSpace:"nowrap",color:he(G)},children:[G.label,c.has(G.id)?" \u26A0":""]},G.id))})]}),oe?P?(0,j.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:_}):o.occupants.map(G=>(0,j.jsxs)("span",{...V(G),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:he(G)},children:[G.label,c.has(G.id)?" \u26A0":""]},G.id)):null]},o.id)},ce=i.zones??[],ue=ce.map((o,O)=>({label:o.label,slots:f.slots.filter(P=>P.y>=o.from&&(P.y<o.to||O===ce.length-1&&P.y<=o.to))})),W=new Set(ue.flatMap(o=>o.slots.map(O=>O.id))),R=f.slots.filter(o=>!W.has(o.id));(R.length>0||ue.length===0)&&ue.push({label:"",slots:R});let v={boxSizing:"border-box",borderRadius:12,border:"1px solid var(--graview-edge)",background:"linear-gradient(var(--graview-panel-muted), var(--graview-panel-muted)), var(--graview-panel)",overflow:"hidden"};return(0,j.jsxs)(de,{title:n??"Board",meta:f.slots.length===0?void 0:f.empty.length===0?`all ${f.slots.length} filled`:`${f.empty.length} unfilled`,...T?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:[(0,j.jsxs)("div",{ref:E,style:{display:"flex",gap:28,alignItems:"stretch",justifyContent:"center",flex:"1 1 auto",minHeight:0},children:[T&&Q?(0,j.jsxs)("div",{style:{width:260,flex:"0 0 auto",alignSelf:"center",display:"grid",gap:8},children:[(0,j.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"What is marked"}),Q]}):null,se?(0,j.jsx)("div",{"data-graview-primitive":"board","data-graview-arrange":"shelf",style:{...v,overflow:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"stretch",display:"grid",alignContent:"start"},children:ue.map((o,O)=>(0,j.jsxs)("section",{"data-graview-zone":o.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...O>0?{borderTop:"1px dashed var(--graview-edge)"}:{}},children:[o.label?(0,j.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:o.label}):null,o.slots.length>0?(0,j.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 12px",alignItems:"flex-start"},children:o.slots.map(P=>J(P,{}))}):(0,j.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},o.label||`band-${O}`))}):(0,j.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...D?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!z&&ce.length>0?(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:ce.map(o=>(0,j.jsx)("span",{title:o.label,style:{position:"absolute",top:`${o.from*100}%`,height:`${(o.to-o.from)*100}%`,right:0,writingMode:"vertical-rl",transform:"rotate(180deg)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:o.label},o.label))}):null,(0,j.jsxs)("div",{"data-graview-primitive":"board","data-graview-arrange":"exact",style:{...v,position:"relative",aspectRatio:`${z?1/A:A}`,...D?{width:"100%",height:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"flex-start"}:{height:"100%",flex:"0 1 auto",...C!==null?{width:Math.round(C*(z?1/A:A))}:{}},maxWidth:"100%"},children:[ce.map(o=>(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",...z?{top:0,bottom:0,left:`${(1-o.to)*100}%`,width:`${(o.to-o.from)*100}%`,borderLeft:"1px dashed var(--graview-edge)"}:{left:0,right:0,top:`${o.from*100}%`,height:`${(o.to-o.from)*100}%`,borderBottom:"1px dashed var(--graview-edge)"}}},o.label)),z?ce.map(o=>(0,j.jsx)("span",{"aria-hidden":"true",title:o.label,style:{position:"absolute",bottom:3,left:`${(1-o.to)*100}%`,width:`${(o.to-o.from)*100}%`,textAlign:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:o.label},`label-${o.label}`)):null,f.slots.map(o=>J(o,{position:"absolute",left:`${k(o.x,o.y).x*100}%`,top:`${k(o.x,o.y).y*100}%`,transform:"translate(-50%, -50%)",width:"max-content",maxWidth:"100%"}))]})]}),f.spare.length>0?(0,j.jsxs)("div",{style:{display:"grid",gap:6,alignContent:"start",minWidth:0},children:[(0,j.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"Not in"}),(0,j.jsx)(Pe,{pick:!0,max:10,items:f.spare.map(o=>({...o,emphasis:l.size===0?"plain":l.has(o.id)?"lit":"dimmed"}))})]}):null]}),T?null:Q]})}function qt(e){function t(n){let{store:r}=ae(),a=Hn(qe(r.graph,r.schema,n.nodes),r.graph.allEdges(),e,r.schema),s=[...a.slots.flatMap(d=>d.occupants.map(h=>h.id)),...a.spare.map(d=>d.id)].map(d=>r.graph.getNode(d)).filter(d=>d!==void 0),{arranged:p,bar:g}=Re(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},subject:s}),b=(0,j.jsx)(Br,{schema:r.schema,...n,options:e,...e.arranging===!1?{}:{occupants:p.nodes.map(d=>d.id)}});return De(n,r.schema,g?(0,j.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[g,b]}):b)}return{name:"board",requiredRoles:[...zr],options:e,View:t,build(n,r,a){return Hn(n,r,e,a)}}}var vn=Y(Ne(),1);var Ft=864e5;function Vn(e){if(typeof e!="string")return null;if(Pn(e))return Nn(e)?.day??null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:null}function gn(e){if(typeof e!="string")return null;if(Pn(e))return Nn(e)?.minutes??null;let t=/^\d{4}-\d{2}-\d{2}[T ](\d{2}):(\d{2})/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}var un=e=>Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),mn=e=>new Date(e).toISOString().slice(0,10);function xe(e,t){return mn(un(e)+t*Ft)}function We(e,t){let n=Number(e.slice(0,4)),r=Number(e.slice(5,7))-1+t,a=Number(e.slice(8,10)),i=new Date(Date.UTC(n,r+1,0)).getUTCDate();return mn(Date.UTC(n,r,Math.min(a,i)))}var Gn=e=>new Date(un(e)).getUTCDay();function Fe(e,t=1){let n=(Gn(e)-t+7)%7;return xe(e,-n)}var jn=e=>`${e.slice(0,7)}-01`;function pe(e,t){return Math.round((un(t)-un(e))/Ft)}function _e(e,t){return Array.from({length:t},(n,r)=>xe(e,r))}var _t=e=>at(e,"short"),Ee=e=>tt(e,{weekday:"short"}),qn=e=>Je(e);function He(e,t){let n=t?.fieldRoles?.when;return e&&!e.start&&n?{...e,start:n}:e}function Ut(e,t){return t===void 0?!1:typeof t=="string"?e[t]===!0:t.is.includes(e[t.field])}var pn=["start"],Ir=["day","week","month","quarter","year","agenda"];function fn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:Ir}function Kt(e,t){return e==="years"?t?.title??"Years":`The ${e}`}function Yt(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var Fn=class extends Error{constructor(n,r){super(`The calendar lens has no binding for ${r.map(a=>`"${a}"`).join(", ")} on "${n}". Bind them in the lens declaration: bindings: { ${n}: { start: "<field>" } }.`);this.kind=n;this.missing=r;this.name="CalendarBindingError"}};function hn(e,t,n){let r=He(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=pn.filter(h=>{let f=r[h];return f?i?!(f in i):!(f in a):!0});if(s.length>0)throw new Fn(e.kind,s);let p=Vn(a[r.start]);if(p===null)return null;let g=(r.end?Vn(a[r.end]):null)??p,b=gn(a[r.start]),d=r.label?a[r.label]:void 0;return{id:e.id,kind:e.kind,label:typeof d=="string"&&d.length>0?d:ve(n?.tryDefinition(e.kind),e),from:p,to:pe(p,g)<0?p:g,at:r.allDay&&a[r.allDay]===!0?null:b,allDay:r.allDay&&a[r.allDay]===!0||b===null,done:Ut(a,r.done)}}function Qt(e,t,n,r){let a=hn(e,t,n);if(!a)return[];let i=He(t[e.kind],n?.tryDefinition(e.kind)).start,s=e,p=s[i],g=s[lt(i)];if(typeof p!="string"||!st(g))return[a];let b=pe(a.from,a.to);return("next"in r?[ct(p,g,r.next)]:dt(p,g,{from:xe(r.from,-b),to:r.to,limit:400})).map(h=>({...a,from:h.slice(0,10),to:xe(h.slice(0,10),b),repeats:!0}))}function yn(e,t){return e.filter(n=>pe(n.from,t)>=0&&pe(t,n.to)>=0).sort((n,r)=>n.allDay!==r.allDay?n.allDay?-1:1:n.at!==r.at?(n.at??0)-(r.at??0):n.label.localeCompare(r.label))}function Jt(e,t,n){let r=ut(e.schema,e.allMutations()).get(t)?.get(n)??[],a=new Map(e.allMutations().map(s=>[s.name,s]));for(let s of r){let p=a.get(s),g=p?.subject;if(!p||!g)continue;let b=p.input?.shape??{};if(n in b)return{name:p.name,arg:g.arg}}let i=e.allMutations().find(s=>s.derived?.act==="edit"&&s.derived.kind===t);return i?.subject?{name:i.name,arg:i.subject.arg}:null}var Xt=(e,t)=>({from:jn(e),to:Zt(e),label:En(e,{short:!0,year:t})});function Zt(e){return mn(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function Wr(e){let t=Math.floor((Number(e.slice(5,7))-1)/3);return`${e.slice(0,4)}-${String(t*3+1).padStart(2,"0")}-01`}function er(e,t,n={}){let r=n.weekStartsOn??1,a=(g,b)=>({from:g,to:g,label:String(Number(g.slice(8,10))),...b?{outside:!0}:{}});if(e==="day")return{title:Ee(t),grain:"day",columns:1,cells:[a(t)]};if(e==="week"){let g=Fe(t,r);return{title:`${Ee(g)} \u2013 ${Ee(xe(g,6))}`,grain:"day",columns:7,cells:_e(g,7).map(b=>a(b))}}if(e==="agenda")return{title:`From ${Ee(t)}`,grain:"day",columns:1,cells:_e(t,42).map(g=>a(g))};if(e==="quarter"){let g=Wr(t),b=Zt(We(g,2)),d=[];for(let h=Fe(g,r);pe(h,b)>=0;h=xe(h,7))d.push({from:h,to:xe(h,6),label:rt(h),...pe(h,g)>0&&pe(xe(h,6),g)>0?{outside:!0}:{}});return{title:`Q${Math.floor((Number(t.slice(5,7))-1)/3)+1} ${t.slice(0,4)}`,grain:"week",columns:4,cells:d}}if(e==="year"){let g=t.slice(0,4);return{title:g,grain:"month",columns:4,cells:Array.from({length:12},(b,d)=>Xt(`${g}-${String(d+1).padStart(2,"0")}-01`,!1))}}if(e==="years"){let g=Number(t.slice(0,4)),b=g+Math.max(1,n.horizon?.years??1)-1,d=n.horizon?.from!==void 0||n.horizon?.to!==void 0,h=d?n.horizon?.from??g:Math.min(g,n.fit?.first??g),l=(d?Math.max(h,n.horizon?.to??h+Math.max(1,n.horizon?.years??1)-1):Math.max(b,n.fit?.last??b))-h+1,c=Array.from({length:l},(S,u)=>String(h+u));return l>Hr?{title:`${n.horizon?.title??"Years"} \xB7 ${c[0]}\u2013${c[c.length-1]}`,grain:"year",columns:5,years:c,cells:c.map(S=>({from:`${S}-01-01`,to:`${S}-12-31`,label:S}))}:{title:`${n.horizon?.title??"Years"} \xB7 ${c[0]}\u2013${c[c.length-1]}`,grain:"month",columns:4,years:c,cells:c.flatMap(S=>Array.from({length:12},(u,x)=>Xt(`${S}-${String(x+1).padStart(2,"0")}-01`,!0)))}}let i=jn(t),s=Fe(i,r),p=t.slice(0,7);return{title:En(t),grain:"day",columns:7,cells:_e(s,42).map(g=>a(g,g.slice(0,7)!==p))}}function nr(e,t,n){return e.filter(r=>pe(r.from,n)>=0&&pe(t,r.to)>=0).sort((r,a)=>r.allDay!==a.allDay?r.allDay?-1:1:r.from!==a.from?r.from.localeCompare(a.from):r.at!==a.at?(r.at??0)-(a.at??0):r.label.localeCompare(a.label))}var Hr=10;function tr(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var rr=Y(Ne(),1);var te=Y(ee(),1);function _n({label:e,glyph:t,onPress:n}){return(0,te.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:Ue,children:t})}var Ue={minHeight:24,minWidth:24,padding:"2px 9px",borderRadius:6,fontSize:"0.8125rem",borderWidth:1,borderStyle:"solid",borderColor:"transparent",color:"var(--graview-ink-muted)",background:"transparent"},ar={day:12,week:4,month:3,year:5};function ir({span:e,weekStartsOn:t,entries:n,today:r,perCell:a,emphasisOf:i,broken:s,hue:p,onOpen:g,onMove:b}){let d=(0,rr.useRef)(null),h=je(d),f=h===null?e.columns:Math.max(1,Math.floor(h/44)),l=f<e.columns,c=l?f:e.columns,S=!l&&e.grain==="day"&&e.columns===7?_e(Fe(e.cells[0]?.from??r,t),7):e.grain==="day"&&e.columns===1?e.cells.map(u=>u.from):null;return l&&e.grain==="day"&&e.columns>1?(0,te.jsx)("div",{ref:d,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,te.jsx)(wn,{days:e.cells.map(u=>u.from),entries:n,today:r,emphasisOf:i,broken:s,hue:p,onMove:(u,x)=>b(u,{from:x,to:x,label:x},"day")})}):(0,te.jsxs)("div",{ref:d,"data-calendar-shape":l?"wrapped":"grid",style:{display:"grid",gap:4,gridTemplateRows:S?"auto 1fr":"1fr",minHeight:0,flex:1},children:[S?(0,te.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${c}, minmax(0, 1fr))`,gap:4},children:S.map(u=>(0,te.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?_t(Gn(u)):Ee(u)},u))}):null,(0,te.jsx)("div",{tabIndex:0,"aria-label":`The days of ${e.title}`,style:{display:"grid",gridTemplateColumns:`repeat(${c}, minmax(0, 1fr))`,gridAutoRows:"max-content",gap:4,minHeight:0,overflow:"auto"},children:e.cells.map((u,x)=>{let A=nr(n,u.from,u.to),E=A.slice(0,a),z=A.slice(a),w=z.filter(m=>s.has(m.id)).length,C=pe(u.from,r)>=0&&pe(r,u.to)>=0;return(0,te.jsxs)("div",{"data-calendar-day":e.grain==="day"?u.from:void 0,"data-calendar-cell":u.from,"data-calendar-grain":e.grain,"data-calendar-count":A.length,"data-calendar-outside":u.outside||void 0,onDragOver:m=>{m.dataTransfer.types.includes("text/graview-node")&&(m.preventDefault(),m.dataTransfer.dropEffect="move")},onDrop:m=>{let M=m.dataTransfer.getData("text/graview-node");M&&(m.preventDefault(),m.stopPropagation(),b(M,u,e.grain))},style:{minHeight:62,display:"flex",flexDirection:"column",gap:2,padding:4,borderRadius:7,border:"1px solid var(--graview-edge)",background:C?"var(--graview-panel)":u.outside?"var(--graview-panel-muted)":"transparent"},children:[(0,te.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,te.jsx)("span",{style:{fontSize:"0.75rem",fontVariantNumeric:"tabular-nums",color:C?"var(--graview-accent)":"var(--graview-ink-faint)"},children:u.label}),e.grain!=="day"&&A.length>0?(0,te.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:A.length}):null]}),E.map(m=>(0,te.jsx)(or,{entry:m,cell:u,rowStart:x%c===0,emphasis:i(m.id),flagged:s.has(m.id),hue:p(m)},`${m.id}:${m.from}:${u.from}`)),z.length>0?(0,te.jsxs)("button",{type:"button","data-testid":`calendar-more-${u.from}`,onClick:()=>g(u),title:`Open ${u.label}`,style:{minHeight:24,padding:"1px 5px",fontSize:"0.75rem",borderRadius:5,border:"1px dashed var(--graview-edge)",background:"transparent",color:w>0?"var(--graview-warn)":"var(--graview-ink-muted)",textAlign:"left"},children:["+",z.length," more",w>0?` \xB7 ${w} flagged`:""]}):null]},u.from)})})]})}function wn({days:e,entries:t,today:n,emphasisOf:r,broken:a,hue:i,onMove:s}){let p=e.map(g=>({day:g,here:yn(t,g)})).filter(({here:g})=>g.length>0);return p.length===0?(0,te.jsx)("p",{"data-testid":"calendar-empty",style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-muted)"},children:"Nothing is scheduled in the next six weeks."}):(0,te.jsx)("ol",{tabIndex:0,"aria-label":"What is scheduled",style:{margin:0,padding:0,listStyle:"none",display:"grid",alignContent:"start",gap:10,overflow:"auto",minHeight:0},children:p.map(({day:g,here:b})=>(0,te.jsxs)("li",{"data-calendar-day":g,onDragOver:d=>{d.dataTransfer.types.includes("text/graview-node")&&(d.preventDefault(),d.dataTransfer.dropEffect="move")},onDrop:d=>{let h=d.dataTransfer.getData("text/graview-node");h&&(d.preventDefault(),d.stopPropagation(),s(h,g))},style:{display:"grid",gap:4},children:[(0,te.jsxs)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:g===n?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[Ee(g),g===n?" \xB7 today":""]}),b.map(d=>(0,te.jsx)(or,{entry:d,cell:{from:g,to:g,label:g},emphasis:r(d.id),flagged:a.has(d.id),hue:i(d)},`${d.id}:${d.from}:${g}`))]},g))})}function or({entry:e,cell:t,emphasis:n,flagged:r,hue:a,rowStart:i=!1}){let s=pe(t.from,e.from)>=0,p=pe(e.to,t.to)>=0,g=!(s&&p),b=e.at!==null&&s&&e.from===t.from?`${qn(e.at)} ${e.label}`:e.label;return(0,te.jsx)("span",{"data-graview-pick":e.id,"data-calendar-entry":e.id,"data-calendar-repeat":e.repeats?e.from:void 0,draggable:!e.repeats,onDragStart:d=>{d.dataTransfer.setData("text/graview-node",e.id),d.dataTransfer.effectAllowed="move"},"data-graview-emphasis":n,"data-calendar-part":g?s?"opens":p?"closes":"through":void 0,"data-calendar-in":t.from,title:g?`${e.label} \xB7 ${e.from} \u2013 ${e.to}`:`${e.label}${e.at===null?" \xB7 all day":` \xB7 ${qn(e.at)}`}${e.repeats?" \xB7 repeats":""}`,style:{display:"block",minHeight:24,boxSizing:"border-box",padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.35,borderRadius:g?s?"5px 0 0 5px":p?"0 5px 5px 0":0:5,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textDecoration:e.done?"line-through":"none",opacity:n==="dimmed"?.35:e.done?.6:1,background:`color-mix(in oklab, hsl(${Math.round(a)} 70% 55%) ${n==="lit"?38:20}%, transparent)`,color:"var(--graview-ink)",...n==="lit"?{outline:"1px solid var(--graview-accent)"}:{},...r?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:s||i?e.repeats?(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),b]}):b:" "})}var X=Y(ee(),1);function Vr(e){let t=1/0,n=-1/0;for(let r of e)r&&(t=Math.min(t,Number(r.from.slice(0,4))),n=Math.max(n,Number(r.to.slice(0,4))));return Number.isFinite(t)&&Number.isFinite(n)?{first:t,last:n}:void 0}function lr(e){let t=n=>function(a){let{store:i}=ae(),{view:s}=en(),p=n?{...e,range:n}:e,g=s.within?.range??p.range??"month",b=Object.keys(e.bindings),{nodes:d,arranged:h,arrangement:f,bar:l}=Re(a,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{sort:!1,group:g==="agenda"},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{},...b[0]?{kind:(a.nodes??[]).find(A=>b.includes(String(A.kind)))?.kind??b[0]}:{}}),c=g==="agenda"&&h.grouped&&f.group?h.groups.map(A=>({label:A.label,ids:new Set(A.nodes.map(E=>E.id))})):void 0,S=new Set((a.nodes??[]).map(A=>String(A.kind))),u=b.filter(A=>!S.has(A)&&i.schema.tryDefinition(A)!==void 0).flatMap(A=>{let E=i.schema.tryDefinition(A);return i.graph.nodesOfKind(A).filter(z=>s.past===!0||Ve(E,z))}),x=u.length===0?d:[...d,...a.budget!==void 0?u.slice(0,a.budget):u];return De(a,i.schema,(0,X.jsx)(Gr,{schema:i.schema,...a,nodes:x,options:{...p,today:p.today??i.today()??Yt()},...l?{bar:l}:{},...c?{groups:c}:{}}))};return{name:"calendar",requiredRoles:[...pn],bindings:e.bindings,options:e,View:t(),at:n=>t(n),ranges:()=>fn(e).map(n=>({range:n,title:Kt(n,e.horizon)})),place:(n,r)=>n.map(a=>hn(a,e.bindings,r)).filter(a=>a!==null)}}function Gr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:p=[],flagged:g=[],bar:b,groups:d}){let{view:h,go:f}=en(),{store:l,principal:c}=ae(),S=h.within?.at??a.today,u=h.within?.range??a.range??"month",x=a.weekStartsOn??1,A=new Set([...p,...s]),E=R=>A.size===0?"plain":A.has(R)?"lit":"dimmed",z=new Set(g),w=u==="years"&&h.within?.at===void 0?Vr((e??[]).map(R=>hn(R,a.bindings,i))):void 0,C=er(u,S,{weekStartsOn:x,...a.horizon?{horizon:a.horizon}:{},...w?{fit:w}:{}}),M=n==="glyph"||n==="summary"?{next:a.today}:{from:C.cells[0]?.from??S,to:C.cells[C.cells.length-1]?.to??S},D=(e??[]).flatMap(R=>Qt(R,a.bindings,i,M)),H=a.hueOf??(R=>fe(R.kind));if(n==="glyph")return(0,X.jsx)(be,{label:`${t??"Calendar"} \xB7 ${D.length}`,hue:fe("calendar")});if(n==="summary"){let R=yn(D,a.today);return(0,X.jsx)(de,{title:t??"Calendar",meta:`${D.length} dated`,tone:"muted",children:(0,X.jsx)(Pe,{max:6,items:R.length>0?R.map(v=>({id:v.id,label:v.label,hue:H(v)})):D.filter(v=>pe(a.today,v.from)>=0).sort((v,o)=>v.from.localeCompare(o.from)).slice(0,6).map(v=>({id:v.id,label:`${v.from.slice(5)} ${v.label}`,hue:H(v)}))})})}let k=r==="fullscreen",[F,T]=(0,vn.useState)(null),Q=(R,v,o)=>{let O=l.graph.getNode(R);if(!O)return;let P=He(a.bindings[O.kind],l.schema.tryDefinition(O.kind));if(!P)return;let N=Jt(l,O.kind,P.start);if(!N){T({text:`Nothing declared writes the ${Mn(l.schema.definitions.find(V=>V.kind===O.kind),P.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let y=v.from,$=O[P.start],K=gn($)===null?y:`${y}${String($).slice(10)}`,Z={name:N.name,args:{[N.arg]:R,[P.start]:K}},le=l.permits(Z,c);if(!le.ok){T({text:le.refusal.message,tone:"refused"});return}try{l.apply(Z,{author:c}),T(o==="day"?null:{text:`Moved to ${Ee(y)} \u2014 a ${o} is coarser than the ${Mn(l.schema.definitions.find(V=>V.kind===O.kind),P.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(V){T({text:V instanceof Error?V.message:String(V),tone:"refused"})}},se=R=>{let v=u==="years"?We(`${C.years?.[0]??S.slice(0,4)}${S.slice(4)}`,R*12*Math.max(1,C.years?.length??a.horizon?.years??1)):u==="year"?We(S,R*12):u==="quarter"?We(S,R*3):u==="month"?We(S,R):u==="week"?xe(S,R*7):xe(S,R);f(Ze(h,"at",v))},oe=(R,v)=>{let o=Ze(h,"range",R);v!==void 0&&(o=Ze(o,"at",v)),f(o)},J=(0,vn.useRef)(null),ce=je(J),ue=ce!==null&&ce<420,W=R=>R==="years"?a.horizon?.title??"years":R.charAt(0).toUpperCase()+R.slice(1);return(0,X.jsx)(de,{title:t??"Calendar",meta:C.title,style:{gap:10,...k?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,X.jsxs)("div",{ref:J,"data-testid":"calendar","data-calendar-range":u,"data-calendar-at":S,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,gap:8},children:[(0,X.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6},children:[(0,X.jsxs)("nav",{"aria-label":"When",style:{display:"flex",gap:4},children:[(0,X.jsx)(_n,{label:"Previous",glyph:"\u2039",onPress:()=>se(-1)}),(0,X.jsx)("button",{type:"button","data-testid":"calendar-today",onClick:()=>f(Ze(h,"at",a.today)),style:Ue,children:"Today"}),(0,X.jsx)(_n,{label:"Next",glyph:"\u203A",onPress:()=>se(1)})]}),ue?(0,X.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:u,onChange:R=>oe(R.target.value),style:{...Ue,borderRadius:999,borderColor:"var(--graview-edge)",background:void 0,backgroundColor:"transparent",marginLeft:"auto",maxWidth:"50%",paddingRight:24,appearance:"none",WebkitAppearance:"none",backgroundImage:"linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%)",backgroundPosition:"calc(100% - 13px) 55%, calc(100% - 9px) 55%",backgroundSize:"4px 4px, 4px 4px",backgroundRepeat:"no-repeat"},children:fn(a).map(R=>(0,X.jsx)("option",{value:R,children:W(R)},R))}):(0,X.jsx)("div",{role:"group","aria-label":"Range","data-testid":"calendar-ranges",style:{display:"flex",flexWrap:"wrap",gap:4,marginLeft:"auto"},children:fn(a).map(R=>(0,X.jsx)("button",{type:"button","aria-pressed":R===u,"data-testid":`calendar-range-${R}`,onClick:()=>oe(R),style:{...Ue,borderRadius:999,borderColor:"var(--graview-edge)",...R==="years"?{}:{textTransform:"capitalize"},...R===u?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)",background:"var(--graview-panel)"}:{}},children:R==="years"?a.horizon?.title??"years":R},R))})]}),F?(0,X.jsx)("p",{"data-testid":F.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:F.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:F.text}):null,C.years?(0,X.jsx)("nav",{"aria-label":"Years","data-testid":"calendar-years",style:{display:"flex",flexWrap:"wrap",gap:4},children:C.years.map(R=>(0,X.jsx)("button",{type:"button","data-testid":`calendar-year-${R}`,onClick:()=>oe("year",`${R}-01-01`),style:Ue,children:R},R))}):null,b,u==="agenda"&&d?(0,X.jsx)("div",{"data-testid":"calendar-groups",style:{display:"grid",gap:10,minHeight:0,overflow:"auto"},children:d.map(R=>(0,X.jsxs)("section",{"data-testid":"calendar-group",style:{display:"grid",gap:4},children:[(0,X.jsxs)("h3",{style:{margin:0,fontSize:"0.8125rem",letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},children:[R.label," ",(0,X.jsx)("span",{style:{fontWeight:400},children:R.ids.size})]}),(0,X.jsx)(wn,{days:C.cells.map(v=>v.from),entries:D.filter(v=>R.ids.has(v.id)),today:a.today,emphasisOf:E,broken:z,hue:H,onMove:(v,o)=>Q(v,{from:o,to:o,label:o},"day")})]},R.label))}):u==="agenda"?(0,X.jsx)(wn,{days:C.cells.map(R=>R.from),entries:D,today:a.today,emphasisOf:E,broken:z,hue:H,onMove:(R,v)=>Q(R,{from:v,to:v,label:v},"day")}):(0,X.jsx)(ir,{span:C,weekStartsOn:x,entries:D,today:a.today,perCell:a.perCell??ar[C.grain],emphasisOf:E,broken:z,hue:H,onOpen:R=>oe(tr(C.grain),R.from),onMove:Q})]})})}var re=Y(Ne(),1);var Ke=Y(Ne(),1),Se=Y(ee(),1),bn={padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:"transparent",background:"none",boxShadow:"none"};function sr({choices:e,close:t}){let[n,r]=(0,Ke.useState)(!1),a=(0,Ke.useRef)(null);return(0,Ke.useLayoutEffect)(()=>{n&&a.current?.querySelector("button:not([disabled])")?.focus()},[n]),(0,Se.jsxs)("div",{children:[(0,Se.jsxs)("button",{type:"button","data-menu-item":"move-to","aria-expanded":n,onClick:()=>r(i=>!i),style:bn,children:["Move to ",(0,Se.jsx)("span",{"aria-hidden":"true",children:"\u203A"})]}),n?(0,Se.jsx)("ul",{ref:a,"aria-label":"Move to","data-testid":"move-to",style:{margin:"2px 0 0 12px",padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:2},children:e.map(i=>i.run?(0,Se.jsx)("li",{children:(0,Se.jsx)("button",{type:"button","data-move-to":i.to,onClick:()=>{t(),i.run()},style:bn,children:i.label})},i.to):(0,Se.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,Se.jsx)("button",{type:"button",disabled:!0,"data-move-to":i.to,"data-withheld":"",style:{...bn,borderStyle:"dashed"},children:(0,Se.jsx)("s",{children:i.label})}),(0,Se.jsx)("span",{"data-testid":"move-to-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:i.why})]},i.to))}):null]})}function dr({choose:e,close:t}){return(0,Se.jsx)("button",{type:"button","data-menu-item":"choose-several",onClick:()=>{t(),e()},style:bn,children:"Choose several"})}var I=Y(ee(),1),jr=`
4
+ .graview-columns { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
5
+ .graview-columns-column { flex: 1 1 13rem; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 8px; border-radius: 10px; border: 1px solid var(--graview-edge); background: color-mix(in srgb, var(--graview-panel) 60%, transparent); }
6
+ .graview-columns-column[data-droppable="true"] { border-color: var(--graview-accent); }
7
+ .graview-columns-column[data-over="true"] { background: color-mix(in srgb, var(--graview-accent) 10%, transparent); }
8
+ .graview-columns-heading { margin: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 0.875rem; font-weight: 600; color: var(--graview-ink); }
9
+ .graview-columns-count { font-weight: 400; color: var(--graview-ink-muted); font-variant-numeric: tabular-nums; }
10
+ .graview-columns-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
11
+ .graview-columns-empty { margin: 0; font-size: 0.8125rem; color: var(--graview-ink-muted); }
12
+ .graview-columns-card[draggable="true"] { cursor: grab; }
13
+ .graview-columns-card[data-carried="true"] { outline: 2px solid var(--graview-accent); outline-offset: 2px; border-radius: 10px; opacity: 0.6; }
14
+ .graview-columns-slot { min-height: 2.25rem; display: flex; align-items: center; padding: 6px 10px; border-radius: 10px; border: 2px dashed var(--graview-accent); color: var(--graview-ink-muted); font-size: 0.8125rem; }
15
+ .graview-columns-toggle, .graview-columns-rest { font: inherit; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; width: 100%; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; text-align: left; }
16
+ .graview-columns-rest { justify-content: center; font-size: 0.8125rem; color: var(--graview-ink-muted); min-height: 28px; border-radius: 7px; border: 1px dashed var(--graview-edge); }
17
+ .graview-columns-toggle:focus-visible, .graview-columns-rest:focus-visible { outline: 2px solid var(--graview-accent); outline-offset: 2px; }
18
+ .graview-columns-move { position: relative; z-index: ${Ae.raised}; display: flex; justify-content: flex-end; margin-top: 4px; }
19
+ .graview-columns-move[data-open="true"] { z-index: ${Ae.over}; }
20
+ .graview-columns-move > button, .graview-columns-menu button, .graview-columns-said button { font: inherit; font-size: 0.8125rem; min-height: 28px; padding: 2px 10px; border-radius: 7px; border: 1px solid var(--graview-edge); background: var(--graview-panel); color: var(--graview-ink); cursor: pointer; }
21
+ .graview-columns-move > button:focus-visible, .graview-columns-menu button:focus-visible, .graview-columns-said button:focus-visible { outline: 2px solid var(--graview-accent); outline-offset: 2px; }
22
+ .graview-columns-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: ${Ae.over}; display: flex; flex-direction: column; gap: 4px; padding: 6px; min-width: 10rem; border-radius: 9px; border: 1px solid var(--graview-edge); background: var(--graview-panel); box-shadow: 0 6px 18px rgb(0 0 0 / 0.18); }
23
+ .graview-columns-menu button { text-align: left; }
24
+ .graview-columns-said { margin: 0 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--graview-ink); }
25
+ .graview-columns-said[data-tone="refused"] { color: var(--graview-warn); }
26
+ .graview-columns-card { position: relative; -webkit-touch-callout: none; }
27
+ .graview-columns-card .graview-choose-at { position: absolute; top: 6px; right: 6px; z-index: ${Ae.raised}; display: flex; }
28
+ [data-graview-choosable] { outline: none; }
29
+ @media (pointer: coarse) { [data-graview-choosable]:not([data-graview-choosing]) .graview-columns-card .graview-choose-at { display: none; } }
30
+ `;function cr(e){function t(n){let{store:r}=ae();ft();let a=Object.keys(e.bindings).filter(w=>r.schema.tryDefinition(w)!==void 0),i=n.nodes??[],s=new Set(i.map(w=>String(w.kind))),p=w=>r.graph.nodesOfKind(w).filter(C=>Ve(r.schema.tryDefinition(w),C)),g=n.total!==void 0&&n.total>i.length,b=a[0],d=b===void 0?[]:s.has(b)?i.filter(w=>w.kind===b):p(b),{arranged:h,arrangement:f,bar:l}=Re(n,{lensAllows:{group:!1},subject:d,...b===void 0?{}:{kind:b},query:e.search!==void 0||d.length>mt,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),c=l?new Map(h.nodes.map((w,C)=>[w.id,C])):void 0,S=(w,C)=>{if(!c||w!==b)return C;let m=C.filter(M=>c.has(M.id));return f.sort===void 0?m:[...m].sort((M,D)=>c.get(M.id)-c.get(D.id))},u=a.map(w=>{let C=e.bindings[w].column,m=Tt(r.schema,w,C),M=(T,Q)=>Q==="label"?ve(r.schema.tryDefinition(T.kind),T):T[Q],D=S(w,Xe(s.has(w)?i.filter(T=>T.kind===w):p(w).slice(0,n.budget??1/0),e.sort,M)),H=p(w),k=s.has(w)&&!g?D:S(w,H),F=new Set(e.hidden??[]);return{kind:w,field:C,all:m,born:new Map(H.map((T,Q)=>[T.id,Q])),columns:m.filter(T=>T.value===null||!F.has(T.value)).map(T=>({column:T,cards:D.filter(Q=>dn(Q,C,m)===T.value),count:k.filter(Q=>dn(Q,C,m)===T.value).length})).filter(T=>T.column.value!==null||T.count>0)}}),x=u.reduce((w,C)=>w+C.columns.reduce((m,M)=>m+M.count,0),0),A=n.label??"Board";if(n.fidelity==="glyph")return(0,I.jsx)(be,{label:`${A} \xB7 ${x}`,hue:fe("columns")});if(n.fidelity==="summary")return(0,I.jsx)(de,{title:A,meta:b?Ge(r.schema,b,x):String(x),tone:"muted",children:(0,I.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:u.flatMap(w=>w.columns.map(C=>`${C.column.label} ${C.count}`)).join(" \xB7 ")})});let E=(0,I.jsx)(qr,{boards:u,title:A,options:e}),z=l?(0,I.jsxs)("div",{style:{display:"grid",gap:6},children:[l,E]}):E;return De(n,r.schema,n.mode==="fullscreen"?(0,I.jsx)("div",{style:{padding:"14px 16px"},children:z}):(0,I.jsx)(de,{title:A,meta:b?Ge(r.schema,b,x):void 0,children:z}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function qr({boards:e,title:t,options:n}){let{store:r,principal:a}=ae(),i=(0,re.useRef)(null),[s,p]=(0,re.useState)(null),[g,b]=(0,re.useState)(null),[d,h]=(0,re.useState)(null),[f,l]=(0,re.useState)(null),[c,S]=(0,re.useState)(""),[u,x]=(0,re.useState)(()=>new Set),[A,E]=(0,re.useState)(()=>new Set(n.collapsed??[])),[z,w]=(0,re.useState)(null),C=(0,re.useId)();(0,re.useLayoutEffect)(()=>{if(!z)return;i.current?.querySelector(z)?.focus(),w(null)});let m=v=>{let o=r.graph.getNode(v);return o?ve(r.schema.tryDefinition(o.kind),o):v},M=(0,re.useMemo)(()=>e.flatMap(v=>v.columns.flatMap(o=>o.cards.map(O=>O.id))),[e]),D=zt(M),H=(0,re.useMemo)(()=>r.permittedMutations(a).some(v=>{let o=v.subject?.kinds;return o!==void 0&&(o==="*"||e.some(O=>o.includes(O.kind)))}),[r,a,e]),k=v=>{D.choose(v),requestAnimationFrame(()=>{((v[0]===void 0?null:i.current?.querySelector(`[data-graview-choose-box="${nn(v[0])}"]`))??i.current)?.focus({preventScroll:!0})})},F=(v,o)=>Pt(r,a,v,o.field,o.columns.map(O=>O.column)),T=v=>n.move?`[data-columns-move="${nn(v)}"] > button`:`[data-graview-listed="${nn(v)}"] .graview-spec-item-link`,Q=(v,o,O,P)=>{try{let N=r.apply(o.call,{author:a});p({text:`Moved \u201C${m(v)}\u201D to ${O}.`,tone:"moved",batch:N.batch,id:v}),P==="keyboard"&&w(T(v)),P==="carry"&&w(`[data-graview-listed="${nn(v)}"] .graview-spec-item-link`),P==="menu"&&Fr(()=>i.current?.querySelector(`[data-graview-listed="${nn(v)}"] .graview-spec-item-link`)??null)}catch(N){p({text:N instanceof Error?N.message:String(N),tone:"refused"})}},se=()=>{if(s?.batch)try{r.undo(s.batch,{author:a}),p({text:`\u201C${m(s.id??"")}\u201D is back where it was.`,tone:"moved"}),s.id&&w(T(s.id))}catch(v){p({text:v instanceof Error?v.message:String(v),tone:"refused"})}},oe=(0,re.useRef)({move:Q,boards:e,choosing:D,choosable:H});oe.current={move:Q,boards:e,choosing:D,choosable:H},(0,re.useEffect)(()=>{let o=[...new Set(e.map(O=>O.kind))].map(O=>Dt({store:r,kind:O,root:()=>i.current,section:(P,N)=>{let y=oe.current.boards.find(V=>V.kind===O),$=r.graph.getNode(P);if(!y||!$)return null;let L=Nt(r,N,$,y.field,y.all).map(V=>({to:V.to,label:V.label,...V.why!==void 0?{why:V.why}:{},...V.move?{run:()=>oe.current.move(P,V.move,V.label,"menu")}:{}})),{choosing:K,choosable:Z}=oe.current,le=Z&&K.chosen.length===0&&typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches?()=>K.toggle(P):void 0;return L.length===0&&!le?null:{id:"move-to",at:"start",render:V=>(0,I.jsxs)(I.Fragment,{children:[L.length>0?(0,I.jsx)(sr,{choices:L,close:V}):null,le?(0,I.jsx)(dr,{choose:le,close:V}):null]})}}}));return()=>o.forEach(O=>O())},[r,e]);let J=(v,o)=>v.all.find(O=>O.value===o)?.label??v.columns.find(O=>O.column.value===o)?.column.label??String(o),ce=(v,o,O)=>v.columns.find(P=>P.column.value===o)?.cards.filter(P=>P.id!==O)??[],ue=(v,o,O,P)=>{let N=ce(v,o,P).length+1;return`${J(v,o)}, ${Math.min(O,N-1)+1} of ${N}.`},W=(v,o,O,P)=>{let N=m(o.id),y=()=>{v.preventDefault(),v.stopPropagation()};if(f?.id!==o.id){if(v.key!==" "||P.length===0||!(v.target instanceof HTMLElement)||!v.target.classList.contains("graview-spec-item-link"))return;y();let L=dn(o,O.field,O.all),K=Math.max(0,O.columns.find(Z=>Z.column.value===L)?.cards.findIndex(Z=>Z.id===o.id)??0);l({id:o.id,from:L,to:L,at:K}),S(`${N}, picked up. ${ue(O,L,K,o.id)} Arrow keys move it, Space drops it, Escape puts it back.`);return}let $=O.columns.map(L=>L.column.value).filter(L=>L===f.from||P.some(K=>K.to===L));if(v.key==="ArrowLeft"||v.key==="ArrowRight"){y();let L=$[$.indexOf(f.to)+(v.key==="ArrowLeft"?-1:1)];if(L===void 0)return S(`No column further ${v.key==="ArrowLeft"?"left":"right"} takes ${N}. ${ue(O,f.to,f.at,o.id)}`);let K=Math.min(f.at,ce(O,L,o.id).length);return l({...f,to:L,at:K}),S(ue(O,L,K,o.id))}if(v.key==="ArrowUp"||v.key==="ArrowDown"){y();let L=Math.max(0,Math.min(ce(O,f.to,o.id).length,f.at+(v.key==="ArrowUp"?-1:1)));return l({...f,at:L}),S(ue(O,f.to,L,o.id))}if(v.key===" "||v.key==="Enter"){y(),l(null);let L=f.to===f.from?void 0:P.find(K=>K.to===f.to);return L?(S(`${N}, dropped in ${J(O,f.to)}.`),Q(o.id,L,J(O,f.to),"carry")):S(`${N}, dropped back in ${J(O,f.from)}.`)}if(v.key==="Escape")return y(),l(null),S(`${N}, put back in ${J(O,f.from)}.`)},R=v=>{if(f?.id!==v)return;let o=e.find(O=>O.kind===r.graph.getNode(v)?.kind);l(null),o&&S(`${m(v)}, put back in ${J(o,f.from)}.`)};return(0,I.jsxs)("div",{"data-testid":"columns-lens",...H?{...D.listProps,tabIndex:-1,role:"group","aria-label":D.chosen.length>0?`${t}, ${D.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:v=>{i.current=v,D.list.current=v},children:[(0,I.jsx)("style",{children:jr}),H?(0,I.jsx)("style",{children:Bt}):null,(0,I.jsxs)("p",{className:"graview-columns-said",role:"status","data-tone":s?.tone,"data-testid":"columns-said",style:s?void 0:{position:"absolute",width:1,height:1,overflow:"hidden",clipPath:"inset(50%)"},children:[s?(0,I.jsx)("span",{children:s.text}):null,s?.batch?(0,I.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:se,children:"Undo"}):null]}),(0,I.jsx)("p",{"aria-live":"assertive","data-testid":"columns-announce",style:yt,children:c}),(0,I.jsx)("span",{id:C,hidden:!0,children:"Space picks it up; the arrow keys carry it between and along the columns; Space drops it and Escape puts it back. Its menu moves it too."}),e.map(v=>(0,I.jsx)("section",{"data-columns-kind":v.kind,"data-columns-field":v.field,"aria-label":`${it(r.schema,v.kind)} by ${v.field}`,children:(0,I.jsx)("div",{className:"graview-columns",children:v.columns.map(({column:o,cards:O,count:P})=>{let N=o.value??"",y=g!==null&&o.value!==null&&g.to.includes(o.value)||f!==null&&f.to!==f.from&&f.to===o.value&&v.columns.some(_=>_.cards.some(G=>G.id===f.id)),$=o.value!==null&&(n.collapsed??[]).includes(o.value),L=$&&A.has(N),K=n.cap!==void 0&&!u.has(N)&&O.length>n.cap,Z=K?new Set([...O].sort((_,G)=>(v.born.get(G.id)??0)-(v.born.get(_.id)??0)).slice(0,n.cap).map(_=>_.id)):null,le=Z?O.filter(_=>Z.has(_.id)||_.id===f?.id):O,V=f!==null&&f.to===o.value&&f.to!==f.from&&v.columns.some(_=>_.cards.some(G=>G.id===f.id)),he=(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)("span",{children:o.label}),(0,I.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:P})]});return(0,I.jsxs)("section",{className:"graview-columns-column","data-graview-column":N,"data-droppable":y||void 0,"data-over":y&&(d===N||V)||void 0,"aria-label":`${t} \xB7 ${o.label}, ${P}`,"data-graview-named-by-lens":"",onDragOver:_=>{y&&(_.preventDefault(),_.dataTransfer.dropEffect="move",h(N))},onDragLeave:()=>h(_=>_===N?null:_),onDrop:_=>{let G=_.dataTransfer.getData("text/graview-node"),we=r.graph.getNode(G);if(h(null),b(null),!we||o.value===null)return;let ne=F(we,v).find(U=>U.to===o.value);ne&&(_.preventDefault(),_.stopPropagation(),Q(G,ne,o.label,"drag"))},children:[(0,I.jsx)("h3",{className:"graview-columns-heading",children:$?(0,I.jsx)("button",{type:"button",className:"graview-columns-toggle","aria-expanded":!L,"data-testid":"columns-toggle",onClick:()=>E(_=>_.has(N)?new Set([..._].filter(G=>G!==N)):new Set([..._,N])),children:he}):he}),L?null:le.length===0&&!V?(0,I.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,I.jsx)("ul",{className:"graview-columns-cards",children:(0,I.jsx)(Wt.Provider,{value:o.value===null?null:{field:v.field,values:[o.value,o.label]},children:(()=>{let _=le.map(we=>{let ne=F(we,v);return(0,I.jsx)(_r,{card:we,moves:ne,button:n.move===!0,carried:f?.id===we.id,...ne.length>0?{describedBy:C}:{},...H?{choosing:D}:{},labelOf:U=>J(v,U),onMove:(U,me)=>Q(we.id,U,me,"keyboard"),onDrag:U=>b(U?{id:we.id,to:ne.map(me=>me.to)}:null),onCarryKey:U=>W(U,we,v,ne),onLeave:()=>R(we.id)},we.id)});if(!V)return _;let G=(0,I.jsx)("li",{className:"graview-columns-slot","data-testid":"columns-slot","aria-hidden":"true",children:m(f.id)},"graview-carried-slot");return[..._.slice(0,f.at),G,..._.slice(f.at)]})()})}),!L&&K?(0,I.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-rest",onClick:()=>x(_=>new Set([..._,N])),children:["Show ",O.length-le.length," more"]}):null]},N)})})},v.kind)),H?(0,I.jsx)(It,{store:r,chosen:D.chosen,principal:a,anchor:()=>i.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:M.length,onChooseAll:()=>D.choose(M),onClear:D.clear,onActed:k}):null]})}var nn=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function Fr(e){let t=0,n=()=>{let r=e(),a=typeof document>"u"?null:document.activeElement;r&&a!==r&&(a===null||a===document.body||a.closest("[data-graview-menu-home], [data-graview-page-title], h1, main")!==null||!a.isConnected)&&r.focus({preventScroll:!0}),++t<6&&requestAnimationFrame(n)};requestAnimationFrame(n)}function _r({card:e,moves:t,button:n,carried:r,describedBy:a,labelOf:i,onMove:s,onDrag:p,onCarryKey:g,onLeave:b,choosing:d}){let{store:h,views:f}=ae(),[l,c]=(0,re.useState)(!1),S=(0,re.useRef)(null),u=(0,re.useRef)(null),x=ve(h.schema.tryDefinition(e.kind),e),A=f.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,re.useLayoutEffect)(()=>{l&&S.current?.querySelector("button")?.focus()},[l]);let E=()=>{c(!1),u.current?.focus()},z=w=>{let C=[...S.current?.querySelectorAll("button")??[]],m=C.indexOf(document.activeElement);w.key==="Escape"?(w.preventDefault(),w.stopPropagation(),E()):(w.key==="ArrowDown"||w.key==="ArrowUp")&&(w.preventDefault(),w.stopPropagation(),C[(m+(w.key==="ArrowDown"?1:C.length-1))%C.length]?.focus())};return(0,I.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card","data-carried":r||void 0,...d&&d.chosen.length>0?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onKeyDown:g,onKeyUp:w=>{w.key===" "&&w.target instanceof HTMLElement&&w.target.classList.contains("graview-spec-item-link")&&w.preventDefault()},onBlur:w=>{r&&!w.currentTarget.contains(w.relatedTarget)&&b()},onDragStart:w=>{t.length!==0&&(w.dataTransfer.setData("text/graview-node",e.id),w.dataTransfer.effectAllowed="move",p(!0))},onDragEnd:()=>p(!1),children:[(0,I.jsx)(Ht,{node:e,label:x,...a?{describedBy:a}:{}}),A?(0,I.jsx)(pt,{mode:"scene",children:(0,I.jsx)(wt.Provider,{value:x,children:(0,I.jsx)(A,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})})}):(0,I.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:x}),d?(0,I.jsx)("span",{className:"graview-choose-at",children:(0,I.jsx)("input",{...d.boxProps(e.id,x),onPointerEnter:In,onFocus:In})}):null,n&&t.length>0?(0,I.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":l||void 0,onBlur:w=>{w.currentTarget.contains(w.relatedTarget)||c(!1)},children:[(0,I.jsx)("button",{ref:u,type:"button","aria-haspopup":"menu","aria-expanded":l,"aria-label":`Move \u201C${x}\u201D to another column`,"data-testid":"columns-move",onClick:()=>c(w=>!w),children:"Move\u2026"}),l?(0,I.jsx)("div",{ref:S,role:"menu","aria-label":`Move \u201C${x}\u201D to`,className:"graview-columns-menu",onKeyDown:z,onMouseDown:w=>w.preventDefault(),children:t.map(w=>(0,I.jsx)("button",{type:"button",role:"menuitem","data-columns-to":w.to,title:w.title,onClick:()=>{c(!1),s(w,i(w.to))},children:i(w.to)},w.to))}):null]}):null]})}var ke=Y(Ne(),1);var q=Y(ee(),1),Ur=["rows","columns","link"],tn=class extends Error{constructor(n,r){super(`${n}
31
+ ${r}`);this.hint=r;this.name="CoverageBindingError"}},Un=(e,t)=>t&&e[t]!==void 0?String(e[t]):"",Kr=40,Yr=24;function Qr(e,t={}){let n=t.rows??Kr,r=t.columns??Yr;if(e.rows.length<=n&&e.columns.length<=r)return e;let a=new Map;for(let d of e.cells)a.set(d.rowId,(a.get(d.rowId)??0)+1),a.set(`col:${d.columnId}`,(a.get(`col:${d.columnId}`)??0)+1);let i=(d,h,f)=>{if(d.length<=h)return d;let l=new Set(d.map((c,S)=>({item:c,index:S,count:a.get(f(c))??0})).sort((c,S)=>S.count-c.count||c.index-S.index).slice(0,h).map(c=>c.item.id));return d.filter(c=>l.has(c.id))},s=i(e.rows,n,d=>d.id),p=i(e.columns,r,d=>`col:${d.id}`),g=new Set(s.map(d=>d.id)),b=new Set(p.map(d=>d.id));return{...e,rows:s,columns:p,cells:e.cells.filter(d=>g.has(d.rowId)&&b.has(d.columnId)),of:{rows:e.rows.length,columns:e.columns.length}}}function fr(e,t,n,r){let a=m=>m,i=m=>r?ve(r.tryDefinition(m.kind),m):String(a(m).label??m.id),s=r?[n.rows,n.columns].filter(m=>r.tryDefinition(m)===void 0):[];if(s.length>0)throw new tn(`No kind is declared for ${s.map(m=>`"${m}"`).join(" or ")}.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');if(r&&typeof n.link!="string"){let m=Tn(r,n.columns,n.link.path);if(!m.ok||!m.reached.has(n.rows)){let M=Tn(r,n.columns,[...n.link.path].reverse());throw new tn(M.ok&&M.reached.has(n.rows)?`The path runs from the ${n.rows} to the ${n.columns}; it is walked from the columns.`:`The path [${n.link.path.join(", ")}] cannot get from a ${n.columns} to a ${n.rows}.`,`Name it column end first: link: { path: [${[...n.link.path].reverse().map(D=>JSON.stringify(D)).join(", ")}] }`)}}let p=e.filter(m=>m.kind===n.rows),g=e.filter(m=>m.kind===n.columns);if(!r&&p.length===0&&g.length===0)throw new tn(`Nothing to lay out: no "${n.rows}" and no "${n.columns}" nodes.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');let b=n.groupOrder??[],d=m=>{let M=b.indexOf(m);return M===-1?b.length:M},h=n.badge?t.filter(m=>m.kind===n.badge.edge):[],f=new Set(p.map(m=>m.id)),l=new Set(g.map(m=>m.id)),c=[];if(typeof n.link=="string"){let m=n.link,M=t.filter(T=>T.kind===m),D=T=>r?.tryDefinition?.(T)?.edges?.[m]?.to,H=(D(n.columns)??[]).some(T=>T===n.rows||T==="*"),k=(D(n.rows)??[]).some(T=>T===n.columns||T==="*"),F=H||!k;for(let T of M){let Q=F?T.to:T.from,se=F?T.from:T.to;f.has(Q)&&l.has(se)&&c.push({rowId:Q,columnId:se})}}else{let m=new Map;for(let D of new Set(n.link.path))m.set(D,new Map);for(let D of t){let H=m.get(D.kind);if(!H)continue;let k=H.get(D.from);k?k.push(D.to):H.set(D.from,[D.to]);let F=H.get(D.to);F?F.push(D.from):H.set(D.to,[D.from])}let M=new Set;for(let D of g){let H=[{id:D.id,via:[]}];for(let k of n.link.path){let F=[],T=new Set,Q=m.get(k);for(let se of H)for(let oe of Q.get(se.id)??[])T.has(`${se.id}|${oe}`)||(T.add(`${se.id}|${oe}`),F.push({id:oe,via:[...se.via,se.id]}));H=F}for(let k of H){if(!f.has(k.id))continue;let F=`${k.id}|${D.id}`;M.has(F)||(M.add(F),c.push({rowId:k.id,columnId:D.id,via:k.via.slice(1)}))}}}let S=new Set(n.requiredGroups??[]),u=n.requiredVia?new Set(t.filter(m=>m.kind===n.requiredVia.edge).map(m=>m.to)):null,x=new Set(c.map(m=>m.rowId)),A=new Set(c.map(m=>m.columnId)),E=new Set(h.map(m=>m.to)),z=(m,M)=>M==="label"?i(m):a(m)[M],w=Xe(p,n.sort,z).map(m=>{let M=a(m),D=Un(M,n.rowGroup);return{id:m.id,ref:Un(M,n.rowRef),label:i(m),group:D,required:u?u.has(m.id):S.size===0||S.has(D),covered:x.has(m.id),badged:E.has(m.id)}}).sort((m,M)=>d(m.group)-d(M.group)||(n.sort!==void 0?0:m.ref<M.ref?-1:m.ref>M.ref?1:0)),C=Xe(g,n.columnSort,z).map(m=>({id:m.id,label:i(m),used:A.has(m.id),group:Un(a(m),n.columnGroup)})).sort((m,M)=>m.group<M.group?-1:m.group>M.group?1:n.columnSort!==void 0?0:m.id<M.id?-1:m.id>M.id?1:0).map(({group:m,...M})=>M);return{rows:w,columns:C,cells:c,gaps:w.filter(m=>m.required&&!m.covered).map(m=>m.id),unasked:C.filter(m=>!m.used).map(m=>m.id)}}var ur=316,Kn=58,Yn=176,Jr=Math.sin(Kn*Math.PI/180),Xr=Math.cos(Kn*Math.PI/180),Zr=e=>{let t=e.reduce((r,a)=>Math.max(r,a.length),0),n=Math.min(Yn,Math.max(46,t*5.4+12));return Math.ceil(n*Jr)+8},gr=Math.ceil(Yn*Xr),mr=(e,t)=>ln(e,t).toLowerCase(),hr=(e,t)=>sn(e.tryDefinition(t),t);function ea(e,t,n){return t.rows===t.columns?`${e} with none across`:`${Ge(n,t.rows,e)} with no ${hr(n,t.columns)}`}function na(e,t,n){return t.rows===t.columns?`${e} with none down`:`${Ge(n,t.columns,e)} on no ${hr(n,t.rows)}`}function ta({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,implicated:s=[],flagged:p=[],budget:g,rowsKept:b}){let{store:d}=ae(),h=sa(),f=(0,ke.useRef)(null),l=je(f),[c,S]=(0,ke.useState)(null),u=fr(qe(d.graph,d.schema,e).filter(k=>k.kind===a.rows||k.kind===a.columns).filter(k=>b===void 0||a.rows===a.columns||k.kind!==a.rows||b.has(k.id)),d.graph.allEdges(),a,i),x=n==="full"?Qr(u,g!==void 0?{rows:g,columns:g}:{}):u,A=typeof a.link=="string"?a.link:void 0,E=b!==void 0&&u.cells.length===0&&u.columns.length>0&&(A===void 0||d.graph.allEdges().some(k=>k.kind===A))?void 0:gt(d.schema,a,{rows:u.rows.length,columns:u.columns.length,cells:u.cells.length});if(n==="glyph")return(0,q.jsx)(be,{label:`${t??"Coverage"} \xB7 ${E?"nothing linked":x.gaps.length===0?"complete":`${x.gaps.length} missing`}`,hue:fe("coverage")});if(E)return(0,q.jsx)(de,{title:t??"Coverage",tone:"muted",fit:!0,...r==="fullscreen"?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:(0,q.jsx)("p",{"data-coverage-unlinked":"",style:{margin:0,color:"var(--graview-ink-muted)"},children:E})});if(n==="summary"){let k=x.rows.filter(F=>x.gaps.includes(F.id));return(0,q.jsxs)(de,{title:t??"Coverage",meta:`${x.rows.length-x.gaps.length}/${x.rows.length}`,tone:x.gaps.length>0?"warning":"muted",fit:!0,children:[(0,q.jsx)(la,{grid:x}),k.length>0?(0,q.jsx)(Pe,{pick:!0,max:4,items:k.map(F=>({id:F.id,label:F.ref||F.label}))}):null]})}let z=new Set(s),w=new Set(p),C=c!==null&&c.every(k=>z.has(k))?c:null,m=r==="fullscreen",M=Zr(x.columns.map(k=>k.label)),D=l===null?ur:Math.max(96,Math.min(ur,Math.round(l*.36))),H=l!==null&&(l<420||D+x.columns.length*28+gr>l);return(0,q.jsx)(de,{title:t??"Coverage",...m?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},meta:x.rows.length===0||x.columns.length===0?void 0:x.gaps.length===0&&x.unasked.length===0?"complete":[x.gaps.length>0?ea(x.gaps.length,a,d.schema):"",x.unasked.length>0?na(x.unasked.length,a,d.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,q.jsxs)("div",{ref:f,"data-coverage-shape":H?"stacked":"matrix",onClick:k=>S(pr(k.target)),onKeyDown:k=>{(k.key==="Enter"||k.key===" ")&&S(pr(k.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:H?0:gr},children:[H?null:(0,q.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",flex:"0 0 auto",position:"sticky",top:0,zIndex:Ae.over,background:"var(--graview-panel)",paddingTop:6},children:[(0,q.jsx)("div",{ref:h.corner,style:{width:D,flex:"0 0 auto",alignSelf:"stretch",position:"sticky",left:0,zIndex:Ae.raised,background:"var(--graview-panel)"}}),(0,q.jsx)("div",{ref:h.heads,style:{display:"flex",flex:1,minWidth:0,height:M},children:x.columns.map(k=>(0,q.jsx)("div",{"data-graview-pick":k.id,"data-graview-emphasis":z.size===0?"plain":z.has(k.id)?"lit":"dimmed",title:k.label,"data-graview-column":k.id,style:{flex:1,minWidth:28,boxSizing:"border-box",borderLeft:"1px solid transparent",pointerEvents:"none",position:"relative",display:"flex",alignItems:"flex-end",justifyContent:"center"},children:(0,q.jsxs)("span",{style:{position:"absolute",bottom:3,padding:"3px 0",pointerEvents:"auto",cursor:"pointer",left:"50%",visibility:h.hidden.has(k.id)?"hidden":"visible",transformOrigin:"left bottom",transform:`rotate(-${Kn}deg)`,whiteSpace:"nowrap",maxWidth:Yn,overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.75rem",letterSpacing:"0.005em",color:k.used?z.size>0&&!z.has(k.id)?"var(--graview-ink-faint)":"var(--graview-ink)":"var(--graview-warn)"},children:[k.used?"":"\u26A0 ",k.label]})},k.id))})]}),x.of?(0,q.jsxs)("p",{"data-testid":"coverage-more",style:{margin:"4px 0 6px",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[[x.of.rows>x.rows.length?`the ${x.rows.length} most connected of ${x.of.rows} ${mr(d.schema,a.rows)}`:null,x.of.columns>x.columns.length?`${x.columns.length} of ${x.of.columns} ${mr(d.schema,a.columns)} across`:null].filter(Boolean).join(" \xB7 ").replace(/^./,k=>k.toUpperCase())," ","\u2014 what is missing is still counted over all of them."]}):null,(0,q.jsx)("div",{children:x.rows.map((k,F)=>{let T=x.rows[F-1],Q=T===void 0||T.group!==k.group,se=k.required&&!k.covered,oe=z.size>0&&!z.has(k.id);return(0,q.jsxs)("div",{children:[Q&&k.group?(0,q.jsx)("div",{style:{fontSize:"0.6875rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",padding:"9px 0 3px"},children:(0,q.jsx)("span",{style:{position:"sticky",left:0,display:"inline-block",paddingRight:8,background:"var(--graview-panel)"},children:k.group})}):null,(0,q.jsxs)("div",{style:{display:"flex",flexDirection:H?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:oe?.72:1},children:[(0,q.jsxs)("div",{"data-graview-pick":k.id,"data-graview-emphasis":z.size===0?"plain":oe?"dimmed":"lit",title:k.label,style:{width:H?"auto":D,flex:"0 0 auto",position:H?"static":"sticky",left:0,zIndex:Ae.raised,background:"var(--graview-panel)",display:"flex",alignItems:"center",gap:7,padding:"6px 10px 6px 0",boxSizing:"border-box",fontSize:"0.8125rem",minWidth:0,color:se||w.has(k.id)?"var(--graview-warn)":"var(--graview-ink)"},children:[k.ref?(0,q.jsx)("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums",color:"var(--graview-ink-faint)"},children:k.ref}):null,(0,q.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k.label}),a.badge?(0,q.jsx)("span",{title:k.badged?a.badge.title:a.badge.missingTitle,style:{marginLeft:"auto",flex:"0 0 auto",fontSize:"0.75rem",color:k.badged?"var(--graview-ink-faint)":"var(--graview-warn)"},children:k.badged?a.badge.symbol:"\u25CB"}):null]}),(0,q.jsx)("div",{style:{display:"flex",flex:1,minWidth:0,...H?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:x.columns.map(J=>{let ce=x.cells.find(W=>W.rowId===k.id&&W.columnId===J.id),ue=ce!==void 0;return(0,q.jsxs)("div",{"data-graview-mark":"",...ue?{"data-graview-pick":J.id,"data-graview-emphasis":z.size===0?"plain":z.has(J.id)&&z.has(k.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(ra(ce))}:{},title:ue?`${J.label} answers ${k.ref||k.label}`:`${J.label} does not answer ${k.ref||k.label}`,style:H?{flex:"0 0 auto",minHeight:24,boxSizing:"border-box",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 9px 2px 7px",borderRadius:6,border:"1px solid var(--graview-edge)",fontSize:"0.75rem",color:ue?"var(--graview-ink)":"var(--graview-ink-faint)"}:{flex:1,minWidth:28,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",borderLeft:"1px solid var(--graview-edge)"},children:[(0,q.jsx)("span",{style:oa(ue,se,z.has(J.id)&&z.has(k.id),z.size>0)}),H?(0,q.jsx)("span",{children:J.label}):null]},J.id)})})]})]},k.id)})}),C?(0,q.jsx)(ia,{box:f,joins:C,shape:`${H?"stacked":"matrix"} ${l??""}`}):null]})})}var ra=e=>[e.rowId,e.columnId,...e.via??[]];function pr(e){let t=e?.closest?.("[data-graview-joins]")?.getAttribute("data-graview-joins");if(!t)return null;try{let n=JSON.parse(t);return Array.isArray(n)&&n.every(r=>typeof r=="string")?n:null}catch{return null}}var xn=(e,t,n)=>Math.min(n,Math.max(t,e));function aa(e){let t=e.getBoundingClientRect(),n=typeof document.createRange=="function"?document.createRange():null;n?.selectNodeContents(e);let r=typeof n?.getBoundingClientRect=="function"?n.getBoundingClientRect():null;return r&&r.width>0&&r.height>0?r:t}function ia({box:e,joins:t,shape:n}){let[r,a]=(0,ke.useState)([]),i=JSON.stringify(t);return(0,ke.useLayoutEffect)(()=>{let s=e.current;if(!s||typeof window>"u")return;let p=()=>{let d=s.getBoundingClientRect(),h=s.offsetWidth>0&&d.width>0?d.width/s.offsetWidth:1,f=[...s.querySelectorAll("[data-graview-joins]")].find(S=>S.getAttribute("data-graview-joins")===i);if(!f){a([]);return}let l=f.getBoundingClientRect(),c=[];for(let S of JSON.parse(i)){let u=[...s.querySelectorAll("[data-graview-pick]")].find(C=>C.getAttribute("data-graview-pick")===S&&!C.closest("[data-graview-mark]"));if(!u)continue;let x=aa(u),A=xn(l.left+l.width/2,x.left,x.right),E=xn(l.top+l.height/2,x.top,x.bottom),z=xn(A,l.left,l.right),w=xn(E,l.top,l.bottom);c.push({id:S,x1:(z-d.left)/h,y1:(w-d.top)/h,x2:(A-d.left)/h,y2:(E-d.top)/h})}a(c)};p();let g=0,b=()=>{g===0&&(g=requestAnimationFrame(()=>{g=0,p()}))};return document.addEventListener("scroll",b,{capture:!0,passive:!0}),window.addEventListener("resize",b,{passive:!0}),()=>{document.removeEventListener("scroll",b,{capture:!0}),window.removeEventListener("resize",b),g!==0&&cancelAnimationFrame(g)}},[e,i,n]),(0,q.jsx)("svg",{"aria-hidden":"true","data-coverage-join":i,style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none",zIndex:Ae.over},children:r.map(s=>(0,q.jsxs)("g",{"data-coverage-join-to":s.id,children:[(0,q.jsx)("line",{x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,stroke:"var(--graview-accent)",strokeWidth:1.6,strokeLinecap:"round"}),(0,q.jsx)("circle",{cx:s.x2,cy:s.y2,r:2.6,fill:"var(--graview-accent)"})]},s.id))})}function oa(e,t,n,r){return e?{width:13,height:13,borderRadius:4,background:n||!r?"var(--graview-accent)":"var(--graview-accent-dim)",boxShadow:n&&r?"0 0 12px -2px var(--graview-accent)":void 0}:{width:5,height:5,borderRadius:1,background:t?"var(--graview-warn)":"var(--graview-edge)",opacity:t?.5:1}}function la({grid:e}){let t=e.rows.filter(a=>a.required),n=t.filter(a=>a.covered).length,r=t.length===0?1:n/t.length;return(0,q.jsx)("div",{role:"img","aria-label":`${n} of ${t.length} covered`,style:{height:6,borderRadius:999,overflow:"hidden",background:"var(--graview-edge)"},children:(0,q.jsx)("div",{style:{width:`${Math.round(r*100)}%`,height:"100%",background:r===1?"var(--graview-accent)":"var(--graview-warn)"}})})}function yr(e){function t(n){let{store:r}=ae(),a=qe(r.graph,r.schema,n.nodes).filter(g=>g.kind===e.rows),{arranged:i,bar:s}=Re(n,{lensAllows:{sort:!1,group:!1},subject:a,kind:e.rows,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),p=(0,q.jsx)(ta,{schema:r.schema,...n,options:e,...s?{rowsKept:new Set(i.nodes.map(g=>g.id))}:{}});return s?(0,q.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,p]}):p}return{name:"coverage",requiredRoles:[...Ur],options:e,View:t,build(n,r,a){return fr(n,r,e,a)}}}function sa(){let e=(0,ke.useRef)(null),t=(0,ke.useRef)(null),[n,r]=(0,ke.useState)(new Set);return(0,ke.useEffect)(()=>{let a=t.current;if(!a||typeof window>"u")return;let i=a.parentElement;for(;i&&!/(auto|scroll)/.test(getComputedStyle(i).overflowX);)i=i.parentElement;if(!i)return;let s=0,p=()=>{s=0;let b=e.current?.getBoundingClientRect().right??0,d=new Set;for(let h of a.querySelectorAll("[data-graview-column]")){let f=h.getBoundingClientRect();f.left+f.width/2<b&&d.add(h.dataset.graviewColumn)}r(h=>h.size===d.size&&[...d].every(f=>h.has(f))?h:d)},g=()=>{s===0&&(s=requestAnimationFrame(p))};return p(),i.addEventListener("scroll",g,{passive:!0}),()=>{i.removeEventListener("scroll",g),s!==0&&cancelAnimationFrame(s)}},[]),{corner:e,heads:t,hidden:n}}var vr=["regions","outline"],Ye=class extends Error{constructor(n,r){super(`${n}
32
+ ${r}`);this.hint=r;this.name="PlanBindingError"}},Sn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',wr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function kn(e,t,n,r){let a=u=>u,i=u=>r?ve(r.tryDefinition(u.kind),u):String(a(u).label??u.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new Ye(`No kind is declared for "${n.regions}".`,Sn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Ye(`No kind is declared for "${n.markers}".`,Sn);let s=e.filter(u=>u.kind===n.regions);if(!r&&s.length===0)throw new Ye(`Nothing to draw: no "${n.regions}" nodes.`,Sn);let g=r?.tryDefinition(n.regions)?.fields?.shape;if(g!==void 0&&!(n.outline in g))throw new Ye(`"${n.regions}" has no field called "${n.outline}".`,Sn);let b=(()=>{let u=new Map;if(n.nests)for(let x of t)x.kind===n.nests&&u.set(x.from,x.to);return x=>{let A=0,E=u.get(x),z=new Set([x]);for(;E!==void 0&&!z.has(E)&&A<s.length;)z.add(E),A+=1,E=u.get(E);return A}})(),d=n.markers?e.filter(u=>u.kind===n.markers):[],h=new Map;if(n.within)for(let u of t)u.kind===n.within&&h.set(u.from,u.to);let f=[],l=new Map;for(let u of d){let x=n.at===void 0?void 0:a(u)[n.at],A=h.get(u.id);if(!wr(x)||A===void 0){f.push({id:u.id,label:i(u)});continue}let E=n.markerKind===void 0?void 0:a(u)[n.markerKind],z=l.get(A)??[];z.push({id:u.id,label:i(u),at:x,...typeof E=="string"?{what:E}:{}}),l.set(A,z)}let c=[],S=[];for(let u of s){let x=a(u)[n.outline];if(!Array.isArray(x)||x.length<3||!x.every(wr)){c.push({id:u.id,label:i(u)});continue}let A=n.regionKind===void 0?void 0:a(u)[n.regionKind];S.push({id:u.id,label:i(u),outline:x,center:Et(x),depth:b(u.id),markers:l.get(u.id)??[],...typeof A=="string"?{what:A}:{}})}return S.sort((u,x)=>u.depth-x.depth),{regions:S,undrawn:c,strays:f}}var Be=Y(Ne(),1);var B=Y(ee(),1);function br({map:e,options:t,implicated:n,flagged:r}){return(0,B.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:".25rem"},children:[e.regions.map(a=>{let i=Cn(a.id,n,r);return(0,B.jsxs)("li",{"data-graview-pick":a.id,...i?{"data-graview-emphasis":i}:{},style:{display:"flex",flexWrap:"wrap",gap:".5rem",justifyContent:"space-between",minWidth:0,padding:".25rem .4rem",borderRadius:".35rem",background:i==="flagged"?Jn(a.what,i,t.hues):void 0},children:[(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,B.jsxs)("span",{style:{opacity:.7,whiteSpace:"nowrap"},children:[a.what?`${a.what} \xB7 `:"",a.markers.length]})]},a.id)}),e.undrawn.map(a=>(0,B.jsxs)("li",{"data-graview-pick":a.id,style:{display:"flex",gap:".5rem",opacity:.7,padding:".25rem .4rem"},children:[(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,B.jsx)("span",{style:{whiteSpace:"nowrap"},children:t.undrawnLabel??"not drawn"})]},a.id))]})}var Qn=1e3,xr=.022,rn={minHeight:"1.9rem",padding:".25rem .65rem",borderRadius:".35rem",border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",font:"inherit",fontSize:"0.9375rem",cursor:"pointer"},Cn=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},On=(e,t)=>(e===void 0?void 0:t?.[e])??fe(e??"region"),Jn=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${On(e,n)} 52% 48%) 24%, var(--graview-panel))`,Sr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${On(e,n)} 48% 42%) 78%, var(--graview-ink))`;function da(e){let t=e.currentTarget.getBoundingClientRect(),n=r=>Math.round(Math.max(0,Math.min(1,r))*1e3)/1e3;return{x:n(t.width===0?0:(e.clientX-t.left)/t.width),y:n(t.height===0?0:(e.clientY-t.top)/t.height)}}function kr({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:i,implicated:s,flagged:p}){let{store:g}=ae(),b=g.graph.allEdges(),d=g.graph.allNodes(),h=n===void 0?void 0:new Set(n.map(y=>y.id)),f=h===void 0?d:d.filter(y=>y.kind!==t.regions||h.has(y.id)),l=kn(f,b,t,e),c=l.regions.length,S=l.regions.reduce((y,$)=>y+$.markers.length,0);if(a==="glyph")return(0,B.jsx)(be,{label:`${r??"Ground"} \xB7 ${c}`,...l.undrawn.length>0?{meta:`+${l.undrawn.length} undrawn`}:{},selected:i});if(a==="summary")return(0,B.jsx)(de,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,children:(0,B.jsx)(br,{map:l,options:t,...s?{implicated:s}:{},...p?{flagged:p}:{}})});let u=(0,Be.useMemo)(()=>{let y=1/0,$=1/0,L=-1/0,K=-1/0,Z=V=>{V.x<y&&(y=V.x),V.x>L&&(L=V.x),V.y<$&&($=V.y),V.y>K&&(K=V.y)};for(let V of l.regions){for(let he of V.outline)Z(he);for(let he of V.markers)Z(he.at)}if(!Number.isFinite(y)||L-y<=0||K-$<=0)return{x0:0,y0:0,x1:1,y1:1};let le=Math.max(L-y,K-$)*.04;return{x0:y-le,y0:$-le,x1:L+le,y1:K+le}},[l.regions]),x=(u.x1-u.x0)/(u.y1-u.y0),A=t.aspect??Math.min(3.2,Math.max(.55,x)),E=Math.round(Qn/(u.x1-u.x0)),z=Math.round(E*(u.x1-u.x0)),w=Math.round(z/A),C={x:u.x0*E,y:u.y0*E-(w-E*(u.y1-u.y0))/2,w:z,h:w},m=E,M=C.w,D=(s?.length??0)>0||(p?.length??0)>0,H=(0,Be.useRef)(null),{touchable:k,legible:F}=bt(H,{units:C.w,target:M*xr*2}),T=Dn("--graview-font-display","serif"),Q=Dn("--graview-font-body","sans-serif"),{named:se,placed:oe,tagged:J}=(0,Be.useMemo)(()=>{let y=[],$=M*.012,L=Qn*.004,K=(ne,U)=>!y.some(me=>me!==U&&Lt({x0:ne.x0-L,y0:ne.y0-L,x1:ne.x1+L,y1:ne.y1+L},me)),Z=[...l.regions].sort((ne,U)=>Bn(U.outline)-Bn(ne.outline)),le=new Map,V=new Map;for(let ne of Z){let U=Rt(ne.outline),me=Math.max(0,(U.bottom-U.top)*m*.55),Me=null;for(let $e of[.12,.26,.42,.6,.78]){let Ce=U.top+$e*(U.bottom-U.top),Le=zn(ne.outline,Ce),$n=Math.max(0,(Le.x1-Le.x0)*E-$*2),ye=Mt(ne.label,{room:$n,height:me,size:M*.023,floor:M*.015,measure:T});if(ye===null)continue;let Ie=Math.max(...ye.lines.map(Pr=>T(Pr,ye.fontSize))),Te=ye.lines.length*ye.fontSize*1.15,Zn=U.top*m+$+Te/2,et=U.bottom*m-$-Te/2,on=et<Zn?(U.top+U.bottom)*m/2:Math.min(Math.max(Ce*m,Zn),et),An=zn(ne.outline,on/m),Rn=An.x0*E+$;if(Ie>(An.x1-An.x0)*E-$*2)continue;let nt={x0:Rn,y0:on-Te/2,x1:Rn+Ie,y1:on+Te/2};if(K(nt)){y.push(nt),Me={fitted:ye,x:Rn,y:on};break}}le.set(ne.id,Me?.fitted??null),Me!==null&&V.set(ne.id,{x:Me.x,y:Me.y})}let he=M*.018,_=new Map,G=M*.011+M*.004,we=new Map;for(let ne of l.regions)for(let U of ne.markers){let me={x0:U.at.x*E-G,y0:U.at.y*m-G,x1:U.at.x*E+G,y1:U.at.y*m+G};we.set(U.id,me),y.push(me)}for(let ne of k?l.regions:[])for(let U of ne.markers){let me=M*.018,Me=Q(U.label,he),$e=U.at.x*E,Ce=U.at.y*m,Le=he*1.15,$n=[{x:$e+me,y:Ce,anchor:"start"},{x:$e-me,y:Ce,anchor:"end"},{x:$e+me*.7,y:Ce-Le,anchor:"start"},{x:$e-me*.7,y:Ce-Le,anchor:"end"},{x:$e+me*.7,y:Ce+Le,anchor:"start"},{x:$e-me*.7,y:Ce+Le,anchor:"end"},{x:$e,y:Ce-Le*1.1,anchor:"start"},{x:$e,y:Ce+Le*1.1,anchor:"start"}];for(let ye of $n){let Ie=ye.anchor==="start"?ye.x:ye.x-Me,Te={x0:Ie,y0:ye.y-he*.62,x1:Ie+Me,y1:ye.y+he*.62};if(!(Ie<C.x+4||Ie+Me>C.x+C.w-4)&&!(Te.y0<C.y+2||Te.y1>C.y+C.h-2)&&K(Te,we.get(U.id))){y.push(Te),_.set(U.id,{at:{x:ye.x,y:ye.y},anchor:ye.anchor,size:he});break}}}return{named:le,placed:V,tagged:_}},[l.regions,Qn,m,k,T,Q]),ce=(0,Be.useMemo)(()=>{let y=[];for(let $ of l.regions)(se.get($.id)?.whole??!1)===!1&&y.push({id:$.id,label:$.label,what:$.what,round:!1});for(let $ of l.regions)for(let L of $.markers)(!k||!J.has(L.id))&&y.push({id:L.id,label:L.label,what:L.what,round:!0});return y},[l.regions,se,J,k]),{principal:ue}=ae(),[W,R]=(0,Be.useState)(null),v=t.draw!==void 0,o=t.place!==void 0,O=y=>{if(W===null)return;y.stopPropagation();let $=da(y);if(W.kind==="marker"){g.apply({name:t.place.act,args:{[t.place.id]:W.id,[t.place.at]:$}},{author:ue,intent:`Placed ${W.label} on the map`}),R(null);return}R({...W,corners:[...W.corners,$]})},P=()=>{W===null||W.kind!=="region"||W.corners.length<3||(g.apply({name:t.draw.act,args:{[t.draw.id]:W.id,[t.draw.outline]:W.corners}},{author:ue,intent:`Drew ${W.label} on the map \u2014 ${W.corners.length} corners`}),R(null))},N=W===null?l.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:W.kind==="marker"?`Click where ${W.label} stands.`:W.corners.length<3?`Click the corners of ${W.label} \u2014 ${3-W.corners.length} more to make an area.`:`${W.corners.length} corners. Keep clicking, or press Done.`;return F?(0,B.jsxs)(de,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,...l.undrawn.length>0?{meta:`${l.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:i,fit:!0,children:[(0,B.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${C.w} / ${C.h}`,overflow:"hidden"},children:(0,B.jsxs)("svg",{ref:H,viewBox:`${C.x} ${C.y} ${C.w} ${C.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:W!==null?"application":k?"group":"img","aria-label":W===null?`${r??"The plan"}: ${c} drawn, ${S} standing in them`:N??"Drawing",onClick:O,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:W===null?void 0:"crosshair",border:"1px dashed color-mix(in oklab, var(--graview-edge) 80%, transparent)",borderRadius:".4rem",backgroundImage:"linear-gradient(color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px)",backgroundSize:"10% 10%"},children:[(0,B.jsx)("text",{x:C.x+C.w-M*.028,y:C.y+M*.034,fontSize:M*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),N!==null&&l.regions.length===0?(0,B.jsx)("text",{x:C.x+C.w/2,y:C.y+C.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:M*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:N}):null,W!==null&&W.kind==="region"&&W.corners.length>0?(0,B.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,B.jsx)("polyline",{points:W.corners.map(y=>`${y.x*E},${y.y*m}`).join(" "),fill:W.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),W.corners.map((y,$)=>(0,B.jsx)("circle",{cx:y.x*E,cy:y.y*m,r:M*.008,fill:"var(--graview-accent)"},$))]}):null,l.regions.map(y=>{let $=Cn(y.id,s,p),L=D&&$===void 0?.34:1,K=y.outline.map(Z=>`${Z.x*E},${Z.y*m}`).join(" ");return(0,B.jsx)("g",{"data-graview-pick":y.id,...$?{"data-graview-emphasis":$}:{},role:"button","aria-label":`${y.label}${y.what?`, ${y.what}`:""}, ${y.markers.length} standing in it`,style:{opacity:L,cursor:"pointer"},children:(0,B.jsx)("polygon",{points:K,fill:Jn(y.what,$,t.hues),stroke:Sr(y.what,$,t.hues),strokeWidth:$==="flagged"?5:2.5,strokeLinejoin:"round"})},y.id)}),l.regions.flatMap(y=>y.markers.map($=>{let L=Cn($.id,s,p),K=D&&L===void 0?.34:1;return(0,B.jsxs)("g",{...k?{"data-graview-pick":$.id,role:"button","aria-label":`${$.label}${$.what?`, ${$.what}`:""}, in ${y.label}`}:{"aria-hidden":!0},...L?{"data-graview-emphasis":L}:{},style:{opacity:K,cursor:k?"pointer":"default"},children:[k?(0,B.jsx)("circle",{cx:$.at.x*E,cy:$.at.y*m,r:M*xr,fill:"transparent"}):null,(0,B.jsx)("circle",{cx:$.at.x*E,cy:$.at.y*m,r:M*.011,fill:L==="flagged"?"var(--graview-warn)":`hsl(${On($.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:M*.004}),J.has($.id)?(0,B.jsx)("text",{x:J.get($.id).at.x,y:J.get($.id).at.y,textAnchor:J.get($.id).anchor,dominantBaseline:"middle",fontSize:J.get($.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,J.get($.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${$.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:$.label}):null]},$.id)})),l.regions.map(y=>{let $=se.get(y.id),L=oe.get(y.id);if(!$||L===void 0)return null;let K=Cn(y.id,s,p);return(0,B.jsx)("text",{x:L.x,y:L.y-($.lines.length-1)*$.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:$.fontSize,fill:"var(--graview-ink)",opacity:D&&K===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,$.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${y.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:$.lines.map((Z,le)=>(0,B.jsx)("tspan",{x:L.x,dy:le===0?0:$.fontSize*1.15,children:Z},Z+String(le)))},`label-${y.id}`)})]})}),ce.length>0?(0,B.jsx)("ul",{"data-testid":"map-key",style:{margin:".5rem 0 0",padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:".2rem .75rem",fontSize:"0.875rem"},children:ce.map(y=>(0,B.jsxs)("li",{"data-graview-pick":y.id,style:{display:"flex",alignItems:"center",gap:".35rem",minWidth:0,minHeight:"max(1.5rem, 24px)",padding:"0 .15rem",cursor:"pointer"},children:[(0,B.jsx)("span",{"aria-hidden":"true",style:{width:y.round?".55rem":".7rem",height:y.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:y.round?"50%":".15rem",background:y.round?`hsl(${On(y.what,t.hues)} 55% 45%)`:Jn(y.what,void 0,t.hues),border:y.round?void 0:`1px solid ${Sr(y.what,void 0,t.hues)}`}}),(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:y.label})]},y.id))}):null,W!==null?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[l.regions.length>0&&N!==null?(0,B.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:N}):null,W.kind==="region"?(0,B.jsxs)("button",{type:"button",onClick:P,disabled:W.corners.length<3,"data-testid":"draw-done",style:{...rn,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",W.label]}):null,W.kind==="region"&&W.corners.length>0?(0,B.jsx)("button",{type:"button",onClick:()=>R({...W,corners:W.corners.slice(0,-1)}),style:rn,children:"Undo a corner"}):null,(0,B.jsx)("button",{type:"button",onClick:()=>R(null),style:rn,"data-testid":"draw-cancel",children:"Stop"})]}):(0,B.jsxs)(B.Fragment,{children:[v&&l.undrawn.length>0?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,B.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.undrawnLabel??"Not drawn yet",":"]}),l.undrawn.map(y=>(0,B.jsxs)("button",{type:"button",style:rn,onClick:()=>R({kind:"region",id:y.id,label:y.label,corners:[]}),"data-testid":`draw-${y.id}`,children:["Draw ",y.label]},y.id))]}):null,o&&l.strays.length>0?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,B.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.strayLabel??"Not placed",":"]}),l.strays.map(y=>(0,B.jsxs)("button",{type:"button",style:rn,onClick:()=>R({kind:"marker",id:y.id,label:y.label}),"data-testid":`place-${y.id}`,children:["Place ",y.label]},y.id))]}):null,t.help!==void 0&&(l.undrawn.length>0||l.strays.length>0)?(0,B.jsx)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem"},children:(0,B.jsx)("a",{href:t.help.href,"data-testid":"map-help",children:t.help.label})}):null,!v&&(l.undrawn.length>0||l.strays.length>0)?(0,B.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[l.undrawn.map(y=>y.label).join(", "),l.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",l.strays.map(y=>y.label).join(", "),l.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,B.jsx)(de,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,selected:i,children:(0,B.jsx)(br,{map:l,options:t,...s?{implicated:s}:{},...p?{flagged:p}:{}})})}var Or=Y(ee(),1);function Cr(e){function t(n){let{store:r}=ae();return(0,Or.jsx)(kr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...vr],options:e,View:t,build(n,r,a){return kn(n,r,e,a)}}}var ge=Y(ee(),1);function ca(e,t,n){let r=t.flatMap(i=>(i.subject&&i.subject.kinds!=="*"?i.subject.kinds:[null]).map(p=>({name:i.name,title:i.title??i.name,kind:p}))),a=[];for(let i of n){let s={kind:"human",id:"themselves",roles:[i]};for(let p of r){let g=p.kind??void 0,b=Ln(e,s,p.name,g).ok,d=!b&&Ln(e,s,p.name,g,void 0,"themselves").ok;a.push({role:i,act:p.name,kind:p.kind,may:b?"yes":d?"self":"no"})}}return{roles:n,acts:r,cells:a}}function ua({label:e,fidelity:t,mode:n}){let{store:r}=ae(),a=r.policy,i=a?.roles??[],s=r.allMutations().filter(h=>!h.derived).map(h=>({name:h.name,...h.title?{title:h.title}:{},...h.subject?{subject:h.subject}:{}})),p=ca(a,s,i),g=e??"Who may do what";if(!a||i.length===0)return(0,ge.jsxs)("div",{"data-testid":"reach-lens",style:{padding:14,color:"var(--graview-ink-muted)",fontSize:"0.875rem"},children:[g,": this installation has no policy, so everyone may do everything."]});if(t==="glyph")return(0,ge.jsx)(be,{label:`${g} \xB7 ${i.length} ${i.length===1?"role":"roles"}`,hue:fe("role")});let b=n==="fullscreen",d=h=>h==="yes"?"\u25CF":h==="self"?"\u25D0":"\xB7";return(0,ge.jsxs)("div",{"data-testid":"reach-lens",style:{display:"grid",gap:10,padding:b?0:14,borderRadius:"var(--graview-radius, 12px)",background:b?"transparent":"var(--graview-panel)",border:b?"none":"1px solid var(--graview-edge)",color:"var(--graview-ink)",minWidth:0},children:[(0,ge.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,ge.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:g}),(0,ge.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"\u25CF may \xB7 \u25D0 on their own record \xB7 read from the policy"})]}),(0,ge.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,ge.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,ge.jsx)("thead",{children:(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("th",{scope:"col",style:{textAlign:"left",padding:"4px 10px 6px 0",fontWeight:500,color:"var(--graview-ink-faint)",fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase"},children:"Role"}),p.acts.map(h=>(0,ge.jsxs)("th",{scope:"col",title:h.kind?`${h.title}, on ${ot(sn(r.schema.tryDefinition(h.kind),h.kind))}`:h.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[h.title,h.kind?(0,ge.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",h.kind]}):null]},`${h.name}|${h.kind??""}`))]})}),(0,ge.jsx)("tbody",{children:p.roles.map(h=>(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:h}),p.acts.map(f=>{let l=p.cells.find(c=>c.role===h&&c.act===f.name&&c.kind===f.kind);return(0,ge.jsx)("td",{"data-graview-reach":l.may,title:`${h} ${l.may==="yes"?"may":l.may==="self"?"may, on their own record,":"may not"} ${f.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:l.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:l.may==="no"?"0.875rem":"0.8125rem"},children:d(l.may)},`${f.name}|${f.kind??""}`)})]},h))})]})})]})}var $r={name:"reach",requiredRoles:[],View:ua};var Oe=Y(Ne(),1);var ie=Y(ee(),1),Rr=["start","end"];function ga(e,t,{pad:n=45,minimum:r=480}={}){if(e.length===0)return{start:0,end:t};let a=Math.min(...e.map(b=>b.start)),i=Math.max(...e.map(b=>b.end)),s=Math.max(0,a-n),p=Math.min(t,i+n),g=r-(p-s);return g>0&&(s=Math.max(0,s-g/2),p=Math.min(t,s+r)),{start:Math.floor(s),end:Math.ceil(p)}}function ma(e){let t=[...e].sort((i,s)=>i.start-s.start||i.end-s.end||i.id.localeCompare(s.id)),n=[],r=t.map(i=>{let s=n.findIndex(p=>p<=i.start);return s===-1?(s=n.length,n.push(i.end)):n[s]=i.end,{...i,lane:s,lanes:1}}),a=Math.max(1,n.length);return r.map(i=>({...i,lanes:a}))}var Xn=class extends Error{constructor(t,n){super(`The timeline lens needs ${n.join(" and ")} for "${t}". Add them to the lens bindings: { ${t}: { ${n.map(r=>`${r}: "<field name>"`).join(", ")} } }.`),this.name="TimelineBindingError"}};function Er(e,t,n){let r=He(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=Rr.filter(d=>{let h=r[d];return h?i?!(h in i):!(h in a):!0});if(s.length>0)throw new Xn(e.kind,s);let p=Number(a[r.start]??Number.NaN),g=Number(a[r.end]??p);if(!Number.isFinite(p))return null;let b=[];if(r.columns){let d=a[r.columns];Array.isArray(d)&&b.push(...d.map(String))}if(r.column){let d=a[r.column];d!=null&&b.push(String(d))}return{id:e.id,kind:e.kind,label:ve(n?.tryDefinition(e.kind),e),columnIds:b,start:p,end:Number.isFinite(g)?Math.max(g,p):p}}function pa(e,t){let n=Math.round(t),r=a=>`linear-gradient(hsl(${n} 55% var(--graview-tint-lightness) / ${a}), hsl(${n} 55% var(--graview-tint-lightness) / ${a})), var(--graview-panel)`;return e==="lit"?{border:"1px solid var(--graview-accent)",background:r("calc(var(--graview-tint-alpha) * 1.15)"),color:"var(--graview-ink)",boxShadow:"0 0 16px -4px var(--graview-accent)"}:e==="dimmed"?{border:"1px solid var(--graview-edge)",background:r("calc(var(--graview-tint-alpha) * 0.25)"),color:"var(--graview-ink-muted)"}:{border:`1px solid hsl(${n} 50% var(--graview-tint-lightness) / 0.42)`,background:r("var(--graview-tint-alpha)"),color:"var(--graview-ink)"}}var fa=.045,an=52,Mr=4,ha=44,ya=240;function wa({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:p=[],flagged:g=[]}){let b=new Set([...p,...s]),d=w=>b.size===0?"plain":b.has(w)?"lit":"dimmed",h=new Set(g),f=(e??[]).map(w=>Er(w,a.bindings,i)).filter(w=>w!==null),l=a.hueOf??(w=>fe(w.kind));if(n==="glyph")return(0,ie.jsx)(be,{label:`${t??"Timeline"} \xB7 ${f.length}`,hue:fe("timeline")});if(n==="summary")return(0,ie.jsx)(de,{title:t??"Timeline",meta:`${f.length} items`,tone:"muted",children:(0,ie.jsx)(Pe,{max:a.columns.length,items:a.columns.map(w=>({id:w.id,label:`${w.label} ${f.filter(C=>C.columnIds.includes(w.id)).length}`,hue:fe(w.id)}))})});let c=a.format??String,S=ga(f,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),u=S.end-S.start,x=w=>(w-S.start)/u*100,A=a.tick??Math.max(60,Math.round(u/8/60)*60),E=[];for(let w=Math.ceil(S.start/A)*A;w<=S.end;w+=A)E.push(w);let z=r==="fullscreen";return(0,ie.jsx)(de,{title:t??"Timeline",meta:`${c(S.start)} \u2013 ${c(S.end)}`,style:{gap:12,...z?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,ie.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,ie.jsx)(xa,{columns:a.columns}),(0,ie.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(ya,Math.ceil(u/A)*ha)},children:[E.map((w,C)=>(0,ie.jsx)("div",{style:{position:"absolute",left:an-8,right:0,top:C===E.length-1?"calc(100% - 1px)":`${x(w)}%`,height:1,background:"var(--graview-edge)"},children:(0,ie.jsx)("span",{style:{position:"absolute",left:-(an-8),...C===E.length-1?{bottom:2}:{top:-7},width:an-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:c(w)})},w)),(0,ie.jsx)("div",{style:{position:"absolute",inset:0,left:an,display:"flex",gap:Mr},children:a.columns.map(w=>(0,ie.jsx)(Sa,{spans:f.filter(C=>C.columnIds.includes(w.id)),window:S,format:c,hue:l,emphasisOf:d,brokenIds:h},w.id))})]})]})})}function va(){let e=(0,Oe.useRef)(null),[t,n]=(0,Oe.useState)(new Set);return(0,Oe.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let a=[...r.querySelectorAll("[data-graview-span-name]")].filter(i=>i.scrollWidth>i.clientWidth+.5).map(i=>i.getAttribute("data-graview-span-name")).filter(i=>!t.has(i));a.length>0&&n(new Set([...t,...a]))}),(0,Oe.useLayoutEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let a=Math.round(r.clientWidth),i=new ResizeObserver(()=>{let s=Math.round(r.clientWidth);s!==a&&(a=s,n(new Set))});return i.observe(r),()=>i.disconnect()},[]),{column:e,oneLine:t}}var ba=(e,t)=>t===0?e:e.slice(0,t),Ar=[0,3,1];function xa({columns:e}){let t=(0,Oe.useRef)(null),[n,r]=(0,Oe.useState)(0);(0,Oe.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(p=>p.scrollWidth>p.clientWidth+.5)&&n<Ar.length-1&&r(n+1)}),(0,Oe.useLayoutEffect)(()=>{let i=t.current;if(!i||typeof ResizeObserver>"u")return;let s=i.clientWidth,p=new ResizeObserver(()=>{i.clientWidth!==s&&(s=i.clientWidth,r(0))});return p.observe(i),()=>p.disconnect()},[]);let a=Ar[n];return(0,ie.jsx)("div",{ref:t,style:{display:"flex",gap:Mr,paddingLeft:an,paddingBottom:10},children:e.map(i=>{let s=ba(i.label,a);return(0,ie.jsx)("div",{"data-graview-day-head":i.id,title:s===i.label?void 0:i.label,...s===i.label?{}:{"aria-label":i.label},style:{flex:1,minWidth:0,overflow:"hidden",whiteSpace:"nowrap",fontSize:"0.75rem",letterSpacing:a===1?0:"0.18em",textTransform:"uppercase",textAlign:"center",color:"var(--graview-ink-muted)"},children:s},i.id)})})}function Sa({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:i}){let s=t.end-t.start,p=l=>(l-t.start)/s*100,g=l=>(l.end-l.start)/s<fa,b=ma(e.filter(l=>!g(l))),d=[...e.filter(g)].sort((l,c)=>l.start-c.start),h=Math.max(1,...b.map(l=>l.lanes)),f=va();return(0,ie.jsxs)("div",{ref:f.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[b.map(l=>{let c=100/h,S=Math.max(1.6,p(l.end)-p(l.start));return(0,ie.jsx)("div",{"data-graview-span":l.id,"data-graview-pick":l.id,"data-graview-emphasis":a(l.id),"data-graview-flagged":i.has(l.id)?"":void 0,title:`${l.label} \xB7 ${n(l.start)}\u2013${n(l.end)}`,style:{position:"absolute",top:`${p(l.start)}%`,height:`${S}%`,left:`${l.lane*c}%`,width:`${c}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,ie.jsx)("div",{"data-graview-span-name":l.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...f.oneLine.has(l.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...pa(a(l.id),r(l)),...i.has(l.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:S>=3.4?l.label:null})},l.id)}),d.map(l=>{let c=a(l.id);return(0,ie.jsxs)("div",{"data-graview-span":l.id,"data-graview-pick":l.id,"data-graview-emphasis":c,"data-graview-moment":"",title:`${l.label} \xB7 ${n(l.start)}`,style:{position:"absolute",top:`${p(l.start)}%`,right:0,maxWidth:"100%",boxSizing:"border-box",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"flex-end",gap:5,minHeight:24,padding:"0 4px 0 8px",borderRadius:999,background:"linear-gradient(90deg, transparent, var(--graview-ground) 35%)"},children:[(0,ie.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:c==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(l.start)}),(0,ie.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:c==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:l.label}),(0,ie.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:i.has(l.id)?"var(--graview-warn)":c==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(l))} 60% var(--graview-tint-lightness))`,boxShadow:i.has(l.id)?"0 0 0 3px var(--graview-warn)":c==="lit"?"0 0 0 3px var(--graview-accent-dim)":c==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(l))} 60% var(--graview-tint-lightness) / 0.45)`}})]},l.id)})]})}function Lr(e){function t(n){let{store:r}=ae(),a=Object.keys(e.bindings),{nodes:i,bar:s}=Re(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...a[0]?{kind:(n.nodes??[]).find(g=>a.includes(String(g.kind)))?.kind??a[0]}:{}}),p=(0,ie.jsx)(wa,{schema:r.schema,...n,nodes:i,options:e});return De(n,r.schema,s?(0,ie.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,p]}):p)}return{name:"timeline",requiredRoles:[...Rr],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>Er(a,e.bindings,r)).filter(a=>a!==null)}}}var Qe=Y(ee(),1),Tr=new WeakMap;function ka(e){return e===1440?t=>Je(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Je(Math.floor(t)*60):t=>String(t)}function Ca(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Lr({...t,extent:n,format:ka(n)}).View}case"calendar":return lr({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return yr(t).View;case"board":return qt(t).View;case"plan":return Cr(t).View;case"reach":return $r.View;case"columns":return cr(t).View;case"blocks":return Oa(vt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function Oa(e,t){return n=>{let r=(0,Qe.jsx)(Vt,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,Qe.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode==="fullscreen"?(0,Qe.jsx)("div",{style:{padding:"14px 16px"},children:r}):(0,Qe.jsx)(de,{title:n.label??"",children:r})}}function Mo(e){let t=Tr.get(e);if(!t){let n=Ca(e),r=a=>(0,Qe.jsx)(n,{...a,label:e.title});Tr.set(e,t=r)}return t}export{ka as a,Mo as b};
@@ -1 +1 @@
1
- import{c as b,d as J}from"./chunk.MWZK3HVG.js";import{a as O,f as q}from"./chunk.GR5Q4HTW.js";import{B as m,Ca as S,Eb as M,Kb as P,Lb as w,Na as j,Oa as A,Ya as v,ib as D,jb as L,kb as N,sa as R,sc as Z,tc as k,va as x}from"./chunk.WLPTY4BF.js";var E=n=>n.safeParse?.(void 0).success??!1,T=n=>b(n).shape,F=n=>{let s=b(n);if(m(s)?.type!=="literal")return;let e=m(s)?.values;return e&&e.length===1&&typeof e[0]=="string"?e[0]:void 0};function g(n,s){let e=E(s),o=b(s),r=m(o)?.type,l=M(s);if(l)return{control:"node",name:n,optional:e,kinds:l};let y=S(s);if(y)return{control:"linked",name:n,optional:e,relation:y};if(A(s)){let a=j(n);return{control:"repeat",name:n,optional:e,...a?{of:a}:{}}}if(r==="boolean")return{control:"boolean",name:n,optional:e};let p=R(o);if(p)return{control:"file",name:n,optional:e,...p==="image"?{image:!0}:p==="video"?{video:!0}:{}};if(r==="object"){let a=o.shape??{};return{control:"group",name:n,optional:e,fields:Object.entries(a).map(([c,d])=>g(c,d))}}if(r==="union"){let a=m(o)?.options??[],c=a.map(t=>T(t));if(c.every(t=>t!==void 0)){let t=Object.keys(c[0]??{}).find(f=>c.every(u=>F(u?.[f])!==void 0));if(t)return{control:"variant",name:n,optional:e,tag:t,options:a.map((f,u)=>({value:F(c[u]?.[t])??"",fields:Object.entries(c[u]??{}).filter(([h])=>h!==t).map(([h,z])=>g(h,z))}))}}let d=a.map(t=>F(t));return d.every(t=>t!==void 0)?{control:"choice",name:n,optional:e,options:d}:{control:"opaque",name:n,optional:e}}if(r==="array"){let a=m(o)?.element;return a!==void 0?{control:"list",name:n,optional:e,item:g(n,a)}:{control:"opaque",name:n,optional:e}}let i=J(s);return i.type==="text"?{control:"text",name:n,optional:e,...i.long?{long:!0}:{},...x(o)?{app:!0}:{},...O(o)?{markdown:!0}:{},...i.holds?{holds:i.holds}:{}}:i.type==="number"&&i.duration?{control:"text",name:n,optional:e,holds:"duration"}:i.type==="date"?{control:"date",name:n,optional:e,...i.time?{time:!0}:{},...i.instant?{instant:!0}:{}}:i.type==="number"?{control:"number",name:n,optional:e,...i.min===void 0?{}:{min:i.min},...i.max===void 0?{}:{max:i.max},...i.step===void 0?{}:{step:i.step},...i.amount?{amount:i.amount}:{}}:i.type==="choice"?{control:"choice",name:n,optional:e,options:i.options}:{control:"opaque",name:n,optional:e}}function B(n){let s=n.shape;return s?Object.entries(s).map(([e,o])=>g(e,o)):[]}function K(n,s){let e={...s};for(let o of n){let r=s[o.name];r===void 0&&!o.optional&&(o.control==="list"||o.control==="boolean")&&(e[o.name]=o.control==="list"?[]:!1),o.control==="text"&&o.holds&&typeof r=="string"&&(e[o.name]=r.trim()===""?void 0:o.holds==="duration"?q(r)??r:r.trim()),o.control==="group"&&r!==void 0&&typeof r=="object"&&r!==null&&(e[o.name]=K(o.fields,r))}return e}function C(n,s,e){let o=n.derived?.act==="edit"&&n.subject?e[n.subject.arg]:void 0,r=typeof o=="string"?s.getNode(o):void 0;return r?Object.fromEntries((n.writes??[]).filter(l=>r[l]!==void 0&&r[l]!==null).map(l=>[l,r[l]])):{}}function I(n,s){return Object.fromEntries(Object.entries(n).filter(([e,o])=>!Object.hasOwn(s,e)||JSON.stringify(o)!==JSON.stringify(s[e])))}function _(n,s,e,o){let r=Z.keptFrom?.(n,s),l=new Set;if(!r)return l;let y=Object.keys(e.input.shape??{});for(let c of e.creates??[]){let d=r({id:"\0new",kind:c});for(let t of y)d?.(t)&&l.add(t)}let p=o===void 0?void 0:n.graph.getNode(o),i=p&&n.schema.tryDefinition(p.kind),a=p&&r(p);if(i&&a)for(let c of w(e,i))a(c)&&y.includes(c)&&l.add(c);return l}function dn(n,s,e,o){let r=new Set,l=s?.sees??[];if(L(e)||!l.some(k))return r;let y=D(e),p=(d,t)=>{let f=l.filter(u=>u.kinds.includes(d)&&N(u,y));return f.some(k)?v.has(t)||f.some(u=>!k(u)||(u.fields===void 0||u.fields.includes(t))&&!u.hide?.includes(t)):!0},i=Object.keys(o.input.shape??{}),a=new Map,c=(d,t)=>a.set(d,a.get(d)===!0||t);for(let d of o.creates??[]){let t=Object.keys(n.tryDefinition(d)?.fields.shape??{});for(let f of i)t.includes(f)&&c(f,p(d,f))}for(let d of P(n,o)){let t=n.tryDefinition(d);if(t)for(let f of w(o,t))i.includes(f)&&c(f,p(d,f))}for(let[d,t]of a)t||r.add(d);return r}export{B as a,K as b,C as c,I as d,_ as e,dn as f};
1
+ import{c as b,d as J}from"./chunk.NSNGPQGT.js";import{a as O,f as q}from"./chunk.Z7JRBKA7.js";import{B as m,Ca as S,Fb as M,Lb as P,Mb as w,Na as j,Oa as A,Ya as v,ib as D,jb as L,kb as N,sa as R,va as x,vc as Z,wc as k}from"./chunk.5ZMENPY4.js";var E=n=>n.safeParse?.(void 0).success??!1,T=n=>b(n).shape,F=n=>{let s=b(n);if(m(s)?.type!=="literal")return;let e=m(s)?.values;return e&&e.length===1&&typeof e[0]=="string"?e[0]:void 0};function g(n,s){let e=E(s),o=b(s),r=m(o)?.type,l=M(s);if(l)return{control:"node",name:n,optional:e,kinds:l};let y=S(s);if(y)return{control:"linked",name:n,optional:e,relation:y};if(A(s)){let a=j(n);return{control:"repeat",name:n,optional:e,...a?{of:a}:{}}}if(r==="boolean")return{control:"boolean",name:n,optional:e};let p=R(o);if(p)return{control:"file",name:n,optional:e,...p==="image"?{image:!0}:p==="video"?{video:!0}:{}};if(r==="object"){let a=o.shape??{};return{control:"group",name:n,optional:e,fields:Object.entries(a).map(([c,d])=>g(c,d))}}if(r==="union"){let a=m(o)?.options??[],c=a.map(t=>T(t));if(c.every(t=>t!==void 0)){let t=Object.keys(c[0]??{}).find(f=>c.every(u=>F(u?.[f])!==void 0));if(t)return{control:"variant",name:n,optional:e,tag:t,options:a.map((f,u)=>({value:F(c[u]?.[t])??"",fields:Object.entries(c[u]??{}).filter(([h])=>h!==t).map(([h,z])=>g(h,z))}))}}let d=a.map(t=>F(t));return d.every(t=>t!==void 0)?{control:"choice",name:n,optional:e,options:d}:{control:"opaque",name:n,optional:e}}if(r==="array"){let a=m(o)?.element;return a!==void 0?{control:"list",name:n,optional:e,item:g(n,a)}:{control:"opaque",name:n,optional:e}}let i=J(s);return i.type==="text"?{control:"text",name:n,optional:e,...i.long?{long:!0}:{},...x(o)?{app:!0}:{},...O(o)?{markdown:!0}:{},...i.holds?{holds:i.holds}:{}}:i.type==="number"&&i.duration?{control:"text",name:n,optional:e,holds:"duration"}:i.type==="date"?{control:"date",name:n,optional:e,...i.time?{time:!0}:{},...i.instant?{instant:!0}:{}}:i.type==="number"?{control:"number",name:n,optional:e,...i.min===void 0?{}:{min:i.min},...i.max===void 0?{}:{max:i.max},...i.step===void 0?{}:{step:i.step},...i.amount?{amount:i.amount}:{}}:i.type==="choice"?{control:"choice",name:n,optional:e,options:i.options}:{control:"opaque",name:n,optional:e}}function B(n){let s=n.shape;return s?Object.entries(s).map(([e,o])=>g(e,o)):[]}function K(n,s){let e={...s};for(let o of n){let r=s[o.name];r===void 0&&!o.optional&&(o.control==="list"||o.control==="boolean")&&(e[o.name]=o.control==="list"?[]:!1),o.control==="text"&&o.holds&&typeof r=="string"&&(e[o.name]=r.trim()===""?void 0:o.holds==="duration"?q(r)??r:r.trim()),o.control==="group"&&r!==void 0&&typeof r=="object"&&r!==null&&(e[o.name]=K(o.fields,r))}return e}function C(n,s,e){let o=n.derived?.act==="edit"&&n.subject?e[n.subject.arg]:void 0,r=typeof o=="string"?s.getNode(o):void 0;return r?Object.fromEntries((n.writes??[]).filter(l=>r[l]!==void 0&&r[l]!==null).map(l=>[l,r[l]])):{}}function I(n,s){return Object.fromEntries(Object.entries(n).filter(([e,o])=>!Object.hasOwn(s,e)||JSON.stringify(o)!==JSON.stringify(s[e])))}function _(n,s,e,o){let r=Z.keptFrom?.(n,s),l=new Set;if(!r)return l;let y=Object.keys(e.input.shape??{});for(let c of e.creates??[]){let d=r({id:"\0new",kind:c});for(let t of y)d?.(t)&&l.add(t)}let p=o===void 0?void 0:n.graph.getNode(o),i=p&&n.schema.tryDefinition(p.kind),a=p&&r(p);if(i&&a)for(let c of w(e,i))a(c)&&y.includes(c)&&l.add(c);return l}function dn(n,s,e,o){let r=new Set,l=s?.sees??[];if(L(e)||!l.some(k))return r;let y=D(e),p=(d,t)=>{let f=l.filter(u=>u.kinds.includes(d)&&N(u,y));return f.some(k)?v.has(t)||f.some(u=>!k(u)||(u.fields===void 0||u.fields.includes(t))&&!u.hide?.includes(t)):!0},i=Object.keys(o.input.shape??{}),a=new Map,c=(d,t)=>a.set(d,a.get(d)===!0||t);for(let d of o.creates??[]){let t=Object.keys(n.tryDefinition(d)?.fields.shape??{});for(let f of i)t.includes(f)&&c(f,p(d,f))}for(let d of P(n,o)){let t=n.tryDefinition(d);if(t)for(let f of w(o,t))i.includes(f)&&c(f,p(d,f))}for(let[d,t]of a)t||r.add(d);return r}export{B as a,K as b,C as c,I as d,_ as e,dn as f};
@@ -0,0 +1,88 @@
1
+ import{a as qe,c as Be}from"./chunk.IXYBIDAN.js";import{b as Ve}from"./chunk.FJBQ4UP3.js";import{a as Ie,b as Ke,c as Fe,d as j}from"./chunk.QEXXLWEU.js";import"./chunk.BEC5ZH2L.js";import{j as Me,k as Le}from"./chunk.SK33IHL2.js";import"./chunk.6HBEYRJU.js";import"./chunk.U7QMA4H7.js";import"./chunk.GP2F7TIN.js";import{e as Ee}from"./chunk.C6X7CKU6.js";import"./chunk.HJCQ6I3S.js";import"./chunk.EBHKKOPO.js";import{e as ne}from"./chunk.P4WYBSYA.js";import"./chunk.FILCNVGH.js";import{a as xe}from"./chunk.2RCNSHXK.js";import"./chunk.2GGDOFTF.js";import"./chunk.ZTMDU3OH.js";import"./chunk.HFDYFPMJ.js";import"./chunk.RWB4235L.js";import"./chunk.CTK2P4JV.js";import{m as Pe}from"./chunk.GXKECZ4S.js";import{a as Te,b as Oe}from"./chunk.6XU2CXRZ.js";import{h as $e}from"./chunk.3ZNQ5YKX.js";import{e as Re,f as De}from"./chunk.7EFNLMKU.js";import{a as Se,b as Ne,j as Ae}from"./chunk.YXGI7H4Y.js";import"./chunk.G4JJXA63.js";import"./chunk.ITEF3U2E.js";import"./chunk.B2IRADR2.js";import"./chunk.J3M2MZHG.js";import"./chunk.UT6642FC.js";import"./chunk.IAZRY42B.js";import"./chunk.FMN5XDLE.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.WQPNGBR7.js";import"./chunk.DYNBWIPF.js";import"./chunk.B7TB6YRZ.js";import"./chunk.WVUJXDXZ.js";import"./chunk.KJNUZYXS.js";import{a as ye}from"./chunk.4BBJ62ZO.js";import"./chunk.UCZR33MK.js";import"./chunk.CC47O2DW.js";import"./chunk.2IX3CZNP.js";import"./chunk.6DHHUBSC.js";import"./chunk.GZHZLJBF.js";import{r as ke}from"./chunk.HHUCPVG5.js";import"./chunk.OJGHDWI6.js";import"./chunk.WXYUWBKX.js";import{g as be}from"./chunk.NSNGPQGT.js";import{d as te}from"./chunk.H5CZZZLX.js";import{c as me}from"./chunk.Z7JRBKA7.js";import{C as Ce,r as J}from"./chunk.ORXFUK6F.js";import{G as tt,R as we,T as ve,_ as V,aa as X,j as ge,ja as he,l as ue,m as fe,r as U,va as ee,wa as Y}from"./chunk.BTSXYZ6Z.js";import"./chunk.SDO3U72B.js";import{H as se,N as de,T as D,Ta as Z,ba as G,ea as le,ga as pe,ia as ce}from"./chunk.5ZMENPY4.js";import{b as Q}from"./chunk.AJZBJBMO.js";var f=Q(tt(),1);var nt=300,it=14,z=50,at=3,ot=2;function _e(e,n,o){let p=e.tryDefinition(n)?.fields?.shape;return(p?.[o]===void 0?void 0:ye(p[o]))?.type}var rt=(e,n)=>Object.keys(e.tryDefinition(n)?.fields?.shape??{}),st=e=>e==="date"||e==="datetime",Ge=/^(due|dueOn|dueAt|dueDate|deadline|by)$/i,dt=/^(date|on|day|when|at|start|starts|startsOn|startsAt|begins|from|sown|scheduled|scheduledFor|planned|plannedFor)$/i,lt=/^(done|finished|complete|completed|closed)$/i;function ae(e,n){let o=e.tryDefinition(n),p=rt(e,n),a=p.filter(u=>st(_e(e,n,u)));if(a.length===0)return;let i=o?.fieldRoles??{},s=u=>i[u]!==void 0&&a.includes(i[u])?i[u]:void 0,c=s("start")??s("when")??a.find(u=>Ge.test(u))??a.find(u=>dt.test(u));if(!c)return;let S=s("end")??a.find(u=>u!==c&&/^(end|ends|until|to|finish|finished|harvested|through)$/i.test(u)),g=p.find(u=>lt.test(u)&&_e(e,n,u)==="boolean");return{field:c,due:Ge.test(c),...S?{end:S}:{},...g?{done:g}:{}}}function ie(e,n){return Math.round((Date.parse(`${n.slice(0,10)}T00:00:00Z`)-Date.parse(`${e.slice(0,10)}T00:00:00Z`))/864e5)}var q=e=>typeof e=="string"&&/^\d{4}-\d{2}-\d{2}/.test(e)?e.slice(0,10):void 0;function je(e,n,o,p){let a=ne(e,n);if(a&&o.length>0&&o.length<=nt)return{shape:"board",field:a.field};let i=ae(e,n);if(i&&!i.due){let s=r=>{let y=q(r[i.field]),h=q(Z(r,i.field,p));return y&&h?ie(y,h):0},c=o.map(r=>({from:q(Z(r,i.field,p)),to:i.end&&q(r[i.end])?L(q(r[i.end]),s(r)):void 0})).filter(r=>r.from!==void 0).map(r=>({from:r.from,to:r.to&&r.to>r.from?r.to:r.from})),S=`${p.slice(0,7)}-01`,g=L(`${L(S,31).slice(0,7)}-01`,-1),u=c.filter(r=>r.from<=g&&r.to>=S),w=c.map(r=>ie(r.from,r.to)).sort((r,y)=>r-y),l=w[Math.floor(w.length/2)]??0;if(u.length>0&&l<=it){let r=L(p,-((new Date(`${p}T00:00:00Z`).getUTCDay()+6)%7)),y=L(r,6),h=u.every(m=>m.from>=r&&m.to<=y);return{shape:"calendar",start:i.field,...i.end?{end:i.end}:{},...i.done?{done:i.done}:{},range:h?"week":"month"}}}return{shape:"table"}}function ze(e,n){let o=ae(e,n);return o?{by:o.field,direction:o.due?"asc":"desc"}:void 0}function He(e,n,o={}){switch(n.shape){case"board":return{lens:"columns",kind:e,column:n.field};case"calendar":return{lens:"calendar",kind:e,start:n.start,...n.end?{end:n.end}:{},...n.done?{done:n.done}:{},range:n.range};case"table":return{lens:"blocks",kind:e,as:"row",...o.group?.by?{group:o.group.by}:{},...o.sort?{sort:{by:o.sort.by,...o.sort.direction==="desc"?{direction:"desc"}:{}}}:{}}}}var pt=60;function We(e,n,o,p){let a=e.tryDefinition(n),i=o.slice(0,pt),s=new Map;i.forEach(w=>{let l=G(a,w);te(w,a,{glance:!0,said:[l]}).forEach((r,y)=>{if(r.long||r.files||r.app)return;let h=s.get(r.key);h?h.count++:s.set(r.key,{label:r.label,count:1,at:y})})});let c=Math.max(1,Math.ceil(i.length/3)),S=[...s.entries()].filter(([,w])=>w.count>=c).sort((w,l)=>w[1].at-l[1].at).slice(0,at).map(([w,l])=>({about:"field",key:w,label:l.label})),g=new Map;for(let w of i){let l=new Set;for(let[r,y]of[["out",p.outEdges(w.id)],["in",p.inEdges(w.id)]])for(let h of y){let m=p.getNode(r==="out"?h.to:h.from);if(!m||m.id===w.id)continue;let b=`${h.kind}|${r}`;if(l.has(b))continue;l.add(b);let A=g.get(b);A?A.count++:g.set(b,{edge:h.kind,direction:r,far:m.kind,count:1})}}let u=[...g.entries()].sort((w,l)=>l[1].count-w[1].count).slice(0,ot).map(([w,l])=>{let r=me(e,l.direction==="out"?n:l.far,l.edge,l.direction);return{about:"edge",key:w,label:r.charAt(0).toUpperCase()+r.slice(1),edge:l.edge,direction:l.direction}});return[...S,...u]}function Ze(e,n,o,p){if(o.about==="field"){let s=e.tryDefinition(n.kind);return{text:te(n,s,{excerpt:!0}).find(S=>S.key===o.key)?.value??""}}let i=(o.direction==="out"?p.outEdges(n.id):p.inEdges(n.id)).filter(s=>s.kind===o.edge).map(s=>p.getNode(o.direction==="out"?s.to:s.from)).filter(s=>s!==void 0).map(s=>G(e.tryDefinition(s.kind),s));return i.length===0?{text:""}:i.length===1?{text:i[0]}:{text:`${i[0]} +${i.length-1}`,title:i.join(", ")}}function Ue(e,n,o=()=>{}){let p=new Map;for(let a of e){let i=a.nodeIds.filter(c=>n.has(c));if(i.length===0&&!(a.subjectId!==void 0&&n.has(a.subjectId)))continue;let s=p.get(a.invariant)??{invariant:a.invariant,label:o(a.invariant)||a.label||a.message,violations:[],records:new Set};s.violations.push(a);for(let c of i)s.records.add(c);a.subjectId!==void 0&&n.has(a.subjectId)&&s.records.add(a.subjectId),p.set(a.invariant,s)}return[...p.values()].sort((a,i)=>i.violations.length-a.violations.length).map(a=>({invariant:a.invariant,label:a.label,violations:a.violations,records:[...a.records]}))}var Ye=6;function Je(e,n,o,p){let a=ae(e,n);if(!a)return;let i=ne(e,n),s=g=>{if(a.done!==void 0&&g[a.done]===!0)return!0;if(!i)return!1;let u=i.values.indexOf(String(g[i.field]));return u>=0&&i.tiers[u]==="done"},c=0,S=0;for(let g of o){let u=q(Z(g,a.field,p));if(!u||s(g))continue;let w=ie(p,u);a.due&&w<0?c++:w>=0&&w<=Ye&&S++}if(!(c===0&&S===0))return{field:a.field,due:a.due,overdue:c,soon:S}}function L(e,n){return new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)+n*864e5).toISOString().slice(0,10)}function oe(e,n,o){return n==="overdue"?[{key:e.field,value:`before:${o}`}]:[{key:e.field,value:`after:${L(o,-1)}`},{key:e.field,value:`before:${L(o,Ye+1)}`}]}function Qe(e,n,o,p){let a=new Set,i=new Set;for(let s of e)if(!(s.at<=o))for(let c of s.primitives)c.op==="add-node"&&c.node?.kind===n?a.add(c.node.id):c.op==="patch-node"&&c.id!==void 0&&p(c.id)===n&&i.add(c.id);for(let s of a)i.delete(s);return{added:[...a].filter(s=>p(s)===n).length,changed:[...i].filter(s=>p(s)===n).length}}var t=Q(we(),1),Xe="as",ct=(e,n)=>`graview:kind-seen:${e}:${n}`;function gt(e){try{return localStorage.getItem(e)}catch{return null}}function ut(e,n){try{localStorage.setItem(e,n)}catch{}}var ft=(e,n)=>({...ge(fe(e,!1),n),relation:null});function Jt({kind:e,members:n,flagged:o=[],label:p,retired:a=0}){let{store:i,brand:s,principal:c,views:S,view:g}=V(),{go:u}=Y(),w=X(),l=i.schema,r=l.tryDefinition(e),y=p??pe(l,e),h=i.today()??se(),m=n,b=(0,f.useId)(),A=(0,f.useMemo)(()=>je(l,e,m,h),[l,e,m,h]),x=g.within?.[Xe]==="table"?{shape:"table"}:A,k=Te(g),C=x.shape==="table"&&!k.sort?ze(l,e):void 0,v=C?{...k,sort:C}:k,R=(0,f.useMemo)(()=>new Set(o),[o]),T=(0,f.useMemo)(()=>$e(m,v,{schema:l,graph:i.graph,flagged:R,today:h}),[m,v,l,i,R,h,w]),I=(0,f.useMemo)(()=>De(l,Re(l,e)),[l,e]),M=S.arrangement?.()?.lists?.[e]?.filters,K=$=>u(Oe(g,$)),B=(0,f.useMemo)(()=>({name:s?.name??"app",schema:l,...i.policy?{policy:i.policy}:{}}),[s,l,i]),H=JSON.stringify(He(e,x,v)),P=(0,f.useMemo)(()=>{let $=Ae(JSON.parse(H),{app:B,sight:Ne(B,c)});return Se($)?void 0:$},[H,B,c]),W=x.shape!=="table"&&P!==void 0;return(0,t.jsxs)("section",{"aria-labelledby":b,className:"graview-kind-stop","data-testid":"kind-stop","data-graview-kind-stop":e,"data-graview-shape":x.shape,children:[(0,t.jsx)("style",{children:St}),(0,t.jsx)(wt,{kind:e,plural:y,count:m.length,headingId:b,description:r?.description}),(0,t.jsx)(ht,{kind:e,plural:y,members:m,today:h,arrangement:v,onArrange:K}),(m.length>1||a>0)&&!W?(0,t.jsx)(Pe,{schema:l,graph:i.graph,kind:e,arrangement:v,onChange:K,offers:I,...M?{filters:M}:{},kept:{shown:T.nodes.length,of:m.length},testId:"kind-arrange",chips:{nodes:m,flagged:R,today:h},...a>0?{past:{count:a,widen:()=>u(Ee(g,!0))}}:{}}):null,m.length>0?(0,t.jsx)(yt,{derived:A,shape:x,draft:P}):null,(0,t.jsx)("div",{className:"graview-kind-stop-body","data-testid":"kind-stop-body",children:m.length===0?(0,t.jsx)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-empty",children:"Nothing here yet."}):W?(0,t.jsx)(kt,{draft:P,nodes:m}):T.nodes.length===0?(0,t.jsxs)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-none-kept",children:["None of the ",D(m.length)," ",y.toLowerCase()," ",v.query?`says \u201C${v.query}\u201D`:"is kept by these filters","."," ",(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link",onClick:()=>K({}),children:"Show them all"})]}):(0,t.jsx)(xt,{kind:e,nodes:T.nodes,groups:T.grouped?T.groups.map($=>({key:$.key,label:$.label,nodes:$.nodes})):void 0,flagged:R,plural:y,arrangement:v})})]})}function wt({kind:e,plural:n,count:o,headingId:p,description:a}){let{store:i,setSelection:s,setMenuAt:c}=V(),S=(0,f.useMemo)(()=>({about:[U(e)]}),[e]),{affordances:g}=Me(S),{apply:u,preview:w}=Le(),l=(0,f.useMemo)(()=>{let x=k=>i.allMutations().find(C=>C.name===k.mutation)?.creates?.includes(e)??!1;return g.find(k=>!k.destructive&&!k.setsAside&&x(k))},[g,i,e]),[r,y]=(0,f.useState)(!1),[h,m]=(0,f.useState)(null),b=(0,f.useRef)(null),A=(0,f.useRef)(null);(0,f.useEffect)(()=>{let x=A.current;!x||x.closest('[data-testid="kind-stop"]')?.contains(document.activeElement)||x.focus({preventScroll:!0})},[e]);let O=(x,k)=>{try{w(x,k),u(x,k),m(null),y(!1),requestAnimationFrame(()=>b.current?.focus())}catch(C){return m(be(i.schema,i.allMutations(),C)),[]}};return(0,t.jsxs)("header",{className:"graview-kind-stop-head",children:[(0,t.jsxs)("div",{className:"graview-kind-stop-title",children:[(0,t.jsx)("h2",{id:p,ref:A,tabIndex:-1,"data-testid":"kind-stop-title",children:n}),(0,t.jsxs)("p",{"data-testid":"kind-stop-count",children:[le(i.schema,e,o),a?` \xB7 ${a}`:""]})]}),(0,t.jsxs)("div",{className:"graview-kind-stop-acts",children:[l?(0,t.jsx)("button",{ref:b,type:"button",className:"graview-kind-stop-primary","data-testid":"kind-stop-primary","data-affordance":l.id,"aria-expanded":l.open.length>0?r:void 0,onClick:()=>{m(null),l.open.length===0?O(l):y(x=>!x)},children:l.label}):null,(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-quiet","data-testid":"kind-stop-acts","aria-haspopup":"menu","aria-label":`What can be done with the ${n.toLowerCase()}`,onClick:x=>{let k=x.currentTarget.getBoundingClientRect();s([U(e)]),c({x:Math.round(k.left),y:Math.round(k.bottom+4),on:U(e)})},children:"Acts\u2026"})]}),r&&l?(0,t.jsx)("div",{className:"graview-kind-stop-ask","data-testid":"kind-stop-ask","aria-label":l.label,role:"group",children:(0,t.jsx)(xe,{affordance:l,onApply:x=>O(l,x),onCancel:()=>{y(!1),b.current?.focus()}})}):null,h?(0,t.jsx)("p",{role:"alert",className:"graview-kind-stop-failed","data-testid":"kind-stop-failed",children:h}):null]})}var vt=J.part((e,n)=>(0,t.jsx)(e.ProblemRows,{...n}),{what:"The problems",as:"li"});function ht({kind:e,plural:n,members:o,today:p,arrangement:a,onArrange:i}){let{store:s,brand:c,setSelection:S}=V(),g=s.schema,u=ee(),w=(0,f.useMemo)(()=>new Set(o.map(v=>v.id)),[o]),l=(0,f.useMemo)(()=>Ue(u,w,v=>s.allInvariants().find(R=>R.name===v)?.label),[u,w,s]),r=(0,f.useMemo)(()=>Je(g,e,o,p),[g,e,o,p]),y=ct(Ce(c,g),e),[h]=(0,f.useState)(()=>gt(y));(0,f.useEffect)(()=>()=>ut(y,new Date().toISOString()),[y]);let m=X(),b=(0,f.useMemo)(()=>h?Qe(s.log.all(),e,h,v=>s.graph.getNode(v)?.kind):null,[h,s,e,m]),[A,O]=(0,f.useState)(null),x=v=>i({...a,filter:[...(a.filter??[]).filter(R=>!v?.some(T=>T.key===R.key)),...v??[]]}),k=l.reduce((v,R)=>v+R.violations.length,0),C=[];if(r&&(r.overdue>0||r.soon>0)){let v=r.field;C.push((0,t.jsxs)("li",{"data-testid":"kind-stop-dates",children:[r.overdue>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact","data-tone":"warn",onClick:()=>x(oe(r,"overdue",p)),"aria-label":`${D(r.overdue)} overdue \u2014 show only these`,children:[D(r.overdue)," overdue"]}):null,r.soon>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact",onClick:()=>x(oe(r,"soon",p)),"aria-label":`${D(r.soon)} in the next 7 days \u2014 show only these`,children:[D(r.soon)," ",r.due?"due":""," in the next 7 days"]}):null,(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" by ",ce(g.tryDefinition(e),v).toLowerCase()]})]},"dates"))}if(l.length>0&&C.push((0,t.jsxs)("li",{"data-testid":"kind-stop-problems","data-graview-problems":k,children:[(0,t.jsxs)("span",{className:"graview-kind-stop-warn",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0 "}),k===1?"1 problem":`${D(k)} problems`]}),(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" in ",n.toLowerCase(),":"]}),(0,t.jsx)("ul",{className:"graview-kind-stop-rules",children:l.map(v=>(0,t.jsx)(mt,{group:v,open:A===v.invariant,onToggle:()=>O(R=>R===v.invariant?null:v.invariant),onPick:R=>S([R])},v.invariant))}),(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-only-problems",onClick:()=>x([{key:"is",value:"flagged"}]),children:["Show only the ",n.toLowerCase()," with a problem"]})]},"problems")),b&&(b.added>0||b.changed>0)){let v=[b.added>0?`${D(b.added)} added`:"",b.changed>0?`${D(b.changed)} changed`:""].filter(Boolean);C.push((0,t.jsxs)("li",{"data-testid":"kind-stop-since",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["Since you last looked (",de(h.slice(0,10)),"):"]})," ",v.join(", ")]},"since"))}return C.length===0?null:(0,t.jsx)("ul",{className:"graview-kind-stop-going-on","aria-label":`What is going on in the ${n.toLowerCase()}`,"data-testid":"kind-stop-going-on",children:C})}function mt({group:e,open:n,onToggle:o,onPick:p}){let a=(0,f.useId)();return(0,t.jsxs)("li",{"data-graview-rule":e.invariant,children:[(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-rule","aria-expanded":n,"aria-controls":a,onClick:o,onPointerEnter:J.prefetch,onFocus:J.prefetch,children:[(0,t.jsx)("span",{"aria-hidden":"true",className:"graview-kind-stop-chevron","data-open":n||void 0,children:"\u203A"}),e.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",D(e.violations.length)]})]}),n?(0,t.jsx)("ol",{id:a,className:"graview-kind-stop-problem-rows","data-testid":"kind-stop-problem-rows",children:(0,t.jsx)(f.Suspense,{fallback:null,children:(0,t.jsx)(vt,{violations:e.violations,pick:i=>{let s=i.subjectId??e.records[0]??i.nodeIds[0];s!==void 0&&p(s)}})})}):null]})}var bt={board:"Board",calendar:"Calendar",table:"Table"};function yt({derived:e,shape:n,draft:o}){let{view:p}=V(),{go:a}=Y(),{keep:i}=qe(Be()),[s,c]=(0,f.useState)(!1),S=e.shape==="table"?[]:[e.shape,"table"];return(0,t.jsxs)("div",{className:"graview-kind-stop-shape","data-testid":"kind-stop-shape",children:[S.length>0?(0,t.jsx)("span",{role:"group","aria-label":"Show as",className:"graview-kind-stop-switch",children:S.map(g=>(0,t.jsx)("button",{type:"button","aria-pressed":n.shape===g,"data-testid":`kind-stop-as-${g}`,onClick:()=>a(ue(p,Xe,g===e.shape?null:g)),children:bt[g]},g))}):null,(0,t.jsx)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-derived",children:o?`${o.said.replace(/\.$/,"")}, derived from the declaration`:"Derived from the declaration"}),o?(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-keep",disabled:s,title:`Keep \u201C${o.title}\u201D as a lens: a place of its own`,onClick:()=>{c(!0),i(o).finally(()=>c(!1))},children:"Keep as a lens"}):null]})}function kt({draft:e,nodes:n}){let o=Ve(e.drawn);return(0,t.jsx)("div",{className:"graview-kind-stop-lens","data-graview-draft":e.lens.name,children:(0,t.jsx)(ve,{mode:"scene",children:(0,t.jsx)(ke,{kind:e.kind,view:e.title,children:(0,t.jsx)(o,{nodes:n,label:e.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})})}function xt({kind:e,nodes:n,groups:o,flagged:p,plural:a,arrangement:i}){let{store:s,views:c,view:S,selection:g,setSelection:u,setMenuAt:w,principal:l}=V(),{go:r}=Y(),y=s.schema,h=s.graph,m=(0,f.useMemo)(()=>(o?o.flatMap(d=>d.nodes):n).map(d=>d.id),[n,o]),b=Ie(m),A=(0,f.useMemo)(()=>s.permittedMutations(l).some(d=>{let N=d.subject?.kinds;return N!==void 0&&(N==="*"||N.includes(e))}),[s,l,e]),O=(0,f.useRef)(null),x=d=>{b.choose(d),requestAnimationFrame(()=>{let N=b.list.current;((d[0]===void 0?null:N?.querySelector(`[data-graview-choose-box="${CSS.escape(d[0])}"]`))??N)?.focus({preventScroll:!0})})},k=b.chosen.length,C=c.lookup(e,{cardinality:"one",fidelity:"glyph"}),v=C!==void 0&&!he(C)?C:void 0,R=d=>g.includes(d),T=ee(),I=(0,f.useMemo)(()=>We(y,e,n,h),[y,e,n,h]),[M,K]=(0,f.useState)(z);(0,f.useEffect)(()=>K(z),[i.query,i.filter?.length,i.sort?.by,i.group?.by]);let B=y.tryDefinition(e),H=d=>T.filter(N=>N.nodeIds.includes(d)||N.subjectId===d).map(N=>N.message),P=i.sort?.by,W=`${a}${i.sort?`, in order of ${I.find(d=>d.key===P)?.label.toLowerCase()??P}`:""}`,$=M,et=d=>{let N=G(B,d),F=p.has(d.id)?H(d.id):[];return(0,t.jsxs)("tr",{"data-graview-pick":d.id,tabIndex:-1,"data-graview-record":d.id,"data-flagged":F.length>0||void 0,...A?{"data-graview-choose":d.id}:{},children:[A?(0,t.jsx)("td",{className:"graview-choose-at",children:(0,t.jsx)("input",{...b.boxProps(d.id,N),onPointerEnter:j,onFocus:j})}):null,(0,t.jsxs)("th",{scope:"row",className:"graview-kind-stop-name",children:[v?(0,t.jsx)("div",{"data-graview-pick":d.id,className:"graview-kind-stop-own-row",children:(0,t.jsx)(v,{node:d,cardinality:"one",fidelity:"glyph",mode:"scene",selected:R(d.id),...F.length>0?{flagged:[d.id]}:{}})}):(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-go",title:`Go to ${N}`,onClick:()=>r(ft(S,d.id)),children:N}),F.length>0?(0,t.jsxs)("span",{className:"graview-kind-stop-flag",title:F.join(" \xB7 "),children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0"}),(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:`Problem: ${F.join(". ")}`})]}):null]}),I.map(_=>{let E=Ze(y,d,_,h);return(0,t.jsx)("td",{"data-label":_.label,"data-short":E.text.length>0&&E.text.length<=14||void 0,"data-empty":E.text?void 0:"",...E.title?{title:E.title}:{},children:E.text?(0,t.jsx)("span",{children:E.text}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("b",{"aria-hidden":"true",children:"\u2014"}),(0,t.jsx)("i",{className:"graview-kind-stop-hidden",children:"none"})]})},_.key)}),(0,t.jsx)("td",{className:"graview-kind-stop-row-acts",children:(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-acts","aria-haspopup":"menu","aria-label":`What can be done with ${N}`,onClick:_=>{let E=_.currentTarget.getBoundingClientRect();u([d.id]),w({x:Math.round(E.left),y:Math.round(E.bottom+4),on:d.id})},children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\u22EF"})})})]},d.id)},re=d=>{let N=d.slice(0,Math.max(0,$));return $-=N.length,N.map(et)};return(0,t.jsxs)("div",{className:"graview-kind-stop-table-at",...A?{...b.listProps,ref:d=>{O.current=d,b.list.current=d},tabIndex:-1,role:"group","aria-label":k>0?`${a}, ${k} chosen`:a,"data-graview-choosable":""}:{},children:[A?(0,t.jsx)("style",{children:Ke}):null,(0,t.jsxs)("table",{className:"graview-kind-stop-table","data-testid":"kind-stop-table",children:[(0,t.jsx)("caption",{className:"graview-kind-stop-hidden",children:W}),(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[A?(0,t.jsx)("td",{className:"graview-choose-at graview-choose-all",children:(0,t.jsx)("input",{type:"checkbox",className:"graview-choose-box","data-testid":"kind-stop-choose-all","aria-label":`Choose all ${D(n.length)} ${a.toLowerCase()}`,checked:k>0&&k===n.length,ref:d=>{d&&(d.indeterminate=k>0&&k<n.length)},onPointerEnter:j,onFocus:j,onChange:()=>k===n.length?b.clear():b.choose(m)})}):null,(0,t.jsx)("th",{scope:"col","aria-sort":P==="label"?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:"Name"}),I.map(d=>(0,t.jsx)("th",{scope:"col","aria-sort":d.about==="field"&&d.key===P?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:d.label},d.key)),(0,t.jsx)("th",{scope:"col",children:(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:"Acts"})})]})}),o?o.map(d=>$<=0?null:(0,t.jsxs)("tbody",{"data-graview-group":d.key,children:[(0,t.jsx)("tr",{className:"graview-kind-stop-group",children:(0,t.jsxs)("th",{scope:"rowgroup",colSpan:I.length+(A?3:2),children:[d.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",D(d.nodes.length)]})]})}),re(d.nodes)]},d.key||"-")):(0,t.jsx)("tbody",{children:re(n)})]}),A?(0,t.jsx)(Fe,{store:s,chosen:b.chosen,principal:l,anchor:()=>O.current?.closest('[data-testid="kind-stop"]')??null,of:m.length,onChooseAll:()=>b.choose(m),onClear:b.clear,onActed:x}):null,n.length>M?(0,t.jsxs)("p",{className:"graview-kind-stop-more",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-shown",children:[D(M)," of ",D(n.length)," shown"]})," ",(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-more",onClick:()=>K(d=>d+z),children:["Show ",D(Math.min(z,n.length-M))," more"]})]}):null]})}var St=`
2
+ .graview-kind-stop{container-type:inline-size;box-sizing:border-box;height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;padding:16px 18px 12px;border:1px solid var(--graview-edge);border-radius:var(--graview-radius,12px);background:var(--graview-panel);color:var(--graview-ink);box-shadow:var(--graview-lift-low);overflow:auto;overscroll-behavior:contain}
3
+ [data-graview-map-panel] .graview-kind-stop{height:auto;padding:4px 6px 12px;border:0;box-shadow:none;background:none;overflow:visible}
4
+ .graview-kind-stop :focus-visible{outline:2px solid var(--graview-accent);outline-offset:2px}
5
+ .graview-kind-stop button{font:inherit;cursor:pointer}
6
+ .graview-kind-stop :is(.graview-kind-stop-link,.graview-kind-stop-rule,.graview-kind-stop-name button,.graview-kind-stop-row-acts button,.graview-kind-stop-fact,.graview-kind-stop-switch button){box-shadow:none}
7
+ .graview-kind-stop-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 16px}
8
+ .graview-kind-stop-title{flex:1 1 16rem;min-width:0}
9
+ .graview-kind-stop-title h2{margin:0;outline-offset:2px;font-size:var(--graview-text-heading);line-height:1.3;overflow-wrap:anywhere}
10
+ .graview-kind-stop-title p{margin:2px 0 0;font-size:.875rem;color:var(--graview-ink-muted);overflow-wrap:anywhere}
11
+ .graview-kind-stop-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
12
+ .graview-kind-stop-primary,.graview-kind-stop-quiet{min-height:32px;padding:0 14px;border-radius:8px;font-size:.875rem}
13
+ .graview-kind-stop-primary{border:1px solid var(--graview-accent);background:var(--graview-accent);color:var(--graview-accent-ink);font-weight:600}
14
+ .graview-kind-stop-quiet{border:1px solid var(--graview-edge);background:transparent;color:var(--graview-ink)}
15
+ .graview-kind-stop-ask{flex:1 1 100%;min-width:0;padding:10px 12px;border:1px solid var(--graview-edge);border-radius:10px}
16
+ .graview-kind-stop-failed{flex:1 1 100%;margin:0;font-size:var(--graview-text-small);color:var(--graview-warn)}
17
+ .graview-kind-stop-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
18
+ .graview-kind-stop-going-on{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.875rem}
19
+ .graview-kind-stop-going-on>li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}
20
+ .graview-kind-stop-fact{min-height:28px;padding:0 10px;border:1px solid var(--graview-edge);border-radius:999px;background:transparent;color:var(--graview-ink)}
21
+ .graview-kind-stop-fact[data-tone=warn],.graview-kind-stop-warn{color:var(--graview-warn);font-weight:600}
22
+ .graview-kind-stop-quiet-text{color:var(--graview-ink-muted)}
23
+ .graview-kind-stop-rules{list-style:none;margin:0;padding:0;flex:1 1 100%;display:grid;gap:2px}
24
+ .graview-kind-stop-rule{display:inline-flex;align-items:center;gap:6px;min-height:28px;max-width:100%;padding:0 6px;border:1px solid transparent;border-radius:7px;background:none;color:var(--graview-ink);text-align:left;overflow-wrap:anywhere}
25
+ .graview-kind-stop-rule:hover{border-color:var(--graview-edge)}
26
+ .graview-kind-stop-chevron{display:inline-block;width:.8em}
27
+ .graview-kind-stop-chevron[data-open]{transform:rotate(90deg)}
28
+ .graview-kind-stop-problem-rows{list-style:none;margin:2px 0 6px 18px;padding:0;max-width:44rem}
29
+ .graview-kind-stop-link{min-height:28px;padding:0 4px;border:0;background:none;color:var(--graview-accent);text-decoration:underline;text-underline-offset:2px}
30
+ .graview-kind-stop-link:disabled{opacity:.6;cursor:default}
31
+ .graview-kind-stop-shape{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:var(--graview-text-small)}
32
+ .graview-kind-stop-switch{display:inline-flex;border:1px solid var(--graview-edge);border-radius:8px;overflow:hidden}
33
+ .graview-kind-stop-switch button{min-height:28px;padding:0 12px;border:0;background:transparent;color:var(--graview-ink-muted)}
34
+ .graview-kind-stop-switch button+button{border-left:1px solid var(--graview-edge)}
35
+ .graview-kind-stop-switch button[aria-pressed=true]{background:color-mix(in srgb,var(--graview-accent) 16%,transparent);color:var(--graview-ink);font-weight:600}
36
+ .graview-kind-stop-body{flex:1 0 auto;min-width:0}
37
+ .graview-kind-stop-empty{margin:24px 0;color:var(--graview-ink-muted)}
38
+ .graview-kind-stop-lens{min-width:0}
39
+
40
+ .graview-kind-stop-table-at{min-width:0}
41
+ .graview-kind-stop-table{width:100%;border-collapse:collapse;font-size:.875rem}
42
+ .graview-kind-stop-table th,.graview-kind-stop-table td{padding:7px 8px;text-align:left;vertical-align:top;border-top:1px solid var(--graview-edge);overflow-wrap:break-word}
43
+ .graview-kind-stop-table td{color:var(--graview-ink)}
44
+ .graview-kind-stop-table td>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
45
+ .graview-kind-stop-table td[data-short]{white-space:nowrap;font-variant-numeric:tabular-nums}
46
+ .graview-kind-stop-table thead th{border-top:0;font-size:var(--graview-text-small);font-weight:600;letter-spacing:.04em;color:var(--graview-ink-muted)}
47
+ .graview-kind-stop-name{font-weight:500;min-width:8rem;max-width:22rem}
48
+ .graview-kind-stop-name button{display:inline-block;min-width:24px;min-height:24px;padding:0;border:0;background:none;color:var(--graview-ink);font-weight:500;text-align:left;text-decoration:underline;text-decoration-color:var(--graview-edge);text-underline-offset:3px}
49
+ .graview-kind-stop-name button:hover{text-decoration-color:currentColor}
50
+ .graview-kind-stop-own-row{display:inline-block;max-width:100%;cursor:pointer}
51
+ .graview-kind-stop-flag{margin-left:6px;color:var(--graview-warn)}
52
+ .graview-kind-stop-group th{padding-top:12px;font-weight:600;color:var(--graview-ink)}
53
+ .graview-kind-stop-row-acts{width:1%;white-space:nowrap;text-align:right}
54
+ .graview-kind-stop-row-acts button{min-width:32px;min-height:28px;border:1px solid var(--graview-edge-bright,var(--graview-edge));border-radius:7px;background:none;color:var(--graview-ink);font-size:1.125rem;font-weight:700;line-height:1}
55
+ .graview-kind-stop-row-acts button:hover{background:color-mix(in srgb,var(--graview-ink) 8%,transparent)}
56
+ .graview-kind-stop-table td[data-empty] b{font-weight:400;color:var(--graview-ink-faint)}
57
+ .graview-kind-stop-table tr[data-graview-pick]{cursor:default}
58
+ .graview-kind-stop-more{margin:10px 0 0;font-size:.875rem}
59
+ .graview-kind-stop-table-at[data-graview-choosable]{outline:none}
60
+ [data-graview-choosable]:hover .graview-choose-all .graview-choose-box{opacity:1}
61
+ .graview-kind-stop-table .graview-choose-at{width:1%;padding-right:0;vertical-align:middle}
62
+ @container (max-width: 559px){
63
+ .graview-kind-stop{padding:12px}
64
+ .graview-kind-stop-acts{flex:1 1 100%}
65
+ .graview-kind-stop-primary{flex:1 1 auto}
66
+ .graview-kind-stop-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
67
+ .graview-kind-stop-table,.graview-kind-stop-table tbody,.graview-kind-stop-table tr{display:block}
68
+ .graview-kind-stop-table tr{position:relative;padding:8px 40px 8px 0;border-top:1px solid var(--graview-edge)}
69
+ .graview-kind-stop-table th,.graview-kind-stop-table td{display:block;padding:1px 0;border:0}
70
+ .graview-kind-stop-table td>span{display:inline}
71
+ .graview-kind-stop-table td[data-short]{white-space:normal}
72
+ .graview-kind-stop-table td[data-label]::before{content:attr(data-label) " \xB7 ";color:var(--graview-ink-muted)}
73
+ .graview-kind-stop-row-acts{position:absolute;top:6px;right:0;width:auto}
74
+ .graview-kind-stop-table [data-graview-choose]{padding-left:34px}
75
+ .graview-kind-stop-table td.graview-choose-at{position:absolute;left:0;top:8px;width:auto;padding:0}
76
+ .graview-kind-stop-table thead .graview-choose-at{position:static}
77
+ }
78
+ @media (pointer: coarse){
79
+ .graview-kind-stop-table-at:not([data-graview-choosing]) .graview-choose-at{display:none}
80
+ .graview-kind-stop-table-at:not([data-graview-choosing]) [data-graview-choose]{padding-left:0}
81
+ }
82
+ @media (pointer: coarse){
83
+ .graview-kind-stop-primary,.graview-kind-stop-quiet,.graview-kind-stop-fact,.graview-kind-stop-rule,.graview-kind-stop-link,.graview-kind-stop-switch button,.graview-kind-stop-row-acts button{min-height:44px}
84
+ .graview-kind-stop-row-acts button{min-width:44px}
85
+ .graview-kind-stop-name button{min-height:44px}
86
+ }
87
+ @media (prefers-reduced-motion: reduce){.graview-kind-stop *{transition:none!important;animation:none!important}}
88
+ `;export{Jt as KindStop};
@@ -0,0 +1 @@
1
+ import{b as y}from"./chunk.CTK2P4JV.js";import"./chunk.ORXFUK6F.js";import{G as w,R as c}from"./chunk.BTSXYZ6Z.js";import"./chunk.SDO3U72B.js";import"./chunk.5ZMENPY4.js";import{b as l}from"./chunk.AJZBJBMO.js";var r=l(w(),1);var t=l(c(),1);function x({field:d,label:p,value:m,markdown:b,onSave:n,onCancel:u}){let[a,v]=(0,r.useState)(m),[i,h]=(0,r.useState)(!1),o=(0,r.useRef)(null);return(0,r.useEffect)(()=>o.current?.focus(),[i]),(0,r.useLayoutEffect)(()=>{let e=o.current;if(!e||i||typeof CSS<"u"&&CSS.supports?.("field-sizing","content"))return;let f=()=>{e.style.height="auto";let g=getComputedStyle(e);e.style.height=`${e.scrollHeight+parseFloat(g.borderTopWidth)+parseFloat(g.borderBottomWidth)}px`};f();let S=requestAnimationFrame(f);return()=>cancelAnimationFrame(S)},[a,i]),(0,t.jsxs)("form",{style:{display:"grid",gap:8,minWidth:0},onSubmit:e=>{e.preventDefault(),n(a,!1)},children:[i?(0,t.jsx)("div",{"data-graview-preview":d,"aria-label":`${p}, as it will read`,role:"region",style:C,children:(0,t.jsx)(y,{text:a,markdown:!0})}):(0,t.jsx)("textarea",{ref:o,"aria-label":p,"data-graview-field":d,value:a,rows:3,onChange:e=>v(e.target.value),onKeyDown:e=>{e.key==="Escape"?(e.preventDefault(),u()):e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),n(a,!1))},onBlur:e=>{e.relatedTarget instanceof Node&&e.currentTarget.form?.contains(e.relatedTarget)||n(a,!0)},style:E}),(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8},children:[(0,t.jsx)("button",{type:"submit",style:s,children:"Save"}),(0,t.jsx)("button",{type:"button",onClick:u,style:s,children:"Cancel"}),b?(0,t.jsx)("button",{type:"button","aria-pressed":i,onClick:()=>h(!i),style:s,children:i?"Write":"Preview"}):null,(0,t.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"Ctrl or \u2318 Enter saves \xB7 Esc puts it back"})]})]})}var C={minHeight:"7.5em",padding:"8px 10px",border:"1px dashed var(--graview-edge-bright)",borderRadius:6,lineHeight:1.6,minWidth:0},s={font:"inherit",fontSize:"0.8125rem",minHeight:28,padding:"2px 12px"},E={font:"inherit",lineHeight:1.5,width:"100%",boxSizing:"border-box",minHeight:"7.5em",padding:"8px 10px",resize:"vertical",fieldSizing:"content",color:"var(--graview-ink)",background:"var(--graview-panel, transparent)",border:"1px solid var(--graview-edge-bright)",borderRadius:6};export{x as default};
@@ -0,0 +1,3 @@
1
+ var l={},O={empty:!0},Se={id:"text",class:"text",title:"text",lang:"text",dir:{oneOf:["ltr","rtl","auto"]},hidden:"text",tabindex:{oneOf:["-1","0"]},role:"text",style:"style",translate:{oneOf:["yes","no"]},spellcheck:{oneOf:["true","false"]},draggable:{oneOf:["true","false"]},inert:"boolean"},A={div:l,section:l,article:l,aside:l,header:l,footer:l,nav:l,hgroup:l,search:l,address:l,figure:l,figcaption:l,blockquote:l,p:l,pre:l,hr:O,br:O,wbr:O,h1:l,h2:l,h3:l,h4:l,h5:l,h6:l,span:l,strong:l,em:l,b:l,i:l,u:l,s:l,small:l,mark:l,abbr:l,cite:l,q:l,code:l,kbd:l,samp:l,var:l,sub:l,sup:l,dfn:l,bdi:l,bdo:l,ruby:l,rt:l,rp:l,time:{attributes:{datetime:"text"}},data:{attributes:{value:"text"}},del:{attributes:{datetime:"text"}},ins:{attributes:{datetime:"text"}},a:l,ul:l,menu:l,dl:l,dt:l,dd:l,ol:{attributes:{start:"number",reversed:"boolean",type:{oneOf:["1","a","A","i","I"]}}},li:{attributes:{value:"number"}},table:l,caption:l,thead:l,tbody:l,tfoot:l,tr:l,colgroup:{attributes:{span:"number"}},col:{attributes:{span:"number"},empty:!0},th:{attributes:{colspan:"number",rowspan:"number",headers:"text",scope:{oneOf:["row","col","rowgroup","colgroup"]},abbr:"text"}},td:{attributes:{colspan:"number",rowspan:"number",headers:"text"}},details:{attributes:{open:"boolean",name:"text"}},summary:l,button:{attributes:{type:{oneOf:["button"]},disabled:"boolean",name:"text",value:"text"}},input:{empty:!0,attributes:{type:{oneOf:["text","search","number","range","checkbox","radio","date","time","datetime-local","month","week","color","email","tel","url"]},name:"text",value:"text",placeholder:"text",min:"text",max:"text",step:"text",checked:"boolean",disabled:"boolean",readonly:"boolean",required:"boolean",maxlength:"number",minlength:"number",size:"number",pattern:"text",multiple:"boolean",inputmode:"text",enterkeyhint:"text"}},select:{attributes:{name:"text",disabled:"boolean",multiple:"boolean",required:"boolean",size:"number"}},option:{attributes:{value:"text",selected:"boolean",disabled:"boolean",label:"text"}},optgroup:{attributes:{label:"text",disabled:"boolean"}},textarea:{attributes:{name:"text",placeholder:"text",rows:"number",cols:"number",disabled:"boolean",readonly:"boolean",required:"boolean",maxlength:"number",minlength:"number",wrap:{oneOf:["soft","hard","off"]}}},label:{attributes:{for:"text"}},fieldset:{attributes:{disabled:"boolean",name:"text"}},legend:l,output:l,meter:{attributes:{value:"number",min:"number",max:"number",low:"number",high:"number",optimum:"number"}},progress:{attributes:{value:"number",max:"number"}},img:{empty:!0,attributes:{src:"image",alt:"text",width:"number",height:"number",decoding:{oneOf:["async","sync","auto"]}}},"graview-video":O},Ee=["fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","color","display","visibility","transform-origin","clip-path","clip-rule","marker-start","marker-mid","marker-end","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline","alignment-baseline","letter-spacing","text-decoration","paint-order","vector-effect","shape-rendering","pointer-events","stop-color","stop-opacity","overflow","mask"],Oe={id:"text",class:"text",style:"style",lang:"text",role:"text",tabindex:{oneOf:["-1","0"]},transform:"geometry",...Object.fromEntries(Ee.map(e=>[e,"css"]))},w={x:"geometry",y:"geometry",width:"geometry",height:"geometry"},R={viewBox:"geometry",preserveAspectRatio:"geometry"},X={gradientUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},gradientTransform:"geometry",spreadMethod:{oneOf:["pad","reflect","repeat"]},href:"fragment"},_={svg:{attributes:{...w,...R}},g:l,defs:l,symbol:{attributes:{...w,...R,refX:"geometry",refY:"geometry"}},use:{attributes:{...w,href:"fragment"}},title:l,desc:l,path:{attributes:{d:"geometry",pathLength:"number"}},rect:{attributes:{...w,rx:"geometry",ry:"geometry",pathLength:"number"}},circle:{attributes:{cx:"geometry",cy:"geometry",r:"geometry",pathLength:"number"}},ellipse:{attributes:{cx:"geometry",cy:"geometry",rx:"geometry",ry:"geometry",pathLength:"number"}},line:{attributes:{x1:"geometry",y1:"geometry",x2:"geometry",y2:"geometry",pathLength:"number"}},polyline:{attributes:{points:"geometry",pathLength:"number"}},polygon:{attributes:{points:"geometry",pathLength:"number"}},text:{attributes:{x:"geometry",y:"geometry",dx:"geometry",dy:"geometry",rotate:"geometry",textLength:"geometry",lengthAdjust:{oneOf:["spacing","spacingAndGlyphs"]}}},tspan:{attributes:{x:"geometry",y:"geometry",dx:"geometry",dy:"geometry",rotate:"geometry",textLength:"geometry"}},textPath:{attributes:{href:"fragment",startOffset:"geometry",method:{oneOf:["align","stretch"]},spacing:{oneOf:["auto","exact"]},side:{oneOf:["left","right"]}}},linearGradient:{attributes:{x1:"geometry",y1:"geometry",x2:"geometry",y2:"geometry",...X}},radialGradient:{attributes:{cx:"geometry",cy:"geometry",r:"geometry",fx:"geometry",fy:"geometry",fr:"geometry",...X}},stop:{attributes:{offset:"geometry"}},clipPath:{attributes:{clipPathUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]}}},mask:{attributes:{...w,maskUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},maskContentUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]}}},pattern:{attributes:{...w,...R,patternUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},patternContentUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},patternTransform:"geometry",href:"fragment"}},marker:{attributes:{...R,markerWidth:"geometry",markerHeight:"geometry",refX:"geometry",refY:"geometry",orient:"geometry",markerUnits:{oneOf:["strokeWidth","userSpaceOnUse"]}}}};var q=["alert","alertdialog","dialog","banner","main","navigation","contentinfo","complementary","search","form","region","application","status","log","marquee","timer"],v={nav:"div",header:"div",footer:"div",aside:"div",search:"div",output:"span"},Y={section:["aria-label","aria-labelledby","title"]};function Re(e){return/^aria-[a-z]+$/.test(e)}function Ae(e){return/^data-[a-z0-9][a-z0-9_.-]*$/.test(e)}var K=["all","display","position","top","right","bottom","left","inset","inset-block","inset-inline","inset-block-start","inset-block-end","inset-inline-start","inset-inline-end","width","height","min-width","min-height","max-width","max-height","inline-size","block-size","min-inline-size","min-block-size","max-inline-size","max-block-size","margin","margin-top","margin-right","margin-bottom","margin-left","margin-block","margin-inline","margin-block-start","margin-block-end","margin-inline-start","margin-inline-end","padding","padding-top","padding-right","padding-bottom","padding-left","padding-block","padding-inline","padding-block-start","padding-block-end","padding-inline-start","padding-inline-end","box-sizing","overflow","overflow-x","overflow-y","overflow-wrap","float","clear","z-index","aspect-ratio","object-fit","object-position","vertical-align","isolation","contain","container","container-type","container-name","content-visibility","flex","flex-direction","flex-wrap","flex-flow","flex-grow","flex-shrink","flex-basis","order","grid","grid-template","grid-template-columns","grid-template-rows","grid-template-areas","grid-auto-columns","grid-auto-rows","grid-auto-flow","grid-area","grid-column","grid-row","grid-column-start","grid-column-end","grid-row-start","grid-row-end","gap","row-gap","column-gap","align-items","align-content","align-self","justify-items","justify-content","justify-self","place-items","place-content","place-self","columns","column-count","column-width","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-fill","color","background","background-color","background-image","background-position","background-position-x","background-position-y","background-size","background-repeat","background-origin","background-clip","background-attachment","background-blend-mode","border","border-top","border-right","border-bottom","border-left","border-block","border-inline","border-block-start","border-block-end","border-inline-start","border-inline-end","border-width","border-style","border-color","border-top-width","border-right-width","border-bottom-width","border-left-width","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-color","border-right-color","border-bottom-color","border-left-color","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-start-start-radius","border-start-end-radius","border-end-start-radius","border-end-end-radius","border-collapse","border-spacing","outline","outline-width","outline-style","outline-color","outline-offset","box-shadow","opacity","visibility","mix-blend-mode","filter","backdrop-filter","clip-path","accent-color","caret-color","color-scheme","appearance","-webkit-appearance","font","font-family","font-size","font-weight","font-style","font-stretch","font-variant","font-variant-numeric","font-variant-caps","font-variant-ligatures","font-feature-settings","font-variation-settings","font-kerning","font-optical-sizing","font-size-adjust","font-synthesis","line-height","letter-spacing","word-spacing","text-align","text-align-last","text-indent","text-transform","text-decoration","text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","text-underline-position","text-shadow","text-overflow","text-wrap","text-wrap-mode","text-wrap-style","white-space","white-space-collapse","word-break","line-break","hyphens","tab-size","direction","unicode-bidi","writing-mode","text-orientation","text-rendering","-webkit-font-smoothing","-webkit-line-clamp","-webkit-box-orient","line-clamp","-webkit-text-fill-color","-webkit-background-clip","list-style","list-style-type","list-style-position","content","quotes","counter-reset","counter-increment","counter-set","table-layout","caption-side","empty-cells","transform","transform-origin","transform-box","transform-style","translate","rotate","scale","perspective","perspective-origin","backface-visibility","transition","transition-property","transition-duration","transition-timing-function","transition-delay","transition-behavior","animation","animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode","animation-play-state","animation-composition","will-change","cursor","pointer-events","user-select","-webkit-user-select","touch-action","resize","scroll-behavior","overscroll-behavior","overscroll-behavior-x","overscroll-behavior-y","scroll-snap-type","scroll-snap-align","scroll-snap-stop","scroll-margin","scroll-padding","scrollbar-width","scrollbar-color","scrollbar-gutter","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","stop-color","stop-opacity","clip-rule","marker","marker-start","marker-mid","marker-end","paint-order","vector-effect","shape-rendering","text-anchor","dominant-baseline","alignment-baseline","r","cx","cy","rx","ry","x","y","d","mask"],Z=["var","env","calc","min","max","clamp","round","mod","rem","abs","sign","sin","cos","tan","asin","acos","atan","atan2","pow","sqrt","hypot","log","exp","rgb","rgba","hsl","hsla","hwb","lab","lch","oklab","oklch","color","color-mix","light-dark","linear-gradient","radial-gradient","conic-gradient","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","translate","translatex","translatey","translatez","translate3d","rotate","rotatex","rotatey","rotatez","rotate3d","scale","scalex","scaley","scalez","scale3d","skew","skewx","skewy","matrix","matrix3d","perspective","cubic-bezier","steps","linear","repeat","minmax","fit-content","blur","brightness","contrast","drop-shadow","grayscale","hue-rotate","invert","saturate","sepia","opacity","circle","ellipse","inset","polygon","path","xywh","rect","counter","counters"],J=["fill","stroke","clip-path","mask","marker","marker-start","marker-mid","marker-end"],Q=["media","supports","container","keyframes"],ee={position:["static","relative","absolute","sticky"],all:[],appearance:["auto","none","menulist-button","textfield"],"-webkit-appearance":["auto","none","menulist-button","textfield"]},te=["host","host-context","slotted","part","backdrop","picker","view-transition","view-transition-group","view-transition-image-pair","view-transition-old","view-transition-new"],j=64e3,M=4e3,ne=1e5,S=512e3,Ke=1e4,Ze="http://www.w3.org/1999/xhtml",Je="http://www.w3.org/2000/svg",_e=new Map(Object.keys(_).map(e=>[e.toLowerCase(),e]));function re(e){return _e.get(e.toLowerCase())}function oe(e,r,n){let t=n.toLowerCase(),i=e==="html"?[A[r]?.attributes,Se]:[_[r]?.attributes,Oe],o=e==="svg"&&t==="xlink:href"?"href":t;for(let a of i)if(a){for(let[u,c]of Object.entries(a))if(u.toLowerCase()===o)return{name:u,kind:c}}if(Re(t)||Ae(t))return{name:t,kind:"text"}}var f=e=>e>=48&&e<=57,ie=e=>f(e)||e>=65&&e<=70||e>=97&&e<=102,B=e=>e>=65&&e<=90||e>=97&&e<=122,F=e=>e>=128,T=e=>B(e)||F(e)||e===95,ae=e=>T(e)||f(e)||e===45,se=e=>e===10,h=e=>e===10||e===9||e===32,Te=e=>e>=0&&e<=8||e===11||e>=14&&e<=31||e===127,y=-1;function Pe(e){let r=[];for(let n=0;n<e.length;n+=1){let t=e.codePointAt(n);t>65535&&(n+=1),t===13?(e.charCodeAt(n+1)===10&&(n+=1),t=10):t===12?t=10:(t===0||t>=55296&&t<=57343)&&(t=65533),r.push(t)}return r}function $e(e){let r=Pe(e),n=0,t=(s=0)=>n+s<r.length?r[n+s]:y,i=[],o=(s,d)=>s===92&&d!==10&&d!==y,a=(s,d,m)=>s===45?T(d)||d===45||o(d,m):T(s)?!0:o(s,d),u=(s,d,m)=>s===43||s===45?f(d)||d===46&&f(m):f(s===46?d:s),c=()=>{let s=t();if(n+=1,s===y)return 65533;if(ie(s)){let d=String.fromCodePoint(s);for(;d.length<6&&ie(t());)d+=String.fromCodePoint(t()),n+=1;h(t())&&(n+=1);let m=parseInt(d,16);return m===0||m>=55296&&m<=57343||m>1114111?65533:m}return s},p=()=>{let s="";for(;;){let d=t();if(ae(d))s+=String.fromCodePoint(d),n+=1;else if(o(d,t(1)))n+=1,s+=String.fromCodePoint(c());else return s}},g=()=>{let s="";for((t()===43||t()===45)&&(s+=String.fromCodePoint(r[n++]));f(t());)s+=String.fromCodePoint(r[n++]);if(t()===46&&f(t(1)))for(s+=String.fromCodePoint(r[n++],r[n++]);f(t());)s+=String.fromCodePoint(r[n++]);if((t()===69||t()===101)&&(f(t(1))||(t(1)===43||t(1)===45)&&f(t(2))))for(s+=String.fromCodePoint(r[n++]),f(t())||(s+=String.fromCodePoint(r[n++]));f(t());)s+=String.fromCodePoint(r[n++]);return s},E=()=>{let s=g();return a(t(),t(1),t(2))?{type:"dimension",repr:s,unit:p()}:t()===37?(n+=1,{type:"percentage",repr:s}):{type:"number",repr:s}},b=()=>{for(;;){let s=t();if(n+=1,s===41||s===y)return;o(s,t())&&c()}},Ce=()=>{let s="";for(;h(t());)n+=1;for(;;){let d=t();if(n+=1,d===41)return{type:"url",value:s};if(d===y)return{type:"url",value:s};if(h(d)){for(;h(t());)n+=1;return t()===41||t()===y?(t()===41&&(n+=1),{type:"url",value:s}):(b(),{type:"bad-url"})}if(d===34||d===39||d===40||Te(d))return b(),{type:"bad-url"};if(d===92){if(o(d,t()))s+=String.fromCodePoint(c());else return b(),{type:"bad-url"};continue}s+=String.fromCodePoint(d)}},z=()=>{let s=p();if(s.toLowerCase()==="url"&&t()===40){for(n+=1;h(t())&&h(t(1));)n+=1;let d=h(t())?t(1):t();return d===34||d===39?{type:"function",value:s}:Ce()}return t()===40?(n+=1,{type:"function",value:s}):{type:"ident",value:s}},ve=s=>{let d="";for(;;){let m=t();if(n+=1,m===s||m===y)return{type:"string",value:d};if(se(m))return n-=1,{type:"bad-string"};if(m===92){if(t()===y)continue;if(se(t())){n+=1;continue}d+=String.fromCodePoint(c());continue}d+=String.fromCodePoint(m)}};for(;;){for(;t()===47&&t(1)===42;){for(n+=2;t()!==y&&!(t()===42&&t(1)===47);)n+=1;t()!==y&&(n+=2)}let s=t();if(s===y)return i;if(h(s)){for(;h(t());)n+=1;i.push({type:"whitespace"});continue}switch(n+=1,s){case 34:case 39:i.push(ve(s));continue;case 35:if(ae(t())||o(t(),t(1))){let d=a(t(),t(1),t(2));i.push({type:"hash",value:p(),id:d})}else i.push({type:"delim",value:"#"});continue;case 40:i.push({type:"("});continue;case 41:i.push({type:")"});continue;case 43:case 46:u(s,t(),t(1))?(n-=1,i.push(E())):i.push({type:"delim",value:String.fromCodePoint(s)});continue;case 44:i.push({type:","});continue;case 45:u(s,t(),t(1))?(n-=1,i.push(E())):t()===45&&t(1)===62?(n+=2,i.push({type:"CDC"})):a(s,t(),t(1))?(n-=1,i.push(z())):i.push({type:"delim",value:"-"});continue;case 58:i.push({type:":"});continue;case 59:i.push({type:";"});continue;case 60:t()===33&&t(1)===45&&t(2)===45?(n+=3,i.push({type:"CDO"})):i.push({type:"delim",value:"<"});continue;case 64:a(t(),t(1),t(2))?i.push({type:"at-keyword",value:p()}):i.push({type:"delim",value:"@"});continue;case 91:i.push({type:"["});continue;case 92:o(s,t())?(n-=1,i.push(z())):i.push({type:"delim",value:"\\"});continue;case 93:i.push({type:"]"});continue;case 123:i.push({type:"{"});continue;case 125:i.push({type:"}"});continue;default:f(s)?(n-=1,i.push(E())):T(s)?(n-=1,i.push(z())):i.push({type:"delim",value:String.fromCodePoint(s)})}}}var pe={"{":"}","[":"]","(":")"},fe=32,D=class{constructor(r){this.tokens=r}i=0;peek(){return this.tokens[this.i]}next(){return this.tokens[this.i++]}};function me(e,r){let n=e.next();return n.type==="{"||n.type==="["||n.type==="("?{type:"block",open:n.type,value:le(e,pe[n.type],r+1)}:n.type==="function"?{type:"func",name:n.value,value:le(e,")",r+1)}:n}function le(e,r,n){let t=[];for(;;){let i=e.peek();if(!i)return t;if(i.type===r)return e.next(),t;if(n>fe){e.next(),t.push({type:"bad-string"});continue}t.push(me(e,n))}}function k(e,r){let n=[],t=0;for(;t<e.length;){let i=e[t];if(i.type==="whitespace"||r&&(i.type==="CDO"||i.type==="CDC")){t+=1;continue}if(i.type==="at-keyword"){let u=[];t+=1;let c;for(;t<e.length;){let p=e[t];if(t+=1,p.type===";")break;if(p.type==="block"&&p.open==="{"){c=p.value;break}u.push(p)}n.push({type:"at-rule",name:i.value,prelude:u,...c?{block:c}:{}});continue}let o=[],a;for(;t<e.length;){let u=e[t];if(t+=1,u.type==="block"&&u.open==="{"){a=u.value;break}o.push(u)}a&&n.push({type:"qualified",prelude:o,block:a})}return n}function H(e){let r=[],n=0;for(;n<e.length;){let t=e[n];if(t.type==="whitespace"||t.type===";"){n+=1;continue}if(t.type==="at-keyword"){let o=(()=>{for(let a=n+1;a<e.length;a+=1){let u=e[a];if(u.type===";"||u.type==="block"&&u.open==="{")return a+1}return e.length})();r.push(...k(e.slice(n,o),!1)),n=o;continue}if(t.type==="ident"){let o=n+1;for(;e[o]?.type==="whitespace";)o+=1;if(e[o]?.type===":"){let a=o+1;for(;a<e.length&&e[a].type!==";";)a+=1;let u=ge(t.value,e.slice(o+1,a));if(u.value.some(c=>c.type==="block"&&c.open==="{")){let c=e.findIndex((p,g)=>g>n&&p.type==="block"&&p.open==="{");r.push(...k(e.slice(n,c+1),!1)),n=c+1;continue}r.push(u),n=a+1;continue}}let i=n;for(;i<e.length&&!(e[i].type==="block"&&e[i].open==="{")&&e[i].type!==";";)i+=1;i<e.length&&e[i].type==="block"&&r.push(...k(e.slice(n,i+1),!1)),n=i+1}return r}function ge(e,r){let n=[...r];for(;n[0]?.type==="whitespace";)n.shift();for(;n.at(-1)?.type==="whitespace";)n.pop();let t=!1,o=n.length-1;if(n[o]?.type==="ident"&&n[o].value.toLowerCase()==="important"){for(o-=1;n[o]?.type==="whitespace";)o-=1;let a=n[o];if(a?.type==="delim"&&a.value==="!")for(t=!0,n.length=o;n.at(-1)?.type==="whitespace";)n.pop()}return{type:"declaration",name:e,value:n,important:t}}function W(e){let r=new D($e(e)),n=[];for(;r.peek();)n.push(me(r,0));return n}function P(e){let r="",n=[...e].map(t=>t.codePointAt(0));return n.forEach((t,i)=>{t===0?r+="\uFFFD":t>=1&&t<=31||t===127||i===0&&f(t)||i===1&&f(t)&&n[0]===45?r+=`\\${t.toString(16)} `:i===0&&t===45&&n.length===1?r+="\\-":F(t)||t===45||t===95||f(t)||B(t)?r+=String.fromCodePoint(t):r+=`\\${String.fromCodePoint(t)}`}),r}function $(e){let r="";for(let n of e){let t=n.codePointAt(0);F(t)||t===45||t===95||f(t)||B(t)?r+=n:t>=1&&t<=31||t===127?r+=`\\${t.toString(16)} `:r+=`\\${n}`}return r}function U(e){let r='"';for(let n of e){let t=n.codePointAt(0);t===0?r+="\uFFFD":t>=1&&t<=31||t===127||t===60||t===62?r+=`\\${t.toString(16)} `:t===34||t===92?r+=`\\${n}`:r+=n}return`${r}"`}function Ne(e){let r=$(e);return/^[eE]([0-9]|[+-][0-9])/.test(e)?`\\${e.codePointAt(0).toString(16)} ${$(e.slice(1))}`:r}var ue=e=>{switch(e.type){case"ident":case"url":case"bad-url":case"number":case"percentage":case"dimension":case"CDC":case"hash":case"at-keyword":return e.type;case"func":case"function":return"function";case"block":return e.open==="("?"(":"other";case"(":return"(";case"delim":return`delim${e.value}`;default:return"other"}};function Le(e,r){let n=["ident","function","url","bad-url","delim-","number","percentage","dimension","CDC"];return e==="ident"?[...n,"("].includes(r):e==="at-keyword"||e==="hash"||e==="dimension"||e==="delim#"||e==="delim-"?n.includes(r):e==="number"?["ident","function","url","bad-url","number","percentage","dimension","delim%"].includes(r):e==="delim@"?["ident","function","url","bad-url","delim-","CDC"].includes(r):e==="delim."||e==="delim+"?["number","percentage","dimension"].includes(r):e==="delim/"?r==="delim*":!1}function ze(e){switch(e.type){case"whitespace":return" ";case"ident":return P(e.value);case"at-keyword":return`@${P(e.value)}`;case"hash":return`#${$(e.value)}`;case"string":return U(e.value);case"url":return`url(${U(e.value)})`;case"delim":return e.value==="\\"?`\\
2
+ `:e.value;case"CDO":return"<!--";case"CDC":return"-->";case"number":return e.repr;case"percentage":return`${e.repr}%`;case"dimension":return`${e.repr}${Ne(e.unit)}`;case"func":return`${P(e.name)}(${C(e.value)})`;case"block":return`${e.open}${C(e.value)}${pe[e.open]}`;case":":case";":case",":case"[":case"]":case"(":case")":case"{":case"}":return e.type;default:return""}}function C(e){let r="",n;for(let t of e)t.type==="whitespace"&&n?.type==="whitespace"||(n&&Le(ue(n),ue(t))&&(r+="/**/"),r+=ze(t),n=t);return r}var je=new Set(K),ye=new Set(Z),de=new Set(J),Me=new Set(Q),Ve=new Set(te),ce=/^#[A-Za-z_][A-Za-z0-9_.:-]*$/,x=e=>e.replace(/[A-Z]/g,r=>r.toLowerCase()),De=e=>x(e);function I(e,r,n){let t=[];for(let i of r){if(i.type==="bad-url"||i.type==="bad-string"){n({reason:"unreadable",...e?{name:e}:{}});return}if(i.type==="url"){if(e&&de.has(e)&&ce.test(i.value)){t.push({type:"func",name:"url",value:[{type:"string",value:i.value}]});continue}n({reason:"url",...e?{name:e}:{}});return}if(i.type==="func"){let o=x(i.name);if(o==="url"||o==="src"){let u=i.value.filter(p=>p.type!=="whitespace"),c=u[0];if(o==="url"&&u.length===1&&c?.type==="string"&&e&&de.has(e)&&ce.test(c.value)){t.push({type:"func",name:"url",value:[{type:"string",value:c.value}]});continue}n({reason:"url",...e?{name:e}:{}});return}if(!ye.has(o)){n({reason:"function",name:o});return}let a=I(e,i.value,n);if(!a)return;o==="var"?t.push({type:"whitespace"},{type:"func",name:o,value:a},{type:"whitespace"}):t.push({type:"func",name:o,value:a});continue}if(i.type==="block"){if(i.open==="{"||i.open==="("&&t.at(-1)?.type==="ident"){n({reason:"unreadable",...e?{name:e}:{}});return}let o=I(e,i.value,n);if(!o)return;t.push({type:"block",open:i.open,value:o});continue}if(i.type==="at-keyword"||i.type==="CDO"||i.type==="CDC"||i.type==="{"||i.type==="}"||i.type===";"||i.type==="delim"&&i.value==="\\"){n({reason:"unreadable",...e?{name:e}:{}});return}t.push(i)}return t}function L(e,r){let n=e.name.startsWith("--"),t=n?e.name:De(e.name);if(!n&&!je.has(t)){r({reason:"property",name:t});return}let i=ee[t];if(i){let u=e.value.filter(g=>g.type!=="whitespace"),c=u[0],p=u.length===1&&c?.type==="ident"?x(c.value):void 0;if(!p||![...i,"inherit","initial","unset","revert"].includes(p)){r({reason:"value",name:t});return}return`${t}: ${p}${e.important?" !important":""}`}let o=I(n?void 0:t,e.value,r);if(!o)return;let a=C(o).trim();return`${n?`--${$(e.name.slice(2))}`:t}: ${a}${e.important?" !important":""}`}function be(e,r){let n=t=>{for(let i=0;i<t.length;i+=1){let o=t[i];if(i>0&&t[i-1].type===":"&&(o.type==="ident"||o.type==="func")){let u=x(o.type==="ident"?o.value:o.name);if(Ve.has(u)||u.startsWith("-webkit-")||u.startsWith("-moz-"))return r({reason:"selector",name:u}),!1}if(o.type==="url"||o.type==="bad-url"||o.type==="bad-string"||o.type==="at-keyword"||o.type==="CDO"||o.type==="CDC"||o.type==="block"&&o.open==="{")return r({reason:"unreadable",name:"selector"}),!1;if(o.type==="func"&&!n(o.value)||o.type==="block"&&!n(o.value))return!1}return!0};return n(e)}function V(e,r,n){let t=[];for(let i of H(e))if(i.type==="declaration"){let o=L(i,r);o&&t.push(`${o};`)}else{let o=N(i,r,n+1,"style");o&&t.push(o)}return t.join(" ")}function Ue(e,r,n){let t=i=>i.every(o=>{if(o.type==="url"||o.type==="bad-url"||o.type==="bad-string"||o.type==="block"&&o.open==="{")return n({reason:o.type==="url"?"url":"unreadable",name:`@${r}`}),!1;if(o.type==="func"){let a=x(o.name);return r==="supports"&&a==="selector"?be(o.value,n):ye.has(a)?t(o.value):(n({reason:"function",name:a}),!1)}if(o.type==="block"){if(r==="supports"){let a=H(o.value);if(a.length===1&&a[0].type==="declaration")return L(a[0],n)!==void 0}return t(o.value)}return!0});return t(e)?C(e).trim():void 0}function G(e){return e.map((r,n)=>{let t=e[n-1],i=t?.type===":"||t?.type==="delim"&&(t.value==="."||t.value==="|");return r.type==="ident"&&!i&&Object.prototype.hasOwnProperty.call(v,x(r.value))?{type:"block",open:"[",value:[{type:"ident",value:"data-graview-as"},{type:"delim",value:"="},{type:"string",value:x(r.value)}]}:r.type==="func"?{type:"func",name:r.name,value:G(r.value)}:r.type==="block"&&r.open==="("?{type:"block",open:"(",value:G(r.value)}:r})}function N(e,r,n,t){if(n>fe){r({reason:"unreadable",name:"nesting"});return}if(e.type==="qualified"){if(t==="keyframes"){if(!e.prelude.every(g=>g.type==="whitespace"||g.type===","||g.type==="percentage"||g.type==="ident"&&["from","to"].includes(x(g.value)))){r({reason:"unreadable",name:"keyframe"});return}return`${C(e.prelude).trim()} { ${V(e.block,r,n)} }`}if(!be(e.prelude,r))return;let c=C(G(e.prelude)).trim();if(c===""){r({reason:"unreadable",name:"selector"});return}return`${c} { ${V(e.block,r,n)} }`}let i=x(e.name),o=i==="-webkit-keyframes"?"keyframes":i;if(!Me.has(o)||t==="keyframes"){r({reason:"at-rule",name:`@${i}`});return}if(!e.block){r({reason:"unreadable",name:`@${i}`});return}if(o==="keyframes"){if(t!=="sheet"){r({reason:"at-rule",name:"@keyframes"});return}let c=e.prelude.filter(b=>b.type!=="whitespace"),p=c[0];if(c.length!==1||!p||p.type!=="ident"&&p.type!=="string"){r({reason:"unreadable",name:"@keyframes"});return}let g=k(e.block,!1).map(b=>N(b,r,n+1,"keyframes")).filter(b=>b!==void 0);return`@keyframes ${p.type==="ident"?P(p.value):U(p.value)} { ${g.join(" ")} }`}let a=Ue(e.prelude,o,r);if(a===void 0)return;let u=t==="style"?V(e.block,r,n):k(e.block,!1).map(c=>N(c,r,n+1,"sheet")).filter(c=>c!==void 0).join(" ");return`@${o} ${a} { ${u} }`}function tt(e,r=j){let n=[];if(e.length>r)return{css:"",refused:[{reason:"size"}]};let t=o=>void n.push(o);return{css:k(W(e),!0).map(o=>N(o,t,0,"sheet")).filter(o=>o!==void 0).join(`
3
+ `),refused:n}}function he(e,r=j){let n=[];if(e.length>r)return{css:"",refused:[{reason:"size"}]};let t=o=>void n.push(o),i=[];for(let o of H(W(e))){if(o.type!=="declaration"){t({reason:"unreadable",name:"a rule in a style attribute"});continue}let a=L(o,t);a&&i.push(a)}return{css:i.join("; "),refused:n}}function xe(e,r){let n,t=L(ge(e,W(r)),i=>n??=i);return t===void 0||n?{refused:n??{reason:"unreadable",name:e}}:{value:t.slice(t.indexOf(":")+1).trim()}}function it(e,r){if(r==="svg"){let t=re(e);return t?{namespace:"svg",name:t}:{refused:{reason:"element",element:e}}}let n=e.toLowerCase();return n==="svg"?{namespace:"svg",name:"svg"}:Object.prototype.hasOwnProperty.call(A,n)?Object.prototype.hasOwnProperty.call(v,n)?{namespace:"html",name:v[n],as:n}:{namespace:"html",name:n}:{refused:{reason:"element",element:e}}}function at(e,r){return(e==="html"?A[r]:_[r])?.empty===!0}var Ie=/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/,Ge=/^[0-9A-Za-z\s.,+\-%()]*$/,Be=/^#[A-Za-z_][A-Za-z0-9_.:-]*$/,Fe=/^data:image\/(png|gif|jpeg|webp|avif|bmp|svg\+xml)(;[A-Za-z0-9=._+-]+)*,/i,He=/^\/graview\/assets\/[0-9a-f]{64}\.(png|gif|jpe?g|webp|avif|svg|ico)$/,we=/\/graview\/assets\/[0-9a-f]{64}\.(png|gif|jpe?g|webp|avif|svg|ico)$/,We=/^\/(?!\/)(?!(?:.*\/)?\.\.?(?:\/|$))(?!.*%(?:2e|2f|5c))[^\\\s?#"'<>]*$/i;function Xe(e,r){if(He.test(e))return e;let n=e;if(/^https?:\/\//i.test(e))try{let t=new URL(e);if(r==="null"||t.origin!==r||t.username!==""||t.password!==""||t.search!==""||t.hash!=="")return;n=e.slice(t.origin.length)}catch{return}if(We.test(n))return we.exec(n)?.[0]}function st(e,r={},n){let t=e.length>120?`${e.slice(0,119)}\u2026`:e,i=ke(r.origins),o=we.exec(e.split(/[?#]/)[0])?.[0],a=n!==void 0&&n>S?` It is a data: image of ${n.toLocaleString("en-US")} characters, more than the ${S.toLocaleString("en-US")} a view's own data: image may be. A picture on a record is drawn at any size by the src the host hands the view (pictures in its manifest), used as it was handed.`:o?r.assets?` It is the app's own image only by its path, or under the app's base on this page's origin: write it as its path, ${o}.`:" This host has not said where the app's own images live (asset, on the view's definition), so a view here cannot draw one by its path.":/^https:\/\//i.test(e)?i.length>0?` Its origin is not one the host lists for images (${i.join(", ")}).`:" The host lists no origin a view's images may come from (images.origins, on the view's definition).":"",u=["a data: image",...r.assets?["the app's own image by the path add_image answered (/graview/assets/<sha256>.<ext>)"]:[],"a picture on a record (pictures in its manifest)",...i.length>0?[`an https: image from ${i.join(", ")}`]:[]];return`The image "${t}" was not drawn.${a} A view here shows ${u.slice(0,-1).join(", ")} or ${u[u.length-1]}.`}function ke(e){return(e??[]).flatMap(r=>{try{let n=new URL(r);return n.protocol==="https:"&&n.hostname!==""&&n.username===""&&n.password===""?[n.origin]:[]}catch{return[]}})}function qe(e,r){if(!(!r||r.length===0||!/^https:\/\//i.test(e)))try{let n=new URL(e);return n.protocol!=="https:"||n.username!==""||n.password!==""?void 0:ke(r).includes(n.origin)?n.href:void 0}catch{return}}function lt(e,r,n,t,i){let o=oe(e,r,n);if(!o)return{refused:{reason:"attribute",element:r,name:n}};if(e==="html"&&Y[r]?.includes(o.name))return{refused:{reason:"attribute",element:r,name:n}};if(t===null)return{name:o.name,value:null};let a=Ye(o.name,o.kind,t,i);return"refused"in a?{refused:{...a.refused,element:r,...o.kind==="image"&&a.refused.reason==="url"?{address:t.slice(0,200),...t.length>S?{length:t.length}:{}}:{}}}:o.name==="role"&&a.value.split(/\s+/).some(u=>q.includes(u.toLowerCase()))?{refused:{reason:"value",element:r,name:n}}:o.name==="aria-live"&&!["polite","off"].includes(a.value.toLowerCase())?{refused:{reason:"value",element:r,name:n}}:{name:o.name,value:a.value,...a.dropped?{dropped:a.dropped.map(u=>({reason:u.reason==="url"?"url":"css",element:r,name:o.name,css:u}))}:{}}}function Ye(e,r,n,t){let i=(o,a)=>({refused:{reason:o,name:e,...a?{css:a}:{}}});if(r==="geometry")return n.length>ne||!Ge.test(n)||/url/i.test(n)?i("value"):{value:n};if(r==="image"){let o=t.picture?.(n);if(o!==void 0)return{value:o};if(n.length>S)return i("url");if(Fe.test(n))return{value:n};if(n.startsWith(`blob:${t.origin}/`)&&/^blob:[^\s"'<>]+$/.test(n))return{value:n};let a=t.asset?Xe(n,t.origin):void 0;if(a!==void 0){let c=t.asset(a);if(c)return{value:c}}let u=qe(n,t.imageOrigins);return u?{value:u}:i("url")}if(n.length>M)return i("value");if(typeof r=="object"){let o=r.oneOf.find(a=>a.toLowerCase()===n.toLowerCase());return o===void 0?i("value"):{value:o}}switch(r){case"text":return{value:n};case"number":return Ie.test(n.trim())&&Number.isFinite(Number(n))?{value:n.trim()}:i("value");case"boolean":return{value:""};case"fragment":return Be.test(n)?{value:n}:i("url");case"style":{let o=he(n,M);return o.refused.length>0&&o.css===""?i(o.refused[0].reason==="url"?"url":"css",o.refused[0]):{value:o.css,...o.refused.length>0?{dropped:o.refused}:{}}}case"css":{let o=xe(e,n);return"refused"in o?i(o.refused.reason==="url"?"url":"css",o.refused):{value:o.value}}}}export{Ke as a,Ze as b,Je as c,tt as d,it as e,at as f,st as g,lt as h};