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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as T,f as I,g as L,h as D,i as E}from"./chunk.A4SJ7EEY.js";import{a as U}from"./chunk.DEZEXD24.js";import{c as w,e as _}from"./chunk.YZZGD5OY.js";import{a as A,b as N,c as C,e as R,l as M,m,n as V}from"./chunk.DSZ3I557.js";import{F as O,J as G,N as k,S as F}from"./chunk.RAE4M3KQ.js";var S=e=>{try{return e()}catch{return null}},X=e=>typeof e=="string"&&I.includes(e);function q(e){if(e!==void 0)return X(e)?e:e&&typeof e=="object"&&typeof e.expr=="string"?{expr:S(()=>w(e.expr))}:"neutral"}var Q=4;function ee(e){let n=typeof e.list=="string"?S(()=>w(e.list)):null,a=e.sort,r=typeof a=="string"?a:a&&typeof a=="object"&&typeof a.by=="string"?a.by:void 0,t=a&&typeof a=="object"?a.direction:void 0,o=n,i;if(n&&r!==void 0)if(t==="choices")i=r;else{let f=S(()=>w(r));o=f?{t:"call",fn:"sort",args:[n,f,{t:"lit",value:t==="desc"?"desc":"asc",at:0}],at:0}:null}let l=typeof e.limit=="number"&&Number.isInteger(e.limit)&&e.limit>=1?Math.min(e.limit,E):void 0,s=e.group,d=typeof s=="string"?s:s&&typeof s=="object"&&typeof s.by=="string"?s.by:void 0,y=s&&typeof s=="object"&&s.headings&&typeof s.headings=="object"?s.headings:{};return{t:"list",source:o,...i?{choiceOrder:i}:{},...l?{limit:l}:{},...d?{group:{by:d,headings:Object.fromEntries(Object.entries(y).filter(f=>typeof f[1]=="string"))}}:{},...typeof e.empty=="string"?{empty:e.empty}:{},as:e.as==="card"?"card":"row"}}function W(e,n=1,a=""){if(!Array.isArray(e)||n>Q)return[];let r={};return e.flatMap(t=>{if(!t||typeof t!="object"||Array.isArray(t))return[];let o=t,i=p=>typeof p=="string"?S(()=>_(p)):null,l=p=>typeof p=="string"?S(()=>w(p)):null,s=q(o.tone),d=typeof o.label=="string"?o.label:void 0,y=p=>Object.hasOwn(o,p),f=typeof o.currency=="string"&&/^[A-Z]{3}$/.test(o.currency)?o.currency:void 0,u=y("list")?"list":y("headline")?"headline":typeof o.figure=="string"?"number":ne.find(y);if(!u)return[];let x=r[u]=(r[u]??0)+1,j=o.key,B=typeof j=="string"&&j?j:`${a}${u}.${x}`;return[{...(()=>{switch(u){case"list":return ee(o);case"number":{let p=D.includes(o.as)?o.as:void 0;return{t:u,value:l(o.figure),...p?{as:p}:{},...f?{currency:f}:{},...d?{label:i(d)}:{}}}case"headline":case"title":return{t:u,parts:i(o[u])};case"text":case"badge":return{t:u,parts:i(o[u]),...s?{tone:s}:{}};case"field":{let p=L.includes(o.as)?o.as:void 0;return{t:u,field:String(o.field),...p?{as:p}:{},...f?{currency:f}:{},...d?{label:d}:{}}}case"progress":{let p=o.progress??{};return{t:u,value:l(p.value),max:l(p.max),...d?{label:i(d)}:{}}}case"group":return{t:u,blocks:W(o.group,n+1,`${B}.`),direction:o.direction==="row"?"row":"column"};case"when":return{t:u,when:l(o.when),show:W(o.show,n+1,`${B}.`)};default:return{t:u}}})(),key:B}]})}var ne=["title","text","badge","field","progress","group","when","divider","figure"],h="\u2014",re=500;function g(e,n){if(!e)return{ok:!1,problem:"an expression that does not parse"};try{return{ok:!0,value:R(e,{graph:n.graph??M,subject:n.node,kinds:n.kinds,today:n.today,budget:n.budget??re})}}catch(a){return{ok:!1,problem:a instanceof Error?a.message:String(a)}}}function b(e,n){if(!e)return{text:h,problem:"a template that does not parse"};let a,r=e.map(t=>{if(t.text!==void 0)return t.text;let o=g(t.expr??null,n);return o.ok?m(o.value,t.format,n.today,t.formatArgs,n.money):(a??=`{${t.source??""}}: ${o.problem}`,h)}).join("");return a?{text:r,problem:a}:{text:r}}function $(e,n){if(e===void 0)return;if(typeof e=="string")return e;let a=g(e.expr,n);return a.ok&&X(a.value)?a.value:"neutral"}function te(e){if(typeof e=="string")try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"?n.href:void 0}catch{return}}function oe(e,n,a,r,t){if(n==null||n==="")return h;if(typeof n=="boolean")return n?"yes":"no";if(r)return m(n,r,a.today,[],t?{...a.money,currency:t}:a.money);let o=a.fields[e];return a.definition?.display?.format?.[e]?k(a.definition,e,n):o?.type==="date"?m(n,"date",a.today):o?.type==="enum"&&typeof n=="string"?k(a.definition,e,n):typeof n=="number"?n.toLocaleString("en-US"):Array.isArray(n)?n.map(i=>String(i)).join(", "):typeof n=="object"?h:String(n)}function ae(e,n,a,r,t){return typeof e!="number"?String(e):n==="money"?V(e,a?{...t,currency:a}:t):n==="percent"?m(e,n,r):e.toLocaleString("en-US",{maximumFractionDigits:2})}var c=(e,n)=>n?{...e,problem:n}:e;function se(e,n,a){switch(e.t){case"title":{let r=b(e.parts,n);return c({t:"title",text:r.text},r.problem)}case"text":{let r=b(e.parts,n),t=$(e.tone,n);return c({t:"text",text:r.text,...t?{tone:t}:{}},r.problem)}case"badge":{let r=b(e.parts,n);return c({t:"badge",text:r.text,tone:$(e.tone,n)??"neutral"},r.problem)}case"field":{let r=e.label??F(n.definition,e.field);if(!n.node)return{t:"field",field:e.field,label:r,text:h,problem:`"${e.field}" names a field, and these blocks are about no one record`};let t=n.kinds.get(n.node.kind)?.computed?.has(e.field),o,i;if(t){let d=g({t:"ident",name:e.field,at:0},n);d.ok?o=d.value!==null&&typeof d.value=="object"?m(d.value,void 0,n.today):d.value:i=d.problem}else o=Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0;let l=n.fields[e.field]?.type==="url"&&e.as===void 0?te(o):void 0,s=S(()=>oe(e.field,o,n,e.as,e.currency))??h;return c({t:"field",field:e.field,label:r,text:s,...l?{href:l}:{}},i)}case"progress":{let r=g(e.value,n),t=g(e.max,n),o=e.label?b(e.label,n):{text:"Progress"},i=o.text,l=r.ok?t.ok?o.problem:t.problem:r.problem;return r.ok&&t.ok&&typeof r.value=="number"&&typeof t.value=="number"&&Number.isFinite(r.value)&&Number.isFinite(t.value)&&t.value>0?c({t:"progress",label:i,value:r.value,max:t.value,text:`${m(r.value,void 0,n.today)} of ${m(t.value,void 0,n.today)}`},l):c({t:"progress",label:i,text:h},l)}case"group":return{t:"group",direction:e.direction,blocks:H(e.blocks,n)};case"when":{let r=g(e.when,n),t=r.ok&&r.value===!0;return c({t:"when",shown:t,blocks:t?H(e.show,n):[]},r.ok?void 0:r.problem)}case"divider":return{t:"divider"};case"figure":return{t:"figure"};case"headline":{let r=b(e.parts,n),t=Math.min(6,Math.max(1,(a?n.firstHeading:void 0)??n.heading??3));return c({t:"headline",level:t,text:r.text},r.problem)}case"number":{let r=g(e.value,n),t=!r.ok||r.value===null||typeof r.value=="object"?h:ae(r.value,e.as,e.currency,n.today,n.money),o=e.label?b(e.label,n):void 0;return c({t:"number",text:t,...o?{label:o.text}:{}},r.ok?o?.problem:r.problem)}case"list":return de(e,n)}}function H(e,n){let a=e.findIndex(r=>r.t==="headline");return e.map((r,t)=>({...se(r,n,t===a),key:r.key}))}var ie=new Set(["every","some","sum","min","max","sort"]);function je(e,n){let a=new Set,r=new Set,t=s=>{if(s)switch(s.t){case"ident":a.add(s.name);return;case"list":s.items.forEach(t);return;case"member":return t(s.object);case"unary":return t(s.operand);case"binary":return t(s.left),t(s.right);case"where":return t(s.set);case"call":s.args.forEach((d,y)=>{y===1&&ie.has(s.fn)||t(d)});return;default:return}},o=s=>{for(let d of s??[])t(d.expr)},i=(s,d)=>{s.forEach((y,f)=>{let u=d[f];if(u)switch(y.t){case"field":a.add(y.field);return;case"title":case"text":case"badge":case"headline":o(y.parts);return;case"number":t(y.value),o(y.label);return;case"progress":t(y.value),t(y.max);return;case"group":u.t==="group"&&i(y.blocks,u.blocks);return;case"when":u.t==="when"&&u.shown&&i(y.show,u.blocks);return;case"list":if(u.t==="list")for(let x of u.members)r.add(x.id);return;default:return}})};i(e,n);let l=n[0];return{fields:a,records:r,...e[0]?.t==="title"&&l?.t==="title"?{title:l.text}:{}}}function de(e,n){let a=Math.min(6,(n.heading??3)+1),r=g(e.source,n);if(!r.ok)return{t:"list",as:e.as,failed:!0,members:[],headingLevel:a,more:0,problem:r.problem};let t=r.value,o=t instanceof A?t.nodes:t!==null&&typeof t=="object"&&!Array.isArray(t)?[t]:[];e.choiceOrder&&n.schema&&(o=le(o,e.choiceOrder,n.schema));let i=o.length;o=o.slice(0,e.limit??E);let l=e.limit===void 0?i-o.length:0;return{t:"list",as:e.as,failed:!1,members:o,...e.group&&n.schema&&o.length>0?{groups:ue(o,e.group,n.schema)}:{},headingLevel:a,...o.length===0&&e.empty?{empty:e.empty}:{},more:l}}function J(e,n,a){let r=e.tryDefinition(n)?.fields?.shape,t=r&&Object.hasOwn(r,a)?T(r[a]):void 0;return t?.type==="enum"?t.options??[]:[]}var P=(e,n)=>Object.hasOwn(e,n)?e[n]:void 0;function le(e,n,a){let r=t=>{let o=J(a,t.kind,n).indexOf(String(P(t,n)));return o<0?Number.MAX_SAFE_INTEGER:o};return e.map((t,o)=>({node:t,i:o,rank:r(t)})).sort((t,o)=>t.rank-o.rank||t.i-o.i).map(t=>t.node)}function ue(e,n,a){let r=[];for(let i of e)for(let l of J(a,i.kind,n.by))r.includes(l)||r.push(l);let t=[];for(let i of r){let l=e.filter(d=>P(d,n.by)===i);if(l.length===0)continue;let s=a.tryDefinition(l[0].kind);t.push({value:i,heading:n.headings[i]??O(k(s,n.by,i)),members:l})}let o=e.filter(i=>!r.includes(String(P(i,n.by))));return o.length>0&&t.push({value:null,members:o}),t}function K(e){return e.t==="list"||e.t==="headline"||e.t==="number"?!0:e.t==="group"?e.blocks.some(K):e.t==="when"?e.show.some(K):!1}function z(e,n){let a=e.tryDefinition(n)?.fields?.shape??{},r={};for(let[t,o]of Object.entries(a)){let i=T(o);i&&(r[t]=i)}return r}var Y=new WeakMap;function v(e){let n=Y.get(e);return n||Y.set(e,n=U(e)),n}function ye(e,n,a,r={}){let t=v(e),o={},i={},l=s=>{if(s instanceof A)return s.nodes.map(d=>l(d));if(Array.isArray(s))return s.map(d=>l(d));if(s!==null&&typeof s=="object"){let d=s;return{id:d.id,kind:d.kind,label:G(e.tryDefinition(d.kind),d)}}return s};for(let[s,d]of t.get(a?a.kind:N)?.computed??[])try{o[s]=l(R(d,{graph:n,subject:a,kinds:t,...r.today?{today:r.today}:{},...r.budget?{budget:r.budget}:{}}))}catch(y){if(!(y instanceof C))throw y;i[s]=y.sentence}return{values:o,refused:i}}function ve(e,n,a){let{values:r}=ye(e,n,a);if(Object.keys(r).length===0)return a;let t=o=>Array.isArray(o)?o.map(t):o!==null&&typeof o=="object"?o.label:o;return{...a,...Object.fromEntries(Object.entries(r).map(([o,i])=>[o,t(i)]))}}var pe=500,fe=2e4,Z=new WeakMap;function ce(e,n){let a=Z.get(e);a||Z.set(e,a=new Map);let r=a.get(n);return r||a.set(n,r=z(e,n)),r}function Ne(e,n,a,r={}){if(n&&typeof e.seenBy!="function")throw new TypeError("blockContextFor: a seat is read from a store (its `seenBy`); a bare { graph, schema } is read as it is handed, with no principal");let t=n?e.seenBy(n):e,o=n&&a?t.graph.getNode(a.id)??null:a,i=t.schema,l=o&&i.tryDefinition(o.kind),s=!o||(r.slot??"page")==="page",{money:d,firstHeading:y}=r;return{node:o,graph:t.graph,schema:i,kinds:v(i),fields:o?ce(i,o.kind):{},definition:l||void 0,today:r.today??t.today?.()??new Date().toISOString().slice(0,10),money:d,heading:r.heading??(s?2:3),firstHeading:y,budget:r.budget??(s?fe:pe)}}export{W as a,H as b,je as c,K as d,ye as e,ve as f,Ne as g};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as m}from"./chunk.F2KDFGHR.js";import{j as f}from"./chunk.ZRVDIVYY.js";import{Ba as T,ca as c,ea as b,ua as L,xa as R}from"./chunk.2WFEFZAW.js";import{M as A,X as I,Y as k,ka as x}from"./chunk.RAE4M3KQ.js";import{a as W,b as C}from"./chunk.MRK6QJV5.js";import{b as w}from"./chunk.AJZBJBMO.js";var u=w(W(),1);var e=w(C(),1);function z(i=4){let{store:n}=c(),p=b();return(0,u.useMemo)(()=>[...n.batches()].reverse().slice(0,i).map(a=>({intent:a.intent,author:a.author.kind,...a.author.id?{authorId:a.author.id}:{},by:a.author,...a.ops[0]?.via?{via:a.ops[0].via}:{},touched:[...new Set(a.ops.filter(o=>!x(o)).flatMap(o=>o.writes))],batch:a.id,...a.ops.every(x)?{withheld:!0}:{}})),[n,p,i])}function H({batch:i}){let{store:n,principal:p,noteSeat:a}=c(),o=b(),[h,y]=(0,u.useState)(null),l=(0,u.useMemo)(()=>n.canUndo(i),[n,i,o]);if(!l.ok&&l.ops.length===0)return null;let s=!l.ok,g=s?l.includeBatches:[];return(0,e.jsxs)("span",{style:{marginLeft:"auto",flex:"0 0 auto",display:"grid",justifyItems:"end",gap:2},children:[(0,e.jsx)("button",{type:"button","data-testid":"undo-turn",title:s?`${l.message} \u2014 undo those too`:"Take this back, keeping everything since",onClick:()=>{y(null);try{let d=n.log.all().find(t=>t.batch===i&&t.author.kind==="agent");n.undo(s?[i,...g]:i,{author:p}),d&&a({type:"home",author:d.author})}catch(d){y(d instanceof Error?d.message:String(d))}},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem",...s?{borderColor:"var(--graview-warn)",color:"var(--graview-warn)"}:{}},children:s?`undo +${g.length}`:"undo"}),h?(0,e.jsx)("span",{"data-testid":"undo-refused",role:"alert",style:{fontSize:"0.75rem",lineHeight:1.4,color:"var(--graview-warn)",maxWidth:260,textAlign:"right"},children:h}):null]})}function O(){let i=()=>{let n=new URL(window.location.href);return n.searchParams.set("fresh","1"),n.toString()};return(0,e.jsx)("a",{href:"#fresh","data-testid":"start-fresh",title:"Forget every edit made in this browser and return to the example",onClick:n=>{n.preventDefault(),window.location.assign(i())},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",textDecoration:"underline",textDecorationColor:"var(--graview-edge-bright)",textUnderlineOffset:3},children:"Start fresh"})}function N({calls:i,seat:n,remembers:p=!1}){let a=z(),{store:o,principal:h,seats:y,people:l}=c(),s=i.some(t=>t.phase==="running"),g=R("activity"),d=g.open;return n===void 0&&i.length===0&&a.length===0&&!p?null:(0,e.jsxs)("div",{style:{position:"relative"},children:[(0,e.jsxs)("button",{type:"button","data-testid":"activity-button",...g.trigger,onClick:g.toggle,title:s?"An agent is working":"What has happened",style:{display:"inline-flex",alignItems:"center",gap:6,minHeight:30,padding:"0 8px",borderRadius:8,border:"1px solid transparent",background:"transparent",boxShadow:"none",fontSize:"0.875rem",whiteSpace:"nowrap",color:s?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[s?(0,e.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:999,background:"var(--graview-accent)"}}):null,a.length>0?a.length:"",(0,e.jsxs)("svg",{className:"graview-activity-mark",width:"15",height:"15",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",style:{display:"var(--graview-activity-mark, none)"},children:[(0,e.jsx)("circle",{cx:"8",cy:"8",r:"5.75",fill:"none",stroke:"currentColor",strokeWidth:"1.4"}),(0,e.jsx)("path",{d:"M8 4.75 V8 L10.25 9.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]}),(0,e.jsx)("span",{className:"graview-activity-word",children:" Activity"})]}),!d&&n!==void 0?(0,e.jsx)("div",{hidden:!0,"data-testid":"agent-seat-seated",children:n}):null,d?(0,e.jsxs)("section",{...g.pane,"aria-label":"Activity","data-testid":"activity","data-graview-offstage":"",style:{...L,width:300,maxHeight:"min(52cqh, 460px)",overflow:"auto",display:"flex",flexDirection:"column",gap:9,padding:12,borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[(0,e.jsx)("h2",{style:{...T,margin:0},children:"Activity"}),n!==void 0?(0,e.jsxs)("div",{"data-testid":"agent-seat-row",style:{display:"grid",gap:5,paddingBottom:i.length>0||a.length>0?9:0,...i.length>0||a.length>0?{borderBottom:"1px solid var(--graview-edge)"}:{}},children:[(0,e.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"The agent's seat"}),n]}):null,i.length>0?(0,e.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:7},children:i.slice(0,6).map((t,v)=>(0,e.jsxs)("li",{style:{display:"grid",gap:2,fontSize:"0.8125rem",lineHeight:1.45},children:[(0,e.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,e.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:999,flex:"0 0 auto",background:t.phase==="running"?"var(--graview-accent)":t.phase==="failed"?"var(--graview-warn)":"var(--graview-edge-bright)"}}),(0,e.jsxs)("span",{style:{color:"var(--graview-ink)"},children:[t.mutating?"changed":"read"," \xB7"," ",o.allMutations().find(r=>r.name===t.name)?.title??A(t.name)]})]}),!t.mutating&&t.reads&&t.reads.length>0?(0,e.jsxs)("div",{"data-testid":"activity-reads",style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:[[...new Set(t.reads)].slice(0,3).map(r=>(0,e.jsx)(f,{label:m(o,r),pickId:r},r)),new Set(t.reads).size>3?(0,e.jsxs)("span",{style:{color:"var(--graview-ink-muted)"},children:["+",new Set(t.reads).size-3]}):null]}):Object.values(t.args).some(r=>typeof r=="string")?(0,e.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:Object.entries(t.args).filter(r=>typeof r[1]=="string").slice(0,3).map(([r,S])=>(0,e.jsx)(f,{label:m(o,S),pickId:S},r))}):null,t.error?(0,e.jsx)("div",{style:{paddingLeft:12,color:"var(--graview-warn)"},children:t.error}):null]},`${t.at}:${v}`))}):null,a.length>0?(0,e.jsx)("ol",{"data-testid":"diff-log",style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6,fontSize:"0.8125rem"},children:a.map((t,v)=>t.withheld?(0,e.jsx)("li",{"data-testid":"withheld-change",style:{display:"grid",gap:3,lineHeight:1.45},children:(0,e.jsx)("span",{"data-touched":"",style:{color:"var(--graview-ink-muted)",fontStyle:"italic"},children:t.intent})},`change:${v}`):(0,e.jsxs)("li",{style:{display:"grid",gap:3,lineHeight:1.45},children:[(0,e.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,e.jsxs)("span",{style:{minWidth:0},children:[(0,e.jsxs)("strong",{style:{fontWeight:600},children:[t.author==="human"&&t.by?.onBehalfOf===void 0&&(t.authorId===void 0||h.id===void 0||t.authorId===h.id)?"you":I(t.by??{kind:t.author,id:t.authorId},{graph:o.graph,schema:o.schema,seats:y,people:l}),k(t.via)?(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-muted)"},children:[", ",k(t.via)]}):null]})," ",(0,e.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:t.intent})]}),t.batch?(0,e.jsx)(H,{batch:t.batch}):null]}),(0,e.jsx)("div",{"data-touched":t.touched.join(" "),style:{display:"flex",flexWrap:"wrap",gap:4},children:t.touched.slice(0,4).map(r=>(0,e.jsx)(f,{label:m(o,r),pickId:r},r))})]},`change:${v}`))}):null,p?(0,e.jsxs)("div",{"data-testid":"remembered",style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:10,paddingTop:8,borderTop:"1px solid var(--graview-edge)",fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:[(0,e.jsx)("span",{children:"Remembered in this browser"}),(0,e.jsx)(O,{})]}):null]}):null]})}export{N as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as U}from"./chunk.T6KID3WO.js";import{a as T,c as K,f as W,g as D,k as _,l as j,m as X}from"./chunk.6DU4XN2F.js";import{c as J}from"./chunk.MJ67MK4R.js";import{e as Q,g as Y,i as Z}from"./chunk.US4KIJSW.js";import{Aa as z,ca as G,ea as I,ma as V,ta as q}from"./chunk.2WFEFZAW.js";import{Hb as N,gb as H,qb as M,rb as O}from"./chunk.RAE4M3KQ.js";import{a as ae,b as $}from"./chunk.MRK6QJV5.js";import{b as F}from"./chunk.AJZBJBMO.js";var o=F(ae(),1);function se(e){let t=[e?.typography?.body,e?.typography?.display,e?.typography?.mono],n=[];for(let a of t){let r=a?.split(",")[0]?.trim().replace(/^["']|["']$/g,"");!r||O(r)||r.toLowerCase()!==H.toLowerCase()&&(n.includes(r)||n.push(r))}return n}function ee(e){let t=se(e);return t.length===0?null:`https://fonts.googleapis.com/css2?${t.map(a=>`family=${encodeURIComponent(a).replace(/%20/g,"+")}:wght@400;500;600;700`).join("&")}&display=swap`}var u=F($(),1);function ge(e,t){let{app:n}=e;return(0,o.useMemo)(()=>{let a=Y(t(n.schema,n.viewSpecs),n),r=e.views?V(a,e.views(n.schema,a)):a;return Z(r,n.schema,Q(e.brand??n.brand,n.schema)),r},[e.views,n.schema,n.viewSpecs,n.lenses,n.pages,n.home])}function ie(e,t){return new N({schema:e.schema,mutations:e.mutations??[],invariants:e.invariants??[],...t?{snapshot:t}:{},...e.policy?{policy:e.policy}:{},...e.intelligence?{intelligence:e.intelligence}:{}})}function ne(e){if(typeof document>"u")return e==="dark"?"dark":"light";let t=document.documentElement.dataset.theme;return t==="dark"||t==="light"?t:e==="dark"||e==="light"?e:typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ce(e,t){let[n,a]=(0,o.useState)(()=>ne(t));return(0,o.useEffect)(()=>{if(!e||typeof document>"u")return;let r=()=>a(ne(t));r();let i=new MutationObserver(r);i.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});let d=typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null;return d?.addEventListener?.("change",r),()=>{i.disconnect(),d?.removeEventListener?.("change",r)}},[e,t]),n}var A=e=>e?e.getBoundingClientRect().height:0;function be(e,t,n){let a=(0,o.useRef)(n);a.current=n;let r=n!==void 0;(0,o.useLayoutEffect)(()=>{let i=e.current;if(!i||!r)return;let d=()=>{let l=[...i.children],b=l.find(v=>v.hasAttribute("data-graview-app-bar")),p=l.find(v=>v.hasAttribute("data-embed-content")),f=p?.querySelector("[data-embed-measure]")??null,c=l.find(v=>v.hasAttribute("data-graview-place-line"));return{strip:b,line:c,content:p,measure:f}},s=-1,h=()=>{let{strip:l,line:b,content:p,measure:f}=d(),c=Math.ceil(A(l)+A(b)+A(f||p));c!==s&&(s=c,a.current?.(c))};if(h(),typeof ResizeObserver>"u")return;let m=new ResizeObserver(h),E=()=>{m.disconnect();let{strip:l,line:b,content:p,measure:f}=d();for(let c of[i,l,b,p,f])c&&m.observe(c)};E();let g=new MutationObserver(()=>{E(),h()});return g.observe(i,{childList:!0}),()=>{m.disconnect(),g.disconnect()}},[e,t,r])}var ve=480,de=0;function Se(e){let{app:t,seed:n,scheme:a="auto",brand:r=t.brand,fonts:i=!0,height:d="100%",label:s}=e,h=(0,o.useRef)(null);q(h);let m=d==="viewport"?"100dvh":d,E=z(typeof m=="string"&&/vh\b/.test(m)),g=(0,o.useMemo)(()=>`graview-embed-${++de}`,[]),l=(0,o.useMemo)(()=>e.store??e.remote?.store??ie(t,n),[e.store,e.remote,t,n]),b=e.presence??e.remote?.presence,p=e.hostContext?.theme,f=ce(a==="auto"&&p===void 0,r?.scheme),c=a==="auto"?p??f:a,v=(0,o.useMemo)(()=>T(c,r,{scope:`.${g}`}),[c,r,g]);K(e.favicon?M(r):void 0),(0,o.useEffect)(()=>{if(!i||typeof document>"u")return;let w=ee(r);if(!w||document.querySelector(`link[href="${w}"]`))return;let y=document.createElement("link");y.rel="stylesheet",y.href=w,document.head.appendChild(y)},[r,i]);let C=(0,o.useRef)(void 0);(0,o.useLayoutEffect)(()=>{let w=h.current,y=C.current;if(C.current=s,!w||!s)return;let oe=S=>{let x=S.getAttribute("aria-label")??"",R=y&&y!==s?x.startsWith(`${y} \xB7 `)?x.slice(y.length+3):x===y?"":x:x;R===s&&(S.getAttribute("role")==="region"||S.tagName==="SECTION"&&!S.hasAttribute("role"))&&S.setAttribute("role","group");let L=R.startsWith(`${s} \xB7 `)||R===s?R:R?`${s} \xB7 ${R}`:s;L!==x&&S.setAttribute("aria-label",L)},B=()=>w.querySelectorAll("aside, nav, main, header, footer, section[aria-label]:not([role]), [role=region], [role=complementary], [role=navigation], [role=search]").forEach(S=>{S.hasAttribute("data-graview-named-by-lens")||oe(S)});B();let P=new MutationObserver(B);return P.observe(w,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["aria-label"]}),()=>P.disconnect()},[s]);let re=E?`${m}`.replace(/([\d.]+)[sdl]?vh\b/g,(w,y)=>`${+y*E/100}px`):m;return{rootRef:h,scope:g,css:v,scheme:c,store:l,presence:b,brand:r,auto:d==="auto",height:re}}function we({rootRef:e,board:t}){let n=(0,o.useCallback)(()=>e.current?.querySelector("[data-embed-content]")??e.current,[e]);return(0,u.jsx)(J,{board:t,anchor:n})}function Ee(e,t,n){return{brand:n,principal:e.principal,seats:e.seats,presence:t,people:e.people,memory:e.memory,presenceTtlMs:e.presenceTtlMs,onKeepLens:e.onKeepLens,ai:e.ai,app:e.app}}function xe({name:e,heading:t,faces:n,at:a,without:r,home:i,reach:d,standing:s,hostActions:h,keeping:m,onFind:E,switch:g}){let{brand:l,store:b,principal:p,views:f}=G();I();let c=r?.has("places")?[]:W({store:b,principal:p,views:f}),v=U();return(0,u.jsx)(_,{brand:l,name:e,description:l?.subtitle,heading:t,faces:n,home:i,places:c,current:a===null?null:D(c,a),reach:d,onFind:E,...g?{switch:g}:{},...n?{scenePlaces:v}:{},tools:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(X,{clean:s}),(0,u.jsx)(j,{...h?{hostActions:h}:{},...m?{keeping:m}:{}})]})})}var Re=e=>e===!1?2:Math.min(e+1,6);function Ae(e){let[t,n]=(0,o.useState)(e),a=(0,o.useRef)(void 0),r=(0,o.useRef)(void 0),i=(0,o.useMemo)(()=>({go:a,at:n,pending:r}),[]),d=(0,o.useCallback)(s=>{if(a.current){a.current(s);return}r.current=s,n(s)},[]);return{at:t,setAt:n,steering:i,steer:d}}function le(e){let t=typeof e=="object"&&e!==null?e.name:void 0;return{name:typeof t=="string"&&t.length>0?t:typeof e=="object"?"Error":typeof e}}var k=()=>typeof performance<"u"?performance.now():Date.now();function Fe(e,t){let n=(0,o.useRef)({onError:e,face:t});return n.current={onError:e,face:t},(0,o.useCallback)((a,r)=>n.current.onError?.(le(a),{module:r.module,face:n.current.face}),[])}function ke(e,t){let n=(0,o.useRef)(null);n.current===null&&(n.current=k());let a=(0,o.useRef)({onReady:e,face:t});a.current={onReady:e,face:t};let r=(0,o.useRef)(!1);return(0,o.useCallback)(i=>{r.current||(r.current=!0,a.current.onReady?.({ms:Math.max(0,k()-(n.current??k())),face:i}))},[])}var te=class extends o.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(t,n){console.error(`[graview] ${this.props.module} threw while rendering`,t,n.componentStack),this.props.report(t,{module:this.props.module})}render(){return this.state.failed?(0,u.jsxs)("div",{role:"alert","data-graview-face-error":this.props.module,...this.props.content?{"data-embed-content":""}:{},style:this.props.content?{flex:"1 1 auto",display:"grid",alignContent:"center",justifyItems:"center",gap:8,padding:24,background:"var(--graview-ground)",color:"var(--graview-ink)",fontSize:"0.9375rem"}:{display:"inline-flex",alignItems:"center",gap:6,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,u.jsx)("span",{children:this.props.content?"This part of the app could not draw.":"Could not draw."}),(0,u.jsx)("button",{type:"button",onClick:()=>this.setState({failed:!1}),style:{padding:"3px 11px",fontSize:"0.8125rem"},children:"Try again"})]}):this.props.children}};export{ge as a,ie as b,be as c,ve as d,Se as e,we as f,Ee as g,xe as h,Re as i,Ae as j,Fe as k,ke as l,te as m};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as je}from"./chunk.H4LHHT56.js";import{a as Ve,c as Fe,d as Ie}from"./chunk.EKZWX6NG.js";import{d as Be}from"./chunk.TTODVIXW.js";import{b as Ge,e as G,f as ve}from"./chunk.WX5CJ7PI.js";import{b as ze}from"./chunk.MJ67MK4R.js";import{d as ge,e as qe,f as ye,h as _e}from"./chunk.US4KIJSW.js";import{a as De}from"./chunk.F2KDFGHR.js";import{b as We}from"./chunk.2YVXTTC2.js";import{C as Ee,E as Ne,G as He,T as Ke,U as Oe,W as oe,ca as q,d as Le,j as I,l as W,m as _,pa as re,r as j,s as Re,y as Pe,z as Me}from"./chunk.2WFEFZAW.js";import{Ia as ne,J as $e,Ja as me,La as Ae,Ma as Ce,P as Te,Q as te}from"./chunk.RAE4M3KQ.js";import{a as U,b as ae}from"./chunk.MRK6QJV5.js";import{b as O}from"./chunk.AJZBJBMO.js";var Je=O(U(),1);function Qe(e,t){try{t.length===0?localStorage.removeItem(ge(e)):localStorage.setItem(ge(e),JSON.stringify(t))}catch{}}function ct(e,t){Qe(e,[...ye(e).filter(r=>r.title!==t.title),t])}function pt(e,t){Qe(e,ye(e).filter(r=>r.title!==t))}function ut(e,t){for(let r of e.places().filter(a=>a.title===t))e.forget?.(r.kind,r.as)}var ft=e=>e===!0?{written:!0}:typeof e=="object"&&e!==null?{written:e.kept===!0,...e.said?{said:e.said}:{}}:{written:!1},Ue=e=>({title:e.title,lens:e.lens,on:e.on,...e.bindings?{bindings:e.bindings}:{},...e.options?{options:e.options}:{}});function mt(e,t){let r=a=>t.some(s=>s.title===a||s.as===ne(a));if(!r(e))return e;for(let a=2;;a++)if(!r(`${e} ${a}`))return`${e} ${a}`}function Ye(e){let{store:t,views:r,brand:a,seatTalk:s,onKeepLens:y}=q(),k=(0,Je.useContext)(ze),S=qe(a,t.schema),M=async c=>{let{edit:p}=c;if(c.written&&y)try{await y({op:"remove-lens",title:p.title,on:p.on})}catch{}pt(S,p.title),ut(r,p.title),k?.dismiss(`kept:${p.title}`),s.setTurns(g=>[...g.map(i=>i.kept&&i.kept.edit.title===p.title&&!i.kept.taken?{...i,kept:{...i.kept,taken:!0}}:i),{role:"seat",text:`Took \u201C${p.title}\u201D back out of the places.`}]);let l=te(t.schema,p.on);e({to:"kind",kind:p.on,title:l,address:me(t.schema,p.on),said:`Went to ${l}.`})};return{keep:async c=>{let p=mt(c.edit.title,r.places()),l={...c.edit,title:p},g=!1,i;if(y)try{({written:g,said:i}=ft(await y(l)))}catch{g=!1}g||ct(S,Ue(l)),_e(r,t.schema,[Ue(l)]);let f=r.places(),h=f.find(w=>w.title===p),x=i??(g?`Kept \u201C${p}\u201D as a lens: it is in the places now.`:y?`Kept \u201C${p}\u201D as your own lens. Ask the owner to keep it for everyone.`:`Kept \u201C${p}\u201D as your own lens.`),T={edit:l,written:g};s.setDraft(null),s.setTurns(w=>[...w,{role:"seat",text:x,kept:T}]),s.get().open||k?.notify({kind:"toast",id:`kept:${p}`,sentence:x,timeout:1e4,action:{label:"Take back",onSelect:()=>void M(T)}}),h&&e({to:"picture",kind:h.kind,as:h.as,title:p,address:Ae(h.as,Ce(h,f)?me(t.schema,h.kind).slice(1):void 0),said:`Went to ${p}.`})},takeBack:M}}var Ze=O(U(),1);function gt(e,t){switch(t.to){case"place":return{view:Le("#")};case"picture":return{view:j(He(W(e,"filter",null),t.kind,t.as),[])};case"kind":{let r=Re(_({...I(e,Ee(t.kind)),relation:null},!1),!0);return{view:j(W(W(r,"view",null),"filter",t.filter??null),[])}}case"record":return{view:j(I(_(W(W(e,"view",null),"filter",null),!1),t.id),[t.id])};case"problems":return{pane:"problems"}}}function yt(e){let t=typeof document>"u"?null:document.querySelector('[data-testid="standing"]');t&&t.getAttribute("aria-expanded")==="true"!==e&&t.click()}function Xe(){let{setView:e,seatTalk:t}=q();return(0,Ze.useCallback)(r=>{t.get().draft&&t.setDraft(null),yt(r.to==="problems"),r.to!=="problems"&&e(a=>{let s=gt(a,r);return"view"in s?s.view:a})},[e,t])}var se=O(U(),1),vt=220;function ht(e,t){if(!e||!t||typeof document>"u")return null;let r=e.getBoundingClientRect(),a=document.elementFromPoint(r.left+t.x,r.top+t.y),s=a?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");return s||(a?.closest("[data-graview-view]")?.getAttribute("data-graview-view")??null)}function et({hover:e=!0}={}){let{store:t,view:r,views:a,pointer:s}=q(),{selection:y}=re(),[k,S]=(0,se.useState)(null);(0,se.useEffect)(()=>{if(!e)return;let l=null,g=!1,i=()=>typeof document<"u"&&document.querySelector("[data-graview-reach]")!==null?document.querySelector("[data-graview-settled]")===null:!1,f=()=>{if(l&&clearTimeout(l),g)return;let w=s.snapshot();if(!w){S(R=>R===null?R:null);return}l=setTimeout(()=>{if(g||i()){f();return}let R=typeof document>"u"?null:document.querySelector("[data-graview-stage]"),C=ht(R,w);S(P=>P===C?P:C)},vt)},h=()=>{g=!0,l&&clearTimeout(l)},x=()=>{g=!1,f()},T=s.subscribe(f);return document.addEventListener("pointerdown",h,!0),document.addEventListener("pointerup",x,!0),document.addEventListener("pointercancel",x,!0),f(),()=>{T(),document.removeEventListener("pointerdown",h,!0),document.removeEventListener("pointerup",x,!0),document.removeEventListener("pointercancel",x,!0),l&&clearTimeout(l)}},[s,e]);let M=l=>{let g=t.graph.getNode(l);if(g)return $e(t.schema.tryDefinition(g.kind),g);let i=je(l,t.schema);if(i)return i;let f=Me(l);if(f)return te(t.schema,f);let h=Ne(l);if(h.length>0){let x=h.map(w=>Te(t.schema,w)),T=x.length===1?x[0]:`${x.slice(0,-1).join(", ")} and ${x.at(-1)}`;return T.charAt(0).toUpperCase()+T.slice(1)}return null},E=y[y.length-1];if(E!==void 0){let l=M(E);if(l)return{id:E,name:y.length>1?`${l} and ${y.length-1} more`:l,because:"selection"}}if(k!=null){let l=M(k);if(l)return{id:k,name:l,because:"hover"}}let c=r.within?.view,p=c?a.places().find(l=>l.as===c||ne(l.title)===c):void 0;if(p)return{id:null,name:p.title,because:"place"};if(r.focusId){let l=M(r.focusId);if(l)return{id:r.focusId,name:l,because:"place"}}return{id:null,name:"the whole thing",because:"place"}}var L=O(U(),1);var D=O(U(),1),$=O(ae(),1),B=(e,t)=>`${e}:${t}`;function tt({answer:e,onReply:t,talk:r}){let[a]=(0,D.useState)(()=>Oe(null)),s=r??a,{turns:y,outcomes:k,busy:S}=oe(s),M=(0,D.useCallback)((c,p)=>s.settle(c,p),[s]);return{turns:y,outcomes:k,busy:S,send:async c=>{let p=c.trim();if(!p||s.get().busy)return;s.setBusy(!0);let l=s.get();s.setTurns(f=>[...f,{role:"person",text:p}]);let g=l.turns.map((f,h)=>{let x=(f.proposals??[]).flatMap((T,w)=>{let R=l.outcomes.get(B(h,w));return R?.state==="applied"?[R.said]:[]});return{role:f.role,text:x.length>0?`${f.text} [applied: ${x.join("; ")}]`:f.text}}),i;try{i=await e(p,{history:g})}catch(f){i={say:`That couldn't be answered: ${f instanceof Error?f.message:String(f)}`,proposals:[]}}s.setTurns(f=>[...f,{role:"seat",text:i.say,proposals:i.proposals,...i.questions?{questions:i.questions}:{},...i.picks?.length?{picks:i.picks}:{},...i.moves?.length?{moves:i.moves}:{},...i.offer?{offer:i.offer}:{},...i.unsure?{unsure:!0}:{},...i.via?{via:i.via}:{}}]),t?.(i),s.setBusy(!1)},settle:M}}var wt=e=>{let t=/^([\s\S]*?)\s*(\((?:[^()]|\([^()]*\))*\))\s*$/.exec(e);return t&&t[1]?{said:t[1],aside:t[2]}:{said:e}};function nt({turns:e,outcomes:t,busy:r,testId:a,empty:s,minHeight:y=64,maxHeight:k="min(46cqh, 400px)",renderProposal:S,renderAfter:M,renderSaid:E,ready:c=()=>!0,onApplyAll:p,applyAllLabel:l="Apply all"}){let g=(0,D.useRef)(null);return(0,D.useEffect)(()=>{g.current?.scrollTo?.({top:g.current.scrollHeight})},[e]),e.length===0&&s===null&&!r?null:(0,$.jsxs)("ol",{ref:g,style:{margin:0,padding:10,listStyle:"none",display:"grid",gap:8,alignContent:"start",maxHeight:k,minHeight:y,overflowY:"auto"},children:[e.length===0?s===null?null:(0,$.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)",lineHeight:1.5},children:s}):null,e.map((i,f)=>{let h=i.proposals??[],x=h.filter((w,R)=>{let C=B(f,R),P=t.get(C);return P?.state!=="applied"&&P?.state!=="declined"&&c(w,C)}),T=wt(i.text);return(0,$.jsxs)("li",{style:{display:"grid",gap:6,justifyItems:i.role==="person"?"end":"start"},children:[i.role==="person"?(0,$.jsx)("p",{style:{margin:0,maxWidth:"85%",padding:"6px 10px",borderRadius:"12px 12px 4px 12px",fontSize:"0.875rem",lineHeight:1.45,background:"var(--graview-panel-muted)",color:"var(--graview-ink)"},children:i.text}):(0,$.jsxs)("p",{style:{margin:0,fontSize:"0.875rem",lineHeight:1.5,color:"var(--graview-ink)"},children:[E?E(i,T.said):T.said,T.aside?(0,$.jsx)("span",{style:{display:"block",marginTop:2,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:T.aside}):null,i.via?(0,$.jsx)("span",{"data-testid":`${a}-answered-with-ai`,style:{display:"block",marginTop:2,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:Ke}):null]}),M?.(i,f),h.map((w,R)=>{let C=B(f,R),P=t.get(C);return P?.state==="applied"||P?.state==="declined"?(0,$.jsx)(ie,{outcome:P,testId:a},C):(0,$.jsxs)("span",{style:{display:"grid",gap:4,justifySelf:"stretch",justifyItems:"start"},children:[S(w,{key:C,turn:f,at:R}),P?(0,$.jsx)(ie,{outcome:P,testId:a}):null]},C)}),p&&x.length>=2?(0,$.jsxs)("button",{type:"button","data-testid":`${a}-apply-all`,onClick:()=>p(f,h),title:"Take these in order; anything still missing is asked for",style:{fontSize:"0.8125rem",justifySelf:"start",fontWeight:600},children:[l," ",x.length]}):null]},f)}),r?(0,$.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"thinking\u2026"}):null]})}function ie({outcome:e,testId:t}){if(e.state==="refused")return(0,$.jsxs)("span",{"data-testid":`${t}-refused`,style:{fontSize:"0.8125rem",color:"var(--graview-warn)"},children:["Refused: ",e.error]});let r=e.state==="applied";return(0,$.jsxs)("span",{"data-testid":`${t}-${e.state}`,style:{fontSize:"0.8125rem",color:r?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:[r?(0,$.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:"\u2713 "}):null,r?e.said:(0,$.jsx)("s",{children:e.said})]})}function ot({busy:e,placeholder:t,ariaLabel:r,testId:a,onSend:s}){let[y,k]=(0,D.useState)("");return(0,$.jsxs)("form",{onSubmit:S=>{S.preventDefault(),!(e||y.trim().length===0)&&(s(y),k(""))},style:{display:"flex",gap:6,padding:8,borderTop:"1px solid var(--graview-edge)"},children:[(0,$.jsx)("input",{value:y,onChange:S=>k(S.target.value),placeholder:t,"aria-label":r,"data-testid":`${a}-draft`,style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"6px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,$.jsx)("button",{type:"submit","data-testid":`${a}-send`,disabled:e||y.trim().length===0,style:{fontSize:"0.875rem"},children:"Send"})]})}var v=O(ae(),1),bt=/\b(?:board|kanban|timeline|calendar|gantt|who covers|covers what|coverage|floor plan|layout|draw|chart|(?:list|table) of|as an? (?:list|table|board|calendar|timeline|grid))\b/i,kt=/\b(?:group(?:ed)? by|split by|sort(?:ed)? by|order(?:ed)? by|only|call it|name it|as an? (?:board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)|show all|all of them|clear the filter|no filter)\b/i,St=e=>e.charAt(0).toLowerCase()+e.slice(1),xt=e=>e.to==="record"?e.label:e.to==="problems"?"problems":e.title;function $t(e,t,r){let a=[],s=e;for(let y of t){let k=xt(y),S=k?s.toLowerCase().indexOf(k.toLowerCase()):-1;S<0||(a.push(s.slice(0,S),r(y,s.slice(S,S+k.length))),s=s.slice(S+k.length))}return a.length===0?e:[...a,s]}function Qt({respond:e,onCall:t,onPick:r,testId:a="chat",empty:s,shared:y=!1,composer:k=!0,onMove:S,place:M,onDraft:E}){let{store:c,views:p,view:l,principal:g,setView:i,seatWho:f,noteSeat:h,session:x,ai:T,seatTalk:w,brand:R,app:C}=q(),P=Xe(),le=S??P,{takeBack:rt}=Ye(le),{selection:de}=re(),he=et(),we=f??"chat",z=(0,L.useMemo)(()=>({kind:"agent",id:we,session:x}),[we,x]),ce=(0,L.useRef)(void 0),V=(0,L.useMemo)(()=>Be(c,{author:{...z,...g.roles?{roles:g.roles}:{}},derive:()=>({pins:Ve()}),places:()=>p.places(),via:()=>ce.current,...C?{app:C}:{}}),[c,g,z,p,C]),st=(0,L.useMemo)(()=>e??Ie(T),[e,T]);(0,L.useEffect)(()=>t?V.onCall(t):void 0,[V,t]),We(V);let be=(0,L.useMemo)(()=>({name:R?.name??"app",schema:c.schema,...c.policy?{policy:c.policy}:{}}),[c,R]),it=async o=>{let d=w.get().draft,n=d!==null&&kt.test(o);if(!n&&!bt.test(o))return;let u=await import("./chunk.R6F3YMRK.js"),b=e?void 0:Fe(T),m={app:be,sight:u.draftSight(be,Y),...b?{complete:b}:{},...d?{lastGood:d}:{}},A=n&&d?await u.refineDraft(d,o,m):await u.draftView(o,m);if(u.isDraftFailure(A)){let K=A.lastGood??d;return K?(w.setDraft(K,A.failed),E?.(),{say:`${A.failed} The last view stays.`,proposals:[],grounded:!0}):{say:A.failed,proposals:[],grounded:!0}}return w.setDraft(A,null),E?.(),{say:`Here is ${St(A.said)} Ask to change it, or keep it as a lens.`,proposals:[],grounded:!0}},N=tt({...y?{talk:w}:{},answer:async(o,d)=>{let n=await it(o);if(n)return n;let{placesFromViews:u}=await import("./chunk.ACKTGTOT.js"),b=M??l.within?.view,m=p.arrangement?.(),A=c.today();return st(c,o,{...d,selection:he.id?[he.id]:de,principal:{...z,...g.roles?{roles:g.roles}:{}},places:u(c.schema,p.places(),m?{pages:m}:{}),...b?{place:b}:{},...A?{today:A}:{},...C?{app:C}:{}})},onReply:o=>{let d=o.moves?.[0];d&&le(d);let n=o.questions?.[0];h(n?{type:"asking",author:z,where:n.nodeId??null,say:`${n.nodeLabel?`${n.nodeLabel}: `:""}${n.asks}`,confidence:n.confidence}:{type:"said",author:z,say:o.say});let u=o.proposals.find(b=>!ue(b));if(u){let b=c.permits({name:u.mutation,args:{...u.args}},Y);b.ok||h({type:"refused",author:z,where:Se(u.mutation),say:b.refusal.message})}}}),{outcomes:Q,settle:pe}=N,ke=oe(w);(0,L.useEffect)(()=>{if(!y||ke.pending===null||N.busy)return;let o=w.takePending();o&&N.send(o)},[y,ke.pending,N.busy]);let Y={...z,...g.roles?{roles:g.roles}:{}},ue=o=>c.permits({name:o.mutation,args:{...o.args}},Y).ok,Se=o=>{let d=c.allMutations().find(n=>n.name===o)?.subject?.kinds;return Array.isArray(d)&&d[0]?Pe(d[0]):null},[H,Z]=(0,L.useState)(null),X=async(o,d)=>{let n=Ge(c,o),u=G(c,n),b=V.definitions.find(A=>A.act===n.mutation)?.name??n.mutation;ce.current=N.turns[Number(d.split(":")[0])]?.via;let m=await V.call(b,{...n.args}).finally(()=>{ce.current=void 0});return m.ok?(pe(d,{state:"applied",said:u}),!0):(pe(d,{state:"refused",error:m.error}),h({type:"refused",author:z,where:Se(n.mutation),say:m.error}),!1)},lt=async(o,d)=>{for(let[n,u]of d.entries()){let b=B(o,n);if(Q.get(b)?.state==="applied"||!ue(u))continue;let m=ve(c,u);if(m.length>0){Z({proposal:u,open:m,key:b});return}if(!await X(u,b))return}},ee=(0,L.useRef)(null),fe=(0,L.useRef)(null);(0,L.useLayoutEffect)(()=>{let o=fe.current;if(!o||o.isConnected||document.activeElement!==document.body)return;fe.current=null,(ee.current?.querySelector(`[data-testid="${a}-apply"]:not([disabled])`)??ee.current?.querySelector(`[data-testid="${a}-draft"]`)??ee.current?.closest("[data-testid='seat']")?.querySelector("[data-testid='seat-field']"))?.focus()});let dt=(o,d,n,u)=>{let b=c.permits({name:n.mutation,args:{...n.args}},Y);if(!b.ok)return(0,v.jsxs)("span",{"data-testid":`${a}-withheld`,style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,v.jsx)("s",{children:G(c,n)})," \u2014 ",b.refusal.message]});let m=ve(c,n),A=(N.turns[o]?.proposals??[]).slice(0,d).filter((xe,F)=>Q.get(B(o,F))?.state!=="applied").find(xe=>m.some(F=>F.kinds&&typeof n.args[F.name]=="string"&&xe.args.label===n.args[F.name])),K=G(c,n);return(0,v.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 10px"},children:[(0,v.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--graview-ink)"},title:n.why,children:[K,m.length>0&&!A?" \u2026":""]}),(0,v.jsxs)("span",{style:{display:"inline-flex",gap:6},children:[(0,v.jsx)("button",{type:"button","data-testid":`${a}-apply`,"data-graview-asks":m.length>0?m.length:void 0,disabled:A!==void 0,"aria-label":`Do it: ${K}`,onClick:()=>m.length>0?Z({proposal:n,open:m,key:u}):void X(n,u),title:A?`After \u201C${G(c,A)}\u201D`:m.length>0?`${K} \u2014 it asks for ${m.length===1?"one more thing":`${m.length} more things`}`:K,style:J,children:"Do it"}),(0,v.jsx)("button",{type:"button","data-testid":`${a}-decline`,"aria-label":`Not now: ${K}`,onClick:()=>pe(u,{state:"declined",said:K}),style:{...J,color:"var(--graview-ink-muted)"},children:"Not now"})]})]})};return(0,v.jsxs)("div",{"data-testid":`${a}-panel`,ref:ee,onFocus:o=>{fe.current=o.target},style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",alignContent:"start",gap:8,minWidth:0,minHeight:0},children:[N.turns.length===0?s??null:null,(0,v.jsx)(nt,{turns:N.turns,outcomes:Q,busy:N.busy,testId:a,minHeight:0,maxHeight:"none",empty:s!==void 0?null:(0,v.jsxs)(v.Fragment,{children:["Ask what's wrong, ask about anything by name, or say a change in its own words.",de.length>0?" \u201CThis\u201D means what you have selected.":""]}),renderProposal:(o,{key:d,turn:n,at:u})=>dt(n,u,o,d),ready:o=>ue(o),onApplyAll:(o,d)=>void lt(o,d),applyAllLabel:"Do all",renderSaid:(o,d)=>o.moves?.length?$t(d,o.moves,(n,u)=>(0,v.jsx)("button",{type:"button","data-testid":`${a}-went`,title:`Go to ${u}`,onClick:()=>le(n),style:{...at,fontSize:"inherit"},children:u},`${n.address}:${u}`)):d,renderAfter:(o,d)=>[...o.offer?[(0,v.jsx)("button",{type:"button","data-testid":`${a}-offer`,onClick:()=>w.ask(`a list of ${o.offer.draft}`),style:{...J,justifySelf:"start"},children:o.offer.label},`${d}:offer`)]:[],...o.kept&&!o.kept.taken?[(0,v.jsx)("button",{type:"button","data-testid":`${a}-take-back`,onClick:()=>void rt(o.kept),style:{...J,justifySelf:"start"},children:"Take back"},`${d}:take-back`)]:[],...o.picks?.length?[(0,v.jsx)("p",{"data-testid":`${a}-picks`,style:{margin:0,display:"flex",flexWrap:"wrap",gap:"2px 12px"},children:o.picks.map(n=>(0,v.jsx)("button",{type:"button","data-testid":`${a}-pick`,"data-chat-pick":n.id,title:n.why.field==="label"?`Go to ${n.label}`:`${n.why.reading}: ${n.why.fragment}`,onClick:()=>r?r(n.id):i(u=>j(I(_(u,!1),n.id),[n.id])),style:at,children:n.label},n.id))},`${d}:picks`)]:[],...(o.questions??[]).map(n=>{let u=`${d}:q:${n.id}`,b=Q.get(u);return(0,v.jsxs)("div",{"data-testid":`${a}-question`,"data-chat-question-node":n.nodeId,style:{display:"grid",gap:4,justifySelf:"start"},children:[(0,v.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[n.nodeLabel?(0,v.jsxs)("strong",{children:[n.nodeLabel,": "]}):null,n.asks,n.because==="split"?" (it could be either)":" (it was not sure)"]}),(0,v.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:n.options.map(m=>(0,v.jsxs)("button",{type:"button","data-testid":`${a}-option`,disabled:!m.call,title:m.call?m.call.why??"Take this answer":"Nothing to do for this answer",onClick:()=>m.call?void X(m.call,u):void 0,style:J,children:[m.value," ",Math.round(m.probability*100),"%"]},m.value))}),b?(0,v.jsx)(ie,{outcome:b,testId:a}):null]},n.id)})]}),H?(0,v.jsx)("div",{"data-testid":`${a}-asking`,children:(0,v.jsx)(De,{affordance:{id:`chat:${H.proposal.mutation}`,mutation:H.proposal.mutation,label:G(c,H.proposal),provider:"llm",why:H.proposal.why??"Suggested in the conversation.",nodeIds:[],args:H.proposal.args,open:H.open,score:0},onApply:o=>{let d={...H.proposal,args:{...H.proposal.args,...o}};Z(null),X(d,H.key)},onCancel:()=>Z(null)})}):null,k?(0,v.jsx)(ot,{busy:N.busy,placeholder:de.length>0?"Ask about this\u2026":"Ask, or say a change\u2026",ariaLabel:"Ask",testId:a,onSend:o=>y?w.ask(o):void N.send(o)}):null]})}var J={font:"inherit",fontSize:"0.8125rem",minHeight:26,padding:"0 9px",borderRadius:6,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",boxShadow:"none",color:"var(--graview-ink)",cursor:"pointer"},at={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};export{Ye as a,yt as b,Xe as c,et as d,Qt as e,J as f,at as g};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as Ve}from"./chunk.6KJSFIO7.js";import{b as Ce,c as te,d as Ie,e as W,g as le,h as Ke,o as J}from"./chunk.DSZ3I557.js";import{A as Se,G as Ee,T as ze,Ya as Me,Z as De,_ as $e,a as me,b as he,ba as ce,c as we,ca as Pe,d as H,f as se,h as C,i as ke,ib as Te,j as be,k as ne,l as ve,la as Z,m as Oe,o as Ae,p as Re,q as ae,qa as Ge,sb as Fe,tb as Ne,v as je,x as de,y as xe}from"./chunk.RAE4M3KQ.js";function tn(n,c){let e=n.brand??{},i=e.accent?Ne(e.accent):void 0;i&&!i.ok&&c.push(Ke("brand","brand.accent",`that accent cannot make a readable brand, so the app keeps Graview's colors: ${i.why}`,"pick a color further from orange-red, or a darker one"));let l=typeof e.logo=="string"?{src:e.logo}:e.logo,d=e.name??n.name,O=e.typography?Object.fromEntries(Object.entries(e.typography).filter(([,R])=>typeof R=="string"&&!/url\(|@import|[;{}<>\\]/i.test(R)).map(([R,E])=>[R,Fe(E)])):void 0;return{name:d,schemes:i?.ok?i.schemes:Te,...e.currency?{currency:e.currency}:{},...e.locale?{locale:e.locale}:{},...l?{logo:l.src,logoAlt:l.alt??d}:{},...e.favicon?{favicon:e.favicon}:{},...n.description?{subtitle:n.description}:{},...O?{typography:O}:{},...e.shape?{shape:e.shape}:{},...e.accents?{accents:e.accents}:{},...e.scheme?{scheme:e.scheme}:{}}}function Le(n){let{currency:c,locale:e}=n.brand??{};return{...c?{currency:c}:{},...e?{locale:e}:{}}}var He=[{where:"settings[]",was:"honoured",now:"honored",since:"0.1.16"},{where:"pages",was:"overview",now:"scene",since:"0.1.17"}],pe=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function qe(n,c=He){if(!pe(n))return{document:n,respelled:[]};let e=[],i=n;for(let l of c)i=fe(i,l.where.split("."),l,"",e);return{document:i,respelled:e}}function fe(n,c,e,i,l){if(c.length===0){if(!pe(n)||!Object.hasOwn(n,e.was))return n;l.push(`${i}${e.was}`);let{[e.was]:G,...z}=n;return Object.hasOwn(n,e.now)?z:{...z,[e.now]:G}}if(!pe(n))return n;let[d,...O]=c,R=d.endsWith("[]"),E=R?d.slice(0,-2):d,j=n[E],P=j;if(!R)P=fe(j,O,e,`${i}${E}.`,l);else if(Array.isArray(j)){let G=j.map((z,M)=>fe(z,O,e,`${i}${E}.${M}.`,l));P=G.some((z,M)=>z!==j[M])?G:j}return P===j?n:{...n,[E]:P}}var Be="graview-compiled@1",I="id",Ze=n=>typeof n=="string"&&/^\$[A-Za-z][A-Za-z0-9]*$/.test(n)?n.slice(1):void 0;function We(n){let c=Object.entries(n.fields);return c.find(([,e])=>e.required&&(e.type==="string"||e.type==="text"))?.[0]??c.find(([,e])=>e.type==="string")?.[0]}function _e(n,c){let e;switch(n.type){case"string":e=C().check(H(500));break;case"text":e=C().check(H(2e4));break;case"number":case"integer":{let i=[...n.type==="integer"?[ve()]:[],...n.min===void 0?[]:[he(n.min)],...n.max===void 0?[]:[me(n.max)],...n.step===void 0?[]:[we(n.step)]];e=i.length>0?ne().check(...i):ne();break}case"boolean":e=Oe();break;case"date":e=C().check(se(/^\d{4}-\d{2}-\d{2}$/,"a date like 2026-10-02"));break;case"datetime":e=C().check(xe(i=>!Number.isNaN(Date.parse(i)),"a date and time like 2026-10-02T14:30:00Z"));break;case"enum":e=je(n.options);break;case"list":e=Re(n.of==="number"?ne():n.of==="date"?C().check(se(/^\d{4}-\d{2}-\d{2}$/)):C().check(H(500))).check(H(200));break;case"url":e=be();break;case"email":e=ke();break}return n.description&&(e=e.check(Se(n.description))),c?de(e):e}var U=n=>{throw new Z(`there is no record "${n}"`,"invalid")},Je=n=>"field"in n?_e(n.field,n.optional):"ref"in n?Ge(n.ref):de(Ae()),Ue=new WeakMap;var re=n=>typeof n=="object"&&n!==null&&!Array.isArray(n),ye=(n,c)=>re(c)&&Object.keys(n??{}).length===Object.keys(c).length&&Object.keys(n??{}).every(e=>Object.hasOwn(c,e));function mn(n,c={}){let e=re(n)?n.format:void 0;if(e!==Be)return{ok:!1,findings:[le("compiled-format","format",e===void 0?"this is not a compiled Graview app":`this compiled app is ${JSON.stringify(e)}, and this build reads ${Be}`,"compile the document instead")]};let i=n,l=qe(i.document).document,d=l===i.document?i:{...i,document:l},O=re(l)&&typeof l.name=="string"&&re(l.kinds)&&ye(l.kinds,d.kinds)&&ye(l.acts,d.acts)&&ye(l.rules,d.rules)&&Array.isArray(d.edges)&&Array.isArray(d.findings),R={ok:!1,findings:[le("compiled-shape","","this compiled app's parts do not match its document","compile the document instead")]};if(!O)return R;try{return Qe(d,c)}catch{return R}}function Qe(n,c={}){let{document:e}=n,i=c.today??(()=>new Date().toISOString().slice(0,10)),l=new Map(n.edges.map(([f,r])=>[f,r])),d=new Map;for(let[f,r]of Object.entries(e.kinds)){let k=n.kinds[f]?.computed;d.set(f,{fields:new Set(Object.keys(r.fields)),edges:new Map(Object.entries(r.edges??{}).map(([w,x])=>[w,x.cardinality??"many"])),...k?{computed:new Map(k)}:{}})}n.facts&&d.set(Ce,{computed:new Map(n.facts)});let O=Le(e),R=Object.entries(e.kinds).map(([f,r])=>{let k={};for(let[o,y]of Object.entries(r.fields))k[o]=_e(y,!y.required);let{label:w,describe:x}=n.kinds[f]??{},D=Object.entries(r.computed??{}).map(([o,y])=>[o,typeof y=="string"?{expr:y}:y]),S=Object.fromEntries([...Object.entries(r.fields).filter(([,o])=>o.label).map(([o,y])=>[o,y.label]),...D.filter(([,o])=>o.label).map(([o,y])=>[o,y.label])]),T=Object.fromEntries(Object.entries(r.fields).filter(([,o])=>o.default!==void 0).map(([o,y])=>[o,y.default])),K=Object.fromEntries(Object.entries(r.edges??{}).map(([o,{renamedFrom:y,...V}])=>[o,V])),g=o=>r[o]?{[o]:r[o]}:{};return Ee(f,{fields:ae(k),edges:K,...g("plural"),...g("noun"),...g("description"),...w?{label:o=>J(w,{node:o,kinds:d,today:i(),money:O})||o.id}:{},...x?{describe:o=>J(x,{node:o,kinds:d,today:i(),money:O})}:{},...g("lifecycle"),...g("figure"),...g("fieldRoles"),...r.computed&&Object.keys(r.computed).length>0?{computed:r.computed}:{},...Object.keys(S).length>0||r.glance||r.page?{display:{...Object.keys(S).length>0?{labels:S}:{},...r.glance?{glance:[...r.glance]}:{},...r.page?{page:r.page}:{}}}:{},...Object.keys(T).length>0?{defaults:T}:{}})}),E=De(R,e.computed);function j(f){return E.tryDefinition(f.kind)?.label?.(f)??f.id}let P=[];for(let[f,r]of Object.entries(e.acts??{})){let k=n.acts[f],{title:w,effects:x,guard:D,refusal:S,destructive:T,idempotent:K,creates:g,connects:o,severs:y,writes:V,writesOther:Q,sets:h}=k,L=new Map(k.args),F={};for(let[u,b]of L)F[u]=Je(b);let q=r.on===void 0?[]:Array.isArray(r.on)?r.on:[r.on],X=new Map(k.exprs);P.push(Me(f,{input:ae(F),title:w,...r.description?{description:r.description}:{},...r.fromTheOtherEnd?{fromTheOtherEnd:r.fromTheOtherEnd}:{},...L.has(I)?{subject:{kinds:q.length>0?q:"*",arg:I}}:{},...T?{destructive:!0}:{},...K?{idempotent:!0}:{},...g.length>0?{creates:g}:{},...o.length>0?{connects:o}:{},...y.length>0?{severs:y}:{},writes:V,...Object.keys(Q).length>0?{writesOther:Q}:{},...Object.keys(h).length>0?{sets:h}:{},describe:(u,b)=>{let v=typeof u[I]=="string"?b.getNode(u[I]):void 0,$=v?j(v):Object.values(u).find(m=>typeof m=="string");return $?`${w}: ${String($)}`:w},apply(u,b){let v=u.graph,$=typeof b[I]=="string"?b[I]:void 0,m=$?v.getNode($):void 0;if($&&!m&&U($),m&&q.length>0&&!q.includes(m.kind))throw new Z(`"${w}" acts on ${q.join(" or ")}, not on ${ze(m.kind)}`,"invalid");let Y={};for(let[t,s]of Object.entries(b))s!==void 0&&(Y[t]=s);if(D&&m){let t;try{t=W(D,{graph:v,subject:m,kinds:d,bindings:Y,today:i()})}catch(s){throw s instanceof te?new Z(`"${w}" could not be judged: ${s.sentence}`):s}if(t!==!0)throw new Z(S?J(S,{node:m,kinds:d,graph:v,bindings:Y,today:i(),money:O}):`"${w}" is not allowed for ${j(m)} right now`)}let ee=new Map,oe=t=>v.has(t)||[...ee.values()].includes(t),ue=new Set,ie=t=>{let s=$e(t);ue.has(s)||(ue.add(s),u.removeEdge(t))},B=(t,s)=>{if(t&&typeof t=="object"&&!Array.isArray(t)&&"expr"in t)try{return W(X.get(t.expr),{graph:v,subject:s??m??null,kinds:d,bindings:Y,today:i()})}catch(p){throw p instanceof te?new Z(`"${w}" could not work out a value: ${p.sentence}`):p}let a=Ze(t);return a===void 0?typeof t=="string"&&t.startsWith("$$")?t.slice(1):t:a==="subject"?$:a==="now"?new Date().toISOString():a==="today"?i():ee.has(a)?ee.get(a):b[a]};for(let t of x)if("create"in t){let s=e.kinds[t.create],a={kind:t.create};for(let[_,N]of Object.entries(s.fields))N.default!==void 0&&(a[_]=N.default);for(let[_,N]of Object.entries(t.set??{})){let ge=B(N,void 0);ge!==void 0&&(a[_]=ge)}let p=We(s),A=u.freshId(String((p&&a[p])??t.create),t.create);u.addNode({id:A,...a}),t.as&&ee.set(t.as,A)}else if("connect"in t||"sever"in t){let s="connect"in t?t.connect:t.sever,a=String(B(t.from,void 0)??""),p=String(B(t.to,void 0)??"");if(oe(a)||U(a),oe(p)||U(p),"connect"in t){if(l.get(s)?.cardinality==="one")for(let A of v.out(a,s))A.id!==p&&ie({kind:s,from:a,to:A.id});v.out(a,s).some(A=>A.id===p)||u.addEdge({kind:s,from:a,to:p})}else ie({kind:s,from:a,to:p})}else if("set"in t){let s=String(B(t.target??"$subject",void 0)??""),a=v.getNode(s);!a&&!oe(s)&&U(s);let p={};for(let[A,_]of Object.entries(t.set)){let N=B(_,a);N!==void 0&&(p[A]=N)}Object.keys(p).length>0&&u.patchNode(s,p)}else if("remove"in t){let s=String(B(t.remove,void 0)??"");v.has(s)||U(s),u.removeNode(s)}else if("replace"in t&&m){let s=b.to;for(let a of t.replace){let p=l.get(a)?.from.includes(m.kind)??!0;for(let A of p?v.out(m.id,a):v.in(m.id,a))a===t.keep&&A.id===s||ie(p?{kind:a,from:m.id,to:A.id}:{kind:a,from:A.id,to:m.id})}}}}))}let G=[];for(let[f,r]of Object.entries(e.rules??{})){let{title:k,require:w,when:x,says:D}=n.rules[f],S=r.repairs??[],T=(g,o)=>{let y={graph:g,subject:o,kinds:d,today:i()},V;try{if(x&&W(x,y)!==!0)return[];V=W(w,y)===!0}catch(h){throw h instanceof Ie?new Pe(h.sentence):h instanceof te?new Error(h.sentence):h}if(V)return[];let Q=S.flatMap(h=>{let L=e.acts?.[h.act],F={};o&&(L?.on||/^(edit|remove)-/.test(h.act))&&(F[I]=o.id);for(let[u,b]of Object.entries(h.args??{}))F[u]=Ze(b)==="subject"?o?.id:b;let X=(L?n.acts[h.act].args:[]).filter(([u,b])=>b.required&&F[u]===void 0).map(([u])=>u);return[{mutation:h.act,label:h.label??L?.title??h.act.replace(/-/g," "),args:F,...X.length>0?{missing:X}:{}}]});return[{invariant:f,...o?{subjectId:o.id}:{},label:k,message:D?J(D,{node:o,kinds:d,graph:g,today:i(),money:O}):o?`${j(o)}: ${k}`:k,nodeIds:o?[o.id]:[],repairs:Q}]},K={label:k,shape:{over:r.over,require:w,when:x,says:D,declared:e.kinds,money:O,kinds:d,today:i},judgment:{require:r.require,...r.when?{when:r.when}:{},...r.says?{says:r.says}:{}},...r.description?{description:r.description}:{},...S.length>0?{repairs:S.map(g=>g.act)}:{}};G.push(r.over==="graph"?ce(f,{scope:"graph",...K,evaluate:({graph:g})=>T(g,null)}):ce(f,{scope:{kind:r.over},...K,evaluate:({graph:g,subject:o})=>T(g,o)}))}let z=e.policy?{grants:e.policy.grants,...e.policy.sees?{sees:e.policy.sees}:{},...e.roles?{roles:e.roles}:{}}:void 0,M={name:e.name,schema:E,mutations:P,invariants:G,...z?{policy:z}:{},...n.brand?{brand:n.brand}:{},...e.modules?{modules:e.modules}:{},...e.lenses?{lenses:e.lenses}:{},...e.pages?{pages:e.pages}:{},...e.settings?{settings:e.settings}:{},...n.viewSpecs?{viewSpecs:n.viewSpecs}:{},...n.home?{home:n.home}:{},version:e.version??1};return Ve(M,e),Ue.set(M,n),{ok:!0,app:M,document:e,findings:n.findings,sights:e.policy?.sees,kinds:d}}export{qe as a,tn as b,Be as c,I as d,Ze as e,We as f,mn as g,Qe as h};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as n}from"./chunk.QOYC424P.js";import"./chunk.B57EIGTS.js";import"./chunk.2YVXTTC2.js";import"./chunk.WWRWXFYR.js";import{a as p}from"./chunk.BJ2Y5F66.js";import"./chunk.A4SJ7EEY.js";import"./chunk.6KJSFIO7.js";import"./chunk.DEZEXD24.js";import"./chunk.YZZGD5OY.js";import"./chunk.DSZ3I557.js";import"./chunk.SSOTDXRS.js";import"./chunk.ZRVDIVYY.js";import"./chunk.AHDOKM4O.js";import"./chunk.PY42PBMB.js";import"./chunk.JCZH55RX.js";import"./chunk.2WFEFZAW.js";import"./chunk.RAE4M3KQ.js";import{b as m}from"./chunk.MRK6QJV5.js";import{b as t}from"./chunk.AJZBJBMO.js";var i=t(m(),1),a=new WeakMap;function l(o){let e=a.get(o);if(!e){let r=p(o);e=c=>c.mode==="fullscreen"?(0,i.jsx)(n,{blocks:r,slot:"home",heading:2,firstHeading:1}):(0,i.jsx)(n,{blocks:r,slot:"home",heading:3,firstHeading:2}),a.set(o,e)}return e}export{l as homeView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as x,c as P}from"./chunk.7BAUPTMY.js";import{S as w}from"./chunk.2WFEFZAW.js";var v="graview:pins",m={pinned:[],unpinned:[]},g=e=>Array.isArray(e)?e.filter(n=>typeof n=="string"):[];function O(){try{let e=globalThis.localStorage?.getItem(v);if(!e)return m;let n=JSON.parse(e);if(Array.isArray(n))return{pinned:g(n),unpinned:[]};if(typeof n=="object"&&n!==null){let r=n;return{pinned:g(r.pinned),unpinned:g(r.unpinned)}}return m}catch{return m}}function S(e){try{globalThis.localStorage?.setItem(v,JSON.stringify(e))}catch{}}function C(e,n,r=!1){let o=s=>s.filter(l=>l!==n),i=r?e.unpinned.includes(n)?{pinned:o(e.pinned),unpinned:o(e.unpinned)}:{pinned:o(e.pinned),unpinned:[...e.unpinned,n]}:e.pinned.includes(n)?{pinned:o(e.pinned),unpinned:o(e.unpinned)}:{pinned:[...e.pinned,n],unpinned:o(e.unpinned)};return S(i),i}var E=e=>`ai:${e.name??(e.complete||e.turn?"model":"on-device")}`;var A="Llama-3.2-3B-Instruct-q4f16_1-MLC",L=new Map;function R(e={}){let n=e.load?null:e.model??A,r=n?L.get(n)??L.set(n,{engine:null,failed:null}).get(n):{engine:null,failed:null},o=r.engine,i=!1,s=t=>e.onStatus?.(t),l=async()=>{if(e.load)return e.load();let t=globalThis.LanguageModel;if(t){let u=await t.create();return{chat:{completions:{create:async({messages:h})=>({choices:[{message:{content:await u.prompt(h[h.length-1]?.content??"")}}]})}}}}if(!globalThis.navigator?.gpu)throw new Error("this browser has no WebGPU, which the local model needs");return(await import("https://esm.run/@mlc-ai/web-llm")).CreateMLCEngine(e.model??A,{initProgressCallback:u=>s({state:"warming",progress:u.progress,detail:u.text})})},a=Promise.resolve();return{complete:async t=>{if(o=r.engine??o,!o)throw new Error("The local model is not warm yet");let f=(await o.chat.completions.create({messages:[{role:"user",content:t}]})).choices?.[0]?.message?.content;if(typeof f!="string")throw new Error("The local model answered with no content");return f},ready:()=>(r.engine??o)!==null,warm:()=>(o=r.engine??o,o?Promise.resolve():i?a:r.failed!==null?(s({state:"failed",detail:r.failed}),Promise.resolve()):(i=!0,s({state:"warming"}),a=l().then(t=>{o=t,r.engine=t,s({state:"ready"})}).catch(t=>{r.failed=t instanceof Error?t.message:String(t),s({state:"failed",detail:r.failed})}).finally(()=>{i=!1}),a)),failed:()=>r.failed}}function T(e,n={}){return b(e,n)?.complete}function b(e,n){let r=e.turn,o=e.complete??(r?l=>r({system:"",messages:[{role:"user",content:l}],tools:[],call:async()=>({error:"No tools here."})}):void 0);if(o)return{complete:o,ready:()=>!0,warm:()=>Promise.resolve(),failed:()=>null};if(!e.onDevice)return;let i=typeof e.onDevice=="object"?e.onDevice.model:void 0,s=R({...i?{model:i}:{},...n.onStatus?{onStatus:n.onStatus}:{}});return{complete:async l=>(s.ready()||s.warm(),s.complete(l)),ready:s.ready,warm:s.warm,failed:s.failed}}function D(e,n={}){let r=n.floor??x(),o=(a,d,p)=>r(p?.principal?a.seenBy(p.principal):a,d,p),i=b(e,n);if(!i)return async(a,d,p)=>{let t=await o(a,d,p);return t.unsure?{...t,say:e.withoutModel??w}:t};let s=P({complete:i.complete,...e.turn?{turn:e.turn}:{}}),l=E(e);return async(a,d,p)=>{let t=await o(a,d,p);if(t.grounded)return t;if(!i.ready()){if(await Promise.race([i.warm(),new Promise(c=>setTimeout(c,100))]),i.failed()!==null)return y(t,"(AI isn't available in this browser, so this is from the app alone.)");if(!i.ready())return y(t,"(AI is still getting ready on this device, so this is from the app alone.)")}try{let c=await s(a,d,{...p,...t.proposals.length>0?{reading:t.proposals}:{}});return c.proposals.length===0&&t.proposals.length>0?t:{...c,via:l}}catch{return y(t,"(AI didn't answer just now, so this is from the app alone.)")}}}function y(e,n){return{...e,say:`${e.say} ${n}`}}export{O as a,C as b,T as c,D as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as f}from"./chunk.6DU4XN2F.js";import{Rb as y}from"./chunk.RAE4M3KQ.js";import{a as S,b as s}from"./chunk.MRK6QJV5.js";import{b as a}from"./chunk.AJZBJBMO.js";var o=a(S(),1),l=a(s(),1);function A({context:e,stop:r,title:t,style:n,className:i,children:g,...p}){let d=y(e.views?.arrangement?.()),c=g??`In ${d==="Scene"?"the scene":d.replace(/^The /,"the ")} \u2197`;if(e.overview){let h=e.overview;return(0,l.jsx)("a",{href:r,...p,...t?{title:t}:{},style:n,...i?{className:i}:{},onClick:x=>{x.preventDefault(),h(r)},children:c})}return e.embedded?null:(0,l.jsx)("a",{href:`${e.sceneHref??"/"}${r}`,...p,...t?{title:t}:{},style:n,...i?{className:i}:{},children:c})}function v(){return(0,l.jsx)("a",{href:"#fresh","data-testid":"start-fresh",title:"Forget every edit made in this browser and return to the example",onClick:e=>{e.preventDefault();let r=new URL(window.location.href);r.searchParams.set("fresh","1"),window.location.assign(r.toString())},style:{color:"inherit",display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24},children:"Start fresh"})}function b(e){let r=(0,o.useRef)(0),t=(0,o.useCallback)(n=>e.subscribe(()=>{r.current+=1,n()}),[e]);return(0,o.useSyncExternalStore)(t,()=>r.current,()=>0)}var m=a(s(),1),u=f.part(e=>(0,m.jsx)(e.ActivityRail,{calls:[]}),{quiet:!0});export{A as a,v as b,b as c,u as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as q,ca as G,i as j}from"./chunk.2WFEFZAW.js";import{I as P,J as H,M as L,R,U as K,Va as T}from"./chunk.RAE4M3KQ.js";import{a as V,b as M}from"./chunk.MRK6QJV5.js";import{b as E}from"./chunk.AJZBJBMO.js";var a=E(V(),1),s=E(M(),1);function ne({affordance:r,onApply:o,onCancel:u}){let{store:l}=G(),[y,m]=(0,a.useState)({}),[f,x]=(0,a.useState)(""),[A,$]=(0,a.useState)(_),W=(0,a.useId)(),O=(0,a.useRef)(null),b=r.open.filter(e=>!(e.name in y)),i=b[0];if((0,a.useEffect)(()=>x(""),[i?.name]),(0,a.useEffect)(()=>{O.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[i?.name]),(0,a.useLayoutEffect)(()=>{let e=O.current,t=typeof document>"u"?null:document.activeElement;if(!e||t&&t!==document.body&&!e.contains(t))return;let p=e.querySelector("form input, [role=group] button:not([disabled])");p&&p!==t&&p.focus()},[i?.name]),!i)return null;let h=e=>{let t={...y,[i.name]:e};if(r.open.filter(c=>!(c.name in t)).length===0){let c=o(Object.fromEntries(Object.entries(t).filter(([,C])=>C!==void 0)));c&&c.length>0&&m(Object.fromEntries(Object.entries(t).filter(([C])=>!c.includes(C))))}else m(t)},F=i.optional?(0,s.jsx)("button",{type:"button",onClick:()=>h(void 0),style:{fontSize:"0.8125rem"},children:"Skip"}):null,n=i.shape??{type:"unknown"},d=Y(i,n),g=T(l.schema,l.allMutations().find(e=>e.name===r.mutation),i.name),[N,B]=(0,a.useState)(""),I=(0,a.useMemo)(()=>{let e=d.map(t=>l.graph.getNode(t)).filter(t=>t!==void 0);return P(e,t=>l.schema.tryDefinition(t))},[d,l]),z=e=>{let t=Q(l,n,e),p=n.type==="choice"||n.type==="several"&&n.of.type==="choice"?g.option(e):t,c=I.get(e);return c?`${p} \xB7 ${c}`:p},w=(0,a.useMemo)(()=>{let e=N.trim().toLowerCase();return e===""?d:d.filter(t=>z(t).toLowerCase().includes(e))},[d,N,l,n,I]),v=n.type==="several",D=v&&d.length===0,k=i.kinds&&i.kinds.length>0&&!i.kinds.includes("*")?i.kinds.map(e=>L(K(l.schema.tryDefinition(e),e))).join(" or "):g.label,U=r.open.length>1?`${k} \xB7 ${r.open.length-b.length+1} of ${r.open.length}`:k;return(0,s.jsxs)("div",{ref:O,"data-graview-asking":r.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,padding:"5px 0 2px"},children:[r.open.length>1||d.length>0?(0,s.jsx)("span",{id:W,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:U}):null,d.length>S?(0,s.jsx)("input",{type:"search",value:N,onChange:e=>B(e.target.value),placeholder:`Filter ${d.length}\u2026`,"aria-label":`Filter ${k}`,"data-testid":"ask-filter",style:{font:"inherit",fontSize:"0.8125rem",minWidth:0,padding:"3px 7px"}}):null,d.length>0?(0,s.jsxs)("div",{role:"group","aria-labelledby":W,style:{display:"flex",flexWrap:"wrap",gap:4},children:[w.slice(0,S).map(e=>{let t=A.includes(e);return(0,s.jsx)("button",{type:"button","aria-label":`${k}: ${z(e)}`,...v?{"aria-pressed":t}:{},style:{padding:"3px 9px",fontSize:"0.8125rem",...t?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},onClick:()=>v?$(p=>p.includes(e)?p.filter(c=>c!==e):[...p,e]):h(n.type==="boolean"?e==="yes":e),children:z(e)},e)}),w.length>S?(0,s.jsxs)("span",{"data-testid":"ask-more",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:[w.length-S," more \u2014 type to narrow"]}):null,w.length===0?(0,s.jsxs)("span",{"data-testid":"ask-none",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["None of the ",d.length," match that."]}):null,v?(0,s.jsx)("button",{type:"button",disabled:A.length===0,style:{fontSize:"0.8125rem"},onClick:()=>{let e=A;$(_),h(e)},children:b.length>1?"Next":"Apply"}):null,F]}):(0,s.jsxs)("form",{style:{display:"flex",flexWrap:"wrap",gap:4},onSubmit:e=>{if(e.preventDefault(),D){h(f.split(/[,\n]/).map(t=>t.trim()).filter(Boolean));return}f.trim().length!==0&&h(n.type==="number"?Number(f):f)},children:[n.type==="text"&&n.long?(0,s.jsx)("textarea",{autoFocus:!0,name:i.name,"aria-label":g.label,placeholder:g.label,value:f,rows:4,onChange:e=>x(e.target.value),onKeyDown:e=>{e.key==="Escape"?u():e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())},style:{flex:"1 1 100%",minWidth:0,font:"inherit",fontSize:"0.875rem",lineHeight:1.45,padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",resize:"vertical",fieldSizing:"content",minHeight:"5.5em",maxHeight:"40vh"}}):(0,s.jsx)("input",{autoFocus:!0,type:n.type==="date"?n.time?"datetime-local":"date":n.type==="number"?"number":"text",name:i.name,"aria-label":g.label,placeholder:D?`${g.label}, separated by commas`:g.label,value:f,...n.type==="number"&&n.min!==void 0?{min:n.min}:{},...n.type==="number"&&n.max!==void 0?{max:n.max}:{},...n.type==="number"&&n.step!==void 0?{step:n.step}:{},onChange:e=>x(e.target.value),onKeyDown:e=>{e.key==="Escape"&&u()},style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,s.jsx)("button",{type:"submit",disabled:!D&&f.trim().length===0,style:{fontSize:"0.8125rem"},children:b.length>1?"Next":"Apply"}),F]})]})}var _=[],S=10;function Y(r,o){return r.candidates&&r.candidates.length>0?r.candidates:o.type==="choice"?o.options:o.type==="several"&&o.of.type==="choice"?o.of.options:o.type==="boolean"?J:[]}var J=["yes","no"];function Q(r,o,u){return o.type==="boolean"||o.type==="choice"||o.type==="several"&&o.of.type==="choice"?u:X(r,u)}function X(r,o){let u=j(o);if(u){let m=R(r.schema,r.graph.getNode(u.from)?.kind??"",u.kind,"out");return m.charAt(0).toUpperCase()+m.slice(1)}let l=q(o);if(l.length>0)return l.map(m=>r.schema.tryDefinition(m)?.plural??`${m}s`).join(" + ");let y=r.graph.getNode(o);return y?H(r.schema.tryDefinition(y.kind),y):o}export{ne as a,X as b};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as a,l as o}from"./chunk.QOYC424P.js";import"./chunk.B57EIGTS.js";import"./chunk.2YVXTTC2.js";import"./chunk.WWRWXFYR.js";import"./chunk.BJ2Y5F66.js";import"./chunk.A4SJ7EEY.js";import"./chunk.6KJSFIO7.js";import"./chunk.DEZEXD24.js";import"./chunk.YZZGD5OY.js";import"./chunk.DSZ3I557.js";import"./chunk.SSOTDXRS.js";import"./chunk.ZRVDIVYY.js";import"./chunk.AHDOKM4O.js";import"./chunk.PY42PBMB.js";import"./chunk.JCZH55RX.js";import{la as n}from"./chunk.2WFEFZAW.js";import"./chunk.RAE4M3KQ.js";import"./chunk.MRK6QJV5.js";import"./chunk.AJZBJBMO.js";var w=new WeakMap;function p(e,i){let t=w.get(e);t||w.set(e,t=new Map);let r=t.get(i);return r||t.set(i,r=o(a(e,n(e)),e,i)),r}export{p as frameworkViews};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as K}from"./chunk.6DU4XN2F.js";import{a as se}from"./chunk.US4KIJSW.js";import{a as V}from"./chunk.B57EIGTS.js";import{l as ie,m as G}from"./chunk.2YVXTTC2.js";import{f as _,g as N,h as B}from"./chunk.ZRVDIVYY.js";import{Ba as ae,W as ee,a as O,ca as M,da as te,ea as ne,pa as oe,ra as re,ya as F}from"./chunk.2WFEFZAW.js";import{Q as J,R as Q,ub as Z,zb as z}from"./chunk.RAE4M3KQ.js";import{a as $,b as T}from"./chunk.MRK6QJV5.js";import{b as k}from"./chunk.AJZBJBMO.js";var i=k($(),1);var x=k(T(),1),le=336,w=16,ue=640,I=F(O(()=>import("./chunk.TAOT74FR.js"))),fe=I.part((t,n)=>{let s=t.SeatPanel;return(0,x.jsx)(s,{...n})},{what:"The conversation"});function xe({respond:t,onCall:n,onPick:s,start:y="field",onMove:l,place:S,onDraft:v}){let{brand:r,seatTalk:d}=M(),f=ee(d),g=r?.name?.trim()||"this app",h=(0,i.useRef)(null),o=(0,i.useRef)(null),[a,c]=(0,i.useState)(""),[m,P]=(0,i.useState)(!1),C=(0,i.useRef)(null),b=y==="hidden",p=f.open&&!b;(0,i.useEffect)(()=>b?void 0:d.drawn(),[d,b]),(0,i.useLayoutEffect)(()=>{let e=h.current?.parentElement;if(!e)return;let E=()=>P(e.getBoundingClientRect().width<ue);if(E(),typeof ResizeObserver>"u")return;let D=new ResizeObserver(E);return D.observe(e),()=>D.disconnect()},[b]),(0,i.useEffect)(()=>{typeof window<"u"&&window.dispatchEvent(new Event(se))},[p,f.side,m]),(0,i.useEffect)(()=>{let e=h.current;if(b||p||!e||typeof window>"u")return;let E=(e.closest("[data-graview-embed]")??document.documentElement).style,D=()=>{let Y=e.getBoundingClientRect(),X=e.offsetParent?.getBoundingClientRect(),ce=X?X.bottom-Y.top:Y.height+w;E.setProperty("--graview-foot-room",`${Math.max(0,Math.round(ce+w))}px`)};D();let U=typeof ResizeObserver>"u"?null:new ResizeObserver(D);return U?.observe(e),()=>{U?.disconnect(),E.removeProperty("--graview-foot-room")}},[b,p,m,f.side]),(0,i.useEffect)(()=>{!p||f.pending===null||(j(),o.current?.focus({preventScroll:!0}))},[p,f.pending]);let j=()=>{let e=typeof document>"u"?null:document.activeElement;e instanceof HTMLElement&&e!==document.body&&!h.current?.contains(e)&&(C.current=e)},H=()=>{j(),I.prefetch(),d.setOpen(!0)},q=()=>{d.setOpen(!1);let e=C.current;C.current=null,e?.isConnected&&!(m&&e instanceof HTMLInputElement)&&e.focus({preventScroll:!0}),document.activeElement!==e&&(m?h:o).current?.focus({preventScroll:!0})};if(b)return null;let R=!m&&f.side==="right",pe=m?p?{left:0,right:0,bottom:0,padding:"8px 12px calc(12px + env(safe-area-inset-bottom, 0px))",borderRadius:"12px 12px 0 0",...de}:{left:w,right:w,bottom:`calc(${w}px + env(safe-area-inset-bottom, 0px))`}:p?{[R?"right":"left"]:w/2-1,bottom:w/2-1,width:le+w+2,padding:w/2,borderRadius:12,...de}:{[R?"right":"left"]:w,bottom:w,width:le};return(0,x.jsxs)("section",{ref:h,role:"region","aria-label":`Ask ${g}`,tabIndex:-1,"data-testid":"seat","data-graview-seat":p?"open":"closed","data-graview-seat-side":R?"right":"left","data-graview-seat-shape":m?"phone":"desk","data-graview-foot":"","data-graview-offstage":"",onMouseDown:e=>e.stopPropagation(),onKeyDown:e=>{e.key!=="Escape"||!p||(e.preventDefault(),e.stopPropagation(),q())},style:{position:"absolute",zIndex:z("rail"),boxSizing:"border-box",display:"flex",flexDirection:"column",gap:8,pointerEvents:"auto",outline:"none",...pe},children:[(0,x.jsxs)("h2",{style:{...ae,margin:0},children:["Ask ",g]}),p?(0,x.jsx)(i.Suspense,{fallback:null,children:(0,x.jsx)(fe,{phone:m,side:R?"right":"left",name:g,onClose:q,...t?{respond:t}:{},...n?{onCall:n}:{},...s?{onPick:s}:{},...l?{onMove:l}:{},...S?{place:S}:{},...v?{onDraft:v}:{}})}):null,(0,x.jsx)("form",{onSubmit:e=>{e.preventDefault();let E=a.trim();p||H(),!(!E||f.busy)&&(d.ask(E),c(""))},style:{display:"flex",margin:0},children:(0,x.jsx)("input",{ref:o,"data-testid":"seat-field",type:"text",enterKeyHint:"send",autoComplete:"off",value:a,placeholder:`Ask ${g}\u2026`,"aria-label":`Ask ${g}`,onPointerEnter:()=>I.prefetch(),onFocus:()=>I.prefetch(),onClick:()=>{p||H()},onChange:e=>{c(e.target.value),p||H()},style:{flex:"1 1 auto",minWidth:0,boxSizing:"border-box",height:38,padding:"0 12px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8}})})]})}var de={background:"var(--graview-float)",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-high)"};var W=k($(),1),L=k(T(),1),me=F(O(()=>import("./chunk.ZJVIH6IF.js"))),ge=me.part((t,n)=>{let s=t.DraftFrame;return(0,L.jsx)(s,{...n})},{what:"The view"});function Te(t){let{seatTalk:n}=M();return(0,W.useSyncExternalStore)(n.subscribe,()=>n.get().draft!==null,()=>!1)?(0,L.jsx)(W.Suspense,{fallback:null,children:(0,L.jsx)(ge,{...t})}):null}function Re(t={}){return t.scope===void 0?V:K(V,t.scope)}var A=k($(),1),u=k(T(),1);function We({inside:t=!1}={}){let{store:n,view:s,emphasis:y,setEmphasis:l}=M(),S=ie(),{selection:v,set:r}=oe(),{show:d}=re(),f=ne(),g=(0,A.useMemo)(()=>{let o=new Map;for(let a of n.graph.allEdges()){let c=o.get(a.kind)??{count:0,ends:new Set};c.count+=1;for(let m of[a.from,a.to]){let P=n.graph.getNode(m);P&&c.ends.add(`kind:${P.kind}`)}o.set(a.kind,c)}return[...o.entries()].sort(([a],[c])=>a.localeCompare(c)).map(([a,c])=>({kind:a,count:c.count,ends:[...c.ends]}))},[n,f]);if((0,A.useEffect)(()=>()=>l(null),[l]),!s.overview&&!t||g.length===0)return null;let h=new Set;for(let o of v){if(o.startsWith("kind:")){h.add(o);continue}let a=n.graph.getNode(o);a&&h.add(`kind:${a.kind}`)}return(0,u.jsxs)("section",{"aria-label":"What the lines mean",role:t?"group":void 0,"data-testid":"relation-key",style:t?{display:"grid",gap:1}:{position:"absolute",left:16,top:14,zIndex:z("rail"),display:"grid",gap:1,padding:"8px 10px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",maxWidth:he,animation:"graview-settle 380ms 280ms ease backwards"},children:[t?null:(0,u.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",paddingBottom:2},children:g.length===1?"1 relation":`${g.length} relations`}),g.map(({kind:o,count:a,ends:c})=>{let{connector:m,style:P}=G(S,o),C=ye(n.schema,o),b=y!==null?y===o:h.size===0||c.some(p=>h.has(p));return(0,u.jsxs)("button",{type:"button",title:n.schema.edge(o)?.description===void 0?`${a} of these`:C.words,onMouseEnter:()=>l(o),onMouseLeave:()=>l(null),onFocus:()=>l(o),onBlur:()=>l(null),onClick:()=>{r(c),d(null)},style:{all:"unset",outline:"revert-layer",cursor:"pointer",display:"grid",gridTemplateColumns:"30px 1fr auto",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px",borderRadius:6,opacity:b?1:.4},children:[(0,u.jsx)("svg",{width:"30",height:"8","aria-hidden":"true",style:{display:"block",opacity:m.visible?1:.35},children:(0,u.jsx)("path",{d:"M 1 4 L 29 4",fill:"none",stroke:N(P),strokeWidth:B(P,!0),strokeDasharray:_[P.pattern],strokeLinecap:"round"})}),(0,u.jsxs)("span",{style:{display:"grid",minWidth:0},"data-graview-relation-words":o,children:[(0,u.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink)"},children:C.words}),(0,u.jsx)("span",{style:{fontSize:"0.6875rem",color:"var(--graview-ink-faint)"},children:C.ends})]}),m.visible?null:(0,u.jsx)("span",{"data-graview-quiet":o,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontStyle:"italic"},children:"not drawn"}),(0,u.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},children:a})]},o)})]})}var he="min(280px, calc(100% - 28px))";function ye(t,n,s){let y=t.edge(n)?.from??[],l=new Map;for(let r of s!==void 0&&y.includes(s)?[s]:y.length>0?y:[""]){let d=Q(t,r,n,"out");l.set(d,[...l.get(d)??[],r])}let S=r=>r==="*"?"anything":J(t,r),v=[...l].map(([r,d])=>{let f=d.flatMap(h=>t.tryDefinition(h)?.edges[n]?.to??[]),g=d[0]&&f.length>0?`${d.map(S).join(", ")} \u2192 ${(f.includes("*")?["*"]:[...new Set(f)]).map(S).join(", ")}`:"";return[r.charAt(0).toUpperCase()+r.slice(1),g]});return{words:v.map(([r])=>r).join(" \xB7 "),ends:v.flatMap(([,r])=>r?[r]:[]).join(" \xB7 ")}}function He({edgeKind:t,kit:n,width:s=30}){let y=te(),l=(0,A.useMemo)(()=>Z(n??y?.brand?.kit),[n,y?.brand?.kit]),{connector:S,style:v}=G(l,t);return(0,u.jsx)("svg",{width:s,height:"8","aria-hidden":"true","data-testid":"relation-mark","data-graview-relation":t,style:{display:"inline-block",verticalAlign:"middle",opacity:S.visible?1:.35},children:(0,u.jsx)("path",{d:`M 1 4 L ${s-1} 4`,fill:"none",stroke:N(v),strokeWidth:B(v,!0),strokeDasharray:_[v.pattern],strokeLinecap:"round"})})}export{xe as a,Te as b,We as c,he as d,He as e,Re as f};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{a as hr,b as fr,c as yr}from"./chunk.TTODVIXW.js";import{a as ar,e as sr,f as dr,i as wn,j as lr,l as en,m as bn,n as cr,o as ur}from"./chunk.2YVXTTC2.js";import{a as or,b as Ue,c as pn,d as rr,f as xn,g as Xt,h as ao}from"./chunk.ZRVDIVYY.js";import{d as ir}from"./chunk.JCZH55RX.js";import{A as er,B as Jt,C as Ee,D as Et,E as xt,F as Qn,H as dt,I as yn,J as Gt,L as Ut,M as gn,N as Zn,O as tr,P as Pt,Q as Ct,R as Jn,V as eo,X as At,Y as to,aa as mn,b as zn,ba as Lt,c as Kn,ca as le,d as Gn,e as Zo,ea as It,f as Jo,g as fn,h as Yt,i as Rt,j as Ot,ja as nr,k as Un,l as Xn,m as zt,qa as no,ra as oo,sa as Nt,t as qn,u as pt,ua as ro,w as Kt,xa as io,y as ce,z as $e}from"./chunk.2WFEFZAW.js";import{H as Wo,J as _o,M as Vt,O as hn,P as Wt,Q as _t,Qb as Uo,Ra as Go,S as Yo,Tb as Xo,U as zo,Zb as qo,_b as Qo,fb as Mt,xb as Te,za as Ko}from"./chunk.RAE4M3KQ.js";import{a as He,b as be}from"./chunk.MRK6QJV5.js";import{b as ee}from"./chunk.AJZBJBMO.js";var vn=(e,t)=>e<t?-1:e>t?1:0;function mr(e){return!e||e<=1?1:Math.min(4,Math.ceil(Math.sqrt(e)))}function pr(e,t,n){if(t===n)return 0;let r=e.kinds,o=0;for(let[i,a]of[[t,n],[n,t]]){let d=e.tryDefinition(i);for(let c of Object.values(d?.edges??{}))(c.to==="*"?r:c.to).includes(a)&&(o+=1)}return o}var gr=(e,t)=>`${Math.floor(e/5)},${Math.floor(t/5)}`;function $i(e,t,n){if(n===0)return[{col:e,row:t}];let r=[];for(let o=0;o<n;o++)r.push({col:e+(n-o)*5,row:t+o*5}),r.push({col:e-o*5,row:t+(n-o)*5}),r.push({col:e-(n-o)*5,row:t-o*5}),r.push({col:e+o*5,row:t-(n-o)*5});return r}function so(e,t={}){let n=[...e.kinds],r=[...(t.order??[]).filter(d=>n.includes(d)),...n.filter(d=>!(t.order??[]).includes(d)).sort(vn)].filter((d,c,s)=>s.indexOf(d)===c),o=new Map,i=new Set,a=(d,c,s)=>{o.set(d,{col:c,row:s,side:mr(t.counts?.[d])}),i.add(gr(c,s))};for(let d of r){let c=e.tryDefinition(d)?.plot??t.plots?.[d];c&&a(d,c.col,c.row)}for(let d of r){if(o.has(d))continue;if(o.size===0){a(d,0,0);continue}let c,s=0;for(let h of[...o.keys()].sort(vn)){let g=pr(e,d,h);(g>s||g===s&&g>0&&c!==void 0&&vn(h,c)<0)&&(s=g,c=h)}let l=c?o.get(c):o.get(r.find(h=>o.has(h))),u;for(let h=1;!u&&h<64;h++)u=$i(l.col,l.row,h).find(g=>!i.has(gr(g.col,g.row)));a(d,u?.col??l.col+5*o.size,u?.row??l.row)}return o}function lo(e,t){let n=[...t.keys()].sort(vn),r=[];for(let o=0;o<n.length;o++)for(let i=o+1;i<n.length;i++){let a=n[o],d=n[i],c=[];for(let[s,l]of[[a,d],[d,a]]){let u=e.tryDefinition(s);for(let[h,g]of Object.entries(u?.edges??{}))(g.to==="*"?e.kinds:g.to).includes(l)&&c.push(h)}c.length>0&&r.push({from:a,to:d,edges:c})}return r}function co(e){let t=1/0,n=1/0,r=-1/0,o=-1/0;for(let i of e.values())t=Math.min(t,i.col),n=Math.min(n,i.row),r=Math.max(r,i.col+i.side),o=Math.max(o,i.row+i.side);return e.size===0?{minCol:0,minRow:0,maxCol:1,maxRow:1}:{minCol:t,minRow:n,maxCol:r,maxRow:o}}function ve(e,t,n){return{x:(e-t)*n/2,y:(e+t)*n/4}}function Hi(e){if(e<3)return[];if(e%2===1){let r=(e-1)/2;return[[r,r]]}let t=e/2-1,n=e/2;return[[t,t],[n,t],[t,n],[n,n]]}function xr(e){let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return(t>>>0)%1e3/1e3}function uo(e,t){let n=e.side+1,r=new Set(Hi(n).map(([c,s])=>`${c},${s}`)),o=e.side/n,i=[];for(let c=0;c<n;c++)for(let s=0;s<n;s++)r.has(`${s},${c}`)||i.push([s,c]);i.sort((c,s)=>c[0]+c[1]-(s[0]+s[1])||c[0]-s[0]);let a=t.slice(0,i.length);return{buildings:a.map((c,s)=>{let[l,u]=i[s];return{id:c,col:e.col+(l+.5)*o,row:e.row+(u+.5)*o,footprint:o*.62,height:.55+xr(c)*.7}}),rest:Math.max(0,t.length-a.length)}}var wr={width:1200,height:760,focusSize:{width:1200,height:420},relationSize:{width:240,height:140},contextSize:{width:300,height:104},gap:16,unit:16};var br=(e,t)=>e?`${e.edgeKind}|${e.direction}`:`raised|${t}`,Tt=(e,t,n)=>`${yn}${e}|${t}|${n}`;function Di(e,t){if(!Gt(e))return null;let[n="",r="",o="",i=""]=e.slice(yn.length).split("|"),a=t.definitions.find(x=>x.kind===n),d=_t(t,n),c=r==="raised"?null:(()=>{let x=a?.edges[r]??t.definitions.map(f=>f.edges[r]).find(Boolean);return((o==="in"?x?.inverse:x?.description)??Vt(r)).toLowerCase()})(),[s="",l=""]=i.split("="),u=s.split(":")[0],h=i===""||i==="kind"||i.startsWith("more")?null:`${Yo(a,u).toLowerCase()}: ${l==="none"?"none":l}`;return[i.startsWith("more")?`More ${d.toLowerCase()}`:d,[c,h].filter(Boolean).join(", ")].filter(Boolean).join(" \u2014 ")}function kn(e,t){let n=e.map(()=>0),r=e.map((a,d)=>({size:a,index:d})).sort((a,d)=>a.size-d.size||a.index-d.index),o=Math.max(t,e.length),i=e.length;for(let{size:a,index:d}of r){let c=Math.max(1,Math.floor(o/i));n[d]=Math.min(a,c),o-=n[d],i-=1}return n}function fo(e){return br(e.via,e.node.kind)}function Sn(e,t){let n=[],r=0;return e.forEach((o,i)=>{if(o<=0)return;if(n.length>0&&o<=r){for(let d=0;d<o;d++)n[n.length-1].push(i);r-=o;return}let a=o;for(;a>0;){let d=Math.min(t,a);n.push(Array.from({length:d},()=>i)),a-=d,r=t-d}}),n}function yo(e,t,n){let r=kn(e,t*n);for(;Sn(r,t).length>n;){let o=-1;if(r.forEach((i,a)=>{i>1&&(o<0||i>r[o])&&(o=a)}),o<0)break;r[o]=r[o]-1}return r}function Fi(e,t,n){let r=o=>[t.chosen?.has(o.id)?0:1,t.hits?.has(o.id)?0:1,t.flagged?.has(o.id)?0:1,-(t.touched?.get(o.id)??0),-n.neighbors(o.id).length];return e.map((o,i)=>({node:o,index:i,key:r(o)})).sort((o,i)=>{for(let a=0;a<o.key.length;a++)if(o.key[a]!==i.key[a])return o.key[a]-i.key[a];return o.index-i.index}).map(o=>o.node)}var Bi=5,ji=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1};function vr(e,t,n){if(e.length===0||t<2)return;let r=e[0].kind,o={schema:n.schema,graph:n.graph,...n.today?{today:n.today}:{}},i=[];for(let d of Ko(n.schema,r).groups)if(d.key!==n.exclude)if(d.buckets)for(let c of["decade","year","month"])i.push({by:d.key,bucket:c});else i.push({by:d.key});let a;return i.forEach((d,c)=>{let l=ir(e,{group:d},o).groups;if(l.length<2||l.length>t)return;let h=l.filter(x=>x.key!=="").reduce((x,p)=>x+p.nodes.length,0)/e.length;if(h<.5||l.some(x=>x.nodes.length>e.length*.75))return;let g=[-Math.round(h*100),Math.abs(l.length-Bi),c];(!a||ji(g,a.score))&&(a={grouping:{by:d.by,...d.bucket?{bucket:d.bucket}:{},groups:l},score:g})}),a?.grouping}function go(e,t){let n=p=>({id:p.node.id,kind:p.node.kind,node:p.node,...p.via?{via:p.via}:{}});if(e.length<=t.budget)return e.map(n);let r={...t.relevance,chosen:new Set([...t.relevance?.chosen??[],...t.selection??[]])},o=new Map;for(let p of e){let f=br(p.via,p.node.kind),m=o.get(f);m?m.push(p):o.set(f,[p])}let i=[...o.entries()].map(([p,f])=>({key:p,run:f,via:f[0].via,kinds:[...new Set(f.map(m=>m.node.kind))],members:[],whole:!1,extra:0})),a=kn(i.map(p=>p.run.length),t.budget);i.forEach((p,f)=>p.whole=p.run.length<=a[f]);let d=i.filter(p=>!p.whole),c=i.filter(p=>p.whole).reduce((p,f)=>p+f.run.length,0),s=Math.max(d.length,t.budget-c);for(let p of d){p.members=Fi(p.run.map(m=>m.node),r,t.graph);let f=s-(d.length-1);p.kinds.length>1&&p.kinds.length<=f?p.byKind=!0:p.kinds.length===1&&(p.grouping=vr(p.members,f,{schema:t.schema,graph:t.graph,...p.via?{exclude:p.via.edgeKind}:{},...t.today?{today:t.today}:{}}))}let l=p=>p.byKind?p.kinds.length:p.grouping?p.grouping.groups.length:1;for(;d.reduce((p,f)=>p+l(f),0)>s;){let p=[...d].filter(f=>l(f)>1).sort((f,m)=>l(m)-l(f))[0];if(!p)break;p.grouping=void 0,p.byKind=!1}s-=d.reduce((p,f)=>p+l(f),0);let u=p=>p.byKind?p.kinds.some(f=>t.expanded.has(Tt(f,p.key,"kind"))):p.grouping?.groups.some(f=>t.expanded.has(Tt(p.kinds[0],p.key,ho(p.grouping,f.key)))),h=d.filter(p=>!p.grouping&&!p.byKind?!0:u(p)),g=kn(h.map(p=>p.members.length),Math.max(0,s));h.forEach((p,f)=>p.extra=s>0?g[f]:0);let x=[];for(let p of i){let{key:f,via:m}=p;if(p.whole){x.push(...p.run.map(n));continue}let b=w=>({id:w.id,kind:w.kind,node:w,...m?{via:m}:{}}),R=new Map(p.run.map((w,M)=>[w.node.id,M])),O=(w,M,C)=>{let B=[...w.slice(0,M)].sort((D,H)=>R.get(D.id)-R.get(H.id));x.push(...B.map(b));let A=w.slice(M);if(A.length===0)return;let $=A[0].kind;x.push({id:Tt($,f,C?`more:${C}`:"more"),kind:$,...m?{via:m}:{},aggregate:{kind:$,memberIds:A.map(D=>D.id),label:M>0?`${A.length} more ${t.plural($).toLowerCase()}`:`${A.length} ${t.plural($).toLowerCase()}`,opens:{in:"picture",focus:Ee($),within:C?{filter:C}:{}}}})},E=m&&t.focusId?`${m.edgeKind}:${t.focusId}`:void 0;if(p.byKind){let w=p.kinds.find(M=>t.expanded.has(Tt(M,f,"kind")));for(let M of p.kinds){let C=p.members.filter(B=>B.kind===M);if(M===w){let B=p.extra+1;C.length<=B?x.push(...C.map(b)):O(C,B-1,E);continue}x.push({id:Tt(M,f,"kind"),kind:M,...m?{via:m}:{},aggregate:{kind:M,memberIds:C.map(B=>B.id),label:t.plural(M),opens:{in:"place"}}})}continue}let S=p.grouping;if(!S){O(p.members,p.extra,E);continue}let j=p.kinds[0],k=S.groups.find(w=>t.expanded.has(Tt(j,f,ho(S,w.key))));for(let w of S.groups){if(w===k){let M=p.members.filter(B=>w.nodes.includes(B)),C=p.extra+1;if(M.length<=C)x.push(...M.map(b));else{let B=w.key!==""&&!w.key.includes(",")&&!S.bucket,A=[E,B?`${S.by}:${w.key}`:void 0].filter(Boolean).join(",")||void 0;O(M,C-1,A)}continue}x.push({id:Tt(j,f,ho(S,w.key)),kind:j,...m?{via:m}:{},aggregate:{kind:j,memberIds:p.members.filter(M=>w.nodes.includes(M)).map(M=>M.id),label:w.label.charAt(0).toUpperCase()+w.label.slice(1),opens:{in:"place"}}})}}return x}var ho=(e,t)=>`${e.by}${e.bucket?`:${e.bucket}`:""}=${t||"none"}`;function mo(e,t,n=6){return e.x<t.x+t.width+n&&t.x<e.x+e.width+n&&e.y<t.y+t.height+n&&t.y<e.y+e.height+n}var kr=(e,t)=>ve(e.col+e.side/2,e.row+e.side/2,t);function po(e,t,n,r,o={},i={}){let a={};for(let L of e)a[L.kind]=L.count;let d=so(t,{...i.order?{order:i.order}:{},counts:a,...i.plots?{plots:i.plots}:{}}),c=o.left??0,s=r.width-c-(o.right??0),l=c+s/2,u=r.height*.53,h=co(d),g=[ve(h.minCol,h.minRow,1),ve(h.maxCol,h.minRow,1),ve(h.minCol,h.maxRow,1),ve(h.maxCol,h.maxRow,1)],x=Math.min(...g.map(L=>L.x)),p=Math.max(...g.map(L=>L.x)),f=Math.min(...g.map(L=>L.y)),m=Math.max(...g.map(L=>L.y)),b={x:Math.max(1,p-x),y:Math.max(.5,m-f)},R=Math.max(40,s-n.width*1.1),O=Math.max(24,r.height*.62-n.height*1.1),E=Math.max(18,Math.min(160,R/b.x,O/b.y)),S=i.scale??1,j=i.minHeight??0,k=i.avoid??[],w=0,M=(L,z,v=1,N={x:0,y:0})=>{let T=l-(x+p)/2*L+N.x+w,G=u-(f+m)/2*L+N.y,F={width:n.width*z,height:n.height*z},re=e.map(J=>kr(d.get(J.kind),L).y),ie=Math.max(...re),de=Math.min(...re);return e.map(J=>{let Ae=d.get(J.kind),Se=kr(Ae,L),et=ie===de?.5:(Se.y-de)/(ie-de),Ye=.85+et*.45,U=F.width*Ye,Le=Math.max(j,F.height*Ye),tt=Le+(J.marquee??0)+(J.opened>0?Math.max(J.openedMin??0,J.opened*v):0);return{id:J.id,x:T+Se.x-U/2,y:G+Se.y-Le/2,width:U,height:tt,depth:1-et*.65,plot:Ae}})},C=L=>L.some((z,v)=>L.some((N,T)=>T!==v&&mo(z,N)))||L.some(z=>k.some(v=>mo(z,v))),B=L=>{if(k.length===0)return[{x:0,y:0}];let z=Math.max(...k.map(T=>T.width))/2+L,v=Math.max(...k.map(T=>T.height))/2+L/2,N=[{x:0,y:0}];for(let T of[.5,.75,1,1.25]){let G=z*T,F=v*T;N.push({x:G,y:0},{x:-G,y:0},{x:0,y:F},{x:0,y:-F},{x:G,y:F},{x:-G,y:F},{x:G,y:-F},{x:-G,y:-F})}return N},A=r.width-(o.right??0),$=L=>L.reduce((z,v)=>{let N=Math.max(0,Math.min(v.x+v.width,r.width)-Math.max(v.x,0)),T=Math.max(0,Math.min(v.y+v.height,r.height)-Math.max(v.y,0));return z+v.width*v.height-N*T},0),D=(L,z,v)=>{let N,T;for(let G of B(L)){let F=M(L,z,v,G);if(C(F)){T??={placed:F,shift:G};continue}let re=$(F);(!N||re<N.off-.5)&&(N={placed:F,shift:G,off:re})}return N??T},H=E,Y=S,K=1,W=D(H,Y,K);for(;C(W.placed)&&Y>1.001;)Y=Math.max(1,Y-.05),W=D(H,Y,K);for(;C(W.placed)&&K>.3;)K=Math.max(.3,K-.1),W=D(H,Y,K);if(C(W.placed)||$(W.placed)>0){let L=C(W.placed)?void 0:{cell:H,settled:W,off:$(W.placed)};for(let z=.9;z>=.3;z-=.1){let v=E*z,N=D(v,Y,K);if(C(N.placed))continue;let T=$(N.placed);if((!L||T<L.off-.5)&&(L={cell:v,settled:N,off:T}),T===0)break}L&&(H=L.cell,W=L.settled)}for(let L=0;C(W.placed)&&L<80;L++)H*=1.06,W=D(H,Y,K);if(k.length===0){let L=Math.min(...W.placed.map(N=>N.x)),z=Math.max(...W.placed.map(N=>N.x+N.width)),v=z-L>A-c?0:L<c?c-L:z>A?A-z:0;if(v!==0){w=v;let N=M(H,Y,K,W.shift);C(N)?w=0:W={placed:N,shift:W.shift}}}i.zoom&&i.zoom!==1&&(H*=i.zoom,w*=i.zoom,W=D(H,Y,K));let ge=W.placed,me=l-(x+p)/2*H+W.shift.x+w,X=u-(f+m)/2*H+W.shift.y,oe={cell:H,originX:me,originY:X,pan:i.pan??{x:0,y:0},extent:{x:me+x*H,y:X+f*H,width:b.x*H,height:b.y*H},openedShare:K};return{placed:ge,frame:oe,map:d}}function wt(e){let t={x:e.width*.45,y:e.height*.45};if(!e.city)return t;let{extent:n}=e.city,r=24;return{x:Math.max(t.x,n.x+n.width-e.width+r,-n.x+r),y:Math.max(t.y,n.y+n.height-e.height+r,-n.y+r)}}var Mn=48;function xo(e){if(!e.city)return[];let{width:t,height:n}=e,r=[];for(let o of e.nodes){if(!o.id.startsWith("kind:")||Math.round(o.plane)!==2)continue;let i=o.x+o.width/2,a=o.y+o.height/2,d=i<0?"left":i>t?"right":a<0?"top":a>n?"bottom":null;if(!d)continue;let c=d==="left"||d==="right",s=c?Math.max(0,Math.min(n,a)):Math.max(0,Math.min(t,i)),l=(g,x)=>g<x/4?x/4-g:g>x*3/4?x*3/4-g:0,u=(g,x)=>g<Mn?Mn-g:g>x-Mn?x-Mn-g:0,h=c?{x:l(i,t),y:u(a,n)}:{x:u(i,t),y:l(a,n)};r.push({id:o.id,kind:o.id.slice(5),side:d,along:s,by:h})}return r}function wo(e,t,n,r,o){return{x:e.x+(n.x-e.x-t.x-r.x)*(1-o),y:e.y+(n.y-e.y-t.y-r.y)*(1-o)}}var Vi={rankOf:()=>{},parentOf:()=>{}};function Sr(e,t){if(t.size===0)return Vi;let n=e.kinds,r=new Map,o=(s,l)=>{s!==l&&((r.get(s)??r.set(s,new Set).get(s)).add(l),(r.get(l)??r.set(l,new Set).get(l)).add(s))};for(let s of n){let l=e.tryDefinition(s);if(l)for(let u of Object.values(l.edges??{})){let h=u.to==="*"?n:u.to;for(let g of h)o(s,g)}}let i=new Map,a=new Map,d=[...t].filter(s=>n.includes(s));for(let s of d)i.set(s,0);let c=0;for(;d.length>0;){c+=1;let s=[];for(let l of[...d].sort((u,h)=>n.indexOf(u)-n.indexOf(h)))for(let u of[...r.get(l)??[]].sort((h,g)=>n.indexOf(h)-n.indexOf(g)))i.has(u)||(i.set(u,c),c===2&&a.set(u,l),s.push(u));d=s}return{rankOf:s=>{let l=i.get(s);if(l!==0)return l===1?"primary":"secondary"},parentOf:s=>a.get(s)}}function Mr(e,t,n,r,o={}){if(n){let i=new Map;for(let a of e.allEdges()){if(r&&a.kind!==r)continue;let d=a.from===n.id?a.to:a.to===n.id?a.from:null;if(d===null||d===n.id)continue;let c=e.getNode(d);if(!c||i.has(d))continue;let s=a.from===n.id?"out":"in",l=s==="out"?n.kind:c.kind,u=Wi(t,l,a.kind,s);i.set(d,{node:c,via:{edgeKind:a.kind,direction:s,...u?{description:u}:{}}})}if(i.size>0){let a=d=>`${d.via.edgeKind}|${d.via.description??""}`;return[...i.values()].sort((d,c)=>(a(d)<a(c)?-1:a(d)>a(c)?1:0)||dt(d.node,c.node))}}if(n){let i=o[n.id]??[],a=new Set,d=[];for(let c of i){if(c===n.id||a.has(c))continue;let s=e.getNode(c);s&&(r&&r!=="judges"&&s.kind!==r||(a.add(c),d.push({node:s,via:{edgeKind:"judges",direction:"out",description:"what it finds wrong"}})))}if(d.length>0)return d.sort((c,s)=>dt(c.node,s.node))}return r?e.allNodes().filter(i=>i.kind===r).sort(dt).map(i=>({node:i})):[]}function Wi(e,t,n,r){let i=e.tryDefinition(t)?.edges?.[n];return r==="out"?i?.description:i?.inverse}function Rr(e,t,n){let r=new Map,o=[...t.values()].sort((s,l)=>s.plane-l.plane);for(let s of o)for(let l of s.aggregate?.memberIds??[])!t.has(l)&&!r.has(l)&&r.set(l,s.id);let i=s=>t.get(s)??t.get(r.get(s)??""),a=new Map,d=new Map,c=new Map;for(let s of e.allEdges()){let l=i(s.from),u=i(s.to);if(!l||!u||l.id===u.id&&!(n.overview&&l.aggregate&&l.plane===2))continue;let h=`${s.kind}:${l.id}:${u.id}`,g=a.get(h);if(g){let x=`${s.from}
|
|
2
|
-
${s.to}`,p=d.get(h);if(p.has(x))continue;if(p.add(x),c.get(h).push({from:s.from,to:s.to}),g.single){let{single:f,...m}=g;a.set(h,m)}continue}d.set(h,new Set([`${s.from}
|
|
3
|
-
${s.to}`])),c.set(h,[{from:s.from,to:s.to}]),a.set(h,{id:h,kind:s.kind,from:l.id,to:u.id,edges:[{from:s.from,to:s.to}],single:{from:s.from,to:s.to},...l.id===u.id?{loop:!0}:{},x1:l.x+l.width/2,y1:l.y+l.height/2,x2:u.x+u.width/2,y2:u.y+u.height/2})}return[...a.values()].map(s=>({...s,edges:c.get(s.id)})).sort(dt)}var Pr=.85,Or=60,Rn=160,Cr=2,Yi=240,zi=300,Ki=52,Er=60;function Gi(e,t,n,r,o,i=Pr){let a=e*t.width+Math.max(0,e-1)*n,d=Math.max(n,(r-a)/2);return Array.from({length:e},(c,s)=>({x:d+s*(t.width+n),y:o,depth:i}))}function Ui(e,t,n,r,o){let i=e*t.width+Math.max(0,e-1)*n,a=Math.max(n,(r-i)/2);return Array.from({length:e},(d,c)=>({x:a+c*(t.width+n),y:o}))}function On(e,t,n,r={}){let o={...wr,...r},i=Math.max(8,o.unit??16)/16,a=o.inset?.left??0,d=o.width-a-(o.inset?.right??0),c=[],s=new Map,l=y=>n.past===!0||Wo(t.tryDefinition(y.kind),y,o.today),u=new Set(r.hiddenKinds??[]),h=y=>!u.has(y.kind),g=n.focusId?xt(n.focusId).filter(y=>t.tryDefinition(y)!==void 0).filter(y=>!u.has(y)):[];n.focusId&&xt(n.focusId).length>0&&g.length===0&&(n={...n,focusId:null});let x=n.focusId?e.getNode(n.focusId):void 0;x&&!h(x)&&(n={...n,focusId:null},g=[]);let p=g.length>0?[...e.allNodes()].filter(y=>g.includes(y.kind)).sort(dt):[],f=p.filter(h).filter(l),m=p.length-f.length,b=n.focusId&&g.length===0?e.getNode(n.focusId):void 0,R=n.zoom===!0&&!n.overview&&n.focusId!==null,O=Math.max(56,o.height*.062),E=Math.min(o.height*.895,o.height-O),S=R?b!==void 0?{focusY:o.height*.03,focusH:o.height*.58,relationY:o.height*.645,relationH:o.height*.2,contextY:E,contextH:O}:{focusY:o.height*.03,focusH:o.height*.71,relationY:o.height*.765,relationH:o.height*.1,contextY:E,contextH:O}:b===void 0?{focusY:o.height*.045,focusH:o.height*.62,relationY:o.height*.68,relationH:o.height*.2,contextY:o.height*.918,contextH:o.height*.082}:(()=>{let y=o.height,I=y*.04,_=Math.max(y*.42,Math.min(y*.56,300)),Q=I+_+y*.06;return{focusY:I,focusH:_,relationY:Q,relationH:Math.max(y*.12,y*.878-y*.068-Q),contextY:y*.878,contextH:y*.092}})(),j=y=>Math.min(o.gap*y,Math.round(d*.1)),k=R?Math.min(880,d-j(5)):Math.min(700,d-j(6)),w=R?d-j(5):Math.min(o.focusSize.width,d-j(6)),M=(y,I,_)=>({width:y===0?I:Math.min(I,(d-o.gap*(y+1))/y),height:_}),C=(y,I,_)=>{let Q=M(y,I,_),we=Math.min(I,Rn*i,d-o.gap*2);return Q.width>=we?Q:{width:we,height:_}},B=y=>Math.max(1,Math.floor((d-o.gap)/(Math.min(y,Rn*i,d-o.gap*2)+o.gap))),A=new Set(n.expanded),$=n.overview?[]:Mr(e,t,b,n.relation,o.judged).filter(y=>h(y.node)).filter(y=>l(y.node)),D=$.length>0?S.focusH:S.contextY-S.focusY-o.gap*2,H=w,Y=o.height,K=Math.min(d*.5/H,o.height*.48/Y),W=H*K,ge=Y*K,me=new Set(r.plainGroups??[]),X=n.overview&&!b&&g.length>0&&n.focusId!==null,oe=X&&g.length>0&&g.every(y=>me.has(y));if(X)for(let y of g)oe?A.add(ce(y)):A.delete(ce(y));let L=X&&!oe&&g.length===1?g[0]:void 0,z=L?r.screens?.[L]??[]:[],v=z.find(y=>y.as===n.within?.view)??z[0],N=L!==void 0&&v!==void 0,T;n.overview&&(b||g.length>0)&&n.focusId&&!oe?(T={x:a+(d-W)/2,y:o.height*.53-ge/2,width:W,height:ge},Zt({id:n.focusId,kind:b?b.kind:g[0],plane:0,x:T.x,y:T.y,width:W,height:ge,natural:{width:H,height:Y},...b?{}:{aggregate:{kind:g.join("+"),memberIds:f.map(y=>y.id),label:r.plurals?.[n.focusId]??g.map(y=>Wt(t,y)).join(" and "),...m>0?{retired:m}:{}}}})):n.overview||(b?Zt({id:b.id,kind:b.kind,plane:0,x:a+(d-k)/2,y:S.focusY,width:k,height:D}):g.length>0&&n.focusId&&Zt({id:n.focusId,kind:g[0],plane:0,x:a+(d-w)/2,y:S.focusY,width:w,height:D,aggregate:{kind:g.join("+"),memberIds:f.map(y=>y.id),label:r.plurals?.[n.focusId]??g.map(y=>Wt(t,y)).join(" and "),...m>0?{retired:m}:{}}}));let G=26,F=52,re=22,ie=Math.round(o.relationSize.width*.75),de=Math.max(1,Math.floor((d-o.gap)/(ie+o.gap))),J=o.unit/16,Ae=Math.max(2,Math.floor((S.relationH+o.gap)/(G*J+o.gap))),Se=$.length>de*Ae,et={schema:t,graph:e,focusId:b?.id,expanded:A,...o.relevance?{relevance:o.relevance}:{},...n.selection?{selection:n.selection}:{},plural:y=>Wt(t,y),...o.today?{today:o.today}:{}},Ye=Se?Math.max(o.gap,re*J):o.gap,U,Le;if(!Se)U=$.map(y=>({id:y.node.id,kind:y.node.kind,node:y.node,...y.via?{via:y.via}:{}})),Le=Array.from({length:Math.max(1,Math.ceil(U.length/de))},(y,I)=>Array.from({length:Math.min(de,U.length-I*de)},(_,Q)=>I*de+Q));else{let y=Math.max(1,Math.floor((S.relationH+Ye)/(F*J+Ye))),I=new Map;for(let fe of $){let pe=fo(fe),Ge=I.get(pe);Ge?Ge.push(fe):I.set(pe,[fe])}let _=yo([...I.values()].map(fe=>fe.length),de,y),Q=[...I.values()].map((fe,pe)=>go(fe,{...et,budget:_[pe]}));U=Q.flat();let we=Q.map((fe,pe)=>Q.slice(0,pe).reduce((Ge,Bt)=>Ge+Bt.length,0)),st=Q.map(()=>0);Le=Sn(Q.map(fe=>fe.length),de).map(fe=>fe.map(pe=>we[pe]+st[pe]++))}let tt=Le.length,nt=tt===1?S.relationH:(S.relationH-Ye*(tt-1))/tt,Fe=M(Math.max(...Le.map(y=>y.length),1),U.length<=2?Math.round(o.relationSize.width*1.35):o.relationSize.width,nt),Je=[];Le.forEach((y,I)=>{let _=Ui(y.length,Fe,o.gap,d,S.relationY+I*(nt+Ye));y.forEach((Q,we)=>Je[Q]={..._[we],x:_[we].x+a})}),U.forEach((y,I)=>{let _=Je[I];Zt({id:y.id,kind:y.kind,plane:1,x:_.x,y:_.y,width:Fe.width,height:Fe.height,...y.via?{via:y.via}:{},...y.aggregate?{aggregate:y.aggregate}:{},...Se&&!y.aggregate?{compact:!0}:{}})});let ht=new Set(s.keys());for(let y of f)ht.add(y.id);let Ne=new Map;for(let y of e.allNodes()){let I=Ne.get(y.kind);I?I.push(y):Ne.set(y.kind,[y])}let ft=new Set(g.length>0?g:b?[b.kind]:[]),yt=[];for(let y of t.kinds){if(u.has(y))continue;let I=Ne.get(y)??[],_=I.filter(l);yt.push({id:ce(y),kind:y,members:_.sort(dt),retired:I.length-_.length,...ft.has(y)?{focused:!0}:{}})}for(let y of yt)y.kind===n.relation&&(y.raised=!0);yt.sort(dt);let ze=Sr(t,ft),ot=!n.overview&&t.kinds.some(y=>ze.rankOf(y)==="primary"),Ie=[];for(let y of yt)if(!n.overview&&A.has(y.id)&&y.members.length>0)for(let I of y.members)Ie.push({id:I.id,kind:I.kind});else{let I=ot?ze.rankOf(y.kind):void 0,_=I==="secondary"?ze.parentOf(y.kind):void 0;Ie.push({id:y.id,kind:y.kind,...y.raised?{raised:!0}:{},...y.focused?{focused:!0}:{},...n.overview&&A.has(y.id)?{opened:!0}:{},...I?{rank:I}:{},..._&&!A.has(ce(_))?{nestedUnder:ce(_)}:{},aggregate:{kind:y.kind,memberIds:y.members.map(Q=>Q.id),label:r.plurals?.[y.kind]??Wt(t,y.kind),...y.retired>0?{retired:y.retired}:{}}})}let kt=2;if(Ie.length<=B((R?240:o.contextSize.width)*i))for(let y of Ie)delete y.nestedUnder;let xe=new Map;for(let y of Ie){if(y.nestedUnder===void 0)continue;let I=xe.get(y.nestedUnder)??0;I>=kt?delete y.nestedUnder:xe.set(y.nestedUnder,I+1)}let rt=Ie.filter(y=>y.nestedUnder!==void 0),Me=Ie.filter(y=>y.nestedUnder===void 0),gt=B((R?240:o.contextSize.width)*i),mt=!n.overview&&Me.length>gt,St=Math.max(0,gt-1),P=y=>y.focused?0:y.raised?1:2,ae=new Set([...Me].map((y,I)=>({item:y,at:I})).sort((y,I)=>P(y.item)-P(I.item)||y.at-I.at).slice(0,St).map(({item:y})=>y.id)),he=new Set(mt?Me.filter(y=>!ae.has(y.id)).map(y=>y.id):[]),Re=rt.filter(y=>!he.has(y.nestedUnder)),it=rt.filter(y=>he.has(y.nestedUnder)),at=mt?[...Me.filter(y=>ae.has(y.id)),{id:er,kind:"",beyond:[...Me.filter(y=>he.has(y.id)),...it].map(y=>y.kind)}]:Me,Ke=n.overview?{width:Math.min(220,d/6.5),height:Math.min(92,o.height*.125)}:C(at.length,(R?240:o.contextSize.width)*i,S.contextH),Be=n.overview?po(at.map(y=>({id:y.id,kind:y.kind,count:y.aggregate?.memberIds.length??0,opened:A.has(y.id)?Ct(Pt(y.aggregate?.memberIds.length??0))*i:0,openedMin:A.has(y.id)?Ct(Math.min(Zn,Pt(y.aggregate?.memberIds.length??0)))*i:0,...(r.screens?.[y.kind]?.length??0)>0?{marquee:Ut((r.screens?.[y.kind]??[]).map(I=>I.title),Rn*i,r.nameWidth)*i}:{}})),t,Ke,{width:o.width,height:o.height},o.inset??{},{...o.cityOrder?{order:o.cityOrder}:{},...o.plots?{plots:o.plots}:{},scale:i,minHeight:Or*i,...r.cityZoom&&r.cityZoom!==1?{zoom:r.cityZoom}:{},pan:{x:n.pan?.x??0,y:n.pan?.y??0},...T&&!N?{avoid:[T]}:{}}):null,an=new Map(Be?.placed.map(y=>[y.id,y.plot])??[]),Ft=Be?Be.placed.map(({x:y,y:I,depth:_,width:Q,height:we})=>({x:y,y:I,depth:_,width:Q,height:we})):Gi(at.length,Ke,o.gap,d,S.contextY,R?.97:Pr).map(y=>({...y,x:y.x+a})),Ci=.74,sn=.8,Ai=52*i,Li=86*i,jn=(y,I)=>Math.min(1,y+(1-y)*I),Vn=new Map;at.forEach((y,I)=>{let _=Ft[I],Q=_.width??Ke.width,we=_.height??Ke.height,st=y.rank==="secondary"?Ci:1,fe=Math.max(Math.min(Q,Rn*i),Q*st),pe=Math.max(Or*i,we*st);Vn.set(y.id,{x:_.x+(Q-fe)/2,y:_.y+(we-pe),depth:y.rank==="secondary"?jn(_.depth,.5):_.depth,width:fe,height:pe})});let dn=[],ln=Ft[Ft.length-1],Wn=new Map;for(let y of Re)Wn.set(y.nestedUnder,(Wn.get(y.nestedUnder)??0)+1);let $o=new Map;for(let y of Re){let I=Vn.get(y.nestedUnder);if(I){let _=Wn.get(y.nestedUnder)??1,Q=$o.get(y.nestedUnder)??0;$o.set(y.nestedUnder,Q+1);let we=.98,st=Ke.width*sn,fe=Math.max(Li,Math.min(st,I.width/(we*(_-1)+1))),pe=Math.max(Ai,Ke.height*sn*(fe/st)),Ge=fe*we,Bt=(_-1)*Ge+fe;dn.push({...y,x:I.x+(I.width-Bt)/2+Q*Ge,y:Math.max(0,I.y-pe+Math.min(pe*.5,16)),width:fe,height:pe,depth:jn(I.depth,.8)})}else if(ln){let _=Ke.width*sn,Q=Ke.height*sn;dn.push({...y,x:ln.x,y:ln.y,width:_,height:Q,depth:jn(ln.depth??1,.8)})}}for(let y of at)dn.push({...y,...Vn.get(y.id)});if(dn.forEach(y=>{Zt({id:y.id,kind:y.kind,plane:2,x:y.x,y:y.y,width:y.width,height:y.height,...y.aggregate?{aggregate:y.aggregate}:{},...y.raised?{raised:!0}:{},...y.focused?{focused:!0}:{},...y.opened?{opened:!0}:{},...y.opened?{openedRows:Math.max(1,Math.floor((Math.max(Ct(Math.min(Zn,Pt(y.aggregate?.memberIds.length??0))),Ct(Pt(y.aggregate?.memberIds.length??0))*(Be?.frame.openedShare??1))-tr)/gn))}:{},...y.rank?{rank:y.rank}:{},...y.nestedUnder?{nestedUnder:y.nestedUnder}:{},...y.beyond?{beyond:y.beyond}:{},...an.has(y.id)?{plot:an.get(y.id)}:{},depth:y.depth})}),N&&Be&&T&&n.focusId){let y=Be.frame,I=Be.map.get(L),_=v?.across?Be.map.get(v.across):void 0;if(I){let we=(Z=>{let Pe=ve(Z.col,Z.row,y.cell),Oe=ve(Z.col+Z.side/2,Z.row+Z.side/2,y.cell);return{top:{x:y.originX+Pe.x,y:y.originY+Pe.y},center:{x:y.originX+Oe.x,y:y.originY+Oe.y}}})(I),st=we.center.x,fe=we.top.y+y.cell*.1,pe=o.screenHeight!==void 0&&o.screenHeight>0?Math.min(Y,Math.max(Yi,Math.round(o.screenHeight))):Y,Ge=pe/H,Bt=Math.max(1,(r.cityZoom??1)/1.5),Ii=d*.78*Bt,Ho=o.height*.72*Bt,_n=Math.min(zi*i,d*.5),cn=Math.max(_n,Math.min(Ii,I.side*y.cell*2.4));cn*Ge>Ho&&(cn=Ho/Ge);let Ni=[...s.values()].filter(Z=>Z.plane===2&&Z.id!==ce(L)),Do=Z=>{let Pe=Z*Ge,Oe=fe-Pe;return{x:st-Z/2,y:Oe,width:Z,height:Pe}},jt=Do(cn),Ti=Z=>Ni.some(Pe=>{let Oe={x:Pe.x-(n.pan?.x??0)-Er*i,y:Pe.y-(n.pan?.y??0),width:Pe.width+Er*i*2,height:Pe.height+Ki*i};return Z.x<Oe.x+Oe.width&&Oe.x<Z.x+Z.width&&Z.y<Oe.y+Oe.height&&Oe.y<Z.y+Z.height});for(let Z=cn;Ti(jt)&&Z>_n+1;Z=Math.max(_n,Z*.92))jt=Do(Z);let un=c.findIndex(Z=>Z.id===n.focusId);if(un!==-1){let Z={x:jt.x,y:jt.y},Pe=n.pins[c[un].id],Oe=Pe?{x:Pe.x-Z.x,y:Pe.y-Z.y}:{x:0,y:0},Fo=Math.hypot(Oe.x,Oe.y),Bo=Cr*y.cell,jo=Fo>Bo?Bo/Fo:1,Vo={x:Z.x+Oe.x*jo,y:Z.y+Oe.y*jo},Yn={...c[un],x:Vo.x+(n.pan?.x??0),y:Vo.y+(n.pan?.y??0),width:jt.width,height:jt.height,natural:{width:H,height:pe},screenOf:L,...Pe?{pinned:!0}:{}};c[un]=Yn,s.set(Yn.id,Yn)}}}return{nodes:c,connectors:Rr(e,s,n),width:o.width,height:o.height,...Be?{city:Be.frame}:{}};function Zt(y){let I=n.pins[y.id],_=I?{...y,x:I.x,y:I.y,pinned:!0}:{...y,pinned:!1},Q=n.pan?{..._,x:_.x+n.pan.x,y:_.y+n.pan.y}:_;c.push(Q),s.set(Q.id,Q)}}function bo(e,t,n){let r=e.nodes.find(d=>d.id===t);if(!r||r.screenOf!==void 0)return null;let o={...r,x:n.x,y:n.y,pinned:!0},i=o.x+o.width/2,a=o.y+o.height/2;return{...e,nodes:e.nodes.map(d=>d.id===t?o:d),connectors:e.connectors.map(d=>d.from===t?{...d,x1:i,y1:a}:d.to===t?{...d,x2:i,y2:a}:d)}}function vo(e,t){return t.x===0&&t.y===0?e:{...e,nodes:e.nodes.map(n=>({...n,x:n.x+t.x,y:n.y+t.y})),connectors:e.connectors.map(n=>({...n,x1:n.x1+t.x,y1:n.y1+t.y,x2:n.x2+t.x,y2:n.y2+t.y})),...e.city?{city:{...e.city,pan:{x:t.x,y:t.y}}}:{}}}var ye=(e,t,n)=>e+(t-e)*n;function Ar(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}var Lr=new WeakMap;function Xi(e){let t=Lr.get(e);if(t)return t;let n=new Map,r=new Map;for(let o of e.nodes){n.set(o.id,o);for(let i of o.aggregate?.memberIds??[]){let a=r.get(i);a?a.push(o):r.set(i,[o])}}return t={byId:n,groupsOf:r},Lr.set(e,t),t}var Ir=new WeakMap;function Nr(e,t){let n=Ir.get(t);if(n||Ir.set(t,n=new WeakMap),n.has(e))return n.get(e);let r=qi(e,t);return n.set(e,r),r}function qi(e,t){let{byId:n,groupsOf:r}=Xi(t);if(e.screenOf!==void 0){let a=n.get(ce(e.screenOf));if(a)return{...e,x:a.x,y:a.y,width:a.width,height:a.height}}if(Et(e.id)||$e(e.id)!==null){let a=(e.aggregate?.memberIds??[]).map(l=>n.get(l)).filter(l=>l!==void 0);if(a.length===0)return null;let d=a.map(Ar),c=d.reduce((l,u)=>l+u.x,0)/d.length,s=d.reduce((l,u)=>l+u.y,0)/d.length;return{...e,x:c-e.width/2,y:s-e.height/2}}let o=r.get(e.id)?.find(a=>a.id===ce(e.kind)||a.id===Ee(e.kind));if(!o)return null;let i=Ar(o);return{...e,x:i.x-e.width/2,y:i.y-e.height/2}}function $t(e,t,n){let r=Math.max(0,Math.min(1,n)),o=new Map(e.nodes.map(l=>[l.id,l])),i=new Map(t.nodes.map(l=>[l.id,l])),a=[];for(let[l,u]of o){let h=i.get(l);if(h){a.push(ko(u,h,r,1));continue}let g=Nr(u,t)??u;a.push(ko(u,g,r,1-r))}for(let[l,u]of i){if(o.has(l))continue;let h=Nr(u,e)??u;a.push(ko(h,u,r,r))}let d=new Map(e.connectors.map(l=>[l.id,l])),c=new Map(t.connectors.map(l=>[l.id,l])),s=[];for(let[l,u]of d){let h=c.get(l);s.push(h?{...Qi(u,h,r),opacity:1}:{...u,opacity:1-r})}for(let[l,u]of c)d.has(l)||s.push({...u,opacity:r});return{nodes:a.filter(l=>l.opacity>0).sort((l,u)=>l.id<u.id?-1:l.id>u.id?1:0),connectors:s.filter(l=>l.opacity>0).sort((l,u)=>l.id<u.id?-1:l.id>u.id?1:0),width:ye(e.width,t.width,r),height:ye(e.height,t.height,r),t:r,...Tr(e.city,t.city,r)?{city:Tr(e.city,t.city,r)}:{}}}function Tr(e,t,n){return e?t?{cell:ye(e.cell,t.cell,n),originX:ye(e.originX,t.originX,n),originY:ye(e.originY,t.originY,n),pan:{x:ye(e.pan.x,t.pan.x,n),y:ye(e.pan.y,t.pan.y,n)},extent:{x:ye(e.extent.x,t.extent.x,n),y:ye(e.extent.y,t.extent.y,n),width:ye(e.extent.width,t.extent.width,n),height:ye(e.extent.height,t.extent.height,n)}}:e:t}function ko(e,t,n,r){return{id:t.id,kind:t.kind,plane:ye(e.plane,t.plane,n),x:ye(e.x,t.x,n),y:ye(e.y,t.y,n),width:ye(e.width,t.width,n),height:ye(e.height,t.height,n),pinned:t.pinned,opacity:r,...t.aggregate?{aggregate:t.aggregate}:{},...t.via?{via:t.via}:{},...t.raised?{raised:!0}:{},...t.focused?{focused:!0}:{},...t.opened?{opened:!0}:{},...t.openedRows!==void 0?{openedRows:t.openedRows}:{},...t.compact?{compact:!0}:{},...t.rank?{rank:t.rank}:{},...t.nestedUnder?{nestedUnder:t.nestedUnder}:{},...t.beyond?{beyond:t.beyond}:{},...t.plot?{plot:t.plot}:{},...t.screenOf?{screenOf:t.screenOf}:{},...t.depth===void 0?{}:{depth:ye(e.depth??1,t.depth,n)},...t.natural?{natural:t.natural}:{}}}function Qi(e,t,n){return{...t,x1:ye(e.x1,t.x1,n),y1:ye(e.y1,t.y1,n),x2:ye(e.x2,t.x2,n),y2:ye(e.y2,t.y2,n)}}function En(e){let t=Math.max(0,Math.min(1,e));return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function Zi(e,t){let n=[];for(let o=0;o<e.length;o+=1){let i=e[o],a=e[(o+1)%e.length];if(i.y===a.y)continue;let d=Math.min(i.y,a.y),c=Math.max(i.y,a.y);t<d||t>=c||n.push(i.x+(t-i.y)/(a.y-i.y)*(a.x-i.x))}n.sort((o,i)=>o-i);let r={x0:0,x1:0};for(let o=0;o+1<n.length;o+=2){let i={x0:n[o],x1:n[o+1]};i.x1-i.x0>r.x1-r.x0&&(r=i)}return r}function Ji(e){let t=1/0,n=-1/0;for(let r of e)r.y<t&&(t=r.y),r.y>n&&(n=r.y);return{top:t,bottom:n}}function ea(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e[n],o=e[(n+1)%e.length];t+=r.x*o.y-o.x*r.y}return Math.abs(t)/2}function ta(e){let t=0,n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o],a=e[(o+1)%e.length],d=i.x*a.y-a.x*i.y;t+=d,n+=(i.x+a.x)*d,r+=(i.y+a.y)*d}if(Math.abs(t)<1e-9){let o=e.reduce((i,a)=>({x:i.x+a.x,y:i.y+a.y}),{x:0,y:0});return{x:o.x/e.length,y:o.y/e.length}}return{x:n/(3*t),y:r/(3*t)}}function na(e,t){let{room:n,height:r,size:o,floor:i,measure:a=Jn,lines:d=2}=t,c=(p,f)=>p.every(m=>a(m,f)<=n)&&p.length*f*1.15<=r;if(c([e],o))return{lines:[e],fontSize:o,whole:!0};let s=e.split(/\s+/);if(d>1&&s.length>1){let p=1,f=1/0,m=0;for(let R=0;R<s.length-1;R+=1){m+=s[R].length+1;let O=Math.abs(m-e.length/2);O<f&&(f=O,p=R+1)}let b=[s.slice(0,p).join(" "),s.slice(p).join(" ")];if(c(b,o))return{lines:b,fontSize:o,whole:!0};for(let R=o;R>=i;R-=o*.06)if(c(b,R))return{lines:b,fontSize:R,whole:!0}}for(let p=o;p>=i;p-=o*.06)if(c([e],p))return{lines:[e],fontSize:p,whole:!0};let l=a(e,i)/Math.max(1,e.length),u=Math.floor(n/l)-1;if(u<4||i*1.15>r)return null;let h=e.slice(0,u),g=h.lastIndexOf(" ");return{lines:[`${g>3?h.slice(0,g):h}\u2026`],fontSize:i,whole:!1}}var oa=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1;var q=ee(He(),1);var De=ee(He(),1);var ra=520;function ia(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function $r(e,t={}){let n=t.duration??ra,r=(t.enabled??!0)&&!ia(),o=(0,De.useRef)(e),[i,a]=(0,De.useState)(()=>$t(e,e,1)),d=(0,De.useRef)(i),c=(0,De.useRef)(null),s=(0,De.useRef)(null);return(0,De.useEffect)(()=>{if(!r||typeof requestAnimationFrame>"u"){o.current=e;let f=$t(e,e,1);if(d.current=f,a(f),typeof requestAnimationFrame>"u")return;let m=requestAnimationFrame(()=>{let b=$t(e,e,1);d.current=b,a(b)});return()=>cancelAnimationFrame(m)}let l=performance.now(),h=s.current!==null&&d.current.t<1&&l-s.current<n?s.current:l;s.current=h;let g=En(Math.min(1,(l-h)/n)),x=o.current,p=f=>{let m=Math.min(1,(f-h)/n),b=g>=1?1:(En(m)-g)/(1-g),R=$t(x,e,Math.max(0,b));d.current=R,a(R),m<1?c.current=requestAnimationFrame(p):(s.current=null,o.current=e,c.current=requestAnimationFrame(()=>{let O=$t(e,e,1);d.current=O,a(O),c.current=null}))};return c.current=requestAnimationFrame(p),()=>{c.current!==null&&cancelAnimationFrame(c.current);let f=d.current;o.current={...e,...f.city?{city:f.city}:{},nodes:f.nodes.map(m=>({...m,plane:Math.round(m.plane)})),connectors:f.connectors}}},[e,n,r]),i}function Hr(e=1100){let{store:t}=le(),[n,r]=(0,De.useState)(()=>new Set);return(0,De.useEffect)(()=>{let o=null,i=t.subscribe(a=>{r(new Set(a.touched)),o&&clearTimeout(o),o=setTimeout(()=>r(new Set),e)});return()=>{i(),o&&clearTimeout(o)}},[t,e]),n}var aa={marks:new Map,acts:[]};function Dr(e=4e3){let{store:t}=le(),[n,r]=(0,De.useState)(aa);return(0,De.useEffect)(()=>{let o=null,i=t.subscribe((a,d)=>{r(c=>{let s=new Map(c.marks),l=[...c.acts];for(let u of d){if(u.undoes!==void 0){let x=l.find(f=>f.batch===u.undoes||f.wrote.length>0),p=l.filter(f=>u.writes.some(m=>f.wrote.includes(m)));for(let f of p.length>0?p:x?[x]:[]){for(let m of f.wrote)s.delete(m);l=l.filter(m=>m.batch!==f.batch)}continue}if(u.author.kind!=="agent")continue;let h=u.author.id??"the seat";for(let x of u.writes)s.set(x,h);l.find(x=>x.batch===u.batch)?l=l.map(x=>x.batch===u.batch?{...x,wrote:[...new Set([...x.wrote,...u.writes])]}:x):l=[{batch:u.batch,who:h,intent:u.batchIntent??u.intent,at:u.at,wrote:[...u.writes]},...l].slice(0,12)}return s.size===c.marks.size&&l===c.acts&&s.size===0?c:{marks:s,acts:l}}),o&&clearTimeout(o),o=setTimeout(()=>r(c=>c.marks.size===0?c:{...c,marks:new Map}),e)});return()=>{i(),o&&clearTimeout(o)}},[t,e]),n}var Ht=ee(be(),1),Xe=16;function Fr({marks:e,questions:t=[],whereIs:n,stageRef:r,width:o,height:i}){if(e.size===0&&t.length===0)return null;let a=r.current,d=a?.getBoundingClientRect()??null,c=[];for(let[l,u]of e){let h=null;if(a&&d&&typeof CSS<"u"){let f=a.querySelector(`[data-graview-pick="${CSS.escape(l)}"]`)?.getBoundingClientRect();f&&f.width>0&&f.height>0&&(h={x:f.left-d.left,y:f.top-d.top,width:f.width,height:f.height})}if(h??=n(l),!h)continue;let g=Math.min(Math.max(h.x+h.width-Xe/2,Xe/2),o-Xe/2),x=Math.min(Math.max(h.y-Xe/4,Xe/2),i-Xe/2);c.push({id:l,who:u,x:g,y:x})}let s=[];for(let l of t){let u=n(l.id);u&&s.push({...l,x:Math.min(Math.max(u.x+u.width/2,Xe),o-Xe),y:Math.min(Math.max(u.y-Xe/2,Xe),i-Xe)})}return c.length===0&&s.length===0?null:(0,Ht.jsxs)("div",{className:"graview-seat-marks","data-testid":"seat-marks","data-graview-seat-marks":c.length,children:[c.map(({id:l,who:u,x:h,y:g})=>(0,Ht.jsx)("span",{className:"graview-seat-mark","data-testid":"seat-mark","data-graview-seat-mark":l,"data-graview-seat-who":u,title:`${u} just changed this`,"aria-hidden":"true",style:{left:h,top:g,"--graview-hue":Mt(u)},children:"\u25C6"},l)),s.map(l=>(0,Ht.jsxs)("span",{className:"graview-seat-asking","data-testid":"seat-question","data-graview-seat-asking":l.id,title:l.asks,style:{left:l.x,top:l.y},children:[(0,Ht.jsx)("span",{"aria-hidden":"true",children:"?"}),(0,Ht.jsx)("span",{className:"graview-seat-asking-said",children:l.asks})]},`asking:${l.id}`))]})}var lt=ee(He(),1);var ke=ee(be(),1);function sa(e,t,n={x:0,y:0}){let r=(o,i)=>{let a=ve(o,i,t.cell);return{x:t.originX+n.x+a.x,y:t.originY+n.y+a.y}};return[r(e.col,e.row),r(e.col+e.side,e.row),r(e.col+e.side,e.row+e.side),r(e.col,e.row+e.side)]}var An=e=>e.map(t=>`${t.x.toFixed(1)},${t.y.toFixed(1)}`).join(" ");function Br({frame:e,width:t,height:n,pan:r,brand:o,pinned:i,swallowed:a,onFocus:d}){let{selection:c,store:s,emphasis:l}=le(),u=wn(),h=e.city,g=e.nodes.filter(k=>k.plot!==void 0&&Math.round(k.plane)===2),x=h?.cell??0,p=(0,lt.useRef)(d);p.current=d;let f=(0,lt.useCallback)(k=>!p.current||a?.current?!1:(p.current(k),!0),[a]),m=`${x}|${g.map(k=>`${k.id}:${k.plot.col},${k.plot.row},${k.plot.side}`).join(";")}`,b=(0,lt.useMemo)(()=>{if(!h)return[];let k={cell:x,originX:0,originY:0},w=new Map;for(let M of g){let C=$e(M.id);C!==null&&M.plot&&w.set(C,M.plot)}return lo(s.schema,w).map(M=>({...M,d:ha(w.get(M.from),w.get(M.to),k,{x:0,y:0}).map((C,B)=>`${B===0?"M":"L"} ${C.x.toFixed(1)} ${C.y.toFixed(1)}`).join(" ")}))},[m,s.schema]),R=(0,lt.useRef)(new Map),O=new Map;for(let k of g){let w=k.aggregate?.memberIds??[],M=`${x}|${k.plot.col},${k.plot.row},${k.plot.side}|${w.join(",")}`,C=R.current.get(k.id);if(C&&C.key===M){O.set(k.id,C);continue}let B={cell:x,originX:0,originY:0},A={x:0,y:0},{buildings:$,rest:D}=uo(k.plot,w),H=sa(k.plot,B,A);O.set(k.id,{key:M,tile:An(H),front:H[2],rest:D,buildings:$.map(Y=>({id:Y.id,...la(Y,B,A)}))})}if(R.current=O,!h)return null;let E={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible"},S=c.join(`
|
|
4
|
-
`),j=u.join(`
|
|
5
|
-
`);return(0,ke.jsx)("svg",{className:"graview-plots","aria-hidden":"true","data-graview-world":"",width:t,height:n,style:E,"data-graview-plots":g.length,children:(0,ke.jsxs)("g",{transform:`translate(${(h.originX+r.x).toFixed(1)} ${(h.originY+r.y).toFixed(1)})`,children:[(0,ke.jsx)("g",{className:"graview-roads","data-graview-roads":b.length,children:b.map(k=>k.d.includes("L")?(0,ke.jsxs)("g",{className:"graview-road","data-graview-road":k.edges.join(","),"data-graview-from":ce(k.from),"data-graview-to":ce(k.to),"data-graview-lit":l!==null&&k.edges.includes(l)?"":void 0,children:[(0,ke.jsx)("path",{className:"graview-road-edge",d:k.d}),(0,ke.jsx)("path",{className:"graview-road-bed",d:k.d})]},`${k.from}|${k.to}`):null)}),g.map(k=>(0,ke.jsx)(da,{id:k.id,hue:Math.round(Mt(k.kind,o?.accents)),drawing:O.get(k.id),pinned:i?.has(k.id)??!1,chosenKey:S,flaggedKey:j,press:f},k.id))]})})}var da=(0,lt.memo)(function({id:t,hue:n,drawing:r,pinned:o,chosenKey:i,flaggedKey:a,press:d}){let c=new Set(i.split(`
|
|
6
|
-
`)),s=new Set(a.split(`
|
|
7
|
-
`));return(0,ke.jsxs)("g",{className:"graview-plot","data-graview-plot":t,"data-graview-pinned":o?"":void 0,style:{"--graview-hue":n},children:[(0,ke.jsx)("polygon",{className:"graview-plot-tile",points:r.tile,onClick:l=>{d(t)&&l.stopPropagation()}}),r.buildings.length>0?(0,ke.jsxs)("g",{className:"graview-village","data-graview-village":r.buildings.length,"data-graview-rest":r.rest||void 0,children:[r.buildings.map(l=>(0,ke.jsxs)("g",{className:"graview-building","data-graview-building":l.id,"data-graview-flagged":s.has(l.id)?"":void 0,"data-graview-selected":c.has(l.id)?"":void 0,children:[(0,ke.jsx)("polygon",{className:"graview-iso-left",points:l.left}),(0,ke.jsx)("polygon",{className:"graview-iso-right",points:l.right}),(0,ke.jsx)("polygon",{className:"graview-iso-roof",points:l.roof})]},l.id)),r.rest>0?(0,ke.jsxs)("text",{className:"graview-village-rest",x:r.front.x,y:r.front.y-4,textAnchor:"middle",children:["+",r.rest]}):null]}):null]})});function la(e,t,n){let r=e.footprint/2,o=(g,x,p=0)=>{let f=ve(g,x,t.cell);return{x:t.originX+n.x+f.x,y:t.originY+n.y+f.y-p}},i=e.footprint*t.cell*.5*e.height,a=o(e.col-r,e.row-r,i),d=o(e.col+r,e.row-r,i),c=o(e.col+r,e.row+r,i),s=o(e.col-r,e.row+r,i),l=o(e.col+r,e.row+r),u=o(e.col-r,e.row+r),h=o(e.col+r,e.row-r);return{roof:An([a,d,c,s]),left:An([s,c,l,u]),right:An([c,d,h,l]),top:a}}function ca(e,t,n){let r=e.x-t.originX-n.x,o=e.y-t.originY-n.y;return{col:r/t.cell+2*o/t.cell,row:2*o/t.cell-r/t.cell}}var Pn=(e,t,n,r)=>{let{col:o,row:i}=ca(e,n,r);return o>=t.col&&o<=t.col+t.side&&i>=t.row&&i<=t.row+t.side},Cn=(e,t,n)=>({x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n});function ua(e,t){let n=e.col+e.side/2,r=e.row+e.side/2,o=t.col+t.side/2,i=t.row+t.side/2,a=f=>Math.floor(f.row/5),d=f=>Math.floor(f.col/5),c=a(e),s=a(t),l=d(e),u=d(t),h=s>c?c*5+5-.5:s<c?c*5-.5:c*5+5-.5,g=u>l?u*5-.5:u<l?u*5+5-.5:u*5-.5,x=[{col:n,row:r},{col:n,row:h},{col:g,row:h},{col:g,row:i},{col:o,row:i}],p=[];for(let f of x){let m=p[p.length-1];m&&Math.abs(m.col-f.col)<1e-9&&Math.abs(m.row-f.row)<1e-9||p.push(f)}for(let f=p.length-2;f>0;f--){let m=p[f-1],b=p[f],R=p[f+1],O=Math.abs(m.col-b.col)<1e-9&&Math.abs(b.col-R.col)<1e-9,E=Math.abs(m.row-b.row)<1e-9&&Math.abs(b.row-R.row)<1e-9;(O||E)&&p.splice(f,1)}return p}function ha(e,t,n,r){let o=ua(e,t).map(d=>{let c=ve(d.col,d.row,n.cell);return{x:n.originX+r.x+c.x,y:n.originY+r.y+c.y}}),i=[],a=!1;for(let d=0;d<o.length-1;d++){let c=o[d],s=o[d+1];if(!a){if(Pn(s,e,n,r))continue;let l=0,u=1;for(let h=0;h<12;h++){let g=(l+u)/2;Pn(Cn(c,s,g),e,n,r)?l=g:u=g}i.push(Cn(c,s,u)),a=!0}if(Pn(s,t,n,r)){let l=0,u=1;for(let h=0;h<12;h++){let g=(l+u)/2;Pn(Cn(c,s,g),t,n,r)?u=g:l=g}return i.push(Cn(c,s,l)),i}i.push(s)}return i}var V=ee(be(),1);function fa({hue:e,mode:t}){let n=t==="docked";return(0,V.jsxs)("svg",{viewBox:"0 0 32 38","aria-hidden":"true",children:[(0,V.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,V.jsx)("line",{x1:"16",y1:"3.5",x2:"16",y2:"7"}),(0,V.jsx)("circle",{cx:"16",cy:"2.6",r:"1.5",fill:"none"}),(0,V.jsx)("path",{d:"M8 16 V12.5 C8 8.5 11.5 7 16 7 C20.5 7 24 8.5 24 12.5 V16 Z",fill:"currentColor",fillOpacity:"0.1"}),t==="refused"?(0,V.jsx)("line",{x1:"11",y1:"12.5",x2:"21",y2:"12.5",strokeWidth:"2"}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)("rect",{x:"10.2",y:"10.2",width:"11.6",height:"4.6",rx:"2.3",fill:"currentColor",fillOpacity:"0.14",strokeWidth:"1"}),(0,V.jsx)("circle",{cx:"13.4",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),(0,V.jsx)("circle",{cx:"18.6",cy:"12.5",r:"1.25",fill:"currentColor",stroke:"none",opacity:n?.45:1}),t==="reading"?(0,V.jsx)("line",{x1:"10.2",y1:"12.5",x2:"21.8",y2:"12.5",strokeWidth:"0.8",opacity:"0.7"}):null]}),(0,V.jsx)("line",{x1:"16",y1:"16",x2:"16",y2:"18.5"}),(0,V.jsx)("polygon",{points:"16,18.5 24,22.5 16,26.5 8,22.5",fill:"currentColor",fillOpacity:"0.22"}),(0,V.jsx)("polygon",{points:"8,22.5 16,26.5 16,33.5 8,29.5",fill:"currentColor",fillOpacity:"0.08"}),(0,V.jsx)("polygon",{points:"24,22.5 16,26.5 16,33.5 24,29.5",fill:"currentColor",fillOpacity:"0.3"}),t==="writing"?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)("polyline",{points:"24,24 28.5,20.5"}),(0,V.jsx)("line",{x1:"27.5",y1:"19",x2:"30",y2:"21.5",strokeWidth:"1.8"})]}):(0,V.jsx)("line",{x1:"24",y1:"24",x2:"26.5",y2:"29"}),(0,V.jsx)("line",{x1:"8",y1:"24",x2:"5.5",y2:"29"}),(0,V.jsx)("path",{d:"M9.5 33.5 v2.2 h4"}),(0,V.jsx)("path",{d:"M22.5 33.5 v2.2 h-4"})]}),(0,V.jsx)("title",{children:`robot, ${t}`})]})}function ya({hue:e}){return(0,V.jsxs)("svg",{viewBox:"0 0 22 24","aria-hidden":"true",style:{color:`hsl(${Math.round(e)} 50% 48%)`},children:[(0,V.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round",strokeLinecap:"round",children:[(0,V.jsx)("circle",{cx:"11",cy:"6",r:"4.2"}),(0,V.jsx)("path",{d:"M3 23 C3 15.5 6 13 11 13 C16 13 19 15.5 19 23"})]}),(0,V.jsx)("title",{children:"somebody"})]})}function jr({width:e,whereIs:t}){let{who:n,following:r,follow:o}=le(),i=cr([...n.values()],t,e);return i.length===0?null:(0,V.jsx)("div",{className:"graview-occupants","data-testid":"occupants","data-graview-occupants":i.length,children:i.map((a,d)=>{if(a.kind==="over")return(0,V.jsx)("div",{className:"graview-presence-over","data-testid":"presence-over","data-graview-over-by":a.presence.participant,style:{left:a.box.x-3,top:a.box.y-3,width:a.box.width+6,height:a.box.height+6,"--graview-hue":a.presence.hue}},`over:${a.presence.participant}`);if(a.kind==="count")return(0,V.jsxs)("span",{className:"graview-figure-count","data-testid":"presence-count","data-graview-at":a.at,style:{left:a.point.x,top:a.point.y},title:`${a.n} more here`,children:["+",a.n]},`count:${a.at}:${d}`);let c=a.presence.hue,s=Qo(a.presence)||"somebody";if(a.kind==="edge")return(0,V.jsxs)("button",{type:"button",className:"graview-figure-edge","data-testid":"presence-edge","data-graview-person":a.presence.participant,style:{left:Math.max(8,a.point.x-120),top:a.point.y},onClick:()=>o(a.presence.participant),"aria-label":`${s} is somewhere else \u2014 press to go where they are`,children:["\u2192 ",s]},`edge:${a.presence.participant}`);if(a.kind==="robot")return(0,V.jsxs)("div",{className:"graview-figure","data-graview-figure":`theirs:${a.presence.participant}`,"data-graview-theirs":"","data-graview-mode":a.mode,"data-graview-at":a.presence.robot?.at??"",style:{transform:`translate(${a.point.x.toFixed(1)}px, ${a.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,V.jsx)("span",{className:"graview-figure-body",role:"img","aria-label":`${s}'s agent \u2014 ${a.mode}`,style:{cursor:"default"},children:(0,V.jsx)(fa,{hue:c,mode:a.mode})}),(0,V.jsxs)("span",{className:"graview-figure-name",children:[s,"'s agent"]})]},`robot:${a.presence.participant}`);let l=r?.participant===a.presence.participant;return(0,V.jsxs)("div",{className:"graview-figure","data-graview-figure":a.presence.participant,"data-graview-person":"","data-graview-at":a.at,"data-graview-audience":a.audience?"":void 0,"data-graview-followed":l?"":void 0,style:{transform:`translate(${a.point.x.toFixed(1)}px, ${a.point.y.toFixed(1)}px)`,"--graview-hue":c},children:[(0,V.jsx)("button",{type:"button",className:"graview-figure-body","aria-label":`${s} is here${l?". Press to stop following":". Press to go where they go"}`,"aria-pressed":l,onClick:u=>{u.stopPropagation(),o(l?null:a.presence.participant)},onPointerDown:u=>u.stopPropagation(),children:(0,V.jsx)(ya,{hue:c})}),(0,V.jsx)("span",{className:"graview-figure-name",children:s})]},`person:${a.presence.participant}`)})})}var tn=ee(be(),1),Vr={left:"\u2190",right:"\u2192",top:"\u2191",bottom:"\u2193"},ga=36,Wr=56;function _r({result:e,schema:t,onGo:n}){let r=xo(e);if(r.length===0)return null;let o=[];for(let i of["left","right","top","bottom"]){let a=i==="left"||i==="right"?e.height:e.width,d=-1/0,c=r.filter(s=>s.side===i).sort((s,l)=>s.along-l.along);for(let s of c){let l=Math.max(Wr,Math.min(a-Wr,Math.max(s.along,d+ga)));d=l;let u=_t(t,s.kind),h=i==="left"?{left:6,top:l,transform:"translateY(-50%)"}:i==="right"?{right:6,top:l,transform:"translateY(-50%)"}:i==="top"?{top:6,left:l,transform:"translateX(-50%)"}:{bottom:6,left:l,transform:"translateX(-50%)"};o.push((0,tn.jsx)("button",{type:"button",className:"graview-edge-sign","data-graview-past-edge":s.id,"aria-label":`${u}, past the ${i} edge \u2014 bring it into view`,title:`${u} is past the ${i} edge`,tabIndex:-1,onPointerDown:g=>g.stopPropagation(),onClick:g=>{g.stopPropagation(),n(s.by)},style:{...ma,...h},children:i==="right"||i==="bottom"?`${u} ${Vr[i]}`:`${Vr[i]} ${u}`},s.id))}}return(0,tn.jsx)(tn.Fragment,{children:o})}var ma={position:"absolute",zIndex:Te.lines,minHeight:28,maxWidth:"40%",padding:"3px 10px",font:"inherit",fontSize:"0.75rem",letterSpacing:"0.04em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:6,boxShadow:"0 2px 8px rgb(0 0 0 / 0.12)",cursor:"pointer"};var bt=ee(He(),1),pa=180;function Yr({view:e,result:t,frame:n,panned:r,closer:o,screenId:i,setCamera:a}){let d=(0,bt.useRef)(new Map),c=(0,bt.useRef)(e.overview??!1),s=(0,bt.useRef)(null);if((0,bt.useEffect)(()=>{if(!e.overview||!i||!t.city){if(c.current&&!e.overview)return;a(E=>E.x===0&&E.y===0?E:{x:0,y:0});return}let l=t.nodes.find(E=>E.id===i);if(!l)return;let u=o>1&&l.screenOf?t.nodes.find(E=>E.id===ce(l.screenOf)):void 0,h=u?{x:Math.min(l.x,u.x),y:Math.min(l.y,u.y),width:Math.max(l.x+l.width,u.x+u.width)-Math.min(l.x,u.x),height:Math.max(l.y+l.height,u.y+u.height)-Math.min(l.y,u.y)}:l;if(h.x>=0&&h.y>=0&&h.x+h.width<=t.width&&h.y+h.height<=t.height&&!u)return;let x=24,p=(E,S,j)=>E<x?x-E:E+S>j-x?j-x-(E+S):0,f=wt(t),m=e.pan??{x:0,y:0},b=u?r.x+(t.width/2-(h.x+h.width/2)):r.x+p(h.x,h.width,t.width),R=t.height/2-(h.y+h.height/2),O=u?r.y+(l.y+R<x?x-l.y:R):r.y+p(h.y,h.height,t.height);a({x:(u?b:Math.max(-f.x,Math.min(f.x,b)))-m.x,y:(u?O:Math.max(-f.y,Math.min(f.y,O)))-m.y})},[i,e.overview,o]),n.city){let l=new Map;for(let u of n.nodes){if(!u.plot||Math.round(u.plane)!==2)continue;let h=ve(u.plot.col+u.plot.side/2,u.plot.row+u.plot.side/2,n.city.cell);l.set(u.id,{x:n.city.originX+r.x+h.x,y:n.city.originY+r.y+h.y})}d.current=l}return(0,bt.useEffect)(()=>{let l=e.overview??!1,u=c.current&&!l;if(c.current=l,l&&s.current&&(clearTimeout(s.current),s.current=null),!u)return;let h=e.focusId?xt(e.focusId)[0]:void 0,g=h?d.current.get(ce(h)):void 0,x=t.nodes.find(p=>p.id===e.focusId);if(!g||!x){a({x:0,y:0});return}a({x:g.x-(x.x+x.width/2),y:g.y-(x.y+x.height/2)}),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{s.current=null,a({x:0,y:0})},pa)},[e.overview]),(0,bt.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),{gliding:()=>s.current!==null}}var se=ee(He(),1);function zr(){let[e,t]=(0,se.useState)(null),n=(0,se.useRef)(null),r=(0,se.useRef)(0),o=(0,se.useCallback)(a=>{n.current=a,r.current===0&&(r.current=requestAnimationFrame(()=>{r.current=0,t(n.current)}))},[]),i=(0,se.useCallback)(()=>{r.current!==0&&cancelAnimationFrame(r.current),r.current=0;let a=n.current;return n.current=null,a&&t(null),a},[]);return{held:e,place:o,release:i}}function Kr({stage:e,pan:t,setView:n,settled:r}){let o=(0,se.useRef)({x:0,y:0}),i=(0,se.useRef)(0),a=(0,se.useRef)(!1),d=(0,se.useRef)(r);d.current=r;let c=(0,se.useCallback)(()=>[...e.current?.querySelectorAll("[data-graview-world]")??[]],[e]),s=(0,se.useCallback)(()=>{i.current===0&&(i.current=requestAnimationFrame(()=>{i.current=0;let{x,y:p}=o.current,f=x===0&&p===0?"":`translate3d(${x}px, ${p}px, 0)`;for(let m of c())m.style.transform=f}))},[c]),l=(0,se.useCallback)(()=>{a.current=!1;for(let x of c())x.style.transform="";d.current()},[c]),u=(0,se.useCallback)((x,p)=>{o.current={x:x.x-p.x,y:x.y-p.y},s()},[s]),h=(0,se.useCallback)(()=>{let{x,y:p}=o.current;return x===0&&p===0?!1:(o.current={x:0,y:0},a.current=!0,n(f=>{let m=f.pan??{x:0,y:0};return pt(f,{x:m.x+x,y:m.y+p})}),window.setTimeout(()=>{a.current&&l()},300),!0)},[n,l]);(0,se.useLayoutEffect)(()=>{a.current&&l()},[t,l]);let g=(0,se.useCallback)(()=>o.current,[]);return{shiftTo:u,settle:h,settling:a,offset:g}}var xa=4;function Gr({view:e,panned:t,limit:n,panWithin:r,moveByTransform:o,setView:i,setDragging:a,noteMoved:d,shift:c,district:s}){let l=(0,se.useRef)(!1),u=(0,se.useRef)(null),h=m=>{let b=e.pan??{x:0,y:0};u.current={kind:"pan",fromX:m.clientX,fromY:m.clientY,baseX:b.x,baseY:b.y,moved:!1}};return{onGroundDown:m=>{m.button===0&&(m.target.closest("[data-graview-view]")||h(m))},onCardDown:(m,b)=>{if(b.button===0){if(m.screenOf!==void 0&&!b.target.closest("[data-graview-grip]")){h(b);return}u.current={kind:"card",id:m.id,fromX:b.clientX,fromY:b.clientY,baseX:m.x-t.x,baseY:m.y-t.y,moved:!1}}},onDragMove:m=>{let b=u.current;if(!b)return;let R=m.clientX-b.fromX,O=m.clientY-b.fromY;if(!b.moved){if(Math.hypot(R,O)<xa)return;b.moved=!0,a(!0),m.currentTarget.setPointerCapture(m.pointerId)}if(b.kind==="pan"){let E=r(n(),{x:b.baseX+R,y:b.baseY+O});o?c.shiftTo(E,e.pan??{x:0,y:0}):i(S=>pt(S,E))}else b.id&&s.place({id:b.id,x:b.baseX+R,y:b.baseY+O})},onDragUp:()=>{c.settle();let m=s.release();m&&i(b=>Kt(b,m.id,{x:m.x,y:m.y})),u.current?.moved&&(l.current=!0,setTimeout(()=>l.current=!1,0),d()),u.current=null,!c.settling.current&&a(!1)},swallow:l}}function Ur({stage:e,view:t,setView:n}){let r=(0,se.useRef)({view:t,charge:0,coolUntil:0,lastScale:1});r.current.view=t;let o=(0,se.useRef)(()=>{}),i=(0,se.useRef)(()=>{});return(0,se.useEffect)(()=>{let a=e.current;if(!a)return;let d=(u,h)=>{let g=r.current;if(h<g.coolUntil)return;let x=g.view.overview??!1;u!==x&&(g.coolUntil=h+600,g.charge=0,n(zt(g.view,u)))},c=u=>{let h=r.current,g=h.view.overview??!1;if(u.ctrlKey){if(u.preventDefault(),!g){if(h.charge+=u.deltaY,Math.abs(h.charge)<60)return;h.charge>0?d(!0,performance.now()):h.charge=0;return}o.current(Math.exp(-u.deltaY*.004),u.clientX,u.clientY);return}!g||u.target?.closest("[data-graview-view], .graview-scroll, [data-graview-overlay], .graview-zoom")||(u.preventDefault(),i.current(-u.deltaX,-u.deltaY))},s=u=>{u.preventDefault(),r.current.lastScale=1},l=u=>{u.preventDefault();let h=r.current,g=u.scale??1;if(!(h.view.overview??!1)){g<.72&&d(!0,performance.now());return}let x=g/(h.lastScale||1);h.lastScale=g;let p=u;o.current(x,p.clientX,p.clientY)};return a.addEventListener("wheel",c,{passive:!1}),a.addEventListener("gesturestart",s),a.addEventListener("gesturechange",l),()=>{a.removeEventListener("wheel",c),a.removeEventListener("gesturestart",s),a.removeEventListener("gesturechange",l)}},[n,e]),{zoomAbout:o,panBy:i}}var Xr={directed:"You",autonomous:"An agent","co-edited":"You and an agent",rule:"A rule"};function So(e,t){let n=new Set(e.map(o=>o.id)),r=new Set;for(let o of t){if(n.has(o)){r.add(o);continue}let i=e.find(a=>a.aggregate?.memberIds.includes(o));i&&r.add(i.id)}return r}function Mo(e){return e.emphasized?e.stressed?.95:.08:e.anyChosen?e.mine?.9:.12:e.touches?Math.max(.34,.9-.09*Math.max(0,(e.siblings??1)-1)):.12}function Ro(e){return e.edgeChosen?.9:e.lit?.78:e.own*(e.anyLit?e.kit.dim:e.kit.rest)}function qe(e,t){if(!e)return null;let n=Math.max(0,Math.min(2,Math.floor(e.plane))),r=Math.max(0,Math.min(2,Math.ceil(e.plane))),{scale:o}=n===r?Ue(n,t):pn(Ue(n,t),Ue(r,t),e.plane-n);return{x:e.x,y:e.y,width:e.width*o,height:e.height*o}}function Ln(e,t){if(typeof getComputedStyle>"u"||getComputedStyle(e).visibility==="hidden")return null;let n=-1/0,r=-1/0,o=1/0,i=1/0,a=e.getBoundingClientRect();n=Math.max(n,a.left),r=Math.max(r,a.top),o=Math.min(o,a.right),i=Math.min(i,a.bottom);let d=e.parentElement;for(;d&&d!==t;){let s=getComputedStyle(d);if(s.overflowX!=="visible"||s.overflowY!=="visible"){let l=d.getBoundingClientRect();s.overflowX!=="visible"&&(n=Math.max(n,l.left),o=Math.min(o,l.right)),s.overflowY!=="visible"&&(r=Math.max(r,l.top),i=Math.min(i,l.bottom))}d=d.parentElement}if(o-n<=2||i-r<=2)return null;let c=t.getBoundingClientRect();return{x:n-c.left,y:r-c.top,width:o-n,height:i-r}}function Qe(e,t,n){if(!e||typeof document>"u")return null;let r=e.querySelector(`[data-graview-view="${CSS.escape(t)}"]`);if(!r)return null;let o=(n?r.querySelector(".graview-kind-block"):null)??r.querySelector('[data-graview-primitive="panel"], .graview-kind-face, .graview-kind-card')??r;return Ln(o,e)}function In(e,t,n,r,o){let i=s=>e.nodes.find(l=>l.id===s);if(o.startsWith("screen:")){let s=o.slice(7),l=e.nodes.find(f=>f.screenOf===s);if(!l)return null;let u=Qe(t,l.id,!1)??qe(l,n);if(!u)return null;let h=e.nodes.find(f=>f.id===ce(s)),g=h?qe(h,n):null,x=u.y+u.height,p=g?Math.max(20,g.y-x):Math.max(20,u.height*.18);return{x:u.x,y:x,width:u.width,height:p}}let a=i(o),d=$e(o);if(!a&&d!==null&&(a=i(Ee(d))),!a&&Et(o)){let[s]=xt(o);s&&(a=i(ce(s)))}if(!a){let s=r.places().find(l=>l.as===o);s&&(a=i(Ee(s.kind))??i(ce(s.kind)))}if(a||(a=[...e.nodes].filter(s=>s.aggregate?.memberIds.includes(o)).sort((s,l)=>s.plane-l.plane)[0]),!a)return null;let c=e.city!==void 0;return Qe(t,a.id,c&&a.aggregate!==void 0&&Math.round(a.plane)===2)??qe(a,n)}var ct=ee(He(),1);var te=ee(be(),1);function Qr({kinds:e}){let{store:t}=le(),{view:n,go:r}=oo(),o=(0,ct.useRef)(null),i=io("districts",{align:"start"}),a=i.open,d=h=>_t(t.schema,h),c=h=>t.graph.allNodes().filter(g=>g.kind===h).length,s=h=>!n.overview&&n.focusId===Ee(h),l=e.filter(h=>!s(h)),u=h=>{i.setOpen(!1);let g=o.current?.querySelector(".graview-beyond-more")??null;s(h)||r(Ot(n,Ee(h))),g?.focus({preventScroll:!0});let x=`[data-graview-view="${Ee(h)}"][tabindex], [data-graview-view="${ce(h)}"][tabindex]`,p=40,f=()=>{let m=document.querySelector(x);m?m.focus({preventScroll:!0}):--p>0&&requestAnimationFrame(f)};requestAnimationFrame(f)};return(0,te.jsxs)("div",{ref:o,className:"graview-beyond","data-graview-beyond":e.length,"data-graview-beyond-open":a?"":void 0,children:[(0,te.jsxs)("button",{type:"button",className:"graview-beyond-more","data-testid":"beyond-more",...i.trigger,"aria-haspopup":"menu",title:`${l.length} more district${l.length===1?"":"s"} \u2014 press to see them`,onPointerDown:h=>h.stopPropagation(),onClick:h=>{h.stopPropagation(),i.toggle()},children:[(0,te.jsxs)("span",{className:"graview-beyond-count",children:["+",l.length]}),(0,te.jsx)("span",{className:"graview-beyond-word",children:"more"}),(0,te.jsx)("span",{className:"graview-beyond-chevron","aria-hidden":"true",children:a?"\u25BE":"\u25B4"})]}),a?(0,te.jsx)("ul",{...i.pane,className:"graview-beyond-list",role:"menu","aria-label":"The other districts","data-testid":"beyond-list",style:ro,onPointerDown:h=>h.stopPropagation(),children:e.map(h=>(0,te.jsx)("li",{role:"none",children:(0,te.jsxs)("button",{type:"button",role:"menuitem","data-graview-pick":ce(h),"aria-current":s(h)?"location":void 0,title:s(h)?`${d(h)} \u2014 where you are`:`Go to ${d(h)}`,onPointerDown:g=>g.stopPropagation(),onClick:g=>{g.stopPropagation(),u(h)},children:[(0,te.jsx)("span",{className:"graview-beyond-name",children:d(h)}),(0,te.jsx)("span",{className:"graview-beyond-tally",children:s(h)?"here":c(h)})]})},h))}):null]})}function wa(e,t){if(e===t)return!0;let n=Object.keys(e);return n.length!==Object.keys(t).length?!1:n.every(r=>r==="x"||r==="y"||Eo(e[r],t[r]))}function Eo(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||typeof t!="object"||e===null||t===null||Array.isArray(e)!==Array.isArray(t)||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==Array.prototype)return!1;if(Array.isArray(e)){let o=t;if(e.length!==o.length)return!1;for(let i=0;i<e.length;i++)if(!Eo(e[i],o[i]))return!1;return!0}let r=Object.keys(e);return r.length!==Object.keys(t).length?!1:r.every(o=>Eo(e[o],t[o]))}var Zr=(0,ct.memo)(Jr,(e,t)=>e.mode===t.mode&&e.selected===t.selected&&e.fidelity===t.fidelity&&wa(e.node,t.node));function Jr({node:e,mode:t,selected:n,fidelity:r}){let{store:o,views:i,view:a}=le(),d=It(),c=lr(),s=wn(),l=e.aggregate||Et(e.id)||$e(e.id)!==null?"many":"one",u={cardinality:l,fidelity:r??or[va(e.plane)].fidelity},h=l==="many"&&e.id===a.focusId?a.within?.view:void 0,g=i.resolve(e.kind,u,h),x=g?.view,p=i.resolve(e.kind,{cardinality:"many",fidelity:"full"})?.view,f=p!==void 0&&p.generic!==!0,m=e.aggregate?.memberIds,b=(0,ct.useMemo)(()=>(m??[]).map(E=>o.graph.getNode(E)).filter(E=>E!==void 0),[m,o,d]),R={...e.aggregate?{nodes:b,label:g?.title??e.aggregate.label}:{node:o.graph.getNode(e.id)},fidelity:u.fidelity,cardinality:u.cardinality,mode:t,selected:n,implicated:c,flagged:s,...e.raised?{raised:!0}:{},...e.focused?{focused:!0}:{},...e.opened?{opened:!0}:{},...e.openedRows!==void 0?{openedRows:e.openedRows}:{},...e.plot?{plot:e.plot}:{},...e.aggregate?.retired?{retired:e.aggregate.retired}:{},...e.rank?{rank:e.rank}:{},...e.nestedUnder?{nestedUnder:e.nestedUnder}:{},...f?{hasOwnView:!0}:{}};if(!x)return(0,te.jsx)(ka,{node:e,props:R});let O=[e.id,g?.title??"",u.fidelity,u.cardinality,t,n,e.raised??!1,e.focused??!1,e.opened??!1,e.openedRows??"",e.rank??"",e.nestedUnder??"",e.plot?`${e.plot.col},${e.plot.row},${e.plot.side}`:"",e.aggregate?Oo(e.aggregate.memberIds):"",e.aggregate?.retired??"",c?Oo(c):"",s?Oo(s):"",f].join("|");return(0,te.jsx)(to,{mode:t,children:(0,te.jsx)(ur,{kind:R.label??e.kind,...g?.title?{view:g.title}:{},children:(0,te.jsx)(ba,{signature:O,graph:d,draw:()=>(0,te.jsx)(x,{...R})})},`${e.id}|${g?.title??""}`)})}var ba=(0,ct.memo)(function({draw:t}){return(0,te.jsx)(te.Fragment,{children:t()})},(e,t)=>e.signature===t.signature&&e.graph===t.graph);function va(e){return Math.max(0,Math.min(2,Math.round(e)))}function ka({node:e,props:t}){return(0,te.jsxs)("div",{style:{padding:8,font:"13px/1.4 system-ui",overflow:"hidden"},children:[(0,te.jsx)("strong",{children:t.label??e.kind}),t.nodes?(0,te.jsxs)("div",{children:[t.nodes.length," items"]}):(0,te.jsx)("div",{children:e.id})]})}var ei=(0,ct.memo)(function({node:t}){let{store:n}=le(),r=Lt(),o=t.aggregate,i=o.opens,a=o.memberIds.length,d=hn(n.schema,o.kind,a),c=o.memberIds.slice(0,3).map(h=>{let g=n.graph.getNode(h),x=g?n.schema.tryDefinition(g.kind):void 0;return g?x?.label?x.label(g):String(g.label??h):h}),s=o.memberIds,l=(0,ct.useMemo)(()=>{let h=r?mn(r):null;return h?s.filter(g=>h.has(g)).length:0},[r,s]),u=i.in==="picture";return(0,te.jsxs)("div",{className:"graview-band-group","data-graview-band":i.in,"data-graview-band-count":a,"data-graview-emphasis":r?l>0?"lit":"dimmed":void 0,title:u?`${o.label} \u2014 press twice to see them all, arranged`:`${o.label}: ${d} \u2014 press twice to open`,children:[(0,te.jsxs)("span",{className:"graview-band-group-head",children:[(0,te.jsx)("span",{className:"graview-band-group-name",children:o.label}),(0,te.jsx)("span",{className:"graview-band-group-open","aria-hidden":"true",children:u?"\u2197":"\u25BE"})]}),(0,te.jsxs)("span",{className:"graview-band-group-names",children:[u?null:(0,te.jsxs)("span",{className:"graview-band-group-count",children:[d,l>0?` \xB7 ${l} match`:""," \xB7 "]}),c.join(" \xB7 "),a>c.length?" \u2026":""]})]})}),qr=new WeakMap;function Oo(e){let t=qr.get(e);if(t!==void 0)return t;let n=2166136261;for(let o of e){for(let i=0;i<o.length;i++)n=Math.imul(n^o.charCodeAt(i),16777619);n=Math.imul(n^44,16777619)}let r=`${e.length}:${(n>>>0).toString(36)}`;return qr.set(e,r),r}var vt=ee(He(),1);function Po(e,t,n){let r=e.aggregate?[...e.aggregate.memberIds]:[e.id];return n?r.every(i=>t.includes(i))?t.filter(i=>!r.includes(i)):[...t,...r.filter(i=>!t.includes(i))]:r}function ti(){let[e,t]=(0,vt.useState)(16);return(0,vt.useEffect)(()=>{if(typeof window>"u")return;let n=document.documentElement,r=()=>{let i=parseFloat(getComputedStyle(n).fontSize);Number.isFinite(i)&&t(a=>Math.abs(a-i)<.5?a:i)};r();let o=new MutationObserver(r);return o.observe(n,{attributes:!0,attributeFilter:["style"]}),window.addEventListener("resize",r),()=>{o.disconnect(),window.removeEventListener("resize",r)}},[]),e}function ni(e){let[t,n]=(0,vt.useState)(null);return(0,vt.useLayoutEffect)(()=>{let r=e.current?.getBoundingClientRect();!r||r.width===0||r.height===0||n(o=>o??{width:Math.round(r.width),height:Math.round(r.height)})},[e]),(0,vt.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let o=d=>{!d||d.width===0||d.height===0||n(c=>{let s={width:Math.round(d.width),height:Math.round(d.height)};return c&&c.width===s.width&&c.height===s.height?c:s})},i=new ResizeObserver(d=>o(d[0]?.contentRect)),a=()=>o(r.getBoundingClientRect());return i.observe(r),addEventListener("resize",a),()=>{i.disconnect(),removeEventListener("resize",a)}},[e]),t}function oi(e,t){if(t==="dark")return`0 ${(10*e).toFixed(1)}px ${(34*e).toFixed(1)}px rgba(0,0,0,${(e+.12).toFixed(2)})`;let n=`0 ${(1+2*e).toFixed(1)}px ${(2+5*e).toFixed(1)}px rgba(20,30,32,${(.03+.06*e).toFixed(3)})`,r=`0 ${(6+26*e).toFixed(1)}px ${(18+60*e).toFixed(1)}px -${(10+10*e).toFixed(1)}px rgba(20,30,32,${(.1+.3*e).toFixed(3)})`;return`${n}, ${r}`}function ri(e){return`matrix3d(${e.join(",")})`}var _e=ee(He(),1);var Co=(e,t)=>t.some(n=>e.x>n.x&&e.x<n.x+n.width&&e.y>n.y&&e.y<n.y+n.height);function Ao(e,t){let n=[],r=[];for(let i=0;i<e.length-1;i++){let a=e[i],d=e[i+1],c=!Co(a,t);c&&r.length===0&&r.push(a);for(let s=1;s<=48;s++){let l=s/48,u={x:a.x+(d.x-a.x)*l,y:a.y+(d.y-a.y)*l},h=!Co(u,t);if(h===c)continue;let g=(s-1)/48,x=l;for(let m=0;m<10;m++){let b=(g+x)/2,R={x:a.x+(d.x-a.x)*b,y:a.y+(d.y-a.y)*b};!Co(R,t)===c?g=b:x=b}let p=(g+x)/2,f={x:a.x+(d.x-a.x)*p,y:a.y+(d.y-a.y)*p};h?r=[f]:(r.push(f),r.length>=2&&n.push(r),r=[]),c=h}c&&r.push(d)}return r.length>=2&&n.push(r),n}function nn(e,t){let n=Math.abs(t.x-e.x);if(Math.abs(t.y-e.y)>n){if(n<2)return[e,t];let i=(e.y+t.y)/2;return[e,{x:e.x,y:i},{x:t.x,y:i},t]}let o=(e.x+t.x)/2;return Math.abs(t.x-e.x)<2?[e,t]:[e,{x:o,y:e.y},{x:o,y:t.y},t]}var Ve=e=>Math.round(e*100)/100,Dt=e=>e.map(t=>t.map((n,r)=>`${r===0?"M":"L"} ${Ve(n.x)} ${Ve(n.y)}`).join(" ")).join(" ");function ii(e,t){if(e.length<3)return Dt([e]);let n=[`M ${Ve(e[0].x)} ${Ve(e[0].y)}`];for(let o=1;o<e.length-1;o++){let i=e[o-1],a=e[o],d=e[o+1],c=Math.hypot(a.x-i.x,a.y-i.y),s=Math.hypot(d.x-a.x,d.y-a.y),l=Math.min(t,c/2,s/2),u={x:a.x+(i.x-a.x)/(c||1)*l,y:a.y+(i.y-a.y)/(c||1)*l},h={x:a.x+(d.x-a.x)/(s||1)*l,y:a.y+(d.y-a.y)/(s||1)*l};n.push(`L ${Ve(u.x)} ${Ve(u.y)} Q ${Ve(a.x)} ${Ve(a.y)} ${Ve(h.x)} ${Ve(h.y)}`)}let r=e[e.length-1];return n.push(`L ${Ve(r.x)} ${Ve(r.y)}`),n.join(" ")}function ai(e,t,n){if(e==="orthogonal"){let d=nn(t.p0,t.p1),c=d.slice(1).map((u,h)=>Math.hypot(u.x-d[h].x,u.y-d[h].y)),s=c.reduce((u,h)=>u+h,0)||1,l=n*s;for(let u=0;u<c.length;u++){let h=c[u];if(l<=h||u===c.length-1){let g=h===0?0:Math.min(1,l/h),x=d[u],p=d[u+1];return{x:x.x+(p.x-x.x)*g,y:x.y+(p.y-x.y)*g}}l-=h}return t.p1}let r=e==="straight"?{x:(t.p0.x+t.p1.x)/2,y:(t.p0.y+t.p1.y)/2}:t.c,o=(1-n)*(1-n),i=2*(1-n)*n,a=n*n;return{x:o*t.p0.x+i*r.x+a*t.p1.x,y:o*t.p0.y+i*r.y+a*t.p1.y}}function Nn(e,t){return e!=="straight"?t:{...t,c:{x:(t.p0.x+t.p1.x)/2,y:(t.p0.y+t.p1.y)/2}}}function si(e,t){let n=t.x-e.x,r=t.y-e.y,o=(n/2+r)/2,i=(r-n/2)/2;if(Math.abs(o)<1||Math.abs(i)<1)return[e,t];let a={x:e.x+2*o,y:e.y+o};return[e,a,t]}function Sa(e){let t=[...e].sort((r,o)=>r.y-o.y||r.x-o.x),n=[];for(let r of t){let o=n.find(i=>r.y<i.bottom&&r.y+r.height>i.top);o?(o.boxes.push(r),o.top=Math.min(o.top,r.y),o.bottom=Math.max(o.bottom,r.y+r.height)):n.push({top:r.y,bottom:r.y+r.height,boxes:[r]})}for(let r of n)r.boxes.sort((o,i)=>o.x-i.x);return n.sort((r,o)=>r.top-o.top)}var Lo=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,di=(e,t)=>e.findIndex(n=>n.boxes.some(r=>Lo(r,t)));function qt(e,t,n){return t<0?e[0].top-12*2:n>=e.length?e[e.length-1].bottom+12*2:(e[t].bottom+e[n].top)/2}function Ma(e,t){let n=[{from:-1/0,to:1/0}];for(let i of e){let a=[],d=-1/0;for(let s of i.boxes)a.push({from:d,to:s.x-12}),d=s.x+s.width+12;a.push({from:d,to:1/0});let c=[];for(let s of n)for(let l of a){let u=Math.max(s.from,l.from),h=Math.min(s.to,l.to);h-u>=0&&c.push({from:u,to:h})}n=c}let r=t,o=1/0;for(let i of n){let a=Math.min(Math.max(t,i.from),i.to),d=i.from===-1/0||i.to===1/0,c=Math.abs(a-t)+(d?60:0);c<o&&(o=c,r=a)}return r}function li(e,t,n,r=0){let o=Sa(n.some(b=>Lo(b,e))&&n.some(b=>Lo(b,t))?n:[...n,e,t]),i=di(o,e),a=di(o,t),d=e.x+e.width/2,c=t.x+t.width/2,s=(r%3-1)*4;if(i===a){let b=i<o.length-1||o.length===1,R=(b?qt(o,i,i+1):qt(o,i-1,i))+s,O=b?e.y+e.height:e.y,E=b?t.y+t.height:t.y;return[{x:d,y:O},{x:d,y:R},{x:c,y:R},{x:c,y:E}]}let l=a>i,u=l?1:-1,h={x:d,y:l?e.y+e.height:e.y},g={x:c,y:l?t.y:t.y+t.height},x=(l?qt(o,i,i+1):qt(o,i-1,i))+s,p=(l?qt(o,a-1,a):qt(o,a,a+1))+s;if(Math.abs(a-i)===1)return[h,{x:d,y:x},{x:c,y:x},g];let f=[];for(let b=i+u;b!==a;b+=u)f.push(o[b]);let m=Ma(f,c);return[h,{x:d,y:x},{x:m,y:x},{x:m,y:p},{x:c,y:p},g]}function ci(e,t=16){let n=new Map;for(let o of e){let i=o.a<o.b?`${o.a}\0${o.b}`:`${o.b}\0${o.a}`,a=n.get(i);a?a.push(o.key):n.set(i,[o.key])}let r=new Map;for(let o of n.values())o.forEach((i,a)=>r.set(i,(a-(o.length-1)/2)*t));return r}var We=ee(be(),1);function $n(e,t){let n=Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x),r=Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y);if(n>0&&r>0)return null;let o=n>.5*Math.min(e.width,t.width),i=!o&&r>.5*Math.min(e.height,t.height);if(o){let x={x:e.x+e.width,y:e.y+e.height/2},p={x:t.x+t.width,y:t.y+t.height/2};return{from:x,to:p,control:{x:Math.max(x.x,p.x)+18,y:(x.y+p.y)/2},mode:"stacked"}}if(i){let x={x:e.x+e.width/2,y:e.y},p={x:t.x+t.width/2,y:t.y};return{from:x,to:p,control:{x:(x.x+p.x)/2,y:Math.min(x.y,p.y)-18},mode:"abreast"}}let a={x:t.x+t.width/2,y:t.y+t.height/2},d={x:e.x+e.width/2,y:e.y+e.height/2},c=Tn(e,a),s=Tn(t,d),l=Math.hypot(s.x-c.x,s.y-c.y);if(l<8)return null;let u=Math.min(36,l*.12),h=-(s.y-c.y)/l,g=(s.x-c.x)/l;return{from:c,to:s,control:{x:(c.x+s.x)/2+h*u,y:(c.y+s.y)/2+g*u},mode:"direct"}}function Tn(e,t){let n=e.x+e.width/2,r=e.y+e.height/2,o=t.x-n,i=t.y-r;if(o===0&&i===0)return{x:n,y:r};let a=o===0?1/0:e.width/2/Math.abs(o),d=i===0?1/0:e.height/2/Math.abs(i),c=Math.min(a,d),s=Math.max(0,c*.98);return{x:n+o*s,y:r+i*s}}function Ra(e,t,n){let r=t.get(e.from),o=t.get(e.to);if(!r||!o)return!1;if(n)return!0;let i=Math.round(r.plane)===1||Math.round(o.plane)===1,a=d=>!!d.aggregate&&Math.round(d.plane)===2;return i&&!a(r)&&!a(o)}var Oa=()=>({clips:new Map,members:new Map,marks:new Map});function Ea(e,t){let n=t.marks.get(e);if(n)return n;n=new Map;for(let r of e.querySelectorAll("[data-graview-pick], [data-graview-slot]"))for(let o of new Set([r.getAttribute("data-graview-pick"),r.getAttribute("data-graview-slot")])){if(o===null)continue;let i=n.get(o);i?i.push(r):n.set(o,[r])}return t.marks.set(e,n),n}function Pa(e,t){let n=t.clips.get(e);if(n===void 0){let r=getComputedStyle(e);n=r.overflow!=="visible"||r.overflowX!=="visible"||r.overflowY!=="visible"?e.getBoundingClientRect():null,t.clips.set(e,n)}return n}function Ca(e,t,n){let r=e.parentElement;for(;r!==null;){let o=Pa(r,n);if(o&&!(t.right>o.left+1&&t.left<o.right-1&&t.bottom>o.top+1&&t.top<o.bottom-1))return!1;if(r.hasAttribute("data-graview-view"))break;r=r.parentElement}return!0}function on(e,t,n,r){if(!e||!t||typeof document>"u")return[];let o=r.members.get(t);o||r.members.set(t,o=new Map);let i=o.get(n);if(i)return i;let a=e.getBoundingClientRect(),d=[];for(let c of Ea(t,r).get(n)??[]){if(c.closest("[data-graview-offstage]"))continue;let s=c.getBoundingClientRect();s.width<=2||s.height<=2||Ca(c,s,r)&&d.push({x:s.left-a.left,y:s.top-a.top,width:s.width,height:s.height})}return d.sort((c,s)=>c.width*c.height-s.width*s.height),o.set(n,d),d}function Hn(e,t,n,r,o){let i=new Map(e.map(f=>[f.id,f])),a=Oa(),d=new Map,c=f=>{if(!n||typeof document>"u")return null;let m=d.get(f);return m===void 0&&(m=n.querySelector(`[data-graview-view="${CSS.escape(f)}"]`),d.set(f,m)),m},s=new Map;for(let f of e){let m=Qe(n,f.id,r)??qe(f,o);m&&s.set(f.id,m)}let l=new Map;if(n&&typeof document<"u"){let f=n.getBoundingClientRect();for(let m of n.querySelectorAll("[data-graview-pick], [data-graview-slot]")){if(m.closest("[data-graview-offstage]"))continue;let b=m.getAttribute("data-graview-pick")??m.getAttribute("data-graview-slot");if(b===null)continue;let R=m.getBoundingClientRect();if(R.width<=2||R.height<=2||R.width>f.width*.6&&R.height>f.height*.6)continue;let O=l.get(b),E={x:R.left-f.left,y:R.top-f.top,width:R.width,height:R.height};O?O.push(E):l.set(b,[E])}}let u=(f,m)=>{let b=[];for(let[R,O]of s)R!==f&&R!==m&&b.push(O);for(let[R,O]of l)R!==f&&R!==m&&b.push(...O);return b},h=f=>Math.round(i.get(f)?.plane??-1)===1,g=[];for(let f of e){let m=s.get(f.id);m&&Math.round(f.plane)===1&&g.push(m)}let x=(f,m)=>!r&&h(f)&&h(m)?g:void 0,p=[];for(let f of t){if(!Ra(f,i,r))continue;let m=s.get(f.from),b=s.get(f.to);if(!m||!b)continue;let R=u(f.from,f.to),O=f.edges,E=r&&O.some(k=>k.from!==f.from&&on(n,c(f.from),k.from,a).length>0||k.to!==f.to&&on(n,c(f.to),k.to,a).length>0),S=x(f.from,f.to);if(r&&!E||f.loop||O.length===0){p.push({key:f.id,connector:f,edges:O,fromBox:m,toBox:b,fromAnchor:f.from,toAnchor:f.to,obstacles:R,hosts:[],...S?{band:S}:{}});continue}let j=new Map;for(let k of O){let w=k.from===f.from?[]:on(n,c(f.from),k.from,a),M=k.to===f.to?[]:on(n,c(f.to),k.to,a),C=[f.from,f.to].find(X=>Math.round(i.get(X)?.plane??-1)===0);if(!r&&C!==void 0&&(k.from!==f.from||k.to!==f.to)&&on(n,c(C),C===f.from?k.to:k.from,a).length>0)continue;let B=C!==void 0?i.get(C):void 0;if(!r&&B?.aggregate&&n&&(C===f.from?k.from!==f.from&&w.length===0:k.to!==f.to&&M.length===0))continue;let A=w.length>0?k.from:f.from,$=M.length>0?k.to:f.to,D=`${f.id}|${A}|${$}`,H=j.get(D);if(H){H.edges.push(k);continue}let Y=w.length>0?w:[m],K=M.length>0?M:[b],W=Y[0],ge=K[0],me=1/0;for(let X of Y)for(let oe of K){let L=Math.hypot(X.x+X.width/2-(oe.x+oe.width/2),X.y+X.height/2-(oe.y+oe.height/2));L<me&&(me=L,W=X,ge=oe)}j.set(D,{edges:[k],fromBox:W,toBox:ge,fromAnchor:A,toAnchor:$})}for(let[k,w]of j)p.push({key:k,connector:f,obstacles:R,hosts:[...w.fromAnchor!==f.from?[m]:[],...w.toAnchor!==f.to?[b]:[]],...S?{band:S}:{},...w})}return p}function Io(e,t){let n=(1-t)*(1-t),r=2*(1-t)*t,o=t*t;return{x:n*e.p0.x+r*e.c.x+o*e.p1.x,y:n*e.p0.y+r*e.c.y+o*e.p1.y}}function ui(e,t,n){let r=(1-t)*(1-n),o=(1-t)*n+t*(1-n),i=t*n;return{p0:Io(e,t),c:{x:r*e.p0.x+o*e.c.x+i*e.p1.x,y:r*e.p0.y+o*e.c.y+i*e.p1.y},p1:Io(e,n)}}function No(e,t){let n=s=>t.some(l=>s.x>l.x&&s.x<l.x+l.width&&s.y>l.y&&s.y<l.y+l.height),r=s=>!n(Io(e,s)),i=(s,l,u)=>{for(let h=0;h<10;h++){let g=(s+l)/2;r(g)===u?s=g:l=g}return(s+l)/2},a=[],d=null,c=r(0);c&&(d=0);for(let s=1;s<=64;s++){let l=s/64,u=r(l);if(u===c)continue;let h=i((s-1)/64,l,c);u?d=h:d!==null&&(h-d>.001&&a.push(ui(e,d,h)),d=null),c=u}return d!==null&&1-d>.001&&a.push(ui(e,d,1)),a}function hi({strands:e,result:t,scheme:n,overview:r,selection:o,emphasis:i,stageRef:a,liveOf:d,onPickEdge:c}){let s=en(),l=new Set(t.nodes.filter(S=>S.plot!==void 0&&Math.round(S.plane)===2).map(S=>S.id)),u=S=>r&&t.city!==void 0&&l.has(S.from)&&l.has(S.to),h=So(t.nodes,o),g=S=>h.size===0||h.has(S.from)||h.has(S.to),x=new Set(o.filter(S=>Rt(S)===null)),p=r?t.nodes.find(S=>Math.round(S.plane)===0):void 0,f=p?Qe(a.current,p.id,!1)??qe(p,n):null;if(e.length===0)return null;let m=S=>S.edges.some(j=>x.has(j.from)||x.has(j.to)),b=x.size>0&&e.some(m),R=new Map;for(let S of e)R.set(S.connector.id,(R.get(S.connector.id)??0)+1);let O=ci(e.map(S=>({key:S.key,a:S.fromAnchor,b:S.toAnchor}))),E=e.map((S,j)=>{let{connector:k,fromBox:w,toBox:M}=S,C={x:w.x+w.width/2,y:w.y+w.height/2},B={x:M.x+M.width/2,y:M.y+M.height/2},A=r?Tn(w,B):C,$=r?Tn(M,C):B,D=k.loop===!0,{connector:H,style:Y}=bn(s,k.kind);if(!H.visible)return null;let K=D?Math.max(22,Math.min(w.width,w.height)*.3):0,W=D?{x:C.x+w.width*.22,y:C.y-w.height/2-K+7}:A,ge=(A.x+$.x)/2,me=(A.y+$.y)/2,X=Math.hypot($.x-A.x,$.y-A.y),oe=Math.min(r?40:90,X*(r?.09:.16)),L=0,z=0;if(X>0){L=-($.y-A.y)/X,z=($.x-A.x)/X;let ne=ge-t.width/2,xe=me-t.height/2;if(f&&!D){let rt=f.x+f.width/2,Me=f.y+f.height/2;ne=ge-rt,xe=me-Me;let gt=Math.abs(L*(rt-A.x)+z*(Me-A.y)),mt=Math.hypot(f.width/2,f.height/2)*.85+24,St=((rt-A.x)*($.x-A.x)+(Me-A.y)*($.y-A.y))/(X*X);gt<mt&&St>.1&&St<.9&&(oe=Math.min(180,Math.max(oe,(mt-gt)*2)))}L*ne+z*xe<0&&(L=-L,z=-z)}oe+=2*(O.get(S.key)??0);let v=Nn(H.route,{p0:A,c:{x:ge+L*oe,y:me+z*oe},p1:$}),N=u(k),T=H.route==="orthogonal"||N,G=(ne,xe)=>N?si(ne,xe):nn(ne,xe),F=!D&&S.band?li(w,M,S.band,j):null,re=D||T||F?[]:No(v,[w,M,...S.obstacles]),ie=F?[F]:!D&&T?Ao(G(A,$),[w,M,...S.obstacles]):[];if(!D&&re.length===0&&ie.length===0)return null;let de=ie[ie.length-1],J=T||F?ie[0]?.[0]:re[0]?.p0,Ae=T||F?de?.[de.length-1]:re[re.length-1]?.p1,Se=ne=>ne.map(xe=>`M ${xe.p0.x} ${xe.p0.y} Q ${xe.c.x} ${xe.c.y} ${xe.p1.x} ${xe.p1.y}`).join(" "),et=`M ${W.x-K} ${W.y} A ${K} ${K} 0 1 1 ${W.x+K} ${W.y} A ${K} ${K} 0 0 1 ${W.x-K} ${W.y}`,Ye=D?et:F?ii(F,10):T?Dt(ie):Se(re),U=ne=>({x:ne.x-8,y:ne.y-8,width:ne.width+16,height:ne.height+16}),Le=[w,M,...S.hosts,...S.obstacles].map(U),tt=D?et:F?Dt(ie):T?Dt(Ao(G(A,$),Le)):Se(No(v,Le)),nt=S.edges.length===1?S.edges[0]:null,Fe=nt?Yt(k.kind,nt.from,nt.to):null,Je=Fe!==null&&o.includes(Fe),ht=S.edges.some(ne=>x.has(ne.from)||x.has(ne.to)),Ne=!r&&x.size>0&&ht,ft=i!==null&&k.kind===i||Je,yt=d?.(k)!==void 0;if(r&&!ft&&!ht&&!(h.size>0&&g(k))&&!yt)return null;let ze=r?Mo({emphasized:i!==null,stressed:ft,anyChosen:b,mine:ht,touches:g(k),siblings:R.get(k.id)??1}):Ro({edgeChosen:Je,lit:Ne,anyLit:b||i!==null,own:Y.opacity,kit:s.emphasis}),ot=Ne&&J&&Ae?S.edges.some(ne=>x.has(ne.from))?Ae:J:null,Ie=(0,We.jsxs)("g",{children:[(0,We.jsx)("path",{"data-graview-connector":k.kind,"data-graview-edges":S.edges.length,"data-graview-from":S.fromAnchor,"data-graview-to":S.toAnchor,"data-graview-lit":Ne||void 0,"data-graview-activity":d?.(k)?.manner,opacity:ze*(k.opacity??1),d:Ye,fill:"none",stroke:Xt(Y),strokeWidth:(Ne?Math.max(1.6,ao(Y,r)):ao(Y,r))+(ft?.6:0),strokeDasharray:xn[Y.pattern],strokeLinecap:"round"}),ot?(0,We.jsx)("circle",{cx:ot.x,cy:ot.y,r:2.6,fill:Xt(Y),opacity:ze}):null,D&&r?(0,We.jsx)("text",{x:W.x,y:W.y-K-5,textAnchor:"middle",opacity:ze,style:{font:"9px var(--graview-font-body, system-ui)",letterSpacing:"0.09em",textTransform:"uppercase",fill:"var(--graview-ink-faint)"},children:Vt(k.kind).toLowerCase()}):null]},S.key),kt=null;return Fe&&c&&!D&&ze>=.2&&(kt=(0,We.jsx)("path",{"data-graview-edge":Fe,className:"graview-edge-hit",d:tt,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:ne=>{ne.stopPropagation(),c(Fe,{x:ne.clientX,y:ne.clientY})},onContextMenu:ne=>{ne.preventDefault(),ne.stopPropagation(),c(Fe,{x:ne.clientX,y:ne.clientY})}},`hit:${S.key}`)),{key:S.key,line:Ie,hit:kt}});return(0,We.jsxs)(We.Fragment,{children:[(0,We.jsx)("svg",{"aria-hidden":"true","data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Te.ties},children:E.map(S=>S?.line)}),E.some(S=>S?.hit)?(0,We.jsx)("svg",{"data-graview-world":"",width:t.width,height:t.height,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Te.tieLabels},children:E.map(S=>S?.hit)}):null]})}var Aa=e=>e.length*8.4+16;function fi(e,t){let n=new Map;for(let i of e){let a=n.get(i.key);a?a.push(i):n.set(i.key,[i])}let r=[...n.values()].map(i=>{let a=Math.min(...i.map(c=>c.top)),d=i.filter(c=>c.top-a<=12);return{key:i[0].key,text:i[0].text,left:Math.min(...d.map(c=>c.left)),right:Math.max(...d.map(c=>c.right)),top:a}});r.sort((i,a)=>i.top-a.top||i.left-a.left);let o=r.map(i=>{let a=Math.max(i.right-i.left,Math.min(300,Aa(i.text))),d=(i.left+i.right)/2;return{left:d-a/2,right:d+a/2}});return r.map((i,a)=>{let d=r.map((m,b)=>({other:m,at:b})).filter(({other:m})=>m!==i&&Math.abs(m.top-i.top)<=12),c=d.filter(({other:m})=>m.right<=i.left).map(({other:m,at:b})=>o[b].right+8<=(m.right+i.left)/2?o[b].right+8:(m.right+i.left+8)/2),s=d.filter(({other:m})=>m.left>=i.right).map(({other:m,at:b})=>o[b].left-8>=(i.right+m.left)/2?o[b].left-8:(i.right+m.left-8)/2),l=Math.max(t.left,...c),u=Math.min(t.right,...s),h=i.right-i.left,g=o[a].right-o[a].left,x=Math.max(h,Math.min(g,u-l)),p=(i.left+i.right)/2,f=h>=x?i.left:Math.max(l,Math.min(p-x/2,u-x));return{key:i.key,text:i.text,left:f,width:x,top:i.top}})}function Dn(e){return e<640?{left:8,right:56}:{left:8,right:Math.round(Math.min(128,e*.107))}}var Ce=ee(be(),1);function yi({frame:e,width:t,height:n,scheme:r,overview:o,selection:i,emphasis:a,stageRef:d,store:c,graphNodes:s,onPickEdge:l,liveOf:u,holding:h=!1}){let[g,x]=(0,_e.useState)(0),[p,f]=(0,_e.useState)(null),m=e.t<1;(0,_e.useLayoutEffect)(()=>{m||h||f(Hn(e.nodes,e.connectors,d.current,o,r))},[e,m,h,i,o,s,r,g,d]);let b=e.nodes.map(E=>E.id).join(`
|
|
8
|
-
`);if((0,_e.useLayoutEffect)(()=>{let E=d.current;if(E===null||typeof window>"u")return;let S=0,j=()=>{S===0&&(S=requestAnimationFrame(()=>{S=0,x(w=>w+1)}))};E.addEventListener("scroll",j,{capture:!0,passive:!0}),window.addEventListener("resize",j,{passive:!0});let k=typeof ResizeObserver>"u"?null:new ResizeObserver(j);if(k){k.observe(E);for(let w of E.querySelectorAll("[data-graview-view]"))k.observe(w)}return()=>{S!==0&&cancelAnimationFrame(S),E.removeEventListener("scroll",j,{capture:!0}),window.removeEventListener("resize",j),k?.disconnect()}},[d,b]),m)return null;let R=(h?null:p)??Hn(e.nodes,e.connectors,null,o,r),O=new Set;for(let E of R){if(E.edges.length!==1)continue;let S=E.edges[0];O.add(`${E.connector.kind}|${S.from}|${S.to}`)}return(0,Ce.jsxs)(Ce.Fragment,{children:[(0,Ce.jsx)(hi,{strands:R,result:e,scheme:r,overview:o,selection:i,emphasis:a,stageRef:d,onPickEdge:l,liveOf:u}),(0,Ce.jsx)(La,{stageRef:d,nodes:e.nodes,scheme:r,selection:i,store:c,graphNodes:s,overview:o,width:t,height:n,onPickEdge:l,alreadyDrawn:O,tick:g})]})}function La({stageRef:e,nodes:t,scheme:n,selection:r,store:o,graphNodes:i,overview:a,width:d,height:c,onPickEdge:s,alreadyDrawn:l,tick:u}){let h=en(),g=(0,_e.useMemo)(()=>{if(r.length===0||r.length>4)return[];let m=new Set(r),b=[];for(let O of r){let E=Rt(O);E&&b.push({kind:E.kind,self:E.from,other:E.to})}for(let O of o.graph.allEdges()){let E=m.has(O.from)?O.from:m.has(O.to)?O.to:null;if(!E)continue;let S=E===O.from?O.to:O.from;m.has(S)||b.push({kind:O.kind,self:E,other:S})}if(b.length<=14)return b;let R=new Set(t.map(O=>O.id));return b.map((O,E)=>({tie:O,index:E,real:R.has(O.other)?0:1})).sort((O,E)=>O.real-E.real||O.index-E.index).slice(0,14).map(({tie:O})=>O)},[o,r,i,t]),x=()=>{if(g.length===0||typeof document>"u")return[];if(!e.current?.getBoundingClientRect())return[];let b=[...e.current?.querySelectorAll("[data-graview-joins]")??[]].find(w=>{if(w.closest("[data-graview-offstage]"))return!1;try{let M=JSON.parse(w.getAttribute("data-graview-joins")??"[]");return M.length===r.length&&M.every(C=>r.includes(C))}catch{return!1}});if(b){let w=Ln(b,e.current);if(!w)return[];let M=[];for(let C of r){let B=t.find(H=>H.id===C);if(!B)continue;let A=Qe(e.current,B.id,a)??qe(B,n),$=A?$n(w,A):null;if(!A||!$)continue;let D=[...o.graph.allEdges()].find(H=>H.from===C&&r.includes(H.to)||H.to===C&&r.includes(H.from));M.push({key:`join:${C}`,kind:D?.kind??"",endX:$.to.x,endY:$.to.y,...$,fromBox:w,toBox:A,proxy:!1,edgeId:D?Yt(D.kind,D.from,D.to):null})}return M}let R=(w,M)=>{let C=e.current?.querySelectorAll(`[data-graview-pick="${CSS.escape(w)}"], [data-graview-slot="${CSS.escape(w)}"]`),B=[];for(let A of C??[]){if(A.closest("[data-graview-offstage]")||M(A)||A.closest("[data-graview-mark]"))continue;let $=Ln(A,e.current);$&&B.push($)}return B.sort((A,$)=>A.width*A.height-$.width*$.height)},O=w=>t.find(M=>M.id===w)??t.find(M=>M.aggregate?.memberIds.includes(w)),E=w=>`[data-graview-pick="${CSS.escape(w)}"], [data-graview-slot="${CSS.escape(w)}"]`,S=(w,M)=>{let C=e.current;if(!C)return!1;for(let B of C.querySelectorAll("[data-graview-view]")){let A=B.querySelector(E(w));if(A===null||A.closest("[data-graview-offstage]"))continue;let $=B.querySelector(E(M));if($!==null&&!$.closest("[data-graview-offstage]"))return!0}return!1},j=new Set,k=[];for(let w of g){if(S(w.self,w.other))continue;let M=O(w.self),C=M?e.current?.querySelector(`[data-graview-view="${CSS.escape(M.id)}"]`):null,B=R(w.self,()=>!1);if(!(B.length>0)&&M){let v=Qe(e.current,M.id,!1)??qe(M,n);v&&B.push(v)}let $=t.find(v=>v.id===w.other),D=[],H=!1;if($){let v=Qe(e.current,$.id,a)??qe($,n);v&&D.push(v)}else if(D.push(...R(w.other,v=>C?C.contains(v):!1)),D.length===0){let v=O(w.other);if(v&&(!M||v.id!==M.id)){let N=Qe(e.current,v.id,a)??qe(v,n);N&&(D.push(N),H=!0)}}if(B.length===0||D.length===0||H&&a)continue;let Y=B[0],K=D[0],W=1/0;for(let v of B)for(let N of D){let T=Math.hypot(v.x+v.width/2-(N.x+N.width/2),v.y+v.height/2-(N.y+N.height/2));T<W&&(W=T,Y=v,K=N)}if(l?.has(`${w.kind}|${w.self}|${w.other}`)||l?.has(`${w.kind}|${w.other}|${w.self}`))continue;let ge=`${w.kind}:${Math.round(Y.x)},${Math.round(Y.y)}:${Math.round(K.x)},${Math.round(K.y)}`;if(j.has(ge))continue;j.add(ge);let me=$n(Y,K);if(!me)continue;let{from:X,to:oe,control:L}=me,z=[...o.graph.allEdges()].find(v=>v.kind===w.kind&&(v.from===w.self&&v.to===w.other||v.from===w.other&&v.to===w.self));k.push({key:`${w.kind}:${w.self}:${w.other}`,kind:w.kind,endX:oe.x,endY:oe.y,from:X,to:oe,control:L,fromBox:Y,toBox:K,proxy:H,edgeId:z?Yt(z.kind,z.from,z.to):null})}return k},[p,f]=(0,_e.useState)([]);return(0,_e.useLayoutEffect)(()=>{f(x())},[g,t,a,n,d,c,l,u,e]),p.length===0?null:(0,Ce.jsx)("svg",{"aria-hidden":p.some(m=>m.edgeId)?void 0:!0,"data-graview-ties":p.length,"data-graview-world":"",width:d,height:c,style:{position:"absolute",left:0,top:0,pointerEvents:"none",zIndex:Te.lines},children:p.map(m=>{let{connector:b,style:R}=bn(h,m.kind);if(!b.visible)return null;let O={p0:m.from,c:m.control,p1:m.to},E=b.route==="orthogonal"?Dt([nn(m.from,m.to)]):(({p0:j,c:k,p1:w})=>`M ${j.x} ${j.y} Q ${k.x} ${k.y} ${w.x} ${w.y}`)(Nn(b.route,O)),S=null;if(m.edgeId&&s&&!m.proxy){let j=(w,M)=>M.x>=w.x&&M.x<=w.x+w.width&&M.y>=w.y&&M.y<=w.y+w.height,k=[];for(let w=0;w<=40;w++){let M=ai(b.route,O,w/40);j(m.fromBox,M)||j(m.toBox,M)||k.push(M)}k.length>=2&&(S=(0,Ce.jsx)("path",{"data-graview-edge":m.edgeId,className:"graview-edge-hit",d:`M ${k[0].x} ${k[0].y} ${k.slice(1).map(w=>`L ${w.x} ${w.y}`).join(" ")}`,fill:"none",pathLength:1,strokeDasharray:"0.86",strokeDashoffset:-.07,stroke:"transparent",strokeWidth:14,style:{pointerEvents:"stroke",cursor:"pointer"},onClick:w=>{w.stopPropagation(),s(m.edgeId,{x:w.clientX,y:w.clientY})},onContextMenu:w=>{w.preventDefault(),w.stopPropagation(),s(m.edgeId,{x:w.clientX,y:w.clientY})}}))}return(0,Ce.jsxs)("g",{opacity:m.proxy?.32:.72,children:[(0,Ce.jsx)("path",{"data-graview-tie":m.kind,"data-graview-tie-proxy":m.proxy||void 0,d:E,fill:"none",stroke:Xt(R),strokeWidth:m.proxy?1.1:1.6,strokeDasharray:xn[R.pattern],strokeLinecap:"round"}),(0,Ce.jsx)("circle",{cx:m.endX,cy:m.endY,r:m.proxy?2:2.6,fill:Xt(R)}),S]},m.key)})})}function gi({nodes:e,scheme:t,width:n,stageRef:r,moving:o=!1,holding:i=!1}){let a=en(),[d,c]=(0,_e.useState)([]);(0,_e.useLayoutEffect)(()=>{o||i||c(s())},[e,o,i,t,n,r]);function s(){let l=[];for(let h of e){if(!h.via||Math.round(h.plane)!==1)continue;let g=Qe(r.current,h.id,!1),{scale:x}=Ue(1,t);l.push({key:`${h.via.edgeKind}|${h.via.direction}`,text:h.via.description??`${h.via.direction==="in"?"\u2190":"\u2192"} ${Vt(h.via.edgeKind).toLowerCase()}`,left:g?.x??h.x,right:g?g.x+g.width:h.x+h.width*x,top:g?.y??h.y})}let u=Dn(n);return fi(l,{left:u.left,right:n-u.right})}return d.length===0||!a.captions.visible||o?null:(0,Ce.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:Te.lines},children:d.map(l=>{let{left:u,width:h}=l;return(0,Ce.jsx)("div",{"data-graview-relation":l.key,title:l.text,style:{position:"absolute",left:u,width:h,textAlign:"center",top:Math.max(0,l.top-19),fontSize:"0.75rem",letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:(0,Ce.jsx)("span",{style:{background:"var(--graview-ground)",padding:"1px 7px",borderRadius:4},children:l.text})},l.key)})})}var rn=ee(He(),1);var Na=new Set;function mi(e,t,n,r,o,i,a,d){let{store:c,views:s,hiddenKinds:l}=le(),u=Lt(),h=no(),g=(0,rn.useMemo)(()=>{let f={};for(let m of h){if(m.subjectId===void 0)continue;let b=f[m.subjectId]??=[];for(let R of m.nodeIds)R!==m.subjectId&&!b.includes(R)&&b.push(R)}return f},[h]),x=(0,rn.useMemo)(()=>({flagged:new Set(h.flatMap(f=>f.nodeIds)),touched:Go(c.log.all())}),[h,c,d]),p=(0,rn.useMemo)(()=>({hits:u?mn(u):Na,...x}),[u,x]);return(0,rn.useMemo)(()=>({...e,cityZoom:i,...a!==void 0?{screenHeight:a}:{},...l.size>0?{hiddenKinds:[...l].sort()}:{},...Object.keys(g).length>0?{judged:g}:{},relevance:p,inset:Dn(t?.width??1200),unit:n,plainGroups:c.schema.kinds.filter(f=>nr(s.lookup(f,{cardinality:"many",fidelity:"full"}))),cityOrder:Xo(qo({name:"scene",schema:c.schema,mutations:c.allMutations().filter(f=>!f.derived)}).order.map(f=>f.kind),s.arrangement?.()?.order),screens:s.places().reduce((f,m)=>((f[m.kind]??=[]).push({as:m.as,title:m.title,...m.across?{across:m.across}:{}}),f),{}),nameWidth:r,...t?{width:t.width,height:o?Math.max(0,t.height-64):t.height}:{}}),[e,t,n,c,s,l,g,p,i,a,r,o])}var ut=ee(He(),1);var pi=ee(He(),1);function Fn(e){let t=e?.closest?.("[data-graview-pick]")?.getAttribute("data-graview-joins");if(!t)return null;try{let n=JSON.parse(t);return Array.isArray(n)&&n.length>0&&n.every(r=>typeof r=="string")?n:null}catch{return null}}function xi(e){(0,pi.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{for(let i of t.querySelectorAll("[data-graview-pick]"))i.getAttribute("tabindex")===null&&i.setAttribute("tabindex","0"),i.getAttribute("role")===null&&$a(i)&&i.setAttribute("role","button")};if(n(),typeof MutationObserver>"u")return;let r=0,o=new MutationObserver(()=>{r===0&&(r=typeof requestAnimationFrame>"u"?0:requestAnimationFrame(()=>{r=0,n()}),r===0&&n())});return o.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-graview-pick"]}),()=>{o.disconnect(),r!==0&&cancelAnimationFrame(r)}},[e])}var Ta=new Set(["div","span","p","figure","img","td","output","b","i","em","strong","small","canvas","g","polygon","circle","rect","path","ellipse","polyline","line","use"]);function $a(e){return Ta.has(e.localName.toLowerCase())}var Qt=ee(be(),1);function wi({node:e,useDom:t,touched:n,frontY:r,centerY:o,screen:i,onDrawnHeight:a,crowded:d,activity:c,scheme:s,canvasWidth:l,canvasHeight:u,selected:h,onSelect:g,onPick:x,onTravel:p,onMenu:f,selection:m,onJackIn:b,onDragStart:R,onDragMove:O,onDragEnd:E,swallowClick:S,children:j}){let{brand:k,store:w,actsDoor:M}=le(),C=e.beyond?`${e.beyond.length} more district${e.beyond.length===1?"":"s"}`:e.aggregate?.opens?.in==="place"?`${e.aggregate.label}, ${hn(w.schema,e.aggregate.kind,e.aggregate.memberIds.length)}`:e.aggregate?e.aggregate.label:(()=>{let v=w.graph.getNode(e.id);return v?_o(w.schema.tryDefinition(e.kind),v):e.id})(),[B,A]=(0,ut.useState)(null),$=Math.round(e.plane)===0&&!e.aggregate;(0,ut.useLayoutEffect)(()=>{if(!$)return;let v=me.current;if(!v)return;let N=()=>{let G=[...v.children].find(J=>J.dataset.graviewKindtag===void 0);if(!G)return;let F=v.getBoundingClientRect(),re=G.getBoundingClientRect(),ie=v.offsetWidth>0?F.width/v.offsetWidth:1,de={top:Math.round((re.top-F.top)/ie)-9,right:Math.round((F.right-re.right)/ie)+14};A(J=>J&&J.top===de.top&&J.right===de.right?J:de)};if(typeof ResizeObserver>"u"){N();return}let T=new ResizeObserver(N);T.observe(v);for(let G of v.children)T.observe(G);return()=>T.disconnect()},[$,e.id]);let D=e.plane-(1-(e.depth??1))*.55,H=Math.max(0,Math.min(2,Math.floor(D))),Y=Math.max(0,Math.min(2,Math.ceil(D))),K=H===Y?Ue(H,s):pn(Ue(H,s),Ue(Y,s),D-H),W=rr(K,e.x,e.y,l,u),ge=Ue(Math.max(0,Math.min(2,Math.round(D))),s).blur,me=(0,ut.useRef)(null);xi(me);let X=e.natural,oe=X?Math.min(e.width/X.width,e.height/X.height):1,L=(0,ut.useRef)(null);(0,ut.useEffect)(()=>{if(!i||!a)return;let v=L.current;if(!v||typeof ResizeObserver>"u")return;let N=()=>{let ie=0,de=0;for(let J of v.children)if(!(!(J instanceof HTMLElement)||J.classList.contains("graview-screen-fullscreen"))){ie=Math.max(ie,J.offsetTop+J.offsetHeight);for(let Ae of[J,...J.querySelectorAll("*")]){let Se=getComputedStyle(Ae).overflowY;(Se==="auto"||Se==="scroll")&&(de+=Ae.scrollHeight-Ae.clientHeight)}}a(ie+de)},T=0,G=()=>{T||(T=requestAnimationFrame(()=>{T=0,N()}))};N();let F=new ResizeObserver(G);F.observe(v);for(let ie of v.children)F.observe(ie);let re=new MutationObserver(G);return re.observe(v,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),()=>{T&&cancelAnimationFrame(T),F.disconnect(),re.disconnect(),a(void 0)}},[i,a,e.id]);let z=t?{transform:ri(W),transformOrigin:"0 0",filter:ge>0?`blur(${ge}px)`:void 0,opacity:(1-K.falloff*.55)*(e.opacity??1),"--graview-lift-low":oi(K.shadow,s),...r!==void 0?{"--graview-front-y":`${r.toFixed(1)}px`}:{},...o!==void 0?{"--graview-center-y":`${o.toFixed(1)}px`}:{}}:{};return(0,Qt.jsxs)("div",{ref:me,"data-graview-view":e.id,"data-graview-plane":Math.round(e.plane),"data-graview-selected":h||void 0,"data-graview-touched":n||void 0,"data-graview-plot":r!==void 0?"":void 0,"data-graview-screen":i?"":void 0,"data-graview-record-focus":Math.round(e.plane)===0&&!e.aggregate&&!X&&!i?"":void 0,"data-graview-nested":e.nestedUnder??void 0,"data-graview-crowded":d||void 0,"data-graview-pinned":e.pinned||void 0,"data-graview-activity":c?c.manner:void 0,"data-graview-wrote":c?.wrote||void 0,"data-graview-read":c&&!c.wrote?!0:void 0,"data-graview-broke":c?.broke||void 0,title:c?`${Xr[c.manner]} ${c.wrote?"changed this":"read this"}: ${c.intent}`:e.aggregate&&Math.round(e.plane)!==0?`Open ${e.aggregate.label}`:void 0,role:"group","aria-label":C,"aria-keyshortcuts":M&&!e.beyond?M.key:void 0,tabIndex:0,onPointerDown:R,onPointerMove:O,onPointerUp:E,onPointerCancel:E,onClick:v=>{if(S.current)return;let N=v.target?.closest("input, textarea, select, button, a[href], [contenteditable='true']");if(N&&!N.hasAttribute("data-graview-pick"))return;let T=v.metaKey||v.shiftKey,G=At(v.target);if(G&&G!==e.id){v.stopPropagation(),x(G,T,Fn(v.target)??void 0);return}g(T)},onKeyDown:v=>{if(M&&!e.beyond&&v.key.toLowerCase()===M.key.toLowerCase()&&!v.metaKey&&!v.ctrlKey&&!v.altKey&&!v.target?.closest("input, textarea, select, [contenteditable='true']")){v.preventDefault(),v.stopPropagation();let re=At(v.target)??e.id;m.includes(re)||x(re,!1),M.open(v.target instanceof HTMLElement?v.target:v.currentTarget);return}if(v.key!=="Enter"&&v.key!==" "||v.target?.closest("input, textarea, select, button, [contenteditable='true']"))return;let T=At(v.target);if(v.preventDefault(),v.stopPropagation(),!T||T===e.id){m.length===1&&m[0]===e.id&&!v.metaKey&&!v.shiftKey?b():g(v.metaKey||v.shiftKey);return}let G=Fn(v.target);(G?m.length===G.length&&G.every(re=>m.includes(re)):m.length===1&&m[0]===T)&&!v.metaKey&&!v.shiftKey?p(T):x(T,v.metaKey||v.shiftKey,G??void 0)},onContextMenu:v=>{let N=At(v.target);v.preventDefault(),v.stopPropagation();let T=N&&N!==e.id?N:e.id;x(T,!1,(T===N?Fn(v.target):null)??void 0),f({x:v.clientX,y:v.clientY,on:T})},onDoubleClick:v=>{let N=At(v.target);if(N&&N!==e.id){v.stopPropagation(),p(N);return}b()},style:{position:"absolute",...t?{}:{pointerEvents:"none"},zIndex:e.opened?Te.opened:Te.card-Math.round(e.plane),left:t?0:Math.round(e.x),top:t?0:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height),boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",...z},children:[X?(0,Qt.jsx)("div",{ref:L,"data-graview-natural":`${Math.round(X.width)}x${Math.round(X.height)}`,style:{position:"absolute",left:"50%",top:"50%",width:X.width,height:X.height,transform:`translate(-50%, -50%) scale(${oe})`,transformOrigin:"50% 50%",display:"flex",flexDirection:"column"},children:j}):j,Math.round(e.plane)===0&&!e.aggregate?(0,Qt.jsxs)("span",{"data-graview-kindtag":"",className:"graview-kind-tag","aria-hidden":"true",style:{...B??{},"--graview-hue":Math.round(Mt(e.kind,k?.accents))},children:[(0,Qt.jsx)("span",{style:{width:9,height:6,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",flex:"0 0 auto",background:`hsl(${Math.round(Mt(e.kind,k?.accents))} 55% var(--graview-tint-lightness) / 0.9)`}}),zo(w.schema.tryDefinition(e.kind),e.kind)]}):null]})}var ue=ee(be(),1);var Ha=e=>e?{activity:e}:{},Da=e=>`${Math.round(e.x)} ${Math.round(e.y)}`,Bn=e=>e.stopPropagation(),ki=.6,Si=3,Fa=80,bi=e=>Math.round(e.plane)===1&&(e.compact===!0||e.width<175||e.height<Fa);function Ba(e){let[t,n]=(0,q.useState)(1),r=(0,q.useRef)(1);return(0,q.useEffect)(()=>{e||(r.current=1,n(1))},[e]),[t,r,n]}function ja(){let[e,t]=(0,q.useState)(void 0),n=(0,q.useCallback)(r=>t(r&&Math.round(r)),[]);return[e,n]}function Va(e){let[t,n]=(0,q.useState)({x:0,y:0}),r=(0,q.useMemo)(()=>({x:(e.pan?.x??0)+t.x,y:(e.pan?.y??0)+t.y}),[e.pan,t]),o=(0,q.useMemo)(()=>t.x===0&&t.y===0?e:pt(e,r),[e,t,r]),i=(0,q.useRef)(t);i.current=t;let a=(0,q.useCallback)((d,c)=>{let s=i.current,l=(u,h,g)=>Math.max(Math.min(-u,h),Math.min(Math.max(u,h),g+h))-h;return{x:l(d.x,s.x,c.x),y:l(d.y,s.y,c.y)}},[]);return[r,o,a,i,n]}function Wa(e,t,n,r,o,i){let a=n!==null&&!t.overview,d=a?null:n,c=(0,q.useMemo)(()=>{let h=t.pan?{...t,pan:void 0}:t;return d?Kt(h,d.id,{x:d.x,y:d.y}):h},[t,d]),s=(0,q.useMemo)(()=>On(e.graph,e.schema,c,r),[e,c,r,o]),l=(0,q.useMemo)(()=>n&&a?bo(s,n.id,{x:n.x,y:n.y})??On(e.graph,e.schema,Kt(c,n.id,{x:n.x,y:n.y}),r):s,[s,n,a,e,c,r]);return[(0,q.useMemo)(()=>vo(l,i??{x:0,y:0}),[l,i]),a]}function _a(){let[e,t]=(0,q.useState)(!1),[n,r]=(0,q.useState)(!1),o=(0,q.useRef)(null),i=(0,q.useRef)(()=>!1),a=(0,q.useCallback)(()=>{r(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{o.current=null,!i.current()&&r(!1)},160)},[]);return[e,n,t,a,i,()=>{t(!1),r(!1)}]}function Ya(e){let t=(0,q.useRef)(!1),n=e!==null&&!t.current;return(0,q.useEffect)(()=>{e!==null&&(t.current=!0)},[e]),n}function za({registerScene:e,scheme:t,views:n},r,o){let i=(0,q.useRef)(r);i.current=r,(0,q.useEffect)(()=>(e({whereIs:a=>In(i.current,o.current,t,n,a)}),()=>e(null)),[e,t,n])}function Ka(e,t){(0,q.useEffect)(()=>{let n;return e.onActive(r=>{let o=t.current;if(!o)return;let i=d=>{let c=o.getBoundingClientRect();e.set({x:d.clientX-c.left,y:d.clientY-c.top})},a=()=>e.set(null);r?(o.addEventListener("pointermove",i),o.addEventListener("pointerleave",a),n=()=>{o.removeEventListener("pointermove",i),o.removeEventListener("pointerleave",a)}):(n?.(),n=void 0)})},[e])}function Ga(e,t,n,r,o){(0,q.useEffect)(()=>{if(e==="dom")return;let i=n.current;if(!i||!t)return;let a=new Set;for(let c of r.nodes)(o.has(c.id)||c.aggregate?.memberIds.some(s=>o.has(s)))&&a.add(c.id);let d=t({canvas:i,layout:r,dirty:a,hostOf:c=>i.querySelector(`[data-graview-view="${CSS.escape(c)}"]`)});return()=>{d?.()}},[e,t,r,o])}function Ua(){let e=ar();return t=>{let n=t?e.get(t.id):void 0,r=t?.aggregate?.memberIds??[];if(!n&&r.length===0)return;let o=n,i=n?.wrote??!1,a=n?.read??!1,d=n?.broke??!1;for(let c of r){let s=e.get(c);s&&(i||=s.wrote,a||=s.read,d||=s.broke,(!o||s.at>o.at||s.at===o.at&&s.wrote&&!o.wrote)&&(o=s))}return o?{...o,wrote:i,read:a,broke:d}:void 0}}var vi=(e,t)=>e.includes(t)?e.filter(n=>n!==t):[...e,t];function Xa(){let{views:e,view:t,setView:n,setSelection:r}=le(),o=Lt(),i=a=>{if($e(a.id)===null&&!a.aggregate)return!1;let d=e.resolve(a.kind,{cardinality:"many",fidelity:"full"})?.view;return d!==void 0&&d.generic!==!0};return a=>({onSelect:d=>{if(Gt(a.id)){r(s=>d?vi(s,a.id):[a.id]);return}let c=a.aggregate?Jt(a.id):[];if(t.overview){r(s=>d?[...new Set([...s,a.id])]:[a.id]);return}if(c.length===1&&!d&&Math.round(a.plane)!==0){let s=c[0];n(l=>Un(l,l.relation===s?null:s));return}r(s=>Po(a,s,d))},onPick:(d,c,s)=>r(l=>s?c?[...new Set([...l,...s])]:[...s]:c?vi(l,d):[d]),onTravel:d=>{n(c=>({...Ot(c,d),relation:null})),r([d])},onJackIn:()=>{let d=a.aggregate?.opens;if(d){d.in==="place"?n(l=>qn(l,a.id)):n(l=>Object.entries(d.within).reduce((u,[h,g])=>Xn(u,h,g),Ot(zt(l,!1),d.focus))),r([]);return}let c=$e(a.id),s=c!==null&&(o?.byKind[c]??0)>0;n(l=>Qn(l,a.id,{ownPicture:i(a),...s&&l.q?{carry:l.q}:{}})),r(a.aggregate?[]:[a.id])}})}function qa({node:e}){let{views:t,view:n,setView:r}=le();return(0,ue.jsxs)("div",{className:"graview-screen-grip","data-graview-grip":e.id,"data-testid":"screen-grip",title:"Move this picture \u2014 it stays by its own village",children:[(0,ue.jsx)("span",{className:"graview-screen-title","aria-hidden":"true",children:t.places().find(o=>o.as===n.within?.view&&o.kind===e.screenOf)?.title??""}),(0,ue.jsx)("button",{type:"button",className:"graview-screen-fullscreen","data-testid":"screen-fullscreen",title:"Open this picture on its own \u2014 leave the graview with it",onClick:o=>{o.stopPropagation(),r(i=>zt(i,!1))},onPointerDown:Bn,onDoubleClick:Bn,children:"Open \u2197"})]})}function Qa({zoom:e,zoomBy:t}){let n=(r,o,i,a)=>(0,ue.jsx)("button",{type:"button",className:"graview-zoom-button","data-testid":`zoom-${r}`,"aria-label":`Zoom ${r}`,title:`Zoom ${r} \u2014 or pinch, or ctrl+wheel`,disabled:a,onClick:()=>t(i),children:o});return(0,ue.jsxs)("div",{className:"graview-zoom","data-graview-foot":"",role:"group","aria-label":"Zoom",onPointerDown:Bn,onClick:Bn,children:[n("out","\u2212",1/1.25,e<=ki+1e-6),(0,ue.jsxs)("span",{className:"graview-zoom-level","data-testid":"zoom-level","aria-live":"polite",children:[Math.round(e*100),"%"]}),n("in","+",1.25,e>=Si-1e-6)]})}function Za({options:e,renderer:t="auto",attachRenderer:n,className:r,style:o,animate:i=!0,children:a}){let d=le(),{store:c,scheme:s,views:l,view:u,setView:h,selection:g,setSelection:x,setMenuAt:p,emphasis:f,brand:m,noteMoved:b,robots:R,seatTalk:O,motion:E}=d,S=eo(O),j=(0,q.useRef)(null),k=(0,q.useRef)(null),w=ni(k),M=ti(),C=sr(k,M,m),B=(0,q.useMemo)(()=>P=>Ut(P,132,C),[C]),{zoomAbout:A,panBy:$}=Ur({stage:k,view:u,setView:h}),D=It(),H=u.overview&&u.within?.view!==void 0?1.5:1,[Y,K,W]=Ba(u.overview),[ge,me]=ja(),X=mi(e,w,M,C,S,H*Y,ge,D),[oe,L,z,v,N]=Va(u),T=(0,q.useMemo)(()=>new Set(Object.keys(u.pins)),[u.pins]),G=zr(),[F,re]=Wa(c,u,G.held,X,D,L.pan),[ie,de,J,Ae,Se,et]=_a(),Ye=Ya(w),U=$r(F,{enabled:i&&!ie&&!de&&w!==null&&!Ye});(0,q.useEffect)(()=>E.set(ie||de||U.t<1),[E,ie,de,U]);let Le=Hr(),tt=Dr(),nt=F.nodes.find(P=>P.screenOf!==void 0)?.id??null,Fe=Yr({view:u,result:F,frame:U,panned:oe,closer:H,screenId:nt,setCamera:N});za(d,U,k),Ka(d.pointer,k),Ga(t,n,j,U,Le);let Je=t==="dom"||t==="auto"&&!n,ht=Ua(),Ne=Kr({stage:k,pan:u.pan,setView:h,settled:et});Se.current=Ne.settle;let{onGroundDown:ft,onCardDown:yt,onDragMove:ze,onDragUp:ot,swallow:Ie}=Gr({view:u,panned:oe,limit:()=>wt(F),panWithin:z,moveByTransform:Je,setView:h,setDragging:J,noteMoved:b,shift:Ne,district:G});A.current=(P,ae,he)=>{if(!u.overview)return;Se.current();let Re=K.current,it=Math.max(ki,Math.min(Si,Re*P));if(Math.abs(it-Re)<1e-4)return;K.current=it,Ae(),W(it);let at=k.current?.getBoundingClientRect(),Ke={x:F.width/2,y:F.height/2},Be=at&&ae!==void 0&&he!==void 0?{x:ae-at.left,y:he-at.top}:Ke,an=it/Re;h(Ft=>pt(Ft,wo(Ft.pan??{x:0,y:0},v.current,Be,Ke,an))),b()};let kt=(P,ae,he=wt(F))=>h(Re=>pt(Re,z(he,{x:(Re.pan?.x??0)+P,y:(Re.pan?.y??0)+ae})));$.current=(P,ae)=>{Ae();let he=wt(F),Re=u.pan??{x:0,y:0};if(Je){let it=Ne.offset();Ne.shiftTo(z(he,{x:Re.x+it.x+P,y:Re.y+it.y+ae}),Re)}else kt(P,ae,he);b()};let ne=Xa(),xe=P=>ht(U.nodes.find(ae=>ae.id===P)),rt=(P,ae,he,Re)=>P.originY+oe.y+ve(he.col+he.side/2,he.row+he.side/Re,P.cell).y-ae.y,Me={width:F.width,height:F.height},gt={position:"relative",zIndex:Te.stage,...Me},mt=P=>In(U,k.current,s,l,P),St=U.nodes.map(P=>(0,ue.jsxs)(wi,{node:P,crowded:bi(P),useDom:Je,...P.plot&&U.city&&Math.round(P.plane)===2?{frontY:rt(U.city,P,P.plot,1),centerY:rt(U.city,P,P.plot,2)}:{},...P.screenOf!==void 0?{screen:!0,...P.id===nt?{onDrawnHeight:me}:{}}:{},touched:Le.has(P.id),...Ha(ht(P)),scheme:s,canvasWidth:F.width,canvasHeight:F.height,selected:g.includes(P.id),...ne(P),onMenu:p,selection:g,onDragStart:ae=>yt(P,ae),onDragMove:ze,onDragEnd:ot,swallowClick:Ie,children:[P.screenOf!==void 0?(0,ue.jsx)(qa,{node:P}):null,P.beyond?(0,ue.jsx)(Qr,{kinds:P.beyond}):P.aggregate?.opens?(0,ue.jsx)(ei,{node:P}):(0,ue.jsx)(Zr,{node:P,mode:"scene",selected:g.includes(P.id),...bi(P)?{fidelity:"glyph"}:{}})]},P.id));return(0,ue.jsx)(dr.Provider,{value:B,children:(0,ue.jsxs)("div",{ref:k,className:`graview-ground${r?` ${r}`:""}`,"data-graview-altitude":u.overview?"":void 0,"data-graview-reach":U.city?Da(wt(F)):void 0,"data-graview-settled":U.t>=1&&!Fe.gliding()?"":void 0,"data-graview-box":w?`${w.width}x${w.height}`:void 0,onPointerDown:ft,onPointerMove:ze,onPointerUp:ot,onPointerCancel:ot,onClick:P=>{Ie.current||P.target.closest("[data-graview-view], button, aside, section[aria-label], [data-graview-offstage], a, input, select")||(x([]),p(null))},style:{position:"relative",width:"100%",height:"100%",cursor:ie?"grabbing":"grab",touchAction:"none","--graview-altitude":u.overview?1:0,...U.city?{"--graview-lattice-cell":`${U.city.cell.toFixed(2)}px`,"--graview-lattice-x":`${(U.city.originX+U.city.pan.x).toFixed(1)}px`,"--graview-lattice-y":`${(U.city.originY+U.city.pan.y).toFixed(1)}px`}:{},...ie?{userSelect:"none"}:{},overflow:"hidden",...o},children:[(0,ue.jsx)(Br,{frame:U,...Me,pan:U.city?U.city.pan:oe,brand:m,pinned:T,swallowed:Ie,onFocus:P=>{let ae=$e(P);ae!==null&&h(he=>Ot(he,Ee(ae)))}}),Je?(0,ue.jsx)("div",{"data-graview-stage":"dom","data-graview-world":"",style:{...gt,overflow:"hidden"},children:St}):(0,ue.jsx)("canvas",{ref:j,"data-graview-stage":"gpu",layoutsubtree:"",...Me,style:{display:"block",...gt},children:St}),u.overview&&!ie?(0,ue.jsx)(_r,{result:F,schema:c.schema,onGo:P=>{kt(P.x,P.y),b()}}):null,u.overview?(0,ue.jsx)(Qa,{zoom:Y,zoomBy:P=>A.current(P)}):null,(0,ue.jsx)(yi,{frame:U,holding:re,...Me,scheme:s,overview:!!u.overview,selection:g,emphasis:f,stageRef:k,store:c,graphNodes:D,onPickEdge:(P,ae)=>{Ie.current||(x([P]),p(ae?{...ae,on:P}:null))},liveOf:P=>{let ae=xe(P.from),he=xe(P.to);return ae?.wrote&&he?.wrote?ae.at>he.at?ae:he:void 0}}),(0,ue.jsx)(jr,{width:F.width,whereIs:mt}),(0,ue.jsx)(Fr,{marks:tt.marks,questions:[...R.values()].filter(P=>P.mode==="asking"&&P.at!==null&&P.say).map(P=>({id:P.at,who:P.who,asks:P.say})),whereIs:mt,stageRef:k,...Me}),(0,ue.jsx)(gi,{nodes:U.nodes,moving:U.t<1,holding:re,scheme:s,width:F.width,stageRef:k}),a]})})}var Ze=ee(He(),1);function Ja(){return Ei(),null}var Oi=()=>window.location.pathname.endsWith(Uo),Mi=()=>(Oi()?Zo:Gn)(window.location.hash),es=e=>(Oi()?Jo:Kn)(e);function Ei(){let{view:e,setView:t,views:n,principal:r}=le(),o=JSON.stringify(r),i=(0,Ze.useCallback)(l=>{let u=l.within?.view;if(u===void 0||l.focusId)return l;let h=n.places().find(g=>g.as===u);return h?{...l,focusId:Ee(h.kind)}:l},[n]),a=(0,Ze.useRef)(!1);(0,Ze.useEffect)(()=>{if(typeof window>"u")return;let l=i(Mi());!fn(l,zn)&&!fn(l,e)&&(a.current=!0,t(l))},[]),(0,Ze.useEffect)(()=>{if(typeof window>"u")return;let l=()=>t(i(Mi()));return window.addEventListener("popstate",l),window.addEventListener("hashchange",l),()=>{window.removeEventListener("popstate",l),window.removeEventListener("hashchange",l)}},[t,i]);let d=(0,Ze.useRef)(!1),c=(0,Ze.useRef)(null),s=(0,Ze.useRef)(o);(0,Ze.useEffect)(()=>{if(typeof window>"u")return;if(a.current){a.current=!1;return}let l=s.current!==o;s.current=o;let u=es(e),h=u||`${window.location.pathname}${window.location.search}`;if((window.location.hash||(window.location.href.includes("#")?"#":""))===u){d.current=!0,c.current=e;return}if(!d.current){d.current=!0,c.current=e,window.history.replaceState({graview:Nt.at},"",h);return}if(l||Pi(c.current,e)){window.history.replaceState({graview:Nt.at},"",h),c.current=e;return}c.current=e,window.history.pushState({graview:++Nt.at},"",h),Nt.depth=Nt.at,Nt.tell()},[e,o])}function Pi(e,t){return e?e.focusId===t.focusId&&e.relation===t.relation&&(e.overview??!1)===(t.overview??!1)&&(e.zoom??!1)===(t.zoom??!1)&&(e.past??!1)===(t.past??!1)&&e.expanded.join(",")===t.expanded.join(",")&&(e.shown??[]).join(",")===(t.shown??[]).join(",")&&ts(e.within,t.within):!1}function ts(e,t){let n=r=>Object.entries(r??{}).sort(([o],[i])=>o.localeCompare(i)).map(([o,i])=>`${o}=${i}`).join("&");return n(Ri(e))===n(Ri(t))}function Ri(e){if(!e||!("q"in e))return e;let{q:t,...n}=e;return n}var To=ee(He(),1);function ns(e={}){let{store:t,selection:n,principal:r,providers:o}=le(),{about:i,...a}=e,d=i??n,c=It();return(0,To.useMemo)(()=>{let s=[...new Set(d.flatMap(u=>Jt(u)))],l=d.map(u=>Rt(u)).filter(u=>u!==null);return hr(t,d,{principal:r,kindSelection:s,edgeSelection:l,...o?{providers:o}:{},...a})},[t,d,e,c,r,o])}function os(){let{store:e,principal:t}=le();return(0,To.useMemo)(()=>({preview:(n,r)=>yr(e,n,r??{}),apply:(n,r)=>fr(e,n,r??{},{author:t})}),[e,t])}export{Di as a,Zi as b,Ji as c,ea as d,ta as e,na as f,oa as g,Za as h,Ja as i,ns as j,os as k};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as l,H as p,O as k,P as y,c}from"./chunk.HQX5FGYT.js";import"./chunk.F26676IW.js";import"./chunk.ONDILMIX.js";import{b as m}from"./chunk.G3BOZHKR.js";import"./chunk.IKT7JQUW.js";import"./chunk.6DU4XN2F.js";import"./chunk.US4KIJSW.js";import"./chunk.LHFEOEYY.js";import"./chunk.U6BWYBPM.js";import"./chunk.QOYC424P.js";import"./chunk.B57EIGTS.js";import"./chunk.2YVXTTC2.js";import"./chunk.WWRWXFYR.js";import"./chunk.BJ2Y5F66.js";import"./chunk.A4SJ7EEY.js";import"./chunk.6KJSFIO7.js";import"./chunk.DEZEXD24.js";import"./chunk.YZZGD5OY.js";import"./chunk.DSZ3I557.js";import"./chunk.SSOTDXRS.js";import"./chunk.ZRVDIVYY.js";import"./chunk.AHDOKM4O.js";import"./chunk.PY42PBMB.js";import"./chunk.JCZH55RX.js";import{U as s,W as d,da as g}from"./chunk.2WFEFZAW.js";import"./chunk.RAE4M3KQ.js";import{a as S,b as f}from"./chunk.MRK6QJV5.js";import{b as n}from"./chunk.AJZBJBMO.js";var u=n(S(),1);var t=n(f(),1);function D({context:a}){let r=l(),h=g(),[w]=(0,u.useState)(()=>s(null)),o=d(h?.seatTalk??w),P=()=>{(window.history.state?.idx??0)>0?r(-1):r("/")};return(0,t.jsxs)(k,{context:a,"data-testid":"draft-page",children:[(0,t.jsx)(y,{context:a,...o.draft?{"data-testid":"draft-title"}:{},children:o.draft?o.draft.title:"Nothing drawn"}),o.draft?(0,t.jsx)(m,{page:!0,go:e=>r(e.address),onPick:e=>{let i=a.store.graph.getNode(e);i&&r(c(a.store.schema,i.kind,e))},onDiscard:P}):(0,t.jsxs)("p",{style:{margin:0,color:"var(--graview-ink-muted)"},children:["Ask for a way of seeing \u2014 \u201Ca board of tasks by status\u201D \u2014 and it is drawn here."," ",(0,t.jsx)(p,{to:"/",style:{color:"var(--graview-accent)"},children:"Home \u2192"})]})]})}export{D as DraftPage};
|