graview 0.1.38 → 0.1.40
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.XHWL7QBF.js → chunk.242EUAPE.js} +1 -1
- package/dist/preview/chunk.2CF2XKOS.js +1 -0
- package/dist/preview/chunk.2FGYWAID.js +1 -0
- package/dist/preview/{chunk.MWZK3HVG.js → chunk.2FLPDPEL.js} +1 -1
- package/dist/preview/{chunk.6IHXTT6Z.js → chunk.2GDXNTY5.js} +1 -1
- package/dist/preview/chunk.2JB4Y2ET.js +1 -0
- package/dist/preview/chunk.2NXH7VAI.js +1 -0
- package/dist/preview/chunk.2OSNYF5C.js +1 -0
- package/dist/preview/{chunk.GR5Q4HTW.js → chunk.2RVUDRRY.js} +1 -1
- package/dist/preview/chunk.2WACBAUN.js +9 -0
- package/dist/preview/chunk.35PHXNOC.js +1 -0
- package/dist/preview/chunk.3Q75TIGL.js +1 -0
- package/dist/preview/chunk.42XSBKPO.js +1 -0
- package/dist/preview/chunk.47KHZCNG.js +1 -0
- package/dist/preview/{chunk.Z3ZKYSPN.js → chunk.4QPVS2ZM.js} +1 -1
- package/dist/preview/{chunk.WERYQENC.js → chunk.4VG2KN7G.js} +1 -1
- package/dist/preview/{chunk.ZRQI5VJF.js → chunk.5RABSIF7.js} +1 -1
- package/dist/preview/{chunk.2VIGF4FO.js → chunk.67WWRC6Y.js} +1 -1
- package/dist/preview/chunk.6AVZWLRF.js +1 -0
- package/dist/preview/chunk.6CRRPXKP.js +1 -0
- package/dist/preview/{chunk.FUJM7GDV.js → chunk.6FNMDAX5.js} +1 -1
- package/dist/preview/chunk.6J37UQKG.js +1 -0
- package/dist/preview/chunk.6JEU3ZNE.js +1 -0
- package/dist/preview/chunk.6PSWHBL2.js +1 -0
- package/dist/preview/chunk.74NOI7QN.js +1 -0
- package/dist/preview/chunk.7LIKEE5Z.js +1 -0
- package/dist/preview/chunk.7WPCP2LZ.js +1 -0
- package/dist/preview/{chunk.JWJQ2VXS.js → chunk.ACBUAIDF.js} +1 -1
- package/dist/preview/{chunk.IEDXW36H.js → chunk.AKQXF7GW.js} +1 -1
- package/dist/preview/chunk.AUBGUDO5.js +1 -0
- package/dist/preview/chunk.AVKDWISO.js +1 -0
- package/dist/preview/{chunk.36SQJMEE.js → chunk.AWX7GP72.js} +1 -1
- package/dist/preview/chunk.BFNVG5JE.js +1 -0
- package/dist/preview/chunk.BNVMMOOY.js +1 -0
- package/dist/preview/{chunk.7H5KVW2F.js → chunk.BSAXZQSY.js} +1 -1
- package/dist/preview/{chunk.V2NBJDAX.js → chunk.BXT6FDT4.js} +1 -1
- package/dist/preview/{chunk.TKSGC6XH.js → chunk.C2PECN4C.js} +1 -1
- package/dist/preview/chunk.CL2ZS5EQ.js +1 -0
- package/dist/preview/chunk.CN5WAKHJ.js +5 -0
- package/dist/preview/{chunk.LF7PU77M.js → chunk.CNFL5IN5.js} +1 -1
- package/dist/preview/chunk.D25XEVKO.js +1 -0
- package/dist/preview/chunk.DL26BKT7.js +1 -0
- package/dist/preview/chunk.DPZTW24D.js +1 -0
- package/dist/preview/chunk.ESSSNLEO.js +1 -0
- package/dist/preview/chunk.ETOGQE2V.js +1 -0
- package/dist/preview/chunk.FDE3TSTK.js +1 -0
- package/dist/preview/chunk.FFZBOP65.js +1 -0
- package/dist/preview/chunk.FOQZADMA.js +25 -0
- package/dist/preview/chunk.G6VZNRQ5.js +1 -0
- package/dist/preview/chunk.GAFYE37S.js +3 -0
- package/dist/preview/{chunk.KNJZ2YNJ.js → chunk.GT2BITLW.js} +1 -1
- package/dist/preview/{chunk.ZLXPIEUC.js → chunk.GTV2VZAS.js} +2 -2
- package/dist/preview/{chunk.AZCFXPEL.js → chunk.GY6RYJHM.js} +1 -1
- package/dist/preview/chunk.GZIVMOY4.js +117 -0
- package/dist/preview/{chunk.VKHKYK5L.js → chunk.H5ADMSE7.js} +1 -1
- package/dist/preview/chunk.H5HWN7A2.js +1 -0
- package/dist/preview/chunk.H6XKMLDQ.js +1 -0
- package/dist/preview/chunk.H7POIT3V.js +1 -0
- package/dist/preview/{chunk.SGB6IMWN.js → chunk.HB7ELBVK.js} +1 -1
- package/dist/preview/chunk.HFYUAK5Z.js +6 -0
- package/dist/preview/{chunk.MCVY6RRS.js → chunk.HPAGOEZG.js} +1 -1
- package/dist/preview/{chunk.EUGWV3S6.js → chunk.I7XSDXQ3.js} +1 -1
- package/dist/preview/chunk.IDUPJMJO.js +1 -0
- package/dist/preview/chunk.IFTWVUJO.js +2 -0
- package/dist/preview/{chunk.RZVZG2BQ.js → chunk.ISXFH3CK.js} +1 -1
- package/dist/preview/chunk.J4IULZFD.js +1 -0
- package/dist/preview/chunk.JACGQ2PR.js +4 -0
- package/dist/preview/{chunk.67WL7BGF.js → chunk.JDRLSVOI.js} +1 -1
- package/dist/preview/chunk.JLDBFX6O.js +1 -0
- package/dist/preview/{chunk.RVJYEOFN.js → chunk.JQEYZB5I.js} +1 -1
- package/dist/preview/chunk.L3A6YLMT.js +21 -0
- package/dist/preview/chunk.LLEFYJPJ.js +344 -0
- package/dist/preview/chunk.LOZJQ5ZX.js +1 -0
- package/dist/preview/chunk.LPBM5AES.js +19 -0
- package/dist/preview/chunk.LPE4FLC6.js +6 -0
- package/dist/preview/{chunk.SZWX56WR.js → chunk.MIM2QLF5.js} +2 -2
- package/dist/preview/{chunk.FMVWXSQ7.js → chunk.N2K25KH3.js} +1 -1
- package/dist/preview/{chunk.2EJAIT33.js → chunk.N6MVK3KD.js} +1 -1
- package/dist/preview/{chunk.33GN2NUT.js → chunk.NGDXH66B.js} +1 -1
- package/dist/preview/chunk.O5JKDFDH.js +1 -0
- package/dist/preview/chunk.O6F3K6CU.js +1 -0
- package/dist/preview/{chunk.V5ZT5NSJ.js → chunk.OW7NSJ4H.js} +1 -1
- package/dist/preview/chunk.P5ODICND.js +32 -0
- package/dist/preview/{chunk.YPY5BOEI.js → chunk.PPG2SEIY.js} +1 -1
- package/dist/preview/chunk.PXQVXBNG.js +1 -0
- package/dist/preview/chunk.PYNYHNDS.js +1 -0
- package/dist/preview/{chunk.MVNUWK5Y.js → chunk.Q4TZHWQX.js} +1 -1
- package/dist/preview/chunk.QCWZSSNC.js +1 -0
- package/dist/preview/chunk.QIV65FWE.js +1 -0
- package/dist/preview/chunk.R5WY567U.js +88 -0
- package/dist/preview/{chunk.VNBR4DHD.js → chunk.RCM7NOPF.js} +2 -1
- package/dist/preview/chunk.S2U5CEP4.js +1 -0
- package/dist/preview/chunk.S356ACK2.js +1 -0
- package/dist/preview/chunk.SDO3U72B.js +1 -0
- package/dist/preview/chunk.SHNYYBNW.js +1 -0
- package/dist/preview/{chunk.DL637Q3W.js → chunk.SIGC3G7S.js} +1 -1
- package/dist/preview/chunk.STI447YW.js +1 -0
- package/dist/preview/chunk.T3TYD7QI.js +1 -0
- package/dist/preview/chunk.T73RB7LC.js +1 -0
- package/dist/preview/chunk.TD2LNFUB.js +1 -0
- package/dist/preview/{chunk.5XJEGXDO.js → chunk.TGVUIFKD.js} +1 -1
- package/dist/preview/chunk.TIH2PDFH.js +1 -0
- package/dist/preview/chunk.TKUNRFDE.js +1 -0
- package/dist/preview/{chunk.74RMHUCX.js → chunk.TNESS3LQ.js} +1 -1
- package/dist/preview/chunk.UHI3D7JC.js +1 -0
- package/dist/preview/{chunk.TOWYHWPB.js → chunk.UOPKRN55.js} +1 -1
- package/dist/preview/{chunk.BUVAMSOZ.js → chunk.UTCB3CE7.js} +2 -2
- package/dist/preview/{chunk.3D5T3XIE.js → chunk.UUBYFBPN.js} +1 -1
- package/dist/preview/{chunk.YUJG5SN5.js → chunk.UWW6ZEPY.js} +2 -2
- package/dist/preview/chunk.V5MYKNL7.js +5 -0
- package/dist/preview/{chunk.6UCRL4OF.js → chunk.VDAMCTNL.js} +1 -1
- package/dist/preview/chunk.VF7P3ZVZ.js +35 -0
- package/dist/preview/chunk.VIYECFKZ.js +6 -0
- package/dist/preview/{chunk.5MSO3KRO.js → chunk.VJXXCUKS.js} +1 -1
- package/dist/preview/{chunk.GZ3IXNA4.js → chunk.VNUHESMZ.js} +1 -1
- package/dist/preview/chunk.VZYCILPJ.js +1 -0
- package/dist/preview/chunk.W4HBRXMY.js +1 -0
- package/dist/preview/chunk.W7R2GFBW.js +47 -0
- package/dist/preview/chunk.WBLHCH5M.js +1 -0
- package/dist/preview/{chunk.NPX7SPXM.js → chunk.WVDKYUF3.js} +1 -1
- package/dist/preview/{chunk.LHO7L3CS.js → chunk.XEKLEHC3.js} +1 -1
- package/dist/preview/{chunk.IM7LXLIB.js → chunk.XFZKP4IF.js} +1 -1
- package/dist/preview/chunk.XQHDP5C3.js +1 -0
- package/dist/preview/chunk.XQTMO5PW.js +1 -0
- package/dist/preview/{chunk.UXIFQIHA.js → chunk.XRYTJNA7.js} +1 -1
- package/dist/preview/chunk.YO24NALN.js +1 -0
- package/dist/preview/{chunk.B5ILKGEF.js → chunk.YWNHCZQ5.js} +1 -1
- package/dist/preview/chunk.YWVOACSX.js +5 -0
- package/dist/preview/chunk.YYFLTMNN.js +1 -0
- package/dist/preview/chunk.YYIKSH2F.js +3 -0
- package/dist/preview/{chunk.QYRPELLU.js → chunk.Z5AB2DBF.js} +1 -1
- package/dist/preview/{chunk.6ONRWFA6.js → chunk.Z7LDT55A.js} +1 -1
- package/dist/preview/chunk.ZGCRMNER.js +1 -0
- package/dist/preview/{chunk.OE4QOBJF.js → chunk.ZHLQWMV5.js} +1 -1
- package/dist/preview/{chunk.ROGYDMES.js → chunk.ZJMDLRC5.js} +1 -1
- package/dist/preview/chunk.ZK3X23EU.js +1 -0
- package/dist/preview/chunk.ZOR6FKNI.js +1 -0
- package/dist/preview/chunk.ZRLXVYPG.js +1 -0
- package/dist/preview/index.html +47 -43
- package/dist/preview/page.js +8 -8
- 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.6XJP7F3I.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.FTJBW25J.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.L73VUBXN.js +0 -4
- 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.QT4XGC5Z.js +0 -344
- 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.WG5NIR23.js +0 -47
- package/dist/preview/chunk.WLPTY4BF.js +0 -5
- package/dist/preview/chunk.XDYAG276.js +0 -1
- 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};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import{a as xt,d as Pt,e as re}from"./chunk.3ZRHHB7X.js";import{m as Et}from"./chunk.ZYCNEOAQ.js";import{g as pt}from"./chunk.POHEWJKZ.js";import{a as ft}from"./chunk.ROGYDMES.js";import{d as mt}from"./chunk.3D5T3XIE.js";import{d as ht}from"./chunk.GR5Q4HTW.js";import{F as St,G as bt,i as dt,j as Lr,s as yt,t as gt,w as vt,x as Rt,y as wt}from"./chunk.QT4XGC5Z.js";import{H as O,P as ut,S as Z,aa as ct}from"./chunk.MQ7FNHXG.js";import{Qc as at,Rc as nt,Sc as ot,Ua as et,da as be,ec as tt,fd as it,ga as le,gd as lt,hd as st,pc as rt}from"./chunk.WLPTY4BF.js";import{b as D}from"./chunk.AJZBJBMO.js";function Dr(e,t){return at(e,t).slice(1)}function Ee(e,t){return e.kinds.find(r=>Dr(e,r)===t)}function Rn(e,t,r){return nt(e,t,r)}function wn(e,t){return ot(e,t)}var A=D(O(),1),g=D(O(),1),E=D(O(),1),ze=D(O(),1),lr=D(O(),1),b=D(O(),1),Xa=D(O(),1),Qa=D(O(),1),Za=D(O(),1),v=D(O(),1),Rr=D(O(),1);var Te=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,Ot=/^[\\/]{2}/;function Fr(e,t){return t+e.replace(/\\/g,"/")}var Ct="popstate";function fe(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function At(e={}){let{initialEntries:t=["/"],initialIndex:r,v5Compat:a=!1}=e,n;n=t.map((f,y)=>c(f,typeof f=="string"?null:f.state,y===0?"default":void 0,typeof f=="string"?void 0:f.mask));let o=s(r??n.length-1),i="POP",l=null;function s(f){return Math.min(Math.max(f,0),n.length-1)}function u(){return n[o]}function c(f,y=null,m,h){let S=he(n?u().pathname:"/",f,y,m,h);return T(S.pathname.charAt(0)==="/",`relative pathnames are not supported in memory history: ${JSON.stringify(f)}`),S}function d(f){return typeof f=="string"?f:z(f)}return{get index(){return o},get action(){return i},get location(){return u()},createHref:d,createURL(f){return new URL(d(f),"http://localhost")},encodeLocation(f){let y=typeof f=="string"?V(f):f;return{pathname:y.pathname||"",search:y.search||"",hash:y.hash||""}},push(f,y){i="PUSH";let m=fe(f)?f:c(f,y);o+=1,n.splice(o,n.length,m),a&&l&&l({action:i,location:m,delta:1})},replace(f,y){i="REPLACE";let m=fe(f)?f:c(f,y);n[o]=m,a&&l&&l({action:i,location:m,delta:0})},go(f){i="POP";let y=s(o+f),m=n[y];o=y,l&&l({action:i,location:m,delta:f})},listen(f){return l=f,()=>{l=null}}}}function _t(e={}){function t(a,n){let o=n.state?.masked,{pathname:i,search:l,hash:s}=o||a.location;return he("",{pathname:i,search:l,hash:s},n.state&&n.state.usr||null,n.state&&n.state.key||"default",o?{pathname:a.location.pathname,search:a.location.search,hash:a.location.hash}:void 0)}function r(a,n){return typeof n=="string"?n:z(n)}return Tr(t,r,null,e)}function P(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function T(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function kr(){return Math.random().toString(36).substring(2,10)}function Lt(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function he(e,t,r=null,a,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?V(t):t,state:r,key:t&&t.key||a||kr(),mask:n}}function z({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function V(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function Tr(e,t,r,a={}){let{window:n=document.defaultView,v5Compat:o=!1}=a,i=n.history,l="POP",s=null,u=c();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function c(){return(i.state||{idx:null}).idx}function d(){l="POP";let h=c(),S=h==null?null:h-u;u=h,s&&s({action:l,location:m.location,delta:S})}function p(h,S){l="PUSH";let R=fe(h)?h:he(m.location,h,S);r&&r(R,h),u=c()+1;let w=Lt(R,u),L=m.createHref(R.mask||R);try{i.pushState(w,"",L)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;n.location.assign(L)}o&&s&&s({action:l,location:m.location,delta:1})}function f(h,S){l="REPLACE";let R=fe(h)?h:he(m.location,h,S);r&&r(R,h),u=c();let w=Lt(R,u),L=m.createHref(R.mask||R);i.replaceState(w,"",L),o&&s&&s({action:l,location:m.location,delta:0})}function y(h){return Nr(n,h)}let m={get action(){return l},get location(){return e(n,i)},listen(h){if(s)throw new Error("A history only accepts one active listener");return n.addEventListener(Ct,d),s=h,()=>{n.removeEventListener(Ct,d),s=null}},createHref(h){return t(n,h)},createURL:y,encodeLocation(h){let S=y(h);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:p,replace:f,go(h){return i.go(h)}};return m}function Nr(e,t,r=!1){let a="http://localhost";e&&(a=e.location.origin!=="null"?e.location.origin:e.location.href),P(a,"No window.location.(origin|href) available to create URL");let n=typeof t=="string"?t:z(t);return n=n.replace(/ $/,"%20"),!r&&Ot.test(n)&&(n=a+n),new URL(n,a)}var Mr;Mr=new WeakMap;function Ne(e,t,r="/"){return Or(e,t,r,!1)}function Or(e,t,r,a,n){let o=typeof t=="string"?V(t):t,i=U(o.pathname||"/",r);if(i==null)return null;let l=n??_r(e),s=null,u=Jr(i);for(let c=0;s==null&&c<l.length;++c)s=Vr(l[c],u,a);return s}function Ar(e,t){let{route:r,pathname:a,params:n}=e;return{id:r.id,pathname:a,params:n,data:t[r.id],loaderData:t[r.id],handle:r.handle}}function _r(e){let t=$t(e);return $r(t),t}function $t(e,t=[],r=[],a="",n=!1){let o=(i,l,s=n,u)=>{let c={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:l,route:i};if(c.relativePath.startsWith("/")){if(!c.relativePath.startsWith(a)&&s)return;P(c.relativePath.startsWith(a),`Absolute route path "${c.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(a.length)}let d=I([a,c.relativePath]),p=r.concat(c);i.children&&i.children.length>0&&(P(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),$t(i.children,t,p,d,s)),!(i.path==null&&!i.index)&&t.push({path:d,score:Wr(d,i.index),routesMeta:p.map((f,y)=>{let[m,h]=Ut(f.relativePath,f.caseSensitive,y===p.length-1);return{...f,matcher:m,compiledParams:h}})})};return e.forEach((i,l)=>{if(i.path===""||!i.path?.includes("?"))o(i,l);else for(let s of It(i.path))o(i,l,!0,s)}),t}function It(e){let t=e.split("/");if(t.length===0)return[];let[r,...a]=t,n=r.endsWith("?"),o=r.replace(/\?$/,"");if(a.length===0)return n?[o,""]:[o];let i=It(a.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),n&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function $r(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Yr(t.routesMeta.map(a=>a.childrenIndex),r.routesMeta.map(a=>a.childrenIndex)))}var Ir=/^:[\w-]+$/,Hr=3,Ur=2,jr=1,zr=10,Br=-2,Dt=e=>e==="*";function Wr(e,t){let r=e.split("/"),a=r.length;return r.some(Dt)&&(a+=Br),t&&(a+=Ur),r.filter(n=>!Dt(n)).reduce((n,o)=>n+(Ir.test(o)?Hr:o===""?jr:zr),a)}function Yr(e,t){return e.length===t.length&&e.slice(0,-1).every((a,n)=>a===t[n])?e[e.length-1]-t[t.length-1]:0}function Vr(e,t,r=!1){let{routesMeta:a}=e,n={},o="/",i=[];for(let l=0;l<a.length;++l){let s=a[l],u=l===a.length-1,c=o==="/"?t:t.slice(o.length)||"/",d={path:s.relativePath,caseSensitive:s.caseSensitive,end:u},p=s.matcher&&s.compiledParams?Ht(d,c,s.matcher,s.compiledParams):ne(d,c),f=s.route;if(!p&&u&&r&&!a[a.length-1].route.index&&(p=ne({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},c)),!p)return null;Object.assign(n,p.params),i.push({params:n,pathname:I([o,p.pathname]),pathnameBase:Gr(I([o,p.pathnameBase])),route:f}),p.pathnameBase!=="/"&&(o=I([o,p.pathnameBase]))}return i}function ne(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,a]=Ut(e.path,e.caseSensitive,e.end);return Ht(e,t,r,a)}function Ht(e,t,r,a){let n=t.match(r);if(!n)return null;let o=n[0],i=q(o,1),l=n.slice(1);return{params:a.reduce((u,{paramName:c,isOptional:d},p)=>{if(c==="*"){let y=l[p]||"";i=q(o.slice(0,o.length-y.length),1)}let f=l[p];return d&&!f?u[c]=void 0:u[c]=(f||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function Ut(e,t=!1,r=!0){T(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let a=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,s,u,c)=>{if(a.push({paramName:l,isOptional:s!=null}),s){let d=c.charAt(u+i.length);return d&&d!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),n+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?n+="\\/*$":e!==""&&e!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,t?void 0:"i"),a]}function Jr(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return T(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function U(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,a=e.charAt(r);return a&&a!=="/"?null:e.slice(r)||"/"}function jt(e,t="/"){let{pathname:r,search:a="",hash:n=""}=typeof e=="string"?V(e):e,o;return r?(r=zt(r),r.startsWith("/")||r.startsWith("\\")?o=Ft(r.substring(1),"/"):o=Ft(r,t)):o=t,{pathname:o,search:Xr(a),hash:Qr(n)}}function Ft(e,t){let r=q(t).split("/");return e.split("/").forEach(n=>{n===".."?r.length>1&&r.pop():n!=="."&&r.push(n)}),r.length>1?r.join("/"):"/"}function xe(e,t,r,a){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(a)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Kr(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Me(e){let t=Kr(e);return t.map((r,a)=>a===t.length-1?r.pathname:r.pathnameBase)}function ye(e,t,r,a=!1){let n;typeof e=="string"?n=V(e):(n={...e},P(!n.pathname||!n.pathname.includes("?"),xe("?","pathname","search",n)),P(!n.pathname||!n.pathname.includes("#"),xe("#","pathname","hash",n)),P(!n.search||!n.search.includes("#"),xe("#","search","hash",n)));let o=e===""||n.pathname==="",i=o?"/":n.pathname,l;if(i==null)l=r;else{let d=t.length-1;if(!a&&i.startsWith("..")){let p=i.split("/");for(;p[0]==="..";)p.shift(),d-=1;n.pathname=p.join("/")}l=d>=0?t[d]:"/"}let s=jt(n,l),u=i&&i!=="/"&&i.endsWith("/"),c=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}var zt=e=>e.replace(/[\\/]{2,}/g,"/"),I=e=>zt(e.join("/"));function q(e,t=0){let r=e.length;for(;r>t&&e.charCodeAt(r-1)===47;)r--;return r===e.length?e:e.slice(0,r)}var Gr=e=>q(e).replace(/^\/*/,"/"),Xr=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Qr=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;var Bt=class{constructor(e,t,r,a=!1){this.status=e,this.statusText=t||"",this.internal=a,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function Wt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Zr(e){let t=e.map(r=>r.route.path).filter(Boolean);return I(t)||"/"}var Yt=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Vt(e,t){let r=e;if(typeof r!="string"||!Te.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let a=r,n=!1;if(Yt)try{let o=new URL(window.location.href),i=Ot.test(r)?new URL(Fr(r,o.protocol)):new URL(r),l=U(i.pathname,t);i.origin===o.origin&&l!=null?r=l+i.search+i.hash:n=!0}catch{T(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:a,isExternal:n,to:r}}var bn=Symbol("Uninstrumented");var En=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var kt=new URL("http://localhost");function Oe(e){if(e.createURL)return e.createURL("/");try{return new URL(e.createHref("/"),kt)}catch{return kt}}function Pe(e,t){return e.origin===t.origin&&(e.origin!=="null"||e.protocol===t.protocol&&e.host===t.host)}function qr(e,t){if(e.startsWith("//"))return!0;let r=t.protocol.toLowerCase();return e.toLowerCase().startsWith(r)?t.host===""||e.slice(r.length).startsWith("//"):!1}function Ae(e,t,r,a){let n=null;try{n=e==null?null:new URL(e,r)}catch{}let o=new URL(t,r),i=n!=null&&!Pe(n,r),l=!Pe(o,r);if(a==="reject"){if(i||l)throw new Error("External navigation is not allowed")}else if(l&&(n==null||!qr(e,n)||!Pe(n,o)))throw new Error("External navigation is not allowed")}var Jt=["POST","PUT","PATCH","DELETE"],xn=new Set(Jt),ea=["GET",...Jt],Pn=new Set(ea);var Cn=Symbol("ResetLoaderData"),ta,ra,aa,na;ta=new WeakMap;ra=new WeakMap;aa=new WeakMap;na=new WeakMap;var oa=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function ia(e){try{return oa.includes(new URL(e).protocol)}catch{return!1}}var K=A.createContext(null);K.displayName="DataRouter";var ee=A.createContext(null);ee.displayName="DataRouterState";var Kt=A.createContext(!1);function la(){return A.useContext(Kt)}var _e=A.createContext({isTransitioning:!1});_e.displayName="ViewTransition";var Gt=A.createContext(new Map);Gt.displayName="Fetchers";var sa=A.createContext(null);sa.displayName="Await";var k=A.createContext(null);k.displayName="Navigation";var G=A.createContext(null);G.displayName="Location";var $=A.createContext({outlet:null,matches:[],isDataRoute:!1});$.displayName="Route";var $e=A.createContext(null);$e.displayName="RouteError";var De=!0,Xt="REACT_ROUTER_ERROR",ua="REDIRECT",ca="ROUTE_ERROR_RESPONSE";function da(e){if(e.startsWith(`${Xt}:${ua}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function fa(e){if(e.startsWith(`${Xt}:${ca}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Bt(t.status,t.statusText,t.data)}catch{}}function ge(e,{relative:t}={}){P(X(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:a}=g.useContext(k),{hash:n,pathname:o,search:i}=te(e,{relative:t}),l=o;return r!=="/"&&(l=o==="/"?r:I([r,o])),a.createHref({pathname:l,search:i,hash:n})}function X(){return g.useContext(G)!=null}function F(){return P(X(),"useLocation() may be used only in the context of a <Router> component."),g.useContext(G).location}function ha(){return g.useContext(G).navigationType}var Qt="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Zt(e){g.useContext(k).static||g.useLayoutEffect(e)}function Q(){let{isDataRoute:e}=g.useContext($);return e?xa():ma()}function ma(){P(X(),"useNavigate() may be used only in the context of a <Router> component.");let e=g.useContext(K),{basename:t,navigator:r}=g.useContext(k),{matches:a}=g.useContext($),{pathname:n}=F(),o=JSON.stringify(Me(a)),i=g.useRef(!1);return Zt(()=>{i.current=!0}),g.useCallback((s,u={})=>{if(T(i.current,Qt),!i.current)return;if(typeof s=="number"){r.go(s);return}let c=ye(s,JSON.parse(o),n,u.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:I([t,c.pathname])),Ae(typeof s=="string"?s:z(s),r.createHref(c),Oe(r),"reject"),(u.replace?r.replace:r.push)(c,u.state,u)},[t,r,o,n,e])}var Ln=g.createContext(null);function pa(){let{matches:e}=g.useContext($);return e[e.length-1]?.params??{}}function te(e,{relative:t}={}){let{matches:r}=g.useContext($),{pathname:a}=F(),n=JSON.stringify(Me(r));return g.useMemo(()=>ye(e,JSON.parse(n),a,t==="path"),[e,n,a,t])}function qt(e,t){return er(e,t)}function er(e,t,r){P(X(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=g.useContext(k),{matches:n}=g.useContext($),o=n[n.length-1],i=o?o.params:{},l=o?o.pathname:"/",s=o?o.pathnameBase:"/",u=o&&o.route;if(De){let h=u&&u.path||"";nr(l,!u||h.endsWith("*")||h.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${h}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
2
|
-
|
|
3
|
-
Please change the parent <Route path="${h}"> to <Route path="${h==="/"?"*":`${h}/*`}">.`)}let c=F(),d;if(t){let h=typeof t=="string"?V(t):t;P(s==="/"||h.pathname?.startsWith(s),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${s}" but pathname "${h.pathname}" was given in the \`location\` prop.`),d=h}else d=c;let p=d.pathname||"/",f=p;if(s!=="/"){let h=s.replace(/^\//,"").split("/");f="/"+p.replace(/^\//,"").split("/").slice(h.length).join("/")}let y=r&&r.state.matches.length?r.state.matches.map(h=>Object.assign(h,{route:r.manifest[h.route.id]||h.route})):Ne(e,{pathname:f});De&&(T(u||y!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),T(y==null||y[y.length-1].route.element!==void 0||y[y.length-1].route.Component!==void 0||y[y.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`));let m=wa(y&&y.map(h=>Object.assign({},h,{params:Object.assign({},i,h.params),pathname:I([s,a.encodeLocation?a.encodeLocation(h.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:h.pathname]),pathnameBase:h.pathnameBase==="/"?s:I([s,a.encodeLocation?a.encodeLocation(h.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:h.pathnameBase])})),n,r);return t&&m?g.createElement(G.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...d},navigationType:"POP"}},m):m}function ya(){let e=ar(),t=Wt(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",n={padding:"0.5rem",backgroundColor:a},o={padding:"2px 4px",backgroundColor:a},i=null;return De&&(console.error("Error handled by React Router default ErrorBoundary:",e),i=g.createElement(g.Fragment,null,g.createElement("p",null,"\u{1F4BF} Hey developer \u{1F44B}"),g.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",g.createElement("code",{style:o},"ErrorBoundary")," or"," ",g.createElement("code",{style:o},"errorElement")," prop on your route."))),g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},t),r?g.createElement("pre",{style:n},r):null,i)}var ga=g.createElement(ya,null),tr=class extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){let r=fa(e.digest);r&&(e=r)}let t=e!==void 0?g.createElement($.Provider,{value:this.props.routeContext},g.createElement($e.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?g.createElement(va,{error:e},t):t}};tr.contextType=Kt;var Ce=new WeakMap;function va({children:e,error:t}){let{basename:r,navigator:a}=g.useContext(k);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let n=da(t.digest);if(n){let o=Ce.get(t);if(o)throw o;let i=Vt(n.location,r),l=i.absoluteURL||i.to;if(Ae(n.location,l,Oe(a),"allow-explicit"),ia(l))throw new Error("Invalid redirect location");if(Yt&&!Ce.get(t))if(i.isExternal||n.reloadDocument)window.location.href=l;else{let s=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:n.replace}));throw Ce.set(t,s),s}return g.createElement("meta",{httpEquiv:"refresh",content:`0;url=${l}`})}}return e}function Ra({routeContext:e,match:t,children:r}){let a=g.useContext(K);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),g.createElement($.Provider,{value:e},r)}function wa(e,t=[],r){let a=r?.state;if(e==null){if(!a)return null;if(a.errors)e=a.matches;else if(t.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let n=e,o=a?.errors;if(o!=null){let c=n.findIndex(d=>d.route.id&&o?.[d.route.id]!==void 0);P(c>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),n=n.slice(0,Math.min(n.length,c+1))}let i=!1,l=-1;if(r&&a){i=a.renderFallback;for(let c=0;c<n.length;c++){let d=n[c];if((d.route.HydrateFallback||d.route.hydrateFallbackElement)&&(l=c),d.route.id){let{loaderData:p,errors:f}=a,y=d.route.loader&&!p.hasOwnProperty(d.route.id)&&(!f||f[d.route.id]===void 0);if(d.route.lazy||y){r.isStatic&&(i=!0),l>=0?n=n.slice(0,l+1):n=[n[0]];break}}}}let s=r?.onError,u=a&&s?(c,d)=>{s(c,{location:a.location,params:a.matches?.[0]?.params??{},pattern:Zr(a.matches),errorInfo:d})}:void 0;return n.reduceRight((c,d,p)=>{let f,y=!1,m=null,h=null;a&&(f=o&&d.route.id?o[d.route.id]:void 0,m=d.route.errorElement||ga,i&&(l<0&&p===0?(nr("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),y=!0,h=null):l===p&&(y=!0,h=d.route.hydrateFallbackElement||null)));let S=t.concat(n.slice(0,p+1)),R=()=>{let w;return f?w=m:y?w=h:d.route.Component?w=g.createElement(d.route.Component,null):d.route.element?w=d.route.element:w=c,g.createElement(Ra,{match:d,routeContext:{outlet:c,matches:S,isDataRoute:a!=null},children:w})};return a&&(d.route.ErrorBoundary||d.route.errorElement||p===0)?g.createElement(tr,{location:a.location,revalidation:a.revalidation,component:m,error:f,children:R(),routeContext:{outlet:null,matches:S,isDataRoute:!0},onError:u}):R()},null)}function Ie(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Sa(e){let t=g.useContext(K);return P(t,Ie(e)),t}function He(e){let t=g.useContext(ee);return P(t,Ie(e)),t}function ba(e){let t=g.useContext($);return P(t,Ie(e)),t}function Ue(e){let t=ba(e),r=t.matches[t.matches.length-1];return P(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function Ea(){return Ue("useRouteId")}function rr(){let e=He("useNavigation");return g.useMemo(()=>{let{matches:t,historyAction:r,...a}=e.navigation;return a},[e.navigation])}function je(){let{matches:e,loaderData:t}=He("useMatches");return g.useMemo(()=>e.map(r=>Ar(r,t)),[e,t])}function ar(){let e=g.useContext($e),t=He("useRouteError"),r=Ue("useRouteError");return e!==void 0?e:t.errors?.[r]}function xa(){let{router:e}=Sa("useNavigate"),t=Ue("useNavigate"),r=g.useRef(!1);return Zt(()=>{r.current=!0}),g.useCallback(async(n,o={})=>{T(r.current,Qt),r.current&&(typeof n=="number"?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...o}))},[e,t])}var Tt={};function nr(e,t,r){!t&&!Tt[e]&&(Tt[e]=!0,T(!1,r))}var Pa="useOptimistic",Dn=E[Pa];var Fn=E.memo(Ca);function Ca({routes:e,manifest:t,future:r,state:a,isStatic:n,onError:o}){return er(e,void 0,{manifest:t,state:a,isStatic:n,onError:o,future:r})}function La({basename:e,children:t,initialEntries:r,initialIndex:a,useTransitions:n}){let o=E.useRef();o.current==null&&(o.current=At({initialEntries:r,initialIndex:a,v5Compat:!0}));let i=o.current,[l,s]=E.useState({action:i.action,location:i.location}),u=E.useCallback(c=>{n===!1?s(c):E.startTransition(()=>s(c))},[n]);return E.useLayoutEffect(()=>i.listen(u),[i,u]),E.createElement(ve,{basename:e,children:t,location:l.location,navigationType:l.action,navigator:i,useTransitions:n})}function Da({to:e,replace:t,state:r,relative:a}){P(X(),"<Navigate> may be used only in the context of a <Router> component.");let{static:n,navigator:o}=E.useContext(k);T(!n,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:i}=E.useContext($),{pathname:l}=F(),s=Q(),u=ye(e,Me(i),l,a==="path");Ae(typeof e=="string"?e:z(e),o.createHref(u),Oe(o),"reject");let c=JSON.stringify(u);return E.useEffect(()=>{s(JSON.parse(c),{replace:t,state:r,relative:a})},[s,c,a,t,r]),null}function or(e){P(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function ve({basename:e="/",children:t=null,location:r,navigationType:a="POP",navigator:n,static:o=!1,useTransitions:i}){P(!X(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),s=E.useMemo(()=>({basename:l,navigator:n,static:o,useTransitions:i,future:{}}),[l,n,o,i]);typeof r=="string"&&(r=V(r));let{pathname:u="/",search:c="",hash:d="",state:p=null,key:f="default",mask:y}=r,m=E.useMemo(()=>{let h=U(u,l);return h==null?null:{location:{pathname:h,search:c,hash:d,state:p,key:f,mask:y},navigationType:a}},[l,u,c,d,p,f,a,y]);return T(m!=null,`<Router basename="${l}"> is not able to match the URL "${u}${c}${d}" because it does not start with the basename, so the <Router> won't render anything.`),m==null?null:E.createElement(k.Provider,{value:s},E.createElement(G.Provider,{children:t,value:m}))}function Fa({children:e,location:t}){return qt(me(e),t)}function me(e,t=[]){let r=[];return E.Children.forEach(e,(a,n)=>{if(!E.isValidElement(a))return;let o=[...t,n];if(a.type===E.Fragment){r.push.apply(r,me(a.props.children,o));return}P(a.type===or,`[${typeof a.type=="string"?a.type:a.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),P(!a.props.index||!a.props.children,"An index route cannot have child routes.");let i={id:a.props.id||o.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,middleware:a.props.middleware,loader:a.props.loader,action:a.props.action,hydrateFallbackElement:a.props.hydrateFallbackElement,HydrateFallback:a.props.HydrateFallback,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.hasErrorBoundary===!0||a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(i.children=me(a.props.children,o)),r.push(i)}),r}var ce="get",de="application/x-www-form-urlencoded";function Re(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function ka(e){return Re(e)&&e.tagName.toLowerCase()==="button"}function Ta(e){return Re(e)&&e.tagName.toLowerCase()==="form"}function Na(e){return Re(e)&&e.tagName.toLowerCase()==="input"}function Ma(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Oa(e,t){return e.button===0&&(!t||t==="_self")&&!Ma(e)}function pe(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let a=e[r];return t.concat(Array.isArray(a)?a.map(n=>[r,n]):[[r,a]])},[]))}function Aa(e,t){let r=pe(e);return t&&t.forEach((a,n)=>{r.has(n)||t.getAll(n).forEach(o=>{r.append(n,o)})}),r}var se=null;function _a(){if(se===null)try{new FormData(document.createElement("form"),0),se=!1}catch{se=!0}return se}var $a=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Le(e){return e!=null&&!$a.has(e)?(T(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${de}"`),null):e}function Ia(e,t){let r,a,n,o,i;if(Ta(e)){let l=e.getAttribute("action");a=l?U(l,t):null,r=e.getAttribute("method")||ce,n=Le(e.getAttribute("enctype"))||de,o=new FormData(e)}else if(ka(e)||Na(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(a=s?U(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||ce,n=Le(e.getAttribute("formenctype"))||Le(l.getAttribute("enctype"))||de,o=new FormData(l,e),!_a()){let{name:u,type:c,value:d}=e;if(c==="image"){let p=u?`${u}.`:"";o.append(`${p}x`,"0"),o.append(`${p}y`,"0")}else u&&o.append(u,d)}}else{if(Re(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=ce,a=null,n=de,i=e}return o&&n==="text/plain"&&(i=o,o=void 0),{action:a,method:r.toLowerCase(),encType:n,formData:o,body:i}}var kn=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ha={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},Ua=/[&><\u2028\u2029]/g;function Nt(e){return e.replace(Ua,t=>Ha[t])}function Be(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var ja=Symbol("SingleFetchRedirect");function ir(e,t,r,a){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return r?n.pathname.endsWith("/")?n.pathname=`${n.pathname}_.${a}`:n.pathname=`${n.pathname}.${a}`:n.pathname==="/"?n.pathname=`_root.${a}`:t&&U(n.pathname,t)==="/"?n.pathname=`${q(t)}/_root.${a}`:n.pathname=`${q(n.pathname)}.${a}`,n}async function za(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){if(console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode&&import.meta.hot)throw r;return window.location.reload(),new Promise(()=>{})}}function Ba(e){return e!=null&&typeof e.page=="string"}function Wa(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Ya(e,t,r){let a=await Promise.all(e.map(async n=>{let o=t.routes[n.route.id];if(o){let i=await za(o,r);return i.links?i.links():[]}return[]}));return Ga(a.flat(1).filter(Wa).filter(n=>n.rel==="stylesheet"||n.rel==="preload").map(n=>n.rel==="stylesheet"?{...n,rel:"prefetch",as:"style"}:{...n,rel:"prefetch"}))}function Mt(e,t,r,a,n,o){let i=(s,u)=>r[u]?s.route.id!==r[u].route.id:!0,l=(s,u)=>r[u].pathname!==s.pathname||r[u].route.path?.endsWith("*")&&r[u].params["*"]!==s.params["*"];return o==="assets"?t.filter((s,u)=>i(s,u)||l(s,u)):o==="data"?t.filter((s,u)=>{let c=a.routes[s.route.id];if(!c||!c.hasLoader)return!1;if(i(s,u)||l(s,u))return!0;if(s.route.shouldRevalidate){let d=s.route.shouldRevalidate({currentUrl:new URL(n.pathname+n.search+n.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:s.params,defaultShouldRevalidate:!0});if(typeof d=="boolean")return d}return!0}):[]}function Va(e,t,{includeHydrateFallback:r}={}){return Ja(e.map(a=>{let n=t.routes[a.route.id];if(!n)return[];let o=[n.module];return n.clientActionModule&&(o=o.concat(n.clientActionModule)),n.clientLoaderModule&&(o=o.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(o=o.concat(n.hydrateFallbackModule)),n.imports&&(o=o.concat(n.imports)),o}).flat(1))}function Ja(e){return[...new Set(e)]}function Ka(e){let t={},r=Object.keys(e).sort();for(let a of r)t[a]=e[a];return t}function Ga(e,t){let r=new Set,a=new Set(t);return e.reduce((n,o)=>{if(t&&!Ba(o)&&o.as==="script"&&o.href&&a.has(o.href))return n;let l=JSON.stringify(Ka(o));return r.has(l)||(r.add(l),n.push({key:l,link:o})),n},[])}function We(){let e=b.useContext(K);return Be(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function qa(){let e=b.useContext(ee);return Be(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var oe=b.createContext(void 0);oe.displayName="FrameworkContext";function we(){let e=b.useContext(oe);return Be(e,"You must render this element inside a <HydratedRouter> element"),e}function en(e,t){let r=b.useContext(oe),[a,n]=b.useState(!1),[o,i]=b.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:c,onTouchStart:d}=t,p=b.useRef(null);b.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let m=S=>{S.forEach(R=>{i(R.isIntersecting)})},h=new IntersectionObserver(m,{threshold:.5});return p.current&&h.observe(p.current),()=>{h.disconnect()}}},[e]),b.useEffect(()=>{if(a){let m=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(m)}}},[a]);let f=()=>{n(!0)},y=()=>{n(!1),i(!1)};return r?e!=="intent"?[o,p,{}]:[o,p,{onFocus:ae(l,f),onBlur:ae(s,y),onMouseEnter:ae(u,f),onMouseLeave:ae(c,y),onTouchStart:ae(d,f)}]:[!1,p,{}]}function ae(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function sr({page:e,...t}){let r=la(),{nonce:a}=we(),{router:n}=We(),o=b.useMemo(()=>Ne(n.routes,e,n.basename),[n.routes,e,n.basename]);return o?(t.nonce==null&&a&&(t={...t,nonce:a}),r?b.createElement(rn,{page:e,matches:o,...t}):b.createElement(an,{page:e,matches:o,...t})):null}function tn(e){let{manifest:t,routeModules:r}=we(),[a,n]=b.useState([]);return b.useEffect(()=>{let o=!1;return Ya(e,t,r).then(i=>{o||n(i)}),()=>{o=!0}},[e,t,r]),a}function rn({page:e,matches:t,...r}){let a=F(),{future:n}=we(),{basename:o}=We(),i=b.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let l=ir(e,o,n.v8_trailingSlashAwareDataRequests,"rsc"),s=!1,u=[];for(let c of t)typeof c.route.shouldRevalidate=="function"?s=!0:u.push(c.route.id);return s&&u.length>0&&l.searchParams.set("_routes",u.join(",")),[l.pathname+l.search]},[o,n.v8_trailingSlashAwareDataRequests,e,a,t]);return b.createElement(b.Fragment,null,i.map(l=>b.createElement("link",{key:l,rel:"prefetch",as:"fetch",href:l,...r})))}function an({page:e,matches:t,...r}){let a=F(),{future:n,manifest:o,routeModules:i}=we(),{basename:l}=We(),{loaderData:s,matches:u}=qa(),c=b.useMemo(()=>Mt(e,t,u,o,a,"data"),[e,t,u,o,a]),d=b.useMemo(()=>Mt(e,t,u,o,a,"assets"),[e,t,u,o,a]),p=b.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let m=new Set,h=!1;if(t.forEach(R=>{let w=o.routes[R.route.id];!w||!w.hasLoader||(!c.some(L=>L.route.id===R.route.id)&&R.route.id in s&&i[R.route.id]?.shouldRevalidate||w.hasClientLoader?h=!0:m.add(R.route.id))}),m.size===0)return[];let S=ir(e,l,n.v8_trailingSlashAwareDataRequests,"data");return h&&m.size>0&&S.searchParams.set("_routes",t.filter(R=>m.has(R.route.id)).map(R=>R.route.id).join(",")),[S.pathname+S.search]},[l,n.v8_trailingSlashAwareDataRequests,s,a,o,c,t,e,i]),f=b.useMemo(()=>Va(d,o),[d,o]),y=tn(d);return b.createElement(b.Fragment,null,p.map(m=>b.createElement("link",{key:m,rel:"prefetch",as:"fetch",href:m,...r})),f.map(m=>b.createElement("link",{key:m,rel:"modulepreload",href:m,...r})),y.map(({key:m,link:h})=>b.createElement("link",{key:m,nonce:r.nonce,...h,crossOrigin:h.crossOrigin??r.crossOrigin})))}function nn(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var on=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{on&&(window.__reactRouterVersion="7.18.3")}catch{}function ln({basename:e,children:t,useTransitions:r,window:a}){let n=v.useRef();n.current==null&&(n.current=_t({window:a,v5Compat:!0}));let o=n.current,[i,l]=v.useState({action:o.action,location:o.location}),s=v.useCallback(u=>{r===!1?l(u):v.startTransition(()=>l(u))},[r]);return v.useLayoutEffect(()=>o.listen(s),[o,s]),v.createElement(ve,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o,useTransitions:r})}function ur({basename:e,children:t,history:r,useTransitions:a}){let[n,o]=v.useState({action:r.action,location:r.location}),i=v.useCallback(l=>{a===!1?o(l):v.startTransition(()=>o(l))},[a]);return v.useLayoutEffect(()=>r.listen(i),[r,i]),v.createElement(ve,{basename:e,children:t,location:n.location,navigationType:n.action,navigator:r,useTransitions:a})}ur.displayName="unstable_HistoryRouter";var ie=v.forwardRef(function({onClick:t,discover:r="render",prefetch:a="none",relative:n,reloadDocument:o,replace:i,mask:l,state:s,target:u,to:c,preventScrollReset:d,viewTransition:p,defaultShouldRevalidate:f,...y},m){let{basename:h,navigator:S,useTransitions:R}=v.useContext(k),w=typeof c=="string"&&Te.test(c),L=Vt(c,h);c=L.to;let x=ge(c,{relative:n}),M=F(),H=null;if(l){let Y=ye(l,[],M.mask?M.mask.pathname:"/",!0);h!=="/"&&(Y.pathname=Y.pathname==="/"?h:I([h,Y.pathname])),H=S.createHref(Y)}let[_,B,W]=en(a,y),Se=mr(c,{replace:i,mask:l,state:s,target:u,preventScrollReset:d,relative:n,viewTransition:p,defaultShouldRevalidate:f,useTransitions:R});function Cr(Y){t&&t(Y),Y.defaultPrevented||Se(Y)}let Ze=!(L.isExternal||o),qe=v.createElement("a",{...y,...W,href:(Ze?H:void 0)||L.absoluteURL||x,onClick:Ze?Cr:t,ref:nn(m,B),target:u,"data-discover":!w&&r==="render"?"true":void 0});return _&&!w?v.createElement(v.Fragment,null,qe,v.createElement(sr,{page:x})):qe});ie.displayName="Link";var cr=v.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:a="",end:n=!1,style:o,to:i,viewTransition:l,children:s,...u},c){let d=te(i,{relative:u.relative}),p=F(),f=v.useContext(ee),{navigator:y,basename:m}=v.useContext(k),h=f!=null&&vr(d)&&l===!0,S=y.encodeLocation?y.encodeLocation(d).pathname:d.pathname,R=p.pathname,w=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;r||(R=R.toLowerCase(),w=w?w.toLowerCase():null,S=S.toLowerCase()),w&&m&&(w=U(w,m)||w);let L=S!=="/"&&S.endsWith("/")?S.length-1:S.length,x=R===S||!n&&R.startsWith(S)&&R.charAt(L)==="/",M=w!=null&&(w===S||!n&&w.startsWith(S)&&w.charAt(S.length)==="/"),H={isActive:x,isPending:M,isTransitioning:h},_=x?t:void 0,B;typeof a=="function"?B=a(H):B=[a,x?"active":null,M?"pending":null,h?"transitioning":null].filter(Boolean).join(" ");let W=typeof o=="function"?o(H):o;return v.createElement(ie,{...u,"aria-current":_,className:B,ref:c,style:W,to:i,viewTransition:l},typeof s=="function"?s(H):s)});cr.displayName="NavLink";var dr=v.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:a,replace:n,state:o,method:i=ce,action:l,onSubmit:s,relative:u,preventScrollReset:c,viewTransition:d,defaultShouldRevalidate:p,...f},y)=>{let{useTransitions:m}=v.useContext(k),h=pr(),S=yr(l,{relative:u}),R=i.toLowerCase()==="get"?"get":"post",w=typeof l=="string"&&Te.test(l);return v.createElement("form",{ref:y,method:R,action:S,onSubmit:a?s:x=>{if(s&&s(x),x.defaultPrevented)return;x.preventDefault();let M=x.nativeEvent.submitter,H=M?.getAttribute("formmethod")||i,_=()=>h(M||x.currentTarget,{fetcherKey:t,method:H,navigate:r,replace:n,state:o,relative:u,preventScrollReset:c,viewTransition:d,defaultShouldRevalidate:p});m&&r!==!1?v.startTransition(()=>_()):_()},...f,"data-discover":!w&&e==="render"?"true":void 0})});dr.displayName="Form";function fr({getKey:e,storageKey:t,...r}){let a=v.useContext(oe),{basename:n}=v.useContext(k),o=F(),i=je();gr({getKey:e,storageKey:t});let l=v.useMemo(()=>{if(!a||!e)return null;let u=ke(o,i,n,e);return u!==o.key?u:null},[]);if(!a||a.isSpaMode)return null;let s=((u,c)=>{if(!window.history.state||!window.history.state.key){let d=Math.random().toString(32).slice(2);window.history.replaceState({key:d},"")}try{let p=JSON.parse(sessionStorage.getItem(u)||"{}")[c||window.history.state.key];typeof p=="number"&&window.scrollTo(0,p)}catch(d){console.error(d),sessionStorage.removeItem(u)}}).toString();return r.nonce==null&&a?.nonce&&(r.nonce=a.nonce),v.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${Nt(JSON.stringify(t||Fe))}, ${Nt(JSON.stringify(l))})`}})}fr.displayName="ScrollRestoration";function hr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ye(e){let t=v.useContext(K);return P(t,hr(e)),t}function sn(e){let t=v.useContext(ee);return P(t,hr(e)),t}function mr(e,{target:t,replace:r,mask:a,state:n,preventScrollReset:o,relative:i,viewTransition:l,defaultShouldRevalidate:s,useTransitions:u}={}){let c=Q(),d=F(),p=te(e,{relative:i});return v.useCallback(f=>{if(Oa(f,t)){f.preventDefault();let y=r!==void 0?r:z(d)===z(p),m=()=>c(e,{replace:y,mask:a,state:n,preventScrollReset:o,relative:i,viewTransition:l,defaultShouldRevalidate:s});u?v.startTransition(()=>m()):m()}},[d,c,p,r,a,n,t,e,o,i,l,s,u])}function Ve(e){T(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=v.useRef(pe(e)),r=v.useRef(!1),a=F(),n=v.useMemo(()=>Aa(a.search,r.current?null:t.current),[a.search]),o=Q(),i=v.useCallback((l,s)=>{let u=pe(typeof l=="function"?l(new URLSearchParams(n)):l);r.current=!0,o("?"+u,s)},[o,n]);return[n,i]}var un=0,cn=()=>`__${String(++un)}__`;function pr(){let{router:e}=Ye("useSubmit"),{basename:t}=v.useContext(k),r=Ea(),a=e.fetch,n=e.navigate;return v.useCallback(async(o,i={})=>{let{action:l,method:s,encType:u,formData:c,body:d}=Ia(o,t);if(i.navigate===!1){let p=i.fetcherKey||cn();await a(p,r,i.action||l,{defaultShouldRevalidate:i.defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:c,body:d,formMethod:i.method||s,formEncType:i.encType||u,flushSync:i.flushSync})}else await n(i.action||l,{defaultShouldRevalidate:i.defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:c,body:d,formMethod:i.method||s,formEncType:i.encType||u,replace:i.replace,state:i.state,fromRouteId:r,flushSync:i.flushSync,viewTransition:i.viewTransition})},[a,n,t,r])}function yr(e,{relative:t}={}){let{basename:r}=v.useContext(k),a=v.useContext($);P(a,"useFormAction must be used inside a RouteContext");let[n]=a.matches.slice(-1),o={...te(e||".",{relative:t})},i=F();if(e==null){o.search=i.search;let l=new URLSearchParams(o.search),s=l.getAll("index");if(s.some(c=>c==="")){l.delete("index"),s.filter(d=>d).forEach(d=>l.append("index",d));let c=l.toString();o.search=c?`?${c}`:""}}return(!e||e===".")&&n.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:I([r,o.pathname])),z(o)}var Fe="react-router-scroll-positions",ue={};function ke(e,t,r,a){let n=null;return a&&(r!=="/"?n=a({...e,pathname:U(e.pathname,r)||e.pathname},t):n=a(e,t)),n==null&&(n=e.key),n}function gr({getKey:e,storageKey:t}={}){let{router:r}=Ye("useScrollRestoration"),{restoreScrollPosition:a,preventScrollReset:n}=sn("useScrollRestoration"),{basename:o}=v.useContext(k),i=F(),l=je(),s=rr();v.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),dn(v.useCallback(()=>{if(s.state==="idle"){let u=ke(i,l,o,e);ue[u]=window.scrollY}try{sessionStorage.setItem(t||Fe,JSON.stringify(ue))}catch(u){T(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${u}).`)}window.history.scrollRestoration="auto"},[s.state,e,o,i,l,t])),typeof document<"u"&&(v.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||Fe);u&&(ue=JSON.parse(u))}catch{}},[t]),v.useLayoutEffect(()=>{let u=r?.enableScrollRestoration(ue,()=>window.scrollY,e?(c,d)=>ke(c,d,o,e):void 0);return()=>u&&u()},[r,o,e]),v.useLayoutEffect(()=>{if(a!==!1){if(typeof a=="number"){window.scrollTo(0,a);return}try{if(i.hash){let u=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(u){u.scrollIntoView();return}}}catch{T(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}n!==!0&&window.scrollTo(0,0)}},[i,a,n]))}function dn(e,t){let{capture:r}=t||{};v.useEffect(()=>{let a=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,a),()=>{window.removeEventListener("pagehide",e,a)}},[e,r])}function vr(e,{relative:t}={}){let r=v.useContext(_e);P(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=Ye("useViewTransitionState"),n=te(e,{relative:t});if(!r.isTransitioning)return!1;let o=U(r.currentLocation.pathname,a)||r.currentLocation.pathname,i=U(r.nextLocation.pathname,a)||r.nextLocation.pathname;return ne(n.pathname,i)!=null||ne(n.pathname,o)!=null}var Je=D(O(),1),wr=D(Lr(),1);var j=D(Z(),1);function Sr({context:e,own:t}){re(e.store);let r=ct(),a=ut()?.live??e.store;re(a);let n=pt();if(!r||a.batches().length===0&&n===0)return null;let o=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Je.Suspense,{fallback:null,children:(0,j.jsx)(Et,{})}),(0,j.jsx)(Je.Suspense,{fallback:null,children:(0,j.jsx)(xt,{})})]});return t?(0,wr.createPortal)(o,t):(0,j.jsx)("div",{className:"graview-bar-own",children:o})}var N=D(O(),1);var J=D(O(),1),fn=(0,J.createContext)(null);function Go(){let e=new Map,t=new Set,r=()=>{for(let a of t)a()};return{count:a=>e.get(a)??0,place(a){return e.set(a,(e.get(a)??0)+1),r(),()=>{e.set(a,(e.get(a)??1)-1),r()}},subscribe(a){return t.add(a),()=>t.delete(a)}}}function br(e){let t=(0,J.useContext)(fn);(0,J.useLayoutEffect)(()=>t?.place(e),[t,e])}function Xo(e,t){return(0,J.useSyncExternalStore)(e.subscribe,()=>e.count(t)>0,()=>!1)}var Pr=D(Z(),1),Ke="var(--graview-text-small)",Ge="var(--graview-text-body)",ri="var(--graview-font-display, var(--graview-font-body, system-ui))",Xe={maxWidth:760,margin:"0 auto",padding:"40px 20px max(96px, calc(var(--graview-foot-room, 0px) + env(safe-area-inset-bottom, 0px)))",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:40},Qe=1160,ai={...Xe,maxWidth:Qe},Er={margin:0,fontSize:"var(--graview-text-title)",lineHeight:1.2,letterSpacing:"-0.012em",overflowWrap:"anywhere",textWrap:"balance"},ni={margin:0,fontSize:"var(--graview-text-heading)",lineHeight:1.3,textWrap:"balance"},oi={margin:0,fontSize:Ke,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},ii={margin:0,fontSize:Ge,color:"var(--graview-ink-muted)",maxWidth:"60ch"},xr={color:"var(--graview-ink-muted)",fontSize:Ke},li={borderTop:"1px solid var(--graview-edge)",paddingTop:24},si={color:"var(--graview-accent)",textDecorationColor:"color-mix(in srgb, currentColor 50%, transparent)",textDecorationThickness:1,textUnderlineOffset:"0.2em",display:"inline-flex",alignItems:"center",minHeight:24},ui={color:"inherit",textDecoration:"none",display:"inline-flex",alignItems:"center",minHeight:24},ci=`.graview-list{container-type:inline-size}
|
|
4
|
-
.graview-rows{display:grid;grid-template-columns:minmax(0,1fr);column-gap:1.5rem;margin:0;padding:0;list-style:none;border-top:1px solid var(--graview-edge)}
|
|
5
|
-
.graview-row{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:baseline;align-content:center;position:relative;box-sizing:border-box;min-height:2.75rem;padding:.5rem 0;border-bottom:1px solid var(--graview-edge);overflow-wrap:anywhere}
|
|
6
|
-
.graview-row-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:24px;color:inherit;text-decoration:none;font-size:var(--graview-text-body);font-weight:500;line-height:1.3;text-wrap:pretty;hyphens:manual}
|
|
7
|
-
.graview-row-title::after{content:"";position:absolute;inset:0}
|
|
8
|
-
.graview-row-title:focus-visible{outline:0}
|
|
9
|
-
.graview-row-title:focus-visible::after{outline:2px solid var(--graview-accent);outline-offset:-2px;border-radius:var(--graview-radius-sm)}
|
|
10
|
-
.graview-row:hover .graview-row-title{text-decoration:underline 1px color-mix(in srgb,currentColor 50%,transparent);text-underline-offset:.2em}
|
|
11
|
-
.graview-row:active .graview-row-title{color:var(--graview-accent)}
|
|
12
|
-
.graview-row :is(a,button):not(.graview-row-title){position:relative}
|
|
13
|
-
.graview-row-glance,.graview-row>[data-testid=search-why]{font-size:var(--graview-text-small);line-height:1.5;color:var(--graview-ink-muted)}
|
|
14
|
-
.graview-row>[data-testid=search-why]{grid-column:1/-1}
|
|
15
|
-
.graview-row-glance{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
|
|
16
|
-
.graview-group-head{display:flex;gap:.5em;align-items:baseline;margin:0;padding:.375rem 0;font-family:var(--graview-font-body);font-size:var(--graview-text-small);font-weight:var(--graview-weight-label);line-height:1.3;letter-spacing:.02em;scroll-margin-top:4rem}
|
|
17
|
-
.graview-group-head>span{color:var(--graview-ink-muted);font-weight:var(--graview-weight-body)}
|
|
18
|
-
.graview-group-toggle{display:inline-flex;gap:.5em;align-items:center;min-height:2.75rem;margin:-.375rem 0;padding:0 .5rem 0 0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:start;cursor:pointer;border-radius:var(--graview-radius-sm)}
|
|
19
|
-
.graview-group-toggle:focus-visible{outline:2px solid var(--graview-accent);outline-offset:2px}
|
|
20
|
-
.graview-group-toggle>span{color:var(--graview-ink-muted);font-weight:var(--graview-weight-body)}
|
|
21
|
-
@container (min-width:36rem){.graview-rows{grid-template-columns:minmax(0,1fr) fit-content(40%)}.graview-group-head:has(+.graview-rows){position:sticky;top:0;z-index:${rt.raised};background:var(--graview-ground)}}`,di={font:"inherit",fontSize:Ke,padding:"8px 14px",borderRadius:"var(--graview-radius-sm, 8px)",border:"1px solid var(--graview-edge-bright)",background:"var(--graview-panel)",color:"var(--graview-ink)",cursor:"pointer"};function fi({kind:e,brand:t,size:r=10,schema:a}){return(0,Pr.jsx)(ft,{kind:e,...a?{schema:a}:{},...t?{brand:t}:{},size:Math.round(r*1.6)})}function hi(e,t){let a=[...new Set(t.targets.map(n=>n.kind))].map(n=>e.schema.tryDefinition(n)?.plural??be(n));return a.length>0?a.join(" and "):be(t.edgeKind)}function mi(e,t,r){return e.author.kind==="human"&&(e.author.id===void 0||t?.id===void 0||e.author.id===t.id)?"you":r?et(e.author,r):e.author.kind==="agent"?e.author.id??"an agent":e.author.id??e.author.kind}function pi(e,t,r){return mt(e,t,{limit:3,said:[r],glance:!0}).map(a=>a.long?ht(a.stored,{markdown:a.markdown,most:100}):a.alone).join(" \xB7 ")}var yi=(e,t)=>le(e.schema,t),hn=(e,t)=>{let r=e.kindsKeptFrom(t);return e.schema.kinds.filter(a=>!e.modules.disabledKinds.has(a)&&!r.has(a))},mn=e=>st(hn(e.store,e.principal),e.views?.arrangement?.()?.order),gi=e=>{let t=new Set(e.views?.arrangement?.()?.hide??[]);return mn(e).filter(r=>!t.has(r))},vi=e=>e.charAt(0).toUpperCase()+e.slice(1);var C=D(Z(),1);function Di({context:e,children:t}){let{store:r,brand:a}=e;return re(r),dt(e.embedded?void 0:tt(a)),(0,C.jsxs)("div",{style:{...e.embedded?{}:{minHeight:"100vh"},display:"flex",flexDirection:"column",background:"var(--graview-ground)",color:"var(--graview-ink)",fontFamily:"var(--graview-font-body, system-ui)",fontSize:Ge,lineHeight:1.5},children:[e.embedded?null:(0,C.jsx)(yn,{context:e}),(0,C.jsx)("div",{style:{flex:1},children:t}),e.remembers?(0,C.jsx)("footer",{style:{borderTop:"1px solid var(--graview-edge)",padding:"14px 20px max(20px, calc(var(--graview-foot-room, 0px) + env(safe-area-inset-bottom, 0px)))",...xr},children:(0,C.jsx)("div",{style:{maxWidth:Qe,margin:"0 auto",display:"flex",gap:14,flexWrap:"wrap",alignItems:"center",justifyContent:"flex-end"},children:(0,C.jsxs)("span",{"data-testid":"remembered",children:["Remembered in this browser \xB7 ",(0,C.jsx)(Pt,{})]})})}):null]})}var pn=(0,N.createContext)(null);function yn({context:e}){let{store:t,brand:r,sceneHref:a="/",invariantContext:n}=e,o=F(),i=Q(),l=ge("/").replace(/\/$/,""),s=(0,N.useContext)(pn),u=s?.places===!1?[]:yt({store:t,principal:e.principal,views:e.views}),c=e.views?.arrangement?.(),d=`${o.pathname}${o.search}`,p=t.violations(n),f=p.length,y=St(p,"All rules hold");return(0,C.jsx)(C.Fragment,{children:(0,C.jsx)(Rt,{brand:r,name:r?.name??"Graview",description:r?.subtitle,home:{href:`${l}/`,go:()=>i("/"),current:o.pathname==="/"},faces:{scene:{label:it(c),current:!1,go:()=>window.location.assign(a)},pages:{label:lt(c),current:!0,go:()=>{}}},places:u,current:gt(u,d),reach:{href:m=>`${l}${m}`,go:m=>i(m.path)},...s?{onFind:s.onFind,find:s.find}:{findBox:(0,C.jsx)(gn,{context:e})},tools:(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(ie,{to:"/problems","data-testid":"standing-link","aria-label":y,title:y,style:{...vt,padding:f===0?0:"0 8px",textDecoration:"none",fontWeight:600,fontVariantNumeric:"tabular-nums",color:f===0?"var(--graview-ink-muted)":"var(--graview-warn)"},children:[(0,C.jsx)(bt,{tone:f===0?"var(--graview-good)":"var(--graview-warn)"}),f>0?(0,C.jsx)("span",{"aria-hidden":"true",children:f}):null]}),s?null:(0,C.jsx)(Sr,{context:e}),e.views?(0,C.jsx)(wt,{...e.signature?{signature:!0}:{}}):null]})})})}function Fi({context:e,style:t,children:r,...a}){let n=e.embedded||e.framed?"section":"main";return(0,C.jsx)(n,{style:{...Xe,...t},...a,children:r})}function ki({context:e,children:t,...r}){let a=`h${e.titleLevel??(e.framed&&!e.barAbove?1:2)}`;return(0,C.jsx)(a,{style:Er,"data-graview-page-title":"",...r,children:t})}function gn({context:e,narrowsLists:t=!0}){br("find");let r=F(),a=Q(),[n,o]=Ve(),i=r.pathname.split("/").filter(Boolean),l=t&&i.length===1&&Ee(e.store.schema,i[0])!==void 0,s=r.pathname==="/search",u=l||s?n.get("q")??"":"",c=l?`Narrow ${le(e.store.schema,Ee(e.store.schema,i[0])).toLowerCase()}\u2026`:"",[d,p]=(0,N.useState)(!0);(0,N.useLayoutEffect)(()=>{let R=m.current;if(!R||!c||typeof ResizeObserver>"u")return;let w=()=>{let x=getComputedStyle(R),M=document.createElement("canvas").getContext("2d");M&&(M.font=`${x.fontWeight} ${x.fontSize} ${x.fontFamily}`,p(M.measureText(c).width<=R.clientWidth-parseFloat(x.paddingLeft)-parseFloat(x.paddingRight)))};w();let L=new ResizeObserver(w);return L.observe(R),()=>L.disconnect()},[c]);let[f,y]=(0,N.useState)(u),m=(0,N.useRef)(null);(0,N.useEffect)(()=>{let R=w=>{if(w.defaultPrevented||w.altKey)return;let L=!w.shiftKey&&(w.metaKey||w.ctrlKey)&&w.key.toLowerCase()==="k",x=document.activeElement,M=x instanceof HTMLInputElement||x instanceof HTMLTextAreaElement||x instanceof HTMLSelectElement||x instanceof HTMLElement&&x.isContentEditable,H=w.key==="/"&&!w.metaKey&&!w.ctrlKey&&!M;if(!L&&!H)return;let _=m.current,B=_?.closest("[data-graview-embed]"),W=w.target,Se=W===document.body||W===document.documentElement;!_||!(Se||!B||W instanceof Node&&B.contains(W))||(w.preventDefault(),_.closest("[data-graview-app-bar]")?.querySelector('[data-testid="app-find-open"]')?.click(),requestAnimationFrame(()=>{_.focus(),_.select()}))};return document.addEventListener("keydown",R),()=>document.removeEventListener("keydown",R)},[]);let h=(0,N.useRef)(new Set([u]));(0,N.useEffect)(()=>{h.current.has(u)||(h.current=new Set([u]),y(u))},[u]);let S=R=>{if(y(R),h.current.add(R),l){let L=new URLSearchParams(n);R.trim()?L.set("q",R):L.delete("q"),o(L,{replace:!0});return}let w=R.trim()?`/search?${new URLSearchParams({q:R}).toString()}`:"/search";a(w,{replace:s})};return(0,C.jsx)("form",{role:"search","aria-label":l?"Narrow this list":"Find anything",style:{display:"flex",minWidth:0,flex:"1 1 auto"},onSubmit:R=>{R.preventDefault(),l&&f.trim()&&a(`/search?${new URLSearchParams({q:f}).toString()}`)},children:(0,C.jsx)("input",{ref:m,type:"search","data-testid":"nav-find",value:f,onChange:R=>S(R.target.value),placeholder:l?d?c:"Narrow\u2026":"Find\u2026","aria-keyshortcuts":"/ Meta+K Control+K","aria-label":l?"Narrow this list":"Find anything",style:{width:"100%",minWidth:0,height:30,padding:"0 var(--graview-bar-find-end, 10px) 0 10px",font:"inherit",fontSize:"0.875rem",color:"var(--graview-ink)",background:"var(--graview-ground)",border:"1px solid var(--graview-edge)",borderRadius:8}})})}export{Dr as a,Ee as b,Rn as c,wn as d,Ke as e,ri as f,ai as g,ni as h,oi as i,ii as j,xr as k,li as l,si as m,ui as n,ci as o,di as p,fi as q,hi as r,mi as s,pi as t,yi as u,hn as v,mn as w,gi as x,vi as y,Sr as z,ge as A,F as B,ha as C,Q as D,pa as E,La as F,Da as G,or as H,Fa as I,ln as J,ie as K,Ve as L,fn as M,Go as N,Xo as O,Di as P,pn as Q,Fi as R,ki as S,gn as T};
|
|
22
|
-
/*! Bundled license information:
|
|
23
|
-
|
|
24
|
-
react-router/dist/development/chunk-BV7QT456.mjs:
|
|
25
|
-
(**
|
|
26
|
-
* react-router v7.18.3
|
|
27
|
-
*
|
|
28
|
-
* Copyright (c) Remix Software Inc.
|
|
29
|
-
*
|
|
30
|
-
* This source code is licensed under the MIT license found in the
|
|
31
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
32
|
-
*
|
|
33
|
-
* @license MIT
|
|
34
|
-
*)
|
|
35
|
-
|
|
36
|
-
react-router/dist/development/index.mjs:
|
|
37
|
-
(**
|
|
38
|
-
* react-router v7.18.3
|
|
39
|
-
*
|
|
40
|
-
* Copyright (c) Remix Software Inc.
|
|
41
|
-
*
|
|
42
|
-
* This source code is licensed under the MIT license found in the
|
|
43
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
44
|
-
*
|
|
45
|
-
* @license MIT
|
|
46
|
-
*)
|
|
47
|
-
*/
|