graview 0.1.27 → 0.1.29

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.
Files changed (167) hide show
  1. package/dist/preview/chunk.2643W7FT.js +1 -0
  2. package/dist/preview/chunk.2CLPRG3I.js +1 -0
  3. package/dist/preview/chunk.2IZFIORK.js +1 -0
  4. package/dist/preview/chunk.2NCTM5K2.js +2 -0
  5. package/dist/preview/{chunk.5BN2ARQ2.js → chunk.3G5MQFZK.js} +1 -1
  6. package/dist/preview/chunk.3JM2TNDD.js +2 -0
  7. package/dist/preview/chunk.44FVJOK4.js +28 -0
  8. package/dist/preview/chunk.4GGAPOMK.js +2 -0
  9. package/dist/preview/chunk.5AT4O4BN.js +1 -0
  10. package/dist/preview/chunk.5JXUAMKI.js +1 -0
  11. package/dist/preview/chunk.5R66YTET.js +2 -0
  12. package/dist/preview/chunk.64P76WK4.js +1 -0
  13. package/dist/preview/chunk.7D77HEIJ.js +1 -0
  14. package/dist/preview/chunk.7DNFXJH3.js +1 -0
  15. package/dist/preview/{chunk.HPD3DSTP.js → chunk.7PRFYYVM.js} +1 -1
  16. package/dist/preview/chunk.AE5GKL4C.js +1 -0
  17. package/dist/preview/chunk.ARR75WBP.js +35 -0
  18. package/dist/preview/chunk.AVUS5LMG.js +3 -0
  19. package/dist/preview/chunk.BKPGDEES.js +1 -0
  20. package/dist/preview/chunk.BZ5OJYHU.js +1 -0
  21. package/dist/preview/chunk.CK7QWLMX.js +1 -0
  22. package/dist/preview/chunk.COTG2IG5.js +1 -0
  23. package/dist/preview/chunk.D4GOVA25.js +1 -0
  24. package/dist/preview/chunk.DAA6XWLF.js +1 -0
  25. package/dist/preview/chunk.DKTCRFMS.js +1 -0
  26. package/dist/preview/chunk.DLGTFXGM.js +1 -0
  27. package/dist/preview/chunk.DN7SN6ZR.js +1 -0
  28. package/dist/preview/chunk.G4WQGTZR.js +3 -0
  29. package/dist/preview/chunk.GDA3G4U2.js +6 -0
  30. package/dist/preview/chunk.GS4T26WW.js +328 -0
  31. package/dist/preview/chunk.GZH6PTXN.js +1 -0
  32. package/dist/preview/chunk.HFKMHLJ3.js +1 -0
  33. package/dist/preview/chunk.HGAMNIST.js +1 -0
  34. package/dist/preview/chunk.HJCQ6I3S.js +1 -0
  35. package/dist/preview/chunk.HKBKH7EK.js +1 -0
  36. package/dist/preview/chunk.HLLWKSZB.js +5 -0
  37. package/dist/preview/chunk.HONUT6OG.js +1 -0
  38. package/dist/preview/chunk.HRWLR7T4.js +1 -0
  39. package/dist/preview/chunk.HV6I74DF.js +1 -0
  40. package/dist/preview/chunk.IPBXAAQV.js +17 -0
  41. package/dist/preview/chunk.IWYUFYDJ.js +1 -0
  42. package/dist/preview/chunk.IZW7DBK4.js +1 -0
  43. package/dist/preview/chunk.J46KDTEZ.js +10 -0
  44. package/dist/preview/chunk.JNGUSAWX.js +70 -0
  45. package/dist/preview/chunk.JU2ZVKMT.js +2 -0
  46. package/dist/preview/chunk.K4ZUVH2G.js +1 -0
  47. package/dist/preview/chunk.KC6UZHBM.js +1 -0
  48. package/dist/preview/chunk.KLITC55P.js +1 -0
  49. package/dist/preview/chunk.KZ2376BD.js +19 -0
  50. package/dist/preview/chunk.LYJAVUST.js +1 -0
  51. package/dist/preview/chunk.MB7LKKUD.js +1 -0
  52. package/dist/preview/chunk.MOUGB4H6.js +1 -0
  53. package/dist/preview/chunk.MYFWM572.js +1 -0
  54. package/dist/preview/chunk.N4FBDA2W.js +1 -0
  55. package/dist/preview/chunk.O42YET3W.js +1 -0
  56. package/dist/preview/chunk.O4QPITBD.js +9 -0
  57. package/dist/preview/{chunk.IXVSJJQH.js → chunk.OGXE2RHC.js} +4 -4
  58. package/dist/preview/chunk.OHE5AMHH.js +0 -0
  59. package/dist/preview/chunk.ONGVH3ZM.js +1076 -0
  60. package/dist/preview/chunk.OQDETV4X.js +1 -0
  61. package/dist/preview/chunk.OWBEV6FR.js +1 -0
  62. package/dist/preview/chunk.OWE6OJ4P.js +1 -0
  63. package/dist/preview/chunk.OYJSFO3A.js +1 -0
  64. package/dist/preview/chunk.P62SKNJS.js +27 -0
  65. package/dist/preview/chunk.PA5HYAEO.js +1 -0
  66. package/dist/preview/{chunk.OA5BVKJH.js → chunk.PMEDLEZY.js} +2 -2
  67. package/dist/preview/chunk.PTXQHHKF.js +1 -0
  68. package/dist/preview/chunk.Q5WEOX3Q.js +1 -0
  69. package/dist/preview/chunk.QNHECGMH.js +1 -0
  70. package/dist/preview/chunk.QSDT2RLY.js +1 -0
  71. package/dist/preview/chunk.R2D373VG.js +1 -0
  72. package/dist/preview/chunk.RB4RTBRZ.js +1 -0
  73. package/dist/preview/chunk.RCLJ4H52.js +116 -0
  74. package/dist/preview/chunk.RKRSRKF3.js +1 -0
  75. package/dist/preview/chunk.RWGLKDWH.js +1 -0
  76. package/dist/preview/chunk.SIL4KD3K.js +1 -0
  77. package/dist/preview/chunk.SS76EIMI.js +1 -0
  78. package/dist/preview/{chunk.IKT7JQUW.js → chunk.T4LY5QXO.js} +1 -1
  79. package/dist/preview/chunk.UIIVEQAT.js +1 -0
  80. package/dist/preview/chunk.UT6642FC.js +1 -0
  81. package/dist/preview/chunk.UTHHX2TJ.js +1 -0
  82. package/dist/preview/chunk.UWNYT7PF.js +1 -0
  83. package/dist/preview/chunk.V6TK4LHW.js +6 -0
  84. package/dist/preview/chunk.VNBO2RXD.js +1 -0
  85. package/dist/preview/chunk.VPPUTA74.js +1 -0
  86. package/dist/preview/chunk.WKXNBHTL.js +4 -0
  87. package/dist/preview/chunk.WLRTPFAC.js +1 -0
  88. package/dist/preview/chunk.X53HI436.js +1 -0
  89. package/dist/preview/chunk.XAXJHEMD.js +1 -0
  90. package/dist/preview/chunk.XDYAG276.js +1 -0
  91. package/dist/preview/chunk.XDZSTIS6.js +88 -0
  92. package/dist/preview/chunk.XXHNV24G.js +1 -0
  93. package/dist/preview/chunk.YCA7P5MK.js +1 -0
  94. package/dist/preview/chunk.YRQZZH5V.js +1 -0
  95. package/dist/preview/chunk.YUWRZWGX.js +1 -0
  96. package/dist/preview/chunk.Z2RGLFLS.js +1 -0
  97. package/dist/preview/chunk.Z56B2JR2.js +25 -0
  98. package/dist/preview/chunk.Z5V23DQN.js +3 -0
  99. package/dist/preview/chunk.ZBXOX3W3.js +1 -0
  100. package/dist/preview/chunk.ZEGSQCSD.js +1 -0
  101. package/dist/preview/chunk.ZEVVWWNA.js +44 -0
  102. package/dist/preview/chunk.ZS4DJ76C.js +1 -0
  103. package/dist/preview/chunk.ZSKP6UQS.js +3 -0
  104. package/dist/preview/page.js +6 -6
  105. package/package.json +6 -6
  106. package/dist/preview/chunk.4HGBVU5B.js +0 -1
  107. package/dist/preview/chunk.4JXWQO6Y.js +0 -1
  108. package/dist/preview/chunk.4R7LDCDO.js +0 -1
  109. package/dist/preview/chunk.4W24TPMR.js +0 -1
  110. package/dist/preview/chunk.6LJ66MB7.js +0 -1
  111. package/dist/preview/chunk.6R4EI47C.js +0 -1
  112. package/dist/preview/chunk.7CO6VP6F.js +0 -1
  113. package/dist/preview/chunk.7QTBDACG.js +0 -1
  114. package/dist/preview/chunk.7SVIRYBB.js +0 -1
  115. package/dist/preview/chunk.7THQFY52.js +0 -1
  116. package/dist/preview/chunk.AHDOKM4O.js +0 -1
  117. package/dist/preview/chunk.AS35X6KA.js +0 -1
  118. package/dist/preview/chunk.ATLUMYAJ.js +0 -23
  119. package/dist/preview/chunk.CW7BMVBG.js +0 -321
  120. package/dist/preview/chunk.DG2UE7PJ.js +0 -1
  121. package/dist/preview/chunk.DG2WKNMX.js +0 -1
  122. package/dist/preview/chunk.DQ5OWYLQ.js +0 -1
  123. package/dist/preview/chunk.DY2FFBWF.js +0 -1
  124. package/dist/preview/chunk.E3SZ7T75.js +0 -1
  125. package/dist/preview/chunk.EVTZE2OZ.js +0 -1
  126. package/dist/preview/chunk.FS5K4AVA.js +0 -8
  127. package/dist/preview/chunk.FTBKJ5RZ.js +0 -16
  128. package/dist/preview/chunk.GHMICJIB.js +0 -1
  129. package/dist/preview/chunk.HO6JR7VY.js +0 -1
  130. package/dist/preview/chunk.I5KD54S6.js +0 -1
  131. package/dist/preview/chunk.IZDKEFPJ.js +0 -1
  132. package/dist/preview/chunk.J36GTQTV.js +0 -1
  133. package/dist/preview/chunk.KAKX5TZN.js +0 -3
  134. package/dist/preview/chunk.LHAAZQNQ.js +0 -19
  135. package/dist/preview/chunk.LQZ2VQWN.js +0 -107
  136. package/dist/preview/chunk.MHJJEGQO.js +0 -1
  137. package/dist/preview/chunk.MNPNW4BQ.js +0 -1
  138. package/dist/preview/chunk.MRK6QJV5.js +0 -25
  139. package/dist/preview/chunk.NKIFVPS3.js +0 -1
  140. package/dist/preview/chunk.NQNQPPPM.js +0 -1
  141. package/dist/preview/chunk.OHGJ5BZ4.js +0 -2
  142. package/dist/preview/chunk.OYULDOQP.js +0 -1
  143. package/dist/preview/chunk.PHY3AH3L.js +0 -1
  144. package/dist/preview/chunk.Q7544RCB.js +0 -1
  145. package/dist/preview/chunk.QZWN46V6.js +0 -1
  146. package/dist/preview/chunk.RUC4HFVC.js +0 -1
  147. package/dist/preview/chunk.S5JWZIVE.js +0 -1
  148. package/dist/preview/chunk.SHDYLMZE.js +0 -2
  149. package/dist/preview/chunk.T2EZ5MTH.js +0 -1
  150. package/dist/preview/chunk.TMPV4HLQ.js +0 -1
  151. package/dist/preview/chunk.TX2GOL65.js +0 -29
  152. package/dist/preview/chunk.U5ZUXGWM.js +0 -1040
  153. package/dist/preview/chunk.UMMN5Z6V.js +0 -1
  154. package/dist/preview/chunk.UPGDSOBY.js +0 -1
  155. package/dist/preview/chunk.V57P4LIZ.js +0 -1
  156. package/dist/preview/chunk.VD6FJ6KJ.js +0 -2
  157. package/dist/preview/chunk.VFICMX5G.js +0 -61
  158. package/dist/preview/chunk.VMD4PDYJ.js +0 -1
  159. package/dist/preview/chunk.VMEX2KZ4.js +0 -8
  160. package/dist/preview/chunk.XDHBV5K5.js +0 -1
  161. package/dist/preview/chunk.YO7UFBJP.js +0 -1
  162. package/dist/preview/chunk.YSYT3ASK.js +0 -1
  163. package/dist/preview/chunk.YV2RTNPU.js +0 -6
  164. package/dist/preview/chunk.ZD5HGRPR.js +0 -1
  165. package/dist/preview/chunk.ZKM4P7US.js +0 -1
  166. package/dist/preview/chunk.ZMMMKTAG.js +0 -1
  167. package/dist/preview/chunk.ZNIJONZN.js +0 -1
@@ -0,0 +1 @@
1
+ var l=["solid","dashed","dotted","double","tapered"],i=["arrow","none","dot","bar"];function p(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return t>>>0}function m(e,t={}){let r=p(e);return{...{pattern:l[r%l.length],width:1.5+(r>>>3)%3*.75,cap:i[(r>>>7)%i.length],hue:(r>>>11)%360,opacity:.85},...t[e]}}var y={solid:void 0,dashed:"7 5",dotted:"1 5",double:"12 3",tapered:"10 3 3 3"},h="2 6",x=.6;function b(e){return e.color??`hsl(${Math.round(e.hue)} 55% 62%)`}function S(e,t){return t?Math.max(1.6,e.width):Math.min(1.4,e.width)}function s(e,t,r){return[e,0,0,0,0,e,0,0,0,0,1,0,t,r,0,1]}var d={0:{scale:1,blur:0,falloff:0,shadow:.16,fidelity:"full"},1:{scale:.95,blur:.3,falloff:.26,shadow:.12,fidelity:"summary"},2:{scale:.9,blur:.3,falloff:.34,shadow:.07,fidelity:"glyph"}},c={0:{scale:1,blur:0,falloff:0,shadow:.34,fidelity:"full"},1:{scale:.95,blur:.45,falloff:.18,shadow:.24,fidelity:"summary"},2:{scale:.9,blur:.45,falloff:.26,shadow:.14,fidelity:"glyph"}};function P(e,t="dark"){let r=Math.max(0,Math.min(2,Math.round(e)));return(t==="light"?d:c)[r]}function M(e,t,r){let o=Math.max(0,Math.min(1,r)),n=(a,u)=>a+(u-a)*o;return{scale:n(e.scale,t.scale),blur:n(e.blur,t.blur),falloff:n(e.falloff,t.falloff),shadow:n(e.shadow,t.shadow),fidelity:o<.5?e.fidelity:t.fidelity}}function g(e,t,r,o,n){return s(e.scale,t,r)}export{c as a,P as b,M as c,g as d,m as e,y as f,h as g,x as h,b as i,S as j};
@@ -0,0 +1 @@
1
+ import{a as c,b as d,c as e,d as f,e as g,f as h,g as i,h as j,i as k,j as l,k as m,l as n,m as o,n as p}from"./chunk.KZ2376BD.js";import{a,b}from"./chunk.IZW7DBK4.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import"./chunk.Z56B2JR2.js";import"./chunk.HLLWKSZB.js";import"./chunk.AJZBJBMO.js";export{j as ARRANGE_NARROW,o as ArrangeBar,e as CHIP_FIELDS,d as MANY_AT_THE_FAR_END,c as TYPED_FROM,p as arrangementCaption,a as arrangementOf,i as chipOffers,m as directionWords,g as farCount,f as farCounts,l as inSentence,h as offeredFilters,n as preloadArrangeLists,k as sayCondition,b as withArrangement};
@@ -0,0 +1 @@
1
+ import{b as tn,c as sn}from"./chunk.UT6642FC.js";import{e as j}from"./chunk.ZS4DJ76C.js";import{c as J}from"./chunk.G4WQGTZR.js";import{W as L,X as M,Y as z,Z as X,_ as Y,aa as nn,ba as F,ca as _,db as en,eb as R,nb as G,ya as B}from"./chunk.HLLWKSZB.js";function on(){return{name:"insight",derive({store:n,nodes:i,kindSelection:t}){let h=[],v=l=>L(n.schema.tryDefinition(l.kind),l);for(let l of i){if([...n.schema.edgeKinds].reduce((y,c)=>y+n.graph.out(l.id,c).length+n.graph.in(l.id,c).length,0)===0){h.push({id:`insight:island:${l.id}`,text:`${v(l)} is connected to nothing yet`,nodeIds:[l.id]});continue}for(let y of n.schema.edgeKinds){let c=n.graph.in(l.id,y).length;if(c<3)continue;let r=[...n.graph.allEdges()].filter(s=>s.kind===y),e=r.length;e>=4&&c/e>.6&&h.push({id:`insight:load:${l.id}:${y}`,text:`${v(l)} ${gn(n,r,y,c)}`,nodeIds:[l.id]})}}for(let l of t){if(n.graph.nodesOfKind(l).length>0)continue;let A=n.schema.definitions.filter(y=>y.kind!==l).filter(y=>Object.values(y.edges).some(c=>c.to!=="*"&&c.to.includes(l))).map(y=>y.plural??`${y.kind}s`);A.length>0&&h.push({id:`insight:gap:${l}`,text:`Nothing here yet, though ${A.join(" and ")} expect to connect to these`,nodeIds:[]})}return{observations:h}}}}function gn(n,i,t,h){let v=new Set(i.map(r=>n.graph.getNode(r.from)?.kind).filter(r=>r!==void 0)),l=v.size===1?[...v][0]:void 0,A=i.length,y=J(n.schema,l??[...v][0]??"",t,"in"),c=r=>l?X(n.schema,l,r):String(r);return h===A?`${y}: all ${c(h)}`:`${y}: ${h} of the ${c(A)}`}function rn(n){let i=new Map;if(n.length===0)return i;let t=n.slice(-512),h=new Set;for(let l of t)l.undoes&&h.add(l.undoes);let v=n[n.length-1].seq;for(let l of t){if(!l.mutation||h.has(l.id))continue;let A=Math.pow(.5,(v-l.seq)/64);i.set(l.mutation.name,(i.get(l.mutation.name)??0)+A)}return i}function an(n){return 8*(n/(n+1))}var mn=100;function dn(){return{name:"invariant",derive({store:n,selection:i,nodes:t,violations:h}){let v=r=>L(n.schema.tryDefinition(r.kind),r),l=new Set(i),A=h.filter(r=>r.nodeIds.some(e=>l.has(e))||r.subjectId!==void 0&&l.has(r.subjectId)),y=[],c=[];A.forEach((r,e)=>{c.push({id:`violation:${r.invariant}:${e}`,text:r.message,nodeIds:r.nodeIds}),r.repairs.forEach((s,f)=>{y.push({id:`invariant:${r.invariant}:${e}:${f}`,label:s.label,provider:"invariant",mutation:s.mutation,args:s.args??{},open:(s.missing??[]).map(S=>{let u=n.allMutations().find(p=>p.name===s.mutation);if(!u)return{name:S};let a=R(u.input).find(p=>p.name===S),m=a?a.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):a.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id)):void 0;return{name:S,shape:j(u.input,S),...a?{kinds:a.kinds}:{},...m?{candidates:m}:{}}}),score:mn-f-(s.missing?.length??0),why:r.message,nodeIds:r.nodeIds,...r.subjectId===void 0?{}:{subjectId:r.subjectId}})})});for(let r of t){let e=n.allInvariants().filter(s=>{if(s.scope==="graph")return!1;let f=s.scope;return f.kind!==r.kind?!1:f.match?f.match(r):!0});e.length!==0&&(A.some(s=>s.subjectId===r.id||s.nodeIds.includes(r.id))||c.push({id:`holds:${r.id}`,text:`${v(r)} holds \u2014 nothing currently breaks ${e.length===1?"it":`any of its ${e.length} rules`}`,nodeIds:[r.id]}))}return{affordances:y,observations:c}}}}var q=40;function cn(){return{name:"schema",derive({store:n,selection:i,nodes:t,kindSelection:h,edgeSelection:v,principal:l}){let A=(e,s)=>l!==void 0&&!n.permits({name:e,args:s},l).ok,y=[];if(t.length===0&&v.length>0){for(let e of v){let s=n.graph.getNode(e.from),f=n.graph.getNode(e.to);if(!s||!f)continue;let S=sn(n,e);S?.provisional&&y.push({id:`schema:edge:${G}:${e.kind}:${e.from}:${e.to}`,label:"Keep this link",provider:"schema",mutation:G,args:{kind:e.kind,from:e.from,to:e.to},open:[],score:64,why:tn(S),nodeIds:[e.from,e.to]});for(let u of n.allMutations()){let a=(u.connects??[]).includes(e.kind),m=(u.severs??[]).includes(e.kind);if(!a&&!m)continue;let p={},$=[],I=R(u.input);for(let d of I){let b=d.kinds.includes("*")||d.kinds.includes(s.kind),O=d.kinds.includes("*")||d.kinds.includes(f.kind),k=b&&!I.some(P=>P!==d&&(P.kinds.includes(s.kind)||P.kinds.includes("*")));b&&!O?p[d.name]=e.from:O&&!b?p[d.name]=e.to:b&&O&&k?p[d.name]=e.from:$.push({name:d.name,kinds:d.kinds,candidates:[e.from,e.to],shape:j(u.input,d.name)})}for(let d of T(u.input,""))d in p||$.some(b=>b.name===d)||$.push({name:d,shape:j(u.input,d)});$.every(d=>d.optional===!0?!0:d.kinds!==void 0?(d.candidates?.length??0)>0:(d.candidates?.length??0)>0||d.shape!==void 0&&d.shape.type!=="unknown")&&(a&&!m&&$.length===0||y.push({id:`schema:edge:${u.name}:${e.kind}:${e.from}:${e.to}`,label:M(u),provider:"schema",mutation:u.name,args:p,open:$,...u.destructive?{destructive:!0}:{},score:(m?62:58)-$.length,why:`this line is "${J(n.schema,n.graph.getNode(e.from)?.kind??"",e.kind,"out")}"`,nodeIds:[e.from,e.to]}))}}return{affordances:y}}if(t.length===0&&h.length>0){let e=new Set(h),s=[];for(let f of n.allMutations()){if(!(f.creates??[]).some(a=>e.has(a)))continue;let S=[];for(let a of R(f.input)){let m=a.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):a.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id));S.push({name:a.name,kinds:a.kinds,candidates:m,shape:j(f.input,a.name),...a.optional?{optional:!0}:{}})}for(let a of T(f.input,""))S.some(m=>m.name===a)||S.push({name:a,shape:j(f.input,a)});if(!S.every(a=>a.optional===!0?!0:a.kinds!==void 0?(a.candidates?.length??0)>0:(a.candidates?.length??0)>0||a.shape!==void 0&&a.shape.type!=="unknown")&&!A(f.name,{})){let a=S.filter(m=>m.optional!==!0&&m.kinds!==void 0&&!m.kinds.includes("*")&&(m.candidates?.length??0)===0);if(a.length>0){let m=[...new Set(a.flatMap(p=>p.kinds??[]))].map(p=>F(_(n.schema.tryDefinition(p),p)));s.push({id:`schema:waits:${f.name}`,text:`"${f.title??f.name}" cannot begin until there is ${m.length===1?m[0]:`${m.slice(0,-1).join(", ")} and ${m[m.length-1]}`}.`,nodeIds:[]})}continue}y.push({id:`schema:add:${f.name}`,label:M(f),provider:"schema",mutation:f.name,args:{},open:S,score:q-S.length,why:`this makes ${(f.creates??[]).filter(a=>e.has(a)).map(a=>F(_(n.schema.tryDefinition(a),a))).join(", ")}`,nodeIds:[]})}return{affordances:y,observations:s}}if(t.length===0)return{};let c=new Set(t.map(e=>e.kind)),r=(e,s,f)=>{let S=[];for(let u of n.graph.allEdges()){if(!s.includes(u.kind))continue;let a=u.from===e?u.to:u.to===e?u.from:null;if(!a)continue;let m=n.graph.getNode(a);m&&(!f.includes("*")&&!f.includes(m.kind)||S.includes(a)||S.push(a))}return S};for(let e of n.allMutations()){let s=e.subject;if(!s||!(s.kinds==="*"?!0:[...c].every(g=>s.kinds.includes(g))))continue;let S=e.derived?.act;if((S==="archive"||S==="merge")&&t.some(g=>B(g))||S==="unarchive"&&!t.some(g=>B(g)))continue;let u=t.length===1?t[0].id:null,a=e.severs??[],m=e.connects??[];if(u&&a.length>0&&m.length===0&&r(u,a,["*"]).length===0)continue;let p=[];for(let g of R(e.input)){if(g.name===s.arg)continue;let d=g.kinds.includes("*")?n.graph.allNodes().map(b=>b.id):g.kinds.flatMap(b=>n.graph.nodesOfKind(b).map(O=>O.id));if(u&&m.length>0){let b=new Set(r(u,m,g.kinds));d=d.filter(O=>!b.has(O))}else u&&a.length>0&&(d=r(u,a,g.kinds));p.push({name:g.name,kinds:g.kinds,candidates:d.filter(b=>!i.includes(b)),shape:j(e.input,g.name),...g.optional?{optional:!0}:{}})}for(let g of T(e.input,s.arg))p.some(d=>d.name===g)||p.push({name:g,shape:j(e.input,g)});if(p.length===0&&u){let g=pn(e.input,s.arg);if(g.length>0&&!kn(n,e.name,{[s.arg]:u}))for(let d of g){let b=R(e.input).find(O=>O.name===d);p.push({name:d,optional:!0,...b?{kinds:b.kinds}:{},shape:j(e.input,d)})}}if(!p.every(g=>g.optional===!0?!0:g.kinds!==void 0?(g.candidates?.length??0)>0:(g.candidates?.length??0)>0||g.shape!==void 0&&g.shape.type!=="unknown")&&!A(e.name,u?{[s.arg]:u}:{}))continue;let I=t.map(g=>({[s.arg]:g.id}));p.length===0&&!I.some(g=>n.wouldChange({name:e.name,args:g}))||y.push({id:`schema:${e.name}`,label:t.length>1?`${M(e)} (${t.length})`:M(e),provider:"schema",mutation:e.name,args:I[0]??{},open:p,...e.destructive?{destructive:!0}:{},...e.derived?.act==="archive"||e.derived?.act==="merge"?{setsAside:!0}:{},...a.length>0||m.length>0?{ties:!0}:{},...t.length>1?{batch:I}:{},score:q-p.length,why:t.length>1?`all ${t.length} selected nodes are ${[...c].map(g=>Y(n.schema,g).toLowerCase()).join(" or ")}`:`this is ${F(_(n.schema.tryDefinition(t[0].kind),t[0].kind))}`,nodeIds:t.map(g=>g.id)})}if(t.length===1){let e=t[0];for(let s of n.allMutations()){let f=s.subject,S=s.severs??[],u=s.connects??[];if(!f||S.length===0&&u.length===0)continue;let a=f.kinds==="*"?"*":f.kinds;if(a==="*"||a.includes(e.kind))continue;let m=R(s.input),p=m.find(k=>k.name!==f.arg&&(k.kinds.includes("*")||k.kinds.includes(e.kind)));if(!p)continue;let $=a,I=$.includes("*")?n.graph.allNodes().map(k=>k.id):$.flatMap(k=>n.graph.nodesOfKind(k).map(P=>P.id)),g=new Set(r(e.id,u.length>0?u:S,$)),d=u.length>0?I.filter(k=>!g.has(k)):I.filter(k=>g.has(k));if(d.length===0)continue;let b=[{name:f.arg,kinds:$,candidates:d,shape:j(s.input,f.arg)}];for(let k of m){if(k.name===p.name||k.name===f.arg)continue;let P=k.kinds.includes("*")?n.graph.allNodes().map(N=>N.id):k.kinds.flatMap(N=>n.graph.nodesOfKind(N).map(E=>E.id));b.push({name:k.name,kinds:k.kinds,candidates:P,shape:j(s.input,k.name),...k.optional?{optional:!0}:{}})}for(let k of T(s.input,p.name))k===f.arg||b.some(P=>P.name===k)||b.push({name:k,shape:j(s.input,k)});b.every(k=>k.optional===!0?!0:k.kinds!==void 0?(k.candidates?.length??0)>0:(k.candidates?.length??0)>0||k.shape!==void 0&&k.shape.type!=="unknown")&&y.push({id:`schema:tie:${s.name}:${e.id}`,label:s.fromTheOtherEnd??M(s),provider:"schema",mutation:s.name,args:{[p.name]:e.id},open:b,ties:!0,...s.destructive?{destructive:!0}:{},score:q-b.length+2,why:`${S.length>0?"this one is on":"this one could join"} ${b[0].candidates.length===1?"it":"one of these"}`,nodeIds:[e.id]})}}return{affordances:y}}}}function pn(n,i){let t=n.shape;return t?Object.entries(t).filter(([h,v])=>h!==i&&v.safeParse(void 0).success).map(([h])=>h):[]}function kn(n,i,t){try{return n.preview({name:i,args:t}),!0}catch{return!1}}function T(n,i){let t=n.shape;return t?Object.entries(t).filter(([h,v])=>h!==i&&!v.safeParse(void 0).success).map(([h])=>h):[]}var yn=70,vn=80,bn=new Set(["id","kind"]);function un(){return{name:"structure",derive({store:n,nodes:i}){let t=c=>L(n.schema.tryDefinition(c.kind),c);if(i.length<2)return{};let h=[],v=[],l=i.map(c=>c.id);for(let c of n.schema.edgeKinds){let r=Sn(i.map(s=>new Set([...n.graph.out(s.id,c).map(f=>f.id),...n.graph.in(s.id,c).map(f=>f.id)])));for(let s of r){let f=n.graph.getNode(s);f&&h.push({id:`shared:${c}:${s}`,text:`all ${i.length} share "${t(f)}" (${z(c).toLowerCase()})`,nodeIds:[...l,s]})}let e=new Map;for(let s of i)for(let f of[...n.graph.out(s.id,c),...n.graph.in(s.id,c)])e.set(f.id,(e.get(f.id)??0)+1);for(let[s,f]of e){if(f!==i.length-1||i.length<3)continue;let S=n.graph.getNode(s);if(!S)continue;let u=i.find(a=>![...n.graph.out(a.id,c),...n.graph.in(a.id,c)].some(m=>m.id===s));if(u){h.push({id:`near-shared:${c}:${s}`,text:`all but "${t(u)}" share "${t(S)}" (${z(c).toLowerCase()})`,nodeIds:[...l,s]});for(let a of n.allMutations()){let m=a.subject;if(!m||m.kinds!=="*"&&!m.kinds.includes(u.kind))continue;let p=wn(a.input,S.kind);p&&v.push({id:`structure:join:${a.name}:${u.id}:${s}`,label:`${M(a)}: bring "${t(u)}" in line with the others`,provider:"structure",mutation:a.name,args:{[m.arg]:u.id,[p]:s},open:[],score:yn,why:`every other selected node is connected to "${t(S)}"`,nodeIds:[u.id,s]})}}}}let A=new Set;for(let c of i)for(let r of Object.keys(c))bn.has(r)||A.add(r);let y=c=>n.schema.definitions.find(r=>r.kind===c);for(let c of[...A].sort()){let r=y(i[0].kind),e=nn(r,c).toLowerCase(),s=r?.display?.format?.[c],f=d=>{if(!s)return d;try{return String(s(JSON.parse(d)))}catch{return d}},S=i.map(d=>d[c]),u=new Map;if(S.forEach((d,b)=>{let O=JSON.stringify(d??null),k=u.get(O);k?k.push(i[b]):u.set(O,[i[b]])}),u.size===1){let d=[...u.keys()][0];if(d==="null")continue;h.push({id:`agree:${c}`,text:`all ${i.length} share the ${e} ${f(d)}`,nodeIds:l});continue}if(i.length<3||u.size!==2)continue;let a=[...u.entries()].sort((d,b)=>b[1].length-d[1].length),[m,p]=a[0],[,$]=a[1];if($.length!==1||m==="null")continue;let I=$[0],g=JSON.parse(m);h.push({id:`odd-one-out:${c}`,text:`${p.length} share the ${e} ${f(m)}; "${t(I)}" does not`,nodeIds:l});for(let d of n.allMutations()){let b=d.subject;if(!b||b.kinds!=="*"&&!b.kinds.includes(I.kind))continue;let O=fn(d.input);if(!O||!(c in O))continue;let k={[b.arg]:I.id,[c]:g},P=!0;for(let[N,E]of Object.entries(O)){if(N in k||E.safeParse(void 0).success)continue;let K=I[N];if(K===void 0){P=!1;break}k[N]=K}P&&v.push({id:`structure:align:${d.name}:${c}:${I.id}`,label:`Align the ${e} of "${t(I)}" with the other ${p.length}`,provider:"structure",mutation:d.name,args:k,open:[],score:vn,why:`${p.length} of ${i.length} share the ${e} ${f(m)}`,nodeIds:l})}}return{affordances:v,observations:h}}}}function Sn(n){if(n.length===0)return[];let[i,...t]=n;return[...i].filter(h=>t.every(v=>v.has(h))).sort()}function fn(n){return n.shape??null}function wn(n,i){let t=fn(n);if(!t)return null;for(let[h]of Object.entries(t)){let v=en(t[h]);if(v&&(v.includes("*")||v.includes(i)))return h}return null}function An(){return[dn(),un(),cn(),on()]}function Hn(n,i,t={}){let h=ln(),v=t.providers??An(),l=i.map(o=>n.graph.getNode(o)).filter(o=>o!==void 0),A={store:n,selection:i,nodes:l,kindSelection:t.kindSelection??[],edgeSelection:t.edgeSelection??[],violations:n.violations(t.context),context:t.context??{},principal:t.principal??{kind:"human"}},y=[],c=[];for(let o of v){let w=o.derive(A);y.push(...w.affordances??[]),c.push(...w.observations??[])}let r=new Set(n.allMutations().filter(o=>o.pinned).map(o=>o.name)),e=new Set(t.pins?.pinned??[]),s=new Set(t.pins?.unpinned??[]),f=o=>e.has(o.mutation)?"user":r.has(o.mutation)&&!s.has(o.mutation)?"declared":void 0,S=o=>{let w=f(o);return w?{...o,pinned:w}:o},u=new Map;for(let[o,w]of rn(n.log.all()))u.set(o,an(w));let a=o=>o.pinned==="user"?0:o.pinned==="declared"?1:2,m=o=>o.score+(u.get(o.mutation)??0),p=new Map(n.allMutations().map(o=>[o.name,o])),$=new Map,I=o=>{let w=p.get(o.mutation);if(!w)return[];let x=$.get(o.mutation);x||(x=R(w.input).map(D=>D.name),$.set(o.mutation,x));let C=[];for(let D of o.batch??[o.args])for(let Q of x){let U=D[Q]??o.args[Q];typeof U=="string"&&C.push(U)}return C},g=t.focus,d=4,b=o=>o.open.length>0?1:0,O=o=>{if(g===void 0)return d;let w=I(o);return w.length>0?w.includes(g)?k(o,0):d:o.nodeIds.includes(g)||o.subjectId===g?k(o,1):d},k=(o,w)=>o.provider==="invariant"?w:2+b(o),P=o=>o.setsAside?1:0,N=$n(y).map(S),E=new Map(N.map((o,w)=>[o,w])),K=N.sort((o,w)=>{let x=Number(o.destructive??!1)-Number(w.destructive??!1);if(x!==0)return x;let C=P(o)-P(w);if(C!==0)return C;let D=O(o)-O(w);return D!==0?D:O(o)<2?E.get(o)-E.get(w):+(w.provider==="invariant")-+(o.provider==="invariant")||a(o)-a(w)||m(w)-m(o)||o.id.localeCompare(w.id)}),H=t.principal??{kind:"human"},W=[],Z=[];for(let o of K){let w=n.permits({name:o.mutation,args:{...o.args,...o.batch?.[0]??{}}},H);if(w.ok)W.push(o);else{let x=In(n,o,H);if(x==="done")continue;x?W.push(x):Z.push({...o,refusal:w.refusal})}}let V=W.map((o,w)=>({...o,rank:w})),hn=Z.map((o,w)=>({...o,rank:W.length+w}));return{affordances:t.limit===void 0?V:V.slice(0,t.limit),withheld:hn,observations:On(c),ms:ln()-h}}function $n(n){let i=new Map;for(let t of n){let h=[t.mutation,JSON.stringify(t.args),JSON.stringify(t.batch??null)].join("|"),v=i.get(h);(!v||t.score>v.score)&&i.set(h,t)}return[...i.values()]}function On(n){let i=new Map;for(let t of n)i.set(t.text,t);return[...i.values()]}function ln(){return typeof performance<"u"?performance.now():Date.now()}function Zn(n,i,t={},h={}){let v=(i.batch??[i.args]).map(A=>({name:i.mutation,args:{...i.args,...A,...t}})),l=n.allMutations().find(A=>A.name===i.mutation);return n.applyAll(v,{...l?.describe?{}:{intent:i.label},...h.author?{author:h.author}:{}})}function Vn(n,i,t={}){return n.preview({name:i.mutation,args:{...i.args,...t}})}function In(n,i,t){let h=n.allMutations().find(r=>r.name===i.mutation)?.subject,v=h!==void 0&&i.args[h.arg]===void 0,l=v?i.open.find(r=>r.name===h.arg):i.open.find(r=>r.name!==h?.arg&&r.candidates);if(!l?.candidates)return;let A=r=>n.permits({name:i.mutation,args:{...i.args,...i.batch?.[0]??{},[l.name]:r}},t).ok,y=l.candidates.filter(A),c=t.id===void 0?void 0:n.graph.getNode(t.id);if(y.length===0){let r=v?h.kinds:"*";return c!==void 0&&(r==="*"||r.includes(c.kind))&&A(c.id)?"done":void 0}return y.length===1&&y[0]===t.id?{...i,args:{...i.args,[l.name]:t.id},open:i.open.filter(r=>r!==l)}:{...i,open:i.open.map(r=>r===l?{...r,candidates:y}:r)}}export{Hn as a,Zn as b,Vn as c};
@@ -0,0 +1 @@
1
+ import{e as B}from"./chunk.OQDETV4X.js";import{e as M}from"./chunk.ZS4DJ76C.js";import{F as v,M as K,U as g,W as _,c as N,fa as j,x as W}from"./chunk.Z56B2JR2.js";import{B as A,Cb as P,Db as D,Jb as T,eb as C,ib as F}from"./chunk.HLLWKSZB.js";import{b as y}from"./chunk.AJZBJBMO.js";function V(n,e){let t=n.graph.getNode(e);if(!t)return[];let i=t.kind,a=n.schema.tryDefinition(i);if(!a)return[];let d=n.seenFor,u=d?T.keptFrom?.(n,d)?.(t):void 0,o=new Map;for(let r of n.allMutations()){let s=r.subject;if(!s||!(s.kinds==="*"||s.kinds.includes(i)))continue;let l=r.input.shape??{};for(let c of F(r,a)){if(u?.(c))continue;let x=c in l,E=[];for(let m of Object.keys(l)){if(m===s.arg||m===c||I(l[m]))continue;let b=C(r.input).find(w=>w.name===m);E.push({name:m,...b?{kinds:b.kinds}:{},...b?{candidates:b.kinds.includes("*")?n.graph.allNodes().map(w=>w.id):b.kinds.flatMap(w=>n.graph.nodesOfKind(w).map(q=>q.id))}:{},shape:M(r.input,m)})}let U={field:c,mutation:r.name,title:r.title??r.name,shape:x?M(r.input,c):{type:"unknown"},takesValue:x,alternatives:[],open:E,call:m=>({name:r.name,args:x?{[s.arg]:e,[c]:m}:{[s.arg]:e}})};o.set(c,[...o.get(c)??[],U])}}return[...o.values()].map(r=>{let s=[...r.filter(c=>c.takesValue),...r.filter(c=>!c.takesValue)],[f,...l]=s;return{...f,alternatives:l}})}function I(n){let e=A(n)?.type;return e==="optional"||e==="default"||e==="nullable"}var R=y(v(),1);function fe(n){let{store:e,principal:t}=g(),i=_(),a=(0,R.useMemo)(()=>n===null?[]:V(e,n),[e,n,i]),d=(0,R.useCallback)((u,o,r={})=>{let s=u.call(o);e.apply({name:s.name,args:{...s.args,...r}},{author:t})},[e,t]);return{fields:a,commit:d}}var $=y(v(),1);function xe(){let{brand:n}=g(),e=n?.kit;return(0,$.useMemo)(()=>P(e),[e])}function be(n,e){let t=D(n,e),i={...t.color!==void 0?{color:t.color}:{},...t.pattern!==void 0?{pattern:t.pattern}:{},...t.width!==void 0?{width:t.width}:{},...t.cap!==void 0?{cap:t.cap}:{},...t.opacity!==void 0?{opacity:t.opacity}:{}};return{connector:t,style:B(e,{[e]:i})}}var H=y(v(),1);var h=y(K(),1);function Q(n){let e=n?.hint;return typeof e=="string"&&e.length>0?e:void 0}function J(n){if(n instanceof Error&&n.message)return n.message;let e=String(n);return e==="[object Object]"?"The view threw without a message.":e}var z=class extends H.Component{static contextType=j;state={};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`[graview] the ${this.props.view??"view"} of ${this.props.kind} threw while rendering`,e,t.componentStack),this.context?.(e,{module:"@graview/react"})}render(){let{error:e}=this.state;if(!e)return this.props.children;let t=Q(e);return(0,h.jsxs)("div",{role:"alert","data-graview-view-error":this.props.kind,style:{display:"flex",flexDirection:"column",gap:"0.375rem",padding:"var(--graview-pad, 12px)",height:"100%",overflow:"auto",boxSizing:"border-box",borderRadius:"var(--graview-radius-sm, 6px)",background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)",font:"var(--graview-font-body, 13px/1.45 system-ui)",fontSize:"0.875rem",lineHeight:1.45},children:[(0,h.jsx)("strong",{style:{color:"var(--graview-warn, #b4462a)"},children:this.props.view?`${this.props.view} could not draw`:"This view could not draw"}),(0,h.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:this.props.kind}),(0,h.jsx)("span",{children:J(e)}),t?(0,h.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:t}):null]})}};var L=y(v(),1);function Re(){return g().activity}function Se(n){let{noteAttention:e,noteSeat:t}=g();(0,L.useEffect)(()=>n.onCall(i=>{let a=n.author??{kind:"agent"},d=i.args?.said;i.phase==="ok"&&typeof d=="string"&&d.length>0&&t({type:"said",author:a,say:d}),!(i.phase!=="ok"||!i.reads||i.reads.length===0)&&e({reads:i.reads,author:a,intent:`read ${i.name}`})}),[n,e,t])}var S=(n,e)=>n.length*e*.58;var X=156,Y=2,k=X-18,Z=7.1,ee=16;function ne(n,e){let t=0,i=k;for(let a of n.split(" ")){let d=e(a),u=i+e(" ")+d;if(u<=k)i=u;else{let o=Math.ceil(d/k)||1;t+=o,i=d-(o-1)*k}}return t}var te=16.25,G=27,re=(n,e)=>{let t=Math.ceil(n.length*Z/k);return e?Math.max(G,Math.ceil(Math.max(t,ne(n,e))*te)+6):Math.max(G,t*ee+6)};function Ae(n,e,t){return n.length===0?0:10+n.reduce((i,a)=>i+re(a,t),0)+(n.length-1)*Y}var oe=27,ie=8,Ce=4,ae=64,Fe=n=>Math.max(1,Math.min(ie,n)),Pe=n=>n*oe+ae;var p=y(v(),1);function We(n,{units:e,target:t=0,legibleAt:i=260}){let[a,d]=(0,p.useState)(e);(0,p.useEffect)(()=>{let o=n.current;if(o===null||typeof ResizeObserver>"u")return;let r=new ResizeObserver(([s])=>{let f=s?.contentRect.width??0;f>0&&d(f)});return r.observe(o),()=>r.disconnect()},[n]);let u=a/e;return{scale:u,width:a,touchable:u*t>=24,legible:a>=i}}function Ke(n="--graview-font-body",e="sans-serif"){let t=(0,p.useRef)(void 0),i=(0,p.useMemo)(()=>{if(typeof getComputedStyle!="function"||typeof document>"u")return e;let a=getComputedStyle(document.documentElement).getPropertyValue(n).trim();return a.length>0?a:e},[n,e]);return(0,p.useMemo)(()=>{t.current===void 0&&(t.current=typeof document>"u"?null:document.createElement("canvas").getContext("2d")??null);let a=t.current;return a===null?S:(d,u)=>{a.font=`${u}px ${i}`;let o=a.measureText(d).width;return o>0?o:S(d,u)}},[i])}var _e=(0,p.createContext)(void 0);var O=3;function se(n){let e=N(n),t=e.focusId;if(!t)return null;if(e.within?.view){let[a]=W(t);if(a)return{at:`screen:${a}`,audience:!0}}return{at:t,audience:!1}}function Ve(n,e,t){let i=[],a=new Map,d=new Map,u=0;for(let o of n){let r=se(o.stop),s=r?e(r.at):null;if(!r||!s){o.name&&i.push({kind:"edge",presence:o,point:{x:t-8,y:40+u++*28}});continue}if(!o.name){let E=d.get(r.at);d.set(r.at,{n:(E?.n??0)+1,box:s});continue}let f=a.get(r.at)??[];if(f.push(o),a.set(r.at,f),f.length>O)continue;let l=s,c=f.length-1,x=r.audience?{x:l.x+l.width*.5+(c-1)*26,y:l.y+Math.min(l.height,24)}:{x:l.x+l.width*.5-26-c*22,y:l.y+l.height-4};i.push({kind:"person",presence:o,point:x,at:r.at,index:c,of:f.length,audience:r.audience})}for(let[o,r]of a){if(r.length<=O)continue;let s=e(o);s&&i.push({kind:"count",at:o,point:{x:s.x+s.width*.5+2*26+18,y:s.y+s.height-4},n:r.length-O})}for(let[o,{n:r,box:s}]of d)i.push({kind:"count",at:o,point:{x:s.x+s.width*.5+40,y:s.y+s.height-4},n:r});for(let o of n)if(o.name){if(o.robot?.at&&o.robot.mode!=="docked"){let r=e(o.robot.at);r&&i.push({kind:"robot",presence:o,point:{x:r.x+r.width/2+22,y:r.y+r.height-4},mode:o.robot.mode})}if(o.over){let r=e(o.over);r&&i.push({kind:"over",presence:o,box:r})}}return i}export{Re as a,Se as b,S as c,X as d,Y as e,G as f,Ae as g,oe as h,Ce as i,ae as j,Fe as k,Pe as l,We as m,Ke as n,fe as o,xe as p,be as q,Ve as r,z as s};
@@ -0,0 +1,27 @@
1
+ import{a as kt,b as Ct,c as Ot,d as En}from"./chunk.GDA3G4U2.js";import{b as $n,c as yt,d as Rn,e as wt,f as vt,g as bt}from"./chunk.WKXNBHTL.js";import{a as xt,b as An,c as St}from"./chunk.3JM2TNDD.js";import{b as $t,f as Rt,g as At}from"./chunk.BKPGDEES.js";import{m as ht}from"./chunk.KZ2376BD.js";import{a as pt,b as ft}from"./chunk.IZW7DBK4.js";import{c as ut,e as mt}from"./chunk.RKRSRKF3.js";import{e as gt}from"./chunk.KC6UZHBM.js";import{b as X,c as pe,d as Ee}from"./chunk.2CLPRG3I.js";import{m as ct,n as On}from"./chunk.OYJSFO3A.js";import{e as dt}from"./chunk.DAA6XWLF.js";import{f as Ve}from"./chunk.GS4T26WW.js";import{F as Ne,M as Y,N as ot,U as Q,W as st,ha as lt,ia as Ye,l as Ke}from"./chunk.Z56B2JR2.js";import{$ as Zn,Gb as ke,N as Qn,O as Jn,Oa as kn,P as xn,Q as Xn,R as Ue,Rb as Cn,V as Be,W as fe,Z as We,_ as nn,aa as Sn,ba as et,ca as tn,jb as it,oa as nt,ob as de,sa as tt,ta as rt,ua as at}from"./chunk.HLLWKSZB.js";import{b as j}from"./chunk.AJZBJBMO.js";var Mn=j(Y(),1);function Me(e,t,n){let r=e.nodes?.length??0;if(e.total===void 0||e.total<=r)return n;let a=e.nodes?.[0]?.kind,o=a?nn(t,a).toLowerCase():"more";return(0,Mn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,Mn.jsxs)("p",{"data-testid":"lens-more",style:{margin:"4px 0 0",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["+",e.total-r," more ",o]})]})}var Et=j(Y(),1),vr=(e,t)=>{if(e===!1||t===!1)return!1;let n=e===void 0||e===!0?{}:e,r=t===void 0||t===!0?{}:t;return{sort:n.sort!==!1&&r.sort!==!1,filter:n.filter!==!1&&r.filter!==!1,group:n.group!==!1&&r.group!==!1}},br=["sort","filter","group","q","archived"];function Ie(e,t={}){let{store:n}=Q(),{view:r,go:a}=Ye(),c=br.some(C=>r.within?.[C]!==void 0)?pt(r):t.arrangedBy??{},p=e.nodes??[],u=t.kind??p[0]?.kind??e.node?.kind,y=c.archived!==void 0&&c.archived!==!1&&u!==void 0&&!t.subject?n.graph.nodesOfKind(u,{archived:c.archived}):p,l=t.subject??(t.only?y.filter(t.only):y),m=t.subject?[]:t.only?y.filter(C=>!t.only(C)):[],w=t.kind??l[0]?.kind,s=vr(t.allow,t.lensAllows),g=w?gt(n.schema,String(w)):void 0,v=g?ut(c,g).arrangement:{},i=mt(l,s===!1?{}:v,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[])}),O=w&&s!==!1&&e.fidelity==="full"&&e.budget===void 0&&l.length>1?(0,Et.jsx)(ht,{schema:n.schema,graph:n.graph,kind:String(w),arrangement:v,allow:s,query:t.query!==!1,onChange:C=>a(ft(r,C)),kept:{shown:i.nodes.length,of:l.length}}):null;return{nodes:[...m,...i.nodes],arranged:i,arrangement:v,bar:O}}function Qe(e,t,n){let r=new Set((n??[]).map(o=>o.kind)),a=new Set((n??[]).map(o=>o.id));return e.allNodes().filter(o=>r.has(o.kind)?a.has(o.id):Be(t.tryDefinition(o.kind),o))}var Le=j(Ne(),1);var L=j(Y(),1),xr=["slots","x","y","fill"],rn=class extends Error{constructor(n,r){super(`${n}
2
+ ${r}`);this.hint=r;this.name="BoardBindingError"}},Mt=e=>Math.max(0,Math.min(1,e));function Ln(e,t,n,r){let a=g=>g,o=g=>r?fe(r.tryDefinition(g.kind),g):String(a(g).label??g.id);if(r&&r.tryDefinition(n.slots)===void 0)throw new rn(`No kind is declared for "${n.slots}".`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let c=e.filter(g=>g.kind===n.slots);if(!r&&c.length===0)throw new rn(`Nothing to arrange: no "${n.slots}" nodes.`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let p=t.filter(g=>g.kind===n.fill),u=new Map(e.map(g=>[g.id,g])),y=new Map(e.map((g,v)=>[g.id,v])),l=c.map(g=>{let v=a(g),i=n.fillFrom==="occupant",O=p.filter(C=>(i?C.to:C.from)===g.id).map(C=>u.get(i?C.from:C.to)).filter(C=>C!==void 0).sort((C,R)=>(y.get(C.id)??0)-(y.get(R.id)??0)).map(C=>({id:C.id,label:o(C)}));return{id:g.id,code:String(v[n.slotCode??""]??"").trim()||o(g),label:o(g),x:Mt(Number(v[n.x]??.5)),y:Mt(Number(v[n.y]??.5)),occupants:O}}).sort((g,v)=>g.y-v.y||g.x-v.x),m=new Set(l.flatMap(g=>g.occupants.map(v=>v.id))),w=new Set([...m].map(g=>u.get(g)?.kind).filter(g=>g!==void 0)),s=e.filter(g=>w.has(g.kind)&&!m.has(g.id)).map(g=>({id:g.id,label:o(g)})).sort((g,v)=>g.label<v.label?-1:g.label>v.label?1:0);return{slots:l,empty:l.filter(g=>g.occupants.length===0).map(g=>g.id),spare:s}}function Sr({nodes:e,occupants:t,label:n,fidelity:r,mode:a,options:o,schema:c,implicated:p=[],flagged:u=[]}){let{store:y}=Q(),l=Qe(y.graph,y.schema,e),m=t?[...l.filter(f=>f.kind===o.slots),...t.map(f=>y.graph.getNode(f)).filter(f=>f!==void 0)]:l,w=Ln(m,y.graph.allEdges(),o,c),s=new Set(p),g=new Set(u),v=lt(),i=new Map;for(let f of v)for(let H of f.nodeIds)i.set(H,[...i.get(H)??[],f.message]);let O=f=>f?i.get(f)??[]:[];if(r==="glyph")return(0,L.jsx)(pe,{label:`${n??"Board"} \xB7 ${w.slots.length-w.empty.length}/${w.slots.length}`,hue:de("board")});if(r==="summary"){let f=w.slots.filter(H=>w.empty.includes(H.id));return(0,L.jsx)(X,{title:n??"Board",meta:`${w.slots.length-w.empty.length}/${w.slots.length}`,tone:f.length>0?"warning":"muted",fit:!0,children:f.length>0?(0,L.jsx)(Ee,{pick:!0,max:5,items:f.map(H=>({id:H.id,label:H.code}))}):(0,L.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"Every slot filled."})})}let C=o.aspect??.68,R=(0,Le.useRef)(null),[P,S]=(0,Le.useState)(!1),[d,k]=(0,Le.useState)(null),h=160,[M,F]=(0,Le.useState)(!1);(0,Le.useEffect)(()=>{let f=R.current;if(!f||typeof ResizeObserver>"u")return;let H=new ResizeObserver(z=>{let G=z[0]?.contentRect;if(!G)return;let b=G.height<h;F(b),S(!b&&C<1&&G.width/G.height>1.3),k(b?null:G.height)});return H.observe(f),()=>H.disconnect()},[C]);let E=(f,H)=>P?{x:1-H,y:f}:{x:f,y:H},N=(()=>{let f=new Map,H=(z,G,b)=>{let $=f.get(b)??{ids:[],codes:[]};$.ids.includes(z)||($.ids.push(z),$.codes.includes(G)||$.codes.push(G)),f.set(b,$)};for(let z of w.slots){for(let G of O(z.id))H(z.id,z.code,G);for(let G of z.occupants)for(let b of O(G.id))H(G.id,G.label,b)}return[...f.entries()].map(([z,G])=>({id:G.ids[0],code:G.codes.join(", "),text:z}))})(),D=a==="fullscreen",B=N.length===0?null:(0,L.jsxs)("ul",{"data-graview-primitive":"board-key",style:{margin:"2px 0 0",padding:0,listStyle:"none",display:"grid",gap:3,flex:"0 0 auto"},children:[N.slice(0,D?6:2).map(f=>(0,L.jsxs)("li",{"data-graview-pick":f.id,"data-graview-emphasis":s.size===0?"plain":s.has(f.id)?"lit":"dimmed",title:f.text,style:{display:D?"grid":"flex",gap:D?1:7,alignItems:D?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:D?"2px 0":"3px 6px",marginLeft:D?0:-6,borderRadius:7,cursor:"pointer"},children:[(0,L.jsxs)("span",{style:{flex:"0 0 auto",fontWeight:600,color:"var(--graview-warn)",letterSpacing:"0.02em"},children:["\u26A0 ",f.code]}),(0,L.jsx)("span",{style:{minWidth:0,...D?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:f.text})]},f.id)),N.length>(D?6:2)?(0,L.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",N.length-(D?6:2)," more"]}):null]}),ee=o.arrange==="shelf",ue=w.slots.every(f=>f.code.length<=3&&!/\s/.test(f.code)),ie=(f,H)=>{let z=f.occupants.length===0,G=s.size>0&&!s.has(f.id)&&!f.occupants.some(_=>s.has(_.id)),b=g.has(f.id),$=f.occupants.some(_=>g.has(_.id)),W=b,ne=[...O(f.id),...f.occupants.flatMap(_=>O(_.id))],oe=f.occupants.length===1?f.occupants[0]:null,Z=o.pickTarget==="slot"?f.id:oe?oe.id:f.id,se=_=>oe?{}:{"data-graview-pick":_.id,"data-graview-emphasis":s.size===0?"plain":G?"dimmed":"lit"},ye=_=>g.has(_.id)?"var(--graview-warn)":"var(--graview-ink-muted)",Fe=o.emptyLabel??"empty";return(0,L.jsxs)("div",{"data-graview-pick":Z,"data-graview-slot":f.id,"data-graview-mark":ue?"disc":"token","data-graview-flagged":b&&$?"both":b?"slot":$?"occupant":void 0,"data-graview-emphasis":s.size===0?"plain":G?"dimmed":"lit",title:[z?`${f.label} \u2014 nobody in it`:`${f.occupants.map(_=>_.label).join(", ")} at ${f.label}`,...ne].join(`
3
+ `),style:{...H,display:"grid",justifyItems:ue?"center":"start",gap:3,opacity:G?.5:1,transition:"opacity 160ms ease"},children:[ue?(0,L.jsxs)("span",{style:{position:"relative",width:34,height:34,borderRadius:999,display:"grid",placeItems:"center",fontSize:"0.75rem",letterSpacing:"0.02em",border:z?"1.5px dashed var(--graview-warn)":`1px solid ${W?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:z?"transparent":W?"var(--graview-panel-warning)":"var(--graview-panel)",color:z||W?"var(--graview-warn)":"var(--graview-ink)",boxShadow:z?void 0:"var(--graview-lift-low)"},children:[f.code,b&&!z?(0,L.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-3,right:-3,fontSize:"0.6875rem",lineHeight:1,color:"var(--graview-warn)"},children:"\u26A0"}):null]}):(0,L.jsxs)("span",{style:{display:"grid",gap:1,minWidth:0,maxWidth:180,padding:"5px 10px 6px",borderRadius:8,border:z?"1.5px dashed var(--graview-warn)":`1px solid ${W?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:z?"transparent":W?"var(--graview-panel-warning)":"var(--graview-panel)",boxShadow:z?void 0:"var(--graview-lift-low)"},children:[(0,L.jsxs)("span",{style:{fontSize:"0.8125rem",fontWeight:550,lineHeight:1.25,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:z||W?"var(--graview-warn)":"var(--graview-ink)"},children:[f.code,b&&!z?" \u26A0":null]}),z?(0,L.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.3,color:"var(--graview-warn)"},children:Fe}):(0,L.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:"0 8px",fontSize:"0.75rem",lineHeight:1.3},children:f.occupants.map(_=>(0,L.jsxs)("span",{...se(_),style:{whiteSpace:"nowrap",color:ye(_)},children:[_.label,g.has(_.id)?" \u26A0":""]},_.id))})]}),ue?z?(0,L.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:Fe}):f.occupants.map(_=>(0,L.jsxs)("span",{...se(_),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:ye(_)},children:[_.label,g.has(_.id)?" \u26A0":""]},_.id)):null]},f.id)},ve=o.zones??[],Oe=ve.map((f,H)=>({label:f.label,slots:w.slots.filter(z=>z.y>=f.from&&(z.y<f.to||H===ve.length-1&&z.y<=f.to))})),x=new Set(Oe.flatMap(f=>f.slots.map(H=>H.id))),T=w.slots.filter(f=>!x.has(f.id));(T.length>0||Oe.length===0)&&Oe.push({label:"",slots:T});let re={boxSizing:"border-box",borderRadius:12,border:"1px solid var(--graview-edge)",background:"linear-gradient(var(--graview-panel-muted), var(--graview-panel-muted)), var(--graview-panel)",overflow:"hidden"};return(0,L.jsxs)(X,{title:n??"Board",meta:w.slots.length===0?void 0:w.empty.length===0?`all ${w.slots.length} filled`:`${w.empty.length} unfilled`,...D?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:[(0,L.jsxs)("div",{ref:R,style:{display:"flex",gap:28,alignItems:"stretch",justifyContent:"center",flex:"1 1 auto",minHeight:0},children:[D&&B?(0,L.jsxs)("div",{style:{width:260,flex:"0 0 auto",alignSelf:"center",display:"grid",gap:8},children:[(0,L.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"What is marked"}),B]}):null,ee?(0,L.jsx)("div",{"data-graview-primitive":"board","data-graview-arrange":"shelf",style:{...re,overflow:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"stretch",display:"grid",alignContent:"start"},children:Oe.map((f,H)=>(0,L.jsxs)("section",{"data-graview-zone":f.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...H>0?{borderTop:"1px dashed var(--graview-edge)"}:{}},children:[f.label?(0,L.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:f.label}):null,f.slots.length>0?(0,L.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 12px",alignItems:"flex-start"},children:f.slots.map(z=>ie(z,{}))}):(0,L.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},f.label||`band-${H}`))}):(0,L.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...M?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!P&&ve.length>0?(0,L.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:ve.map(f=>(0,L.jsx)("span",{title:f.label,style:{position:"absolute",top:`${f.from*100}%`,height:`${(f.to-f.from)*100}%`,right:0,writingMode:"vertical-rl",transform:"rotate(180deg)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:f.label},f.label))}):null,(0,L.jsxs)("div",{"data-graview-primitive":"board","data-graview-arrange":"exact",style:{...re,position:"relative",aspectRatio:`${P?1/C:C}`,...M?{width:"100%",height:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"flex-start"}:{height:"100%",flex:"0 1 auto",...d!==null?{width:Math.round(d*(P?1/C:C))}:{}},maxWidth:"100%"},children:[ve.map(f=>(0,L.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",...P?{top:0,bottom:0,left:`${(1-f.to)*100}%`,width:`${(f.to-f.from)*100}%`,borderLeft:"1px dashed var(--graview-edge)"}:{left:0,right:0,top:`${f.from*100}%`,height:`${(f.to-f.from)*100}%`,borderBottom:"1px dashed var(--graview-edge)"}}},f.label)),P?ve.map(f=>(0,L.jsx)("span",{"aria-hidden":"true",title:f.label,style:{position:"absolute",bottom:3,left:`${(1-f.to)*100}%`,width:`${(f.to-f.from)*100}%`,textAlign:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:f.label},`label-${f.label}`)):null,w.slots.map(f=>ie(f,{position:"absolute",left:`${E(f.x,f.y).x*100}%`,top:`${E(f.x,f.y).y*100}%`,transform:"translate(-50%, -50%)",width:"max-content",maxWidth:"100%"}))]})]}),w.spare.length>0?(0,L.jsxs)("div",{style:{display:"grid",gap:6,alignContent:"start",minWidth:0},children:[(0,L.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"Not in"}),(0,L.jsx)(Ee,{pick:!0,max:10,items:w.spare.map(f=>({...f,emphasis:s.size===0?"plain":s.has(f.id)?"lit":"dimmed"}))})]}):null]}),D?null:B]})}function Lt(e){function t(n){let{store:r}=Q(),a=Ln(Qe(r.graph,r.schema,n.nodes),r.graph.allEdges(),e,r.schema),c=[...a.slots.flatMap(l=>l.occupants.map(m=>m.id)),...a.spare.map(l=>l.id)].map(l=>r.graph.getNode(l)).filter(l=>l!==void 0),{arranged:p,bar:u}=Ie(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},subject:c}),y=(0,L.jsx)(Sr,{schema:r.schema,...n,options:e,...e.arranging===!1?{}:{occupants:p.nodes.map(l=>l.id)}});return Me(n,r.schema,u?(0,L.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[u,y]}):y)}return{name:"board",requiredRoles:[...xr],options:e,View:t,build(n,r,a){return Ln(n,r,e,a)}}}var un=j(Ne(),1);var Pt=864e5;function Pn(e){if(typeof e!="string")return null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:null}function on(e){if(typeof e!="string")return null;let t=/^\d{4}-\d{2}-\d{2}[T ](\d{2}):(\d{2})/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}var an=e=>Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),sn=e=>new Date(e).toISOString().slice(0,10);function he(e,t){return sn(an(e)+t*Pt)}function De(e,t){let n=Number(e.slice(0,4)),r=Number(e.slice(5,7))-1+t,a=Number(e.slice(8,10)),o=new Date(Date.UTC(n,r+1,0)).getUTCDate();return sn(Date.UTC(n,r,Math.min(a,o)))}var Tn=e=>new Date(an(e)).getUTCDay();function He(e,t=1){let n=(Tn(e)-t+7)%7;return he(e,-n)}var Nn=e=>`${e.slice(0,7)}-01`;function ae(e,t){return Math.round((an(t)-an(e))/Pt)}function Ge(e,t){return Array.from({length:t},(n,r)=>he(e,r))}var Tt=e=>Xn(e,"short"),Ce=e=>Qn(e,{weekday:"short"}),Dn=e=>Ue(e);function ze(e,t){let n=t?.fieldRoles?.when;return e&&!e.start&&n?{...e,start:n}:e}function Nt(e,t){return t===void 0?!1:typeof t=="string"?e[t]===!0:t.is.includes(e[t.field])}var ln=["start"],kr=["day","week","month","quarter","year","agenda"];function dn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:kr}function Dt(e,t){return e==="years"?t?.title??"Years":`The ${e}`}function zt(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var zn=class extends Error{constructor(n,r){super(`The calendar lens has no binding for ${r.map(a=>`"${a}"`).join(", ")} on "${n}". Bind them in the lens declaration: bindings: { ${n}: { start: "<field>" } }.`);this.kind=n;this.missing=r;this.name="CalendarBindingError"}};function Bn(e,t,n){let r=ze(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,o=n?.tryDefinition(e.kind)?.fields.shape,c=ln.filter(m=>{let w=r[m];return w?o?!(w in o):!(w in a):!0});if(c.length>0)throw new zn(e.kind,c);let p=Pn(a[r.start]);if(p===null)return null;let u=(r.end?Pn(a[r.end]):null)??p,y=on(a[r.start]),l=r.label?a[r.label]:void 0;return{id:e.id,kind:e.kind,label:typeof l=="string"&&l.length>0?l:fe(n?.tryDefinition(e.kind),e),from:p,to:ae(p,u)<0?p:u,at:r.allDay&&a[r.allDay]===!0?null:y,allDay:r.allDay&&a[r.allDay]===!0||y===null,done:Nt(a,r.done)}}function Bt(e,t,n,r){let a=Bn(e,t,n);if(!a)return[];let o=ze(t[e.kind],n?.tryDefinition(e.kind)).start,c=e,p=c[o],u=c[nt(o)];if(typeof p!="string"||!tt(u))return[a];let y=ae(a.from,a.to);return("next"in r?[at(p,u,r.next)]:rt(p,u,{from:he(r.from,-y),to:r.to,limit:400})).map(m=>({...a,from:m.slice(0,10),to:he(m.slice(0,10),y),repeats:!0}))}function cn(e,t){return e.filter(n=>ae(n.from,t)>=0&&ae(t,n.to)>=0).sort((n,r)=>n.allDay!==r.allDay?n.allDay?-1:1:n.at!==r.at?(n.at??0)-(r.at??0):n.label.localeCompare(r.label))}function Wt(e,t,n){let r=it(e.schema,e.allMutations()).get(t)?.get(n)??[],a=new Map(e.allMutations().map(c=>[c.name,c]));for(let c of r){let p=a.get(c),u=p?.subject;if(!p||!u)continue;let y=p.input?.shape??{};if(n in y)return{name:p.name,arg:u.arg}}let o=e.allMutations().find(c=>c.derived?.act==="edit"&&c.derived.kind===t);return o?.subject?{name:o.name,arg:o.subject.arg}:null}var Vt=(e,t)=>({from:Nn(e),to:It(e),label:xn(e,{short:!0,year:t})});function It(e){return sn(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function Cr(e){let t=Math.floor((Number(e.slice(5,7))-1)/3);return`${e.slice(0,4)}-${String(t*3+1).padStart(2,"0")}-01`}function Ht(e,t,n={}){let r=n.weekStartsOn??1,a=(u,y)=>({from:u,to:u,label:String(Number(u.slice(8,10))),...y?{outside:!0}:{}});if(e==="day")return{title:Ce(t),grain:"day",columns:1,cells:[a(t)]};if(e==="week"){let u=He(t,r);return{title:`${Ce(u)} \u2013 ${Ce(he(u,6))}`,grain:"day",columns:7,cells:Ge(u,7).map(y=>a(y))}}if(e==="agenda")return{title:`From ${Ce(t)}`,grain:"day",columns:1,cells:Ge(t,42).map(u=>a(u))};if(e==="quarter"){let u=Cr(t),y=It(De(u,2)),l=[];for(let m=He(u,r);ae(m,y)>=0;m=he(m,7))l.push({from:m,to:he(m,6),label:Jn(m),...ae(m,u)>0&&ae(he(m,6),u)>0?{outside:!0}:{}});return{title:`Q${Math.floor((Number(t.slice(5,7))-1)/3)+1} ${t.slice(0,4)}`,grain:"week",columns:4,cells:l}}if(e==="year"){let u=t.slice(0,4);return{title:u,grain:"month",columns:4,cells:Array.from({length:12},(y,l)=>Vt(`${u}-${String(l+1).padStart(2,"0")}-01`,!1))}}if(e==="years"){let u=Math.max(1,n.horizon?.years??1),y=Number(t.slice(0,4)),l=Array.from({length:u},(m,w)=>String(y+w));return u>Or?{title:`${n.horizon?.title??"Years"} \xB7 ${l[0]}\u2013${l[l.length-1]}`,grain:"year",columns:5,years:l,cells:l.map(m=>({from:`${m}-01-01`,to:`${m}-12-31`,label:m}))}:{title:`${n.horizon?.title??"Years"} \xB7 ${l[0]}\u2013${l[l.length-1]}`,grain:"month",columns:4,years:l,cells:l.flatMap(m=>Array.from({length:12},(w,s)=>Vt(`${m}-${String(s+1).padStart(2,"0")}-01`,!0)))}}let o=Nn(t),c=He(o,r),p=t.slice(0,7);return{title:xn(t),grain:"day",columns:7,cells:Ge(c,42).map(u=>a(u,u.slice(0,7)!==p))}}function Gt(e,t,n){return e.filter(r=>ae(r.from,n)>=0&&ae(t,r.to)>=0).sort((r,a)=>r.allDay!==a.allDay?r.allDay?-1:1:r.from!==a.from?r.from.localeCompare(a.from):r.at!==a.at?(r.at??0)-(a.at??0):r.label.localeCompare(a.label))}var Or=10;function jt(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var _t=j(Ne(),1);var K=j(Y(),1);function Wn({label:e,glyph:t,onPress:n}){return(0,K.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:je,children:t})}var je={minHeight:24,minWidth:24,padding:"2px 9px",borderRadius:6,fontSize:"0.8125rem",borderWidth:1,borderStyle:"solid",borderColor:"transparent",color:"var(--graview-ink-muted)",background:"transparent"},qt={day:12,week:4,month:3,year:5};function Ft({span:e,weekStartsOn:t,entries:n,today:r,perCell:a,emphasisOf:o,broken:c,hue:p,onOpen:u,onMove:y}){let l=(0,_t.useRef)(null),m=Ve(l),w=m===null?e.columns:Math.max(1,Math.floor(m/44)),s=w<e.columns,g=s?w:e.columns,v=!s&&e.grain==="day"&&e.columns===7?Ge(He(e.cells[0]?.from??r,t),7):e.grain==="day"&&e.columns===1?e.cells.map(i=>i.from):null;return s&&e.grain==="day"&&e.columns>1?(0,K.jsx)("div",{ref:l,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,K.jsx)(gn,{days:e.cells.map(i=>i.from),entries:n,today:r,emphasisOf:o,broken:c,hue:p,onMove:(i,O)=>y(i,{from:O,to:O,label:O},"day")})}):(0,K.jsxs)("div",{ref:l,"data-calendar-shape":s?"wrapped":"grid",style:{display:"grid",gap:4,gridTemplateRows:v?"auto 1fr":"1fr",minHeight:0,flex:1},children:[v?(0,K.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${g}, minmax(0, 1fr))`,gap:4},children:v.map(i=>(0,K.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?Tt(Tn(i)):Ce(i)},i))}):null,(0,K.jsx)("div",{tabIndex:0,"aria-label":`The days of ${e.title}`,style:{display:"grid",gridTemplateColumns:`repeat(${g}, minmax(0, 1fr))`,gridAutoRows:"max-content",gap:4,minHeight:0,overflow:"auto"},children:e.cells.map((i,O)=>{let C=Gt(n,i.from,i.to),R=C.slice(0,a),P=C.slice(a),S=P.filter(k=>c.has(k.id)).length,d=ae(i.from,r)>=0&&ae(r,i.to)>=0;return(0,K.jsxs)("div",{"data-calendar-day":e.grain==="day"?i.from:void 0,"data-calendar-cell":i.from,"data-calendar-grain":e.grain,"data-calendar-count":C.length,"data-calendar-outside":i.outside||void 0,onDragOver:k=>{k.dataTransfer.types.includes("text/graview-node")&&(k.preventDefault(),k.dataTransfer.dropEffect="move")},onDrop:k=>{let h=k.dataTransfer.getData("text/graview-node");h&&(k.preventDefault(),k.stopPropagation(),y(h,i,e.grain))},style:{minHeight:62,display:"flex",flexDirection:"column",gap:2,padding:4,borderRadius:7,border:"1px solid var(--graview-edge)",background:d?"var(--graview-panel)":"transparent",opacity:i.outside?.45:1},children:[(0,K.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,K.jsx)("span",{style:{fontSize:"0.75rem",fontVariantNumeric:"tabular-nums",color:d?"var(--graview-accent)":"var(--graview-ink-faint)"},children:i.label}),e.grain!=="day"&&C.length>0?(0,K.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:C.length}):null]}),R.map(k=>(0,K.jsx)(Ut,{entry:k,cell:i,rowStart:O%g===0,emphasis:o(k.id),flagged:c.has(k.id),hue:p(k)},`${k.id}:${k.from}:${i.from}`)),P.length>0?(0,K.jsxs)("button",{type:"button","data-testid":`calendar-more-${i.from}`,onClick:()=>u(i),title:`Open ${i.label}`,style:{minHeight:24,padding:"1px 5px",fontSize:"0.75rem",borderRadius:5,border:"1px dashed var(--graview-edge)",background:"transparent",color:S>0?"var(--graview-warn)":"var(--graview-ink-muted)",textAlign:"left"},children:["+",P.length," more",S>0?` \xB7 ${S} flagged`:""]}):null]},i.from)})})]})}function gn({days:e,entries:t,today:n,emphasisOf:r,broken:a,hue:o,onMove:c}){let p=e.map(u=>({day:u,here:cn(t,u)})).filter(({here:u})=>u.length>0);return p.length===0?(0,K.jsx)("p",{"data-testid":"calendar-empty",style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-muted)"},children:"Nothing is scheduled in the next six weeks."}):(0,K.jsx)("ol",{tabIndex:0,"aria-label":"What is scheduled",style:{margin:0,padding:0,listStyle:"none",display:"grid",alignContent:"start",gap:10,overflow:"auto",minHeight:0},children:p.map(({day:u,here:y})=>(0,K.jsxs)("li",{"data-calendar-day":u,onDragOver:l=>{l.dataTransfer.types.includes("text/graview-node")&&(l.preventDefault(),l.dataTransfer.dropEffect="move")},onDrop:l=>{let m=l.dataTransfer.getData("text/graview-node");m&&(l.preventDefault(),l.stopPropagation(),c(m,u))},style:{display:"grid",gap:4},children:[(0,K.jsxs)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:u===n?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[Ce(u),u===n?" \xB7 today":""]}),y.map(l=>(0,K.jsx)(Ut,{entry:l,cell:{from:u,to:u,label:u},emphasis:r(l.id),flagged:a.has(l.id),hue:o(l)},`${l.id}:${l.from}:${u}`))]},u))})}function Ut({entry:e,cell:t,emphasis:n,flagged:r,hue:a,rowStart:o=!1}){let c=ae(t.from,e.from)>=0,p=ae(e.to,t.to)>=0,u=!(c&&p),y=e.at!==null&&c&&e.from===t.from?`${Dn(e.at)} ${e.label}`:e.label;return(0,K.jsx)("span",{"data-graview-pick":e.id,"data-calendar-entry":e.id,"data-calendar-repeat":e.repeats?e.from:void 0,draggable:!e.repeats,onDragStart:l=>{l.dataTransfer.setData("text/graview-node",e.id),l.dataTransfer.effectAllowed="move"},"data-graview-emphasis":n,"data-calendar-part":u?c?"opens":p?"closes":"through":void 0,"data-calendar-in":t.from,title:u?`${e.label} \xB7 ${e.from} \u2013 ${e.to}`:`${e.label}${e.at===null?" \xB7 all day":` \xB7 ${Dn(e.at)}`}${e.repeats?" \xB7 repeats":""}`,style:{display:"block",minHeight:24,boxSizing:"border-box",padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.35,borderRadius:u?c?"5px 0 0 5px":p?"0 5px 5px 0":0:5,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textDecoration:e.done?"line-through":"none",opacity:n==="dimmed"?.35:e.done?.6:1,background:`color-mix(in oklab, hsl(${Math.round(a)} 70% 55%) ${n==="lit"?38:20}%, transparent)`,color:"var(--graview-ink)",...n==="lit"?{outline:"1px solid var(--graview-accent)"}:{},...r?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:c||o?e.repeats?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),y]}):y:" "})}var q=j(Y(),1);function Kt(e){let t=n=>function(a){let{store:o}=Q(),{view:c}=Ye(),p=n?{...e,range:n}:e,u=c.within?.range??p.range??"month",y=Object.keys(e.bindings),{nodes:l,arranged:m,arrangement:w,bar:s}=Ie(a,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{sort:!1,group:u==="agenda"},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...y[0]?{kind:(a.nodes??[]).find(C=>y.includes(String(C.kind)))?.kind??y[0]}:{}}),g=u==="agenda"&&m.grouped&&w.group?m.groups.map(C=>({label:C.label,ids:new Set(C.nodes.map(R=>R.id))})):void 0,v=new Set((a.nodes??[]).map(C=>String(C.kind))),i=y.filter(C=>!v.has(C)&&o.schema.tryDefinition(C)!==void 0).flatMap(C=>{let R=o.schema.tryDefinition(C);return o.graph.nodesOfKind(C).filter(P=>c.past===!0||Be(R,P))}),O=i.length===0?l:[...l,...a.budget!==void 0?i.slice(0,a.budget):i];return Me(a,o.schema,(0,q.jsx)($r,{schema:o.schema,...a,nodes:O,options:{...p,today:p.today??o.today()??zt()},...s?{bar:s}:{},...g?{groups:g}:{}}))};return{name:"calendar",requiredRoles:[...ln],bindings:e.bindings,options:e,View:t(),at:n=>t(n),ranges:()=>dn(e).map(n=>({range:n,title:Dt(n,e.horizon)})),place:(n,r)=>n.map(a=>Bn(a,e.bindings,r)).filter(a=>a!==null)}}function $r({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:o,selectedIds:c=[],implicated:p=[],flagged:u=[],bar:y,groups:l}){let{view:m,go:w}=Ye(),{store:s,principal:g}=Q(),v=m.within?.at??a.today,i=m.within?.range??a.range??"month",O=a.weekStartsOn??1,C=new Set([...p,...c]),R=x=>C.size===0?"plain":C.has(x)?"lit":"dimmed",P=new Set(u),S=Ht(i,v,{weekStartsOn:O,...a.horizon?{horizon:a.horizon}:{}}),k=n==="glyph"||n==="summary"?{next:a.today}:{from:S.cells[0]?.from??v,to:S.cells[S.cells.length-1]?.to??v},h=(e??[]).flatMap(x=>Bt(x,a.bindings,o,k)),M=a.hueOf??(x=>de(x.kind));if(n==="glyph")return(0,q.jsx)(pe,{label:`${t??"Calendar"} \xB7 ${h.length}`,hue:de("calendar")});if(n==="summary"){let x=cn(h,a.today);return(0,q.jsx)(X,{title:t??"Calendar",meta:`${h.length} dated`,tone:"muted",children:(0,q.jsx)(Ee,{max:6,items:x.length>0?x.map(T=>({id:T.id,label:T.label,hue:M(T)})):h.filter(T=>ae(a.today,T.from)>=0).sort((T,re)=>T.from.localeCompare(re.from)).slice(0,6).map(T=>({id:T.id,label:`${T.from.slice(5)} ${T.label}`,hue:M(T)}))})})}let F=r==="fullscreen",[E,N]=(0,un.useState)(null),D=(x,T,re)=>{let f=s.graph.getNode(x);if(!f)return;let H=ze(a.bindings[f.kind],s.schema.tryDefinition(f.kind));if(!H)return;let z=Wt(s,f.kind,H.start);if(!z){N({text:`Nothing declared writes the ${Sn(s.schema.definitions.find(Z=>Z.kind===f.kind),H.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let G=T.from,b=f[H.start],W=on(b)===null?G:`${G}${String(b).slice(10)}`,ne={name:z.name,args:{[z.arg]:x,[H.start]:W}},oe=s.permits(ne,g);if(!oe.ok){N({text:oe.refusal.message,tone:"refused"});return}try{s.apply(ne,{author:g}),N(re==="day"?null:{text:`Moved to ${Ce(G)} \u2014 a ${re} is coarser than the ${Sn(s.schema.definitions.find(Z=>Z.kind===f.kind),H.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(Z){N({text:Z instanceof Error?Z.message:String(Z),tone:"refused"})}},B=x=>{let T=i==="years"?De(v,x*12*Math.max(1,a.horizon?.years??1)):i==="year"?De(v,x*12):i==="quarter"?De(v,x*3):i==="month"?De(v,x):i==="week"?he(v,x*7):he(v,x);w(Ke(m,"at",T))},ee=(x,T)=>{let re=Ke(m,"range",x);T!==void 0&&(re=Ke(re,"at",T)),w(re)},ue=(0,un.useRef)(null),ie=Ve(ue),ve=ie!==null&&ie<420,Oe=x=>x==="years"?a.horizon?.title??"years":x.charAt(0).toUpperCase()+x.slice(1);return(0,q.jsx)(X,{title:t??"Calendar",meta:S.title,style:{gap:10,...F?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,q.jsxs)("div",{ref:ue,"data-testid":"calendar","data-calendar-range":i,"data-calendar-at":v,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,gap:8},children:[(0,q.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6},children:[(0,q.jsxs)("nav",{"aria-label":"When",style:{display:"flex",gap:4},children:[(0,q.jsx)(Wn,{label:"Previous",glyph:"\u2039",onPress:()=>B(-1)}),(0,q.jsx)("button",{type:"button","data-testid":"calendar-today",onClick:()=>w(Ke(m,"at",a.today)),style:je,children:"Today"}),(0,q.jsx)(Wn,{label:"Next",glyph:"\u203A",onPress:()=>B(1)})]}),ve?(0,q.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:i,onChange:x=>ee(x.target.value),style:{...je,borderRadius:999,borderColor:"var(--graview-edge)",background:void 0,backgroundColor:"transparent",marginLeft:"auto",maxWidth:"50%",paddingRight:24,appearance:"none",WebkitAppearance:"none",backgroundImage:"linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%)",backgroundPosition:"calc(100% - 13px) 55%, calc(100% - 9px) 55%",backgroundSize:"4px 4px, 4px 4px",backgroundRepeat:"no-repeat"},children:dn(a).map(x=>(0,q.jsx)("option",{value:x,children:Oe(x)},x))}):(0,q.jsx)("div",{role:"group","aria-label":"Range","data-testid":"calendar-ranges",style:{display:"flex",flexWrap:"wrap",gap:4,marginLeft:"auto"},children:dn(a).map(x=>(0,q.jsx)("button",{type:"button","aria-pressed":x===i,"data-testid":`calendar-range-${x}`,onClick:()=>ee(x),style:{...je,borderRadius:999,borderColor:"var(--graview-edge)",...x==="years"?{}:{textTransform:"capitalize"},...x===i?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)",background:"var(--graview-panel)"}:{}},children:x==="years"?a.horizon?.title??"years":x},x))})]}),E?(0,q.jsx)("p",{"data-testid":E.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:E.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:E.text}):null,S.years?(0,q.jsx)("nav",{"aria-label":"Years","data-testid":"calendar-years",style:{display:"flex",flexWrap:"wrap",gap:4},children:S.years.map(x=>(0,q.jsx)("button",{type:"button","data-testid":`calendar-year-${x}`,onClick:()=>ee("year",`${x}-01-01`),style:je,children:x},x))}):null,y,i==="agenda"&&l?(0,q.jsx)("div",{"data-testid":"calendar-groups",style:{display:"grid",gap:10,minHeight:0,overflow:"auto"},children:l.map(x=>(0,q.jsxs)("section",{"data-testid":"calendar-group",style:{display:"grid",gap:4},children:[(0,q.jsxs)("h3",{style:{margin:0,fontSize:"0.8125rem",letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},children:[x.label," ",(0,q.jsx)("span",{style:{fontWeight:400},children:x.ids.size})]}),(0,q.jsx)(gn,{days:S.cells.map(T=>T.from),entries:h.filter(T=>x.ids.has(T.id)),today:a.today,emphasisOf:R,broken:P,hue:M,onMove:(T,re)=>D(T,{from:re,to:re,label:re},"day")})]},x.label))}):i==="agenda"?(0,q.jsx)(gn,{days:S.cells.map(x=>x.from),entries:h,today:a.today,emphasisOf:R,broken:P,hue:M,onMove:(x,T)=>D(x,{from:T,to:T,label:T},"day")}):(0,q.jsx)(Ft,{span:S,weekStartsOn:O,entries:h,today:a.today,perCell:a.perCell??qt[S.grain],emphasisOf:R,broken:P,hue:M,onOpen:x=>ee(jt(S.grain),x.from),onMove:D})]})})}var ce=j(Ne(),1);var V=j(Y(),1),Rr=`
4
+ .graview-columns { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
5
+ .graview-columns-column { flex: 1 1 13rem; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 8px; border-radius: 10px; border: 1px solid var(--graview-edge); background: color-mix(in srgb, var(--graview-panel) 60%, transparent); }
6
+ .graview-columns-column[data-droppable="true"] { border-color: var(--graview-accent); }
7
+ .graview-columns-column[data-over="true"] { background: color-mix(in srgb, var(--graview-accent) 10%, transparent); }
8
+ .graview-columns-heading { margin: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 0.875rem; font-weight: 600; color: var(--graview-ink); }
9
+ .graview-columns-count { font-weight: 400; color: var(--graview-ink-muted); font-variant-numeric: tabular-nums; }
10
+ .graview-columns-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
11
+ .graview-columns-empty { margin: 0; font-size: 0.8125rem; color: var(--graview-ink-muted); }
12
+ .graview-columns-card[draggable="true"] { cursor: grab; }
13
+ .graview-columns-move { position: relative; z-index: ${ke.raised}; display: flex; justify-content: flex-end; margin-top: 4px; }
14
+ .graview-columns-move[data-open="true"] { z-index: ${ke.over}; }
15
+ .graview-columns-move > button, .graview-columns-menu button, .graview-columns-said button { font: inherit; font-size: 0.8125rem; min-height: 28px; padding: 2px 10px; border-radius: 7px; border: 1px solid var(--graview-edge); background: var(--graview-panel); color: var(--graview-ink); cursor: pointer; }
16
+ .graview-columns-move > button:focus-visible, .graview-columns-menu button:focus-visible, .graview-columns-said button:focus-visible { outline: 2px solid var(--graview-accent); outline-offset: 2px; }
17
+ .graview-columns-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: ${ke.over}; display: flex; flex-direction: column; gap: 4px; padding: 6px; min-width: 10rem; border-radius: 9px; border: 1px solid var(--graview-edge); background: var(--graview-panel); box-shadow: 0 6px 18px rgb(0 0 0 / 0.18); }
18
+ .graview-columns-menu button { text-align: left; }
19
+ .graview-columns-said { margin: 0 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--graview-ink); }
20
+ .graview-columns-said[data-tone="refused"] { color: var(--graview-warn); }
21
+ .graview-columns-card[data-graview-choose] { position: relative; }
22
+ .graview-columns-card .graview-choose-at { position: absolute; top: 6px; right: 6px; z-index: ${ke.raised}; display: flex; }
23
+ [data-graview-choosable] { outline: none; }
24
+ @media (pointer: coarse) { [data-graview-choosable]:not([data-graview-choosing]) .graview-columns-card .graview-choose-at { display: none; } }
25
+ `;function Yt(e){function t(n){let{store:r}=Q();st();let a=Object.keys(e.bindings).filter(g=>r.schema.tryDefinition(g)!==void 0),o=n.nodes??[],c=new Set(o.map(g=>String(g.kind))),p=g=>r.graph.nodesOfKind(g).filter(v=>Be(r.schema.tryDefinition(g),v)),u=n.total!==void 0&&n.total>o.length,y=a.map(g=>{let v=e.bindings[g].column,i=xt(r.schema,g,v),O=c.has(g)?o.filter(R=>R.kind===g):p(g).slice(0,n.budget??1/0),C=c.has(g)&&!u?O:p(g);return{kind:g,field:v,columns:i.map(R=>({column:R,cards:O.filter(P=>An(P,v,i)===R.value),count:C.filter(P=>An(P,v,i)===R.value).length})).filter(R=>R.column.value!==null||R.count>0)}}),l=y.reduce((g,v)=>g+v.columns.reduce((i,O)=>i+O.count,0),0),m=n.label??"Board",w=a[0];if(n.fidelity==="glyph")return(0,V.jsx)(pe,{label:`${m} \xB7 ${l}`,hue:de("columns")});if(n.fidelity==="summary")return(0,V.jsx)(X,{title:m,meta:w?We(r.schema,w,l):String(l),tone:"muted",children:(0,V.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:y.flatMap(g=>g.columns.map(v=>`${v.column.label} ${v.count}`)).join(" \xB7 ")})});let s=(0,V.jsx)(Ar,{boards:y,title:m});return Me(n,r.schema,n.mode==="fullscreen"?(0,V.jsx)("div",{style:{padding:"14px 16px"},children:s}):(0,V.jsx)(X,{title:m,meta:w?We(r.schema,w,l):void 0,children:s}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function Ar({boards:e,title:t}){let{store:n,principal:r}=Q(),a=(0,ce.useRef)(null),[o,c]=(0,ce.useState)(null),[p,u]=(0,ce.useState)(null),[y,l]=(0,ce.useState)(null),[m,w]=(0,ce.useState)(null);(0,ce.useLayoutEffect)(()=>{if(!m)return;a.current?.querySelector(m)?.focus(),w(null)});let s=S=>{let d=n.graph.getNode(S);return d?fe(n.schema.tryDefinition(d.kind),d):S},g=(0,ce.useMemo)(()=>e.flatMap(S=>S.columns.flatMap(d=>d.cards.map(k=>k.id))),[e]),v=kt(g),i=(0,ce.useMemo)(()=>n.permittedMutations(r).some(S=>{let d=S.subject?.kinds;return d!==void 0&&(d==="*"||e.some(k=>d.includes(k.kind)))}),[n,r,e]),O=S=>{v.choose(S),requestAnimationFrame(()=>{((S[0]===void 0?null:a.current?.querySelector(`[data-graview-choose-box="${Vn(S[0])}"]`))??a.current)?.focus({preventScroll:!0})})},C=(S,d)=>St(n,r,S,d.field,d.columns.map(k=>k.column)),R=(S,d,k,h)=>{try{let M=n.apply(d.call,{author:r});c({text:`Moved \u201C${s(S)}\u201D to ${k}.`,tone:"moved",batch:M.batch,id:S}),h==="keyboard"&&w(`[data-columns-move="${Vn(S)}"] > button`)}catch(M){c({text:M instanceof Error?M.message:String(M),tone:"refused"})}},P=()=>{if(o?.batch)try{n.undo(o.batch,{author:r}),c({text:`\u201C${s(o.id??"")}\u201D is back where it was.`,tone:"moved"}),o.id&&w(`[data-columns-move="${Vn(o.id)}"] > button`)}catch(S){c({text:S instanceof Error?S.message:String(S),tone:"refused"})}};return(0,V.jsxs)("div",{"data-testid":"columns-lens",...i?{...v.listProps,tabIndex:-1,role:"group","aria-label":v.chosen.length>0?`${t}, ${v.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:S=>{a.current=S,v.list.current=S},children:[(0,V.jsx)("style",{children:Rr}),i?(0,V.jsx)("style",{children:Ct}):null,(0,V.jsxs)("p",{className:"graview-columns-said",role:"status","data-tone":o?.tone,"data-testid":"columns-said",style:o?void 0:{position:"absolute",width:1,height:1,overflow:"hidden",clipPath:"inset(50%)"},children:[o?(0,V.jsx)("span",{children:o.text}):null,o?.batch?(0,V.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:P,children:"Undo"}):null]}),e.map(S=>(0,V.jsx)("section",{"data-columns-kind":S.kind,"aria-label":`${Zn(n.schema,S.kind)} by ${S.field}`,children:(0,V.jsx)("div",{className:"graview-columns",children:S.columns.map(({column:d,cards:k,count:h})=>{let M=d.value??"",F=p!==null&&d.value!==null&&p.to.includes(d.value);return(0,V.jsxs)("section",{className:"graview-columns-column","data-graview-column":M,"data-droppable":F||void 0,"data-over":F&&y===M||void 0,"aria-label":`${t} \xB7 ${d.label}, ${h}`,"data-graview-named-by-lens":"",onDragOver:E=>{F&&(E.preventDefault(),E.dataTransfer.dropEffect="move",l(M))},onDragLeave:()=>l(E=>E===M?null:E),onDrop:E=>{let N=E.dataTransfer.getData("text/graview-node"),D=n.graph.getNode(N);if(l(null),u(null),!D||d.value===null)return;let B=C(D,S).find(ee=>ee.to===d.value);B&&(E.preventDefault(),E.stopPropagation(),R(N,B,d.label,"drag"))},children:[(0,V.jsxs)("h3",{className:"graview-columns-heading",children:[(0,V.jsx)("span",{children:d.label}),(0,V.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:h})]}),k.length===0?(0,V.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,V.jsx)("ul",{className:"graview-columns-cards",children:(0,V.jsx)($t.Provider,{value:d.value===null?null:{field:S.field,values:[d.value,d.label]},children:k.map(E=>{let N=C(E,S);return(0,V.jsx)(Er,{card:E,moves:N,...i?{choosing:v}:{},labelOf:D=>S.columns.find(B=>B.column.value===D)?.column.label??D,onMove:(D,B)=>R(E.id,D,B,"keyboard"),onDrag:D=>u(D?{id:E.id,to:N.map(B=>B.to)}:null)},E.id)})})})]},M)})})},S.kind)),i?(0,V.jsx)(Ot,{store:n,chosen:v.chosen,principal:r,anchor:()=>a.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:g.length,onChooseAll:()=>v.choose(g),onClear:v.clear,onActed:O}):null]})}var Vn=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function Er({card:e,moves:t,labelOf:n,onMove:r,onDrag:a,choosing:o}){let{store:c,views:p}=Q(),[u,y]=(0,ce.useState)(!1),l=(0,ce.useRef)(null),m=(0,ce.useRef)(null),w=fe(c.schema.tryDefinition(e.kind),e),s=p.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,ce.useLayoutEffect)(()=>{u&&l.current?.querySelector("button")?.focus()},[u]);let g=()=>{y(!1),m.current?.focus()},v=i=>{let O=[...l.current?.querySelectorAll("button")??[]],C=O.indexOf(document.activeElement);i.key==="Escape"?(i.preventDefault(),i.stopPropagation(),g()):(i.key==="ArrowDown"||i.key==="ArrowUp")&&(i.preventDefault(),i.stopPropagation(),O[(C+(i.key==="ArrowDown"?1:O.length-1))%O.length]?.focus())};return(0,V.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card",...o?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onDragStart:i=>{t.length!==0&&(i.dataTransfer.setData("text/graview-node",e.id),i.dataTransfer.effectAllowed="move",a(!0))},onDragEnd:()=>a(!1),children:[s?(0,V.jsx)(ot,{mode:"scene",children:(0,V.jsx)(s,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})}):(0,V.jsx)("span",{className:"graview-spec-item-name",children:w}),(0,V.jsx)(Rt,{node:e,label:w}),o?(0,V.jsx)("span",{className:"graview-choose-at",children:(0,V.jsx)("input",{...o.boxProps(e.id,w),onPointerEnter:En,onFocus:En})}):null,t.length>0?(0,V.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":u||void 0,onBlur:i=>{i.currentTarget.contains(i.relatedTarget)||y(!1)},children:[(0,V.jsx)("button",{ref:m,type:"button","aria-haspopup":"menu","aria-expanded":u,"aria-label":`Move \u201C${w}\u201D to another column`,"data-testid":"columns-move",onClick:()=>y(i=>!i),children:"Move\u2026"}),u?(0,V.jsx)("div",{ref:l,role:"menu","aria-label":`Move \u201C${w}\u201D to`,className:"graview-columns-menu",onKeyDown:v,onMouseDown:i=>i.preventDefault(),children:t.map(i=>(0,V.jsx)("button",{type:"button",role:"menuitem","data-columns-to":i.to,title:i.title,onClick:()=>{y(!1),r(i,n(i.to))},children:n(i.to)},i.to))}):null]}):null]})}var we=j(Ne(),1);var I=j(Y(),1),Mr=["rows","columns","link"],Je=class extends Error{constructor(n,r){super(`${n}
26
+ ${r}`);this.hint=r;this.name="CoverageBindingError"}},In=(e,t)=>t&&e[t]!==void 0?String(e[t]):"",Lr=40,Pr=24;function Tr(e,t={}){let n=t.rows??Lr,r=t.columns??Pr;if(e.rows.length<=n&&e.columns.length<=r)return e;let a=new Map;for(let l of e.cells)a.set(l.rowId,(a.get(l.rowId)??0)+1),a.set(`col:${l.columnId}`,(a.get(`col:${l.columnId}`)??0)+1);let o=(l,m,w)=>{if(l.length<=m)return l;let s=new Set(l.map((g,v)=>({item:g,index:v,count:a.get(w(g))??0})).sort((g,v)=>v.count-g.count||g.index-v.index).slice(0,m).map(g=>g.item.id));return l.filter(g=>s.has(g.id))},c=o(e.rows,n,l=>l.id),p=o(e.columns,r,l=>`col:${l.id}`),u=new Set(c.map(l=>l.id)),y=new Set(p.map(l=>l.id));return{...e,rows:c,columns:p,cells:e.cells.filter(l=>u.has(l.rowId)&&y.has(l.columnId)),of:{rows:e.rows.length,columns:e.columns.length}}}function er(e,t,n,r){let a=d=>d,o=d=>r?fe(r.tryDefinition(d.kind),d):String(a(d).label??d.id),c=r?[n.rows,n.columns].filter(d=>r.tryDefinition(d)===void 0):[];if(c.length>0)throw new Je(`No kind is declared for ${c.map(d=>`"${d}"`).join(" or ")}.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');if(r&&typeof n.link!="string"){let d=Cn(r,n.columns,n.link.path);if(!d.ok||!d.reached.has(n.rows)){let k=Cn(r,n.columns,[...n.link.path].reverse());throw new Je(k.ok&&k.reached.has(n.rows)?`The path runs from the ${n.rows} to the ${n.columns}; it is walked from the columns.`:`The path [${n.link.path.join(", ")}] cannot get from a ${n.columns} to a ${n.rows}.`,`Name it column end first: link: { path: [${[...n.link.path].reverse().map(h=>JSON.stringify(h)).join(", ")}] }`)}}let p=e.filter(d=>d.kind===n.rows),u=e.filter(d=>d.kind===n.columns);if(!r&&p.length===0&&u.length===0)throw new Je(`Nothing to lay out: no "${n.rows}" and no "${n.columns}" nodes.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');let y=n.groupOrder??[],l=d=>{let k=y.indexOf(d);return k===-1?y.length:k},m=n.badge?t.filter(d=>d.kind===n.badge.edge):[],w=new Set(p.map(d=>d.id)),s=new Set(u.map(d=>d.id)),g=[];if(typeof n.link=="string"){let d=n.link,k=t.filter(N=>N.kind===d),h=N=>r?.tryDefinition?.(N)?.edges?.[d]?.to,M=(h(n.columns)??[]).some(N=>N===n.rows||N==="*"),F=(h(n.rows)??[]).some(N=>N===n.columns||N==="*"),E=M||!F;for(let N of k){let D=E?N.to:N.from,B=E?N.from:N.to;w.has(D)&&s.has(B)&&g.push({rowId:D,columnId:B})}}else{let d=new Map;for(let h of new Set(n.link.path))d.set(h,new Map);for(let h of t){let M=d.get(h.kind);if(!M)continue;let F=M.get(h.from);F?F.push(h.to):M.set(h.from,[h.to]);let E=M.get(h.to);E?E.push(h.from):M.set(h.to,[h.from])}let k=new Set;for(let h of u){let M=[{id:h.id,via:[]}];for(let F of n.link.path){let E=[],N=new Set,D=d.get(F);for(let B of M)for(let ee of D.get(B.id)??[])N.has(`${B.id}|${ee}`)||(N.add(`${B.id}|${ee}`),E.push({id:ee,via:[...B.via,B.id]}));M=E}for(let F of M){if(!w.has(F.id))continue;let E=`${F.id}|${h.id}`;k.has(E)||(k.add(E),g.push({rowId:F.id,columnId:h.id,via:F.via.slice(1)}))}}}let v=new Set(n.requiredGroups??[]),i=n.requiredVia?new Set(t.filter(d=>d.kind===n.requiredVia.edge).map(d=>d.to)):null,O=new Set(g.map(d=>d.rowId)),C=new Set(g.map(d=>d.columnId)),R=new Set(m.map(d=>d.to)),P=p.map(d=>{let k=a(d),h=In(k,n.rowGroup);return{id:d.id,ref:In(k,n.rowRef),label:String(k.label??o(d)),group:h,required:i?i.has(d.id):v.size===0||v.has(h),covered:O.has(d.id),badged:R.has(d.id)}}).sort((d,k)=>l(d.group)-l(k.group)||(d.ref<k.ref?-1:d.ref>k.ref?1:0)),S=u.map(d=>({id:d.id,label:o(d),used:C.has(d.id),group:In(a(d),n.columnGroup)})).sort((d,k)=>d.group<k.group?-1:d.group>k.group?1:d.id<k.id?-1:d.id>k.id?1:0).map(({group:d,...k})=>k);return{rows:P,columns:S,cells:g,gaps:P.filter(d=>d.required&&!d.covered).map(d=>d.id),unasked:S.filter(d=>!d.used).map(d=>d.id)}}var Qt=316,Hn=58,Gn=176,Nr=Math.sin(Hn*Math.PI/180),Dr=Math.cos(Hn*Math.PI/180),zr=e=>{let t=e.reduce((r,a)=>Math.max(r,a.length),0),n=Math.min(Gn,Math.max(46,t*5.4+12));return Math.ceil(n*Nr)+8},Jt=Math.ceil(Gn*Dr),Xt=(e,t)=>nn(e,t).toLowerCase(),nr=(e,t)=>tn(e.tryDefinition(t),t);function Br(e,t,n){return t.rows===t.columns?`${e} with none across`:`${We(n,t.rows,e)} with no ${nr(n,t.columns)}`}function Wr(e,t,n){return t.rows===t.columns?`${e} with none down`:`${We(n,t.columns,e)} on no ${nr(n,t.rows)}`}function Vr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:o,implicated:c=[],flagged:p=[],budget:u}){let{store:y}=Q(),l=qr(),m=(0,we.useRef)(null),w=Ve(m),[s,g]=(0,we.useState)(null),v=er(Qe(y.graph,y.schema,e).filter(h=>h.kind===a.rows||h.kind===a.columns),y.graph.allEdges(),a,o),i=n==="full"?Tr(v,u!==void 0?{rows:u,columns:u}:{}):v;if(n==="glyph")return(0,I.jsx)(pe,{label:`${t??"Coverage"} \xB7 ${i.gaps.length===0?"complete":`${i.gaps.length} missing`}`,hue:de("coverage")});if(n==="summary"){let h=i.rows.filter(M=>i.gaps.includes(M.id));return(0,I.jsxs)(X,{title:t??"Coverage",meta:`${i.rows.length-i.gaps.length}/${i.rows.length}`,tone:i.gaps.length>0?"warning":"muted",fit:!0,children:[(0,I.jsx)(_r,{grid:i}),h.length>0?(0,I.jsx)(Ee,{pick:!0,max:4,items:h.map(M=>({id:M.id,label:M.ref||M.label}))}):null]})}let O=new Set(c),C=new Set(p),R=s!==null&&s.every(h=>O.has(h))?s:null,P=r==="fullscreen",S=zr(i.columns.map(h=>h.label)),d=w===null?Qt:Math.max(96,Math.min(Qt,Math.round(w*.36))),k=w!==null&&(w<420||d+i.columns.length*28+Jt>w);return(0,I.jsx)(X,{title:t??"Coverage",...P?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},meta:i.rows.length===0||i.columns.length===0?void 0:i.gaps.length===0&&i.unasked.length===0?"complete":[i.gaps.length>0?Br(i.gaps.length,a,y.schema):"",i.unasked.length>0?Wr(i.unasked.length,a,y.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,I.jsxs)("div",{ref:m,"data-coverage-shape":k?"stacked":"matrix",onClick:h=>g(Zt(h.target)),onKeyDown:h=>{(h.key==="Enter"||h.key===" ")&&g(Zt(h.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:k?0:Jt},children:[k?null:(0,I.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",flex:"0 0 auto",position:"sticky",top:0,zIndex:ke.over,background:"var(--graview-panel)",paddingTop:6},children:[(0,I.jsx)("div",{ref:l.corner,style:{width:d,flex:"0 0 auto",alignSelf:"stretch",position:"sticky",left:0,zIndex:ke.raised,background:"var(--graview-panel)"}}),(0,I.jsx)("div",{ref:l.heads,style:{display:"flex",flex:1,minWidth:0,height:S},children:i.columns.map(h=>(0,I.jsx)("div",{"data-graview-pick":h.id,"data-graview-emphasis":O.size===0?"plain":O.has(h.id)?"lit":"dimmed",title:h.label,"data-graview-column":h.id,style:{flex:1,minWidth:28,boxSizing:"border-box",borderLeft:"1px solid transparent",pointerEvents:"none",position:"relative",display:"flex",alignItems:"flex-end",justifyContent:"center"},children:(0,I.jsxs)("span",{style:{position:"absolute",bottom:3,padding:"3px 0",pointerEvents:"auto",cursor:"pointer",left:"50%",visibility:l.hidden.has(h.id)?"hidden":"visible",transformOrigin:"left bottom",transform:`rotate(-${Hn}deg)`,whiteSpace:"nowrap",maxWidth:Gn,overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.75rem",letterSpacing:"0.005em",color:h.used?O.size>0&&!O.has(h.id)?"var(--graview-ink-faint)":"var(--graview-ink)":"var(--graview-warn)"},children:[h.used?"":"\u26A0 ",h.label]})},h.id))})]}),i.of?(0,I.jsxs)("p",{"data-testid":"coverage-more",style:{margin:"4px 0 6px",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[[i.of.rows>i.rows.length?`the ${i.rows.length} most connected of ${i.of.rows} ${Xt(y.schema,a.rows)}`:null,i.of.columns>i.columns.length?`${i.columns.length} of ${i.of.columns} ${Xt(y.schema,a.columns)} across`:null].filter(Boolean).join(" \xB7 ").replace(/^./,h=>h.toUpperCase())," ","\u2014 what is missing is still counted over all of them."]}):null,(0,I.jsx)("div",{children:i.rows.map((h,M)=>{let F=i.rows[M-1],E=F===void 0||F.group!==h.group,N=h.required&&!h.covered,D=O.size>0&&!O.has(h.id);return(0,I.jsxs)("div",{children:[E&&h.group?(0,I.jsx)("div",{style:{fontSize:"0.6875rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",padding:"9px 0 3px"},children:(0,I.jsx)("span",{style:{position:"sticky",left:0,display:"inline-block",paddingRight:8,background:"var(--graview-panel)"},children:h.group})}):null,(0,I.jsxs)("div",{style:{display:"flex",flexDirection:k?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:D?.72:1},children:[(0,I.jsxs)("div",{"data-graview-pick":h.id,"data-graview-emphasis":O.size===0?"plain":D?"dimmed":"lit",title:h.label,style:{width:k?"auto":d,flex:"0 0 auto",position:k?"static":"sticky",left:0,zIndex:ke.raised,background:"var(--graview-panel)",display:"flex",alignItems:"center",gap:7,padding:"6px 10px 6px 0",boxSizing:"border-box",fontSize:"0.8125rem",minWidth:0,color:N||C.has(h.id)?"var(--graview-warn)":"var(--graview-ink)"},children:[h.ref?(0,I.jsx)("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums",color:"var(--graview-ink-faint)"},children:h.ref}):null,(0,I.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:h.label}),a.badge?(0,I.jsx)("span",{title:h.badged?a.badge.title:a.badge.missingTitle,style:{marginLeft:"auto",flex:"0 0 auto",fontSize:"0.75rem",color:h.badged?"var(--graview-ink-faint)":"var(--graview-warn)"},children:h.badged?a.badge.symbol:"\u25CB"}):null]}),(0,I.jsx)("div",{style:{display:"flex",flex:1,minWidth:0,...k?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:i.columns.map(B=>{let ee=i.cells.find(ie=>ie.rowId===h.id&&ie.columnId===B.id),ue=ee!==void 0;return(0,I.jsxs)("div",{"data-graview-mark":"",...ue?{"data-graview-pick":B.id,"data-graview-emphasis":O.size===0?"plain":O.has(B.id)&&O.has(h.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(Ir(ee))}:{},title:ue?`${B.label} answers ${h.ref||h.label}`:`${B.label} does not answer ${h.ref||h.label}`,style:k?{flex:"0 0 auto",minHeight:24,boxSizing:"border-box",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 9px 2px 7px",borderRadius:6,border:"1px solid var(--graview-edge)",fontSize:"0.75rem",color:ue?"var(--graview-ink)":"var(--graview-ink-faint)"}:{flex:1,minWidth:28,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",borderLeft:"1px solid var(--graview-edge)"},children:[(0,I.jsx)("span",{style:jr(ue,N,O.has(B.id)&&O.has(h.id),O.size>0)}),k?(0,I.jsx)("span",{children:B.label}):null]},B.id)})})]})]},h.id)})}),R?(0,I.jsx)(Gr,{box:m,joins:R,shape:`${k?"stacked":"matrix"} ${w??""}`}):null]})})}var Ir=e=>[e.rowId,e.columnId,...e.via??[]];function Zt(e){let t=e?.closest?.("[data-graview-joins]")?.getAttribute("data-graview-joins");if(!t)return null;try{let n=JSON.parse(t);return Array.isArray(n)&&n.every(r=>typeof r=="string")?n:null}catch{return null}}var mn=(e,t,n)=>Math.min(n,Math.max(t,e));function Hr(e){let t=e.getBoundingClientRect(),n=typeof document.createRange=="function"?document.createRange():null;n?.selectNodeContents(e);let r=typeof n?.getBoundingClientRect=="function"?n.getBoundingClientRect():null;return r&&r.width>0&&r.height>0?r:t}function Gr({box:e,joins:t,shape:n}){let[r,a]=(0,we.useState)([]),o=JSON.stringify(t);return(0,we.useLayoutEffect)(()=>{let c=e.current;if(!c||typeof window>"u")return;let p=()=>{let l=c.getBoundingClientRect(),m=c.offsetWidth>0&&l.width>0?l.width/c.offsetWidth:1,w=[...c.querySelectorAll("[data-graview-joins]")].find(v=>v.getAttribute("data-graview-joins")===o);if(!w){a([]);return}let s=w.getBoundingClientRect(),g=[];for(let v of JSON.parse(o)){let i=[...c.querySelectorAll("[data-graview-pick]")].find(d=>d.getAttribute("data-graview-pick")===v&&!d.closest("[data-graview-mark]"));if(!i)continue;let O=Hr(i),C=mn(s.left+s.width/2,O.left,O.right),R=mn(s.top+s.height/2,O.top,O.bottom),P=mn(C,s.left,s.right),S=mn(R,s.top,s.bottom);g.push({id:v,x1:(P-l.left)/m,y1:(S-l.top)/m,x2:(C-l.left)/m,y2:(R-l.top)/m})}a(g)};p();let u=0,y=()=>{u===0&&(u=requestAnimationFrame(()=>{u=0,p()}))};return document.addEventListener("scroll",y,{capture:!0,passive:!0}),window.addEventListener("resize",y,{passive:!0}),()=>{document.removeEventListener("scroll",y,{capture:!0}),window.removeEventListener("resize",y),u!==0&&cancelAnimationFrame(u)}},[e,o,n]),(0,I.jsx)("svg",{"aria-hidden":"true","data-coverage-join":o,style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none",zIndex:ke.over},children:r.map(c=>(0,I.jsxs)("g",{"data-coverage-join-to":c.id,children:[(0,I.jsx)("line",{x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,stroke:"var(--graview-accent)",strokeWidth:1.6,strokeLinecap:"round"}),(0,I.jsx)("circle",{cx:c.x2,cy:c.y2,r:2.6,fill:"var(--graview-accent)"})]},c.id))})}function jr(e,t,n,r){return e?{width:13,height:13,borderRadius:4,background:n||!r?"var(--graview-accent)":"var(--graview-accent-dim)",boxShadow:n&&r?"0 0 12px -2px var(--graview-accent)":void 0}:{width:5,height:5,borderRadius:1,background:t?"var(--graview-warn)":"var(--graview-edge)",opacity:t?.5:1}}function _r({grid:e}){let t=e.rows.filter(a=>a.required),n=t.filter(a=>a.covered).length,r=t.length===0?1:n/t.length;return(0,I.jsx)("div",{role:"img","aria-label":`${n} of ${t.length} covered`,style:{height:6,borderRadius:999,overflow:"hidden",background:"var(--graview-edge)"},children:(0,I.jsx)("div",{style:{width:`${Math.round(r*100)}%`,height:"100%",background:r===1?"var(--graview-accent)":"var(--graview-warn)"}})})}function tr(e){function t(n){let{store:r}=Q();return(0,I.jsx)(Vr,{schema:r.schema,...n,options:e})}return{name:"coverage",requiredRoles:[...Mr],options:e,View:t,build(n,r,a){return er(n,r,e,a)}}}function qr(){let e=(0,we.useRef)(null),t=(0,we.useRef)(null),[n,r]=(0,we.useState)(new Set);return(0,we.useEffect)(()=>{let a=t.current;if(!a||typeof window>"u")return;let o=a.parentElement;for(;o&&!/(auto|scroll)/.test(getComputedStyle(o).overflowX);)o=o.parentElement;if(!o)return;let c=0,p=()=>{c=0;let y=e.current?.getBoundingClientRect().right??0,l=new Set;for(let m of a.querySelectorAll("[data-graview-column]")){let w=m.getBoundingClientRect();w.left+w.width/2<y&&l.add(m.dataset.graviewColumn)}r(m=>m.size===l.size&&[...l].every(w=>m.has(w))?m:l)},u=()=>{c===0&&(c=requestAnimationFrame(p))};return p(),o.addEventListener("scroll",u,{passive:!0}),()=>{o.removeEventListener("scroll",u),c!==0&&cancelAnimationFrame(c)}},[]),{corner:e,heads:t,hidden:n}}var ar=["regions","outline"],_e=class extends Error{constructor(n,r){super(`${n}
27
+ ${r}`);this.hint=r;this.name="PlanBindingError"}},pn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',rr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function fn(e,t,n,r){let a=i=>i,o=i=>r?fe(r.tryDefinition(i.kind),i):String(a(i).label??i.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new _e(`No kind is declared for "${n.regions}".`,pn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new _e(`No kind is declared for "${n.markers}".`,pn);let c=e.filter(i=>i.kind===n.regions);if(!r&&c.length===0)throw new _e(`Nothing to draw: no "${n.regions}" nodes.`,pn);let u=r?.tryDefinition(n.regions)?.fields?.shape;if(u!==void 0&&!(n.outline in u))throw new _e(`"${n.regions}" has no field called "${n.outline}".`,pn);let y=(()=>{let i=new Map;if(n.nests)for(let O of t)O.kind===n.nests&&i.set(O.from,O.to);return O=>{let C=0,R=i.get(O),P=new Set([O]);for(;R!==void 0&&!P.has(R)&&C<c.length;)P.add(R),C+=1,R=i.get(R);return C}})(),l=n.markers?e.filter(i=>i.kind===n.markers):[],m=new Map;if(n.within)for(let i of t)i.kind===n.within&&m.set(i.from,i.to);let w=[],s=new Map;for(let i of l){let O=n.at===void 0?void 0:a(i)[n.at],C=m.get(i.id);if(!rr(O)||C===void 0){w.push({id:i.id,label:o(i)});continue}let R=n.markerKind===void 0?void 0:a(i)[n.markerKind],P=s.get(C)??[];P.push({id:i.id,label:o(i),at:O,...typeof R=="string"?{what:R}:{}}),s.set(C,P)}let g=[],v=[];for(let i of c){let O=a(i)[n.outline];if(!Array.isArray(O)||O.length<3||!O.every(rr)){g.push({id:i.id,label:o(i)});continue}let C=n.regionKind===void 0?void 0:a(i)[n.regionKind];v.push({id:i.id,label:o(i),outline:O,center:wt(O),depth:y(i.id),markers:s.get(i.id)??[],...typeof C=="string"?{what:C}:{}})}return v.sort((i,O)=>i.depth-O.depth),{regions:v,undrawn:g,strays:w}}var Pe=j(Ne(),1);var A=j(Y(),1);function ir({map:e,options:t,implicated:n,flagged:r}){return(0,A.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:".25rem"},children:[e.regions.map(a=>{let o=hn(a.id,n,r);return(0,A.jsxs)("li",{"data-graview-pick":a.id,...o?{"data-graview-emphasis":o}:{},style:{display:"flex",flexWrap:"wrap",gap:".5rem",justifyContent:"space-between",minWidth:0,padding:".25rem .4rem",borderRadius:".35rem",background:o==="flagged"?_n(a.what,o,t.hues):void 0},children:[(0,A.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,A.jsxs)("span",{style:{opacity:.7,whiteSpace:"nowrap"},children:[a.what?`${a.what} \xB7 `:"",a.markers.length]})]},a.id)}),e.undrawn.map(a=>(0,A.jsxs)("li",{"data-graview-pick":a.id,style:{display:"flex",gap:".5rem",opacity:.7,padding:".25rem .4rem"},children:[(0,A.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,A.jsx)("span",{style:{whiteSpace:"nowrap"},children:t.undrawnLabel??"not drawn"})]},a.id))]})}var jn=1e3,or=.022,Xe={minHeight:"1.9rem",padding:".25rem .65rem",borderRadius:".35rem",border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",font:"inherit",fontSize:"0.9375rem",cursor:"pointer"},hn=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},yn=(e,t)=>(e===void 0?void 0:t?.[e])??de(e??"region"),_n=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${yn(e,n)} 52% 48%) 24%, var(--graview-panel))`,sr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${yn(e,n)} 48% 42%) 78%, var(--graview-ink))`;function Fr(e){let t=e.currentTarget.getBoundingClientRect(),n=r=>Math.round(Math.max(0,Math.min(1,r))*1e3)/1e3;return{x:n(t.width===0?0:(e.clientX-t.left)/t.width),y:n(t.height===0?0:(e.clientY-t.top)/t.height)}}function lr({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:o,implicated:c,flagged:p}){let{store:u}=Q(),y=u.graph.allEdges(),l=u.graph.allNodes(),m=n===void 0?void 0:new Set(n.map(b=>b.id)),w=m===void 0?l:l.filter(b=>b.kind!==t.regions||m.has(b.id)),s=fn(w,y,t,e),g=s.regions.length,v=s.regions.reduce((b,$)=>b+$.markers.length,0);if(a==="glyph")return(0,A.jsx)(pe,{label:`${r??"Ground"} \xB7 ${g}`,...s.undrawn.length>0?{meta:`+${s.undrawn.length} undrawn`}:{},selected:o});if(a==="summary")return(0,A.jsx)(X,{title:r??"The plan",subtitle:`${g} drawn \xB7 ${v} standing in them`,children:(0,A.jsx)(ir,{map:s,options:t,...c?{implicated:c}:{},...p?{flagged:p}:{}})});let i=(0,Pe.useMemo)(()=>{let b=1/0,$=1/0,W=-1/0,ne=-1/0,oe=se=>{se.x<b&&(b=se.x),se.x>W&&(W=se.x),se.y<$&&($=se.y),se.y>ne&&(ne=se.y)};for(let se of s.regions){for(let ye of se.outline)oe(ye);for(let ye of se.markers)oe(ye.at)}if(!Number.isFinite(b)||W-b<=0||ne-$<=0)return{x0:0,y0:0,x1:1,y1:1};let Z=Math.max(W-b,ne-$)*.04;return{x0:b-Z,y0:$-Z,x1:W+Z,y1:ne+Z}},[s.regions]),O=(i.x1-i.x0)/(i.y1-i.y0),C=t.aspect??Math.min(3.2,Math.max(.55,O)),R=Math.round(jn/(i.x1-i.x0)),P=Math.round(R*(i.x1-i.x0)),S=Math.round(P/C),d={x:i.x0*R,y:i.y0*R-(S-R*(i.y1-i.y0))/2,w:P,h:S},k=R,h=d.w,M=(c?.length??0)>0||(p?.length??0)>0,F=(0,Pe.useRef)(null),{touchable:E,legible:N}=ct(F,{units:d.w,target:h*or*2}),D=On("--graview-font-display","serif"),B=On("--graview-font-body","sans-serif"),{named:ee,placed:ue,tagged:ie}=(0,Pe.useMemo)(()=>{let b=[],$=h*.012,W=jn*.004,ne=(le,U)=>!b.some(me=>me!==U&&bt({x0:le.x0-W,y0:le.y0-W,x1:le.x1+W,y1:le.y1+W},me)),oe=[...s.regions].sort((le,U)=>Rn(U.outline)-Rn(le.outline)),Z=new Map,se=new Map;for(let le of oe){let U=yt(le.outline),me=Math.max(0,(U.bottom-U.top)*k*.55),$e=null;for(let Se of[.12,.26,.42,.6,.78]){let be=U.top+Se*(U.bottom-U.top),Re=$n(le.outline,be),wn=Math.max(0,(Re.x1-Re.x0)*R-$*2),ge=vt(le.label,{room:wn,height:me,size:h*.023,floor:h*.015,measure:D});if(ge===null)continue;let Te=Math.max(...ge.lines.map(wr=>D(wr,ge.fontSize))),Ae=ge.lines.length*ge.fontSize*1.15,Un=U.top*k+$+Ae/2,Kn=U.bottom*k-$-Ae/2,en=Kn<Un?(U.top+U.bottom)*k/2:Math.min(Math.max(be*k,Un),Kn),vn=$n(le.outline,en/k),bn=vn.x0*R+$;if(Te>(vn.x1-vn.x0)*R-$*2)continue;let Yn={x0:bn,y0:en-Ae/2,x1:bn+Te,y1:en+Ae/2};if(ne(Yn)){b.push(Yn),$e={fitted:ge,x:bn,y:en};break}}Z.set(le.id,$e?.fitted??null),$e!==null&&se.set(le.id,{x:$e.x,y:$e.y})}let ye=h*.018,Fe=new Map,_=h*.011+h*.004,Fn=new Map;for(let le of s.regions)for(let U of le.markers){let me={x0:U.at.x*R-_,y0:U.at.y*k-_,x1:U.at.x*R+_,y1:U.at.y*k+_};Fn.set(U.id,me),b.push(me)}for(let le of E?s.regions:[])for(let U of le.markers){let me=h*.018,$e=B(U.label,ye),Se=U.at.x*R,be=U.at.y*k,Re=ye*1.15,wn=[{x:Se+me,y:be,anchor:"start"},{x:Se-me,y:be,anchor:"end"},{x:Se+me*.7,y:be-Re,anchor:"start"},{x:Se-me*.7,y:be-Re,anchor:"end"},{x:Se+me*.7,y:be+Re,anchor:"start"},{x:Se-me*.7,y:be+Re,anchor:"end"},{x:Se,y:be-Re*1.1,anchor:"start"},{x:Se,y:be+Re*1.1,anchor:"start"}];for(let ge of wn){let Te=ge.anchor==="start"?ge.x:ge.x-$e,Ae={x0:Te,y0:ge.y-ye*.62,x1:Te+$e,y1:ge.y+ye*.62};if(!(Te<d.x+4||Te+$e>d.x+d.w-4)&&!(Ae.y0<d.y+2||Ae.y1>d.y+d.h-2)&&ne(Ae,Fn.get(U.id))){b.push(Ae),Fe.set(U.id,{at:{x:ge.x,y:ge.y},anchor:ge.anchor,size:ye});break}}}return{named:Z,placed:se,tagged:Fe}},[s.regions,jn,k,E,D,B]),ve=(0,Pe.useMemo)(()=>{let b=[];for(let $ of s.regions)(ee.get($.id)?.whole??!1)===!1&&b.push({id:$.id,label:$.label,what:$.what,round:!1});for(let $ of s.regions)for(let W of $.markers)(!E||!ie.has(W.id))&&b.push({id:W.id,label:W.label,what:W.what,round:!0});return b},[s.regions,ee,ie,E]),{principal:Oe}=Q(),[x,T]=(0,Pe.useState)(null),re=t.draw!==void 0,f=t.place!==void 0,H=b=>{if(x===null)return;b.stopPropagation();let $=Fr(b);if(x.kind==="marker"){u.apply({name:t.place.act,args:{[t.place.id]:x.id,[t.place.at]:$}},{author:Oe,intent:`Placed ${x.label} on the map`}),T(null);return}T({...x,corners:[...x.corners,$]})},z=()=>{x===null||x.kind!=="region"||x.corners.length<3||(u.apply({name:t.draw.act,args:{[t.draw.id]:x.id,[t.draw.outline]:x.corners}},{author:Oe,intent:`Drew ${x.label} on the map \u2014 ${x.corners.length} corners`}),T(null))},G=x===null?s.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:x.kind==="marker"?`Click where ${x.label} stands.`:x.corners.length<3?`Click the corners of ${x.label} \u2014 ${3-x.corners.length} more to make an area.`:`${x.corners.length} corners. Keep clicking, or press Done.`;return N?(0,A.jsxs)(X,{title:r??"The plan",subtitle:`${g} drawn \xB7 ${v} standing in them`,...s.undrawn.length>0?{meta:`${s.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:o,fit:!0,children:[(0,A.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${d.w} / ${d.h}`,overflow:"hidden"},children:(0,A.jsxs)("svg",{ref:F,viewBox:`${d.x} ${d.y} ${d.w} ${d.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:x!==null?"application":E?"group":"img","aria-label":x===null?`${r??"The plan"}: ${g} drawn, ${v} standing in them`:G??"Drawing",onClick:H,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:x===null?void 0:"crosshair",border:"1px dashed color-mix(in oklab, var(--graview-edge) 80%, transparent)",borderRadius:".4rem",backgroundImage:"linear-gradient(color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px)",backgroundSize:"10% 10%"},children:[(0,A.jsx)("text",{x:d.x+d.w-h*.028,y:d.y+h*.034,fontSize:h*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),G!==null&&s.regions.length===0?(0,A.jsx)("text",{x:d.x+d.w/2,y:d.y+d.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:h*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:G}):null,x!==null&&x.kind==="region"&&x.corners.length>0?(0,A.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,A.jsx)("polyline",{points:x.corners.map(b=>`${b.x*R},${b.y*k}`).join(" "),fill:x.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),x.corners.map((b,$)=>(0,A.jsx)("circle",{cx:b.x*R,cy:b.y*k,r:h*.008,fill:"var(--graview-accent)"},$))]}):null,s.regions.map(b=>{let $=hn(b.id,c,p),W=M&&$===void 0?.34:1,ne=b.outline.map(oe=>`${oe.x*R},${oe.y*k}`).join(" ");return(0,A.jsx)("g",{"data-graview-pick":b.id,...$?{"data-graview-emphasis":$}:{},role:"button","aria-label":`${b.label}${b.what?`, ${b.what}`:""}, ${b.markers.length} standing in it`,style:{opacity:W,cursor:"pointer"},children:(0,A.jsx)("polygon",{points:ne,fill:_n(b.what,$,t.hues),stroke:sr(b.what,$,t.hues),strokeWidth:$==="flagged"?5:2.5,strokeLinejoin:"round"})},b.id)}),s.regions.flatMap(b=>b.markers.map($=>{let W=hn($.id,c,p),ne=M&&W===void 0?.34:1;return(0,A.jsxs)("g",{...E?{"data-graview-pick":$.id,role:"button","aria-label":`${$.label}${$.what?`, ${$.what}`:""}, in ${b.label}`}:{"aria-hidden":!0},...W?{"data-graview-emphasis":W}:{},style:{opacity:ne,cursor:E?"pointer":"default"},children:[E?(0,A.jsx)("circle",{cx:$.at.x*R,cy:$.at.y*k,r:h*or,fill:"transparent"}):null,(0,A.jsx)("circle",{cx:$.at.x*R,cy:$.at.y*k,r:h*.011,fill:W==="flagged"?"var(--graview-warn)":`hsl(${yn($.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:h*.004}),ie.has($.id)?(0,A.jsx)("text",{x:ie.get($.id).at.x,y:ie.get($.id).at.y,textAnchor:ie.get($.id).anchor,dominantBaseline:"middle",fontSize:ie.get($.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,ie.get($.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${$.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:$.label}):null]},$.id)})),s.regions.map(b=>{let $=ee.get(b.id),W=ue.get(b.id);if(!$||W===void 0)return null;let ne=hn(b.id,c,p);return(0,A.jsx)("text",{x:W.x,y:W.y-($.lines.length-1)*$.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:$.fontSize,fill:"var(--graview-ink)",opacity:M&&ne===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,$.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${b.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:$.lines.map((oe,Z)=>(0,A.jsx)("tspan",{x:W.x,dy:Z===0?0:$.fontSize*1.15,children:oe},oe+String(Z)))},`label-${b.id}`)})]})}),ve.length>0?(0,A.jsx)("ul",{"data-testid":"map-key",style:{margin:".5rem 0 0",padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:".2rem .75rem",fontSize:"0.875rem"},children:ve.map(b=>(0,A.jsxs)("li",{"data-graview-pick":b.id,style:{display:"flex",alignItems:"center",gap:".35rem",minWidth:0,minHeight:"max(1.5rem, 24px)",padding:"0 .15rem",cursor:"pointer"},children:[(0,A.jsx)("span",{"aria-hidden":"true",style:{width:b.round?".55rem":".7rem",height:b.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:b.round?"50%":".15rem",background:b.round?`hsl(${yn(b.what,t.hues)} 55% 45%)`:_n(b.what,void 0,t.hues),border:b.round?void 0:`1px solid ${sr(b.what,void 0,t.hues)}`}}),(0,A.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:b.label})]},b.id))}):null,x!==null?(0,A.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[s.regions.length>0&&G!==null?(0,A.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:G}):null,x.kind==="region"?(0,A.jsxs)("button",{type:"button",onClick:z,disabled:x.corners.length<3,"data-testid":"draw-done",style:{...Xe,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",x.label]}):null,x.kind==="region"&&x.corners.length>0?(0,A.jsx)("button",{type:"button",onClick:()=>T({...x,corners:x.corners.slice(0,-1)}),style:Xe,children:"Undo a corner"}):null,(0,A.jsx)("button",{type:"button",onClick:()=>T(null),style:Xe,"data-testid":"draw-cancel",children:"Stop"})]}):(0,A.jsxs)(A.Fragment,{children:[re&&s.undrawn.length>0?(0,A.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,A.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.undrawnLabel??"Not drawn yet",":"]}),s.undrawn.map(b=>(0,A.jsxs)("button",{type:"button",style:Xe,onClick:()=>T({kind:"region",id:b.id,label:b.label,corners:[]}),"data-testid":`draw-${b.id}`,children:["Draw ",b.label]},b.id))]}):null,f&&s.strays.length>0?(0,A.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,A.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.strayLabel??"Not placed",":"]}),s.strays.map(b=>(0,A.jsxs)("button",{type:"button",style:Xe,onClick:()=>T({kind:"marker",id:b.id,label:b.label}),"data-testid":`place-${b.id}`,children:["Place ",b.label]},b.id))]}):null,t.help!==void 0&&(s.undrawn.length>0||s.strays.length>0)?(0,A.jsx)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem"},children:(0,A.jsx)("a",{href:t.help.href,"data-testid":"map-help",children:t.help.label})}):null,!re&&(s.undrawn.length>0||s.strays.length>0)?(0,A.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[s.undrawn.map(b=>b.label).join(", "),s.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",s.strays.map(b=>b.label).join(", "),s.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,A.jsx)(X,{title:r??"The plan",subtitle:`${g} drawn \xB7 ${v} standing in them`,selected:o,children:(0,A.jsx)(ir,{map:s,options:t,...c?{implicated:c}:{},...p?{flagged:p}:{}})})}var cr=j(Y(),1);function dr(e){function t(n){let{store:r}=Q();return(0,cr.jsx)(lr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...ar],options:e,View:t,build(n,r,a){return fn(n,r,e,a)}}}var te=j(Y(),1);function Ur(e,t,n){let r=t.flatMap(o=>(o.subject&&o.subject.kinds!=="*"?o.subject.kinds:[null]).map(p=>({name:o.name,title:o.title??o.name,kind:p}))),a=[];for(let o of n){let c={kind:"human",id:"themselves",roles:[o]};for(let p of r){let u=p.kind??void 0,y=kn(e,c,p.name,u).ok,l=!y&&kn(e,c,p.name,u,void 0,"themselves").ok;a.push({role:o,act:p.name,kind:p.kind,may:y?"yes":l?"self":"no"})}}return{roles:n,acts:r,cells:a}}function Kr({label:e,fidelity:t,mode:n}){let{store:r}=Q(),a=r.policy,o=a?.roles??[],c=r.allMutations().filter(m=>!m.derived).map(m=>({name:m.name,...m.title?{title:m.title}:{},...m.subject?{subject:m.subject}:{}})),p=Ur(a,c,o),u=e??"Who may do what";if(!a||o.length===0)return(0,te.jsxs)("div",{"data-testid":"reach-lens",style:{padding:14,color:"var(--graview-ink-muted)",fontSize:"0.875rem"},children:[u,": this installation has no policy, so everyone may do everything."]});if(t==="glyph")return(0,te.jsx)(pe,{label:`${u} \xB7 ${o.length} ${o.length===1?"role":"roles"}`,hue:de("role")});let y=n==="fullscreen",l=m=>m==="yes"?"\u25CF":m==="self"?"\u25D0":"\xB7";return(0,te.jsxs)("div",{"data-testid":"reach-lens",style:{display:"grid",gap:10,padding:y?0:14,borderRadius:"var(--graview-radius, 12px)",background:y?"transparent":"var(--graview-panel)",border:y?"none":"1px solid var(--graview-edge)",color:"var(--graview-ink)",minWidth:0},children:[(0,te.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,te.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:u}),(0,te.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"\u25CF may \xB7 \u25D0 on their own record \xB7 read from the policy"})]}),(0,te.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,te.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,te.jsx)("thead",{children:(0,te.jsxs)("tr",{children:[(0,te.jsx)("th",{scope:"col",style:{textAlign:"left",padding:"4px 10px 6px 0",fontWeight:500,color:"var(--graview-ink-faint)",fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase"},children:"Role"}),p.acts.map(m=>(0,te.jsxs)("th",{scope:"col",title:m.kind?`${m.title}, on ${et(tn(r.schema.tryDefinition(m.kind),m.kind))}`:m.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[m.title,m.kind?(0,te.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",m.kind]}):null]},`${m.name}|${m.kind??""}`))]})}),(0,te.jsx)("tbody",{children:p.roles.map(m=>(0,te.jsxs)("tr",{children:[(0,te.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:m}),p.acts.map(w=>{let s=p.cells.find(g=>g.role===m&&g.act===w.name&&g.kind===w.kind);return(0,te.jsx)("td",{"data-graview-reach":s.may,title:`${m} ${s.may==="yes"?"may":s.may==="self"?"may, on their own record,":"may not"} ${w.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:s.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:s.may==="no"?"0.875rem":"0.8125rem"},children:l(s.may)},`${w.name}|${w.kind??""}`)})]},m))})]})})]})}var gr={name:"reach",requiredRoles:[],View:Kr};var xe=j(Ne(),1);var J=j(Y(),1),mr=["start","end"];function Yr(e,t,{pad:n=45,minimum:r=480}={}){if(e.length===0)return{start:0,end:t};let a=Math.min(...e.map(y=>y.start)),o=Math.max(...e.map(y=>y.end)),c=Math.max(0,a-n),p=Math.min(t,o+n),u=r-(p-c);return u>0&&(c=Math.max(0,c-u/2),p=Math.min(t,c+r)),{start:Math.floor(c),end:Math.ceil(p)}}function Qr(e){let t=[...e].sort((o,c)=>o.start-c.start||o.end-c.end||o.id.localeCompare(c.id)),n=[],r=t.map(o=>{let c=n.findIndex(p=>p<=o.start);return c===-1?(c=n.length,n.push(o.end)):n[c]=o.end,{...o,lane:c,lanes:1}}),a=Math.max(1,n.length);return r.map(o=>({...o,lanes:a}))}var qn=class extends Error{constructor(t,n){super(`The timeline lens needs ${n.join(" and ")} for "${t}". Add them to the lens bindings: { ${t}: { ${n.map(r=>`${r}: "<field name>"`).join(", ")} } }.`),this.name="TimelineBindingError"}};function pr(e,t,n){let r=ze(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,o=n?.tryDefinition(e.kind)?.fields.shape,c=mr.filter(l=>{let m=r[l];return m?o?!(m in o):!(m in a):!0});if(c.length>0)throw new qn(e.kind,c);let p=Number(a[r.start]??Number.NaN),u=Number(a[r.end]??p);if(!Number.isFinite(p))return null;let y=[];if(r.columns){let l=a[r.columns];Array.isArray(l)&&y.push(...l.map(String))}if(r.column){let l=a[r.column];l!=null&&y.push(String(l))}return{id:e.id,kind:e.kind,label:fe(n?.tryDefinition(e.kind),e),columnIds:y,start:p,end:Number.isFinite(u)?Math.max(u,p):p}}function Jr(e,t){let n=Math.round(t),r=a=>`linear-gradient(hsl(${n} 55% var(--graview-tint-lightness) / ${a}), hsl(${n} 55% var(--graview-tint-lightness) / ${a})), var(--graview-panel)`;return e==="lit"?{border:"1px solid var(--graview-accent)",background:r("calc(var(--graview-tint-alpha) * 1.15)"),color:"var(--graview-ink)",boxShadow:"0 0 16px -4px var(--graview-accent)"}:e==="dimmed"?{border:"1px solid var(--graview-edge)",background:r("calc(var(--graview-tint-alpha) * 0.25)"),color:"var(--graview-ink-muted)"}:{border:`1px solid hsl(${n} 50% var(--graview-tint-lightness) / 0.42)`,background:r("var(--graview-tint-alpha)"),color:"var(--graview-ink)"}}var Xr=.045,Ze=52,fr=4,Zr=44,ea=240;function na({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:o,selectedIds:c=[],implicated:p=[],flagged:u=[]}){let y=new Set([...p,...c]),l=S=>y.size===0?"plain":y.has(S)?"lit":"dimmed",m=new Set(u),w=(e??[]).map(S=>pr(S,a.bindings,o)).filter(S=>S!==null),s=a.hueOf??(S=>de(S.kind));if(n==="glyph")return(0,J.jsx)(pe,{label:`${t??"Timeline"} \xB7 ${w.length}`,hue:de("timeline")});if(n==="summary")return(0,J.jsx)(X,{title:t??"Timeline",meta:`${w.length} items`,tone:"muted",children:(0,J.jsx)(Ee,{max:a.columns.length,items:a.columns.map(S=>({id:S.id,label:`${S.label} ${w.filter(d=>d.columnIds.includes(S.id)).length}`,hue:de(S.id)}))})});let g=a.format??String,v=Yr(w,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),i=v.end-v.start,O=S=>(S-v.start)/i*100,C=a.tick??Math.max(60,Math.round(i/8/60)*60),R=[];for(let S=Math.ceil(v.start/C)*C;S<=v.end;S+=C)R.push(S);let P=r==="fullscreen";return(0,J.jsx)(X,{title:t??"Timeline",meta:`${g(v.start)} \u2013 ${g(v.end)}`,style:{gap:12,...P?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,J.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,J.jsx)(aa,{columns:a.columns}),(0,J.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(ea,Math.ceil(i/C)*Zr)},children:[R.map((S,d)=>(0,J.jsx)("div",{style:{position:"absolute",left:Ze-8,right:0,top:d===R.length-1?"calc(100% - 1px)":`${O(S)}%`,height:1,background:"var(--graview-edge)"},children:(0,J.jsx)("span",{style:{position:"absolute",left:-(Ze-8),...d===R.length-1?{bottom:2}:{top:-7},width:Ze-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:g(S)})},S)),(0,J.jsx)("div",{style:{position:"absolute",inset:0,left:Ze,display:"flex",gap:fr},children:a.columns.map(S=>(0,J.jsx)(ia,{spans:w.filter(d=>d.columnIds.includes(S.id)),window:v,format:g,hue:s,emphasisOf:l,brokenIds:m},S.id))})]})]})})}function ta(){let e=(0,xe.useRef)(null),[t,n]=(0,xe.useState)(new Set);return(0,xe.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let a=[...r.querySelectorAll("[data-graview-span-name]")].filter(o=>o.scrollWidth>o.clientWidth+.5).map(o=>o.getAttribute("data-graview-span-name")).filter(o=>!t.has(o));a.length>0&&n(new Set([...t,...a]))}),(0,xe.useLayoutEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let a=Math.round(r.clientWidth),o=new ResizeObserver(()=>{let c=Math.round(r.clientWidth);c!==a&&(a=c,n(new Set))});return o.observe(r),()=>o.disconnect()},[]),{column:e,oneLine:t}}var ra=(e,t)=>t===0?e:e.slice(0,t),ur=[0,3,1];function aa({columns:e}){let t=(0,xe.useRef)(null),[n,r]=(0,xe.useState)(0);(0,xe.useLayoutEffect)(()=>{let o=t.current;if(!o)return;[...o.children].some(p=>p.scrollWidth>p.clientWidth+.5)&&n<ur.length-1&&r(n+1)}),(0,xe.useLayoutEffect)(()=>{let o=t.current;if(!o||typeof ResizeObserver>"u")return;let c=o.clientWidth,p=new ResizeObserver(()=>{o.clientWidth!==c&&(c=o.clientWidth,r(0))});return p.observe(o),()=>p.disconnect()},[]);let a=ur[n];return(0,J.jsx)("div",{ref:t,style:{display:"flex",gap:fr,paddingLeft:Ze,paddingBottom:10},children:e.map(o=>{let c=ra(o.label,a);return(0,J.jsx)("div",{"data-graview-day-head":o.id,title:c===o.label?void 0:o.label,...c===o.label?{}:{"aria-label":o.label},style:{flex:1,minWidth:0,overflow:"hidden",whiteSpace:"nowrap",fontSize:"0.75rem",letterSpacing:a===1?0:"0.18em",textTransform:"uppercase",textAlign:"center",color:"var(--graview-ink-muted)"},children:c},o.id)})})}function ia({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:o}){let c=t.end-t.start,p=s=>(s-t.start)/c*100,u=s=>(s.end-s.start)/c<Xr,y=Qr(e.filter(s=>!u(s))),l=[...e.filter(u)].sort((s,g)=>s.start-g.start),m=Math.max(1,...y.map(s=>s.lanes)),w=ta();return(0,J.jsxs)("div",{ref:w.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[y.map(s=>{let g=100/m,v=Math.max(1.6,p(s.end)-p(s.start));return(0,J.jsx)("div",{"data-graview-span":s.id,"data-graview-pick":s.id,"data-graview-emphasis":a(s.id),"data-graview-flagged":o.has(s.id)?"":void 0,title:`${s.label} \xB7 ${n(s.start)}\u2013${n(s.end)}`,style:{position:"absolute",top:`${p(s.start)}%`,height:`${v}%`,left:`${s.lane*g}%`,width:`${g}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,J.jsx)("div",{"data-graview-span-name":s.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...w.oneLine.has(s.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...Jr(a(s.id),r(s)),...o.has(s.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:v>=3.4?s.label:null})},s.id)}),l.map(s=>{let g=a(s.id);return(0,J.jsxs)("div",{"data-graview-span":s.id,"data-graview-pick":s.id,"data-graview-emphasis":g,"data-graview-moment":"",title:`${s.label} \xB7 ${n(s.start)}`,style:{position:"absolute",top:`${p(s.start)}%`,right:0,maxWidth:"100%",boxSizing:"border-box",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"flex-end",gap:5,minHeight:24,padding:"0 4px 0 8px",borderRadius:999,background:"linear-gradient(90deg, transparent, var(--graview-ground) 35%)"},children:[(0,J.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:g==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(s.start)}),(0,J.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:g==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:s.label}),(0,J.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:o.has(s.id)?"var(--graview-warn)":g==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(s))} 60% var(--graview-tint-lightness))`,boxShadow:o.has(s.id)?"0 0 0 3px var(--graview-warn)":g==="lit"?"0 0 0 3px var(--graview-accent-dim)":g==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(s))} 60% var(--graview-tint-lightness) / 0.45)`}})]},s.id)})]})}function hr(e){function t(n){let{store:r}=Q(),a=Object.keys(e.bindings),{nodes:o,bar:c}=Ie(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...a[0]?{kind:(n.nodes??[]).find(u=>a.includes(String(u.kind)))?.kind??a[0]}:{}}),p=(0,J.jsx)(na,{schema:r.schema,...n,nodes:o,options:e});return Me(n,r.schema,c?(0,J.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[c,p]}):p)}return{name:"timeline",requiredRoles:[...mr],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>pr(a,e.bindings,r)).filter(a=>a!==null)}}}var qe=j(Y(),1),yr=new WeakMap;function oa(e){return e===1440?t=>Ue(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Ue(Math.floor(t)*60):t=>String(t)}function sa(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return hr({...t,extent:n,format:oa(n)}).View}case"calendar":return Kt({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return tr(t).View;case"board":return Lt(t).View;case"plan":return dr(t).View;case"reach":return gr.View;case"columns":return Yt(t).View;case"blocks":return la(dt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function la(e,t){return n=>{let r=(0,qe.jsx)(At,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,qe.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode==="fullscreen"?(0,qe.jsx)("div",{style:{padding:"14px 16px"},children:r}):(0,qe.jsx)(X,{title:n.label??"",children:r})}}function ao(e){let t=yr.get(e);if(!t){let n=sa(e),r=a=>(0,qe.jsx)(n,{...a,label:e.title});yr.set(e,t=r)}return t}export{oa as a,ao as b};
@@ -0,0 +1 @@
1
+ import{d as f}from"./chunk.64P76WK4.js";import"./chunk.WLRTPFAC.js";import"./chunk.XXHNV24G.js";import"./chunk.RWGLKDWH.js";import"./chunk.GZH6PTXN.js";import{a as x,b as S,c as D}from"./chunk.XAXJHEMD.js";import{b as h}from"./chunk.P62SKNJS.js";import"./chunk.GDA3G4U2.js";import"./chunk.WKXNBHTL.js";import"./chunk.OWE6OJ4P.js";import"./chunk.3JM2TNDD.js";import"./chunk.BKPGDEES.js";import"./chunk.JNGUSAWX.js";import"./chunk.CK7QWLMX.js";import"./chunk.QNHECGMH.js";import"./chunk.KZ2376BD.js";import"./chunk.IZW7DBK4.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.HJCQ6I3S.js";import"./chunk.ZBXOX3W3.js";import"./chunk.5AT4O4BN.js";import"./chunk.YRQZZH5V.js";import"./chunk.HONUT6OG.js";import"./chunk.X53HI436.js";import"./chunk.COTG2IG5.js";import"./chunk.YCA7P5MK.js";import"./chunk.VPPUTA74.js";import"./chunk.UT6642FC.js";import"./chunk.3G5MQFZK.js";import"./chunk.2CLPRG3I.js";import"./chunk.O42YET3W.js";import"./chunk.Z5V23DQN.js";import"./chunk.OHE5AMHH.js";import{s as k}from"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.WVUJXDXZ.js";import"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import{F as V,I as v,M as y,U as w,W as b}from"./chunk.Z56B2JR2.js";import{Hb as u,V as g}from"./chunk.HLLWKSZB.js";import{b as p}from"./chunk.AJZBJBMO.js";var i=p(V(),1);var e=p(y(),1);function q({page:a=!1,go:C,onPick:m,onDiscard:G}){let{store:o,seatTalk:s}=w(),d=v(s),K=D(),c=C??K,{keep:N}=x(c),[T,l]=(0,i.useState)(!1);b();let t=d.draft;if((0,i.useEffect)(()=>l(!1),[t]),(0,i.useEffect)(()=>{a||S(!1)},[a]),!t)return null;let L=h(t.drawn),B=o.schema.tryDefinition(t.kind),I=o.graph.nodesOfKind(t.kind).filter(n=>g(B,n)),P=()=>{s.setDraft(null),G?.()};return(0,e.jsxs)("section",{"data-testid":"draft-frame","aria-label":`Draft: ${t.title}`,style:a?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:0,zIndex:u("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-ground, var(--graview-panel))",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...z,...a?{}:{padding:"10px 16px"}},children:[a?(0,e.jsx)("span",{children:"Draft"}):(0,e.jsxs)("span",{children:["Draft \u2014 ",(0,e.jsx)("span",{"data-testid":"draft-title",style:{color:"var(--graview-ink)",fontWeight:600},children:t.title})]}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-keep",disabled:T,title:`Keep \u201C${t.title}\u201D as a lens: a place of its own`,onClick:()=>{l(!0),N(t).finally(()=>l(!1))},style:f,children:"Keep as a lens"}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-discard",onClick:P,style:f,children:"Discard"})]}),d.draftNote?(0,e.jsx)("p",{"data-testid":"draft-note",role:"status",style:{margin:0,padding:a?0:"0 16px 8px",fontSize:"0.8125rem",color:"var(--graview-warn)"},children:d.draftNote}):(0,e.jsx)("span",{}),(0,e.jsx)("div",{"data-testid":"draft-lens","data-graview-draft":t.lens.name,style:a?{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",scrollbarGutter:"stable",border:"1px solid var(--graview-edge)",borderRadius:12,background:"var(--graview-panel)"}:{minHeight:0,overflow:"auto",scrollbarGutter:"stable",display:"grid",gridTemplateRows:"minmax(0, 1fr)"},onClick:n=>{let r=n.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!r||!o.graph.getNode(r))return;n.preventDefault();let R=o.graph.getNode(r);m?(s.setDraft(null),m(r)):c({to:"record",id:r,kind:R.kind,label:r,address:"",said:""})},children:(0,e.jsx)(k,{kind:t.kind,view:t.title,children:(0,e.jsx)(L,{nodes:I,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})]})}var z={margin:0,display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 8px",fontSize:"0.875rem",color:"var(--graview-ink-muted)",borderBottom:"1px solid var(--graview-edge)",paddingBottom:8};export{q as DraftFrame};
@@ -1,4 +1,4 @@
1
- import{a as Y}from"./chunk.4R7LDCDO.js";import"./chunk.TMPV4HLQ.js";import{a as E,c as H,e as V,f as _}from"./chunk.7QTBDACG.js";import"./chunk.5BN2ARQ2.js";import"./chunk.4W24TPMR.js";import"./chunk.AHDOKM4O.js";import"./chunk.6R4EI47C.js";import"./chunk.6LJ66MB7.js";import{D as W,c as M,da as w,va as G,ya as B}from"./chunk.OYULDOQP.js";import{P as L,S as O,W as T}from"./chunk.VMEX2KZ4.js";import{a as U,b as k}from"./chunk.MRK6QJV5.js";import{b as y}from"./chunk.AJZBJBMO.js";function A(t){return{minHeight:24,padding:"3px 10px",borderRadius:6,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:t?"transparent":"var(--graview-edge)",color:t?"var(--graview-ink)":"var(--graview-ink-muted)",fontWeight:t?600:400,background:t?"color-mix(in srgb, var(--graview-accent) 16%, transparent)":"transparent"}}var P=y(k(),1);function j(){let{seats:t,principal:r,takeSeat:i}=w();return t.length<2?null:(0,P.jsxs)("div",{role:"group","aria-label":"Seat","data-testid":"seats",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6,rowGap:4},children:[(0,P.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"As"}),t.map(a=>{let l=q(r,a.principal);return(0,P.jsx)("button",{type:"button","aria-pressed":l,"data-testid":`seat-${a.principal.id??a.label}`,title:`Sit down as ${a.label}: the acts, the kinds and the pages narrow to what this seat may do`,onClick:()=>i(a.principal),style:{...A(l),whiteSpace:"nowrap"},children:a.label},a.principal.id??a.label)})]})}function q(t,r){return t.kind===r.kind&&t.id===r.id}var z=y(U(),1),o=y(k(),1),J=`
1
+ import{a as Y}from"./chunk.VNBO2RXD.js";import{a as E,c as H,e as V,f as _}from"./chunk.N4FBDA2W.js";import"./chunk.VPPUTA74.js";import"./chunk.UT6642FC.js";import"./chunk.3G5MQFZK.js";import"./chunk.2CLPRG3I.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import{F as U,M as k,U as w,c as M,la as G,oa as B,x as W}from"./chunk.Z56B2JR2.js";import{$ as T,W as L,Y as O}from"./chunk.HLLWKSZB.js";import{b as y}from"./chunk.AJZBJBMO.js";function A(t){return{minHeight:24,padding:"3px 10px",borderRadius:6,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:t?"transparent":"var(--graview-edge)",color:t?"var(--graview-ink)":"var(--graview-ink-muted)",fontWeight:t?600:400,background:t?"color-mix(in srgb, var(--graview-accent) 16%, transparent)":"transparent"}}var P=y(k(),1);function j(){let{seats:t,principal:r,takeSeat:i}=w();return t.length<2?null:(0,P.jsxs)("div",{role:"group","aria-label":"Seat","data-testid":"seats",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6,rowGap:4},children:[(0,P.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"As"}),t.map(a=>{let l=q(r,a.principal);return(0,P.jsx)("button",{type:"button","aria-pressed":l,"data-testid":`seat-${a.principal.id??a.label}`,title:`Sit down as ${a.label}: the acts, the kinds and the pages narrow to what this seat may do`,onClick:()=>i(a.principal),style:{...A(l),whiteSpace:"nowrap"},children:a.label},a.principal.id??a.label)})]})}function q(t,r){return t.kind===r.kind&&t.id===r.id}var z=y(U(),1),o=y(k(),1),J=`
2
2
  .graview-here{display:flex;flex:none}
3
3
  .graview-here>button{display:inline-flex;align-items:center;gap:4px;height:30px;margin:0;padding:0 4px;border:1px solid transparent;border-radius:8px;background:none;box-shadow:none;font:inherit;font-size:.75rem;color:var(--graview-ink-muted);cursor:pointer}
4
4
  .graview-here-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:24px;height:24px;border-radius:50%;border:1.5px solid hsl(var(--graview-hue) 50% 48%);background:var(--graview-panel-muted);color:var(--graview-ink);font-size:.75rem;font-weight:600;box-shadow:0 0 0 2px var(--graview-bar)}
@@ -6,4 +6,4 @@ import{a as Y}from"./chunk.4R7LDCDO.js";import"./chunk.TMPV4HLQ.js";import{a as
6
6
  .graview-here-mark[data-agent]{border-radius:5px}
7
7
  .graview-here-mark[data-counted]{--graview-hue:0;border-color:var(--graview-edge)}
8
8
  .graview-here small{display:block;font-size:.75rem;color:var(--graview-ink-muted)}
9
- .graview-bar[data-finding] .graview-here{display:none}`,Q={position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)"};function X(t,r){let i=r.id===void 0?null:`${r.kind}:${r.id}`,a=new Map;for(let l of t.values()){let d=l.participant.slice(0,l.participant.lastIndexOf(":"));if(d===i)continue;let s=d.endsWith(":")?l.participant:d,h=a.get(s);(!h||h.at<l.at)&&a.set(s,l)}return[...a.values()]}var D=t=>t.name&&t.onBehalfOfName?`${t.name}, for ${t.onBehalfOfName}`:t.name??"",K=t=>t===1?"1 viewer":`${t} viewers`;function Z(t){let r=t.map(D).filter(Boolean),i=r.length<t.length?[...r,K(t.length-r.length)]:r,a=i.pop();return`${i.length>0?`${i.join(", ")} and ${a}`:a} ${t.length===1?"is":"are"} here`}function ee(t,r){let{store:i,hidden:a,pictures:l}=r,d=M(t),s=i.kindsKeptFrom(r.principal),h=p=>!a.has(p)&&!s.has(p)&&!i.modules.disabledKinds.has(p),u=l.find(p=>p.as===d.within?.view&&h(p.kind));if(u)return u.title;if(!d.focusId)return d.overview?"the whole thing":null;let g=W(d.focusId);if(g.length>0)return g.every(h)?g.map(p=>T(i.schema,p)).join(" and "):null;let m=i.graph.getNode(d.focusId);return m&&h(m.kind)?L(i.schema.tryDefinition(m.kind),m):null}function te({scene:t,compact:r}){let{who:i,principal:a,store:l,views:d,hiddenKinds:s,follow:h}=w(),u=B("here"),g=X(i,a),m=g.length===0?"":Z(g),[p,N]=(0,z.useState)("");if((0,z.useEffect)(()=>N(m),[m]),g.length===0)return null;let S=g.filter(c=>c.name),f=S.slice(0,r?2:3),v=g.length-f.length,b=g.length-S.length,n=d.places();return(0,o.jsxs)("div",{className:"graview-here","data-testid":"here",children:[(0,o.jsx)("style",{children:J}),(0,o.jsx)("span",{role:"status","aria-live":"polite",style:Q,children:p}),(0,o.jsxs)("button",{type:"button","data-testid":"here-open",...u.trigger,onClick:u.toggle,"aria-label":`${m} \u2014 who and where`,title:m,children:[f.length>0?(0,o.jsx)("span",{style:{display:"flex"},children:f.map(c=>(0,o.jsx)(R,{one:c},c.participant))}):(0,o.jsx)(R,{count:v}),f.length>0&&v>0?(0,o.jsxs)("span",{"aria-hidden":"true",children:["+",v]}):null]}),(0,o.jsxs)("ul",{...u.pane,"aria-label":"Who is here","data-testid":"here-list",hidden:!u.open,className:"graview-bar-list",style:G,children:[S.map(c=>{let x=ee(c.stop,{store:l,principal:a,hidden:s,pictures:n}),I=D(c);return(0,o.jsx)("li",{children:(0,o.jsxs)(t?"button":"span",{className:"graview-bar-item","data-testid":"here-one",...t?{type:"button",title:`Go where ${I} is`,onClick:()=>{u.setOpen(!1),h(c.participant)}}:{style:{cursor:"default"}},children:[(0,o.jsx)(R,{one:c}),(0,o.jsxs)("span",{children:[I,x?(0,o.jsxs)("small",{children:["On ",x]}):null]})]})},c.participant)}),b>0?(0,o.jsx)("li",{children:(0,o.jsxs)("span",{className:"graview-bar-item","data-testid":"here-viewers",style:{cursor:"default"},children:[(0,o.jsx)(R,{count:b}),(0,o.jsxs)("span",{children:[K(b),(0,o.jsx)("small",{children:"Not signed in"})]})]})}):null]})]})}function R({one:t,count:r}){return(0,o.jsx)("span",{className:"graview-here-mark","aria-hidden":"true",...t?{style:{"--graview-hue":Math.round(t.hue)}}:{"data-counted":""},...t?.kind==="agent"?{"data-agent":""}:{},children:t?(t.name??"").trim().charAt(0).toUpperCase():r})}var e=y(k(),1);function ye({violations:t,pick:r}){let{store:i,brand:a,setMenuAt:l}=w(),d=E(i,t);return(0,e.jsx)(e.Fragment,{children:d.map((s,h)=>{let u=_(s),g=s.repairs.length>0?`${s.repairs.length} ${s.repairs.length===1?"way":"ways"} to fix`:"";return(0,e.jsx)("li",{style:{borderTop:h===0?"none":"1px solid var(--graview-edge)"},children:(0,e.jsxs)("button",{type:"button",onClick:m=>{let p=m.currentTarget.closest("ol").getBoundingClientRect();r(s),l({x:p.left,y:p.top,on:s.subjectId})},...H(s)!==void 0?{title:H(s)}:{},style:{width:"100%",textAlign:"left",fontSize:"0.8125rem",lineHeight:1.4,padding:"7px 8px",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7},children:[s.line?(0,e.jsx)(V,{line:s.line,schema:i.schema,...a?{brand:a}:{},stacked:!0,style:{display:"block",color:"var(--graview-ink)"}}):(0,e.jsx)("span",{style:{display:"block",color:"var(--graview-ink)"},children:s.message}),u||g?(0,e.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:[u,g].filter(Boolean).join(" \xB7 ")}):null]})},`${s.invariant}:${h}`)})})}function we({name:t,me:r,scheme:i,onScheme:a,profileHref:l,hostActions:d,close:s,part:h,signature:u=!1}){let{principal:g,seats:m,settings:p,settingValues:N,chooseSetting:S,sharing:f}=w(),v=g.roles??[],b={setOpen:n=>s()};return(0,e.jsx)(e.Fragment,{children:h==="top"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{style:{display:"grid",gap:3},children:[(0,e.jsx)("span",{style:C,children:"Signed in as"}),(0,e.jsx)("strong",{style:{fontSize:"1rem",fontWeight:550},children:t}),(0,e.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:v.length>0?v.map(n=>O(n)).join(", "):r===void 0?"This app has no sign-in; everything here is yours.":"No role in particular"}),r!==void 0&&l!==void 0?(0,e.jsx)("a",{href:l(r.id),"data-testid":"profile-record",style:{display:"inline-flex",alignItems:"center",minHeight:24,justifySelf:"start",fontSize:"0.875rem",color:"var(--graview-accent)"},children:"Your record \u2197"}):null,f?(0,e.jsxs)("span",{"data-testid":"profile-seen-as",style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Seen by others as ",f.name]}):null]}),d.length>0?(0,e.jsx)("ul",{role:"list","aria-label":"From the host","data-testid":"host-actions",style:{...$,margin:0,paddingLeft:0,listStyle:"none",display:"grid",gap:2},children:d.map(n=>(0,e.jsx)("li",{children:n.href!==void 0?(0,e.jsx)("a",{href:n.href,"data-testid":"host-action",className:"graview-host-action",...n.target?{target:n.target,rel:"noopener"}:{},onClick:()=>{n.onSelect?.(),b.setOpen(!1)},style:F,children:n.label}):(0,e.jsx)("button",{type:"button","data-testid":"host-action",className:"graview-host-action",onClick:()=>{b.setOpen(!1),n.onSelect?.()},style:{...F,width:"100%",textAlign:"left",border:"none",background:"none",boxShadow:"none",font:"inherit",cursor:"pointer"},children:n.label})},n.label))}):null]}):(0,e.jsxs)(e.Fragment,{children:[m.length>1?(0,e.jsxs)("div",{style:{display:"grid",gap:6,...$},children:[(0,e.jsx)("span",{style:C,children:"Sit as somebody else"}),(0,e.jsx)(j,{})]}):null,p.length>0?(0,e.jsx)("div",{style:{display:"grid",gap:10,...$},children:p.map(n=>(0,e.jsxs)("fieldset",{"data-testid":`setting-${n.name}`,style:{border:0,margin:0,padding:0,display:"grid",gap:5},children:[(0,e.jsx)("legend",{style:{...C,padding:0},children:n.title}),n.description?(0,e.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:n.description}):null,(0,e.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:n.options.map(c=>{let x=(N[n.name]??n.initial)===c.value;return(0,e.jsx)("button",{type:"button","aria-pressed":x,"data-testid":`setting-${n.name}-${c.value}`,onClick:()=>S(n.name,c.value),style:A(x),children:c.label},c.value)})})]},n.name))}):null,i!==void 0&&a!==void 0?(0,e.jsxs)("div",{style:{display:"grid",gap:5,...$},children:[(0,e.jsx)("span",{style:C,children:"Scheme"}),(0,e.jsx)("div",{style:{display:"flex",gap:4},children:["light","dark"].map(n=>(0,e.jsx)("button",{type:"button","aria-pressed":i===n,"data-testid":`profile-scheme-${n}`,onClick:()=>a(n),style:A(i===n),children:n==="light"?"\u2600 Light":"\u263E Dark"},n))})]}):null,u?(0,e.jsxs)("p",{"data-testid":"graview-signature",style:{...$,margin:0,display:"flex",alignItems:"center",gap:6,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["Built with",(0,e.jsxs)("a",{href:"https://graview.dev",target:"_blank",rel:"noopener",style:{display:"inline-flex",alignItems:"center",gap:4,minHeight:24,color:"var(--graview-ink-muted)",fontWeight:600,textDecoration:"none"},children:[(0,e.jsx)("span",{"data-testid":"graview-mark",style:{display:"inline-flex",lineHeight:0},dangerouslySetInnerHTML:{__html:ne}}),"Graview"]})]}):null]})})}var ne='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="14" height="14" aria-hidden="true" focusable="false"><g fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"><path d="M13 11 L3 8 L14 3 H29 L21 9"/><path d="M10 18 L3 23 L16.5 28 L29 21 L22 19"/><path d="M16.5 18.5 V23.5" stroke-linecap="round"/></g><circle cx="16.5" cy="13.5" r="2" fill="var(--graview-mark-point, currentColor)"/></svg>',F={display:"flex",alignItems:"center",minHeight:28,padding:"2px 8px",borderRadius:7,fontSize:"0.875rem",color:"var(--graview-ink)",textDecoration:"none"},C={fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},$={paddingTop:10,borderTop:"1px solid var(--graview-edge)"};export{Y as ActivityRail,te as Here,ye as ProblemRows,we as ProfilePane};
9
+ .graview-bar[data-finding] .graview-here{display:none}`,Q={position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)"};function X(t,r){let i=r.id===void 0?null:`${r.kind}:${r.id}`,a=new Map;for(let l of t.values()){let d=l.participant.slice(0,l.participant.lastIndexOf(":"));if(d===i)continue;let s=d.endsWith(":")?l.participant:d,h=a.get(s);(!h||h.at<l.at)&&a.set(s,l)}return[...a.values()]}var D=t=>t.name&&t.onBehalfOfName?`${t.name}, for ${t.onBehalfOfName}`:t.name??"",K=t=>t===1?"1 viewer":`${t} viewers`;function Z(t){let r=t.map(D).filter(Boolean),i=r.length<t.length?[...r,K(t.length-r.length)]:r,a=i.pop();return`${i.length>0?`${i.join(", ")} and ${a}`:a} ${t.length===1?"is":"are"} here`}function ee(t,r){let{store:i,hidden:a,pictures:l}=r,d=M(t),s=i.kindsKeptFrom(r.principal),h=p=>!a.has(p)&&!s.has(p)&&!i.modules.disabledKinds.has(p),u=l.find(p=>p.as===d.within?.view&&h(p.kind));if(u)return u.title;if(!d.focusId)return d.overview?"the whole thing":null;let g=W(d.focusId);if(g.length>0)return g.every(h)?g.map(p=>T(i.schema,p)).join(" and "):null;let m=i.graph.getNode(d.focusId);return m&&h(m.kind)?L(i.schema.tryDefinition(m.kind),m):null}function te({scene:t,compact:r}){let{who:i,principal:a,store:l,views:d,hiddenKinds:s,follow:h}=w(),u=B("here"),g=X(i,a),m=g.length===0?"":Z(g),[p,N]=(0,z.useState)("");if((0,z.useEffect)(()=>N(m),[m]),g.length===0)return null;let S=g.filter(c=>c.name),f=S.slice(0,r?2:3),v=g.length-f.length,b=g.length-S.length,n=d.places();return(0,o.jsxs)("div",{className:"graview-here","data-testid":"here",children:[(0,o.jsx)("style",{children:J}),(0,o.jsx)("span",{role:"status","aria-live":"polite",style:Q,children:p}),(0,o.jsxs)("button",{type:"button","data-testid":"here-open",...u.trigger,onClick:u.toggle,"aria-label":`${m} \u2014 who and where`,title:m,children:[f.length>0?(0,o.jsx)("span",{style:{display:"flex"},children:f.map(c=>(0,o.jsx)(R,{one:c},c.participant))}):(0,o.jsx)(R,{count:v}),f.length>0&&v>0?(0,o.jsxs)("span",{"aria-hidden":"true",children:["+",v]}):null]}),(0,o.jsxs)("ul",{...u.pane,"aria-label":"Who is here","data-testid":"here-list",hidden:!u.open,className:"graview-bar-list",style:G,children:[S.map(c=>{let x=ee(c.stop,{store:l,principal:a,hidden:s,pictures:n}),I=D(c);return(0,o.jsx)("li",{children:(0,o.jsxs)(t?"button":"span",{className:"graview-bar-item","data-testid":"here-one",...t?{type:"button",title:`Go where ${I} is`,onClick:()=>{u.setOpen(!1),h(c.participant)}}:{style:{cursor:"default"}},children:[(0,o.jsx)(R,{one:c}),(0,o.jsxs)("span",{children:[I,x?(0,o.jsxs)("small",{children:["On ",x]}):null]})]})},c.participant)}),b>0?(0,o.jsx)("li",{children:(0,o.jsxs)("span",{className:"graview-bar-item","data-testid":"here-viewers",style:{cursor:"default"},children:[(0,o.jsx)(R,{count:b}),(0,o.jsxs)("span",{children:[K(b),(0,o.jsx)("small",{children:"Not signed in"})]})]})}):null]})]})}function R({one:t,count:r}){return(0,o.jsx)("span",{className:"graview-here-mark","aria-hidden":"true",...t?{style:{"--graview-hue":Math.round(t.hue)}}:{"data-counted":""},...t?.kind==="agent"?{"data-agent":""}:{},children:t?(t.name??"").trim().charAt(0).toUpperCase():r})}var e=y(k(),1);function we({violations:t,pick:r}){let{store:i,brand:a,setMenuAt:l}=w(),d=E(i,t);return(0,e.jsx)(e.Fragment,{children:d.map((s,h)=>{let u=_(s),g=s.repairs.length>0?`${s.repairs.length} ${s.repairs.length===1?"way":"ways"} to fix`:"";return(0,e.jsx)("li",{style:{borderTop:h===0?"none":"1px solid var(--graview-edge)"},children:(0,e.jsxs)("button",{type:"button",onClick:m=>{let p=m.currentTarget.closest("ol").getBoundingClientRect();r(s),l({x:p.left,y:p.top,on:s.subjectId})},...H(s)!==void 0?{title:H(s)}:{},style:{width:"100%",textAlign:"left",fontSize:"0.8125rem",lineHeight:1.4,padding:"7px 8px",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7},children:[s.line?(0,e.jsx)(V,{line:s.line,schema:i.schema,...a?{brand:a}:{},stacked:!0,style:{display:"block",color:"var(--graview-ink)"}}):(0,e.jsx)("span",{style:{display:"block",color:"var(--graview-ink)"},children:s.message}),u||g?(0,e.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:[u,g].filter(Boolean).join(" \xB7 ")}):null]})},`${s.invariant}:${h}`)})})}function ve({name:t,me:r,scheme:i,onScheme:a,profileHref:l,hostActions:d,close:s,part:h,signature:u=!1}){let{principal:g,seats:m,settings:p,settingValues:N,chooseSetting:S,sharing:f}=w(),v=g.roles??[],b={setOpen:n=>s()};return(0,e.jsx)(e.Fragment,{children:h==="top"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{style:{display:"grid",gap:3},children:[(0,e.jsx)("span",{style:C,children:"Signed in as"}),(0,e.jsx)("strong",{style:{fontSize:"1rem",fontWeight:550},children:t}),(0,e.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:v.length>0?v.map(n=>O(n)).join(", "):r===void 0?"This app has no sign-in; everything here is yours.":"No role in particular"}),r!==void 0&&l!==void 0?(0,e.jsx)("a",{href:l(r.id),"data-testid":"profile-record",style:{display:"inline-flex",alignItems:"center",minHeight:24,justifySelf:"start",fontSize:"0.875rem",color:"var(--graview-accent)"},children:"Your record \u2197"}):null,f?(0,e.jsxs)("span",{"data-testid":"profile-seen-as",style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Seen by others as ",f.name]}):null]}),d.length>0?(0,e.jsx)("ul",{role:"list","aria-label":"From the host","data-testid":"host-actions",style:{...$,margin:0,paddingLeft:0,listStyle:"none",display:"grid",gap:2},children:d.map(n=>(0,e.jsx)("li",{children:n.href!==void 0?(0,e.jsx)("a",{href:n.href,"data-testid":"host-action",className:"graview-host-action",...n.target?{target:n.target,rel:"noopener"}:{},onClick:()=>{n.onSelect?.(),b.setOpen(!1)},style:F,children:n.label}):(0,e.jsx)("button",{type:"button","data-testid":"host-action",className:"graview-host-action",onClick:()=>{b.setOpen(!1),n.onSelect?.()},style:{...F,width:"100%",textAlign:"left",border:"none",background:"none",boxShadow:"none",font:"inherit",cursor:"pointer"},children:n.label})},n.label))}):null]}):(0,e.jsxs)(e.Fragment,{children:[m.length>1?(0,e.jsxs)("div",{style:{display:"grid",gap:6,...$},children:[(0,e.jsx)("span",{style:C,children:"Sit as somebody else"}),(0,e.jsx)(j,{})]}):null,p.length>0?(0,e.jsx)("div",{style:{display:"grid",gap:10,...$},children:p.map(n=>(0,e.jsxs)("fieldset",{"data-testid":`setting-${n.name}`,style:{border:0,margin:0,padding:0,display:"grid",gap:5},children:[(0,e.jsx)("legend",{style:{...C,padding:0},children:n.title}),n.description?(0,e.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:n.description}):null,(0,e.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:n.options.map(c=>{let x=(N[n.name]??n.initial)===c.value;return(0,e.jsx)("button",{type:"button","aria-pressed":x,"data-testid":`setting-${n.name}-${c.value}`,onClick:()=>S(n.name,c.value),style:A(x),children:c.label},c.value)})})]},n.name))}):null,i!==void 0&&a!==void 0?(0,e.jsxs)("div",{style:{display:"grid",gap:5,...$},children:[(0,e.jsx)("span",{style:C,children:"Scheme"}),(0,e.jsx)("div",{style:{display:"flex",gap:4},children:["light","dark"].map(n=>(0,e.jsx)("button",{type:"button","aria-pressed":i===n,"data-testid":`profile-scheme-${n}`,onClick:()=>a(n),style:A(i===n),children:n==="light"?"\u2600 Light":"\u263E Dark"},n))})]}):null,u?(0,e.jsxs)("p",{"data-testid":"graview-signature",style:{...$,margin:0,display:"flex",alignItems:"center",gap:6,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["Built with",(0,e.jsxs)("a",{href:"https://graview.dev",target:"_blank",rel:"noopener",style:{display:"inline-flex",alignItems:"center",gap:4,minHeight:24,color:"var(--graview-ink-muted)",fontWeight:600,textDecoration:"none"},children:[(0,e.jsx)("span",{"data-testid":"graview-mark",style:{display:"inline-flex",lineHeight:0},dangerouslySetInnerHTML:{__html:ne}}),"Graview"]})]}):null]})})}var ne='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="14" height="14" aria-hidden="true" focusable="false"><g fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"><path d="M13 11 L3 8 L14 3 H29 L21 9"/><path d="M10 18 L3 23 L16.5 28 L29 21 L22 19"/><path d="M16.5 18.5 V23.5" stroke-linecap="round"/></g><circle cx="16.5" cy="13.5" r="2" fill="var(--graview-mark-point, currentColor)"/></svg>',F={display:"flex",alignItems:"center",minHeight:28,padding:"2px 8px",borderRadius:7,fontSize:"0.875rem",color:"var(--graview-ink)",textDecoration:"none"},C={fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},$={paddingTop:10,borderTop:"1px solid var(--graview-edge)"};export{Y as ActivityRail,te as Here,we as ProblemRows,ve as ProfilePane};
@@ -0,0 +1 @@
1
+ import{a as ne,b as ie,c as oe,d as re}from"./chunk.64P76WK4.js";import{a as te}from"./chunk.WLRTPFAC.js";import"./chunk.XXHNV24G.js";import"./chunk.RWGLKDWH.js";import"./chunk.GZH6PTXN.js";import"./chunk.XAXJHEMD.js";import{j as X,k as J}from"./chunk.WKXNBHTL.js";import"./chunk.OWE6OJ4P.js";import"./chunk.3JM2TNDD.js";import"./chunk.QNHECGMH.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.HJCQ6I3S.js";import"./chunk.ZBXOX3W3.js";import"./chunk.5AT4O4BN.js";import{a as ee}from"./chunk.G4JJXA63.js";import"./chunk.YRQZZH5V.js";import"./chunk.HONUT6OG.js";import"./chunk.X53HI436.js";import"./chunk.COTG2IG5.js";import"./chunk.YCA7P5MK.js";import{a as q,d as B}from"./chunk.N4FBDA2W.js";import{a as Q}from"./chunk.VPPUTA74.js";import"./chunk.UT6642FC.js";import"./chunk.3G5MQFZK.js";import"./chunk.2CLPRG3I.js";import"./chunk.OHE5AMHH.js";import"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import{g as G}from"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import{h as Z}from"./chunk.GS4T26WW.js";import{F as ye,I as U,M as K,U as C,ha as V,j as F,m as _,n as Y}from"./chunk.Z56B2JR2.js";import{W as j,Z as P,Zb as z,_ as T,ba as N,ca as W}from"./chunk.HLLWKSZB.js";import{b as O}from"./chunk.AJZBJBMO.js";var M=3;function ae(e,n){return n.id?e.graph.getNode(n.id):void 0}function le(e){return e?/^(?:kind|aggregate):([^:]+)$/.exec(e)?.[1]:void 0}function de(e,n){if(n)return e.find(t=>t.nodeIds.includes(n)||t.subjectId===n)}var me=e=>{let n=e.trim();if(!n)return n;let t=n.charAt(0).toUpperCase()+n.slice(1);return/[.!?…]$/.test(t)?t:`${t}.`};function ce({store:e,subject:n,violations:t,place:i}){let s=ae(e,n),o=de(t,s?.id??null);if(o)return me(o.message);if(s){let l=s.kind;return`${j(e.schema.tryDefinition(l),s)}, ${N(W(e.schema.tryDefinition(l),l))}.`}let c=i?.kind??le(n.id);if(c){let l=e.graph.nodesOfKind(c).length,g=i?.title??n.name,u=T(e.schema,c),f=P(e.schema,c,l);return g.toLowerCase()===u.toLowerCase()?`${l===1?"There is":"There are"} ${f} here.`:`${g}: ${f}.`}let a=e.schema.kinds.map(l=>({kind:l,count:e.graph.nodesOfKind(l).length})).filter(l=>l.count>0).sort((l,g)=>g.count-l.count).slice(0,3);if(a.length===0)return"Nothing here yet.";let r=a.map(l=>P(e.schema,l.kind,l.count));return`The whole thing: ${r.length===1?r[0]:`${r.slice(0,-1).join(", ")} and ${r[r.length-1]}`}.`}function ue(e){let{store:n,subject:t,violations:i}=e,s=ae(n,t),o=[];s&&de(i,s.id)?o.push({ask:`What's wrong with ${t.name}?`,why:"problem"}):i.length>0&&o.push({ask:"What needs attention?",why:"problem"});let c=s?s.kind:e.place?.kind??le(t.id),a=ke(e,c);if(a)o.push(a);else{let l=be(e,c);l&&o.push(l)}let r=we(e,c);return r&&o.push(r),o.length<M&&(s?o.push({ask:`Tell me about ${t.name}`,why:"about"}):o.push({ask:"What is here?",why:"here"})),o.slice(0,M)}function pe(e,n){return e.schema.tryDefinition(n)?.fields?.shape??{}}function Se(e){let n=e;for(let t=0;t<4&&n;t++){let i=n;if(Array.isArray(i.options)&&i.options.every(s=>typeof s=="string"))return i.options;n=typeof i.unwrap=="function"?i.unwrap():i._def?.innerType}}var se=/^\d{4}-\d{2}-\d{2}/,ve=["due","deadline","date","when"];function ke(e,n){let{store:t}=e,i=e.today;if(!i||!se.test(i))return;let s=new Date(`${i.slice(0,10)}T00:00:00Z`);s.setUTCDate(s.getUTCDate()+6);let o=s.toISOString().slice(0,10),c=[...new Set([...n?[n]:[],...t.schema.kinds])];for(let a of c){let r=ve.find(u=>u in pe(t,a));if(!r||!t.graph.nodesOfKind(a).some(u=>{let f=u[r],S=u.done;return typeof f=="string"&&se.test(f)&&f.slice(0,10)>=i.slice(0,10)&&f.slice(0,10)<=o&&S!==!0}))continue;let g=T(t.schema,a);return{ask:`${ee(g)} due this week`,why:"due"}}}function be(e,n){let t=e.place?.title,i=(e.places??[]).find(s=>s.kind!==null&&s.picture===!0&&s.title!==t&&s.kind!==n);return i?{ask:`Go to ${i.title}`,why:"go"}:void 0}function we(e,n){let{store:t}=e,i=[...t.schema.kinds].sort((o,c)=>t.graph.nodesOfKind(c).length-t.graph.nodesOfKind(o).length),s=[...new Set([...n?[n]:[],...i])];for(let o of s){if(t.graph.nodesOfKind(o).length<2)continue;let c=pe(t,o),a=Object.keys(c).find(g=>(Se(c[g])?.length??0)>=2);if(!a)continue;let r=T(t.schema,o).toLowerCase(),l=a.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").toLowerCase();return{ask:`Show ${r} as a board by ${l}`,why:"draw"}}}function ge(e,{store:n,subject:t}){let i=a=>t.id!==null&&(a.nodeIds.includes(t.id)||Object.values(a.args).includes(t.id)),s=e.filter(a=>a.provider==="invariant"&&i(a)),o=e.filter(a=>a.pinned==="user"&&!s.includes(a));return[...s,...o].sort((a,r)=>Number(a.destructive??!1)-Number(r.destructive??!1)).slice(0,M).map(a=>({affordance:a,label:xe(a,{store:n,subject:t})}))}var Ae=e=>/^[a-z0-9]+(?:[-_][a-z0-9]+)+$|^[a-z]+[A-Z][A-Za-z0-9]*$/.test(e);function xe(e,{store:n,subject:t}){let i=e.label,s=Ae(i)||i===e.mutation;if(s){let r=i.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").toLowerCase();i=r.charAt(0).toUpperCase()+r.slice(1)}let o=t.id?n.graph.getNode(t.id):void 0,c=o!==void 0&&e.nodeIds.length<=1&&(e.nodeIds[0]??o.id)===o.id;if(c&&/\bit\b/.test(i))return i.replace(/\bit\b/,t.name);let a=n.allMutations().find(r=>r.name===e.mutation);if(e.open.length===0&&a?.describe&&(s||c))try{let r=a.describe(e.args,n.graph);if(r.trim())return r.trim()}catch{}return i}var y=O(ye(),1);var p=O(K(),1);function Ye({phone:e,side:n,name:t,onClose:i,respond:s,onCall:o,onPick:c,onMove:a,place:r,onDraft:l}){let{seatTalk:g}=C(),u=U(g),f=Te(c),S=[...u.turns].reverse().find(h=>h.role==="seat"),m=e&&u.draft!==null,b=(0,y.useRef)(null),w=(0,y.useRef)(!0);return(0,y.useLayoutEffect)(()=>{let h=b.current;if(!h)return;let A=m?[...h.querySelectorAll("ol > li")].pop():void 0;if(A){let v=A.getBoundingClientRect().top-h.getBoundingClientRect().top+h.scrollTop;h.style.maxHeight=`min(${Math.ceil(h.scrollHeight-v)}px, ${fe})`}let k=w.current?he.get(g):void 0;w.current=!1,h.scrollTop=k&&k.turns===u.turns.length&&!u.busy?k.top:h.scrollHeight},[u.turns.length,u.busy,m]),(0,p.jsxs)("div",{"data-testid":"seat-panel",...m?{"data-graview-seat-yields":""}:{},style:{display:"grid",gridTemplateRows:"auto minmax(0, 1fr)",gap:4,minHeight:0},children:[(0,p.jsxs)("div",{"data-testid":"seat-top",...e?{onPointerDown:h=>Le(h,i)}:{},style:{display:"flex",alignItems:"center",justifyContent:e?"center":"flex-end",gap:2,position:"relative",minHeight:28,...e?{touchAction:"none"}:{}},children:[e?(0,p.jsx)("button",{type:"button","data-testid":"seat-grab","aria-label":`Close Ask ${t}`,title:"Close",onClick:i,style:{...E,width:64},children:(0,p.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:36,height:4,margin:"0 auto",borderRadius:2,background:"var(--graview-edge-strong, var(--graview-ink-faint))"}})}):(0,p.jsx)("button",{type:"button","data-testid":"seat-side","aria-label":n==="left"?"Move to the right":"Move to the left",title:n==="left"?"Move to the right":"Move to the left",onClick:()=>g.setSide(n==="left"?"right":"left"),style:E,children:(0,p.jsx)("span",{"aria-hidden":"true",children:"\u21C4"})}),(0,p.jsx)("button",{type:"button","data-testid":"seat-close","aria-label":`Close Ask ${t}`,title:"Close",onClick:i,style:e?{...E,position:"absolute",top:0,right:0}:E,children:(0,p.jsx)("span",{"aria-hidden":"true",children:"\u2715"})})]}),(0,p.jsx)("div",{ref:b,"data-testid":"seat-body",onScroll:h=>void he.set(g,{top:h.currentTarget.scrollTop,turns:u.turns.length}),style:{minHeight:0,maxHeight:m?fe:e?"calc(70cqh - 96px)":"min(520px, calc(100cqh - 112px))",overflowY:"auto",overflowX:"hidden",padding:"0 4px"},children:(0,p.jsx)(ie,{shared:!0,composer:!1,testId:"seat",onPick:f,...a?{onMove:a}:{},...r?{place:r}:{},...l?{onDraft:l}:{},empty:(0,p.jsx)(Ce,{...r?{here:r}:{}}),...s?{respond:s}:{},...o?{onCall:o}:{}})}),(0,p.jsx)("p",{"aria-live":"polite","data-testid":"seat-said",style:Z,children:u.busy?"":S?.text??""})]})}function Te(e){let{setView:n}=C();return(0,y.useCallback)(t=>e?e(t):n(i=>Y(F(_(i,!1),t),[t])),[e,n])}function Ce({here:e}){let{store:n,views:t,view:i,seatTalk:s}=C(),o=ne({hover:!1}),c=q(n,V()),a=(0,y.useMemo)(()=>c.map(d=>d.line?{...d,message:B(d)}:d),[c]),r=o.id?n.graph.getNode(o.id):void 0,l=e??i.within?.view,g=o.because==="place"&&o.id===null?t.places().find(d=>d.title===o.name):l?t.places().find(d=>d.as===l):void 0,u=n.today(),f={store:n,subject:{id:o.id,name:o.name},violations:a,place:g?{title:g.title,kind:g.kind}:null,places:z(t.places()).map(d=>({title:d.title,kind:d.kind,picture:!0})),...u?{today:u}:{}},S=ce(f),m=ue(f),b=(0,y.useMemo)(()=>({pins:te(),...r?{focus:r.id,about:[r.id]}:{}}),[r?.id]),{affordances:w}=X(b),h=r?ge(w,{store:n,subject:{id:o.id,name:o.name}}):[],{apply:A,preview:k}=J(),[v,$]=(0,y.useState)(null),[D,R]=(0,y.useState)(null),H=(d,x)=>{try{return k(d,x),A(d,x),R(null),!0}catch(I){return R(G(n.schema,n.allMutations(),I)),!1}};return(0,p.jsxs)("div",{"data-testid":"seat-here",style:{display:"grid",gap:10,padding:"2px 2px 6px"},children:[(0,p.jsx)("p",{"data-testid":"seat-where",style:{margin:0,fontSize:"0.9375rem",lineHeight:1.45,color:"var(--graview-ink)"},children:S}),h.length>0?(0,p.jsx)("ul",{"aria-label":"What you can do",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:6},children:h.map(({affordance:d,label:x})=>(0,p.jsx)("li",{children:(0,p.jsx)("button",{type:"button","data-testid":"seat-act","data-affordance":d.id,"aria-pressed":v?.id===d.id,title:d.why,onClick:()=>d.open.length>0?$(I=>I?.id===d.id?null:d):void H(d),style:{...oe,minHeight:30,textAlign:"start",...d.destructive?{color:"var(--graview-warn)"}:{}},children:x})},d.id))}):null,v?(0,p.jsx)(Q,{affordance:v,onApply:d=>{H(v,d)&&$(null)},onCancel:()=>$(null)}):null,D?(0,p.jsx)("p",{"data-testid":"seat-refused",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-warn)"},children:D}):null,m.length>0?(0,p.jsx)("ul",{"aria-label":"Things to ask",style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:2,justifyItems:"start"},children:m.map(d=>(0,p.jsx)("li",{children:(0,p.jsx)("button",{type:"button","data-testid":"seat-suggestion","data-graview-why":d.why,onClick:()=>s.ask(d.ask),style:re,children:d.ask})},d.ask))}):null]})}var fe="min(5.5em, 22cqh)",he=new WeakMap,L={far:64,flick:.5,least:16,tap:6};function Le(e,n){if(e.button!==0)return;let t=e.currentTarget,i=t.closest('[data-testid="seat"]');if(!i)return;let s=e.pointerId,o=e.clientY,c={y:o,at:e.timeStamp},a=0,r=0;try{t.setPointerCapture(s)}catch{}let l=u=>{if(u.pointerId!==s)return;r=Math.max(0,u.clientY-o);let f=u.timeStamp-c.at;f>0&&(a=(u.clientY-c.y)/f),c={y:u.clientY,at:u.timeStamp},i.style.transition="none",i.style.transform=r>0?`translateY(${r}px)`:""},g=u=>{if(u.pointerId!==s)return;t.removeEventListener("pointermove",l),t.removeEventListener("pointerup",g),t.removeEventListener("pointercancel",g);let f=u.type==="pointerup"&&(r>=L.far||r>=L.least&&a>=L.flick);if(i.style.transition=f?"":"transform 160ms ease-out",i.style.transform="",r>L.tap){let S=m=>{m.preventDefault(),m.stopPropagation()};t.addEventListener("click",S,{capture:!0,once:!0}),setTimeout(()=>t.removeEventListener("click",S,{capture:!0}),0)}f&&n()};t.addEventListener("pointermove",l),t.addEventListener("pointerup",g),t.addEventListener("pointercancel",g)}var E={display:"inline-grid",placeItems:"center",width:28,height:28,padding:0,font:"inherit",fontSize:"0.875rem",lineHeight:1,color:"var(--graview-ink-muted)",background:"transparent",border:"1px solid transparent",borderRadius:6,boxShadow:"none",cursor:"pointer"};export{Ye as SeatPanel,Te as useSeatGo};
@@ -0,0 +1 @@
1
+ function t(n){if(Array.isArray(n))return n.map(t);if(n&&typeof n=="object"){let r={};for(let o of Object.keys(n).sort()){let e=n[o];e!==void 0&&(r[o]=t(e))}return r}return n}function i(n){return JSON.stringify(t(n))??"undefined"}export{i as a};
@@ -0,0 +1 @@
1
+ import{g as o,l as u}from"./chunk.Z56B2JR2.js";function c(t,n,i){let e=r=>encodeURIComponent(r);return`${o}${e(t)}:${e(n)}:${e(i)}`}function S(t,n,i){let e=new Set(t.shown??[]);if(i?e.add(n):e.delete(n),e.size===0){let{shown:r,...w}=t;return w}return{...t,shown:[...e].sort()}}function l(t,n){if(n===null||n.trim().length===0){let{q:i,...e}=t;return e}return{...t,q:n}}function p(t){let n=t.q!==void 0&&t.within?.q===t.q;return l(n?u(t,"q",null):t,null)}function h(t,n){if(!n){let{past:i,...e}=t;return e}return{...t,past:!0}}function f(t,n){if(n===null||n.x===0&&n.y===0){let{pan:i,...e}=t;return e}return{...t,pan:n}}function d(t,n,i){let e={...t.pins};return i===null?delete e[n]:e[n]=i,{...t,pins:e}}export{c as a,S as b,l as c,p as d,h as e,f,d as g};
@@ -0,0 +1 @@
1
+ import{A as W}from"./chunk.GS4T26WW.js";import{F as H,a as A,b as T,c as v,d as f,e as x,ia as k,j as I,m as b,v as R}from"./chunk.Z56B2JR2.js";import{oc as s,uc as y,vc as r}from"./chunk.HLLWKSZB.js";import{b as B}from"./chunk.AJZBJBMO.js";var u=B(H(),1),L=e=>typeof e=="object"&&e!==null&&"idx"in e;function E(e){let n=r(window.location.pathname,e);return n===null?null:n!==s&&n!=="/"?"pages":n===s||window.location.href.includes("#")?f(window.location.hash).overview?"graview":"scene":L(window.history.state)?"pages":null}function J(e){let n=e.face??(e.stop&&v(e.stop).overview?"graview":"scene");return e.routing!=="address"||typeof window>"u"?n:E(e.basePath)??n}function K(e){return e.routing!=="address"||typeof window>"u"?!1:r(window.location.pathname,e.basePath)==="/"&&E(e.basePath)===null}function Q(e){if(typeof window>"u")return;let n=r(window.location.pathname,e);return n===s||n==="/"&&window.location.href.includes("#")?T(f(window.location.hash)):void 0}function X({basePath:e,pagesWere:n,shown:t,onFace:i,toggle:l,kinds:U,places:w,opens:$}){let{view:F,go:p}=k(),g=(0,u.useRef)({shown:t,view:F,onFace:i});g.current={shown:t,view:F,onFace:i};let S=(0,u.useRef)(n??"/"),M=()=>{S.current=`${r(window.location.pathname,e)??"/"}${window.location.search}`};return l.current=(o,c,a)=>{let{shown:d,view:N,onFace:V}=g.current;if(o==="pages"&&d!=="pages")window.history.pushState(null,"",y(c??S.current,{basePath:e}));else if(o!=="pages"&&d==="pages"){M();let m=a===void 0?N:j(v(a),w),h=Y(m)?q($):m,O=h!==m&&h.overview?"graview":o,P=_(O,h,U);p(P),window.history.pushState(null,"",`${y(s,{basePath:e})}${x(P)}`),V?.(O);return}V?.(o)},(0,u.useEffect)(()=>{let o=()=>{if(r(window.location.pathname,e)===null)return;let c=E(e)??"pages",{shown:a,onFace:d}=g.current;if(c==="pages"){a!=="pages"&&d?.("pages");return}a==="pages"&&(p(j(f(window.location.hash),w)),d?.(c))};return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[e,p,w]),null}function j(e,n){let t=e.within?.view,i=t!==void 0&&!e.focusId?n.find(l=>l.as===t):void 0;return i?{...e,focusId:R(i.kind)}:e}function _(e,n,t){return e==="graview"?b(n,!0):n.overview?I(b(n,!1),W(n,t)):n}function Y(e){return e.focusId===null&&e.overview!==!0}function q(e){return e??{...A,overview:!0}}export{J as a,K as b,Q as c,X as d,j as e,_ as f,Y as g,q as h};
@@ -0,0 +1 @@
1
+ import{a as n}from"./chunk.RCLJ4H52.js";import"./chunk.ZEVVWWNA.js";import"./chunk.MOUGB4H6.js";import"./chunk.ONDILMIX.js";import{f as s}from"./chunk.UIIVEQAT.js";import"./chunk.GDA3G4U2.js";import"./chunk.OWE6OJ4P.js";import"./chunk.BKPGDEES.js";import"./chunk.JNGUSAWX.js";import"./chunk.CK7QWLMX.js";import"./chunk.QNHECGMH.js";import"./chunk.KZ2376BD.js";import"./chunk.IZW7DBK4.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.HONUT6OG.js";import"./chunk.T4LY5QXO.js";import"./chunk.N4FBDA2W.js";import"./chunk.UT6642FC.js";import"./chunk.3G5MQFZK.js";import"./chunk.2CLPRG3I.js";import"./chunk.MB7LKKUD.js";import"./chunk.O42YET3W.js";import"./chunk.Z5V23DQN.js";import"./chunk.OHE5AMHH.js";import"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.WVUJXDXZ.js";import"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import{F as y,M as i}from"./chunk.Z56B2JR2.js";import"./chunk.HLLWKSZB.js";import{b as r}from"./chunk.AJZBJBMO.js";var c=r(y(),1),e=r(i(),1);function v({store:d,views:t,as:a,scope:o}){let l=(0,c.useMemo)(()=>s({scope:`.${o}`}),[o]);return(0,e.jsxs)("div",{"data-testid":"embed-picture","data-embed-content":"",tabIndex:0,"aria-label":t.places().find(m=>m.as===a)?.title??"The picture",style:{flex:"1 1 auto",minHeight:0,display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",background:"var(--graview-ground)",color:"var(--graview-ink)",fontFamily:"var(--graview-font-body, system-ui)"},children:[(0,e.jsx)("style",{children:l}),(0,e.jsx)(n,{store:d,views:t,as:a})]})}export{v as PictureFace};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f,g,h,i}from"./chunk.3JM2TNDD.js";import"./chunk.COTG2IG5.js";import"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.HLLWKSZB.js";import"./chunk.AJZBJBMO.js";export{f as columnActs,c as columnMoves,b as columnOf,d as columnReach,e as columnSteps,h as describePlace,i as placeText,g as resolveFor,a as statusColumns};