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.
- package/dist/preview/chunk.23WYWIAJ.js +1 -0
- package/dist/preview/{chunk.5XJEGXDO.js → chunk.2BJRS3YJ.js} +1 -1
- package/dist/preview/{chunk.ROGYDMES.js → chunk.2GGDOFTF.js} +1 -1
- package/dist/preview/chunk.2HF54MYG.js +1 -0
- package/dist/preview/{chunk.OE4QOBJF.js → chunk.2IX3CZNP.js} +1 -1
- package/dist/preview/chunk.2NSTEREJ.js +1 -0
- package/dist/preview/chunk.2RCNSHXK.js +1 -0
- package/dist/preview/chunk.37ASLBGE.js +1 -0
- package/dist/preview/{chunk.33GN2NUT.js → chunk.3ZNQ5YKX.js} +1 -1
- package/dist/preview/{chunk.EUGWV3S6.js → chunk.4BBJ62ZO.js} +1 -1
- package/dist/preview/chunk.4ECICQ2S.js +1 -0
- package/dist/preview/{chunk.B5ILKGEF.js → chunk.4PNFX3TX.js} +1 -1
- package/dist/preview/{chunk.WG5NIR23.js → chunk.546WEHEX.js} +1 -1
- package/dist/preview/chunk.57OPL5WD.js +1 -0
- package/dist/preview/{chunk.36SQJMEE.js → chunk.5JPRFXYQ.js} +1 -1
- package/dist/preview/chunk.5OJJ2TKZ.js +9 -0
- package/dist/preview/chunk.5R4E5C76.js +1 -0
- package/dist/preview/{chunk.7H5KVW2F.js → chunk.5XNVN4HE.js} +1 -1
- package/dist/preview/chunk.5ZMENPY4.js +5 -0
- package/dist/preview/{chunk.YPY5BOEI.js → chunk.67USHK26.js} +1 -1
- package/dist/preview/chunk.6CFP5UYP.js +1 -0
- package/dist/preview/{chunk.74RMHUCX.js → chunk.6DHHUBSC.js} +1 -1
- package/dist/preview/chunk.6HBEYRJU.js +1 -0
- package/dist/preview/chunk.6L7IDF3J.js +1 -0
- package/dist/preview/{chunk.ZRQI5VJF.js → chunk.6XU2CXRZ.js} +1 -1
- package/dist/preview/{chunk.2VIGF4FO.js → chunk.7EFNLMKU.js} +1 -1
- package/dist/preview/chunk.7WSXVXP3.js +1 -0
- package/dist/preview/chunk.ALDLAQ7V.js +1 -0
- package/dist/preview/chunk.AYHCQWSU.js +1 -0
- package/dist/preview/{chunk.QYRPELLU.js → chunk.B2IRADR2.js} +1 -1
- package/dist/preview/{chunk.V2NBJDAX.js → chunk.B7TB6YRZ.js} +1 -1
- package/dist/preview/chunk.BCHHBGM6.js +1 -0
- package/dist/preview/{chunk.LHO7L3CS.js → chunk.BEC5ZH2L.js} +1 -1
- package/dist/preview/chunk.BL4S3I2N.js +1 -0
- package/dist/preview/chunk.BS3FX4PX.js +1 -0
- package/dist/preview/chunk.BTSXYZ6Z.js +25 -0
- package/dist/preview/chunk.BYKR7NEE.js +1 -0
- package/dist/preview/chunk.BZSU4HH2.js +1 -0
- package/dist/preview/chunk.C2OAKTZX.js +1 -0
- package/dist/preview/chunk.C4CFYTCW.js +1 -0
- package/dist/preview/{chunk.6ONRWFA6.js → chunk.C6X7CKU6.js} +1 -1
- package/dist/preview/chunk.CAMQ7MYJ.js +1 -0
- package/dist/preview/{chunk.NPX7SPXM.js → chunk.CC47O2DW.js} +1 -1
- package/dist/preview/{chunk.ZLXPIEUC.js → chunk.CF7DHTKL.js} +2 -2
- package/dist/preview/{chunk.SGB6IMWN.js → chunk.CMN6VVK2.js} +1 -1
- package/dist/preview/chunk.CTK2P4JV.js +3 -0
- package/dist/preview/chunk.DAA7IDQ4.js +1 -0
- package/dist/preview/{chunk.6UCRL4OF.js → chunk.DYNBWIPF.js} +1 -1
- package/dist/preview/chunk.E3HXXUKY.js +1 -0
- package/dist/preview/{chunk.GZ3IXNA4.js → chunk.EBHKKOPO.js} +1 -1
- package/dist/preview/chunk.EDC4EMIX.js +1 -0
- package/dist/preview/chunk.EM4Y4YAD.js +2 -0
- package/dist/preview/{chunk.IEDXW36H.js → chunk.EWWJMS6G.js} +1 -1
- package/dist/preview/chunk.F5UVEF2R.js +1 -0
- package/dist/preview/{chunk.TKSGC6XH.js → chunk.FCXBCKED.js} +1 -1
- package/dist/preview/chunk.FGDHEVH4.js +1 -0
- package/dist/preview/{chunk.IM7LXLIB.js → chunk.FILCNVGH.js} +1 -1
- package/dist/preview/chunk.FJBQ4UP3.js +32 -0
- package/dist/preview/{chunk.RZVZG2BQ.js → chunk.FMN5XDLE.js} +1 -1
- package/dist/preview/chunk.G23VFYGF.js +88 -0
- package/dist/preview/chunk.G46WGK5E.js +1 -0
- package/dist/preview/chunk.GAFYE37S.js +3 -0
- package/dist/preview/{chunk.VNBR4DHD.js → chunk.GP2F7TIN.js} +1 -1
- package/dist/preview/chunk.GXKECZ4S.js +19 -0
- package/dist/preview/{chunk.3D5T3XIE.js → chunk.H5CZZZLX.js} +1 -1
- package/dist/preview/{chunk.V5ZT5NSJ.js → chunk.HA3PPIEQ.js} +1 -1
- package/dist/preview/chunk.HFDYFPMJ.js +1 -0
- package/dist/preview/chunk.HFYUAK5Z.js +6 -0
- package/dist/preview/chunk.HGS32FT2.js +1 -0
- package/dist/preview/chunk.HHUCPVG5.js +1 -0
- package/dist/preview/{chunk.LF7PU77M.js → chunk.I7CU2E3C.js} +1 -1
- package/dist/preview/{chunk.MCVY6RRS.js → chunk.IAZRY42B.js} +1 -1
- package/dist/preview/{chunk.5MSO3KRO.js → chunk.ITEF3U2E.js} +1 -1
- package/dist/preview/{chunk.AZCFXPEL.js → chunk.IXYBIDAN.js} +1 -1
- package/dist/preview/{chunk.FTJBW25J.js → chunk.J3M2MZHG.js} +1 -1
- package/dist/preview/{chunk.MVNUWK5Y.js → chunk.JBTU2PJ4.js} +1 -1
- package/dist/preview/chunk.JCR3ECUM.js +1 -0
- package/dist/preview/{chunk.JWJQ2VXS.js → chunk.JEZTPXEB.js} +1 -1
- package/dist/preview/chunk.KIJCOW25.js +1 -0
- package/dist/preview/{chunk.2EJAIT33.js → chunk.KJNUZYXS.js} +1 -1
- package/dist/preview/chunk.L7DQKPJV.js +117 -0
- package/dist/preview/{chunk.RVJYEOFN.js → chunk.LCYMYLOP.js} +1 -1
- package/dist/preview/chunk.LP2DJ5ZB.js +6 -0
- package/dist/preview/chunk.LP3QUPCE.js +1 -0
- package/dist/preview/chunk.M5QFUGGG.js +1 -0
- package/dist/preview/chunk.N2SV3KX7.js +1 -0
- package/dist/preview/chunk.N7N5OFPL.js +1 -0
- package/dist/preview/{chunk.WERYQENC.js → chunk.NG3YMQ36.js} +1 -1
- package/dist/preview/{chunk.MWZK3HVG.js → chunk.NSNGPQGT.js} +1 -1
- package/dist/preview/chunk.OJKS3UQS.js +1 -0
- package/dist/preview/{chunk.KNJZ2YNJ.js → chunk.OM5CDW2S.js} +1 -1
- package/dist/preview/{chunk.QT4XGC5Z.js → chunk.ORXFUK6F.js} +2 -2
- package/dist/preview/chunk.OXTUXWMU.js +1 -0
- package/dist/preview/chunk.OYMM2UWE.js +1 -0
- package/dist/preview/chunk.P3JYH6HO.js +1 -0
- package/dist/preview/{chunk.FMVWXSQ7.js → chunk.P4WYBSYA.js} +1 -1
- package/dist/preview/chunk.P5325GYR.js +1 -0
- package/dist/preview/chunk.PMER4LVT.js +1 -0
- package/dist/preview/chunk.PONWLTTB.js +1 -0
- package/dist/preview/chunk.PXQVXBNG.js +1 -0
- package/dist/preview/chunk.QCF6Z2AZ.js +1 -0
- package/dist/preview/chunk.QEXXLWEU.js +6 -0
- package/dist/preview/chunk.QMFUPTR4.js +1 -0
- package/dist/preview/{chunk.BUVAMSOZ.js → chunk.RM7NVN7B.js} +2 -2
- package/dist/preview/{chunk.YUJG5SN5.js → chunk.ROINZMNO.js} +1 -1
- package/dist/preview/chunk.ROKRQRID.js +35 -0
- package/dist/preview/chunk.RWB4235L.js +1 -0
- package/dist/preview/chunk.RXSHFG6S.js +1 -0
- package/dist/preview/chunk.SDO3U72B.js +1 -0
- package/dist/preview/chunk.SHNYYBNW.js +1 -0
- package/dist/preview/{chunk.L73VUBXN.js → chunk.SK33IHL2.js} +2 -2
- package/dist/preview/chunk.STBJV6HJ.js +1 -0
- package/dist/preview/chunk.TCUB6IDY.js +1 -0
- package/dist/preview/chunk.TJCTTJWE.js +1 -0
- package/dist/preview/{chunk.SZWX56WR.js → chunk.TU4KG22J.js} +2 -2
- package/dist/preview/chunk.U4E5GQTK.js +1 -0
- package/dist/preview/{chunk.Z3ZKYSPN.js → chunk.U7QMA4H7.js} +1 -1
- package/dist/preview/{chunk.UXIFQIHA.js → chunk.UB3O3QJQ.js} +1 -1
- package/dist/preview/{chunk.6XJP7F3I.js → chunk.UCZR33MK.js} +1 -1
- package/dist/preview/chunk.UGCNMAPC.js +1 -0
- package/dist/preview/{chunk.VKHKYK5L.js → chunk.UIUHGA6W.js} +1 -1
- package/dist/preview/chunk.VC4JPG7O.js +1 -0
- package/dist/preview/{chunk.DL637Q3W.js → chunk.W4OX4BMP.js} +1 -1
- package/dist/preview/chunk.WJQY4E45.js +1 -0
- package/dist/preview/{chunk.XHWL7QBF.js → chunk.WQPNGBR7.js} +1 -1
- package/dist/preview/chunk.WTZOOAIW.js +1 -0
- package/dist/preview/{chunk.FUJM7GDV.js → chunk.WXYUWBKX.js} +1 -1
- package/dist/preview/chunk.XBOZTQQA.js +1 -0
- package/dist/preview/{chunk.TOWYHWPB.js → chunk.XLI44BBI.js} +1 -1
- package/dist/preview/chunk.XLZ2QRRS.js +1 -0
- package/dist/preview/chunk.XQTMO5PW.js +1 -0
- package/dist/preview/chunk.YWVOACSX.js +5 -0
- package/dist/preview/{chunk.67WL7BGF.js → chunk.YXGI7H4Y.js} +1 -1
- package/dist/preview/{chunk.GR5Q4HTW.js → chunk.Z7JRBKA7.js} +1 -1
- package/dist/preview/chunk.ZR5KVYWZ.js +21 -0
- package/dist/preview/{chunk.6IHXTT6Z.js → chunk.ZTMDU3OH.js} +1 -1
- package/dist/preview/index.html +45 -43
- package/dist/preview/page.js +7 -7
- package/package.json +6 -6
- package/dist/preview/chunk.2HFRVWWM.js +0 -1
- package/dist/preview/chunk.3FW4QNGV.js +0 -1
- package/dist/preview/chunk.3RT2GUZ5.js +0 -1
- package/dist/preview/chunk.3ZRHHB7X.js +0 -1
- package/dist/preview/chunk.4DEUD66C.js +0 -6
- package/dist/preview/chunk.4EQSP7I3.js +0 -1
- package/dist/preview/chunk.4Y6BCHV2.js +0 -1
- package/dist/preview/chunk.5VBBQ6Z3.js +0 -1
- package/dist/preview/chunk.6CKBIY7L.js +0 -1
- package/dist/preview/chunk.7RSZMIAL.js +0 -1
- package/dist/preview/chunk.AFY35RJP.js +0 -1
- package/dist/preview/chunk.BRHRAVU2.js +0 -3
- package/dist/preview/chunk.DFVVS6C5.js +0 -1
- package/dist/preview/chunk.DQJAEU4V.js +0 -1
- package/dist/preview/chunk.ESSQAMPM.js +0 -1
- package/dist/preview/chunk.EV553KRT.js +0 -1
- package/dist/preview/chunk.EZP4FHDX.js +0 -35
- package/dist/preview/chunk.F6PIK2J2.js +0 -1
- package/dist/preview/chunk.FYIQZMVF.js +0 -1
- package/dist/preview/chunk.HUSFMFXH.js +0 -1
- package/dist/preview/chunk.HVTGPEVW.js +0 -1
- package/dist/preview/chunk.I3SQJ2L2.js +0 -1
- package/dist/preview/chunk.IU6ISXXC.js +0 -1
- package/dist/preview/chunk.K5KEECHL.js +0 -88
- package/dist/preview/chunk.L34FY7QQ.js +0 -1
- package/dist/preview/chunk.L7JKEEMM.js +0 -1
- package/dist/preview/chunk.LAW5PQEM.js +0 -1
- package/dist/preview/chunk.LDD3QX7G.js +0 -1
- package/dist/preview/chunk.LU5LSXSW.js +0 -1
- package/dist/preview/chunk.MQ7FNHXG.js +0 -25
- package/dist/preview/chunk.NH5TDAB2.js +0 -1
- package/dist/preview/chunk.NORRCKGN.js +0 -1
- package/dist/preview/chunk.NQQHOSOK.js +0 -1
- package/dist/preview/chunk.NWWMUOZM.js +0 -1
- package/dist/preview/chunk.OEF3GPRM.js +0 -1
- package/dist/preview/chunk.OS3L4ZOF.js +0 -2
- package/dist/preview/chunk.OTL3Z345.js +0 -1
- package/dist/preview/chunk.P3UPCI23.js +0 -1
- package/dist/preview/chunk.PGKIEDYV.js +0 -9
- package/dist/preview/chunk.PKUWET2F.js +0 -1
- package/dist/preview/chunk.POHEWJKZ.js +0 -1
- package/dist/preview/chunk.PUBG2L6F.js +0 -117
- package/dist/preview/chunk.QTTBZJ6W.js +0 -1
- package/dist/preview/chunk.RJDZOF2L.js +0 -1
- package/dist/preview/chunk.SGLJTSTD.js +0 -1
- package/dist/preview/chunk.SITFEJES.js +0 -1
- package/dist/preview/chunk.UF3L6FJO.js +0 -1
- package/dist/preview/chunk.VSYHU5MA.js +0 -1
- package/dist/preview/chunk.VTWFVPKD.js +0 -19
- package/dist/preview/chunk.VV4BPOIK.js +0 -1
- package/dist/preview/chunk.W2HCJQVK.js +0 -32
- package/dist/preview/chunk.WLPTY4BF.js +0 -5
- package/dist/preview/chunk.XM3NPZLP.js +0 -1
- package/dist/preview/chunk.YAXZNQY6.js +0 -1
- package/dist/preview/chunk.YG423NEB.js +0 -1
- package/dist/preview/chunk.YVR3ZMTV.js +0 -1
- package/dist/preview/chunk.YXH3IWNR.js +0 -1
- package/dist/preview/chunk.ZYCNEOAQ.js +0 -1
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import{a as zt,b as Bt,c as It,d as Bn}from"./chunk.4DEUD66C.js";import{a as Dt}from"./chunk.LHO7L3CS.js";import{a as Dn,b as Rt,c as zn,d as Et,e as Mt,f as Lt}from"./chunk.L73VUBXN.js";import{c as Wt,g as Ht,h as Vt}from"./chunk.YG423NEB.js";import{e as Ct}from"./chunk.6ONRWFA6.js";import{a as Tt,b as dn,c as Pt,d as Nt}from"./chunk.IM7LXLIB.js";import{b as wt,c as se,d as be,e as Pe}from"./chunk.6IHXTT6Z.js";import{m as At}from"./chunk.VTWFVPKD.js";import{a as $t,b as Ot}from"./chunk.ZRQI5VJF.js";import{f as St,h as kt}from"./chunk.33GN2NUT.js";import{e as xt}from"./chunk.2VIGF4FO.js";import{e as vt}from"./chunk.2EJAIT33.js";import{l as bt,m as Nn}from"./chunk.I3SQJ2L2.js";import{m as Tn,n as Pn}from"./chunk.MWZK3HVG.js";import{k as je,m as yt}from"./chunk.QT4XGC5Z.js";import{$ as ae,H as Ne,S as Z,U as pt,ba as ft,m as Ze,ta as ht,ua as en}from"./chunk.MQ7FNHXG.js";import{Cc as Ln,Ma as lt,Mb as ut,Qa as st,Ra as dt,Sa as ct,U as tt,V as rt,W as Rn,Wb as fe,X as at,Y as Je,Yc as mt,aa as Ve,ba as ve,ea as Ge,fa as ln,ga as it,ia as En,ja as ot,jc as Xe,ka as sn,kc as gt,lb as Mn,pc as Ae}from"./chunk.WLPTY4BF.js";import{b as K}from"./chunk.AJZBJBMO.js";var In=K(Z(),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,In.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,In.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=K(Z(),1),Pr=(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}},Nr=["sort","filter","group","q","archived"];function Re(e,t={}){let{store:n}=ae(),{view:r,go:a}=en(),s=Nr.some(E=>r.within?.[E]!==void 0)?$t(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=Pr(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(Ot(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=K(Ne(),1);var j=K(Z(),1),Dr=["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 Wn(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 zr({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=Wn(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 $ of o.nodeIds)u.set($,[...u.get($)??[],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($=>f.empty.includes($.id));return(0,j.jsx)(se,{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($=>({id:$.id,label:$.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,V]=(0,ze.useState)(!1);(0,ze.useEffect)(()=>{let o=E.current;if(!o||typeof ResizeObserver>"u")return;let $=new ResizeObserver(P=>{let N=P[0]?.contentRect;if(!N)return;let y=N.height<M;V(y),w(!y&&A<1&&N.width/N.height>1.3),m(y?null:N.height)});return $.observe(o),()=>$.disconnect()},[A]);let k=(o,$)=>z?{x:1-$,y:o}:{x:o,y:$},_=(()=>{let o=new Map,$=(P,N,y)=>{let O=o.get(y)??{ids:[],codes:[]};O.ids.includes(P)||(O.ids.push(P),O.codes.includes(N)||O.codes.push(N)),o.set(y,O)};for(let P of f.slots){for(let N of x(P.id))$(P.id,P.code,N);for(let N of P.occupants)for(let y of x(N.id))$(N.id,N.label,y)}return[...o.entries()].map(([P,N])=>({id:N.ids[0],code:N.codes.join(", "),text:P}))})(),L=a==="fullscreen",Y=_.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:[_.slice(0,L?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:L?"grid":"flex",gap:L?1:7,alignItems:L?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:L?"2px 0":"3px 6px",marginLeft:L?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,...L?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:o.text})]},o.id)),_.length>(L?6:2)?(0,j.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",_.length-(L?6:2)," more"]}):null]}),oe=i.arrange==="shelf",le=f.slots.every(o=>o.code.length<=3&&!/\s/.test(o.code)),Q=(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=o.occupants.some(G=>c.has(G.id)),T=y,H=[...x(o.id),...o.occupants.flatMap(G=>x(G.id))],re=o.occupants.length===1?o.occupants[0]:null,ue=i.pickTarget==="slot"?o.id:re?re.id:o.id,J=G=>re?{}:{"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)",F=i.emptyLabel??"empty";return(0,j.jsxs)("div",{"data-graview-pick":ue,"data-graview-slot":o.id,"data-graview-mark":le?"disc":"token","data-graview-flagged":y&&O?"both":y?"slot":O?"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}`,...H].join(`
|
|
3
|
-
`),style:{...$,display:"grid",justifyItems:le?"center":"start",gap:3,opacity:N?.5:1,transition:"opacity 160ms ease"},children:[le?(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 ${T?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:P?"transparent":T?"var(--graview-panel-warning)":"var(--graview-panel)",color:P||T?"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 ${T?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:P?"transparent":T?"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||T?"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:F}):(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",{...J(G),style:{whiteSpace:"nowrap",color:he(G)},children:[G.label,c.has(G.id)?" \u26A0":""]},G.id))})]}),le?P?(0,j.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:F}):o.occupants.map(G=>(0,j.jsxs)("span",{...J(G),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:he(G)},children:[G.label,c.has(G.id)?" \u26A0":""]},G.id)):null]},o.id)},de=i.zones??[],ce=de.map((o,$)=>({label:o.label,slots:f.slots.filter(P=>P.y>=o.from&&(P.y<o.to||$===de.length-1&&P.y<=o.to))})),W=new Set(ce.flatMap(o=>o.slots.map($=>$.id))),R=f.slots.filter(o=>!W.has(o.id));(R.length>0||ce.length===0)&&ce.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)(se,{title:n??"Board",meta:f.slots.length===0?void 0:f.empty.length===0?`all ${f.slots.length} filled`:`${f.empty.length} unfilled`,...L?{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:[L&&Y?(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"}),Y]}):null,oe?(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:ce.map((o,$)=>(0,j.jsxs)("section",{"data-graview-zone":o.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...$>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=>Q(P,{}))}):(0,j.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},o.label||`band-${$}`))}):(0,j.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...D?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!z&&de.length>0?(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:de.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:[de.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?de.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=>Q(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]}),L?null:Y]})}function qt(e){function t(n){let{store:r}=ae(),a=Wn(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)(zr,{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:[...Dr],options:e,View:t,build(n,r,a){return Wn(n,r,e,a)}}}var vn=K(Ne(),1);var _t=864e5;function Hn(e){if(typeof e!="string")return null;if(Tn(e))return Pn(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(Tn(e))return Pn(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*_t)}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 Vn=e=>new Date(un(e)).getUTCDay();function _e(e,t=1){let n=(Vn(e)-t+7)%7;return xe(e,-n)}var Gn=e=>`${e.slice(0,7)}-01`;function pe(e,t){return Math.round((un(t)-un(e))/_t)}function Fe(e,t){return Array.from({length:t},(n,r)=>xe(e,r))}var Ft=e=>at(e,"short"),Ee=e=>tt(e,{weekday:"short"}),jn=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"],Br=["day","week","month","quarter","year","agenda"];function fn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:Br}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 qn=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 qn(e.kind,s);let p=Hn(a[r.start]);if(p===null)return null;let g=(r.end?Hn(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:Gn(e),to:Zt(e),label:Rn(e,{short:!0,year:t})});function Zt(e){return mn(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function Ir(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=_e(t,r);return{title:`${Ee(g)} \u2013 ${Ee(xe(g,6))}`,grain:"day",columns:7,cells:Fe(g,7).map(b=>a(b))}}if(e==="agenda")return{title:`From ${Ee(t)}`,grain:"day",columns:1,cells:Fe(t,42).map(g=>a(g))};if(e==="quarter"){let g=Ir(t),b=Zt(We(g,2)),d=[];for(let h=_e(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>Wr?{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=Gn(t),s=_e(i,r),p=t.slice(0,7);return{title:Rn(t),grain:"day",columns:7,cells:Fe(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 Wr=10;function tr(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var rr=K(Ne(),1);var ne=K(Z(),1);function _n({label:e,glyph:t,onPress:n}){return(0,ne.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?Fe(_e(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,ne.jsx)("div",{ref:d,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,ne.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,ne.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,ne.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${c}, minmax(0, 1fr))`,gap:4},children:S.map(u=>(0,ne.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?Ft(Vn(u)):Ee(u)},u))}):null,(0,ne.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,ne.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,ne.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,ne.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,ne.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:A.length}):null]}),E.map(m=>(0,ne.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,ne.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,ne.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,ne.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,ne.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,ne.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,ne.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?`${jn(e.at)} ${e.label}`:e.label;return(0,ne.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 ${jn(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,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),b]}):b:" "})}var X=K(Z(),1);function Hr(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)(Vr,{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 Vr({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?Hr((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)),V=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)(se,{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:V(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:V(v)}))})})}let k=r==="fullscreen",[_,L]=(0,vn.useState)(null),Y=(R,v,o)=>{let $=l.graph.getNode(R);if(!$)return;let P=He(a.bindings[$.kind],l.schema.tryDefinition($.kind));if(!P)return;let N=Jt(l,$.kind,P.start);if(!N){L({text:`Nothing declared writes the ${En(l.schema.definitions.find(J=>J.kind===$.kind),P.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let y=v.from,O=$[P.start],H=gn(O)===null?y:`${y}${String(O).slice(10)}`,re={name:N.name,args:{[N.arg]:R,[P.start]:H}},ue=l.permits(re,c);if(!ue.ok){L({text:ue.refusal.message,tone:"refused"});return}try{l.apply(re,{author:c}),L(o==="day"?null:{text:`Moved to ${Ee(y)} \u2014 a ${o} is coarser than the ${En(l.schema.definitions.find(J=>J.kind===$.kind),P.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(J){L({text:J instanceof Error?J.message:String(J),tone:"refused"})}},oe=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))},le=(R,v)=>{let o=Ze(h,"range",R);v!==void 0&&(o=Ze(o,"at",v)),f(o)},Q=(0,vn.useRef)(null),de=je(Q),ce=de!==null&&de<420,W=R=>R==="years"?a.horizon?.title??"years":R.charAt(0).toUpperCase()+R.slice(1);return(0,X.jsx)(se,{title:t??"Calendar",meta:C.title,style:{gap:10,...k?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,X.jsxs)("div",{ref:Q,"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:()=>oe(-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:()=>oe(1)})]}),ce?(0,X.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:u,onChange:R=>le(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:()=>le(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))})]}),_?(0,X.jsx)("p",{"data-testid":_.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:_.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:_.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:()=>le("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:V,onMove:(v,o)=>Y(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:V,onMove:(R,v)=>Y(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:V,onOpen:R=>le(tr(C.grain),R.from),onMove:Y})]})})}var te=K(Ne(),1);var Ke=K(Ne(),1),Se=K(Z(),1),Fn={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:Fn,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:Fn,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:{...Fn,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]})}var I=K(Z(),1),Gr=`
|
|
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[data-graview-choose] { position: relative; }
|
|
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 dr(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=(L,Y)=>Y==="label"?ve(r.schema.tryDefinition(L.kind),L):L[Y],D=S(w,Xe(s.has(w)?i.filter(L=>L.kind===w):p(w).slice(0,n.budget??1/0),e.sort,M)),V=p(w),k=s.has(w)&&!g?D:S(w,V),_=new Set(e.hidden??[]);return{kind:w,field:C,all:m,born:new Map(V.map((L,Y)=>[L.id,Y])),columns:m.filter(L=>L.value===null||!_.has(L.value)).map(L=>({column:L,cards:D.filter(Y=>dn(Y,C,m)===L.value),count:k.filter(Y=>dn(Y,C,m)===L.value).length})).filter(L=>L.column.value!==null||L.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)(se,{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)(jr,{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)(se,{title:A,meta:b?Ge(r.schema,b,x):void 0,children:z}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function jr({boards:e,title:t,options:n}){let{store:r,principal:a}=ae(),i=(0,te.useRef)(null),[s,p]=(0,te.useState)(null),[g,b]=(0,te.useState)(null),[d,h]=(0,te.useState)(null),[f,l]=(0,te.useState)(null),[c,S]=(0,te.useState)(""),[u,x]=(0,te.useState)(()=>new Set),[A,E]=(0,te.useState)(()=>new Set(n.collapsed??[])),[z,w]=(0,te.useState)(null),C=(0,te.useId)();(0,te.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,te.useMemo)(()=>e.flatMap(v=>v.columns.flatMap(o=>o.cards.map($=>$.id))),[e]),D=zt(M),V=(0,te.useMemo)(()=>r.permittedMutations(a).some(v=>{let o=v.subject?.kinds;return o!==void 0&&(o==="*"||e.some($=>o.includes($.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})})},_=(v,o)=>Pt(r,a,v,o.field,o.columns.map($=>$.column)),L=v=>n.move?`[data-columns-move="${nn(v)}"] > button`:`[data-graview-listed="${nn(v)}"] .graview-spec-item-link`,Y=(v,o,$,P)=>{try{let N=r.apply(o.call,{author:a});p({text:`Moved \u201C${m(v)}\u201D to ${$}.`,tone:"moved",batch:N.batch,id:v}),P==="keyboard"&&w(L(v)),P==="carry"&&w(`[data-graview-listed="${nn(v)}"] .graview-spec-item-link`),P==="menu"&&qr(()=>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"})}},oe=()=>{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(L(s.id))}catch(v){p({text:v instanceof Error?v.message:String(v),tone:"refused"})}},le=(0,te.useRef)({move:Y,boards:e});le.current={move:Y,boards:e},(0,te.useEffect)(()=>{let o=[...new Set(e.map($=>$.kind))].map($=>Dt({store:r,kind:$,root:()=>i.current,section:(P,N)=>{let y=le.current.boards.find(H=>H.kind===$),O=r.graph.getNode(P);if(!y||!O)return null;let T=Nt(r,N,O,y.field,y.all).map(H=>({to:H.to,label:H.label,...H.why!==void 0?{why:H.why}:{},...H.move?{run:()=>le.current.move(P,H.move,H.label,"menu")}:{}}));return T.length===0?null:{id:"move-to",at:"start",render:H=>(0,I.jsx)(sr,{choices:T,close:H})}}}));return()=>o.forEach($=>$())},[r,e]);let Q=(v,o)=>v.all.find($=>$.value===o)?.label??v.columns.find($=>$.column.value===o)?.column.label??String(o),de=(v,o,$)=>v.columns.find(P=>P.column.value===o)?.cards.filter(P=>P.id!==$)??[],ce=(v,o,$,P)=>{let N=de(v,o,P).length+1;return`${Q(v,o)}, ${Math.min($,N-1)+1} of ${N}.`},W=(v,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 T=dn(o,$.field,$.all),H=Math.max(0,$.columns.find(re=>re.column.value===T)?.cards.findIndex(re=>re.id===o.id)??0);l({id:o.id,from:T,to:T,at:H}),S(`${N}, picked up. ${ce($,T,H,o.id)} Arrow keys move it, Space drops it, Escape puts it back.`);return}let O=$.columns.map(T=>T.column.value).filter(T=>T===f.from||P.some(H=>H.to===T));if(v.key==="ArrowLeft"||v.key==="ArrowRight"){y();let T=O[O.indexOf(f.to)+(v.key==="ArrowLeft"?-1:1)];if(T===void 0)return S(`No column further ${v.key==="ArrowLeft"?"left":"right"} takes ${N}. ${ce($,f.to,f.at,o.id)}`);let H=Math.min(f.at,de($,T,o.id).length);return l({...f,to:T,at:H}),S(ce($,T,H,o.id))}if(v.key==="ArrowUp"||v.key==="ArrowDown"){y();let T=Math.max(0,Math.min(de($,f.to,o.id).length,f.at+(v.key==="ArrowUp"?-1:1)));return l({...f,at:T}),S(ce($,f.to,T,o.id))}if(v.key===" "||v.key==="Enter"){y(),l(null);let T=f.to===f.from?void 0:P.find(H=>H.to===f.to);return T?(S(`${N}, dropped in ${Q($,f.to)}.`),Y(o.id,T,Q($,f.to),"carry")):S(`${N}, dropped back in ${Q($,f.from)}.`)}if(v.key==="Escape")return y(),l(null),S(`${N}, put back in ${Q($,f.from)}.`)},R=v=>{if(f?.id!==v)return;let o=e.find($=>$.kind===r.graph.getNode(v)?.kind);l(null),o&&S(`${m(v)}, put back in ${Q(o,f.from)}.`)};return(0,I.jsxs)("div",{"data-testid":"columns-lens",...V?{...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:Gr}),V?(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:oe,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:$,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(F=>F.cards.some(G=>G.id===f.id)),O=o.value!==null&&(n.collapsed??[]).includes(o.value),T=O&&A.has(N),H=n.cap!==void 0&&!u.has(N)&&$.length>n.cap,re=H?new Set([...$].sort((F,G)=>(v.born.get(G.id)??0)-(v.born.get(F.id)??0)).slice(0,n.cap).map(F=>F.id)):null,ue=re?$.filter(F=>re.has(F.id)||F.id===f?.id):$,J=f!==null&&f.to===o.value&&f.to!==f.from&&v.columns.some(F=>F.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||J)||void 0,"aria-label":`${t} \xB7 ${o.label}, ${P}`,"data-graview-named-by-lens":"",onDragOver:F=>{y&&(F.preventDefault(),F.dataTransfer.dropEffect="move",h(N))},onDragLeave:()=>h(F=>F===N?null:F),onDrop:F=>{let G=F.dataTransfer.getData("text/graview-node"),we=r.graph.getNode(G);if(h(null),b(null),!we||o.value===null)return;let ee=_(we,v).find(U=>U.to===o.value);ee&&(F.preventDefault(),F.stopPropagation(),Y(G,ee,o.label,"drag"))},children:[(0,I.jsx)("h3",{className:"graview-columns-heading",children:O?(0,I.jsx)("button",{type:"button",className:"graview-columns-toggle","aria-expanded":!T,"data-testid":"columns-toggle",onClick:()=>E(F=>F.has(N)?new Set([...F].filter(G=>G!==N)):new Set([...F,N])),children:he}):he}),T?null:ue.length===0&&!J?(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 F=ue.map(we=>{let ee=_(we,v);return(0,I.jsx)(_r,{card:we,moves:ee,button:n.move===!0,carried:f?.id===we.id,...ee.length>0?{describedBy:C}:{},...V?{choosing:D}:{},labelOf:U=>Q(v,U),onMove:(U,me)=>Y(we.id,U,me,"keyboard"),onDrag:U=>b(U?{id:we.id,to:ee.map(me=>me.to)}:null),onCarryKey:U=>W(U,we,v,ee),onLeave:()=>R(we.id)},we.id)});if(!J)return F;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[...F.slice(0,f.at),G,...F.slice(f.at)]})()})}),!T&&H?(0,I.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-rest",onClick:()=>x(F=>new Set([...F,N])),children:["Show ",$.length-ue.length," more"]}):null]},N)})})},v.kind)),V?(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 qr(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,te.useState)(!1),S=(0,te.useRef)(null),u=(0,te.useRef)(null),x=ve(h.schema.tryDefinition(e.kind),e),A=f.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,te.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?{"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:Bn,onFocus:Bn})}):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=K(Ne(),1);var q=K(Z(),1),Fr=["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]):"",Ur=40,Kr=24;function Yr(e,t={}){let n=t.rows??Ur,r=t.columns??Kr;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 pr(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=Ln(r,n.columns,n.link.path);if(!m.ok||!m.reached.has(n.rows)){let M=Ln(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(L=>L.kind===m),D=L=>r?.tryDefinition?.(L)?.edges?.[m]?.to,V=(D(n.columns)??[]).some(L=>L===n.rows||L==="*"),k=(D(n.rows)??[]).some(L=>L===n.columns||L==="*"),_=V||!k;for(let L of M){let Y=_?L.to:L.from,oe=_?L.from:L.to;f.has(Y)&&l.has(oe)&&c.push({rowId:Y,columnId:oe})}}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 V=m.get(D.kind);if(!V)continue;let k=V.get(D.from);k?k.push(D.to):V.set(D.from,[D.to]);let _=V.get(D.to);_?_.push(D.from):V.set(D.to,[D.from])}let M=new Set;for(let D of g){let V=[{id:D.id,via:[]}];for(let k of n.link.path){let _=[],L=new Set,Y=m.get(k);for(let oe of V)for(let le of Y.get(oe.id)??[])L.has(`${oe.id}|${le}`)||(L.add(`${oe.id}|${le}`),_.push({id:le,via:[...oe.via,oe.id]}));V=_}for(let k of V){if(!f.has(k.id))continue;let _=`${k.id}|${D.id}`;M.has(_)||(M.add(_),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 cr=316,Kn=58,Yn=176,Qr=Math.sin(Kn*Math.PI/180),Jr=Math.cos(Kn*Math.PI/180),Xr=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*Qr)+8},ur=Math.ceil(Yn*Jr),gr=(e,t)=>ln(e,t).toLowerCase(),fr=(e,t)=>sn(e.tryDefinition(t),t);function Zr(e,t,n){return t.rows===t.columns?`${e} with none across`:`${Ge(n,t.rows,e)} with no ${fr(n,t.columns)}`}function ea(e,t,n){return t.rows===t.columns?`${e} with none down`:`${Ge(n,t.columns,e)} on no ${fr(n,t.rows)}`}function na({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=la(),f=(0,ke.useRef)(null),l=je(f),[c,S]=(0,ke.useState)(null),u=pr(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"?Yr(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)(se,{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(_=>x.gaps.includes(_.id));return(0,q.jsxs)(se,{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)(oa,{grid:x}),k.length>0?(0,q.jsx)(Pe,{pick:!0,max:4,items:k.map(_=>({id:_.id,label:_.ref||_.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=Xr(x.columns.map(k=>k.label)),D=l===null?cr:Math.max(96,Math.min(cr,Math.round(l*.36))),V=l!==null&&(l<420||D+x.columns.length*28+ur>l);return(0,q.jsx)(se,{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?Zr(x.gaps.length,a,d.schema):"",x.unasked.length>0?ea(x.unasked.length,a,d.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,q.jsxs)("div",{ref:f,"data-coverage-shape":V?"stacked":"matrix",onClick:k=>S(mr(k.target)),onKeyDown:k=>{(k.key==="Enter"||k.key===" ")&&S(mr(k.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:V?0:ur},children:[V?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} ${gr(d.schema,a.rows)}`:null,x.of.columns>x.columns.length?`${x.columns.length} of ${x.of.columns} ${gr(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,_)=>{let L=x.rows[_-1],Y=L===void 0||L.group!==k.group,oe=k.required&&!k.covered,le=z.size>0&&!z.has(k.id);return(0,q.jsxs)("div",{children:[Y&&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:V?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:le?.72:1},children:[(0,q.jsxs)("div",{"data-graview-pick":k.id,"data-graview-emphasis":z.size===0?"plain":le?"dimmed":"lit",title:k.label,style:{width:V?"auto":D,flex:"0 0 auto",position:V?"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:oe||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,...V?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:x.columns.map(Q=>{let de=x.cells.find(W=>W.rowId===k.id&&W.columnId===Q.id),ce=de!==void 0;return(0,q.jsxs)("div",{"data-graview-mark":"",...ce?{"data-graview-pick":Q.id,"data-graview-emphasis":z.size===0?"plain":z.has(Q.id)&&z.has(k.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(ta(de))}:{},title:ce?`${Q.label} answers ${k.ref||k.label}`:`${Q.label} does not answer ${k.ref||k.label}`,style:V?{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:ce?"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:ia(ce,oe,z.has(Q.id)&&z.has(k.id),z.size>0)}),V?(0,q.jsx)("span",{children:Q.label}):null]},Q.id)})})]})]},k.id)})}),C?(0,q.jsx)(aa,{box:f,joins:C,shape:`${V?"stacked":"matrix"} ${l??""}`}):null]})})}var ta=e=>[e.rowId,e.columnId,...e.via??[]];function mr(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 bn=(e,t,n)=>Math.min(n,Math.max(t,e));function ra(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 aa({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=ra(u),A=bn(l.left+l.width/2,x.left,x.right),E=bn(l.top+l.height/2,x.top,x.bottom),z=bn(A,l.left,l.right),w=bn(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 ia(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 oa({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 hr(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)(na,{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:[...Fr],options:e,View:t,build(n,r,a){return pr(n,r,e,a)}}}function la(){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 wr=["regions","outline"],Ye=class extends Error{constructor(n,r){super(`${n}
|
|
32
|
-
${r}`);this.hint=r;this.name="PlanBindingError"}},xn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',yr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function Sn(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}".`,xn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Ye(`No kind is declared for "${n.markers}".`,xn);let s=e.filter(u=>u.kind===n.regions);if(!r&&s.length===0)throw new Ye(`Nothing to draw: no "${n.regions}" nodes.`,xn);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}".`,xn);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(!yr(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(yr)){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=K(Ne(),1);var B=K(Z(),1);function vr({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=kn(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,br=.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"},kn=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},Cn=(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(${Cn(e,n)} 52% 48%) 24%, var(--graview-panel))`,xr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${Cn(e,n)} 48% 42%) 78%, var(--graview-ink))`;function sa(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 Sr({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=Sn(f,b,t,e),c=l.regions.length,S=l.regions.reduce((y,O)=>y+O.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)(se,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,children:(0,B.jsx)(vr,{map:l,options:t,...s?{implicated:s}:{},...p?{flagged:p}:{}})});let u=(0,Be.useMemo)(()=>{let y=1/0,O=1/0,T=-1/0,H=-1/0,re=J=>{J.x<y&&(y=J.x),J.x>T&&(T=J.x),J.y<O&&(O=J.y),J.y>H&&(H=J.y)};for(let J of l.regions){for(let he of J.outline)re(he);for(let he of J.markers)re(he.at)}if(!Number.isFinite(y)||T-y<=0||H-O<=0)return{x0:0,y0:0,x1:1,y1:1};let ue=Math.max(T-y,H-O)*.04;return{x0:y-ue,y0:O-ue,x1:T+ue,y1:H+ue}},[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,V=(0,Be.useRef)(null),{touchable:k,legible:_}=bt(V,{units:C.w,target:M*br*2}),L=Nn("--graview-font-display","serif"),Y=Nn("--graview-font-body","sans-serif"),{named:oe,placed:le,tagged:Q}=(0,Be.useMemo)(()=>{let y=[],O=M*.012,T=Qn*.004,H=(ee,U)=>!y.some(me=>me!==U&&Lt({x0:ee.x0-T,y0:ee.y0-T,x1:ee.x1+T,y1:ee.y1+T},me)),re=[...l.regions].sort((ee,U)=>zn(U.outline)-zn(ee.outline)),ue=new Map,J=new Map;for(let ee of re){let U=Rt(ee.outline),me=Math.max(0,(U.bottom-U.top)*m*.55),Me=null;for(let Oe of[.12,.26,.42,.6,.78]){let Ce=U.top+Oe*(U.bottom-U.top),Le=Dn(ee.outline,Ce),$n=Math.max(0,(Le.x1-Le.x0)*E-O*2),ye=Mt(ee.label,{room:$n,height:me,size:M*.023,floor:M*.015,measure:L});if(ye===null)continue;let Ie=Math.max(...ye.lines.map(Tr=>L(Tr,ye.fontSize))),Te=ye.lines.length*ye.fontSize*1.15,Zn=U.top*m+O+Te/2,et=U.bottom*m-O-Te/2,on=et<Zn?(U.top+U.bottom)*m/2:Math.min(Math.max(Ce*m,Zn),et),On=Dn(ee.outline,on/m),An=On.x0*E+O;if(Ie>(On.x1-On.x0)*E-O*2)continue;let nt={x0:An,y0:on-Te/2,x1:An+Ie,y1:on+Te/2};if(H(nt)){y.push(nt),Me={fitted:ye,x:An,y:on};break}}ue.set(ee.id,Me?.fitted??null),Me!==null&&J.set(ee.id,{x:Me.x,y:Me.y})}let he=M*.018,F=new Map,G=M*.011+M*.004,we=new Map;for(let ee of l.regions)for(let U of ee.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 ee of k?l.regions:[])for(let U of ee.markers){let me=M*.018,Me=Y(U.label,he),Oe=U.at.x*E,Ce=U.at.y*m,Le=he*1.15,$n=[{x:Oe+me,y:Ce,anchor:"start"},{x:Oe-me,y:Ce,anchor:"end"},{x:Oe+me*.7,y:Ce-Le,anchor:"start"},{x:Oe-me*.7,y:Ce-Le,anchor:"end"},{x:Oe+me*.7,y:Ce+Le,anchor:"start"},{x:Oe-me*.7,y:Ce+Le,anchor:"end"},{x:Oe,y:Ce-Le*1.1,anchor:"start"},{x:Oe,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)&&H(Te,we.get(U.id))){y.push(Te),F.set(U.id,{at:{x:ye.x,y:ye.y},anchor:ye.anchor,size:he});break}}}return{named:ue,placed:J,tagged:F}},[l.regions,Qn,m,k,L,Y]),de=(0,Be.useMemo)(()=>{let y=[];for(let O of l.regions)(oe.get(O.id)?.whole??!1)===!1&&y.push({id:O.id,label:O.label,what:O.what,round:!1});for(let O of l.regions)for(let T of O.markers)(!k||!Q.has(T.id))&&y.push({id:T.id,label:T.label,what:T.what,round:!0});return y},[l.regions,oe,Q,k]),{principal:ce}=ae(),[W,R]=(0,Be.useState)(null),v=t.draw!==void 0,o=t.place!==void 0,$=y=>{if(W===null)return;y.stopPropagation();let O=sa(y);if(W.kind==="marker"){g.apply({name:t.place.act,args:{[t.place.id]:W.id,[t.place.at]:O}},{author:ce,intent:`Placed ${W.label} on the map`}),R(null);return}R({...W,corners:[...W.corners,O]})},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:ce,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 _?(0,B.jsxs)(se,{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:V,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:$,"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,O)=>(0,B.jsx)("circle",{cx:y.x*E,cy:y.y*m,r:M*.008,fill:"var(--graview-accent)"},O))]}):null,l.regions.map(y=>{let O=kn(y.id,s,p),T=D&&O===void 0?.34:1,H=y.outline.map(re=>`${re.x*E},${re.y*m}`).join(" ");return(0,B.jsx)("g",{"data-graview-pick":y.id,...O?{"data-graview-emphasis":O}:{},role:"button","aria-label":`${y.label}${y.what?`, ${y.what}`:""}, ${y.markers.length} standing in it`,style:{opacity:T,cursor:"pointer"},children:(0,B.jsx)("polygon",{points:H,fill:Jn(y.what,O,t.hues),stroke:xr(y.what,O,t.hues),strokeWidth:O==="flagged"?5:2.5,strokeLinejoin:"round"})},y.id)}),l.regions.flatMap(y=>y.markers.map(O=>{let T=kn(O.id,s,p),H=D&&T===void 0?.34:1;return(0,B.jsxs)("g",{...k?{"data-graview-pick":O.id,role:"button","aria-label":`${O.label}${O.what?`, ${O.what}`:""}, in ${y.label}`}:{"aria-hidden":!0},...T?{"data-graview-emphasis":T}:{},style:{opacity:H,cursor:k?"pointer":"default"},children:[k?(0,B.jsx)("circle",{cx:O.at.x*E,cy:O.at.y*m,r:M*br,fill:"transparent"}):null,(0,B.jsx)("circle",{cx:O.at.x*E,cy:O.at.y*m,r:M*.011,fill:T==="flagged"?"var(--graview-warn)":`hsl(${Cn(O.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:M*.004}),Q.has(O.id)?(0,B.jsx)("text",{x:Q.get(O.id).at.x,y:Q.get(O.id).at.y,textAnchor:Q.get(O.id).anchor,dominantBaseline:"middle",fontSize:Q.get(O.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,Q.get(O.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${O.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:O.label}):null]},O.id)})),l.regions.map(y=>{let O=oe.get(y.id),T=le.get(y.id);if(!O||T===void 0)return null;let H=kn(y.id,s,p);return(0,B.jsx)("text",{x:T.x,y:T.y-(O.lines.length-1)*O.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:O.fontSize,fill:"var(--graview-ink)",opacity:D&&H===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,O.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${y.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:O.lines.map((re,ue)=>(0,B.jsx)("tspan",{x:T.x,dy:ue===0?0:O.fontSize*1.15,children:re},re+String(ue)))},`label-${y.id}`)})]})}),de.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:de.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(${Cn(y.what,t.hues)} 55% 45%)`:Jn(y.what,void 0,t.hues),border:y.round?void 0:`1px solid ${xr(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)(se,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,selected:i,children:(0,B.jsx)(vr,{map:l,options:t,...s?{implicated:s}:{},...p?{flagged:p}:{}})})}var Cr=K(Z(),1);function kr(e){function t(n){let{store:r}=ae();return(0,Cr.jsx)(Sr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...wr],options:e,View:t,build(n,r,a){return Sn(n,r,e,a)}}}var ge=K(Z(),1);function da(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=Mn(e,s,p.name,g).ok,d=!b&&Mn(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 ca({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=da(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:ca};var $e=K(Ne(),1);var ie=K(Z(),1),Ar=["start","end"];function ua(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 ga(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 Rr(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=Ar.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 ma(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 pa=.045,an=52,Er=4,fa=44,ha=240;function ya({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=>Rr(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)(se,{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=ua(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)(se,{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)(ba,{columns:a.columns}),(0,ie.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(ha,Math.ceil(u/A)*fa)},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:Er},children:a.columns.map(w=>(0,ie.jsx)(xa,{spans:f.filter(C=>C.columnIds.includes(w.id)),window:S,format:c,hue:l,emphasisOf:d,brokenIds:h},w.id))})]})]})})}function wa(){let e=(0,$e.useRef)(null),[t,n]=(0,$e.useState)(new Set);return(0,$e.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,$e.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 va=(e,t)=>t===0?e:e.slice(0,t),Or=[0,3,1];function ba({columns:e}){let t=(0,$e.useRef)(null),[n,r]=(0,$e.useState)(0);(0,$e.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(p=>p.scrollWidth>p.clientWidth+.5)&&n<Or.length-1&&r(n+1)}),(0,$e.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=Or[n];return(0,ie.jsx)("div",{ref:t,style:{display:"flex",gap:Er,paddingLeft:an,paddingBottom:10},children:e.map(i=>{let s=va(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 xa({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<pa,b=ga(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=wa();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"},...ma(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 Mr(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)(ya,{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:[...Ar],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>Rr(a,e.bindings,r)).filter(a=>a!==null)}}}var Qe=K(Z(),1),Lr=new WeakMap;function Sa(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 ka(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Mr({...t,extent:n,format:Sa(n)}).View}case"calendar":return lr({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return hr(t).View;case"board":return qt(t).View;case"plan":return kr(t).View;case"reach":return $r.View;case"columns":return dr(t).View;case"blocks":return Ca(vt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function Ca(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)(se,{title:n.label??"",children:r})}}function Eo(e){let t=Lr.get(e);if(!t){let n=ka(e),r=a=>(0,Qe.jsx)(n,{...a,label:e.title});Lr.set(e,t=r)}return t}export{Sa as a,Eo as b};
|