graview 0.1.22 → 0.1.24
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.2STFOAXA.js +1 -0
- package/dist/preview/chunk.2VX6H2LL.js +1 -0
- package/dist/preview/chunk.33C6VZAD.js +1 -0
- package/dist/preview/{chunk.L5G5DTFX.js → chunk.3O2QU7LU.js} +1 -1
- package/dist/preview/chunk.3TNQPFIK.js +1 -0
- package/dist/preview/{chunk.SQD7ZPEJ.js → chunk.42U4UBDE.js} +1 -1
- package/dist/preview/{chunk.Q7WQ5UIE.js → chunk.47GRZWQN.js} +1 -1
- package/dist/preview/{chunk.HCK6IHGP.js → chunk.53RZI5PM.js} +1 -1
- package/dist/preview/{chunk.DO4P2UK4.js → chunk.54NSG7BX.js} +1 -1
- package/dist/preview/{chunk.6C7SJJQO.js → chunk.6MCK7K3M.js} +1 -1
- package/dist/preview/{chunk.DAKED3WK.js → chunk.6O67NOZR.js} +1 -1
- package/dist/preview/{chunk.ENMNLR73.js → chunk.6XBLDV4A.js} +1 -1
- package/dist/preview/chunk.7EN53F4Q.js +9 -0
- package/dist/preview/chunk.7Q7S7YCA.js +1 -0
- package/dist/preview/{chunk.BQV62QEL.js → chunk.7U7Q3HIS.js} +1 -1
- package/dist/preview/{chunk.6CLHFNDM.js → chunk.AKOC43TV.js} +14 -14
- package/dist/preview/{chunk.7YCQZJGB.js → chunk.AXACXB4D.js} +1 -1
- package/dist/preview/{chunk.ZKUXPS44.js → chunk.BLAODPYJ.js} +1 -1
- package/dist/preview/chunk.BNSY25SG.js +1 -0
- package/dist/preview/{chunk.XYZ7KAMZ.js → chunk.C7KLA2MW.js} +1 -1
- package/dist/preview/{chunk.WGNF4E67.js → chunk.D3CYTXNZ.js} +1 -1
- package/dist/preview/chunk.DQL3WKR3.js +1 -0
- package/dist/preview/chunk.EUCXNNCZ.js +107 -0
- package/dist/preview/{chunk.VVZ2Z7OS.js → chunk.FKQTQ3FV.js} +1 -1
- package/dist/preview/{chunk.DJ26NOOW.js → chunk.FRNIWOKD.js} +1 -1
- package/dist/preview/chunk.GDIRDJF3.js +1 -0
- package/dist/preview/chunk.H3HRTEW7.js +1 -0
- package/dist/preview/{chunk.SCLIBKLS.js → chunk.HAQ4KHRY.js} +1 -1
- package/dist/preview/{chunk.JE4VH767.js → chunk.HDEQXJWX.js} +1 -1
- package/dist/preview/chunk.HH6WIUK3.js +8 -0
- package/dist/preview/{chunk.ZFUQA3KT.js → chunk.ISAMJ7AK.js} +1 -1
- package/dist/preview/{chunk.FLDFRFDH.js → chunk.KKTHQJ6F.js} +2 -2
- package/dist/preview/chunk.KWSXL3A2.js +1 -0
- package/dist/preview/{chunk.LGUV2J6Q.js → chunk.LW7KV5SL.js} +1 -1
- package/dist/preview/{chunk.R5K7NK4U.js → chunk.MYCTNK6D.js} +1 -1
- package/dist/preview/chunk.NRWJ6PLU.js +1 -0
- package/dist/preview/{chunk.M4XNUM2A.js → chunk.OXODTBOP.js} +1 -1
- package/dist/preview/{chunk.ACZGK7LQ.js → chunk.PRXKRG6O.js} +1 -1
- package/dist/preview/{chunk.EQOU4POV.js → chunk.RGXNZ7PN.js} +1 -1
- package/dist/preview/chunk.RT3XFR6E.js +20 -0
- package/dist/preview/{chunk.ELEHYYCN.js → chunk.S4FO7Y2Q.js} +1 -1
- package/dist/preview/{chunk.3MLQ3Q5X.js → chunk.TDW6QEG4.js} +1 -1
- package/dist/preview/{chunk.VNC6H6IM.js → chunk.TWFYXD3P.js} +1 -1
- package/dist/preview/{chunk.AZG6V3PF.js → chunk.TWGB347L.js} +1 -1
- package/dist/preview/chunk.UEBBASQW.js +1 -0
- package/dist/preview/chunk.UIZWVBJ7.js +1 -0
- package/dist/preview/{chunk.FLJP3BGP.js → chunk.UM5IPM22.js} +1 -1
- package/dist/preview/{chunk.NOXC454O.js → chunk.VLNI5U6H.js} +1 -1
- package/dist/preview/{chunk.CJQL7AHT.js → chunk.VTBAKTFP.js} +2 -2
- package/dist/preview/{chunk.UNRYIETM.js → chunk.WEGBBWWK.js} +1 -1
- package/dist/preview/{chunk.LZQZP2PD.js → chunk.WOTNMTIY.js} +1 -1
- package/dist/preview/{chunk.THBP5EES.js → chunk.XCOPECOJ.js} +1 -1
- package/dist/preview/chunk.XDPRWUCJ.js +1 -0
- package/dist/preview/{chunk.3HEJZPJM.js → chunk.XDVKD6VX.js} +1 -1
- package/dist/preview/{chunk.YAONM74M.js → chunk.XJNXSQT4.js} +1 -1
- package/dist/preview/{chunk.ZQZ557VR.js → chunk.XUXCDUKC.js} +1 -1
- package/dist/preview/chunk.Y4R77MKX.js +1 -0
- package/dist/preview/chunk.ZQ4HFIIS.js +8 -0
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.2F7OKRDK.js +0 -9
- package/dist/preview/chunk.4CDEIDKB.js +0 -1
- package/dist/preview/chunk.4JSMCNF7.js +0 -1
- package/dist/preview/chunk.4UQLZ7VW.js +0 -1
- package/dist/preview/chunk.5MAMCKVU.js +0 -1
- package/dist/preview/chunk.75WDSWXL.js +0 -20
- package/dist/preview/chunk.7YC34AIK.js +0 -1
- package/dist/preview/chunk.AZYJTNSM.js +0 -107
- package/dist/preview/chunk.DN4D4HGX.js +0 -1
- package/dist/preview/chunk.K7UJG5II.js +0 -1
- package/dist/preview/chunk.KFLY4MAT.js +0 -1
- package/dist/preview/chunk.KWYU5NPM.js +0 -1
- package/dist/preview/chunk.LSLFKW4M.js +0 -1
- package/dist/preview/chunk.OR6ZWN76.js +0 -1
- package/dist/preview/chunk.PC6FAJF5.js +0 -1
- package/dist/preview/chunk.VRXWNUDR.js +0 -1
- package/dist/preview/chunk.WTF3CP76.js +0 -1
- package/dist/preview/chunk.XEJS2VS5.js +0 -8
- package/dist/preview/chunk.Y235YZSZ.js +0 -8
- package/dist/preview/chunk.YU64JSAL.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Ne}from"./chunk.AHDOKM4O.js";import{a as Me,ca as Ce,da as Le,pa as He,qa as Ae,ua as
|
|
1
|
+
import{a as Ne}from"./chunk.AHDOKM4O.js";import{a as Me,ca as Ce,da as Le,pa as He,qa as Ae,ua as L,xa as H,ya as Re}from"./chunk.2VX6H2LL.js";import{I as se,Kb as Se,Lb as Pe,Mb as Be,Nb as Te,Oa as U,P as de,Rb as Ee,W as ce,db as ge,fb as ue,gb as ve,hb as Z,ib as we,jb as fe,lb as me,mb as he,nb as be,pa as pe,sb as ye,ub as xe,xb as ke,yb as $e}from"./chunk.ZQ4HFIIS.js";import{a as G,b as E}from"./chunk.MRK6QJV5.js";import{b as $}from"./chunk.AJZBJBMO.js";var w=$(G(),1);var Oe=$(G(),1);var K=$(E(),1);function ze({brand:e,size:a=22}){let t=e?.logo,r=t!==void 0&&me(t)&&he(t)===null?t:void 0,l=Ne(r);if(!t||!be(t))return null;let n=e?.logoAlt??e?.name??"",o=n!==""&&n!==e?.name,c={display:"inline-flex",flex:"0 0 auto",height:a,color:"var(--graview-accent)"};return r?(0,K.jsx)("span",{className:"graview-logo","data-testid":"app-mark",style:c,...o?{role:"img","aria-label":n}:{"aria-hidden":!0},dangerouslySetInnerHTML:l}):(0,K.jsx)("img",{className:"graview-logo","data-testid":"app-mark",src:t,alt:o?n:"",style:{...c,width:"auto"}})}function ja(e){(0,Oe.useEffect)(()=>{if(!e||typeof document>"u")return;let a=[...document.querySelectorAll('link[rel~="icon"]')],t=a.map(l=>l.getAttribute("href")),r;a.length===0&&(r=document.createElement("link"),r.rel="icon",r.setAttribute("data-graview-favicon",""),document.head.appendChild(r),a.push(r));for(let l of a)l.href=e;return()=>{r&&r.remove(),a.forEach((l,n)=>{l!==r&&t[n]!==null&&t[n]!==void 0&&l.setAttribute("href",t[n])})}},[e])}var B=Re(Me(()=>import("./chunk.7EN53F4Q.js")));var i=$(E(),1),da=B.part((e,a)=>(0,i.jsx)(e.Here,{...a}),{quiet:!0}),ca="home",pa="/",ga="scene:whole";function er(e){let{store:a,principal:t,views:r}=e,l=a.kindsKeptFrom(t),n=a.schema.kinds.filter(s=>!a.modules.disabledKinds.has(s)&&!l.has(s)),o=r?.arrangement?.(),c=r?.places()??[],p=Be(o,a.schema,c),d=Pe(a.schema,o,[...a.modules.administered.values()].flatMap(s=>s.kinds??[])),u=(s,m)=>(!a.graph.size.nodes||a.graph.count(s)>0)&&(p?m?p.places.has(`${s}|${m}`):p.kinds.has(s):!d.has(s)),g=[{key:ca,label:"Home",path:pa,group:"home",primary:!0}];for(let s of Ee(n,o?.order))g.push({key:`kind:${s}`,label:de(a.schema,s),path:U(a.schema,s),group:"lists",kind:s,primary:u(s)});for(let s of c){if(!n.includes(s.kind)||s.as===Te)continue;let m=c.some(P=>P.as===s.as&&P.kind!==s.kind),b=`/places/${encodeURIComponent(s.as)}${m?`?of=${U(a.schema,s.kind).slice(1)}`:""}`;g.some(P=>P.path===b)||g.push({key:`place:${s.kind}:${s.as}`,label:s.title,path:b,group:"pictures",kind:s.kind,primary:u(s.kind,s.as)})}return n.some(s=>Object.keys(a.schema.tryDefinition(s)?.edges??{}).length>0)&&g.push({key:"connections",label:"Connections",path:"/map",group:"pictures",primary:!1}),g}function ar(e,a){let[t="/",r=""]=a.split("?"),l=e.find(o=>o.path===(r?`${t}?${r}`:t))??e.find(o=>o.path===t);if(l)return l.key;let n=`/${t.split("/").filter(Boolean)[0]??""}`;return e.find(o=>o.group==="lists"&&o.path===n)?.key??null}var ua=(0,w.createContext)(null),rr=()=>(0,w.useContext)(ua),N=30,va=48,_=640,Ie=4,We=2;function wa(e){let{widths:a,current:t,room:r,more:l,gap:n=Ie,primary:o,most:c=Se}=e;if(a.length===0||!(r>0)||!(l>0)||a.some(g=>!(g>0)))return null;let p=(g,f)=>g.reduce((s,m)=>s+a[m],0)+n*Math.max(0,g.length-1)+(f?n+l:0),d=(g,f)=>t<0||!g.includes(t)||g.slice(0,f).includes(t)?g.slice(0,f):[...g.filter(s=>s!==t).slice(0,f-1),t].sort((s,m)=>s-m),u=d(a.map((g,f)=>f).filter(g=>o?.[g]!==!1||g===t),c);if(p(u,u.length<a.length)<=r)return u.length>=We?u:null;for(let g=u.length-1;g>=We;g--){let f=d(u,g);if(p(f,!0)<=r)return f}return null}var fa=`
|
|
2
2
|
.graview-bar{display:block;margin:0;padding:0;container:graview-bar/inline-size;flex:0 0 auto;position:relative;background:var(--graview-bar);border-bottom:1px solid var(--graview-edge);color:var(--graview-ink);font-family:var(--graview-font-body,system-ui)}
|
|
3
3
|
.graview-bar-row{display:flex;flex-wrap:nowrap;align-items:center;gap:16px;height:${va-1}px;margin:0;padding:0 16px}
|
|
4
4
|
.graview-bar-home,.graview-bar-face,.graview-bar-place,.graview-bar-item,.graview-bar-at{display:inline-flex;align-items:center;box-sizing:border-box;min-width:0;margin:0;border:0;background:none;box-shadow:none;font:inherit;letter-spacing:normal;text-transform:none;text-decoration:none;color:var(--graview-ink);cursor:pointer;text-align:left}
|
|
@@ -51,15 +51,15 @@ import{a as Ne}from"./chunk.AHDOKM4O.js";import{a as Me,ca as Ce,da as Le,pa as
|
|
|
51
51
|
@media (pointer:coarse){.graview-bar-find-keys{display:none}}
|
|
52
52
|
@container graview-bar (max-width: ${_-1}px){
|
|
53
53
|
.graview-bar-row{gap:10px;padding:0 12px}
|
|
54
|
-
.graview-bar-app{max-width:none;flex:1 1 auto}
|
|
54
|
+
.graview-bar-app,.graview-bar-home{max-width:none;flex:1 1 auto;min-width:0}
|
|
55
55
|
.graview-bar-mid,.graview-bar-find{display:none}
|
|
56
56
|
.graview-bar-find-open{display:inline-flex}
|
|
57
57
|
.graview-bar-own{--graview-activity-mark:inline}
|
|
58
58
|
.graview-bar-own .graview-activity-word{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
|
|
59
59
|
.graview-bar[data-finding] :is(.graview-bar-app,.graview-bar-faces,.graview-bar-find-open){display:none}
|
|
60
60
|
.graview-bar[data-finding] .graview-bar-find{display:flex;flex:1 1 auto;min-width:0}
|
|
61
|
-
}`,O={display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,minWidth:N,height:N,padding:0,borderRadius:8,border:"1px solid transparent",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"0.875rem",cursor:"pointer",flex:"0 0 auto"};function tr({brand:e,name:a,heading:t=1,home:r,faces:l,places:n,current:o,reach:
|
|
62
|
-
`):"";(0,f.useLayoutEffect)(E,[E,a,e,la,h?.current,W,x,m,s]);let sa=m==="icons"||!Qe||x?"icons":"words";return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("header",{ref:b,className:"graview-bar","data-testid":"app-bar","data-graview-app-bar":"",...Je&&x?{"data-finding":""}:{},children:[(0,i.jsx)("style",{children:fa}),(0,i.jsxs)("div",{className:"graview-bar-row",children:[(0,i.jsx)("div",{className:"graview-bar-app",children:(0,i.jsx)(ta,{className:"graview-bar-name",children:(0,i.jsxs)(na,{...r.href!==void 0?{href:r.href,onClick:ia(r.go)}:{type:"button",onClick:r.go},"data-testid":"app-home",...r.current?{"aria-current":"page"}:{},title:g?`${a} \u2014 ${g}`:`${a} \u2014 home`,className:"graview-bar-home",children:[(0,i.jsx)(ze,{brand:e,size:20}),(0,i.jsx)("span",{className:"graview-bar-app-name","data-testid":"app-name",children:a})]})})}),l?(0,i.jsx)(ma,{faces:l,form:m,drawn:sa}):null,(0,i.jsx)("div",{className:"graview-bar-mid",...le?{"data-places":"standing"}:!x&&F?{"data-place":""}:{},children:x?null:F}),!x&&h&&h.places.length>1?(0,i.jsxs)("span",{className:"graview-bar-ruler","aria-hidden":"true","data-graview-bar-ruler":"",children:[h.places.map(v=>(0,i.jsx)("span",{className:"graview-bar-at",children:v.label},v.key)),(0,i.jsxs)("span",{className:"graview-bar-at",children:[X,(0,i.jsx)(Ke,{})]})]}):null,(0,i.jsxs)("div",{className:"graview-bar-tools",children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("button",{type:"button",className:"graview-bar-find-open",ref:ie,"data-testid":"app-find-open","aria-label":"Find",title:"Find",onClick:ra,style:{...O,display:void 0},children:(0,i.jsx)(xa,{})}),(0,i.jsxs)("div",{className:"graview-bar-find","data-testid":"app-find",onBlur:v=>{let k=v.relatedTarget;k instanceof Node&&v.currentTarget.contains(k)||v.currentTarget.querySelector("input")?.value||oe()},onKeyDownCapture:v=>{v.key==="Escape"&&x&&(I.current=!0)},onKeyDown:v=>{v.key!=="Escape"||!x||(!v.defaultPrevented||!v.currentTarget.querySelector("input")?.value?oe():I.current=!1)},children:[(0,i.jsx)("div",{ref:Ue,className:"graview-bar-find-slot",children:u}),(0,i.jsx)("span",{className:"graview-bar-find-keys","data-testid":"app-find-keys","aria-hidden":"true",children:ba()})]})]}):null,(0,i.jsx)("div",{ref:Ze,className:"graview-bar-own","data-graview-bar-own":""}),T?(0,i.jsx)(f.Suspense,{fallback:null,children:(0,i.jsx)(da,{scene:!W,compact:x})}):null,p]})]})]}),x&&F?(0,i.jsx)("div",{className:"graview-bar-line","data-graview-place-line":"","data-testid":"app-place-line",children:F}):null]})}function ma({faces:e,form:a,drawn:t}){let r=l=>{let n=e[l];return(0,i.jsxs)("button",{type:"button",className:"graview-bar-face","data-testid":`app-face-${l}`,"aria-pressed":n.current,title:n.label,onClick:()=>{n.current||n.go()},children:[l==="scene"?(0,i.jsx)(Ge,{}):(0,i.jsx)(ya,{}),(0,i.jsx)("span",{children:n.label})]})};return(0,i.jsxs)("div",{className:"graview-bar-faces",role:"group","aria-label":`${e.scene.label} or ${e.pages.label}`,"data-testid":"app-faces","data-switch":a,"data-switch-drawn":t,children:[r("scene"),r("pages")]})}function ha(e){let a=e.querySelector(".graview-bar-faces"),t=e.querySelector(".graview-bar-mid"),r=e.querySelector(".graview-bar-find");if(!a||!t||r?.matches(":focus-within")||e.getBoundingClientRect().width<_)return null;let n=je(a),o=t.querySelector(".graview-bar-place-words"),d=o?parseFloat(getComputedStyle(o).fontSize)||14:0,p=o?Math.min(o.scrollWidth+34,14*d):0,s=t.getBoundingClientRect().width-p;if(r&&r.getBoundingClientRect().width>0){let g=parseFloat(getComputedStyle(r).flexBasis);isFinite(g)&&(s-=Math.max(0,g-r.getBoundingClientRect().width))}return Fe(e)?!1:a.getAttribute("data-switch-drawn")==="icons"?s>=n+2:s>=-1}function Fe(e){let a=e.querySelector(".graview-bar-app-name");return!!(a&&a.getBoundingClientRect().height>parseFloat(getComputedStyle(a).lineHeight)*1.5)}var qe=e=>e.button===0&&!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey);function ba(){let e=globalThis.navigator?.platform??"";return/Mac|iPhone|iPad|iPod/.test(e)?"\u2318K":"Ctrl K"}function z({size:e,box:a=e,children:t}){return(0,i.jsx)("svg",{width:e,height:e,viewBox:`0 0 ${a} ${a}`,"aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto"},children:t})}function Ge(){return(0,i.jsxs)(z,{size:14,children:[(0,i.jsx)("path",{d:"M7 1.5 L12.5 4.5 L7 7.5 L1.5 4.5 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M1.5 7.5 L7 10.5 L12.5 7.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",strokeLinecap:"round"})]})}function ya(){return(0,i.jsxs)(z,{size:14,children:[(0,i.jsx)("rect",{x:"2.25",y:"1.75",width:"9.5",height:"10.5",rx:"1.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),(0,i.jsx)("path",{d:"M4.5 5 H9.5 M4.5 7.25 H9.5 M4.5 9.5 H7.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function Ke(){return(0,i.jsx)(z,{size:10,children:(0,i.jsx)("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function xa(){return(0,i.jsxs)(z,{size:16,children:[(0,i.jsx)("circle",{cx:"7",cy:"7",r:"4.75",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,i.jsx)("path",{d:"M10.5 10.5 L14 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function ka({place:e}){if(e.key===ga)return(0,i.jsx)(Ge,{});if(e.group==="home")return(0,i.jsx)(z,{size:13,box:14,children:(0,i.jsx)("path",{d:"M2 6.5 L7 2 L12 6.5 V12 H2 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})});let a=e.kind?`hsl(${Math.round(ge(e.kind))} 55% 52%`:"rgb(128 128 128";return(0,i.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:12,height:8,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",background:e.group==="lists"?`${a})`:`linear-gradient(${a}), ${a})) center / 6px 4px no-repeat, ${a} / 0.35)`}})}var $a=[{group:"home"},{group:"lists",heading:"Lists"},{group:"pictures",heading:"Pictures"}],X="More";function _e({place:e,current:a,reach:t,standing:r,done:l}){let n=e.key===a,o=t.href?.(e.path);return(0,i.jsxs)(o!==void 0?"a":"button",{className:r?"graview-bar-at":"graview-bar-item","data-testid":`app-place-${e.key}`,"data-place-path":e.path,...n?{"aria-current":"page"}:{},...o!==void 0?{href:o}:{type:"button"},onClick:p=>{l(),t.go&&(o!==void 0&&!qe(p)||(p.preventDefault(),t.go(e)))},children:[r?null:(0,i.jsx)("span",{className:"graview-bar-mark",children:(0,i.jsx)(ka,{place:e})}),r&&n?(0,i.jsx)("span",{"data-testid":"app-place-current",children:e.label}):(0,i.jsx)("span",{children:e.label})]})}function Sa({places:e,current:a,reach:t,id:r,done:l}){return(0,i.jsx)(i.Fragment,{children:$a.map(({group:n,heading:o})=>{let d=e.filter(s=>s.group===n);if(d.length===0)return null;let p=`${r}-${n}`;return(0,i.jsxs)("div",{role:"group",...o?{"aria-labelledby":p}:{"aria-label":d[0].label},"data-place-group":n,children:[o?(0,i.jsx)("p",{id:p,children:o}):null,(0,i.jsx)("ul",{children:d.map(s=>(0,i.jsx)("li",{children:(0,i.jsx)(_e,{place:s,current:a,reach:t,standing:!1,done:l})},s.key))})]},n)})})}function Pa({places:e,current:a,reach:t,scene:r,stands:l}){let n=A("places"),o=(0,f.useRef)(l);n.open||(o.current=l);let d=o.current,p=e.find(g=>g.key===a)?.label??"Places",s=d?e.filter((g,u)=>!d.includes(u)):e;return(0,i.jsxs)("nav",{className:d?"graview-bar-places":"graview-bar-place-at","aria-label":r?"What the scene shows":"The app\u2019s places",...d?{"data-testid":"app-places-standing"}:{},children:[d?.map(g=>(0,i.jsx)(_e,{place:e[g],current:a,reach:t,standing:!0,done:()=>{}},e[g].key)),s.length>0?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{type:"button",className:d?"graview-bar-at":"graview-bar-place","data-testid":"app-places-open",...n.trigger,onClick:n.toggle,"aria-label":d?`${X} \u2014 ${s.length} more ${r?"pictures":"places"}`:`${p} \u2014 ${r?"everything the scene shows":"every place"}`,title:d?s.map(g=>g.label).join(", "):p,children:[d?X:(0,i.jsx)("span",{className:"graview-bar-place-words","data-testid":"app-place-current",children:p}),(0,i.jsx)(Ke,{})]}),(0,i.jsx)("div",{...n.pane,"data-testid":"app-places",hidden:!n.open,className:"graview-bar-list",style:H,children:(0,i.jsx)(Sa,{places:s,current:a,reach:t,id:n.pane.id,done:()=>n.setOpen(!1)})})]}):null]})}function Ba(e,a,t,r){let l=e.querySelector(".graview-bar-ruler"),n=e.querySelector(".graview-bar-mid");if(!l||!n)return null;let o=e.querySelector(".graview-bar-find");if(o?.matches(":focus-within"))return;if(e.getBoundingClientRect().width<_||Fe(e))return null;let d=[...l.children].map(T=>T.getBoundingClientRect().width),p=d.pop()??0,s=e.querySelector(".graview-bar-faces"),g=s&&t?je(s):0,u=s?.getAttribute("data-switch-drawn")==="words"?g:0,w=n.getBoundingClientRect().left,m=o?.getBoundingClientRect(),c=m&&m.width>0?m.right-w-(parseFloat(getComputedStyle(o).minWidth)||0)-8:n.getBoundingClientRect().width,b=[...r].map(T=>T!=="0");return wa({widths:d,current:a,room:Math.floor(c+u-g),more:p,primary:b})?.join(",")??null}function je(e){return[...e.querySelectorAll(".graview-bar-face span")].reduce((a,t)=>a+t.scrollWidth+10,0)}var Ta={name:"Graview",typography:{body:Z.body,mono:Z.mono},schemes:ve},De={ground:"--graview-ground",groundDeep:"--graview-ground-deep",wash:"--graview-wash",panel:"--graview-panel",panelMuted:"--graview-panel-muted",panelWarning:"--graview-panel-warning",edge:"--graview-edge",edgeBright:"--graview-edge-bright",ink:"--graview-ink",inkMuted:"--graview-ink-muted",inkFaint:"--graview-ink-faint",accent:"--graview-accent",accentDim:"--graview-accent-dim",accentInk:"--graview-accent-ink",warn:"--graview-warn",good:"--graview-good",bad:"--graview-bad",glow:"--graview-glow",bar:"--graview-bar",float:"--graview-float",liftLow:"--graview-lift-low",liftHigh:"--graview-lift-high",tintAlpha:"--graview-tint-alpha",tintLightness:"--graview-tint-lightness",gridAlpha:"--graview-grid-alpha"};function Ea(e){return Object.keys(De).map(a=>` ${De[a]}: ${e[a]};`).join(`
|
|
61
|
+
}`,O={display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,minWidth:N,height:N,padding:0,borderRadius:8,border:"1px solid transparent",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"0.875rem",cursor:"pointer",flex:"0 0 auto"};function tr({brand:e,name:a,heading:t=1,home:r,faces:l,places:n,current:o,reach:c,tools:p,find:d=!0,description:u,findBox:g,onFind:f,switch:s="words",scenePlaces:m}){let b=(0,w.useRef)(null),P=Le()?.who.size,[R,Ue]=(0,w.useState)(null),[Q,Ze]=(0,w.useState)(null),[x,Xe]=(0,w.useState)(!1),[Je,ee]=(0,w.useState)(!1),[Qe,ea]=(0,w.useState)(!0),[ae,aa]=(0,w.useState)(null),W=l?l.pages.current:!m,D=W?{places:n,current:o,reach:c}:m,h=D&&D.places.length>0?D:null,re=h?h.places.findIndex(v=>v.key===h.current):-1,te=!!l&&s==="words",ne=h?h.places.map(v=>v.primary===!1?"0":"1").join(""):"",T=(0,w.useCallback)(()=>{let v=b.current;if(!v)return;let k=Ba(v,re,te,ne);k!==void 0&&aa(k);let C=k?!0:ha(v);C!==null&&ea(C)},[re,te,ne]);(0,w.useLayoutEffect)(()=>{let v=b.current;if(!v)return;let k=()=>{let q=v.getBoundingClientRect().width;Xe(q<_),v.style.setProperty("--graview-bar-width",`${Math.round(q)}px`),T()};k();let C=typeof document>"u"?void 0:document.fonts;if(C?.ready.then(T),C?.addEventListener?.("loadingdone",T),typeof ResizeObserver>"u")return()=>C?.removeEventListener?.("loadingdone",T);let Y=new ResizeObserver(k);Y.observe(v);for(let q of v.querySelectorAll(".graview-bar-tools > *"))Y.observe(q);return()=>{Y.disconnect(),C?.removeEventListener?.("loadingdone",T)}},[T]);let V=(0,w.useRef)(f);V.current=f,(0,w.useLayoutEffect)(()=>{V.current?.(d&&R?{slot:R,compact:x,own:Q}:null)},[d,R,x,Q]),(0,w.useLayoutEffect)(()=>()=>V.current?.(null),[]);let ra=(0,w.useCallback)(()=>{ee(!0),requestAnimationFrame(()=>R?.querySelector("input")?.focus())},[R]),ie=(0,w.useRef)(null),I=(0,w.useRef)(!1),oe=(0,w.useCallback)(()=>{ee(!1),I.current&&(I.current=!1,requestAnimationFrame(()=>ie.current?.focus()))},[]),ta=t===!1?"span":`h${t}`,na=r.href!==void 0?"a":"button",ia=v=>k=>{!v||!qe(k)||(k.preventDefault(),v())},oa=!W,le=h&&!x&&ae!==null?ae.split(",").map(Number).filter(v=>v<h.places.length):null,F=h?(0,i.jsx)(Pa,{places:h.places,current:h.current,reach:h.reach,scene:oa,stands:le}):null,la=h?h.places.map(v=>v.label).join(`
|
|
62
|
+
`):"";(0,w.useLayoutEffect)(T,[T,a,e,la,h?.current,W,x,s,d]);let sa=s==="icons"||!Qe||x?"icons":"words";return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("header",{ref:b,className:"graview-bar","data-testid":"app-bar","data-graview-app-bar":"",...Je&&x?{"data-finding":""}:{},children:[(0,i.jsx)("style",{children:fa}),(0,i.jsxs)("div",{className:"graview-bar-row",children:[(0,i.jsx)("div",{className:"graview-bar-app",children:(0,i.jsx)(ta,{className:"graview-bar-name",children:(0,i.jsxs)(na,{...r.href!==void 0?{href:r.href,onClick:ia(r.go)}:{type:"button",onClick:r.go},"data-testid":"app-home",...r.current?{"aria-current":"page"}:{},title:u?`${a} \u2014 ${u}`:`${a} \u2014 home`,className:"graview-bar-home",children:[(0,i.jsx)(ze,{brand:e,size:20}),(0,i.jsx)("span",{className:"graview-bar-app-name","data-testid":"app-name",children:a})]})})}),l?(0,i.jsx)(ma,{faces:l,form:s,drawn:sa}):null,(0,i.jsx)("div",{className:"graview-bar-mid",...le?{"data-places":"standing"}:!x&&F?{"data-place":""}:{},children:x?null:F}),!x&&h&&h.places.length>1?(0,i.jsxs)("span",{className:"graview-bar-ruler","aria-hidden":"true","data-graview-bar-ruler":"",children:[h.places.map(v=>(0,i.jsx)("span",{className:"graview-bar-at",children:v.label},v.key)),(0,i.jsxs)("span",{className:"graview-bar-at",children:[X,(0,i.jsx)(Ke,{})]})]}):null,(0,i.jsxs)("div",{className:"graview-bar-tools",children:[d?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("button",{type:"button",className:"graview-bar-find-open",ref:ie,"data-testid":"app-find-open","aria-label":"Find",title:"Find",onClick:ra,style:{...O,display:void 0},children:(0,i.jsx)(xa,{})}),(0,i.jsxs)("div",{className:"graview-bar-find","data-testid":"app-find",onBlur:v=>{let k=v.relatedTarget;k instanceof Node&&v.currentTarget.contains(k)||v.currentTarget.querySelector("input")?.value||oe()},onKeyDownCapture:v=>{v.key==="Escape"&&x&&(I.current=!0)},onKeyDown:v=>{v.key!=="Escape"||!x||(!v.defaultPrevented||!v.currentTarget.querySelector("input")?.value?oe():I.current=!1)},children:[(0,i.jsx)("div",{ref:Ue,className:"graview-bar-find-slot",children:g}),(0,i.jsx)("span",{className:"graview-bar-find-keys","data-testid":"app-find-keys","aria-hidden":"true",children:ba()})]})]}):null,(0,i.jsx)("div",{ref:Ze,className:"graview-bar-own","data-graview-bar-own":""}),P?(0,i.jsx)(w.Suspense,{fallback:null,children:(0,i.jsx)(da,{scene:!W,compact:x})}):null,p]})]})]}),x&&F?(0,i.jsx)("div",{className:"graview-bar-line","data-graview-place-line":"","data-testid":"app-place-line",children:F}):null]})}function ma({faces:e,form:a,drawn:t}){let r=l=>{let n=e[l];return(0,i.jsxs)("button",{type:"button",className:"graview-bar-face","data-testid":`app-face-${l}`,"aria-pressed":n.current,title:n.label,onClick:()=>{n.current||n.go()},children:[l==="scene"?(0,i.jsx)(Ge,{}):(0,i.jsx)(ya,{}),(0,i.jsx)("span",{children:n.label})]})};return(0,i.jsxs)("div",{className:"graview-bar-faces",role:"group","aria-label":`${e.scene.label} or ${e.pages.label}`,"data-testid":"app-faces","data-switch":a,"data-switch-drawn":t,children:[r("scene"),r("pages")]})}function ha(e){let a=e.querySelector(".graview-bar-faces"),t=e.querySelector(".graview-bar-mid"),r=e.querySelector(".graview-bar-find");if(!a||!t||r?.matches(":focus-within")||e.getBoundingClientRect().width<_)return null;let n=je(a),o=t.querySelector(".graview-bar-place-words"),c=o?parseFloat(getComputedStyle(o).fontSize)||14:0,p=o?Math.min(o.scrollWidth+34,14*c):0,d=t.getBoundingClientRect().width-p;if(r&&r.getBoundingClientRect().width>0){let u=parseFloat(getComputedStyle(r).flexBasis);isFinite(u)&&(d-=Math.max(0,u-r.getBoundingClientRect().width))}return Fe(e)?!1:a.getAttribute("data-switch-drawn")==="icons"?d>=n+2:d>=-1}function Fe(e){let a=e.querySelector(".graview-bar-app-name");return!!(a&&a.getBoundingClientRect().height>parseFloat(getComputedStyle(a).lineHeight)*1.5)}var qe=e=>e.button===0&&!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey);function ba(){let e=globalThis.navigator?.platform??"";return/Mac|iPhone|iPad|iPod/.test(e)?"\u2318K":"Ctrl K"}function z({size:e,box:a=e,children:t}){return(0,i.jsx)("svg",{width:e,height:e,viewBox:`0 0 ${a} ${a}`,"aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto"},children:t})}function Ge(){return(0,i.jsxs)(z,{size:14,children:[(0,i.jsx)("path",{d:"M7 1.5 L12.5 4.5 L7 7.5 L1.5 4.5 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),(0,i.jsx)("path",{d:"M1.5 7.5 L7 10.5 L12.5 7.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",strokeLinecap:"round"})]})}function ya(){return(0,i.jsxs)(z,{size:14,children:[(0,i.jsx)("rect",{x:"2.25",y:"1.75",width:"9.5",height:"10.5",rx:"1.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),(0,i.jsx)("path",{d:"M4.5 5 H9.5 M4.5 7.25 H9.5 M4.5 9.5 H7.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function Ke(){return(0,i.jsx)(z,{size:10,children:(0,i.jsx)("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function xa(){return(0,i.jsxs)(z,{size:16,children:[(0,i.jsx)("circle",{cx:"7",cy:"7",r:"4.75",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,i.jsx)("path",{d:"M10.5 10.5 L14 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function ka({place:e}){if(e.key===ga)return(0,i.jsx)(Ge,{});if(e.group==="home")return(0,i.jsx)(z,{size:13,box:14,children:(0,i.jsx)("path",{d:"M2 6.5 L7 2 L12 6.5 V12 H2 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})});let a=e.kind?`hsl(${Math.round(ge(e.kind))} 55% 52%`:"rgb(128 128 128";return(0,i.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:12,height:8,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",background:e.group==="lists"?`${a})`:`linear-gradient(${a}), ${a})) center / 6px 4px no-repeat, ${a} / 0.35)`}})}var $a=[{group:"home"},{group:"lists",heading:"Lists"},{group:"pictures",heading:"Pictures"}],X="More";function _e({place:e,current:a,reach:t,standing:r,done:l}){let n=e.key===a,o=t.href?.(e.path);return(0,i.jsxs)(o!==void 0?"a":"button",{className:r?"graview-bar-at":"graview-bar-item","data-testid":`app-place-${e.key}`,"data-place-path":e.path,...n?{"aria-current":"page"}:{},...o!==void 0?{href:o}:{type:"button"},onClick:p=>{l(),t.go&&(o!==void 0&&!qe(p)||(p.preventDefault(),t.go(e)))},children:[r?null:(0,i.jsx)("span",{className:"graview-bar-mark",children:(0,i.jsx)(ka,{place:e})}),r&&n?(0,i.jsx)("span",{"data-testid":"app-place-current",children:e.label}):(0,i.jsx)("span",{children:e.label})]})}function Sa({places:e,current:a,reach:t,id:r,done:l}){return(0,i.jsx)(i.Fragment,{children:$a.map(({group:n,heading:o})=>{let c=e.filter(d=>d.group===n);if(c.length===0)return null;let p=`${r}-${n}`;return(0,i.jsxs)("div",{role:"group",...o?{"aria-labelledby":p}:{"aria-label":c[0].label},"data-place-group":n,children:[o?(0,i.jsx)("p",{id:p,children:o}):null,(0,i.jsx)("ul",{children:c.map(d=>(0,i.jsx)("li",{children:(0,i.jsx)(_e,{place:d,current:a,reach:t,standing:!1,done:l})},d.key))})]},n)})})}function Pa({places:e,current:a,reach:t,scene:r,stands:l}){let n=H("places"),o=(0,w.useRef)(l);n.open||(o.current=l);let c=o.current,p=e.find(u=>u.key===a)?.label??"Places",d=c?e.filter((u,g)=>!c.includes(g)):e;return(0,i.jsxs)("nav",{className:c?"graview-bar-places":"graview-bar-place-at","aria-label":r?"What the scene shows":"The app\u2019s places",...c?{"data-testid":"app-places-standing"}:{},children:[c?.map(u=>(0,i.jsx)(_e,{place:e[u],current:a,reach:t,standing:!0,done:()=>{}},e[u].key)),d.length>0?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{type:"button",className:c?"graview-bar-at":"graview-bar-place","data-testid":"app-places-open",...n.trigger,onClick:n.toggle,"aria-label":c?`${X} \u2014 ${d.length} more ${r?"pictures":"places"}`:`${p} \u2014 ${r?"everything the scene shows":"every place"}`,title:c?d.map(u=>u.label).join(", "):p,children:[c?X:(0,i.jsx)("span",{className:"graview-bar-place-words","data-testid":"app-place-current",children:p}),(0,i.jsx)(Ke,{})]}),(0,i.jsx)("div",{...n.pane,"data-testid":"app-places",hidden:!n.open,className:"graview-bar-list",style:L,children:(0,i.jsx)(Sa,{places:d,current:a,reach:t,id:n.pane.id,done:()=>n.setOpen(!1)})})]}):null]})}function Ba(e,a,t,r){let l=e.querySelector(".graview-bar-ruler"),n=e.querySelector(".graview-bar-mid");if(!l||!n)return null;let o=e.querySelector(".graview-bar-find");if(o?.matches(":focus-within"))return;if(e.getBoundingClientRect().width<_||Fe(e))return null;let c=[...l.children].map(P=>P.getBoundingClientRect().width),p=c.pop()??0,d=e.querySelector(".graview-bar-faces"),u=d&&t?je(d):0,g=d?.getAttribute("data-switch-drawn")==="words"?u:0,f=n.getBoundingClientRect().left,s=o?.getBoundingClientRect(),m=s&&s.width>0?s.right-f-(parseFloat(getComputedStyle(o).minWidth)||0)-8:n.getBoundingClientRect().width,b=[...r].map(P=>P!=="0");return wa({widths:c,current:a,room:Math.floor(m+g-u),more:p,primary:b})?.join(",")??null}function je(e){return[...e.querySelectorAll(".graview-bar-face span")].reduce((a,t)=>a+t.scrollWidth+10,0)}var Ta={name:"Graview",typography:{body:Z.body,mono:Z.mono},schemes:ve},De={ground:"--graview-ground",groundDeep:"--graview-ground-deep",wash:"--graview-wash",panel:"--graview-panel",panelMuted:"--graview-panel-muted",panelWarning:"--graview-panel-warning",edge:"--graview-edge",edgeBright:"--graview-edge-bright",ink:"--graview-ink",inkMuted:"--graview-ink-muted",inkFaint:"--graview-ink-faint",accent:"--graview-accent",accentDim:"--graview-accent-dim",accentInk:"--graview-accent-ink",warn:"--graview-warn",good:"--graview-good",bad:"--graview-bad",glow:"--graview-glow",bar:"--graview-bar",float:"--graview-float",liftLow:"--graview-lift-low",liftHigh:"--graview-lift-high",tintAlpha:"--graview-tint-alpha",tintLightness:"--graview-tint-lightness",gridAlpha:"--graview-grid-alpha"};function Ea(e){return Object.keys(De).map(a=>` ${De[a]}: ${e[a]};`).join(`
|
|
63
63
|
`)}function Ve(e,a){let t=e===a?e:`${e} ${a}`;return` ${t} [data-graview-view] { transition: none; }
|
|
64
64
|
${t} [data-graview-touched] > * { animation: none; }
|
|
65
65
|
${t} [data-graview-view][data-graview-wrote] > *,
|
|
@@ -68,18 +68,18 @@ import{a as Ne}from"./chunk.AHDOKM4O.js";import{a as Me,ca as Ce,da as Le,pa as
|
|
|
68
68
|
box-shadow: 0 0 0 2px var(--graview-activity);
|
|
69
69
|
}
|
|
70
70
|
${t} [data-graview-view][data-graview-read] > * { box-shadow: 0 0 0 1px var(--graview-activity); }
|
|
71
|
-
${t} [data-graview-connector][data-graview-activity] { animation: none; stroke-opacity: 1; }`}function or(e="dark",a=Ta,t={}){let r=Ha(e,a,t);return t.scope===void 0?r:Ma(r,t.scope)}function Ma(e,a){let t=`:where(${a}) `,r=o=>o===a||o.startsWith(`${a} `)||o.startsWith(`${a}:`)||o.startsWith(`${a}[`)||o.startsWith(":root")&&o.includes(` ${a} `),l=o=>{let
|
|
71
|
+
${t} [data-graview-connector][data-graview-activity] { animation: none; stroke-opacity: 1; }`}function or(e="dark",a=Ta,t={}){let r=Ha(e,a,t);return t.scope===void 0?r:Ma(r,t.scope)}function Ma(e,a){let t=`:where(${a}) `,r=o=>o===a||o.startsWith(`${a} `)||o.startsWith(`${a}:`)||o.startsWith(`${a}[`)||o.startsWith(":root")&&o.includes(` ${a} `),l=o=>{let c=o.match(/^\s*/)[0],p=La(o.trim()).map(d=>r(d)?d:`${t}${d}`);return`${c}${p.join(", ")} `},n=o=>{let c="",p=0;for(;p<o.length;){let d=o.indexOf("{",p);if(d===-1)return c+o.slice(p);let u=Ca(o,d),g=o.slice(p,d),f=o.slice(d+1,u),s=g.trim().startsWith("@")?g.trim().split(/[\s(]/)[0]:null;s===null?c+=`${l(g)}{${f}}`:s==="@media"||s==="@supports"||s==="@container"||s==="@layer"?c+=`${g}{${n(f)}}`:c+=`${g}{${f}}`,p=u+1}return c};return n(e)}function Ca(e,a){let t=0,r=null;for(let l=a;l<e.length;l++){let n=e[l];if(r)n==="\\"?l++:n===r&&(r=null);else if(n==='"'||n==="'")r=n;else if(n==="/"&&e[l+1]==="*")l=e.indexOf("*/",l+2)+1||e.length;else if(n==="{")t++;else if(n==="}"&&--t===0)return l}return e.length}function La(e){let a=[],t=0,r=null,l="";for(let n of e){if(r)n===r&&(r=null);else if(n==='"'||n==="'")r=n;else if(n==="("||n==="[")t++;else if(n===")"||n==="]")t--;else if(n===","&&t===0){a.push(l.trim()),l="";continue}l+=n}return l.trim()&&a.push(l.trim()),a}function Ha(e,a,t){let r=a.schemes[e],l=t.scope??":root",n=t.scope??"html, body",o=t.scope??"body",c=":root",p=we(a),d=fe(a),u=ye(a.kit);return`${l} {
|
|
72
72
|
${Ea(r)}
|
|
73
|
-
${xe(
|
|
73
|
+
${xe(u)}
|
|
74
74
|
|
|
75
75
|
${$e()}
|
|
76
|
-
--graview-font-body: ${
|
|
77
|
-
--graview-font-display: ${
|
|
78
|
-
--graview-font-mono: ${
|
|
76
|
+
--graview-font-body: ${d.body};
|
|
77
|
+
--graview-font-display: ${d.display};
|
|
78
|
+
--graview-font-mono: ${d.mono};
|
|
79
79
|
|
|
80
|
-
--graview-weight-display: ${
|
|
81
|
-
--graview-weight-body: ${
|
|
82
|
-
--graview-weight-label: ${
|
|
80
|
+
--graview-weight-display: ${d.weights.display};
|
|
81
|
+
--graview-weight-body: ${d.weights.body};
|
|
82
|
+
--graview-weight-label: ${d.weights.label};
|
|
83
83
|
|
|
84
84
|
--graview-radius: ${p.radius}px;
|
|
85
85
|
--graview-radius-sm: ${p.radiusSmall}px;
|
|
@@ -316,6 +316,6 @@ code { color: var(--graview-ink-muted); font-size: 0.8125rem; letter-spacing: 0.
|
|
|
316
316
|
|
|
317
317
|
|
|
318
318
|
@media (prefers-reduced-motion: reduce) {
|
|
319
|
-
${Ve(`${
|
|
319
|
+
${Ve(`${c}:not([data-graview-motion='full'])`,o)}
|
|
320
320
|
}
|
|
321
|
-
${Ve(`${
|
|
321
|
+
${Ve(`${c}[data-graview-motion='reduce']`,o)}`}var M=$(G(),1);var y=$(E(),1);function gr({scheme:e,onScheme:a,profileHref:t,keeping:r,hostActions:l=Aa,signature:n=!1}){let{store:o,principal:c,seats:p,people:d}=Ce(),u=H("profile"),g=u.open,[f,s]=(0,M.useState)(!1);(0,M.useEffect)(()=>Oa(j),[]),g&&!f&&s(!0),(0,M.useEffect)(()=>{g&&j()},[g]);let m=c.id===void 0?void 0:o.graph.getNode(c.id),b=m===void 0?c.id===void 0?"Nobody in particular":ce(c,{graph:o.graph,schema:o.schema,seats:p,people:d}):se(o.schema.tryDefinition(m.kind),m);return(0,y.jsxs)("div",{style:{position:"relative"},children:[(0,y.jsx)("button",{type:"button","data-testid":"profile-button",...u.trigger,onClick:u.toggle,onPointerEnter:j,onFocus:j,"aria-label":`${b} \u2014 you, your seat and your settings`,title:`${b} \u2014 you, your seat and your settings`,style:{...O,borderRadius:999},children:(0,y.jsx)("span",{"aria-hidden":"true","data-testid":"profile-mark",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:N-4,height:N-4,borderRadius:999,fontSize:"0.8125rem",fontWeight:600,background:"var(--graview-panel-muted)",color:"var(--graview-ink)",border:"1px solid var(--graview-edge)"},children:za(b)})}),(0,y.jsxs)("section",{...u.pane,"aria-label":"Profile","data-testid":"profile","data-graview-offstage":"",hidden:!g,style:{...L,width:280,maxWidth:"calc(100vw - 32px)",maxHeight:"min(62cqh, 520px)",overflowY:"auto",overflowX:"hidden",display:g?"grid":"none",gap:12,padding:12,borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[f?(0,y.jsx)(M.Suspense,{fallback:null,children:(0,y.jsx)(Ra,{part:"top",name:b,me:m,profileHref:t,hostActions:l,close:()=>u.setOpen(!1)})}):null,(0,y.jsxs)("div",{className:"graview-profile-keeping","data-testid":"profile-keeping",style:Ia,children:[(0,y.jsx)("span",{style:Wa,children:"Keeping this app"}),r]}),f?(0,y.jsx)(M.Suspense,{fallback:null,children:(0,y.jsx)(Na,{part:"rest",name:b,me:m,scheme:e,onScheme:a,hostActions:l,signature:n,close:()=>u.setOpen(!1)})}):null]})]})}var Aa=[],j=()=>B.prefetch(),Ra=B.part((e,a)=>(0,y.jsx)(e.ProfilePane,{...a}),{what:"The rest of your menu"}),Na=B.part((e,a)=>(0,y.jsx)(e.ProfilePane,{...a}),{quiet:!0});function Oa(e){let a=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},t=globalThis;if(t.requestIdleCallback){let l=t.requestIdleCallback(a,{timeout:5e3});return()=>t.cancelIdleCallback?.(l)}let r=setTimeout(a,2500);return()=>clearTimeout(r)}function za(e){return(e.trim()[0]??"?").toUpperCase()}var Wa={fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},Ia={paddingTop:10,borderTop:"1px solid var(--graview-edge)"};var A=$(G(),1);var S=$(E(),1),Fa=B.part((e,a)=>(0,S.jsx)(e.ProblemRows,{...a}),{what:"The problems",as:"li"}),J=()=>B.prefetch();function hr({clean:e="All rules hold"}){let a=Ae(),{set:t}=He(),r=a.length,[l,n]=(0,A.useState)(!1),o=H("problems",{open:l&&r>0,onOpenChange:n}),c=o.open,p=qa(a,e);return(0,A.useEffect)(()=>{if(r===0)return;let d=setTimeout(J,1500);return()=>clearTimeout(d)},[r>0]),(0,S.jsxs)("div",{style:{position:"relative",display:"inline-flex"},children:[(0,S.jsxs)("button",{type:"button","data-testid":"standing",...o.trigger,"aria-disabled":r===0?!0:void 0,"aria-label":p,onClick:r===0?void 0:o.toggle,onPointerEnter:r===0?void 0:J,onFocus:r===0?void 0:J,title:p,style:{...O,padding:r===0?0:"0 8px",cursor:r===0?"default":"pointer",color:r===0?"var(--graview-ink-muted)":Ye(a),fontVariantNumeric:"tabular-nums",fontWeight:600},children:[(0,S.jsx)(Ga,{tone:r===0?"var(--graview-good)":Ye(a)}),r>0?(0,S.jsx)("span",{"aria-hidden":"true",children:r}):null]}),c?(0,S.jsx)("ol",{...o.pane,"data-testid":"problems",style:{...L,width:300,maxHeight:"min(48cqh, 420px)",overflow:"auto",margin:0,padding:4,listStyle:"none",display:"grid",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:(0,S.jsx)(A.Suspense,{fallback:null,children:(0,S.jsx)(Fa,{violations:a,pick:d=>{t(d.nodeIds),o.setOpen(!1)}})})}):null]})}function qa(e,a){return e.length===0?a:`${pe(e)} \u2014 open what is broken, and what would fix it`}var Ye=e=>e.some(a=>a.status==="could-not-judge"||a.status==="over-budget")?"var(--graview-bad)":"var(--graview-warn)";function Ga({tone:e}){return(0,S.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:999,flex:"0 0 auto",background:e}})}export{or as a,Ma as b,ja as c,B as d,ga as e,er as f,ar as g,ua as h,rr as i,O as j,tr as k,gr as l,hr as m,qa as n,Ga as o};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as W}from"./chunk.
|
|
1
|
+
import{b as W}from"./chunk.TWGB347L.js";import{C as R,b as A,c as T,d as v,e as f,f as x,j as I,m as b,ra as k}from"./chunk.2VX6H2LL.js";import{Ob as s,ya as y,za as r}from"./chunk.ZQ4HFIIS.js";import{a as H}from"./chunk.MRK6QJV5.js";import{b as B}from"./chunk.AJZBJBMO.js";var u=B(H(),1),L=e=>typeof e=="object"&&e!==null&&"idx"in e;function E(e){let n=r(window.location.pathname,e);return n===null?null:n!==s&&n!=="/"?"pages":n===s||window.location.href.includes("#")?f(window.location.hash).overview?"graview":"scene":L(window.history.state)?"pages":null}function J(e){let n=e.face??(e.stop&&v(e.stop).overview?"graview":"scene");return e.routing!=="address"||typeof window>"u"?n:E(e.basePath)??n}function K(e){return e.routing!=="address"||typeof window>"u"?!1:r(window.location.pathname,e.basePath)==="/"&&E(e.basePath)===null}function Q(e){if(typeof window>"u")return;let n=r(window.location.pathname,e);return n===s||n==="/"&&window.location.href.includes("#")?T(f(window.location.hash)):void 0}function X({basePath:e,pagesWere:n,shown:t,onFace:i,toggle:l,kinds:U,places:w,opens:$}){let{view:F,go:p}=k(),g=(0,u.useRef)({shown:t,view:F,onFace:i});g.current={shown:t,view:F,onFace:i};let S=(0,u.useRef)(n??"/"),M=()=>{S.current=`${r(window.location.pathname,e)??"/"}${window.location.search}`};return l.current=(o,c,a)=>{let{shown:d,view:N,onFace:V}=g.current;if(o==="pages"&&d!=="pages")window.history.pushState(null,"",y(c??S.current,{basePath:e}));else if(o!=="pages"&&d==="pages"){M();let m=a===void 0?N:j(v(a),w),h=Y(m)?q($):m,O=h!==m&&h.overview?"graview":o,P=_(O,h,U);p(P),window.history.pushState(null,"",`${y(s,{basePath:e})}${x(P)}`),V?.(O);return}V?.(o)},(0,u.useEffect)(()=>{let o=()=>{if(r(window.location.pathname,e)===null)return;let c=E(e)??"pages",{shown:a,onFace:d}=g.current;if(c==="pages"){a!=="pages"&&d?.("pages");return}a==="pages"&&(p(j(f(window.location.hash),w)),d?.(c))};return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[e,p,w]),null}function j(e,n){let t=e.within?.view,i=t!==void 0&&!e.focusId?n.find(l=>l.as===t):void 0;return i?{...e,focusId:R(i.kind)}:e}function _(e,n,t){return e==="graview"?b(n,!0):n.overview?I(b(n,!1),W(n,t)):n}function Y(e){return e.focusId===null&&e.overview!==!0}function q(e){return e??{...A,overview:!0}}export{J as a,K as b,Q as c,X as d,j as e,_ as f,Y as g,q as h};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ge,b as ye,e as he,f as J,g as be}from"./chunk.ZFUQA3KT.js";import{f as fe}from"./chunk.ENMNLR73.js";import{A as z,G as E,Gb as ue,I as T,L as ne,M as te,Ma as ie,N as X,O as re,Ob as pe,Qb as me,R as _,U as H,V as oe,Xa as q,Ya as ae,ca as se,ib as le,kb as de,wb as ce}from"./chunk.Y235YZSZ.js";function Pe(t,r,n){let s=t.tryDefinition(r)?.fields.shape,e=z(s?.[n]),l=!1,i=!1;for(;e&&(e.type==="optional"||e.type==="default"||e.type==="nullable"||e.type==="prefault");)(e.type==="optional"||e.type==="nullable")&&(l=!0),(e.type==="default"||e.type==="prefault")&&(i=!0),e=z(e.innerType);if(e?.type!=="enum")return;let y=(e.entries?Object.values(e.entries):e.values??[]).filter(u=>typeof u=="string");return y.length>0?{values:y,empty:l&&!i}:void 0}function L(t,r,n){let s=Pe(t,r,n);if(!s)return[];let e=t.tryDefinition(r),l=s.values.map(i=>({value:i,label:te(e,n,i)}));return s.empty&&l.push({value:null,label:`No ${_(e,n).toLowerCase()}`}),l}function U(t,r,n){let s=t[r];return typeof s=="string"&&n.some(e=>e.value===s)?s:null}function Q(t,r,n,s,e=L(t.schema,n.kind,s)){let l=we(t.schema,t.allMutations(),n.kind,s,e),i=U(n,s,e),y=[];for(let{value:u,by:A,acts:O}of l)if(u!==i)for(let $ of O){let I=A==="step"?{[$.subject.arg]:n.id}:{[$.subject.arg]:n.id,[s]:u},R={name:$.name,args:I};if($.input.safeParse(I).success&&t.permits(R,r).ok){try{se(t.graph,$,I)}catch{continue}y.push({to:u,call:R,title:$.title??$.name});break}}return y}function we(t,r,n,s,e=L(t,n,s)){let l=xe(t,r,n,s),i=ve(t,r,n,s);return e.flatMap(y=>{if(y.value===null)return[];let u=l.filter(A=>A.sets?.[s]===y.value);return[{value:y.value,label:y.label,by:u.length>0?"step":i.length>0?"value":"none",acts:u.length>0?u:i}]})}function xe(t,r,n,s){return r.filter(e=>e.subject!==void 0&&e.derived===void 0&&typeof e.sets?.[s]=="string"&&q(t,e).includes(n))}function ve(t,r,n,s){let e=t.tryDefinition(n);return e?r.filter(l=>{if(!l.subject||!q(t,l).includes(n)||!ae(l,e).includes(s))return!1;let i=l.input.shape;return i!==void 0&&s in i}).sort((l,i)=>+(l.derived!==void 0)-+(i.derived!==void 0)):[]}var Y=(t,r)=>r&&t[r]!==void 0?String(t[r]):"";function Re(t,r,n){let s=d=>t.tryDefinition(d)?r.nodesOfKind(d).filter(k=>E(t.tryDefinition(d),k)):[],e=s(n.rows),l=s(n.columns),i=new Set(e.map(d=>d.id)),y=new Set(l.map(d=>d.id)),u=r.allEdges(),A=[],O=n.link;if(typeof O=="string"){let d=p=>t.tryDefinition(p)?.edges?.[O]?.to,k=(d(n.columns)??[]).some(p=>p===n.rows||p==="*"),w=(d(n.rows)??[]).some(p=>p===n.columns||p==="*"),D=k||!w;for(let p of u){if(p.kind!==O)continue;let m=D?p.to:p.from,o=D?p.from:p.to;i.has(m)&&y.has(o)&&A.push({rowId:m,columnId:o,via:[]})}}else{let d=new Map(O.path.map(w=>[w,new Map]));for(let w of u){let D=d.get(w.kind);if(!D)continue;let p=D.get(w.from);p?p.push(w.to):D.set(w.from,[w.to]);let m=D.get(w.to);m?m.push(w.from):D.set(w.to,[w.from])}let k=new Set;for(let w of l){let D=[{id:w.id,via:[]}];for(let p of O.path){let m=[],o=new Set;for(let f of D)for(let P of d.get(p).get(f.id)??[])o.has(`${f.id}|${P}`)||(o.add(`${f.id}|${P}`),m.push({id:P,via:[...f.via,f.id]}));D=m}for(let p of D){let m=`${p.id}|${w.id}`;!i.has(p.id)||k.has(m)||(k.add(m),A.push({rowId:p.id,columnId:w.id,via:p.via.slice(1)}))}}}let $=n.groupOrder??[],I=d=>$.indexOf(d)===-1?$.length:$.indexOf(d),R=e.map(d=>{let k=d;return{node:d,label:String(k.label??T(t.tryDefinition(d.kind),d)),group:Y(k,n.rowGroup),ref:Y(k,n.rowRef)}}).sort((d,k)=>I(d.group)-I(k.group)||(d.ref<k.ref?-1:d.ref>k.ref?1:0)),N=l.map(d=>({node:d,label:T(t.tryDefinition(d.kind),d),group:Y(d,n.columnGroup)})).sort((d,k)=>d.group<k.group?-1:d.group>k.group?1:d.node.id<k.node.id?-1:d.node.id>k.node.id?1:0);return{rows:R,columns:N,cells:A}}function $e(t,r,n){let{rows:s,columns:e,cells:l}=Re(t,r,n),i=(o,f)=>X(t,o,f),y=o=>X(t,o,1).replace(/^1 /,""),u=o=>({id:o.id,kind:o.kind,title:T(t.tryDefinition(o.kind),o),parts:[]}),A=o=>{let f=r.getNode(o);if(!f)return null;let P=t.tryDefinition(f.kind),M=T(P,f),K=H(f,P,{limit:3,said:[M],glance:!0}).map(B=>B.alone.startsWith(B.label)?`${B.label.toLowerCase()}${B.alone.slice(B.label.length)}`:B.alone);return[M,...K].join(", ")},O=typeof n.link=="string"?[]:n.link.path.slice(0,-1).flatMap((o,f,P)=>{let M=ce(t,n.columns,P.slice(0,f+1));return M.ok?[...M.reached]:[]}),$=[{t:"text",text:`${i(n.rows,s.length)} against ${i(n.columns,e.length)}${O.length>0?`, through ${[...new Set(O)].map(o=>i(o,2).replace(/^2 /,"")).join(" and ")}`:""}${e.length>0?`: ${e.map(o=>o.label).join(", ")}`:""}.`}],I=new Map(e.map(o=>[o.node.id,o.label])),R=new Map(e.map((o,f)=>[o.node.id,f])),N=new Map,d=new Map;for(let o of l){let f=N.get(o.rowId);f?f.push(o):N.set(o.rowId,[o]);let P=d.get(o.columnId);P?P.add(o.rowId):d.set(o.columnId,new Set([o.rowId]))}for(let o of s){let P=[...N.get(o.node.id)??[]].sort((M,K)=>R.get(M.columnId)-R.get(K.columnId)).map(M=>{let K=M.via.map(A).filter(B=>B!==null);return`${I.get(M.columnId)}${K.length>0?` (${K.join("; ")})`:""}`});$.push({t:"field",label:o.label,text:P.length>0?P.join(", "):"none"})}$.push({t:"list",as:"name",columns:1,groups:e.map(o=>{let f=d.get(o.node.id)??new Set,P=s.filter(M=>f.has(M.node.id)).map(M=>u(M.node));return{heading:`${o.label} (${P.length})`,items:P}})});let k=new Set(l.map(o=>o.rowId)),w=new Set(l.map(o=>o.columnId)),D=s.filter(o=>!k.has(o.node.id)),p=e.filter(o=>!w.has(o.node.id)),m=n.rows===n.columns;return D.length>0&&$.push({t:"text",text:`${m?`${D.length} with none across`:`${i(n.rows,D.length)} with no ${y(n.columns)}`}: ${D.map(o=>o.label).join(", ")}.`}),p.length>0&&$.push({t:"text",text:`${m?`${p.length} with none down`:`${i(n.columns,p.length)} on no ${y(n.rows)}`}: ${p.map(o=>o.label).join(", ")}.`}),$}function Z(t,r,n,s={}){let{app:e,blocks:l=n?e?.viewSpecs?.[n.kind]?.[s.slot??"page"]:e?.home}=s;if(!l?.length)return[];let i=s.firstHeading??(n||s.blocks?void 0:1),y=be(t,r,n,{...s,money:s.money??e?.brand,firstHeading:i});return n&&!y.node?[]:ye(typeof l[0]?.t=="string"?l:ge(l),y)}var Ae=240,ke=10,Ce=1160,je=40,Me=640,Oe=3,Ie=t=>Math.max(1,Math.floor((Math.min(t,Ce)-je+ke)/(Ae+ke)));function Be(t,r,n,s){let{app:e}=s,l=s.width??1440,i=s.today??new Date().toISOString().slice(0,10),y=t.seenBy(r),u=y.schema,A=y.graph,O=me(e),$=typeof n=="string"?n.trim():n.slug,I=typeof n=="string"?O.find(a=>a.slug===$||a.title===$||a.address===$):O.find(a=>a.slug===n.slug&&a.kind===n.kind)??n,R=!I&&typeof n=="string"?A.getNode($):void 0;if(!I&&!R)return{ok:!1,error:`"${$}" is not a place this app has, nor a record this seat can see.`,places:O.map(a=>a.slug)};let N=[],d=e.viewSpecs??{},k=Ie(l),w=(a,h)=>Z(y,null,a,{app:e,today:i,...h}),D=(a,h,b)=>{let g=u.tryDefinition(a.kind),S=T(g,a);if(h==="name")return{id:a.id,kind:a.kind,title:S,parts:[]};if(d[a.kind]?.[h]){let j=w(a,{slot:h}),[F,...v]=j,C=F?.t==="title";return{id:a.id,kind:a.kind,title:C?F.text:S,parts:p(C?v:j,b,`views.${a.kind}.${h}`,` (${a.id})`,C?1:0)}}if(h==="row")return{id:a.id,kind:a.kind,title:S,parts:[]};let c=g?.computed?J(u,A,a):a,G=H(c,g,{limit:3,said:[S],glance:!0});return{id:a.id,kind:a.kind,title:S,parts:G.map(j=>({t:"text",text:j.alone}))}};function p(a,h,b,g="",S=0){let x=[];return a.forEach((c,G)=>{let j=`${b}.${G+S}`;switch("problem"in c&&c.problem&&N.push({at:`${j}${g}`,says:c.problem}),c.t){case"title":x.push({t:"heading",level:3,text:c.text});return;case"text":x.push({t:"text",text:c.text,...c.tone?{tone:c.tone}:{}});return;case"badge":x.push({t:"badge",text:c.text});return;case"field":x.push({t:"field",label:c.label,text:c.text});return;case"progress":x.push({t:"progress",label:c.label,text:c.text});return;case"group":x.push(...p(c.blocks,h,`${j}.group`,g));return;case"when":x.push(...p(c.blocks,h,`${j}.show`,g));return;case"divider":case"figure":return;case"headline":x.push({t:"heading",level:c.level,text:c.text});return;case"number":x.push({t:"figure",text:c.text,...c.label?{label:c.label}:{}});return;case"list":{if(c.failed){x.push({t:"text",text:"\u2014"});return}if(c.members.length===0){c.empty&&x.push({t:"list",as:c.as,columns:1,groups:[],empty:c.empty});return}let F=h+1,v=F>Oe?"name":c.as,C=(c.groups??[{value:null,members:c.members}]).map(W=>({..."heading"in W&&W.heading?{heading:W.heading}:{},items:W.members.map(De=>D(De,v,F))}));x.push({t:"list",as:v,columns:v==="card"?k:1,groups:C,...c.more>0?{more:c.more}:{}});return}}}),x}let m=[],o,f,P;if(R){f="record";let a=u.tryDefinition(R.kind),h=T(a,R);P={slug:R.id,title:h,kind:R.kind,address:ie(u,R.kind,R.id)},d[R.kind]?.page&&m.push(...p(w(R,{slot:"page"}),1,`views.${R.kind}.page`));let g=a?.computed?J(u,A,R):R;for(let S of oe(a,H(g,a,{said:[h]}))){S.title&&m.push({t:"heading",level:2,text:S.title});for(let x of S.fields)m.push({t:"field",label:x.label,text:x.value})}}else{let a=I;P={slug:a.slug,title:a.title,kind:a.kind,address:a.address};let h=a.lens?ue(e).drawn.find(b=>b.as===a.slug&&(a.kind===null||b.kinds.includes(a.kind))):void 0;if(a.kind===null){let b=e.brand,g=b?.name??e.name,S=b?.logo&&de(b.logo)?b.logo:void 0;if(o={name:g,...b?.subtitle?{subtitle:b.subtitle}:{},...S?{logo:{alt:b?.logoAlt??g,...le(S)?{drawn:"inline SVG"}:{drawn:"image",src:S}}}:{}},e.home)f="blocks",m=p(w(null,{}),0,"views.home");else{f="derived";let x=new Set(e.pages?.hide??[]),c=pe(u.kinds,e.pages?.order).filter(G=>!x.has(G));m.push({t:"heading",level:1,text:e.name??"Home"});for(let G of c){let j=A.nodesOfKind(G).filter(F=>E(u.tryDefinition(G),F)).length;j>0&&m.push({t:"text",text:`${j} ${V(u,G,j)}`})}}}else if(h?.lens==="blocks")f="lens:blocks",m=p(w(null,{blocks:h.options.blocks??[]}),0,`lenses.${h.index}.options.blocks`);else if(h?.lens==="columns"){f="lens:columns";let b=h.options.bindings??{};for(let g of Object.keys(b)){let S=b[g]?.column;if(!S)continue;let x=L(u,g,S),c=A.nodesOfKind(g).filter(v=>E(u.tryDefinition(g),v));Object.keys(b).length>1&&m.push({t:"heading",level:2,text:V(u,g,2).replace(/^./,v=>v.toUpperCase())}),m.push({t:"text",text:`${c.length} ${V(u,g,c.length)} in columns by ${_(u.tryDefinition(g),S).toLowerCase()}.`});let G=x.map(v=>({column:v,items:c.filter(C=>U(C,S,x)===v.value).map(C=>D(C,"card",1))})).filter(({column:v,items:C})=>v.value!==null||C.length>0).map(({column:v,items:C})=>({heading:`${v.label} (${C.length})`,items:C}));m.push({t:"list",as:"card",columns:1,groups:G});let j=new Map;for(let v of c)for(let C of Q(t,r,v,S,x))j.set(C.to,(j.get(C.to)??new Set).add(`"${C.title}"`));let F=x.filter(v=>v.value!==null&&j.has(v.value)).map(v=>`to ${v.label} by ${[...j.get(v.value)].join(" or ")}`);m.push({t:"text",text:F.length>0?`Moves: ${F.join("; ")}.`:"Moves: none for this seat."})}}else if(h?.lens==="coverage")f="lens:coverage",m=$e(u,A,h.options);else if(h){f=`lens:${h.lens}`;let b=h.kinds.flatMap(g=>A.nodesOfKind(g).filter(S=>E(u.tryDefinition(g),S)));m.push({t:"text",text:`A ${h.lens} of ${b.length} ${h.kinds.map(g=>V(u,g,b.length)).join(" and ")}.`}),m.push({t:"list",as:"name",columns:1,groups:[{items:b.map(g=>D(g,"name",1))}]})}else{f="derived";let b=A.nodesOfKind(a.kind).filter(g=>E(u.tryDefinition(a.kind),g));m.push({t:"heading",level:1,text:a.title}),b.length===0?m.push({t:"list",as:"row",columns:1,groups:[],empty:`No ${V(u,a.kind,0)} yet.`}):m.push({t:"list",as:"row",columns:1,groups:[{items:b.map(g=>D(g,"row",1))}]})}}let M=r.kind==="system"?"the system":(r.roles??[]).length>0?(r.roles??[]).join(", "):r.kind,K=l<Me?"phone":"wide",B=P.kind===null?Ge(u,A):[],ee={...o?{masthead:o}:{},...B.length>0?{facts:B}:{},place:P,seat:M,width:l,variant:K,drawnBy:f,parts:m,problems:N};return{ok:!0,description:{...ee,text:Se(ee)}}}function Ge(t,r){let n=he(t,r,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,l])=>{let i=l.label??ne(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 V(t,r,n){let s=t.tryDefinition(r);if(n===1)return s?.noun??r;let e=re(t,r);return e.charAt(0).toLowerCase()+e.slice(1)}function Se(t){let r=[`${t.place.title} (${t.place.address}) \u2014 as ${t.seat}, ${t.width} wide (${t.variant}).`],n=t.masthead;n&&r.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,l)=>{for(let i of e)switch(i.t){case"heading":r.push(`${l}${"#".repeat(i.level)} ${i.text}`);break;case"text":r.push(`${l}${i.text}`);break;case"badge":r.push(`${l}[${i.text}]`);break;case"field":case"progress":r.push(`${l}${i.label}: ${i.text}`);break;case"figure":r.push(`${l}${i.text}${i.label?` \u2014 ${i.label}`:""}`);break;case"list":if(i.groups.length===0){i.empty&&r.push(`${l}(${i.empty})`);break}for(let y of i.groups){y.heading&&r.push(`${l}${y.heading}:`);for(let u of y.items)r.push(`${l}${y.heading?" ":""}- ${u.title}`),s(u.parts,`${l}${y.heading?" ":" "}`)}i.as==="card"&&i.columns>1&&r.push(`${l}(cards, ${i.columns} across)`),i.more&&r.push(`${l}and ${i.more} more`);break}};if(s(t.parts,""),t.facts){r.push("Facts of the whole graph (what fact('<name>') reads):");for(let e of t.facts)r.push(`- ${e.label} (${e.name}): ${e.value??`not worked out \u2014 ${e.refused}`}`)}if(t.problems.length>0){r.push("Problems:");for(let e of t.problems)r.push(`- ${e.at}: ${e.says}`)}return r.join(`
|
|
1
|
+
import{a as ge,b as ye,e as he,f as J,g as be}from"./chunk.ISAMJ7AK.js";import{f as fe}from"./chunk.6XBLDV4A.js";import{$a as ae,A as z,G as E,I as T,Jb as ue,L as ne,M as te,N as X,O as re,Pa as ie,R as _,Rb as pe,Tb as me,U as H,V as oe,_a as q,ea as se,lb as le,nb as de,zb as ce}from"./chunk.ZQ4HFIIS.js";function Pe(t,r,n){let s=t.tryDefinition(r)?.fields.shape,e=z(s?.[n]),l=!1,i=!1;for(;e&&(e.type==="optional"||e.type==="default"||e.type==="nullable"||e.type==="prefault");)(e.type==="optional"||e.type==="nullable")&&(l=!0),(e.type==="default"||e.type==="prefault")&&(i=!0),e=z(e.innerType);if(e?.type!=="enum")return;let y=(e.entries?Object.values(e.entries):e.values??[]).filter(u=>typeof u=="string");return y.length>0?{values:y,empty:l&&!i}:void 0}function L(t,r,n){let s=Pe(t,r,n);if(!s)return[];let e=t.tryDefinition(r),l=s.values.map(i=>({value:i,label:te(e,n,i)}));return s.empty&&l.push({value:null,label:`No ${_(e,n).toLowerCase()}`}),l}function U(t,r,n){let s=t[r];return typeof s=="string"&&n.some(e=>e.value===s)?s:null}function Q(t,r,n,s,e=L(t.schema,n.kind,s)){let l=we(t.schema,t.allMutations(),n.kind,s,e),i=U(n,s,e),y=[];for(let{value:u,by:A,acts:O}of l)if(u!==i)for(let $ of O){let I=A==="step"?{[$.subject.arg]:n.id}:{[$.subject.arg]:n.id,[s]:u},R={name:$.name,args:I};if($.input.safeParse(I).success&&t.permits(R,r).ok){try{se(t.graph,$,I)}catch{continue}y.push({to:u,call:R,title:$.title??$.name});break}}return y}function we(t,r,n,s,e=L(t,n,s)){let l=xe(t,r,n,s),i=ve(t,r,n,s);return e.flatMap(y=>{if(y.value===null)return[];let u=l.filter(A=>A.sets?.[s]===y.value);return[{value:y.value,label:y.label,by:u.length>0?"step":i.length>0?"value":"none",acts:u.length>0?u:i}]})}function xe(t,r,n,s){return r.filter(e=>e.subject!==void 0&&e.derived===void 0&&typeof e.sets?.[s]=="string"&&q(t,e).includes(n))}function ve(t,r,n,s){let e=t.tryDefinition(n);return e?r.filter(l=>{if(!l.subject||!q(t,l).includes(n)||!ae(l,e).includes(s))return!1;let i=l.input.shape;return i!==void 0&&s in i}).sort((l,i)=>+(l.derived!==void 0)-+(i.derived!==void 0)):[]}var Y=(t,r)=>r&&t[r]!==void 0?String(t[r]):"";function Re(t,r,n){let s=d=>t.tryDefinition(d)?r.nodesOfKind(d).filter(k=>E(t.tryDefinition(d),k)):[],e=s(n.rows),l=s(n.columns),i=new Set(e.map(d=>d.id)),y=new Set(l.map(d=>d.id)),u=r.allEdges(),A=[],O=n.link;if(typeof O=="string"){let d=p=>t.tryDefinition(p)?.edges?.[O]?.to,k=(d(n.columns)??[]).some(p=>p===n.rows||p==="*"),w=(d(n.rows)??[]).some(p=>p===n.columns||p==="*"),D=k||!w;for(let p of u){if(p.kind!==O)continue;let m=D?p.to:p.from,o=D?p.from:p.to;i.has(m)&&y.has(o)&&A.push({rowId:m,columnId:o,via:[]})}}else{let d=new Map(O.path.map(w=>[w,new Map]));for(let w of u){let D=d.get(w.kind);if(!D)continue;let p=D.get(w.from);p?p.push(w.to):D.set(w.from,[w.to]);let m=D.get(w.to);m?m.push(w.from):D.set(w.to,[w.from])}let k=new Set;for(let w of l){let D=[{id:w.id,via:[]}];for(let p of O.path){let m=[],o=new Set;for(let f of D)for(let P of d.get(p).get(f.id)??[])o.has(`${f.id}|${P}`)||(o.add(`${f.id}|${P}`),m.push({id:P,via:[...f.via,f.id]}));D=m}for(let p of D){let m=`${p.id}|${w.id}`;!i.has(p.id)||k.has(m)||(k.add(m),A.push({rowId:p.id,columnId:w.id,via:p.via.slice(1)}))}}}let $=n.groupOrder??[],I=d=>$.indexOf(d)===-1?$.length:$.indexOf(d),R=e.map(d=>{let k=d;return{node:d,label:String(k.label??T(t.tryDefinition(d.kind),d)),group:Y(k,n.rowGroup),ref:Y(k,n.rowRef)}}).sort((d,k)=>I(d.group)-I(k.group)||(d.ref<k.ref?-1:d.ref>k.ref?1:0)),N=l.map(d=>({node:d,label:T(t.tryDefinition(d.kind),d),group:Y(d,n.columnGroup)})).sort((d,k)=>d.group<k.group?-1:d.group>k.group?1:d.node.id<k.node.id?-1:d.node.id>k.node.id?1:0);return{rows:R,columns:N,cells:A}}function $e(t,r,n){let{rows:s,columns:e,cells:l}=Re(t,r,n),i=(o,f)=>X(t,o,f),y=o=>X(t,o,1).replace(/^1 /,""),u=o=>({id:o.id,kind:o.kind,title:T(t.tryDefinition(o.kind),o),parts:[]}),A=o=>{let f=r.getNode(o);if(!f)return null;let P=t.tryDefinition(f.kind),M=T(P,f),K=H(f,P,{limit:3,said:[M],glance:!0}).map(B=>B.alone.startsWith(B.label)?`${B.label.toLowerCase()}${B.alone.slice(B.label.length)}`:B.alone);return[M,...K].join(", ")},O=typeof n.link=="string"?[]:n.link.path.slice(0,-1).flatMap((o,f,P)=>{let M=ce(t,n.columns,P.slice(0,f+1));return M.ok?[...M.reached]:[]}),$=[{t:"text",text:`${i(n.rows,s.length)} against ${i(n.columns,e.length)}${O.length>0?`, through ${[...new Set(O)].map(o=>i(o,2).replace(/^2 /,"")).join(" and ")}`:""}${e.length>0?`: ${e.map(o=>o.label).join(", ")}`:""}.`}],I=new Map(e.map(o=>[o.node.id,o.label])),R=new Map(e.map((o,f)=>[o.node.id,f])),N=new Map,d=new Map;for(let o of l){let f=N.get(o.rowId);f?f.push(o):N.set(o.rowId,[o]);let P=d.get(o.columnId);P?P.add(o.rowId):d.set(o.columnId,new Set([o.rowId]))}for(let o of s){let P=[...N.get(o.node.id)??[]].sort((M,K)=>R.get(M.columnId)-R.get(K.columnId)).map(M=>{let K=M.via.map(A).filter(B=>B!==null);return`${I.get(M.columnId)}${K.length>0?` (${K.join("; ")})`:""}`});$.push({t:"field",label:o.label,text:P.length>0?P.join(", "):"none"})}$.push({t:"list",as:"name",columns:1,groups:e.map(o=>{let f=d.get(o.node.id)??new Set,P=s.filter(M=>f.has(M.node.id)).map(M=>u(M.node));return{heading:`${o.label} (${P.length})`,items:P}})});let k=new Set(l.map(o=>o.rowId)),w=new Set(l.map(o=>o.columnId)),D=s.filter(o=>!k.has(o.node.id)),p=e.filter(o=>!w.has(o.node.id)),m=n.rows===n.columns;return D.length>0&&$.push({t:"text",text:`${m?`${D.length} with none across`:`${i(n.rows,D.length)} with no ${y(n.columns)}`}: ${D.map(o=>o.label).join(", ")}.`}),p.length>0&&$.push({t:"text",text:`${m?`${p.length} with none down`:`${i(n.columns,p.length)} on no ${y(n.rows)}`}: ${p.map(o=>o.label).join(", ")}.`}),$}function Z(t,r,n,s={}){let{app:e,blocks:l=n?e?.viewSpecs?.[n.kind]?.[s.slot??"page"]:e?.home}=s;if(!l?.length)return[];let i=s.firstHeading??(n||s.blocks?void 0:1),y=be(t,r,n,{...s,money:s.money??e?.brand,firstHeading:i});return n&&!y.node?[]:ye(typeof l[0]?.t=="string"?l:ge(l),y)}var Ae=240,ke=10,Ce=1160,je=40,Me=640,Oe=3,Ie=t=>Math.max(1,Math.floor((Math.min(t,Ce)-je+ke)/(Ae+ke)));function Be(t,r,n,s){let{app:e}=s,l=s.width??1440,i=s.today??new Date().toISOString().slice(0,10),y=t.seenBy(r),u=y.schema,A=y.graph,O=me(e),$=typeof n=="string"?n.trim():n.slug,I=typeof n=="string"?O.find(a=>a.slug===$||a.title===$||a.address===$):O.find(a=>a.slug===n.slug&&a.kind===n.kind)??n,R=!I&&typeof n=="string"?A.getNode($):void 0;if(!I&&!R)return{ok:!1,error:`"${$}" is not a place this app has, nor a record this seat can see.`,places:O.map(a=>a.slug)};let N=[],d=e.viewSpecs??{},k=Ie(l),w=(a,h)=>Z(y,null,a,{app:e,today:i,...h}),D=(a,h,b)=>{let g=u.tryDefinition(a.kind),S=T(g,a);if(h==="name")return{id:a.id,kind:a.kind,title:S,parts:[]};if(d[a.kind]?.[h]){let j=w(a,{slot:h}),[F,...v]=j,C=F?.t==="title";return{id:a.id,kind:a.kind,title:C?F.text:S,parts:p(C?v:j,b,`views.${a.kind}.${h}`,` (${a.id})`,C?1:0)}}if(h==="row")return{id:a.id,kind:a.kind,title:S,parts:[]};let c=g?.computed?J(u,A,a):a,G=H(c,g,{limit:3,said:[S],glance:!0});return{id:a.id,kind:a.kind,title:S,parts:G.map(j=>({t:"text",text:j.alone}))}};function p(a,h,b,g="",S=0){let x=[];return a.forEach((c,G)=>{let j=`${b}.${G+S}`;switch("problem"in c&&c.problem&&N.push({at:`${j}${g}`,says:c.problem}),c.t){case"title":x.push({t:"heading",level:3,text:c.text});return;case"text":x.push({t:"text",text:c.text,...c.tone?{tone:c.tone}:{}});return;case"badge":x.push({t:"badge",text:c.text});return;case"field":x.push({t:"field",label:c.label,text:c.text});return;case"progress":x.push({t:"progress",label:c.label,text:c.text});return;case"group":x.push(...p(c.blocks,h,`${j}.group`,g));return;case"when":x.push(...p(c.blocks,h,`${j}.show`,g));return;case"divider":case"figure":return;case"headline":x.push({t:"heading",level:c.level,text:c.text});return;case"number":x.push({t:"figure",text:c.text,...c.label?{label:c.label}:{}});return;case"list":{if(c.failed){x.push({t:"text",text:"\u2014"});return}if(c.members.length===0){c.empty&&x.push({t:"list",as:c.as,columns:1,groups:[],empty:c.empty});return}let F=h+1,v=F>Oe?"name":c.as,C=(c.groups??[{value:null,members:c.members}]).map(W=>({..."heading"in W&&W.heading?{heading:W.heading}:{},items:W.members.map(De=>D(De,v,F))}));x.push({t:"list",as:v,columns:v==="card"?k:1,groups:C,...c.more>0?{more:c.more}:{}});return}}}),x}let m=[],o,f,P;if(R){f="record";let a=u.tryDefinition(R.kind),h=T(a,R);P={slug:R.id,title:h,kind:R.kind,address:ie(u,R.kind,R.id)},d[R.kind]?.page&&m.push(...p(w(R,{slot:"page"}),1,`views.${R.kind}.page`));let g=a?.computed?J(u,A,R):R;for(let S of oe(a,H(g,a,{said:[h]}))){S.title&&m.push({t:"heading",level:2,text:S.title});for(let x of S.fields)m.push({t:"field",label:x.label,text:x.value})}}else{let a=I;P={slug:a.slug,title:a.title,kind:a.kind,address:a.address};let h=a.lens?ue(e).drawn.find(b=>b.as===a.slug&&(a.kind===null||b.kinds.includes(a.kind))):void 0;if(a.kind===null){let b=e.brand,g=b?.name??e.name,S=b?.logo&&de(b.logo)?b.logo:void 0;if(o={name:g,...b?.subtitle?{subtitle:b.subtitle}:{},...S?{logo:{alt:b?.logoAlt??g,...le(S)?{drawn:"inline SVG"}:{drawn:"image",src:S}}}:{}},e.home)f="blocks",m=p(w(null,{}),0,"views.home");else{f="derived";let x=new Set(e.pages?.hide??[]),c=pe(u.kinds,e.pages?.order).filter(G=>!x.has(G));m.push({t:"heading",level:1,text:e.name??"Home"});for(let G of c){let j=A.nodesOfKind(G).filter(F=>E(u.tryDefinition(G),F)).length;j>0&&m.push({t:"text",text:`${j} ${V(u,G,j)}`})}}}else if(h?.lens==="blocks")f="lens:blocks",m=p(w(null,{blocks:h.options.blocks??[]}),0,`lenses.${h.index}.options.blocks`);else if(h?.lens==="columns"){f="lens:columns";let b=h.options.bindings??{};for(let g of Object.keys(b)){let S=b[g]?.column;if(!S)continue;let x=L(u,g,S),c=A.nodesOfKind(g).filter(v=>E(u.tryDefinition(g),v));Object.keys(b).length>1&&m.push({t:"heading",level:2,text:V(u,g,2).replace(/^./,v=>v.toUpperCase())}),m.push({t:"text",text:`${c.length} ${V(u,g,c.length)} in columns by ${_(u.tryDefinition(g),S).toLowerCase()}.`});let G=x.map(v=>({column:v,items:c.filter(C=>U(C,S,x)===v.value).map(C=>D(C,"card",1))})).filter(({column:v,items:C})=>v.value!==null||C.length>0).map(({column:v,items:C})=>({heading:`${v.label} (${C.length})`,items:C}));m.push({t:"list",as:"card",columns:1,groups:G});let j=new Map;for(let v of c)for(let C of Q(t,r,v,S,x))j.set(C.to,(j.get(C.to)??new Set).add(`"${C.title}"`));let F=x.filter(v=>v.value!==null&&j.has(v.value)).map(v=>`to ${v.label} by ${[...j.get(v.value)].join(" or ")}`);m.push({t:"text",text:F.length>0?`Moves: ${F.join("; ")}.`:"Moves: none for this seat."})}}else if(h?.lens==="coverage")f="lens:coverage",m=$e(u,A,h.options);else if(h){f=`lens:${h.lens}`;let b=h.kinds.flatMap(g=>A.nodesOfKind(g).filter(S=>E(u.tryDefinition(g),S)));m.push({t:"text",text:`A ${h.lens} of ${b.length} ${h.kinds.map(g=>V(u,g,b.length)).join(" and ")}.`}),m.push({t:"list",as:"name",columns:1,groups:[{items:b.map(g=>D(g,"name",1))}]})}else{f="derived";let b=A.nodesOfKind(a.kind).filter(g=>E(u.tryDefinition(a.kind),g));m.push({t:"heading",level:1,text:a.title}),b.length===0?m.push({t:"list",as:"row",columns:1,groups:[],empty:`No ${V(u,a.kind,0)} yet.`}):m.push({t:"list",as:"row",columns:1,groups:[{items:b.map(g=>D(g,"row",1))}]})}}let M=r.kind==="system"?"the system":(r.roles??[]).length>0?(r.roles??[]).join(", "):r.kind,K=l<Me?"phone":"wide",B=P.kind===null?Ge(u,A):[],ee={...o?{masthead:o}:{},...B.length>0?{facts:B}:{},place:P,seat:M,width:l,variant:K,drawnBy:f,parts:m,problems:N};return{ok:!0,description:{...ee,text:Se(ee)}}}function Ge(t,r){let n=he(t,r,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,l])=>{let i=l.label??ne(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 V(t,r,n){let s=t.tryDefinition(r);if(n===1)return s?.noun??r;let e=re(t,r);return e.charAt(0).toLowerCase()+e.slice(1)}function Se(t){let r=[`${t.place.title} (${t.place.address}) \u2014 as ${t.seat}, ${t.width} wide (${t.variant}).`],n=t.masthead;n&&r.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,l)=>{for(let i of e)switch(i.t){case"heading":r.push(`${l}${"#".repeat(i.level)} ${i.text}`);break;case"text":r.push(`${l}${i.text}`);break;case"badge":r.push(`${l}[${i.text}]`);break;case"field":case"progress":r.push(`${l}${i.label}: ${i.text}`);break;case"figure":r.push(`${l}${i.text}${i.label?` \u2014 ${i.label}`:""}`);break;case"list":if(i.groups.length===0){i.empty&&r.push(`${l}(${i.empty})`);break}for(let y of i.groups){y.heading&&r.push(`${l}${y.heading}:`);for(let u of y.items)r.push(`${l}${y.heading?" ":""}- ${u.title}`),s(u.parts,`${l}${y.heading?" ":" "}`)}i.as==="card"&&i.columns>1&&r.push(`${l}(cards, ${i.columns} across)`),i.more&&r.push(`${l}and ${i.more} more`);break}};if(s(t.parts,""),t.facts){r.push("Facts of the whole graph (what fact('<name>') reads):");for(let e of t.facts)r.push(`- ${e.label} (${e.name}): ${e.value??`not worked out \u2014 ${e.refused}`}`)}if(t.problems.length>0){r.push("Problems:");for(let e of t.problems)r.push(`- ${e.at}: ${e.says}`)}return r.join(`
|
|
2
2
|
`)}export{L as a,U as b,Q as c,we as d,xe as e,ve as f,Z as g,Be as h,Se as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as ee}from"./chunk.G4JJXA63.js";import{b as nt}from"./chunk.Y4R77MKX.js";import{d as tt}from"./chunk.42U4UBDE.js";import"./chunk.LW7KV5SL.js";import{Ea as V,I as Ye,Ka as fe,O as ze,Oa as Se,Pa as Xe,Q as Je,S as Ae,T as F,Ta as G,U as qe,Ub as et,Xa as Ze,oa as Ve,pa as Qe}from"./chunk.ZQ4HFIIS.js";import"./chunk.AJZBJBMO.js";var vt="Nothing by that name here.",$=o=>o.normalize("NFD").replace(/\p{M}+/gu,"").toLowerCase().replace(/[’']/g,"'").replace(/[^\p{L}\p{N}' ]+/gu," ").replace(/\s+/g," ").trim(),At=/^(?:(?:can you |could you |please )?(?:go|take me|bring me|head|jump|navigate|switch|get me)(?: back)? to|(?:please )?(?:open|show(?: me)?|bring up|let me see|view)) (.+)$/,St=/^(?:(?:can you |could you |please )?tell me (?:about|of)|what(?: is|'s| are) (?:in |on )?|describe|explain|who(?: is|'s)) (.+)$/,Nt=/^(?:what(?: is|'s| am i looking at| do i see)(?: (?:here|this|on (?:this|the) (?:page|screen)|in view|this place|this page))?|where am i|describe (?:this|here|this place|this page)|tell me about (?:this|here|this place|this page))$/,st=new Set(["here","this","this place","this page","on this page","on the page","on this screen","in view"]),Ot=/^(?:date|day|when|on|at|the date|the day)$/,Ct=/^(?:what(?: is|'s) (?:wrong|broken|the (?:problem|matter|trouble))|what needs (?:fixing|attention|doing)|any (?:problems|issues|trouble)|(?:show(?: me)? |go to |open )?(?:the )?(?:problems|issues|trouble|standing|what's wrong)|is (?:anything|something) (?:wrong|broken)|are there (?:any )?(?:problems|issues))(?: (?:with|about|on|in) (.+))?$/,Y=o=>o.replace(/^(?:the|a|an|my|our) /,""),te=new Set(["the","a","an","my","our","all","any","of","that","which","who","are","is","be","what","whats","what's","with","me","show","list","every","there","do","i","have","we","due","for","please","were","was","by","from","in","on"]),ct=864e5,se=o=>Date.UTC(Number(o.slice(0,4)),Number(o.slice(5,7))-1,Number(o.slice(8,10))),Me=o=>new Date(o).toISOString().slice(0,10),C=(o,i)=>Me(se(o)+i*ct),jt=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Mt=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ut=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Dt="(monday|tuesday|tues|wednesday|thursday|thurs|friday|saturday|sunday)",ot="(january|february|march|april|may|june|july|august|september|october|november|december|jan|feb|mar|apr|jun|jul|aug|sept|sep|oct|nov|dec)",rt="(\\d{1,2})(?:st|nd|rd|th)?",Wt=o=>jt.findIndex(i=>i.startsWith(o.slice(0,3))),it=o=>ut.findIndex(i=>o.startsWith(i.toLowerCase()));function xt(o,i){let p=new Date(se(o)),u=o.slice(0,4)===i.slice(0,4)?"":` ${o.slice(0,4)}`;return`${Mt[p.getUTCDay()]} ${p.getUTCDate()} ${ut[p.getUTCMonth()]}${u}`}function Ne(o,i,p){if(o<0||i<1||i>31)return;let u=Number(p.slice(0,4)),c=k=>{let j=Date.UTC(k,o,i);return new Date(j).getUTCMonth()===o?Me(j):void 0},y=c(u);if(y)return se(y)<se(p)-183*ct?c(u+1):y}function Oe(o,i,p){let u=new Date(se(i)).getUTCDay(),c=f=>{let N=(u-p+7)%7,w=C(i,-N+f*7);return{from:w,to:C(w,6)}},y=()=>{let f=`${i.slice(0,8)}01`,N=new Date(Date.UTC(Number(i.slice(0,4)),Number(i.slice(5,7)),1));return{from:f,to:C(Me(N.getTime()),-1)}},k=f=>f?{from:f,to:f,day:xt(f,i)}:void 0,j=(f,N)=>{let w=Wt(N);return k(f==="this"||f==="next"?C(c(f==="next"?1:0).from,(w-p+7)%7):f==="last"?C(i,-((u-w+6)%7+1)):C(i,(w-u+7)%7))},z=f=>{let N=C(i,u===0?-1:6-u);return{from:C(N,f*7),to:C(N,f*7+1)}},U="\\b(?:(?:due |for |on |by )(?:the )?)?",P=[[/\b(?:overdue|past due|late)\b/,()=>({overdue:!0,to:C(i,-1)})],[/\b(?:due |for |on )?today\b/,()=>({from:i,to:i})],[/\b(?:due |for |on )?tomorrow\b/,()=>k(C(i,1))],[/\b(?:due |for |on )?yesterday\b/,()=>k(C(i,-1))],[/\b(?:due |for |on )?this week\b/,()=>c(0)],[/\b(?:due |for |on )?next week\b/,()=>c(1)],[/\b(?:due |for |on )?(?:last|previous) week\b/,()=>c(-1)],[/\b(?:due |for |on )?next weekend\b/,()=>z(1)],[/\b(?:due |for |on )?(?:this |the )?weekend\b/,()=>z(0)],[/\b(?:due |for |on )?this month\b/,()=>y()],[new RegExp(`${U}(\\d{4}) (\\d{2}) (\\d{2})\\b`),f=>k(Ne(Number(f[2])-1,Number(f[3]),`${f[1]}-01-01`))],[new RegExp(`${U}${rt} (?:of )?${ot}\\b`),f=>k(Ne(it(f[2]),Number(f[1]),i))],[new RegExp(`${U}${ot} (?:the )?${rt}\\b`),f=>k(Ne(it(f[1]),Number(f[2]),i))],[new RegExp(`${U}(?:(this|next|last|coming) )?${Dt}\\b`),f=>j(f[1],f[2])]];for(let[f,N]of P){let w=o.match(f);if(!w)continue;let S=N(w);if(S)return{ask:{words:w[0],...S},rest:o.replace(w[0]," ").replace(/\s+/g," ").trim()}}}function ft(o,i,p={}){let u=p.principal??{kind:"human"},c=o.seenBy(u),y=c.schema,k=p.today??o.today?.()??new Date().toISOString().slice(0,10),j=p.weekStartsOn??1,z=o.kindsKeptFrom(u),U=o.modules.disabledKinds,P=y.kinds.filter(e=>!z.has(e)&&!U.has(e)),f=new Set(P),N=(p.places??[]).filter(e=>e.kind===null||f.has(e.kind)),w=c.graph,S=$(i).replace(/[?.!]+$/,"").trim();if(S.length===0)return{unresolved:!0};let D=e=>y.tryDefinition(e),T=e=>Ye(D(e.kind),e),H=e=>ze(y,e),oe=e=>N.find(t=>t.kind===e&&t.address===Se(y,e))?.address??Se(y,e),ge=e=>Xe(y,e.kind,e.id),De=e=>({to:"record",id:e.id,kind:e.kind,label:T(e),address:ge(e),said:`Went to ${T(e)}.`}),We=e=>{let t=`Went to ${e.title}.`;return e.kind===null?{to:"place",slug:e.slug,title:e.title,address:e.address,...e.slug==="overview"?{face:"scene"}:{},said:t}:e.lens||e.address.startsWith("/places/")?{to:"picture",kind:e.kind,as:e.slug,title:e.title,address:e.address,said:t}:{to:"kind",kind:e.kind,title:e.title,address:e.address,said:t}},xe=()=>({unresolved:!0,say:vt}),re=e=>{let t=D(e.kind),s=qe(e,t,{limit:3}).map(r=>r.alone.startsWith(r.label)?r.alone:`${r.label.toLowerCase()} ${r.alone}`).join(", "),n=c.violations().filter(r=>r.nodeIds.includes(e.id));return[`${T(e)} \u2014 ${Ae(F(t,e.kind))}${s?` (${s})`:""}.`,n.length>0?`Trouble: ${n.map(r=>r.message).join("; ")}.`:""].filter(Boolean).join(" ")},ie=e=>{let t=new Set([G(e),G(Y(e))]);for(let n of[" page"," view"," lens"," place"," picture"," list"])e.endsWith(n)&&(t.add(G(e.slice(0,-n.length))),t.add(G(Y(e.slice(0,-n.length)))));t.delete("");let s=n=>t.has(G(n.title))||t.has(G(Y($(n.title))))||t.has(G(n.slug));return N.find(n=>n.kind!==null&&n.address.startsWith("/places/")&&s(n))??N.find(s)},pe=e=>{let t=Ze(o,e,{principal:u,today:k,limit:6,...p.selection?{from:p.selection}:{}}),s=t.hits.filter(r=>r.about==="node"&&f.has(r.kind)&&w.getNode(r.id)!==void 0),n=s.filter(r=>r.why.field==="label"&&r.why.strength==="exact");return n.length===1?{one:w.getNode(n[0].id),picks:s}:n.length>1?{picks:n}:s.length===1&&t.total===1?{one:w.getNode(s[0].id),picks:s}:{picks:s}},Ee=e=>{let t=e.map(s=>`${s.label} (${F(D(s.kind),s.kind)})`);return`${e.length===1?"One thing matches":`${e.length} things match`}: ${t.join("; ")}.`},Re=(e,t)=>{if(st.has(e))return Le();let s=t?pe(Y(e)||e):void 0,n=s?.one&&$(T(s.one))===$(Y(e)||e)?void 0:ie(e);if(n){let l=We(n);return{about:"place",say:t?`${l.said} ${ye(n)}`:l.said,moves:[l],subject:n.slug}}let r=pe(Y(e)||e);if(r.one){let l=De(r.one);return{about:t?"describe":"record",say:t?`${l.said} ${re(r.one)}`:l.said,moves:[l],subject:r.one.id}}if(r.picks.length>0)return{about:"picks",say:Ee(r.picks),moves:[],picks:r.picks};let h=de(e);if(h)return h;let d=Pe(e);if(d){if(d.rest.split(" ").every(l=>l===""||te.has(l))){let l=H(d.kind),v={to:"kind",kind:d.kind,title:l,address:oe(d.kind),said:`Went to the ${l.toLowerCase()}.`};return{about:"kind",say:v.said,moves:[v]}}return{unresolved:!0}}return xe()},ye=e=>{if(e.kind===null){let h=P.map(l=>({kind:l,count:w.nodesOfKind(l).length})).filter(l=>l.count>0).map(l=>`${l.count} ${(l.count===1?F(D(l.kind),l.kind):H(l.kind)).toLowerCase()}`),d=c.violations().length;return[h.length>0?`It holds ${he(h)}.`:"It holds nothing yet.",d>0?`${d===1?"One problem":`${d} problems`} to see to.`:""].filter(Boolean).join(" ")}let t=w.nodesOfKind(e.kind).length,s=H(e.kind).toLowerCase(),n=new Set(c.violations().flatMap(h=>h.nodeIds)),r=w.nodesOfKind(e.kind).filter(h=>n.has(h.id)).length;return[e.lens?`It draws the ${s} as ${Ae(e.lens)}${t>0?` \u2014 ${t} of them`:""}.`:`${t===0?"No":t} ${t===1?F(D(e.kind),e.kind):s} ${t===1?"is":"are"} here.`,r>0?`${r} ${r===1?"has":"have"} a problem.`:""].filter(Boolean).join(" ")},Le=()=>{let e=(p.selection??[]).map(s=>w.getNode(s)).find(s=>s!==void 0);if(e)return{about:"here",say:re(e),moves:[],subject:e.id};let t=N.find(s=>s.slug===p.place)??N.find(s=>s.slug==="home");return t?{about:"here",say:`${t.title}. ${ye(t)}`,moves:[],subject:t.slug}:{about:"here",say:ye({slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#"}),moves:[]}},Pe=e=>{let t=P.flatMap(s=>[H(s),F(D(s),s),s].map(n=>({kind:s,name:$(n)}))).filter(s=>s.name.length>0).sort((s,n)=>n.name.length-s.name.length);for(let{kind:s,name:n}of t)if(!(` ${e} `.indexOf(` ${n} `)<0))return{kind:s,rest:` ${e} `.replace(` ${n} `," ").replace(/\s+/g," ").trim()}},ae=(e,t)=>{let s=V(y,e).filters.filter(d=>d.about==="field"&&d.type==="date");if(s.length===0)return;let n=s.find(d=>t.some(l=>$(d.key)===l||$(d.label)===l));if(n)return n;let r=D(e)?.fieldRoles??{};for(let d of["due","deadline","date","when","start","end"]){let l=r[d],v=l?s.find(M=>M.key===l):void 0;if(v)return v}return s.find(d=>["due","deadline","date","when","on","at"].includes(d.key.toLowerCase()))??(s.length===1?s[0]:void 0)},Te=e=>{let t=D(e),s=V(y,e).filters;if(t?.lifecycle)return{conditions:[{key:"is",value:"current"}],holds:d=>fe(be,d,{key:"is",value:"current"})};let r=s.find(d=>d.about==="field"&&d.type==="boolean"&&ne.has($(d.key)));if(r)return{conditions:[{key:r.key,value:"false"}],holds:d=>d[r.key]!==!0};let h=s.find(d=>d.about==="field"&&d.type==="choice"&&(d.options??[]).some(l=>ne.has($(l))));if(h){let d=new Set((h.options??[]).filter(v=>ne.has($(v)))),l=(h.options??[]).filter(v=>!d.has(v));return l.length===1?{conditions:[{key:h.key,value:l[0]}],holds:v=>v[h.key]===l[0]}:"unsayable"}return{conditions:[],holds:()=>!0}},He=(e,t)=>{let s=e.words.startsWith("due")||$(t.key)==="due",n=Ot.test($(t.label));if(e.day)return s?`due ${e.day}`:n?`on ${e.day}`:`${t.label.toLowerCase()} on ${e.day}`;let r=e.words.replace(/^(?:due|for|on|by) (?:the )?/,"");return s?`due ${r}`:n?r:`${t.label.toLowerCase()} ${r}`},me=new Set(c.violations().flatMap(e=>e.nodeIds)),be={schema:y,graph:c.graph,flagged:me,today:k},de=e=>{let t=Oe(e,k,j),s=Pe(t?.rest??e),n=s?.kind,r=(s?.rest??t?.rest??e).split(" ").filter(Boolean);if(!n&&t){let g=e.split(" "),m=P.filter(L=>ae(L,g)!==void 0),R=m.filter(L=>{let b=ae(L,g);return g.some(O=>$(b.key)===O||$(b.label)===O)}),B=m.length===1?m:R;if(B.length!==1)return;n=B[0]}if(!n)return;let h=V(y,n).filters,d=[],l=[],v=[],M=[],q=!1,le=[];for(let g=0;g<r.length;g++){let m=r[g],R=g>0&&(r[g-1]==="not"||r[g-1]==="un"),B=h.find(b=>b.about==="field"&&b.type==="choice"&&(b.options??[]).some(O=>$(O)===m));if(B&&!R){let b=(B.options??[]).find(O=>$(O)===m);d.push({key:B.key,value:b}),l.push(b);continue}let L=h.find(b=>b.about==="field"&&b.type==="boolean"&&[$(b.key),$(b.label)].some(O=>O===m||O===m.replace(/^un/,"")));if(L){let b=!R&&!(m.startsWith("un")&&!$(L.key).startsWith("un"));d.push({key:L.key,value:String(b)}),l.push(b?m:`not ${m.replace(/^un/,"")}`);continue}if(Lt.has(m)&&!R){let b=Te(n);b==="unsayable"?(q=!0,M.push(O=>!lt(y,O))):(d.push(...b.conditions),M.push(b.holds)),l.push(m);continue}m==="not"||m==="un"||t&&h.some(b=>b.type==="date"&&($(b.key)===m||$(b.label)===m))||le.push(m)}if(r=le,r.some(g=>!te.has(g))||!t&&d.length===0&&M.length===0)return;let I=H(n).toLowerCase(),Q=H(n);if(t){let g=ae(n,e.split(" "));if(!g){let m={to:"kind",kind:n,title:Q,address:oe(n),said:`Went to the ${I}.`};return{about:"kind",say:`${ee(Q)} carry no date, so I can't tell which are ${/^(?:due|for|on|overdue|past due|late)\b/.test(t.ask.words)?t.ask.words:`due ${t.ask.words}`}. ${m.said}`,moves:[m]}}if(t.ask.from&&d.push({key:g.key,value:`after:${C(t.ask.from,-1)}`}),t.ask.to&&d.push({key:g.key,value:`before:${C(t.ask.to,1)}`}),t.ask.overdue){let m=Te(n);m==="unsayable"?(q=!0,M.push(R=>!lt(y,R))):(d.push(...m.conditions),M.push(m.holds))}t.ask.overdue?l.push("overdue"):v.push(He(t.ask,g))}let E=w.nodesOfKind(n).filter(g=>d.every(m=>fe(be,g,m))&&M.every(m=>m(g))),K=[...l,...v].join(" and "),J=[...l,I,...v].join(" "),W=E.slice(0,6).map(g=>({about:"node",id:g.id,kind:n,label:T(g),why:{field:d[0]?.key??"label",reading:d[0]?.key??"Name",fragment:K,strength:"field"},current:!0,flagged:me.has(g.id),address:ge(g)})),X=E.length===0?`No ${I} are ${K}.`:`${E.length===1?`One ${F(D(n),n)} is`:`${E.length} ${I} are`} ${K}: ${he(E.slice(0,6).map(T))}${E.length>6?`, and ${E.length-6} more`:""}.`;if(q)return{about:"kind",say:X,moves:[],picks:W,offer:{draft:J,label:"Show as a view"}};let Z=d.map(g=>`${g.key}:${g.value}`).join(","),we=`${oe(n)}?${new URLSearchParams({filter:Z}).toString()}`,_={to:"kind",kind:n,title:ee(J),filter:Z,address:we,said:`Went to the ${J}.`};return{about:"kind",say:`${_.said} ${X}`,moves:[_],picks:W}},Ie=e=>D(e)?.figure==="person"?!0:[e,F(D(e),e),H(e)].some(s=>$(s).split(" ").some(n=>Et.has(n))),gt=e=>{let t=[],s=n=>D(n)?.edges??{};for(let[n,r]of Object.entries(s(e)))for(let h of r.to??[])f.has(h)&&t.push({key:n,direction:"out",far:h,words:dt(`${r.description??""} ${n}`)});for(let n of P)for(let[r,h]of Object.entries(s(n)))(h.to??[]).includes(e)&&t.push({key:r,direction:"in",far:n,words:dt(`${h.inverse??""} ${r}`)});return t},pt=e=>{let t=e.match(/^(who|which|what)\b/)?.[1];if(!t)return;let s=Oe(e,k,j);if(!s||s.ask.overdue)return;let n=s.rest.split(" ").filter(Boolean),r=P.flatMap(a=>[H(a),F(D(a),a),a].map(A=>({kind:a,name:$(A)}))).filter(a=>a.name.length>0).sort((a,A)=>A.name.length-a.name.length),h=` ${n.join(" ")} `,d=[];for(let{kind:a,name:A}of r)h.includes(` ${A} `)&&(h=h.replace(` ${A} `," "),d.includes(a)||d.push(a));let l=h.match(/\b(?:is|are|was|were)\b|'s\b/)?.[0],v=h.replace(/'s\b/g," ").split(" ").filter(a=>a.length>0&&!te.has(a)&&!Ce.has(a)),M=t==="who"?d.find(Ie):d[0];if(!M&&t!=="who")return;let q=d.find(a=>a!==M),le=v.flatMap(a=>[je(a),...at.has(je(a))?[...at]:[]]),I=P.filter(a=>q?a===q:a!==M).flatMap(a=>{let A=ae(a,e.split(" "))??V(y,a).filters.find(x=>x.about==="field"&&x.type==="date");return A?gt(a).filter(x=>(M?x.far===M:Ie(x.far))&&x.far!==a).map(x=>({kind:a,field:A,relation:x,said:v.length===0||le.some(ve=>x.words.some(wt=>Rt(wt,ve)))})):[]}).filter(a=>a.said);if(I.length===0)return;let Q=I.filter(a=>n.some(A=>$(a.field.key)===A||$(a.field.label)===A)),E=I.length===1?I[0]:Q.length===1?Q[0]:void 0;if(!E)return;let{kind:K,field:J,relation:W}=E,X=[...s.ask.from?[{key:J.key,value:`after:${C(s.ask.from,-1)}`}]:[],...s.ask.to?[{key:J.key,value:`before:${C(s.ask.to,1)}`}]:[]],Z=w.nodesOfKind(K).filter(a=>X.every(A=>fe(be,a,A))),we=a=>(W.direction==="out"?c.graph.out(a.id,W.key):c.graph.in(a.id,W.key)).filter(A=>A.kind===W.far&&f.has(W.far)),_=[],g=[];for(let a of Z){let A=we(a);A.length===0&&g.push(a);for(let x of A)_.some(ve=>ve.id===x.id)||_.push(x)}let m=He(s.ask,J),R=s.ask.day?`On ${s.ask.day}`:ee(s.ask.words.replace(/^(?:due|for|on|by) (?:the )?/,"")),B=H(K).toLowerCase(),L=X.map(a=>`${a.key}:${a.value}`).join(","),b=`${B} ${m}`,O={to:"kind",kind:K,title:ee(b),filter:L,address:`${oe(K)}?${new URLSearchParams({filter:L}).toString()}`,said:`Went to the ${b}.`};if(Z.length===0)return{about:"related",say:`No ${b}. ${O.said}`,moves:[O]};let ce=v.join(" "),yt=l==="was"||l==="were",Ge=a=>yt?a===1?"was":"were":a===1?"is":"are",ue=_.map(T),mt=ue.length>8?[...ue.slice(0,8),`${ue.length-8} more`]:ue,bt=_.length===0?`${R}: nobody ${Ge(1)}${ce?` ${ce}`:""}.`:`${R}: ${he(mt)}${ce?` ${Ge(_.length)} ${ce}`:""}.`,kt=t==="who"&&g.length>0?`${he(g.slice(0,4).map(T))}${g.length>4?` and ${g.length-4} more`:""} ${g.length===1?"has":"have"} nobody.`:"",$t=_.slice(0,8).map(a=>({about:"node",id:a.id,kind:a.kind,label:T(a),why:{field:W.key,reading:Je(y,W.direction==="out"?K:W.far,W.key,W.direction==="out"?"out":"in"),fragment:m,strength:"field"},current:!0,flagged:me.has(a.id),address:ge(a)}));return{about:"related",say:[bt,kt,O.said].filter(Boolean).join(" "),moves:[O],picks:$t}},Ke=S.match(Ct);if(Ke){let e=Ke[1];if(e&&!st.has(e)&&!/^(?:it|this|that)$/.test(e)){let n=ie(e),r=n?void 0:pe(Y(e)||e);if(r?.one){let h=De(r.one);return{about:"describe",say:`${h.said} ${re(r.one)}`,moves:[h],subject:r.one.id}}if(!n)return r&&r.picks.length>0?{about:"picks",say:Ee(r.picks),moves:[],picks:r.picks}:xe()}if(e&&/^(?:it|this|that)$|^(?:here|this place|this page)$/.test(e)){let n=(p.selection??[]).map(r=>w.getNode(r)).find(r=>r!==void 0);if(n)return{about:"describe",say:re(n),moves:[],subject:n.id}}let t=c.violations();if(t.length===0)return{about:"problems",say:"Nothing is wrong \u2014 every rule holds.",moves:[]};let s={to:"problems",address:"/problems",said:"Went to the problems."};return{about:"problems",say:`${s.said} ${Qe(t)}: ${t.slice(0,4).map(n=>n.message).join("; ")}${t.length>4?"\u2026":"."}`,moves:[s]}}if(Nt.test(S))return Le();let _e=pt(S);if(_e)return _e;let ke=Oe(S,k,j);if(ke&&!ie(Y(ke.ask.words))&&ke.rest.replace(/'s\b/g,"").split(" ").every(e=>e===""||te.has(e)||Ce.has(e))){let e=de(S);if(e)return e}if(/^open /.test(S)){let e=de(S);if(e)return e}let Fe=S.match(At)??S.match(/^(?:go|take me|head|get me)(?: back)? (home)$/);if(Fe)return Re(Fe[1].trim(),!1);let Ue=S.match(St);if(Ue){let e=Re(Ue[1].trim(),!0);return"unresolved"in e&&e.unresolved&&!/^tell me|^describe/.test(S)?{unresolved:!0}:e}let $e=ie(S);if($e){let e=We($e);return{about:"place",say:e.said,moves:[e],subject:$e.slug}}let Be=de(S);return Be||{unresolved:!0}}var Ce=new Set(["who","whom","whose","which","what","whats","what's","who's"]),Et=new Set(["person","people","user","users","member","members","volunteer","volunteers","gardener","gardeners","player","players","staff","worker","workers","employee","employees","owner","owners","assignee","assignees","helper","helpers","student","students","teacher","teachers","customer","customers","client","clients","contact","contacts","author","authors"]),at=new Set(["work","cover","staff","assign","do","run","schedul","roster","book","duty","serv","help"]);function je(o){let i=o.toLowerCase().replace(/'s$/,"");for(let p of["ing","ed","es","s"])if(i.length>p.length+2&&i.endsWith(p)){let u=i.slice(0,-p.length);return u.length>3&&u[u.length-1]===u[u.length-2]?u.slice(0,-1):u}return i}function dt(o){return o.toLowerCase().split(/[^a-z']+/).filter(i=>i.length>1&&!te.has(i)&&!Ce.has(i)&&!["it","they","them","their","its","this","here","to","at"].includes(i)).map(je)}var Rt=(o,i)=>o===i||o.length>=4&&i.length>=4&&(o.startsWith(i)||i.startsWith(o)),ne=new Set(["done","finished","complete","completed","closed","resolved","agreed","canceled","archived","shipped","delivered"]),Lt=new Set(["open","unfinished","outstanding","pending","remaining","undone","incomplete"]);function lt(o,i){return V(o,i.kind).filters.some(u=>u.about==="field"&&(u.type==="boolean"&&ne.has(u.key.toLowerCase())&&i[u.key]===!0||u.type==="choice"&&typeof i[u.key]=="string"&&ne.has(String(i[u.key]).toLowerCase())))}function he(o){return o.length<=1?o[0]??"":`${o.slice(0,-1).join(", ")} and ${o[o.length-1]}`}function _t(o,i,p={}){let u=p.scene!==void 0?{...p.pages,scene:p.scene}:p.pages;return[...et(o,i,u?{pages:u}:{})].map(({first:c,hidden:y,lens:k,...j})=>j)}function ht(o,i){return{...o.principal?{principal:o.principal}:{},...o.places?{places:o.places}:{},...o.selection?{selection:o.selection}:{},...o.place?{place:o.place}:{},...i??o.today?{today:i??o.today}:{},...o.weekStartsOn!==void 0?{weekStartsOn:o.weekStartsOn}:{}}}function Ft(o,i,p,u){let c=ft(o,i,ht(p,u));if(c.unresolved)return c.say?{reply:{say:c.say,proposals:[],grounded:!0}}:{};if(c.about==="picks")return{};let y=c.moves.length>0?{moves:c.moves}:{},k=c.subject?o.graph.getNode(c.subject):void 0;if(c.about==="problems")return{...y,problems:!0};if(k&&(c.about==="describe"||c.about==="here"))return{...y,told:k.id};let j=k?tt(o,nt(Ve(o.violations(),[k.id])).slice(0,3)):[];return{reply:{say:c.say,proposals:j,grounded:!0,...y,...c.picks&&c.picks.length>0?{picks:c.picks}:{},...c.offer?{offer:c.offer}:{}}}}function Ut(o,i,p={}){let u=ht(p),c=[];for(let y of i){let k=typeof y=="string"?y:typeof y=="object"&&y!==null&&typeof y.to=="string"?y.to:void 0;if(!k||k.trim().length===0)continue;let j=ft(o,/^(?:go|take me|open|show)\b/i.test(k.trim())?k:`go to ${k}`,u);if("moves"in j)for(let z of j.moves)c.some(U=>U.address===z.address)||c.push(z)}return c}export{vt as NOTHING_BY_THAT_NAME,ht as askContextOf,Ft as goingFrom,Ut as movesFromNames,_t as placesFromViews,ft as resolveAsk};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as h}from"./chunk.
|
|
1
|
+
import{b as h}from"./chunk.KKTHQJ6F.js";import"./chunk.BLAODPYJ.js";import{a as x,b as S,c as D,g as f}from"./chunk.XDPRWUCJ.js";import"./chunk.HH6WIUK3.js";import"./chunk.GDIRDJF3.js";import"./chunk.Y4R77MKX.js";import"./chunk.FRNIWOKD.js";import"./chunk.42U4UBDE.js";import"./chunk.D3CYTXNZ.js";import"./chunk.MYCTNK6D.js";import"./chunk.NRWJ6PLU.js";import"./chunk.XJNXSQT4.js";import"./chunk.VTBAKTFP.js";import"./chunk.7U7Q3HIS.js";import{o as k}from"./chunk.6O67NOZR.js";import"./chunk.WWRWXFYR.js";import"./chunk.ISAMJ7AK.js";import"./chunk.54NSG7BX.js";import"./chunk.6KJSFIO7.js";import"./chunk.UM5IPM22.js";import"./chunk.6XBLDV4A.js";import"./chunk.WOTNMTIY.js";import"./chunk.HAQ4KHRY.js";import"./chunk.PRXKRG6O.js";import"./chunk.AHDOKM4O.js";import"./chunk.TDW6QEG4.js";import"./chunk.LW7KV5SL.js";import{W as v,ca as w,ea as b}from"./chunk.2VX6H2LL.js";import{G as g,xb as u}from"./chunk.ZQ4HFIIS.js";import{a as V,b as y}from"./chunk.MRK6QJV5.js";import{b as p}from"./chunk.AJZBJBMO.js";var i=p(V(),1);var e=p(y(),1);function O({page:a=!1,go:C,onPick:m,onDiscard:G}){let{store:o,seatTalk:s}=w(),d=v(s),K=D(),c=C??K,{keep:N}=x(c),[T,l]=(0,i.useState)(!1);b();let t=d.draft;if((0,i.useEffect)(()=>l(!1),[t]),(0,i.useEffect)(()=>{a||S(!1)},[a]),!t)return null;let L=h(t.drawn),B=o.schema.tryDefinition(t.kind),I=o.graph.nodesOfKind(t.kind).filter(n=>g(B,n)),P=()=>{s.setDraft(null),G?.()};return(0,e.jsxs)("section",{"data-testid":"draft-frame","aria-label":`Draft: ${t.title}`,style:a?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:0,zIndex:u("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-ground, var(--graview-panel))",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...z,...a?{}:{padding:"10px 16px"}},children:[a?(0,e.jsx)("span",{children:"Draft"}):(0,e.jsxs)("span",{children:["Draft \u2014 ",(0,e.jsx)("span",{"data-testid":"draft-title",style:{color:"var(--graview-ink)",fontWeight:600},children:t.title})]}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-keep",disabled:T,title:`Keep \u201C${t.title}\u201D as a lens: a place of its own`,onClick:()=>{l(!0),N(t).finally(()=>l(!1))},style:f,children:"Keep as a lens"}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-discard",onClick:P,style:f,children:"Discard"})]}),d.draftNote?(0,e.jsx)("p",{"data-testid":"draft-note",role:"status",style:{margin:0,padding:a?0:"0 16px 8px",fontSize:"0.8125rem",color:"var(--graview-warn)"},children:d.draftNote}):(0,e.jsx)("span",{}),(0,e.jsx)("div",{"data-testid":"draft-lens","data-graview-draft":t.lens.name,style:a?{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",scrollbarGutter:"stable",border:"1px solid var(--graview-edge)",borderRadius:12,background:"var(--graview-panel)"}:{minHeight:0,overflow:"auto",scrollbarGutter:"stable",display:"grid",gridTemplateRows:"minmax(0, 1fr)"},onClick:n=>{let r=n.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!r||!o.graph.getNode(r))return;n.preventDefault();let R=o.graph.getNode(r);m?(s.setDraft(null),m(r)):c({to:"record",id:r,kind:R.kind,label:r,address:"",said:""})},children:(0,e.jsx)(k,{kind:t.kind,view:t.title,children:(0,e.jsx)(L,{nodes:I,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})]})}var z={margin:0,display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 8px",fontSize:"0.875rem",color:"var(--graview-ink-muted)",borderBottom:"1px solid var(--graview-edge)",paddingBottom:8};export{O as DraftFrame};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as b,b as N,c as S}from"./chunk.
|
|
1
|
+
import{a as b,b as N,c as S}from"./chunk.MYCTNK6D.js";import{Aa as y,va as m,wa as w}from"./chunk.2VX6H2LL.js";import{xb as x}from"./chunk.ZQ4HFIIS.js";import{a as C,b as h}from"./chunk.MRK6QJV5.js";import{b as g}from"./chunk.AJZBJBMO.js";var c=g(C(),1);var i=g(h(),1),P=6e3;function M(){let t=[],n=0,s=new Set,a=new Map,p,r=()=>{for(let e of[...s])e()},o=e=>{if(clearTimeout(a.get(e.id)),a.delete(e.id),e.kind!=="toast")return;let l=(e.actions?.length??0)+(e.action?1:0),f=e.timeout??(l>0?!1:P);f!==!1&&a.set(e.id,setTimeout(()=>p?.()?o(e):d(e.id),f))},d=e=>{clearTimeout(a.get(e)),a.delete(e),t.some(l=>l.id===e)&&(t=t.filter(l=>l.id!==e),r())},u=e=>{t=t.some(l=>l.id===e.id)?t.map(l=>l.id===e.id?e:l):[...t,e],o(e),r()};return{notify(e){let l=e.id??`notice-${++n}`;return u({...e,id:l,said:++n}),{id:l,dismiss:()=>d(l),update:f=>{let v=t.find(L=>L.id===l);v&&u({...v,...f,id:l,kind:v.kind,said:f.sentence!==void 0&&f.sentence!==v.sentence?++n:v.said})}}},dismiss:d,hold(e){p=e},list:()=>t,subscribe(e){return s.add(e),()=>s.delete(e)}}}var k={info:"var(--graview-accent)",good:"var(--graview-good)",warn:"var(--graview-warn)",bad:"var(--graview-bad)"};function T({notices:t,at:n,anchor:s,board:a}){let p=(0,c.useRef)(null),r=t.length>0;return(0,c.useLayoutEffect)(()=>{let o=p.current;if(!r||!o)return;if(typeof o.showPopover=="function"&&!m(o))try{o.showPopover()}catch{}let d=()=>(n==="top"?S:N)(o,s());d(),n==="foot"&&a.hold?.(()=>o.matches(":hover, :focus-within"));let u=w(o);addEventListener("resize",d),addEventListener("scroll",d,!0),n==="foot"&&addEventListener(b,d);let e=typeof ResizeObserver=="function"?new ResizeObserver(d):null;return e?.observe(o),()=>{if(u(),e?.disconnect(),removeEventListener("resize",d),removeEventListener("scroll",d,!0),removeEventListener(b,d),o.isConnected&&m(o))try{o.hidePopover()}catch{}}},[r,n,s,a]),r?(0,i.jsx)("div",{ref:p,popover:"manual",role:"region","aria-label":n==="top"?"Notices":"Messages","data-testid":n==="top"?"notices-banners":"notices-toasts","data-graview-offstage":"",style:{position:"fixed",inset:"auto",margin:0,padding:0,border:"none",background:"none",overflow:"visible",zIndex:x("toast"),width:"max-content",height:"auto",maxWidth:"min(560px, calc(100vw - 32px))",display:"grid",gap:8,color:"var(--graview-ink)"},children:t.map(o=>(0,i.jsx)(R,{notice:o,board:a},o.id))}):null}function R({notice:t,board:n}){let s=t.tone??"info",a=[...t.action?[t.action]:[],...t.actions??[]],p=()=>n.dismiss(t.id);return(0,i.jsxs)("div",{"data-testid":"notice","data-kind":t.kind,"data-tone":s,style:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"8px 12px",padding:t.kind==="banner"?"8px 10px 8px 14px":"10px 12px 10px 14px",borderRadius:"var(--graview-radius, 12px)",borderTop:"1px solid var(--graview-edge)",borderRight:"1px solid var(--graview-edge)",borderBottom:"1px solid var(--graview-edge)",borderLeft:`3px solid ${k[s]}`,background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",fontSize:"0.875rem",lineHeight:1.45},children:[(0,i.jsx)("span",{"aria-hidden":"true",style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:k[s]}}),(0,i.jsx)("span",{style:{flex:"1 1 16rem",minWidth:0},children:t.sentence}),a.length>0?(0,i.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:6},children:a.map((r,o)=>r.href!==void 0?(0,i.jsx)("a",{href:r.href,...r.target?{target:r.target,rel:"noopener"}:{},"data-testid":"notice-action",onClick:()=>{r.onSelect?.(),p()},style:{...H,...o===0?E:{}},children:r.label},r.label):(0,i.jsx)("button",{type:"button","data-testid":"notice-action",onClick:()=>{p(),r.onSelect?.()},style:{...H,...o===0?E:{}},children:r.label},r.label))}):null,(0,i.jsx)("button",{type:"button","data-testid":"notice-dismiss","aria-label":`Dismiss: ${t.sentence}`,title:"Dismiss",onClick:p,style:A,children:"\xD7"})]})}var H={display:"inline-flex",alignItems:"center",minHeight:28,padding:"2px 12px",borderRadius:9,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",font:"inherit",fontWeight:500,textDecoration:"none",cursor:"pointer"},E={background:"var(--graview-accent)",borderColor:"var(--graview-accent)",color:"var(--graview-accent-ink)"},A={minWidth:28,minHeight:28,padding:0,border:"none",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",fontSize:"1rem",cursor:"pointer"};function B({notices:t}){let n=t.reduce((d,u)=>!d||u.said>d.said?u:d,void 0),[s,a]=(0,c.useState)(""),[p,r]=(0,c.useState)(""),o=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(!n||n.said===o.current)return;o.current=n.said;let d=n.tone==="bad";(d?r:a)("");let u=setTimeout(()=>(d?r:a)(n.sentence),50);return()=>clearTimeout(u)},[n]),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{role:"status","aria-live":"polite","data-testid":"notices-said",style:y,children:s}),(0,i.jsx)("div",{role:"alert","data-testid":"notices-alarm",style:y,children:p})]})}var W=(0,c.createContext)(null);function F({board:t,anchor:n}){let s=(0,c.useSyncExternalStore)(t.subscribe,t.list,t.list);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(T,{notices:s.filter(a=>a.kind==="banner"),at:"top",anchor:n,board:t}),(0,i.jsx)(T,{notices:s.filter(a=>a.kind==="toast"),at:"foot",anchor:n,board:t}),(0,i.jsx)(B,{notices:s})]})}export{M as a,W as b,F as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as I,c as x}from"./chunk.AXACXB4D.js";import"./chunk.TWGB347L.js";import"./chunk.AKOC43TV.js";import"./chunk.D3CYTXNZ.js";import"./chunk.MYCTNK6D.js";import"./chunk.AHDOKM4O.js";import{C as G,c as b,d as A,j as v,x as w,z as O}from"./chunk.2VX6H2LL.js";import{Oa as S,Ob as W,ya as k,za as E}from"./chunk.ZQ4HFIIS.js";import"./chunk.MRK6QJV5.js";import"./chunk.AJZBJBMO.js";var F=(e,i)=>S(e,i).slice(1);function j(e,i){let l=e.split("/").filter(Boolean);return l.length===i.length&&l.every((s,h)=>s.startsWith(":")||s==="*"||s===i[h])}var $=["problems","search","map","places"];function R(e,i,l,s,h=[]){let{schema:r}=i,o=r.kinds,f=t=>{if(t.startsWith(w))return(t.slice(w.length).split("|")[0]??"").split("+").every(V=>o.includes(V));let y=O(t);return y!==null?o.includes(y):t.startsWith("edge:")||l.graph.getNode(t)!==void 0},[p="/",u]=e.path.split("?"),n=p.split("/").filter(Boolean),m=u?`?${u}`:"",d=n.length>0&&!$.includes(n[0])?o.find(t=>F(r,t)===n[0]):void 0,c=e.path;if(n[0]==="places"&&n.length===2)`/places/${n[1]}`!==W&&!s.some(t=>t.as===decodeURIComponent(n[1]))&&(c="/");else if(d){let t=n[1]===void 0?void 0:decodeURIComponent(n[1]);c=`/${F(r,d)}${t!==void 0&&l.graph.getNode(t)?.kind===d?`/${n[1]}`:""}${m}`}else n.length>0&&n.length<=2&&!$.includes(n[0])&&!h.some(t=>j(t.path,n))&&(c="/");let g=A(e.stop),P=g.within?.view,U=P!==void 0&&!s.some(t=>t.as===P),a=g;if(U){let{view:t,...y}=g.within??{};a={...a,within:y}}if(g.focusId&&!f(g.focusId)){let t=e.kind&&o.includes(e.kind)?G(e.kind):null;a={...v(a,t),zoom:!1}}return a={...a,relation:a.relation&&(o.includes(a.relation)||r.edgeKinds.includes(a.relation))?a.relation:null,expanded:a.expanded.filter(f),pins:Object.fromEntries(Object.entries(a.pins).filter(([t])=>f(t))),...a.selection?{selection:a.selection.filter(f)}:{}},{face:e.face,path:c,stop:b(a),...e.kind?{kind:e.kind}:{}}}function B(e,i,l){let s=e.at,h=e.pages?.routes()??[];if(e.routing!=="address"||typeof window>"u")return R(s,e.app,i,l,h);let{pathname:r,search:o,hash:f}=window.location,p=E(r,e.basePath),u=I({routing:"address",...e.basePath===void 0?{}:{basePath:e.basePath},face:s.face}),n=u==="pages",m={...s,face:u,...p===null?{}:n?{path:p+o}:{stop:x(e.basePath)??s.stop}},d=R(m,e.app,i,l,h),c=n?d.path===m.path?null:k(d.path,e.basePath===void 0?{}:{basePath:e.basePath}):d.stop===b(A(m.stop))?null:r+o+d.stop;return p!==null&&c!==null&&c!==r+o+f&&window.history.replaceState(window.history.state,"",c),d}export{R as settle,B as settleAt};
|