graview 0.1.29 → 0.1.30
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.X53HI436.js → chunk.26CZTUY4.js} +1 -1
- package/dist/preview/chunk.2CIBWZJG.js +1 -0
- package/dist/preview/chunk.2EXGG6BB.js +1 -0
- package/dist/preview/chunk.2NBYNZRD.js +1 -0
- package/dist/preview/chunk.2XAONC66.js +1 -0
- package/dist/preview/chunk.34ZMMURV.js +27 -0
- package/dist/preview/{chunk.44FVJOK4.js → chunk.3ADPAGPY.js} +1 -1
- package/dist/preview/chunk.3JGGBLRB.js +1 -0
- package/dist/preview/chunk.3JNMSOFG.js +1 -0
- package/dist/preview/chunk.3R4W2P5X.js +1 -0
- package/dist/preview/chunk.3SKKIHU3.js +4 -0
- package/dist/preview/{chunk.OGXE2RHC.js → chunk.3URFMWXZ.js} +2 -2
- package/dist/preview/chunk.3VL5WECB.js +1 -0
- package/dist/preview/chunk.42YX6NOY.js +2 -0
- package/dist/preview/{chunk.XAXJHEMD.js → chunk.4ALKPNXM.js} +1 -1
- package/dist/preview/chunk.4HP7UWA2.js +1 -0
- package/dist/preview/{chunk.ZBXOX3W3.js → chunk.4SJUTBDV.js} +1 -1
- package/dist/preview/chunk.5U5J3ISK.js +1 -0
- package/dist/preview/{chunk.YCA7P5MK.js → chunk.6T2Q6NLO.js} +1 -1
- package/dist/preview/chunk.6V2RG5JG.js +5 -0
- package/dist/preview/chunk.6XMEU2Q2.js +1 -0
- package/dist/preview/chunk.7BWT5L2L.js +1 -0
- package/dist/preview/chunk.AK3IHFCF.js +1 -0
- package/dist/preview/chunk.BPWNWE7N.js +1 -0
- package/dist/preview/{chunk.YRQZZH5V.js → chunk.C5CYZNSJ.js} +1 -1
- package/dist/preview/chunk.CM6LOIQE.js +88 -0
- package/dist/preview/{chunk.IPBXAAQV.js → chunk.D3IECJ2S.js} +1 -1
- package/dist/preview/chunk.DT7LHWU2.js +1 -0
- package/dist/preview/chunk.DZRTOURR.js +1 -0
- package/dist/preview/{chunk.JNGUSAWX.js → chunk.ERXSYPYL.js} +17 -3
- package/dist/preview/chunk.FDELO7NY.js +116 -0
- package/dist/preview/chunk.FGVKJWNS.js +6 -0
- package/dist/preview/{chunk.7D77HEIJ.js → chunk.FWCOJDOD.js} +1 -1
- package/dist/preview/chunk.GFF2FB2J.js +25 -0
- package/dist/preview/chunk.GLBHQFJ2.js +1 -0
- package/dist/preview/{chunk.ZSKP6UQS.js → chunk.HHI65WFZ.js} +1 -1
- package/dist/preview/chunk.HHPGWJDO.js +2 -0
- package/dist/preview/chunk.HSCTWAUV.js +1 -0
- package/dist/preview/chunk.INZUEWC5.js +1 -0
- package/dist/preview/{chunk.QNHECGMH.js → chunk.J2ITFGN3.js} +1 -1
- package/dist/preview/chunk.JH6MU6TX.js +2 -0
- package/dist/preview/chunk.JISMMIMX.js +1 -0
- package/dist/preview/chunk.JN7DIFR3.js +1 -0
- package/dist/preview/chunk.JPHNKWTY.js +1 -0
- package/dist/preview/chunk.JTNWD2CN.js +1 -0
- package/dist/preview/chunk.K75FUIZI.js +1 -0
- package/dist/preview/chunk.K776HO42.js +2 -0
- package/dist/preview/chunk.KN3ULTGF.js +1 -0
- package/dist/preview/chunk.KOB6N3SL.js +1 -0
- package/dist/preview/chunk.KQT7WAQE.js +1 -0
- package/dist/preview/chunk.L4DECHXR.js +327 -0
- package/dist/preview/{chunk.J46KDTEZ.js → chunk.L6OMEYL6.js} +1 -1
- package/dist/preview/chunk.LQ7V6KEE.js +1 -0
- package/dist/preview/{chunk.AVUS5LMG.js → chunk.MD74YVRN.js} +2 -2
- package/dist/preview/chunk.MGNP4LAM.js +1 -0
- package/dist/preview/chunk.NCTOBUCT.js +1 -0
- package/dist/preview/chunk.NDADLJE6.js +1 -0
- package/dist/preview/{chunk.64P76WK4.js → chunk.NO52VON3.js} +1 -1
- package/dist/preview/{chunk.5AT4O4BN.js → chunk.O2LK2AO7.js} +1 -1
- package/dist/preview/chunk.OAF7TUMI.js +1 -0
- package/dist/preview/{chunk.WLRTPFAC.js → chunk.OQ4KFN6W.js} +1 -1
- package/dist/preview/chunk.OXQMNIRO.js +1 -0
- package/dist/preview/chunk.OZNW5W4Z.js +1 -0
- package/dist/preview/{chunk.HV6I74DF.js → chunk.PAVR5TK5.js} +1 -1
- package/dist/preview/chunk.PKK6FRZR.js +2 -0
- package/dist/preview/chunk.QIAKO27D.js +1 -0
- package/dist/preview/{chunk.CK7QWLMX.js → chunk.QNGWEV47.js} +1 -1
- package/dist/preview/{chunk.3G5MQFZK.js → chunk.QTA4ROAK.js} +1 -1
- package/dist/preview/chunk.QTMWHE5O.js +1 -0
- package/dist/preview/chunk.R26DREVU.js +1 -0
- package/dist/preview/chunk.RI3PYG5T.js +19 -0
- package/dist/preview/{chunk.ONGVH3ZM.js → chunk.RIEHYQLK.js} +44 -19
- package/dist/preview/chunk.RRVIXV7W.js +1 -0
- package/dist/preview/{chunk.BZ5OJYHU.js → chunk.RYT5U3QM.js} +1 -1
- package/dist/preview/chunk.SE5SKFQH.js +1 -0
- package/dist/preview/chunk.SHPXD6FC.js +1 -0
- package/dist/preview/chunk.SOBC3CTN.js +47 -0
- package/dist/preview/chunk.SOD3PBJM.js +1 -0
- package/dist/preview/{chunk.QSDT2RLY.js → chunk.T3VPD7JQ.js} +1 -1
- package/dist/preview/chunk.TI4OSTQV.js +1 -0
- package/dist/preview/chunk.UDSEJKCY.js +1 -0
- package/dist/preview/chunk.UGFDSE37.js +1 -0
- package/dist/preview/{chunk.IZW7DBK4.js → chunk.UWGWXFWZ.js} +1 -1
- package/dist/preview/{chunk.T4LY5QXO.js → chunk.UZWWDAGM.js} +1 -1
- package/dist/preview/chunk.V5ZYUVMH.js +1 -0
- package/dist/preview/chunk.V7BDAGDE.js +35 -0
- package/dist/preview/chunk.VG56IUIQ.js +9 -0
- package/dist/preview/chunk.VOAZBHCG.js +1 -0
- package/dist/preview/{chunk.O4QPITBD.js → chunk.VS7K3SCD.js} +1 -1
- package/dist/preview/{chunk.Z5V23DQN.js → chunk.VSZQXB4Q.js} +2 -2
- package/dist/preview/chunk.W3S6UXNA.js +1 -0
- package/dist/preview/chunk.WAFDCOOG.js +3 -0
- package/dist/preview/chunk.WYTIOLPP.js +1 -0
- package/dist/preview/chunk.X37L5TN5.js +1 -0
- package/dist/preview/{chunk.GZH6PTXN.js → chunk.XRJBLH4N.js} +1 -1
- package/dist/preview/{chunk.D4GOVA25.js → chunk.XS7YFNDU.js} +1 -1
- package/dist/preview/{chunk.V6TK4LHW.js → chunk.XSTXV6FP.js} +4 -4
- package/dist/preview/chunk.Y4UXEL6Y.js +1 -0
- package/dist/preview/chunk.YJUB4OD7.js +1 -0
- package/dist/preview/chunk.YLQB3KBA.js +1 -0
- package/dist/preview/{chunk.XXHNV24G.js → chunk.YNQDVGZM.js} +1 -1
- package/dist/preview/chunk.YV2LJFGS.js +1 -0
- package/dist/preview/chunk.Z2YUYZT4.js +1 -0
- package/dist/preview/chunk.ZYKAS4BT.js +1 -0
- package/dist/preview/page.js +6 -6
- package/package.json +6 -6
- package/dist/preview/chunk.2643W7FT.js +0 -1
- package/dist/preview/chunk.2CLPRG3I.js +0 -1
- package/dist/preview/chunk.2IZFIORK.js +0 -1
- package/dist/preview/chunk.2NCTM5K2.js +0 -2
- package/dist/preview/chunk.3JM2TNDD.js +0 -2
- package/dist/preview/chunk.4GGAPOMK.js +0 -2
- package/dist/preview/chunk.5JXUAMKI.js +0 -1
- package/dist/preview/chunk.5R66YTET.js +0 -2
- package/dist/preview/chunk.7DNFXJH3.js +0 -1
- package/dist/preview/chunk.7PRFYYVM.js +0 -1
- package/dist/preview/chunk.AE5GKL4C.js +0 -1
- package/dist/preview/chunk.ARR75WBP.js +0 -35
- package/dist/preview/chunk.BKPGDEES.js +0 -1
- package/dist/preview/chunk.COTG2IG5.js +0 -1
- package/dist/preview/chunk.DAA6XWLF.js +0 -1
- package/dist/preview/chunk.DKTCRFMS.js +0 -1
- package/dist/preview/chunk.DLGTFXGM.js +0 -1
- package/dist/preview/chunk.DN7SN6ZR.js +0 -1
- package/dist/preview/chunk.G4WQGTZR.js +0 -3
- package/dist/preview/chunk.GDA3G4U2.js +0 -6
- package/dist/preview/chunk.GS4T26WW.js +0 -328
- package/dist/preview/chunk.HFKMHLJ3.js +0 -1
- package/dist/preview/chunk.HGAMNIST.js +0 -1
- package/dist/preview/chunk.HKBKH7EK.js +0 -1
- package/dist/preview/chunk.HLLWKSZB.js +0 -5
- package/dist/preview/chunk.HONUT6OG.js +0 -1
- package/dist/preview/chunk.HRWLR7T4.js +0 -1
- package/dist/preview/chunk.IWYUFYDJ.js +0 -1
- package/dist/preview/chunk.JU2ZVKMT.js +0 -2
- package/dist/preview/chunk.K4ZUVH2G.js +0 -1
- package/dist/preview/chunk.KC6UZHBM.js +0 -1
- package/dist/preview/chunk.KLITC55P.js +0 -1
- package/dist/preview/chunk.KZ2376BD.js +0 -19
- package/dist/preview/chunk.LYJAVUST.js +0 -1
- package/dist/preview/chunk.MOUGB4H6.js +0 -1
- package/dist/preview/chunk.MYFWM572.js +0 -1
- package/dist/preview/chunk.N4FBDA2W.js +0 -1
- package/dist/preview/chunk.O42YET3W.js +0 -1
- package/dist/preview/chunk.ONDILMIX.js +0 -1
- package/dist/preview/chunk.OWBEV6FR.js +0 -1
- package/dist/preview/chunk.OWE6OJ4P.js +0 -1
- package/dist/preview/chunk.OYJSFO3A.js +0 -1
- package/dist/preview/chunk.P62SKNJS.js +0 -27
- package/dist/preview/chunk.PA5HYAEO.js +0 -1
- package/dist/preview/chunk.PMEDLEZY.js +0 -9
- package/dist/preview/chunk.PTXQHHKF.js +0 -1
- package/dist/preview/chunk.R2D373VG.js +0 -1
- package/dist/preview/chunk.RB4RTBRZ.js +0 -1
- package/dist/preview/chunk.RCLJ4H52.js +0 -116
- package/dist/preview/chunk.RKRSRKF3.js +0 -1
- package/dist/preview/chunk.RWGLKDWH.js +0 -1
- package/dist/preview/chunk.SIL4KD3K.js +0 -1
- package/dist/preview/chunk.SS76EIMI.js +0 -1
- package/dist/preview/chunk.UIIVEQAT.js +0 -1
- package/dist/preview/chunk.UTHHX2TJ.js +0 -1
- package/dist/preview/chunk.UWNYT7PF.js +0 -1
- package/dist/preview/chunk.VNBO2RXD.js +0 -1
- package/dist/preview/chunk.VPPUTA74.js +0 -1
- package/dist/preview/chunk.WKXNBHTL.js +0 -4
- package/dist/preview/chunk.XDZSTIS6.js +0 -88
- package/dist/preview/chunk.YUWRZWGX.js +0 -1
- package/dist/preview/chunk.Z2RGLFLS.js +0 -1
- package/dist/preview/chunk.Z56B2JR2.js +0 -25
- package/dist/preview/chunk.ZEGSQCSD.js +0 -1
- package/dist/preview/chunk.ZEVVWWNA.js +0 -44
- package/dist/preview/chunk.ZS4DJ76C.js +0 -1
- /package/dist/preview/{chunk.OHE5AMHH.js → chunk.EYZ7MHBZ.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Ne,c as Oe,d as ze}from"./chunk.WLRTPFAC.js";import{b as Me}from"./chunk.RWGLKDWH.js";import{a as Ee,c as He}from"./chunk.XAXJHEMD.js";import{a as Le}from"./chunk.WKXNBHTL.js";import{b as Pe,e as j,f as le}from"./chunk.YRQZZH5V.js";import{a as Re}from"./chunk.VPPUTA74.js";import{b as Ae}from"./chunk.OYJSFO3A.js";import{E as Ce,F as ie,G as Te,I as Q,M as Y,U as J,ga as X,j as be,m as we,n as ke,r as Se,s as xe,x as $e}from"./chunk.Z56B2JR2.js";import{$ as ve,W as me,_ as ye,_b as he}from"./chunk.HLLWKSZB.js";import{b as D}from"./chunk.AJZBJBMO.js";var Z=D(ie(),1),Ue=220;function Ve(n,s){if(!n||!s||typeof document>"u")return null;let m=n.getBoundingClientRect(),r=document.elementFromPoint(m.left+s.x,m.top+s.y),g=r?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");return g||(r?.closest("[data-graview-view]")?.getAttribute("data-graview-view")??null)}function qe({hover:n=!0}={}){let{store:s,view:m,views:r,pointer:g}=J(),{selection:c}=X(),[k,S]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{if(!n)return;let o=null,y=!1,$=()=>typeof document<"u"&&document.querySelector("[data-graview-reach]")!==null?document.querySelector("[data-graview-settled]")===null:!1,i=()=>{if(o&&clearTimeout(o),y)return;let w=g.snapshot();if(!w){S(L=>L===null?L:null);return}o=setTimeout(()=>{if(y||$()){i();return}let L=typeof document>"u"?null:document.querySelector("[data-graview-stage]"),v=Ve(L,w);S(P=>P===v?P:v)},Ue)},f=()=>{y=!0,o&&clearTimeout(o)},C=()=>{y=!1,i()},x=g.subscribe(i);return document.addEventListener("pointerdown",f,!0),document.addEventListener("pointerup",C,!0),document.addEventListener("pointercancel",C,!0),i(),()=>{x(),document.removeEventListener("pointerdown",f,!0),document.removeEventListener("pointerup",C,!0),document.removeEventListener("pointercancel",C,!0),o&&clearTimeout(o)}},[g,n]);let N=o=>{let y=s.graph.getNode(o);if(y)return me(s.schema.tryDefinition(y.kind),y);let $=Le(o,s.schema);if($)return $;let i=xe(o);if(i)return ve(s.schema,i);let f=$e(o);if(f.length>0){let C=f.map(w=>ye(s.schema,w)),x=C.length===1?C[0]:`${C.slice(0,-1).join(", ")} and ${C.at(-1)}`;return x.charAt(0).toUpperCase()+x.slice(1)}return null},E=c[c.length-1];if(E!==void 0){let o=N(E);if(o)return{id:E,name:c.length>1?`${o} and ${c.length-1} more`:o,because:"selection"}}if(k!=null){let o=N(k);if(o)return{id:k,name:o,because:"hover"}}let p=m.within?.view,R=p?r.places().find(o=>o.as===p||he(o.title)===p):void 0;if(R)return{id:null,name:R.title,because:"place"};if(m.focusId){let o=N(m.focusId);if(o)return{id:m.focusId,name:o,because:"place"}}return{id:null,name:"the whole thing",because:"place"}}var A=D(ie(),1);var z=D(ie(),1),b=D(Y(),1),W=(n,s)=>`${n}:${s}`;function De({answer:n,said:s,onReply:m,talk:r}){let[g]=(0,z.useState)(()=>Te(null)),c=r??g,{turns:k,outcomes:S,busy:N}=Q(c),E=(0,z.useCallback)((R,o)=>c.settle(R,o),[c]);return{turns:k,outcomes:S,busy:N,send:async R=>{let o=R.trim();if(!o||c.get().busy)return;c.setBusy(!0);let y=c.get();c.setTurns(f=>[...f,{role:"person",text:o}]);let $=y.turns.map((f,C)=>{let x=(f.proposals??[]).map((w,L)=>{let v=y.outcomes.get(W(C,L));return v?.state==="refused"?`${s(w)} \u2014 refused: ${v.error}`:v?`${v.said} \u2014 ${v.state==="applied"?"applied":"set aside"}`:s(w)});return{role:f.role,text:x.length>0?`${f.text} [Offered beneath this answer: ${x.join("; ")}]`:f.text}}),i;try{i=await n(o,{history:$})}catch(f){i={say:`That couldn't be answered: ${f instanceof Error?f.message:String(f)}`,proposals:[]}}c.setTurns(f=>[...f,{role:"seat",text:i.say,proposals:i.proposals,...i.questions?{questions:i.questions}:{},...i.picks?.length?{picks:i.picks}:{},...i.moves?.length?{moves:i.moves}:{},...i.offer?{offer:i.offer}:{},...i.unsure?{unsure:!0}:{},...i.via?{via:i.via}:{}}]),m?.(i),c.setBusy(!1)},settle:E}}var Qe=n=>{let s=/^([\s\S]*?)\s*(\((?:[^()]|\([^()]*\))*\))\s*$/.exec(n);return s&&s[1]?{said:s[1],aside:s[2]}:{said:n}};function je({turns:n,outcomes:s,busy:m,testId:r,empty:g,minHeight:c=64,maxHeight:k="min(46cqh, 400px)",renderProposal:S,renderAfter:N,renderSaid:E,ready:p=()=>!0,onApplyAll:R,applyAllLabel:o="Apply all"}){let y=(0,z.useRef)(null);return(0,z.useEffect)(()=>{y.current?.scrollTo?.({top:y.current.scrollHeight})},[n]),n.length===0&&g===null&&!m?null:(0,b.jsxs)("ol",{ref:y,style:{margin:0,padding:10,listStyle:"none",display:"grid",gap:8,alignContent:"start",maxHeight:k,minHeight:c,overflowY:"auto"},children:[n.length===0?g===null?null:(0,b.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)",lineHeight:1.5},children:g}):null,n.map(($,i)=>{let f=$.proposals??[],C=f.filter((w,L)=>{let v=W(i,L),P=s.get(v);return P?.state!=="applied"&&P?.state!=="declined"&&p(w,v)}),x=Qe($.text);return(0,b.jsxs)("li",{style:{display:"grid",gap:6,justifyItems:$.role==="person"?"end":"start"},children:[$.role==="person"?(0,b.jsx)("p",{style:{margin:0,maxWidth:"85%",padding:"6px 10px",borderRadius:"12px 12px 4px 12px",fontSize:"0.875rem",lineHeight:1.45,background:"var(--graview-panel-muted)",color:"var(--graview-ink)"},children:$.text}):(0,b.jsxs)("p",{style:{margin:0,fontSize:"0.875rem",lineHeight:1.5,color:"var(--graview-ink)"},children:[E?E($,x.said):x.said,$.via?(0,b.jsx)("span",{"data-testid":`${r}-answered-with-ai`,style:{marginLeft:6,fontSize:"0.6875rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:Ce}):null,x.aside?(0,b.jsx)("span",{style:{display:"block",marginTop:2,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:x.aside}):null]}),N?.($,i),f.map((w,L)=>{let v=W(i,L),P=s.get(v);return P?.state==="applied"||P?.state==="declined"?(0,b.jsx)(ee,{outcome:P,testId:r},v):(0,b.jsxs)("span",{style:{display:"grid",gap:4,justifySelf:"stretch",justifyItems:"start"},children:[S(w,{key:v,turn:i,at:L}),P?(0,b.jsx)(ee,{outcome:P,testId:r}):null]},v)}),R&&C.length>=2?(0,b.jsxs)("button",{type:"button","data-testid":`${r}-apply-all`,onClick:()=>R(i,f),title:"Take these in order; anything still missing is asked for",style:{fontSize:"0.8125rem",justifySelf:"start",fontWeight:600},children:[o," ",C.length]}):null]},i)}),m?(0,b.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"thinking\u2026"}):null]})}function ee({outcome:n,testId:s}){if(n.state==="refused")return(0,b.jsxs)("span",{"data-testid":`${s}-refused`,style:{fontSize:"0.8125rem",color:"var(--graview-warn)"},children:["Refused: ",n.error]});let m=n.state==="applied";return(0,b.jsxs)("span",{"data-testid":`${s}-${n.state}`,style:{fontSize:"0.8125rem",color:m?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:[m?(0,b.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:"\u2713 "}):null,m?n.said:(0,b.jsx)("s",{children:n.said})]})}function We({busy:n,placeholder:s,ariaLabel:m,testId:r,onSend:g}){let[c,k]=(0,z.useState)("");return(0,b.jsxs)("form",{onSubmit:S=>{S.preventDefault(),!(n||c.trim().length===0)&&(g(c),k(""))},style:{display:"flex",gap:6,padding:8,borderTop:"1px solid var(--graview-edge)"},children:[(0,b.jsx)("input",{value:c,onChange:S=>k(S.target.value),placeholder:s,"aria-label":m,"data-testid":`${r}-draft`,style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"6px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,b.jsx)("button",{type:"submit","data-testid":`${r}-send`,disabled:n||c.trim().length===0,style:{fontSize:"0.875rem"},children:"Send"})]})}var u=D(Y(),1),Ye=/\b(?:board|kanban|timeline|calendar|gantt|who covers|covers what|coverage|floor plan|layout|draw|chart|(?:list|table) of|as an? (?:list|table|board|calendar|timeline|grid))\b/i,Je=/\b(?:group(?:ed)? by|split by|sort(?:ed)? by|order(?:ed)? by|only|call it|name it|as an? (?:board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)|show all|all of them|clear the filter|no filter)\b/i,Xe=n=>n.charAt(0).toLowerCase()+n.slice(1),Ze=n=>n.to==="record"?n.label:n.to==="problems"?"problems":n.title;function et(n,s,m){let r=[],g=n;for(let c of s){let k=Ze(c),S=k?g.toLowerCase().indexOf(k.toLowerCase()):-1;S<0||(r.push(g.slice(0,S),m(c,g.slice(S,S+k.length))),g=g.slice(S+k.length))}return r.length===0?n:[...r,g]}function vt({respond:n,onCall:s,onPick:m,testId:r="chat",empty:g,shared:c=!1,composer:k=!0,onMove:S,place:N,onDraft:E}){let{store:p,views:R,view:o,principal:y,setView:$,seatWho:i,noteSeat:f,session:C,ai:x,seatTalk:w,brand:L,app:v}=J(),P=He(),te=S??P,{takeBack:Fe}=Ee(te),{selection:ne}=X(),de=qe(),ce=i??"chat",q=(0,A.useMemo)(()=>({kind:"agent",id:ce,session:C}),[ce,C]),ae=(0,A.useRef)(void 0),G=(0,A.useMemo)(()=>Me(p,{author:{...q,...y.roles?{roles:y.roles}:{}},derive:()=>({pins:Ne()}),places:()=>R.places(),via:()=>ae.current,...v?{app:v}:{},near:x.near}),[p,y,q,R,v,x.near]),Be=(0,A.useMemo)(()=>n??ze(x),[n,x]);(0,A.useEffect)(()=>s?G.onCall(s):void 0,[G,s]),Ae(G);let pe=(0,A.useMemo)(()=>({name:L?.name??"app",schema:p.schema,...p.policy?{policy:p.policy}:{}}),[p,L]),Ie=async e=>{let a=w.get().draft,t=a!==null&&Je.test(e);if(!t&&!Ye.test(e))return;let l=await import("./chunk.ZEGSQCSD.js"),h=n?void 0:Oe(x),d={app:pe,sight:l.draftSight(pe,_),...h?{complete:h}:{},...a?{lastGood:a}:{}},T=t&&a?await l.refineDraft(a,e,d):await l.draftView(e,d);if(l.isDraftFailure(T)){let O=T.lastGood??a;return O?(w.setDraft(O,T.failed),E?.(),{say:`${T.failed} The last view stays.`,proposals:[],grounded:!0}):{say:T.failed,proposals:[],grounded:!0}}return w.setDraft(T,null),E?.(),{say:`Here is ${Xe(T.said)} Ask to change it, or keep it as a lens.`,proposals:[],grounded:!0}},H=De({...c?{talk:w}:{},said:e=>j(p,e),answer:async(e,a)=>{let t=await Ie(e);if(t)return t;let{placesFromViews:l}=await import("./chunk.MYFWM572.js"),h=N??o.within?.view,d=R.arrangement?.(),T=p.today();return Be(p,e,{...a,selection:de.id?[de.id]:ne,principal:{...q,...y.roles?{roles:y.roles}:{}},places:l(p.schema,R.places(),d?{pages:d}:{}),...h?{place:h}:{},...T?{today:T}:{},...v?{app:v}:{}})},onReply:e=>{let a=e.moves?.[0];a&&te(a);let t=e.questions?.[0];f(t?{type:"asking",author:q,where:t.nodeId??null,say:`${t.nodeLabel?`${t.nodeLabel}: `:""}${t.asks}`,confidence:t.confidence}:{type:"said",author:q,say:e.say});let l=e.proposals.find(h=>!oe(h));if(l){let h=p.permits({name:l.mutation,args:{...l.args}},_);h.ok||f({type:"refused",author:q,where:fe(l.mutation),say:h.refusal.message})}}}),{outcomes:I,settle:re}=H,ue=Q(w);(0,A.useEffect)(()=>{if(!c||ue.pending===null||H.busy)return;let e=w.takePending();e&&H.send(e)},[c,ue.pending,H.busy]);let _={...q,...y.roles?{roles:y.roles}:{}},oe=e=>p.permits({name:e.mutation,args:{...e.args}},_).ok,fe=e=>{let a=p.allMutations().find(t=>t.name===e)?.subject?.kinds;return Array.isArray(a)&&a[0]?Se(a[0]):null},[M,K]=(0,A.useState)(null),U=async(e,a)=>{let t=Pe(p,e),l=j(p,t),h=G.definitions.find(T=>T.act===t.mutation)?.name??t.mutation;ae.current=H.turns[Number(a.split(":")[0])]?.via;let d=await G.call(h,{...t.args}).finally(()=>{ae.current=void 0});return d.ok?(re(a,{state:"applied",said:l}),!0):(re(a,{state:"refused",error:d.error}),f({type:"refused",author:q,where:fe(t.mutation),say:d.error}),!1)},_e=async(e,a)=>{for(let[t,l]of a.entries()){let h=W(e,t);if(I.get(h)?.state==="applied"||!oe(l))continue;let d=le(p,l);if(d.length>0){K({proposal:l,open:d,key:h});return}if(!await U(l,h))return}},V=(0,A.useRef)(null),se=(0,A.useRef)(null);(0,A.useLayoutEffect)(()=>{let e=se.current;if(!e||e.isConnected||document.activeElement!==document.body)return;se.current=null,(V.current?.querySelector(`[data-testid="${r}-apply"]:not([disabled])`)??V.current?.querySelector(`[data-testid="${r}-draft"]`)??V.current?.closest("[data-testid='seat']")?.querySelector("[data-testid='seat-field']"))?.focus()});let Ke=(e,a,t,l)=>{let h=p.permits({name:t.mutation,args:{...t.args}},_);if(!h.ok)return(0,u.jsxs)("span",{"data-testid":`${r}-withheld`,style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,u.jsx)("s",{children:j(p,t)})," \u2014 ",h.refusal.message]});let d=le(p,t),T=(H.turns[e]?.proposals??[]).slice(0,a).filter((ge,F)=>I.get(W(e,F))?.state!=="applied").find(ge=>d.some(F=>F.kinds&&typeof t.args[F.name]=="string"&&ge.args.label===t.args[F.name])),O=j(p,t);return(0,u.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 10px"},children:[(0,u.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--graview-ink)"},title:t.why,children:[O,d.length>0&&!T?" \u2026":""]}),(0,u.jsxs)("span",{style:{display:"inline-flex",gap:6},children:[(0,u.jsx)("button",{type:"button","data-testid":`${r}-apply`,"data-graview-asks":d.length>0?d.length:void 0,disabled:T!==void 0,"aria-label":`Do it: ${O}`,onClick:()=>d.length>0?K({proposal:t,open:d,key:l}):void U(t,l),title:T?`After \u201C${j(p,T)}\u201D`:d.length>0?`${O} \u2014 it asks for ${d.length===1?"one more thing":`${d.length} more things`}`:O,style:B,children:"Do it"}),(0,u.jsx)("button",{type:"button","data-testid":`${r}-decline`,"aria-label":`Not now: ${O}`,onClick:()=>re(l,{state:"declined",said:O}),style:{...B,color:"var(--graview-ink-muted)"},children:"Not now"})]})]})};return(0,u.jsxs)("div",{"data-testid":`${r}-panel`,ref:V,onFocus:e=>{se.current=e.target},style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",alignContent:"start",gap:8,minWidth:0,minHeight:0},children:[H.turns.length===0?g??null:null,(0,u.jsx)(je,{turns:H.turns,outcomes:I,busy:H.busy,testId:r,minHeight:0,maxHeight:"none",empty:g!==void 0?null:(0,u.jsxs)(u.Fragment,{children:["Ask what's wrong, ask about anything by name, or say a change in its own words.",ne.length>0?" \u201CThis\u201D means what you have selected.":""]}),renderProposal:(e,{key:a,turn:t,at:l})=>Ke(t,l,e,a),ready:e=>oe(e),onApplyAll:(e,a)=>void _e(e,a),applyAllLabel:"Do all",renderSaid:(e,a)=>e.moves?.length?et(a,e.moves,(t,l)=>(0,u.jsx)("button",{type:"button","data-testid":`${r}-went`,title:`Go to ${l}`,onClick:()=>te(t),style:{...Ge,fontSize:"inherit"},children:l},`${t.address}:${l}`)):a,renderAfter:(e,a)=>[...e.offer?[(0,u.jsx)("button",{type:"button","data-testid":`${r}-offer`,onClick:()=>w.ask(`a list of ${e.offer.draft}`),style:{...B,justifySelf:"start"},children:e.offer.label},`${a}:offer`)]:[],...e.kept&&!e.kept.taken?[(0,u.jsx)("button",{type:"button","data-testid":`${r}-take-back`,onClick:()=>void Fe(e.kept),style:{...B,justifySelf:"start"},children:"Take back"},`${a}:take-back`)]:[],...e.picks?.length?[(0,u.jsx)("p",{"data-testid":`${r}-picks`,style:{margin:0,display:"flex",flexWrap:"wrap",gap:"2px 12px"},children:e.picks.map(t=>(0,u.jsx)("button",{type:"button","data-testid":`${r}-pick`,"data-chat-pick":t.id,title:t.why.field==="label"?`Go to ${t.label}`:`${t.why.reading}: ${t.why.fragment}`,onClick:()=>m?m(t.id):$(l=>ke(be(we(l,!1),t.id),[t.id])),style:Ge,children:t.label},t.id))},`${a}:picks`)]:[],...(e.questions??[]).map(t=>{let l=`${a}:q:${t.id}`,h=I.get(l);return(0,u.jsxs)("div",{"data-testid":`${r}-question`,"data-chat-question-node":t.nodeId,style:{display:"grid",gap:4,justifySelf:"start"},children:[(0,u.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[t.nodeLabel?(0,u.jsxs)("strong",{children:[t.nodeLabel,": "]}):null,t.asks,t.because==="split"?" (it could be either)":" (it was not sure)"]}),(0,u.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:t.options.map(d=>(0,u.jsxs)("button",{type:"button","data-testid":`${r}-option`,disabled:!d.call,title:d.call?d.call.why??"Take this answer":"Nothing to do for this answer",onClick:()=>d.call?void U(d.call,l):void 0,style:B,children:[d.value," ",Math.round(d.probability*100),"%"]},d.value))}),h?(0,u.jsx)(ee,{outcome:h,testId:r}):null]},t.id)})]}),M?(0,u.jsx)("div",{"data-testid":`${r}-asking`,children:(0,u.jsx)(Re,{affordance:{id:`chat:${M.proposal.mutation}`,mutation:M.proposal.mutation,label:j(p,M.proposal),provider:"llm",why:M.proposal.why??"Suggested in the conversation.",nodeIds:[],args:M.proposal.args,open:M.open,score:0},onApply:e=>{let a={...M.proposal,args:{...M.proposal.args,...e}};K(null),U(a,M.key)},onCancel:()=>K(null)})}):null,k?(0,u.jsx)(We,{busy:H.busy,placeholder:ne.length>0?"Ask about this\u2026":"Ask, or say a change\u2026",ariaLabel:"Ask",testId:r,onSend:e=>c?w.ask(e):void H.send(e)}):null]})}var B={font:"inherit",fontSize:"0.8125rem",minHeight:26,padding:"0 9px",borderRadius:6,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",boxShadow:"none",color:"var(--graview-ink)",cursor:"pointer"},Ge={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};export{qe as a,vt as b,B as c,Ge as d};
|
|
1
|
+
import{a as Ee,c as He}from"./chunk.4ALKPNXM.js";import{a as Ne,c as Oe,d as ze}from"./chunk.OQ4KFN6W.js";import{b as Me}from"./chunk.3R4W2P5X.js";import{b as Pe,e as j,f as le}from"./chunk.C5CYZNSJ.js";import{a as Le}from"./chunk.3SKKIHU3.js";import{a as Re}from"./chunk.QIAKO27D.js";import{b as Ae}from"./chunk.KQT7WAQE.js";import{F as Ce,G as ie,H as Te,J as Q,R as Y,Z as J,k as be,n as we,o as ke,oa as X,s as Se,t as xe,y as $e}from"./chunk.GFF2FB2J.js";import{$ as ve,W as me,_ as ye,wc as he}from"./chunk.6V2RG5JG.js";import{b as D}from"./chunk.AJZBJBMO.js";var Z=D(ie(),1),Ue=220;function Ve(n,s){if(!n||!s||typeof document>"u")return null;let m=n.getBoundingClientRect(),r=document.elementFromPoint(m.left+s.x,m.top+s.y),g=r?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");return g||(r?.closest("[data-graview-view]")?.getAttribute("data-graview-view")??null)}function qe({hover:n=!0}={}){let{store:s,view:m,views:r,pointer:g}=J(),{selection:c}=X(),[k,S]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{if(!n)return;let o=null,y=!1,$=()=>typeof document<"u"&&document.querySelector("[data-graview-reach]")!==null?document.querySelector("[data-graview-settled]")===null:!1,i=()=>{if(o&&clearTimeout(o),y)return;let w=g.snapshot();if(!w){S(L=>L===null?L:null);return}o=setTimeout(()=>{if(y||$()){i();return}let L=typeof document>"u"?null:document.querySelector("[data-graview-stage]"),v=Ve(L,w);S(P=>P===v?P:v)},Ue)},f=()=>{y=!0,o&&clearTimeout(o)},C=()=>{y=!1,i()},x=g.subscribe(i);return document.addEventListener("pointerdown",f,!0),document.addEventListener("pointerup",C,!0),document.addEventListener("pointercancel",C,!0),i(),()=>{x(),document.removeEventListener("pointerdown",f,!0),document.removeEventListener("pointerup",C,!0),document.removeEventListener("pointercancel",C,!0),o&&clearTimeout(o)}},[g,n]);let N=o=>{let y=s.graph.getNode(o);if(y)return me(s.schema.tryDefinition(y.kind),y);let $=Le(o,s.schema);if($)return $;let i=xe(o);if(i)return ve(s.schema,i);let f=$e(o);if(f.length>0){let C=f.map(w=>ye(s.schema,w)),x=C.length===1?C[0]:`${C.slice(0,-1).join(", ")} and ${C.at(-1)}`;return x.charAt(0).toUpperCase()+x.slice(1)}return null},E=c[c.length-1];if(E!==void 0){let o=N(E);if(o)return{id:E,name:c.length>1?`${o} and ${c.length-1} more`:o,because:"selection"}}if(k!=null){let o=N(k);if(o)return{id:k,name:o,because:"hover"}}let p=m.within?.view,R=p?r.places().find(o=>o.as===p||he(o.title)===p):void 0;if(R)return{id:null,name:R.title,because:"place"};if(m.focusId){let o=N(m.focusId);if(o)return{id:m.focusId,name:o,because:"place"}}return{id:null,name:"the whole thing",because:"place"}}var A=D(ie(),1);var z=D(ie(),1),b=D(Y(),1),W=(n,s)=>`${n}:${s}`;function De({answer:n,said:s,onReply:m,talk:r}){let[g]=(0,z.useState)(()=>Te(null)),c=r??g,{turns:k,outcomes:S,busy:N}=Q(c),E=(0,z.useCallback)((R,o)=>c.settle(R,o),[c]);return{turns:k,outcomes:S,busy:N,send:async R=>{let o=R.trim();if(!o||c.get().busy)return;c.setBusy(!0);let y=c.get();c.setTurns(f=>[...f,{role:"person",text:o}]);let $=y.turns.map((f,C)=>{let x=(f.proposals??[]).map((w,L)=>{let v=y.outcomes.get(W(C,L));return v?.state==="refused"?`${s(w)} \u2014 refused: ${v.error}`:v?`${v.said} \u2014 ${v.state==="applied"?"applied":"set aside"}`:s(w)});return{role:f.role,text:x.length>0?`${f.text} [Offered beneath this answer: ${x.join("; ")}]`:f.text}}),i;try{i=await n(o,{history:$})}catch(f){i={say:`That couldn't be answered: ${f instanceof Error?f.message:String(f)}`,proposals:[]}}c.setTurns(f=>[...f,{role:"seat",text:i.say,proposals:i.proposals,...i.questions?{questions:i.questions}:{},...i.picks?.length?{picks:i.picks}:{},...i.moves?.length?{moves:i.moves}:{},...i.offer?{offer:i.offer}:{},...i.unsure?{unsure:!0}:{},...i.via?{via:i.via}:{}}]),m?.(i),c.setBusy(!1)},settle:E}}var Qe=n=>{let s=/^([\s\S]*?)\s*(\((?:[^()]|\([^()]*\))*\))\s*$/.exec(n);return s&&s[1]?{said:s[1],aside:s[2]}:{said:n}};function je({turns:n,outcomes:s,busy:m,testId:r,empty:g,minHeight:c=64,maxHeight:k="min(46cqh, 400px)",renderProposal:S,renderAfter:N,renderSaid:E,ready:p=()=>!0,onApplyAll:R,applyAllLabel:o="Apply all"}){let y=(0,z.useRef)(null);return(0,z.useEffect)(()=>{y.current?.scrollTo?.({top:y.current.scrollHeight})},[n]),n.length===0&&g===null&&!m?null:(0,b.jsxs)("ol",{ref:y,style:{margin:0,padding:10,listStyle:"none",display:"grid",gap:8,alignContent:"start",maxHeight:k,minHeight:c,overflowY:"auto"},children:[n.length===0?g===null?null:(0,b.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)",lineHeight:1.5},children:g}):null,n.map(($,i)=>{let f=$.proposals??[],C=f.filter((w,L)=>{let v=W(i,L),P=s.get(v);return P?.state!=="applied"&&P?.state!=="declined"&&p(w,v)}),x=Qe($.text);return(0,b.jsxs)("li",{style:{display:"grid",gap:6,justifyItems:$.role==="person"?"end":"start"},children:[$.role==="person"?(0,b.jsx)("p",{style:{margin:0,maxWidth:"85%",padding:"6px 10px",borderRadius:"12px 12px 4px 12px",fontSize:"0.875rem",lineHeight:1.45,background:"var(--graview-panel-muted)",color:"var(--graview-ink)"},children:$.text}):(0,b.jsxs)("p",{style:{margin:0,fontSize:"0.875rem",lineHeight:1.5,color:"var(--graview-ink)"},children:[E?E($,x.said):x.said,$.via?(0,b.jsx)("span",{"data-testid":`${r}-answered-with-ai`,style:{marginLeft:6,fontSize:"0.6875rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:Ce}):null,x.aside?(0,b.jsx)("span",{style:{display:"block",marginTop:2,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:x.aside}):null]}),N?.($,i),f.map((w,L)=>{let v=W(i,L),P=s.get(v);return P?.state==="applied"||P?.state==="declined"?(0,b.jsx)(ee,{outcome:P,testId:r},v):(0,b.jsxs)("span",{style:{display:"grid",gap:4,justifySelf:"stretch",justifyItems:"start"},children:[S(w,{key:v,turn:i,at:L}),P?(0,b.jsx)(ee,{outcome:P,testId:r}):null]},v)}),R&&C.length>=2?(0,b.jsxs)("button",{type:"button","data-testid":`${r}-apply-all`,onClick:()=>R(i,f),title:"Take these in order; anything still missing is asked for",style:{fontSize:"0.8125rem",justifySelf:"start",fontWeight:600},children:[o," ",C.length]}):null]},i)}),m?(0,b.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"thinking\u2026"}):null]})}function ee({outcome:n,testId:s}){if(n.state==="refused")return(0,b.jsxs)("span",{"data-testid":`${s}-refused`,style:{fontSize:"0.8125rem",color:"var(--graview-warn)"},children:["Refused: ",n.error]});let m=n.state==="applied";return(0,b.jsxs)("span",{"data-testid":`${s}-${n.state}`,style:{fontSize:"0.8125rem",color:m?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:[m?(0,b.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:"\u2713 "}):null,m?n.said:(0,b.jsx)("s",{children:n.said})]})}function We({busy:n,placeholder:s,ariaLabel:m,testId:r,onSend:g}){let[c,k]=(0,z.useState)("");return(0,b.jsxs)("form",{onSubmit:S=>{S.preventDefault(),!(n||c.trim().length===0)&&(g(c),k(""))},style:{display:"flex",gap:6,padding:8,borderTop:"1px solid var(--graview-edge)"},children:[(0,b.jsx)("input",{value:c,onChange:S=>k(S.target.value),placeholder:s,"aria-label":m,"data-testid":`${r}-draft`,style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"6px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,b.jsx)("button",{type:"submit","data-testid":`${r}-send`,disabled:n||c.trim().length===0,style:{fontSize:"0.875rem"},children:"Send"})]})}var u=D(Y(),1),Ye=/\b(?:board|kanban|timeline|calendar|gantt|who covers|covers what|coverage|floor plan|layout|draw|chart|(?:list|table) of|as an? (?:list|table|board|calendar|timeline|grid))\b/i,Je=/\b(?:group(?:ed)? by|split by|sort(?:ed)? by|order(?:ed)? by|only|call it|name it|as an? (?:board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)|show all|all of them|clear the filter|no filter)\b/i,Xe=n=>n.charAt(0).toLowerCase()+n.slice(1),Ze=n=>n.to==="record"?n.label:n.to==="problems"?"problems":n.title;function et(n,s,m){let r=[],g=n;for(let c of s){let k=Ze(c),S=k?g.toLowerCase().indexOf(k.toLowerCase()):-1;S<0||(r.push(g.slice(0,S),m(c,g.slice(S,S+k.length))),g=g.slice(S+k.length))}return r.length===0?n:[...r,g]}function vt({respond:n,onCall:s,onPick:m,testId:r="chat",empty:g,shared:c=!1,composer:k=!0,onMove:S,place:N,onDraft:E}){let{store:p,views:R,view:o,principal:y,setView:$,seatWho:i,noteSeat:f,session:C,ai:x,seatTalk:w,brand:L,app:v}=J(),P=He(),te=S??P,{takeBack:Fe}=Ee(te),{selection:ne}=X(),de=qe(),ce=i??"chat",q=(0,A.useMemo)(()=>({kind:"agent",id:ce,session:C}),[ce,C]),ae=(0,A.useRef)(void 0),G=(0,A.useMemo)(()=>Me(p,{author:{...q,...y.roles?{roles:y.roles}:{}},derive:()=>({pins:Ne()}),places:()=>R.places(),via:()=>ae.current,...v?{app:v}:{},near:x.near}),[p,y,q,R,v,x.near]),Be=(0,A.useMemo)(()=>n??ze(x),[n,x]);(0,A.useEffect)(()=>s?G.onCall(s):void 0,[G,s]),Ae(G);let pe=(0,A.useMemo)(()=>({name:L?.name??"app",schema:p.schema,...p.policy?{policy:p.policy}:{}}),[p,L]),Ie=async e=>{let a=w.get().draft,t=a!==null&&Je.test(e);if(!t&&!Ye.test(e))return;let l=await import("./chunk.4HP7UWA2.js"),h=n?void 0:Oe(x),d={app:pe,sight:l.draftSight(pe,_),...h?{complete:h}:{},...a?{lastGood:a}:{}},T=t&&a?await l.refineDraft(a,e,d):await l.draftView(e,d);if(l.isDraftFailure(T)){let O=T.lastGood??a;return O?(w.setDraft(O,T.failed),E?.(),{say:`${T.failed} The last view stays.`,proposals:[],grounded:!0}):{say:T.failed,proposals:[],grounded:!0}}return w.setDraft(T,null),E?.(),{say:`Here is ${Xe(T.said)} Ask to change it, or keep it as a lens.`,proposals:[],grounded:!0}},H=De({...c?{talk:w}:{},said:e=>j(p,e),answer:async(e,a)=>{let t=await Ie(e);if(t)return t;let{placesFromViews:l}=await import("./chunk.X37L5TN5.js"),h=N??o.within?.view,d=R.arrangement?.(),T=p.today();return Be(p,e,{...a,selection:de.id?[de.id]:ne,principal:{...q,...y.roles?{roles:y.roles}:{}},places:l(p.schema,R.places(),d?{pages:d}:{}),...h?{place:h}:{},...T?{today:T}:{},...v?{app:v}:{}})},onReply:e=>{let a=e.moves?.[0];a&&te(a);let t=e.questions?.[0];f(t?{type:"asking",author:q,where:t.nodeId??null,say:`${t.nodeLabel?`${t.nodeLabel}: `:""}${t.asks}`,confidence:t.confidence}:{type:"said",author:q,say:e.say});let l=e.proposals.find(h=>!oe(h));if(l){let h=p.permits({name:l.mutation,args:{...l.args}},_);h.ok||f({type:"refused",author:q,where:fe(l.mutation),say:h.refusal.message})}}}),{outcomes:I,settle:re}=H,ue=Q(w);(0,A.useEffect)(()=>{if(!c||ue.pending===null||H.busy)return;let e=w.takePending();e&&H.send(e)},[c,ue.pending,H.busy]);let _={...q,...y.roles?{roles:y.roles}:{}},oe=e=>p.permits({name:e.mutation,args:{...e.args}},_).ok,fe=e=>{let a=p.allMutations().find(t=>t.name===e)?.subject?.kinds;return Array.isArray(a)&&a[0]?Se(a[0]):null},[M,K]=(0,A.useState)(null),U=async(e,a)=>{let t=Pe(p,e),l=j(p,t),h=G.definitions.find(T=>T.act===t.mutation)?.name??t.mutation;ae.current=H.turns[Number(a.split(":")[0])]?.via;let d=await G.call(h,{...t.args}).finally(()=>{ae.current=void 0});return d.ok?(re(a,{state:"applied",said:l}),!0):(re(a,{state:"refused",error:d.error}),f({type:"refused",author:q,where:fe(t.mutation),say:d.error}),!1)},_e=async(e,a)=>{for(let[t,l]of a.entries()){let h=W(e,t);if(I.get(h)?.state==="applied"||!oe(l))continue;let d=le(p,l);if(d.length>0){K({proposal:l,open:d,key:h});return}if(!await U(l,h))return}},V=(0,A.useRef)(null),se=(0,A.useRef)(null);(0,A.useLayoutEffect)(()=>{let e=se.current;if(!e||e.isConnected||document.activeElement!==document.body)return;se.current=null,(V.current?.querySelector(`[data-testid="${r}-apply"]:not([disabled])`)??V.current?.querySelector(`[data-testid="${r}-draft"]`)??V.current?.closest("[data-testid='seat']")?.querySelector("[data-testid='seat-field']"))?.focus()});let Ke=(e,a,t,l)=>{let h=p.permits({name:t.mutation,args:{...t.args}},_);if(!h.ok)return(0,u.jsxs)("span",{"data-testid":`${r}-withheld`,style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,u.jsx)("s",{children:j(p,t)})," \u2014 ",h.refusal.message]});let d=le(p,t),T=(H.turns[e]?.proposals??[]).slice(0,a).filter((ge,F)=>I.get(W(e,F))?.state!=="applied").find(ge=>d.some(F=>F.kinds&&typeof t.args[F.name]=="string"&&ge.args.label===t.args[F.name])),O=j(p,t);return(0,u.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 10px"},children:[(0,u.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--graview-ink)"},title:t.why,children:[O,d.length>0&&!T?" \u2026":""]}),(0,u.jsxs)("span",{style:{display:"inline-flex",gap:6},children:[(0,u.jsx)("button",{type:"button","data-testid":`${r}-apply`,"data-graview-asks":d.length>0?d.length:void 0,disabled:T!==void 0,"aria-label":`Do it: ${O}`,onClick:()=>d.length>0?K({proposal:t,open:d,key:l}):void U(t,l),title:T?`After \u201C${j(p,T)}\u201D`:d.length>0?`${O} \u2014 it asks for ${d.length===1?"one more thing":`${d.length} more things`}`:O,style:B,children:"Do it"}),(0,u.jsx)("button",{type:"button","data-testid":`${r}-decline`,"aria-label":`Not now: ${O}`,onClick:()=>re(l,{state:"declined",said:O}),style:{...B,color:"var(--graview-ink-muted)"},children:"Not now"})]})]})};return(0,u.jsxs)("div",{"data-testid":`${r}-panel`,ref:V,onFocus:e=>{se.current=e.target},style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",alignContent:"start",gap:8,minWidth:0,minHeight:0},children:[H.turns.length===0?g??null:null,(0,u.jsx)(je,{turns:H.turns,outcomes:I,busy:H.busy,testId:r,minHeight:0,maxHeight:"none",empty:g!==void 0?null:(0,u.jsxs)(u.Fragment,{children:["Ask what's wrong, ask about anything by name, or say a change in its own words.",ne.length>0?" \u201CThis\u201D means what you have selected.":""]}),renderProposal:(e,{key:a,turn:t,at:l})=>Ke(t,l,e,a),ready:e=>oe(e),onApplyAll:(e,a)=>void _e(e,a),applyAllLabel:"Do all",renderSaid:(e,a)=>e.moves?.length?et(a,e.moves,(t,l)=>(0,u.jsx)("button",{type:"button","data-testid":`${r}-went`,title:`Go to ${l}`,onClick:()=>te(t),style:{...Ge,fontSize:"inherit"},children:l},`${t.address}:${l}`)):a,renderAfter:(e,a)=>[...e.offer?[(0,u.jsx)("button",{type:"button","data-testid":`${r}-offer`,onClick:()=>w.ask(`a list of ${e.offer.draft}`),style:{...B,justifySelf:"start"},children:e.offer.label},`${a}:offer`)]:[],...e.kept&&!e.kept.taken?[(0,u.jsx)("button",{type:"button","data-testid":`${r}-take-back`,onClick:()=>void Fe(e.kept),style:{...B,justifySelf:"start"},children:"Take back"},`${a}:take-back`)]:[],...e.picks?.length?[(0,u.jsx)("p",{"data-testid":`${r}-picks`,style:{margin:0,display:"flex",flexWrap:"wrap",gap:"2px 12px"},children:e.picks.map(t=>(0,u.jsx)("button",{type:"button","data-testid":`${r}-pick`,"data-chat-pick":t.id,title:t.why.field==="label"?`Go to ${t.label}`:`${t.why.reading}: ${t.why.fragment}`,onClick:()=>m?m(t.id):$(l=>ke(be(we(l,!1),t.id),[t.id])),style:Ge,children:t.label},t.id))},`${a}:picks`)]:[],...(e.questions??[]).map(t=>{let l=`${a}:q:${t.id}`,h=I.get(l);return(0,u.jsxs)("div",{"data-testid":`${r}-question`,"data-chat-question-node":t.nodeId,style:{display:"grid",gap:4,justifySelf:"start"},children:[(0,u.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[t.nodeLabel?(0,u.jsxs)("strong",{children:[t.nodeLabel,": "]}):null,t.asks,t.because==="split"?" (it could be either)":" (it was not sure)"]}),(0,u.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:t.options.map(d=>(0,u.jsxs)("button",{type:"button","data-testid":`${r}-option`,disabled:!d.call,title:d.call?d.call.why??"Take this answer":"Nothing to do for this answer",onClick:()=>d.call?void U(d.call,l):void 0,style:B,children:[d.value," ",Math.round(d.probability*100),"%"]},d.value))}),h?(0,u.jsx)(ee,{outcome:h,testId:r}):null]},t.id)})]}),M?(0,u.jsx)("div",{"data-testid":`${r}-asking`,children:(0,u.jsx)(Re,{affordance:{id:`chat:${M.proposal.mutation}`,mutation:M.proposal.mutation,label:j(p,M.proposal),provider:"llm",why:M.proposal.why??"Suggested in the conversation.",nodeIds:[],args:M.proposal.args,open:M.open,score:0},onApply:e=>{let a={...M.proposal,args:{...M.proposal.args,...e}};K(null),U(a,M.key)},onCancel:()=>K(null)})}):null,k?(0,u.jsx)(We,{busy:H.busy,placeholder:ne.length>0?"Ask about this\u2026":"Ask, or say a change\u2026",ariaLabel:"Ask",testId:r,onSend:e=>c?w.ask(e):void H.send(e)}):null]})}var B={font:"inherit",fontSize:"0.8125rem",minHeight:26,padding:"0 9px",borderRadius:6,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",boxShadow:"none",color:"var(--graview-ink)",cursor:"pointer"},Ge={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};export{qe as a,vt as b,B as c,Ge as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as O}from"./chunk.
|
|
1
|
+
import{B as O}from"./chunk.6V2RG5JG.js";var k=3,A=k+1,P=A+1,z=(o,r)=>o<r?-1:o>r?1:0;function L(o){return(o??0)>4?k:2}function N(o,r,a){let n=[];for(let d of Object.values(o.tryDefinition(r)?.edges??{}))if(d.to!=="*")for(let i of d.to)i!==r&&a.includes(i)&&!n.includes(i)&&n.push(i);return n}function W(o,r={}){let a=[...o.kinds],n=[...(r.order??[]).filter(e=>a.includes(e)),...a.filter(e=>!(r.order??[]).includes(e)).sort(z)].filter((e,t,s)=>s.indexOf(e)===t),d=e=>n.indexOf(e),i=new Map,g=[],h=(e,t,s)=>{i.set(e,{col:t,row:s,side:L(r.counts?.[e])}),g.push({col:t,row:s})};for(let e of n){let t=o.tryDefinition(e)?.plot??r.plots?.[e];t&&h(e,t.col,t.row)}let l=new Map(n.map(e=>[e,N(o,e,a)])),b=new Set(n.filter(e=>l.get(e).length>0||n.some(t=>l.get(t).includes(e)))),v=new Map,C=new Set,D=e=>{let t=v.get(e);if(t!==void 0)return t;if(C.has(e))return-1;C.add(e);let s=0;for(let c of l.get(e))s=Math.max(s,D(c)+1);return C.delete(e),v.set(e,s),s};for(let e of n)b.has(e)&&D(e);let f=[];for(let e of n)b.has(e)&&(f[v.get(e)]??=[]).push(e);let I=new Map,T=Math.max(1,Math.ceil(Math.sqrt(f.length))),H=Math.max(1,...f.map(e=>e?.length??0)),w=Math.max(P,Math.round(r.pitch??P)),R=(e,t)=>r.upright?{col:e%T*w,row:(Math.floor(e/T)*(H+1)+t)*w}:{col:t*w,row:e===0?0:-e*w},$=e=>!g.some(t=>V(t,e)),S=(e,t,s)=>{let c=s;for(;!$(R(t,c))&&c<s+64;)c++;return i.has(e)||h(e,R(t,c).col,R(t,c).row),c},x=0;f.forEach((e=[],t)=>{let s=u=>{let m=l.get(u).map(p=>I.get(p)).filter(p=>p!==void 0);return m.length>0?m.reduce((p,q)=>p+q,0)/m.length:1/0},c=[...e].sort((u,m)=>s(u)-s(m)||d(u)-d(m)),y=0;for(let u of c)i.has(u)||(y=S(u,t,y),I.set(u,y),x=Math.max(x,y+1),y++)});let j=n.filter(e=>!b.has(e)&&!i.has(e)),M=Math.max(r.upright?x:f.length,Math.ceil(Math.sqrt(j.length*2)),1),E=b.size>0?1:0;return j.forEach((e,t)=>{r.upright?S(e,f.length+E+Math.floor(t/M),t%M):S(e,t%M,x+E+Math.floor(t/M))}),i}function V(o,r){return Math.abs(o.col-r.col)<A&&Math.abs(o.row-r.row)<A}function X(o,r,a,n=.5){return{x:(o-r)*a/2,y:(o+r)*a*n/2}}var G=1,B=/^(done|completed?|closed|finished|shipped|sent|won|lost|passed|declined|dropped|answered|resolved|fixed|archived|cancell?ed|retired|released|published|delivered|paid|merged|rejected|written[-_ ]?up|out)$/i,F=/^(doing|in[-_ ]?progress|active|building|started|working|in[-_ ]?review|review(ing)?|fixing|ongoing|underway|testing|drafting|writing|running)$/i;function _(o,r,a){let n=O(o.tryDefinition(r)?.fields.shape?.[a]);for(;n&&n.innerType!==void 0&&n.type!=="enum";)n=O(n.innerType);if(n?.type!=="enum")return;let d=(n.entries?Object.values(n.entries):n.values??[]).filter(i=>typeof i=="string");return d.length>0?d:void 0}function J(o,r){let a=o.tryDefinition(r);if(!a)return;let n=a.lifecycle,d=Object.keys(a.fields.shape??{}),i=[n?.field,...d.filter(l=>/^(status|stage|state|phase)$/i.test(l))].find(l=>l!==void 0&&_(o,r,l)!==void 0);if(!i)return;let g=_(o,r,i),h=n?.field===i&&Array.isArray(n.retired)?n.retired:[];return{field:i,values:g,tiers:g.map(l=>h.includes(l)||B.test(l)?"done":F.test(l)?"active":"waiting")}}export{P as a,W as b,X as c,G as d,J as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as g,Ac as k,Hc as f,Lc as w,Mc as $,Nc as v,Pc as b,Qc as S,vc as y,xc as d,zc as u}from"./chunk.6V2RG5JG.js";function A(s){let i=[];for(let n of f(s).drawn)for(let t of n.kinds)i.push({kind:t,title:n.title,as:n.as,...n.across?{across:n.across}:{},...n.kinds.length>1?{over:n.kinds}:{},...n.hidden?{hidden:!0}:{}});for(let n of s.views?.places?.()??[])i.some(t=>t.kind===n.kind&&t.as===n.as)||i.push(n);return i}function F(s){return L(s.schema,A(s),{...s.pages?{pages:s.pages}:{},lenses:f(s).drawn,home:(s.home?.length??0)>0})}function L(s,i,n={}){let{pages:t}=n,l=s.kinds,h=i.filter(e=>l.includes(e.kind)),a=S(t?.first,s,h),P=new Set(t?.hide??[]),c=b(l,t?.order),p=[{slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#",...a?.to==="home"||a===void 0&&n.home?{first:!0}:{}},{slug:w,title:v(t),kind:null,cardinality:"many",address:$,stop:"#"}],x=y([...h].sort((e,o)=>c.indexOf(e.kind)-c.indexOf(o.kind)));for(let e of x){let o=n.lenses?.find(r=>r.as===e.as&&r.kinds.includes(e.kind)),m=k(e,h);p.push({slug:e.as,title:e.title,kind:e.kind,...e.over?{over:e.over.filter(r=>l.includes(r))}:{},cardinality:"many",address:u(e.as,m?d(s,e.kind).slice(1):void 0),stop:m?`#focus=aggregate:${e.kind}&in.view=${encodeURIComponent(e.as)}`:`#view=${encodeURIComponent(e.as)}`,...o?{lens:o.lens}:{},...e.hidden?{hidden:!0}:{},...a?.to==="place"&&a.place.as===e.as&&(a.place.kind===e.kind||e.over?.includes(a.place.kind))?{first:!0}:{}})}for(let e of c)p.push({slug:d(s,e).slice(1),title:g(s,e),kind:e,cardinality:"many",address:d(s,e),stop:`#focus=aggregate:${e}`,...P.has(e)?{hidden:!0}:{},...a?.to==="kind"&&a.kind===e?{first:!0}:{}});return p}export{F as a,L as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as v,c as w}from"./chunk.
|
|
1
|
+
import{a as v,c as w}from"./chunk.YNQDVGZM.js";import{E as S}from"./chunk.GFF2FB2J.js";var x="graview:pins",f={pinned:[],unpinned:[]},g=e=>Array.isArray(e)?e.filter(n=>typeof n=="string"):[];function L(){try{let e=globalThis.localStorage?.getItem(x);if(!e)return f;let n=JSON.parse(e);if(Array.isArray(n))return{pinned:g(n),unpinned:[]};if(typeof n=="object"&&n!==null){let r=n;return{pinned:g(r.pinned),unpinned:g(r.unpinned)}}return f}catch{return f}}function P(e){try{globalThis.localStorage?.setItem(x,JSON.stringify(e))}catch{}}function b(e,n,r=!1){let o=s=>s.filter(p=>p!==n),i=r?e.unpinned.includes(n)?{pinned:o(e.pinned),unpinned:o(e.unpinned)}:{pinned:o(e.pinned),unpinned:[...e.unpinned,n]}:e.pinned.includes(n)?{pinned:o(e.pinned),unpinned:o(e.unpinned)}:{pinned:[...e.pinned,n],unpinned:o(e.unpinned)};return P(i),i}var C=e=>`ai:${e.name??(e.complete||e.turn?"model":"on-device")}`;var A="Llama-3.2-3B-Instruct-q4f16_1-MLC",R=new Map;function E(e={}){let n=e.load?null:e.model??A,r=n?R.get(n)??R.set(n,{engine:null,failed:null}).get(n):{engine:null,failed:null},o=r.engine,i=!1,s=t=>e.onStatus?.(t),p=async()=>{if(e.load)return e.load();let t=globalThis.LanguageModel;if(t){let m=await t.create();return{chat:{completions:{create:async({messages:h})=>({choices:[{message:{content:await m.prompt(h[h.length-1]?.content??"")}}]})}}}}if(!globalThis.navigator?.gpu)throw new Error("this browser has no WebGPU, which the local model needs");return(await import("https://esm.run/@mlc-ai/web-llm")).CreateMLCEngine(e.model??A,{initProgressCallback:m=>s({state:"warming",progress:m.progress,detail:m.text})})},a=Promise.resolve();return{complete:async t=>{if(o=r.engine??o,!o)throw new Error("The local model is not warm yet");let l=(await o.chat.completions.create({messages:[{role:"user",content:t}]})).choices?.[0]?.message?.content;if(typeof l!="string")throw new Error("The local model answered with no content");return l},ready:()=>(r.engine??o)!==null,warm:()=>(o=r.engine??o,o?Promise.resolve():i?a:r.failed!==null?(s({state:"failed",detail:r.failed}),Promise.resolve()):(i=!0,s({state:"warming"}),a=p().then(t=>{o=t,r.engine=t,s({state:"ready"})}).catch(t=>{r.failed=t instanceof Error?t.message:String(t),s({state:"failed",detail:r.failed})}).finally(()=>{i=!1}),a)),failed:()=>r.failed}}function T(e,n={}){return O(e,n)?.complete}function O(e,n){let r=e.turn,o=e.complete??(r?p=>r({system:"",messages:[{role:"user",content:p}],tools:[],call:async()=>({error:"No tools here."})}):void 0);if(o)return{complete:o,ready:()=>!0,warm:()=>Promise.resolve(),failed:()=>null};if(!e.onDevice)return;let i=typeof e.onDevice=="object"?e.onDevice.model:void 0,s=E({...i?{model:i}:{},...n.onStatus?{onStatus:n.onStatus}:{}});return{complete:async p=>(s.ready()||s.warm(),s.complete(p)),ready:s.ready,warm:s.warm,failed:s.failed}}function D(e,n={}){let r=n.floor??v(),o=(a,c,d)=>r(d?.principal?a.seenBy(d.principal):a,c,d),i=O(e,n);if(!i)return async(a,c,d)=>{let t=await o(a,c,d);return t.unsure?{...t,say:e.withoutModel??S}:t};let s=w({complete:i.complete,...e.turn?{turn:e.turn}:{}}),p=C(e);return async(a,c,d)=>{let t=await o(a,c,d);if(t.grounded)return t;if(!i.ready()){if(await Promise.race([i.warm(),new Promise(l=>setTimeout(l,100))]),i.failed()!==null)return y(t,"(AI isn't available in this browser, so this is from the app alone.)");if(!i.ready())return y(t,"(AI is still getting ready on this device, so this is from the app alone.)")}let u;try{let l=await s(a,c,{...d,...t.proposals.length>0?{reading:t.proposals}:{}});if(!l.unsure)return l.proposals.length===0&&t.proposals.length>0?t:{...l,via:p}}catch(l){u=j(l)}return y(t,u?`(AI didn't answer just now: ${u}. This is from the app alone.)`:"(AI didn't answer just now, so this is from the app alone.)")}}var j=e=>{if(!(e instanceof Error)||e.name!=="Error")return;let n=e.message.replace(/[()]/g,"").replace(/\s+/g," ").trim().replace(/[.!]+$/,"");return n&&n.length<=160?n:void 0};function y(e,n){return{...e,say:`${e.say} ${n}`}}export{L as a,b,T as c,D as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk.WVUJXDXZ.js";import{i as x}from"./chunk.OZNW5W4Z.js";import"./chunk.NDADLJE6.js";import"./chunk.AK3IHFCF.js";import"./chunk.HHPGWJDO.js";import"./chunk.42YX6NOY.js";import"./chunk.WAFDCOOG.js";import{La as f,Na as N,W as S}from"./chunk.6V2RG5JG.js";import"./chunk.AJZBJBMO.js";var k=(n,r,t)=>({untrusted:!0,authoredBy:t.say(r),text:n});function O(n,r){let t;for(let[a,e]of Object.entries(n)){if(typeof e!="string"||a==="id"||a==="kind")continue;let o=r.fieldBy(n.id,a);o&&(t??={...n},t[a]=k(e,o,r))}return t??n}function L(n,r,t){let a=e=>{if(Array.isArray(e))return e.map(a);if(e!==null&&typeof e=="object"&&"id"in e&&"label"in e){let o=e,i=t.recordBy(o.id);return i?{...o,label:k(o.label,i,t)}:o}if(typeof e=="string"){let o=t.recordBy(n);return o?k(e,o,t):e}return e};return Object.fromEntries(Object.entries(r).map(([e,o])=>[e,a(o)]))}function $(n,r){return n.map(t=>{let a=r.recordBy(t.id);return a?{...t,label:k(t.label,a,r)}:t})}function D(n,r){return{...n,nodes:n.nodes.map(t=>O(t,r))}}var E=n=>(JSON.stringify(n)??"null").length,R=n=>typeof n=="number"&&Number.isFinite(n)&&n>0?Math.floor(n):0;function w(n,r,t,a,e,o=""){let i=n-r-t;return i>0?`and ${i} more ${e}: call ${a} with ${o}offset ${r+t} for the next page.`:void 0}var j=({line:n,...r})=>r;function T(n){let r;for(let[t,a]of Object.entries(n))typeof a!="string"||a.length<=600||(r??={...n},r[t]=`${a.slice(0,600)}\u2026 (cut at ${600} of ${a.length} characters)`);return r??n}function B(n,r,t,a){let e=Math.min(t,Math.max(0,n.length-r)),o=n.slice(r,r+e),i=a(o);for(;e>1&&E(i)>8e3;)e=Math.max(1,Math.floor(e*.75)),o=n.slice(r,r+e),i=a(o);return{page:o,answer:i}}function C(n,r){let t=JSON.stringify(r)??"null";if(t.length<=8e3)return r;let a=`This answer was ${t.length} characters, more than the ${8e3} one read answers, so it is cut. Ask ${n} for less, or use search_graph and get_node to read one thing.`;for(let e=8e3-a.length-40;;){let o={cut:a,partial:t.slice(0,e)},i=E(o)-8e3;if(i<=0)return o;e=Math.max(0,e-i-8)}}function I(n,r){let{matched:t,later:a,...e}=r,o=n.hits.filter(i=>i.about==="node").length;return n.total>o?{...e,more:`and ${n.total-o} more records match: narrow the words, or add kind:<kind>.`}:e}function P(n,r,t){let a=N(t.archived),e={nodes:n.graph.allNodes({archived:a}),edges:n.graph.allEdges({archived:"all"})},o=R(t.offset),i=e.nodes.length,{page:h,answer:u}=B(e.nodes,o,25,d=>{let g=new Set(d.map(s=>s.id)),l=new Set(d.map(s=>s.id)),c=w(i,o,d.length,"get_graph","nodes"),p=s=>l.has(s)||(a==="all"?n.graph.has(s):n.graph.has(s)&&f(n.graph.getNode(s))===a);return{...D({nodes:d.map(T),edges:e.edges.filter(s=>g.has(s.from)&&p(s.to))},r),total:i,...c?{more:c}:{}}});return{data:u,reads:h.map(d=>d.id)}}function U(n,r,t,a){let e=n.graph.getNode(t),o=R(a.offset),i=n.graph.outEdges(t),h=n.graph.inEdges(t),u=i.slice(o,o+20),d=h.slice(o,o+20),g=(s,A)=>{let m=n.graph.getNode(A);return{kind:s,id:A,label:m?S(n.schema.tryDefinition(m.kind),m):A,...f(m)?{archived:!0}:{}}},l=x(n.schema,n.graph,e),c=n.violations().filter(s=>s.nodeIds.includes(t)),p=[w(i.length,o,u.length,"get_node","links out",`id "${t}" and `),w(h.length,o,d.length,"get_node","links in",`id "${t}" and `),c.length>20?`and ${c.length-20} more problems: get_violations lists them.`:void 0].filter(Boolean);return{data:{node:O(T(e),r),...f(e)?{archived:!0}:{},...Object.keys(l.values).length>0?{computed:L(t,l.values,r)}:{},...Object.keys(l.refused).length>0?{uncomputed:l.refused}:{},out:$(u.map(s=>g(s.kind,s.to)),r),in:$(d.map(s=>g(s.kind,s.from)),r),violations:c.slice(0,20).map(j),...p.length>0?{more:p.join(" ")}:{}},reads:[t,...u.map(s=>s.to),...d.map(s=>s.from)]}}function F(n,r){let t=R(r.offset),{page:a,answer:e}=B(n,t,20,o=>{let i=w(n.length,t,o.length,"get_violations","problems");return{violations:o.map(j),total:n.length,...i?{more:i}:{}}});return{data:e,reads:[...new Set(a.flatMap(o=>o.nodeIds))]}}export{P as graphRead,U as nodeRead,I as searchRead,F as violationsRead,C as withinReadChars};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as le,b as ue,c as fe,d as ye,e as L,f as M,g as pe}from"./chunk.NDADLJE6.js";import{a as me}from"./chunk.AK3IHFCF.js";import{c as G,e as se}from"./chunk.HHPGWJDO.js";import{a as j,b as te,c as oe,d as ie,f as x,m as ae,n as b,o as de,p as E}from"./chunk.42YX6NOY.js";import{a as Q,b as B,d as ce,e as ge,g as he,h as be,i as we}from"./chunk.WAFDCOOG.js";import{B as v,C as $,F as H,G as K,K as z,M as P,S as Z,W as X,ba as N,da as q,ga as T,ha as O,ia as S,la as J,pb as ee,qa as Y,qb as ne,rb as C,sb as re}from"./chunk.6V2RG5JG.js";var F=e=>e?._zod?.def,Fe=/^\^\\d\{4\}-\\d\{2\}-\\d\{2\}\$$/;function ve(e){let n=F(e),i=!0,r;for(let d=0;n&&d<4;d++){if(n.type==="optional"||n.type==="nullable")i=!1;else if(n.type==="default")i=!1,r=n.defaultValue;else break;n=F(n.innerType)}if(!n)return{why:"it is not a zod field"};let o=$(e),t={...i?{required:!0}:{},...r!==void 0?{default:r}:{},...o?{description:o}:{}},s=(n.checks??[]).map(d=>F(d)),u=S(e);if(u)return{spec:{type:u,...t}};if(J(e))return{spec:{type:"app-link",...t}};if(Q(e))return{spec:{type:"text",format:"markdown",...t}};let a=re(e);if(a)return{spec:{type:a,...t}};switch(n.type){case"string":{let d=n.format;return d==="email"?{spec:{type:"email",...t}}:d==="url"?{spec:{type:"url",...t}}:d==="date"?{spec:{type:"date",...t}}:d==="datetime"||s.some(l=>l?.fn===H)?{spec:{type:"datetime",...t}}:s.some(l=>l?.format==="regex"&&Fe.test(String(l?.pattern?.source??"")))?{spec:{type:"date",...t}}:{spec:{type:"string",...t}}}case"number":{let d={};for(let l of s){let y=l?.value;typeof y=="number"&&(l?.check==="greater_than"&&l.inclusive?d.min=Math.max(d.min??y,y):l?.check==="less_than"&&l.inclusive?d.max=Math.min(d.max??y,y):l?.check==="multiple_of"&&(d.step=y))}return{spec:{type:s.some(l=>l?.format==="safeint"||l?.format==="int")?"integer":"number",...d,...t}}}case"boolean":return{spec:{type:"boolean",...t}};case"enum":{let d=Object.keys(n.entries??{});return d.length>0?{spec:{type:"enum",options:d,...t}}:{why:"it is an enum with no options"}}case"array":{let d=F(n.element),l=S(n.element)??(d?.type==="number"?"number":d?.type==="string"?"string":void 0);return l?{spec:{type:"list",of:l,...t}}:{why:`it is a list of ${String(d?.type??"something")}, and a document lists words, numbers, dates, images or files`}}default:return{why:`it is a ${String(n.type)}, which a document has no field type for`}}}function V(e){let n=ve(e);return"spec"in n?n.spec:void 0}var _=e=>e.caption?.trim()||e.name;function Pe(e){let n=e?.fields?.shape??{};return Object.keys(n).filter(i=>{let r=v(n[i]);for(;r?.innerType;)r=v(r.innerType);return S(n[i])!==void 0||r?.type==="array"&&S(r.element)!==void 0})}function un(e,n){for(let i of Pe(n)){let r=O(e[i]).find(T);if(r)return r}}var A=e=>{try{return e()}catch{return null}},je=e=>typeof e=="string"&&le.includes(e);function Ne(e){if(e!==void 0)return je(e)?e:e&&typeof e=="object"&&typeof e.expr=="string"?{expr:A(()=>G(e.expr))}:"neutral"}var Ce=4;function Le(e){let n=typeof e.list=="string"?A(()=>G(e.list)):null,i=e.sort,r=typeof i=="string"?i:i&&typeof i=="object"&&typeof i.by=="string"?i.by:void 0,o=i&&typeof i=="object"?i.direction:void 0,t=n,s;if(n&&r!==void 0)if(o==="choices")s=r;else{let y=A(()=>G(r));t=y?{t:"call",fn:"sort",args:[n,y,{t:"lit",value:o==="desc"?"desc":"asc",at:0}],at:0}:null}let u=typeof e.limit=="number"&&Number.isInteger(e.limit)&&e.limit>=1?Math.min(e.limit,L):void 0,a=e.group,d=typeof a=="string"?a:a&&typeof a=="object"&&typeof a.by=="string"?a.by:void 0,l=a&&typeof a=="object"&&a.headings&&typeof a.headings=="object"?a.headings:{};return{t:"list",source:t,...s?{choiceOrder:s}:{},...u?{limit:u}:{},...d?{group:{by:d,headings:Object.fromEntries(Object.entries(l).filter(y=>typeof y[1]=="string"))}}:{},...typeof e.empty=="string"?{empty:e.empty}:{},as:e.as==="card"?"card":"row"}}function ke(e,n=1,i=""){if(!Array.isArray(e)||n>Ce)return[];let r={};return e.flatMap(o=>{if(!o||typeof o!="object"||Array.isArray(o))return[];let t=o,s=p=>typeof p=="string"?A(()=>se(p)):null,u=p=>typeof p=="string"?A(()=>G(p)):null,a=Ne(t.tone),d=typeof t.label=="string"?t.label:void 0,l=p=>Object.hasOwn(t,p),y=typeof t.currency=="string"&&/^[A-Z]{3}$/.test(t.currency)?t.currency:void 0,f=l("list")?"list":l("headline")?"headline":typeof t.figure=="string"?"number":Me.find(l);if(!f)return[];let m=r[f]=(r[f]??0)+1,c=t.key,k=typeof c=="string"&&c?c:`${i}${f}.${m}`;return[{...(()=>{switch(f){case"list":return Le(t);case"number":{let p=fe.includes(t.as)?t.as:void 0,W=ye.includes(t.emphasis)?t.emphasis:void 0;return{t:f,value:u(t.figure),...p?{as:p}:{},...y?{currency:y}:{},...d?{label:s(d)}:{},...W?{emphasis:W}:{}}}case"headline":case"title":return{t:f,parts:s(t[f])};case"text":case"badge":return{t:f,parts:s(t[f]),...a?{tone:a}:{}};case"field":{let p=ue.includes(t.as)?t.as:void 0;return{t:f,field:String(t.field),...p?{as:p}:{},...y?{currency:y}:{},...d?{label:d}:{}}}case"image":return{t:f,field:String(t.image),as:t.as==="gallery"?"gallery":"thumb",...d?{label:d}:{}};case"progress":{let p=t.progress??{};return{t:f,value:u(p.value),max:u(p.max),...d?{label:s(d)}:{}}}case"group":return{t:f,blocks:ke(t.group,n+1,`${k}.`),direction:t.direction==="row"?"row":"column"};case"when":return{t:f,when:u(t.when),show:ke(t.show,n+1,`${k}.`)};default:return{t:f}}})(),key:k}]})}var Me=["title","text","badge","field","image","progress","group","when","divider","figure"],g="\u2014",Ve=500;function w(e,n){if(!e)return{ok:!1,problem:"an expression that does not parse"};try{return{ok:!0,value:x(e,{graph:n.graph??ae,subject:n.node,kinds:n.kinds,today:n.today,budget:n.budget??Ve})}}catch(i){return{ok:!1,problem:i instanceof Error?i.message:String(i)}}}var _e=(e,n,i)=>!e.format&&e.expr?.t==="ident"&&typeof i=="string"&&n.fields[e.expr.name]?.format==="markdown";function R(e,n,i){if(!e)return{text:g,problem:"a template that does not parse"};let r,o;return{text:e.map(s=>{if(s.text!==void 0)return s.text;let u=w(s.expr??null,n);if(!u.ok)return r??=`{${s.source??""}}: ${u.problem}`,g;if(_e(s,n,u.value))return n.glance?ce(u.value,{markdown:!0}):i&&e.length===1?(o=!0,u.value):ge(u.value);let a=!s.format&&s.expr?.t==="ident"&&typeof u.value=="number"?Te(n,s.expr.name):void 0;return de(s,a?C(u.value,a):b(u.value,s.format,n.today,s.formatArgs,n.money,E(n.schema)))}).join(""),...r?{problem:r}:{},...o?{markdown:o}:{}}}function Se(e,n){if(e===void 0)return;if(typeof e=="string")return e;let i=w(e.expr,n);return i.ok&&je(i.value)?i.value:"neutral"}function Ie(e){if(typeof e=="string")try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"?n.href:void 0}catch{return}}var Ge=(e,n)=>{let i=e.fields[n]?.type;return i==="phone"||i==="place"||i==="duration"?i:he(e.definition,n)},Te=(e,n)=>ee(e.definition?.fields?.shape?.[n]);function De(e,n,i,r,o){if(n==null||n==="")return g;if(typeof n=="boolean")return n?"yes":"no";if(r)return b(n,r,i.today,[],o?{...i.money,currency:o}:i.money);let t=i.fields[e];if(i.definition?.display?.format?.[e])return B(i.definition,e,n);let s=be(Ge(i,e),n,i.money?.locale);if(s!==void 0)return s;if(t?.type==="date")return b(n,"date",i.today,[],i.money);if(t?.type==="datetime"&&typeof n=="string")return z(n,i.money?.locale);if(t?.type==="enum"&&typeof n=="string")return B(i.definition,e,n);let u=typeof n=="number"?Te(i,e):void 0;if(u)return C(n,u);if(typeof n=="number")return P(n,i.money?.locale,{});let a=O(n);return a[0]?a.map(_).join(", "):Array.isArray(n)?n.map(d=>String(d)).join(", "):typeof n=="object"?g:String(n)}function Ue(e,n,i,r,o){return typeof e!="number"?String(e):n==="money"?ne(e,i?{...o,currency:i}:o):n==="percent"?b(e,n,r,[],o):P(e,o?.locale)}var h=(e,n)=>n?{...e,problem:n}:e;function Re(e){return e.firstHeading===void 0?e:{...e,firstHeading:void 0}}function We(e,n,i){switch(e.t){case"title":{let r=R(e.parts,n);return h({t:"title",text:r.text},r.problem)}case"text":{let r=R(e.parts,n,!0),o=Se(e.tone,n);return h({t:"text",text:r.text,...o?{tone:o}:{},...r.markdown?{markdown:r.markdown}:{}},r.problem)}case"badge":{let r=R(e.parts,n);return h({t:"badge",text:r.text,tone:Se(e.tone,n)??"neutral"},r.problem)}case"field":{let r=e.label??N(n.definition,e.field);if(!n.node)return{t:"field",field:e.field,label:r,text:g,problem:`"${e.field}" names a field, and these blocks are about no one record`};let o=e.as===void 0?n.kinds.get(n.node.kind)?.linked?.get(e.field):void 0;if(o){let y=Y(Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0,o);return{t:"field",field:e.field,label:r,text:y.length>0?"linked record":g,...y.length>0?{linked:{relation:o,refs:y}}:{}}}let t=n.kinds.get(n.node.kind)?.computed?.has(e.field),s,u;if(t){let y=w({t:"ident",name:e.field,at:0},n);y.ok?s=y.value!==null&&typeof y.value=="object"?b(y.value,void 0,n.today,[],n.money,E(n.schema)):y.value:u=y.problem}else s=Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0;let a=e.as!==void 0?void 0:n.fields[e.field]?.type==="url"?Ie(s):we(Ge(n,e.field),s),d=A(()=>De(e.field,s,n,e.as,e.currency))??g,l=n.fields[e.field]?.type==="app-link"&&e.as===void 0&&typeof s=="string"?s:void 0;return h({t:"field",field:e.field,label:r,text:d,...a?{href:a}:{},...l?{app:l}:{}},u)}case"image":{let r=O(n.node&&Object.hasOwn(n.node,e.field)?n.node[e.field]:null),o=e.as==="gallery"?r:r.filter(T).slice(0,1);return{t:"image",field:e.field,label:e.label??N(n.definition,e.field),as:e.as,files:o,text:o.map(_).join(", ")||g}}case"progress":{let r=w(e.value,n),o=w(e.max,n),t=e.label?R(e.label,n):{text:"Progress"},s=t.text,u=r.ok?o.ok?t.problem:o.problem:r.problem;return r.ok&&o.ok&&typeof r.value=="number"&&typeof o.value=="number"&&Number.isFinite(r.value)&&Number.isFinite(o.value)&&o.value>0?h({t:"progress",label:s,value:r.value,max:o.value,text:`${b(r.value,void 0,n.today)} of ${b(o.value,void 0,n.today)}`},u):h({t:"progress",label:s,text:g},u)}case"group":return{t:"group",direction:e.direction,blocks:Ae(e.blocks,Re(n))};case"when":{let r=w(e.when,n),o=r.ok&&r.value===!0;return h({t:"when",shown:o,blocks:o?Ae(e.show,Re(n)):[]},r.ok?void 0:r.problem)}case"divider":return{t:"divider"};case"figure":return{t:"figure"};case"headline":{let r=R(e.parts,n),o=Math.min(6,Math.max(1,(i?n.firstHeading:void 0)??n.heading??3));return h({t:"headline",level:o,text:r.text},r.problem)}case"number":{let r=w(e.value,n),o=!r.ok||r.value===null||typeof r.value=="object"?g:Ue(r.value,e.as,e.currency,n.today,n.money),t=e.label?R(e.label,n):void 0;return h({t:"number",text:o,...t?{label:t.text}:{},...e.emphasis?{emphasis:e.emphasis}:{}},r.ok?t?.problem:r.problem)}case"list":return He(e,n)}}function Ae(e,n){let i=e.findIndex(r=>r.t==="headline");return e.map((r,o)=>({...We(r,n,o===i),key:r.key}))}var $e=new Set(["every","some","sum","min","max","sort"]);function Bn(e,n){let i=new Set,r=new Set,o=a=>{if(a)switch(a.t){case"ident":i.add(a.name);return;case"list":a.items.forEach(o);return;case"member":return o(a.object);case"unary":return o(a.operand);case"binary":return o(a.left),o(a.right);case"where":return o(a.set);case"call":a.args.forEach((d,l)=>{l===1&&$e.has(a.fn)||o(d)});return;default:return}},t=a=>{for(let d of a??[])o(d.expr)},s=(a,d)=>{a.forEach((l,y)=>{let f=d[y];if(f)switch(l.t){case"field":case"image":i.add(l.field);return;case"title":case"text":case"badge":case"headline":t(l.parts);return;case"number":o(l.value),t(l.label);return;case"progress":o(l.value),o(l.max);return;case"group":f.t==="group"&&s(l.blocks,f.blocks);return;case"when":f.t==="when"&&f.shown&&s(l.show,f.blocks);return;case"list":if(f.t==="list")for(let m of f.members)r.add(m.id);return;default:return}})};s(e,n);let u=n[0];return{fields:i,records:r,...e[0]?.t==="title"&&u?.t==="title"?{title:u.text}:{}}}function He(e,n){let i=Math.min(6,(n.heading??3)+1),r=w(e.source,n);if(!r.ok)return{t:"list",as:e.as,failed:!0,members:[],headingLevel:i,more:0,problem:r.problem};let o=r.value,t=o instanceof j?o.nodes:o!==null&&typeof o=="object"&&!Array.isArray(o)?[o]:[];e.choiceOrder&&n.schema&&(t=Ke(t,e.choiceOrder,n.schema));let s=t.length,u=t.slice(0,e.limit??L),a=u.slice(0,M),d=u.slice(M),l=(e.limit===void 0?s:u.length)-a.length,y=c=>e.group&&n.schema&&c.length>0?ze(c,e.group,n.schema,n.graph):void 0,f=y(a),m=d.length>0?y(u):void 0;return{t:"list",as:e.as,failed:!1,members:a,...d.length>0?{rest:d}:{},...f?{groups:f}:{},...m?{everyGroup:m}:{},headingLevel:i,...a.length===0&&e.empty?{empty:e.empty}:{},more:l,total:s}}function I(e,n,i){let r=e.tryDefinition(n)?.fields?.shape,o=r&&Object.hasOwn(r,i)?V(r[i]):void 0;return o?.type==="enum"?o.options??[]:[]}var D=(e,n)=>Object.hasOwn(e,n)?e[n]:void 0;function Ke(e,n,i){let r=o=>{let t=I(i,o.kind,n).indexOf(String(D(o,n)));return t<0?Number.MAX_SAFE_INTEGER:t};return e.map((o,t)=>({node:o,i:t,rank:r(o)})).sort((o,t)=>o.rank-t.rank||o.i-t.i).map(o=>o.node)}function ze(e,n,i,r){let o=e.some(a=>I(i,a.kind,n.by).length>0)?void 0:pe(n.by);if(o&&r)return Ze(e,o,n.headings,i,r);let t=[];for(let a of e)for(let d of I(i,a.kind,n.by))t.includes(d)||t.push(d);let s=[];for(let a of t){let d=e.filter(y=>D(y,n.by)===a);if(d.length===0)continue;let l=i.tryDefinition(d[0].kind);s.push({value:a,heading:n.headings[a]??Z(B(l,n.by,a)),members:d})}let u=e.filter(a=>!t.includes(String(D(a,n.by))));return u.length>0&&s.push({value:null,members:u}),s}function Ze(e,n,i,r,o){let t=f=>n.way??(Object.hasOwn(r.tryDefinition(f.kind)?.edges??{},n.edge)?"out":"in"),s=new Map,u=[],a=E(r),d;for(let f of e){let m=t(f)==="out"?o.out(f.id,n.edge):o.in(f.id,n.edge);m.length===0&&u.push(f);for(let c of m){d??=c.kind;let k=s.get(c.id)??{node:c,members:[]};k.members.push(f),s.set(c.id,k)}}let l=[...s.values()].map(({node:f,members:m})=>({value:f.id,heading:i[f.id]??a(f),members:m})).sort((f,m)=>f.heading.localeCompare(m.heading,void 0,{numeric:!0}));!d&&e[0]&&t(e[0])==="out"&&(d=(r.tryDefinition(e[0].kind)?.edges??{})[n.edge]?.to?.[0]);let y=d&&d!=="*"?q(r.tryDefinition(d),d):void 0;return u.length>0&&l.push({value:null,...y?{heading:`No ${y}`}:{},members:u}),l}function Oe(e){return e.t==="list"||e.t==="headline"||e.t==="number"||e.t==="image"&&e.as==="gallery"?!0:e.t==="group"?e.blocks.some(Oe):e.t==="when"?e.show.some(Oe):!1}function xe(e,n){let i=e.tryDefinition(n)?.fields?.shape??{},r={};for(let[o,t]of Object.entries(i)){let s=V(t);s&&(r[o]=s)}return r}var Ee=new WeakMap;function U(e){let n=Ee.get(e);return n||Ee.set(e,n=me(e)),n}function Xe(e,n,i,r={}){let o=U(e),t={},s={},u=a=>{if(a instanceof j)return a.nodes.map(d=>u(d));if(Array.isArray(a))return a.map(d=>u(d));if(a!==null&&typeof a=="object"){let d=a;return{id:d.id,kind:d.kind,label:X(e.tryDefinition(d.kind),d)}}return a};for(let[a,d]of o.get(i?i.kind:oe)?.computed??[])try{let l=[],y=x(d,{graph:n,subject:i,kinds:o,...r.today?{today:r.today}:{},...r.budget?{budget:r.budget}:{},...r.linked?{linked:r.linked}:{},onUnread:f=>l.push(f)});l.length>0&&(y===null||y instanceof j&&y.nodes.length===0)?s[a]=te(l[0]):t[a]=u(y)}catch(l){if(!(l instanceof ie))throw l;s[a]=l.sentence}return{values:t,refused:s}}function Cn(e,n,i){let{values:r}=Xe(e,n,i);if(Object.keys(r).length===0)return i;let o=t=>Array.isArray(t)?t.map(o):t!==null&&typeof t=="object"?t.label:t;return{...i,...Object.fromEntries(Object.entries(r).map(([t,s])=>[t,o(s)]))}}var qe=500,Je=2e4,Be=new WeakMap;function Ye(e,n){let i=Be.get(e);i||Be.set(e,i=new Map);let r=i.get(n);return r||i.set(n,r=xe(e,n)),r}function In(e,n,i,r={}){if(n&&typeof e.seenBy!="function")throw new TypeError("blockContextFor: a seat is read from a store (its `seenBy`); a bare { graph, schema } is read as it is handed, with no principal");let o=n?e.seenBy(n):e,t=n&&i?o.graph.getNode(i.id)??null:i,s=o.schema,u=t&&s.tryDefinition(t.kind),a=!t||(r.slot??"page")==="page",{money:d,firstHeading:l}=r;return{node:t,graph:o.graph,schema:s,kinds:U(s),fields:t?Ye(s,t.kind):{},definition:u||void 0,today:r.today??o.today?.()??K(),money:d,heading:r.heading??(a?2:3),firstHeading:l,budget:r.budget??(a?Je:qe),...a?{}:{glance:!0}}}export{V as a,_ as b,Pe as c,un as d,ke as e,Ae as f,Bn as g,Oe as h,Xe as i,Cn as j,In as k};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{$ as c,G as h,Y as d,Z as a,pa as u}from"./chunk.GFF2FB2J.js";import{b as l}from"./chunk.AJZBJBMO.js";var i=l(h(),1);function w(){let e=u();return(0,i.useMemo)(()=>[...new Set(e.flatMap(o=>o.nodeIds))],[e])}function S(){let e=g(),o=d();return(0,i.useMemo)(()=>{if(!o)return e;let n=o.matched;return n.length===0&&e.length===0?[m]:[...new Set([...e,...n])]},[o,e])}function g(){let{store:e,selection:o}=a(),n=c();return(0,i.useMemo)(()=>{if(o.length===0)return[];let r=new Set(o),s=new Set(r);for(let t of e.graph.allEdges())r.has(t.from)&&s.add(t.to),r.has(t.to)&&s.add(t.from);for(let t of e.violations())if(t.subjectId!==void 0&&r.has(t.subjectId))for(let f of t.nodeIds)s.add(f);return[...s]},[e,o,n])}var m="search:nothing";export{w as a,S as b,g as c};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as $e}from"./chunk.OAF7TUMI.js";import{e as be,f as we,i as xe,j as Y,k as ke}from"./chunk.OZNW5W4Z.js";import{f as fe}from"./chunk.HHPGWJDO.js";import{d as L,e as he}from"./chunk.JH6MU6TX.js";import{b as ge,e as ye}from"./chunk.WAFDCOOG.js";import{B as q,G as te,Hc as pe,Pc as me,Qb as ae,Sb as le,V as E,W as F,Y as re,Yb as H,Z as J,Zb as de,_ as oe,ba as z,nb as se,nc as ce,yb as Q,yc as ue,zb as ie}from"./chunk.6V2RG5JG.js";function je(t,o,n){let s=t.tryDefinition(o)?.fields.shape,e=q(s?.[n]),a=!1,i=!1;for(;e&&(e.type==="optional"||e.type==="default"||e.type==="nullable"||e.type==="prefault");)(e.type==="optional"||e.type==="nullable")&&(a=!0),(e.type==="default"||e.type==="prefault")&&(i=!0),e=q(e.innerType);if(e?.type!=="enum")return;let g=(e.entries?Object.values(e.entries):e.values??[]).filter(p=>typeof p=="string");return g.length>0?{values:g,empty:a&&!i}:void 0}function V(t,o,n){let s=je(t,o,n);if(!s)return[];let e=t.tryDefinition(o),a=s.values.map(i=>({value:i,label:ge(e,n,i)}));return s.empty&&a.push({value:null,label:`No ${z(e,n).toLowerCase()}`}),a}function X(t,o,n){let s=t[o];return typeof s=="string"&&n.some(e=>e.value===s)?s:null}function Z(t,o,n,s,e=V(t.schema,n.kind,s)){let a=ve(t.schema,t.allMutations(),n.kind,s,e),i=X(n,s,e),g=[];for(let{value:p,by:R,acts:B}of a)if(p!==i)for(let P of B){let M=R==="step"?{[P.subject.arg]:n.id}:{[P.subject.arg]:n.id,[s]:p},S={name:P.name,args:M};if(P.input.safeParse(M).success&&t.permits(S,o).ok){try{se(t.graph,P,M)}catch{continue}g.push({to:p,call:S,title:P.title??P.name});break}}return g}function ve(t,o,n,s,e=V(t,n,s)){let a=Se(t,o,n,s),i=De(t,o,n,s);return e.flatMap(g=>{if(g.value===null)return[];let p=a.filter(R=>R.sets?.[s]===g.value);return[{value:g.value,label:g.label,by:p.length>0?"step":i.length>0?"value":"none",acts:p.length>0?p:i}]})}function Se(t,o,n,s){return o.filter(e=>e.subject!==void 0&&e.derived===void 0&&typeof e.sets?.[s]=="string"&&Q(t,e).includes(n))}function De(t,o,n,s){let e=t.tryDefinition(n);return e?o.filter(a=>{if(!a.subject||!Q(t,a).includes(n)||!ie(a,e).includes(s))return!1;let i=a.input.shape;return i!==void 0&&s in i}).sort((a,i)=>+(a.derived!==void 0)-+(i.derived!==void 0)):[]}var ee=(t,o)=>o&&t[o]!==void 0?String(t[o]):"";function Me(t,o,n){let s=c=>t.tryDefinition(c)?o.nodesOfKind(c).filter(y=>E(t.tryDefinition(c),y)):[],e=s(n.rows),a=s(n.columns),i=new Set(e.map(c=>c.id)),g=new Set(a.map(c=>c.id)),p=o.allEdges(),R=[],B=n.link;if(typeof B=="string"){let c=d=>t.tryDefinition(d)?.edges?.[B]?.to,y=(c(n.columns)??[]).some(d=>d===n.rows||d==="*"),k=(c(n.rows)??[]).some(d=>d===n.columns||d==="*"),$=y||!k;for(let d of p){if(d.kind!==B)continue;let j=$?d.to:d.from,r=$?d.from:d.to;i.has(j)&&g.has(r)&&R.push({rowId:j,columnId:r,via:[]})}}else{let c=new Map(B.path.map(k=>[k,new Map]));for(let k of p){let $=c.get(k.kind);if(!$)continue;let d=$.get(k.from);d?d.push(k.to):$.set(k.from,[k.to]);let j=$.get(k.to);j?j.push(k.from):$.set(k.to,[k.from])}let y=new Set;for(let k of a){let $=[{id:k.id,via:[]}];for(let d of B.path){let j=[],r=new Set;for(let b of $)for(let A of c.get(d).get(b.id)??[])r.has(`${b.id}|${A}`)||(r.add(`${b.id}|${A}`),j.push({id:A,via:[...b.via,b.id]}));$=j}for(let d of $){let j=`${d.id}|${k.id}`;!i.has(d.id)||y.has(j)||(y.add(j),R.push({rowId:d.id,columnId:k.id,via:d.via.slice(1)}))}}}let P=n.groupOrder??[],M=c=>P.indexOf(c)===-1?P.length:P.indexOf(c),S=(c,y)=>y==="label"?F(t.tryDefinition(c.kind),c):c[y],T=H(e,n.sort,S).map(c=>{let y=c;return{node:c,label:F(t.tryDefinition(c.kind),c),group:ee(y,n.rowGroup),ref:ee(y,n.rowRef)}}).sort((c,y)=>M(c.group)-M(y.group)||(n.sort!==void 0?0:c.ref<y.ref?-1:c.ref>y.ref?1:0)),K=H(a,n.columnSort,S).map(c=>({node:c,label:F(t.tryDefinition(c.kind),c),group:ee(c,n.columnGroup)})).sort((c,y)=>c.group<y.group?-1:c.group>y.group?1:n.columnSort!==void 0?0:c.node.id<y.node.id?-1:c.node.id>y.node.id?1:0);return{rows:T,columns:K,cells:R}}function Pe(t,o,n){let{rows:s,columns:e,cells:a}=Me(t,o,n),i=(r,b)=>J(t,r,b),g=r=>J(t,r,1).replace(/^1 /,""),p=r=>({id:r.id,kind:r.kind,title:F(t.tryDefinition(r.kind),r),parts:[]}),R=r=>{let b=o.getNode(r);if(!b)return null;let A=t.tryDefinition(b.kind),O=F(A,b),N=L(b,A,{limit:3,said:[O],glance:!0}).map(G=>G.alone.startsWith(G.label)?`${G.label.toLowerCase()}${G.alone.slice(G.label.length)}`:G.alone);return[O,...N].join(", ")},B=typeof n.link=="string"?[]:n.link.path.slice(0,-1).flatMap((r,b,A)=>{let O=ce(t,n.columns,A.slice(0,b+1));return O.ok?[...O.reached]:[]}),P=de(t,n,{rows:s.length,columns:e.length,cells:a.length});if(P)return[{t:"text",text:`${i(n.rows,s.length)} against ${i(n.columns,e.length)}.`},{t:"text",text:P}];let M=[{t:"text",text:`${i(n.rows,s.length)} against ${i(n.columns,e.length)}${B.length>0?`, through ${[...new Set(B)].map(r=>i(r,2).replace(/^2 /,"")).join(" and ")}`:""}${e.length>0?`: ${e.map(r=>r.label).join(", ")}`:""}.`}],S=new Map(e.map(r=>[r.node.id,r.label])),T=new Map(e.map((r,b)=>[r.node.id,b])),K=new Map,c=new Map;for(let r of a){let b=K.get(r.rowId);b?b.push(r):K.set(r.rowId,[r]);let A=c.get(r.columnId);A?A.add(r.rowId):c.set(r.columnId,new Set([r.rowId]))}for(let r of s){let A=[...K.get(r.node.id)??[]].sort((O,N)=>T.get(O.columnId)-T.get(N.columnId)).map(O=>{let N=O.via.map(R).filter(G=>G!==null);return`${S.get(O.columnId)}${N.length>0?` (${N.join("; ")})`:""}`});M.push({t:"field",label:r.label,text:A.length>0?A.join(", "):"none"})}M.push({t:"list",as:"name",columns:1,groups:e.map(r=>{let b=c.get(r.node.id)??new Set,A=s.filter(O=>b.has(O.node.id)).map(O=>p(O.node));return{heading:`${r.label} (${A.length})`,items:A}})});let y=new Set(a.map(r=>r.rowId)),k=new Set(a.map(r=>r.columnId)),$=s.filter(r=>!y.has(r.node.id)),d=e.filter(r=>!k.has(r.node.id)),j=n.rows===n.columns;return $.length>0&&M.push({t:"text",text:`${j?`${$.length} with none across`:`${i(n.rows,$.length)} with no ${g(n.columns)}`}: ${$.map(r=>r.label).join(", ")}.`}),d.length>0&&M.push({t:"text",text:`${j?`${d.length} with none down`:`${i(n.columns,d.length)} on no ${g(n.rows)}`}: ${d.map(r=>r.label).join(", ")}.`}),M}function ne(t,o,n,s={}){let{app:e,blocks:a=n?e?.viewSpecs?.[n.kind]?.[s.slot??"page"]:e?.home}=s;if(!a?.length)return[];let i=s.firstHeading??(n||s.blocks?void 0:1),g=ke(t,o,n,{...s,money:s.money??e?.brand,firstHeading:i});return n&&!g.node?[]:we(typeof a[0]?.t=="string"?a:be(a),g)}var Oe=240,Re=10,Be=1160,Ie=40,Ge=640,Fe=3,Ne=t=>Math.max(1,Math.floor((Math.min(t,Be)-Ie+Re)/(Oe+Re)));function Ke(t,o,n,s){let{app:e}=s,a=s.width??1440,i=s.today??t.today()??te(),g=t.seenBy(o),p=g.schema,R=g.graph,B=$e(e),P=typeof n=="string"?n.trim():n.slug,M=typeof n=="string"?B.find(l=>l.slug===P||l.title===P||l.address===P):B.find(l=>l.slug===n.slug&&l.kind===n.kind)??n,S=!M&&typeof n=="string"?R.getNode(P):void 0;if(!M&&!S)return{ok:!1,error:`"${P}" is not a place this app has, nor a record this seat can see.`,places:B.map(l=>l.slug)};let T=[],K=e.viewSpecs??{},c=Ne(a),y=(l,h)=>ne(g,null,l,{app:e,today:i,...h}),k=(l,h,w)=>{let m=p.tryDefinition(l.kind),v=F(m,l);if(h==="name")return{id:l.id,kind:l.kind,title:v,parts:[]};if(K[l.kind]?.[h]){let C=y(l,{slot:h}),[I,...f]=C,D=I?.t==="title";return{id:l.id,kind:l.kind,title:D?I.text:v,parts:$(D?f:C,w,`views.${l.kind}.${h}`,` (${l.id})`,D?1:0)}}if(h==="row")return{id:l.id,kind:l.kind,title:v,parts:[]};let u=m?.computed?Y(p,R,l):l,W=L(u,m,{limit:3,said:[v],glance:!0,locale:e.brand?.locale});return{id:l.id,kind:l.kind,title:v,parts:W.map(C=>({t:"text",text:C.alone}))}};function $(l,h,w,m="",v=0){let x=[];return l.forEach((u,W)=>{let C=`${w}.${W+v}`;switch("problem"in u&&u.problem&&T.push({at:`${C}${m}`,says:u.problem}),u.t){case"title":x.push({t:"heading",level:3,text:u.text});return;case"text":x.push({t:"text",text:u.markdown?ye(u.text):u.text,...u.tone?{tone:u.tone}:{}});return;case"badge":x.push({t:"badge",text:u.text});return;case"field":case"image":x.push({t:"field",label:u.label,text:u.text});return;case"progress":x.push({t:"progress",label:u.label,text:u.text});return;case"group":x.push(...$(u.blocks,h,`${C}.group`,m));return;case"when":x.push(...$(u.blocks,h,`${C}.show`,m));return;case"divider":case"figure":return;case"headline":x.push({t:"heading",level:u.level,text:u.text});return;case"number":x.push({t:"figure",text:u.text,...u.label?{label:u.label}:{}});return;case"list":{if(u.failed){x.push({t:"text",text:"\u2014"});return}if(u.members.length===0){u.empty&&x.push({t:"list",as:u.as,columns:1,groups:[],empty:u.empty});return}let I=h+1,f=I>Fe?"name":u.as,D=(u.groups??[{value:null,members:u.members}]).map(_=>({..."heading"in _&&_.heading?{heading:_.heading}:{},items:_.members.map(Ce=>k(Ce,f,I))}));x.push({t:"list",as:f,columns:f==="card"?c:1,groups:D,...u.more>0?{more:u.more}:{}});return}}}),x}let d=[],j,r,b;if(S){r="record";let l=p.tryDefinition(S.kind),h=F(l,S);b={slug:S.id,title:h,kind:S.kind,address:ue(p,S.kind,S.id)},K[S.kind]?.page&&d.push(...$(y(S,{slot:"page"}),1,`views.${S.kind}.page`));let m=l?.computed?Y(p,R,S):S;for(let v of he(l,L(m,l,{said:[h],locale:e.brand?.locale}))){v.title&&d.push({t:"heading",level:2,text:v.title});for(let x of v.fields)d.push({t:"field",label:x.label,text:x.value,...x.long?{long:!0}:{},...x.markdown?{markdown:!0}:{}})}}else{let l=M;b={slug:l.slug,title:l.title,kind:l.kind,address:l.address};let h=l.lens?pe(e).drawn.find(w=>w.as===l.slug&&(l.kind===null||w.kinds.includes(l.kind))):void 0;if(l.kind===null){let w=e.brand,m=w?.name??e.name,v=w?.logo&&le(w.logo)?w.logo:void 0;if(j={name:m,...w?.subtitle?{subtitle:w.subtitle}:{},...v?{logo:{alt:w?.logoAlt??m,...ae(v)?{drawn:"inline SVG"}:{drawn:"image",src:v}}}:{}},e.home)r="blocks",d=$(y(null,{}),0,"views.home");else{r="derived";let x=t.kindsKeptFrom(o),u=new Set([...e.pages?.hide??[],...x,...t.modules.disabledKinds]),W=me(p.kinds,e.pages?.order).filter(C=>!u.has(C));d.push({t:"heading",level:1,text:e.name??"Home"});for(let C of W){let I=R.nodesOfKind(C).filter(f=>E(p.tryDefinition(C),f)).length;I>0&&d.push({t:"text",text:`${I} ${U(p,C,I)}`})}}}else if(h?.lens==="blocks")r="lens:blocks",d=$(y(null,{blocks:h.options.blocks??[]}),0,`lenses.${h.index}.options.blocks`);else if(h?.lens==="columns"){r="lens:columns";let w=h.options.bindings??{};for(let m of Object.keys(w)){let v=w[m]?.column;if(!v)continue;let x=V(p,m,v),u=H(R.nodesOfKind(m).filter(f=>E(p.tryDefinition(m),f)),h.options.sort,(f,D)=>D==="label"?F(p.tryDefinition(f.kind),f):f[D]);Object.keys(w).length>1&&d.push({t:"heading",level:2,text:U(p,m,2).replace(/^./,f=>f.toUpperCase())}),d.push({t:"text",text:`${u.length} ${U(p,m,u.length)} in columns by ${z(p.tryDefinition(m),v).toLowerCase()}.`});let W=x.map(f=>({column:f,items:u.filter(D=>X(D,v,x)===f.value).map(D=>k(D,"card",1))})).filter(({column:f,items:D})=>f.value!==null||D.length>0).map(({column:f,items:D})=>({heading:`${f.label} (${D.length})`,items:D}));d.push({t:"list",as:"card",columns:1,groups:W});let C=new Map;for(let f of u)for(let D of Z(t,o,f,v,x))C.set(D.to,(C.get(D.to)??new Set).add(`"${D.title}"`));let I=x.filter(f=>f.value!==null&&C.has(f.value)).map(f=>`to ${f.label} by ${[...C.get(f.value)].join(" or ")}`);d.push({t:"text",text:I.length>0?`Moves: ${I.join("; ")}.`:"Moves: none for this seat."})}}else if(h?.lens==="coverage")r="lens:coverage",d=Pe(p,R,h.options);else if(h){r=`lens:${h.lens}`;let w=h.kinds.flatMap(m=>R.nodesOfKind(m).filter(v=>E(p.tryDefinition(m),v)));d.push({t:"text",text:`A ${h.lens} of ${w.length} ${h.kinds.map(m=>U(p,m,w.length)).join(" and ")}.`}),d.push({t:"list",as:"name",columns:1,groups:[{items:w.map(m=>k(m,"name",1))}]})}else{r="derived";let w=R.nodesOfKind(l.kind).filter(m=>E(p.tryDefinition(l.kind),m));d.push({t:"heading",level:1,text:l.title}),w.length===0?d.push({t:"list",as:"row",columns:1,groups:[],empty:`No ${U(p,l.kind,0)} yet.`}):d.push({t:"list",as:"row",columns:1,groups:[{items:w.map(m=>k(m,"row",1))}]})}}let A=o.kind==="system"?"the system":(o.roles??[]).length>0?(o.roles??[]).join(", "):o.kind,O=a<Ge?"phone":"wide",N=b.kind===null?Te(p,R):[],G={...j?{masthead:j}:{},...N.length>0?{facts:N}:{},place:b,seat:A,width:a,variant:O,drawnBy:r,parts:d,problems:T};return{ok:!0,description:{...G,text:Ae(G)}}}function Te(t,o){let n=xe(t,o,null),s=e=>Array.isArray(e)?e.map(s).join(", "):e===null?"nothing":typeof e=="boolean"?e?"yes":"no":typeof e=="object"?e.label:String(e);return[...fe(t)].map(([e,a])=>{let i=a.label??re(e);return Object.hasOwn(n.values,e)?{name:e,label:i,value:s(n.values[e])}:{name:e,label:i,refused:n.refused[e]??"it could not be worked out"}})}function U(t,o,n){let s=t.tryDefinition(o);if(n===1)return s?.noun??o;let e=oe(t,o);return e.charAt(0).toLowerCase()+e.slice(1)}function Ae(t){let o=[`${t.place.title} (${t.place.address}) \u2014 as ${t.seat}, ${t.width} wide (${t.variant}).`],n=t.masthead;n&&o.push(`Masthead: ${n.logo?`the logo ("${n.logo.alt}", ${n.logo.drawn==="image"?n.logo.src:"inline SVG"}), `:""}${n.name}${n.subtitle?` \u2014 ${n.subtitle}`:""}`);let s=(e,a)=>{for(let i of e)switch(i.t){case"heading":o.push(`${a}${"#".repeat(i.level)} ${i.text}`);break;case"text":o.push(`${a}${i.text}`);break;case"badge":o.push(`${a}[${i.text}]`);break;case"field":case"progress":o.push(`${a}${i.label}: ${i.text}`);break;case"figure":o.push(`${a}${i.text}${i.label?` \u2014 ${i.label}`:""}`);break;case"list":if(i.groups.length===0){i.empty&&o.push(`${a}(${i.empty})`);break}for(let g of i.groups){g.heading&&o.push(`${a}${g.heading}:`);for(let p of g.items)o.push(`${a}${g.heading?" ":""}- ${p.title}`),s(p.parts,`${a}${g.heading?" ":" "}`)}i.as==="card"&&i.columns>1&&o.push(`${a}(cards, ${i.columns} across)`),i.more&&o.push(`${a}and ${i.more} more`);break}};if(s(t.parts,""),t.facts){o.push("Facts of the whole graph (what fact('<name>') reads):");for(let e of t.facts)o.push(`- ${e.label} (${e.name}): ${e.value??`not worked out \u2014 ${e.refused}`}`)}if(t.problems.length>0){o.push("Problems:");for(let e of t.problems)o.push(`- ${e.at}: ${e.says}`)}return o.join(`
|
|
2
|
+
`)}export{V as a,X as b,Z as c,ve as d,Se as e,De as f,ne as g,Ke as h,Ae as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as ue,c as fe,d as me}from"./chunk.7BWT5L2L.js";import{f as T,i as v,j as de,k as pe}from"./chunk.3VL5WECB.js";import{b as le}from"./chunk.JH6MU6TX.js";import{c as ae,f as se}from"./chunk.WAFDCOOG.js";import{G as we,R as oe,_ as ie,i as te,v as re}from"./chunk.GFF2FB2J.js";import{Da as ee,Ea as ne,W as Y,Y as Q,da as X,sa as Z}from"./chunk.6V2RG5JG.js";import{b as H}from"./chunk.AJZBJBMO.js";var l=H(we(),1),a=H(oe(),1);function Pe({affordance:n,onApply:r,onCancel:p,store:b}){let y=ie(),i=b??y?.store,[R,M]=(0,l.useState)({}),[f,z]=(0,l.useState)(""),[E,P]=(0,l.useState)(K),[q,B]=(0,l.useState)(void 0),G=(0,l.useId)(),j=(0,l.useRef)(null),S=n.open.filter(e=>!(e.name in R)),s=S[0],w=i.allMutations().find(e=>e.name===n.mutation),J=(0,l.useMemo)(()=>ke(w,i,n.args??{}),[w,i,n.args]),u=s?J[s.name]:void 0;if((0,l.useEffect)(()=>{z(ce(u,s?.shape)),P(Array.isArray(u)?u:K),B(u)},[s?.name]),(0,l.useEffect)(()=>{j.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[s?.name]),(0,l.useLayoutEffect)(()=>{let e=j.current,o=typeof document>"u"?null:document.activeElement;if(!e||o&&o!==document.body&&!e.contains(o))return;let d=e.querySelector("form input, [role=group] button:not([disabled])");d&&d!==o&&d.focus()},[s?.name]),!s)return null;let h=e=>{let o=u!==void 0&&JSON.stringify(e)===JSON.stringify(u)?void 0:e,d={...R,[s.name]:o};if(n.open.filter(N=>!(N.name in d)).length===0){let N=r(Object.fromEntries(Object.entries(d).filter(([,L])=>L!==void 0)));N&&N.length>0&&M(Object.fromEntries(Object.entries(d).filter(([L])=>!N.includes(L))))}else M(d)},x=s.optional?(0,a.jsx)("button",{type:"button",onClick:()=>h(void 0),style:{fontSize:"0.8125rem"},children:"Skip"}):null,t=s.shape??{type:"unknown"},m=t.type==="number"?t.amount:void 0,c=ve(s,t),g=T(i.schema,w,s.name),_=Z((w?.input?.shape??{})[s.name]),ge=ne((w?.input?.shape??{})[s.name]),A=ee(s.name),ye=typeof u=="boolean"?u?"yes":"no":u,[F,he]=(0,l.useState)(""),U=(0,l.useMemo)(()=>{let e=c.map(o=>i.graph.getNode(o)).filter(o=>o!==void 0);return le(e,o=>i.schema.tryDefinition(o))},[c,i]),I=e=>{let o=xe(i,t,e),d=t.type==="choice"||t.type==="several"&&t.of.type==="choice"?g.option(e):o,O=U.get(e);return O?`${d} \xB7 ${O}`:d},$=(0,l.useMemo)(()=>{let e=F.trim().toLowerCase();return e===""?c:c.filter(o=>I(o).toLowerCase().includes(e))},[c,F,i,t,U]),k=t.type==="several",V=t.type==="file"?t:t.type==="several"&&t.of.type==="file"?t.of:void 0,W=k&&c.length===0,C=s.kinds&&s.kinds.length>0&&!s.kinds.includes("*")?s.kinds.map(e=>Q(X(i.schema.tryDefinition(e),e))).join(" or "):g.label,be=n.open.length>1?`${C} \xB7 ${n.open.length-S.length+1} of ${n.open.length}`:C;return(0,a.jsxs)("div",{ref:j,"data-graview-asking":n.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,padding:"5px 0 2px"},children:[n.open.length>1||c.length>0?(0,a.jsx)("span",{id:G,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:be}):null,c.length>D?(0,a.jsx)("input",{type:"search",value:F,onChange:e=>he(e.target.value),placeholder:`Filter ${c.length}\u2026`,"aria-label":`Filter ${C}`,"data-testid":"ask-filter",style:{font:"inherit",fontSize:"0.8125rem",minWidth:0,padding:"3px 7px"}}):null,ge?(0,a.jsxs)("form",{style:{display:"grid",gap:4},onSubmit:e=>{e.preventDefault(),h(q??(u===void 0?void 0:null))},children:[(0,a.jsx)(me,{value:q,onChange:B,start:A?R[A]??J[A]:void 0,label:`${A?T(i.schema,w,A).label:g.label} repeats`,name:s.name}),(0,a.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,a.jsx)("button",{type:"submit",style:{fontSize:"0.8125rem"},children:S.length>1?"Next":"Apply"}),x]})]}):_?(0,a.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,a.jsx)(fe,{relation:_,value:u,onChange:h,label:g.label}),x]}):V?(0,a.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,a.jsx)(ue,{as:"control",value:u,onChange:h,several:k,image:V.image===!0,label:g.label}),x]}):c.length>0?(0,a.jsxs)("div",{role:"group","aria-labelledby":G,style:{display:"flex",flexWrap:"wrap",gap:4},children:[$.slice(0,D).map(e=>{let o=k?E.includes(e):e===ye;return(0,a.jsx)("button",{type:"button","aria-label":`${C}: ${I(e)}`,...k?{"aria-pressed":o}:o?{"aria-current":!0}:{},style:{padding:"3px 9px",fontSize:"0.8125rem",...o?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},onClick:()=>k?P(d=>d.includes(e)?d.filter(O=>O!==e):[...d,e]):h(t.type==="boolean"?e==="yes":e),children:I(e)},e)}),$.length>D?(0,a.jsxs)("span",{"data-testid":"ask-more",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:[$.length-D," more \u2014 type to narrow"]}):null,$.length===0?(0,a.jsxs)("span",{"data-testid":"ask-none",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["None of the ",c.length," match that."]}):null,k?(0,a.jsx)("button",{type:"button",disabled:E.length===0,style:{fontSize:"0.8125rem"},onClick:()=>{let e=E;P(K),h(e)},children:S.length>1?"Next":"Apply"}):null,x]}):(0,a.jsxs)("form",{style:{display:"flex",flexWrap:"wrap",gap:4},onSubmit:e=>{if(e.preventDefault(),u!==void 0&&f===ce(u,t)){h(void 0);return}if(W){h(f.split(/[,\n]/).map(o=>o.trim()).filter(Boolean));return}if(f.trim().length!==0){if(m){let o=pe(f,m);o!==void 0&&h(o);return}h(t.type==="number"?t.duration?se(f)??f:Number(f):f)}},children:[t.type==="text"&&t.long?(0,a.jsx)("textarea",{autoFocus:!0,name:s.name,"aria-label":g.label,placeholder:g.label,value:f,rows:4,onChange:e=>z(e.target.value),onKeyDown:e=>{e.key==="Escape"?p():e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())},style:{flex:"1 1 100%",minWidth:0,font:"inherit",fontSize:"0.875rem",lineHeight:1.45,padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",resize:"vertical",fieldSizing:"content",minHeight:"5.5em",maxHeight:"40vh"}}):(0,a.jsx)("input",{autoFocus:!0,type:t.type==="date"?t.time?"datetime-local":"date":t.type==="number"&&!t.duration&&!m?"number":t.type==="text"&&t.holds==="phone"?"tel":"text",...m?{inputMode:"decimal","data-graview-amount":m.format??"unit"}:{},name:s.name,"aria-label":g.label,placeholder:W?`${g.label}, separated by commas`:m?`${g.label}, ${v(m).hint} \u2014 ${v(m).prefix??""}${v(m).placeholder}${v(m).suffix?` ${v(m).suffix}`:""}`:g.label,value:f,...t.type==="number"&&t.min!==void 0?{min:t.min}:{},...t.type==="number"&&t.max!==void 0?{max:t.max}:{},...t.type==="number"&&t.step!==void 0?{step:t.step}:{},onChange:e=>z(e.target.value),onKeyDown:e=>{e.key==="Escape"&&p()},style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,a.jsx)("button",{type:"submit",disabled:!W&&f.trim().length===0,style:{fontSize:"0.8125rem"},children:S.length>1?"Next":"Apply"}),x]})]})}var K=[];function ke(n,r,p){let b=n?.derived?.act==="edit"&&n.subject?p[n.subject.arg]:void 0,y=typeof b=="string"?r.graph.getNode(b):void 0;return y?Object.fromEntries((n.writes??[]).filter(i=>y[i]!==void 0&&y[i]!==null).map(i=>[i,y[i]])):{}}function ce(n,r){return typeof n=="number"?r?.type==="number"&&r.amount?de(n,r.amount):String(n):Array.isArray(n)?n.every(p=>typeof p=="string")?n.join(", "):"":typeof n!="string"?"":r?.type==="date"?r.time?n.slice(0,16).replace(" ","T"):n.slice(0,10):n}var D=10;function ve(n,r){return n.candidates&&n.candidates.length>0?n.candidates:r.type==="choice"?r.options:r.type==="several"&&r.of.type==="choice"?r.of.options:r.type==="boolean"?Se:[]}var Se=["yes","no"];function xe(n,r,p){return r.type==="boolean"||r.type==="choice"||r.type==="several"&&r.of.type==="choice"?p:Ae(n,p)}function Ae(n,r){let p=te(r);if(p){let i=ae(n.schema,n.graph.getNode(p.from)?.kind??"",p.kind,"out");return i.charAt(0).toUpperCase()+i.slice(1)}let b=re(r);if(b.length>0)return b.map(i=>n.schema.tryDefinition(i)?.plural??`${i}s`).join(" + ");let y=n.graph.getNode(r);return y?Y(n.schema.tryDefinition(y.kind),y):r}export{Pe as a,Ae as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{R as w,k as c,m as h,n as b,oa as y,qa as k,s as f}from"./chunk.GFF2FB2J.js";import{M as i}from"./chunk.6V2RG5JG.js";import{b as g}from"./chunk.AJZBJBMO.js";var s=null,a=new Set,v=e=>{s={kind:e,n:(s?.n??0)+1};for(let t of a)t()},A=()=>s,C=e=>(a.add(e),()=>a.delete(e)),V=()=>{s=null};var d=g(w(),1);function T(e,t){if(e.length===0||t.length===0)return[];let o=new Set(t.map(n=>n.id));return e.filter(n=>n.nodeIds.some(l=>o.has(l)))}var x=(e,t)=>`${i(e)} ${e===1?"problem":"problems"} in ${t}`;function q({kind:e,plural:t,problems:o,flag:n,listed:l=!1}){let{view:p,go:P}=k(),{set:$}=y();if(o.length===0)return null;let u=x(o.length,t),m=o.length===1?"it":"them";return(0,d.jsx)("button",{type:"button",className:"graview-district-problems","data-testid":`district-problems-${e}`,"data-graview-problems":o.length,"aria-expanded":l,"aria-label":u,title:`${u} \u2014 ${o[0].message}${o.length>1?` (and ${i(o.length-1)} more)`:""}. Press to see ${m} and how to fix ${m}.`,onClick:r=>{r.stopPropagation(),p.overview||P(h(c(b(p,!0),null),"view",null)),$([f(e)]),v(e)},onDoubleClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:(0,d.jsx)("span",{"aria-hidden":"true",children:`${n} ${i(o.length)}`})})}export{A as a,C as b,V as c,T as d,x as e,q as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{c as p}from"./chunk.L4DECHXR.js";import{R as c}from"./chunk.GFF2FB2J.js";import{Jb as u}from"./chunk.6V2RG5JG.js";import{b as h}from"./chunk.AJZBJBMO.js";var s={person:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="11.6" cy="5.4" r="2.5"/><path d="M7.9 12.4c0-2.1 1.7-3.8 3.7-3.8s3.7 1.7 3.7 3.8v3.2H7.9z"/><path d="M8 12.6 6.4 17.2"/><path d="M15.2 12.6 16.8 17.2"/><path d="M9.8 15.6v5"/><path d="M13.4 15.6v5"/></svg>',plot:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.6 9.4 12 4.6l9.4 4.8-9.4 4.8z"/><path d="M2.6 9.4v4.4l9.4 4.8 9.4-4.8V9.4"/><path d="M12 14.2v4.4"/><path d="M7 11.9v3"/><path d="M17 11.9v3"/></svg>',box:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M3.4 7.9 12 3.6l8.6 4.3-8.6 4.3z"/><path d="M3.4 7.9v8.2L12 20.4l8.6-4.3V7.9"/><path d="M12 12.2v8.2"/></svg>',task:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4.4 6.6 12 2.9l7.6 3.7v9.5L12 19.8 4.4 16.1z"/><path d="M12 12.4v7.4"/><path d="M4.4 6.6 12 10.3l7.6-3.7"/><path d="M8 9.6l2.4 2.4L16 8.4"/></svg>',shift:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M3.2 8.2 12 4l8.8 4.2-8.8 4.2z"/><path d="M3.2 8.2v7.2L12 19.6l8.8-4.2V8.2"/><path d="M12 12.4v7.2"/><path d="M6.6 10.8v3.4"/><path d="M9.3 12v3.4"/></svg>',list:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.8 10.4 12 6l9.2 4.4-9.2 4.4z"/><path d="M2.8 10.4v3.2L12 18l9.2-4.4v-3.2"/><path d="M6.6 8.6 15.8 13"/><path d="M9.4 7.2 18.6 11.6"/></svg>',vehicle:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M2.8 14.2 5 9.4l8.6-1.6 5.4 3-1 3.6z"/><path d="M2.8 14.2v2.2h2.4"/><path d="M18 16.4h1.9l.1-2.2"/><circle cx="7.6" cy="16.6" r="1.9"/><circle cx="16.1" cy="16.6" r="1.9"/><path d="M8.6 8.2 9.8 12l7.2-1"/></svg>',rule:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5.4 19.4V6.6l12 12.8z"/><path d="M5.4 6.6 7.6 5.5l12 12.8-2.2 1.1"/><path d="M5.4 19.4 7.6 18.3h12"/><path d="M5.4 10.1h1.7"/><path d="M5.4 13.3h1.7"/><path d="M5.4 16.5h1.7"/></svg>',note:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M6.2 6.2 14.8 10.5v9L6.2 15.2z"/><path d="M12.4 9.3 14.8 10.5l-.6 2.3"/><path d="M8.2 10.6 12.8 12.9"/><path d="M8.2 13.2 11.4 14.8"/></svg>'},v=Object.keys(s);function i(e){if(e)return s[e]??(e.trimStart().startsWith("<svg")?e:void 0)}var a=h(c(),1);function A({kind:e,schema:o,brand:n,size:r=16,title:t}){let f=o?.tryDefinition?.(e)?.figure,d=i(n?.figures?.[e]??f),l=Math.round(u(e,n?.accents)),g=p(d);return d?(0,a.jsx)("span",{"aria-hidden":t===void 0?"true":void 0,...t===void 0?{}:{role:"img","aria-label":t},"data-graview-figure":e,"data-graview-figure-kind":"figure",dangerouslySetInnerHTML:g,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:r,height:r,flex:"0 0 auto",color:`hsl(${l} 55% 52%)`,"--graview-figure-size":`${r}px`}}):(0,a.jsx)("span",{"aria-hidden":t===void 0?"true":void 0,...t===void 0?{}:{role:"img","aria-label":t},"data-graview-figure":e,"data-graview-figure-kind":"dot",style:{display:"inline-block",width:Math.round(r*.8),height:Math.round(r*.5),flex:"0 0 auto",background:`hsl(${l} 55% 52%)`,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)"}})}function C(e,o,n){return i(n?.figures?.[e]??o?.tryDefinition?.(e)?.figure)!==void 0}export{A as a,C as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as rn,c as on,d as te,e as an,f as re,h as Oe,i as sn,n as dn,q as oe}from"./chunk.42YX6NOY.js";import{A as pe,B as me,Ca as _e,D as ke,F as Ne,Fa as He,G as Ce,Mb as en,Pa as Ue,Qa as We,U as Ke,Ua as xe,Va as Je,Wb as nn,Xb as tn,Y as Ve,b as je,c as De,ca as Ie,d as $e,e as K,g as de,h as L,hb as U,i as Te,j as Ge,ja as we,k as ce,kb as Ye,l as Me,m as Pe,ma as Ze,o as Le,ob as Qe,p as le,pa as qe,q as he,ra as Be,tb as Xe,v as Fe,va as be,wa as ve,x as ne,y as fe}from"./chunk.6V2RG5JG.js";function Dn(e,a){let n=e.brand??{},t=n.accent?tn(n.accent):void 0;t&&!t.ok&&a.push(sn("brand","brand.accent",`that accent cannot make a readable brand, so the app keeps Graview's colors: ${t.why}`,"pick a color further from orange-red, or a darker one"));let l=typeof n.logo=="string"?{src:n.logo}:n.logo,c=n.name??e.name,x=n.typography?Object.fromEntries(Object.entries(n.typography).filter(([,S])=>typeof S=="string"&&!/url\(|@import|[;{}<>\\]/i.test(S)).map(([S,I])=>[S,nn(I)])):void 0;return{name:c,schemes:t?.ok?t.schemes:en,...n.currency?{currency:n.currency}:{},...n.locale?{locale:n.locale}:{},...l?{logo:l.src,logoAlt:l.alt??c}:{},...n.favicon?{favicon:n.favicon}:{},...e.description?{subtitle:e.description}:{},...x?{typography:x}:{},...n.shape?{shape:n.shape}:{},...n.accents?{accents:n.accents}:{},...n.scheme?{scheme:n.scheme}:{}}}function cn(e){let{currency:a,locale:n}=e.brand??{};return{...a?{currency:a}:{},...n?{locale:n}:{}}}var kn=Symbol.for("@graview/core:typed-field"),ln=(e,a)=>(/^(phone|place|duration)$/.test(a)&&(me(e)[kn]=a),e),fn=/^(?=(?:\D*\d){3})\+?[\d ()./-]+(?: *(?:ext\.?|x|#) *\d+)?$/i;function pn(e){let a=L().check(K(300),fe(t=>qe(t,e)!==void 0,`a record of ${e.kinds.join(" or ")} in ${e.address}, as "<kind>:<id>"`)),n=e.cardinality==="one"?a:le(a).check(K(200));return Be(e.description?n.check(pe(e.description)):n,e)}var bn=new WeakMap;function mn(e,a){bn.set(e,a)}var vn=[{where:"settings[]",was:"honoured",now:"honored",since:"0.1.16"},{where:"pages",was:"overview",now:"scene",since:"0.1.17"}],V=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function un(e,a=vn){if(!V(e))return{document:e,respelled:[]};let n=[],t=e;for(let l of a)t=Re(t,l.where.split("."),l,"",n);return{document:t,respelled:n}}function Re(e,a,n,t,l){if(a.length===0){if(!V(e)||!Object.hasOwn(e,n.was))return e;l.push(`${t}${n.was}`);let{[n.was]:B,...F}=e;return Object.hasOwn(e,n.now)?F:{...F,[n.now]:B}}if(!V(e))return e;let[c,...x]=a,S=c.endsWith("[]"),I=S?c.slice(0,-2):c,$=e[I],T=$;if(!S)T=Re($,x,n,`${t}${I}.`,l);else if(Array.isArray($)){let B=$.map((F,W)=>Re(F,x,n,`${t}${I}.${W}.`,l));T=B.some((F,W)=>F!==$[W])?B:$}return T===$?e:{...e,[I]:T}}var yn="graview-compiled@1";function xn(e,a){return e.find(([n,t])=>n!==q&&"ref"in t&&(t.ref==="*"||t.ref.includes(a)))?.[0]}var q="id",ue=e=>typeof e=="string"&&/^\$[A-Za-z][A-Za-z0-9]*$/.test(e)?e.slice(1):void 0;function gn(e){let a=Object.entries(e.fields),n=t=>["name","title","label"].find(l=>t.some(([c])=>c===l))??t[0]?.[0];return n(a.filter(([,t])=>t.required&&(t.type==="string"||t.type==="text")))??n(a.filter(([,t])=>t.type==="string"))}function hn(e,a,n){let t;switch(e.type){case"string":case"place":t=L().check(K(500));break;case"phone":t=L().check(K(40),de(fn,"a phone number"));break;case"text":t=L().check(K(2e4)),e.format&&(me(t)[Symbol.for("@graview/core:markdown")]=1);break;case"number":case"integer":case"duration":{let c=e.min??(e.type==="duration"?0:void 0),x=[...e.type==="number"?[]:[Me()],...c===void 0?[]:[De(c)],...e.max===void 0?[]:[je(e.max)],...e.step===void 0?[]:[$e(e.step)]];t=x.length>0?ce().check(...x):ce();break}case"boolean":t=Pe();break;case"date":t=L().check(de(ke,"a date like 2026-10-02"));break;case"datetime":t=L().check(fe(Ne,"a date and time like 2026-10-02T14:30:00Z"));break;case"enum":t=Fe(e.options);break;case"list":t=le(e.of==="number"?ce():e.of==="date"?L().check(de(ke)):e.of==="image"||e.of==="file"?we(e.of):L().check(K(500))).check(K(200));break;case"image":case"file":t=we(e.type);break;case"app-link":t=Ze();break;case"url":t=Ge();break;case"email":t=Te();break}let l=e.type==="number"||e.type==="integer";return ln(t,l&&e.format==="duration"?"duration":e.type),e.description&&(t=t.check(pe(e.description))),l&&(e.format==="money"||e.format==="percent"||!e.format&&e.unit)&&Qe(t,{...n,...e.format?{format:e.format}:{},...e.unit?{unit:e.unit}:{}}),a?ne(t):t}var ie=e=>{throw new U(`there is no record "${e}"`,"invalid")},On=(e,a)=>"field"in e?hn(e.field,e.optional,a):"ref"in e?Xe(e.ref):ne(Le()),Rn=new WeakMap;var Ae=(e,a)=>V(a)&&Object.keys(e??{}).length===Object.keys(a).length&&Object.keys(e??{}).every(n=>Object.hasOwn(a,n));function nt(e,a={}){let n=V(e)?e.format:void 0;if(n!==yn)return{ok:!1,findings:[Oe("compiled-format","format",n===void 0?"this is not a compiled Graview app":`this compiled app is ${JSON.stringify(n)}, and this build reads ${yn}`,"compile the document instead")]};let t=e,l=un(t.document).document,c=l===t.document?t:{...t,document:l},x=V(l)&&typeof l.name=="string"&&V(l.kinds)&&Ae(l.kinds,c.kinds)&&Ae(l.acts,c.acts)&&Ae(l.rules,c.rules)&&Array.isArray(c.edges)&&Array.isArray(c.findings),S={ok:!1,findings:[Oe("compiled-shape","","this compiled app's parts do not match its document","compile the document instead")]};if(!x)return S;try{return An(c,a)}catch{return S}}function An(e,a={}){let{document:n}=e,t=a.today??Ce,l=new Map(e.edges.map(([g,r])=>[g,r])),c=new Map;for(let[g,r]of Object.entries(n.kinds)){let R=e.kinds[g]?.computed,O=ve(r.edges);c.set(g,{fields:new Set([...Object.keys(r.fields),...O.keys()]),edges:new Map(Object.entries(be(r.edges)).map(([j,G])=>[j,G.cardinality??"many"])),...R?{computed:new Map(R)}:{},...O.size>0?{linked:O}:{}})}e.facts&&c.set(on,{computed:new Map(e.facts)});let x=cn(n),S=new Map,I=Object.entries(n.kinds).map(([g,r])=>{let R={};for(let[o,u]of Object.entries(r.fields))R[o]=hn(u,!u.required,x),u.repeats&&(R[_e(o)]=ne(He()));for(let[o,u]of ve(r.edges))R[o]=ne(pn(u));let{label:O,describe:j,durations:G}=e.kinds[g]??{},M=Object.entries(r.computed??{}).map(([o,u])=>[o,typeof u=="string"?{expr:u}:u]),J=Object.hasOwn(r.fields,"label")&&!r.fields.label.label&&!/\{\s*label\b/.test(r.label??`{${gn(r)??""}}`),_=Object.fromEntries([...J?[["label","Label"]]:[],...Object.entries(r.fields).filter(([,o])=>o.label).map(([o,u])=>[o,u.label]),...M.filter(([,o])=>o.label).map(([o,u])=>[o,u.label])]),A=Object.keys(_).length>0,f=Object.fromEntries(Object.entries(r.fields).filter(([,o])=>o.default!==void 0).map(([o,u])=>[o,u.default]));S.set(g,f);let D=Object.fromEntries(Object.entries(be(r.edges)).map(([o,{renamedFrom:u,...Z}])=>[o,Z])),z=o=>r[o]?{[o]:r[o]}:{};return Ke(g,{fields:he(R),edges:D,...z("plural"),...z("noun"),...z("description"),...O?{label:o=>oe(O,{node:o,kinds:c,today:t(),money:x})||o.id}:{},...j?{describe:o=>oe(j,{node:o,kinds:c,today:t(),money:x})}:{},...z("lifecycle"),...z("figure"),...z("fieldRoles"),...z("people"),archives:r.archives,...r.tidying?{tidying:r.tidying}:{},...M.length>0?{computed:Object.fromEntries(M.map(([o,u])=>[o,G?.includes(o)?{...u,as:"duration"}:r.computed[o]]))}:{},...A||r.glance||r.page?{display:{...A?{labels:_}:{},...r.glance?{glance:[...r.glance]}:{},...r.page?{page:r.page}:{}}}:{},...Object.keys(f).length>0?{defaults:f}:{}})}),$=Ue(I,n.computed);function T(g){return $.tryDefinition(g.kind)?.label?.(g)??g.id}let B=g=>({id:"",kind:g,...S.get(g)}),F=[];for(let[g,r]of Object.entries(n.acts??{})){let R=e.acts[g],{title:O,effects:j,guard:G,refusal:M,destructive:J,idempotent:_,creates:A,connects:f,severs:D,writes:z,writesOther:o,sets:u}=R,Z=new Map(R.args),ae={};for(let[s,b]of Z)ae[s]=On(b,x);let k=[r.on??[]].flat(),N=new Map(R.exprs),P=j.find(s=>"create"in s),Y=(s,b,p,w=null)=>{if(V(s)&&"expr"in s)return re(N.get(s.expr),{graph:p,subject:w,kinds:c,bindings:b,today:t()});let h=ue(s);return h===void 0?typeof s=="string"&&s.startsWith("$$")?s.slice(1):s:h==="now"?new Date().toISOString():h==="today"?t():b[h]},Se=(s,b)=>{if(!P)return"";let p=n.kinds[P.create].fields,w=B(P.create),h=[];for(let[v,ee]of Object.entries(P.set??{})){try{w[v]=Y(ee,s,b)??w[v]}catch{}let Q=ue(ee);Q&&s[Q]!==void 0&&h.push(v)}let C=T(w).trim(),H=h.filter(v=>w[v]!==!1&&p[v].type!=="text"&&!(/[^]{41}/.test(w[v])||/ .*[.!?]$/.test(w[v])&&!/[ .][A-Z]\w{0,3}\.$/.test(w[v]))&&T({...w,[v]:void 0}).trim()===C).map(v=>w[v]===!0?p[v].label??Ve(v):dn(w[v],p[v].format,t(),[],x));return C&&H.length>0?`${C} (${H.join(", ")})`:C};F.push(Ye(g,{input:he(ae),title:O,...r.description?{description:r.description}:{},...r.fromTheOtherEnd?{fromTheOtherEnd:r.fromTheOtherEnd}:{},...Z.has(q)?{subject:{kinds:k.length>0?k:"*",arg:q}}:{},...J?{destructive:!0}:{},..._?{idempotent:!0}:{},...A.length>0?{creates:A}:{},...f.length>0?{connects:f}:{},...D.length>0?{severs:D}:{},writes:z,...Object.keys(o).length>0?{writesOther:o}:{},...Object.keys(u).length>0?{sets:u}:{},describe:(s,b)=>{let p=typeof s[q]=="string"?b.getNode(s[q]):void 0,w=p?T(p):Se(s,b);return w?`${O}: ${w}`:O},apply(s,b){let p=s.graph,w=typeof b[q]=="string"?b[q]:void 0,h=w?p.getNode(w):void 0;if(w&&!h&&ie(w),h&&k.length>0&&!k.includes(h.kind))throw new U(`"${O}" acts on ${k.join(" or ")}, not on ${Ie(h.kind)}`,"invalid");let C={};for(let[i,d]of Object.entries(b))d!==void 0&&(C[i]=d);if(G&&h){let i;try{i=re(G,{graph:p,subject:h,kinds:c,bindings:C,today:t()})}catch(d){throw d instanceof te?new U(`"${O}" could not be judged: ${d.sentence}`):d}if(i!==!0)throw new U(M?oe(M,{node:h,kinds:c,graph:p,bindings:C,today:t(),money:x}):`"${O}" is not allowed for ${T(h)} right now`)}let H=new Map,v=i=>p.has(i)||[...H.values()].includes(i),ee=new Set,Q=i=>{let d=We(i);ee.has(d)||(ee.add(d),s.removeEdge(i))},X=(i,d)=>{let m=ue(i);if(m==="subject")return w;if(m==="me"){let y=s.me;if(y&&n.kinds[p.getNode(y)?.kind]?.people)return y;throw new U(`"${O}" is done as you, and you have no record here`)}if(H.has(m))return H.get(m);try{return Y(i,C,p,d??h??null)}catch(y){throw y instanceof te?new U(`"${O}" could not work out a value: ${y.sentence}`):y}};for(let i of j)if("create"in i){let d=n.kinds[i.create],m=B(i.create);for(let[ge,se]of Object.entries(i.set??{})){let Ee=X(se,void 0);Ee!==void 0&&(m[ge]=Ee)}let y=gn(d),E=s.freshId(String((y&&m[y])??i.create),i.create);s.addNode({...m,id:E}),i.as&&H.set(i.as,E)}else if("connect"in i||"sever"in i){let d="connect"in i?i.connect:i.sever,m=String(X(i.from,void 0)??""),y=String(X(i.to,void 0)??"");if(v(m)||ie(m),v(y)||ie(y),"connect"in i){if(l.get(d)?.cardinality==="one")for(let E of p.out(m,d))E.id!==y&&Q({kind:d,from:m,to:E.id});p.out(m,d).some(E=>E.id===y)||s.addEdge({kind:d,from:m,to:y})}else Q({kind:d,from:m,to:y})}else if("set"in i){let d=String(X(i.target??"$subject",void 0)??""),m=p.getNode(d);!m&&!v(d)&&ie(d);let y={};for(let[E,ge]of Object.entries(i.set)){let se=X(ge,m);se!==void 0&&(y[E]=se)}Object.keys(y).length>0&&s.patchNode(d,y)}else if("remove"in i){let d=String(X(i.remove,void 0)??"");p.has(d)||ie(d),s.removeNode(d)}else if("replace"in i&&h){let d=b.to;for(let m of i.replace){let y=l.get(m)?.from.includes(h.kind)??!0;for(let E of y?p.out(h.id,m):p.in(h.id,m))m===i.keep&&E.id===d||Q(y?{kind:m,from:h.id,to:E.id}:{kind:m,from:E.id,to:h.id})}}}}))}let W=[];for(let[g,r]of Object.entries(n.rules??{})){let{title:R,require:O,when:j,says:G}=e.rules[g],M=r.repairs??[],J=(A,f,D=t(),z)=>{let o=[],u={graph:A,subject:f,kinds:c,today:D,...z?{linked:z}:{},onUnread:k=>o.push(k)},Z;try{if(j&&re(j,u)!==!0)return[];if(Z=re(O,u)===!0,!Z&&o.length>0)throw new te(`it reads ${rn(o[0])}`,0)}catch(k){throw k instanceof an?new Je(k.sentence):k instanceof te?new Error(k.sentence):k}if(Z)return[];let ae=M.flatMap(k=>{let N=n.acts?.[k.act],P={},Y=f&&N?.on&&N.fromTheOtherEnd&&![N.on].flat().includes(f.kind)?xn(e.acts[k.act].args,f.kind):void 0;Y?P[Y]=f.id:f&&(N?.on||/^(edit|remove|archive|unarchive|merge|skip|detach|split)-/.test(k.act))&&(P[q]=f.id);for(let[b,p]of Object.entries(k.args??{}))P[b]=ue(p)==="subject"?f?.id:p;let s=(N?e.acts[k.act].args:[]).filter(([b,p])=>p.required&&P[b]===void 0).map(([b])=>b);return[{mutation:k.act,label:k.label??(Y?N.fromTheOtherEnd:N?.title)??k.act.replace(/-/g," "),args:P,...s.length>0?{missing:s}:{}}]});return[{invariant:g,...f?{subjectId:f.id}:{},label:R,message:G?oe(G,{node:f,kinds:c,graph:A,today:D,money:x}):f?`${T(f)}: ${R}`:R,nodeIds:f?[f.id]:[],repairs:ae}]},_={label:R,shape:{over:r.over,require:O,when:j,says:G,declared:n.kinds,money:x,kinds:c,today:t},judgment:{require:r.require,...r.when?{when:r.when}:{},...r.says?{says:r.says}:{}},...r.description?{description:r.description}:{},...M.length>0?{repairs:M.map(A=>A.act)}:{}};W.push(r.over==="graph"?xe(g,{scope:"graph",..._,evaluate:({graph:A,today:f,context:D})=>J(A,null,f,D?.linked)}):xe(g,{scope:{kind:r.over},..._,evaluate:({graph:A,subject:f,today:D,context:z})=>J(A,f,D,z?.linked)}))}let ze=n.policy&&{...n.policy,...n.roles?{roles:n.roles}:{}},ye={name:n.name,schema:$,mutations:F,invariants:W,...ze?{policy:ze}:{},...e.brand?{brand:e.brand}:{},...n.modules?{modules:n.modules}:{},...n.lenses?{lenses:n.lenses}:{},...n.pages?{pages:n.pages}:{},...n.settings?{settings:n.settings}:{},...e.viewSpecs?{viewSpecs:e.viewSpecs}:{},...e.home?{home:e.home}:{},version:n.version??1};return mn(ye,n),Rn.set(ye,e),{ok:!0,app:ye,document:n,findings:e.findings,sights:n.policy?.sees,kinds:c}}export{un as a,Dn as b,yn as c,q as d,ue as e,gn as f,nt as g,An as h};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as J}from"./chunk.ERXSYPYL.js";import{a as ge}from"./chunk.MB7LKKUD.js";import{p as fe,q as X}from"./chunk.KQT7WAQE.js";import{f as Y,g as ce,h as pe,i as U,j}from"./chunk.OQDETV4X.js";import{c as me}from"./chunk.WAFDCOOG.js";import{b as ae,g as ue}from"./chunk.L4DECHXR.js";import{$ as B,G as z,J as se,O as ie,R as x,Z as P,_ as le,a as I,oa as _,qa as de,ya as L}from"./chunk.GFF2FB2J.js";import{$ as oe,_b as re,dc as H}from"./chunk.6V2RG5JG.js";import{b as y}from"./chunk.AJZBJBMO.js";var D=y(z(),1),$=y(x(),1),be="A",Q=L(I(()=>import("./chunk.K776HO42.js")));var Se=Q.part((e,n)=>(0,$.jsx)(e.InspectorPane,{...n}),{what:"This card's acts"});function xe(e){let n=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},o=globalThis;if(o.requestIdleCallback){let p=o.requestIdleCallback(n,{timeout:5e3});return()=>o.cancelIdleCallback?.(p)}let l=setTimeout(n,2500);return()=>clearTimeout(l)}function ze({placement:e="float",openActs:n}={}){let{menuAt:o,setMenuAt:l,registerActsDoor:p}=P(),{selection:m}=_();(0,D.useEffect)(()=>{if(Q.current)return;let i=()=>{C(),Q.prefetch()},g=xe(i),c=["pointerdown","keydown"];for(let b of c)document.addEventListener(b,i,{capture:!0,passive:!0});function C(){g();for(let b of c)document.removeEventListener(b,i,{capture:!0})}return C},[]),(0,D.useEffect)(()=>{if(e==="menu")return p({key:be,open:n??(i=>{let g=i.getBoundingClientRect(),c=i.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??i.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0;l({x:Math.round(g.left+Math.min(16,g.width/2)),y:Math.round(Math.min(g.bottom,g.top+36)),...c?{on:c}:{}})})}),()=>p(null)},[e,p,l,n]);let f=o!==null||m.length>0,[d,u]=(0,D.useState)(f);return(0,D.useEffect)(()=>{f&&u(!0)},[f]),!d&&!f?null:(0,$.jsx)(D.Suspense,{fallback:null,children:(0,$.jsx)(Se,{placement:e,chosen:n===void 0})})}var h=y(z(),1);var M=y(x(),1),he=336,k=16,Pe=640,N=L(I(()=>import("./chunk.HSCTWAUV.js"))),Me=N.part((e,n)=>{let o=e.SeatPanel;return(0,M.jsx)(o,{...n})},{what:"The conversation"});function Ne({respond:e,onCall:n,onPick:o,start:l="field",onMove:p,place:m,onDraft:f}){let{brand:d,seatTalk:u}=P(),i=se(u),g=d?.name?.trim()||"this app",c=(0,h.useRef)(null),C=(0,h.useRef)(null),[b,s]=(0,h.useState)(""),[a,w]=(0,h.useState)(!1),E=(0,h.useRef)(null),T=ie()?.open??!1,S=l==="hidden"||T,v=i.open&&!S;(0,h.useEffect)(()=>S?void 0:u.drawn(),[u,S]),(0,h.useLayoutEffect)(()=>{let r=c.current?.parentElement;if(!r)return;let A=()=>w(r.getBoundingClientRect().width<Pe);if(A(),typeof ResizeObserver>"u")return;let R=new ResizeObserver(A);return R.observe(r),()=>R.disconnect()},[S]),(0,h.useEffect)(()=>{typeof window<"u"&&window.dispatchEvent(new Event(ge))},[v,i.side,a]),(0,h.useEffect)(()=>{let r=c.current;if(S||v||!r||typeof window>"u")return;let A=(r.closest("[data-graview-embed]")??document.documentElement).style,R=()=>{let te=r.getBoundingClientRect(),ne=r.offsetParent?.getBoundingClientRect(),ke=ne?ne.bottom-te.top:te.height+k;A.setProperty("--graview-foot-room",`${Math.max(0,Math.round(ke+k))}px`)};R();let ee=typeof ResizeObserver>"u"?null:new ResizeObserver(R);return ee?.observe(r),()=>{ee?.disconnect(),A.removeProperty("--graview-foot-room")}},[S,v,a,i.side]),(0,h.useEffect)(()=>{!v||i.pending===null||(F(),C.current?.focus({preventScroll:!0}))},[v,i.pending]);let F=()=>{let r=typeof document>"u"?null:document.activeElement;r instanceof HTMLElement&&r!==document.body&&!c.current?.contains(r)&&(E.current=r)},V=()=>{F(),N.prefetch(),u.setOpen(!0)},K=()=>{u.setOpen(!1);let r=E.current;E.current=null,r?.isConnected&&!(a&&r instanceof HTMLInputElement)&&r.focus({preventScroll:!0}),document.activeElement!==r&&(a?c:C).current?.focus({preventScroll:!0})};if(S)return null;let O=!a&&i.side==="right",we=a?v?{left:0,right:0,bottom:0,padding:"8px 12px calc(12px + env(safe-area-inset-bottom, 0px))",borderRadius:"12px 12px 0 0",...ve}:{left:k,right:k,bottom:`calc(${k}px + env(safe-area-inset-bottom, 0px))`}:v?{[O?"right":"left"]:O?`calc(${k/2-1}px + var(--graview-dock, 0px))`:k/2-1,bottom:k/2-1,width:he+k+2,padding:k/2,borderRadius:12,...ve}:{[O?"right":"left"]:O?`calc(${k}px + var(--graview-dock, 0px))`:k,bottom:k,width:he};return(0,M.jsxs)("section",{ref:c,role:"region","aria-label":`Ask ${g}`,tabIndex:-1,"data-testid":"seat","data-graview-seat":v?"open":"closed","data-graview-seat-side":O?"right":"left","data-graview-seat-shape":a?"phone":"desk","data-graview-foot":"","data-graview-offstage":"",onMouseDown:r=>r.stopPropagation(),onKeyDown:r=>{r.key!=="Escape"||!v||(r.preventDefault(),r.stopPropagation(),K())},style:{position:"absolute",zIndex:H("rail"),boxSizing:"border-box",display:"flex",flexDirection:"column",gap:8,pointerEvents:"auto",outline:"none",...we},children:[(0,M.jsxs)("h2",{style:{...ue,margin:0},children:["Ask ",g]}),v?(0,M.jsx)(h.Suspense,{fallback:null,children:(0,M.jsx)(Me,{phone:a,side:O?"right":"left",name:g,onClose:K,...e?{respond:e}:{},...n?{onCall:n}:{},...o?{onPick:o}:{},...p?{onMove:p}:{},...m?{place:m}:{},...f?{onDraft:f}:{}})}):null,(0,M.jsx)("form",{onSubmit:r=>{r.preventDefault();let A=b.trim();v||V(),!(!A||i.busy)&&(u.ask(A),s(""))},style:{display:"flex",margin:0},children:(0,M.jsx)("input",{ref:C,"data-testid":"seat-field",type:"text",enterKeyHint:"send",autoComplete:"off",value:b,placeholder:`Ask ${g}\u2026`,"aria-label":`Ask ${g}`,onPointerEnter:()=>N.prefetch(),onFocus:()=>N.prefetch(),onClick:()=>{v||V()},onChange:r=>{s(r.target.value),v||V()},style:{flex:"1 1 auto",minWidth:0,boxSizing:"border-box",height:38,padding:"0 12px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8}})})]})}var ve={background:"var(--graview-float)",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-high)"};var q=y(z(),1),G=y(x(),1),Ce=L(I(()=>import("./chunk.5U5J3ISK.js"))),Ee=Ce.part((e,n)=>{let o=e.DraftFrame;return(0,G.jsx)(o,{...n})},{what:"The view"});function Ye(e){let{seatTalk:n}=P();return(0,q.useSyncExternalStore)(n.subscribe,()=>n.get().draft!==null,()=>!1)?(0,G.jsx)(q.Suspense,{fallback:null,children:(0,G.jsx)(Ee,{...e})}):null}function Je(e={}){return e.scope===void 0?J:ae(J,e.scope)}var W=y(z(),1),t=y(x(),1);function ot({inside:e=!1,widthOf:n}={}){let{store:o,view:l,emphasis:p,setEmphasis:m}=P(),f=fe(),{selection:d,set:u}=_(),{show:i}=de(),g=B(),c=(0,W.useMemo)(()=>{let s=new Map;for(let a of o.graph.allEdges()){let w=s.get(a.kind)??{count:0,ends:new Set};w.count+=1;for(let E of[a.from,a.to]){let T=o.graph.getNode(E);T&&w.ends.add(`kind:${T.kind}`)}s.set(a.kind,w)}return[...s.entries()].sort(([a],[w])=>a.localeCompare(w)).map(([a,w])=>({kind:a,count:w.count,ends:[...w.ends]}))},[o,g]),C=Math.max(0,...c.map(s=>s.count));if((0,W.useEffect)(()=>()=>m(null),[m]),!l.overview&&!e||c.length===0)return null;let b=new Set;for(let s of d){if(s.startsWith("kind:")){b.add(s);continue}let a=o.graph.getNode(s);a&&b.add(`kind:${a.kind}`)}return(0,t.jsxs)("section",{"aria-label":"What the lines mean",role:e?"group":void 0,"data-testid":"relation-key",style:e?{display:"grid",gap:1}:{position:"absolute",left:16,top:14,zIndex:H("rail"),display:"grid",gap:1,padding:"8px 10px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",maxWidth:Te,animation:"graview-settle 380ms 280ms ease backwards"},children:[e?null:(0,t.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",paddingBottom:2},children:c.length===1?"1 relation":`${c.length} relations`}),n?(0,t.jsx)(Ie,{aloft:l.overview===!0}):null,c.map(({kind:s,count:a,ends:w})=>{let{connector:E,style:T}=X(f,s),S=Ae(o.schema,s),v=p!==null?p===s:b.size===0||w.some(F=>b.has(F));return(0,t.jsxs)("button",{type:"button",title:o.schema.edge(s)?.description===void 0?`${a} of these`:S.words,onMouseEnter:()=>m(s),onMouseLeave:()=>m(null),onFocus:()=>m(s),onBlur:()=>m(null),onClick:()=>{u(w),i(null)},style:{all:"unset",outline:"revert-layer",cursor:"pointer",display:"grid",gridTemplateColumns:"30px 1fr auto",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px",borderRadius:6,opacity:v?1:.4},children:[(0,t.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",style:{display:"block",opacity:E.visible?1:.35},children:l.overview&&n?(0,t.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",className:"graview-key-ribbon",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:n(a,C)}):(0,t.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",stroke:U(T),strokeWidth:j(T,!0),strokeDasharray:Y[T.pattern],strokeLinecap:"round"})}),(0,t.jsxs)("span",{style:{display:"grid",minWidth:0},"data-graview-relation-words":s,children:[(0,t.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink)"},children:S.words}),(0,t.jsx)("span",{style:{fontSize:"0.6875rem",color:"var(--graview-ink-faint)"},children:S.ends})]}),E.visible?null:(0,t.jsx)("span",{"data-graview-quiet":s,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontStyle:"italic"},children:"not drawn"}),(0,t.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},children:a})]},s)})]})}var Te="min(280px, calc(100% - 28px))";function Ae(e,n,o){let l=e.edge(n)?.from??[],p=new Map;for(let d of o!==void 0&&l.includes(o)?[o]:l.length>0?l:[""]){let u=me(e,d,n,"out");p.set(u,[...p.get(u)??[],d])}let m=d=>d==="*"?"anything":oe(e,d),f=[...p].map(([d,u])=>{let i=u.flatMap(c=>e.tryDefinition(c)?.edges[n]?.to??[]),g=u[0]&&i.length>0?`${u.map(m).join(", ")} \u2192 ${(i.includes("*")?["*"]:[...new Set(i)]).map(m).join(", ")}`:"";return[d.charAt(0).toUpperCase()+d.slice(1),g]});return{words:f.map(([d])=>d).join(" \xB7 "),ends:f.flatMap(([,d])=>d?[d]:[]).join(" \xB7 ")}}function rt({edgeKind:e,kit:n,width:o=30}){let l=le(),p=(0,W.useMemo)(()=>re(n??l?.brand?.kit),[n,l?.brand?.kit]),{connector:m,style:f}=X(p,e);return(0,t.jsx)("svg",{width:o,height:"8","aria-hidden":"true","data-testid":"relation-mark","data-graview-relation":e,style:{display:"inline-block",verticalAlign:"middle",opacity:m.visible?1:.35},children:(0,t.jsx)("path",{d:`M 1 4 L ${o-1} 4`,fill:"none",stroke:U(f),strokeWidth:j(f,!0),strokeDasharray:Y[f.pattern],strokeLinecap:"round"})})}function Ie({aloft:e}){let n={display:"grid",gridTemplateColumns:"30px 1fr",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px"},o={fontSize:"0.75rem",color:"var(--graview-ink-muted)"};return(0,t.jsxs)("div",{role:"group","aria-label":"The lines","data-testid":"line-manners",style:{display:"grid",gap:1,paddingBottom:6,marginBottom:4,borderBottom:"1px solid var(--graview-edge)"},children:[e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:n,"data-graview-manner":"ribbon",children:[(0,t.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:6})}),(0,t.jsx)("span",{style:o,children:"A relation between two districts, as wide as the links along it \u2014 point at one for its words"})]}),(0,t.jsxs)("div",{style:n,"data-graview-manner":"record",children:[(0,t.jsxs)("svg",{width:"30",height:"10","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M 1 5 L 25 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeLinecap:"round"}),(0,t.jsx)("circle",{cx:26,cy:5,r:3,fill:"var(--graview-accent)"})]}),(0,t.jsx)("span",{style:o,children:"A chosen record's link to another record, labeled with the relation"})]}),(0,t.jsxs)("div",{style:n,"data-graview-manner":"district",children:[(0,t.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeDasharray:"5 4"})}),(0,t.jsx)("span",{style:o,children:"A chosen record's links into a district, with how many"})]})]}):null,(0,t.jsxs)("div",{style:n,"data-graview-manner":"unsure",children:[(0,t.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeOpacity:pe,strokeWidth:1.8,strokeDasharray:ce,strokeLinecap:"round"})}),(0,t.jsx)("span",{style:o,children:"Unsure: a link its maker was less than sure of, until a person keeps it \u2014 point at its words for what it was based on"})]})]})}var ye=y(z(),1),Z=y(x(),1),Le=L(I(()=>import("./chunk.ZYKAS4BT.js"))),De=Le.part(e=>(0,Z.jsx)(e.SuggestedTray,{}),{quiet:!0});function lt(){let{store:e}=P(),n=B();return(0,ye.useMemo)(()=>e.log.all().some(l=>l.suggests!==void 0&&!l.withheld),[e,n])?(0,Z.jsx)(De,{}):null}export{ze as a,Ne as b,Ye as c,ot as d,Te as e,rt as f,Je as g,lt as h};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import{d as C,e as re}from"./chunk.SE5SKFQH.js";import{e as ee}from"./chunk.W3S6UXNA.js";import{b as S}from"./chunk.WAFDCOOG.js";import{g as X}from"./chunk.L4DECHXR.js";import{G as se,R as Z,a as K,ta as V,xa as J,ya as Q}from"./chunk.GFF2FB2J.js";import{J as Y,M,W as U}from"./chunk.6V2RG5JG.js";import{b as D}from"./chunk.AJZBJBMO.js";var h=D(se(),1);var n=D(Z(),1),Re=9,le=40,ge=2;function de(e){let r=new Map;for(let i of e.allNodes())r.set(i.kind,(r.get(i.kind)??0)+1);return r}var ue=(e,r)=>(e.far??[]).reduce((i,a)=>i+(r.get(a)??0),0);function ce(e,r,i){if(i)return i.flatMap(s=>e.filters.filter(u=>u.key===s));let a=de(r),o=new Set(e.filters.filter(s=>s.about==="edge"&&ue(s,a)>le).map(s=>s.key));return e.filters.filter(s=>s.about==="edge"?!o.has(s.key):s.about==="via"?o.has(s.key.split(".")[0]):!0)}function pe(e,r){let i=e.filter(a=>a.about==="field"&&a.type==="choice"&&(a.options?.length??0)>0);return r?i:i.slice(0,ge)}var fe=520;function ye(e,r,i,a){let o=i.filters.find(s=>s.key===a.key);if(!o)return`${a.key}: ${a.value}`;if(o.about==="is")return a.value.charAt(0).toUpperCase()+a.value.slice(1);if(o.about==="via")return`${o.label}: ${S(e.tryDefinition(o.far?.[0]??""),o.key.split(".")[1],a.value)}`;if(o.about==="edge"){if(a.value==="*")return`${o.label}: anything`;if(a.value==="none")return`${o.label}: nothing`;let s=r.getNode(a.value);return`${o.label}: ${s?U(e.tryDefinition(s.kind),s):a.value}`}if(o.type==="date"){let[s,u]=a.value.split(":");return`${o.label} ${s} ${u?Y(u):""}`.trim()}if(o.type==="boolean")return`${o.label}: ${a.value==="true"?"yes":"no"}`;if(o.type==="number"){let s=a.value.lastIndexOf(":"),u=a.value.slice(0,Math.max(0,s));if(u==="at-most"||u==="at-least")return`${o.label}: ${u==="at-most"?"at most":"at least"} ${S(e.tryDefinition(i.kind),o.key,Number(a.value.slice(s+1)))}`}return o.type==="text"?`${o.label}: ${a.value}`:`${o.label}: ${S(e.tryDefinition(i.kind),o.key,a.value)}`}var P=e=>/^[A-Z][a-z]/.test(e)?e.charAt(0).toLowerCase()+e.slice(1):e;function me(e){return e?.type==="date"?{asc:"Earliest first",desc:"Latest first"}:e?.type==="number"?{asc:"Lowest first",desc:"Highest first"}:e?.type==="boolean"?{asc:"No first",desc:"Yes first"}:e?.type==="choice"?{asc:"In their order",desc:"In reverse order"}:{asc:"A to Z",desc:"Z to A"}}var x=Q(K(()=>import("./chunk.V7BDAGDE.js"))),N=x.part((e,r)=>(0,n.jsx)(e.ArrangeLists,{...r}),{what:"This list",quiet:!0}),he=x.part((e,r)=>(0,n.jsx)(e.ArrangeChips,{...r}),{what:"This list",quiet:!0}),Te=()=>x.load(),q=new Map;function Ie(e){let{schema:r,graph:i,kind:a,arrangement:o,onChange:s}=e,u=e.offers??ee(r,a),g=e.testId??"arrange",y=C(e.allow,"sort")&&u.sorts.length>1,m=C(e.allow,"group")&&u.groups.length>0,F=C(e.allow,"filter")?ce(u,i,e.filters):[],L=e.chips?pe(F,e.filters):[],H=F.filter(t=>!L.includes(t)),G=H.length>0,_=e.query!==!1&&e.allow!==!1,w=we(e.noun,e.kept),v=e.past&&e.past.count>0?e.past:null;if(!y&&!m&&!G&&!_&&!w&&!v)return null;let z=t=>JSON.stringify(re(t)),O=`${g}|${a}`,p={current:q.get(O)??{words:new Set,latest:null,at:0}};q.set(O,p.current),p.current.latest&&Date.now()-p.current.at>1500&&!p.current.words.has(z(o))&&(p.current={words:new Set,latest:null,at:0},q.set(O,p.current));let d=p.current.latest??o,b=t=>{let l={...p.current.latest??o,...t};for(let c of Object.keys(l))l[c]===void 0&&delete l[c];p.current.latest=l,p.current.at=Date.now(),p.current.words.add(z(l)),s(l)},f=d.filter??[],R=t=>{let l=f.filter((c,I)=>I!==t);b({filter:l.length>0?l:void 0})},A=t=>f.some(l=>l.key===t.key&&l.value===t.value),te=t=>A(t)?R(f.findIndex(l=>l.key===t.key&&l.value===t.value)):b({filter:[...f,t]}),T=d.sort?u.sorts.find(t=>t.key===d.sort.by):void 0,j=d.group?u.groups.find(t=>t.key===d.group.by):void 0,ne=me(T),k={schema:r,graph:i,offers:{...u,filters:H},arrangement:d,set:b,toggle:te,has:A,testId:g},ae=(t,l)=>A({key:t,value:l})?R(f.findIndex(c=>c.key===t&&c.value===l)):b({filter:[...f.filter(c=>c.key!==t),{key:t,value:l}]}),oe=d.sort?(0,n.jsxs)(n.Fragment,{children:["Sorted by ",P(T?.label??d.sort.by),(0,n.jsx)("span",{"aria-hidden":"true",children:d.sort.direction==="desc"?" \u2193":" \u2191"})]}):"Sort",ie=d.group?.bucket&&j?.buckets?`, a ${d.group.bucket} each`:"",B=d.group?`Grouped by ${P(j?.label??d.group.by)}${ie}`:"Group";return(0,n.jsxs)("div",{"data-testid":`${g}-bar`,role:"group","aria-label":"Arrange",className:"graview-arrange",style:e.style,onPointerEnter:x.prefetch,onFocus:x.prefetch,children:[(0,n.jsx)("style",{children:xe}),(0,n.jsxs)("div",{className:"graview-arrange-line",children:[w?(0,n.jsxs)("span",{className:"graview-arrange-count","data-testid":`${g}-count`,children:[w.kept?(0,n.jsx)("span",{"data-testid":`${g}-kept`,children:w.kept}):null,w.words]}):null,v?(0,n.jsxs)("button",{type:"button",className:"graview-arrange-open","data-testid":`${g}-past`,title:`${M(v.count)} more behind the horizon \u2014 press to widen the view to the past`,onClick:t=>{let l=t.currentTarget.closest("[data-graview-view]"),c=t.currentTarget;v.widen();let I=0,W=()=>{if(document.activeElement!==c&&document.activeElement!==document.body&&c.isConnected)return;let $=l?.querySelector('[role="group"][aria-label="Arrange"] :is(button, input)');if($&&$!==c&&$.isConnected)return $.focus({preventScroll:!0});++I<120&&requestAnimationFrame(W)};requestAnimationFrame(W)},children:["+",M(v.count)," past"]}):null,f.map((t,l)=>{let c=ye(r,i,u,t);return(0,n.jsxs)("span",{className:"graview-arrange-token","data-testid":`${g}-condition`,children:[c,(0,n.jsx)("button",{type:"button","aria-label":`Remove: ${c}`,title:"Remove",onClick:()=>R(l),children:"\xD7"})]},`${t.key}:${t.value}`)}),y?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-one",children:(0,n.jsx)(E,{testId:`${g}-sort`,value:d.sort?.by??"",set:d.sort!==void 0,label:"Sort",name:d.sort?`Sorted by ${P(T?.label??d.sort.by)}, ${ne[d.sort.direction].toLowerCase()}`:"Sort",list:t=>(0,n.jsx)(N,{which:"sort",done:t,...k}),children:oe})}):null,m?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-one",children:(0,n.jsx)(E,{testId:`${g}-group`,value:d.group?.by??"",set:d.group!==void 0,label:"Group",name:B,list:t=>(0,n.jsx)(N,{which:"group",done:t,...k}),children:B})}):null,G?(0,n.jsx)("span",{className:"graview-arrange-part",children:(0,n.jsx)(E,{testId:`${g}-add`,value:"",set:!1,label:"Filter",name:f.length>0?`Filter \u2014 ${f.length} on`:"Filter",list:t=>(0,n.jsx)(N,{which:"filter",done:t,...k}),children:"Filter"})}):null,y||m?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-all",children:(0,n.jsx)(E,{testId:`${g}-all`,value:"",set:!1,label:"Arrange",name:"Arrange: sort and group",list:t=>(0,n.jsx)(N,{which:"all",done:t,parts:{sort:y,group:m,filter:!1},...k}),children:"Arrange"})}):null,_?(0,n.jsxs)("label",{className:"graview-arrange-words-at",children:[(0,n.jsx)("span",{style:X,children:"Find"}),(0,n.jsx)("input",{type:"search",className:"graview-arrange-words","data-testid":`${g}-query`,value:d.query??"",placeholder:"Find\u2026",onChange:t=>b({query:t.target.value.length>0?t.target.value:void 0})})]}):null,L.length>0&&e.chips?(0,n.jsx)(h.Suspense,{fallback:null,children:(0,n.jsx)(he,{offers:L,chips:e.chips,schema:r,graph:i,kind:a,arrangement:d,has:A,choose:ae,testId:g})}):null]})]})}function we(e,r){if(!r)return null;let i=r.shown!==r.of;if(!e)return i?{words:"",kept:`${r.shown} of ${r.of}`}:null;let a=r.of===1?e.one:e.many;return i?{words:` ${a}`,kept:`${r.shown} of ${r.of}`}:{words:`${r.of} ${a}`}}function E({testId:e,value:r,set:i,label:a,name:o,list:s,children:u}){let g=J("arrange",{align:"start"}),y=(0,h.useRef)(null);return(0,h.useEffect)(()=>{g.open&&y.current?.querySelector('[aria-pressed="true"]')?.focus({preventScroll:!0})},[g.open]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",className:"graview-arrange-open","data-testid":e,"data-set":i?"":void 0,value:r,"aria-label":o,...g.trigger,onClick:g.toggle,children:[u,(0,n.jsx)(be,{})]}),g.open?(0,n.jsx)("div",{...g.pane,ref:m=>{g.pane.ref(m),y.current=m},role:"group","aria-label":a,"data-testid":"arrange-list","data-arrange":e,className:"graview-arrange-list",style:V,onKeyDown:ve,children:s(()=>g.setOpen(!1))}):null]})}function ve(e){if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key))return;let r=[...e.currentTarget.querySelectorAll("button:not([disabled]), input")];if(r.length===0)return;let i=r.indexOf(document.activeElement);if(document.activeElement instanceof HTMLInputElement&&document.activeElement.type==="date"&&(e.key==="ArrowUp"||e.key==="ArrowDown"))return;e.preventDefault();let a=e.key==="Home"?0:e.key==="End"?r.length-1:e.key==="ArrowDown"?(i+1)%r.length:(i-1+r.length)%r.length;r[a].focus()}function be(){return(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10","aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto",opacity:.7},children:(0,n.jsx)("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}var xe=`
|
|
2
|
+
.graview-arrange{container-type:inline-size;box-sizing:border-box;width:100%;min-width:0;max-width:100%}
|
|
3
|
+
.graview-arrange-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0;font-size:.875rem;line-height:1.35;color:var(--graview-ink-muted)}
|
|
4
|
+
.graview-arrange-count{margin-right:2px;color:var(--graview-ink-muted)}
|
|
5
|
+
.graview-arrange-part{display:inline-flex;align-items:center;min-width:0}
|
|
6
|
+
.graview-arrange-count~.graview-arrange-part::before{content:"\xB7" / "";margin-right:6px;color:var(--graview-ink-muted)}
|
|
7
|
+
.graview-arrange-open{display:inline-flex;align-items:center;gap:5px;min-height:28px;min-width:0;max-width:100%;margin:0;padding:0 6px;border:1px solid transparent;border-radius:7px;background:none;box-shadow:none;font:inherit;letter-spacing:normal;text-transform:none;text-align:left;color:var(--graview-ink-muted);cursor:pointer}
|
|
8
|
+
.graview-arrange-open[data-set]{color:var(--graview-ink)}
|
|
9
|
+
.graview-arrange-open:hover,.graview-arrange-open[aria-expanded=true]{border-color:var(--graview-edge);color:var(--graview-ink)}
|
|
10
|
+
.graview-arrange :focus-visible,.graview-arrange-list :focus-visible{outline:2px solid var(--graview-accent);outline-offset:1px}
|
|
11
|
+
.graview-arrange-all{display:none}
|
|
12
|
+
@container (max-width: ${fe-1}px){.graview-arrange-one{display:none}.graview-arrange-all{display:inline-flex}}
|
|
13
|
+
.graview-arrange-token{display:inline-flex;align-items:center;gap:0;min-width:0;min-height:26px;box-sizing:border-box;padding:0 2px 0 10px;border:1px solid var(--graview-edge);border-radius:999px;background:var(--graview-panel);color:var(--graview-ink);overflow-wrap:anywhere}
|
|
14
|
+
.graview-arrange-token button{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:0;padding:0;border:0;border-radius:6px;background:none;font:inherit;line-height:1;color:var(--graview-ink-muted);cursor:pointer}
|
|
15
|
+
.graview-arrange-token button:hover{color:var(--graview-ink);background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
|
|
16
|
+
.graview-arrange-words-at{display:inline-flex;min-width:0;max-width:100%}
|
|
17
|
+
.graview-arrange-words{box-sizing:border-box;width:min(100%,12rem);min-height:28px;margin:0;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;font:inherit;color:var(--graview-ink)}
|
|
18
|
+
.graview-arrange-words:hover,.graview-arrange-words:focus{border-color:var(--graview-edge)}
|
|
19
|
+
`;function De(e){let r=[];return e.query&&r.push(`\u201C${e.query}\u201D`),e.filter?.length&&r.push(`${e.filter.length} condition${e.filter.length===1?"":"s"}`),e.group&&r.push(`by ${e.group.by}`),e.sort&&r.push(`sorted by ${e.sort.by}`),r.length>0?r.join(" \xB7 "):null}export{Re as a,le as b,ge as c,de as d,ue as e,ce as f,pe as g,fe as h,ye as i,P as j,me as k,Te as l,Ie as m,De as n};
|