graview 0.1.51 → 0.1.52
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.2EB7COX5.js +1 -0
- package/dist/preview/{chunk.K7ECYKZL.js → chunk.2K3YQJW3.js} +1 -1
- package/dist/preview/{chunk.PPZ2TOB5.js → chunk.2X3UZJWI.js} +1 -1
- package/dist/preview/{chunk.KRODTMGR.js → chunk.337JMOTL.js} +1 -1
- package/dist/preview/{chunk.5ZAK57JA.js → chunk.3FKP32RG.js} +2 -2
- package/dist/preview/{chunk.ACB4TD4W.js → chunk.3TME4BG3.js} +1 -1
- package/dist/preview/chunk.3ZQAPPJ5.js +18 -0
- package/dist/preview/{chunk.EA2NMVRE.js → chunk.4LI73QOY.js} +1 -1
- package/dist/preview/{chunk.UIWI4GKW.js → chunk.4VI3EYDL.js} +1 -1
- package/dist/preview/{chunk.OHDJYGH7.js → chunk.4ZLCMATU.js} +1 -1
- package/dist/preview/{chunk.GJQF7I22.js → chunk.52J42KR5.js} +1 -1
- package/dist/preview/{chunk.4EZFOZBA.js → chunk.5DDHFNZM.js} +1 -1
- package/dist/preview/chunk.5LWPNOJA.js +1 -0
- package/dist/preview/{chunk.FKJ3HIA5.js → chunk.5WU2UTP7.js} +1 -1
- package/dist/preview/{chunk.OPCBZNKF.js → chunk.63SRVTG2.js} +2 -2
- package/dist/preview/{chunk.CV55N3Y6.js → chunk.6BA6RUK7.js} +1 -1
- package/dist/preview/{chunk.WFHFWJ6E.js → chunk.6CY3EA6U.js} +1 -1
- package/dist/preview/{chunk.IBJBCZKG.js → chunk.6JERQFZI.js} +1 -1
- package/dist/preview/{chunk.IFL2MYTQ.js → chunk.6NIE3ILA.js} +1 -1
- package/dist/preview/{chunk.JMDKAP23.js → chunk.6QNBUBGD.js} +1 -1
- package/dist/preview/chunk.6YGRRXJB.js +2 -0
- package/dist/preview/{chunk.JX2C3HVD.js → chunk.7354O67H.js} +1 -1
- package/dist/preview/{chunk.MY5OXSS7.js → chunk.73EKJ4JN.js} +1 -1
- package/dist/preview/{chunk.CQPNDJAC.js → chunk.7EA7THSM.js} +1 -1
- package/dist/preview/{chunk.IUIDDNN3.js → chunk.7FMS57QO.js} +1 -1
- package/dist/preview/{chunk.3TVAE7LE.js → chunk.7FZY5E2U.js} +1 -1
- package/dist/preview/{chunk.R5R7CLOU.js → chunk.7IOC6U3C.js} +1 -1
- package/dist/preview/{chunk.JI2UVZUU.js → chunk.7KZ44FEU.js} +1 -1
- package/dist/preview/chunk.7OAXW7QF.js +1 -0
- package/dist/preview/chunk.7SNIX56B.js +1 -0
- package/dist/preview/{chunk.OJ64WTLW.js → chunk.7UJZP3YK.js} +2 -2
- package/dist/preview/{chunk.353CGK6C.js → chunk.7UXDIEPK.js} +1 -1
- package/dist/preview/{chunk.NQ26KMSQ.js → chunk.7XJ3XQZD.js} +1 -1
- package/dist/preview/chunk.AI2HBKVP.js +359 -0
- package/dist/preview/{chunk.KOBCLWPC.js → chunk.BDQ4FUKO.js} +1 -1
- package/dist/preview/{chunk.ESSENNHM.js → chunk.BHPZK4WJ.js} +2 -2
- package/dist/preview/{chunk.W2DKFQ6R.js → chunk.BJL6EL6B.js} +1 -1
- package/dist/preview/{chunk.UK5F3S2N.js → chunk.C4EPMV7O.js} +1 -1
- package/dist/preview/{chunk.DQNN5FE5.js → chunk.C4UNAJWC.js} +1 -1
- package/dist/preview/{chunk.Z7N3MJ36.js → chunk.C7EEYSAM.js} +1 -1
- package/dist/preview/{chunk.7RIFDWDF.js → chunk.CBGKWYGI.js} +1 -1
- package/dist/preview/chunk.CC7E6NUQ.js +1 -0
- package/dist/preview/chunk.CHMUL36A.js +1 -0
- package/dist/preview/{chunk.VICCAWAN.js → chunk.CV4QA4ZF.js} +1 -1
- package/dist/preview/{chunk.5ON3JSAK.js → chunk.D2T563AA.js} +1 -1
- package/dist/preview/{chunk.B7LBG4UP.js → chunk.D62V3TBW.js} +1 -1
- package/dist/preview/{chunk.2W45NM7Q.js → chunk.DC7M56NM.js} +2 -2
- package/dist/preview/{chunk.6KYWJXZR.js → chunk.DGWNVDZB.js} +1 -1
- package/dist/preview/{chunk.TBSPEO2L.js → chunk.DIS7JS7X.js} +1 -1
- package/dist/preview/{chunk.FYDDFOSD.js → chunk.DVLWSCIC.js} +1 -1
- package/dist/preview/{chunk.FU4YSVWX.js → chunk.DXZ5VYCQ.js} +1 -1
- package/dist/preview/{chunk.PMV6XVVZ.js → chunk.EHOEMVQP.js} +1 -1
- package/dist/preview/{chunk.B4PUI3GO.js → chunk.EIWTZC4A.js} +1 -1
- package/dist/preview/chunk.EME5HQ3H.js +1 -0
- package/dist/preview/{chunk.HVX7LFWR.js → chunk.FEBCIEI3.js} +1 -1
- package/dist/preview/{chunk.IE4ZJQV3.js → chunk.FJC6PMOG.js} +1 -1
- package/dist/preview/{chunk.2W2YVB6X.js → chunk.FJEXINFF.js} +1 -1
- package/dist/preview/{chunk.APFRPN5S.js → chunk.FLNYLE6S.js} +1 -1
- package/dist/preview/{chunk.2VJ52LGS.js → chunk.G7XKQNOL.js} +1 -1
- package/dist/preview/{chunk.SSAY4ITS.js → chunk.GL3YVGAP.js} +2 -2
- package/dist/preview/{chunk.K7RKWB2K.js → chunk.GZHEGKPF.js} +1 -1
- package/dist/preview/{chunk.KK46XLGU.js → chunk.HSGUXMAO.js} +1 -1
- package/dist/preview/{chunk.AZOW57MT.js → chunk.HST7BYFW.js} +1 -1
- package/dist/preview/{chunk.T3RTFTOZ.js → chunk.I2W7HSBU.js} +1 -1
- package/dist/preview/{chunk.XCQ7ZPR5.js → chunk.I43ONAEL.js} +1 -1
- package/dist/preview/{chunk.NVRK6A7T.js → chunk.INL4OZI7.js} +1 -1
- package/dist/preview/{chunk.ALCH5H7U.js → chunk.IVI3HRSF.js} +1 -1
- package/dist/preview/{chunk.XCCBUWMC.js → chunk.J263VQF5.js} +1 -1
- package/dist/preview/{chunk.TNL2BVCH.js → chunk.J2R55TM7.js} +1 -1
- package/dist/preview/{chunk.U7SNDY3F.js → chunk.J6IB2HUZ.js} +1 -1
- package/dist/preview/{chunk.Y5AMZBHA.js → chunk.JOWJNIWH.js} +2 -2
- package/dist/preview/{chunk.7GAC7U34.js → chunk.JQBP6QWQ.js} +1 -1
- package/dist/preview/chunk.JV7FLVUV.js +1 -0
- package/dist/preview/{chunk.SJKHVIHA.js → chunk.KFTZLNHY.js} +2 -2
- package/dist/preview/{chunk.NZDHXREL.js → chunk.KPUX27ZT.js} +1 -1
- package/dist/preview/chunk.KSJ3J5UN.js +1 -0
- package/dist/preview/chunk.LESRQN3Y.js +32 -0
- package/dist/preview/{chunk.CTOBNZLM.js → chunk.LSL25VXW.js} +1 -1
- package/dist/preview/{chunk.SRFZKDQ6.js → chunk.LTJYKQJG.js} +1 -1
- package/dist/preview/{chunk.32BOL7OL.js → chunk.LXJW2Z2M.js} +1 -1
- package/dist/preview/{chunk.WQLAIEWJ.js → chunk.M33LUF3Q.js} +1 -1
- package/dist/preview/{chunk.B6LKLV32.js → chunk.MBNZ2HK7.js} +1 -1
- package/dist/preview/{chunk.SJYQ72EC.js → chunk.MYKRJ4SV.js} +1 -1
- package/dist/preview/{chunk.UWFEXEY3.js → chunk.N7D5LKBI.js} +1 -1
- package/dist/preview/{chunk.AL7LFNOS.js → chunk.NAPTE3S6.js} +1 -1
- package/dist/preview/{chunk.MX3Y3LPH.js → chunk.NB6WN4DO.js} +1 -1
- package/dist/preview/{chunk.MN6WHE4B.js → chunk.NHIPVAGR.js} +1 -1
- package/dist/preview/chunk.NICCIJV4.js +1 -0
- package/dist/preview/{chunk.MRXQBEPQ.js → chunk.NQPNK6I5.js} +1 -1
- package/dist/preview/{chunk.MG3DMURZ.js → chunk.NVNQSZ43.js} +1 -1
- package/dist/preview/{chunk.CI4DEKPX.js → chunk.NWK4E7TJ.js} +1 -1
- package/dist/preview/{chunk.HASVT7IC.js → chunk.NZB5S5UO.js} +1 -1
- package/dist/preview/{chunk.WESWDXRW.js → chunk.OS3WZV6C.js} +1 -1
- package/dist/preview/{chunk.OU5TRY4N.js → chunk.OYRZ2DEI.js} +1 -1
- package/dist/preview/{chunk.4T67XS2D.js → chunk.P5PXWOHI.js} +1 -1
- package/dist/preview/{chunk.KYKHZZT7.js → chunk.PRCWGE7A.js} +1 -1
- package/dist/preview/{chunk.DUY27OJV.js → chunk.PXHBPLTQ.js} +1 -1
- package/dist/preview/chunk.PXVJBL2C.js +1 -0
- package/dist/preview/{chunk.V4GAOZAW.js → chunk.Q3XKNZQW.js} +1 -1
- package/dist/preview/chunk.Q5IAXTF5.js +25 -0
- package/dist/preview/{chunk.2534FLZZ.js → chunk.QPP3OJVR.js} +1 -1
- package/dist/preview/{chunk.GLTWLQ6L.js → chunk.QRCTTDDQ.js} +1 -1
- package/dist/preview/{chunk.CMEETACI.js → chunk.QWQBPJ4U.js} +1 -1
- package/dist/preview/chunk.QXCYAFRT.js +1 -0
- package/dist/preview/{chunk.ESK3UZRC.js → chunk.R6FHEEJ7.js} +1 -1
- package/dist/preview/{chunk.GMAXA5GV.js → chunk.R77TACXU.js} +1 -1
- package/dist/preview/{chunk.HFKGND5Q.js → chunk.R7CRV2FE.js} +1 -1
- package/dist/preview/{chunk.XWXYC3BJ.js → chunk.R7ZZJOJW.js} +1 -1
- package/dist/preview/{chunk.S32AGJ3W.js → chunk.RBWYXVUW.js} +1 -1
- package/dist/preview/{chunk.N5XONWU2.js → chunk.RMRO5JZX.js} +1 -1
- package/dist/preview/{chunk.FFCUZPTC.js → chunk.RWCWRJJC.js} +1 -1
- package/dist/preview/{chunk.CXC5FOIO.js → chunk.S4ZWBCYC.js} +1 -1
- package/dist/preview/{chunk.UVAWWCFW.js → chunk.SELLAVIQ.js} +1 -1
- package/dist/preview/{chunk.7NQROWHU.js → chunk.SM6HTPYF.js} +1 -1
- package/dist/preview/chunk.SZCZD2GM.js +1 -0
- package/dist/preview/{chunk.SPU3BVAO.js → chunk.T2Q3AAQI.js} +1 -1
- package/dist/preview/{chunk.BV6HKTHK.js → chunk.T6KKNWZT.js} +1 -1
- package/dist/preview/{chunk.76QSPWSJ.js → chunk.U6PCKJ26.js} +1 -1
- package/dist/preview/{chunk.FEIJ7ETK.js → chunk.UEPVA6IS.js} +1 -1
- package/dist/preview/{chunk.PYRJDTVS.js → chunk.ULAMIQ52.js} +1 -1
- package/dist/preview/chunk.UMS7XRPO.js +1 -0
- package/dist/preview/{chunk.RNOBACJ6.js → chunk.VGIWQNJB.js} +1 -1
- package/dist/preview/{chunk.3H7YIKKC.js → chunk.VGTEEANA.js} +1 -1
- package/dist/preview/{chunk.ZZODDJYK.js → chunk.VKOCD5CL.js} +1 -1
- package/dist/preview/{chunk.P4CLT32V.js → chunk.VOHRQXCF.js} +5 -5
- package/dist/preview/chunk.W5UJLKIT.js +1 -0
- package/dist/preview/{chunk.E2R6VFZX.js → chunk.WUEU3QBL.js} +1 -1
- package/dist/preview/{chunk.34HGT7HQ.js → chunk.WWUMSCYC.js} +1 -1
- package/dist/preview/{chunk.3MU37W5D.js → chunk.XLM4ONUB.js} +1 -1
- package/dist/preview/{chunk.TVWN5I4M.js → chunk.XPR3QFF4.js} +1 -1
- package/dist/preview/{chunk.BYY7YXBI.js → chunk.XZLKTOJE.js} +1 -1
- package/dist/preview/{chunk.LYIHPVDZ.js → chunk.Y37DXEHG.js} +1 -1
- package/dist/preview/{chunk.OW72XZF4.js → chunk.YKACMLLU.js} +1 -1
- package/dist/preview/{chunk.DEH6O3K4.js → chunk.YKXUDACI.js} +1 -1
- package/dist/preview/{chunk.7G4M2PX3.js → chunk.YUEOUV7G.js} +2 -2
- package/dist/preview/chunk.YYWLYVAW.js +1 -0
- package/dist/preview/chunk.Z2JMTRF4.js +1 -0
- package/dist/preview/{chunk.SKG4IHT5.js → chunk.Z2UFPOAN.js} +1 -1
- package/dist/preview/chunk.ZEKKIMKI.js +1 -0
- package/dist/preview/{chunk.RMMJQYJJ.js → chunk.ZK42LPF5.js} +1 -1
- package/dist/preview/{chunk.GRYS6VSF.js → chunk.ZZGXVYW2.js} +1 -1
- package/dist/preview/index.html +50 -50
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.3SBTQ66X.js +0 -1
- package/dist/preview/chunk.4N5R4K6O.js +0 -1
- package/dist/preview/chunk.AJAMTRZ3.js +0 -1
- package/dist/preview/chunk.AL45OI4A.js +0 -1
- package/dist/preview/chunk.CUB4IAUJ.js +0 -1
- package/dist/preview/chunk.CUN4VN42.js +0 -1
- package/dist/preview/chunk.ET3XJDPX.js +0 -1
- package/dist/preview/chunk.FG5ZFYYL.js +0 -1
- package/dist/preview/chunk.FTBH7CPZ.js +0 -1
- package/dist/preview/chunk.GYTVL6GR.js +0 -359
- package/dist/preview/chunk.JBR66TUP.js +0 -1
- package/dist/preview/chunk.JG2FGZF2.js +0 -18
- package/dist/preview/chunk.MMVCZOEX.js +0 -32
- package/dist/preview/chunk.NNUUD26E.js +0 -1
- package/dist/preview/chunk.QEQQXWYU.js +0 -1
- package/dist/preview/chunk.QPAJCRFB.js +0 -1
- package/dist/preview/chunk.S4CKKT3C.js +0 -1
- package/dist/preview/chunk.TMYGLXR6.js +0 -25
- package/dist/preview/chunk.UCUWEYKM.js +0 -1
- package/dist/preview/chunk.XZVPVAIS.js +0 -1
- package/dist/preview/chunk.Y2ZBVWII.js +0 -1
- package/dist/preview/chunk.Y3LTHEN7.js +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{A as zt,B as Re,C as ri,D as Ze,E as fe,F as Wn,G as De,H as Ue,I as ii,J as Kn,K as Le,L as oi,M as si,N as H,O as pt,P as wt,Q as li,R as vt,S as Qt,T as di,U as te,V as Zt,W as ie,X as Bn,a as V,b as ve,c as z,d as jt,e as Hn,f as In,g as ct,h as J,i as we,j as re,k as C,l as ee,m as U,n as qe,o as Se,p as _t,q as ke,r as ce,s as ti,t as ht,u as ni,v as Fn,w as Dn,x as Q,y as Fe,z as ai}from"./chunk.IE4ZJQV3.js";import{a as Qe,b as Yt,d as Z}from"./chunk.TVWN5I4M.js";import{a as Ie}from"./chunk.B7LBG4UP.js";import{b as Nn,c as Jr,d as ei}from"./chunk.7G4M2PX3.js";import{a as Qr,d as Zr,e as Xr}from"./chunk.UGFDSE37.js";import{a as Ur,c as Vr,f as jr,g as _r,i as zr,j as Yr}from"./chunk.NNUUD26E.js";import{a as Ut,b as Vt}from"./chunk.PXQVXBNG.js";import{a as Nr,b as Hr,c as Ir,d as On}from"./chunk.OJ64WTLW.js";import{b as Or}from"./chunk.GMAXA5GV.js";import{a as Fr,b as Dr,d as Gt,e as Wr,f as Kr,g as Br,j as qt}from"./chunk.IBJBCZKG.js";import{m as $r}from"./chunk.OPCBZNKF.js";import{a as hr,b as wr,c as vr,e as Tr,f as $n,h as Wt}from"./chunk.2VJ52LGS.js";import{d as br,e as xr,f as Pr,g as Cr,n as Ar,o as Rr,q as Lr,s as Dt}from"./chunk.JI2UVZUU.js";import{a as Ht,b as za,c as Ya,d as It,e as Qa}from"./chunk.CTOBNZLM.js";import{b as ar,c as mr,e as fr,f as Tn}from"./chunk.34HGT7HQ.js";import{a as Ln,b as gr}from"./chunk.TNL2BVCH.js";import{a as Kt,b as Bt,c as Mr,e as Er}from"./chunk.5ON3JSAK.js";import{a as dt,b as pr,e as ur}from"./chunk.3SBTQ66X.js";import{a as Mn}from"./chunk.3TVAE7LE.js";import{a as An,b as tr,c as nr}from"./chunk.JX2C3HVD.js";import{a as yr}from"./chunk.Z7N3MJ36.js";import{c as ir,d as or,e as sr,f as lr,k as yt,l as dr}from"./chunk.GLTWLQ6L.js";import{a as rr}from"./chunk.ACB4TD4W.js";import{r as Rn,s as cr}from"./chunk.OW72XZF4.js";import{b as Za,c as Xa,d as Ja,e as er,l as Ft}from"./chunk.OU5TRY4N.js";import{C as En,K as Gr,N as qr,e as ja,f as _a,j as Zi,u as Sr,v as kr}from"./chunk.GYTVL6GR.js";import{Aa as Nt,G as He,L as Ha,N as Ia,Pa as Va,R as Fa,T as q,U as Cn,X as Da,Y as Wa,aa as Ka,ba as de,ea as Ba,fa as Ga,ha as qa,la as lt,na as Ua,pa as Ot,r as Na,v as Ne}from"./chunk.TMYGLXR6.js";import{a as Oa}from"./chunk.SDO3U72B.js";import{$a as Pa,Dd as Pn,Ed as Ea,J as wa,Jd as $a,Nc as Ta,U as ft,Za as xa,ca as st,da as me,fa as ze,ga as Tt,hc as Aa,ia as Ge,ka as va,la as Sa,lb as bn,ma as Ye,mb as Ca,md as xn,oc as Ra,qc as La,rd as Et,sd as Ma,ud as $t,wb as Mt,xa as ka,ya as ba}from"./chunk.P4CLT32V.js";import{b as I}from"./chunk.AJZBJBMO.js";function ci(e,t,n={}){let a=e.graph.getNode(t);if(!a)return;let r=e.schema.tryDefinition(a.kind),i=l=>me(e.schema.tryDefinition(l.kind),l),d=new Map;for(let l of e.graph.allEdges()){let s=l.from===t?"out":l.to===t?"in":null;if(!s)continue;let c=s==="out"?l.to:l.from,m=e.graph.getNode(c);if(!m)continue;let g=(s==="out"?r:e.schema.tryDefinition(m.kind))?.edges?.[l.kind],u=s==="in"?g?.inverse??g?.description:g?.description,A=`${l.kind}|${s}|${u??""}`;(d.get(A)??(()=>{let G={edgeKind:l.kind,direction:s,...u?{description:u}:{},targets:[]};return d.set(A,G),G})()).targets.push({id:m.id,kind:m.kind,label:i(m)})}return{id:t,kind:a.kind,label:i(a),fields:Ja(yt(e.schema,e.graph,a),r),violations:bn(e.violations(n.context),[t]),actions:Mn(e,[t],{focus:t,...n.principal?{principal:n.principal}:{},...n.context?{context:n.context}:{}}),links:[...d.values()].map(l=>{let s=Za(l.targets.flatMap(c=>{let m=e.graph.getNode(c.id);return m?[m]:[]}),c=>e.schema.tryDefinition(c));return{...l,targets:[...l.targets].map(c=>s.has(c.id)?{...c,apart:s.get(c.id)}:c).sort((c,m)=>c.label.localeCompare(m.label))}})}}function Xe(e,t,n={}){return{kind:t,members:e.graph.nodesOfKind(t),actions:Mn(e,[],{kindSelection:[t],...n.principal?{principal:n.principal}:{},...n.context?{context:n.context}:{}})}}function pi(e,t){let n=(i,d)=>`${i}|${JSON.stringify(d)}`,a=new Map;for(let i of[...e.affordances,...e.withheld]){if(i.provider!=="invariant")continue;let d=n(i.mutation,i.args);a.has(d)||a.set(d,i.rank??Number.MAX_SAFE_INTEGER)}let r=Number.MAX_SAFE_INTEGER;return[...t].map((i,d)=>({repair:i,declared:d})).sort((i,d)=>(a.get(n(i.repair.mutation,i.repair.args??{}))??r)-(a.get(n(d.repair.mutation,d.repair.args??{}))??r)||i.declared-d.declared).map(i=>i.repair)}function Je(e){let t=e.schema.kinds.map(r=>({kind:r,plural:Ge(e.schema,r),count:e.graph.nodesOfKind(r).length})),n=new Map;for(let r of e.graph.allEdges()){let i=e.graph.getNode(r.from),d=e.graph.getNode(r.to);if(!i||!d)continue;let l=`${r.kind}|${i.kind}|${d.kind}`;n.set(l,(n.get(l)??0)+1)}let a=[];for(let{kind:r}of t){let i=e.schema.tryDefinition(r)?.edges??{};for(let[d,l]of Object.entries(i)){let s=l.to==="*"||l.to===void 0?(()=>{let c=[...n.keys()].filter(m=>m.startsWith(`${d}|${r}|`)).map(m=>m.split("|")[2]);return c.length>0?c:["*"]})():l.to;for(let c of s)a.push({edgeKind:d,from:r,to:c,...l.description?{description:l.description}:{},...l.inverse?{inverse:l.inverse}:{},count:n.get(`${d}|${r}|${c}`)??0})}}return{kinds:t,relations:a}}var We=I(He(),1);var St=I(He(),1);var Te=I(q(),1),Ji={problems:"Problems",search:"Search",map:"Connections",places:"Pictures","~draft":"A view drawn"},eo=e=>{try{return decodeURIComponent(e)}catch{return e}};function to(e,t,n={}){let{store:a}=e,r=a.schema,i=(n.base??"").replace(/\/$/,""),[d="/",l=""]=t.split("#")[0].split("?"),s=(b,E,k)=>({label:b,href:`${i}${E}`,path:E,...k?{current:k}:{}}),c=b=>{let E=n.registry?.sectionOf(b);return E?[E.path===void 0?{label:E.label}:s(E.label,E.path)]:[]},m=b=>n.registry?.sectionOf(b)?.label,x=b=>{let E=m(b);return E===void 0?{}:{section:E}},[g,u,...A]=d.split("/").filter(Boolean).map(eo);if(g===void 0)return{as:"home",label:"Home",trail:[s("Home","/",!0)]};if(g==="places"&&u!==void 0&&A.length===0){let b=new URLSearchParams(l).get("of"),E=new Set(Fe(a,e.principal)),k=e.views?.places()??[],P=k.find(K=>E.has(K.kind)&&K.as===u&&(!b||V(r,K.kind)===b));if(P){let K=jt(P.as,Et(P,k)?V(r,P.kind):void 0);return{as:"place",kind:P.kind,label:P.title,...x(P.kind),trail:[...c(P.kind),s(P.title,K,!0)]}}}let N=A.length===0?ve(r,g):void 0;if(N!==void 0){let b=s(Ge(r,N),`/${V(r,N)}`);if(u===void 0)return{as:"list",kind:N,label:b.label,...x(N),trail:[...c(N),{...b,current:!0}]};let E=a.graph.getNode(u),k=E&&E.kind===N?me(r.tryDefinition(N),E):"Nothing lives here";return{as:"record",kind:N,id:u,label:k,...x(N),trail:[...c(N),b,s(k,z(r,N,u),!0)]}}let G=Ji[g]??no((A.at(-1)??u??g).replace(/[-_]+/g," "));return{as:"page",label:G,trail:[s(G,d,!0)]}}var no=e=>e.charAt(0).toUpperCase()+e.slice(1),Gn=(0,St.createContext)(null);function ao(e){let t=fe(),n=Ze("/");return Z(e.context.store),to(e.context,`${t.pathname}${t.search}`,{registry:e.registry,base:n})}var ro={position:"absolute",width:1,height:1,margin:-1,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:0},ui={display:"flex",alignItems:"center",gap:6,minWidth:0},gi={display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,lineHeight:"24px"};function ut({context:e,style:t}){let n=(0,St.useContext)(Gn),a=(0,St.useContext)(wt);return vt(a??oo,"trail")||n?.registry?.without().has("trail")?null:(0,Te.jsx)(io,{root:n??{context:e,registry:void 0},context:e,...t?{style:t}:{}})}function io({root:e,context:t,style:n}){let a=ao(e);return a.trail.length<2?null:(0,Te.jsx)(so,{here:a,mark:a.as==="record"?{kind:a.kind,context:t}:void 0,...n?{style:n}:{},"data-testid":"page-trail"})}var oo={count:()=>0,place:()=>()=>{},subscribe:()=>()=>{}};function so({here:e,mark:t,style:n,...a}){let r=e.as==="record"?e.trail.length-2:-1;return(0,Te.jsx)("nav",{"aria-label":"You are here","data-graview-trail":"",style:{minWidth:0,...n},...a,children:(0,Te.jsx)("ol",{style:{...we,listStyle:"none",padding:0,display:"flex",alignItems:"center",gap:6,minWidth:0,overflow:"hidden"},children:e.trail.map((i,d)=>(0,Te.jsxs)("li",{style:i.current?ro:{...ui,flexShrink:d===e.trail.length-2?0:1,maxWidth:"100%"},...i.current?{"aria-current":"page"}:{},children:[d>0&&!i.current?(0,Te.jsx)("span",{"aria-hidden":"true",children:"\u203A"}):null,i.current?i.label:i.path!==void 0?(0,Te.jsxs)(H,{to:i.path,style:{...Se,...ui},...d===r?{"data-testid":"trail-list"}:{},children:[d===r&&t?(0,Te.jsx)(ce,{kind:t.kind,brand:t.context.brand,schema:t.context.store.schema,size:8}):null,(0,Te.jsx)("span",{style:gi,children:i.label})]}):(0,Te.jsx)("span",{style:gi,children:i.label})]},`${d}:${i.label}`))})})}var R=I(q(),1);function $e(e){let t=e.views;if(!t)return[];let n=new Set(Fe(e.store,e.principal));return t.places().filter(a=>n.has(a.kind))}function Xt(e,t){if(!t.over)return[t.kind];let n=new Set(Fe(e.store,e.principal));return t.over.filter(a=>a===t.kind||n.has(a))}var et=e=>`place:${e.kind}:${e.as}`;function ye(e,t){return jt(t.as,Et(t,e.views?.places()??[])?V(e.store.schema,t.kind):void 0)}function kt(e,t){let n=e.schema.tryDefinition(t);return e.graph.nodesOfKind(t).filter(a=>st(n,a))}function qn(e,t,n){let a=(i,d)=>Tt(e.schema,d,i),r=(typeof t=="string"?[t]:t).map(i=>a(kt(e,i).length,i)).join(" and ");return n?`${r} across ${a(kt(e,n).length,n)}`:r}function Un({context:e,place:t,chosen:n,filter:a}){let{store:r,views:i,invariantContext:d}=e,s=i?.resolve(t.kind,{cardinality:"many",fidelity:"full"},t.as)?.view,c=[...new Set(r.violations(d).flatMap(g=>g.nodeIds))],m=Xt(e,t).flatMap(g=>kt(r,g));if(!s)return null;let x=lo(r,m,a,c);return(0,R.jsx)(Rn,{kind:t.kind,view:t.title,children:(0,R.jsx)(s,{nodes:x,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1,...n&&n.length>0?{implicated:n}:{},...c.length>0?{flagged:c}:{}})})}function lo(e,t,n,a){let r=n?$t({filter:n}).filter??[]:[];return r.length===0?t:Wt(t,{filter:r},{schema:e.schema,graph:e.graph,flagged:new Set(a)}).nodes}function co({store:e,views:t,as:n,invariantContext:a}){Z(e);let r={store:e,views:t,...a?{invariantContext:a}:{}},i=t.places().find(d=>d.as===n);return i?(0,R.jsx)(Un,{context:r,place:i}):null}function po({context:e,kind:t}){let{store:n,views:a,invariantContext:r}=e,i=kt(n,t),d=n.schema.tryDefinition(t),l=Q(n,t),c=a?.resolve(t,{cardinality:"many",fidelity:"full"})?.view,m=[...new Set(n.violations(r).flatMap(A=>A.nodeIds))];if(c&&!lt(c))return(0,R.jsx)(Rn,{kind:t,children:(0,R.jsx)(c,{nodes:i,label:l,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1,...m.length>0?{flagged:m}:{}})});let x=a?.resolve(t,{cardinality:"one",fidelity:"summary"})?.view,g=8,u=i.slice(0,g);return(0,R.jsxs)("div",{"data-testid":"kind-sheet",style:x?{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gridAutoRows:"max-content",alignContent:"center",gap:12,padding:24}:{display:"flex",flexWrap:"wrap",alignContent:"center",justifyContent:"center",gap:10,padding:24},children:[u.map(A=>x?(0,R.jsx)(x,{node:A,fidelity:"summary",cardinality:"one",mode:"fullscreen",selected:!1,...m.includes(A.id)?{flagged:[A.id]}:{}},A.id):(0,R.jsx)("span",{style:{padding:"8px 14px",borderRadius:8,border:"1px solid var(--graview-edge-bright)",background:"var(--graview-ground)",color:"var(--graview-ink)"},children:me(d,A)},A.id)),i.length>g?(0,R.jsxs)("span",{style:{...C,alignSelf:"center",padding:"0 6px"},children:["+",i.length-g," more ",l.toLowerCase()]}):null]})}function Vn(e){let{store:t}=e,n=ai(e),a=$e(e),r=e.views?.arrangement?.()?.order??[],i=s=>{let c=s.name===void 0?-1:r.indexOf(`view:${s.name}`);return c>=0?c-r.length:n.indexOf(s.kind)},d=xn([...a].sort((s,c)=>i(s)-i(c))).filter(s=>!s.hidden),l=new Set(d.flatMap(s=>s.over??[s.kind]));return[...d.map(s=>({key:et(s),kind:s.kind,title:Ma(s,a,t.schema),to:ye(e,s),place:s})),...zt(e).filter(s=>!l.has(s)).map(s=>({key:`kind:${s}`,kind:s,title:Q(t,s),to:`/${V(t.schema,s)}`}))]}var mi=.72,uo=540,fi=16/10;function go(e){let t=(0,We.useRef)(null),[n,a]=(0,We.useState)(e);return(0,We.useLayoutEffect)(()=>{let r=t.current;if(!r||typeof ResizeObserver>"u")return;let i=()=>{let l=r.getBoundingClientRect().width;l>0&&a(s=>Math.abs(s-l)<.5?s:l)};i();let d=new ResizeObserver(i);return d.observe(r),()=>d.disconnect()},[]),{ref:t,width:n}}function mo(e){for(let t=e.parentElement;t;t=t.parentElement)if(/(auto|scroll)/.test(getComputedStyle(t).overflowY))return t;return null}function fo(e){let[t,n]=(0,We.useState)(()=>typeof IntersectionObserver>"u");return(0,We.useLayoutEffect)(()=>{let a=e.current;if(t||!a)return;let r=new IntersectionObserver(i=>{i.some(d=>d.isIntersecting)&&(r.disconnect(),n(!0))},{root:mo(a),rootMargin:"50% 0px"});return r.observe(a),()=>r.disconnect()},[t,e]),t}function jn({context:e,entry:t}){let{store:n,brand:a,principal:r}=e,{ref:i,width:d}=go(uo),l=fo(i),s=d/mi,c=kt(n,t.kind),m=n.schema.tryDefinition(t.kind),x=c.length===0?Xe(n,t.kind,{...r?{principal:r}:{},...e.invariantContext?{context:e.invariantContext}:{}}).actions.affordances[0]:void 0,g=t.place!==void 0;return(0,R.jsxs)(H,{to:t.to,"data-testid":g?"place-card":"kind-card",className:"graview-gallery-card",style:{...Se,display:"grid",gap:10,alignContent:"start",minWidth:0},children:[(0,R.jsxs)("span",{ref:i,"data-testid":g?"place-picture":"kind-picture","aria-hidden":"true",inert:!0,style:{display:"block",position:"relative",width:"100%",aspectRatio:`${fi}`,overflow:"hidden",borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",pointerEvents:"none"},children:[(0,R.jsx)("span",{style:{position:"absolute",left:0,top:0,width:s,height:s/fi,display:"grid",gridTemplateRows:"minmax(0, 1fr)",transform:`scale(${mi})`,transformOrigin:"0 0"},children:l?(0,R.jsx)(Gt.Provider,{value:null,children:t.place?(0,R.jsx)(Un,{context:e,place:t.place}):(0,R.jsx)(po,{context:e,kind:t.kind})}):null}),c.length===0?(0,R.jsx)("span",{"data-testid":"picture-empty",style:{position:"absolute",inset:0,display:"grid",placeContent:"center",justifyItems:"center",gap:2,padding:20,textAlign:"center"},children:(0,R.jsxs)("span",{style:{display:"grid",gap:2,padding:"10px 16px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-ground)",color:"var(--graview-ink)"},children:[(0,R.jsxs)("span",{style:{fontFamily:In,fontWeight:"var(--graview-weight-display)"},children:["No ",Q(n,t.kind).toLowerCase()," yet"]}),x?(0,R.jsxs)("span",{style:C,children:["Begin with \u201C",x.label,"\u201D"]}):null]})}):null]}),(0,R.jsxs)("span",{style:{display:"grid",gap:2,minWidth:0},children:[(0,R.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[g?null:(0,R.jsx)(ce,{kind:t.kind,brand:a,schema:n.schema,size:8}),(0,R.jsx)("span",{style:{fontFamily:In,fontSize:"var(--graview-text-heading)",fontWeight:"var(--graview-weight-display)",lineHeight:1.3,overflowWrap:"anywhere",textWrap:"balance"},children:t.title})]}),(0,R.jsxs)("span",{style:C,children:[t.place?qn(n,Xt(e,t.place),t.place.across):qn(n,t.kind),!g&&m?.description?` \xB7 ${m.description}`:null]})]})]})}var yi={display:"grid",gap:"32px 28px",gridTemplateColumns:"repeat(auto-fill, minmax(min(420px, 100%), 1fr))"},yo=`
|
|
2
|
-
.graview-gallery-card > span:first-child { transition: border-color 160ms ease, box-shadow 160ms ease; }
|
|
3
|
-
.graview-gallery-card:hover > span:first-child,
|
|
4
|
-
.graview-gallery-card:focus-visible > span:first-child { border-color: var(--graview-edge-bright); box-shadow: 0 1px 0 var(--graview-edge), 0 10px 30px -18px var(--graview-ink); }
|
|
5
|
-
`;function _n({context:e}){Z(e.store);let t=Vn(e);return t.length===0?null:(0,R.jsxs)("section",{style:yi,"data-testid":"gallery",children:[(0,R.jsx)("style",{children:yo}),t.map(n=>(0,R.jsx)(jn,{context:e,entry:n},n.key))]})}function zn({context:e}){let{store:t}=e;Z(t);let n=xn($e(e)).filter(r=>!r.hidden),a=Vn(e);return(0,R.jsxs)(te,{context:e,style:ct,children:[(0,R.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,R.jsx)("p",{style:we,children:n.length===0?"None of its own yet":`${n.length} ${n.length===1?"picture":"pictures"}`}),(0,R.jsx)(ie,{context:e,children:"Pictures"}),(0,R.jsx)("p",{style:re,children:n.length===0?"Nothing here has a picture of its own yet, so each kind is drawn as the scene draws it. Title a group view and it appears here by name.":"The ways this installation looks at what it holds \u2014 each one the same picture the scene shows, here as a page."})]}),a.length>0?(0,R.jsx)("div",{style:yi,"data-testid":"places",children:a.map(r=>(0,R.jsx)(jn,{context:e,entry:r},r.key))}):null]})}var ho={lede:!0},wo={lede:!1},vo={...re,textWrap:"pretty"};function So(e,t){if(t===void 0)return;let[n]=lr(sr([t]),dr(e.store,null,null,e.brand?{money:e.brand}:{}));return n?.t==="headline"&&!n.problem&&n.text.trim()!==""?n.text:void 0}function Yn({context:e}){let{store:t,principal:n}=e;Z(t);let a=Ue(),r=De(),[i]=pt(),d=decodeURIComponent(a.as??""),[l,s]=(0,We.useState)(null),c=i.get("of"),m=i.get("filter"),g=$e(e).find(P=>P.as===d&&(!c||V(t.schema,P.kind)===c));if(!g)return(0,R.jsxs)(te,{context:e,children:[(0,R.jsx)(ie,{context:e,children:"No picture is called that."}),(0,R.jsx)("p",{style:re,children:(0,R.jsx)(H,{to:"/places",style:qe,children:(0,R.jsx)(Qe,{children:"The pictures there are"})})})]});let u=Q(t,g.kind),A=e.views?.resolve(g.kind,{cardinality:"many",fidelity:"full"},g.as)?.view,N=A?.flows===!0,G=A?.creates!==!1,b=So(e,A?.lede),E=Xe(t,g.kind,{...n?{principal:n}:{},...e.invariantContext?{context:e.invariantContext}:{}}),k=G?E.actions.affordances.map(P=>({affordance:P,mutation:t.allMutations().find(K=>K.name===P.mutation)})).filter(P=>P.mutation!==void 0):[];return(0,R.jsxs)(te,{context:e,style:{...ct,gap:"var(--graview-space-6, 32px)"},children:[(0,R.jsxs)("header",{style:{display:"grid",gap:"var(--graview-space-2, 8px)"},children:[(0,R.jsx)(ut,{context:e}),(0,R.jsx)(ie,{context:e,children:g.title}),(0,R.jsx)("p",{style:vo,"data-testid":"place-lede",...b!==void 0?{"data-graview-lede":"headline"}:{},children:b??`${qn(t,Xt(e,g),g.across)}.`}),m&&!N?(0,R.jsxs)("p",{style:{...C,margin:0},"data-testid":"place-narrowed",children:[`Only those where ${m.split(",").map(P=>P.replace(":"," is ")).join(" and ")}. `,(0,R.jsx)(H,{to:`?${(()=>{let P=new URLSearchParams(i);return P.delete("filter"),P.toString()})()}`,style:{...U,...C},children:"Show all"})]}):null,(0,R.jsx)("p",{style:{...C,margin:0,display:"flex",flexWrap:"wrap",gap:"4px 16px"},children:Xt(e,g).map((P,K)=>(0,R.jsx)(H,{to:`/${V(t.schema,P)}`,style:{...qe,...C},...K===0?{"data-testid":"place-as-list"}:{},children:(0,R.jsxs)(Qe,{children:["All ",(P===g.kind?u:Q(t,P)).toLowerCase()," as a list"]})},P))})]}),(0,R.jsx)("div",{"data-testid":"place-lens","data-flows":N?"":void 0,...N?{}:{role:"group","aria-label":g.title,tabIndex:0},style:N?{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",maxWidth:"100%"}:{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",maxWidth:"100%",borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)"},onClick:P=>{let K=P.target?.closest("[data-graview-pick]"),ae=K?.getAttribute("data-graview-pick"),ue=K?.getAttribute("data-graview-joins");if(ue)try{let _=JSON.parse(ue);if(Array.isArray(_)&&_.every(ge=>typeof ge=="string")){P.preventDefault(),s({at:et(g),ids:_});return}}catch{}if(!ae)return;let oe=t.graph.getNode(ae);oe&&(P.preventDefault(),r(z(t.schema,oe.kind,ae)))},children:(0,R.jsx)(Br.Provider,{value:b!==void 0?ho:wo,children:(0,R.jsx)(Un,{context:e,place:g,filter:m,...l?.at===et(g)?{chosen:l.ids}:{}})})}),k.length>0?(0,R.jsx)("div",{style:{maxWidth:760,display:"grid",gap:40},"data-testid":"place-creators",children:k.map(({affordance:P,mutation:K})=>(0,R.jsxs)("section",{style:{...ee,display:"grid",gap:14},children:[(0,R.jsx)("h2",{style:J,children:K.title??K.name}),K.description?(0,R.jsx)("p",{style:{...C,margin:0,maxWidth:"58ch"},children:K.description}):null,(0,R.jsx)(Ie,{store:t,mutation:K,prefilled:P.args,open:P.open,label:P.label,...n?{principal:n}:{}})]},P.id))}):null]})}function ko(e,t=document){let n=Ut(e);if(!n)return null;let a=[t,...[...t.querySelectorAll("[data-worker-view]")].flatMap(r=>r.shadowRoot?[r.shadowRoot]:[])];for(let r of a)for(let i of r.querySelectorAll("[id], [data-section]")){let d=i.getAttribute("data-section")??i.id;if(d===e||Ut(d)===n)return i}for(let r of a)for(let i of r.querySelectorAll("h1, h2, h3, h4, h5, h6, [role=heading]"))if(Ut(i.textContent??"")===n)return i;return null}function hi(e,t={}){if(typeof document>"u"||typeof requestAnimationFrame>"u")return()=>{};let n=t.frames??120,a=0,r=()=>{let i=ko(e,t.root??document);if(i){i.hasAttribute("tabindex")||i.setAttribute("tabindex","-1"),i.scrollIntoView?.({block:"start"}),i.focus({preventScroll:!0});return}n-=1,n>0&&(a=requestAnimationFrame(r))};return a=requestAnimationFrame(()=>{a=requestAnimationFrame(r)}),()=>cancelAnimationFrame(a)}var B=I(He(),1);var Jt=I(He(),1);var tt=I(q(),1);function wi({context:e}){return de()?(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)(bo,{context:e}),(0,tt.jsx)(Vr,{face:"pages",on:e.quickAsk??!0})]}):null}function bo({context:e}){let{store:t}=e,n=de(),{pathname:a}=fe(),r=(0,Jt.useRef)(n?.setSelection);return r.current=n?.setSelection,(0,Jt.useEffect)(()=>{let i=r.current;if(!i)return;let[,d,l]=a.split("/"),s=(()=>{if(d==="places"){let m=e.views?.places().find(x=>x.as===decodeURIComponent(l??""));return m?[Ne(m.kind)]:[]}let c=d?ve(t.schema,d):void 0;return c&&l?[decodeURIComponent(l)]:c?[Na(c)]:[]})();i(c=>c.length===s.length&&c.every((m,x)=>m===s[x])?c:s)},[a]),null}var be=I(He(),1);var Si=I(Zi(),1);var pe=I(q(),1);var xo=Nt(Oa(()=>(__graviewPreload(import.meta.url,["./chunk.TVWN5I4M.js","./chunk.7G4M2PX3.js","./chunk.UGFDSE37.js","./chunk.NNUUD26E.js","./chunk.OJ64WTLW.js","./chunk.GMAXA5GV.js","./chunk.IBJBCZKG.js","./chunk.NQ26KMSQ.js","./chunk.GJQF7I22.js","./chunk.SPU3BVAO.js","./chunk.OPCBZNKF.js","./chunk.UK5F3S2N.js","./chunk.2VJ52LGS.js","./chunk.JI2UVZUU.js","./chunk.CTOBNZLM.js","./chunk.34HGT7HQ.js","./chunk.TNL2BVCH.js","./chunk.NZDHXREL.js","./chunk.TBSPEO2L.js","./chunk.5ON3JSAK.js","./chunk.3SBTQ66X.js","./chunk.SSAY4ITS.js","./chunk.MB7LKKUD.js","./chunk.WVUJXDXZ.js","./chunk.GLTWLQ6L.js","./chunk.ACB4TD4W.js","./chunk.XCQ7ZPR5.js","./chunk.MY5OXSS7.js","./chunk.NVRK6A7T.js","./chunk.FKJ3HIA5.js","./chunk.GZHZLJBF.js","./chunk.OW72XZF4.js","./chunk.OJGHDWI6.js","./chunk.KRODTMGR.js","./chunk.VICCAWAN.js","./chunk.OU5TRY4N.js","./chunk.CQPNDJAC.js","./chunk.GYTVL6GR.js","./chunk.TMYGLXR6.js","./chunk.SDO3U72B.js","./chunk.P4CLT32V.js","./chunk.SLBWPVIY.js","./chunk.AJZBJBMO.js"]),import("./chunk.HFKGND5Q.js")).then(e=>({default:e.TakeBack}))));function Po({context:e,docked:t,at:n,...a}){let{store:r}=e,i=Z(r),[d]=(0,be.useState)(()=>r.batches().length),l=(0,be.useRef)(!1);return l.current||=i>0||!t&&d>0,l.current?(0,pe.jsx)(be.Suspense,{fallback:null,children:(0,pe.jsx)(xo,{context:e,docked:t,at:n,since:d,...a})}):null}function Co(e,t,n){let{store:a,principal:r,embedded:i}=e;(0,be.useEffect)(()=>{if(!n)return;let d=l=>{if(!Xr(l))return;let s=l.target,c=s instanceof Node&&t.current?.contains(s),m=s===document.body||s===document.documentElement||s===document;if(!(!c&&!(m&&!i))&&Qr(a,r)){l.preventDefault();try{Zr(a,r)}catch{}}};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[a,r,i,t,n])}function ki({context:e,registry:t,root:n,children:a}){let r=(0,be.useMemo)(li,[]),i=t?.without()??new Set;return Co(e,n,!i.has("undo")),(0,pe.jsxs)(wt.Provider,{value:r,children:[(0,pe.jsx)(Ao,{context:e,placed:r,without:i}),a]})}function Ao({context:e,placed:t,without:n}){let[a,r]=(0,be.useState)(!1);(0,be.useLayoutEffect)(()=>r(!0),[]);let i=vt(t,"find"),d=vt(t,"undo"),l=fe(),s=kr();if(!a)return null;let c=l.pathname.split("/").filter(Boolean),x=(c.length===1?ve(e.store.schema,c[0]):void 0)!==void 0;return(0,pe.jsxs)(pe.Fragment,{children:[!i&&!n.has("find")&&s?(0,Si.createPortal)((0,pe.jsx)(vi,{context:e,narrowsLists:x}),s.slot):null,!i&&!n.has("find")&&!s?(0,pe.jsx)("div",{"data-testid":"face-find-bar",style:{display:"flex",alignItems:"center",padding:"8px 16px",borderBottom:"1px solid var(--graview-edge)",background:"var(--graview-bar)",minWidth:0},children:(0,pe.jsx)(vi,{context:e,narrowsLists:x})}):null,!d&&!n.has("undo")?(0,pe.jsx)(Po,{context:e,docked:!0,at:l.pathname+l.search}):null,s?.own&&!n.has("undo")?(0,pe.jsx)(ri,{context:e,own:s.own}):null]})}function vi({context:e,narrowsLists:t}){return(0,pe.jsx)(wt.Provider,{value:null,children:(0,pe.jsx)(Bn,{context:e,narrowsLists:t})})}var X=I(He(),1);var xe=I(q(),1),Ro=500,Lo=10;function en(e){return e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA"||e.tagName==="SELECT"?!0:e.tagName==="INPUT"&&!["button","submit","reset","checkbox","radio","image","file","color","range"].includes(e.type):!1}function To(e){let t=typeof getSelection=="function"?getSelection():null;return t!==null&&!t.isCollapsed&&t.containsNode(e,!0)}function bi(e){let t=e.closest('a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])');if(t)return t;let n=document.activeElement;return n instanceof HTMLElement&&n!==document.body?n:null}function xi({context:e,root:t,children:n}){return de()===null?(0,xe.jsx)(xe.Fragment,{children:n}):(0,xe.jsx)(Mo,{context:e,root:t,children:n})}function Mo({context:e,root:t,children:n}){let{setMenuAt:a}=Ka(),{store:r}=e,i=r.schema,d=De(),{pathname:l,search:s}=fe(),c=Ze("/").replace(/\/$/,""),m=(0,X.useCallback)((w,f)=>e.views?.places().find(L=>L.as===w&&(f===null||L.kind===f)),[e.views]),x=(0,X.useCallback)((w,f)=>{let[L="",$,ne]=w.split("/").filter(Boolean).map(p=>{try{return decodeURIComponent(p)}catch{return p}});if(ne!==void 0)return null;if(L==="places"&&$!==void 0){let p=m($,new URLSearchParams(f).get("of"));return p?{face:"pages",place:p.as,about:[Ne(p.kind)],title:p.title}:null}let Y=ve(i,L);return Y?$===void 0?{face:"pages",about:[Ne(Y)],title:Ge(i,Y)}:r.graph.getNode($)?{face:"pages",on:$,about:[$]}:null:null},[i,r,m]),g=(0,X.useCallback)(w=>{let f=w.href;try{let L=new URL(f,location.href);if(L.origin===location.origin&&(c===""||L.pathname===c||L.pathname.startsWith(`${c}/`))){let $=x(L.pathname.slice(c.length),L.search);if($)return{...$,href:f}}}catch{}return{face:"pages",about:[],href:f}},[c,x]),u=(0,X.useCallback)(()=>x(l,s)??{face:"pages",about:[]},[x,l,s]),A=(0,X.useCallback)(w=>{let f=u(),L=w.closest("[data-graview-field]")?.getAttribute("data-graview-field");if(L&&f.on!==void 0&&w.closest("[data-graview-pick], a[href]")===null)return{...f,field:L};let $=w.closest("[data-graview-act]")?.getAttribute("data-graview-act");if($)return{...f,act:$};let ne=w.closest("a[href]"),Y=w.closest("[data-graview-listed]"),p=[w.closest("[data-graview-pick]")?.getAttribute("data-graview-pick"),Y&&(!ne||Y.contains(ne)&&ne.classList.contains("graview-spec-item-link"))?Y.getAttribute("data-graview-listed"):null].map(j=>j?r.graph.getNode(j):void 0).find(Boolean);if(p)return{face:"pages",on:p.id,about:[p.id],href:`${c}${z(i,p.kind,p.id)}`};if(ne)return g(ne);let T=w.closest("[data-graview-record]")?.getAttribute("data-graview-record");return T&&r.graph.getNode(T)?{face:"pages",on:T,about:[T]}:f},[u,g,r,i,c]),N=(0,X.useCallback)(w=>{let f=t.current;if(f===null||!f.contains(w)||en(w)||w.closest("[data-graview-popover]"))return null;let L=A(w);return{face:"pages",on:L.on,about:L.about??[],field:L.field,place:L.place,href:L.href,act:L.act,element:bi(w)}},[A,t]),G=(0,X.useCallback)((w,f,L)=>{let $=A(w);a({...$,x:Math.round(f),y:Math.round(L),returnTo:bi(w)})},[A,a]),b=(0,X.useCallback)(w=>{let f=w.getBoundingClientRect();G(w,f.left+Math.min(16,f.width/2),Math.min(f.bottom,f.top+36))},[G]),E=(0,X.useRef)(0),k=(0,X.useRef)(null),P=(0,X.useRef)(!1),K=()=>{k.current&&clearTimeout(k.current.timer),k.current=null};(0,X.useEffect)(()=>K,[]),(0,X.useEffect)(()=>{let w=f=>{if(f.defaultPrevented||!(f.key==="ContextMenu"||f.key==="F10"&&f.shiftKey))return;let L=t.current,$=f.target instanceof Element?f.target:null,ne=$===null||$===document.body||$===document.documentElement,Y=L!==null&&$!==null&&L.contains($);if(!Y&&!(ne&&document.querySelector("[data-graview-face='pages']")===L)||en($)||$?.closest("[data-graview-popover]"))return;f.preventDefault(),E.current=Date.now();let p=Y&&$ instanceof HTMLElement?$:L?.querySelector("[data-graview-page-title], main h1, main")??null;p&&b(p)};return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[t,b]),(0,X.useEffect)(()=>{let w=t.current;if(!w)return;let f=L=>{let $=L.detail;$&&a({...$,face:"pages"})};return w.addEventListener(Cn,f),()=>w.removeEventListener(Cn,f)},[t,a]);let ae=(0,X.useMemo)(()=>w=>{if(w.face!=="pages")return null;let f=[],L=w.on===void 0?void 0:r.graph.getNode(w.on),$=w.place===void 0?void 0:e.views?.places().find(se=>se.as===w.place),ne=L?void 0:w.about.length===1&&w.about[0].startsWith("aggregate:")&&!$?Eo(w.about[0]):void 0,Y=L?z(i,L.kind,L.id):$?ye(e,$):ne?`/${V(i,ne)}`:void 0,p=Y!==void 0&&l===Y.split("?")[0];Y!==void 0&&!p&&f.push({id:"open",label:"Open",run:()=>d(Y)});let T=Y!==void 0?`${c}${Y}`:w.href;T!==void 0&&f.push({id:"open-in-a-new-tab",label:"Open in a new tab",run:()=>void window.open(T,"_blank","noopener")});let j=L?`#focus=${encodeURIComponent(L.id)}`:$?`#focus=${encodeURIComponent(Ne($.kind))}&view=${encodeURIComponent($.as)}`:ne?`#focus=${encodeURIComponent(Ne(ne))}`:void 0;if(j!==void 0&&(e.overview||!e.embedded)){let se=e.overview;f.push({id:"in-the-scene",label:"Show in the scene",run:()=>se?se(j):location.assign(`${e.sceneHref??"/"}${j}`)})}return L===void 0&&w.href===void 0&&f.push({id:"find",label:"Find\u2026",run:()=>{let se=t.current?.querySelector('[data-testid="nav-find"]')??document.querySelector('[data-testid="nav-find"]');se&&se.offsetParent!==null?se.focus():d("/search")}}),f.length>0?{id:"pages",items:f}:null},[r,i,e,l,c,d,t]),ue=(0,X.useMemo)(()=>w=>{if(w.face!=="pages"||w.field===void 0||w.on===void 0)return null;let f=r.graph.getNode(w.on),L=w.element?.closest("[data-graview-field]")??t.current?.querySelector(`[data-graview-field="${CSS.escape(w.field)}"]`);return!f||!(L instanceof HTMLElement)||!L.hasAttribute("data-graview-editable")?null:{id:"field",at:"start",items:[{id:"change-field",label:`Change \u201C${va(i.tryDefinition(f.kind),w.field)}\u201D`,run:()=>L.click()}]}},[r,i,t]),oe=_r(),_=mr(),ge=Or(),Ke=(0,X.useCallback)((w,f)=>{l===ye(e,w).split("?")[0]&&d(f?ye(e,f):"/")},[l,e,d]),Pe=Yr(Ke),Ce=(0,X.useMemo)(()=>[ue,ge,ae,...Pe?[Pe]:[],..._?[_]:[],...oe?[oe]:[]],[ue,ge,ae,Pe,_,oe]);return(0,xe.jsxs)(cr,{sections:Ce,children:[(0,xe.jsx)("div",{"data-graview-menu-ground":"",style:{display:"contents"},onContextMenu:w=>{let f=w.target;w.shiftKey||en(f)||To(f)||(w.preventDefault(),!f.closest("[data-graview-popover]")&&(Date.now()-E.current<700||(w.clientX===0&&w.clientY===0&&f instanceof HTMLElement?b(f):G(f,w.clientX,w.clientY))))},onPointerDown:w=>{if(P.current=!1,w.pointerType==="mouse"||!w.isPrimary)return;let f=w.target;if(en(f)||f.closest("[data-graview-choose], [data-graview-popover]"))return;K();let{clientX:L,clientY:$}=w;k.current={x:L,y:$,timer:setTimeout(()=>{k.current=null,P.current=!0,E.current=Date.now(),G(f,L,$)},Ro)}},onPointerMove:w=>{let f=k.current;f&&Math.hypot(w.clientX-f.x,w.clientY-f.y)>Lo&&K()},onPointerUp:K,onPointerCancel:K,onClickCapture:w=>{P.current&&(P.current=!1,w.preventDefault(),w.stopPropagation())},children:n}),(0,xe.jsx)($o,{openAt:b,readyAt:N}),(0,xe.jsx)(zr,{placement:"page"}),(0,xe.jsx)(fr,{})]})}function Eo(e){let t=e.slice(10).split("+");return t.length===1&&t[0]?t[0]:void 0}function $o({openAt:e,readyAt:t}){return(0,xe.jsx)("span",{"data-graview-menu-home":"",tabIndex:-1,onFocus:n=>{if(n.target!==n.currentTarget)return;let a=n.currentTarget.closest("[data-graview-face]"),r=a?.querySelector("[data-graview-page-title]")??a?.querySelector("main h1, main")??null;r&&(r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),r.focus({preventScroll:!0}))},style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:(0,xe.jsx)(Ur,{placement:"menu",openActs:e,aimAt:t})})}var D=I(q(),1);function Pi(e,t){return t==="*"?{label:"anything",path:null}:{label:Q(e,t),path:`/${V(e.schema,t)}`}}function Oo({context:e,relation:t}){let{store:n}=e,a=Pi(n,t.from),r=Pi(n,t.to),i=d=>d.path?(0,D.jsx)(H,{to:d.path,style:{...Se,fontWeight:550},children:d.label}):(0,D.jsx)("span",{children:d.label});return(0,D.jsxs)("li",{"data-testid":"relation","data-relation":t.edgeKind,style:{display:"grid",gridTemplateColumns:"30px minmax(0, 1fr) auto",gap:12,alignItems:"baseline"},children:[(0,D.jsx)(jr,{edgeKind:t.edgeKind,...e.brand?.kit?{kit:e.brand.kit}:{}}),(0,D.jsxs)("span",{style:{display:"grid",gap:1},children:[(0,D.jsxs)("span",{children:[i(a)," ",(0,D.jsxs)("span",{style:C,"data-graview-speaks-ids":"",children:[ze(t.edgeKind)," \u2192"]})," ",i(r)]}),t.description||t.inverse?(0,D.jsxs)("span",{style:C,children:[t.description?Re(t.description):null,t.description&&t.inverse?" \xB7 ":null,t.inverse?`from the other end, ${t.inverse}`:null]}):null]}),r.path?(0,D.jsx)(H,{to:`${r.path}?with=${encodeURIComponent(t.edgeKind)}`,style:{...U,...C,fontVariantNumeric:"tabular-nums",display:"inline-block",minWidth:24,minHeight:24,textAlign:"center"},title:`The ${r.label.toLowerCase()} that have this`,children:t.count}):(0,D.jsx)("span",{style:{...C,fontVariantNumeric:"tabular-nums"},children:t.count})]})}function Ci({context:e,heading:t=!0}){let{store:n}=e,a=new Set(Fe(n,e.principal)),r=Je(n).relations.filter(i=>a.has(i.from)&&(i.to==="*"||a.has(i.to)));return r.length===0?null:(0,D.jsxs)("section",{style:{...ee,display:"grid",gap:12},"data-testid":"kind-map",children:[t?(0,D.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,D.jsx)("h2",{style:J,children:(0,D.jsx)(H,{to:"/map",style:Se,children:"Connections"})}),(0,D.jsx)("span",{style:C,children:r.length===1?"1 relation":`${r.length} relations`})]}):null,(0,D.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:10},children:r.map(i=>(0,D.jsx)(Oo,{context:e,relation:i},`${i.edgeKind}|${i.from}|${i.to}`))})]})}function Qn({context:e}){let{store:t}=e;Z(t);let n=new Set(Fe(t,e.principal)),a=Je(t),r=a.relations.filter(i=>n.has(i.from));return(0,D.jsxs)(te,{context:e,children:[(0,D.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,D.jsx)("p",{style:we,children:r.length===0?"No relations":`${r.length} ${r.length===1?"relation":"relations"}`}),(0,D.jsx)(ie,{context:e,children:"Connections"}),(0,D.jsx)("p",{style:re,children:r.length===0?"Nothing here is declared to relate to anything else yet.":"The kinds this installation holds, and the relations declared between them \u2014 each in the declaration's own words, with how many of it there are."})]}),(0,D.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:"6px 18px"},"data-testid":"map-kinds",children:a.kinds.filter(i=>n.has(i.kind)).map(i=>(0,D.jsxs)("li",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[(0,D.jsx)(ce,{kind:i.kind,brand:e.brand,schema:t.schema,size:7}),(0,D.jsx)(H,{to:`/${V(t.schema,i.kind)}`,style:U,children:i.plural}),(0,D.jsx)("span",{style:C,children:i.count})]},i.kind))}),(0,D.jsx)(Ci,{context:e,heading:!1})]})}function Ai({context:e}){let n=[...de()?.robots.values()??[]].filter(r=>r.mode==="asking"&&r.say);if(n.length===0)return null;let{store:a}=e;return(0,D.jsxs)("section",{style:{...ee,display:"grid",gap:10},"data-testid":"seat-questions",children:[(0,D.jsx)("h2",{style:J,children:n.length===1?"The seat asked something":`The seat asked ${n.length} things`}),(0,D.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:8},children:n.map(r=>{let i=r.at?a.graph.getNode(r.at):void 0;return(0,D.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,D.jsx)("span",{children:r.say}),i?(0,D.jsxs)(H,{to:z(a.schema,i.kind,i.id),style:{...U,...C},children:[me(a.schema.tryDefinition(i.kind),i)," \u2192"]}):null]},r.participant)})})]})}var W=I(q(),1);function Zn({context:e}){let{principal:t}=e,{store:n,brand:a,invariantContext:r}=e;Z(n);let i=n.violations(r),d=`${i.length===1?"A rule is broken":"Rules are broken"} \u2014 see what, and what would fix it`,l=[...n.log.all()].slice(-5).reverse(),c=zt(e).map(b=>({kind:b,members:n.graph.nodesOfKind(b).filter(E=>st(n.schema.tryDefinition(b),E))})),m=c.filter(b=>b.members.length>0),x=c.map(b=>({entry:b,creator:n.allMutations().find(E=>(E.creates??[]).includes(b.kind)&&n.permits({name:E.name,args:{}},e.principal).ok)})).find(b=>b.creator!==void 0),g=m.length===0?"Nothing here yet.":`${m.map(b=>Tt(n.schema,b.kind,b.members.length)).join(", ").replace(/, ([^,]*)$/," and $1")}.`,u=e.views?.homeView?.(),A=n.schema.kinds.some(b=>n.graph.nodesOfKind(b).length>0);if(u&&A){let b=a?.subtitle&&a.subtitleDrawn!==!1?(0,W.jsx)("p",{style:{...C,margin:0},"data-testid":"app-subtitle",children:a.subtitle}):null,E=u[Symbol.for("graview.home-blocks")]===!0;return(0,W.jsx)(te,{context:e,style:ct,children:(0,W.jsxs)("div",{style:{display:"grid",gap:12},"data-testid":"home-view",children:[E?null:b,i.length>0?(0,W.jsx)(H,{to:"/problems",style:{...U,color:"var(--graview-warn)"},children:d}):null,(0,W.jsx)(Kr.Provider,{value:E?b:null,children:(0,W.jsx)(Zt,{when:Ot(u),children:(0,W.jsx)(u,{cardinality:"many",fidelity:"full",mode:"fullscreen",selected:!1})})})]})})}let N=new Set(Fe(n,e.principal)),G=Je(n).relations.filter(b=>N.has(b.from)&&(b.to==="*"||N.has(b.to)));return(0,W.jsxs)(te,{context:e,style:ct,children:[(0,W.jsxs)("header",{style:{display:"grid",gap:12},children:[a?.subtitle&&a.subtitleDrawn!==!1?(0,W.jsx)("p",{style:{...C,margin:0},"data-testid":"app-subtitle",children:a.subtitle}):null,(0,W.jsx)(ie,{context:e,"data-testid":"standing",children:g}),(0,W.jsxs)("p",{style:{...re,display:"grid",gap:4},"data-testid":"standing-card",children:[m.length===0&&x?(0,W.jsxs)("span",{children:["Begin with \u201C",x.creator?.title??x.creator?.name,"\u201D, under"," ",(0,W.jsx)(H,{to:`/${V(n.schema,x.entry.kind)}`,style:U,children:Q(n,x.entry.kind)}),"."]}):null,i.length===0?(0,W.jsx)("span",{children:"All rules hold."}):(0,W.jsx)(H,{to:"/problems",style:{...U,color:"var(--graview-warn)"},children:d})]})]}),(0,W.jsx)(_n,{context:e}),(0,W.jsxs)("section",{style:{...ee,display:"grid",gap:14},"data-testid":"kinds",children:[(0,W.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,W.jsx)("h2",{style:J,children:"What is here"}),G.length>0?(0,W.jsx)(H,{to:"/map",style:{...qe,...C,marginLeft:"auto"},"data-testid":"map-link",children:(0,W.jsxs)(Qe,{children:["Connections \xB7 ",G.length===1?"1 relation":`${G.length} relations`]})}):null]}),(0,W.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:"8px 10px"},children:c.map(({kind:b,members:E})=>(0,W.jsx)("li",{style:{maxWidth:"100%"},children:(0,W.jsxs)(H,{to:`/${V(n.schema,b)}`,style:{...Se,flexWrap:"wrap",gap:8,padding:"6px 14px 6px 10px",borderRadius:8,border:"1px solid var(--graview-edge-bright)",background:"var(--graview-panel)"},children:[(0,W.jsx)(ce,{kind:b,brand:a,schema:n.schema,size:7}),(0,W.jsx)("span",{style:{fontWeight:550,overflowWrap:"anywhere"},children:Q(n,b)}),(0,W.jsx)("span",{style:{...C,fontVariantNumeric:"tabular-nums"},children:E.length===0?"none yet":ft(E.length)})]})},b))})]}),l.length>0?(0,W.jsxs)("section",{style:{...ee,display:"grid",gap:10},children:[(0,W.jsx)("h2",{style:J,children:"Recently"}),(0,W.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6},children:l.map(b=>(0,W.jsxs)("li",{style:C,children:[(0,W.jsx)("span",{style:{color:"var(--graview-ink)"},children:b.intent})," \u2014 ",ht(b,t,{graph:n.graph,schema:n.schema,...e.seats?{seats:e.seats}:{},...e.people?{people:e.people}:{}})]},b.id))})]}):null]})}var Me=I(He(),1);var nt=I(q(),1);function tn({context:e,withheld:t,style:n,testId:a}){let r=de(),i=La(t,e.signIn??r?.signIn);return i?(0,nt.jsx)("p",{style:{...n,margin:0},children:(0,nt.jsx)("button",{type:"button","data-testid":"sign-in",onClick:()=>i.run(),style:ke,children:i.label})}):t.length===0?null:(0,nt.jsx)("ul",{style:{...n,margin:0,padding:0,listStyle:"none",display:"grid",gap:4},...a?{"data-testid":a}:{},children:t.map(d=>(0,nt.jsxs)("li",{style:C,children:[(0,nt.jsx)("s",{children:d.label})," \u2014 ",d.refusal.message]},d.id))})}var M=I(q(),1);function Xn({context:e}){let{store:t,brand:n,principal:a,invariantContext:r}=e;Z(t);let[i]=pt(),d=i.get("q")??"",l=typeof r?.today=="string"?r.today:void 0,s=Lr(t,d,{...a?{principal:a}:{},places:$e(e),flagged:new Set(t.violations(r).flatMap(u=>u.nodeIds)),...l?{today:l}:{},limit:200}),c=s.hits.filter(u=>u.about==="node"),m=s.hits.filter(u=>u.about==="kind"||u.about==="place"||u.about==="rule"),x=[...new Set(c.map(u=>u.kind))],g=d.trim();return(0,M.jsxs)(te,{context:e,children:[(0,M.jsx)("style",{children:_t}),(0,M.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,M.jsx)("p",{style:we,children:"Search"}),(0,M.jsx)(ie,{context:e,"data-testid":"search-heading",children:g.length===0?"Find anything by its name":s.hits.length===0?(0,M.jsxs)(M.Fragment,{children:["Nothing here is called \u201C",g,"\u201D."]}):(0,M.jsxs)(M.Fragment,{children:[No(t,s.byKind)," for \u201C",g,"\u201D"]})}),g.length>0?(0,M.jsxs)("p",{style:{...C,margin:0},"data-testid":"search-searched",children:[Dt(t.schema,s.searched),s.conditions.filter(u=>u.key!=="is"&&u.admittedBy.length<s.searched.kinds.length).map(u=>(0,M.jsxs)("span",{children:[" ",u.key,":",u.value," narrows"," ",u.admittedBy.length===0?"nothing here":u.admittedBy.map(A=>Q(t,A).toLowerCase()).join(" and "),"."]},`${u.key}:${u.value}`))]}):(0,M.jsxs)("p",{style:re,children:["Type in the box above. Words find the start of words in names and in what each record says;"," ",(0,M.jsx)("code",{children:"done:false"})," and the like narrow as a list does, and ",(0,M.jsx)("code",{children:"is:any"})," includes what is past."]})]}),m.length>0?(0,M.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6},"data-testid":"search-named",children:m.map(u=>(0,M.jsx)("li",{"data-testid":"search-hit","data-about":u.about,children:u.about==="kind"?(0,M.jsxs)(H,{to:`/${V(t.schema,u.kind)}`,style:U,children:[u.label,u.count>0?(0,M.jsxs)("span",{style:C,children:[" \xB7 ",u.count," match"]}):null]}):u.about==="place"?(0,M.jsxs)(H,{to:ye(e,u),style:U,children:["Go to ",u.title]}):u.about==="rule"?(0,M.jsxs)(H,{to:"/problems",style:U,children:["The rule \u201C",u.label,"\u201D"]}):null},`${u.about}:${u.about==="rule"?u.name:u.about==="place"?u.as:u.kind}`))}):null,x.map(u=>(0,M.jsxs)("section",{className:"graview-list",style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",minWidth:0},"data-testid":"search-group","data-kind":u,children:[(0,M.jsxs)("h2",{className:"graview-group-head",style:{alignItems:"center"},children:[(0,M.jsx)(ce,{kind:u,brand:n,schema:t.schema,size:8}),(0,M.jsx)(H,{to:`/${V(t.schema,u)}?${new URLSearchParams({q:g}).toString()}`,style:U,"data-testid":"search-kind-link",children:Q(t,u)}),(0,M.jsx)("span",{children:s.byKind[u]})]}),(0,M.jsx)("ul",{className:"graview-rows",children:c.filter(A=>A.kind===u).map(A=>(0,M.jsxs)("li",{"data-testid":"search-hit","data-about":"node",className:"graview-row",children:[(0,M.jsxs)(H,{to:z(t.schema,u,A.id),className:"graview-row-title",...A.label.length>60?{title:A.label}:{},children:[A.flagged?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)("span",{role:"img","aria-label":"Breaks a rule:",style:{color:"var(--graview-warn)"},children:"\u26A0"})," "]}):null,A.label]}),A.apart||!A.current?(0,M.jsx)("span",{className:"graview-row-glance",children:[A.apart,A.current?"":"past"].filter(Boolean).join(" \xB7 ")}):null,(0,M.jsx)(nn,{why:A.why})]},A.id))})]},u)),g.length>0?(0,M.jsx)(Ho,{asked:g}):null,g.length>0&&s.hits.length===0?(0,M.jsx)(Li,{store:t,kinds:s.searched.kinds,words:s.words,...a?{principal:a}:{},...r?{invariantContext:r}:{}}):null]})}function nn({why:e}){return e.strength==="near"?(0,M.jsxs)("span",{style:C,"data-testid":"search-why","data-near":"",children:["Near \u201C",e.asked,"\u201D",e.field==="label"?"":` \u2014 ${e.reading}: ${e.fragment}`]}):e.field==="label"?null:(0,M.jsxs)("span",{style:C,"data-testid":"search-why",children:[e.reading,": ",e.fragment]})}function No(e,t){let n=Object.entries(t).map(([a,r])=>`${r} ${r===1?Ye(e.schema.tryDefinition(a),a):Q(e,a).toLowerCase()}`);return n.length===0?"Found":n.length===1?Re(n[0]):Re(`${n.slice(0,-1).join(", ")} and ${n[n.length-1]}`)}function Ri(e,t,n={}){let a=[];for(let r of t){let i=Xe(e,r,{...n.principal?{principal:n.principal}:{},...n.invariantContext?{context:n.invariantContext}:{}});for(let d of an(e,r,i.actions.affordances))a.some(l=>l.mutation.name===d.mutation.name)||a.push(d)}return a}function an(e,t,n){let a=e.schema.tryDefinition(t)?.fieldRoles?.label,r=[];for(let i of n){let d=e.allMutations().find(c=>c.name===i.mutation);if(!d||!d.creates?.includes(t)||r.some(c=>c.mutation.name===d.name))continue;let l=yr(d.input).map(c=>c.name),s=l.includes("label")?"label":a&&l.includes(a)?a:void 0;!s||i.args[s]!==void 0||r.push({kind:t,affordance:i,mutation:d,arg:s})}return r}function Li({store:e,kinds:t,words:n,principal:a,invariantContext:r}){let i=Ri(e,t,{...a?{principal:a}:{},...r?{invariantContext:r}:{}});return i.length===0||n.trim().length===0?null:(0,M.jsx)("div",{style:{display:"grid",gap:24},"data-testid":"search-to-create",children:i.map(({kind:d,affordance:l,mutation:s,arg:c})=>(0,M.jsxs)("section",{style:{...ee,display:"grid",gap:14},children:[(0,M.jsxs)("h2",{style:J,children:[Re(Sa(Ye(e.schema.tryDefinition(d),d)))," called \u201C",n,"\u201D"]}),(0,M.jsx)(Ie,{store:e,mutation:s,prefilled:l.args,open:l.open,initial:{[c]:n},...a?{principal:a}:{}})]},`${l.id}|${n}`))})}function Ho({asked:e}){let t=de();return t?(0,M.jsx)(Io,{asked:e,desk:t.aiDesk}):null}function Io({asked:e,desk:t}){return _a(t)?(0,M.jsx)("p",{style:{margin:0},children:(0,M.jsxs)("button",{type:"button","data-testid":"search-ask",onClick:a=>ja(t,{pointed:{about:[]},asked:e,returnTo:a.currentTarget}),style:{...U,font:"inherit",padding:0,border:0,background:"transparent",cursor:"pointer",textAlign:"start"},children:["Ask: \u2018",e,"\u2019"]})}):null}var h=I(q(),1),Mi=8,Ei=40;function Fo(e,t){let n=t?.fields?.shape??{},a=Object.keys(n).find(r=>ba(n[r])&&ka(e[r]));return a===void 0?void 0:e[a]}function Jn({context:e}){let t=Ue(),n=ve(e.store.schema,t.slug??"");return n?(0,h.jsx)($i,{context:e,kind:n}):(0,h.jsx)(te,{context:e,children:(0,h.jsx)(ie,{context:e,children:"No such kind of thing here."})})}function $i({context:e,kind:t,opening:n,row:a,layout:r="list",description:i,bare:d}){let{store:l,brand:s,invariantContext:c}=e;Z(l);let[m,x]=pt(),g=`list-${(0,Me.useId)().replace(/:/g,"")}`,u=l.schema.tryDefinition(t),A=Pa(m.get("archived")),N=l.graph.nodesOfKind(t,{archived:A}),G=Je(l).relations.filter(o=>o.from===t||o.to===t),b=new Set(l.violations(c).flatMap(o=>o.nodeIds)),E=Cr(l.schema,Pr(l.schema,xr(l.schema,t))),k=G.map(o=>o.edgeKind),P=qo(m,E,k),K=["sort","filter","group","q","by","with","past","archived",...k].some(o=>m.has(o)),ae=N.length>=Ei,ue=u?.fieldRoles?.when,oe=e.views?.arrangement?.()?.lists?.[t],_=wr(oe),ge=hr(oe?.group),Ke=Go(ae,ue),Pe=n??(_?{...Ke,..._}:Ke),Ce=K?P.arrangement:$n(Pe,E).arrangement,w=_?.sort,f=Ce.sort&&w?.then&&Ce.sort.by===w.by&&Ce.sort.direction===w.direction?{...Ce,sort:w}:Ce,L=Ar(f.query??""),$=[...f.filter??[],...L.conditions].some(o=>o.key==="is"&&(o.value==="past"||o.value==="any"))||br(u,[...f.filter??[],...L.conditions]),ne=$||!u?.lifecycle?f:{...f,filter:[...f.filter??[],{key:"is",value:"current"}]},Y=new Map,p=Wt(N,ne,{schema:l.schema,graph:l.graph,flagged:b,...typeof c?.today=="string"?{today:c.today}:{},read:(o,y)=>{let O=Y.get(o.id);return O||Y.set(o.id,O=yt(l.schema,l.graph,o)),O[y]}}),T=ge&&f.group?.by===ge.by&&!f.group.bucket?E.groups.find(o=>o.key===ge.by):void 0,j=ge&&T&&(T.type==="choice"||T.type==="boolean")?vr(p.groups,ge,{type:T.type,...T.options?{options:T.options}:{}}):p.groups.map(o=>({...o,closed:!1})),se=new Set((m.get("open")??"").split(",").filter(Boolean)),Wi=!!f.query||(f.filter??[]).some(o=>o.key===ge?.by),aa=o=>T?.type==="boolean"?o==="1"?"true":"false":o,ra=o=>o.closed&&!Wi&&!se.has(aa(o.key)),Ki=o=>{let y=new URLSearchParams(m),O=new Set(se);O.has(o)?O.delete(o):O.add(o),O.size>0?y.set("open",[...O].join(",")):y.delete("open"),x(y,{replace:!0})},Ae=p.nodes,rt=u?.lifecycle&&!$?N.filter(o=>st(u,o)):N,ia=N.length-rt.length,sn=f.group?.by??null,Bi=o=>{let y=new URLSearchParams(m);for(let le of["sort","filter","group","q","by","with","past","archived",...G.map(Rt=>Rt.edgeKind)])y.delete(le);let O=Tr(o);for(let le of["sort","filter","group","q","archived"])O[le]&&y.set(le,O[le]);![...y.keys()].some(le=>["sort","filter","group","q"].includes(le))&&(n||_||ae||ue)&&y.set("sort",""),x(y)},{principal:it}=e,ln=Xe(l,t,{...it?{principal:it}:{},...e.invariantContext?{context:e.invariantContext}:{}}),Be=ln.actions.affordances.map(o=>({affordance:o,mutation:l.allMutations().find(y=>y.name===o.mutation)})).filter(o=>o.mutation!==void 0),Gi=ln.actions.withheld,dn=()=>new Set(Ae.length===0?Be.map(({mutation:o})=>o.name):[]),[cn,oa]=(0,Me.useState)(()=>({kind:t,open:dn()}));cn.kind!==t&&oa({kind:t,open:dn()});let sa=o=>(cn.kind===t?cn.open:dn()).has(o),la=(o,y)=>oa(O=>{let le=new Set(O.open);return y?le.add(o):le.delete(o),{kind:O.kind,open:le}}),da=`begin-${(0,Me.useId)().replace(/:/g,"")}`,ca=L.words&&Ae.length===0?Object.fromEntries(an(l,t,ln.actions.affordances).map(o=>[o.mutation.name,o.arg])):{},je=Q(l,t),xt=e.views?.lookup(t,{cardinality:"one",fidelity:"glyph"}),pn=xt!==void 0&&!lt(xt)?xt:void 0,un=(f.group?.bucket??"day")==="day"?f.group?.by:void 0,gn=(f.filter??[]).map(o=>o.key),qi=gn.filter(o=>gn.indexOf(o)===gn.lastIndexOf(o)&&/choice|boolean/.test(E.filters.find(y=>y.key===o)?.type??"")),mn=o=>{let y={...u?.computed?yt(l.schema,l.graph,o):o};un&&!String(y[un]).includes("T")&&delete y[un];for(let O of qi)delete y[O];return y},pa=o=>rr(u?.fields?.shape?.[o])?.type==="enum",Pt=o=>{let y=me(u,o);if(a)return(0,h.jsxs)("li",{"data-testid":"record-row","data-graview-record":o.id,style:{minWidth:0},...Sn(o.id),children:[vn(o,y),a(o,{label:y,href:z(l.schema,t,o.id),flagged:b.has(o.id),glance:ni(mn(o),u,y)})]},o.id);if(pn){let kn=qt(xt,o,l.graph),Yi=Object.fromEntries(Object.entries(mn(o)).filter(([Qi])=>!kn?.fields.has(Qi))),ha=kn?Fn(Yi,u,kn.title??y,pa):[];return(0,h.jsxs)("li",{"data-testid":"record-row","data-graview-record":o.id,style:{position:"relative",display:"flex",flexWrap:"wrap",alignItems:"baseline",columnGap:16,rowGap:2,paddingBlock:10,borderTop:"1px solid var(--graview-edge)"},...Sn(o.id),children:[vn(o,y),(0,h.jsx)("div",{style:{flex:"1 1 14rem",minWidth:0},children:(0,h.jsx)(pn,{node:o,cardinality:"one",fidelity:"glyph",mode:"fullscreen",selected:!1,...b.has(o.id)?{flagged:[o.id]}:{}})}),ha.length>0?(0,h.jsx)("span",{style:{...C,flex:"0 1 auto",minWidth:0,overflowWrap:"anywhere"},"data-testid":"record-glance",children:(0,h.jsx)(Dn,{runs:ha})}):null,(0,h.jsx)(jo,{to:z(l.schema,t,o.id),label:b.has(o.id)?`${y} \u2014 implicated in a problem`:y})]},o.id)}let O=Fn(mn(o),u,y,pa),le=O.length>0,Rt=L.words?Rr(u,o,L.words):void 0,fa=ae?void 0:or(o,u),Lt=Fo(o,u),ya=(0,h.jsxs)(H,{to:z(l.schema,t,o.id),className:"graview-row-title",...y.length>60?{title:y}:{},children:[b.has(o.id)?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("span",{role:"img","aria-label":"Breaks a rule:",style:{color:"var(--graview-warn)"},children:"\u26A0"})," "]}):null,y]});return(0,h.jsxs)("li",{className:"graview-row","data-graview-record":o.id,...Sn(o.id),children:[vn(o,y),fa?(0,h.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,minWidth:0},children:[(0,h.jsx)(dt,{as:"thumb",file:fa}),ya]}):ya,le||Lt?(0,h.jsxs)("span",{className:"graview-row-glance",children:[(0,h.jsx)(Dn,{runs:O}),le&&Lt?" \xB7 ":null,Lt?(0,h.jsx)(Kt,{address:Lt}):null]}):null,Rt?(0,h.jsx)(nn,{why:Rt}):null]},o.id)},fn=$e(e).filter(o=>o.kind===t&&!o.hidden),ua=oe?.filters,Ui=(f.filter??[]).some(o=>o.key!=="is"||o.value!=="any"),Vi=!!(f.sort||f.group||f.query||Ui),ji=rt.length>=Mi||K&&Vi,Oe=f.sort?E.sorts.find(o=>o.key===f.sort.by):void 0,yn=Oe?.type==="date"||Oe!==void 0&&Oe.key===ue,ga=ae&&!p.grouped&&Oe&&(Oe.about==="label"||Oe.type==="text"||yn)?o=>{let y=Oe.about==="label"?me(u,o):o[Oe.key];if(typeof y!="string"||y.length===0)return yn?"No date":"#";if(yn)return y.slice(0,4);let O=y.trim().charAt(0).toLocaleUpperCase();return/\p{L}/u.test(O)?O:"#"}:void 0,_e=ga?Ae.reduce((o,y)=>{let O=ga(y);return o.at(-1)?.key===O?o.at(-1).nodes.push(y):o.push({key:O,nodes:[y]}),o},[]):void 0,ma=p.grouped&&sn?j.flatMap(o=>ra(o)?[]:o.nodes):_e&&_e.length>1?_e.flatMap(o=>o.nodes):Ae,hn=(0,Me.useMemo)(()=>ma.map(o=>o.id),[ma.map(o=>o.id).join(`
|
|
6
|
-
`)]),Ee=Nr(hn),wn=(0,Me.useId)(),gt=(it?l.permittedMutations(it):l.permittedMutations()).some(o=>{let y=o.subject?.kinds;return y!==void 0&&(y==="*"||y.includes(t))}),vn=(o,y)=>gt?(0,h.jsx)("span",{className:"graview-choose-at",children:(0,h.jsx)("input",{...Ee.boxProps(o.id,y),onPointerEnter:On,onFocus:On})}):null,Sn=o=>gt?{"data-graview-choose":o}:{},_i=(0,Me.useCallback)(o=>{Ee.choose(o),requestAnimationFrame(()=>{let y=Ee.list.current;((o[0]===void 0?null:y?.querySelector(`[data-graview-choose-box="${CSS.escape(o[0])}"]`))??y)?.focus({preventScroll:!0})})},[Ee]),ot=r==="grid"?{margin:0,padding:0,listStyle:"none",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(min(100%, 15rem), 1fr))",alignItems:"start",gap:12}:a||pn?{margin:0,padding:0,listStyle:"none",display:"grid",gap:a&&r==="list"?6:0}:void 0,Ct=ot?void 0:"graview-rows",mt=o=>`list-at-${o.replace(/[^\p{L}\p{N}]/gu,"_")}`,At=G.map(o=>{let y=o.from===t?o.to:o.from,O=o.from===t?o.description:o.inverse??o.description;return{relation:o,far:y,words:O}}),zi=new Set(At.map(o=>(o.words??"").toLowerCase()).filter((o,y,O)=>o&&O.indexOf(o)!==y));return(0,h.jsxs)(d?Bo:te,{context:e,children:[(0,h.jsxs)("div",{style:{display:"grid",gap:12},children:[(0,h.jsxs)("header",{style:{display:"grid",gap:4},children:[d?null:(0,h.jsx)(ut,{context:e}),(0,h.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",columnGap:10,rowGap:4,minWidth:0},children:[(0,h.jsx)(ce,{kind:t,brand:s,schema:l.schema,size:8}),(0,h.jsx)(ie,{context:e,children:je}),Be.length>0?(0,h.jsx)("span",{style:{marginLeft:"auto",display:"flex",flexWrap:"wrap",columnGap:14,rowGap:8},"data-testid":"beginnings-open",children:Be.map(({affordance:o,mutation:y})=>(0,h.jsx)(Uo,{name:y.name,title:y.title??y.name,panel:`${da}-${y.name}`,open:sa(y.name),onOpen:O=>la(y.name,O)},o.id))}):null]}),Ae.length>0?(0,h.jsx)(Jr,{place:"here",to:[{label:`Skip to the ${Ae.length===1?Ye(u,t):`${Ae.length} ${je.toLowerCase()}`}`,testid:"records",go:()=>{let o=document.querySelector(`[data-graview-skip-target="${CSS.escape(wn)}"]`);Nn(o?.querySelector('[data-graview-choose-box][tabindex="0"]')??o)}},...rt.length>0?[{label:"Skip to arranging them",testid:"arranging",go:()=>{let o=document.querySelector(`[data-graview-skip-target="${CSS.escape(wn)}"]`)?.parentElement?.querySelector('[role="group"][aria-label="Arrange"]');Nn(o?.querySelector('button[data-testid$="-add"], button[data-testid$="-all"]')??o)}}]:[]]}):null,i??u?.description?(0,h.jsx)("p",{style:re,children:i??u?.description}):null,At.length>0||fn.length>0?(0,h.jsxs)("p",{style:{...C,margin:0,display:"flex",flexWrap:"wrap",columnGap:18,rowGap:2},"data-testid":"kind-related",children:[At.length>0?(0,h.jsxs)("span",{"data-testid":"kind-relations",children:["Related:"," ",At.map(({relation:o,far:y,words:O},le)=>(0,h.jsxs)("span",{"data-relation":o.edgeKind,children:[le>0?(0,h.jsx)("span",{"aria-hidden":"true",children:" \xB7 "}):null,y==="*"?Re(O??ze(o.edgeKind)):(0,h.jsx)(H,{to:`/${V(l.schema,y)}`,style:U,title:Q(l,y),children:O&&zi.has(O.toLowerCase())?`${Re(O)}: ${Q(l,y).toLowerCase()}`:Re(O??Q(l,y))})]},`${o.edgeKind}|${o.from}|${o.to}`))]}):null,fn.length>0?(0,h.jsxs)("span",{"data-testid":"kind-pictures",children:["Also as:"," ",fn.map((o,y)=>(0,h.jsxs)("span",{children:[y>0?(0,h.jsx)("span",{"aria-hidden":"true",children:" \xB7 "}):null,(0,h.jsx)(H,{to:ye(e,o),style:U,children:o.title})]},et(o)))]}):null]}):null]}),Be.length>0?(0,h.jsx)("div",{style:{display:"contents"},"data-testid":"beginnings",children:Be.map(({affordance:o,mutation:y})=>{let O=!!(ca[y.name]&&Ae.length===0);return(0,h.jsx)(Vo,{name:y.name,id:`${da}-${y.name}`,description:y.description,open:sa(y.name),onClose:()=>la(y.name,!1),children:(0,h.jsx)(Ie,{store:l,mutation:y,prefilled:o.args,open:o.open,...O?{initial:{[ca[y.name]]:L.words}}:{},...e.principal?{principal:e.principal}:{}},O?`${y.name}|${L.words}`:y.name)},o.id)})}):null,P.dropped.length>0?(0,h.jsxs)("p",{style:{...C,margin:0},"data-testid":"list-dropped",children:["This link asked for ",P.dropped.join(", "),", which ",je.toLowerCase()," cannot be arranged by; the rest is shown."]}):null,rt.length>0?(0,h.jsx)($r,{schema:l.schema,graph:l.graph,kind:t,arrangement:f,onChange:Bi,kept:{shown:Ae.length,of:rt.length},noun:{one:Ye(u,t),many:je.toLowerCase()},...ji?{}:{allow:!1},...ua?{filters:ua}:{},offers:E,chips:{nodes:rt,flagged:b,...typeof c?.today=="string"?{today:c.today}:{}},query:e.framed===!0&&e.barAbove!==!0}):null,(0,h.jsx)("style",{children:_t}),gt?(0,h.jsx)("style",{children:Hr+Ko}):null,(0,h.jsx)("div",{className:"graview-list","data-graview-skip-target":wn,...gt?{...Ee.listProps,ref:Ee.list,tabIndex:-1,"data-graview-choosable":"","aria-label":Ee.chosen.length>0?`${je}, ${Ee.chosen.length} chosen`:je,role:"group"}:{},children:Ae.length===0&&L.words?(0,h.jsxs)("p",{style:re,"data-testid":"none-yet",children:["Nothing here is called \u201C",L.words,"\u201D."," ",(0,h.jsx)("span",{style:C,"data-testid":"list-searched",children:Dt(l.schema,{kinds:[t],past:$})})," ",(0,h.jsx)(H,{to:"?",style:U,children:"Show every one"})]}):Ae.length===0?(0,h.jsxs)("p",{style:re,"data-testid":"none-yet",children:[f.filter?.length||f.query?"None of them.":"None yet",!f.filter?.length&&!f.query&&Be.length>0?` \u2014 the first one starts above, with \u201C${Be[0]?.mutation.title??Be[0]?.mutation.name}\u201D.`:!f.filter?.length&&!f.query?".":"",f.filter?.length||f.query?(0,h.jsxs)(h.Fragment,{children:[" ",(0,h.jsx)(H,{to:"?",style:U,children:"Show every one"})]}):null]}):p.grouped&&sn?(0,h.jsx)("div",{style:{display:"grid",gap:"1rem"},"data-testid":"records","data-grouped":sn,children:j.map(o=>{if(!o.closed)return(0,h.jsxs)("section",{style:{display:"grid",gap:0},"data-testid":"list-group",children:[(0,h.jsxs)("h2",{className:"graview-group-head",children:[o.label," ",(0,h.jsx)("span",{children:o.nodes.length})]}),(0,h.jsx)("ul",{style:ot,className:Ct,"data-graview-rows":"",children:o.nodes.map(Pt)})]},o.key||"-");let y=ra(o),O=`${g}-${mt(o.key||"none")}`;return(0,h.jsxs)("section",{style:{display:"grid",gap:0},"data-testid":"list-group","data-closed":y?"shut":"open",children:[(0,h.jsx)("h2",{className:"graview-group-head",children:(0,h.jsxs)("button",{type:"button",className:"graview-group-toggle","aria-expanded":!y,"aria-controls":O,"data-testid":"list-group-toggle",onClick:()=>Ki(aa(o.key)),children:[(0,h.jsx)("span",{"aria-hidden":"true",children:y?"\u25B8":"\u25BE"}),o.label," ",(0,h.jsxs)("span",{children:["\xB7 ",o.nodes.length]}),(0,h.jsxs)("span",{style:Do,children:[" ",o.nodes.length===1?Ye(u,t):je.toLowerCase()]})]})}),(0,h.jsx)("ul",{id:O,style:y?{...ot,display:"none"}:ot,className:Ct,"data-graview-rows":"",hidden:y,children:y?null:o.nodes.map(Pt)})]},o.key||"-")})}):_e&&_e.length>1?(0,h.jsxs)("div",{style:{display:"grid",gap:14},"data-testid":"records","data-sectioned":Oe?.type==="date"?"year":"letter",children:[(0,h.jsx)("nav",{"aria-label":"Jump to","data-testid":"list-index",style:{...C,display:"flex",flexWrap:"wrap",gap:Oe?.type==="date"?"0 10px":"0 4px",lineHeight:1.3},children:_e.map(o=>(0,h.jsx)("a",{href:`#${mt(o.key)}`,onClick:y=>{y.preventDefault(),document.getElementById(mt(o.key))?.scrollIntoView({block:"start"})},style:{...Se,minWidth:24,justifyContent:"center"},children:o.key},o.key))}),_e.map(o=>(0,h.jsxs)("section",{"data-testid":"list-section","aria-labelledby":mt(o.key),style:{display:"grid",gap:0},children:[(0,h.jsx)("h2",{id:mt(o.key),className:"graview-group-head",children:o.key}),(0,h.jsx)("ul",{style:ot,className:Ct,"data-graview-rows":"",children:o.nodes.map(Pt)})]},o.key))]}):(0,h.jsx)("ul",{style:ot,className:Ct,"data-testid":"records","data-graview-rows":"",children:Ae.map(Pt)})}),gt?(0,h.jsx)(Ir,{store:l,chosen:Ee.chosen,...it?{principal:it}:{},...c?{context:c}:{},anchor:Wo,of:hn.length,onChooseAll:()=>Ee.choose(hn),onClear:Ee.clear,onActed:_i}):null,ia>0?(0,h.jsxs)(H,{to:Ti(m,"filter","is:any"),style:{...U,...C,justifySelf:"start"},"data-testid":"past-link",children:["+",ia," past"]}):null,A===!1&&l.graph.count(t,{archived:!0})>0?(0,h.jsxs)(H,{to:Ti(m,"archived","true"),style:{...U,...C,justifySelf:"start"},"data-testid":"archived-link",children:["+",l.graph.count(t,{archived:!0})," archived"]}):null]}),(0,h.jsx)(tn,{context:e,withheld:Gi,style:ee,testId:"withheld"})]})}var Do={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0},Wo=()=>document.querySelector("[data-graview-choosable]")?.closest("[data-embed-content]")??null,Ko=`
|
|
7
|
-
.graview-list[data-graview-choosable]{outline:none}
|
|
8
|
-
.graview-list [data-graview-choose]{position:relative;padding-left:34px}
|
|
9
|
-
.graview-choose-at{position:absolute;left:2px;top:0;bottom:0;z-index:${Ta.raised};display:flex;align-items:center}
|
|
10
|
-
@media (min-width: 900px) and (pointer: fine){
|
|
11
|
-
.graview-list [data-graview-choose]{padding-left:0}
|
|
12
|
-
.graview-choose-at{left:-34px}
|
|
13
|
-
}
|
|
14
|
-
@media (pointer: coarse){
|
|
15
|
-
.graview-list:not([data-graview-choosing]) [data-graview-choose]{padding-left:0}
|
|
16
|
-
.graview-list:not([data-graview-choosing]) .graview-choose-at{display:none}
|
|
17
|
-
}
|
|
18
|
-
`;function Bo({children:e}){return(0,h.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:40,minWidth:0},children:e})}var Go=(e,t)=>t?{sort:{by:t,direction:"desc"}}:e?{sort:{by:"label",direction:"asc"}}:{};function qo(e,t,n){let a=$t({...e.get("sort")?{sort:e.get("sort")}:{},...e.get("filter")?{filter:e.get("filter")}:{},...e.get("group")?{group:e.get("group")}:{},...e.get("q")?{q:e.get("q")}:{},...e.get("archived")?{archived:e.get("archived")}:{}}),r=[...a.filter??[]],i=e.get("by"),d=a.group??(i?{by:i}:void 0);for(let s of n){let c=e.get(s);c&&r.push({key:s,value:c})}let l=e.get("with");return l&&r.push({key:l,value:"*"}),e.get("past")==="1"&&!r.some(s=>s.key==="is")&&r.push({key:"is",value:"any"}),$n({...a.sort?{sort:a.sort}:{},...a.query?{query:a.query}:{},...r.length>0?{filter:r}:{},...d?{group:d}:{},...a.archived!==void 0?{archived:a.archived}:{}},t)}function Ti(e,t,n){let a=new URLSearchParams(e);return a.set(t,n),a.delete("past"),`?${a.toString()}`}function Uo({name:e,title:t,panel:n,open:a,onOpen:r}){return(0,h.jsxs)("button",{type:"button","data-testid":`act-open-${e}`,"data-graview-act":e,"aria-expanded":a,"aria-controls":n,onClick:()=>{r(!a),a||requestAnimationFrame(()=>document.getElementById(n)?.querySelector("input, select, textarea, button")?.focus())},style:{...Se,minHeight:28,margin:"-4px 0",padding:"0 2px",border:0,background:"none",font:"inherit",fontWeight:600,color:"var(--graview-ink)",cursor:"pointer"},children:[(0,h.jsx)("span",{"aria-hidden":"true",style:{marginRight:6},children:a?"\u2212":"+"}),t]})}function Vo({name:e,id:t,description:n,open:a,onClose:r,children:i}){return(0,h.jsxs)("div",{"data-testid":`act-${e}`,id:t,hidden:!a,onKeyDown:d=>{d.key==="Escape"&&(d.preventDefault(),r(),document.querySelector(`[aria-controls="${t}"]`)?.focus())},style:a?{display:"grid",gap:12,padding:"4px 0 12px"}:void 0,children:[n?(0,h.jsx)("p",{style:{...C,margin:0,maxWidth:"58ch"},children:n}):null,i]})}function jo({to:e,label:t}){let n=(0,Me.useRef)(null);return Fr(n),(0,h.jsx)(H,{ref:n,to:e,"aria-label":t,style:{position:"absolute",inset:0,borderRadius:6}})}var at=I(He(),1);var bt=I(He(),1);var F=I(q(),1);function ea({context:e}){let{store:t,brand:n,invariantContext:a,principal:r}=e;Z(t);let i=t.violations(a),d=t.allInvariants(),l=Ht(t,i),s=za(t.schema,d);return(0,F.jsxs)(te,{context:e,children:[(0,F.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,F.jsx)(ie,{context:e,children:i.length===0?"All rules hold":"What is broken"}),(0,F.jsx)("p",{style:re,"data-testid":"problems-count",children:i.length===0?"Every declared rule is satisfied by what is here.":Ca(i)})]}),(0,F.jsx)(Ai,{context:e}),l.map((c,m)=>{let x=c.nodeIds[0],g=x?t.graph.getNode(x):void 0;return(0,F.jsxs)("section",{style:{display:"grid",gap:10,padding:"16px 18px",borderLeft:"3px solid var(--graview-warn)",background:"var(--graview-panel-warning)",borderRadius:"0 var(--graview-radius, 12px) var(--graview-radius, 12px) 0"},children:[c.line?null:(0,F.jsx)(rn,{violation:c,schema:t.schema,...n?{brand:n}:{}}),g?(0,F.jsxs)("p",{style:{margin:0,display:"inline-flex",alignItems:"center",gap:8},children:[(0,F.jsx)(ce,{kind:g.kind,brand:n,schema:t.schema,size:7}),(0,F.jsx)(H,{to:z(t.schema,g.kind,g.id),style:U,children:me(t.schema.tryDefinition(g.kind),g)})]}):null,c.line?(0,F.jsx)(rn,{violation:c,schema:t.schema,...n?{brand:n}:{}}):null,(0,F.jsx)(on,{store:t,repairs:c.repairs,...r?{principal:r}:{}})]},m)}),d.length>0?(0,F.jsxs)("section",{style:{...ee,display:"grid",gap:12},"data-testid":"rules",children:[(0,F.jsx)("h2",{style:J,children:"The rules"}),(0,F.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:10},children:d.map(c=>{let m=i.filter(u=>u.invariant===c.name).length,x=s.get(c.name),g=c.label??c.name;return(0,F.jsxs)("li",{"data-graview-rule":c.name,style:{display:"grid",gap:2},children:[(0,F.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",columnGap:12,rowGap:2},children:[x?(0,F.jsx)(It,{line:x,schema:t.schema,...n?{brand:n}:{},style:{flex:"1 1 18rem"}}):(0,F.jsx)("span",{style:{flex:"1 1 18rem",fontWeight:550},children:g}),(0,F.jsx)("span",{style:{...C,color:m>0?"var(--graview-warn)":"var(--graview-ink-faint)"},children:m===0?"holds":`broken in ${m} ${m===1?"place":"places"}`})]}),x&&g.trim().length>0?(0,F.jsx)("span",{style:C,children:g}):null]},c.name)})})]}):null]})}function rn({violation:e,schema:t,brand:n}){if(!e.line)return(0,F.jsx)("p",{style:{margin:0,color:"var(--graview-warn)",fontWeight:550},children:e.message});let a=Qa(e),r=Ya(e);return r?(0,F.jsxs)("div",{style:{display:"grid",gap:4},"data-testid":"problem-line",children:[(0,F.jsx)("p",{style:{margin:0,color:"var(--graview-warn)",fontWeight:550},"data-testid":"problem-says",children:r}),a?(0,F.jsx)("span",{style:C,children:a}):null,(0,F.jsxs)("details",{"data-testid":"problem-judged",style:C,children:[(0,F.jsx)("summary",{style:{cursor:"pointer",width:"fit-content",minHeight:24},children:"How it is judged"}),(0,F.jsx)(It,{line:e.line,schema:t,...n?{brand:n}:{},lead:"none"})]})]}):(0,F.jsxs)("div",{style:{display:"grid",gap:2},"data-testid":"problem-line",children:[(0,F.jsx)(It,{line:e.line,schema:t,...n?{brand:n}:{},lead:"none",style:{color:"var(--graview-warn)"}}),a?(0,F.jsx)("span",{style:C,children:a}):null]})}function on({store:e,repairs:t,principal:n}){let[a,r]=(0,bt.useState)(null),[i,d]=(0,bt.useState)(null),l=(0,bt.useRef)([]);if(t.length===0)return null;let s=a===null?null:t[a],c=s&&(s.missing??[]).length>0?e.allMutations().find(m=>m.name===s.mutation):void 0;return(0,F.jsxs)("div",{style:{display:"grid",gap:10},"data-testid":"repairs",children:[(0,F.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:t.map((m,x)=>{let g=(m.missing??[]).length>0,u=e.permits({name:m.mutation,args:{...m.args}},n);return u.ok?(0,F.jsx)("button",{ref:A=>{l.current[x]=A},type:"button","data-graview-repair":m.mutation,"data-graview-asks":g||void 0,"aria-expanded":g?a===x:void 0,onClick:()=>{if(d(null),g){r(a===x?null:x);return}r(null);try{e.apply({name:m.mutation,args:{...m.args}},n?{author:n}:{})}catch(A){d(Ft(e.schema,e.allMutations(),A))}},style:ke,children:g?`${m.label} \u2026`:m.label},x):(0,F.jsxs)("p",{"data-testid":"withheld","data-withheld":u.refusal.wouldNeed.join(",")||"nobody",style:{...C,margin:0},children:[(0,F.jsx)("s",{children:m.label})," \u2014 ",u.refusal.message]},x)})}),c&&s?(0,F.jsx)(Ie,{store:e,mutation:c,prefilled:{...s.args},only:s.missing??[],label:s.label,autoFocus:!0,onDone:()=>{let m=a;r(null),requestAnimationFrame(()=>{let x=m===null?null:l.current[m];if(x?.isConnected){x.focus();return}let g=document.querySelector("[data-graview-page-title]")??document.querySelector("main h1, main h2");g&&(g.hasAttribute("tabindex")||(g.tabIndex=-1),g.focus())})},...n?{principal:n}:{}}):null,s&&!c&&(s.missing??[]).length>0?(0,F.jsxs)("p",{"data-testid":"refused",role:"alert",style:{margin:0,color:"var(--graview-warn)",fontSize:Hn},children:["\u201C",s.label,"\u201D names ",s.mutation,", which this app does not declare."]}):null,i?(0,F.jsx)("p",{"data-testid":"refused",role:"alert",style:{margin:0,color:"var(--graview-warn)",fontSize:Hn},children:i}):null]})}var ta=I(He(),1);var Ve=I(q(),1);function Oi({store:e,link:t,principal:n}){let[a,r]=(0,ta.useState)(!1),[i,d]=(0,ta.useState)(null),l=tr(t);return(0,Ve.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,Ve.jsx)("button",{type:"button","data-graview-provisional":"",title:l,"aria-label":`Unsure link: ${l}`,"aria-expanded":a,onClick:()=>r(!a),style:{border:"1px dashed var(--graview-ink-muted)",borderRadius:999,background:"transparent",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"0.75rem",lineHeight:1,padding:"2px 6px",cursor:"pointer"},children:"unsure"}),a?(0,Ve.jsxs)("span",{style:{...C,display:"inline-flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,Ve.jsx)("span",{children:l}),(0,Ve.jsx)("button",{type:"button",style:{...ke,padding:"4px 10px"},onClick:()=>{try{e.apply({name:Aa,args:{kind:t.edge.kind,from:t.edge.from,to:t.edge.to}},n?{author:n}:{}),r(!1)}catch(s){d(Ft(e.schema,e.allMutations(),s))}},children:"Keep this link"}),i?(0,Ve.jsx)("span",{role:"alert",children:i}):null]}):null]})}var he=I(q(),1);function Ni({nodeId:e,node:t,field:n,inPlace:a,labelStyle:r=we}){return n.files?(0,he.jsx)(dt,{as:"field",read:!a,nodeId:e,field:n.key,label:n.label,files:n.files,labelStyle:r,style:{gap:4}}):n.long?(0,he.jsx)(Er,{nodeId:e,field:n.key,label:n.label,value:n.value,markdown:n.markdown,style:{gridColumn:"1 / -1",gap:4},labelStyle:r,valueStyle:{lineHeight:1.6}}):(0,he.jsxs)("div",{style:{display:"grid",gap:2,minWidth:0,alignContent:"start"},children:[(0,he.jsx)("dt",{style:r,children:n.label}),(0,he.jsx)("dd",{style:{margin:0,overflowWrap:"anywhere",minWidth:0},children:n.linked?(0,he.jsx)(pr,{relation:n.linked.relation,refs:n.linked.refs,...a?{nodeId:e,field:n.key}:{}}):n.app?(0,he.jsx)(Kt,{address:n.app,as:"record",...a?{nodeId:e,field:n.key}:{}}):n.href?(0,he.jsx)(Mr,{href:n.href,field:n.key,value:n.value,stored:n.stored,...a?{nodeId:e}:{}}):a?(0,he.jsxs)(he.Fragment,{children:[(0,he.jsx)(Bt,{nodeId:e,field:n.key,value:n.value,stored:n.stored}),n.repeats?(0,he.jsx)(ur,{nodeId:e,field:n.key,start:t?.[n.key],value:t?.[`${n.key}Repeat`],label:`${n.label} repeats`}):null]}):n.value})]})}var v=I(q(),1),_o=[];function na({context:e}){let{store:t,brand:n,principal:a,invariantContext:r}=e;Z(t);let i=de()!==null,d=Ue(),l=decodeURIComponent(d.id??""),s=ci(t,l,{...a?{principal:a}:{},...r?{context:r}:{}}),c=Ht(t,s?.violations??_o),[m,x]=(0,at.useState)(null),[g,u]=(0,at.useState)(!1),[A,N]=(0,at.useState)(null),G=(0,at.useRef)(null),b=(0,at.useRef)(null),E=gr({flow:"both",letters:!0}),k=p=>{(G.current?.parentElement?.querySelector(`[data-affordance="${p.replace(/["\\]/g,"\\$&")}"]`)??G.current)?.focus()};if(!s)return(0,v.jsx)(te,{context:e,children:(0,v.jsx)(ie,{context:e,children:"Nothing lives at this address."})});let P=t.graph.getNode(l),K=t.schema.tryDefinition(s.kind),ae=K?.describe&&P?Xa(K,P):null,ue=[...t.log.all()].filter(p=>!Mt(p)&&(p.writes.includes(l)||p.reads.includes(l))).slice(-8).reverse(),oe=t.log.all().find(p=>!Mt(p)&&p.undoes===void 0&&p.primitives.some(T=>T.op==="add-node"&&T.node.id===l)),_=s.actions.affordances.filter(p=>p.provider!=="invariant"),ge=_.filter(p=>p.destructive||p.setsAside),Ke=g||ge.length<2?_:_.filter(p=>!ge.includes(p)),Pe=e.views?.lookup(s.kind,{cardinality:"one",fidelity:"full"}),Ce=Pe!==void 0&&!lt(Pe)?Pe:void 0,w=Ce&&P?qt(Pe,P,t.graph):void 0,f=w?s.fields.filter(p=>!w.fields.has(p.key)):s.fields,L=w?s.links.flatMap(p=>{let T=p.targets.filter(j=>!w.records.has(j.id));return T.length>0?[{...p,targets:T}]:[]}):s.links,$=Ce!==void 0&&Ua(Pe),ne=i&&ir(K).length>0,Y=$e(e).filter(p=>!p.hidden&&(p.kind===s.kind||p.across===s.kind));return(0,v.jsxs)(te,{context:e,children:[(0,v.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,v.jsx)(ut,{context:e}),(0,v.jsx)(ie,{context:e,children:i&&P?.label===s.label?(0,v.jsx)(Bt,{nodeId:l,field:"label",value:s.label,said:s.label}):s.label}),ae&&ae!==s.label?(0,v.jsx)("p",{style:re,children:ae}):null,oe?.lineage?(0,v.jsxs)("p",{style:{...C,margin:0},"data-testid":"record-lineage",children:["Made by ",ht(oe,a,{graph:t.graph,schema:t.schema,...e.seats?{seats:e.seats}:{},...e.people?{people:e.people}:{}}),", ",An(oe.lineage)]}):null,(0,v.jsx)(Yt,{context:e,stop:`#focus=${encodeURIComponent(l)}`,style:{...qe,...C},"data-testid":"spatial-link"}),i&&P?(0,v.jsx)(Tn,{choices:[{on:"changed",record:l},{on:"act",record:l},{on:"reaches",kind:s.kind,condition:"",record:l}],label:"Notify me when this changes",testId:"record-notify",style:{...ke,...C,justifySelf:"start"}}):null,Y.length>0?(0,v.jsxs)("p",{style:{...C,margin:0},"data-testid":"seen-in",children:["Seen in:"," ",Y.map((p,T)=>(0,v.jsxs)("span",{children:[T>0?(0,v.jsx)("span",{"aria-hidden":"true",children:" \xB7 "}):null,(0,v.jsx)(H,{to:ye(e,p),style:U,children:p.title})," ",(0,v.jsx)(Yt,{context:e,stop:`#view=${encodeURIComponent(p.as)}`,style:{...U,...C,display:"inline-block",minWidth:24,textAlign:"center"},title:`${p.title}, in the scene`,label:`${p.title}, in the scene`,children:(0,v.jsx)("span",{"aria-hidden":"true",children:"\u2197"})})]},et(p)))]}):null]}),P&&xa(P)?(0,v.jsx)(Yo,{context:e,id:l,kind:s.kind}):null,P&&Ra(t,l)?(0,v.jsx)(zo,{context:e,id:l,kind:s.kind}):null,Ce&&P?(0,v.jsx)("section",{"data-testid":"record-view",style:{display:"grid",minWidth:0},children:(0,v.jsx)(Dr,{children:(0,v.jsx)(Zt,{when:Ot(Pe),children:(0,v.jsx)(Ce,{node:P,cardinality:"one",fidelity:"full",mode:"fullscreen",selected:!1,...s.violations.length>0?{flagged:[l]}:{}})})})}):null,s.violations.length>0?(0,v.jsx)("section",{"data-testid":"record-violations",style:{display:"grid",gap:12,padding:"16px 18px",borderLeft:"3px solid var(--graview-warn)",background:"var(--graview-panel-warning)",borderRadius:"0 var(--graview-radius, 12px) var(--graview-radius, 12px) 0"},children:c.map((p,T)=>(0,v.jsxs)("div",{style:{display:"grid",gap:8},children:[(0,v.jsx)(rn,{violation:p,schema:t.schema,...n?{brand:n}:{}}),(0,v.jsx)(on,{store:t,repairs:pi(s.actions,p.repairs),...a?{principal:a}:{}})]},T))}):null,!$&&(f.length>0||ne)?(0,v.jsxs)("section",{style:{...ee,display:"grid",gap:14},"data-testid":"record-fields",children:[(0,v.jsx)("h2",{style:J,children:"The facts"}),er(K,f).map((p,T)=>{let j=(0,v.jsx)("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"14px 24px"},children:p.fields.map(se=>(0,v.jsx)(Ni,{nodeId:l,node:P,field:se,inPlace:i},se.key))});return p.title?(0,v.jsxs)("section",{style:{display:"grid",gap:10,minWidth:0},children:[(0,v.jsx)("h3",{"data-graview-field-group":p.title,style:{...J,fontSize:"inherit"},children:p.title}),j]},T):(0,v.jsx)("div",{children:j},T)}),ne?(0,v.jsx)(dt,{as:"unfilled",nodeId:l,skip:[...w?.fields??[]],labelStyle:we,style:{gap:4}}):null]}):null,($?[]:L).map(p=>(0,v.jsxs)("section",{style:{...ee,display:"grid",gap:10},children:[(0,v.jsx)("p",{style:we,children:ti(t,p)}),p.description?(0,v.jsx)("h2",{style:J,children:Re(p.description)}):(0,v.jsxs)("h2",{style:J,"aria-label":ze(p.edgeKind),children:[p.direction==="in"?"\u2190 ":"\u2192 ",ze(p.edgeKind)]}),(0,v.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:"6px 18px"},children:p.targets.map(T=>{let j=nr(t,p.direction==="in"?{kind:p.edgeKind,from:T.id,to:l}:{kind:p.edgeKind,from:l,to:T.id});return(0,v.jsxs)("li",{style:{display:"inline-flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,v.jsx)(ce,{kind:T.kind,brand:n,schema:t.schema,size:7}),(0,v.jsxs)(H,{to:z(t.schema,T.kind,T.id),style:U,children:[T.label,T.apart?(0,v.jsxs)("span",{style:C,children:[" \xB7 ",T.apart]}):null]}),j?.provisional?(0,v.jsx)(Oi,{store:t,link:j,...a?{principal:a}:{}}):null]},T.id)})}),(p.direction==="out"&&t.schema.edge(p.edgeKind)?.cardinality==="one"?[]:[...new Set(p.targets.map(T=>T.kind))]).map(T=>(0,v.jsx)(H,{to:`/${V(t.schema,T)}?${encodeURIComponent(p.edgeKind)}=${encodeURIComponent(l)}`,style:{...qe,...C},"data-testid":"related-all",children:(0,v.jsxs)(Qe,{children:["Sort and filter ",p.description??`these ${Q(t,T).toLowerCase()}`,p.targets.some(j=>j.kind!==T)?` (${Q(t,T).toLowerCase()})`:""]})},T))]},`${p.edgeKind}|${p.direction}|${p.description??""}`)),!$&&(_.length>0||s.actions.withheld.length>0)?(0,v.jsxs)("section",{style:{...ee,display:"grid",gap:14},"data-testid":"record-actions",children:[(0,v.jsx)("h2",{style:J,ref:G,tabIndex:-1,children:"What can be done"}),(0,v.jsxs)("div",{role:"toolbar","aria-label":"What can be done",...E,style:{display:"flex",flexWrap:"wrap",gap:8},children:[Ke.map(p=>{let T=m===p.id;return(0,v.jsx)("button",{type:"button","data-affordance":p.id,"data-rank":p.rank,"data-graview-act":p.mutation,[Ln]:"",autoFocus:g&&p===ge[0],"aria-expanded":T,onClick:()=>x(T?null:p.id),style:{...ke,...T?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},children:p.label},p.id)}),Ke.length<_.length?(0,v.jsxs)("button",{type:"button","aria-expanded":!1,onClick:()=>u(!0),style:{...ke,...C},"data-testid":"record-actions-more",[Ln]:"",children:["Show ",_.length-Ke.length," more"]}):null]}),_.map(p=>{if(m!==p.id)return null;let T=t.allMutations().find(j=>j.name===p.mutation);return T?(0,v.jsxs)("div",{ref:b,onKeyDown:j=>{if(j.key!=="Escape"||j.defaultPrevented)return;j.preventDefault(),x(null);let se=p.id;requestAnimationFrame(()=>k(se))},style:{display:"grid",gap:10,padding:18,border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",background:"var(--graview-panel)"},children:[(0,v.jsx)("h3",{style:J,children:p.label}),T.description?(0,v.jsx)("p",{style:{...C,margin:0},children:T.description}):null,(0,v.jsx)(Ie,{store:t,mutation:T,prefilled:p.args,open:p.open,label:p.label,autoFocus:!0,onDone:()=>{x(null),N(p.mutation);let j=p.id;requestAnimationFrame(()=>k(j))},...a?{principal:a}:{}})]},p.id):null}),i&&A!==null&&m===null?(0,v.jsx)(Tn,{choices:[{on:"act",act:A,record:l},{on:"act",act:A}],label:"Notify me when someone else does this",testId:"notify-after-act",style:{...ke,...C,justifySelf:"start"}}):null,(0,v.jsx)(tn,{context:e,withheld:s.actions.withheld})]}):null,i?(0,v.jsx)(ei,{id:l,style:ee,headingStyle:J}):null,ue.length>0?(0,v.jsxs)("section",{style:{...ee,display:"grid",gap:10},"data-testid":"record-history",children:[(0,v.jsx)("h2",{style:J,children:"What has happened"}),(0,v.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6},children:ue.map(p=>(0,v.jsxs)("li",{style:C,children:[(0,v.jsx)("span",{style:{color:"var(--graview-ink)"},children:p.intent}),p.lineage?(0,v.jsxs)("span",{"data-graview-lineage":"",children:[" \xB7 ",An(p.lineage)]}):null," \u2014 ",ht(p,a,{graph:t.graph,schema:t.schema,...e.seats?{seats:e.seats}:{},...e.people?{people:e.people}:{}})]},p.id))})]}):null]})}function zo({context:e,id:t,kind:n}){let{store:a,principal:r}=e,i={name:`allow-tidying-${n}`,args:{id:t}},d=a.allMutations().some(l=>l.name===i.name)&&a.permits(i,r).ok;return(0,v.jsxs)("section",{"data-testid":"record-left-alone",style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:12,padding:"12px 16px",border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",background:"var(--graview-panel)"},children:[(0,v.jsxs)("p",{style:{margin:0,flex:"1 1 16rem"},children:[(0,v.jsx)("strong",{children:"Left alone."})," Nothing automated changes it; tidying passes it by."]}),d?(0,v.jsx)("button",{type:"button",style:ke,"data-testid":"allow-tidying",onClick:()=>a.apply(i,r?{author:r}:{}),children:"Allow tidying again"}):null]})}function Yo({context:e,id:t,kind:n}){let{store:a,principal:r}=e,i={name:`unarchive-${n}`,args:{id:t}},d=a.allMutations().some(c=>c.name===i.name)&&a.permits(i,r).ok,l=[...a.log.all()].reverse().find(c=>!Mt(c)&&c.mergedInto!==void 0&&c.writes.includes(t)),s=l?.mergedInto!==void 0?a.graph.getNode(l.mergedInto):void 0;return(0,v.jsxs)("section",{"data-testid":"record-archived",style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:12,padding:"12px 16px",border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",background:"var(--graview-panel)"},children:[(0,v.jsxs)("p",{style:{margin:0,flex:"1 1 16rem"},children:[(0,v.jsx)("strong",{children:"Archived."})," Kept with its ties and history, and out of lists, counts and rules.",s?(0,v.jsxs)(v.Fragment,{children:[" ","Merged into ",(0,v.jsx)(H,{to:z(a.schema,s.kind,s.id),style:U,children:me(a.schema.tryDefinition(s.kind),s)}),"."]}):null]}),d?(0,v.jsx)("button",{type:"button",style:ke,"data-testid":"bring-it-back",onClick:()=>a.apply(i,r?{author:r}:{}),children:"Bring it back"}):null]})}var S=I(q(),1),Qo=Nt(()=>(__graviewPreload(import.meta.url,["./chunk.IE4ZJQV3.js","./chunk.TVWN5I4M.js","./chunk.7G4M2PX3.js","./chunk.UGFDSE37.js","./chunk.NNUUD26E.js","./chunk.OJ64WTLW.js","./chunk.GMAXA5GV.js","./chunk.IBJBCZKG.js","./chunk.NQ26KMSQ.js","./chunk.GJQF7I22.js","./chunk.SPU3BVAO.js","./chunk.OPCBZNKF.js","./chunk.UK5F3S2N.js","./chunk.2VJ52LGS.js","./chunk.JI2UVZUU.js","./chunk.CTOBNZLM.js","./chunk.34HGT7HQ.js","./chunk.TNL2BVCH.js","./chunk.NZDHXREL.js","./chunk.TBSPEO2L.js","./chunk.5ON3JSAK.js","./chunk.3SBTQ66X.js","./chunk.SSAY4ITS.js","./chunk.MB7LKKUD.js","./chunk.WVUJXDXZ.js","./chunk.GLTWLQ6L.js","./chunk.ACB4TD4W.js","./chunk.XCQ7ZPR5.js","./chunk.MY5OXSS7.js","./chunk.NVRK6A7T.js","./chunk.FKJ3HIA5.js","./chunk.GZHZLJBF.js","./chunk.OW72XZF4.js","./chunk.OJGHDWI6.js","./chunk.KRODTMGR.js","./chunk.VICCAWAN.js","./chunk.OU5TRY4N.js","./chunk.CQPNDJAC.js","./chunk.GYTVL6GR.js","./chunk.TMYGLXR6.js","./chunk.SDO3U72B.js","./chunk.P4CLT32V.js","./chunk.SLBWPVIY.js","./chunk.AJZBJBMO.js"]),import("./chunk.FG5ZFYYL.js")).then(e=>({default:e.DraftPage}))),Zo={kind:"human"};function Xo({list:e,store:t}){let n=new Set(e.members.map(d=>d.kind)),a=e.total-e.members.length,r=n.size===1?[...n][0]:void 0;if(!r)return(0,S.jsx)("p",{className:"graview-spec-text graview-spec-more",children:`and ${a} more`});let i=Ge(t.schema,r).toLowerCase();return(0,S.jsx)("p",{className:"graview-spec-text graview-spec-more",children:(0,S.jsx)(H,{to:`/${V(t.schema,r)}`,className:"graview-spec-link graview-spec-see-all","data-testid":"see-all",children:e.total===t.graph.nodesOfKind(r).length?`See all ${ft(e.total)} ${i}`:`${ft(a)} more \xB7 all ${i}`})})}function Jo({context:e,children:t}){let n=De(),a=e.store.schema,r=Ze("/").replace(/\/$/,""),i=(0,B.useMemo)(()=>({href:d=>`${r}${z(a,d.kind,d.id)}`,go:d=>n(z(a,d.kind,d.id)),more:d=>(0,S.jsx)(Xo,{list:d,store:e.store})}),[r,a,n,e.store]);return(0,S.jsx)(Gt.Provider,{value:i,children:(0,S.jsx)(Wr.Provider,{value:(e.titleLevel??(e.framed&&!e.barAbove?1:2))-1,children:t})})}var Ii=(0,B.createContext)(void 0);function es({steering:e}){let t=fe(),n=De(),a=`${t.pathname}${t.search}`;return(0,B.useLayoutEffect)(()=>e.at(a),[a,e]),(0,B.useLayoutEffect)(()=>{let r=d=>{d!==a&&n(d)};e.go.current=r;let i=e.pending?.current;return i!==void 0&&(e.pending.current=void 0,r(i)),()=>{e.go.current===r&&(e.go.current=void 0)}},[a,n,e]),null}function ts({context:e,to:t}){let{pathname:n}=fe(),a=de(),r=(t??a)?.sayWhere,i=ns(e,n);return(0,B.useEffect)(()=>(r?.(i),()=>r?.(null)),[r,i]),null}function ns(e,t){let[n="",a,r]=t.split("/").filter(Boolean).map(d=>{try{return decodeURIComponent(d)}catch{return d}});if(r!==void 0)return"#";if(n==="places"&&a!==void 0){if(a===Pn)return"#overview=1";let d=e.views?.places().find(l=>l.as===a);return d?`#focus=${encodeURIComponent(Ne(d.kind))}&view=${encodeURIComponent(d.as)}`:"#"}let i=ve(e.store.schema,n);return i?`#focus=${encodeURIComponent(a??Ne(i))}`:"#"}function as({onNavigate:e,path:t}){let n=fe(),a=Wn(),r=De(),i=n.hash&&!n.hash.includes("=")?n.hash:"",d=`${n.pathname}${n.search}${i}`,l=(0,B.useRef)(e);l.current=e;let s=(0,B.useRef)(null);(0,B.useEffect)(()=>{let m=s.current;s.current=d,m!==null&&(d===m&&a!=="PUSH"||l.current?.(d,a==="POP"?"pop":a==="REPLACE"?"replace":"push"))},[n.key]);let c=(0,B.useRef)(t);return(0,B.useEffect)(()=>{t===void 0||t===c.current||(c.current=t,t!==d&&r(t))},[t]),null}function Hi({context:e,registry:t,page:n}){let a=Ue(),r=ve(e.store.schema,a.slug??""),i=n==="list"?Jn:na,l=(r?t?.lookup(r,n):void 0)??i;return(0,S.jsx)(l,{context:e})}function rs({context:e,registry:t,children:n}){let a=(0,B.useRef)(null);return Va(a),(0,S.jsx)("div",{ref:a,"data-graview-face":"pages",style:{display:"contents"},children:(0,S.jsx)(ki,{context:e,registry:t,root:a,children:(0,S.jsx)(xi,{context:e,root:a,children:n})})})}function is(e){return e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA"||e.tagName==="SELECT"?!0:e.tagName==="INPUT"&&!["button","submit","reset","checkbox","radio","image","file","color","range"].includes(e.type):!1}function os(){let{pathname:e}=fe(),t=Wn(),n=(0,B.useRef)(null);(0,B.useLayoutEffect)(()=>{if(t!=="POP"){for(let i=n.current?.parentElement;i;i=i.parentElement){let{overflowY:d}=getComputedStyle(i);if((d==="auto"||d==="scroll")&&i.scrollHeight>i.clientHeight){i.scrollTop=0;return}}window.scrollTo(0,0)}},[e]);let a=(0,B.useRef)(e),r=(0,B.useRef)(!1);return(0,B.useEffect)(()=>{if(!r.current&&e===a.current)return;r.current=!0;let i=document.activeElement;if(is(i))return;let d=n.current?.closest("main")??document.querySelector("main"),s=n.current?.closest("[data-graview-face]")?.querySelector("[data-graview-page-title]")??d?.querySelector("h1, h2")??null??d??null;s&&(s.hasAttribute("tabindex")||s.setAttribute("tabindex","-1"),s.focus({preventScroll:!0}))},[e]),(0,S.jsx)("span",{ref:n,hidden:!0,"data-graview-scroll-reset":""})}function Fi({context:e,children:t}){let n=De(),a=Ze("/").replace(/\/$/,""),r=(0,B.useContext)(Ii),i=(0,B.useMemo)(()=>{let d=(s,c)=>{if("record"in s){let m=e.store.graph.getNode(s.record);return m?Vt(z(e.store.schema,m.kind,s.record),{section:c?.section}):void 0}if("place"in s){let m=e.views?.places().find(x=>x.as===s.place);return m?Vt(ye(e,m),c):void 0}return e.store.schema.tryDefinition(s.list)?Vt(`/${V(e.store.schema,s.list)}`,c):void 0},l=s=>{s!==void 0&&n(s)};return{record:(s,c)=>l(d({record:s},c)),place:(s,c)=>l(d({place:s},c)),list:(s,c)=>l(d({list:s},c)),draft:()=>n("/~draft"),href:(s,c)=>{let m=r===!1?void 0:d(s,c);if(m!==void 0)return r?r(m):`${a}${m}`}}},[e,n,a,r]);return(0,S.jsx)(qa.Provider,{value:i,children:t})}function ss(){let{pathname:e,search:t,hash:n}=fe();return(0,B.useEffect)(()=>{let a=decodeURIComponent(n.replace(/^#/,""));if(!(!a||a.includes("=")))return hi(a)},[e,t,n]),null}function ls({context:e,Home:t}){let n=fe(),a=e.views,r=n.key==="default"&&!(a&&Ba(a));(0,B.useEffect)(()=>{a&&Ga(a)},[a]);let i=r?$a(e.views?.arrangement?.()?.first,e.store.schema,e.views?.places()??[]):void 0,d=i?.to==="place"?ye(e,i.place):i?.to==="kind"?`/${V(e.store.schema,i.kind)}`:void 0;return d?(0,S.jsx)(Kn,{to:d,replace:!0}):(0,S.jsx)(t,{context:e})}function Di({context:e,registry:t}){let n=t?.lookupSurface("shell"),a=n!==void 0,r=a&&(t?.without().has("bar")??!1),i=a&&!r&&!e.embedded?{...e,barAbove:!0}:e,d=N=>n===void 0?(0,S.jsx)(Qt,{context:e,children:N}):r?(0,S.jsx)(n,{context:e,children:N}):(0,S.jsx)(Qt,{context:e,children:(0,S.jsx)(n,{context:i,children:N})}),l=t?.lookupSurface("home")??Zn,s=t?.lookupSurface("problems")??ea,c=a?{...i,framed:!0}:e,[m,x]=(0,B.useState)(null),g=(0,B.useMemo)(()=>({context:c,registry:t}),[c,t]),u=(0,B.useMemo)(()=>({onFind:x,find:!(t?.without().has("find")??!1),places:!(t?.without().has("places")??!1)}),[t]),A=(0,S.jsx)(Gn.Provider,{value:g,children:(0,S.jsx)(Fi,{context:e,children:(0,S.jsx)(rs,{context:e,registry:t,children:d((0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(ar,{face:"pages"}),(0,S.jsxs)(Jo,{context:c,children:[(0,S.jsx)(os,{}),(0,S.jsx)(ss,{}),(0,S.jsxs)(oi,{children:[(t?.routes()??[]).map(({path:N,component:G})=>(0,S.jsx)(Le,{path:N,element:(0,S.jsx)(G,{context:c})},N)),(0,S.jsx)(Le,{path:"/",element:(0,S.jsx)(ls,{context:c,Home:l})}),(0,S.jsx)(Le,{path:"/problems",element:(0,S.jsx)(s,{context:c})}),(0,S.jsx)(Le,{path:"/~draft",element:(0,S.jsx)(B.Suspense,{fallback:null,children:(0,S.jsx)(Qo,{context:c})})}),(0,S.jsx)(Le,{path:"/search",element:(0,S.jsx)(Xn,{context:c})}),(0,S.jsx)(Le,{path:"/map",element:(0,S.jsx)(Qn,{context:c})}),(0,S.jsx)(Le,{path:"/places",element:(0,S.jsx)(zn,{context:c})}),$e(c).some(N=>N.as===Pn)?null:(0,S.jsx)(Le,{path:Ea,element:(0,S.jsx)(Kn,{to:"/",replace:!0})}),(0,S.jsx)(Le,{path:"/places/:as",element:(0,S.jsx)(Yn,{context:c})}),(0,S.jsx)(Le,{path:"/:slug",element:(0,S.jsx)(Hi,{context:c,registry:t,page:"list"})}),(0,S.jsx)(Le,{path:"/:slug/:id",element:(0,S.jsx)(Hi,{context:c,registry:t,page:"record"})})]})]})]}))})})});return e.embedded||!a||r?A:(0,S.jsx)(di.Provider,{value:u,children:(0,S.jsx)(Sr.Provider,{value:m,children:A})})}var ds=()=>typeof document>"u"?null:document.body;function cs({context:e,registry:t,basename:n,initialPath:a,onNavigate:r,path:i,steering:d,firstLook:l,hrefOf:s,typing:c}){let[m,x]=(0,B.useState)(void 0),g=m!==void 0&&m.from===e.principal?{...e,principal:m.seat}:e;(0,B.useState)(()=>g.views?Gr(g.views,g.store.schema,En(g.brand,g.store.schema)):void 0);let u=de(),A=c??g.typing;wa({reader:g.locale??u?.locale,app:g.brand?.locale??g.app?.brand?.locale,readerTimeZone:g.timeZone??u?.timeZone,appTimeZone:g.brand?.timeZone??g.app?.brand?.timeZone});let N=g.principal??Zo,G=Fa(g.store,N,g.history),E=(G.past&&G.live===g.store?G.past.store:g.store).seenBy(N),k=E===g.store?g:{...g,store:E};Da(g.store,g.principal);let P=(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(as,{onNavigate:r,path:i}),d?(0,S.jsx)(es,{steering:d}):null,k.presence||u?(0,S.jsx)(ts,{context:k,to:u}):null,(0,S.jsx)(Di,{context:k,...t?{registry:t}:{}}),l?(0,S.jsx)(qr,{firstLook:l,root:ds,app:En(g.brand,g.store.schema)}):null]}),K=k.views?(0,S.jsxs)(Wa,{store:k.store,views:k.views,...k.principal?{principal:k.principal}:{},...k.brand?{brand:k.brand}:{},...k.locale?{locale:k.locale}:{},...k.timeZone?{timeZone:k.timeZone}:{},...k.settings?{settings:k.settings}:{},...k.presence&&!u?{presence:k.presence}:{},...A?{typing:A}:{},...k.people?{people:k.people}:{},...k.seats?{seats:k.seats}:{},onSeat:_=>u?u.takeSeat(_):x({from:e.principal,seat:_}),...k.onKeepLens?{onKeepLens:k.onKeepLens}:{},...k.ai?{ai:k.ai}:{},...k.subscriptions?{subscriptions:k.subscriptions}:{},dismissals:k.dismissals,whileAway:k.whileAway,...k.signIn?{signIn:k.signIn}:{},resolveApp:k.resolveApp??u?.resolveApp,linkedRecords:k.linkedRecords??u?.linkedRecords,...k.app?{app:k.app}:{},...k.menuSections?{menuSections:k.menuSections}:{},children:[P,(0,S.jsx)(Fi,{context:k,children:(0,S.jsx)(wi,{context:k})})]}):P,ae=(0,S.jsx)(Ia.Provider,{value:G,children:K}),ue=k.files?(0,S.jsx)(Ha.Provider,{value:k.files,children:ae}):ae,oe=s===void 0?ue:(0,S.jsx)(Ii.Provider,{value:s,children:ue});if(a!==void 0){let _=n===void 0?a:`${n.replace(/\/$/,"")}${a}`;return(0,S.jsx)(ii,{initialEntries:[_],...n===void 0?{}:{basename:n},children:oe})}return(0,S.jsx)(si,{...n===void 0?{}:{basename:n},children:oe})}export{co as a,cs as b};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import{a as Bt,b as It,c as Wt,d as Wn}from"./chunk.OJ64WTLW.js";import{a as zt}from"./chunk.GMAXA5GV.js";import{a as Bn,b as Et,c as In,d as Mt,e as Lt,f as Tt}from"./chunk.Y5AMZBHA.js";import{c as Ht,g as Vt,h as Gt,i as jt}from"./chunk.IBJBCZKG.js";import{e as $t}from"./chunk.SPU3BVAO.js";import{m as At}from"./chunk.OPCBZNKF.js";import{a as Ot,b as Rt}from"./chunk.UK5F3S2N.js";import{f as kt,h as Ct}from"./chunk.2VJ52LGS.js";import{e as St}from"./chunk.JI2UVZUU.js";import{a as Pt,b as tn,c as Nt,d as Dt}from"./chunk.W2DKFQ6R.js";import{b as vt,c as pe,d as ke,e as ze}from"./chunk.TBSPEO2L.js";import{e as bt}from"./chunk.GLTWLQ6L.js";import{l as xt,m as zn}from"./chunk.OW72XZF4.js";import{f as Nn,g as Dn}from"./chunk.VICCAWAN.js";import{k as Fe,m as wt}from"./chunk.GYTVL6GR.js";import{G as De,Ma as yt,Na as nn,T as te,V as ft,aa as oe,ca as ht,l as en}from"./chunk.TMYGLXR6.js";import{$c as Pn,Hc as Ze,Ic as mt,Nc as Le,Pa as lt,Ta as dt,U as dn,Ua as ct,V as rt,Va as ut,W as at,X as Mn,Y as it,Z as Xe,_b as gt,ca as Ve,da as Se,ga as qe,ha as cn,ia as ot,ka as Ln,la as st,ma as un,rc as be,tb as Tn,wd as pt}from"./chunk.P4CLT32V.js";import{b as U}from"./chunk.AJZBJBMO.js";var Dr=U(De(),1);var Hn=U(te(),1);function Be(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?cn(t,a).toLowerCase():"more";return(0,Hn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,Hn.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 qt=U(te(),1),Br=(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}},Ir=["sort","filter","group","q","archived"];function Te(e,t={}){let{store:n}=oe(),{view:r,go:a}=nn(),s=Ir.some(M=>r.within?.[M]!==void 0)?Ot(r):t.arrangedBy??{},m=e.nodes??[],u=t.kind??m[0]?.kind??e.node?.kind,b=s.archived!==void 0&&s.archived!==!1&&u!==void 0&&!t.subject?n.graph.nodesOfKind(u,{archived:s.archived}):m,l=t.subject??(t.only?b.filter(t.only):b),y=t.subject?[]:t.only?b.filter(M=>!t.only(M)):[],p=t.kind??l[0]?.kind,o=Br(t.allow,t.lensAllows),d=p?St(n.schema,String(p)):void 0,k=d?kt(s,d).arrangement:{},c=Ct(l,o===!1?{}:k,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[]),...t.search?{searchIn:t.search}:{}}),x=e.retired!==void 0&&e.retired>0&&(m[0]?.kind??p)===p?e.retired:0,R=p&&o!==!1&&e.fidelity==="full"&&e.budget===void 0&&(l.length>1||x>0)?(0,qt.jsx)(At,{schema:n.schema,graph:n.graph,kind:String(p),arrangement:k,allow:o,query:t.query!==!1,...t.filters?{filters:t.filters,chips:{nodes:l,flagged:new Set(e.flagged??[])}}:{},onChange:M=>a(Rt(r,M)),kept:{shown:c.nodes.length,of:l.length},...x>0?{past:{count:x,widen:()=>a($t(r,!0))}}:{}}):null;return{nodes:[...y,...c.nodes],arranged:c,arrangement:k,bar:R}}function _e(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 Ie=U(De(),1);var j=U(te(),1),Wr=["slots","x","y","fill"],gn=class extends Error{constructor(n,r){super(`${n}
|
|
2
|
-
${r}`);this.hint=r;this.name="BoardBindingError"}},Ft=e=>Math.max(0,Math.min(1,e));function Vn(e,t,n,r){let a=d=>d,i=d=>r?Se(r.tryDefinition(d.kind),d):String(a(d).label??d.id);if(r&&r.tryDefinition(n.slots)===void 0)throw new gn(`No kind is declared for "${n.slots}".`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let s=e.filter(d=>d.kind===n.slots);if(!r&&s.length===0)throw new gn(`Nothing to arrange: no "${n.slots}" nodes.`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let m=t.filter(d=>d.kind===n.fill),u=new Map(e.map(d=>[d.id,d])),b=new Map(e.map((d,k)=>[d.id,k])),l=s.map(d=>{let k=a(d),c=n.fillFrom==="occupant",x=m.filter(R=>(c?R.to:R.from)===d.id).map(R=>u.get(c?R.from:R.to)).filter(R=>R!==void 0).sort((R,M)=>(b.get(R.id)??0)-(b.get(M.id)??0)).map(R=>({id:R.id,label:i(R)}));return{id:d.id,code:String(k[n.slotCode??""]??"").trim()||i(d),label:i(d),x:Ft(Number(k[n.x]??.5)),y:Ft(Number(k[n.y]??.5)),occupants:x}}).sort((d,k)=>d.y-k.y||d.x-k.x),y=new Set(l.flatMap(d=>d.occupants.map(k=>k.id))),p=new Set([...y].map(d=>u.get(d)?.kind).filter(d=>d!==void 0)),o=e.filter(d=>p.has(d.kind)&&!y.has(d.id)).map(d=>({id:d.id,label:i(d)})).sort((d,k)=>d.label<k.label?-1:d.label>k.label?1:0);return{slots:l,empty:l.filter(d=>d.occupants.length===0).map(d=>d.id),spare:o}}function Hr({nodes:e,occupants:t,label:n,fidelity:r,mode:a,options:i,schema:s,implicated:m=[],flagged:u=[]}){let{store:b}=oe(),l=_e(b.graph,b.schema,e),y=t?[...l.filter(f=>f.kind===i.slots),...t.map(f=>b.graph.getNode(f)).filter(f=>f!==void 0)]:l,p=Vn(y,b.graph.allEdges(),i,s),o=new Set(m),d=new Set(u),k=yt(),c=new Map;for(let f of k)for(let v of f.nodeIds)c.set(v,[...c.get(v)??[],f.message]);let x=f=>f?c.get(f)??[]:[];if(r==="glyph")return(0,j.jsx)(ke,{label:`${n??"Board"} \xB7 ${p.slots.length-p.empty.length}/${p.slots.length}`,hue:be("board")});if(r==="summary"){let f=p.slots.filter(v=>p.empty.includes(v.id));return(0,j.jsx)(pe,{title:n??"Board",meta:`${p.slots.length-p.empty.length}/${p.slots.length}`,tone:f.length>0?"warning":"muted",fit:!0,children:f.length>0?(0,j.jsx)(ze,{pick:!0,max:5,items:f.map(v=>({id:v.id,label:v.code}))}):(0,j.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"Every slot filled."})})}let R=i.aspect??.68,M=(0,Ie.useRef)(null),[P,w]=(0,Ie.useState)(!1),[O,g]=(0,Ie.useState)(null),L=160,[N,G]=(0,Ie.useState)(!1);(0,Ie.useEffect)(()=>{let f=M.current;if(!f||typeof ResizeObserver>"u")return;let v=new ResizeObserver(S=>{let A=S[0]?.contentRect;if(!A)return;let h=A.height<L;G(h),w(!h&&R<1&&A.width/A.height>1.3),g(h?null:A.height)});return v.observe(f),()=>v.disconnect()},[R]);let C=(f,v)=>P?{x:1-v,y:f}:{x:f,y:v},q=(()=>{let f=new Map,v=(S,A,h)=>{let $=f.get(h)??{ids:[],codes:[]};$.ids.includes(S)||($.ids.push(S),$.codes.includes(A)||$.codes.push(A)),f.set(h,$)};for(let S of p.slots){for(let A of x(S.id))v(S.id,S.code,A);for(let A of S.occupants)for(let h of x(A.id))v(A.id,A.label,h)}return[...f.entries()].map(([S,A])=>({id:A.ids[0],code:A.codes.join(", "),text:S}))})(),W=a==="fullscreen",ce=q.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:[q.slice(0,W?6:2).map(f=>(0,j.jsxs)("li",{"data-graview-pick":f.id,"data-graview-emphasis":o.size===0?"plain":o.has(f.id)?"lit":"dimmed",title:f.text,style:{display:W?"grid":"flex",gap:W?1:7,alignItems:W?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:W?"2px 0":"3px 6px",marginLeft:W?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 ",f.code]}),(0,j.jsx)("span",{style:{minWidth:0,...W?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:f.text})]},f.id)),q.length>(W?6:2)?(0,j.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",q.length-(W?6:2)," more"]}):null]}),ae=i.arrange==="shelf",ne=p.slots.every(f=>f.code.length<=3&&!/\s/.test(f.code)),D=(f,v)=>{let S=f.occupants.length===0,A=o.size>0&&!o.has(f.id)&&!f.occupants.some(J=>o.has(J.id)),h=d.has(f.id),$=f.occupants.some(J=>d.has(J.id)),T=h,Z=[...x(f.id),...f.occupants.flatMap(J=>x(J.id))],H=f.occupants.length===1?f.occupants[0]:null,K=i.pickTarget==="slot"?f.id:H?H.id:f.id,Y=J=>H?{}:{"data-graview-pick":J.id,"data-graview-emphasis":o.size===0?"plain":A?"dimmed":"lit"},le=J=>d.has(J.id)?"var(--graview-warn)":"var(--graview-ink-muted)",ge=i.emptyLabel??"empty";return(0,j.jsxs)("div",{"data-graview-pick":K,"data-graview-slot":f.id,"data-graview-mark":ne?"disc":"token","data-graview-flagged":h&&$?"both":h?"slot":$?"occupant":void 0,"data-graview-emphasis":o.size===0?"plain":A?"dimmed":"lit",title:[S?`${f.label} \u2014 nobody in it`:`${f.occupants.map(J=>J.label).join(", ")} at ${f.label}`,...Z].join(`
|
|
3
|
-
`),style:{...v,display:"grid",justifyItems:ne?"center":"start",gap:3,opacity:A?.5:1,transition:"opacity 160ms ease"},children:[ne?(0,j.jsxs)("span",{style:{position:"relative",width:34,height:34,borderRadius:999,display:"grid",placeItems:"center",fontSize:"0.75rem",letterSpacing:"0.02em",border:S?"1.5px dashed var(--graview-warn)":`1px solid ${T?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:S?"transparent":T?"var(--graview-panel-warning)":"var(--graview-panel)",color:S||T?"var(--graview-warn)":"var(--graview-ink)",boxShadow:S?void 0:"var(--graview-lift-low)"},children:[f.code,h&&!S?(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:S?"1.5px dashed var(--graview-warn)":`1px solid ${T?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:S?"transparent":T?"var(--graview-panel-warning)":"var(--graview-panel)",boxShadow:S?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:S||T?"var(--graview-warn)":"var(--graview-ink)"},children:[f.code,h&&!S?" \u26A0":null]}),S?(0,j.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.3,color:"var(--graview-warn)"},children:ge}):(0,j.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:"0 8px",fontSize:"0.75rem",lineHeight:1.3},children:f.occupants.map(J=>(0,j.jsxs)("span",{...Y(J),style:{whiteSpace:"nowrap",color:le(J)},children:[J.label,d.has(J.id)?" \u26A0":""]},J.id))})]}),ne?S?(0,j.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:ge}):f.occupants.map(J=>(0,j.jsxs)("span",{...Y(J),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:le(J)},children:[J.label,d.has(J.id)?" \u26A0":""]},J.id)):null]},f.id)},Q=i.zones??[],ue=Q.map((f,v)=>({label:f.label,slots:p.slots.filter(S=>S.y>=f.from&&(S.y<f.to||v===Q.length-1&&S.y<=f.to))})),I=new Set(ue.flatMap(f=>f.slots.map(v=>v.id))),E=p.slots.filter(f=>!I.has(f.id));(E.length>0||ue.length===0)&&ue.push({label:"",slots:E});let _={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)(pe,{title:n??"Board",meta:p.slots.length===0?void 0:p.empty.length===0?`all ${p.slots.length} filled`:`${p.empty.length} unfilled`,...W?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:[(0,j.jsxs)("div",{ref:M,style:{display:"flex",gap:28,alignItems:"stretch",justifyContent:"center",flex:"1 1 auto",minHeight:0},children:[W&&ce?(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"}),ce]}):null,ae?(0,j.jsx)("div",{"data-graview-primitive":"board","data-graview-arrange":"shelf",style:{..._,overflow:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"stretch",display:"grid",alignContent:"start"},children:ue.map((f,v)=>(0,j.jsxs)("section",{"data-graview-zone":f.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...v>0?{borderTop:"1px dashed var(--graview-edge)"}:{}},children:[f.label?(0,j.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:f.label}):null,f.slots.length>0?(0,j.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 12px",alignItems:"flex-start"},children:f.slots.map(S=>D(S,{}))}):(0,j.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},f.label||`band-${v}`))}):(0,j.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...N?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!P&&Q.length>0?(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:Q.map(f=>(0,j.jsx)("span",{title:f.label,style:{position:"absolute",top:`${f.from*100}%`,height:`${(f.to-f.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:f.label},f.label))}):null,(0,j.jsxs)("div",{"data-graview-primitive":"board","data-graview-arrange":"exact",style:{..._,position:"relative",aspectRatio:`${P?1/R:R}`,...N?{width:"100%",height:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"flex-start"}:{height:"100%",flex:"0 1 auto",...O!==null?{width:Math.round(O*(P?1/R:R))}:{}},maxWidth:"100%"},children:[Q.map(f=>(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",...P?{top:0,bottom:0,left:`${(1-f.to)*100}%`,width:`${(f.to-f.from)*100}%`,borderLeft:"1px dashed var(--graview-edge)"}:{left:0,right:0,top:`${f.from*100}%`,height:`${(f.to-f.from)*100}%`,borderBottom:"1px dashed var(--graview-edge)"}}},f.label)),P?Q.map(f=>(0,j.jsx)("span",{"aria-hidden":"true",title:f.label,style:{position:"absolute",bottom:3,left:`${(1-f.to)*100}%`,width:`${(f.to-f.from)*100}%`,textAlign:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:f.label},`label-${f.label}`)):null,p.slots.map(f=>D(f,{position:"absolute",left:`${C(f.x,f.y).x*100}%`,top:`${C(f.x,f.y).y*100}%`,transform:"translate(-50%, -50%)",width:"max-content",maxWidth:"100%"}))]})]}),p.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)(ze,{pick:!0,max:10,items:p.spare.map(f=>({...f,emphasis:o.size===0?"plain":o.has(f.id)?"lit":"dimmed"}))})]}):null]}),W?null:ce]})}function _t(e){function t(n){let{store:r}=oe(),a=Vn(_e(r.graph,r.schema,n.nodes),r.graph.allEdges(),e,r.schema),s=[...a.slots.flatMap(l=>l.occupants.map(y=>y.id)),...a.spare.map(l=>l.id)].map(l=>r.graph.getNode(l)).filter(l=>l!==void 0),{arranged:m,bar:u}=Te(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},subject:s}),b=(0,j.jsx)(Hr,{schema:r.schema,...n,options:e,...e.arranging===!1?{}:{occupants:m.nodes.map(l=>l.id)}});return Be(n,r.schema,u?(0,j.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[u,b]}):b)}return{name:"board",requiredRoles:[...Wr],options:e,View:t,build(n,r,a){return Vn(n,r,e,a)}}}var xn=U(De(),1);var Ut=864e5;function Gn(e){if(typeof e!="string")return null;if(Nn(e))return Dn(e)?.day??null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:null}function pn(e){if(typeof e!="string")return null;if(Nn(e))return Dn(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 mn=e=>Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),fn=e=>new Date(e).toISOString().slice(0,10);function Re(e,t){return fn(mn(e)+t*Ut)}function Ge(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 fn(Date.UTC(n,r,Math.min(a,i)))}var jn=e=>new Date(mn(e)).getUTCDay();function Ue(e,t=1){let n=(jn(e)-t+7)%7;return Re(e,-n)}var qn=e=>`${e.slice(0,7)}-01`;function we(e,t){return Math.round((mn(t)-mn(e))/Ut)}function Ke(e,t){return Array.from({length:t},(n,r)=>Re(e,r))}var Kt=e=>it(e,"short"),Pe=e=>rt(e,{weekday:"short"}),Fn=e=>Xe(e);function je(e,t){let n=t?.fieldRoles?.when;return e&&!e.start&&n?{...e,start:n}:e}function Yt(e,t){return t===void 0?!1:typeof t=="string"?e[t]===!0:t.is.includes(e[t.field])}var hn=["start"],Vr=["day","week","month","quarter","year","agenda"];function yn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:Vr}function Qt(e,t){return e==="years"?t?.title??"Years":`The ${e}`}function Jt(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var _n=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 wn(e,t,n){let r=je(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=hn.filter(y=>{let p=r[y];return p?i?!(p in i):!(p in a):!0});if(s.length>0)throw new _n(e.kind,s);let m=Gn(a[r.start]);if(m===null)return null;let u=(r.end?Gn(a[r.end]):null)??m,b=pn(a[r.start]),l=r.label?a[r.label]:void 0;return{id:e.id,kind:e.kind,label:typeof l=="string"&&l.length>0?l:Se(n?.tryDefinition(e.kind),e),from:m,to:we(m,u)<0?m:u,at:r.allDay&&a[r.allDay]===!0?null:b,allDay:r.allDay&&a[r.allDay]===!0||b===null,done:Yt(a,r.done)}}function Xt(e,t,n,r){let a=wn(e,t,n);if(!a)return[];let i=je(t[e.kind],n?.tryDefinition(e.kind)).start,s=e,m=s[i],u=s[lt(i)];if(typeof m!="string"||!dt(u))return[a];let b=we(a.from,a.to);return("next"in r?[ut(m,u,r.next)]:ct(m,u,{from:Re(r.from,-b),to:r.to,limit:400})).map(y=>({...a,from:y.slice(0,10),to:Re(y.slice(0,10),b),repeats:!0}))}function vn(e,t){return e.filter(n=>we(n.from,t)>=0&&we(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 Zt(e,t,n){let r=gt(e.schema,e.allMutations()).get(t)?.get(n)??[],a=new Map(e.allMutations().map(s=>[s.name,s]));for(let s of r){let m=a.get(s),u=m?.subject;if(!m||!u)continue;let b=m.input?.shape??{};if(n in b)return{name:m.name,arg:u.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 er=(e,t)=>({from:qn(e),to:nr(e),label:Mn(e,{short:!0,year:t})});function nr(e){return fn(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function Gr(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 tr(e,t,n={}){let r=n.weekStartsOn??1,a=(u,b)=>({from:u,to:u,label:String(Number(u.slice(8,10))),...b?{outside:!0}:{}});if(e==="day")return{title:Pe(t),grain:"day",columns:1,cells:[a(t)]};if(e==="week"){let u=Ue(t,r);return{title:`${Pe(u)} \u2013 ${Pe(Re(u,6))}`,grain:"day",columns:7,cells:Ke(u,7).map(b=>a(b))}}if(e==="agenda")return{title:`From ${Pe(t)}`,grain:"day",columns:1,cells:Ke(t,42).map(u=>a(u))};if(e==="quarter"){let u=Gr(t),b=nr(Ge(u,2)),l=[];for(let y=Ue(u,r);we(y,b)>=0;y=Re(y,7))l.push({from:y,to:Re(y,6),label:at(y),...we(y,u)>0&&we(Re(y,6),u)>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:l}}if(e==="year"){let u=t.slice(0,4);return{title:u,grain:"month",columns:4,cells:Array.from({length:12},(b,l)=>er(`${u}-${String(l+1).padStart(2,"0")}-01`,!1))}}if(e==="years"){let u=Number(t.slice(0,4)),b=u+Math.max(1,n.horizon?.years??1)-1,l=n.horizon?.from!==void 0||n.horizon?.to!==void 0,y=l?n.horizon?.from??u:Math.min(u,n.fit?.first??u),o=(l?Math.max(y,n.horizon?.to??y+Math.max(1,n.horizon?.years??1)-1):Math.max(b,n.fit?.last??b))-y+1,d=Array.from({length:o},(k,c)=>String(y+c));return o>jr?{title:`${n.horizon?.title??"Years"} \xB7 ${d[0]}\u2013${d[d.length-1]}`,grain:"year",columns:5,years:d,cells:d.map(k=>({from:`${k}-01-01`,to:`${k}-12-31`,label:k}))}:{title:`${n.horizon?.title??"Years"} \xB7 ${d[0]}\u2013${d[d.length-1]}`,grain:"month",columns:4,years:d,cells:d.flatMap(k=>Array.from({length:12},(c,x)=>er(`${k}-${String(x+1).padStart(2,"0")}-01`,!0)))}}let i=qn(t),s=Ue(i,r),m=t.slice(0,7);return{title:Mn(t),grain:"day",columns:7,cells:Ke(s,42).map(u=>a(u,u.slice(0,7)!==m))}}function rr(e,t,n){return e.filter(r=>we(r.from,n)>=0&&we(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 jr=10;function ar(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var ir=U(De(),1);var ie=U(te(),1);function Un({label:e,glyph:t,onPress:n}){return(0,ie.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:Ye,children:t})}var Ye={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"},or={day:12,week:4,month:3,year:5};function sr({span:e,weekStartsOn:t,entries:n,today:r,perCell:a,emphasisOf:i,broken:s,hue:m,onOpen:u,onMove:b}){let l=(0,ir.useRef)(null),y=Fe(l),p=y===null?e.columns:Math.max(1,Math.floor(y/44)),o=p<e.columns,d=o?p:e.columns,k=!o&&e.grain==="day"&&e.columns===7?Ke(Ue(e.cells[0]?.from??r,t),7):e.grain==="day"&&e.columns===1?e.cells.map(c=>c.from):null;return o&&e.grain==="day"&&e.columns>1?(0,ie.jsx)("div",{ref:l,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,ie.jsx)(bn,{days:e.cells.map(c=>c.from),entries:n,today:r,emphasisOf:i,broken:s,hue:m,onMove:(c,x)=>b(c,{from:x,to:x,label:x},"day")})}):(0,ie.jsxs)("div",{ref:l,"data-calendar-shape":o?"wrapped":"grid",style:{display:"grid",gap:4,gridTemplateRows:k?"auto 1fr":"1fr",minHeight:0,flex:1},children:[k?(0,ie.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${d}, minmax(0, 1fr))`,gap:4},children:k.map(c=>(0,ie.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?Kt(jn(c)):Pe(c)},c))}):null,(0,ie.jsx)("div",{tabIndex:0,"aria-label":`The days of ${e.title}`,style:{display:"grid",gridTemplateColumns:`repeat(${d}, minmax(0, 1fr))`,gridAutoRows:"max-content",gap:4,minHeight:0,overflow:"auto"},children:e.cells.map((c,x)=>{let R=rr(n,c.from,c.to),M=R.slice(0,a),P=R.slice(a),w=P.filter(g=>s.has(g.id)).length,O=we(c.from,r)>=0&&we(r,c.to)>=0;return(0,ie.jsxs)("div",{"data-calendar-day":e.grain==="day"?c.from:void 0,"data-calendar-cell":c.from,"data-calendar-grain":e.grain,"data-calendar-count":R.length,"data-calendar-outside":c.outside||void 0,onDragOver:g=>{g.dataTransfer.types.includes("text/graview-node")&&(g.preventDefault(),g.dataTransfer.dropEffect="move")},onDrop:g=>{let L=g.dataTransfer.getData("text/graview-node");L&&(g.preventDefault(),g.stopPropagation(),b(L,c,e.grain))},style:{minHeight:62,display:"flex",flexDirection:"column",gap:2,padding:4,borderRadius:7,border:"1px solid var(--graview-edge)",background:O?"var(--graview-panel)":c.outside?"var(--graview-panel-muted)":"transparent"},children:[(0,ie.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,ie.jsx)("span",{style:{fontSize:"0.75rem",fontVariantNumeric:"tabular-nums",color:O?"var(--graview-accent)":"var(--graview-ink-faint)"},children:c.label}),e.grain!=="day"&&R.length>0?(0,ie.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:R.length}):null]}),M.map(g=>(0,ie.jsx)(lr,{entry:g,cell:c,rowStart:x%d===0,emphasis:i(g.id),flagged:s.has(g.id),hue:m(g)},`${g.id}:${g.from}:${c.from}`)),P.length>0?(0,ie.jsxs)("button",{type:"button","data-testid":`calendar-more-${c.from}`,onClick:()=>u(c),title:`Open ${c.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:["+",P.length," more",w>0?` \xB7 ${w} flagged`:""]}):null]},c.from)})})]})}function bn({days:e,entries:t,today:n,emphasisOf:r,broken:a,hue:i,onMove:s}){let m=e.map(u=>({day:u,here:vn(t,u)})).filter(({here:u})=>u.length>0);return m.length===0?(0,ie.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,ie.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:m.map(({day:u,here:b})=>(0,ie.jsxs)("li",{"data-calendar-day":u,onDragOver:l=>{l.dataTransfer.types.includes("text/graview-node")&&(l.preventDefault(),l.dataTransfer.dropEffect="move")},onDrop:l=>{let y=l.dataTransfer.getData("text/graview-node");y&&(l.preventDefault(),l.stopPropagation(),s(y,u))},style:{display:"grid",gap:4},children:[(0,ie.jsxs)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:u===n?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[Pe(u),u===n?" \xB7 today":""]}),b.map(l=>(0,ie.jsx)(lr,{entry:l,cell:{from:u,to:u,label:u},emphasis:r(l.id),flagged:a.has(l.id),hue:i(l)},`${l.id}:${l.from}:${u}`))]},u))})}function lr({entry:e,cell:t,emphasis:n,flagged:r,hue:a,rowStart:i=!1}){let s=we(t.from,e.from)>=0,m=we(e.to,t.to)>=0,u=!(s&&m),b=e.at!==null&&s&&e.from===t.from?`${Fn(e.at)} ${e.label}`:e.label;return(0,ie.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:l=>{l.dataTransfer.setData("text/graview-node",e.id),l.dataTransfer.effectAllowed="move"},"data-graview-emphasis":n,"data-calendar-part":u?s?"opens":m?"closes":"through":void 0,"data-calendar-in":t.from,title:u?`${e.label} \xB7 ${e.from} \u2013 ${e.to}`:`${e.label}${e.at===null?" \xB7 all day":` \xB7 ${Fn(e.at)}`}${e.repeats?" \xB7 repeats":""}`,style:{display:"block",minHeight:24,boxSizing:"border-box",padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.35,borderRadius:u?s?"5px 0 0 5px":m?"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,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),b]}):b:" "})}var ee=U(te(),1);function qr(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 dr(e){let t=n=>function(a){let{store:i}=oe(),{view:s}=nn(),m=n?{...e,range:n}:e,u=s.within?.range??m.range??"month",b=Object.keys(e.bindings),{nodes:l,arranged:y,arrangement:p,bar:o}=Te(a,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{sort:!1,group:u==="agenda"},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{},...b[0]?{kind:(a.nodes??[]).find(R=>b.includes(String(R.kind)))?.kind??b[0]}:{}}),d=u==="agenda"&&y.grouped&&p.group?y.groups.map(R=>({label:R.label,ids:new Set(R.nodes.map(M=>M.id))})):void 0,k=new Set((a.nodes??[]).map(R=>String(R.kind))),c=b.filter(R=>!k.has(R)&&i.schema.tryDefinition(R)!==void 0).flatMap(R=>{let M=i.schema.tryDefinition(R);return i.graph.nodesOfKind(R).filter(P=>s.past===!0||Ve(M,P))}),x=c.length===0?l:[...l,...a.budget!==void 0?c.slice(0,a.budget):c];return Be(a,i.schema,(0,ee.jsx)(Fr,{schema:i.schema,...a,nodes:x,options:{...m,today:m.today??i.today()??Jt()},...o?{bar:o}:{},...d?{groups:d}:{}}))};return{name:"calendar",requiredRoles:[...hn],bindings:e.bindings,options:e,View:t(),at:n=>t(n),ranges:()=>yn(e).map(n=>({range:n,title:Qt(n,e.horizon)})),place:(n,r)=>n.map(a=>wn(a,e.bindings,r)).filter(a=>a!==null)}}function Fr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:m=[],flagged:u=[],bar:b,groups:l}){let{view:y,go:p}=nn(),{store:o,principal:d}=oe(),k=y.within?.at??a.today,c=y.within?.range??a.range??"month",x=a.weekStartsOn??1,R=new Set([...m,...s]),M=E=>R.size===0?"plain":R.has(E)?"lit":"dimmed",P=new Set(u),w=c==="years"&&y.within?.at===void 0?qr((e??[]).map(E=>wn(E,a.bindings,i))):void 0,O=tr(c,k,{weekStartsOn:x,...a.horizon?{horizon:a.horizon}:{},...w?{fit:w}:{}}),L=n==="glyph"||n==="summary"?{next:a.today}:{from:O.cells[0]?.from??k,to:O.cells[O.cells.length-1]?.to??k},N=(e??[]).flatMap(E=>Xt(E,a.bindings,i,L)),G=a.hueOf??(E=>be(E.kind));if(n==="glyph")return(0,ee.jsx)(ke,{label:`${t??"Calendar"} \xB7 ${N.length}`,hue:be("calendar")});if(n==="summary"){let E=vn(N,a.today);return(0,ee.jsx)(pe,{title:t??"Calendar",meta:`${N.length} dated`,tone:"muted",children:(0,ee.jsx)(ze,{max:6,items:E.length>0?E.map(_=>({id:_.id,label:_.label,hue:G(_)})):N.filter(_=>we(a.today,_.from)>=0).sort((_,f)=>_.from.localeCompare(f.from)).slice(0,6).map(_=>({id:_.id,label:`${_.from.slice(5)} ${_.label}`,hue:G(_)}))})})}let C=r==="fullscreen",[q,W]=(0,xn.useState)(null),ce=(E,_,f)=>{let v=o.graph.getNode(E);if(!v)return;let S=je(a.bindings[v.kind],o.schema.tryDefinition(v.kind));if(!S)return;let A=Zt(o,v.kind,S.start);if(!A){W({text:`Nothing declared writes the ${Ln(o.schema.definitions.find(Y=>Y.kind===v.kind),S.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let h=_.from,$=v[S.start],Z=pn($)===null?h:`${h}${String($).slice(10)}`,H={name:A.name,args:{[A.arg]:E,[S.start]:Z}},K=o.permits(H,d);if(!K.ok){W({text:K.refusal.message,tone:"refused"});return}try{o.apply(H,{author:d}),W(f==="day"?null:{text:`Moved to ${Pe(h)} \u2014 a ${f} is coarser than the ${Ln(o.schema.definitions.find(Y=>Y.kind===v.kind),S.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(Y){W({text:Y instanceof Error?Y.message:String(Y),tone:"refused"})}},ae=E=>{let _=c==="years"?Ge(`${O.years?.[0]??k.slice(0,4)}${k.slice(4)}`,E*12*Math.max(1,O.years?.length??a.horizon?.years??1)):c==="year"?Ge(k,E*12):c==="quarter"?Ge(k,E*3):c==="month"?Ge(k,E):c==="week"?Re(k,E*7):Re(k,E);p(en(y,"at",_))},ne=(E,_)=>{let f=en(y,"range",E);_!==void 0&&(f=en(f,"at",_)),p(f)},D=(0,xn.useRef)(null),Q=Fe(D),ue=Q!==null&&Q<420,I=E=>E==="years"?a.horizon?.title??"years":E.charAt(0).toUpperCase()+E.slice(1);return(0,ee.jsx)(pe,{title:t??"Calendar",meta:O.title,style:{gap:10,...C?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,ee.jsxs)("div",{ref:D,"data-testid":"calendar","data-calendar-range":c,"data-calendar-at":k,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,gap:8},children:[(0,ee.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6},children:[(0,ee.jsxs)("nav",{"aria-label":"When",style:{display:"flex",gap:4},children:[(0,ee.jsx)(Un,{label:"Previous",glyph:"\u2039",onPress:()=>ae(-1)}),(0,ee.jsx)("button",{type:"button","data-testid":"calendar-today",onClick:()=>p(en(y,"at",a.today)),style:Ye,children:"Today"}),(0,ee.jsx)(Un,{label:"Next",glyph:"\u203A",onPress:()=>ae(1)})]}),ue?(0,ee.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:c,onChange:E=>ne(E.target.value),style:{...Ye,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:yn(a).map(E=>(0,ee.jsx)("option",{value:E,children:I(E)},E))}):(0,ee.jsx)("div",{role:"group","aria-label":"Range","data-testid":"calendar-ranges",style:{display:"flex",flexWrap:"wrap",gap:4,marginLeft:"auto"},children:yn(a).map(E=>(0,ee.jsx)("button",{type:"button","aria-pressed":E===c,"data-testid":`calendar-range-${E}`,onClick:()=>ne(E),style:{...Ye,borderRadius:999,borderColor:"var(--graview-edge)",...E==="years"?{}:{textTransform:"capitalize"},...E===c?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)",background:"var(--graview-panel)"}:{}},children:E==="years"?a.horizon?.title??"years":E},E))})]}),q?(0,ee.jsx)("p",{"data-testid":q.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:q.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:q.text}):null,O.years?(0,ee.jsx)("nav",{"aria-label":"Years","data-testid":"calendar-years",style:{display:"flex",flexWrap:"wrap",gap:4},children:O.years.map(E=>(0,ee.jsx)("button",{type:"button","data-testid":`calendar-year-${E}`,onClick:()=>ne("year",`${E}-01-01`),style:Ye,children:E},E))}):null,b,c==="agenda"&&l?(0,ee.jsx)("div",{"data-testid":"calendar-groups",style:{display:"grid",gap:10,minHeight:0,overflow:"auto"},children:l.map(E=>(0,ee.jsxs)("section",{"data-testid":"calendar-group",style:{display:"grid",gap:4},children:[(0,ee.jsxs)("h3",{style:{margin:0,fontSize:"0.8125rem",letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},children:[E.label," ",(0,ee.jsx)("span",{style:{fontWeight:400},children:E.ids.size})]}),(0,ee.jsx)(bn,{days:O.cells.map(_=>_.from),entries:N.filter(_=>E.ids.has(_.id)),today:a.today,emphasisOf:M,broken:P,hue:G,onMove:(_,f)=>ce(_,{from:f,to:f,label:f},"day")})]},E.label))}):c==="agenda"?(0,ee.jsx)(bn,{days:O.cells.map(E=>E.from),entries:N,today:a.today,emphasisOf:M,broken:P,hue:G,onMove:(E,_)=>ce(E,{from:_,to:_,label:_},"day")}):(0,ee.jsx)(sr,{span:O,weekStartsOn:x,entries:N,today:a.today,perCell:a.perCell??or[O.grain],emphasisOf:M,broken:P,hue:G,onOpen:E=>ne(ar(O.grain),E.from),onMove:ce})]})})}var re=U(De(),1);var Qe=U(De(),1),Ae=U(te(),1),Sn={padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:"transparent",background:"none",boxShadow:"none"};function cr({choices:e,close:t}){let[n,r]=(0,Qe.useState)(!1),a=(0,Qe.useRef)(null);return(0,Qe.useLayoutEffect)(()=>{n&&a.current?.querySelector("button:not([disabled])")?.focus()},[n]),(0,Ae.jsxs)("div",{children:[(0,Ae.jsxs)("button",{type:"button","data-menu-item":"move-to","aria-expanded":n,onClick:()=>r(i=>!i),style:Sn,children:["Move to ",(0,Ae.jsx)("span",{"aria-hidden":"true",children:"\u203A"})]}),n?(0,Ae.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,Ae.jsx)("li",{children:(0,Ae.jsx)("button",{type:"button","data-move-to":i.to,onClick:()=>{t(),i.run()},style:Sn,children:i.label})},i.to):(0,Ae.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,Ae.jsx)("button",{type:"button",disabled:!0,"data-move-to":i.to,"data-withheld":"",style:{...Sn,borderStyle:"dashed"},children:(0,Ae.jsx)("s",{children:i.label})}),(0,Ae.jsx)("span",{"data-testid":"move-to-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:i.why})]},i.to))}):null]})}function ur({choose:e,close:t}){return(0,Ae.jsx)("button",{type:"button","data-menu-item":"choose-several",onClick:()=>{t(),e()},style:Sn,children:"Choose several"})}var z=U(te(),1),_r=`
|
|
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: ${Le.raised}; display: flex; justify-content: flex-end; margin-top: 4px; }
|
|
19
|
-
.graview-columns-move[data-open="true"] { z-index: ${Le.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: ${Le.over}; display: flex; flex-direction: column; gap: 4px; padding: 6px; min-width: 10rem; border-radius: 9px; border: 1px solid var(--graview-edge); background: var(--graview-panel); box-shadow: 0 6px 18px rgb(0 0 0 / 0.18); }
|
|
23
|
-
.graview-columns-menu button { text-align: left; }
|
|
24
|
-
.graview-columns-said { margin: 0 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--graview-ink); }
|
|
25
|
-
.graview-columns-said[data-tone="refused"] { color: var(--graview-warn); }
|
|
26
|
-
.graview-columns-card { position: relative; -webkit-touch-callout: none; }
|
|
27
|
-
.graview-columns-card .graview-choose-at { position: absolute; top: 6px; right: 6px; z-index: ${Le.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 gr(e){function t(n){let{store:r}=oe();ht();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))),m=w=>r.graph.nodesOfKind(w).filter(O=>Ve(r.schema.tryDefinition(w),O)),u=n.total!==void 0&&n.total>i.length,b=a[0],l=b===void 0?[]:s.has(b)?i.filter(w=>w.kind===b):m(b),{arranged:y,arrangement:p,bar:o}=Te(n,{lensAllows:{group:!1},subject:l,...b===void 0?{}:{kind:b},query:e.search!==void 0||l.length>pt,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),d=o?new Map(y.nodes.map((w,O)=>[w.id,O])):void 0,k=(w,O)=>{if(!d||w!==b)return O;let g=O.filter(L=>d.has(L.id));return p.sort===void 0?g:[...g].sort((L,N)=>d.get(L.id)-d.get(N.id))},c=a.map(w=>{let O=e.bindings[w].column,g=Pt(r.schema,w,O),L=(D,Q)=>Q==="label"?Se(r.schema.tryDefinition(D.kind),D):D[Q],N=k(w,Ze(s.has(w)?i.filter(D=>D.kind===w):m(w).slice(0,n.budget??1/0),e.sort,L)),G=m(w),C=s.has(w)&&!u?N:k(w,G),q=new Set(e.hidden??[]),W=r.schema.tryDefinition(w),ce=!!p.query||(p.filter?.length??0)>0,ae=new Set([...G,...s.has(w)?i.filter(D=>D.kind===w):[]].map(D=>D.id)),ne=W?.lifecycle&&n.budget===void 0&&n.fidelity==="full"&&!ce?r.graph.nodesOfKind(w).filter(D=>!ae.has(D.id)&&!Ve(W,D)):[];return{kind:w,field:O,all:g,born:new Map(G.map((D,Q)=>[D.id,Q])),columns:g.filter(D=>D.value===null||!q.has(D.value)).map(D=>({column:D,cards:N.filter(Q=>tn(Q,O,g)===D.value),count:C.filter(Q=>tn(Q,O,g)===D.value).length,past:ne.filter(Q=>tn(Q,O,g)===D.value)})).filter(D=>D.column.value!==null||D.count>0||D.past.length>0)}}),x=c.reduce((w,O)=>w+O.columns.reduce((g,L)=>g+L.count,0),0),R=n.label??"Board";if(n.fidelity==="glyph")return(0,z.jsx)(ke,{label:`${R} \xB7 ${x}`,hue:be("columns")});if(n.fidelity==="summary")return(0,z.jsx)(pe,{title:R,meta:b?qe(r.schema,b,x):String(x),tone:"muted",children:(0,z.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:c.flatMap(w=>w.columns.map(O=>`${O.column.label} ${O.count}`)).join(" \xB7 ")})});let M=(0,z.jsx)(Ur,{boards:c,title:R,options:e}),P=o?(0,z.jsxs)("div",{style:{display:"grid",gap:6},children:[o,M]}):M;return Be(n,r.schema,n.mode==="fullscreen"?(0,z.jsx)("div",{style:{padding:"14px 16px"},children:P}):(0,z.jsx)(pe,{title:R,meta:b?qe(r.schema,b,x):void 0,children:P}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function Ur({boards:e,title:t,options:n}){let{store:r,principal:a}=oe(),i=(0,re.useRef)(null),[s,m]=(0,re.useState)(null),[u,b]=(0,re.useState)(null),[l,y]=(0,re.useState)(null),[p,o]=(0,re.useState)(null),[d,k]=(0,re.useState)(""),[c,x]=(0,re.useState)(()=>new Set),[R,M]=(0,re.useState)(()=>new Set(n.collapsed??[])),[P,w]=(0,re.useState)(()=>new Set),[O,g]=(0,re.useState)(null),L=(0,re.useId)();(0,re.useLayoutEffect)(()=>{if(!O)return;i.current?.querySelector(O)?.focus(),g(null)});let N=v=>{let S=r.graph.getNode(v);return S?Se(r.schema.tryDefinition(S.kind),S):v},G=(0,re.useMemo)(()=>e.flatMap(v=>v.columns.flatMap(S=>S.cards.map(A=>A.id))),[e]),C=Bt(G),q=(0,re.useMemo)(()=>r.permittedMutations(a).some(v=>{let S=v.subject?.kinds;return S!==void 0&&(S==="*"||e.some(A=>S.includes(A.kind)))}),[r,a,e]),W=v=>{C.choose(v),requestAnimationFrame(()=>{((v[0]===void 0?null:i.current?.querySelector(`[data-graview-choose-box="${rn(v[0])}"]`))??i.current)?.focus({preventScroll:!0})})},ce=(v,S)=>Nt(r,a,v,S.field,S.columns.map(A=>A.column)),ae=v=>n.move?`[data-columns-move="${rn(v)}"] > button`:`[data-graview-listed="${rn(v)}"] .graview-spec-item-link`,ne=(v,S,A,h)=>{try{let $=r.apply(S.call,{author:a});m({text:`Moved \u201C${N(v)}\u201D to ${A}.`,tone:"moved",batch:$.batch,id:v}),h==="keyboard"&&g(ae(v)),h==="carry"&&g(`[data-graview-listed="${rn(v)}"] .graview-spec-item-link`),h==="menu"&&Kr(()=>i.current?.querySelector(`[data-graview-listed="${rn(v)}"] .graview-spec-item-link`)??null)}catch($){m({text:$ instanceof Error?$.message:String($),tone:"refused"})}},D=()=>{if(s?.batch)try{r.undo(s.batch,{author:a}),m({text:`\u201C${N(s.id??"")}\u201D is back where it was.`,tone:"moved"}),s.id&&g(ae(s.id))}catch(v){m({text:v instanceof Error?v.message:String(v),tone:"refused"})}},Q=(0,re.useRef)({move:ne,boards:e,choosing:C,choosable:q});Q.current={move:ne,boards:e,choosing:C,choosable:q},(0,re.useEffect)(()=>{let S=[...new Set(e.map(A=>A.kind))].map(A=>zt({store:r,kind:A,root:()=>i.current,section:(h,$)=>{let T=Q.current.boards.find(ge=>ge.kind===A),Z=r.graph.getNode(h);if(!T||!Z)return null;let H=Dt(r,$,Z,T.field,T.all).map(ge=>({to:ge.to,label:ge.label,...ge.why!==void 0?{why:ge.why}:{},...ge.move?{run:()=>Q.current.move(h,ge.move,ge.label,"menu")}:{}})),{choosing:K,choosable:Y}=Q.current,le=Y&&K.chosen.length===0&&typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches?()=>K.toggle(h):void 0;return H.length===0&&!le?null:{id:"move-to",at:"start",render:ge=>(0,z.jsxs)(z.Fragment,{children:[H.length>0?(0,z.jsx)(cr,{choices:H,close:ge}):null,le?(0,z.jsx)(ur,{choose:le,close:ge}):null]})}}}));return()=>S.forEach(A=>A())},[r,e]);let ue=(v,S)=>v.all.find(A=>A.value===S)?.label??v.columns.find(A=>A.column.value===S)?.column.label??String(S),I=(v,S,A)=>v.columns.find(h=>h.column.value===S)?.cards.filter(h=>h.id!==A)??[],E=(v,S,A,h)=>{let $=I(v,S,h).length+1;return`${ue(v,S)}, ${Math.min(A,$-1)+1} of ${$}.`},_=(v,S,A,h)=>{let $=N(S.id),T=()=>{v.preventDefault(),v.stopPropagation()};if(p?.id!==S.id){if(v.key!==" "||h.length===0||!(v.target instanceof HTMLElement)||!v.target.classList.contains("graview-spec-item-link"))return;T();let H=tn(S,A.field,A.all),K=Math.max(0,A.columns.find(Y=>Y.column.value===H)?.cards.findIndex(Y=>Y.id===S.id)??0);o({id:S.id,from:H,to:H,at:K}),k(`${$}, picked up. ${E(A,H,K,S.id)} Arrow keys move it, Space drops it, Escape puts it back.`);return}let Z=A.columns.map(H=>H.column.value).filter(H=>H===p.from||h.some(K=>K.to===H));if(v.key==="ArrowLeft"||v.key==="ArrowRight"){T();let H=Z[Z.indexOf(p.to)+(v.key==="ArrowLeft"?-1:1)];if(H===void 0)return k(`No column further ${v.key==="ArrowLeft"?"left":"right"} takes ${$}. ${E(A,p.to,p.at,S.id)}`);let K=Math.min(p.at,I(A,H,S.id).length);return o({...p,to:H,at:K}),k(E(A,H,K,S.id))}if(v.key==="ArrowUp"||v.key==="ArrowDown"){T();let H=Math.max(0,Math.min(I(A,p.to,S.id).length,p.at+(v.key==="ArrowUp"?-1:1)));return o({...p,at:H}),k(E(A,p.to,H,S.id))}if(v.key===" "||v.key==="Enter"){T(),o(null);let H=p.to===p.from?void 0:h.find(K=>K.to===p.to);return H?(k(`${$}, dropped in ${ue(A,p.to)}.`),ne(S.id,H,ue(A,p.to),"carry")):k(`${$}, dropped back in ${ue(A,p.from)}.`)}if(v.key==="Escape")return T(),o(null),k(`${$}, put back in ${ue(A,p.from)}.`)},f=v=>{if(p?.id!==v)return;let S=e.find(A=>A.kind===r.graph.getNode(v)?.kind);o(null),S&&k(`${N(v)}, put back in ${ue(S,p.from)}.`)};return(0,z.jsxs)("div",{"data-testid":"columns-lens",...q?{...C.listProps,tabIndex:-1,role:"group","aria-label":C.chosen.length>0?`${t}, ${C.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:v=>{i.current=v,C.list.current=v},children:[(0,z.jsx)("style",{children:_r}),q?(0,z.jsx)("style",{children:It}):null,(0,z.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,z.jsx)("span",{children:s.text}):null,s?.batch?(0,z.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:D,children:"Undo"}):null]}),(0,z.jsx)("p",{"aria-live":"assertive","data-testid":"columns-announce",style:wt,children:d}),(0,z.jsx)("span",{id:L,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,z.jsx)("section",{"data-columns-kind":v.kind,"data-columns-field":v.field,"aria-label":`${ot(r.schema,v.kind)} by ${v.field}`,children:(0,z.jsx)("div",{className:"graview-columns",children:v.columns.map(({column:S,cards:A,count:h,past:$})=>{let T=S.value??"",Z=`${v.kind}\0${T}`,H=$.length>0&&P.has(Z),K=H?[...A,...$]:A,Y=H?h+$.length:h,le=$.length>0&&!H?$.length:0,ge=u!==null&&S.value!==null&&u.to.includes(S.value)||p!==null&&p.to!==p.from&&p.to===S.value&&v.columns.some(V=>V.cards.some(me=>me.id===p.id)),J=S.value!==null&&(n.collapsed??[]).includes(S.value),He=J&&R.has(T),fe=n.cap!==void 0&&!c.has(T)&&K.length>n.cap,X=fe?new Set([...K].sort((V,me)=>(v.born.get(me.id)??0)-(v.born.get(V.id)??0)).slice(0,n.cap).map(V=>V.id)):null,ye=X?K.filter(V=>X.has(V.id)||V.id===p?.id):K,Ce=p!==null&&p.to===S.value&&p.to!==p.from&&v.columns.some(V=>V.cards.some(me=>me.id===p.id)),$e=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{children:S.label}),(0,z.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:Y})]});return(0,z.jsxs)("section",{className:"graview-columns-column","data-graview-column":T,"data-droppable":ge||void 0,"data-over":ge&&(l===T||Ce)||void 0,"aria-label":`${t} \xB7 ${S.label}, ${Y}${le>0?`, ${dn(le)} past`:""}`,"data-graview-named-by-lens":"",onDragOver:V=>{ge&&(V.preventDefault(),V.dataTransfer.dropEffect="move",y(T))},onDragLeave:()=>y(V=>V===T?null:V),onDrop:V=>{let me=V.dataTransfer.getData("text/graview-node"),xe=r.graph.getNode(me);if(y(null),b(null),!xe||S.value===null)return;let de=ce(xe,v).find(ve=>ve.to===S.value);de&&(V.preventDefault(),V.stopPropagation(),ne(me,de,S.label,"drag"))},children:[(0,z.jsx)("h3",{className:"graview-columns-heading",children:J?(0,z.jsx)("button",{type:"button",className:"graview-columns-toggle","aria-expanded":!He,"data-testid":"columns-toggle",onClick:()=>M(V=>V.has(T)?new Set([...V].filter(me=>me!==T)):new Set([...V,T])),children:$e}):$e}),He?null:ye.length===0&&!Ce?le>0?null:(0,z.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,z.jsx)("ul",{className:"graview-columns-cards",children:(0,z.jsx)(Ht.Provider,{value:S.value===null?null:{field:v.field,values:[S.value,S.label]},children:(()=>{let V=ye.map(xe=>{let de=ce(xe,v);return(0,z.jsx)(Yr,{card:xe,moves:de,button:n.move===!0,carried:p?.id===xe.id,...de.length>0?{describedBy:L}:{},...q?{choosing:C}:{},labelOf:ve=>ue(v,ve),onMove:(ve,Oe)=>ne(xe.id,ve,Oe,"keyboard"),onDrag:ve=>b(ve?{id:xe.id,to:de.map(Oe=>Oe.to)}:null),onCarryKey:ve=>_(ve,xe,v,de),onLeave:()=>f(xe.id)},xe.id)});if(!Ce)return V;let me=(0,z.jsx)("li",{className:"graview-columns-slot","data-testid":"columns-slot","aria-hidden":"true",children:N(p.id)},"graview-carried-slot");return[...V.slice(0,p.at),me,...V.slice(p.at)]})()})}),!He&&le>0?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-past",title:`${dn(le)} more behind the horizon \u2014 press to show them here`,onClick:()=>w(V=>new Set([...V,Z])),children:["+",dn(le)," past"]}):null,!He&&fe?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-rest",onClick:()=>x(V=>new Set([...V,T])),children:["Show ",K.length-ye.length," more"]}):null]},T)})})},v.kind)),q?(0,z.jsx)(Wt,{store:r,chosen:C.chosen,principal:a,anchor:()=>i.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:G.length,onChooseAll:()=>C.choose(G),onClear:C.clear,onActed:W}):null]})}var rn=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function Kr(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 Yr({card:e,moves:t,button:n,carried:r,describedBy:a,labelOf:i,onMove:s,onDrag:m,onCarryKey:u,onLeave:b,choosing:l}){let{store:y,views:p}=oe(),[o,d]=(0,re.useState)(!1),k=(0,re.useRef)(null),c=(0,re.useRef)(null),x=Se(y.schema.tryDefinition(e.kind),e),R=p.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,re.useLayoutEffect)(()=>{o&&k.current?.querySelector("button")?.focus()},[o]);let M=()=>{d(!1),c.current?.focus()},P=w=>{let O=[...k.current?.querySelectorAll("button")??[]],g=O.indexOf(document.activeElement);w.key==="Escape"?(w.preventDefault(),w.stopPropagation(),M()):(w.key==="ArrowDown"||w.key==="ArrowUp")&&(w.preventDefault(),w.stopPropagation(),O[(g+(w.key==="ArrowDown"?1:O.length-1))%O.length]?.focus())};return(0,z.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card","data-carried":r||void 0,...l&&l.chosen.length>0?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onKeyDown:u,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",m(!0))},onDragEnd:()=>m(!1),children:[(0,z.jsx)(Gt,{node:e,label:x,...a?{describedBy:a}:{}}),R?(0,z.jsx)(ft,{mode:"scene",children:(0,z.jsx)(vt.Provider,{value:x,children:(0,z.jsx)(R,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})})}):(0,z.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:x}),l?(0,z.jsx)("span",{className:"graview-choose-at",children:(0,z.jsx)("input",{...l.boxProps(e.id,x),onPointerEnter:Wn,onFocus:Wn})}):null,n&&t.length>0?(0,z.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":o||void 0,onBlur:w=>{w.currentTarget.contains(w.relatedTarget)||d(!1)},children:[(0,z.jsx)("button",{ref:c,type:"button","aria-haspopup":"menu","aria-expanded":o,"aria-label":`Move \u201C${x}\u201D to another column`,"data-testid":"columns-move",onClick:()=>d(w=>!w),children:"Move\u2026"}),o?(0,z.jsx)("div",{ref:k,role:"menu","aria-label":`Move \u201C${x}\u201D to`,className:"graview-columns-menu",onKeyDown:P,onMouseDown:w=>w.preventDefault(),children:t.map(w=>(0,z.jsx)("button",{type:"button",role:"menuitem","data-columns-to":w.to,title:w.title,onClick:()=>{d(!1),s(w,i(w.to))},children:i(w.to)},w.to))}):null]}):null]})}var Ee=U(De(),1);var F=U(te(),1),Qr=["rows","columns","link"],an=class extends Error{constructor(n,r){super(`${n}
|
|
31
|
-
${r}`);this.hint=r;this.name="CoverageBindingError"}},Kn=(e,t)=>t&&e[t]!==void 0?String(e[t]):"",Jr=40,Xr=24;function Zr(e,t={}){let n=t.rows??Jr,r=t.columns??Xr;if(e.rows.length<=n&&e.columns.length<=r)return e;let a=new Map;for(let l of e.cells)a.set(l.rowId,(a.get(l.rowId)??0)+1),a.set(`col:${l.columnId}`,(a.get(`col:${l.columnId}`)??0)+1);let i=(l,y,p)=>{if(l.length<=y)return l;let o=new Set(l.map((d,k)=>({item:d,index:k,count:a.get(p(d))??0})).sort((d,k)=>k.count-d.count||d.index-k.index).slice(0,y).map(d=>d.item.id));return l.filter(d=>o.has(d.id))},s=i(e.rows,n,l=>l.id),m=i(e.columns,r,l=>`col:${l.id}`),u=new Set(s.map(l=>l.id)),b=new Set(m.map(l=>l.id));return{...e,rows:s,columns:m,cells:e.cells.filter(l=>u.has(l.rowId)&&b.has(l.columnId)),of:{rows:e.rows.length,columns:e.columns.length}}}function yr(e,t,n,r){let a=g=>g,i=g=>r?Se(r.tryDefinition(g.kind),g):String(a(g).label??g.id),s=r?[n.rows,n.columns].filter(g=>r.tryDefinition(g)===void 0):[];if(s.length>0)throw new an(`No kind is declared for ${s.map(g=>`"${g}"`).join(" or ")}.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');if(r&&typeof n.link!="string"){let g=Pn(r,n.columns,n.link.path);if(!g.ok||!g.reached.has(n.rows)){let L=Pn(r,n.columns,[...n.link.path].reverse());throw new an(L.ok&&L.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(N=>JSON.stringify(N)).join(", ")}] }`)}}let m=e.filter(g=>g.kind===n.rows),u=e.filter(g=>g.kind===n.columns);if(!r&&m.length===0&&u.length===0)throw new an(`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??[],l=g=>{let L=b.indexOf(g);return L===-1?b.length:L},y=n.badge?t.filter(g=>g.kind===n.badge.edge):[],p=new Set(m.map(g=>g.id)),o=new Set(u.map(g=>g.id)),d=[];if(typeof n.link=="string"){let g=n.link,L=t.filter(W=>W.kind===g),N=W=>r?.tryDefinition?.(W)?.edges?.[g]?.to,G=(N(n.columns)??[]).some(W=>W===n.rows||W==="*"),C=(N(n.rows)??[]).some(W=>W===n.columns||W==="*"),q=G||!C;for(let W of L){let ce=q?W.to:W.from,ae=q?W.from:W.to;p.has(ce)&&o.has(ae)&&d.push({rowId:ce,columnId:ae})}}else{let g=new Map;for(let N of new Set(n.link.path))g.set(N,new Map);for(let N of t){let G=g.get(N.kind);if(!G)continue;let C=G.get(N.from);C?C.push(N.to):G.set(N.from,[N.to]);let q=G.get(N.to);q?q.push(N.from):G.set(N.to,[N.from])}let L=new Set;for(let N of u){let G=[{id:N.id,via:[]}];for(let C of n.link.path){let q=[],W=new Set,ce=g.get(C);for(let ae of G)for(let ne of ce.get(ae.id)??[])W.has(`${ae.id}|${ne}`)||(W.add(`${ae.id}|${ne}`),q.push({id:ne,via:[...ae.via,ae.id]}));G=q}for(let C of G){if(!p.has(C.id))continue;let q=`${C.id}|${N.id}`;L.has(q)||(L.add(q),d.push({rowId:C.id,columnId:N.id,via:C.via.slice(1)}))}}}let k=new Set(n.requiredGroups??[]),c=n.requiredVia?new Set(t.filter(g=>g.kind===n.requiredVia.edge).map(g=>g.to)):null,x=new Set(d.map(g=>g.rowId)),R=new Set(d.map(g=>g.columnId)),M=new Set(y.map(g=>g.to)),P=(g,L)=>L==="label"?i(g):a(g)[L],w=Ze(m,n.sort,P).map(g=>{let L=a(g),N=Kn(L,n.rowGroup);return{id:g.id,ref:Kn(L,n.rowRef),label:i(g),group:N,required:c?c.has(g.id):k.size===0||k.has(N),covered:x.has(g.id),badged:M.has(g.id)}}).sort((g,L)=>l(g.group)-l(L.group)||(n.sort!==void 0?0:g.ref<L.ref?-1:g.ref>L.ref?1:0)),O=Ze(u,n.columnSort,P).map(g=>({id:g.id,label:i(g),used:R.has(g.id),group:Kn(a(g),n.columnGroup)})).sort((g,L)=>g.group<L.group?-1:g.group>L.group?1:n.columnSort!==void 0?0:g.id<L.id?-1:g.id>L.id?1:0).map(({group:g,...L})=>L);return{rows:w,columns:O,cells:d,gaps:w.filter(g=>g.required&&!g.covered).map(g=>g.id),unasked:O.filter(g=>!g.used).map(g=>g.id)}}var mr=316,Yn=58,Qn=176,ea=Math.sin(Yn*Math.PI/180),na=Math.cos(Yn*Math.PI/180),ta=e=>{let t=e.reduce((r,a)=>Math.max(r,a.length),0),n=Math.min(Qn,Math.max(46,t*5.4+12));return Math.ceil(n*ea)+8},pr=Math.ceil(Qn*na),fr=(e,t)=>cn(e,t).toLowerCase(),wr=(e,t)=>un(e.tryDefinition(t),t);function ra(e,t,n){return t.rows===t.columns?`${e} with none across`:`${qe(n,t.rows,e)} with no ${wr(n,t.columns)}`}function aa(e,t,n){return t.rows===t.columns?`${e} with none down`:`${qe(n,t.columns,e)} on no ${wr(n,t.rows)}`}function ia({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,implicated:s=[],flagged:m=[],budget:u,rowsKept:b}){let{store:l}=oe(),y=ua(),p=(0,Ee.useRef)(null),o=Fe(p),[d,k]=(0,Ee.useState)(null),c=yr(_e(l.graph,l.schema,e).filter(C=>C.kind===a.rows||C.kind===a.columns).filter(C=>b===void 0||a.rows===a.columns||C.kind!==a.rows||b.has(C.id)),l.graph.allEdges(),a,i),x=n==="full"?Zr(c,u!==void 0?{rows:u,columns:u}:{}):c,R=typeof a.link=="string"?a.link:void 0,M=b!==void 0&&c.cells.length===0&&c.columns.length>0&&(R===void 0||l.graph.allEdges().some(C=>C.kind===R))?void 0:mt(l.schema,a,{rows:c.rows.length,columns:c.columns.length,cells:c.cells.length});if(n==="glyph")return(0,F.jsx)(ke,{label:`${t??"Coverage"} \xB7 ${M?"nothing linked":x.gaps.length===0?"complete":`${x.gaps.length} missing`}`,hue:be("coverage")});if(M)return(0,F.jsx)(pe,{title:t??"Coverage",tone:"muted",fit:!0,...r==="fullscreen"?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:(0,F.jsx)("p",{"data-coverage-unlinked":"",style:{margin:0,color:"var(--graview-ink-muted)"},children:M})});if(n==="summary"){let C=x.rows.filter(q=>x.gaps.includes(q.id));return(0,F.jsxs)(pe,{title:t??"Coverage",meta:`${x.rows.length-x.gaps.length}/${x.rows.length}`,tone:x.gaps.length>0?"warning":"muted",fit:!0,children:[(0,F.jsx)(ca,{grid:x}),C.length>0?(0,F.jsx)(ze,{pick:!0,max:4,items:C.map(q=>({id:q.id,label:q.ref||q.label}))}):null]})}let P=new Set(s),w=new Set(m),O=d!==null&&d.every(C=>P.has(C))?d:null,g=r==="fullscreen",L=ta(x.columns.map(C=>C.label)),N=o===null?mr:Math.max(96,Math.min(mr,Math.round(o*.36))),G=o!==null&&(o<420||N+x.columns.length*28+pr>o);return(0,F.jsx)(pe,{title:t??"Coverage",...g?{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?ra(x.gaps.length,a,l.schema):"",x.unasked.length>0?aa(x.unasked.length,a,l.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,F.jsxs)("div",{ref:p,"data-coverage-shape":G?"stacked":"matrix",onClick:C=>k(hr(C.target)),onKeyDown:C=>{(C.key==="Enter"||C.key===" ")&&k(hr(C.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:G?0:pr},children:[G?null:(0,F.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",flex:"0 0 auto",position:"sticky",top:0,zIndex:Le.over,background:"var(--graview-panel)",paddingTop:6},children:[(0,F.jsx)("div",{ref:y.corner,style:{width:N,flex:"0 0 auto",alignSelf:"stretch",position:"sticky",left:0,zIndex:Le.raised,background:"var(--graview-panel)"}}),(0,F.jsx)("div",{ref:y.heads,style:{display:"flex",flex:1,minWidth:0,height:L},children:x.columns.map(C=>(0,F.jsx)("div",{"data-graview-pick":C.id,"data-graview-emphasis":P.size===0?"plain":P.has(C.id)?"lit":"dimmed",title:C.label,"data-graview-column":C.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,F.jsxs)("span",{style:{position:"absolute",bottom:3,padding:"3px 0",pointerEvents:"auto",cursor:"pointer",left:"50%",visibility:y.hidden.has(C.id)?"hidden":"visible",transformOrigin:"left bottom",transform:`rotate(-${Yn}deg)`,whiteSpace:"nowrap",maxWidth:Qn,overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.75rem",letterSpacing:"0.005em",color:C.used?P.size>0&&!P.has(C.id)?"var(--graview-ink-faint)":"var(--graview-ink)":"var(--graview-warn)"},children:[C.used?"":"\u26A0 ",C.label]})},C.id))})]}),x.of?(0,F.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} ${fr(l.schema,a.rows)}`:null,x.of.columns>x.columns.length?`${x.columns.length} of ${x.of.columns} ${fr(l.schema,a.columns)} across`:null].filter(Boolean).join(" \xB7 ").replace(/^./,C=>C.toUpperCase())," ","\u2014 what is missing is still counted over all of them."]}):null,(0,F.jsx)("div",{children:x.rows.map((C,q)=>{let W=x.rows[q-1],ce=W===void 0||W.group!==C.group,ae=C.required&&!C.covered,ne=P.size>0&&!P.has(C.id);return(0,F.jsxs)("div",{children:[ce&&C.group?(0,F.jsx)("div",{style:{fontSize:"0.6875rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",padding:"9px 0 3px"},children:(0,F.jsx)("span",{style:{position:"sticky",left:0,display:"inline-block",paddingRight:8,background:"var(--graview-panel)"},children:C.group})}):null,(0,F.jsxs)("div",{style:{display:"flex",flexDirection:G?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:ne?.72:1},children:[(0,F.jsxs)("div",{"data-graview-pick":C.id,"data-graview-emphasis":P.size===0?"plain":ne?"dimmed":"lit",title:C.label,style:{width:G?"auto":N,flex:"0 0 auto",position:G?"static":"sticky",left:0,zIndex:Le.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:ae||w.has(C.id)?"var(--graview-warn)":"var(--graview-ink)"},children:[C.ref?(0,F.jsx)("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums",color:"var(--graview-ink-faint)"},children:C.ref}):null,(0,F.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:C.label}),a.badge?(0,F.jsx)("span",{title:C.badged?a.badge.title:a.badge.missingTitle,style:{marginLeft:"auto",flex:"0 0 auto",fontSize:"0.75rem",color:C.badged?"var(--graview-ink-faint)":"var(--graview-warn)"},children:C.badged?a.badge.symbol:"\u25CB"}):null]}),(0,F.jsx)("div",{style:{display:"flex",flex:1,minWidth:0,...G?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:x.columns.map(D=>{let Q=x.cells.find(I=>I.rowId===C.id&&I.columnId===D.id),ue=Q!==void 0;return(0,F.jsxs)("div",{"data-graview-mark":"",...ue?{"data-graview-pick":D.id,"data-graview-emphasis":P.size===0?"plain":P.has(D.id)&&P.has(C.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(oa(Q))}:{},title:ue?`${D.label} answers ${C.ref||C.label}`:`${D.label} does not answer ${C.ref||C.label}`,style:G?{flex:"0 0 auto",minHeight:24,boxSizing:"border-box",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 9px 2px 7px",borderRadius:6,border:"1px solid var(--graview-edge)",fontSize:"0.75rem",color:ue?"var(--graview-ink)":"var(--graview-ink-faint)"}:{flex:1,minWidth:28,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",borderLeft:"1px solid var(--graview-edge)"},children:[(0,F.jsx)("span",{style:da(ue,ae,P.has(D.id)&&P.has(C.id),P.size>0)}),G?(0,F.jsx)("span",{children:D.label}):null]},D.id)})})]})]},C.id)})}),O?(0,F.jsx)(la,{box:p,joins:O,shape:`${G?"stacked":"matrix"} ${o??""}`}):null]})})}var oa=e=>[e.rowId,e.columnId,...e.via??[]];function hr(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 kn=(e,t,n)=>Math.min(n,Math.max(t,e));function sa(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 la({box:e,joins:t,shape:n}){let[r,a]=(0,Ee.useState)([]),i=JSON.stringify(t);return(0,Ee.useLayoutEffect)(()=>{let s=e.current;if(!s||typeof window>"u")return;let m=()=>{let l=s.getBoundingClientRect(),y=s.offsetWidth>0&&l.width>0?l.width/s.offsetWidth:1,p=[...s.querySelectorAll("[data-graview-joins]")].find(k=>k.getAttribute("data-graview-joins")===i);if(!p){a([]);return}let o=p.getBoundingClientRect(),d=[];for(let k of JSON.parse(i)){let c=[...s.querySelectorAll("[data-graview-pick]")].find(O=>O.getAttribute("data-graview-pick")===k&&!O.closest("[data-graview-mark]"));if(!c)continue;let x=sa(c),R=kn(o.left+o.width/2,x.left,x.right),M=kn(o.top+o.height/2,x.top,x.bottom),P=kn(R,o.left,o.right),w=kn(M,o.top,o.bottom);d.push({id:k,x1:(P-l.left)/y,y1:(w-l.top)/y,x2:(R-l.left)/y,y2:(M-l.top)/y})}a(d)};m();let u=0,b=()=>{u===0&&(u=requestAnimationFrame(()=>{u=0,m()}))};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),u!==0&&cancelAnimationFrame(u)}},[e,i,n]),(0,F.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:Le.over},children:r.map(s=>(0,F.jsxs)("g",{"data-coverage-join-to":s.id,children:[(0,F.jsx)("line",{x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,stroke:"var(--graview-accent)",strokeWidth:1.6,strokeLinecap:"round"}),(0,F.jsx)("circle",{cx:s.x2,cy:s.y2,r:2.6,fill:"var(--graview-accent)"})]},s.id))})}function da(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 ca({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,F.jsx)("div",{role:"img","aria-label":`${n} of ${t.length} covered`,style:{height:6,borderRadius:999,overflow:"hidden",background:"var(--graview-edge)"},children:(0,F.jsx)("div",{style:{width:`${Math.round(r*100)}%`,height:"100%",background:r===1?"var(--graview-accent)":"var(--graview-warn)"}})})}function vr(e){function t(n){let{store:r}=oe(),a=_e(r.graph,r.schema,n.nodes).filter(u=>u.kind===e.rows),{arranged:i,bar:s}=Te(n,{lensAllows:{sort:!1,group:!1},subject:a,kind:e.rows,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),m=(0,F.jsx)(ia,{schema:r.schema,...n,options:e,...s?{rowsKept:new Set(i.nodes.map(u=>u.id))}:{}});return s?(0,F.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,m]}):m}return{name:"coverage",requiredRoles:[...Qr],options:e,View:t,build(n,r,a){return yr(n,r,e,a)}}}function ua(){let e=(0,Ee.useRef)(null),t=(0,Ee.useRef)(null),[n,r]=(0,Ee.useState)(new Set);return(0,Ee.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,m=()=>{s=0;let b=e.current?.getBoundingClientRect().right??0,l=new Set;for(let y of a.querySelectorAll("[data-graview-column]")){let p=y.getBoundingClientRect();p.left+p.width/2<b&&l.add(y.dataset.graviewColumn)}r(y=>y.size===l.size&&[...l].every(p=>y.has(p))?y:l)},u=()=>{s===0&&(s=requestAnimationFrame(m))};return m(),i.addEventListener("scroll",u,{passive:!0}),()=>{i.removeEventListener("scroll",u),s!==0&&cancelAnimationFrame(s)}},[]),{corner:e,heads:t,hidden:n}}var xr=["regions","outline"],Je=class extends Error{constructor(n,r){super(`${n}
|
|
32
|
-
${r}`);this.hint=r;this.name="PlanBindingError"}},Cn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',br=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function $n(e,t,n,r){let a=c=>c,i=c=>r?Se(r.tryDefinition(c.kind),c):String(a(c).label??c.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new Je(`No kind is declared for "${n.regions}".`,Cn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Je(`No kind is declared for "${n.markers}".`,Cn);let s=e.filter(c=>c.kind===n.regions);if(!r&&s.length===0)throw new Je(`Nothing to draw: no "${n.regions}" nodes.`,Cn);let u=r?.tryDefinition(n.regions)?.fields?.shape;if(u!==void 0&&!(n.outline in u))throw new Je(`"${n.regions}" has no field called "${n.outline}".`,Cn);let b=(()=>{let c=new Map;if(n.nests)for(let x of t)x.kind===n.nests&&c.set(x.from,x.to);return x=>{let R=0,M=c.get(x),P=new Set([x]);for(;M!==void 0&&!P.has(M)&&R<s.length;)P.add(M),R+=1,M=c.get(M);return R}})(),l=n.markers?e.filter(c=>c.kind===n.markers):[],y=new Map;if(n.within)for(let c of t)c.kind===n.within&&y.set(c.from,c.to);let p=[],o=new Map;for(let c of l){let x=n.at===void 0?void 0:a(c)[n.at],R=y.get(c.id);if(!br(x)||R===void 0){p.push({id:c.id,label:i(c)});continue}let M=n.markerKind===void 0?void 0:a(c)[n.markerKind],P=o.get(R)??[];P.push({id:c.id,label:i(c),at:x,...typeof M=="string"?{what:M}:{}}),o.set(R,P)}let d=[],k=[];for(let c of s){let x=a(c)[n.outline];if(!Array.isArray(x)||x.length<3||!x.every(br)){d.push({id:c.id,label:i(c)});continue}let R=n.regionKind===void 0?void 0:a(c)[n.regionKind];k.push({id:c.id,label:i(c),outline:x,center:Mt(x),depth:b(c.id),markers:o.get(c.id)??[],...typeof R=="string"?{what:R}:{}})}return k.sort((c,x)=>c.depth-x.depth),{regions:k,undrawn:d,strays:p}}var We=U(De(),1);var B=U(te(),1);function Sr({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=On(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"?Xn(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 Jn=1e3,kr=.022,on={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"},On=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},Rn=(e,t)=>(e===void 0?void 0:t?.[e])??be(e??"region"),Xn=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${Rn(e,n)} 52% 48%) 24%, var(--graview-panel))`,Cr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${Rn(e,n)} 48% 42%) 78%, var(--graview-ink))`;function ga(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 $r({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:i,implicated:s,flagged:m}){let{store:u}=oe(),b=u.graph.allEdges(),l=u.graph.allNodes(),y=n===void 0?void 0:new Set(n.map(h=>h.id)),p=y===void 0?l:l.filter(h=>h.kind!==t.regions||y.has(h.id)),o=$n(p,b,t,e),d=o.regions.length,k=o.regions.reduce((h,$)=>h+$.markers.length,0);if(a==="glyph")return(0,B.jsx)(ke,{label:`${r??"Ground"} \xB7 ${d}`,...o.undrawn.length>0?{meta:`+${o.undrawn.length} undrawn`}:{},selected:i});if(a==="summary")return(0,B.jsx)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,children:(0,B.jsx)(Sr,{map:o,options:t,...s?{implicated:s}:{},...m?{flagged:m}:{}})});let c=(0,We.useMemo)(()=>{let h=1/0,$=1/0,T=-1/0,Z=-1/0,H=Y=>{Y.x<h&&(h=Y.x),Y.x>T&&(T=Y.x),Y.y<$&&($=Y.y),Y.y>Z&&(Z=Y.y)};for(let Y of o.regions){for(let le of Y.outline)H(le);for(let le of Y.markers)H(le.at)}if(!Number.isFinite(h)||T-h<=0||Z-$<=0)return{x0:0,y0:0,x1:1,y1:1};let K=Math.max(T-h,Z-$)*.04;return{x0:h-K,y0:$-K,x1:T+K,y1:Z+K}},[o.regions]),x=(c.x1-c.x0)/(c.y1-c.y0),R=t.aspect??Math.min(3.2,Math.max(.55,x)),M=Math.round(Jn/(c.x1-c.x0)),P=Math.round(M*(c.x1-c.x0)),w=Math.round(P/R),O={x:c.x0*M,y:c.y0*M-(w-M*(c.y1-c.y0))/2,w:P,h:w},g=M,L=O.w,N=(s?.length??0)>0||(m?.length??0)>0,G=(0,We.useRef)(null),{touchable:C,legible:q}=xt(G,{units:O.w,target:L*kr*2}),W=zn("--graview-font-display","serif"),ce=zn("--graview-font-body","sans-serif"),{named:ae,placed:ne,tagged:D}=(0,We.useMemo)(()=>{let h=[],$=L*.012,T=Jn*.004,Z=(fe,X)=>!h.some(ye=>ye!==X&&Tt({x0:fe.x0-T,y0:fe.y0-T,x1:fe.x1+T,y1:fe.y1+T},ye)),H=[...o.regions].sort((fe,X)=>In(X.outline)-In(fe.outline)),K=new Map,Y=new Map;for(let fe of H){let X=Et(fe.outline),ye=Math.max(0,(X.bottom-X.top)*g*.55),Ce=null;for(let $e of[.12,.26,.42,.6,.78]){let V=X.top+$e*(X.bottom-X.top),me=Bn(fe.outline,V),xe=Math.max(0,(me.x1-me.x0)*M-$*2),de=Lt(fe.label,{room:xe,height:ye,size:L*.023,floor:L*.015,measure:W});if(de===null)continue;let ve=Math.max(...de.lines.map(zr=>W(zr,de.fontSize))),Oe=de.lines.length*de.fontSize*1.15,et=X.top*g+$+Oe/2,nt=X.bottom*g-$-Oe/2,ln=nt<et?(X.top+X.bottom)*g/2:Math.min(Math.max(V*g,et),nt),An=Bn(fe.outline,ln/g),En=An.x0*M+$;if(ve>(An.x1-An.x0)*M-$*2)continue;let tt={x0:En,y0:ln-Oe/2,x1:En+ve,y1:ln+Oe/2};if(Z(tt)){h.push(tt),Ce={fitted:de,x:En,y:ln};break}}K.set(fe.id,Ce?.fitted??null),Ce!==null&&Y.set(fe.id,{x:Ce.x,y:Ce.y})}let le=L*.018,ge=new Map,J=L*.011+L*.004,He=new Map;for(let fe of o.regions)for(let X of fe.markers){let ye={x0:X.at.x*M-J,y0:X.at.y*g-J,x1:X.at.x*M+J,y1:X.at.y*g+J};He.set(X.id,ye),h.push(ye)}for(let fe of C?o.regions:[])for(let X of fe.markers){let ye=L*.018,Ce=ce(X.label,le),$e=X.at.x*M,V=X.at.y*g,me=le*1.15,xe=[{x:$e+ye,y:V,anchor:"start"},{x:$e-ye,y:V,anchor:"end"},{x:$e+ye*.7,y:V-me,anchor:"start"},{x:$e-ye*.7,y:V-me,anchor:"end"},{x:$e+ye*.7,y:V+me,anchor:"start"},{x:$e-ye*.7,y:V+me,anchor:"end"},{x:$e,y:V-me*1.1,anchor:"start"},{x:$e,y:V+me*1.1,anchor:"start"}];for(let de of xe){let ve=de.anchor==="start"?de.x:de.x-Ce,Oe={x0:ve,y0:de.y-le*.62,x1:ve+Ce,y1:de.y+le*.62};if(!(ve<O.x+4||ve+Ce>O.x+O.w-4)&&!(Oe.y0<O.y+2||Oe.y1>O.y+O.h-2)&&Z(Oe,He.get(X.id))){h.push(Oe),ge.set(X.id,{at:{x:de.x,y:de.y},anchor:de.anchor,size:le});break}}}return{named:K,placed:Y,tagged:ge}},[o.regions,Jn,g,C,W,ce]),Q=(0,We.useMemo)(()=>{let h=[];for(let $ of o.regions)(ae.get($.id)?.whole??!1)===!1&&h.push({id:$.id,label:$.label,what:$.what,round:!1});for(let $ of o.regions)for(let T of $.markers)(!C||!D.has(T.id))&&h.push({id:T.id,label:T.label,what:T.what,round:!0});return h},[o.regions,ae,D,C]),{principal:ue}=oe(),[I,E]=(0,We.useState)(null),_=t.draw!==void 0,f=t.place!==void 0,v=h=>{if(I===null)return;h.stopPropagation();let $=ga(h);if(I.kind==="marker"){u.apply({name:t.place.act,args:{[t.place.id]:I.id,[t.place.at]:$}},{author:ue,intent:`Placed ${I.label} on the map`}),E(null);return}E({...I,corners:[...I.corners,$]})},S=()=>{I===null||I.kind!=="region"||I.corners.length<3||(u.apply({name:t.draw.act,args:{[t.draw.id]:I.id,[t.draw.outline]:I.corners}},{author:ue,intent:`Drew ${I.label} on the map \u2014 ${I.corners.length} corners`}),E(null))},A=I===null?o.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:I.kind==="marker"?`Click where ${I.label} stands.`:I.corners.length<3?`Click the corners of ${I.label} \u2014 ${3-I.corners.length} more to make an area.`:`${I.corners.length} corners. Keep clicking, or press Done.`;return q?(0,B.jsxs)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,...o.undrawn.length>0?{meta:`${o.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:i,fit:!0,children:[(0,B.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${O.w} / ${O.h}`,overflow:"hidden"},children:(0,B.jsxs)("svg",{ref:G,viewBox:`${O.x} ${O.y} ${O.w} ${O.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:I!==null?"application":C?"group":"img","aria-label":I===null?`${r??"The plan"}: ${d} drawn, ${k} standing in them`:A??"Drawing",onClick:v,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:I===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:O.x+O.w-L*.028,y:O.y+L*.034,fontSize:L*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),A!==null&&o.regions.length===0?(0,B.jsx)("text",{x:O.x+O.w/2,y:O.y+O.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:L*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:A}):null,I!==null&&I.kind==="region"&&I.corners.length>0?(0,B.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,B.jsx)("polyline",{points:I.corners.map(h=>`${h.x*M},${h.y*g}`).join(" "),fill:I.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),I.corners.map((h,$)=>(0,B.jsx)("circle",{cx:h.x*M,cy:h.y*g,r:L*.008,fill:"var(--graview-accent)"},$))]}):null,o.regions.map(h=>{let $=On(h.id,s,m),T=N&&$===void 0?.34:1,Z=h.outline.map(H=>`${H.x*M},${H.y*g}`).join(" ");return(0,B.jsx)("g",{"data-graview-pick":h.id,...$?{"data-graview-emphasis":$}:{},role:"button","aria-label":`${h.label}${h.what?`, ${h.what}`:""}, ${h.markers.length} standing in it`,style:{opacity:T,cursor:"pointer"},children:(0,B.jsx)("polygon",{points:Z,fill:Xn(h.what,$,t.hues),stroke:Cr(h.what,$,t.hues),strokeWidth:$==="flagged"?5:2.5,strokeLinejoin:"round"})},h.id)}),o.regions.flatMap(h=>h.markers.map($=>{let T=On($.id,s,m),Z=N&&T===void 0?.34:1;return(0,B.jsxs)("g",{...C?{"data-graview-pick":$.id,role:"button","aria-label":`${$.label}${$.what?`, ${$.what}`:""}, in ${h.label}`}:{"aria-hidden":!0},...T?{"data-graview-emphasis":T}:{},style:{opacity:Z,cursor:C?"pointer":"default"},children:[C?(0,B.jsx)("circle",{cx:$.at.x*M,cy:$.at.y*g,r:L*kr,fill:"transparent"}):null,(0,B.jsx)("circle",{cx:$.at.x*M,cy:$.at.y*g,r:L*.011,fill:T==="flagged"?"var(--graview-warn)":`hsl(${Rn($.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:L*.004}),D.has($.id)?(0,B.jsx)("text",{x:D.get($.id).at.x,y:D.get($.id).at.y,textAnchor:D.get($.id).anchor,dominantBaseline:"middle",fontSize:D.get($.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,D.get($.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${$.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:$.label}):null]},$.id)})),o.regions.map(h=>{let $=ae.get(h.id),T=ne.get(h.id);if(!$||T===void 0)return null;let Z=On(h.id,s,m);return(0,B.jsx)("text",{x:T.x,y:T.y-($.lines.length-1)*$.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:$.fontSize,fill:"var(--graview-ink)",opacity:N&&Z===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,$.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${h.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:$.lines.map((H,K)=>(0,B.jsx)("tspan",{x:T.x,dy:K===0?0:$.fontSize*1.15,children:H},H+String(K)))},`label-${h.id}`)})]})}),Q.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:Q.map(h=>(0,B.jsxs)("li",{"data-graview-pick":h.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:h.round?".55rem":".7rem",height:h.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:h.round?"50%":".15rem",background:h.round?`hsl(${Rn(h.what,t.hues)} 55% 45%)`:Xn(h.what,void 0,t.hues),border:h.round?void 0:`1px solid ${Cr(h.what,void 0,t.hues)}`}}),(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:h.label})]},h.id))}):null,I!==null?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[o.regions.length>0&&A!==null?(0,B.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:A}):null,I.kind==="region"?(0,B.jsxs)("button",{type:"button",onClick:S,disabled:I.corners.length<3,"data-testid":"draw-done",style:{...on,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",I.label]}):null,I.kind==="region"&&I.corners.length>0?(0,B.jsx)("button",{type:"button",onClick:()=>E({...I,corners:I.corners.slice(0,-1)}),style:on,children:"Undo a corner"}):null,(0,B.jsx)("button",{type:"button",onClick:()=>E(null),style:on,"data-testid":"draw-cancel",children:"Stop"})]}):(0,B.jsxs)(B.Fragment,{children:[_&&o.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",":"]}),o.undrawn.map(h=>(0,B.jsxs)("button",{type:"button",style:on,onClick:()=>E({kind:"region",id:h.id,label:h.label,corners:[]}),"data-testid":`draw-${h.id}`,children:["Draw ",h.label]},h.id))]}):null,f&&o.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",":"]}),o.strays.map(h=>(0,B.jsxs)("button",{type:"button",style:on,onClick:()=>E({kind:"marker",id:h.id,label:h.label}),"data-testid":`place-${h.id}`,children:["Place ",h.label]},h.id))]}):null,t.help!==void 0&&(o.undrawn.length>0||o.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,!_&&(o.undrawn.length>0||o.strays.length>0)?(0,B.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[o.undrawn.map(h=>h.label).join(", "),o.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",o.strays.map(h=>h.label).join(", "),o.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,B.jsx)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,selected:i,children:(0,B.jsx)(Sr,{map:o,options:t,...s?{implicated:s}:{},...m?{flagged:m}:{}})})}var Rr=U(te(),1);function Or(e){function t(n){let{store:r}=oe();return(0,Rr.jsx)($r,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...xr],options:e,View:t,build(n,r,a){return $n(n,r,e,a)}}}var he=U(te(),1);function ma(e,t,n){let r=t.flatMap(i=>(i.subject&&i.subject.kinds!=="*"?i.subject.kinds:[null]).map(m=>({name:i.name,title:i.title??i.name,kind:m}))),a=[];for(let i of n){let s={kind:"human",id:"themselves",roles:[i]};for(let m of r){let u=m.kind??void 0,b=Tn(e,s,m.name,u).ok,l=!b&&Tn(e,s,m.name,u,void 0,"themselves").ok;a.push({role:i,act:m.name,kind:m.kind,may:b?"yes":l?"self":"no"})}}return{roles:n,acts:r,cells:a}}function pa({label:e,fidelity:t,mode:n}){let{store:r}=oe(),a=r.policy,i=a?.roles??[],s=r.allMutations().filter(y=>!y.derived).map(y=>({name:y.name,...y.title?{title:y.title}:{},...y.subject?{subject:y.subject}:{}})),m=ma(a,s,i),u=e??"Who may do what";if(!a||i.length===0)return(0,he.jsxs)("div",{"data-testid":"reach-lens",style:{padding:14,color:"var(--graview-ink-muted)",fontSize:"0.875rem"},children:[u,": this installation has no policy, so everyone may do everything."]});if(t==="glyph")return(0,he.jsx)(ke,{label:`${u} \xB7 ${i.length} ${i.length===1?"role":"roles"}`,hue:be("role")});let b=n==="fullscreen",l=y=>y==="yes"?"\u25CF":y==="self"?"\u25D0":"\xB7";return(0,he.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,he.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,he.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:u}),(0,he.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,he.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,he.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,he.jsx)("thead",{children:(0,he.jsxs)("tr",{children:[(0,he.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"}),m.acts.map(y=>(0,he.jsxs)("th",{scope:"col",title:y.kind?`${y.title}, on ${st(un(r.schema.tryDefinition(y.kind),y.kind))}`:y.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[y.title,y.kind?(0,he.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",y.kind]}):null]},`${y.name}|${y.kind??""}`))]})}),(0,he.jsx)("tbody",{children:m.roles.map(y=>(0,he.jsxs)("tr",{children:[(0,he.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:y}),m.acts.map(p=>{let o=m.cells.find(d=>d.role===y&&d.act===p.name&&d.kind===p.kind);return(0,he.jsx)("td",{"data-graview-reach":o.may,title:`${y} ${o.may==="yes"?"may":o.may==="self"?"may, on their own record,":"may not"} ${p.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:o.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:o.may==="no"?"0.875rem":"0.8125rem"},children:l(o.may)},`${p.name}|${p.kind??""}`)})]},y))})]})})]})}var Ar={name:"reach",requiredRoles:[],View:pa};var Me=U(De(),1);var se=U(te(),1),Mr=["start","end"];function fa(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),m=Math.min(t,i+n),u=r-(m-s);return u>0&&(s=Math.max(0,s-u/2),m=Math.min(t,s+r)),{start:Math.floor(s),end:Math.ceil(m)}}function ha(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(m=>m<=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 Zn=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 Lr(e,t,n){let r=je(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=Mr.filter(l=>{let y=r[l];return y?i?!(y in i):!(y in a):!0});if(s.length>0)throw new Zn(e.kind,s);let m=Number(a[r.start]??Number.NaN),u=Number(a[r.end]??m);if(!Number.isFinite(m))return null;let b=[];if(r.columns){let l=a[r.columns];Array.isArray(l)&&b.push(...l.map(String))}if(r.column){let l=a[r.column];l!=null&&b.push(String(l))}return{id:e.id,kind:e.kind,label:Se(n?.tryDefinition(e.kind),e),columnIds:b,start:m,end:Number.isFinite(u)?Math.max(u,m):m}}function ya(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 wa=.045,sn=52,Tr=4,va=44,ba=240;function xa({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:m=[],flagged:u=[]}){let b=new Set([...m,...s]),l=w=>b.size===0?"plain":b.has(w)?"lit":"dimmed",y=new Set(u),p=(e??[]).map(w=>Lr(w,a.bindings,i)).filter(w=>w!==null),o=a.hueOf??(w=>be(w.kind));if(n==="glyph")return(0,se.jsx)(ke,{label:`${t??"Timeline"} \xB7 ${p.length}`,hue:be("timeline")});if(n==="summary")return(0,se.jsx)(pe,{title:t??"Timeline",meta:`${p.length} items`,tone:"muted",children:(0,se.jsx)(ze,{max:a.columns.length,items:a.columns.map(w=>({id:w.id,label:`${w.label} ${p.filter(O=>O.columnIds.includes(w.id)).length}`,hue:be(w.id)}))})});let d=a.format??String,k=fa(p,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),c=k.end-k.start,x=w=>(w-k.start)/c*100,R=a.tick??Math.max(60,Math.round(c/8/60)*60),M=[];for(let w=Math.ceil(k.start/R)*R;w<=k.end;w+=R)M.push(w);let P=r==="fullscreen";return(0,se.jsx)(pe,{title:t??"Timeline",meta:`${d(k.start)} \u2013 ${d(k.end)}`,style:{gap:12,...P?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,se.jsx)(Ca,{columns:a.columns}),(0,se.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(ba,Math.ceil(c/R)*va)},children:[M.map((w,O)=>(0,se.jsx)("div",{style:{position:"absolute",left:sn-8,right:0,top:O===M.length-1?"calc(100% - 1px)":`${x(w)}%`,height:1,background:"var(--graview-edge)"},children:(0,se.jsx)("span",{style:{position:"absolute",left:-(sn-8),...O===M.length-1?{bottom:2}:{top:-7},width:sn-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:d(w)})},w)),(0,se.jsx)("div",{style:{position:"absolute",inset:0,left:sn,display:"flex",gap:Tr},children:a.columns.map(w=>(0,se.jsx)($a,{spans:p.filter(O=>O.columnIds.includes(w.id)),window:k,format:d,hue:o,emphasisOf:l,brokenIds:y},w.id))})]})]})})}function Sa(){let e=(0,Me.useRef)(null),[t,n]=(0,Me.useState)(new Set);return(0,Me.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,Me.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 ka=(e,t)=>t===0?e:e.slice(0,t),Er=[0,3,1];function Ca({columns:e}){let t=(0,Me.useRef)(null),[n,r]=(0,Me.useState)(0);(0,Me.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(m=>m.scrollWidth>m.clientWidth+.5)&&n<Er.length-1&&r(n+1)}),(0,Me.useLayoutEffect)(()=>{let i=t.current;if(!i||typeof ResizeObserver>"u")return;let s=i.clientWidth,m=new ResizeObserver(()=>{i.clientWidth!==s&&(s=i.clientWidth,r(0))});return m.observe(i),()=>m.disconnect()},[]);let a=Er[n];return(0,se.jsx)("div",{ref:t,style:{display:"flex",gap:Tr,paddingLeft:sn,paddingBottom:10},children:e.map(i=>{let s=ka(i.label,a);return(0,se.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 $a({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:i}){let s=t.end-t.start,m=o=>(o-t.start)/s*100,u=o=>(o.end-o.start)/s<wa,b=ha(e.filter(o=>!u(o))),l=[...e.filter(u)].sort((o,d)=>o.start-d.start),y=Math.max(1,...b.map(o=>o.lanes)),p=Sa();return(0,se.jsxs)("div",{ref:p.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[b.map(o=>{let d=100/y,k=Math.max(1.6,m(o.end)-m(o.start));return(0,se.jsx)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":a(o.id),"data-graview-flagged":i.has(o.id)?"":void 0,title:`${o.label} \xB7 ${n(o.start)}\u2013${n(o.end)}`,style:{position:"absolute",top:`${m(o.start)}%`,height:`${k}%`,left:`${o.lane*d}%`,width:`${d}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,se.jsx)("div",{"data-graview-span-name":o.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...p.oneLine.has(o.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...ya(a(o.id),r(o)),...i.has(o.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:k>=3.4?o.label:null})},o.id)}),l.map(o=>{let d=a(o.id);return(0,se.jsxs)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":d,"data-graview-moment":"",title:`${o.label} \xB7 ${n(o.start)}`,style:{position:"absolute",top:`${m(o.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,se.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:d==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(o.start)}),(0,se.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:d==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:o.label}),(0,se.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:i.has(o.id)?"var(--graview-warn)":d==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness))`,boxShadow:i.has(o.id)?"0 0 0 3px var(--graview-warn)":d==="lit"?"0 0 0 3px var(--graview-accent-dim)":d==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness) / 0.45)`}})]},o.id)})]})}function Pr(e){function t(n){let{store:r}=oe(),a=Object.keys(e.bindings),{nodes:i,bar:s}=Te(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...a[0]?{kind:(n.nodes??[]).find(u=>a.includes(String(u.kind)))?.kind??a[0]}:{}}),m=(0,se.jsx)(xa,{schema:r.schema,...n,nodes:i,options:e});return Be(n,r.schema,s?(0,se.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,m]}):m)}return{name:"timeline",requiredRoles:[...Mr],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>Lr(a,e.bindings,r)).filter(a=>a!==null)}}}var Ne=U(te(),1),Nr=new WeakMap;function Oa(e){return e===1440?t=>Xe(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Xe(Math.floor(t)*60):t=>String(t)}function Ra(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Pr({...t,extent:n,format:Oa(n)}).View}case"calendar":return dr({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return vr(t).View;case"board":return _t(t).View;case"plan":return Or(t).View;case"reach":return Ar.View;case"columns":return gr(t).View;case"blocks":return Aa(bt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function Aa(e,t){return n=>{let r=(0,Ne.jsx)(jt,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,Ne.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode!=="fullscreen"?(0,Ne.jsx)(pe,{title:n.label??"",children:r}):(0,Ne.jsx)(Ea,{children:r})}}function Ea({children:e}){return(0,Dr.useContext)(Vt)?(0,Ne.jsx)(Ne.Fragment,{children:e}):(0,Ne.jsx)("div",{style:{padding:"12px 16px"},children:e})}function No(e){let t=Nr.get(e);if(!t){let n=Ra(e),r=a=>(0,Ne.jsx)(n,{...a,label:e.title});Nr.set(e,t=r)}return t}export{Oa as a,No as b};
|