graview 0.1.25 → 0.1.26
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.24X6LFD3.js +6 -0
- package/dist/preview/{chunk.JIXW4WIO.js → chunk.2GFB5FOK.js} +1 -1
- package/dist/preview/chunk.3RT463XY.js +1 -0
- package/dist/preview/{chunk.UOYH2DFX.js → chunk.4INXWGIT.js} +2 -2
- package/dist/preview/{chunk.B57EIGTS.js → chunk.4MAYBFPU.js} +1 -1
- package/dist/preview/chunk.4YY54TMR.js +1 -0
- package/dist/preview/chunk.564EIRAT.js +1 -0
- package/dist/preview/chunk.5CXMUC6R.js +16 -0
- package/dist/preview/{chunk.ORJ3T4IW.js → chunk.6GJF3F7L.js} +1 -1
- package/dist/preview/chunk.6LJ66MB7.js +1 -0
- package/dist/preview/chunk.6MZBFEXW.js +1 -0
- package/dist/preview/chunk.6R4EI47C.js +1 -0
- package/dist/preview/chunk.7OOKA2DK.js +1 -0
- package/dist/preview/chunk.7ZJPJARU.js +1 -0
- package/dist/preview/{chunk.S24R4MRK.js → chunk.AAVCTGAE.js} +3 -3
- package/dist/preview/chunk.AKWBAWQF.js +1 -0
- package/dist/preview/chunk.BK2MJOUN.js +1 -0
- package/dist/preview/chunk.CL7GGNEK.js +1 -0
- package/dist/preview/{chunk.PY42PBMB.js → chunk.D3XF643V.js} +1 -1
- package/dist/preview/{chunk.DEZEXD24.js → chunk.DRIWJRQW.js} +1 -1
- package/dist/preview/chunk.ECG7RM6L.js +1 -0
- package/dist/preview/chunk.ECRZZ3U4.js +1 -0
- package/dist/preview/chunk.HFFEOCYY.js +107 -0
- package/dist/preview/chunk.I5U42VDK.js +3 -0
- package/dist/preview/chunk.IQLDOIWD.js +1 -0
- package/dist/preview/{chunk.DSZ3I557.js → chunk.JIWB6VGT.js} +1 -1
- package/dist/preview/{chunk.YZZGD5OY.js → chunk.KSEKVHJJ.js} +1 -1
- package/dist/preview/chunk.KXWRS6LY.js +1 -0
- package/dist/preview/chunk.LCFCU3I3.js +1 -0
- package/dist/preview/chunk.LEVR7WLB.js +1 -0
- package/dist/preview/{chunk.HQX5FGYT.js → chunk.LHIYFAN5.js} +2 -2
- package/dist/preview/chunk.LLUZMOBZ.js +1 -0
- package/dist/preview/{chunk.6OBXKKB5.js → chunk.LUUT2ZWF.js} +3 -3
- package/dist/preview/chunk.MLQQR57X.js +1 -0
- package/dist/preview/chunk.NIEQZOHX.js +1 -0
- package/dist/preview/{chunk.JCZH55RX.js → chunk.NLFLFIDS.js} +1 -1
- package/dist/preview/{chunk.6DU4XN2F.js → chunk.NQP3DWME.js} +1 -1
- package/dist/preview/{chunk.6UL2JUEH.js → chunk.OBGG4SYF.js} +1 -1
- package/dist/preview/chunk.OBQ4DIFO.js +1 -0
- package/dist/preview/chunk.P7YN4Z3K.js +8 -0
- package/dist/preview/{chunk.SSOTDXRS.js → chunk.PKFL2AR4.js} +1 -1
- package/dist/preview/chunk.PQ2IIC27.js +1 -0
- package/dist/preview/chunk.QFJRXAU3.js +8 -0
- package/dist/preview/chunk.REODVRPZ.js +1 -0
- package/dist/preview/chunk.RH6VRP76.js +1 -0
- package/dist/preview/chunk.SVL6I37U.js +1 -0
- package/dist/preview/chunk.TAW67PZU.js +1 -0
- package/dist/preview/chunk.TUYKH4FG.js +1 -0
- package/dist/preview/chunk.UEEXBS2U.js +1 -0
- package/dist/preview/chunk.UUMXYMOX.js +19 -0
- package/dist/preview/chunk.VW7U4CT5.js +1 -0
- package/dist/preview/chunk.WWWZZAHE.js +1 -0
- package/dist/preview/chunk.XD4Q4FI2.js +1 -0
- package/dist/preview/chunk.XNYBOKLW.js +1 -0
- package/dist/preview/chunk.XOC5BRPU.js +1 -0
- package/dist/preview/chunk.XXNC2AFL.js +1 -0
- package/dist/preview/chunk.YIZ3DJO3.js +1 -0
- package/dist/preview/chunk.YOMW4MKD.js +1 -0
- package/dist/preview/chunk.YXQCEXZX.js +1 -0
- package/dist/preview/chunk.ZLPA5BAW.js +1 -0
- package/dist/preview/chunk.ZOWWWRYA.js +1 -0
- package/dist/preview/page.js +6 -6
- package/package.json +6 -6
- package/dist/preview/chunk.2AJMM7JG.js +0 -1
- package/dist/preview/chunk.2WFEFZAW.js +0 -1
- package/dist/preview/chunk.2YVXTTC2.js +0 -1
- package/dist/preview/chunk.6KJSFIO7.js +0 -1
- package/dist/preview/chunk.6WFN4C46.js +0 -107
- package/dist/preview/chunk.7BAUPTMY.js +0 -1
- package/dist/preview/chunk.A4SJ7EEY.js +0 -1
- package/dist/preview/chunk.ACKTGTOT.js +0 -1
- package/dist/preview/chunk.BJ2Y5F66.js +0 -1
- package/dist/preview/chunk.BYUQOV3O.js +0 -1
- package/dist/preview/chunk.C5N4RTPF.js +0 -1
- package/dist/preview/chunk.CFL2B2Z5.js +0 -1
- package/dist/preview/chunk.DJ72CUS7.js +0 -1
- package/dist/preview/chunk.EA4BZKPG.js +0 -1
- package/dist/preview/chunk.EKZWX6NG.js +0 -1
- package/dist/preview/chunk.F26676IW.js +0 -1
- package/dist/preview/chunk.F2KDFGHR.js +0 -1
- package/dist/preview/chunk.FWV4XAZA.js +0 -1
- package/dist/preview/chunk.G3BOZHKR.js +0 -1
- package/dist/preview/chunk.H4LHHT56.js +0 -8
- package/dist/preview/chunk.I5ELK6JF.js +0 -1
- package/dist/preview/chunk.I6T3FDQS.js +0 -1
- package/dist/preview/chunk.IB6PGEU7.js +0 -1
- package/dist/preview/chunk.JEMQBV6K.js +0 -1
- package/dist/preview/chunk.JW3E4SAC.js +0 -1
- package/dist/preview/chunk.KUTTVYOB.js +0 -16
- package/dist/preview/chunk.LHFEOEYY.js +0 -1
- package/dist/preview/chunk.MJ67MK4R.js +0 -1
- package/dist/preview/chunk.Q5WEOX3Q.js +0 -1
- package/dist/preview/chunk.QOYC424P.js +0 -3
- package/dist/preview/chunk.R6F3YMRK.js +0 -6
- package/dist/preview/chunk.RAE4M3KQ.js +0 -8
- package/dist/preview/chunk.RUFAVEXB.js +0 -1
- package/dist/preview/chunk.RVEMN5WU.js +0 -1
- package/dist/preview/chunk.S56LSUHV.js +0 -1
- package/dist/preview/chunk.T6KID3WO.js +0 -1
- package/dist/preview/chunk.TAOT74FR.js +0 -1
- package/dist/preview/chunk.TTODVIXW.js +0 -1
- package/dist/preview/chunk.U6BWYBPM.js +0 -19
- package/dist/preview/chunk.US4KIJSW.js +0 -1
- package/dist/preview/chunk.WX5CJ7PI.js +0 -1
- package/dist/preview/chunk.WXO3XUNW.js +0 -1
- package/dist/preview/chunk.ZJVIH6IF.js +0 -1
- package/dist/preview/chunk.ZRVDIVYY.js +0 -1
- package/dist/preview/chunk.ZV7ZFH2S.js +0 -1
- /package/dist/preview/{chunk.WWRWXFYR.js → chunk.WVUJXDXZ.js} +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import{A as he,B as ke,C as ta,D as At,E as pe,F as na,G as aa,H as L,I as De,J as Lt,K as ra,L as Tt,M as it,N as ia,O as U,P as J,Q as Mt,a as G,b as ye,c as q,d as Qn,e as Pe,f as Ne,g as D,h as ne,i as Y,j as k,k as _,l as F,m as X,n as tt,o as ee,p as Xn,q as nt,r as at,s as I,t as Ce,u as Zn,v as rt,w as le,x as ea,y as de,z as Rt}from"./chunk.LHIYFAN5.js";import{b as et,d as V}from"./chunk.ECRZZ3U4.js";import{a as _n,d as Yn,e as Jn}from"./chunk.ONDILMIX.js";import{a as Un,e as jn}from"./chunk.YXQCEXZX.js";import{a as Pt,b as In,d as Hn,f as zn,g as Bn,h as Gn,k as Xe}from"./chunk.I5U42VDK.js";import{a as Ct}from"./chunk.ZLPA5BAW.js";import{a as Ze,b as qn}from"./chunk.XOC5BRPU.js";import{a as Na}from"./chunk.IKT7JQUW.js";import{h as $n,i as En}from"./chunk.NQP3DWME.js";import{e as Wn,i as Vn}from"./chunk.ZOWWWRYA.js";import{o as bt}from"./chunk.LEVR7WLB.js";import{c as Fn,d as On,j as We}from"./chunk.TAW67PZU.js";import{a as Qe,b as Ln,c as Tn,e as St,f as Mn}from"./chunk.KXWRS6LY.js";import{e as xe}from"./chunk.XNYBOKLW.js";import{f as Kn}from"./chunk.UUMXYMOX.js";import{b as Nn,c as xt,d as Dn}from"./chunk.NLFLFIDS.js";import{a as wn,c as An}from"./chunk.6LJ66MB7.js";import{$ as bn,B as He,V as kn,X as Sn,aa as xn,ea as se,ia as Pn,ka as Ee,la as Cn,ua as Rn,x as vn}from"./chunk.SVL6I37U.js";import{$ as rn,$a as mn,Ea as ln,Fa as dn,Fb as fn,Ha as pn,M as $e,N as _e,O as re,P as Zt,R as ie,T as en,V as tn,Va as cn,Vb as kt,Wa as gn,Wb as yn,Y as nn,Ya as un,Z as be,_ as an,_a as Ye,_b as hn,bb as Je,ja as vt,ka as on,pa as sn}from"./chunk.P7YN4Z3K.js";import{a as ve,b as B}from"./chunk.MRK6QJV5.js";import{b as $}from"./chunk.AJZBJBMO.js";function oa(t,e,n={}){let r=t.graph.getNode(e);if(!r)return;let i=t.schema.tryDefinition(r.kind),a=s=>re(t.schema.tryDefinition(s.kind),s),d=new Map;for(let s of t.graph.allEdges()){let l=s.from===e?"out":s.to===e?"in":null;if(!l)continue;let o=l==="out"?s.to:s.from,c=t.graph.getNode(o);if(!c)continue;let u=(l==="out"?i:t.schema.tryDefinition(c.kind))?.edges?.[s.kind],g=l==="in"?u?.inverse??u?.description:u?.description,m=`${s.kind}|${l}|${g??""}`;(d.get(m)??(()=>{let E={edgeKind:s.kind,direction:l,...g?{description:g}:{},targets:[]};return d.set(m,E),E})()).targets.push({id:c.id,kind:c.kind,label:a(c)})}return{id:e,kind:r.kind,label:a(r),fields:an(We(t.schema,t.graph,r),i),violations:vt(t.violations(n.context),[e]),actions:Ct(t,[e],{focus:e,...n.principal?{principal:n.principal}:{},...n.context?{context:n.context}:{}}),links:[...d.values()].map(s=>{let l=_e(s.targets.flatMap(o=>{let c=t.graph.getNode(o.id);return c?[c]:[]}),o=>t.schema.tryDefinition(o));return{...s,targets:[...s.targets].map(o=>l.has(o.id)?{...o,apart:l.get(o.id)}:o).sort((o,c)=>o.label.localeCompare(c.label))}})}}function Re(t,e,n={}){return{kind:e,members:t.graph.nodesOfKind(e),actions:Ct(t,[],{kindSelection:[e],...n.principal?{principal:n.principal}:{},...n.context?{context:n.context}:{}})}}function sa(t,e){let n=(a,d)=>`${a}|${JSON.stringify(d)}`,r=new Map;for(let a of[...t.affordances,...t.withheld]){if(a.provider!=="invariant")continue;let d=n(a.mutation,a.args);r.has(d)||r.set(d,a.rank??Number.MAX_SAFE_INTEGER)}let i=Number.MAX_SAFE_INTEGER;return[...e].map((a,d)=>({repair:a,declared:d})).sort((a,d)=>(r.get(n(a.repair.mutation,a.repair.args??{}))??i)-(r.get(n(d.repair.mutation,d.repair.args??{}))??i)||a.declared-d.declared).map(a=>a.repair)}function Ae(t){let e=t.schema.kinds.map(i=>({kind:i,plural:tn(t.schema,i),count:t.graph.nodesOfKind(i).length})),n=new Map;for(let i of t.graph.allEdges()){let a=t.graph.getNode(i.from),d=t.graph.getNode(i.to);if(!a||!d)continue;let s=`${i.kind}|${a.kind}|${d.kind}`;n.set(s,(n.get(s)??0)+1)}let r=[];for(let{kind:i}of e){let a=t.schema.tryDefinition(i)?.edges??{};for(let[d,s]of Object.entries(a)){let l=s.to==="*"||s.to===void 0?(()=>{let o=[...n.keys()].filter(c=>c.startsWith(`${d}|${i}|`)).map(c=>c.split("|")[2]);return o.length>0?o:["*"]})():s.to;for(let o of l)r.push({edgeKind:d,from:i,to:o,...s.description?{description:s.description}:{},...s.inverse?{inverse:s.inverse}:{},count:n.get(`${d}|${i}|${o}`)??0})}}return{kinds:e,relations:r}}var Te=$(ve(),1);var Ft=$(ve(),1),S=$(B(),1),Da=`
|
|
2
|
+
form:where([data-graview-part="form"]) {
|
|
3
|
+
/* A grid item of the section above it and a grid container for the
|
|
4
|
+
fields below: both halves are allowed to be narrower than what is in
|
|
5
|
+
them, or a big enough text size pushes the page sideways. See the note
|
|
6
|
+
on \`column\` in pages.tsx. */
|
|
7
|
+
display: grid;
|
|
8
|
+
grid-template-columns: minmax(0, 1fr);
|
|
9
|
+
min-width: 0;
|
|
10
|
+
gap: 12px;
|
|
11
|
+
}
|
|
12
|
+
label:where([data-graview-part="field"]) {
|
|
13
|
+
display: grid;
|
|
14
|
+
/* A track the width it was given: see the note on \`column\` in pages.tsx. */
|
|
15
|
+
grid-template-columns: minmax(0, 1fr);
|
|
16
|
+
min-width: 0;
|
|
17
|
+
gap: 4px;
|
|
18
|
+
}
|
|
19
|
+
label:where([data-graview-part="field"][data-graview-field="boolean"]) {
|
|
20
|
+
grid-auto-flow: column;
|
|
21
|
+
justify-content: start;
|
|
22
|
+
align-items: center;
|
|
23
|
+
}
|
|
24
|
+
span:where([data-graview-part="label"]),
|
|
25
|
+
legend:where([data-graview-part="label"]),
|
|
26
|
+
p:where([data-graview-part="unasked"]) {
|
|
27
|
+
font-size: 0.8125rem;
|
|
28
|
+
color: var(--graview-ink-muted);
|
|
29
|
+
}
|
|
30
|
+
p:where([data-graview-part="unasked"]) { margin: 0; }
|
|
31
|
+
input:where([data-graview-part="control"]:not([type="checkbox"])),
|
|
32
|
+
select:where([data-graview-part="control"]) {
|
|
33
|
+
font: inherit;
|
|
34
|
+
/* A TARGET IN EVERY ENGINE, not only in the one it was measured in.
|
|
35
|
+
Padding and line height alone came to 24 in Chromium and to 22 in
|
|
36
|
+
WebKit, which has its own intrinsic metrics for a \`select\` and rounds
|
|
37
|
+
nothing up for anybody. So every picker on the routed face was under
|
|
38
|
+
the WCAG 2.2 minimum in the browser iOS ships, and the check that says
|
|
39
|
+
so (\`verify-pages\`' \`bigEnoughToHit\`) only ever ran there through
|
|
40
|
+
\`pnpm engines\`. */
|
|
41
|
+
min-height: 24px;
|
|
42
|
+
/* NEVER WIDER THAN ITS FIELD. A select is as wide as its longest option,
|
|
43
|
+
and a picker over 320 vehicles ("2027 Mercedes-Benz GLE AMG 53 4MATIC+
|
|
44
|
+
Coupe") was 618 pixels on a 390 phone, and the whole page scrolled
|
|
45
|
+
sideways. It shrinks to its track and cuts the option inside its box. */
|
|
46
|
+
min-width: 0;
|
|
47
|
+
max-width: 100%;
|
|
48
|
+
text-overflow: ellipsis;
|
|
49
|
+
box-sizing: border-box;
|
|
50
|
+
padding: 7px 10px;
|
|
51
|
+
border-radius: 8px;
|
|
52
|
+
border: 1px solid var(--graview-edge);
|
|
53
|
+
background: var(--graview-panel);
|
|
54
|
+
color: var(--graview-ink);
|
|
55
|
+
}
|
|
56
|
+
/* A PICKER THAT STILL LOOKS LIKE ONE.
|
|
57
|
+
WebKit ignores an author's padding and minimum height on a \`select\`
|
|
58
|
+
while the native appearance is on \u2014 so every picker on the routed face
|
|
59
|
+
came out 22 pixels tall in the browser iOS ships, under the 24 WCAG 2.2
|
|
60
|
+
asks for, while the same element measured 35 in Chromium. Turning the
|
|
61
|
+
appearance off is what makes the box the size it was asked to be, and it
|
|
62
|
+
takes the platform's chevron with it; the chevron is put back, in the ink
|
|
63
|
+
the scheme is already using. */
|
|
64
|
+
span:where([data-graview-part="picker"]) {
|
|
65
|
+
position: relative;
|
|
66
|
+
display: grid;
|
|
67
|
+
min-width: 0;
|
|
68
|
+
}
|
|
69
|
+
span:where([data-graview-part="picker"]) > select:where([data-graview-part="control"]) {
|
|
70
|
+
appearance: none;
|
|
71
|
+
padding-right: 28px;
|
|
72
|
+
}
|
|
73
|
+
span:where([data-graview-part="chevron"]) {
|
|
74
|
+
position: absolute;
|
|
75
|
+
right: 10px;
|
|
76
|
+
top: 50%;
|
|
77
|
+
transform: translateY(-50%);
|
|
78
|
+
font-size: 0.75rem;
|
|
79
|
+
line-height: 1;
|
|
80
|
+
color: var(--graview-ink-muted);
|
|
81
|
+
pointer-events: none;
|
|
82
|
+
}
|
|
83
|
+
fieldset:where([data-graview-part="group"]) {
|
|
84
|
+
display: grid;
|
|
85
|
+
gap: 10px;
|
|
86
|
+
border: 1px solid var(--graview-edge);
|
|
87
|
+
border-radius: 10px;
|
|
88
|
+
padding: 12px;
|
|
89
|
+
}
|
|
90
|
+
fieldset:where([data-graview-part="group"][data-graview-field="list"]) { gap: 8px; }
|
|
91
|
+
div:where([data-graview-part="item"]) {
|
|
92
|
+
display: flex;
|
|
93
|
+
gap: 8px;
|
|
94
|
+
align-items: end;
|
|
95
|
+
}
|
|
96
|
+
button:where([data-graview-part="add"]),
|
|
97
|
+
button:where([data-graview-part="submit"]) { justify-self: start; }
|
|
98
|
+
p:where([data-graview-part="refused"]) {
|
|
99
|
+
margin: 0;
|
|
100
|
+
color: var(--graview-warn);
|
|
101
|
+
font-size: 0.875rem;
|
|
102
|
+
}
|
|
103
|
+
`;function la({children:t}){return(0,S.jsxs)("span",{"data-graview-part":"picker",children:[t,(0,S.jsx)("span",{"aria-hidden":"true","data-graview-part":"chevron",children:"\u25BE"})]})}var Ia=t=>({label:ie(t),option:e=>e});function ot({store:t,spec:e,value:n,onChange:r,prefilled:i,open:a,words:d=Ia}){if(e.name in i&&e.control!=="group"&&e.control!=="variant")return null;let s=e.control==="node"&&!e.kinds.includes("*")?e.kinds.map(o=>ie(be(t.schema.tryDefinition(o),o))).join(" or "):d(e.name).label,l=s+(e.optional||e.control==="boolean"?"":" *");switch(e.control){case"text":case"date":return e.control==="text"&&e.long?(0,S.jsxs)("label",{"data-graview-part":"field","data-graview-field":"text",children:[(0,S.jsx)("span",{"data-graview-part":"label",children:l}),(0,S.jsx)("textarea",{name:e.name,required:!e.optional,rows:6,value:typeof n=="string"?n:"",onChange:o=>r(o.target.value),"data-graview-part":"control",style:{fieldSizing:"content",minHeight:"7.5em",resize:"vertical",font:"inherit",lineHeight:1.5}})]}):(0,S.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control,children:[(0,S.jsx)("span",{"data-graview-part":"label",children:l}),(0,S.jsx)("input",{type:e.control==="date"?e.time?"datetime-local":"date":"text",name:e.name,required:!e.optional,value:typeof n=="string"?n:"",onChange:o=>r(o.target.value),"data-graview-part":"control"})]});case"number":return(0,S.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control,children:[(0,S.jsx)("span",{"data-graview-part":"label",children:l}),(0,S.jsx)("input",{type:"number",name:e.name,required:!e.optional,...e.min===void 0?{}:{min:e.min},...e.max===void 0?{}:{max:e.max},...e.step===void 0?{}:{step:e.step},value:typeof n=="number"?n:"",onChange:o=>r(o.target.value===""?void 0:Number(o.target.value)),"data-graview-part":"control"})]});case"boolean":return(0,S.jsxs)("label",{"data-graview-part":"field","data-graview-field":"boolean",children:[(0,S.jsx)("input",{type:"checkbox",name:e.name,checked:n===!0,onChange:o=>r(o.target.checked),"data-graview-part":"control"}),(0,S.jsx)("span",{"data-graview-part":"label",children:l})]});case"choice":return(0,S.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control,children:[(0,S.jsx)("span",{"data-graview-part":"label",children:l}),(0,S.jsx)(la,{children:(0,S.jsxs)("select",{name:e.name,required:!e.optional,value:typeof n=="string"?n:"",onChange:o=>r(o.target.value||void 0),"data-graview-part":"control",children:[(0,S.jsx)("option",{value:"",children:"\u2014"}),(e.options??[]).map(o=>(0,S.jsx)("option",{value:o,children:d(e.name).option(o)},o))]})})]});case"node":{let o=a.find(m=>m.name===e.name)?.candidates,c=new Set(Object.values(i).filter(m=>typeof m=="string")),f=(e.kinds.includes("*")?[...t.graph.allNodes()]:e.kinds.flatMap(m=>t.graph.nodesOfKind(m))).filter(m=>!c.has(m.id)),u=o?o.map(m=>t.graph.getNode(m)).filter(m=>m!==void 0):f,g=_e(u,m=>t.schema.tryDefinition(m));return(0,S.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control,children:[(0,S.jsx)("span",{"data-graview-part":"label",children:l}),(0,S.jsx)(la,{children:(0,S.jsxs)("select",{name:e.name,required:!e.optional,value:typeof n=="string"?n:"",onChange:m=>r(m.target.value||void 0),"data-graview-part":"control",children:[(0,S.jsx)("option",{value:"",children:"\u2014"}),u.map(m=>{let x=g.get(m.id);return(0,S.jsxs)("option",{value:m.id,children:[re(t.schema.tryDefinition(m.kind),m),x?` \xB7 ${x}`:""]},m.id)})]})})]})}case"group":{let o=n??{};return(0,S.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.control,children:[(0,S.jsx)("legend",{"data-graview-part":"label",children:l}),e.fields.map(c=>(0,S.jsx)(ot,{store:t,spec:c,value:o[c.name],onChange:f=>r({...o,[c.name]:f}),prefilled:i,open:a,words:d},c.name))]})}case"variant":{let o=n??{},c=typeof o[e.tag]=="string"?o[e.tag]:"",f=e.options.find(u=>u.value===c);return(0,S.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.control,children:[(0,S.jsx)("legend",{"data-graview-part":"label",children:l}),(0,S.jsxs)("label",{"data-graview-part":"field","data-graview-field":"choice",children:[(0,S.jsx)("span",{"data-graview-part":"label",children:ie(e.tag)}),(0,S.jsxs)("select",{value:c,onChange:u=>r({[e.tag]:u.target.value}),"data-graview-part":"control",children:[(0,S.jsx)("option",{value:"",children:"\u2014"}),e.options.map(u=>(0,S.jsx)("option",{value:u.value,children:ie(u.value)},u.value))]})]}),f?.fields.map(u=>(0,S.jsx)(ot,{store:t,spec:u,value:o[u.name],onChange:g=>r({...o,[u.name]:g}),prefilled:i,open:a,words:d},u.name))]})}case"file":case"list":{let o=e.control==="file"?e:e.item.control==="file"?e.item:void 0;if(o||e.control==="file")return(0,S.jsx)(xe,{as:"control",title:l,value:n,onChange:r,several:o!==e,image:o?.image===!0,label:s});let c=Array.isArray(n)?n:[];return(0,S.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":"list",children:[(0,S.jsx)("legend",{"data-graview-part":"label",children:l}),c.map((f,u)=>(0,S.jsxs)("div",{"data-graview-part":"item",children:[(0,S.jsx)("div",{style:{flex:1},children:(0,S.jsx)(ot,{store:t,spec:{...e.item,optional:!1},value:f,onChange:g=>r(c.map((m,x)=>x===u?g:m)),prefilled:i,open:a,words:d})}),(0,S.jsx)("button",{type:"button","data-graview-part":"remove",onClick:()=>r(c.filter((g,m)=>m!==u)),children:"remove"})]},u)),(0,S.jsx)("button",{type:"button","data-graview-part":"add",onClick:()=>r([...c,void 0]),children:"add another"})]})}case"opaque":return(0,S.jsxs)("p",{"data-graview-part":"unasked",children:["\u201C",ie(e.name),"\u201D needs a structured answer this form cannot ask for yet."]})}}function fe({store:t,mutation:e,prefilled:n={},open:r=[],onDone:i,principal:a,initial:d,label:s,only:l}){let[o,c]=(0,Ft.useState)(()=>({...d})),[f,u]=(0,Ft.useState)(null),g=Ze(e.input).filter(x=>l===void 0||l.includes(x.name)),m=x=>mn(t.schema,e,x);return(0,S.jsxs)("form",{"data-testid":`form-${e.name}`,onSubmit:x=>{x.preventDefault();try{t.apply({name:e.name,args:{...qn(g,o),...n}},a?{author:a}:{}),u(null),c({}),i?.()}catch(E){u(Je(t.schema,t.allMutations(),E))}},"data-graview-part":"form",children:[(0,S.jsx)("style",{children:Da}),g.map(x=>(0,S.jsx)(ot,{store:t,spec:x,value:o[x.name],onChange:E=>c(C=>({...C,[x.name]:E})),prefilled:n,open:r,words:m},x.name)),f?(0,S.jsx)("p",{"data-testid":"refused","data-graview-part":"refused",role:"alert",children:f}):null,(0,S.jsx)("button",{type:"submit","data-graview-part":"submit",children:s??e.title??e.name})]})}var b=$(B(),1);function ce(t){let e=t.views;if(!e)return[];let n=new Set(Ce(t.store,t.principal));return e.places().filter(r=>n.has(r.kind))}var Le=t=>`place:${t.kind}:${t.as}`;function ge(t,e){let n=(t.views?.places()??[]).some(r=>r.as===e.as&&r.kind!==e.kind);return Qn(e.as,n?G(t.store.schema,e.kind):void 0)}function ze(t,e){let n=t.schema.tryDefinition(e);return t.graph.nodesOfKind(e).filter(r=>$e(n,r))}function Ot(t,e,n){let r=(a,d)=>en(t.schema,d,a),i=r(ze(t,e).length,e);return n?`${i} across ${r(ze(t,n).length,n)}`:i}function $t({context:t,place:e,chosen:n}){let{store:r,views:i,invariantContext:a}=t,s=i?.resolve(e.kind,{cardinality:"many",fidelity:"full"},e.as)?.view;if(!s)return null;let l=ze(r,e.kind),o=[...new Set(r.violations(a).flatMap(c=>c.nodeIds))];return(0,b.jsx)(bt,{kind:e.kind,view:e.title,children:(0,b.jsx)(s,{nodes:l,label:e.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1,...n&&n.length>0?{implicated:n}:{},...o.length>0?{flagged:o}:{}})})}function Ka({store:t,views:e,as:n,invariantContext:r}){V(t);let i={store:t,views:e,...r?{invariantContext:r}:{}},a=e.places().find(d=>d.as===n);return a?(0,b.jsx)($t,{context:i,place:a}):null}function Ha({context:t,kind:e}){let{store:n,views:r,invariantContext:i}=t,a=ze(n,e),d=n.schema.tryDefinition(e),s=I(n,e),o=r?.resolve(e,{cardinality:"many",fidelity:"full"})?.view,c=[...new Set(n.violations(i).flatMap(m=>m.nodeIds))];if(o&&!Ee(o))return(0,b.jsx)(bt,{kind:e,children:(0,b.jsx)(o,{nodes:a,label:s,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1,...c.length>0?{flagged:c}:{}})});let f=r?.resolve(e,{cardinality:"one",fidelity:"summary"})?.view,u=8,g=a.slice(0,u);return(0,b.jsxs)("div",{"data-testid":"kind-sheet",style:f?{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gridAutoRows:"max-content",alignContent:"center",gap:12,padding:24}:{display:"flex",flexWrap:"wrap",alignContent:"center",justifyContent:"center",gap:10,padding:24},children:[g.map(m=>f?(0,b.jsx)(f,{node:m,fidelity:"summary",cardinality:"one",mode:"fullscreen",selected:!1,...c.includes(m.id)?{flagged:[m.id]}:{}},m.id):(0,b.jsx)("span",{style:{fontSize:"1.0625rem",padding:"8px 14px",borderRadius:8,border:"1px solid var(--graview-edge-bright)",background:"var(--graview-ground)",color:"var(--graview-ink)"},children:re(d,m)},m.id)),a.length>u?(0,b.jsxs)("span",{style:{...k,alignSelf:"center",padding:"0 6px"},children:["+",a.length-u," more ",s.toLowerCase()]}):null]})}function Et(t){let{store:e}=t,n=Zn(t),r=[...ce(t)].sort((a,d)=>n.indexOf(a.kind)-n.indexOf(d.kind)),i=new Set(r.map(a=>a.kind));return[...r.map(a=>({key:Le(a),kind:a.kind,title:a.title,to:ge(t,a),place:a})),...rt(t).filter(a=>!i.has(a)).map(a=>({key:`kind:${a}`,kind:a,title:I(e,a),to:`/${G(e.schema,a)}`}))]}var da=.72,za=540,pa=16/10;function Ba(t){let e=(0,Te.useRef)(null),[n,r]=(0,Te.useState)(t);return(0,Te.useLayoutEffect)(()=>{let i=e.current;if(!i||typeof ResizeObserver>"u")return;let a=()=>{let s=i.getBoundingClientRect().width;s>0&&r(l=>Math.abs(l-s)<.5?l:s)};a();let d=new ResizeObserver(a);return d.observe(i),()=>d.disconnect()},[]),{ref:e,width:n}}function Wt({context:t,entry:e}){let{store:n,brand:r,principal:i}=t,{ref:a,width:d}=Ba(za),s=d/da,l=ze(n,e.kind),o=n.schema.tryDefinition(e.kind),c=l.length===0?Re(n,e.kind,{...i?{principal:i}:{},...t.invariantContext?{context:t.invariantContext}:{}}).actions.affordances[0]:void 0,f=e.place!==void 0;return(0,b.jsxs)(L,{to:e.to,"data-testid":f?"place-card":"kind-card",className:"graview-gallery-card",style:{...X,display:"grid",gap:10,alignContent:"start",minWidth:0},children:[(0,b.jsxs)("span",{ref:a,"data-testid":f?"place-picture":"kind-picture","aria-hidden":"true",inert:!0,style:{display:"block",position:"relative",width:"100%",aspectRatio:`${pa}`,overflow:"hidden",borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",pointerEvents:"none"},children:[(0,b.jsx)("span",{style:{position:"absolute",left:0,top:0,width:s,height:s/pa,display:"grid",gridTemplateRows:"minmax(0, 1fr)",transform:`scale(${da})`,transformOrigin:"0 0"},children:e.place?(0,b.jsx)($t,{context:t,place:e.place}):(0,b.jsx)(Ha,{context:t,kind:e.kind})}),l.length===0?(0,b.jsx)("span",{"data-testid":"picture-empty",style:{position:"absolute",inset:0,display:"grid",placeContent:"center",justifyItems:"center",gap:2,padding:20,textAlign:"center"},children:(0,b.jsxs)("span",{style:{display:"grid",gap:2,padding:"10px 16px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-ground)",color:"var(--graview-ink)"},children:[(0,b.jsxs)("span",{style:{fontFamily:Pe,fontWeight:600,fontSize:"1.0625rem"},children:["No ",I(n,e.kind).toLowerCase()," yet"]}),c?(0,b.jsxs)("span",{style:k,children:["Begin with \u201C",c.label,"\u201D"]}):null]})}):null]}),(0,b.jsxs)("span",{style:{display:"grid",gap:2,minWidth:0},children:[(0,b.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[f?null:(0,b.jsx)(ee,{kind:e.kind,brand:r,schema:n.schema,size:8}),(0,b.jsx)("span",{style:{fontFamily:Pe,fontSize:"1.25rem",fontWeight:600,lineHeight:1.3,overflowWrap:"anywhere"},children:e.title})]}),(0,b.jsxs)("span",{style:k,children:[e.place?Ot(n,e.place.kind,e.place.across):Ot(n,e.kind),!f&&o?.description?` \xB7 ${o.description}`:null]})]})]})}var ca={display:"grid",gap:"32px 28px",gridTemplateColumns:"repeat(auto-fill, minmax(min(420px, 100%), 1fr))"},Ga=`
|
|
104
|
+
.graview-gallery-card > span:first-child { transition: border-color 160ms ease, box-shadow 160ms ease; }
|
|
105
|
+
.graview-gallery-card:hover > span:first-child,
|
|
106
|
+
.graview-gallery-card:focus-visible > span:first-child { border-color: var(--graview-edge-bright); box-shadow: 0 1px 0 var(--graview-edge), 0 10px 30px -18px var(--graview-ink); }
|
|
107
|
+
`;function Nt({context:t}){V(t.store);let e=Et(t);return e.length===0?null:(0,b.jsxs)("section",{style:ca,"data-testid":"gallery",children:[(0,b.jsx)("style",{children:Ga}),e.map(n=>(0,b.jsx)(Wt,{context:t,entry:n},n.key))]})}function Dt({context:t}){let{store:e}=t;V(e);let n=ce(t),r=Et(t);return(0,b.jsxs)(U,{context:t,style:Ne,children:[(0,b.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,b.jsx)("p",{style:ne,children:n.length===0?"None of its own yet":`${n.length} ${n.length===1?"picture":"pictures"}`}),(0,b.jsx)(J,{context:t,children:"Pictures"}),(0,b.jsx)("p",{style:Y,children:n.length===0?"Nothing here has a picture of its own yet, so each kind is drawn as the scene draws it. Title a group view and it appears here by name.":"The ways this installation looks at what it holds \u2014 each one the same picture the scene shows, here as a page."})]}),r.length>0?(0,b.jsx)("div",{style:ca,"data-testid":"places",children:r.map(i=>(0,b.jsx)(Wt,{context:t,entry:i},i.key))}):null]})}function It({context:t}){let{store:e,principal:n}=t;V(e);let r=ke(),i=he(),[a]=De(),d=decodeURIComponent(r.as??""),[s,l]=(0,Te.useState)(null),o=a.get("of"),f=ce(t).find(x=>x.as===d&&(!o||G(e.schema,x.kind)===o));if(!f)return(0,b.jsxs)(U,{context:t,children:[(0,b.jsx)(J,{context:t,children:"No picture is called that."}),(0,b.jsx)("p",{style:Y,children:(0,b.jsx)(L,{to:"/places",style:F,children:"The pictures there are \u2192"})})]});let u=I(e,f.kind),m=Re(e,f.kind,{...n?{principal:n}:{},...t.invariantContext?{context:t.invariantContext}:{}}).actions.affordances.map(x=>({affordance:x,mutation:e.allMutations().find(E=>E.name===x.mutation)})).filter(x=>x.mutation!==void 0);return(0,b.jsxs)(U,{context:t,style:Ne,children:[(0,b.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,b.jsx)(J,{context:t,children:f.title}),(0,b.jsxs)("p",{style:Y,"data-testid":"place-lede",children:[Ot(e,f.kind,f.across),"."]}),(0,b.jsx)("p",{style:{...k,margin:0},children:(0,b.jsxs)(L,{to:`/${G(e.schema,f.kind)}`,style:{...F,...k},"data-testid":"place-as-list",children:["All ",u.toLowerCase()," as a list \u2192"]})})]}),(0,b.jsx)("div",{"data-testid":"place-lens",style:{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",maxWidth:"100%",borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)"},onClick:x=>{let E=x.target?.closest("[data-graview-pick]"),C=E?.getAttribute("data-graview-pick"),K=E?.getAttribute("data-graview-joins");if(K)try{let Q=JSON.parse(K);if(Array.isArray(Q)&&Q.every(we=>typeof we=="string")){x.preventDefault(),l({at:Le(f),ids:Q});return}}catch{}if(!C)return;let ue=e.graph.getNode(C);ue&&(x.preventDefault(),i(q(e.schema,ue.kind,C)))},children:(0,b.jsx)($t,{context:t,place:f,...s?.at===Le(f)?{chosen:s.ids}:{}})}),(0,b.jsx)("div",{style:{maxWidth:760,display:"grid",gap:40},children:m.map(({affordance:x,mutation:E})=>(0,b.jsxs)("section",{style:{..._,display:"grid",gap:14},children:[(0,b.jsx)("h2",{style:D,children:E.title??E.name}),E.description?(0,b.jsx)("p",{style:{...k,margin:0,maxWidth:"58ch"},children:E.description}):null,(0,b.jsx)(fe,{store:e,mutation:E,prefilled:x.args,open:x.open,label:x.label,...n?{principal:n}:{}})]},x.id))})]})}var W=$(ve(),1);var Me=$(ve(),1);function ga(t,e,n){let r=Math.max(0,t.left),i=Math.min(e.width,t.right),a=Math.max(0,t.top),d=Math.min(e.height,t.bottom);return{shown:d-a>=n.height+2*16&&i-r>=n.width+2*16,left:Math.round(r),top:Math.round(a),width:Math.round(Math.max(0,i-r)),height:Math.round(Math.max(0,d-a))}}function ua(t,e,n){let r=t.style;r.left=`${e.left}px`,r.top=`${e.top}px`,r.right="auto",r.bottom="auto",r.visibility=n?"":"hidden";let i=t.getBoundingClientRect();i.width!==0&&(r.left=`${Math.round(2*e.left-i.left)}px`,r.top=`${Math.round(2*e.top-i.top)}px`)}var Se=$(B(),1);function ma({context:t}){let e=he(),n=se(),{pathname:r}=de(),[,i,a]=r.split("/"),d=i==="places"&&a?decodeURIComponent(a):void 0,s=(0,Me.useRef)(null);return Va(s,n!==null),n?(0,Se.jsxs)(Se.Fragment,{children:[(0,Se.jsx)(Ua,{context:t}),(0,Se.jsx)("div",{ref:s,"data-testid":"page-seat",style:{position:"fixed",left:0,top:0,width:"100vw",height:"100dvh",pointerEvents:"none",zIndex:fn("rail"),containerType:"size"},children:(0,Se.jsx)(Un,{onPick:l=>{let o=t.store.graph.getNode(l);o&&e(q(t.store.schema,o.kind,l))},onMove:l=>{if(n.seatTalk.get().draft&&n.seatTalk.setDraft(null),l.to==="place"&&(l.face==="scene"||l.slug==="overview")){t.overview?t.overview("#"):t.embedded||window.location.assign(t.sceneHref??"/");return}e(l.address)},...d?{place:d}:{},onDraft:()=>{r!=="/~draft"&&e("/~draft")}})})]}):null}var qa={width:160,height:40};function Va(t,e){let{pathname:n}=de(),r=An(e);(0,Me.useLayoutEffect)(()=>{let i=t.current;if(!i)return;let a=i.parentElement?.closest("[data-embed-content]")??null,d=()=>a??document.querySelector("main")??null,s=()=>{let f=d(),u={width:document.documentElement.clientWidth||innerWidth,height:r??innerHeight},g=f?.getBoundingClientRect()??{left:0,top:0,right:u.width,bottom:u.height},m=ga(a?g:{left:g.left,right:g.right,top:g.top,bottom:Math.max(g.bottom,u.height)},u,qa);i.style.width=`${m.width}px`,i.style.height=`${m.height}px`,ua(i,m,m.shown)};s(),addEventListener("resize",s),addEventListener("scroll",s,!0);let l=0,o=typeof ResizeObserver=="function"?new ResizeObserver(()=>{cancelAnimationFrame(l),l=requestAnimationFrame(s)}):null,c=d();return c&&o?.observe(c),()=>{cancelAnimationFrame(l),o?.disconnect(),removeEventListener("resize",s),removeEventListener("scroll",s,!0)}},[t,e,n,r])}function Ua({context:t}){let{store:e}=t,n=se(),{pathname:r}=de(),i=(0,Me.useRef)(n?.setSelection);return i.current=n?.setSelection,(0,Me.useEffect)(()=>{let a=i.current;if(!a)return;let[,d,s]=r.split("/"),l=(()=>{if(d==="places"){let c=t.views?.places().find(f=>f.as===decodeURIComponent(s??""));return c?[He(c.kind)]:[]}let o=d?ye(e.schema,d):void 0;return o&&s?[decodeURIComponent(s)]:o?[vn(o)]:[]})();a(o=>o.length===l.length&&o.every((c,f)=>c===l[f])?o:l)},[r]),null}var te=$(ve(),1);var ya=$(Na(),1);var Z=$(B(),1);var ja=(0,te.lazy)(wn(()=>import("./chunk.AKWBAWQF.js").then(t=>({default:t.TakeBack}))));function _a({context:t,docked:e,at:n}){let{store:r}=t,i=V(r),[a]=(0,te.useState)(()=>r.batches().length),d=(0,te.useRef)(!1);return d.current||=i>0||!e&&a>0,d.current?(0,Z.jsx)(te.Suspense,{fallback:null,children:(0,Z.jsx)(ja,{context:t,docked:e,at:n,since:a})}):null}function Ya(t,e,n){let{store:r,principal:i,embedded:a}=t;(0,te.useEffect)(()=>{if(!n)return;let d=s=>{if(!Jn(s))return;let l=s.target,o=l instanceof Node&&e.current?.contains(l),c=l===document.body||l===document.documentElement||l===document;if(!(!o&&!(c&&!a))&&_n(r,i)){s.preventDefault();try{Yn(r,i)}catch{}}};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[r,i,a,e,n])}function ha({context:t,registry:e,root:n,children:r}){let i=(0,te.useMemo)(ra,[]),a=e?.without()??new Set;return Ya(t,n,!a.has("undo")),(0,Z.jsxs)(Lt.Provider,{value:i,children:[(0,Z.jsx)(Ja,{context:t,placed:i,without:a}),r]})}function Ja({context:t,placed:e,without:n}){let[r,i]=(0,te.useState)(!1);(0,te.useLayoutEffect)(()=>i(!0),[]);let a=Tt(e,"find"),d=Tt(e,"undo"),s=de(),l=En();if(!r)return null;let o=s.pathname.split("/").filter(Boolean),f=(o.length===1?ye(t.store.schema,o[0]):void 0)!==void 0;return(0,Z.jsxs)(Z.Fragment,{children:[!a&&!n.has("find")&&l?(0,ya.createPortal)((0,Z.jsx)(fa,{context:t,narrowsLists:f}),l.slot):null,!a&&!n.has("find")&&!l?(0,Z.jsx)("div",{"data-testid":"face-find-bar",style:{display:"flex",alignItems:"center",padding:"8px 16px",borderBottom:"1px solid var(--graview-edge)",background:"var(--graview-bar)",minWidth:0},children:(0,Z.jsx)(fa,{context:t,narrowsLists:f})}):null,!d&&!n.has("undo")?(0,Z.jsx)(_a,{context:t,docked:!0,at:s.pathname+s.search}):null,l?.own&&!n.has("undo")?(0,Z.jsx)(ea,{context:t,own:l.own}):null]})}function fa({context:t,narrowsLists:e}){return(0,Z.jsx)(Lt.Provider,{value:null,children:(0,Z.jsx)(Mt,{context:t,narrowsLists:e})})}var T=$(B(),1);function wa(t,e){return e==="*"?{label:"anything",path:null}:{label:I(t,e),path:`/${G(t.schema,e)}`}}function Qa({context:t,relation:e}){let{store:n}=t,r=wa(n,e.from),i=wa(n,e.to),a=d=>d.path?(0,T.jsx)(L,{to:d.path,style:{...X,fontWeight:550},children:d.label}):(0,T.jsx)("span",{children:d.label});return(0,T.jsxs)("li",{"data-testid":"relation","data-relation":e.edgeKind,style:{display:"grid",gridTemplateColumns:"30px minmax(0, 1fr) auto",gap:12,alignItems:"baseline"},children:[(0,T.jsx)(jn,{edgeKind:e.edgeKind,...t.brand?.kit?{kit:t.brand.kit}:{}}),(0,T.jsxs)("span",{style:{display:"grid",gap:1},children:[(0,T.jsxs)("span",{children:[a(r)," ",(0,T.jsxs)("span",{style:k,"data-graview-speaks-ids":"",children:[ie(e.edgeKind)," \u2192"]})," ",a(i)]}),e.description||e.inverse?(0,T.jsxs)("span",{style:{...k,fontSize:"0.9375rem"},children:[e.description?le(e.description):null,e.description&&e.inverse?" \xB7 ":null,e.inverse?`from the other end, ${e.inverse}`:null]}):null]}),i.path?(0,T.jsx)(L,{to:`${i.path}?with=${encodeURIComponent(e.edgeKind)}`,style:{...F,...k,fontVariantNumeric:"tabular-nums",display:"inline-block",minWidth:24,minHeight:24,textAlign:"center"},title:`The ${i.label.toLowerCase()} that have this`,children:e.count}):(0,T.jsx)("span",{style:{...k,fontVariantNumeric:"tabular-nums"},children:e.count})]})}function va({context:t,heading:e=!0}){let{store:n}=t,r=new Set(Ce(n,t.principal)),i=Ae(n).relations.filter(a=>r.has(a.from)&&(a.to==="*"||r.has(a.to)));return i.length===0?null:(0,T.jsxs)("section",{style:{..._,display:"grid",gap:12},"data-testid":"kind-map",children:[e?(0,T.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,T.jsx)("h2",{style:D,children:(0,T.jsx)(L,{to:"/map",style:X,children:"Connections"})}),(0,T.jsx)("span",{style:k,children:i.length===1?"1 relation":`${i.length} relations`})]}):null,(0,T.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:10},children:i.map(a=>(0,T.jsx)(Qa,{context:t,relation:a},`${a.edgeKind}|${a.from}|${a.to}`))})]})}function Kt({context:t}){let{store:e}=t;V(e);let n=new Set(Ce(e,t.principal)),r=Ae(e),i=r.relations.filter(a=>n.has(a.from));return(0,T.jsxs)(U,{context:t,children:[(0,T.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,T.jsx)("p",{style:ne,children:i.length===0?"No relations":`${i.length} ${i.length===1?"relation":"relations"}`}),(0,T.jsx)(J,{context:t,children:"Connections"}),(0,T.jsx)("p",{style:Y,children:i.length===0?"Nothing here is declared to relate to anything else yet.":"The kinds this installation holds, and the relations declared between them \u2014 each in the declaration's own words, with how many of it there are."})]}),(0,T.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:"6px 18px"},"data-testid":"map-kinds",children:r.kinds.filter(a=>n.has(a.kind)).map(a=>(0,T.jsxs)("li",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[(0,T.jsx)(ee,{kind:a.kind,brand:t.brand,schema:e.schema,size:7}),(0,T.jsx)(L,{to:`/${G(e.schema,a.kind)}`,style:F,children:a.plural}),(0,T.jsx)("span",{style:k,children:a.count})]},a.kind))}),(0,T.jsx)(va,{context:t,heading:!1})]})}function ka({context:t}){let n=[...se()?.robots.values()??[]].filter(i=>i.mode==="asking"&&i.say);if(n.length===0)return null;let{store:r}=t;return(0,T.jsxs)("section",{style:{..._,display:"grid",gap:10},"data-testid":"seat-questions",children:[(0,T.jsx)("h2",{style:D,children:n.length===1?"The seat asked something":`The seat asked ${n.length} things`}),(0,T.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:8},children:n.map(i=>{let a=i.at?r.graph.getNode(i.at):void 0;return(0,T.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,T.jsx)("span",{children:i.say}),a?(0,T.jsxs)(L,{to:q(r.schema,a.kind,a.id),style:{...F,...k},children:[re(r.schema.tryDefinition(a.kind),a)," \u2192"]}):null]},i.participant)})})]})}var O=$(B(),1);function Ht({context:t}){let{principal:e}=t,{store:n,brand:r,invariantContext:i}=t;V(n);let a=n.violations(i),d=`${a.length===1?"A rule is broken":"Rules are broken"} \u2014 see what, and what would fix it`,s=[...n.log.all()].slice(-5).reverse(),o=rt(t).map(C=>({kind:C,members:n.graph.nodesOfKind(C).filter(K=>$e(n.schema.tryDefinition(C),K))})),c=o.filter(C=>C.members.length>0),f=o.map(C=>({entry:C,creator:n.allMutations().find(K=>(K.creates??[]).includes(C.kind)&&n.permits({name:K.name,args:{}},t.principal).ok)})).find(C=>C.creator!==void 0),u=c.length===0?"Nothing here yet.":`${c.map(C=>`${C.members.length} ${C.members.length===1?C.kind:I(n,C.kind).toLowerCase()}`).join(", ").replace(/, ([^,]*)$/," and $1")}.`,g=t.views?.homeView?.(),m=n.schema.kinds.some(C=>n.graph.nodesOfKind(C).length>0);if(g&&m){let C=r?.subtitle?(0,O.jsx)("p",{style:{...k,margin:0},"data-testid":"app-subtitle",children:r.subtitle}):null,K=g[Symbol.for("graview.home-blocks")]===!0;return(0,O.jsx)(U,{context:t,style:Ne,children:(0,O.jsxs)("div",{style:{display:"grid",gap:12},"data-testid":"home-view",children:[K?null:C,a.length>0?(0,O.jsx)(L,{to:"/problems",style:{...F,color:"var(--graview-warn)"},children:d}):null,(0,O.jsx)(Gn.Provider,{value:K?C:null,children:(0,O.jsx)(g,{cardinality:"many",fidelity:"full",mode:"fullscreen",selected:!1})})]})})}let x=new Set(Ce(n,t.principal)),E=Ae(n).relations.filter(C=>x.has(C.from)&&(C.to==="*"||x.has(C.to)));return(0,O.jsxs)(U,{context:t,style:Ne,children:[(0,O.jsxs)("header",{style:{display:"grid",gap:12},children:[r?.subtitle?(0,O.jsx)("p",{style:{...k,margin:0},"data-testid":"app-subtitle",children:r.subtitle}):null,(0,O.jsx)(J,{context:t,"data-testid":"standing",children:u}),(0,O.jsxs)("p",{style:{...Y,display:"grid",gap:4},"data-testid":"standing-card",children:[c.length===0&&f?(0,O.jsxs)("span",{children:["Begin with \u201C",f.creator?.title??f.creator?.name,"\u201D, under"," ",(0,O.jsx)(L,{to:`/${G(n.schema,f.entry.kind)}`,style:F,children:I(n,f.entry.kind)}),"."]}):null,a.length===0?(0,O.jsx)("span",{children:"All rules hold."}):(0,O.jsx)(L,{to:"/problems",style:{...F,color:"var(--graview-warn)"},children:d})]})]}),(0,O.jsx)(Nt,{context:t}),(0,O.jsxs)("section",{style:{..._,display:"grid",gap:14},"data-testid":"kinds",children:[(0,O.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"},children:[(0,O.jsx)("h2",{style:D,children:"What is here"}),E.length>0?(0,O.jsxs)(L,{to:"/map",style:{...F,...k,marginLeft:"auto"},"data-testid":"map-link",children:["Connections \xB7 ",E.length===1?"1 relation":`${E.length} relations`," \u2192"]}):null]}),(0,O.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:"8px 10px"},children:o.map(({kind:C,members:K})=>(0,O.jsx)("li",{style:{maxWidth:"100%"},children:(0,O.jsxs)(L,{to:`/${G(n.schema,C)}`,style:{...X,flexWrap:"wrap",gap:8,padding:"6px 14px 6px 10px",borderRadius:8,border:"1px solid var(--graview-edge-bright)",background:"var(--graview-panel)"},children:[(0,O.jsx)(ee,{kind:C,brand:r,schema:n.schema,size:7}),(0,O.jsx)("span",{style:{fontWeight:550,overflowWrap:"anywhere"},children:I(n,C)}),(0,O.jsx)("span",{style:{...k,fontVariantNumeric:"tabular-nums"},children:K.length===0?"none yet":K.length})]})},C))})]}),s.length>0?(0,O.jsxs)("section",{style:{..._,display:"grid",gap:10},children:[(0,O.jsx)("h2",{style:D,children:"Recently"}),(0,O.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6},children:s.map(C=>(0,O.jsxs)("li",{style:k,children:[(0,O.jsx)("span",{style:{color:"var(--graview-ink)"},children:C.intent})," \u2014 ",nt(C,e,{graph:n.graph,schema:n.schema,...t.seats?{seats:t.seats}:{},...t.people?{people:t.people}:{}})]},C.id))})]}):null]})}var Fe=$(ve(),1);var R=$(B(),1);function zt({context:t}){let{store:e,brand:n,principal:r,invariantContext:i}=t;V(e);let[a]=De(),d=a.get("q")??"",s=typeof i?.today=="string"?i.today:void 0,l=un(e,d,{...r?{principal:r}:{},places:ce(t),flagged:new Set(e.violations(i).flatMap(g=>g.nodeIds)),...s?{today:s}:{},limit:200}),o=l.hits.filter(g=>g.about==="node"),c=l.hits.filter(g=>g.about==="kind"||g.about==="place"||g.about==="rule"),f=[...new Set(o.map(g=>g.kind))],u=d.trim();return(0,R.jsxs)(U,{context:t,children:[(0,R.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,R.jsx)("p",{style:ne,children:"Search"}),(0,R.jsx)(J,{context:t,"data-testid":"search-heading",children:u.length===0?"Find anything by its name":l.hits.length===0?(0,R.jsxs)(R.Fragment,{children:["Nothing here is called \u201C",u,"\u201D."]}):(0,R.jsxs)(R.Fragment,{children:[Xa(e,l.byKind)," for \u201C",u,"\u201D"]})}),u.length>0?(0,R.jsxs)("p",{style:{...k,margin:0},"data-testid":"search-searched",children:[Ye(e.schema,l.searched),l.conditions.filter(g=>g.key!=="is"&&g.admittedBy.length<l.searched.kinds.length).map(g=>(0,R.jsxs)("span",{children:[" ",g.key,":",g.value," narrows"," ",g.admittedBy.length===0?"nothing here":g.admittedBy.map(m=>I(e,m).toLowerCase()).join(" and "),"."]},`${g.key}:${g.value}`))]}):(0,R.jsxs)("p",{style:Y,children:["Type in the box above. Words find the start of words in names and in what each record says;"," ",(0,R.jsx)("code",{children:"done:false"})," and the like narrow as a list does, and ",(0,R.jsx)("code",{children:"is:any"})," includes what is past."]})]}),c.length>0?(0,R.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6},"data-testid":"search-named",children:c.map(g=>(0,R.jsx)("li",{"data-testid":"search-hit","data-about":g.about,children:g.about==="kind"?(0,R.jsxs)(L,{to:`/${G(e.schema,g.kind)}`,style:F,children:[g.label,g.count>0?(0,R.jsxs)("span",{style:k,children:[" \xB7 ",g.count," match"]}):null]}):g.about==="place"?(0,R.jsxs)(L,{to:ge(t,g),style:F,children:["Go to ",g.title]}):g.about==="rule"?(0,R.jsxs)(L,{to:"/problems",style:F,children:["The rule \u201C",g.label,"\u201D"]}):null},`${g.about}:${g.about==="rule"?g.name:g.about==="place"?g.as:g.kind}`))}):null,f.map(g=>(0,R.jsxs)("section",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:0,minWidth:0},"data-testid":"search-group","data-kind":g,children:[(0,R.jsxs)("h2",{style:{...D,fontSize:"1.0625rem",marginBottom:4,display:"flex",alignItems:"center",gap:8},children:[(0,R.jsx)(ee,{kind:g,brand:n,schema:e.schema,size:8}),(0,R.jsx)(L,{to:`/${G(e.schema,g)}?${new URLSearchParams({q:u}).toString()}`,style:F,"data-testid":"search-kind-link",children:I(e,g)}),(0,R.jsx)("span",{style:k,children:l.byKind[g]})]}),(0,R.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:0},children:o.filter(m=>m.kind===g).map(m=>(0,R.jsxs)("li",{"data-testid":"search-hit","data-about":"node",style:{display:"grid",gap:2,padding:"12px 0",minWidth:0,borderTop:"1px solid var(--graview-edge)"},children:[(0,R.jsxs)(L,{to:q(e.schema,g,m.id),style:{...X,fontFamily:Pe,fontSize:"1.1875rem",fontWeight:600,lineHeight:1.3,overflowWrap:"anywhere"},children:[m.flagged?(0,R.jsx)("span",{style:{color:"var(--graview-warn)"},children:"\u26A0 "}):null,m.label,m.apart?(0,R.jsxs)("span",{style:k,children:[" \xB7 ",m.apart]}):null,m.current?null:(0,R.jsx)("span",{style:k,children:" \xB7 past"})]}),(0,R.jsx)(st,{why:m.why})]},m.id))})]},g)),u.length>0?(0,R.jsx)(Za,{asked:u}):null,u.length>0&&l.hits.length===0?(0,R.jsx)(ba,{store:e,kinds:l.searched.kinds,words:l.words,...r?{principal:r}:{},...i?{invariantContext:i}:{}}):null]})}function st({why:t}){return t.field==="label"?null:(0,R.jsxs)("span",{style:k,"data-testid":"search-why",children:[t.reading,": ",t.fragment]})}function Xa(t,e){let n=Object.entries(e).map(([r,i])=>`${i} ${i===1?be(t.schema.tryDefinition(r),r):I(t,r).toLowerCase()}`);return n.length===0?"Found":n.length===1?le(n[0]):le(`${n.slice(0,-1).join(", ")} and ${n[n.length-1]}`)}function Sa(t,e,n={}){let r=[];for(let i of e){let a=Re(t,i,{...n.principal?{principal:n.principal}:{},...n.invariantContext?{context:n.invariantContext}:{}});for(let d of lt(t,i,a.actions.affordances))r.some(s=>s.mutation.name===d.mutation.name)||r.push(d)}return r}function lt(t,e,n){let r=t.schema.tryDefinition(e)?.fieldRoles?.label,i=[];for(let a of n){let d=t.allMutations().find(o=>o.name===a.mutation);if(!d||!d.creates?.includes(e)||i.some(o=>o.mutation.name===d.name))continue;let s=Ze(d.input).map(o=>o.name),l=s.includes("label")?"label":r&&s.includes(r)?r:void 0;!l||a.args[l]!==void 0||i.push({kind:e,affordance:a,mutation:d,arg:l})}return i}function ba({store:t,kinds:e,words:n,principal:r,invariantContext:i}){let a=Sa(t,e,{...r?{principal:r}:{},...i?{invariantContext:i}:{}});return a.length===0||n.trim().length===0?null:(0,R.jsx)("div",{style:{display:"grid",gap:24},"data-testid":"search-to-create",children:a.map(({kind:d,affordance:s,mutation:l,arg:o})=>(0,R.jsxs)("section",{style:{..._,display:"grid",gap:14},children:[(0,R.jsxs)("h2",{style:D,children:[le(nn(be(t.schema.tryDefinition(d),d)))," called \u201C",n,"\u201D"]}),(0,R.jsx)(fe,{store:t,mutation:l,prefilled:s.args,open:s.open,initial:{[o]:n},...r?{principal:r}:{}})]},`${s.id}|${n}`))})}function Za({asked:t}){let e=se();return e?(0,R.jsx)(er,{asked:t,talk:e.seatTalk}):null}function er({asked:t,talk:e}){let{drawn:n}=kn(e);return n===0?null:(0,R.jsx)("p",{style:{margin:0},children:(0,R.jsxs)("button",{type:"button","data-testid":"search-ask",onClick:()=>e.ask(t),style:{...F,font:"inherit",padding:0,border:0,background:"transparent",cursor:"pointer",textAlign:"start"},children:["Ask: \u2018",t,"\u2019"]})})}var h=$(B(),1),xa=8,Pa=40;function Bt({context:t}){let e=ke(),n=ye(t.store.schema,e.slug??"");return n?(0,h.jsx)(Ca,{context:t,kind:n}):(0,h.jsx)(U,{context:t,children:(0,h.jsx)(J,{context:t,children:"No such kind of thing here."})})}function Ca({context:t,kind:e,opening:n,row:r,layout:i="list",description:a,bare:d}){let{store:s,brand:l,invariantContext:o}=t;V(s);let[c,f]=De(),u=s.schema.tryDefinition(e),g=s.graph.nodesOfKind(e),m=Ae(s).relations.filter(p=>p.from===e||p.to===e),x=new Set(s.violations(o).flatMap(p=>p.nodeIds)),E=dn(s.schema,e),C=m.map(p=>p.edgeKind),K=ar(c,E,C),ue=["sort","filter","group","q","by","with","past",...C].some(p=>c.has(p)),Q=g.length>=Pa,we=u?.fieldRoles?.when,N=ue?K.arrangement:xt(n??nr(Q,we),E).arrangement,ae=cn(N.query??""),Oe=[...N.filter??[],...ae.conditions].some(p=>p.key==="is"&&(p.value==="past"||p.value==="any"))||ln(u,[...N.filter??[],...ae.conditions]),y=Oe||!u?.lifecycle?N:{...N,filter:[...N.filter??[],{key:"is",value:"current"}]},A=Dn(g,y,{schema:s.schema,graph:s.graph,flagged:x,...typeof o?.today=="string"?{today:o.today}:{}}),j=A.nodes,z=u?.lifecycle&&!Oe?g.filter(p=>$e(u,p)):g,Vt=g.length-z.length,Ut=N.group?.by??null,La=p=>{let P=new URLSearchParams(c);for(let oe of["sort","filter","group","q","by","with","past",...m.map(je=>je.edgeKind)])P.delete(oe);let H=Nn(p);for(let oe of["sort","filter","group","q"])H[oe]&&P.set(oe,H[oe]);![...P.keys()].some(oe=>["sort","filter","group","q"].includes(oe))&&(n||Q||we)&&P.set("sort",""),f(P)},{principal:jt}=t,gt=Re(s,e,{...jt?{principal:jt}:{},...t.invariantContext?{context:t.invariantContext}:{}}),Ie=gt.actions.affordances.map(p=>({affordance:p,mutation:s.allMutations().find(P=>P.name===p.mutation)})).filter(p=>p.mutation!==void 0),_t=gt.actions.withheld,Yt=ae.words&&j.length===0?Object.fromEntries(lt(s,e,gt.actions.affordances).map(p=>[p.mutation.name,p.arg])):{},ut=I(s,e),Ge=t.views?.lookup(e,{cardinality:"one",fidelity:"glyph"}),Jt=Ge!==void 0&&!Ee(Ge)?Ge:void 0,mt=p=>{let P=re(u,p);if(r){let Ke=u?.computed?We(s.schema,s.graph,p):p;return(0,h.jsx)("li",{"data-testid":"record-row",style:{minWidth:0},children:r(p,{label:P,href:q(s.schema,e,p.id),flagged:x.has(p.id),glance:at(Ke,u,P)})},p.id)}if(Jt){let Ke=Xe(Ge,p,s.graph),$a=u?.computed?We(s.schema,s.graph,p):p,Ea=Object.fromEntries(Object.entries($a).filter(([Wa])=>!Ke?.fields.has(Wa))),Xt=Ke?at(Ea,u,Ke.title??P):"";return(0,h.jsxs)("li",{"data-testid":"record-row",style:{position:"relative",display:"flex",flexWrap:"wrap",alignItems:"baseline",columnGap:16,rowGap:2,padding:"10px 0",borderTop:"1px solid var(--graview-edge)"},children:[(0,h.jsx)("div",{style:{flex:"1 1 14rem",minWidth:0},children:(0,h.jsx)(Jt,{node:p,cardinality:"one",fidelity:"glyph",mode:"fullscreen",selected:!1,...x.has(p.id)?{flagged:[p.id]}:{}})}),Xt?(0,h.jsx)("span",{style:{...k,flex:"0 1 auto",minWidth:0,overflowWrap:"anywhere"},"data-testid":"record-glance",children:Xt}):null,(0,h.jsx)(L,{to:q(s.schema,e,p.id),"aria-label":x.has(p.id)?`${P} \u2014 implicated in a problem`:P,style:{position:"absolute",inset:0,borderRadius:6}})]},p.id)}let H=u?.computed?We(s.schema,s.graph,p):p,oe=at(H,u,P),je=ae.words?gn(u,p,ae.words):void 0,wt=Q?void 0:On(p,u);return(0,h.jsxs)("li",{style:Q?{display:"flex",flexWrap:"wrap",alignItems:"baseline",columnGap:16,rowGap:0,padding:"5px 0",borderTop:"1px solid var(--graview-edge)",overflowWrap:"anywhere"}:{display:"grid",gridTemplateColumns:wt?"auto minmax(0, 1fr)":"minmax(0, 1fr)",columnGap:14,gap:2,padding:"14px 0",borderTop:"1px solid var(--graview-edge)",overflowWrap:"anywhere"},children:[wt?(0,h.jsx)(xe,{as:"thumb",file:wt,style:{gridRow:"span 3"}}):null,(0,h.jsxs)(L,{to:q(s.schema,e,p.id),style:Q?{...X,flex:"1 1 14rem",minWidth:0,fontSize:"1rem",fontWeight:600,lineHeight:1.35}:{...X,fontFamily:Pe,fontSize:"1.25rem",fontWeight:600,lineHeight:1.3},children:[x.has(p.id)?(0,h.jsx)("span",{style:{color:"var(--graview-warn)"},children:"\u26A0 "}):null,P]}),oe?(0,h.jsx)("span",{style:Q?{...k,flex:"0 1 auto",minWidth:0,fontSize:"0.875rem"}:k,children:oe}):null,je?(0,h.jsx)(st,{why:je}):null]},p.id)},ft=ce(t).filter(p=>p.kind===e),Ta=(N.filter??[]).some(p=>p.key!=="is"||p.value!=="any"),Ma=!!(N.sort||N.group||N.query||Ta),Fa=z.length>=xa||ue&&Ma,me=N.sort?E.sorts.find(p=>p.key===N.sort.by):void 0,yt=me?.type==="date"||me!==void 0&&me.key===we,Qt=Q&&!A.grouped&&me&&(me.about==="label"||me.type==="text"||yt)?p=>{let P=me.about==="label"?re(u,p):p[me.key];if(typeof P!="string"||P.length===0)return yt?"No date":"#";if(yt)return P.slice(0,4);let H=P.trim().charAt(0).toLocaleUpperCase();return/\p{L}/u.test(H)?H:"#"}:void 0,qe=Qt?j.reduce((p,P)=>{let H=Qt(P);return p.at(-1)?.key===H?p.at(-1).nodes.push(P):p.push({key:H,nodes:[P]}),p},[]):void 0,ht=i==="grid"?{margin:0,padding:0,listStyle:"none",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(min(100%, 15rem), 1fr))",gap:12}:{margin:0,padding:0,listStyle:"none",display:"grid",gap:r&&i==="list"?6:0},Ve=p=>`list-at-${p.replace(/[^\p{L}\p{N}]/gu,"_")}`,Ue=m.map(p=>{let P=p.from===e?p.to:p.from,H=p.from===e?p.description:p.inverse??p.description;return{relation:p,far:P,words:H}}),Oa=new Set(Ue.map(p=>(p.words??"").toLowerCase()).filter((p,P,H)=>p&&H.indexOf(p)!==P));return(0,h.jsxs)(d?tr:U,{context:t,children:[(0,h.jsxs)("div",{style:{display:"grid",gap:12},children:[(0,h.jsxs)("header",{style:{display:"grid",gap:4},children:[(0,h.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0},children:[(0,h.jsx)(ee,{kind:e,brand:l,schema:s.schema,size:8}),(0,h.jsx)(J,{context:t,children:ut})]}),a??u?.description?(0,h.jsx)("p",{style:{...Y,fontSize:"1.0625rem",lineHeight:1.4},children:a??u?.description}):null,Ue.length>0||ft.length>0?(0,h.jsxs)("p",{style:{...k,margin:0,display:"flex",flexWrap:"wrap",columnGap:18,rowGap:2},"data-testid":"kind-related",children:[Ue.length>0?(0,h.jsxs)("span",{"data-testid":"kind-relations",children:["Related:"," ",Ue.map(({relation:p,far:P,words:H},oe)=>(0,h.jsxs)("span",{"data-relation":p.edgeKind,children:[oe>0?" \xB7 ":null,P==="*"?le(H??ie(p.edgeKind)):(0,h.jsx)(L,{to:`/${G(s.schema,P)}`,style:F,title:I(s,P),children:H&&Oa.has(H.toLowerCase())?`${le(H)}: ${I(s,P).toLowerCase()}`:le(H??I(s,P))})]},`${p.edgeKind}|${p.from}|${p.to}`))]}):null,ft.length>0?(0,h.jsxs)("span",{"data-testid":"kind-pictures",children:["Also as:"," ",ft.map((p,P)=>(0,h.jsxs)("span",{children:[P>0?" \xB7 ":null,(0,h.jsx)(L,{to:ge(t,p),style:F,children:p.title})]},Le(p)))]}):null]}):null]}),K.dropped.length>0?(0,h.jsxs)("p",{style:{...k,margin:0},"data-testid":"list-dropped",children:["This link asked for ",K.dropped.join(", "),", which ",ut.toLowerCase()," cannot be arranged by; the rest is shown."]}):null,z.length>0?(0,h.jsx)(Kn,{schema:s.schema,graph:s.graph,kind:e,arrangement:N,onChange:La,kept:{shown:j.length,of:z.length},noun:{one:be(u,e),many:ut.toLowerCase()},...Fa?{}:{allow:!1},query:t.framed===!0&&t.barAbove!==!0}):null,j.length===0&&ae.words?(0,h.jsxs)("p",{style:{...Y,fontSize:"1.0625rem"},"data-testid":"none-yet",children:["Nothing here is called \u201C",ae.words,"\u201D."," ",(0,h.jsx)("span",{style:k,"data-testid":"list-searched",children:Ye(s.schema,{kinds:[e],past:Oe})})," ",(0,h.jsx)(L,{to:"?",style:F,children:"Show every one"})]}):j.length===0?(0,h.jsxs)("p",{style:{...Y,fontSize:"1.0625rem"},"data-testid":"none-yet",children:[N.filter?.length||N.query?"None of them.":"None yet",!N.filter?.length&&!N.query&&Ie.length>0?` \u2014 the first one starts below, with \u201C${Ie[0]?.mutation.title??Ie[0]?.mutation.name}\u201D.`:!N.filter?.length&&!N.query?".":"",N.filter?.length||N.query?(0,h.jsxs)(h.Fragment,{children:[" ",(0,h.jsx)(L,{to:"?",style:F,children:"Show every one"})]}):null]}):A.grouped&&Ut?(0,h.jsx)("div",{style:{display:"grid",gap:18},"data-testid":"records","data-grouped":Ut,children:A.groups.map(p=>(0,h.jsxs)("section",{style:{display:"grid",gap:0},"data-testid":"list-group",children:[(0,h.jsxs)("h2",{style:{...D,fontSize:"1.0625rem",marginBottom:4},children:[p.label," ",(0,h.jsx)("span",{style:k,children:p.nodes.length})]}),(0,h.jsx)("ul",{style:ht,"data-graview-rows":"",children:p.nodes.map(mt)})]},p.key||"-"))}):qe&&qe.length>1?(0,h.jsxs)("div",{style:{display:"grid",gap:14},"data-testid":"records","data-sectioned":me?.type==="date"?"year":"letter",children:[(0,h.jsx)("nav",{"aria-label":"Jump to","data-testid":"list-index",style:{...k,display:"flex",flexWrap:"wrap",gap:me?.type==="date"?"0 10px":"0 4px",fontSize:"0.8125rem",lineHeight:1.3},children:qe.map(p=>(0,h.jsx)("a",{href:`#${Ve(p.key)}`,onClick:P=>{P.preventDefault(),document.getElementById(Ve(p.key))?.scrollIntoView({block:"start"})},style:{...F,flex:"0 0 auto",minWidth:24,justifyContent:"center",textDecoration:"none"},children:p.key},p.key))}),qe.map(p=>(0,h.jsxs)("section",{"data-testid":"list-section","aria-labelledby":Ve(p.key),style:{display:"grid",gap:0},children:[(0,h.jsx)("h2",{id:Ve(p.key),style:{...D,fontSize:"0.9375rem",color:"var(--graview-ink-muted)",marginBottom:2,scrollMarginTop:64},children:p.key}),(0,h.jsx)("ul",{style:ht,"data-graview-rows":"",children:p.nodes.map(mt)})]},p.key))]}):(0,h.jsx)("ul",{style:ht,"data-testid":"records","data-graview-rows":"",children:j.map(mt)}),Vt>0?(0,h.jsxs)(L,{to:rr(c,"filter","is:any"),style:{...F,...k,justifySelf:"start"},"data-testid":"past-link",children:["+",Vt," past"]}):null,Ie.length>0?(0,h.jsx)("div",{style:{display:"grid",gap:6},"data-testid":"beginnings",children:Ie.map(({affordance:p,mutation:P})=>{let H=!!(Yt[P.name]&&j.length===0);return(0,h.jsx)(ir,{name:P.name,title:P.title??P.name,description:P.description,open:j.length===0,children:(0,h.jsx)(fe,{store:s,mutation:P,prefilled:p.args,open:p.open,...H?{initial:{[Yt[P.name]]:ae.words}}:{},...t.principal?{principal:t.principal}:{}},H?`${P.name}|${ae.words}`:P.name)},p.id)})}):null]}),_t.length>0?(0,h.jsx)("ul",{style:{..._,margin:0,padding:0,listStyle:"none",display:"grid",gap:4},"data-testid":"withheld",children:_t.map(p=>(0,h.jsxs)("li",{style:k,children:[(0,h.jsx)("s",{children:p.label})," \u2014 ",p.refusal.message]},p.id))}):null]})}function tr({children:t}){return(0,h.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:40,minWidth:0},children:t})}var nr=(t,e)=>e?{sort:{by:e,direction:"desc"}}:t?{sort:{by:"label",direction:"asc"}}:{};function ar(t,e,n){let r=pn({...t.get("sort")?{sort:t.get("sort")}:{},...t.get("filter")?{filter:t.get("filter")}:{},...t.get("group")?{group:t.get("group")}:{},...t.get("q")?{q:t.get("q")}:{}}),i=[...r.filter??[]],a=t.get("by"),d=r.group??(a?{by:a}:void 0);for(let l of n){let o=t.get(l);o&&i.push({key:l,value:o})}let s=t.get("with");return s&&i.push({key:s,value:"*"}),t.get("past")==="1"&&!i.some(l=>l.key==="is")&&i.push({key:"is",value:"any"}),xt({...r.sort?{sort:r.sort}:{},...r.query?{query:r.query}:{},...i.length>0?{filter:i}:{},...d?{group:d}:{}},e)}function rr(t,e,n){let r=new URLSearchParams(t);return r.set(e,n),r.delete("past"),`?${r.toString()}`}function ir({name:t,title:e,description:n,open:r,children:i}){let[a,d]=(0,Fe.useState)(r),s=(0,Fe.useRef)(null),l=(0,Fe.useRef)(null),o=`begin-${(0,Fe.useId)().replace(/:/g,"")}`;return(0,h.jsxs)("div",{"data-testid":`act-${t}`,style:{display:"grid",gap:10},children:[(0,h.jsxs)("button",{ref:s,type:"button","data-testid":`act-open-${t}`,"aria-expanded":a,"aria-controls":o,onClick:()=>{d(!a),a||requestAnimationFrame(()=>l.current?.querySelector("input, select, textarea, button")?.focus())},style:{...X,justifySelf:"start",minHeight:32,padding:"0 2px",border:0,background:"none",font:"inherit",fontSize:"0.9375rem",fontWeight:600,color:"var(--graview-ink)",cursor:"pointer"},children:[(0,h.jsx)("span",{"aria-hidden":"true",style:{marginRight:6},children:a?"\u2212":"+"}),e]}),(0,h.jsxs)("div",{ref:l,id:o,hidden:!a,onKeyDown:c=>{c.key==="Escape"&&(c.preventDefault(),d(!1),s.current?.focus())},style:a?{display:"grid",gap:12,padding:"4px 0 12px"}:void 0,children:[n?(0,h.jsx)("p",{style:{...k,margin:0,maxWidth:"58ch"},children:n}):null,i]})]})}var ct=$(ve(),1);var Be=$(ve(),1);var M=$(B(),1);function Gt({context:t}){let{store:e,brand:n,invariantContext:r,principal:i}=t;V(e);let a=e.violations(r),d=e.allInvariants(),s=Qe(e,a),l=Ln(e.schema,d);return(0,M.jsxs)(U,{context:t,children:[(0,M.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,M.jsx)(J,{context:t,children:a.length===0?"All rules hold":"What is broken"}),(0,M.jsx)("p",{style:Y,"data-testid":"problems-count",children:a.length===0?"Every declared rule is satisfied by what is here.":on(a)})]}),(0,M.jsx)(ka,{context:t}),s.map((o,c)=>{let f=o.nodeIds[0],u=f?e.graph.getNode(f):void 0;return(0,M.jsxs)("section",{style:{display:"grid",gap:10,padding:"16px 18px",borderLeft:"3px solid var(--graview-warn)",background:"var(--graview-panel-warning)",borderRadius:"0 var(--graview-radius, 12px) var(--graview-radius, 12px) 0"},children:[o.line?null:(0,M.jsx)(dt,{violation:o,schema:e.schema,...n?{brand:n}:{}}),u?(0,M.jsxs)("p",{style:{margin:0,display:"inline-flex",alignItems:"center",gap:8},children:[(0,M.jsx)(ee,{kind:u.kind,brand:n,schema:e.schema,size:7}),(0,M.jsx)(L,{to:q(e.schema,u.kind,u.id),style:F,children:re(e.schema.tryDefinition(u.kind),u)})]}):null,o.line?(0,M.jsx)(dt,{violation:o,schema:e.schema,...n?{brand:n}:{}}):null,(0,M.jsx)(pt,{store:e,repairs:o.repairs,...i?{principal:i}:{}})]},c)}),d.length>0?(0,M.jsxs)("section",{style:{..._,display:"grid",gap:12},"data-testid":"rules",children:[(0,M.jsx)("h2",{style:D,children:"The rules"}),(0,M.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:10},children:d.map(o=>{let c=a.filter(g=>g.invariant===o.name).length,f=l.get(o.name),u=o.label??o.name;return(0,M.jsxs)("li",{"data-graview-rule":o.name,style:{display:"grid",gap:2},children:[(0,M.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",columnGap:12,rowGap:2},children:[f?(0,M.jsx)(St,{line:f,schema:e.schema,...n?{brand:n}:{},style:{flex:"1 1 18rem"}}):(0,M.jsx)("span",{style:{flex:"1 1 18rem",fontWeight:550},children:u}),(0,M.jsx)("span",{style:{...k,fontSize:"0.875rem",color:c>0?"var(--graview-warn)":"var(--graview-ink-faint)"},children:c===0?"holds":`broken in ${c} ${c===1?"place":"places"}`})]}),f&&u.trim().length>0?(0,M.jsx)("span",{style:{...k,fontSize:"0.875rem"},children:u}):null]},o.name)})})]}):null]})}function dt({violation:t,schema:e,brand:n}){if(!t.line)return(0,M.jsx)("p",{style:{margin:0,color:"var(--graview-warn)",fontWeight:550},children:t.message});let r=Mn(t);return(0,M.jsxs)("div",{style:{display:"grid",gap:2},"data-testid":"problem-line",title:Tn(t),children:[(0,M.jsx)(St,{line:t.line,schema:e,...n?{brand:n}:{},lead:"none",style:{color:"var(--graview-warn)",fontSize:"1.0625rem"}}),r?(0,M.jsx)("span",{style:{...k,fontSize:"0.875rem"},children:r}):null]})}function pt({store:t,repairs:e,principal:n}){let[r,i]=(0,Be.useState)(null),[a,d]=(0,Be.useState)(null),s=(0,Be.useRef)([]);if(e.length===0)return null;let l=r===null?null:e[r],o=l&&(l.missing??[]).length>0?t.allMutations().find(c=>c.name===l.mutation):void 0;return(0,M.jsxs)("div",{style:{display:"grid",gap:10},"data-testid":"repairs",children:[(0,M.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:e.map((c,f)=>{let u=(c.missing??[]).length>0,g=t.permits({name:c.mutation,args:{...c.args}},n);return g.ok?(0,M.jsx)("button",{ref:m=>{s.current[f]=m},type:"button","data-graview-repair":c.mutation,"data-graview-asks":u||void 0,"aria-expanded":u?r===f:void 0,onClick:()=>{if(d(null),u){i(r===f?null:f);return}i(null);try{t.apply({name:c.mutation,args:{...c.args}},n?{author:n}:{})}catch(m){d(Je(t.schema,t.allMutations(),m))}},style:tt,children:u?`${c.label} \u2026`:c.label},f):(0,M.jsxs)("p",{"data-testid":"withheld","data-withheld":g.refusal.wouldNeed.join(",")||"nobody",style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-muted)"},children:[(0,M.jsx)("s",{children:c.label})," \u2014 ",g.refusal.message]},f)})}),o&&l?(0,M.jsx)(fe,{store:t,mutation:o,prefilled:{...l.args},only:l.missing??[],label:l.label,onDone:()=>{let c=r;i(null),requestAnimationFrame(()=>{let f=c===null?null:s.current[c];if(f?.isConnected){f.focus();return}let u=document.querySelector("[data-graview-page-title]")??document.querySelector("main h1, main h2");u&&(u.hasAttribute("tabindex")||(u.tabIndex=-1),u.focus())})},...n?{principal:n}:{}}):null,l&&!o&&(l.missing??[]).length>0?(0,M.jsxs)("p",{"data-testid":"refused",role:"alert",style:{margin:0,color:"var(--graview-warn)",fontSize:"0.875rem"},children:["\u201C",l.label,"\u201D names ",l.mutation,", which this app does not declare."]}):null,a?(0,M.jsx)("p",{"data-testid":"refused",role:"alert",style:{margin:0,color:"var(--graview-warn)",fontSize:"0.875rem"},children:a}):null]})}var w=$(B(),1),or=[];function qt({context:t}){let{store:e,brand:n,principal:r,invariantContext:i}=t;V(e);let a=se()!==null,d=ke(),s=decodeURIComponent(d.id??""),l=oa(e,s,{...r?{principal:r}:{},...i?{context:i}:{}}),o=Qe(e,l?.violations??or),[c,f]=(0,ct.useState)(null),u=(0,ct.useRef)(null);if(!l)return(0,w.jsx)(U,{context:t,children:(0,w.jsx)(J,{context:t,children:"Nothing lives at this address."})});let g=e.graph.getNode(s),m=e.schema.tryDefinition(l.kind),x=m?.describe&&g?Zt(m,g):null,E=[...e.log.all()].filter(y=>!sn(y)&&(y.writes.includes(s)||y.reads.includes(s))).slice(-8).reverse(),C=l.actions.affordances.filter(y=>y.provider!=="invariant"),K=t.views?.lookup(l.kind,{cardinality:"one",fidelity:"full"}),ue=K!==void 0&&!Ee(K)?K:void 0,Q=ue&&g?Xe(K,g,e.graph):void 0,we=Q?l.fields.filter(y=>!Q.fields.has(y.key)):l.fields,N=Q?l.links.flatMap(y=>{let A=y.targets.filter(j=>!Q.records.has(j.id));return A.length>0?[{...y,targets:A}]:[]}):l.links,ae=ue!==void 0&&Cn(K),Oe=a&&Fn(m).length>0;return(0,w.jsxs)(U,{context:t,children:[(0,w.jsxs)("header",{style:{display:"grid",gap:12},children:[(0,w.jsxs)("p",{style:{...ne,display:"flex",alignItems:"center",gap:8},children:[(0,w.jsx)(ee,{kind:l.kind,brand:n,schema:e.schema,size:8}),(0,w.jsx)(L,{to:`/${G(e.schema,l.kind)}`,style:X,children:I(e,l.kind)})]}),(0,w.jsx)(J,{context:t,children:a&&g?.label===l.label?(0,w.jsx)(Pt,{nodeId:s,field:"label",value:l.label}):l.label}),x&&x!==l.label?(0,w.jsx)("p",{style:Y,children:x}):null,(0,w.jsx)(et,{context:t,stop:`#focus=${encodeURIComponent(s)}`,style:{...F,...k},"data-testid":"spatial-link"}),ce(t).some(y=>y.kind===l.kind||y.across===l.kind)?(0,w.jsxs)("p",{style:{...k,margin:0},"data-testid":"seen-in",children:["Seen in:"," ",ce(t).filter(y=>y.kind===l.kind||y.across===l.kind).map((y,A)=>(0,w.jsxs)("span",{children:[A>0?" \xB7 ":null,(0,w.jsx)(L,{to:ge(t,y),style:F,children:y.title})," ",(0,w.jsx)(et,{context:t,stop:`#view=${encodeURIComponent(y.as)}`,style:{...F,...k,display:"inline-block",minWidth:24,textAlign:"center"},title:`${y.title}, in the scene`,children:"\u2197"})]},Le(y)))]}):null]}),ue&&g?(0,w.jsx)("section",{"data-testid":"record-view",style:{display:"grid",minWidth:0},children:(0,w.jsx)(Hn,{children:(0,w.jsx)(ue,{node:g,cardinality:"one",fidelity:"full",mode:"fullscreen",selected:!1,...l.violations.length>0?{flagged:[s]}:{}})})}):null,l.violations.length>0?(0,w.jsx)("section",{"data-testid":"record-violations",style:{display:"grid",gap:12,padding:"16px 18px",borderLeft:"3px solid var(--graview-warn)",background:"var(--graview-panel-warning)",borderRadius:"0 var(--graview-radius, 12px) var(--graview-radius, 12px) 0"},children:o.map((y,A)=>(0,w.jsxs)("div",{style:{display:"grid",gap:8},children:[(0,w.jsx)(dt,{violation:y,schema:e.schema,...n?{brand:n}:{}}),(0,w.jsx)(pt,{store:e,repairs:sa(l.actions,y.repairs),...r?{principal:r}:{}})]},A))}):null,!ae&&(we.length>0||Oe)?(0,w.jsxs)("section",{style:{..._,display:"grid",gap:14},"data-testid":"record-fields",children:[(0,w.jsx)("h2",{style:D,children:"The facts"}),rn(m,we).map((y,A)=>{let j=(0,w.jsx)("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"14px 24px"},children:y.fields.map(z=>z.files?(0,w.jsx)(xe,{as:"field",read:!a,nodeId:s,field:z.key,label:z.label,files:z.files,labelStyle:{...ne,fontSize:"0.75rem"},style:{gap:4}},z.key):z.long?(0,w.jsx)(In,{nodeId:s,field:z.key,label:z.label,value:z.value,style:{gridColumn:"1 / -1",gap:4},labelStyle:{...ne,fontSize:"0.75rem"},valueStyle:{fontSize:"1.0625rem",lineHeight:1.6}},z.key):(0,w.jsxs)("div",{style:{display:"grid",gap:2,minWidth:0,alignContent:"start"},children:[(0,w.jsx)("dt",{style:{...ne,fontSize:"0.75rem"},children:z.label}),(0,w.jsx)("dd",{style:{margin:0,fontSize:"1.125rem",overflowWrap:"anywhere",minWidth:0},children:a?(0,w.jsx)(Pt,{nodeId:s,field:z.key,value:z.value,stored:z.stored}):z.value})]},z.key))});return y.title?(0,w.jsxs)("section",{style:{display:"grid",gap:10,minWidth:0},children:[(0,w.jsx)("h3",{"data-graview-field-group":y.title,style:{...D,fontSize:"1.0625rem"},children:y.title}),j]},A):(0,w.jsx)("div",{children:j},A)}),Oe?(0,w.jsx)(xe,{as:"unfilled",nodeId:s,skip:[...Q?.fields??[]],labelStyle:{...ne,fontSize:"0.75rem"},style:{gap:4}}):null]}):null,(ae?[]:N).map(y=>(0,w.jsxs)("section",{style:{..._,display:"grid",gap:10},children:[(0,w.jsx)("p",{style:ne,children:Xn(e,y)}),y.description?(0,w.jsx)("h2",{style:D,children:le(y.description)}):(0,w.jsxs)("h2",{style:D,"aria-label":ie(y.edgeKind),children:[y.direction==="in"?"\u2190 ":"\u2192 ",ie(y.edgeKind)]}),(0,w.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:"6px 18px"},children:y.targets.map(A=>(0,w.jsxs)("li",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[(0,w.jsx)(ee,{kind:A.kind,brand:n,schema:e.schema,size:7}),(0,w.jsxs)(L,{to:q(e.schema,A.kind,A.id),style:{...F,fontSize:"1.125rem"},children:[A.label,A.apart?(0,w.jsxs)("span",{style:k,children:[" \xB7 ",A.apart]}):null]})]},A.id))}),(y.direction==="out"&&e.schema.edge(y.edgeKind)?.cardinality==="one"?[]:[...new Set(y.targets.map(A=>A.kind))]).map(A=>(0,w.jsxs)(L,{to:`/${G(e.schema,A)}?${encodeURIComponent(y.edgeKind)}=${encodeURIComponent(s)}`,style:{...F,...k},"data-testid":"related-all",children:["Sort and filter ",y.description??`these ${I(e,A).toLowerCase()}`,y.targets.some(j=>j.kind!==A)?` (${I(e,A).toLowerCase()})`:""," \u2192"]},A))]},`${y.edgeKind}|${y.direction}|${y.description??""}`)),!ae&&(C.length>0||l.actions.withheld.length>0)?(0,w.jsxs)("section",{style:{..._,display:"grid",gap:14},"data-testid":"record-actions",children:[(0,w.jsx)("h2",{style:D,ref:u,tabIndex:-1,children:"What can be done"}),(0,w.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:C.map(y=>{let A=c===y.id;return(0,w.jsx)("button",{type:"button","data-affordance":y.id,"data-rank":y.rank,"aria-expanded":A,onClick:()=>f(A?null:y.id),style:{...tt,...A?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},children:y.label},y.id)})}),C.map(y=>{if(c!==y.id)return null;let A=e.allMutations().find(j=>j.name===y.mutation);return A?(0,w.jsxs)("div",{style:{display:"grid",gap:10,padding:18,border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",background:"var(--graview-panel)"},children:[(0,w.jsx)("h3",{style:{...D,fontSize:"1.1875rem"},children:y.label}),A.description?(0,w.jsx)("p",{style:{...k,margin:0},children:A.description}):null,(0,w.jsx)(fe,{store:e,mutation:A,prefilled:y.args,open:y.open,label:y.label,onDone:()=>{f(null);let j=y.id;requestAnimationFrame(()=>{(u.current?.parentElement?.querySelector(`[data-affordance="${j.replace(/["\\]/g,"\\$&")}"]`)??u.current)?.focus()})},...r?{principal:r}:{}})]},y.id):null}),l.actions.withheld.length>0?(0,w.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:4},children:l.actions.withheld.map(y=>(0,w.jsxs)("li",{style:k,children:[(0,w.jsx)("s",{children:y.label})," \u2014 ",y.refusal.message]},y.id))}):null]}):null,E.length>0?(0,w.jsxs)("section",{style:{..._,display:"grid",gap:10},"data-testid":"record-history",children:[(0,w.jsx)("h2",{style:D,children:"What has happened"}),(0,w.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6},children:E.map(y=>(0,w.jsxs)("li",{style:k,children:[(0,w.jsx)("span",{style:{color:"var(--graview-ink)"},children:y.intent})," \u2014 ",nt(y,r,{graph:e.graph,schema:e.schema,...t.seats?{seats:t.seats}:{},...t.people?{people:t.people}:{}})]},y.id))})]}):null]})}var v=$(B(),1),sr=(0,W.lazy)(()=>import("./chunk.MLQQR57X.js").then(t=>({default:t.DraftPage})));function lr({context:t,children:e}){let n=he(),r=t.store.schema,i=(0,W.useMemo)(()=>({href:a=>q(r,a.kind,a.id),go:a=>n(q(r,a.kind,a.id))}),[r,n]);return(0,v.jsx)(zn.Provider,{value:i,children:(0,v.jsx)(Bn.Provider,{value:(t.titleLevel??(t.framed&&!t.barAbove?1:2))-1,children:e})})}function dr({steering:t}){let e=de(),n=he(),r=`${e.pathname}${e.search}`;return(0,W.useLayoutEffect)(()=>t.at(r),[r,t]),(0,W.useLayoutEffect)(()=>{let i=d=>{d!==r&&n(d)};t.go.current=i;let a=t.pending?.current;return a!==void 0&&(t.pending.current=void 0,i(a)),()=>{t.go.current===i&&(t.go.current=void 0)}},[r,n,t]),null}function pr({context:t,to:e}){let{pathname:n}=de(),r=se(),i=(e??r)?.sayWhere,a=cr(t,n);return(0,W.useEffect)(()=>(i?.(a),()=>i?.(null)),[i,a]),null}function cr(t,e){let[n="",r,i]=e.split("/").filter(Boolean).map(d=>{try{return decodeURIComponent(d)}catch{return d}});if(i!==void 0)return"#";if(n==="places"&&r!==void 0){if(r===kt)return"#overview=1";let d=t.views?.places().find(s=>s.as===r);return d?`#focus=${encodeURIComponent(He(d.kind))}&view=${encodeURIComponent(d.as)}`:"#"}let a=ye(t.store.schema,n);return a?`#focus=${encodeURIComponent(r??He(a))}`:"#"}function gr({onNavigate:t,path:e}){let n=de(),r=Rt(),i=he(),a=`${n.pathname}${n.search}`,d=(0,W.useRef)(t);d.current=t;let s=(0,W.useRef)(null);(0,W.useEffect)(()=>{let o=s.current;s.current=a,o!==null&&(a===o&&r!=="PUSH"||d.current?.(a,r==="POP"?"pop":r==="REPLACE"?"replace":"push"))},[n.key]);let l=(0,W.useRef)(e);return(0,W.useEffect)(()=>{e===void 0||e===l.current||(l.current=e,e!==a&&i(e))},[e]),null}function Ra({context:t,registry:e,page:n}){let r=ke(),i=ye(t.store.schema,r.slug??""),a=n==="list"?Bt:qt,s=(i?e?.lookup(i,n):void 0)??a;return(0,v.jsx)(s,{context:t})}function ur({context:t,registry:e,children:n}){let r=(0,W.useRef)(null);return Rn(r),(0,v.jsx)("div",{ref:r,"data-graview-face":"pages",style:{display:"contents"},children:(0,v.jsx)(ha,{context:t,registry:e,root:r,children:n})})}function mr(){let{pathname:t}=de(),e=Rt(),n=(0,W.useRef)(null);(0,W.useLayoutEffect)(()=>{if(e!=="POP"){for(let a=n.current?.parentElement;a;a=a.parentElement){let{overflowY:d}=getComputedStyle(a);if((d==="auto"||d==="scroll")&&a.scrollHeight>a.clientHeight){a.scrollTop=0;return}}window.scrollTo(0,0)}},[t]);let r=(0,W.useRef)(t),i=(0,W.useRef)(!1);return(0,W.useEffect)(()=>{if(!i.current&&t===r.current)return;i.current=!0;let a=document.activeElement;if(a!==null&&a!==document.body&&a!==document.documentElement)return;let d=n.current?.closest("main")??document.querySelector("main"),l=n.current?.closest("[data-graview-face]")?.querySelector("[data-graview-page-title]")??d?.querySelector("h1, h2")??null??d??null;l&&(l.hasAttribute("tabindex")||l.setAttribute("tabindex","-1"),l.focus({preventScroll:!0}))},[t]),(0,v.jsx)("span",{ref:n,hidden:!0,"data-graview-scroll-reset":""})}function fr({context:t,children:e}){let n=he(),r=(0,W.useMemo)(()=>({record:i=>{let a=t.store.graph.getNode(i);a&&n(q(t.store.schema,a.kind,i))},place:i=>{let a=t.views?.places().find(d=>d.as===i);a&&n(ge(t,a))}}),[t,n]);return(0,v.jsx)(Pn.Provider,{value:r,children:e})}function yr({context:t,Home:e}){let i=de().key==="default"?hn(t.views?.arrangement?.()?.first,t.store.schema,t.views?.places()??[]):void 0,a=i?.to==="place"?ge(t,i.place):i?.to==="kind"?`/${G(t.store.schema,i.kind)}`:void 0;return a?(0,v.jsx)(At,{to:a,replace:!0}):(0,v.jsx)(e,{context:t})}function Aa({context:t,registry:e}){let n=e?.lookupSurface("shell"),r=n!==void 0,i=r&&(e?.without().has("bar")??!1),a=r&&!i&&!t.embedded?{...t,barAbove:!0}:t,d=m=>n===void 0?(0,v.jsx)(it,{context:t,children:m}):i?(0,v.jsx)(n,{context:t,children:m}):(0,v.jsx)(it,{context:t,children:(0,v.jsx)(n,{context:a,children:m})}),s=e?.lookupSurface("home")??Ht,l=e?.lookupSurface("problems")??Gt,o=r?{...a,framed:!0}:t,[c,f]=(0,W.useState)(null),u=(0,W.useMemo)(()=>({onFind:f,find:!(e?.without().has("find")??!1),places:!(e?.without().has("places")??!1)}),[e]),g=(0,v.jsx)(ur,{context:t,registry:e,children:(0,v.jsx)(fr,{context:t,children:d((0,v.jsx)(v.Fragment,{children:(0,v.jsxs)(lr,{context:o,children:[(0,v.jsx)(mr,{}),(0,v.jsxs)(na,{children:[(e?.routes()??[]).map(({path:m,component:x})=>(0,v.jsx)(pe,{path:m,element:(0,v.jsx)(x,{context:o})},m)),(0,v.jsx)(pe,{path:"/",element:(0,v.jsx)(yr,{context:o,Home:s})}),(0,v.jsx)(pe,{path:"/problems",element:(0,v.jsx)(l,{context:o})}),(0,v.jsx)(pe,{path:"/~draft",element:(0,v.jsx)(W.Suspense,{fallback:null,children:(0,v.jsx)(sr,{context:o})})}),(0,v.jsx)(pe,{path:"/search",element:(0,v.jsx)(zt,{context:o})}),(0,v.jsx)(pe,{path:"/map",element:(0,v.jsx)(Kt,{context:o})}),(0,v.jsx)(pe,{path:"/places",element:(0,v.jsx)(Dt,{context:o})}),ce(o).some(m=>m.as===kt)?null:(0,v.jsx)(pe,{path:yn,element:(0,v.jsx)(At,{to:"/",replace:!0})}),(0,v.jsx)(pe,{path:"/places/:as",element:(0,v.jsx)(It,{context:o})}),(0,v.jsx)(pe,{path:"/:slug",element:(0,v.jsx)(Ra,{context:o,registry:e,page:"list"})}),(0,v.jsx)(pe,{path:"/:slug/:id",element:(0,v.jsx)(Ra,{context:o,registry:e,page:"record"})})]})]})}))})});return t.embedded||!r||i?g:(0,v.jsx)(ia.Provider,{value:u,children:(0,v.jsx)($n.Provider,{value:c,children:g})})}function hr({context:t,registry:e,basename:n,initialPath:r,onNavigate:i,path:a,steering:d}){(0,W.useState)(()=>t.views?Vn(t.views,t.store.schema,Wn(t.brand,t.store.schema)):void 0);let s=se(),l=t.store.seenBy(t.principal??{kind:"human"}),o=l===t.store?t:{...t,store:l};bn(t.store,t.principal);let c=(0,v.jsxs)(v.Fragment,{children:[i||a!==void 0?(0,v.jsx)(gr,{onNavigate:i,path:a}):null,d?(0,v.jsx)(dr,{steering:d}):null,o.presence||s?(0,v.jsx)(pr,{context:o,to:s}):null,(0,v.jsx)(Aa,{context:o,...e?{registry:e}:{}})]}),f=o.views?(0,v.jsxs)(xn,{store:o.store,views:o.views,...o.principal?{principal:o.principal}:{},...o.brand?{brand:o.brand}:{},...o.settings?{settings:o.settings}:{},...o.presence&&!s?{presence:o.presence}:{},...o.people?{people:o.people}:{},...o.onKeepLens?{onKeepLens:o.onKeepLens}:{},...o.ai?{ai:o.ai}:{},...o.app?{app:o.app}:{},children:[c,(0,v.jsx)(ma,{context:o})]}):c,u=o.files?(0,v.jsx)(Sn.Provider,{value:o.files,children:f}):f;if(r!==void 0){let g=n===void 0?r:`${n.replace(/\/$/,"")}${r}`;return(0,v.jsx)(ta,{initialEntries:[g],...n===void 0?{}:{basename:n},children:u})}return(0,v.jsx)(aa,{...n===void 0?{}:{basename:n},children:u})}export{Ka as a,hr as b};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{g as dt,h as pe,k as ct,l as ve}from"./chunk.LEVR7WLB.js";import{c as rt,d as ot,e as ie,f as Z,g as ue,h as st,j as lt,k as re}from"./chunk.TAW67PZU.js";import{a as ae,b as nt}from"./chunk.PKFL2AR4.js";import{a as Q,b as j,c as at,d as it,e as U}from"./chunk.XNYBOKLW.js";import{a as pt,b as gt}from"./chunk.D3XF643V.js";import{d as ut}from"./chunk.NLFLFIDS.js";import{a as Oe}from"./chunk.6LJ66MB7.js";import{B as _e,E as je,F as Ue,O as qe,Z as Xe,ca as Ye,da as N,ea as Je,fa as de,ga as ye,i as He,ja as _,k as ze,ka as Qe,l as Fe,ma as ce,oa as Ze,p as Ke,qa as he,ra as et,sa as we,x as fe,za as tt}from"./chunk.SVL6I37U.js";import{$ as Ie,O as A,P as Le,R as G,S as De,W as Me,X as We,Z as J,_ as ee,ja as Ge,lb as te}from"./chunk.P7YN4Z3K.js";import{a as ne,b as D}from"./chunk.MRK6QJV5.js";import{b as T}from"./chunk.AJZBJBMO.js";var M=T(ne(),1);var O=T(D(),1);function mt({id:e,max:n=8,empty:a,hide:t}){let{store:o}=N();de();let d=Lt(o,e,o.violations()),i=t?d.flatMap(c=>{let p=c.ids.filter(u=>!t.has(u));return p.length>0?[{...c,ids:p}]:[]}):d;return i.length===0?a&&d.length===0?(0,O.jsx)("p",{style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-faint)"},children:a}):null:(0,O.jsx)("div",{"data-graview-primitive":"connections",style:{display:"flex",flexDirection:"column",gap:12},children:i.map(c=>{let p=c.ids.slice(0,n),u=c.ids.length-p.length;return(0,O.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,O.jsx)("h2",{...c.said?{"aria-label":c.said}:{},style:{margin:0,fontSize:"0.75rem",fontWeight:600,letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:c.label}),(0,O.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[p.map(r=>{let s=o.graph.getNode(r);return s?(0,O.jsx)(j,{pickId:r,hue:te(s.kind),title:`Go to the ${J(o.schema.tryDefinition(s.kind),s.kind)}`,label:A(o.schema.tryDefinition(s.kind),s)},r):null}),u>0?(0,O.jsx)(j,{label:`+${u} more`}):null]})]},c.key)})})}function Lt(e,n,a=[]){let t=e.graph.getNode(n);if(!t)return[];let o=new Map,d=[];for(let i of a)if(i.subjectId===n)for(let c of i.nodeIds)c!==n&&!d.includes(c)&&e.graph.has(c)&&d.push(c);d.length>0&&o.set("judges",{key:"judges",label:"what it finds wrong",ids:d});for(let i of e.graph.allEdges()){let c=i.from===n?i.to:i.to===n?i.from:null;if(c===null||c===n)continue;let p=e.graph.getNode(c);if(!p)continue;let u=i.from===n?"out":"in",r=u==="out"?t.kind:p.kind,s=Dt(e.schema,r,i.kind,u),v=`${i.kind}:${u}:${s.label}`,h=o.get(v)??{key:v,...s,ids:[]};h.ids.includes(c)||h.ids.push(c),o.set(v,h)}for(let i of o.values())i.ids.sort();return[...o.values()].sort((i,c)=>i.key<c.key?-1:i.key>c.key?1:0)}function Dt(e,n,a,t){let o=Me(e,n,a,t),d=G(a).toLowerCase();return o.trim().toLowerCase()!==d?{label:o}:t==="out"?{label:`\u2192 ${d}`,said:d}:{label:`\u2190 ${d}`,said:`${d}, pointing here`}}var P=T(ne(),1);var W=T(D(),1),Mt=/^\s*(\d{1,6})[.)]\s+(.*)$/s,Wt=/^\s*[-*•]\s+(.*)$/s;function It(e){let n=[];for(let a of e.replace(/\r\n?/g,`
|
|
2
|
+
`).split(/\n[ \t]*\n+/)){let t=null,o=()=>{t&&(t.t==="p"?t.lines.length>0:t.items.length>0)&&n.push(t),t=null};for(let d of a.split(`
|
|
3
|
+
`)){let i=Mt.exec(d),c=i?null:Wt.exec(d);if(i)t?.t!=="ol"&&(o(),t={t:"ol",start:Number(i[1]),items:[]}),t.items.push(i[2]);else if(c)t?.t!=="ul"&&(o(),t={t:"ul",items:[]}),t.items.push(c[1]);else if(t&&t.t!=="p"&&/^\s+\S/.test(d)){let p=t.items;p[p.length-1]=`${p[p.length-1]} ${d.trim()}`}else d.trim().length>0&&(t?.t!=="p"&&(o(),t={t:"p",lines:[]}),t.lines.push(d.trim()))}o()}return n}function Se(e){return/[\r\n]/.test(e)}var Gt={display:"grid",gap:"0.7em",minWidth:0,overflowWrap:"anywhere"},Ot={margin:0},ft={margin:0,paddingInlineStart:"1.6em",display:"grid",gap:"0.3em"};function oe({text:e,className:n,style:a}){return(0,W.jsx)("div",{"data-graview-text-body":"",...n?{className:n}:{},style:{...Gt,...a},children:It(e).map((t,o)=>t.t==="p"?(0,W.jsx)("p",{style:Ot,children:t.lines.map((d,i)=>(0,W.jsxs)("span",{children:[i>0?(0,W.jsx)("br",{}):null,d]},i))},o):t.t==="ol"?(0,W.jsx)("ol",{start:t.start,style:ft,children:t.items.map((d,i)=>(0,W.jsx)("li",{children:d},i))},o):(0,W.jsx)("ul",{style:ft,children:t.items.map((d,i)=>(0,W.jsx)("li",{children:d},i))},o))})}var y=T(D(),1);function ht({nodeId:e,field:n,value:a,stored:t=a}){let{fields:o,commit:d}=pe(e),i=o.find(w=>w.field===n),{store:c}=N(),p=c.graph.getNode(e)?.kind,u=c.schema.definitions.find(w=>w.kind===p),r=We(u,n).toLowerCase(),[s,v]=(0,P.useState)(!1),[h,m]=(0,P.useState)(t),k=(0,P.useRef)(null),b=(0,P.useRef)(null),S=(0,P.useRef)(!1),R=w=>{S.current=w,v(!1)};if((0,P.useEffect)(()=>m(t),[t,s]),(0,P.useEffect)(()=>{s?k.current?.focus():S.current&&(S.current=!1,b.current?.focus())},[s]),!i)return(0,y.jsx)("span",{"data-graview-field":n,"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${r}`,style:{color:"var(--graview-ink)",cursor:"default",overflowWrap:"anywhere"},children:a});if(!s)return(0,y.jsx)("button",{ref:b,type:"button","data-graview-field":n,"data-graview-editable":i.mutation,title:`${i.title} \u2014 changes the ${r}, and can be undone`,onClick:()=>v(!0),style:{all:"unset",cursor:"text",display:"inline-flex",alignItems:"flex-end",minHeight:24,minWidth:24,maxWidth:"100%",overflowWrap:"anywhere",paddingBottom:1,borderBottom:"1px dashed var(--graview-edge-bright)",color:"var(--graview-ink)"},children:a});let $=(w,{left:L=!1}={})=>{R(!L),!(w===t||w===""||w===void 0)&&d(i,w)};if(!i.takesValue){let w=[i,...i.alternatives];return(0,y.jsx)("span",{role:"group","aria-label":`Change ${G(n).toLowerCase()}`,"data-graview-field":n,style:{display:"inline-flex",gap:6,alignItems:"center",flexWrap:"wrap"},onKeyDown:L=>{L.key==="Escape"&&R(!0)},children:w.map((L,q)=>(0,y.jsx)("button",{type:"button",ref:q===0?k:void 0,"data-graview-act":L.mutation,onClick:()=>{R(!0),d(L,void 0)},onBlur:B=>{let H=B.relatedTarget;(!H||!B.currentTarget.parentElement?.contains(H))&&R(!1)},style:{padding:"2px 9px",fontSize:"0.8125rem",borderRadius:999},children:L.title},L.mutation))})}return(0,y.jsxs)("form",{style:{display:"inline-flex",gap:4},onSubmit:w=>{w.preventDefault(),$(yt(i,h))},children:[i.shape.type==="choice"?(0,y.jsx)("select",{ref:k,"aria-label":G(n),"data-graview-field":n,value:h,onChange:w=>$(w.target.value),onBlur:()=>R(!1),style:{font:"inherit",fontSize:"inherit"},children:i.shape.options.map(w=>(0,y.jsx)("option",{value:w,children:De(u,n,w)},w))}):(0,y.jsx)("input",{ref:k,"aria-label":G(n),"data-graview-field":n,type:i.shape.type==="number"?"number":i.shape.type==="date"?i.shape.time?"datetime-local":"date":"text",...i.shape.type==="number"&&i.shape.min!==void 0?{min:i.shape.min}:{},...i.shape.type==="number"&&i.shape.max!==void 0?{max:i.shape.max}:{},...i.shape.type==="number"&&i.shape.step!==void 0?{step:i.shape.step}:{},value:h,onChange:w=>m(w.target.value),onBlur:()=>$(yt(i,h),{left:!0}),onKeyDown:w=>{w.key==="Escape"&&R(!0)},style:{font:"inherit",fontSize:"inherit",width:`${Math.max(6,h.length+1)}ch`,minHeight:24,display:"inline-flex",alignItems:"center",padding:"0 3px"}}),i.open.length>0?(0,y.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["also needs ",i.open.map(w=>w.name).join(", ")]}):null]})}function yt(e,n){return e.shape.type==="number"?Number(n):n}function wt({id:e,hide:n=[],limit:a=10,labels:t={},shown:o=[]}){let{store:d}=N(),i=ye(e);if(!i)return null;let c=d.schema.tryDefinition(i.kind),p=ee(i,c,{limit:a,said:o}).filter(r=>!n.includes(r.key)),u=rt(c).length>0;return p.length===0&&!u?null:(0,y.jsxs)("div",{"data-graview-fields":i.id,style:{display:"grid",gap:14,alignContent:"start",minWidth:0,fontSize:"0.875rem"},children:[Ie(c,p).map((r,s)=>{let v=(0,y.jsx)("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto 1fr",gap:"5px 16px",alignContent:"start",minWidth:0},children:r.fields.map(m=>m.files?(0,y.jsx)(U,{as:"field",nodeId:i.id,field:m.key,label:t[m.key]??m.label,files:m.files,labelStyle:ge,style:{marginTop:6}},m.key):m.long?(0,y.jsx)(zt,{nodeId:i.id,field:m.key,label:t[m.key]??m.label,value:m.value,labelStyle:ge,style:{gridColumn:"1 / -1",marginTop:6}},m.key):(0,y.jsxs)("div",{style:{display:"contents"},children:[(0,y.jsx)("dt",{style:{...ge,whiteSpace:"nowrap"},children:t[m.key]??m.label}),(0,y.jsx)("dd",{style:{margin:0,minWidth:0},children:(0,y.jsx)(ht,{nodeId:i.id,field:m.key,value:m.value,stored:m.stored})})]},m.key))});if(!r.title)return(0,y.jsx)("div",{children:v},s);let h=`graview-field-group-${i.id}-${s}`;return(0,y.jsxs)("div",{role:"group","aria-labelledby":h,style:{display:"grid",gap:6,minWidth:0},children:[(0,y.jsx)("p",{id:h,"data-graview-field-group":r.title,style:Ht,children:r.title}),v]},s)}),u?(0,y.jsx)(U,{as:"unfilled",nodeId:i.id,skip:n,labels:t,labelStyle:ge}):null]})}var ge={color:"var(--graview-ink-faint)",fontSize:"0.8125rem"},Ht={margin:0,fontSize:"0.75rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)",fontWeight:560};function zt(e){return Je()?(0,y.jsx)(Kt,{...e}):(0,y.jsx)(Ft,{...e})}function Ft({field:e,label:n,value:a,labelStyle:t,valueStyle:o,style:d}){return(0,y.jsxs)("div",{"data-graview-long":e,style:{display:"grid",gap:6,minWidth:0,...d},children:[(0,y.jsx)("dt",{style:t,children:n}),(0,y.jsx)("dd",{style:{margin:0,minWidth:0,...o},children:(0,y.jsx)("div",{"data-graview-field":e,children:(0,y.jsx)(oe,{text:a})})})]})}function Kt({nodeId:e,field:n,label:a,value:t,labelStyle:o,valueStyle:d,style:i}){let{fields:c,commit:p}=pe(e),u=c.find(S=>S.field===n&&S.takesValue),[r,s]=(0,P.useState)(!1),v=(0,P.useRef)(null),h=(0,P.useRef)(!1);(0,P.useEffect)(()=>{!r&&h.current&&(h.current=!1,v.current?.focus())},[r]);let m=S=>{h.current=S,s(!1)},k=a.toLowerCase(),b=(0,y.jsx)(oe,{text:t});return(0,y.jsxs)("div",{"data-graview-long":n,style:{display:"grid",gap:6,minWidth:0,...i},children:[(0,y.jsxs)("dt",{style:{display:"flex",alignItems:"baseline",gap:10,...o},children:[(0,y.jsx)("span",{children:a}),u&&!r?(0,y.jsx)("button",{ref:v,type:"button","data-graview-editable":u.mutation,"aria-label":`Edit the ${k}`,title:`${u.title} \u2014 changes the ${k}, and can be undone`,onClick:()=>s(!0),style:jt,children:"Edit"}):null]}),(0,y.jsx)("dd",{style:{margin:0,minWidth:0,...d},children:r&&u?(0,y.jsx)(P.Suspense,{fallback:b,children:(0,y.jsx)(_t,{field:n,label:a,value:t,onCancel:()=>m(!0),onSave:(S,R)=>{m(!R),S!==t&&p(u,S)}})}):(0,y.jsx)("div",{"data-graview-field":n,...u?{}:{"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${k}`},...u?{onClick:()=>s(!0)}:{},style:{cursor:u?"text":"default",minWidth:0},children:b})})]})}var _t=(0,P.lazy)(()=>import("./chunk.4HGBVU5B.js")),jt={all:"unset",cursor:"pointer",fontSize:"0.75rem",letterSpacing:"normal",textTransform:"none",color:"var(--graview-accent)",borderBottom:"1px dashed currentColor",minHeight:24,minWidth:24,display:"inline-flex",alignItems:"flex-end"};function vt({nodeId:e,children:n}){let{fields:a}=pe(e),t=ye(e);if(!t)return(0,y.jsx)(y.Fragment,{children:n});let o=a.find(d=>{let i=t[d.field];return typeof i=="string"&&i===n});return o?(0,y.jsx)(ht,{nodeId:e,field:o.field,value:n}):(0,y.jsx)(y.Fragment,{children:n})}var St=T(ne(),1),se=(0,St.createContext)(null);var g=T(D(),1),Ut=tt(Oe(()=>import("./chunk.XD4Q4FI2.js"))).part((e,n)=>(0,g.jsx)(e.ArrangeBar,{...n}),{what:"Arranging this list"});function ke(e){let{brand:n}=N();return te(e,n?.accents)}function qt(e,n){if(!n.endsWith("\u2026")&&!n.endsWith("..."))return;let a=n.replace(/[…]|\.\.\.$/g,"").trim();if(!(a.length<12)){for(let t of Object.values(e))if(typeof t=="string"&&t.length>a.length&&t.startsWith(a))return t}}function Xt(e,n){let t=Math.max(0,...e.slice(0,n*2).map(d=>d.length))*7.5+28<=212/2?2:1,o=n*t;return{columns:t,shown:Math.min(e.length,o)}}var Yt=8,kt=500,Jt=12;function bt(e){return{x:e.clientX,y:e.clientY,pointerType:e.pointerType??""}}function Qt(e,n,a){let t=performance.now()+kt,o=["pointerdown","pointerup","mousedown","mouseup","dblclick"],d=s=>{if(performance.now()>t||!(s instanceof MouseEvent))return!1;let v=bt(s);return n.pointerType&&v.pointerType&&n.pointerType!==v.pointerType?!1:Math.hypot(v.x-n.x,v.y-n.y)<=Jt},i=s=>{if(!d(s))return u();s.stopPropagation()},c=s=>{if(!d(s))return u();s.stopPropagation(),s.preventDefault(),e.removeEventListener("click",c,!0),setTimeout(u,50),a()},p=!1,u=()=>{if(!p){p=!0,clearTimeout(r),e.removeEventListener("click",c,!0);for(let s of o)e.removeEventListener(s,i,!0)}};for(let s of o)e.addEventListener(s,i,!0);e.addEventListener("click",c,!0);let r=setTimeout(u,kt)}function Zt({View:e,members:n,mode:a,flagged:t}){let{isSelected:o}=he(),d=n.slice(0,Yt);return(0,g.jsxs)("div",{"data-graview-rows":"",style:{display:"grid",gap:4,minWidth:0},children:[d.map(i=>(0,g.jsx)("div",{"data-graview-pick":i.id,style:{minWidth:0,cursor:"pointer"},children:(0,g.jsx)(e,{node:i,cardinality:"one",fidelity:"glyph",mode:a,selected:o(i.id),...t?.includes(i.id)?{flagged:[i.id]}:{}})},i.id)),n.length>d.length?(0,g.jsx)(j,{label:`+${n.length-d.length} more`}):null]})}var en=11/15;function tn({text:e,accent:n}){let a=(0,M.useRef)(null),t=(0,M.useRef)(null),[o,d]=(0,M.useState)(1),[i,c]=(0,M.useState)(!1),p=o<1?`${o}em`:void 0;return(0,M.useLayoutEffect)(()=>{let u=a.current,r=t.current;if(!u||!r)return;let s=()=>{let h=u.clientWidth,m=r.offsetWidth;if(h<=0||m<=0)return;let k=parseFloat(getComputedStyle(r).fontSize)/parseFloat(getComputedStyle(u).fontSize)||1,b=m/k,S=Math.max(en,Math.min(1,Math.floor(h/b*100)/100));d(R=>Math.abs(R-S)<.01?R:S),c(b*S>h+.5)};if(s(),typeof ResizeObserver>"u")return;let v=new ResizeObserver(s);return v.observe(u),()=>v.disconnect()},[e]),(0,g.jsx)("span",{ref:a,"data-graview-district-name":"",...o<1?{"data-graview-fitted":""}:{},...i?{title:e}:{},style:{display:"block",minWidth:0,fontSize:"0.9375rem",lineHeight:1.25,letterSpacing:"0.05em",textTransform:"uppercase",color:n?"var(--graview-accent)":"var(--graview-ink-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:(0,g.jsx)("span",{ref:t,style:{fontSize:p},children:e})})}function nn(e,n){return!!e?.display?.page?.groups?.length||ee(n,e).some(a=>a.long)}function xt(e,n=ce(e)){for(let a of e.kinds){let t=e.tryDefinition(a),o=t?.plural??`${String(a)}s`,d=r=>{let s=r.node,v=et(),h=(0,M.useContext)(se);if(!s)return null;let m=h?.nodeId===s.id?h:null,k=A(t,s),b=r.mode==="fullscreen"?qt(s,k)??k:k,S=Ge(v,[s.id]);return(0,g.jsxs)(Q,{title:(0,g.jsx)(vt,{nodeId:s.id,children:m?.title??b}),...m?{}:{subtitle:t?.describe?Le(t,s):t?.description??String(a)},selected:r.selected,...r.flagged?.includes(s.id)?{tone:"warning"}:{},fit:!0,children:[m?(0,g.jsx)(se.Provider,{value:null,children:m.body}):null,(0,g.jsxs)("div",{style:{display:"grid",gridTemplateColumns:nn(t,s)?"minmax(0, 1fr)":"minmax(200px, 1fr) minmax(220px, 1.4fr)",gap:"22px 34px",alignItems:"start"},children:[(0,g.jsx)(wt,{id:s.id,shown:[b,k,t?.description,m?.title],...m?{hide:[...m.fields]}:{}}),(0,g.jsx)(mt,{id:s.id,empty:`Nothing is connected to this ${J(t,String(a))} yet.`,...m?{hide:m.records}:{}})]}),S.length>0?(0,g.jsx)("p",{"data-graview-broken":"",style:{margin:"14px 0 0",paddingTop:12,borderTop:"1px solid var(--graview-edge)",fontSize:"0.875rem",color:"var(--graview-warn)"},children:S.map(R=>R.message).join(" \xB7 ")}):null]})},i=r=>{let s=r.node;if(!s)return null;let{store:v}=N(),h=t?.computed?lt(v.schema,v.graph,s):s,m=ee(h,t,{limit:3,said:[A(t,s)],glance:!0}),k=ke(a),b=ot(s,t);return(0,g.jsxs)(Q,{title:A(t,s),selected:r.selected,tone:r.flagged?.includes(s.id)?"warning":"muted",fit:!0,children:[b?(0,g.jsx)(U,{as:"thumb",file:b,size:64,style:{marginBottom:6}}):null,(0,g.jsx)(at,{items:m.map(S=>({id:S.key,label:S.alone,hue:k})),max:3})]})},c=r=>{let s=r.node,v=ke(a),h=ve().marks.flag;if(!s)return null;let m=r.flagged?.includes(s.id)??!1;return(0,g.jsx)(j,{label:m?`${A(t,s)} ${h}`:A(t,s),hue:v,selected:r.selected,title:m?`${G(J(t,String(a)))} \u2014 implicated in a problem`:G(J(t,String(a)))})},p=r=>{let{brand:s,store:v,views:h}=N(),{view:m,go:k}=we(),b=r.nodes??[],S=h.lookup(String(a),{cardinality:"one",fidelity:"glyph"}),R=S!==void 0&&!Qe(S)?S:void 0,$=pt(m),w=ut(b,$,{schema:e,graph:v.graph,flagged:new Set(r.flagged??[])}),L=C=>({id:C.id,label:A(e.tryDefinition(C.kind),C),hue:te(C.kind,s?.accents)}),q=r.fidelity==="full"&&b.length>1?(0,g.jsx)(M.Suspense,{fallback:null,children:(0,g.jsx)(Ut,{schema:e,graph:v.graph,kind:String(a),arrangement:$,onChange:C=>k(gt(m,C)),kept:{shown:w.nodes.length,of:b.length},style:{marginBottom:8}})}):null,B=C=>C.some(E=>r.flagged?.includes(E.id)),H=(C,E,X)=>R?(0,g.jsx)(Q,{title:C,meta:B(E)?`\u26A0 ${E.length}`:E.length,tone:B(E)?"warning":"muted",children:(0,g.jsx)(Zt,{View:R,members:E,mode:r.mode,...r.flagged?{flagged:r.flagged}:{}})},X):(0,g.jsx)(it,{label:C,count:E.length,flagged:B(E),items:E.map(L)},X);return w.grouped?(0,g.jsxs)("div",{style:{display:"grid",gap:8},"data-graview-grouped":$.group?.by,children:[q,w.groups.map(C=>H(`${r.label??o} \xB7 ${C.label}`,C.nodes,C.key||"-"))]}):(0,g.jsxs)("div",{style:{display:"grid",gap:4},children:[q,H(r.label??o,w.nodes)]})},u=r=>{let s=r.nodes??[],v=Xt(s.map(f=>A(t,f)),r.openedRows??qe(s.length)),h=ke(a),{brand:m}=N(),k=nt(String(a),e,m),b=ve().marks.flag,{selection:S}=he(),{toggle:R,view:$,go:w}=we(),{views:L,hiddenKinds:q}=N(),B=$.overview&&!q.has(String(a))?L.places().filter(f=>f.kind===String(a)):[],H=dt(),C=r.focused?$.within?.view??B[0]?.as:void 0,E=s.filter(f=>r.flagged?.includes(f.id)).length,X=E>0,z=r.focused||r.raised,Ae=r.rank==="secondary"&&!z,V=r.nestedUnder!==void 0,Ee=new Set(S),Vt=ct(),F=z?0:s.filter(f=>Vt.includes(f.id)&&!Ee.has(f.id)).length,me=F>0&&!X,le=Ye(),Y=le&&!V?le.byKind[String(a)]??0:0,Bt=V?8:Math.min(46,10+Math.round(Math.sqrt(s.length)*8)),Ve=V?(0,g.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.25,letterSpacing:"0.05em",textTransform:"uppercase",color:z?"var(--graview-accent)":"var(--graview-ink-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r.label??o}):(0,g.jsx)(tn,{text:r.label??o,accent:!!z});return(0,g.jsxs)("div",{className:"graview-kind-card","data-graview-rank":r.rank,"data-graview-landmark":k||void 0,"data-graview-nested":V||void 0,"data-graview-tied":F||void 0,"data-graview-hits":le&&!V?Y:void 0,"data-graview-emphasis":le&&!V?Y>0?"lit":"dimmed":void 0,...t?.description||V?{title:V?[r.label??o,t?.description].filter(Boolean).join(" \u2014 "):t.description}:{},style:{position:"relative",height:"100%","--graview-hue":Math.round(h),"--graview-marquee-room":B.length>0&&H?`${H(B.map(f=>f.title))+(k?4:42)}px`:"0px"},children:[k?(0,g.jsx)("span",{className:"graview-kind-block graview-kind-landmark","data-graview-opened":r.opened||void 0,"aria-hidden":"true",style:{"--graview-rise":Bt},children:(0,g.jsx)(ae,{kind:String(a),schema:e,...m?{brand:m}:{},size:96})}):null,(0,g.jsxs)("div",{className:"graview-kind-face","data-graview-opened":r.opened||void 0,style:{display:"flex",flexDirection:"column",gap:V?1:3,padding:V?"5px 7px":"7px 10px",borderRadius:"var(--graview-radius-sm, 9px)",justifyContent:"center",position:"relative",height:"100%",overflow:"hidden",boxSizing:"border-box",border:z?"1px solid var(--graview-accent)":F>0?"1px solid var(--graview-accent-dim)":`1px solid hsl(${Math.round(h)} 55% var(--graview-tint-lightness) / 0.34)`,backgroundColor:"var(--graview-panel)",backgroundImage:`linear-gradient(hsl(${Math.round(h)} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * ${z?1.1:Ae?.28:.5})), hsl(${Math.round(h)} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * ${z?1.1:Ae?.28:.5})))`,boxShadow:z?"0 0 0 1px var(--graview-accent-dim)":void 0},children:[!V&&s.length>0?(0,g.jsx)("div",{"data-graview-tally":s.length,"data-graview-broken":E||void 0,"aria-hidden":"true",style:{position:"absolute",left:0,right:0,top:0,display:"flex",height:3,background:`hsl(${Math.round(h)} 55% var(--graview-tint-lightness) / 0.4)`},children:E>0?(0,g.jsx)("span",{style:{width:`${Math.max(6,Math.round(E/s.length*100))}%`,background:"var(--graview-warn)"}}):null}):null,k?(0,g.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:V?4:6},children:[(0,g.jsx)(ae,{kind:String(a),schema:e,...m?{brand:m}:{},size:V?14:18}),Ve]}):Ve,(0,g.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,fontSize:"0.875rem"},children:[(0,g.jsx)("span",{style:{fontVariantNumeric:"tabular-nums",color:X?"var(--graview-warn)":me?"var(--graview-accent)":"var(--graview-ink-faint)"},children:s.length===0?"none yet":me?F===s.length?`${F} tied`:`${F} of ${s.length} tied`:`${X?`${b} `:""}${s.length}`}),(r.retired??0)>0?(0,g.jsxs)("button",{type:"button",className:"graview-kind-past","data-graview-retired":r.retired,title:`${r.retired} retired ${o.toLowerCase()} \u2014 press to widen the view to the past`,onClick:f=>{f.stopPropagation(),w(Ke($,!0))},onDoubleClick:f=>f.stopPropagation(),onPointerDown:f=>f.stopPropagation(),children:["+",r.retired," past"]}):null,Y>0?(0,g.jsxs)("button",{type:"button",className:"graview-kind-hits","data-testid":`hits-${String(a)}`,title:`${Y} ${Y===1?"match":"matches"} for \u201C${$.q??""}\u201D \u2014 press to go in, narrowed`,onClick:f=>{f.stopPropagation(),w(je($,fe(String(a)),{ownPicture:!0,...$.q?{carry:$.q}:{}}))},onDoubleClick:f=>f.stopPropagation(),onPointerDown:f=>f.stopPropagation(),children:[Y," match"]}):null,F>0&&!me?(0,g.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-accent)"},children:[F," tied"]}):null,r.hasOwnView?(0,g.jsx)("span",{title:`${o} has a view of its own`,"aria-label":"has its own view",style:{fontSize:"0.6875rem",color:"var(--graview-accent)"},children:"\u25C6"}):null,!V&&s.length>0&&!r.focused?(0,g.jsxs)("button",{type:"button",className:"graview-kind-open","data-testid":`open-${String(a)}`,"aria-expanded":r.opened??!1,title:r.opened?"Close it up":`See the ${o} in here`,onClick:f=>{f.stopPropagation(),R(fe(String(a)))},onDoubleClick:f=>f.stopPropagation(),onPointerDown:f=>f.stopPropagation(),children:[(0,g.jsx)("span",{className:"graview-kind-open-word",children:r.opened?"close":"open"})," ",r.opened?"\u25B4":"\u25BE"]}):null]}),r.opened?(0,g.jsxs)("div",{className:"graview-kind-members","data-graview-buildings":r.plot?.side??1,style:{display:"grid",gridTemplateColumns:`repeat(${v.columns}, minmax(0, 1fr))`,gap:3},children:[s.slice(0,v.shown).map(f=>{let K=r.flagged?.includes(f.id)??!1,I=A(t,f);return(0,g.jsx)(j,{pickId:f.id,label:K?`${I} ${b}`:I,title:K?`${I} \u2014 implicated in a problem`:void 0,hue:h,selected:Ee.has(f.id)},f.id)}),s.length>v.shown?(0,g.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",padding:"2px 4px",gridColumn:"1 / -1"},children:["+",s.length-v.shown," more \u2014 double-click to go in"]}):null]}):null]}),!V&&B.length>0?(0,g.jsx)("div",{className:"graview-drive-in","data-testid":`drive-in-${String(a)}`,"data-graview-showing":C,onPointerDown:f=>f.stopPropagation(),onDoubleClick:f=>f.stopPropagation(),children:(0,g.jsx)("div",{className:"graview-drive-in-marquee",role:"group","aria-label":`${o}: pictures`,"data-graview-thumbs":B.length===1?"one":"two",children:B.map(f=>{let K=C===f.as;return(0,g.jsxs)("div",{className:"graview-drive-in-thumb","data-graview-pressed":K||void 0,children:[(0,g.jsx)("span",{className:"graview-drive-in-thumb-title","aria-hidden":"true",children:f.title}),(0,g.jsx)("button",{type:"button",className:"graview-drive-in-thumb-press","data-testid":`showing-${f.as}`,"aria-label":`${o}: ${f.title}`,"aria-pressed":K,title:K?`${f.title} is showing \u2014 press again to open it`:`Show ${f.title} on the billboard \u2014 double-click to open it`,onClick:I=>{I.stopPropagation();let Be=()=>w(Ue($,String(a),f.as));if(I.detail>=2||K&&r.focused){Be();return}w(ze(He(Fe($,!0),_e(String(a))),"view",f.as)),I.detail===1&&Qt(I.currentTarget.ownerDocument,bt(I.nativeEvent),Be)}})]},f.as)})})}):null]})};p.generic=!0,u.generic=!0,n.register(a,{cardinality:"one",fidelity:"full"},_(d)).register(a,{cardinality:"one",fidelity:"summary"},_(i)).register(a,{cardinality:"one",fidelity:"glyph"},_(c)).register(a,{cardinality:"many",fidelity:"full"},_(p)).register(a,{cardinality:"many",fidelity:"summary"},_(p)).register(a,{cardinality:"many",fidelity:"glyph"},_(u))}return n}var x=T(ne(),1);var be=T(ne(),1);var Ne=T(D(),1),Nt=new WeakMap;function an(e){let n=Nt.get(e);return n||Nt.set(e,n=xt(e,ce(e))),n}var xe=Ze;function Rt(){return(0,be.useContext)(xe)}function Yn({children:e}){return(0,Ne.jsx)(xe.Provider,{value:!0,children:e})}function Ct(e){let n=(0,be.useContext)(xe),{store:a}=N();if(n)return null;let t=e.kind??e.node?.kind??e.nodes?.[0]?.kind;if(!t)return null;let o=an(a.schema).lookup(t,{cardinality:e.cardinality,fidelity:e.fidelity});return o?(0,Ne.jsx)(o,{...e}):null}var l=T(D(),1),Pt=(0,x.createContext)(null),rn=(e,n)=>e.trim().toLowerCase().replace(/[_-]+/g," ")===n.trim().toLowerCase().replace(/[_-]+/g," "),on=(0,x.createContext)(null),Pe=(0,x.createContext)(null);function sn({block:e}){let n=(0,x.useContext)(Pe),a=n?.slots?.[e.key],t=(0,l.jsx)(ln,{block:e});return a?(0,l.jsx)(x.Suspense,{fallback:t,children:(0,l.jsx)(a,{block:e,node:n.node,drawn:t})}):t}function ln({block:e}){let n=(0,x.useContext)(Pt),a=(0,x.useContext)(un),t=(0,x.useContext)(Ce);if(n&&e.t==="badge"&&n.values.some(o=>rn(o,e.text))||n&&e.t==="field"&&n.field!==void 0&&e.field===n.field)return null;switch(e.t){case"title":return(0,l.jsx)("strong",{className:"graview-spec-title",children:e.text});case"text":return Se(e.text)?(0,l.jsx)("div",{className:"graview-spec-text",...e.tone?{"data-graview-tone":e.tone}:{},children:(0,l.jsx)(oe,{text:e.text})}):(0,l.jsx)("p",{className:"graview-spec-text",...e.tone?{"data-graview-tone":e.tone}:{},children:e.text});case"badge":return(0,l.jsx)("span",{className:"graview-spec-badge","data-graview-tone":e.tone,children:e.text});case"field":return(0,l.jsxs)("span",{className:"graview-spec-field","data-graview-field":e.field,children:[(0,l.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,l.jsx)("span",{className:"graview-spec-value",...Se(e.text)?{style:{whiteSpace:"pre-line"}}:{},children:e.href?(0,l.jsx)("a",{className:"graview-spec-link",href:e.href,rel:"noopener noreferrer",target:"_blank",children:e.text}):e.text})]});case"image":return(0,l.jsx)(U,{as:"block",field:e.field,files:e.files,label:e.label,view:e.as});case"progress":return e.value===void 0||e.max===void 0?(0,l.jsxs)("span",{className:"graview-spec-progress",children:[(0,l.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,l.jsx)("span",{className:"graview-spec-value",children:e.text})]}):(0,l.jsxs)("span",{className:"graview-spec-progress",children:[(0,l.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,l.jsx)("span",{className:"graview-spec-track",role:"progressbar","aria-label":e.label,"aria-valuemin":0,"aria-valuemax":e.max,"aria-valuenow":Math.max(0,Math.min(e.value,e.max)),"aria-valuetext":e.text,children:(0,l.jsx)("span",{className:"graview-spec-fill",style:{width:`${Math.round(Math.max(0,Math.min(e.value,e.max))/e.max*100)}%`}})}),(0,l.jsx)("span",{className:"graview-spec-value",children:e.text})]});case"group":return(0,l.jsx)("span",{className:"graview-spec-group","data-direction":e.direction,children:(0,l.jsx)(Re,{blocks:e.blocks})});case"when":return e.shown?(0,l.jsx)(Re,{blocks:e.blocks}):null;case"divider":return(0,l.jsx)("hr",{className:"graview-spec-divider"});case"figure":return(0,l.jsx)(dn,{});case"headline":{let o=`h${Math.min(6,e.level+a)}`,d=(0,l.jsx)(o,{className:"graview-spec-headline","data-level":e.level,children:e.text});return t!==null&&e.level===1?(0,l.jsxs)(l.Fragment,{children:[d,t]}):d}case"number":return(0,l.jsxs)("span",{className:"graview-spec-number",children:[(0,l.jsx)("span",{className:"graview-spec-number-value",children:e.text}),e.label?(0,l.jsx)("span",{className:"graview-spec-label",children:e.label}):null]});case"list":return(0,l.jsx)(gn,{list:e})}}function dn(){let e=(0,x.useContext)(Pe)?.figure;return e?(0,l.jsx)("span",{className:"graview-spec-figure","aria-hidden":"true",children:e()}):null}function Re({blocks:e}){return e.map((n,a)=>(0,l.jsx)(sn,{block:n},a))}function $t({blocks:e,ctx:n,view:a}){let t=(0,x.useContext)(on)?.[a];return(0,l.jsx)(Pe.Provider,{value:{figure:n.figure,slots:t,node:n.node},children:(0,l.jsx)(Re,{blocks:e})})}function $e({blocks:e,ctx:n,view:a}){return(0,l.jsx)($t,{blocks:Z(e,n),ctx:n,view:a})}var Tt=3,At=(0,x.createContext)(0),cn=(0,x.createContext)(null),un=(0,x.createContext)(0),Ce=(0,x.createContext)(null);function pn({node:e,as:n,depth:a,said:t=null}){let{store:o,views:d}=N(),i=A(o.schema.tryDefinition(e.kind),e),c=d.lookup(e.kind,{cardinality:"one",fidelity:n==="card"?"summary":"glyph"});return(0,l.jsxs)("li",{className:"graview-spec-item","data-graview-listed":e.id,"data-as":n,children:[a<=Tt&&c?(0,l.jsx)(Xe,{mode:"scene",children:(0,l.jsx)(At.Provider,{value:a,children:(0,l.jsx)(Pt.Provider,{value:t,children:(0,l.jsx)(c,{node:e,cardinality:"one",fidelity:n==="card"?"summary":"glyph",mode:"scene",selected:!1})})})}):(0,l.jsx)("span",{className:"graview-spec-item-name",children:i}),(0,l.jsx)(Et,{node:e,label:i})]})}function Et({node:e,label:n}){let a=(0,x.useContext)(cn);return a?(0,l.jsx)("a",{className:"graview-spec-item-link",href:a.href(e),"aria-label":n,onClick:t=>{t.metaKey||t.ctrlKey||t.shiftKey||t.button!==0||(t.preventDefault(),t.stopPropagation(),a.go(e))}}):(0,l.jsx)("button",{type:"button",className:"graview-spec-item-link","data-graview-pick":e.id,"aria-label":n})}function gn({list:e}){let n=(0,x.useContext)(At)+1,{store:a}=N();if(e.failed)return(0,l.jsx)("p",{className:"graview-spec-text",children:"\u2014"});if(e.members.length===0)return e.empty?(0,l.jsx)("p",{className:"graview-spec-text graview-spec-empty",children:e.empty}):null;let t=(i,c=null)=>n>Tt?(0,l.jsx)("ul",{className:"graview-spec-list","data-as":"names",children:i.map(p=>(0,l.jsxs)("li",{className:"graview-spec-item","data-graview-listed":p.id,"data-as":"name",children:[(0,l.jsx)("span",{className:"graview-spec-item-name",children:A(a.schema.tryDefinition(p.kind),p)}),(0,l.jsx)(Et,{node:p,label:A(a.schema.tryDefinition(p.kind),p)})]},p.id))}):(0,l.jsx)("ul",{className:"graview-spec-list","data-as":e.as,children:i.map(p=>(0,l.jsx)(pn,{node:p,as:e.as,depth:n,said:c},p.id))}),o=e.more>0?(0,l.jsx)("p",{className:"graview-spec-text graview-spec-more",children:`and ${e.more} more`}):null;if(!e.groups)return(0,l.jsxs)("div",{className:"graview-spec-listing",children:[t(e.members),o]});let d=`h${e.headingLevel}`;return(0,l.jsxs)("div",{className:"graview-spec-listing",children:[e.groups.map(i=>(0,l.jsxs)("section",{className:"graview-spec-list-group","data-graview-group":i.value??"",children:[i.heading?(0,l.jsx)(d,{className:"graview-spec-list-heading",children:i.heading}):null,t(i.members,i.value!==null?{values:[i.value,...i.heading?[i.heading]:[]]}:null)]},i.value??"")),o]})}function da({blocks:e,heading:n=2,firstHeading:a,slot:t,view:o=t}){let{store:d,brand:i}=N();de();let c=re(d,null,null,{heading:n,firstHeading:a,money:i}),p=(0,x.useContext)(Ce),u=e.some(r=>r.t==="headline");return(0,l.jsxs)("div",{className:`graview-spec graview-spec-${t}`,"data-graview-spec":t,children:[p!==null&&!u?p:null,(0,l.jsx)(Ce.Provider,{value:u?p:null,children:(0,l.jsx)($e,{blocks:e,ctx:c,view:o})})]})}function Te(e,n="card"){let{store:a,brand:t}=N(),o=a.schema;return{...re(a,null,e,{slot:n,money:t}),figure:()=>(0,l.jsx)(ae,{kind:e.kind,schema:o,...t?{brand:t}:{},size:22})}}function mn({slot:e,blocks:n,node:a,selected:t}){let o=Te(a,e);return(0,l.jsx)("div",{className:`graview-spec graview-spec-${e}`,"data-graview-spec":e,"data-graview-kind":a.kind,...e==="row"&&n.some(st)?{"data-graview-tall":""}:{},...t?{"data-selected":""}:{},children:(0,l.jsx)($e,{blocks:n,ctx:o,view:`${a.kind}.${e}`})})}function fn({blocks:e,node:n,selected:a,flagged:t}){let o=Te(n),[d,...i]=e,c=d?.t==="title";return(0,l.jsx)(Q,{...c?{title:Z([d],o)[0].text}:{},selected:a,tone:t?"warning":"muted",fit:!0,children:(0,l.jsx)("div",{className:"graview-spec graview-spec-card","data-graview-spec":"card","data-graview-kind":n.kind,children:(0,l.jsx)($e,{blocks:c?i:e,ctx:o,view:`${n.kind}.card`})})})}function yn({blocks:e,props:n}){let a=n.node,t=Te(a,"page"),o=Rt(),d=Z(e,t),i=ue(e,d),c=i.title!==void 0&&(!o||i.title===A(t.schema?.tryDefinition(a.kind),a)),p=(0,l.jsx)("div",{className:"graview-spec graview-spec-page","data-graview-spec":"page","data-graview-kind":a.kind,children:(0,l.jsx)($t,{blocks:c?d.slice(1):d,ctx:t,view:`${a.kind}.page`})});return o?p:(0,l.jsx)(se.Provider,{value:{nodeId:a.id,...i.title!==void 0?{title:i.title}:{},body:p,fields:i.fields,records:i.records},children:(0,l.jsx)(Ct,{...n})})}function ca(e,n,a){return typeof e=="function"?e.says?.(n,a):void 0}function hn({blocks:e,node:n,selected:a}){let{store:t}=N();return(0,l.jsx)("div",{title:A(t.schema.tryDefinition(n.kind),n),style:{minWidth:0,maxWidth:"100%"},children:(0,l.jsx)(mn,{slot:"row",blocks:e,node:n,selected:a})})}function ua(e,n,a){if(!a)return e;let t=new Set(n.kinds);for(let[o,d]of Object.entries(a)){if(!t.has(o)||!d)continue;let i=o;if(d.card){let c=ie(d.card),p=u=>u.node?(0,l.jsx)(fn,{blocks:c,node:u.node,selected:u.selected,flagged:u.flagged?.includes(u.node.id)??!1}):null;e.register(i,{cardinality:"one",fidelity:"summary"},p)}if(d.row){let c=ie(d.row),p=u=>u.node?(0,l.jsx)(hn,{blocks:c,node:u.node,selected:u.selected}):null;p.says=(u,r)=>ue(c,Z(c,re({graph:r,schema:n},null,u,{slot:"row"}))),e.register(i,{cardinality:"one",fidelity:"glyph"},p)}if(d.page){let c=ie(d.page),p=u=>u.node?(0,l.jsx)(yn,{blocks:c,props:u}):null;p.says=(u,r)=>ue(c,Z(c,re({graph:r,schema:n},null,u))),e.register(i,{cardinality:"one",fidelity:"full"},p)}}return e}export{ht as a,zt as b,xt as c,Yn as d,Pt as e,cn as f,un as g,Ce as h,Et as i,da as j,ca as k,ua as l};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i}from"./chunk.6GJF3F7L.js";import"./chunk.TAW67PZU.js";import"./chunk.YOMW4MKD.js";import"./chunk.DRIWJRQW.js";import"./chunk.KSEKVHJJ.js";import"./chunk.JIWB6VGT.js";import"./chunk.P7YN4Z3K.js";import"./chunk.AJZBJBMO.js";export{f as columnActs,c as columnMoves,b as columnOf,d as columnReach,e as columnSteps,h as describePlace,i as placeText,g as resolveFor,a as statusColumns};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{D as L,E as T,
|
|
1
|
+
import{D as L,E as T,Y as D}from"./chunk.P7YN4Z3K.js";var Y=1e4,g=class{constructor(i){this.nodes=i}},B="",c=class extends Error{constructor(f,l){super(f);this.sentence=f;this.at=l}},_=class extends c{},V=t=>t!==null&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof g)&&typeof t.id=="string",U=t=>{let i=new Set;return new g(t.filter(f=>!i.has(f.id)&&i.add(f.id)))},p=t=>t===null?"nothing":t instanceof g?"a set of records":Array.isArray(t)?"a list":V(t)?"a record":typeof t=="string"?"a word":typeof t;function P(t,i){let f=i.budget??Y,l=(n,s)=>{if(f-=n,f<0)throw new _("this rule looks at too much of the graph to judge in one go",s)},b=i.today??new Date().toISOString().slice(0,10),A=i.now??new Date().toISOString(),w=new Map,F=new Set,G=i.bindings,I=(n,s,e,o)=>{let u=`${n?.id}\0${s}`;if(w.has(u))return w.get(u);if(F.has(u))throw new c(`"${s}"${n?` of ${D(n.kind)}`:""} depends on itself`,o);F.add(u);let r=G;G=void 0;try{let a=h(e,n);return w.set(u,a),a}finally{G=r,F.delete(u)}},M=(n,s,e)=>{l(1,e);let o=i.kinds.get(n.kind),u=o?.computed?.get(s);if(u)return I(n,s,u,e);let r=Object.hasOwn(n,s);if(o?.fields.has(s)||r){let d=r?n[s]:void 0;return d===void 0?null:d}let a=o?.edges.get(s);if(a){let d=i.graph.out(n.id,s);return l(d.length,e),a==="one"?d[0]??null:new g(d)}if(s==="id")return n.id;throw new c(`${D(n.kind)} has no field or relation called "${s}"`,e)},S=(n,s,e)=>{if(n instanceof g)return n;if(n===null)return new g([]);if(V(n))return new g([n]);throw new c(`${e}(\u2026) needs a set of records, and was given ${p(n)}`,s)},k=(n,s,e)=>{if(n===null)return null;if(typeof n=="string")return n;if(typeof n=="number"||typeof n=="boolean")return String(n);throw new c(`${e}(\u2026) needs a word, and was given ${p(n)}`,s)},O=(n,s,e)=>{let o=k(n,s,e);if(o===null)return null;let u=Date.parse(o.length===10?`${o}T00:00:00Z`:o);if(Number.isNaN(u))throw new c(`${e}(\u2026) needs a date, and "${o}" is not one`,s);return u},E=(n,s)=>V(n)&&V(s)?n.id===s.id:V(n)&&typeof s=="string"?n.id===s:typeof n=="string"&&V(s)?n===s.id:Array.isArray(n)&&Array.isArray(s)?n.length===s.length&&n.every((e,o)=>E(e,s[o])):n===s,N=(n,s,e)=>{if(n===null)return!1;if(typeof n=="boolean")return n;throw new c(`${e} must be true or false, and was ${p(n)}`,s)},R=(n,s)=>h(s,n);function h(n,s){switch(l(1,n.at),n.t){case"lit":return n.value;case"list":return n.items.map(e=>h(e,s));case"ident":{let e=G&&Object.hasOwn(G,n.name)?G[n.name]:void 0;if(e!==void 0)return e;if(s)return M(s,n.name,n.at);throw new c(`"${n.name}" means nothing in a rule over the whole graph`,n.at)}case"member":{let e=h(n.object,s);if(e===null)return null;if(V(e))return M(e,n.name,n.at);throw new c(`".${n.name}" needs a record before it, and was given ${p(e)}`,n.at)}case"unary":{let e=h(n.operand,s);if(n.op==="!")return!N(e,n.at,"what follows not");if(e===null)return null;if(typeof e!="number")throw new c(`"-" needs a number, and was given ${p(e)}`,n.at);return-e}case"where":{let e=S(h(n.set,s),n.at,"where");return l(e.nodes.length,n.at),new g(e.nodes.filter(o=>N(R(o,n.filter),n.at,"a where condition")))}case"binary":return z(n,s);case"call":return H(n,s)}}function z(n,s){if(n.op==="&&")return N(h(n.left,s),n.at,"each side of and")&&N(h(n.right,s),n.at,"each side of and");if(n.op==="||")return N(h(n.left,s),n.at,"each side of or")||N(h(n.right,s),n.at,"each side of or");let e=h(n.left,s),o=h(n.right,s);if(n.op==="&"||n.op==="|"||n.op==="-"&&(e instanceof g||o instanceof g)){let u=S(e,n.at,n.op).nodes,r=S(o,n.at,n.op).nodes;l(u.length+r.length,n.at);let a=new Set(r.map(d=>d.id));return U(n.op==="|"?[...u,...r]:u.filter(d=>a.has(d.id)===(n.op==="&")))}switch(n.op){case"==":return E(e,o);case"!=":return!E(e,o);case"in":{if(o===null)return!1;if(o instanceof g)return o.nodes.some(u=>E(e,u));if(Array.isArray(o))return o.some(u=>E(e,u));if(typeof o=="string"&&typeof e=="string")return o.includes(e);throw new c(`"in" needs a list or a set on its right, and was given ${p(o)}`,n.at)}case"<":case"<=":case">":case">=":{if(e===null||o===null)return!1;if(!(typeof e=="number"&&typeof o=="number"||typeof e=="string"&&typeof o=="string"))throw new c(`cannot compare ${p(e)} with ${p(o)}`,n.at);return n.op==="<"?e<o:n.op==="<="?e<=o:n.op===">"?e>o:e>=o}default:{if(e===null||o===null)return null;if(n.op==="+"&&(typeof e=="string"||typeof o=="string")){let u=`${k(e,n.at,"+")}${k(o,n.at,"+")}`;if(u.length>1e4)throw new c("that makes a word too long",n.at);return u}if(typeof e!="number"||typeof o!="number")throw new c(`"${n.op}" needs numbers, and was given ${p(e)} and ${p(o)}`,n.at);return(n.op==="/"||n.op==="%")&&o===0?null:n.op==="+"?e+o:n.op==="-"?e-o:n.op==="*"?e*o:n.op==="/"?e/o:e%o}}}function H(n,s){let e=(r,a=r)=>{if(n.args.length<r||n.args.length>a)throw new c(`${n.fn}(\u2026) takes ${r===a?r:`${r} to ${a}`} argument${a===1?"":"s"}`,n.at)},o=r=>h(n.args[r],s),u=r=>{let a=o(r);if(typeof a!="string")throw new c(`${n.fn}(\u2026) needs a quoted name, like ${n.fn}('name')`,n.at);return a};switch(n.fn){case"out":case"in":{e(1,2);let r=($,m)=>n.fn==="out"?i.graph.out($,m):i.graph.in($,m);if(n.args.length===2){let $=S(o(0),n.at,n.fn).nodes,m=u(1);return U($.flatMap(y=>{let x=r(y.id,m);return l(x.length+1,n.at),x}))}let a=u(0);if(!s)throw new c(`${n.fn}('${a}') needs a record to start from`,n.at);let d=r(s.id,a);return l(d.length,n.at),new g(d)}case"all":{e(1);let r=i.graph.nodesOfKind(u(0));return l(r.length,n.at),new g(r)}case"count":return e(1),S(o(0),n.at,"count").nodes.length;case"exists":return e(1),S(o(0),n.at,"exists").nodes.length>0;case"every":case"some":{e(2);let r=S(o(0),n.at,n.fn);l(r.nodes.length,n.at);let a=d=>N(R(d,n.args[1]),n.at,`the condition in ${n.fn}(\u2026)`);return n.fn==="every"?r.nodes.every(a):r.nodes.some(a)}case"sum":case"min":case"max":{e(2);let r=S(o(0),n.at,n.fn);l(r.nodes.length,n.at);let a=n.args[1],d=a.t==="lit"&&typeof a.value=="string"?a.value:void 0,$=a.t==="ident"?`'${a.name}'`:d!==void 0?`'${d}'`:"\u2026",m=r.nodes.map(y=>a.t==="ident"?M(y,a.name,n.at):d!==void 0?M(y,d,n.at):R(y,a)).filter(y=>{if(y===null)return!1;if(typeof y!="number")throw new c(`${n.fn}(\u2026, ${$}) needs a number for each member, and found ${p(y)}`,n.at);return!0});return n.fn==="sum"?m.reduce((y,x)=>y+x,0):m.length===0?null:n.fn==="min"?Math.min(...m):Math.max(...m)}case"fact":{e(1);let r=u(0),a=i.kinds.get(B)?.computed?.get(r);if(!a)throw new c(`no fact is called "${r}"`,n.at);return I(null,r,a,n.at)}case"first":return e(1),S(o(0),n.at,"first").nodes[0]??null;case"sort":{e(2,3);let r=S(o(0),n.at,"sort"),a=n.args.length===3?o(2):"asc";if(a!=="asc"&&a!=="desc")throw new c("sort(\u2026) goes 'asc' or 'desc'",n.at);let d=r.nodes.length;l(d+d*Math.ceil(Math.log2(d+1)),n.at);let $=r.nodes.map((y,x)=>({node:y,i:x,key:R(y,n.args[1])})),m=a==="desc"?-1:1;return $.sort((y,x)=>K(y.key,x.key,m,n.at)||y.i-x.i),new g($.map(y=>y.node))}case"either":{if(n.args.length<1)throw new c("either(\u2026) takes at least one argument",n.at);for(let r=0;r<n.args.length;r++){let a=o(r);if(a!==null&&!(a instanceof g&&a.nodes.length===0))return a}return null}case"present":{e(1);let r=o(0);return r===null||r===""?!1:Array.isArray(r)?r.length>0:r instanceof g?r.nodes.length>0:!0}case"len":{e(1);let r=o(0);if(r===null)return 0;if(typeof r=="string"||Array.isArray(r))return r.length;if(r instanceof g)return r.nodes.length;throw new c(`len(\u2026) needs a word or a list, and was given ${p(r)}`,n.at)}case"contains":case"startsWith":{e(2);let r=o(0),a=o(1);if(r===null||a===null)return!1;if(n.fn==="contains"&&Array.isArray(r))return r.some(m=>E(m,a));let d=k(r,n.at,n.fn),$=k(a,n.at,n.fn);return n.fn==="contains"?d.toLowerCase().includes($.toLowerCase()):d.startsWith($)}case"lower":{e(1);let r=k(o(0),n.at,"lower");return r===null?null:r.toLowerCase()}case"today":return e(0),b;case"now":return e(0),A;case"date":{e(1);let r=O(o(0),n.at,"date");return r===null?null:new Date(r).toISOString().slice(0,10)}case"days":case"hours":{e(2);let r=O(o(0),n.at,n.fn),a=O(o(1),n.at,n.fn);if(r===null||a===null)return null;let d=(a-r)/(n.fn==="days"?864e5:36e5);return n.fn==="days"?Math.round(d):d}case"if":return e(3),N(o(0),n.at,"the condition in if(\u2026)")?o(1):o(2);default:throw new c(`"${n.fn}" is not a function the rule language knows`,n.at)}}function K(n,s,e,o){if(n===null||s===null)return n===s?0:n===null?1:-1;if(Array.isArray(n)&&Array.isArray(s)){for(let r=0;r<Math.max(n.length,s.length);r++){let a=K(n[r]??null,s[r]??null,e,o);if(a!==0)return a}return 0}let u=r=>typeof r=="number"||typeof r=="string"||typeof r=="boolean"?typeof r:p(r);if(u(n)!==u(s)||typeof n=="object"||typeof s=="object")throw new c(`sort(\u2026) cannot put ${p(n)} and ${p(s)} in order`,o);return typeof n=="string"?e*(n<s?-1:n>s?1:0):e*(Number(n)-Number(s))}return h(t,i.subject)}var tn=["out","in","all","count","exists","every","some","sum","min","max","present","len","contains","startsWith","lower","today","now","date","days","hours","if","first","sort","either","fact"];var rn=(t,i,f,l)=>({severity:"error",code:t,path:i,message:f,...l?{fix:l}:{}}),on=(t,i,f,l)=>({severity:"warning",code:t,path:i,message:f,...l?{fix:l}:{}}),sn=t=>t.some(i=>i.severity==="error");function an(t){return t.map(i=>`${i.severity==="error"?"\u2717":i.severity==="warning"?"!":"\xB7"} ${i.path||"(document)"}: ${i.message}${i.fix?` \u2014 ${i.fix}`:""}`).join(`
|
|
2
2
|
`)}var cn=["money","percent","date","relative","upper","lower","count","words","and","plural"],J={getNode:()=>{},allNodes:()=>[],allEdges:()=>[],nodesOfKind:()=>[],edgesOfKind:()=>[],out:()=>[],in:()=>[],neighbors:()=>[],has:()=>!1};function fn(t,i,f,l=[],b){return j(t,i,f,l,b)}function Q(t,i={}){let f=Number.isInteger(t),l={maximumFractionDigits:f?0:2,minimumFractionDigits:f?0:2};try{return new Intl.NumberFormat(i.locale??"en-US",i.currency?{style:"currency",currency:i.currency,...l}:l).format(t)}catch{return t.toLocaleString("en-US",l)}}var W=["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],q=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"];function X(t){return!Number.isInteger(t)||t<0||t>99?t.toLocaleString("en-US",{maximumFractionDigits:2}):t<20?W[t]:t%10===0?q[t/10]:`${q[Math.floor(t/10)]}-${W[t%10]}`}function Z(t){return t.length<=1?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}function v(t){return/[^aeiou]y$/i.test(t)?`${t.slice(0,-1)}ies`:/(s|x|z|ch|sh)$/i.test(t)?`${t}es`:`${t}s`}var C=t=>String(t.name??t.title??t.label??t.id);function j(t,i,f,l=[],b){if(i==="plural"){let A=t instanceof g?t.nodes.length:Array.isArray(t)?t.length:typeof t=="number"?t:null;return A===null||l[0]===void 0?"\u2014":A===1?l[0]:l[1]??v(l[0])}if(t===null)return"\u2014";if(t instanceof g)return i==="count"?String(t.nodes.length):i==="and"?Z(t.nodes.map(C)):t.nodes.map(C).join(", ");if(Array.isArray(t)){if(i==="count")return String(t.length);let A=t.map(w=>j(w,void 0,f,[],b));return i==="and"?Z(A):A.join(", ")}if(typeof t=="object")return C(t);switch(i){case"words":return typeof t=="number"?X(t):String(t);case"money":return typeof t=="number"?Q(t,b):String(t);case"percent":return typeof t=="number"?`${Math.round(t*100)}%`:String(t);case"upper":return String(t).toUpperCase();case"lower":return String(t).toLowerCase();case"date":return T(String(t).slice(0,10));case"relative":{let A=Date.parse(String(t).length===10?`${t}T00:00:00Z`:String(t));if(Number.isNaN(A))return String(t);let w=Math.round((A-Date.parse(`${f}T00:00:00Z`))/864e5);return w===0?"today":w===1?"tomorrow":w===-1?"yesterday":w>0?`in ${w} days`:`${-w} days ago`}default:return typeof t=="string"&&L.test(t)?T(t):String(t)}}function gn(t,i){let f=i.today??new Date().toISOString().slice(0,10);return t.map(l=>{if(l.text!==void 0)return l.text;try{let b=P(l.expr,{graph:i.graph??J,subject:i.node,kinds:i.kinds,today:f,budget:i.budget??500,...i.bindings?{bindings:i.bindings}:{}});return j(b,l.format,f,l.formatArgs,i.money)}catch(b){if(b instanceof c)return"\u2014";throw b}}).join("")}export{g as a,B as b,c,_ as d,P as e,tn as f,rn as g,on as h,sn as i,an as j,cn as k,J as l,fn as m,Q as n,gn as o};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as O,k as b}from"./chunk.
|
|
1
|
+
import{f as O,k as b}from"./chunk.JIWB6VGT.js";function K(n,s){return s===1&&["every","some","sum","min","max","sort"].includes(n.fn)}function S(n){let s=new Set,e=new Set,r=[],i=[],o=new Set(O),a=(l,f)=>{switch(l.t){case"lit":return;case"ident":f||s.add(l.name);return;case"list":l.items.forEach(c=>a(c,f));return;case"member":a(l.object,f);return;case"unary":a(l.operand,f);return;case"binary":a(l.left,f),a(l.right,f);return;case"where":a(l.set,f),a(l.filter,!0);return;case"call":{e.add(l.fn);let c=(l.fn==="out"||l.fn==="in")&&l.args.length===2?l.args[1]:l.args[0],h=c?.t==="lit"&&typeof c.value=="string"?c.value:void 0;l.fn==="all"&&h&&r.push(h),(l.fn==="out"||l.fn==="in")&&h&&i.push(h),l.args.forEach((k,x)=>a(k,f||K(l,x)));return}}};return a(n,!1),{names:s,functions:e,unknownFunctions:[...e].filter(l=>!o.has(l)),sweeps:r,edges:i}}var p=class extends Error{constructor(e,r,i){super(`${e} (at character ${r+1} of "${i}")`);this.sentence=e;this.at=r;this.source=i}},q=["||","&&","==","!=","<=",">=","<",">","!","|","&","+","-","*","/","%","(",")","[","]",",","."],F={and:"&&",or:"||",not:"!"},M=2e3;function I(n){let s=[],e=0;for(;e<n.length;){let r=n[e];if(r===" "||r===" "||r===`
|
|
2
2
|
`||r==="\r"){e++;continue}if(r>="0"&&r<="9"){let o=e;for(;e<n.length&&/[0-9.]/.test(n[e]);)e++;let a=n.slice(o,e),l=Number(a);if(!Number.isFinite(l)||a.split(".").length>2)throw new p(`"${a}" is not a number`,o,n);s.push({k:"num",v:l,at:o});continue}if(r==="'"||r==='"'){let o=e++,a="";for(;e<n.length&&n[e]!==r;)n[e]==="\\"&&e+1<n.length&&e++,a+=n[e++];if(e>=n.length)throw new p("a quoted word is never closed",o,n);e++,s.push({k:"str",v:a,at:o});continue}if(/[A-Za-z_]/.test(r)){let o=e;for(;e<n.length&&/[A-Za-z0-9_]/.test(n[e]);)e++;let a=n.slice(o,e),l=Object.hasOwn(F,a)?F[a]:void 0;s.push(l?{k:"op",v:l,at:o}:{k:"id",v:a,at:o});continue}let i=q.find(o=>n.startsWith(o,e));if(!i)throw new p(`"${r}" is not part of the rule language`,e,n);s.push({k:"op",v:i,at:e}),e+=i.length}return s.push({k:"end",at:n.length}),s}function w(n){if(n.length>M)throw new p(`an expression may be at most ${M} characters`,0,n.slice(0,40));let s=I(n),e=0,r=()=>s[e],i=t=>{let d=r();return d.k==="op"&&d.v===t},o=t=>{let d=r();return d.k==="id"&&d.v===t},a=(t,d)=>{if(!i(t))throw new p(`expected ${d}`,r().at,n);e++},l=0,f=(t,d)=>{if(++l>64)throw new p("the expression nests too deeply",t,n);try{return d()}finally{l--}},c=(t,d)=>()=>{let u=d();for(;;){let y=r(),R=y.k==="op"?t.find(B=>B===y.v):y.k==="id"&&y.v==="in"&&t.includes("in")?"in":void 0;if(!R)return u;e++,u={t:"binary",op:R,left:u,right:d(),at:y.at}}},h=()=>{let t=r();if(t.k==="num")return e++,{t:"lit",value:t.v,at:t.at};if(t.k==="str")return e++,{t:"lit",value:t.v,at:t.at};if(t.k==="id"){if(e++,t.v==="true"||t.v==="false")return{t:"lit",value:t.v==="true",at:t.at};if(t.v==="null")return{t:"lit",value:null,at:t.at};if(i("(")){e++;let d=[];if(!i(")"))for(;;){if(d.push(m()),i(",")){e++;continue}break}return a(")",`")" to close ${t.v}(\u2026)`),{t:"call",fn:t.v,args:d,at:t.at}}return{t:"ident",name:t.v,at:t.at}}if(t.k==="op"&&t.v==="("){e++;let d=f(t.at,m);return a(")",'a ")"'),d}if(t.k==="op"&&t.v==="["){e++;let d=[];if(!i("]"))for(;;){if(d.push(m()),i(",")){e++;continue}break}return a("]",'a "]" to close the list'),{t:"list",items:d,at:t.at}}throw t.k==="end"?new p("the expression ends too soon",t.at,n):new p(`"${t.k==="op"?t.v:""}" cannot start a value here`,t.at,n)},k=()=>{let t=h();for(;;){if(i(".")){let d=r();e++;let u=r();if(u.k!=="id")throw new p('expected a field name after "."',u.at,n);e++,t={t:"member",object:t,name:u.v,at:d.at};continue}if(o("where")){let d=r().at;e++,t={t:"where",set:t,filter:f(d,m),at:d};continue}return t}},x=()=>{let t=r();return t.k==="op"&&(t.v==="!"||t.v==="-")?(e++,{t:"unary",op:t.v,operand:f(t.at,x),at:t.at}):k()},T=c(["*","/","%"],x),C=c(["+","-"],T),A=c(["&"],C),v=c(["|"],A),P=()=>{let t=v(),d=r(),u=d.k==="op"&&["==","!=","<","<=",">",">="].includes(d.v)?d.v:d.k==="id"&&d.v==="in"?"in":void 0;return u?(e++,{t:"binary",op:u,left:t,right:v(),at:d.at}):t},$=()=>{let t=r();return t.k==="op"&&t.v==="!"?(e++,{t:"unary",op:"!",operand:f(t.at,$),at:t.at}):P()},z=c(["&&"],$),_=c(["||"],z);function m(){return _()}let N=m();if(r().k!=="end")throw new p("there is more after the end of the expression",r().at,n);return N}function D(n){let s,e=-1,r=0;for(let i=0;i<n.length;i++){let o=n[i];if(s){o==="\\"?i++:o===s&&(s=void 0);continue}o==="'"||o==='"'?s=o:o==="("||o==="["?r++:o===")"||o==="]"?r--:o==="|"&&r===0&&(n[i+1]==="|"?i++:e=i)}return e}var E=/\s*(?:'((?:[^'\\]|\\.)*)'|"((?:[^"\\]|\\.)*)")\s*(,|$)/y;function H(n){let s=n.indexOf(":"),e=(s>=0?n.slice(0,s):n).trim();if(!b.includes(e))throw new g(`"${e}" is not a formatter; use one of ${b.join(", ")}`);let r=[];if(s>=0){let i=n.slice(s+1),o=0;for(;o<i.length;){E.lastIndex=o;let a=E.exec(i);if(!a)throw new g(`"${e}" is told quoted words, like ${e}: 'offer'`);if(r.push((a[1]??a[2]??"").replace(/\\(.)/g,"$1")),o=E.lastIndex,a[3]==="")break}}if(e==="plural"&&(r.length<1||r.length>2))throw new g("plural is told its noun, like {count | plural: 'offer'}, and its plural where English does not make it: plural: 'person', 'people'");if(e!=="plural"&&r.length>0)throw new g(`"${e}" takes nothing after it`);return{format:e,args:r}}var g=class extends Error{constructor(e){super(e);this.sentence=e}};function J(n){let s=[],e=0;for(;e<n.length;){let r=n.indexOf("{",e);if(r<0){s.push({text:n.slice(e)});break}r>e&&s.push({text:n.slice(e,r)});let i=n.indexOf("}",r);if(i<0)throw new g(`a "{" at character ${r+1} is never closed`);let o=n.slice(r+1,i),a=D(o),l=(a>=0?o.slice(0,a):o).trim(),f=a>=0?H(o.slice(a+1)):void 0;s.push({expr:w(l),source:l,...f?{format:f.format}:{},...f&&f.args.length>0?{formatArgs:f.args}:{}}),e=i+1}return s}function j(n){let s=new Map;for(let[e,r]of Object.entries(n?.computed??{}))s.set(e,typeof r=="string"?{expr:r}:r);return s}function te(n){let s=j(n);if(s.size===0)return;let e=new Map;for(let[r,i]of s)try{e.set(r,w(i.expr))}catch(o){if(!(o instanceof p))throw o}return e}function L(n,s,e=new Set){let r=j(n).get(s);if(!r||e.has(s))return!1;let i;try{i=w(r.expr)}catch{return!1}let o=S(i);if(o.edges.length>0||o.sweeps.length>0||[...o.functions].some(c=>c==="out"||c==="in"||c==="all"))return!1;let a=n.fields,l=c=>a instanceof Set?a.has(c):Object.hasOwn(a,c),f=new Set([...e,s]);return[...o.names].every(c=>l(c)||L(n,c,f))}export{S as a,p as b,w as c,g as d,J as e,j as f,te as g,L as h};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as y}from"./chunk.PKFL2AR4.js";import{a as f,d as g}from"./chunk.6LJ66MB7.js";import{za as m}from"./chunk.SVL6I37U.js";import{Z as p}from"./chunk.P7YN4Z3K.js";import{a as R,b as c}from"./chunk.MRK6QJV5.js";import{b as u}from"./chunk.AJZBJBMO.js";var s=u(R(),1);var r=u(c(),1),S,h=()=>S??=m(f(()=>import("./chunk.LCFCU3I3.js")));function L(e){let[n,t]=(0,s.useState)(()=>h().current);return(0,s.useEffect)(()=>{if(!e||n)return;let i=!0;return h().load().then(a=>i&&t(a),()=>{}),()=>{i=!1}},[e,n]),n}function D(e,n){let t=L(n.length>0);return(0,s.useMemo)(()=>t?t.withLines(e,n):n,[t,e,n])}function I(e,n){let t=L(n.some(i=>i.shape));return(0,s.useMemo)(()=>{let i=new Map;if(!t)return i;for(let a of n){let l=t.ruleLine(a,e);l&&i.set(a.name,l)}return i},[t,e,n])}function M(e){let n=e.line;if(!(!n||e.message.endsWith(` \u2014 ${n.text}`)||e.message===b(e)))return e.message}function b(e){let n=e.line;return n?n.record!==void 0?`${n.record} \u2014 ${n.text}`:n.text:e.message}var P={name:{},op:{color:"var(--graview-ink-muted)",fontWeight:500},value:{fontWeight:600,fontVariantNumeric:"tabular-nums"},word:{color:"var(--graview-ink-muted)"},open:{color:"var(--graview-ink-faint)"},close:{color:"var(--graview-ink-faint)"}};function w({parts:e}){return(0,r.jsx)(r.Fragment,{children:e.map((n,t)=>(0,r.jsxs)("span",{children:[n.space?" ":"",(0,r.jsx)("span",{"data-graview-rule-part":n.as,style:P[n.as],children:n.text})]},t))})}function x(e,n){let t=p(e?.tryDefinition(n),n);return t.charAt(0).toUpperCase()+t.slice(1)}function C({line:e,schema:n,brand:t,lead:i=e.record===void 0?"kind":"record",stacked:a=!1,style:l}){let d=e.kind,o=i==="kind"?d?x(n,d):void 0:i==="record"?e.record:void 0,k=i==="kind"&&o?`${o}: ${e.said}`:i==="record"&&o?`${o} \u2014 ${e.said}`:e.said;return(0,r.jsxs)("span",{"data-graview-rule-line":"",style:{overflowWrap:"anywhere",...l},children:[(0,r.jsx)("span",{style:g,children:k}),(0,r.jsxs)("span",{"aria-hidden":"true",children:[i!=="none"&&d?(0,r.jsx)("span",{style:{display:"inline-flex",verticalAlign:"-0.1em",marginRight:"0.4em"},children:(0,r.jsx)(y,{kind:d,...n?{schema:n}:{},...t?{brand:t}:{},size:13})}):null,o?(0,r.jsxs)("span",{"data-graview-rule-head":"",style:{fontWeight:600,marginRight:i==="record"||a?0:"0.6em"},children:[o,i==="record"&&!a?(0,r.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontWeight:400},children:" \u2014 "}):null]}):null,a&&o?(0,r.jsx)("br",{}):null,(0,r.jsx)(w,{parts:e.parts}),e.when&&e.when.length>0?(0,r.jsxs)("span",{"data-graview-rule-when":"",style:{color:"var(--graview-ink-faint)"},children:[", when ",(0,r.jsx)(w,{parts:e.when})]}):null]})]})}function z(e){return e.line?e.label&&e.label.trim().length>0?e.label:void 0:e.label&&e.label!==e.message?e.label:void 0}export{D as a,I as b,M as c,b as d,C as e,z as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as it}from"./chunk.DRIWJRQW.js";import{f as st}from"./chunk.KSEKVHJJ.js";import{a as M,e as q,n as at}from"./chunk.JIWB6VGT.js";import{D as Y,E as G,Lb as ot,Na as rt,O as T,R as V,U as Q,X,Z as k,ea as tt,fa as nt,ia as et}from"./chunk.P7YN4Z3K.js";import"./chunk.AJZBJBMO.js";function _(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let a=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!a}),n=r.as==="open"}return e}function D(t,e){return _(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function ht(t){return D(t,!1)}function xt(t){return D(t,!0)}function lt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function J(t){let e=u=>_(u).map(({part:o,space:s})=>({...o,space:s})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,a=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:a(!1),said:a(!0)}}function bt(t,e=!1){return t.line?lt(t.line,e):t.message}var ut=60,L=t=>({text:t,as:"name"}),d=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},P=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},b=(t,e)=>({text:t,as:"op",said:e}),R={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},K={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},z={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},Rt={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},ct=t=>t.t==="binary"&&t.op in K;function F(t){return t.length>1&&t[1]===t[1].toUpperCase()&&/[A-Z]/.test(t[1])?t:t.charAt(0).toLowerCase()+t.slice(1)}function dt(t){let{schema:e}=t,n=i=>i===null?void 0:e.tryDefinition(i),r=(i,c)=>{let y=n(i)?.edges;return y&&Object.hasOwn(y,c)?y[c]:void 0},a=(i,c)=>{let y=r(i,c)?.to;return Array.isArray(y)&&y.length===1?y[0]:null},u=(i,c)=>{let y=(e.edge(c)?.from??[]).filter(S=>{let $=r(S,c)?.to;return i===null||$==="*"||Array.isArray($)&&$.includes(i)});return y.length===1?y[0]:null},o=(i,c)=>r(i,c)?V(c).toLowerCase():F(X(n(i),c)),s=i=>F(Q(e,i)),p=i=>F(st(e).get(i)?.label??V(i)),x=i=>F(k(n(i),i)),l=(i,c)=>{let y=i===null?void 0:t.formatOf?.(i,c);if(y?.format)return y;let S=t.said?.get(c);return S?{...y,format:S}:y},m=i=>T(e.tryDefinition(i.kind),i),g=(i,c)=>{if(i==null)return N;if(i instanceof M){if(i.nodes.length===0)return N;let v=i.nodes.slice(0,3).map(m),H=i.nodes.length-v.length;return P(H>0?`${v.join(", ")} and ${H} more`:v.length>1?`${v.slice(0,-1).join(", ")} and ${v[v.length-1]}`:v[0])}if(Array.isArray(i))return P(`{${i.map(v=>g(v,c).text).join(", ")}}`,i.map(v=>g(v,c).text).join(" or "));if(typeof i=="object")return P(m(i));if(typeof i=="boolean")return P(i?"yes":"no");let y=c?.format??(c?l(c.kind,c.key):void 0);if(typeof i=="number"){if(y?.format==="money")return P(at(i,{...t.money,...y.unit&&/^[A-Z]{3}$/.test(y.unit)?{currency:y.unit}:{}}));if(y?.format==="percent")return P(`${Math.round(i*100)}%`);let v=i.toLocaleString("en-US",{maximumFractionDigits:2});return P(y?.unit&&!/^[A-Z]{3}$/.test(y.unit)?`${v} ${y.unit}`:v)}if(Y.test(i)||y?.format==="date")return P(G(i.slice(0,10)));let S=c&&c.kind!==null?n(c.kind)?.display?.format?.[c.key]:void 0;if(S)return P(S(i));let $=i.length>ut?`${i.slice(0,ut-1).trimEnd()}\u2026`:i;return P(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test($)?$.replace(/[-_]+/g," "):$)};return{definition:n,relation:r,farOf:a,nearOf:u,fieldName:o,plural:s,noun:x,factName:p,formatOf:l,valueWords:g}}function E(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:O(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=O(t.args[0],e,n),a=t.args[1];if(a.t==="ident")return{kind:r,key:a.name};if(a.t==="lit"&&typeof a.value=="string")return{kind:r,key:a.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return E(t.left,e,n)??E(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return E(t.args[1],e,n)??E(t.args[2],e,n)}function O(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(O(t.object,e,n),t.name);case"where":return O(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?O(t.left,e,n):null;case"call":{let r=a=>{let u=t.args[a];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(O(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(O(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?O(t.args[0],e,n):null}default:return null}}function A(t){return t.t==="binary"?t.op==="||"?B(t)?4:1:t.op==="&&"?2:t.op in K||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var W=t=>t.t==="lit",h=(t,e)=>t.t==="call"&&t.fn===e;function C(t,e){return t.t==="binary"&&t.op===e?[...C(t.left,e),...C(t.right,e)]:[t]}function B(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...C(t,"||"));let n,r=[];for(let a of e){if(a.t!=="binary"||a.op!=="=="||!W(a.right)||typeof a.right.value!="string"||n&&JSON.stringify(ft(n))!==JSON.stringify(ft(a.left)))return;n=a.left,r.push(a.right)}return n?{subject:n,values:r}:void 0}var ft=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let a=(u,o,s=e)=>A(u)<o?[R,...f(u,s,n),w]:f(u,s,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[L(n.fieldName(e,t.name))];case"member":{let u=h(t.object,"first")&&t.object.args[0]&&h(t.object.args[0],"all"),o=O(t.object,e,n);if(u&&o)return e!==null&&n.fieldName(e,t.name)===n.fieldName(o,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[L(`${n.noun(o)}'s ${n.fieldName(o,t.name)}`)]:[L(n.fieldName(o,t.name))];let s=f(t.object,e,n),p=s[s.length-1];return s.length===1&&p?.as==="name"?[L(`${p.text}'s ${n.fieldName(o,t.name)}`)]:[...s,d("'s"),L(n.fieldName(o,t.name))]}case"unary":return t.op==="-"?[b("\u2212","minus"),...a(t.operand,7)]:I(t.operand,e,n);case"where":{let u=O(t.set,e,n),o=f(t.filter,u,n),s=o.every(p=>p.as==="name"||p.as==="word"&&p.text==="not");return[...a(t.set,4),...s?[]:[d("with")],...A(t.filter)<=2?[R,...o,w]:o]}case"binary":return pt(t,e,n);case"call":return wt(t,e,n)}}function I(t,e,n){return ct(t)?pt({...t,op:z[t.op]},e,n):h(t,"present")||h(t,"exists")?[...f(t.args[0],e,n),b("=","is"),N]:t.t==="ident"?[d("not"),L(n.fieldName(e,t.name))]:[d("not"),R,...f(t,e,n),w]}function pt(t,e,n){let r=(o,s)=>A(o)<s?[R,...f(o,e,n),w]:f(o,e,n);if(t.op==="&&"||t.op==="||"){let o=B(t);if(o){let p=E(o.subject,e,n);return[...f(o.subject,e,n),b("\u2208","is one of"),n.valueWords(o.values.map(x=>x.value),p)]}let s=t.op==="&&"?2:1;return[...r(t.left,s),d(t.op==="&&"?"and":"or"),...r(t.right,s+.5)]}if(t.op in K){if(W(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):I(t.left,e,n);let[o,s]=K[t.op],p=E(t.left,e,n),x=E(t.right,e,n);return[...j(t.left,e,n,x),b(o,s),...j(t.right,e,n,p)]}if(t.op==="in")return[...r(t.left,5),b("\u2208","is one of"),...j(t.right,e,n,E(t.left,e,n))];let a=Rt[t.op];if(a){let o=A(t);return[...r(t.left,o),b(a[0],a[1]),...r(t.right,o+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),d(u[t.op]??t.op),...r(t.right,5)]}function j(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):A(t)<5?[R,...f(t,e,n),w]:f(t,e,n)}function wt(t,e,n){let r=o=>t.args[o],a=o=>{let s=t.args[o];return s?.t==="lit"&&typeof s.value=="string"?s.value:void 0},u=o=>{let s=r(o);return A(s)<9&&s.t!=="where"?[R,...f(s,e,n),w]:f(s,e,n)};switch(t.fn){case"out":{let o=a(t.args.length-1)??"",s=L(V(o).toLowerCase());return t.args.length===2?[s,d("of"),...u(0)]:[s]}case"in":{let o=a(t.args.length-1)??"",s=t.args.length===2?n.nearOf(O(r(0),e,n),o):n.nearOf(e,o),p=L(s?n.plural(s):V(o).toLowerCase());return t.args.length===2?[p,d("of"),...u(0)]:[p]}case"all":{let o=a(0);return[L(o?n.plural(o):"everything")]}case"fact":{let o=a(0);return[L(o?n.factName(o):"fact")]}case"count":return[d("number of"),...u(0)];case"exists":return[...u(0),b("\u2260","is not"),N];case"present":return[...f(r(0),e,n),b("\u2260","is not"),N];case"some":case"every":{let o=O(r(0),e,n),s=r(1);return[...t.fn==="some"?[d("some")]:[],...u(0),d(t.fn==="some"?"with":"all with"),...A(s)<=2?[R,...f(s,o,n),w]:f(s,o,n)]}case"sum":case"min":case"max":{let o=O(r(0),e,n),s=r(1),p=s.t==="lit"&&typeof s.value=="string"?[L(n.fieldName(o,s.value))]:A(s)<9?[R,...f(s,o,n),w]:f(s,o,n);return[d(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...p,d("of"),...u(0)]}case"first":{let o=r(0);if(h(o,"all")){let s=o.args[0]?.value;if(typeof s=="string")return[L(`the ${n.noun(s)}`)]}return[d("first of"),...u(0)]}case"sort":return[...u(0),d("by"),...f(r(1),O(r(0),e,n),n)];case"len":return[d("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"contains":case"startsWith":return[...f(r(0),e,n),d(t.fn==="contains"?"contains":"starts with"),...j(r(1),e,n,E(r(0),e,n))];case"today":return[P("today")];case"now":return[P("now")];case"date":return W(r(0))&&typeof r(0).value=="string"?[P(G(String(r(0).value)))]:f(r(0),e,n);case"days":case"hours":{let o=t.fn,[s,p]=[r(0),r(1)];return h(p,"today")||h(p,"now")?[d(`${o} since`),...f(s,e,n)]:h(s,"today")||h(s,"now")?[d(`${o} until`),...f(p,e,n)]:[d(`${o} from`),...f(s,e,n),d("to"),...f(p,e,n)]}case"if":return[R,...f(r(1),e,n),d("if"),...f(r(0),e,n),d(","),d("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((o,s)=>s===0?f(o,e,n):[d(","),d("else"),...f(o,e,n)]);default:return[d(t.fn),R,...t.args.flatMap((o,s)=>s===0?f(o,e,n):[d(","),...f(o,e,n)]),w]}}function U(t,e){let n=dt(e),r=t.over==="graph"?null:t.over;return J({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function Z(t,e,n){let r=dt(e),a=t.over==="graph"?null:t.over,u=n.subject,o=l=>{try{return q(l,{...n,budget:2e3})}catch{return}},s=(l,m)=>{let g=j(l,a,r,m);if(l.t==="lit"||l.t==="list"||h(l,"today")||h(l,"now")||h(l,"date"))return g;let i=o(l);if(i===void 0)return g;let c=E(l,a,r),y=r.valueWords(i,c?{...c,format:r.formatOf(c.kind,c.key)??(m?r.formatOf(m.kind,m.key):void 0)}:m);return i instanceof M?[...g,d(":"),y]:[...g,y]},p=l=>{if(l.t==="binary"&&l.op==="&&"){let m=[];m.push(...C(l,"&&"));let g=m.filter(i=>o(i)!==!0);return(g.length>0?g:m).flatMap((i,c)=>[...c>0?[d("and")]:[],...A(i)<=2?[R,...p(i),w]:p(i)])}if(l.t==="binary"&&l.op==="||"){let m=B(l);if(m){let i=E(m.subject,a,r);return[...s(m.subject),b("\u2209","is not one of"),r.valueWords(m.values.map(c=>c.value),i)]}let g=[];return g.push(...C(l,"||")),g.flatMap((i,c)=>[...c>0?[d("and")]:[],...A(i)<=2?[R,...p(i),w]:p(i)])}if(l.t==="binary"&&l.op in K){if(W(l.right)&&typeof l.right.value=="boolean"&&(l.op==="=="||l.op==="!="))return l.op==="=="===l.right.value?I(l.left,a,r):f(l.left,a,r);let m=z[l.op],[g,i]=K[m],c=E(l.left,a,r),y=E(l.right,a,r);if(W(l.right)&&l.right.value===null)return[...m==="=="?j(l.left,a,r,y):s(l.left,y),b(g,i),N];let S=m==="=="&&(W(l.right)||W(l.left));return[...S?j(l.left,a,r,y):s(l.left,y),b(g,i),...S?j(l.right,a,r,c):s(l.right,c)]}if(l.t==="binary"&&l.op==="in")return[...s(l.left),b("\u2209","is not one of"),...j(l.right,a,r,E(l.left,a,r))];if(l.t==="unary"&&l.op==="!"){let m=l.operand;return ct(m)?p({...m,op:z[m.op]}):h(m,"present")||h(m,"exists")?[...s(m.args[0]),b("\u2260","is not"),N]:m.t==="ident"?f(m,a,r):[d("not"),R,...I(m,a,r),w]}if(h(l,"present")||h(l,"exists"))return[...f(l.args[0],a,r),b("=","is"),N];if(h(l,"some"))return[...f(l,a,r).slice(1),b("=","is"),N];if(h(l,"every")&&l.args.length===2){let m=o(l.args[0]);if(m instanceof M){let g=m.nodes.filter(i=>{try{return q(l.args[1],{...n,subject:i,budget:2e3})!==!0}catch{return!0}});return[...f(l,a,r),d(","),d("not"),r.valueWords(new M(g))]}}return l.t==="ident"?[d("not"),L(r.fieldName(a,l.name))]:[d("not"),R,...f(l,a,r),w]},x;try{x=p(t.require)}catch{x=[d("not"),R,...f(t.require,a,r),w]}return J({...a===null?{}:{kind:a},parts:x,...u?{record:T(e.schema.tryDefinition(u.kind),u)}:{}})}function mt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function vt(t){return(e,n)=>{let r=t[e]?.fields?.[n],a=r?.format??(r?.type==="date"?"date":void 0);return a||r?.unit?{...a?{format:a}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function gt(t,e){return{schema:e,said:mt(t.says),...t.declared?{formatOf:vt(t.declared)}:{},...t.money?{money:t.money}:{}}}function qt(t,e){return t.shape?U(t.shape,gt(t.shape,e)):void 0}var yt=new WeakMap;function Ot(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let a=Lt(r),u=n.get(a.invariant)?.shape;if(!u||a.status&&a.status!=="violated")return a;let o=a.subjectId?t.graph.getNode(a.subjectId):void 0;if(u.over!=="graph"&&!o)return a;let s=u.kinds;s||(s=yt.get(t.schema),s||yt.set(t.schema,s=it(t.schema)));try{let p=u.today?.()??t.today?.()??new Date().toISOString().slice(0,10),x=Z(u,gt(u,t.schema),{graph:t.graph,subject:o??null,kinds:s,today:p});return{...a,line:x,...u.says?{}:{message:`${a.message} \u2014 ${x.text}`}}}catch{return a}})}function Et(){et((t,e,n)=>Ot({graph:t,schema:t.schema,allInvariants:()=>e},n)),rt(Pt)}function Pt(t,e,n,r){let a=e.graph,u=nt.from(t.schema,a.snapshot(),{validate:!1});for(let x of n?[...r].reverse().map(tt):r)try{u.applyPrimitives([x],{restoring:!0})}catch{}let o=x=>t.violations(void 0,x),s=o(n?u:a),p=o(n?a:u);return{...ot(t.allInvariants(),s,p),violationsAfter:p}}function Lt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}Et();export{Z as brokenLineOf,Et as judgeWithLines,Pt as judgedForASeat,bt as problemWords,qt as ruleLine,U as ruleLineOf,lt as ruleLineWords,_ as ruleSpacing,xt as ruleSpoken,ht as ruleText,Lt as unlined,Ot as withLines};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as z}from"./chunk.6R4EI47C.js";import{D as N,Q as O,c as B,ca as T,da as m,fa as b,pa as V,ra as $}from"./chunk.SVL6I37U.js";import{Aa as R,Ab as P,B as A,Bb as j,hb as F,xa as D}from"./chunk.P7YN4Z3K.js";import{a as w,b as K}from"./chunk.MRK6QJV5.js";import{b as y}from"./chunk.AJZBJBMO.js";function G(n,e){let t=n.graph.getNode(e);if(!t)return[];let r=t.kind,i=n.schema.tryDefinition(r);if(!i)return[];let s=new Map;for(let d of n.allMutations()){let o=d.subject;if(!o||!(o.kinds==="*"||o.kinds.includes(r)))continue;let c=d.input.shape??{};for(let u of F(d,i)){let p=u in c,h=[];for(let f of Object.keys(c)){if(f===o.arg||f===u||L(c[f]))continue;let x=D(d.input).find(v=>v.name===f);h.push({name:f,...x?{kinds:x.kinds}:{},...x?{candidates:x.kinds.includes("*")?n.graph.allNodes().map(v=>v.id):x.kinds.flatMap(v=>n.graph.nodesOfKind(v).map(H=>H.id))}:{},shape:R(d.input,f)})}let E={field:u,mutation:d.name,title:d.title??d.name,shape:p?R(d.input,u):{type:"unknown"},takesValue:p,alternatives:[],open:h,call:f=>({name:d.name,args:p?{[o.arg]:e,[u]:f}:{[o.arg]:e}})};s.set(u,[...s.get(u)??[],E])}}return[...s.values()].map(d=>{let o=[...d.filter(u=>u.takesValue),...d.filter(u=>!u.takesValue)],[a,...c]=o;return{...a,alternatives:c}})}function L(n){let e=A(n)?.type;return e==="optional"||e==="default"||e==="nullable"}var k=y(w(),1);function J(n){let{store:e,principal:t}=m(),r=b(),i=(0,k.useMemo)(()=>n===null?[]:G(e,n),[e,n,r]),s=(0,k.useCallback)((d,o,a={})=>{let c=d.call(o);e.apply({name:c.name,args:{...c.args,...a}},{author:t})},[e,t]);return{fields:i,commit:s}}var I=y(w(),1);var g=y(K(),1);function Q(n){let e=n?.hint;return typeof e=="string"&&e.length>0?e:void 0}function X(n){if(n instanceof Error&&n.message)return n.message;let e=String(n);return e==="[object Object]"?"The view threw without a message.":e}var C=class extends I.Component{static contextType=V;state={};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`[graview] the ${this.props.view??"view"} of ${this.props.kind} threw while rendering`,e,t.componentStack),this.context?.(e,{module:"@graview/react"})}render(){let{error:e}=this.state;if(!e)return this.props.children;let t=Q(e);return(0,g.jsxs)("div",{role:"alert","data-graview-view-error":this.props.kind,style:{display:"flex",flexDirection:"column",gap:"0.375rem",padding:"var(--graview-pad, 12px)",height:"100%",overflow:"auto",boxSizing:"border-box",borderRadius:"var(--graview-radius-sm, 6px)",background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)",font:"var(--graview-font-body, 13px/1.45 system-ui)",fontSize:"0.875rem",lineHeight:1.45},children:[(0,g.jsx)("strong",{style:{color:"var(--graview-warn, #b4462a)"},children:this.props.view?`${this.props.view} could not draw`:"This view could not draw"}),(0,g.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:this.props.kind}),(0,g.jsx)("span",{children:X(e)}),t?(0,g.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:t}):null]})}};var W=y(w(),1);function Y(){return m().activity}function Z(n){let{noteAttention:e,noteSeat:t}=m();(0,W.useEffect)(()=>n.onCall(r=>{let i=n.author??{kind:"agent"},s=r.args?.said;r.phase==="ok"&&typeof s=="string"&&s.length>0&&t({type:"said",author:i,say:s}),!(r.phase!=="ok"||!r.reads||r.reads.length===0)&&e({reads:r.reads,author:i,intent:`read ${r.name}`})}),[n,e,t])}var l=y(w(),1);function ee(n,{units:e,target:t=0,legibleAt:r=260}){let[i,s]=(0,l.useState)(e);(0,l.useEffect)(()=>{let o=n.current;if(o===null||typeof ResizeObserver>"u")return;let a=new ResizeObserver(([c])=>{let u=c?.contentRect.width??0;u>0&&s(u)});return a.observe(o),()=>a.disconnect()},[n]);let d=i/e;return{scale:d,width:i,touchable:d*t>=24,legible:i>=r}}function ne(n="--graview-font-body",e="sans-serif"){let t=(0,l.useRef)(void 0),r=(0,l.useMemo)(()=>{if(typeof getComputedStyle!="function"||typeof document>"u")return e;let i=getComputedStyle(document.documentElement).getPropertyValue(n).trim();return i.length>0?i:e},[n,e]);return(0,l.useMemo)(()=>{t.current===void 0&&(t.current=typeof document>"u"?null:document.createElement("canvas").getContext("2d")??null);let i=t.current;return i===null?O:(s,d)=>{i.font=`${d}px ${r}`;let o=i.measureText(s).width;return o>0?o:O(s,d)}},[r])}function xe(n,e,t){let[r,i]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{(document.fonts?.ready??Promise.resolve()).then(()=>i(!0))},[]),(0,l.useMemo)(()=>{let s=n.current,d=r&&s?document.createElement("canvas").getContext("2d"):null;if(d)return d.font=`600 ${.8125*e}px ${getComputedStyle(s).fontFamily}`,d.measureText("M").width>0?o=>d.measureText(o).width:void 0},[r,e,t])}var te=(0,l.createContext)(void 0);function oe(){return(0,l.useContext)(te)}var S=y(w(),1);function re(){let n=$();return(0,S.useMemo)(()=>[...new Set(n.flatMap(e=>e.nodeIds))],[n])}function ie(){let n=U(),e=T();return(0,S.useMemo)(()=>{if(!e)return n;let t=e.matched;return t.length===0&&n.length===0?[q]:[...new Set([...n,...t])]},[e,n])}function U(){let{store:n,selection:e}=m(),t=b();return(0,S.useMemo)(()=>{if(e.length===0)return[];let r=new Set(e),i=new Set(r);for(let s of n.graph.allEdges())r.has(s.from)&&i.add(s.to),r.has(s.to)&&i.add(s.from);for(let s of n.violations())if(s.subjectId!==void 0&&r.has(s.subjectId))for(let d of s.nodeIds)i.add(d);return[...i]},[n,e,t])}var q="search:nothing";var _=y(w(),1);function ae(){let{brand:n}=m(),e=n?.kit;return(0,_.useMemo)(()=>P(e),[e])}function se(n,e){let t=j(n,e),r={...t.color!==void 0?{color:t.color}:{},...t.pattern!==void 0?{pattern:t.pattern}:{},...t.width!==void 0?{width:t.width}:{},...t.cap!==void 0?{cap:t.cap}:{},...t.opacity!==void 0?{opacity:t.opacity}:{}};return{connector:t,style:z(e,{[e]:r})}}var M=3;function de(n){let e=B(n),t=e.focusId;if(!t)return null;if(e.within?.view){let[i]=N(t);if(i)return{at:`screen:${i}`,audience:!0}}return{at:t,audience:!1}}function Ae(n,e,t){let r=[],i=new Map,s=new Map,d=0;for(let o of n){let a=de(o.stop),c=a?e(a.at):null;if(!a||!c){o.name&&r.push({kind:"edge",presence:o,point:{x:t-8,y:40+d++*28}});continue}if(!o.name){let f=s.get(a.at);s.set(a.at,{n:(f?.n??0)+1,box:c});continue}let u=i.get(a.at)??[];if(u.push(o),i.set(a.at,u),u.length>M)continue;let p=c,h=u.length-1,E=a.audience?{x:p.x+p.width*.5+(h-1)*26,y:p.y+Math.min(p.height,24)}:{x:p.x+p.width*.5-26-h*22,y:p.y+p.height-4};r.push({kind:"person",presence:o,point:E,at:a.at,index:h,of:u.length,audience:a.audience})}for(let[o,a]of i){if(a.length<=M)continue;let c=e(o);c&&r.push({kind:"count",at:o,point:{x:c.x+c.width*.5+2*26+18,y:c.y+c.height-4},n:a.length-M})}for(let[o,{n:a,box:c}]of s)r.push({kind:"count",at:o,point:{x:c.x+c.width*.5+40,y:c.y+c.height-4},n:a});for(let o of n)if(o.name){if(o.robot?.at&&o.robot.mode!=="docked"){let a=e(o.robot.at);a&&r.push({kind:"robot",presence:o,point:{x:a.x+a.width/2+22,y:a.y+a.height-4},mode:o.robot.mode})}if(o.over){let a=e(o.over);a&&r.push({kind:"over",presence:o,box:a})}}return r}export{Y as a,Z as b,ee as c,ne as d,xe as e,te as f,oe as g,J as h,re as i,ie as j,U as k,ae as l,se as m,Ae as n,C as o};
|