graview 0.1.42 → 0.1.43

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 (201) hide show
  1. package/dist/preview/chunk.22E4GKYU.js +1 -0
  2. package/dist/preview/chunk.25VAWLKJ.js +1 -0
  3. package/dist/preview/chunk.26SI4K3P.js +35 -0
  4. package/dist/preview/chunk.27QYTMXP.js +1 -0
  5. package/dist/preview/chunk.2AZTW66C.js +1 -0
  6. package/dist/preview/chunk.2JMJTREH.js +1 -0
  7. package/dist/preview/chunk.3B47UX2J.js +2 -0
  8. package/dist/preview/{chunk.37NF3YXZ.js → chunk.3GQL4K3Q.js} +1 -1
  9. package/dist/preview/chunk.3HLNRVFY.js +1 -0
  10. package/dist/preview/chunk.4C65DXZB.js +1 -0
  11. package/dist/preview/{chunk.HQMGTPDC.js → chunk.4HAGPMY6.js} +3 -3
  12. package/dist/preview/{chunk.LQGXUMUX.js → chunk.4IDXQVSW.js} +1 -1
  13. package/dist/preview/{chunk.SUQU4AXG.js → chunk.4P3LS2OE.js} +1 -1
  14. package/dist/preview/{chunk.6HUS5UHZ.js → chunk.4YLBGGWT.js} +1 -1
  15. package/dist/preview/chunk.4ZHUGSJL.js +1 -0
  16. package/dist/preview/{chunk.2ZGICECC.js → chunk.4ZSHTUNK.js} +1 -1
  17. package/dist/preview/chunk.5BJW4IPW.js +1 -0
  18. package/dist/preview/{chunk.L6HKDIZB.js → chunk.5J2HETUO.js} +1 -1
  19. package/dist/preview/{chunk.U3MQUIJL.js → chunk.5TBK44MK.js} +1 -1
  20. package/dist/preview/chunk.63DI7XNE.js +21 -0
  21. package/dist/preview/{chunk.X2M7IOQA.js → chunk.64MP7636.js} +1 -1
  22. package/dist/preview/chunk.6AYTF53S.js +1 -0
  23. package/dist/preview/chunk.6BU3GCHK.js +1 -0
  24. package/dist/preview/{chunk.P6J6VFF5.js → chunk.6IEDQHKI.js} +1 -1
  25. package/dist/preview/chunk.6K4JBLOP.js +1 -0
  26. package/dist/preview/{chunk.KSXB4LDF.js → chunk.6PF5LWRK.js} +1 -1
  27. package/dist/preview/{chunk.27P37343.js → chunk.6ROYIMQ2.js} +1 -1
  28. package/dist/preview/{chunk.QHP7AJUV.js → chunk.6XEATXZC.js} +1 -1
  29. package/dist/preview/chunk.7IXLH7PR.js +1 -0
  30. package/dist/preview/chunk.7L6LYXCV.js +25 -0
  31. package/dist/preview/chunk.7MQ7UWVW.js +5 -0
  32. package/dist/preview/{chunk.7EB6SDUQ.js → chunk.7MXQRSNR.js} +1 -1
  33. package/dist/preview/{chunk.5NDYYTT4.js → chunk.7ROWZZN5.js} +1 -1
  34. package/dist/preview/chunk.7TU2PDYW.js +1 -0
  35. package/dist/preview/{chunk.57R4ZUMM.js → chunk.7XCBIID7.js} +1 -1
  36. package/dist/preview/{chunk.5FHH5NR6.js → chunk.A3WOUDOG.js} +1 -1
  37. package/dist/preview/{chunk.VO6DBVZR.js → chunk.AXJJUCWT.js} +1 -1
  38. package/dist/preview/chunk.B2KDYES6.js +1 -0
  39. package/dist/preview/{chunk.V3K32XD7.js → chunk.BT6FUNQI.js} +1 -1
  40. package/dist/preview/chunk.BYVE2NQY.js +1 -0
  41. package/dist/preview/chunk.BYVLGDVJ.js +1 -0
  42. package/dist/preview/{chunk.ROHM3ETN.js → chunk.C3DX4LWD.js} +1 -1
  43. package/dist/preview/chunk.C3X3R7LP.js +9 -0
  44. package/dist/preview/{chunk.I7QCXRP7.js → chunk.C5NOO4CC.js} +1 -1
  45. package/dist/preview/{chunk.EC2T2UVH.js → chunk.CO2ZPX3D.js} +2 -2
  46. package/dist/preview/{chunk.ARTJL3X2.js → chunk.CTSPNTDX.js} +1 -1
  47. package/dist/preview/{chunk.K63BUJBF.js → chunk.CW6IPHRR.js} +2 -2
  48. package/dist/preview/chunk.CXJXVBGF.js +1 -0
  49. package/dist/preview/{chunk.B6DKKNVR.js → chunk.DJ3BD7AZ.js} +1 -1
  50. package/dist/preview/{chunk.PACJFDDU.js → chunk.DQR45N7V.js} +1 -1
  51. package/dist/preview/{chunk.PCTVLNOS.js → chunk.DYW4D74X.js} +1 -1
  52. package/dist/preview/chunk.DZN26GKS.js +1 -0
  53. package/dist/preview/chunk.E2AJ7U5Z.js +1 -0
  54. package/dist/preview/chunk.E5PHLNXR.js +1 -0
  55. package/dist/preview/{chunk.HG2IO5NS.js → chunk.EBTYR5CZ.js} +1 -1
  56. package/dist/preview/chunk.EPPAFWP7.js +5 -0
  57. package/dist/preview/{chunk.NS3Z7QNP.js → chunk.F6CPM7SL.js} +1 -1
  58. package/dist/preview/chunk.FCPH4YZN.js +1 -0
  59. package/dist/preview/{chunk.PH5ITX3N.js → chunk.FKLEIR4Y.js} +1 -1
  60. package/dist/preview/chunk.FLMNHV6A.js +19 -0
  61. package/dist/preview/chunk.FTF67QE2.js +1 -0
  62. package/dist/preview/chunk.GNPYSMHA.js +1 -0
  63. package/dist/preview/chunk.GSZYT6GF.js +1 -0
  64. package/dist/preview/{chunk.X5WIS4BC.js → chunk.GZA5ZNLJ.js} +1 -1
  65. package/dist/preview/chunk.HMABYAZR.js +1 -0
  66. package/dist/preview/chunk.I4HUBO22.js +1 -0
  67. package/dist/preview/chunk.IJ2AF3AW.js +1 -0
  68. package/dist/preview/{chunk.HOTOH7ZB.js → chunk.IJU322EP.js} +1 -1
  69. package/dist/preview/chunk.IWUSCCZN.js +1 -0
  70. package/dist/preview/{chunk.B7DCQJXV.js → chunk.JNCSGUO3.js} +1 -1
  71. package/dist/preview/{chunk.LZH65VSN.js → chunk.K6SPN4D6.js} +1 -1
  72. package/dist/preview/chunk.KBMVUIWR.js +6 -0
  73. package/dist/preview/{chunk.HAY22FPJ.js → chunk.KG5R4GTK.js} +1 -1
  74. package/dist/preview/chunk.KR3J27IA.js +88 -0
  75. package/dist/preview/chunk.KWQ67UK2.js +1 -0
  76. package/dist/preview/chunk.LBIDNJ6G.js +1 -0
  77. package/dist/preview/{chunk.ILPD5CZG.js → chunk.LDU25CCL.js} +1 -1
  78. package/dist/preview/{chunk.CAZX6OPN.js → chunk.MBOOUJOE.js} +1 -1
  79. package/dist/preview/{chunk.J7ZMNAWB.js → chunk.MI2HL3LQ.js} +1 -1
  80. package/dist/preview/chunk.MXU3VQSQ.js +1 -0
  81. package/dist/preview/{chunk.KZDLDXLB.js → chunk.N3FONYEP.js} +2 -2
  82. package/dist/preview/chunk.NH6D6TWY.js +1 -0
  83. package/dist/preview/chunk.NQTCOBOQ.js +1 -0
  84. package/dist/preview/chunk.O4X5WJIC.js +1 -0
  85. package/dist/preview/chunk.OH2N3SX7.js +1 -0
  86. package/dist/preview/chunk.OIJP6PQV.js +1 -0
  87. package/dist/preview/{chunk.CSWX7YGI.js → chunk.ONSG3OIL.js} +1 -1
  88. package/dist/preview/chunk.ORKXXLWD.js +1 -0
  89. package/dist/preview/chunk.OUN2H3TR.js +1 -0
  90. package/dist/preview/{chunk.AQTCN7KQ.js → chunk.OWL5GZ6U.js} +1 -1
  91. package/dist/preview/chunk.PEXPTDX7.js +1 -0
  92. package/dist/preview/chunk.PWYMZWAN.js +1 -0
  93. package/dist/preview/{chunk.V5VQCANB.js → chunk.Q5XICUDZ.js} +1 -1
  94. package/dist/preview/chunk.QJUFVEAU.js +1 -0
  95. package/dist/preview/{chunk.WVN62OMH.js → chunk.QWY54AVN.js} +1 -1
  96. package/dist/preview/{chunk.Y2QDZLSY.js → chunk.QXTLZSBL.js} +1 -1
  97. package/dist/preview/{chunk.XDPIS7RS.js → chunk.R2B2ZAWI.js} +1 -1
  98. package/dist/preview/{chunk.VTUMPH4Z.js → chunk.R7F6UJVG.js} +1 -1
  99. package/dist/preview/chunk.RDXDEFOC.js +1 -0
  100. package/dist/preview/{chunk.WUQOSVQU.js → chunk.RPDTWQKA.js} +3 -3
  101. package/dist/preview/{chunk.4YBP552Z.js → chunk.RQBX7M7Q.js} +2 -2
  102. package/dist/preview/{chunk.LFJH6X6O.js → chunk.RSYFIL2Z.js} +1 -1
  103. package/dist/preview/{chunk.WZEA2UK6.js → chunk.RY4E4JRI.js} +1 -1
  104. package/dist/preview/{chunk.VEP4EJ2N.js → chunk.S2MP53RO.js} +1 -1
  105. package/dist/preview/{chunk.IWLVZGW5.js → chunk.S6BZXNMV.js} +1 -1
  106. package/dist/preview/{chunk.WERBD5ZR.js → chunk.SGRKCQ2X.js} +1 -1
  107. package/dist/preview/chunk.SKB4XSDG.js +1 -0
  108. package/dist/preview/chunk.T4M4MLOS.js +1 -0
  109. package/dist/preview/{chunk.BZ4VZ6WQ.js → chunk.T4Q6OLZU.js} +1 -1
  110. package/dist/preview/{chunk.QHLD4TZW.js → chunk.T4QT5SZY.js} +1 -1
  111. package/dist/preview/{chunk.VKJAGZNU.js → chunk.TMBFLZNH.js} +1 -1
  112. package/dist/preview/chunk.TX65ZO27.js +1 -0
  113. package/dist/preview/chunk.U3ETEQDO.js +1 -0
  114. package/dist/preview/chunk.VCOIFBUE.js +1 -0
  115. package/dist/preview/{chunk.4QEDYRES.js → chunk.VP35BUUZ.js} +5 -5
  116. package/dist/preview/{chunk.VMBIFUYX.js → chunk.WH2RYGXR.js} +1 -1
  117. package/dist/preview/{chunk.P7ISPJAQ.js → chunk.WWR7Y2KE.js} +1 -1
  118. package/dist/preview/chunk.X5WB4GJ4.js +1 -0
  119. package/dist/preview/chunk.XAXZCOZK.js +1 -0
  120. package/dist/preview/chunk.XBV4WO7D.js +1 -0
  121. package/dist/preview/chunk.XFQUVMRI.js +1 -0
  122. package/dist/preview/{chunk.QXMTGLHR.js → chunk.XGRMQUFB.js} +1 -1
  123. package/dist/preview/{chunk.O7VHAKSA.js → chunk.XVWJD2DG.js} +1 -1
  124. package/dist/preview/{chunk.LWAZ6ZO6.js → chunk.YKN2VWWQ.js} +2 -2
  125. package/dist/preview/{chunk.ZRIDKFTV.js → chunk.YPEZZLOY.js} +1 -1
  126. package/dist/preview/chunk.YQDIVHCH.js +1 -0
  127. package/dist/preview/{chunk.ZQCGDTQ3.js → chunk.Z56L6V6Z.js} +1 -1
  128. package/dist/preview/{chunk.KMGGP6XT.js → chunk.ZE4U4JBF.js} +2 -2
  129. package/dist/preview/chunk.ZE6LJVVN.js +1 -0
  130. package/dist/preview/{chunk.U6YOAS4X.js → chunk.ZEC64CK6.js} +1 -1
  131. package/dist/preview/chunk.ZHRW2UF4.js +1 -0
  132. package/dist/preview/{chunk.XNW7PUAF.js → chunk.ZRICIE6T.js} +1 -1
  133. package/dist/preview/chunk.ZUJZVK2X.js +1 -0
  134. package/dist/preview/index.html +46 -45
  135. package/dist/preview/page.js +6 -6
  136. package/package.json +6 -6
  137. package/dist/preview/chunk.22QEYFWI.js +0 -1
  138. package/dist/preview/chunk.35FR36BQ.js +0 -1
  139. package/dist/preview/chunk.36LP3I7Z.js +0 -21
  140. package/dist/preview/chunk.3K2KBIRG.js +0 -1
  141. package/dist/preview/chunk.3SKUJWFC.js +0 -1
  142. package/dist/preview/chunk.3WABA2WQ.js +0 -1
  143. package/dist/preview/chunk.4NBB44YU.js +0 -1
  144. package/dist/preview/chunk.4YRCKOX2.js +0 -1
  145. package/dist/preview/chunk.6MLAJKYM.js +0 -1
  146. package/dist/preview/chunk.6NF32PAT.js +0 -1
  147. package/dist/preview/chunk.6WB24MS3.js +0 -1
  148. package/dist/preview/chunk.7HZVCW3Q.js +0 -1
  149. package/dist/preview/chunk.7MJM3OVC.js +0 -1
  150. package/dist/preview/chunk.7OSL64QH.js +0 -1
  151. package/dist/preview/chunk.7XDNCCLG.js +0 -6
  152. package/dist/preview/chunk.7Z2GTKA4.js +0 -1
  153. package/dist/preview/chunk.AOC2KUFE.js +0 -1
  154. package/dist/preview/chunk.AWSUMY3D.js +0 -1
  155. package/dist/preview/chunk.B65HPL4I.js +0 -1
  156. package/dist/preview/chunk.BJET6KOG.js +0 -1
  157. package/dist/preview/chunk.D3ELYLME.js +0 -1
  158. package/dist/preview/chunk.DNMBZONP.js +0 -1
  159. package/dist/preview/chunk.DXAUXGNN.js +0 -1
  160. package/dist/preview/chunk.EHMCRUYR.js +0 -1
  161. package/dist/preview/chunk.EQIQPY4O.js +0 -1
  162. package/dist/preview/chunk.ETWOZQWL.js +0 -1
  163. package/dist/preview/chunk.EVHXF7LZ.js +0 -19
  164. package/dist/preview/chunk.FFRWSODT.js +0 -1
  165. package/dist/preview/chunk.G4AY6NGN.js +0 -1
  166. package/dist/preview/chunk.GN2SZEFH.js +0 -1
  167. package/dist/preview/chunk.GXWOEOUY.js +0 -1
  168. package/dist/preview/chunk.IGA7OD3L.js +0 -1
  169. package/dist/preview/chunk.IXS5XBG6.js +0 -1
  170. package/dist/preview/chunk.JCTT2LAK.js +0 -1
  171. package/dist/preview/chunk.JE4QQEJE.js +0 -25
  172. package/dist/preview/chunk.JEBB3WM7.js +0 -1
  173. package/dist/preview/chunk.JPD2I4Z7.js +0 -1
  174. package/dist/preview/chunk.LKGDN25E.js +0 -1
  175. package/dist/preview/chunk.LMUFLZYT.js +0 -1
  176. package/dist/preview/chunk.MUBZIU6F.js +0 -1
  177. package/dist/preview/chunk.MZ6I2Q4E.js +0 -1
  178. package/dist/preview/chunk.NTJNBKWC.js +0 -1
  179. package/dist/preview/chunk.OMCXJGDI.js +0 -1
  180. package/dist/preview/chunk.OTHGZPUC.js +0 -1
  181. package/dist/preview/chunk.P6FGIYWP.js +0 -35
  182. package/dist/preview/chunk.PYFQGBU3.js +0 -1
  183. package/dist/preview/chunk.RFCTUGMU.js +0 -1
  184. package/dist/preview/chunk.RR4RZH4S.js +0 -1
  185. package/dist/preview/chunk.S5K4FLLG.js +0 -1
  186. package/dist/preview/chunk.SZKVNPEF.js +0 -1
  187. package/dist/preview/chunk.T3F6BKIO.js +0 -1
  188. package/dist/preview/chunk.UG727PEE.js +0 -5
  189. package/dist/preview/chunk.VXZFW52D.js +0 -1
  190. package/dist/preview/chunk.VYPR2MZO.js +0 -1
  191. package/dist/preview/chunk.W77OH637.js +0 -1
  192. package/dist/preview/chunk.WODEO2JF.js +0 -9
  193. package/dist/preview/chunk.XPML6T3P.js +0 -1
  194. package/dist/preview/chunk.YJM23BJL.js +0 -88
  195. package/dist/preview/chunk.YLGSXLXF.js +0 -1
  196. package/dist/preview/chunk.YLI6I6XP.js +0 -1
  197. package/dist/preview/chunk.YRYEWVNP.js +0 -1
  198. package/dist/preview/chunk.Z2TYCMBT.js +0 -5
  199. package/dist/preview/chunk.ZAFIZXGX.js +0 -1
  200. package/dist/preview/chunk.ZBYLAC3B.js +0 -2
  201. package/dist/preview/chunk.ZOS5APMD.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as Bt,b as It,c as Wt,d as Wn}from"./chunk.EC2T2UVH.js";import{a as zt}from"./chunk.Y2QDZLSY.js";import{a as Bn,b as Et,c as In,d as Mt,e as Lt,f as Tt}from"./chunk.WUQOSVQU.js";import{c as Ht,g as Vt,h as Gt}from"./chunk.ETWOZQWL.js";import{e as $t}from"./chunk.7EB6SDUQ.js";import{a as Pt,b as tn,c as Nt,d as Dt}from"./chunk.O7VHAKSA.js";import{b as vt,c as pe,d as ke,e as Ne}from"./chunk.U3MQUIJL.js";import{m as Rt}from"./chunk.EVHXF7LZ.js";import{a as Ot,b as At}from"./chunk.ARTJL3X2.js";import{f as kt,h as Ct}from"./chunk.V3K32XD7.js";import{e as St}from"./chunk.CAZX6OPN.js";import{e as bt}from"./chunk.WVN62OMH.js";import{l as xt,m as zn}from"./chunk.HG2IO5NS.js";import{m as Nn,n as Dn}from"./chunk.LFJH6X6O.js";import{k as qe,m as wt}from"./chunk.4QEDYRES.js";import{Aa as nn,G as De,R as te,T as ft,_ as oe,aa as ht,l as en,za as yt}from"./chunk.JE4QQEJE.js";import{$b as be,Ic as Pn,Oa as lt,Pb as gt,Sa as dt,Ta as ct,U as dn,Ua as ut,V as rt,W as at,X as Mn,Y as it,Z as Xe,ba as He,ca as Se,dd as pt,fa as je,ga as cn,ha as ot,ja as Ln,ka as st,la as un,nb as Tn,pc as Ze,qc as mt,vc as Le}from"./chunk.UG727PEE.js";import{b as Y}from"./chunk.AJZBJBMO.js";var Hn=Y(te(),1);function ze(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,i=a?cn(t,a).toLowerCase():"more";return(0,Hn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,Hn.jsxs)("p",{"data-testid":"lens-more",style:{margin:"4px 0 0",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["+",e.total-r," more ",i]})]})}var jt=Y(te(),1),Dr=(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}},zr=["sort","filter","group","q","archived"];function Te(e,t={}){let{store:n}=oe(),{view:r,go:a}=nn(),s=zr.some(M=>r.within?.[M]!==void 0)?Ot(r):t.arrangedBy??{},m=e.nodes??[],u=t.kind??m[0]?.kind??e.node?.kind,b=s.archived!==void 0&&s.archived!==!1&&u!==void 0&&!t.subject?n.graph.nodesOfKind(u,{archived:s.archived}):m,l=t.subject??(t.only?b.filter(t.only):b),y=t.subject?[]:t.only?b.filter(M=>!t.only(M)):[],p=t.kind??l[0]?.kind,o=Dr(t.allow,t.lensAllows),d=p?St(n.schema,String(p)):void 0,k=d?kt(s,d).arrangement:{},c=Ct(l,o===!1?{}:k,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[]),...t.search?{searchIn:t.search}:{}}),x=e.retired!==void 0&&e.retired>0&&(m[0]?.kind??p)===p?e.retired:0,A=p&&o!==!1&&e.fidelity==="full"&&e.budget===void 0&&(l.length>1||x>0)?(0,jt.jsx)(Rt,{schema:n.schema,graph:n.graph,kind:String(p),arrangement:k,allow:o,query:t.query!==!1,...t.filters?{filters:t.filters,chips:{nodes:l,flagged:new Set(e.flagged??[])}}:{},onChange:M=>a(At(r,M)),kept:{shown:c.nodes.length,of:l.length},...x>0?{past:{count:x,widen:()=>a($t(r,!0))}}:{}}):null;return{nodes:[...y,...c.nodes],arranged:c,arrangement:k,bar:A}}function Fe(e,t,n){let r=new Set((n??[]).map(i=>i.kind)),a=new Set((n??[]).map(i=>i.id));return e.allNodes().filter(i=>r.has(i.kind)?a.has(i.id):He(t.tryDefinition(i.kind),i))}var Be=Y(De(),1);var j=Y(te(),1),Br=["slots","x","y","fill"],gn=class extends Error{constructor(n,r){super(`${n}
1
+ import{a as Bt,b as It,c as Wt,d as Wn}from"./chunk.CO2ZPX3D.js";import{a as zt}from"./chunk.QXTLZSBL.js";import{a as Bn,b as Et,c as In,d as Mt,e as Lt,f as Tt}from"./chunk.RPDTWQKA.js";import{c as Ht,g as Vt,h as Gt}from"./chunk.4ZHUGSJL.js";import{e as $t}from"./chunk.7MXQRSNR.js";import{a as Pt,b as tn,c as Nt,d as Dt}from"./chunk.XVWJD2DG.js";import{b as vt,c as pe,d as ke,e as Ne}from"./chunk.5TBK44MK.js";import{m as Rt}from"./chunk.FLMNHV6A.js";import{a as Ot,b as At}from"./chunk.CTSPNTDX.js";import{f as kt,h as Ct}from"./chunk.BT6FUNQI.js";import{e as St}from"./chunk.MBOOUJOE.js";import{e as bt}from"./chunk.QWY54AVN.js";import{l as xt,m as zn}from"./chunk.EBTYR5CZ.js";import{m as Nn,n as Dn}from"./chunk.RSYFIL2Z.js";import{k as qe,m as wt}from"./chunk.VP35BUUZ.js";import{Aa as nn,G as De,R as te,T as ft,_ as oe,aa as ht,l as en,za as yt}from"./chunk.7L6LYXCV.js";import{$b as be,Ic as Pn,Oa as lt,Pb as gt,Sa as dt,Ta as ct,U as dn,Ua as ut,V as rt,W as at,X as Mn,Y as it,Z as Xe,ba as He,ca as Se,dd as pt,fa as je,ga as cn,ha as ot,ja as Ln,ka as st,la as un,nb as Tn,pc as Ze,qc as mt,vc as Le}from"./chunk.7MQ7UWVW.js";import{b as Y}from"./chunk.AJZBJBMO.js";var Hn=Y(te(),1);function ze(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,i=a?cn(t,a).toLowerCase():"more";return(0,Hn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,Hn.jsxs)("p",{"data-testid":"lens-more",style:{margin:"4px 0 0",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["+",e.total-r," more ",i]})]})}var jt=Y(te(),1),Dr=(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}},zr=["sort","filter","group","q","archived"];function Te(e,t={}){let{store:n}=oe(),{view:r,go:a}=nn(),s=zr.some(M=>r.within?.[M]!==void 0)?Ot(r):t.arrangedBy??{},m=e.nodes??[],u=t.kind??m[0]?.kind??e.node?.kind,b=s.archived!==void 0&&s.archived!==!1&&u!==void 0&&!t.subject?n.graph.nodesOfKind(u,{archived:s.archived}):m,l=t.subject??(t.only?b.filter(t.only):b),y=t.subject?[]:t.only?b.filter(M=>!t.only(M)):[],p=t.kind??l[0]?.kind,o=Dr(t.allow,t.lensAllows),d=p?St(n.schema,String(p)):void 0,k=d?kt(s,d).arrangement:{},c=Ct(l,o===!1?{}:k,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[]),...t.search?{searchIn:t.search}:{}}),x=e.retired!==void 0&&e.retired>0&&(m[0]?.kind??p)===p?e.retired:0,A=p&&o!==!1&&e.fidelity==="full"&&e.budget===void 0&&(l.length>1||x>0)?(0,jt.jsx)(Rt,{schema:n.schema,graph:n.graph,kind:String(p),arrangement:k,allow:o,query:t.query!==!1,...t.filters?{filters:t.filters,chips:{nodes:l,flagged:new Set(e.flagged??[])}}:{},onChange:M=>a(At(r,M)),kept:{shown:c.nodes.length,of:l.length},...x>0?{past:{count:x,widen:()=>a($t(r,!0))}}:{}}):null;return{nodes:[...y,...c.nodes],arranged:c,arrangement:k,bar:A}}function Fe(e,t,n){let r=new Set((n??[]).map(i=>i.kind)),a=new Set((n??[]).map(i=>i.id));return e.allNodes().filter(i=>r.has(i.kind)?a.has(i.id):He(t.tryDefinition(i.kind),i))}var Be=Y(De(),1);var j=Y(te(),1),Br=["slots","x","y","fill"],gn=class extends Error{constructor(n,r){super(`${n}
2
2
  ${r}`);this.hint=r;this.name="BoardBindingError"}},qt=e=>Math.max(0,Math.min(1,e));function Vn(e,t,n,r){let a=d=>d,i=d=>r?Se(r.tryDefinition(d.kind),d):String(a(d).label??d.id);if(r&&r.tryDefinition(n.slots)===void 0)throw new gn(`No kind is declared for "${n.slots}".`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let s=e.filter(d=>d.kind===n.slots);if(!r&&s.length===0)throw new gn(`Nothing to arrange: no "${n.slots}" nodes.`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let m=t.filter(d=>d.kind===n.fill),u=new Map(e.map(d=>[d.id,d])),b=new Map(e.map((d,k)=>[d.id,k])),l=s.map(d=>{let k=a(d),c=n.fillFrom==="occupant",x=m.filter(A=>(c?A.to:A.from)===d.id).map(A=>u.get(c?A.from:A.to)).filter(A=>A!==void 0).sort((A,M)=>(b.get(A.id)??0)-(b.get(M.id)??0)).map(A=>({id:A.id,label:i(A)}));return{id:d.id,code:String(k[n.slotCode??""]??"").trim()||i(d),label:i(d),x:qt(Number(k[n.x]??.5)),y:qt(Number(k[n.y]??.5)),occupants:x}}).sort((d,k)=>d.y-k.y||d.x-k.x),y=new Set(l.flatMap(d=>d.occupants.map(k=>k.id))),p=new Set([...y].map(d=>u.get(d)?.kind).filter(d=>d!==void 0)),o=e.filter(d=>p.has(d.kind)&&!y.has(d.id)).map(d=>({id:d.id,label:i(d)})).sort((d,k)=>d.label<k.label?-1:d.label>k.label?1:0);return{slots:l,empty:l.filter(d=>d.occupants.length===0).map(d=>d.id),spare:o}}function Ir({nodes:e,occupants:t,label:n,fidelity:r,mode:a,options:i,schema:s,implicated:m=[],flagged:u=[]}){let{store:b}=oe(),l=Fe(b.graph,b.schema,e),y=t?[...l.filter(f=>f.kind===i.slots),...t.map(f=>b.graph.getNode(f)).filter(f=>f!==void 0)]:l,p=Vn(y,b.graph.allEdges(),i,s),o=new Set(m),d=new Set(u),k=yt(),c=new Map;for(let f of k)for(let v of f.nodeIds)c.set(v,[...c.get(v)??[],f.message]);let x=f=>f?c.get(f)??[]:[];if(r==="glyph")return(0,j.jsx)(ke,{label:`${n??"Board"} \xB7 ${p.slots.length-p.empty.length}/${p.slots.length}`,hue:be("board")});if(r==="summary"){let f=p.slots.filter(v=>p.empty.includes(v.id));return(0,j.jsx)(pe,{title:n??"Board",meta:`${p.slots.length-p.empty.length}/${p.slots.length}`,tone:f.length>0?"warning":"muted",fit:!0,children:f.length>0?(0,j.jsx)(Ne,{pick:!0,max:5,items:f.map(v=>({id:v.id,label:v.code}))}):(0,j.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"Every slot filled."})})}let A=i.aspect??.68,M=(0,Be.useRef)(null),[P,w]=(0,Be.useState)(!1),[O,g]=(0,Be.useState)(null),L=160,[N,G]=(0,Be.useState)(!1);(0,Be.useEffect)(()=>{let f=M.current;if(!f||typeof ResizeObserver>"u")return;let v=new ResizeObserver(S=>{let R=S[0]?.contentRect;if(!R)return;let h=R.height<L;G(h),w(!h&&A<1&&R.width/R.height>1.3),g(h?null:R.height)});return v.observe(f),()=>v.disconnect()},[A]);let C=(f,v)=>P?{x:1-v,y:f}:{x:f,y:v},q=(()=>{let f=new Map,v=(S,R,h)=>{let $=f.get(h)??{ids:[],codes:[]};$.ids.includes(S)||($.ids.push(S),$.codes.includes(R)||$.codes.push(R)),f.set(h,$)};for(let S of p.slots){for(let R of x(S.id))v(S.id,S.code,R);for(let R of S.occupants)for(let h of x(R.id))v(R.id,R.label,h)}return[...f.entries()].map(([S,R])=>({id:R.ids[0],code:R.codes.join(", "),text:S}))})(),W=a==="fullscreen",ce=q.length===0?null:(0,j.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:[q.slice(0,W?6:2).map(f=>(0,j.jsxs)("li",{"data-graview-pick":f.id,"data-graview-emphasis":o.size===0?"plain":o.has(f.id)?"lit":"dimmed",title:f.text,style:{display:W?"grid":"flex",gap:W?1:7,alignItems:W?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:W?"2px 0":"3px 6px",marginLeft:W?0:-6,borderRadius:7,cursor:"pointer"},children:[(0,j.jsxs)("span",{style:{flex:"0 0 auto",fontWeight:600,color:"var(--graview-warn)",letterSpacing:"0.02em"},children:["\u26A0 ",f.code]}),(0,j.jsx)("span",{style:{minWidth:0,...W?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:f.text})]},f.id)),q.length>(W?6:2)?(0,j.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",q.length-(W?6:2)," more"]}):null]}),ae=i.arrange==="shelf",ne=p.slots.every(f=>f.code.length<=3&&!/\s/.test(f.code)),D=(f,v)=>{let S=f.occupants.length===0,R=o.size>0&&!o.has(f.id)&&!f.occupants.some(J=>o.has(J.id)),h=d.has(f.id),$=f.occupants.some(J=>d.has(J.id)),T=h,Z=[...x(f.id),...f.occupants.flatMap(J=>x(J.id))],H=f.occupants.length===1?f.occupants[0]:null,U=i.pickTarget==="slot"?f.id:H?H.id:f.id,K=J=>H?{}:{"data-graview-pick":J.id,"data-graview-emphasis":o.size===0?"plain":R?"dimmed":"lit"},le=J=>d.has(J.id)?"var(--graview-warn)":"var(--graview-ink-muted)",ge=i.emptyLabel??"empty";return(0,j.jsxs)("div",{"data-graview-pick":U,"data-graview-slot":f.id,"data-graview-mark":ne?"disc":"token","data-graview-flagged":h&&$?"both":h?"slot":$?"occupant":void 0,"data-graview-emphasis":o.size===0?"plain":R?"dimmed":"lit",title:[S?`${f.label} \u2014 nobody in it`:`${f.occupants.map(J=>J.label).join(", ")} at ${f.label}`,...Z].join(`
3
3
  `),style:{...v,display:"grid",justifyItems:ne?"center":"start",gap:3,opacity:R?.5:1,transition:"opacity 160ms ease"},children:[ne?(0,j.jsxs)("span",{style:{position:"relative",width:34,height:34,borderRadius:999,display:"grid",placeItems:"center",fontSize:"0.75rem",letterSpacing:"0.02em",border:S?"1.5px dashed var(--graview-warn)":`1px solid ${T?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:S?"transparent":T?"var(--graview-panel-warning)":"var(--graview-panel)",color:S||T?"var(--graview-warn)":"var(--graview-ink)",boxShadow:S?void 0:"var(--graview-lift-low)"},children:[f.code,h&&!S?(0,j.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,j.jsxs)("span",{style:{display:"grid",gap:1,minWidth:0,maxWidth:180,padding:"5px 10px 6px",borderRadius:8,border:S?"1.5px dashed var(--graview-warn)":`1px solid ${T?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:S?"transparent":T?"var(--graview-panel-warning)":"var(--graview-panel)",boxShadow:S?void 0:"var(--graview-lift-low)"},children:[(0,j.jsxs)("span",{style:{fontSize:"0.8125rem",fontWeight:550,lineHeight:1.25,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:S||T?"var(--graview-warn)":"var(--graview-ink)"},children:[f.code,h&&!S?" \u26A0":null]}),S?(0,j.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.3,color:"var(--graview-warn)"},children:ge}):(0,j.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:"0 8px",fontSize:"0.75rem",lineHeight:1.3},children:f.occupants.map(J=>(0,j.jsxs)("span",{...K(J),style:{whiteSpace:"nowrap",color:le(J)},children:[J.label,d.has(J.id)?" \u26A0":""]},J.id))})]}),ne?S?(0,j.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:ge}):f.occupants.map(J=>(0,j.jsxs)("span",{...K(J),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:le(J)},children:[J.label,d.has(J.id)?" \u26A0":""]},J.id)):null]},f.id)},Q=i.zones??[],ue=Q.map((f,v)=>({label:f.label,slots:p.slots.filter(S=>S.y>=f.from&&(S.y<f.to||v===Q.length-1&&S.y<=f.to))})),I=new Set(ue.flatMap(f=>f.slots.map(v=>v.id))),E=p.slots.filter(f=>!I.has(f.id));(E.length>0||ue.length===0)&&ue.push({label:"",slots:E});let _={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,j.jsxs)(pe,{title:n??"Board",meta:p.slots.length===0?void 0:p.empty.length===0?`all ${p.slots.length} filled`:`${p.empty.length} unfilled`,...W?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:[(0,j.jsxs)("div",{ref:M,style:{display:"flex",gap:28,alignItems:"stretch",justifyContent:"center",flex:"1 1 auto",minHeight:0},children:[W&&ce?(0,j.jsxs)("div",{style:{width:260,flex:"0 0 auto",alignSelf:"center",display:"grid",gap:8},children:[(0,j.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"What is marked"}),ce]}):null,ae?(0,j.jsx)("div",{"data-graview-primitive":"board","data-graview-arrange":"shelf",style:{..._,overflow:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"stretch",display:"grid",alignContent:"start"},children:ue.map((f,v)=>(0,j.jsxs)("section",{"data-graview-zone":f.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...v>0?{borderTop:"1px dashed var(--graview-edge)"}:{}},children:[f.label?(0,j.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,j.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 12px",alignItems:"flex-start"},children:f.slots.map(S=>D(S,{}))}):(0,j.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},f.label||`band-${v}`))}):(0,j.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...N?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!P&&Q.length>0?(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:Q.map(f=>(0,j.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,j.jsxs)("div",{"data-graview-primitive":"board","data-graview-arrange":"exact",style:{..._,position:"relative",aspectRatio:`${P?1/A:A}`,...N?{width:"100%",height:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"flex-start"}:{height:"100%",flex:"0 1 auto",...O!==null?{width:Math.round(O*(P?1/A:A))}:{}},maxWidth:"100%"},children:[Q.map(f=>(0,j.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?Q.map(f=>(0,j.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,p.slots.map(f=>D(f,{position:"absolute",left:`${C(f.x,f.y).x*100}%`,top:`${C(f.x,f.y).y*100}%`,transform:"translate(-50%, -50%)",width:"max-content",maxWidth:"100%"}))]})]}),p.spare.length>0?(0,j.jsxs)("div",{style:{display:"grid",gap:6,alignContent:"start",minWidth:0},children:[(0,j.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"Not in"}),(0,j.jsx)(Ne,{pick:!0,max:10,items:p.spare.map(f=>({...f,emphasis:o.size===0?"plain":o.has(f.id)?"lit":"dimmed"}))})]}):null]}),W?null:ce]})}function Ft(e){function t(n){let{store:r}=oe(),a=Vn(Fe(r.graph,r.schema,n.nodes),r.graph.allEdges(),e,r.schema),s=[...a.slots.flatMap(l=>l.occupants.map(y=>y.id)),...a.spare.map(l=>l.id)].map(l=>r.graph.getNode(l)).filter(l=>l!==void 0),{arranged:m,bar:u}=Te(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},subject:s}),b=(0,j.jsx)(Ir,{schema:r.schema,...n,options:e,...e.arranging===!1?{}:{occupants:m.nodes.map(l=>l.id)}});return ze(n,r.schema,u?(0,j.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[u,b]}):b)}return{name:"board",requiredRoles:[...Br],options:e,View:t,build(n,r,a){return Vn(n,r,e,a)}}}var xn=Y(De(),1);var _t=864e5;function Gn(e){if(typeof e!="string")return null;if(Nn(e))return Dn(e)?.day??null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:null}function pn(e){if(typeof e!="string")return null;if(Nn(e))return Dn(e)?.minutes??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 mn=e=>Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),fn=e=>new Date(e).toISOString().slice(0,10);function Ae(e,t){return fn(mn(e)+t*_t)}function Ve(e,t){let n=Number(e.slice(0,4)),r=Number(e.slice(5,7))-1+t,a=Number(e.slice(8,10)),i=new Date(Date.UTC(n,r+1,0)).getUTCDate();return fn(Date.UTC(n,r,Math.min(a,i)))}var jn=e=>new Date(mn(e)).getUTCDay();function _e(e,t=1){let n=(jn(e)-t+7)%7;return Ae(e,-n)}var qn=e=>`${e.slice(0,7)}-01`;function we(e,t){return Math.round((mn(t)-mn(e))/_t)}function Ue(e,t){return Array.from({length:t},(n,r)=>Ae(e,r))}var Ut=e=>it(e,"short"),Pe=e=>rt(e,{weekday:"short"}),Fn=e=>Xe(e);function Ge(e,t){let n=t?.fieldRoles?.when;return e&&!e.start&&n?{...e,start:n}:e}function Kt(e,t){return t===void 0?!1:typeof t=="string"?e[t]===!0:t.is.includes(e[t.field])}var hn=["start"],Wr=["day","week","month","quarter","year","agenda"];function yn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:Wr}function Yt(e,t){return e==="years"?t?.title??"Years":`The ${e}`}function Qt(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var _n=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 wn(e,t,n){let r=Ge(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=hn.filter(y=>{let p=r[y];return p?i?!(p in i):!(p in a):!0});if(s.length>0)throw new _n(e.kind,s);let m=Gn(a[r.start]);if(m===null)return null;let u=(r.end?Gn(a[r.end]):null)??m,b=pn(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:Se(n?.tryDefinition(e.kind),e),from:m,to:we(m,u)<0?m:u,at:r.allDay&&a[r.allDay]===!0?null:b,allDay:r.allDay&&a[r.allDay]===!0||b===null,done:Kt(a,r.done)}}function Jt(e,t,n,r){let a=wn(e,t,n);if(!a)return[];let i=Ge(t[e.kind],n?.tryDefinition(e.kind)).start,s=e,m=s[i],u=s[lt(i)];if(typeof m!="string"||!dt(u))return[a];let b=we(a.from,a.to);return("next"in r?[ut(m,u,r.next)]:ct(m,u,{from:Ae(r.from,-b),to:r.to,limit:400})).map(y=>({...a,from:y.slice(0,10),to:Ae(y.slice(0,10),b),repeats:!0}))}function vn(e,t){return e.filter(n=>we(n.from,t)>=0&&we(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 Xt(e,t,n){let r=gt(e.schema,e.allMutations()).get(t)?.get(n)??[],a=new Map(e.allMutations().map(s=>[s.name,s]));for(let s of r){let m=a.get(s),u=m?.subject;if(!m||!u)continue;let b=m.input?.shape??{};if(n in b)return{name:m.name,arg:u.arg}}let i=e.allMutations().find(s=>s.derived?.act==="edit"&&s.derived.kind===t);return i?.subject?{name:i.name,arg:i.subject.arg}:null}var Zt=(e,t)=>({from:qn(e),to:er(e),label:Mn(e,{short:!0,year:t})});function er(e){return fn(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function Hr(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 nr(e,t,n={}){let r=n.weekStartsOn??1,a=(u,b)=>({from:u,to:u,label:String(Number(u.slice(8,10))),...b?{outside:!0}:{}});if(e==="day")return{title:Pe(t),grain:"day",columns:1,cells:[a(t)]};if(e==="week"){let u=_e(t,r);return{title:`${Pe(u)} \u2013 ${Pe(Ae(u,6))}`,grain:"day",columns:7,cells:Ue(u,7).map(b=>a(b))}}if(e==="agenda")return{title:`From ${Pe(t)}`,grain:"day",columns:1,cells:Ue(t,42).map(u=>a(u))};if(e==="quarter"){let u=Hr(t),b=er(Ve(u,2)),l=[];for(let y=_e(u,r);we(y,b)>=0;y=Ae(y,7))l.push({from:y,to:Ae(y,6),label:at(y),...we(y,u)>0&&we(Ae(y,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},(b,l)=>Zt(`${u}-${String(l+1).padStart(2,"0")}-01`,!1))}}if(e==="years"){let u=Number(t.slice(0,4)),b=u+Math.max(1,n.horizon?.years??1)-1,l=n.horizon?.from!==void 0||n.horizon?.to!==void 0,y=l?n.horizon?.from??u:Math.min(u,n.fit?.first??u),o=(l?Math.max(y,n.horizon?.to??y+Math.max(1,n.horizon?.years??1)-1):Math.max(b,n.fit?.last??b))-y+1,d=Array.from({length:o},(k,c)=>String(y+c));return o>Vr?{title:`${n.horizon?.title??"Years"} \xB7 ${d[0]}\u2013${d[d.length-1]}`,grain:"year",columns:5,years:d,cells:d.map(k=>({from:`${k}-01-01`,to:`${k}-12-31`,label:k}))}:{title:`${n.horizon?.title??"Years"} \xB7 ${d[0]}\u2013${d[d.length-1]}`,grain:"month",columns:4,years:d,cells:d.flatMap(k=>Array.from({length:12},(c,x)=>Zt(`${k}-${String(x+1).padStart(2,"0")}-01`,!0)))}}let i=qn(t),s=_e(i,r),m=t.slice(0,7);return{title:Mn(t),grain:"day",columns:7,cells:Ue(s,42).map(u=>a(u,u.slice(0,7)!==m))}}function tr(e,t,n){return e.filter(r=>we(r.from,n)>=0&&we(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 Vr=10;function rr(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var ar=Y(De(),1);var ie=Y(te(),1);function Un({label:e,glyph:t,onPress:n}){return(0,ie.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:Ke,children:t})}var Ke={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"},ir={day:12,week:4,month:3,year:5};function or({span:e,weekStartsOn:t,entries:n,today:r,perCell:a,emphasisOf:i,broken:s,hue:m,onOpen:u,onMove:b}){let l=(0,ar.useRef)(null),y=qe(l),p=y===null?e.columns:Math.max(1,Math.floor(y/44)),o=p<e.columns,d=o?p:e.columns,k=!o&&e.grain==="day"&&e.columns===7?Ue(_e(e.cells[0]?.from??r,t),7):e.grain==="day"&&e.columns===1?e.cells.map(c=>c.from):null;return o&&e.grain==="day"&&e.columns>1?(0,ie.jsx)("div",{ref:l,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,ie.jsx)(bn,{days:e.cells.map(c=>c.from),entries:n,today:r,emphasisOf:i,broken:s,hue:m,onMove:(c,x)=>b(c,{from:x,to:x,label:x},"day")})}):(0,ie.jsxs)("div",{ref:l,"data-calendar-shape":o?"wrapped":"grid",style:{display:"grid",gap:4,gridTemplateRows:k?"auto 1fr":"1fr",minHeight:0,flex:1},children:[k?(0,ie.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${d}, minmax(0, 1fr))`,gap:4},children:k.map(c=>(0,ie.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?Ut(jn(c)):Pe(c)},c))}):null,(0,ie.jsx)("div",{tabIndex:0,"aria-label":`The days of ${e.title}`,style:{display:"grid",gridTemplateColumns:`repeat(${d}, minmax(0, 1fr))`,gridAutoRows:"max-content",gap:4,minHeight:0,overflow:"auto"},children:e.cells.map((c,x)=>{let A=tr(n,c.from,c.to),M=A.slice(0,a),P=A.slice(a),w=P.filter(g=>s.has(g.id)).length,O=we(c.from,r)>=0&&we(r,c.to)>=0;return(0,ie.jsxs)("div",{"data-calendar-day":e.grain==="day"?c.from:void 0,"data-calendar-cell":c.from,"data-calendar-grain":e.grain,"data-calendar-count":A.length,"data-calendar-outside":c.outside||void 0,onDragOver:g=>{g.dataTransfer.types.includes("text/graview-node")&&(g.preventDefault(),g.dataTransfer.dropEffect="move")},onDrop:g=>{let L=g.dataTransfer.getData("text/graview-node");L&&(g.preventDefault(),g.stopPropagation(),b(L,c,e.grain))},style:{minHeight:62,display:"flex",flexDirection:"column",gap:2,padding:4,borderRadius:7,border:"1px solid var(--graview-edge)",background:O?"var(--graview-panel)":c.outside?"var(--graview-panel-muted)":"transparent"},children:[(0,ie.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,ie.jsx)("span",{style:{fontSize:"0.75rem",fontVariantNumeric:"tabular-nums",color:O?"var(--graview-accent)":"var(--graview-ink-faint)"},children:c.label}),e.grain!=="day"&&A.length>0?(0,ie.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:A.length}):null]}),M.map(g=>(0,ie.jsx)(sr,{entry:g,cell:c,rowStart:x%d===0,emphasis:i(g.id),flagged:s.has(g.id),hue:m(g)},`${g.id}:${g.from}:${c.from}`)),P.length>0?(0,ie.jsxs)("button",{type:"button","data-testid":`calendar-more-${c.from}`,onClick:()=>u(c),title:`Open ${c.label}`,style:{minHeight:24,padding:"1px 5px",fontSize:"0.75rem",borderRadius:5,border:"1px dashed var(--graview-edge)",background:"transparent",color:w>0?"var(--graview-warn)":"var(--graview-ink-muted)",textAlign:"left"},children:["+",P.length," more",w>0?` \xB7 ${w} flagged`:""]}):null]},c.from)})})]})}function bn({days:e,entries:t,today:n,emphasisOf:r,broken:a,hue:i,onMove:s}){let m=e.map(u=>({day:u,here:vn(t,u)})).filter(({here:u})=>u.length>0);return m.length===0?(0,ie.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,ie.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:m.map(({day:u,here:b})=>(0,ie.jsxs)("li",{"data-calendar-day":u,onDragOver:l=>{l.dataTransfer.types.includes("text/graview-node")&&(l.preventDefault(),l.dataTransfer.dropEffect="move")},onDrop:l=>{let y=l.dataTransfer.getData("text/graview-node");y&&(l.preventDefault(),l.stopPropagation(),s(y,u))},style:{display:"grid",gap:4},children:[(0,ie.jsxs)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:u===n?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[Pe(u),u===n?" \xB7 today":""]}),b.map(l=>(0,ie.jsx)(sr,{entry:l,cell:{from:u,to:u,label:u},emphasis:r(l.id),flagged:a.has(l.id),hue:i(l)},`${l.id}:${l.from}:${u}`))]},u))})}function sr({entry:e,cell:t,emphasis:n,flagged:r,hue:a,rowStart:i=!1}){let s=we(t.from,e.from)>=0,m=we(e.to,t.to)>=0,u=!(s&&m),b=e.at!==null&&s&&e.from===t.from?`${Fn(e.at)} ${e.label}`:e.label;return(0,ie.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?s?"opens":m?"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 ${Fn(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?s?"5px 0 0 5px":m?"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:s||i?e.repeats?(0,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),b]}):b:" "})}var ee=Y(te(),1);function Gr(e){let t=1/0,n=-1/0;for(let r of e)r&&(t=Math.min(t,Number(r.from.slice(0,4))),n=Math.max(n,Number(r.to.slice(0,4))));return Number.isFinite(t)&&Number.isFinite(n)?{first:t,last:n}:void 0}function lr(e){let t=n=>function(a){let{store:i}=oe(),{view:s}=nn(),m=n?{...e,range:n}:e,u=s.within?.range??m.range??"month",b=Object.keys(e.bindings),{nodes:l,arranged:y,arrangement:p,bar:o}=Te(a,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{sort:!1,group:u==="agenda"},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{},...b[0]?{kind:(a.nodes??[]).find(A=>b.includes(String(A.kind)))?.kind??b[0]}:{}}),d=u==="agenda"&&y.grouped&&p.group?y.groups.map(A=>({label:A.label,ids:new Set(A.nodes.map(M=>M.id))})):void 0,k=new Set((a.nodes??[]).map(A=>String(A.kind))),c=b.filter(A=>!k.has(A)&&i.schema.tryDefinition(A)!==void 0).flatMap(A=>{let M=i.schema.tryDefinition(A);return i.graph.nodesOfKind(A).filter(P=>s.past===!0||He(M,P))}),x=c.length===0?l:[...l,...a.budget!==void 0?c.slice(0,a.budget):c];return ze(a,i.schema,(0,ee.jsx)(jr,{schema:i.schema,...a,nodes:x,options:{...m,today:m.today??i.today()??Qt()},...o?{bar:o}:{},...d?{groups:d}:{}}))};return{name:"calendar",requiredRoles:[...hn],bindings:e.bindings,options:e,View:t(),at:n=>t(n),ranges:()=>yn(e).map(n=>({range:n,title:Yt(n,e.horizon)})),place:(n,r)=>n.map(a=>wn(a,e.bindings,r)).filter(a=>a!==null)}}function jr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:m=[],flagged:u=[],bar:b,groups:l}){let{view:y,go:p}=nn(),{store:o,principal:d}=oe(),k=y.within?.at??a.today,c=y.within?.range??a.range??"month",x=a.weekStartsOn??1,A=new Set([...m,...s]),M=E=>A.size===0?"plain":A.has(E)?"lit":"dimmed",P=new Set(u),w=c==="years"&&y.within?.at===void 0?Gr((e??[]).map(E=>wn(E,a.bindings,i))):void 0,O=nr(c,k,{weekStartsOn:x,...a.horizon?{horizon:a.horizon}:{},...w?{fit:w}:{}}),L=n==="glyph"||n==="summary"?{next:a.today}:{from:O.cells[0]?.from??k,to:O.cells[O.cells.length-1]?.to??k},N=(e??[]).flatMap(E=>Jt(E,a.bindings,i,L)),G=a.hueOf??(E=>be(E.kind));if(n==="glyph")return(0,ee.jsx)(ke,{label:`${t??"Calendar"} \xB7 ${N.length}`,hue:be("calendar")});if(n==="summary"){let E=vn(N,a.today);return(0,ee.jsx)(pe,{title:t??"Calendar",meta:`${N.length} dated`,tone:"muted",children:(0,ee.jsx)(Ne,{max:6,items:E.length>0?E.map(_=>({id:_.id,label:_.label,hue:G(_)})):N.filter(_=>we(a.today,_.from)>=0).sort((_,f)=>_.from.localeCompare(f.from)).slice(0,6).map(_=>({id:_.id,label:`${_.from.slice(5)} ${_.label}`,hue:G(_)}))})})}let C=r==="fullscreen",[q,W]=(0,xn.useState)(null),ce=(E,_,f)=>{let v=o.graph.getNode(E);if(!v)return;let S=Ge(a.bindings[v.kind],o.schema.tryDefinition(v.kind));if(!S)return;let R=Xt(o,v.kind,S.start);if(!R){W({text:`Nothing declared writes the ${Ln(o.schema.definitions.find(K=>K.kind===v.kind),S.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let h=_.from,$=v[S.start],Z=pn($)===null?h:`${h}${String($).slice(10)}`,H={name:R.name,args:{[R.arg]:E,[S.start]:Z}},U=o.permits(H,d);if(!U.ok){W({text:U.refusal.message,tone:"refused"});return}try{o.apply(H,{author:d}),W(f==="day"?null:{text:`Moved to ${Pe(h)} \u2014 a ${f} is coarser than the ${Ln(o.schema.definitions.find(K=>K.kind===v.kind),S.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(K){W({text:K instanceof Error?K.message:String(K),tone:"refused"})}},ae=E=>{let _=c==="years"?Ve(`${O.years?.[0]??k.slice(0,4)}${k.slice(4)}`,E*12*Math.max(1,O.years?.length??a.horizon?.years??1)):c==="year"?Ve(k,E*12):c==="quarter"?Ve(k,E*3):c==="month"?Ve(k,E):c==="week"?Ae(k,E*7):Ae(k,E);p(en(y,"at",_))},ne=(E,_)=>{let f=en(y,"range",E);_!==void 0&&(f=en(f,"at",_)),p(f)},D=(0,xn.useRef)(null),Q=qe(D),ue=Q!==null&&Q<420,I=E=>E==="years"?a.horizon?.title??"years":E.charAt(0).toUpperCase()+E.slice(1);return(0,ee.jsx)(pe,{title:t??"Calendar",meta:O.title,style:{gap:10,...C?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,ee.jsxs)("div",{ref:D,"data-testid":"calendar","data-calendar-range":c,"data-calendar-at":k,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,gap:8},children:[(0,ee.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6},children:[(0,ee.jsxs)("nav",{"aria-label":"When",style:{display:"flex",gap:4},children:[(0,ee.jsx)(Un,{label:"Previous",glyph:"\u2039",onPress:()=>ae(-1)}),(0,ee.jsx)("button",{type:"button","data-testid":"calendar-today",onClick:()=>p(en(y,"at",a.today)),style:Ke,children:"Today"}),(0,ee.jsx)(Un,{label:"Next",glyph:"\u203A",onPress:()=>ae(1)})]}),ue?(0,ee.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:c,onChange:E=>ne(E.target.value),style:{...Ke,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:yn(a).map(E=>(0,ee.jsx)("option",{value:E,children:I(E)},E))}):(0,ee.jsx)("div",{role:"group","aria-label":"Range","data-testid":"calendar-ranges",style:{display:"flex",flexWrap:"wrap",gap:4,marginLeft:"auto"},children:yn(a).map(E=>(0,ee.jsx)("button",{type:"button","aria-pressed":E===c,"data-testid":`calendar-range-${E}`,onClick:()=>ne(E),style:{...Ke,borderRadius:999,borderColor:"var(--graview-edge)",...E==="years"?{}:{textTransform:"capitalize"},...E===c?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)",background:"var(--graview-panel)"}:{}},children:E==="years"?a.horizon?.title??"years":E},E))})]}),q?(0,ee.jsx)("p",{"data-testid":q.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:q.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:q.text}):null,O.years?(0,ee.jsx)("nav",{"aria-label":"Years","data-testid":"calendar-years",style:{display:"flex",flexWrap:"wrap",gap:4},children:O.years.map(E=>(0,ee.jsx)("button",{type:"button","data-testid":`calendar-year-${E}`,onClick:()=>ne("year",`${E}-01-01`),style:Ke,children:E},E))}):null,b,c==="agenda"&&l?(0,ee.jsx)("div",{"data-testid":"calendar-groups",style:{display:"grid",gap:10,minHeight:0,overflow:"auto"},children:l.map(E=>(0,ee.jsxs)("section",{"data-testid":"calendar-group",style:{display:"grid",gap:4},children:[(0,ee.jsxs)("h3",{style:{margin:0,fontSize:"0.8125rem",letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},children:[E.label," ",(0,ee.jsx)("span",{style:{fontWeight:400},children:E.ids.size})]}),(0,ee.jsx)(bn,{days:O.cells.map(_=>_.from),entries:N.filter(_=>E.ids.has(_.id)),today:a.today,emphasisOf:M,broken:P,hue:G,onMove:(_,f)=>ce(_,{from:f,to:f,label:f},"day")})]},E.label))}):c==="agenda"?(0,ee.jsx)(bn,{days:O.cells.map(E=>E.from),entries:N,today:a.today,emphasisOf:M,broken:P,hue:G,onMove:(E,_)=>ce(E,{from:_,to:_,label:_},"day")}):(0,ee.jsx)(or,{span:O,weekStartsOn:x,entries:N,today:a.today,perCell:a.perCell??ir[O.grain],emphasisOf:M,broken:P,hue:G,onOpen:E=>ne(rr(O.grain),E.from),onMove:ce})]})})}var re=Y(De(),1);var Ye=Y(De(),1),Re=Y(te(),1),Sn={padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:"transparent",background:"none",boxShadow:"none"};function dr({choices:e,close:t}){let[n,r]=(0,Ye.useState)(!1),a=(0,Ye.useRef)(null);return(0,Ye.useLayoutEffect)(()=>{n&&a.current?.querySelector("button:not([disabled])")?.focus()},[n]),(0,Re.jsxs)("div",{children:[(0,Re.jsxs)("button",{type:"button","data-menu-item":"move-to","aria-expanded":n,onClick:()=>r(i=>!i),style:Sn,children:["Move to ",(0,Re.jsx)("span",{"aria-hidden":"true",children:"\u203A"})]}),n?(0,Re.jsx)("ul",{ref:a,"aria-label":"Move to","data-testid":"move-to",style:{margin:"2px 0 0 12px",padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:2},children:e.map(i=>i.run?(0,Re.jsx)("li",{children:(0,Re.jsx)("button",{type:"button","data-move-to":i.to,onClick:()=>{t(),i.run()},style:Sn,children:i.label})},i.to):(0,Re.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,Re.jsx)("button",{type:"button",disabled:!0,"data-move-to":i.to,"data-withheld":"",style:{...Sn,borderStyle:"dashed"},children:(0,Re.jsx)("s",{children:i.label})}),(0,Re.jsx)("span",{"data-testid":"move-to-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:i.why})]},i.to))}):null]})}function cr({choose:e,close:t}){return(0,Re.jsx)("button",{type:"button","data-menu-item":"choose-several",onClick:()=>{t(),e()},style:Sn,children:"Choose several"})}var z=Y(te(),1),qr=`
4
4
  .graview-columns { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
@@ -29,4 +29,4 @@ import{a as Bt,b as It,c as Wt,d as Wn}from"./chunk.EC2T2UVH.js";import{a as zt}
29
29
  @media (pointer: coarse) { [data-graview-choosable]:not([data-graview-choosing]) .graview-columns-card .graview-choose-at { display: none; } }
30
30
  `;function ur(e){function t(n){let{store:r}=oe();ht();let a=Object.keys(e.bindings).filter(w=>r.schema.tryDefinition(w)!==void 0),i=n.nodes??[],s=new Set(i.map(w=>String(w.kind))),m=w=>r.graph.nodesOfKind(w).filter(O=>He(r.schema.tryDefinition(w),O)),u=n.total!==void 0&&n.total>i.length,b=a[0],l=b===void 0?[]:s.has(b)?i.filter(w=>w.kind===b):m(b),{arranged:y,arrangement:p,bar:o}=Te(n,{lensAllows:{group:!1},subject:l,...b===void 0?{}:{kind:b},query:e.search!==void 0||l.length>pt,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),d=o?new Map(y.nodes.map((w,O)=>[w.id,O])):void 0,k=(w,O)=>{if(!d||w!==b)return O;let g=O.filter(L=>d.has(L.id));return p.sort===void 0?g:[...g].sort((L,N)=>d.get(L.id)-d.get(N.id))},c=a.map(w=>{let O=e.bindings[w].column,g=Pt(r.schema,w,O),L=(D,Q)=>Q==="label"?Se(r.schema.tryDefinition(D.kind),D):D[Q],N=k(w,Ze(s.has(w)?i.filter(D=>D.kind===w):m(w).slice(0,n.budget??1/0),e.sort,L)),G=m(w),C=s.has(w)&&!u?N:k(w,G),q=new Set(e.hidden??[]),W=r.schema.tryDefinition(w),ce=!!p.query||(p.filter?.length??0)>0,ae=new Set([...G,...s.has(w)?i.filter(D=>D.kind===w):[]].map(D=>D.id)),ne=W?.lifecycle&&n.budget===void 0&&n.fidelity==="full"&&!ce?r.graph.nodesOfKind(w).filter(D=>!ae.has(D.id)&&!He(W,D)):[];return{kind:w,field:O,all:g,born:new Map(G.map((D,Q)=>[D.id,Q])),columns:g.filter(D=>D.value===null||!q.has(D.value)).map(D=>({column:D,cards:N.filter(Q=>tn(Q,O,g)===D.value),count:C.filter(Q=>tn(Q,O,g)===D.value).length,past:ne.filter(Q=>tn(Q,O,g)===D.value)})).filter(D=>D.column.value!==null||D.count>0||D.past.length>0)}}),x=c.reduce((w,O)=>w+O.columns.reduce((g,L)=>g+L.count,0),0),A=n.label??"Board";if(n.fidelity==="glyph")return(0,z.jsx)(ke,{label:`${A} \xB7 ${x}`,hue:be("columns")});if(n.fidelity==="summary")return(0,z.jsx)(pe,{title:A,meta:b?je(r.schema,b,x):String(x),tone:"muted",children:(0,z.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:c.flatMap(w=>w.columns.map(O=>`${O.column.label} ${O.count}`)).join(" \xB7 ")})});let M=(0,z.jsx)(Fr,{boards:c,title:A,options:e}),P=o?(0,z.jsxs)("div",{style:{display:"grid",gap:6},children:[o,M]}):M;return ze(n,r.schema,n.mode==="fullscreen"?(0,z.jsx)("div",{style:{padding:"14px 16px"},children:P}):(0,z.jsx)(pe,{title:A,meta:b?je(r.schema,b,x):void 0,children:P}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function Fr({boards:e,title:t,options:n}){let{store:r,principal:a}=oe(),i=(0,re.useRef)(null),[s,m]=(0,re.useState)(null),[u,b]=(0,re.useState)(null),[l,y]=(0,re.useState)(null),[p,o]=(0,re.useState)(null),[d,k]=(0,re.useState)(""),[c,x]=(0,re.useState)(()=>new Set),[A,M]=(0,re.useState)(()=>new Set(n.collapsed??[])),[P,w]=(0,re.useState)(()=>new Set),[O,g]=(0,re.useState)(null),L=(0,re.useId)();(0,re.useLayoutEffect)(()=>{if(!O)return;i.current?.querySelector(O)?.focus(),g(null)});let N=v=>{let S=r.graph.getNode(v);return S?Se(r.schema.tryDefinition(S.kind),S):v},G=(0,re.useMemo)(()=>e.flatMap(v=>v.columns.flatMap(S=>S.cards.map(R=>R.id))),[e]),C=Bt(G),q=(0,re.useMemo)(()=>r.permittedMutations(a).some(v=>{let S=v.subject?.kinds;return S!==void 0&&(S==="*"||e.some(R=>S.includes(R.kind)))}),[r,a,e]),W=v=>{C.choose(v),requestAnimationFrame(()=>{((v[0]===void 0?null:i.current?.querySelector(`[data-graview-choose-box="${rn(v[0])}"]`))??i.current)?.focus({preventScroll:!0})})},ce=(v,S)=>Nt(r,a,v,S.field,S.columns.map(R=>R.column)),ae=v=>n.move?`[data-columns-move="${rn(v)}"] > button`:`[data-graview-listed="${rn(v)}"] .graview-spec-item-link`,ne=(v,S,R,h)=>{try{let $=r.apply(S.call,{author:a});m({text:`Moved \u201C${N(v)}\u201D to ${R}.`,tone:"moved",batch:$.batch,id:v}),h==="keyboard"&&g(ae(v)),h==="carry"&&g(`[data-graview-listed="${rn(v)}"] .graview-spec-item-link`),h==="menu"&&_r(()=>i.current?.querySelector(`[data-graview-listed="${rn(v)}"] .graview-spec-item-link`)??null)}catch($){m({text:$ instanceof Error?$.message:String($),tone:"refused"})}},D=()=>{if(s?.batch)try{r.undo(s.batch,{author:a}),m({text:`\u201C${N(s.id??"")}\u201D is back where it was.`,tone:"moved"}),s.id&&g(ae(s.id))}catch(v){m({text:v instanceof Error?v.message:String(v),tone:"refused"})}},Q=(0,re.useRef)({move:ne,boards:e,choosing:C,choosable:q});Q.current={move:ne,boards:e,choosing:C,choosable:q},(0,re.useEffect)(()=>{let S=[...new Set(e.map(R=>R.kind))].map(R=>zt({store:r,kind:R,root:()=>i.current,section:(h,$)=>{let T=Q.current.boards.find(ge=>ge.kind===R),Z=r.graph.getNode(h);if(!T||!Z)return null;let H=Dt(r,$,Z,T.field,T.all).map(ge=>({to:ge.to,label:ge.label,...ge.why!==void 0?{why:ge.why}:{},...ge.move?{run:()=>Q.current.move(h,ge.move,ge.label,"menu")}:{}})),{choosing:U,choosable:K}=Q.current,le=K&&U.chosen.length===0&&typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches?()=>U.toggle(h):void 0;return H.length===0&&!le?null:{id:"move-to",at:"start",render:ge=>(0,z.jsxs)(z.Fragment,{children:[H.length>0?(0,z.jsx)(dr,{choices:H,close:ge}):null,le?(0,z.jsx)(cr,{choose:le,close:ge}):null]})}}}));return()=>S.forEach(R=>R())},[r,e]);let ue=(v,S)=>v.all.find(R=>R.value===S)?.label??v.columns.find(R=>R.column.value===S)?.column.label??String(S),I=(v,S,R)=>v.columns.find(h=>h.column.value===S)?.cards.filter(h=>h.id!==R)??[],E=(v,S,R,h)=>{let $=I(v,S,h).length+1;return`${ue(v,S)}, ${Math.min(R,$-1)+1} of ${$}.`},_=(v,S,R,h)=>{let $=N(S.id),T=()=>{v.preventDefault(),v.stopPropagation()};if(p?.id!==S.id){if(v.key!==" "||h.length===0||!(v.target instanceof HTMLElement)||!v.target.classList.contains("graview-spec-item-link"))return;T();let H=tn(S,R.field,R.all),U=Math.max(0,R.columns.find(K=>K.column.value===H)?.cards.findIndex(K=>K.id===S.id)??0);o({id:S.id,from:H,to:H,at:U}),k(`${$}, picked up. ${E(R,H,U,S.id)} Arrow keys move it, Space drops it, Escape puts it back.`);return}let Z=R.columns.map(H=>H.column.value).filter(H=>H===p.from||h.some(U=>U.to===H));if(v.key==="ArrowLeft"||v.key==="ArrowRight"){T();let H=Z[Z.indexOf(p.to)+(v.key==="ArrowLeft"?-1:1)];if(H===void 0)return k(`No column further ${v.key==="ArrowLeft"?"left":"right"} takes ${$}. ${E(R,p.to,p.at,S.id)}`);let U=Math.min(p.at,I(R,H,S.id).length);return o({...p,to:H,at:U}),k(E(R,H,U,S.id))}if(v.key==="ArrowUp"||v.key==="ArrowDown"){T();let H=Math.max(0,Math.min(I(R,p.to,S.id).length,p.at+(v.key==="ArrowUp"?-1:1)));return o({...p,at:H}),k(E(R,p.to,H,S.id))}if(v.key===" "||v.key==="Enter"){T(),o(null);let H=p.to===p.from?void 0:h.find(U=>U.to===p.to);return H?(k(`${$}, dropped in ${ue(R,p.to)}.`),ne(S.id,H,ue(R,p.to),"carry")):k(`${$}, dropped back in ${ue(R,p.from)}.`)}if(v.key==="Escape")return T(),o(null),k(`${$}, put back in ${ue(R,p.from)}.`)},f=v=>{if(p?.id!==v)return;let S=e.find(R=>R.kind===r.graph.getNode(v)?.kind);o(null),S&&k(`${N(v)}, put back in ${ue(S,p.from)}.`)};return(0,z.jsxs)("div",{"data-testid":"columns-lens",...q?{...C.listProps,tabIndex:-1,role:"group","aria-label":C.chosen.length>0?`${t}, ${C.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:v=>{i.current=v,C.list.current=v},children:[(0,z.jsx)("style",{children:qr}),q?(0,z.jsx)("style",{children:It}):null,(0,z.jsxs)("p",{className:"graview-columns-said",role:"status","data-tone":s?.tone,"data-testid":"columns-said",style:s?void 0:{position:"absolute",width:1,height:1,overflow:"hidden",clipPath:"inset(50%)"},children:[s?(0,z.jsx)("span",{children:s.text}):null,s?.batch?(0,z.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:D,children:"Undo"}):null]}),(0,z.jsx)("p",{"aria-live":"assertive","data-testid":"columns-announce",style:wt,children:d}),(0,z.jsx)("span",{id:L,hidden:!0,children:"Space picks it up; the arrow keys carry it between and along the columns; Space drops it and Escape puts it back. Its menu moves it too."}),e.map(v=>(0,z.jsx)("section",{"data-columns-kind":v.kind,"data-columns-field":v.field,"aria-label":`${ot(r.schema,v.kind)} by ${v.field}`,children:(0,z.jsx)("div",{className:"graview-columns",children:v.columns.map(({column:S,cards:R,count:h,past:$})=>{let T=S.value??"",Z=`${v.kind}\0${T}`,H=$.length>0&&P.has(Z),U=H?[...R,...$]:R,K=H?h+$.length:h,le=$.length>0&&!H?$.length:0,ge=u!==null&&S.value!==null&&u.to.includes(S.value)||p!==null&&p.to!==p.from&&p.to===S.value&&v.columns.some(V=>V.cards.some(me=>me.id===p.id)),J=S.value!==null&&(n.collapsed??[]).includes(S.value),We=J&&A.has(T),fe=n.cap!==void 0&&!c.has(T)&&U.length>n.cap,X=fe?new Set([...U].sort((V,me)=>(v.born.get(me.id)??0)-(v.born.get(V.id)??0)).slice(0,n.cap).map(V=>V.id)):null,ye=X?U.filter(V=>X.has(V.id)||V.id===p?.id):U,Ce=p!==null&&p.to===S.value&&p.to!==p.from&&v.columns.some(V=>V.cards.some(me=>me.id===p.id)),$e=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{children:S.label}),(0,z.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:K})]});return(0,z.jsxs)("section",{className:"graview-columns-column","data-graview-column":T,"data-droppable":ge||void 0,"data-over":ge&&(l===T||Ce)||void 0,"aria-label":`${t} \xB7 ${S.label}, ${K}${le>0?`, ${dn(le)} past`:""}`,"data-graview-named-by-lens":"",onDragOver:V=>{ge&&(V.preventDefault(),V.dataTransfer.dropEffect="move",y(T))},onDragLeave:()=>y(V=>V===T?null:V),onDrop:V=>{let me=V.dataTransfer.getData("text/graview-node"),xe=r.graph.getNode(me);if(y(null),b(null),!xe||S.value===null)return;let de=ce(xe,v).find(ve=>ve.to===S.value);de&&(V.preventDefault(),V.stopPropagation(),ne(me,de,S.label,"drag"))},children:[(0,z.jsx)("h3",{className:"graview-columns-heading",children:J?(0,z.jsx)("button",{type:"button",className:"graview-columns-toggle","aria-expanded":!We,"data-testid":"columns-toggle",onClick:()=>M(V=>V.has(T)?new Set([...V].filter(me=>me!==T)):new Set([...V,T])),children:$e}):$e}),We?null:ye.length===0&&!Ce?le>0?null:(0,z.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,z.jsx)("ul",{className:"graview-columns-cards",children:(0,z.jsx)(Ht.Provider,{value:S.value===null?null:{field:v.field,values:[S.value,S.label]},children:(()=>{let V=ye.map(xe=>{let de=ce(xe,v);return(0,z.jsx)(Ur,{card:xe,moves:de,button:n.move===!0,carried:p?.id===xe.id,...de.length>0?{describedBy:L}:{},...q?{choosing:C}:{},labelOf:ve=>ue(v,ve),onMove:(ve,Oe)=>ne(xe.id,ve,Oe,"keyboard"),onDrag:ve=>b(ve?{id:xe.id,to:de.map(Oe=>Oe.to)}:null),onCarryKey:ve=>_(ve,xe,v,de),onLeave:()=>f(xe.id)},xe.id)});if(!Ce)return V;let me=(0,z.jsx)("li",{className:"graview-columns-slot","data-testid":"columns-slot","aria-hidden":"true",children:N(p.id)},"graview-carried-slot");return[...V.slice(0,p.at),me,...V.slice(p.at)]})()})}),!We&&le>0?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-past",title:`${dn(le)} more behind the horizon \u2014 press to show them here`,onClick:()=>w(V=>new Set([...V,Z])),children:["+",dn(le)," past"]}):null,!We&&fe?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-rest",onClick:()=>x(V=>new Set([...V,T])),children:["Show ",U.length-ye.length," more"]}):null]},T)})})},v.kind)),q?(0,z.jsx)(Wt,{store:r,chosen:C.chosen,principal:a,anchor:()=>i.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:G.length,onChooseAll:()=>C.choose(G),onClear:C.clear,onActed:W}):null]})}var rn=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function _r(e){let t=0,n=()=>{let r=e(),a=typeof document>"u"?null:document.activeElement;r&&a!==r&&(a===null||a===document.body||a.closest("[data-graview-menu-home], [data-graview-page-title], h1, main")!==null||!a.isConnected)&&r.focus({preventScroll:!0}),++t<6&&requestAnimationFrame(n)};requestAnimationFrame(n)}function Ur({card:e,moves:t,button:n,carried:r,describedBy:a,labelOf:i,onMove:s,onDrag:m,onCarryKey:u,onLeave:b,choosing:l}){let{store:y,views:p}=oe(),[o,d]=(0,re.useState)(!1),k=(0,re.useRef)(null),c=(0,re.useRef)(null),x=Se(y.schema.tryDefinition(e.kind),e),A=p.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,re.useLayoutEffect)(()=>{o&&k.current?.querySelector("button")?.focus()},[o]);let M=()=>{d(!1),c.current?.focus()},P=w=>{let O=[...k.current?.querySelectorAll("button")??[]],g=O.indexOf(document.activeElement);w.key==="Escape"?(w.preventDefault(),w.stopPropagation(),M()):(w.key==="ArrowDown"||w.key==="ArrowUp")&&(w.preventDefault(),w.stopPropagation(),O[(g+(w.key==="ArrowDown"?1:O.length-1))%O.length]?.focus())};return(0,z.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card","data-carried":r||void 0,...l&&l.chosen.length>0?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onKeyDown:u,onKeyUp:w=>{w.key===" "&&w.target instanceof HTMLElement&&w.target.classList.contains("graview-spec-item-link")&&w.preventDefault()},onBlur:w=>{r&&!w.currentTarget.contains(w.relatedTarget)&&b()},onDragStart:w=>{t.length!==0&&(w.dataTransfer.setData("text/graview-node",e.id),w.dataTransfer.effectAllowed="move",m(!0))},onDragEnd:()=>m(!1),children:[(0,z.jsx)(Vt,{node:e,label:x,...a?{describedBy:a}:{}}),A?(0,z.jsx)(ft,{mode:"scene",children:(0,z.jsx)(vt.Provider,{value:x,children:(0,z.jsx)(A,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})})}):(0,z.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:x}),l?(0,z.jsx)("span",{className:"graview-choose-at",children:(0,z.jsx)("input",{...l.boxProps(e.id,x),onPointerEnter:Wn,onFocus:Wn})}):null,n&&t.length>0?(0,z.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":o||void 0,onBlur:w=>{w.currentTarget.contains(w.relatedTarget)||d(!1)},children:[(0,z.jsx)("button",{ref:c,type:"button","aria-haspopup":"menu","aria-expanded":o,"aria-label":`Move \u201C${x}\u201D to another column`,"data-testid":"columns-move",onClick:()=>d(w=>!w),children:"Move\u2026"}),o?(0,z.jsx)("div",{ref:k,role:"menu","aria-label":`Move \u201C${x}\u201D to`,className:"graview-columns-menu",onKeyDown:P,onMouseDown:w=>w.preventDefault(),children:t.map(w=>(0,z.jsx)("button",{type:"button",role:"menuitem","data-columns-to":w.to,title:w.title,onClick:()=>{d(!1),s(w,i(w.to))},children:i(w.to)},w.to))}):null]}):null]})}var Ee=Y(De(),1);var F=Y(te(),1),Kr=["rows","columns","link"],an=class extends Error{constructor(n,r){super(`${n}
31
31
  ${r}`);this.hint=r;this.name="CoverageBindingError"}},Kn=(e,t)=>t&&e[t]!==void 0?String(e[t]):"",Yr=40,Qr=24;function Jr(e,t={}){let n=t.rows??Yr,r=t.columns??Qr;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 i=(l,y,p)=>{if(l.length<=y)return l;let o=new Set(l.map((d,k)=>({item:d,index:k,count:a.get(p(d))??0})).sort((d,k)=>k.count-d.count||d.index-k.index).slice(0,y).map(d=>d.item.id));return l.filter(d=>o.has(d.id))},s=i(e.rows,n,l=>l.id),m=i(e.columns,r,l=>`col:${l.id}`),u=new Set(s.map(l=>l.id)),b=new Set(m.map(l=>l.id));return{...e,rows:s,columns:m,cells:e.cells.filter(l=>u.has(l.rowId)&&b.has(l.columnId)),of:{rows:e.rows.length,columns:e.columns.length}}}function hr(e,t,n,r){let a=g=>g,i=g=>r?Se(r.tryDefinition(g.kind),g):String(a(g).label??g.id),s=r?[n.rows,n.columns].filter(g=>r.tryDefinition(g)===void 0):[];if(s.length>0)throw new an(`No kind is declared for ${s.map(g=>`"${g}"`).join(" or ")}.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');if(r&&typeof n.link!="string"){let g=Pn(r,n.columns,n.link.path);if(!g.ok||!g.reached.has(n.rows)){let L=Pn(r,n.columns,[...n.link.path].reverse());throw new an(L.ok&&L.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(N=>JSON.stringify(N)).join(", ")}] }`)}}let m=e.filter(g=>g.kind===n.rows),u=e.filter(g=>g.kind===n.columns);if(!r&&m.length===0&&u.length===0)throw new an(`Nothing to lay out: no "${n.rows}" and no "${n.columns}" nodes.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');let b=n.groupOrder??[],l=g=>{let L=b.indexOf(g);return L===-1?b.length:L},y=n.badge?t.filter(g=>g.kind===n.badge.edge):[],p=new Set(m.map(g=>g.id)),o=new Set(u.map(g=>g.id)),d=[];if(typeof n.link=="string"){let g=n.link,L=t.filter(W=>W.kind===g),N=W=>r?.tryDefinition?.(W)?.edges?.[g]?.to,G=(N(n.columns)??[]).some(W=>W===n.rows||W==="*"),C=(N(n.rows)??[]).some(W=>W===n.columns||W==="*"),q=G||!C;for(let W of L){let ce=q?W.to:W.from,ae=q?W.from:W.to;p.has(ce)&&o.has(ae)&&d.push({rowId:ce,columnId:ae})}}else{let g=new Map;for(let N of new Set(n.link.path))g.set(N,new Map);for(let N of t){let G=g.get(N.kind);if(!G)continue;let C=G.get(N.from);C?C.push(N.to):G.set(N.from,[N.to]);let q=G.get(N.to);q?q.push(N.from):G.set(N.to,[N.from])}let L=new Set;for(let N of u){let G=[{id:N.id,via:[]}];for(let C of n.link.path){let q=[],W=new Set,ce=g.get(C);for(let ae of G)for(let ne of ce.get(ae.id)??[])W.has(`${ae.id}|${ne}`)||(W.add(`${ae.id}|${ne}`),q.push({id:ne,via:[...ae.via,ae.id]}));G=q}for(let C of G){if(!p.has(C.id))continue;let q=`${C.id}|${N.id}`;L.has(q)||(L.add(q),d.push({rowId:C.id,columnId:N.id,via:C.via.slice(1)}))}}}let k=new Set(n.requiredGroups??[]),c=n.requiredVia?new Set(t.filter(g=>g.kind===n.requiredVia.edge).map(g=>g.to)):null,x=new Set(d.map(g=>g.rowId)),A=new Set(d.map(g=>g.columnId)),M=new Set(y.map(g=>g.to)),P=(g,L)=>L==="label"?i(g):a(g)[L],w=Ze(m,n.sort,P).map(g=>{let L=a(g),N=Kn(L,n.rowGroup);return{id:g.id,ref:Kn(L,n.rowRef),label:i(g),group:N,required:c?c.has(g.id):k.size===0||k.has(N),covered:x.has(g.id),badged:M.has(g.id)}}).sort((g,L)=>l(g.group)-l(L.group)||(n.sort!==void 0?0:g.ref<L.ref?-1:g.ref>L.ref?1:0)),O=Ze(u,n.columnSort,P).map(g=>({id:g.id,label:i(g),used:A.has(g.id),group:Kn(a(g),n.columnGroup)})).sort((g,L)=>g.group<L.group?-1:g.group>L.group?1:n.columnSort!==void 0?0:g.id<L.id?-1:g.id>L.id?1:0).map(({group:g,...L})=>L);return{rows:w,columns:O,cells:d,gaps:w.filter(g=>g.required&&!g.covered).map(g=>g.id),unasked:O.filter(g=>!g.used).map(g=>g.id)}}var gr=316,Yn=58,Qn=176,Xr=Math.sin(Yn*Math.PI/180),Zr=Math.cos(Yn*Math.PI/180),ea=e=>{let t=e.reduce((r,a)=>Math.max(r,a.length),0),n=Math.min(Qn,Math.max(46,t*5.4+12));return Math.ceil(n*Xr)+8},mr=Math.ceil(Qn*Zr),pr=(e,t)=>cn(e,t).toLowerCase(),yr=(e,t)=>un(e.tryDefinition(t),t);function na(e,t,n){return t.rows===t.columns?`${e} with none across`:`${je(n,t.rows,e)} with no ${yr(n,t.columns)}`}function ta(e,t,n){return t.rows===t.columns?`${e} with none down`:`${je(n,t.columns,e)} on no ${yr(n,t.rows)}`}function ra({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,implicated:s=[],flagged:m=[],budget:u,rowsKept:b}){let{store:l}=oe(),y=da(),p=(0,Ee.useRef)(null),o=qe(p),[d,k]=(0,Ee.useState)(null),c=hr(Fe(l.graph,l.schema,e).filter(C=>C.kind===a.rows||C.kind===a.columns).filter(C=>b===void 0||a.rows===a.columns||C.kind!==a.rows||b.has(C.id)),l.graph.allEdges(),a,i),x=n==="full"?Jr(c,u!==void 0?{rows:u,columns:u}:{}):c,A=typeof a.link=="string"?a.link:void 0,M=b!==void 0&&c.cells.length===0&&c.columns.length>0&&(A===void 0||l.graph.allEdges().some(C=>C.kind===A))?void 0:mt(l.schema,a,{rows:c.rows.length,columns:c.columns.length,cells:c.cells.length});if(n==="glyph")return(0,F.jsx)(ke,{label:`${t??"Coverage"} \xB7 ${M?"nothing linked":x.gaps.length===0?"complete":`${x.gaps.length} missing`}`,hue:be("coverage")});if(M)return(0,F.jsx)(pe,{title:t??"Coverage",tone:"muted",fit:!0,...r==="fullscreen"?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:(0,F.jsx)("p",{"data-coverage-unlinked":"",style:{margin:0,color:"var(--graview-ink-muted)"},children:M})});if(n==="summary"){let C=x.rows.filter(q=>x.gaps.includes(q.id));return(0,F.jsxs)(pe,{title:t??"Coverage",meta:`${x.rows.length-x.gaps.length}/${x.rows.length}`,tone:x.gaps.length>0?"warning":"muted",fit:!0,children:[(0,F.jsx)(la,{grid:x}),C.length>0?(0,F.jsx)(Ne,{pick:!0,max:4,items:C.map(q=>({id:q.id,label:q.ref||q.label}))}):null]})}let P=new Set(s),w=new Set(m),O=d!==null&&d.every(C=>P.has(C))?d:null,g=r==="fullscreen",L=ea(x.columns.map(C=>C.label)),N=o===null?gr:Math.max(96,Math.min(gr,Math.round(o*.36))),G=o!==null&&(o<420||N+x.columns.length*28+mr>o);return(0,F.jsx)(pe,{title:t??"Coverage",...g?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},meta:x.rows.length===0||x.columns.length===0?void 0:x.gaps.length===0&&x.unasked.length===0?"complete":[x.gaps.length>0?na(x.gaps.length,a,l.schema):"",x.unasked.length>0?ta(x.unasked.length,a,l.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,F.jsxs)("div",{ref:p,"data-coverage-shape":G?"stacked":"matrix",onClick:C=>k(fr(C.target)),onKeyDown:C=>{(C.key==="Enter"||C.key===" ")&&k(fr(C.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:G?0:mr},children:[G?null:(0,F.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",flex:"0 0 auto",position:"sticky",top:0,zIndex:Le.over,background:"var(--graview-panel)",paddingTop:6},children:[(0,F.jsx)("div",{ref:y.corner,style:{width:N,flex:"0 0 auto",alignSelf:"stretch",position:"sticky",left:0,zIndex:Le.raised,background:"var(--graview-panel)"}}),(0,F.jsx)("div",{ref:y.heads,style:{display:"flex",flex:1,minWidth:0,height:L},children:x.columns.map(C=>(0,F.jsx)("div",{"data-graview-pick":C.id,"data-graview-emphasis":P.size===0?"plain":P.has(C.id)?"lit":"dimmed",title:C.label,"data-graview-column":C.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,F.jsxs)("span",{style:{position:"absolute",bottom:3,padding:"3px 0",pointerEvents:"auto",cursor:"pointer",left:"50%",visibility:y.hidden.has(C.id)?"hidden":"visible",transformOrigin:"left bottom",transform:`rotate(-${Yn}deg)`,whiteSpace:"nowrap",maxWidth:Qn,overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.75rem",letterSpacing:"0.005em",color:C.used?P.size>0&&!P.has(C.id)?"var(--graview-ink-faint)":"var(--graview-ink)":"var(--graview-warn)"},children:[C.used?"":"\u26A0 ",C.label]})},C.id))})]}),x.of?(0,F.jsxs)("p",{"data-testid":"coverage-more",style:{margin:"4px 0 6px",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[[x.of.rows>x.rows.length?`the ${x.rows.length} most connected of ${x.of.rows} ${pr(l.schema,a.rows)}`:null,x.of.columns>x.columns.length?`${x.columns.length} of ${x.of.columns} ${pr(l.schema,a.columns)} across`:null].filter(Boolean).join(" \xB7 ").replace(/^./,C=>C.toUpperCase())," ","\u2014 what is missing is still counted over all of them."]}):null,(0,F.jsx)("div",{children:x.rows.map((C,q)=>{let W=x.rows[q-1],ce=W===void 0||W.group!==C.group,ae=C.required&&!C.covered,ne=P.size>0&&!P.has(C.id);return(0,F.jsxs)("div",{children:[ce&&C.group?(0,F.jsx)("div",{style:{fontSize:"0.6875rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",padding:"9px 0 3px"},children:(0,F.jsx)("span",{style:{position:"sticky",left:0,display:"inline-block",paddingRight:8,background:"var(--graview-panel)"},children:C.group})}):null,(0,F.jsxs)("div",{style:{display:"flex",flexDirection:G?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:ne?.72:1},children:[(0,F.jsxs)("div",{"data-graview-pick":C.id,"data-graview-emphasis":P.size===0?"plain":ne?"dimmed":"lit",title:C.label,style:{width:G?"auto":N,flex:"0 0 auto",position:G?"static":"sticky",left:0,zIndex:Le.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:ae||w.has(C.id)?"var(--graview-warn)":"var(--graview-ink)"},children:[C.ref?(0,F.jsx)("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums",color:"var(--graview-ink-faint)"},children:C.ref}):null,(0,F.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:C.label}),a.badge?(0,F.jsx)("span",{title:C.badged?a.badge.title:a.badge.missingTitle,style:{marginLeft:"auto",flex:"0 0 auto",fontSize:"0.75rem",color:C.badged?"var(--graview-ink-faint)":"var(--graview-warn)"},children:C.badged?a.badge.symbol:"\u25CB"}):null]}),(0,F.jsx)("div",{style:{display:"flex",flex:1,minWidth:0,...G?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:x.columns.map(D=>{let Q=x.cells.find(I=>I.rowId===C.id&&I.columnId===D.id),ue=Q!==void 0;return(0,F.jsxs)("div",{"data-graview-mark":"",...ue?{"data-graview-pick":D.id,"data-graview-emphasis":P.size===0?"plain":P.has(D.id)&&P.has(C.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(aa(Q))}:{},title:ue?`${D.label} answers ${C.ref||C.label}`:`${D.label} does not answer ${C.ref||C.label}`,style:G?{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,F.jsx)("span",{style:sa(ue,ae,P.has(D.id)&&P.has(C.id),P.size>0)}),G?(0,F.jsx)("span",{children:D.label}):null]},D.id)})})]})]},C.id)})}),O?(0,F.jsx)(oa,{box:p,joins:O,shape:`${G?"stacked":"matrix"} ${o??""}`}):null]})})}var aa=e=>[e.rowId,e.columnId,...e.via??[]];function fr(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 kn=(e,t,n)=>Math.min(n,Math.max(t,e));function ia(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 oa({box:e,joins:t,shape:n}){let[r,a]=(0,Ee.useState)([]),i=JSON.stringify(t);return(0,Ee.useLayoutEffect)(()=>{let s=e.current;if(!s||typeof window>"u")return;let m=()=>{let l=s.getBoundingClientRect(),y=s.offsetWidth>0&&l.width>0?l.width/s.offsetWidth:1,p=[...s.querySelectorAll("[data-graview-joins]")].find(k=>k.getAttribute("data-graview-joins")===i);if(!p){a([]);return}let o=p.getBoundingClientRect(),d=[];for(let k of JSON.parse(i)){let c=[...s.querySelectorAll("[data-graview-pick]")].find(O=>O.getAttribute("data-graview-pick")===k&&!O.closest("[data-graview-mark]"));if(!c)continue;let x=ia(c),A=kn(o.left+o.width/2,x.left,x.right),M=kn(o.top+o.height/2,x.top,x.bottom),P=kn(A,o.left,o.right),w=kn(M,o.top,o.bottom);d.push({id:k,x1:(P-l.left)/y,y1:(w-l.top)/y,x2:(A-l.left)/y,y2:(M-l.top)/y})}a(d)};m();let u=0,b=()=>{u===0&&(u=requestAnimationFrame(()=>{u=0,m()}))};return document.addEventListener("scroll",b,{capture:!0,passive:!0}),window.addEventListener("resize",b,{passive:!0}),()=>{document.removeEventListener("scroll",b,{capture:!0}),window.removeEventListener("resize",b),u!==0&&cancelAnimationFrame(u)}},[e,i,n]),(0,F.jsx)("svg",{"aria-hidden":"true","data-coverage-join":i,style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none",zIndex:Le.over},children:r.map(s=>(0,F.jsxs)("g",{"data-coverage-join-to":s.id,children:[(0,F.jsx)("line",{x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,stroke:"var(--graview-accent)",strokeWidth:1.6,strokeLinecap:"round"}),(0,F.jsx)("circle",{cx:s.x2,cy:s.y2,r:2.6,fill:"var(--graview-accent)"})]},s.id))})}function sa(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 la({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,F.jsx)("div",{role:"img","aria-label":`${n} of ${t.length} covered`,style:{height:6,borderRadius:999,overflow:"hidden",background:"var(--graview-edge)"},children:(0,F.jsx)("div",{style:{width:`${Math.round(r*100)}%`,height:"100%",background:r===1?"var(--graview-accent)":"var(--graview-warn)"}})})}function wr(e){function t(n){let{store:r}=oe(),a=Fe(r.graph,r.schema,n.nodes).filter(u=>u.kind===e.rows),{arranged:i,bar:s}=Te(n,{lensAllows:{sort:!1,group:!1},subject:a,kind:e.rows,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),m=(0,F.jsx)(ra,{schema:r.schema,...n,options:e,...s?{rowsKept:new Set(i.nodes.map(u=>u.id))}:{}});return s?(0,F.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,m]}):m}return{name:"coverage",requiredRoles:[...Kr],options:e,View:t,build(n,r,a){return hr(n,r,e,a)}}}function da(){let e=(0,Ee.useRef)(null),t=(0,Ee.useRef)(null),[n,r]=(0,Ee.useState)(new Set);return(0,Ee.useEffect)(()=>{let a=t.current;if(!a||typeof window>"u")return;let i=a.parentElement;for(;i&&!/(auto|scroll)/.test(getComputedStyle(i).overflowX);)i=i.parentElement;if(!i)return;let s=0,m=()=>{s=0;let b=e.current?.getBoundingClientRect().right??0,l=new Set;for(let y of a.querySelectorAll("[data-graview-column]")){let p=y.getBoundingClientRect();p.left+p.width/2<b&&l.add(y.dataset.graviewColumn)}r(y=>y.size===l.size&&[...l].every(p=>y.has(p))?y:l)},u=()=>{s===0&&(s=requestAnimationFrame(m))};return m(),i.addEventListener("scroll",u,{passive:!0}),()=>{i.removeEventListener("scroll",u),s!==0&&cancelAnimationFrame(s)}},[]),{corner:e,heads:t,hidden:n}}var br=["regions","outline"],Qe=class extends Error{constructor(n,r){super(`${n}
32
- ${r}`);this.hint=r;this.name="PlanBindingError"}},Cn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',vr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function $n(e,t,n,r){let a=c=>c,i=c=>r?Se(r.tryDefinition(c.kind),c):String(a(c).label??c.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new Qe(`No kind is declared for "${n.regions}".`,Cn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Qe(`No kind is declared for "${n.markers}".`,Cn);let s=e.filter(c=>c.kind===n.regions);if(!r&&s.length===0)throw new Qe(`Nothing to draw: no "${n.regions}" nodes.`,Cn);let u=r?.tryDefinition(n.regions)?.fields?.shape;if(u!==void 0&&!(n.outline in u))throw new Qe(`"${n.regions}" has no field called "${n.outline}".`,Cn);let b=(()=>{let c=new Map;if(n.nests)for(let x of t)x.kind===n.nests&&c.set(x.from,x.to);return x=>{let A=0,M=c.get(x),P=new Set([x]);for(;M!==void 0&&!P.has(M)&&A<s.length;)P.add(M),A+=1,M=c.get(M);return A}})(),l=n.markers?e.filter(c=>c.kind===n.markers):[],y=new Map;if(n.within)for(let c of t)c.kind===n.within&&y.set(c.from,c.to);let p=[],o=new Map;for(let c of l){let x=n.at===void 0?void 0:a(c)[n.at],A=y.get(c.id);if(!vr(x)||A===void 0){p.push({id:c.id,label:i(c)});continue}let M=n.markerKind===void 0?void 0:a(c)[n.markerKind],P=o.get(A)??[];P.push({id:c.id,label:i(c),at:x,...typeof M=="string"?{what:M}:{}}),o.set(A,P)}let d=[],k=[];for(let c of s){let x=a(c)[n.outline];if(!Array.isArray(x)||x.length<3||!x.every(vr)){d.push({id:c.id,label:i(c)});continue}let A=n.regionKind===void 0?void 0:a(c)[n.regionKind];k.push({id:c.id,label:i(c),outline:x,center:Mt(x),depth:b(c.id),markers:o.get(c.id)??[],...typeof A=="string"?{what:A}:{}})}return k.sort((c,x)=>c.depth-x.depth),{regions:k,undrawn:d,strays:p}}var Ie=Y(De(),1);var B=Y(te(),1);function xr({map:e,options:t,implicated:n,flagged:r}){return(0,B.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:".25rem"},children:[e.regions.map(a=>{let i=On(a.id,n,r);return(0,B.jsxs)("li",{"data-graview-pick":a.id,...i?{"data-graview-emphasis":i}:{},style:{display:"flex",flexWrap:"wrap",gap:".5rem",justifyContent:"space-between",minWidth:0,padding:".25rem .4rem",borderRadius:".35rem",background:i==="flagged"?Xn(a.what,i,t.hues):void 0},children:[(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,B.jsxs)("span",{style:{opacity:.7,whiteSpace:"nowrap"},children:[a.what?`${a.what} \xB7 `:"",a.markers.length]})]},a.id)}),e.undrawn.map(a=>(0,B.jsxs)("li",{"data-graview-pick":a.id,style:{display:"flex",gap:".5rem",opacity:.7,padding:".25rem .4rem"},children:[(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,B.jsx)("span",{style:{whiteSpace:"nowrap"},children:t.undrawnLabel??"not drawn"})]},a.id))]})}var Jn=1e3,Sr=.022,on={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"},On=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},An=(e,t)=>(e===void 0?void 0:t?.[e])??be(e??"region"),Xn=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${An(e,n)} 52% 48%) 24%, var(--graview-panel))`,kr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${An(e,n)} 48% 42%) 78%, var(--graview-ink))`;function ca(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 Cr({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:i,implicated:s,flagged:m}){let{store:u}=oe(),b=u.graph.allEdges(),l=u.graph.allNodes(),y=n===void 0?void 0:new Set(n.map(h=>h.id)),p=y===void 0?l:l.filter(h=>h.kind!==t.regions||y.has(h.id)),o=$n(p,b,t,e),d=o.regions.length,k=o.regions.reduce((h,$)=>h+$.markers.length,0);if(a==="glyph")return(0,B.jsx)(ke,{label:`${r??"Ground"} \xB7 ${d}`,...o.undrawn.length>0?{meta:`+${o.undrawn.length} undrawn`}:{},selected:i});if(a==="summary")return(0,B.jsx)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,children:(0,B.jsx)(xr,{map:o,options:t,...s?{implicated:s}:{},...m?{flagged:m}:{}})});let c=(0,Ie.useMemo)(()=>{let h=1/0,$=1/0,T=-1/0,Z=-1/0,H=K=>{K.x<h&&(h=K.x),K.x>T&&(T=K.x),K.y<$&&($=K.y),K.y>Z&&(Z=K.y)};for(let K of o.regions){for(let le of K.outline)H(le);for(let le of K.markers)H(le.at)}if(!Number.isFinite(h)||T-h<=0||Z-$<=0)return{x0:0,y0:0,x1:1,y1:1};let U=Math.max(T-h,Z-$)*.04;return{x0:h-U,y0:$-U,x1:T+U,y1:Z+U}},[o.regions]),x=(c.x1-c.x0)/(c.y1-c.y0),A=t.aspect??Math.min(3.2,Math.max(.55,x)),M=Math.round(Jn/(c.x1-c.x0)),P=Math.round(M*(c.x1-c.x0)),w=Math.round(P/A),O={x:c.x0*M,y:c.y0*M-(w-M*(c.y1-c.y0))/2,w:P,h:w},g=M,L=O.w,N=(s?.length??0)>0||(m?.length??0)>0,G=(0,Ie.useRef)(null),{touchable:C,legible:q}=xt(G,{units:O.w,target:L*Sr*2}),W=zn("--graview-font-display","serif"),ce=zn("--graview-font-body","sans-serif"),{named:ae,placed:ne,tagged:D}=(0,Ie.useMemo)(()=>{let h=[],$=L*.012,T=Jn*.004,Z=(fe,X)=>!h.some(ye=>ye!==X&&Tt({x0:fe.x0-T,y0:fe.y0-T,x1:fe.x1+T,y1:fe.y1+T},ye)),H=[...o.regions].sort((fe,X)=>In(X.outline)-In(fe.outline)),U=new Map,K=new Map;for(let fe of H){let X=Et(fe.outline),ye=Math.max(0,(X.bottom-X.top)*g*.55),Ce=null;for(let $e of[.12,.26,.42,.6,.78]){let V=X.top+$e*(X.bottom-X.top),me=Bn(fe.outline,V),xe=Math.max(0,(me.x1-me.x0)*M-$*2),de=Lt(fe.label,{room:xe,height:ye,size:L*.023,floor:L*.015,measure:W});if(de===null)continue;let ve=Math.max(...de.lines.map(Nr=>W(Nr,de.fontSize))),Oe=de.lines.length*de.fontSize*1.15,et=X.top*g+$+Oe/2,nt=X.bottom*g-$-Oe/2,ln=nt<et?(X.top+X.bottom)*g/2:Math.min(Math.max(V*g,et),nt),Rn=Bn(fe.outline,ln/g),En=Rn.x0*M+$;if(ve>(Rn.x1-Rn.x0)*M-$*2)continue;let tt={x0:En,y0:ln-Oe/2,x1:En+ve,y1:ln+Oe/2};if(Z(tt)){h.push(tt),Ce={fitted:de,x:En,y:ln};break}}U.set(fe.id,Ce?.fitted??null),Ce!==null&&K.set(fe.id,{x:Ce.x,y:Ce.y})}let le=L*.018,ge=new Map,J=L*.011+L*.004,We=new Map;for(let fe of o.regions)for(let X of fe.markers){let ye={x0:X.at.x*M-J,y0:X.at.y*g-J,x1:X.at.x*M+J,y1:X.at.y*g+J};We.set(X.id,ye),h.push(ye)}for(let fe of C?o.regions:[])for(let X of fe.markers){let ye=L*.018,Ce=ce(X.label,le),$e=X.at.x*M,V=X.at.y*g,me=le*1.15,xe=[{x:$e+ye,y:V,anchor:"start"},{x:$e-ye,y:V,anchor:"end"},{x:$e+ye*.7,y:V-me,anchor:"start"},{x:$e-ye*.7,y:V-me,anchor:"end"},{x:$e+ye*.7,y:V+me,anchor:"start"},{x:$e-ye*.7,y:V+me,anchor:"end"},{x:$e,y:V-me*1.1,anchor:"start"},{x:$e,y:V+me*1.1,anchor:"start"}];for(let de of xe){let ve=de.anchor==="start"?de.x:de.x-Ce,Oe={x0:ve,y0:de.y-le*.62,x1:ve+Ce,y1:de.y+le*.62};if(!(ve<O.x+4||ve+Ce>O.x+O.w-4)&&!(Oe.y0<O.y+2||Oe.y1>O.y+O.h-2)&&Z(Oe,We.get(X.id))){h.push(Oe),ge.set(X.id,{at:{x:de.x,y:de.y},anchor:de.anchor,size:le});break}}}return{named:U,placed:K,tagged:ge}},[o.regions,Jn,g,C,W,ce]),Q=(0,Ie.useMemo)(()=>{let h=[];for(let $ of o.regions)(ae.get($.id)?.whole??!1)===!1&&h.push({id:$.id,label:$.label,what:$.what,round:!1});for(let $ of o.regions)for(let T of $.markers)(!C||!D.has(T.id))&&h.push({id:T.id,label:T.label,what:T.what,round:!0});return h},[o.regions,ae,D,C]),{principal:ue}=oe(),[I,E]=(0,Ie.useState)(null),_=t.draw!==void 0,f=t.place!==void 0,v=h=>{if(I===null)return;h.stopPropagation();let $=ca(h);if(I.kind==="marker"){u.apply({name:t.place.act,args:{[t.place.id]:I.id,[t.place.at]:$}},{author:ue,intent:`Placed ${I.label} on the map`}),E(null);return}E({...I,corners:[...I.corners,$]})},S=()=>{I===null||I.kind!=="region"||I.corners.length<3||(u.apply({name:t.draw.act,args:{[t.draw.id]:I.id,[t.draw.outline]:I.corners}},{author:ue,intent:`Drew ${I.label} on the map \u2014 ${I.corners.length} corners`}),E(null))},R=I===null?o.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:I.kind==="marker"?`Click where ${I.label} stands.`:I.corners.length<3?`Click the corners of ${I.label} \u2014 ${3-I.corners.length} more to make an area.`:`${I.corners.length} corners. Keep clicking, or press Done.`;return q?(0,B.jsxs)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,...o.undrawn.length>0?{meta:`${o.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:i,fit:!0,children:[(0,B.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${O.w} / ${O.h}`,overflow:"hidden"},children:(0,B.jsxs)("svg",{ref:G,viewBox:`${O.x} ${O.y} ${O.w} ${O.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:I!==null?"application":C?"group":"img","aria-label":I===null?`${r??"The plan"}: ${d} drawn, ${k} standing in them`:R??"Drawing",onClick:v,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:I===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,B.jsx)("text",{x:O.x+O.w-L*.028,y:O.y+L*.034,fontSize:L*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),R!==null&&o.regions.length===0?(0,B.jsx)("text",{x:O.x+O.w/2,y:O.y+O.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:L*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:R}):null,I!==null&&I.kind==="region"&&I.corners.length>0?(0,B.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,B.jsx)("polyline",{points:I.corners.map(h=>`${h.x*M},${h.y*g}`).join(" "),fill:I.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),I.corners.map((h,$)=>(0,B.jsx)("circle",{cx:h.x*M,cy:h.y*g,r:L*.008,fill:"var(--graview-accent)"},$))]}):null,o.regions.map(h=>{let $=On(h.id,s,m),T=N&&$===void 0?.34:1,Z=h.outline.map(H=>`${H.x*M},${H.y*g}`).join(" ");return(0,B.jsx)("g",{"data-graview-pick":h.id,...$?{"data-graview-emphasis":$}:{},role:"button","aria-label":`${h.label}${h.what?`, ${h.what}`:""}, ${h.markers.length} standing in it`,style:{opacity:T,cursor:"pointer"},children:(0,B.jsx)("polygon",{points:Z,fill:Xn(h.what,$,t.hues),stroke:kr(h.what,$,t.hues),strokeWidth:$==="flagged"?5:2.5,strokeLinejoin:"round"})},h.id)}),o.regions.flatMap(h=>h.markers.map($=>{let T=On($.id,s,m),Z=N&&T===void 0?.34:1;return(0,B.jsxs)("g",{...C?{"data-graview-pick":$.id,role:"button","aria-label":`${$.label}${$.what?`, ${$.what}`:""}, in ${h.label}`}:{"aria-hidden":!0},...T?{"data-graview-emphasis":T}:{},style:{opacity:Z,cursor:C?"pointer":"default"},children:[C?(0,B.jsx)("circle",{cx:$.at.x*M,cy:$.at.y*g,r:L*Sr,fill:"transparent"}):null,(0,B.jsx)("circle",{cx:$.at.x*M,cy:$.at.y*g,r:L*.011,fill:T==="flagged"?"var(--graview-warn)":`hsl(${An($.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:L*.004}),D.has($.id)?(0,B.jsx)("text",{x:D.get($.id).at.x,y:D.get($.id).at.y,textAnchor:D.get($.id).anchor,dominantBaseline:"middle",fontSize:D.get($.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,D.get($.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${$.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:$.label}):null]},$.id)})),o.regions.map(h=>{let $=ae.get(h.id),T=ne.get(h.id);if(!$||T===void 0)return null;let Z=On(h.id,s,m);return(0,B.jsx)("text",{x:T.x,y:T.y-($.lines.length-1)*$.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:$.fontSize,fill:"var(--graview-ink)",opacity:N&&Z===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,$.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${h.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:$.lines.map((H,U)=>(0,B.jsx)("tspan",{x:T.x,dy:U===0?0:$.fontSize*1.15,children:H},H+String(U)))},`label-${h.id}`)})]})}),Q.length>0?(0,B.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:Q.map(h=>(0,B.jsxs)("li",{"data-graview-pick":h.id,style:{display:"flex",alignItems:"center",gap:".35rem",minWidth:0,minHeight:"max(1.5rem, 24px)",padding:"0 .15rem",cursor:"pointer"},children:[(0,B.jsx)("span",{"aria-hidden":"true",style:{width:h.round?".55rem":".7rem",height:h.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:h.round?"50%":".15rem",background:h.round?`hsl(${An(h.what,t.hues)} 55% 45%)`:Xn(h.what,void 0,t.hues),border:h.round?void 0:`1px solid ${kr(h.what,void 0,t.hues)}`}}),(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:h.label})]},h.id))}):null,I!==null?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[o.regions.length>0&&R!==null?(0,B.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:R}):null,I.kind==="region"?(0,B.jsxs)("button",{type:"button",onClick:S,disabled:I.corners.length<3,"data-testid":"draw-done",style:{...on,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",I.label]}):null,I.kind==="region"&&I.corners.length>0?(0,B.jsx)("button",{type:"button",onClick:()=>E({...I,corners:I.corners.slice(0,-1)}),style:on,children:"Undo a corner"}):null,(0,B.jsx)("button",{type:"button",onClick:()=>E(null),style:on,"data-testid":"draw-cancel",children:"Stop"})]}):(0,B.jsxs)(B.Fragment,{children:[_&&o.undrawn.length>0?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,B.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.undrawnLabel??"Not drawn yet",":"]}),o.undrawn.map(h=>(0,B.jsxs)("button",{type:"button",style:on,onClick:()=>E({kind:"region",id:h.id,label:h.label,corners:[]}),"data-testid":`draw-${h.id}`,children:["Draw ",h.label]},h.id))]}):null,f&&o.strays.length>0?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,B.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.strayLabel??"Not placed",":"]}),o.strays.map(h=>(0,B.jsxs)("button",{type:"button",style:on,onClick:()=>E({kind:"marker",id:h.id,label:h.label}),"data-testid":`place-${h.id}`,children:["Place ",h.label]},h.id))]}):null,t.help!==void 0&&(o.undrawn.length>0||o.strays.length>0)?(0,B.jsx)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem"},children:(0,B.jsx)("a",{href:t.help.href,"data-testid":"map-help",children:t.help.label})}):null,!_&&(o.undrawn.length>0||o.strays.length>0)?(0,B.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[o.undrawn.map(h=>h.label).join(", "),o.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",o.strays.map(h=>h.label).join(", "),o.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,B.jsx)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,selected:i,children:(0,B.jsx)(xr,{map:o,options:t,...s?{implicated:s}:{},...m?{flagged:m}:{}})})}var Or=Y(te(),1);function $r(e){function t(n){let{store:r}=oe();return(0,Or.jsx)(Cr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...br],options:e,View:t,build(n,r,a){return $n(n,r,e,a)}}}var he=Y(te(),1);function ua(e,t,n){let r=t.flatMap(i=>(i.subject&&i.subject.kinds!=="*"?i.subject.kinds:[null]).map(m=>({name:i.name,title:i.title??i.name,kind:m}))),a=[];for(let i of n){let s={kind:"human",id:"themselves",roles:[i]};for(let m of r){let u=m.kind??void 0,b=Tn(e,s,m.name,u).ok,l=!b&&Tn(e,s,m.name,u,void 0,"themselves").ok;a.push({role:i,act:m.name,kind:m.kind,may:b?"yes":l?"self":"no"})}}return{roles:n,acts:r,cells:a}}function ga({label:e,fidelity:t,mode:n}){let{store:r}=oe(),a=r.policy,i=a?.roles??[],s=r.allMutations().filter(y=>!y.derived).map(y=>({name:y.name,...y.title?{title:y.title}:{},...y.subject?{subject:y.subject}:{}})),m=ua(a,s,i),u=e??"Who may do what";if(!a||i.length===0)return(0,he.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,he.jsx)(ke,{label:`${u} \xB7 ${i.length} ${i.length===1?"role":"roles"}`,hue:be("role")});let b=n==="fullscreen",l=y=>y==="yes"?"\u25CF":y==="self"?"\u25D0":"\xB7";return(0,he.jsxs)("div",{"data-testid":"reach-lens",style:{display:"grid",gap:10,padding:b?0:14,borderRadius:"var(--graview-radius, 12px)",background:b?"transparent":"var(--graview-panel)",border:b?"none":"1px solid var(--graview-edge)",color:"var(--graview-ink)",minWidth:0},children:[(0,he.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,he.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:u}),(0,he.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,he.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,he.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,he.jsx)("thead",{children:(0,he.jsxs)("tr",{children:[(0,he.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"}),m.acts.map(y=>(0,he.jsxs)("th",{scope:"col",title:y.kind?`${y.title}, on ${st(un(r.schema.tryDefinition(y.kind),y.kind))}`:y.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[y.title,y.kind?(0,he.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",y.kind]}):null]},`${y.name}|${y.kind??""}`))]})}),(0,he.jsx)("tbody",{children:m.roles.map(y=>(0,he.jsxs)("tr",{children:[(0,he.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:y}),m.acts.map(p=>{let o=m.cells.find(d=>d.role===y&&d.act===p.name&&d.kind===p.kind);return(0,he.jsx)("td",{"data-graview-reach":o.may,title:`${y} ${o.may==="yes"?"may":o.may==="self"?"may, on their own record,":"may not"} ${p.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:o.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:o.may==="no"?"0.875rem":"0.8125rem"},children:l(o.may)},`${p.name}|${p.kind??""}`)})]},y))})]})})]})}var Ar={name:"reach",requiredRoles:[],View:ga};var Me=Y(De(),1);var se=Y(te(),1),Er=["start","end"];function ma(e,t,{pad:n=45,minimum:r=480}={}){if(e.length===0)return{start:0,end:t};let a=Math.min(...e.map(b=>b.start)),i=Math.max(...e.map(b=>b.end)),s=Math.max(0,a-n),m=Math.min(t,i+n),u=r-(m-s);return u>0&&(s=Math.max(0,s-u/2),m=Math.min(t,s+r)),{start:Math.floor(s),end:Math.ceil(m)}}function pa(e){let t=[...e].sort((i,s)=>i.start-s.start||i.end-s.end||i.id.localeCompare(s.id)),n=[],r=t.map(i=>{let s=n.findIndex(m=>m<=i.start);return s===-1?(s=n.length,n.push(i.end)):n[s]=i.end,{...i,lane:s,lanes:1}}),a=Math.max(1,n.length);return r.map(i=>({...i,lanes:a}))}var Zn=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 Mr(e,t,n){let r=Ge(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=Er.filter(l=>{let y=r[l];return y?i?!(y in i):!(y in a):!0});if(s.length>0)throw new Zn(e.kind,s);let m=Number(a[r.start]??Number.NaN),u=Number(a[r.end]??m);if(!Number.isFinite(m))return null;let b=[];if(r.columns){let l=a[r.columns];Array.isArray(l)&&b.push(...l.map(String))}if(r.column){let l=a[r.column];l!=null&&b.push(String(l))}return{id:e.id,kind:e.kind,label:Se(n?.tryDefinition(e.kind),e),columnIds:b,start:m,end:Number.isFinite(u)?Math.max(u,m):m}}function fa(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 ha=.045,sn=52,Lr=4,ya=44,wa=240;function va({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:m=[],flagged:u=[]}){let b=new Set([...m,...s]),l=w=>b.size===0?"plain":b.has(w)?"lit":"dimmed",y=new Set(u),p=(e??[]).map(w=>Mr(w,a.bindings,i)).filter(w=>w!==null),o=a.hueOf??(w=>be(w.kind));if(n==="glyph")return(0,se.jsx)(ke,{label:`${t??"Timeline"} \xB7 ${p.length}`,hue:be("timeline")});if(n==="summary")return(0,se.jsx)(pe,{title:t??"Timeline",meta:`${p.length} items`,tone:"muted",children:(0,se.jsx)(Ne,{max:a.columns.length,items:a.columns.map(w=>({id:w.id,label:`${w.label} ${p.filter(O=>O.columnIds.includes(w.id)).length}`,hue:be(w.id)}))})});let d=a.format??String,k=ma(p,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),c=k.end-k.start,x=w=>(w-k.start)/c*100,A=a.tick??Math.max(60,Math.round(c/8/60)*60),M=[];for(let w=Math.ceil(k.start/A)*A;w<=k.end;w+=A)M.push(w);let P=r==="fullscreen";return(0,se.jsx)(pe,{title:t??"Timeline",meta:`${d(k.start)} \u2013 ${d(k.end)}`,style:{gap:12,...P?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,se.jsx)(Sa,{columns:a.columns}),(0,se.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(wa,Math.ceil(c/A)*ya)},children:[M.map((w,O)=>(0,se.jsx)("div",{style:{position:"absolute",left:sn-8,right:0,top:O===M.length-1?"calc(100% - 1px)":`${x(w)}%`,height:1,background:"var(--graview-edge)"},children:(0,se.jsx)("span",{style:{position:"absolute",left:-(sn-8),...O===M.length-1?{bottom:2}:{top:-7},width:sn-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:d(w)})},w)),(0,se.jsx)("div",{style:{position:"absolute",inset:0,left:sn,display:"flex",gap:Lr},children:a.columns.map(w=>(0,se.jsx)(ka,{spans:p.filter(O=>O.columnIds.includes(w.id)),window:k,format:d,hue:o,emphasisOf:l,brokenIds:y},w.id))})]})]})})}function ba(){let e=(0,Me.useRef)(null),[t,n]=(0,Me.useState)(new Set);return(0,Me.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let a=[...r.querySelectorAll("[data-graview-span-name]")].filter(i=>i.scrollWidth>i.clientWidth+.5).map(i=>i.getAttribute("data-graview-span-name")).filter(i=>!t.has(i));a.length>0&&n(new Set([...t,...a]))}),(0,Me.useLayoutEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let a=Math.round(r.clientWidth),i=new ResizeObserver(()=>{let s=Math.round(r.clientWidth);s!==a&&(a=s,n(new Set))});return i.observe(r),()=>i.disconnect()},[]),{column:e,oneLine:t}}var xa=(e,t)=>t===0?e:e.slice(0,t),Rr=[0,3,1];function Sa({columns:e}){let t=(0,Me.useRef)(null),[n,r]=(0,Me.useState)(0);(0,Me.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(m=>m.scrollWidth>m.clientWidth+.5)&&n<Rr.length-1&&r(n+1)}),(0,Me.useLayoutEffect)(()=>{let i=t.current;if(!i||typeof ResizeObserver>"u")return;let s=i.clientWidth,m=new ResizeObserver(()=>{i.clientWidth!==s&&(s=i.clientWidth,r(0))});return m.observe(i),()=>m.disconnect()},[]);let a=Rr[n];return(0,se.jsx)("div",{ref:t,style:{display:"flex",gap:Lr,paddingLeft:sn,paddingBottom:10},children:e.map(i=>{let s=xa(i.label,a);return(0,se.jsx)("div",{"data-graview-day-head":i.id,title:s===i.label?void 0:i.label,...s===i.label?{}:{"aria-label":i.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:s},i.id)})})}function ka({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:i}){let s=t.end-t.start,m=o=>(o-t.start)/s*100,u=o=>(o.end-o.start)/s<ha,b=pa(e.filter(o=>!u(o))),l=[...e.filter(u)].sort((o,d)=>o.start-d.start),y=Math.max(1,...b.map(o=>o.lanes)),p=ba();return(0,se.jsxs)("div",{ref:p.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[b.map(o=>{let d=100/y,k=Math.max(1.6,m(o.end)-m(o.start));return(0,se.jsx)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":a(o.id),"data-graview-flagged":i.has(o.id)?"":void 0,title:`${o.label} \xB7 ${n(o.start)}\u2013${n(o.end)}`,style:{position:"absolute",top:`${m(o.start)}%`,height:`${k}%`,left:`${o.lane*d}%`,width:`${d}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,se.jsx)("div",{"data-graview-span-name":o.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...p.oneLine.has(o.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...fa(a(o.id),r(o)),...i.has(o.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:k>=3.4?o.label:null})},o.id)}),l.map(o=>{let d=a(o.id);return(0,se.jsxs)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":d,"data-graview-moment":"",title:`${o.label} \xB7 ${n(o.start)}`,style:{position:"absolute",top:`${m(o.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,se.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:d==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(o.start)}),(0,se.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:d==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:o.label}),(0,se.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:i.has(o.id)?"var(--graview-warn)":d==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness))`,boxShadow:i.has(o.id)?"0 0 0 3px var(--graview-warn)":d==="lit"?"0 0 0 3px var(--graview-accent-dim)":d==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness) / 0.45)`}})]},o.id)})]})}function Tr(e){function t(n){let{store:r}=oe(),a=Object.keys(e.bindings),{nodes:i,bar:s}=Te(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]}:{}}),m=(0,se.jsx)(va,{schema:r.schema,...n,nodes:i,options:e});return ze(n,r.schema,s?(0,se.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,m]}):m)}return{name:"timeline",requiredRoles:[...Er],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>Mr(a,e.bindings,r)).filter(a=>a!==null)}}}var Je=Y(te(),1),Pr=new WeakMap;function Ca(e){return e===1440?t=>Xe(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Xe(Math.floor(t)*60):t=>String(t)}function $a(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Tr({...t,extent:n,format:Ca(n)}).View}case"calendar":return lr({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return wr(t).View;case"board":return Ft(t).View;case"plan":return $r(t).View;case"reach":return Ar.View;case"columns":return ur(t).View;case"blocks":return Oa(bt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function Oa(e,t){return n=>{let r=(0,Je.jsx)(Gt,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,Je.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode==="fullscreen"?(0,Je.jsx)("div",{style:{padding:"14px 16px"},children:r}):(0,Je.jsx)(pe,{title:n.label??"",children:r})}}function Lo(e){let t=Pr.get(e);if(!t){let n=$a(e),r=a=>(0,Je.jsx)(n,{...a,label:e.title});Pr.set(e,t=r)}return t}export{Ca as a,Lo as b};
32
+ ${r}`);this.hint=r;this.name="PlanBindingError"}},Cn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',vr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function $n(e,t,n,r){let a=c=>c,i=c=>r?Se(r.tryDefinition(c.kind),c):String(a(c).label??c.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new Qe(`No kind is declared for "${n.regions}".`,Cn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Qe(`No kind is declared for "${n.markers}".`,Cn);let s=e.filter(c=>c.kind===n.regions);if(!r&&s.length===0)throw new Qe(`Nothing to draw: no "${n.regions}" nodes.`,Cn);let u=r?.tryDefinition(n.regions)?.fields?.shape;if(u!==void 0&&!(n.outline in u))throw new Qe(`"${n.regions}" has no field called "${n.outline}".`,Cn);let b=(()=>{let c=new Map;if(n.nests)for(let x of t)x.kind===n.nests&&c.set(x.from,x.to);return x=>{let A=0,M=c.get(x),P=new Set([x]);for(;M!==void 0&&!P.has(M)&&A<s.length;)P.add(M),A+=1,M=c.get(M);return A}})(),l=n.markers?e.filter(c=>c.kind===n.markers):[],y=new Map;if(n.within)for(let c of t)c.kind===n.within&&y.set(c.from,c.to);let p=[],o=new Map;for(let c of l){let x=n.at===void 0?void 0:a(c)[n.at],A=y.get(c.id);if(!vr(x)||A===void 0){p.push({id:c.id,label:i(c)});continue}let M=n.markerKind===void 0?void 0:a(c)[n.markerKind],P=o.get(A)??[];P.push({id:c.id,label:i(c),at:x,...typeof M=="string"?{what:M}:{}}),o.set(A,P)}let d=[],k=[];for(let c of s){let x=a(c)[n.outline];if(!Array.isArray(x)||x.length<3||!x.every(vr)){d.push({id:c.id,label:i(c)});continue}let A=n.regionKind===void 0?void 0:a(c)[n.regionKind];k.push({id:c.id,label:i(c),outline:x,center:Mt(x),depth:b(c.id),markers:o.get(c.id)??[],...typeof A=="string"?{what:A}:{}})}return k.sort((c,x)=>c.depth-x.depth),{regions:k,undrawn:d,strays:p}}var Ie=Y(De(),1);var B=Y(te(),1);function xr({map:e,options:t,implicated:n,flagged:r}){return(0,B.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:".25rem"},children:[e.regions.map(a=>{let i=On(a.id,n,r);return(0,B.jsxs)("li",{"data-graview-pick":a.id,...i?{"data-graview-emphasis":i}:{},style:{display:"flex",flexWrap:"wrap",gap:".5rem",justifyContent:"space-between",minWidth:0,padding:".25rem .4rem",borderRadius:".35rem",background:i==="flagged"?Xn(a.what,i,t.hues):void 0},children:[(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,B.jsxs)("span",{style:{opacity:.7,whiteSpace:"nowrap"},children:[a.what?`${a.what} \xB7 `:"",a.markers.length]})]},a.id)}),e.undrawn.map(a=>(0,B.jsxs)("li",{"data-graview-pick":a.id,style:{display:"flex",gap:".5rem",opacity:.7,padding:".25rem .4rem"},children:[(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,B.jsx)("span",{style:{whiteSpace:"nowrap"},children:t.undrawnLabel??"not drawn"})]},a.id))]})}var Jn=1e3,Sr=.022,on={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"},On=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},An=(e,t)=>(e===void 0?void 0:t?.[e])??be(e??"region"),Xn=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${An(e,n)} 52% 48%) 24%, var(--graview-panel))`,kr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${An(e,n)} 48% 42%) 78%, var(--graview-ink))`;function ca(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 Cr({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:i,implicated:s,flagged:m}){let{store:u}=oe(),b=u.graph.allEdges(),l=u.graph.allNodes(),y=n===void 0?void 0:new Set(n.map(h=>h.id)),p=y===void 0?l:l.filter(h=>h.kind!==t.regions||y.has(h.id)),o=$n(p,b,t,e),d=o.regions.length,k=o.regions.reduce((h,$)=>h+$.markers.length,0);if(a==="glyph")return(0,B.jsx)(ke,{label:`${r??"Ground"} \xB7 ${d}`,...o.undrawn.length>0?{meta:`+${o.undrawn.length} undrawn`}:{},selected:i});if(a==="summary")return(0,B.jsx)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,children:(0,B.jsx)(xr,{map:o,options:t,...s?{implicated:s}:{},...m?{flagged:m}:{}})});let c=(0,Ie.useMemo)(()=>{let h=1/0,$=1/0,T=-1/0,Z=-1/0,H=K=>{K.x<h&&(h=K.x),K.x>T&&(T=K.x),K.y<$&&($=K.y),K.y>Z&&(Z=K.y)};for(let K of o.regions){for(let le of K.outline)H(le);for(let le of K.markers)H(le.at)}if(!Number.isFinite(h)||T-h<=0||Z-$<=0)return{x0:0,y0:0,x1:1,y1:1};let U=Math.max(T-h,Z-$)*.04;return{x0:h-U,y0:$-U,x1:T+U,y1:Z+U}},[o.regions]),x=(c.x1-c.x0)/(c.y1-c.y0),A=t.aspect??Math.min(3.2,Math.max(.55,x)),M=Math.round(Jn/(c.x1-c.x0)),P=Math.round(M*(c.x1-c.x0)),w=Math.round(P/A),O={x:c.x0*M,y:c.y0*M-(w-M*(c.y1-c.y0))/2,w:P,h:w},g=M,L=O.w,N=(s?.length??0)>0||(m?.length??0)>0,G=(0,Ie.useRef)(null),{touchable:C,legible:q}=xt(G,{units:O.w,target:L*Sr*2}),W=zn("--graview-font-display","serif"),ce=zn("--graview-font-body","sans-serif"),{named:ae,placed:ne,tagged:D}=(0,Ie.useMemo)(()=>{let h=[],$=L*.012,T=Jn*.004,Z=(fe,X)=>!h.some(ye=>ye!==X&&Tt({x0:fe.x0-T,y0:fe.y0-T,x1:fe.x1+T,y1:fe.y1+T},ye)),H=[...o.regions].sort((fe,X)=>In(X.outline)-In(fe.outline)),U=new Map,K=new Map;for(let fe of H){let X=Et(fe.outline),ye=Math.max(0,(X.bottom-X.top)*g*.55),Ce=null;for(let $e of[.12,.26,.42,.6,.78]){let V=X.top+$e*(X.bottom-X.top),me=Bn(fe.outline,V),xe=Math.max(0,(me.x1-me.x0)*M-$*2),de=Lt(fe.label,{room:xe,height:ye,size:L*.023,floor:L*.015,measure:W});if(de===null)continue;let ve=Math.max(...de.lines.map(Nr=>W(Nr,de.fontSize))),Oe=de.lines.length*de.fontSize*1.15,et=X.top*g+$+Oe/2,nt=X.bottom*g-$-Oe/2,ln=nt<et?(X.top+X.bottom)*g/2:Math.min(Math.max(V*g,et),nt),Rn=Bn(fe.outline,ln/g),En=Rn.x0*M+$;if(ve>(Rn.x1-Rn.x0)*M-$*2)continue;let tt={x0:En,y0:ln-Oe/2,x1:En+ve,y1:ln+Oe/2};if(Z(tt)){h.push(tt),Ce={fitted:de,x:En,y:ln};break}}U.set(fe.id,Ce?.fitted??null),Ce!==null&&K.set(fe.id,{x:Ce.x,y:Ce.y})}let le=L*.018,ge=new Map,J=L*.011+L*.004,We=new Map;for(let fe of o.regions)for(let X of fe.markers){let ye={x0:X.at.x*M-J,y0:X.at.y*g-J,x1:X.at.x*M+J,y1:X.at.y*g+J};We.set(X.id,ye),h.push(ye)}for(let fe of C?o.regions:[])for(let X of fe.markers){let ye=L*.018,Ce=ce(X.label,le),$e=X.at.x*M,V=X.at.y*g,me=le*1.15,xe=[{x:$e+ye,y:V,anchor:"start"},{x:$e-ye,y:V,anchor:"end"},{x:$e+ye*.7,y:V-me,anchor:"start"},{x:$e-ye*.7,y:V-me,anchor:"end"},{x:$e+ye*.7,y:V+me,anchor:"start"},{x:$e-ye*.7,y:V+me,anchor:"end"},{x:$e,y:V-me*1.1,anchor:"start"},{x:$e,y:V+me*1.1,anchor:"start"}];for(let de of xe){let ve=de.anchor==="start"?de.x:de.x-Ce,Oe={x0:ve,y0:de.y-le*.62,x1:ve+Ce,y1:de.y+le*.62};if(!(ve<O.x+4||ve+Ce>O.x+O.w-4)&&!(Oe.y0<O.y+2||Oe.y1>O.y+O.h-2)&&Z(Oe,We.get(X.id))){h.push(Oe),ge.set(X.id,{at:{x:de.x,y:de.y},anchor:de.anchor,size:le});break}}}return{named:U,placed:K,tagged:ge}},[o.regions,Jn,g,C,W,ce]),Q=(0,Ie.useMemo)(()=>{let h=[];for(let $ of o.regions)(ae.get($.id)?.whole??!1)===!1&&h.push({id:$.id,label:$.label,what:$.what,round:!1});for(let $ of o.regions)for(let T of $.markers)(!C||!D.has(T.id))&&h.push({id:T.id,label:T.label,what:T.what,round:!0});return h},[o.regions,ae,D,C]),{principal:ue}=oe(),[I,E]=(0,Ie.useState)(null),_=t.draw!==void 0,f=t.place!==void 0,v=h=>{if(I===null)return;h.stopPropagation();let $=ca(h);if(I.kind==="marker"){u.apply({name:t.place.act,args:{[t.place.id]:I.id,[t.place.at]:$}},{author:ue,intent:`Placed ${I.label} on the map`}),E(null);return}E({...I,corners:[...I.corners,$]})},S=()=>{I===null||I.kind!=="region"||I.corners.length<3||(u.apply({name:t.draw.act,args:{[t.draw.id]:I.id,[t.draw.outline]:I.corners}},{author:ue,intent:`Drew ${I.label} on the map \u2014 ${I.corners.length} corners`}),E(null))},R=I===null?o.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:I.kind==="marker"?`Click where ${I.label} stands.`:I.corners.length<3?`Click the corners of ${I.label} \u2014 ${3-I.corners.length} more to make an area.`:`${I.corners.length} corners. Keep clicking, or press Done.`;return q?(0,B.jsxs)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,...o.undrawn.length>0?{meta:`${o.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:i,fit:!0,children:[(0,B.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${O.w} / ${O.h}`,overflow:"hidden"},children:(0,B.jsxs)("svg",{ref:G,viewBox:`${O.x} ${O.y} ${O.w} ${O.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:I!==null?"application":C?"group":"img","aria-label":I===null?`${r??"The plan"}: ${d} drawn, ${k} standing in them`:R??"Drawing",onClick:v,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:I===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,B.jsx)("text",{x:O.x+O.w-L*.028,y:O.y+L*.034,fontSize:L*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),R!==null&&o.regions.length===0?(0,B.jsx)("text",{x:O.x+O.w/2,y:O.y+O.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:L*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:R}):null,I!==null&&I.kind==="region"&&I.corners.length>0?(0,B.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,B.jsx)("polyline",{points:I.corners.map(h=>`${h.x*M},${h.y*g}`).join(" "),fill:I.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),I.corners.map((h,$)=>(0,B.jsx)("circle",{cx:h.x*M,cy:h.y*g,r:L*.008,fill:"var(--graview-accent)"},$))]}):null,o.regions.map(h=>{let $=On(h.id,s,m),T=N&&$===void 0?.34:1,Z=h.outline.map(H=>`${H.x*M},${H.y*g}`).join(" ");return(0,B.jsx)("g",{"data-graview-pick":h.id,...$?{"data-graview-emphasis":$}:{},role:"button","aria-label":`${h.label}${h.what?`, ${h.what}`:""}, ${h.markers.length} standing in it`,style:{opacity:T,cursor:"pointer"},children:(0,B.jsx)("polygon",{points:Z,fill:Xn(h.what,$,t.hues),stroke:kr(h.what,$,t.hues),strokeWidth:$==="flagged"?5:2.5,strokeLinejoin:"round"})},h.id)}),o.regions.flatMap(h=>h.markers.map($=>{let T=On($.id,s,m),Z=N&&T===void 0?.34:1;return(0,B.jsxs)("g",{...C?{"data-graview-pick":$.id,role:"button","aria-label":`${$.label}${$.what?`, ${$.what}`:""}, in ${h.label}`}:{"aria-hidden":!0},...T?{"data-graview-emphasis":T}:{},style:{opacity:Z,cursor:C?"pointer":"default"},children:[C?(0,B.jsx)("circle",{cx:$.at.x*M,cy:$.at.y*g,r:L*Sr,fill:"transparent"}):null,(0,B.jsx)("circle",{cx:$.at.x*M,cy:$.at.y*g,r:L*.011,fill:T==="flagged"?"var(--graview-warn)":`hsl(${An($.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:L*.004}),D.has($.id)?(0,B.jsx)("text",{x:D.get($.id).at.x,y:D.get($.id).at.y,textAnchor:D.get($.id).anchor,dominantBaseline:"middle",fontSize:D.get($.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,D.get($.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${$.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:$.label}):null]},$.id)})),o.regions.map(h=>{let $=ae.get(h.id),T=ne.get(h.id);if(!$||T===void 0)return null;let Z=On(h.id,s,m);return(0,B.jsx)("text",{x:T.x,y:T.y-($.lines.length-1)*$.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:$.fontSize,fill:"var(--graview-ink)",opacity:N&&Z===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,$.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${h.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:$.lines.map((H,U)=>(0,B.jsx)("tspan",{x:T.x,dy:U===0?0:$.fontSize*1.15,children:H},H+String(U)))},`label-${h.id}`)})]})}),Q.length>0?(0,B.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:Q.map(h=>(0,B.jsxs)("li",{"data-graview-pick":h.id,style:{display:"flex",alignItems:"center",gap:".35rem",minWidth:0,minHeight:"max(1.5rem, 24px)",padding:"0 .15rem",cursor:"pointer"},children:[(0,B.jsx)("span",{"aria-hidden":"true",style:{width:h.round?".55rem":".7rem",height:h.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:h.round?"50%":".15rem",background:h.round?`hsl(${An(h.what,t.hues)} 55% 45%)`:Xn(h.what,void 0,t.hues),border:h.round?void 0:`1px solid ${kr(h.what,void 0,t.hues)}`}}),(0,B.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:h.label})]},h.id))}):null,I!==null?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[o.regions.length>0&&R!==null?(0,B.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:R}):null,I.kind==="region"?(0,B.jsxs)("button",{type:"button",onClick:S,disabled:I.corners.length<3,"data-testid":"draw-done",style:{...on,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",I.label]}):null,I.kind==="region"&&I.corners.length>0?(0,B.jsx)("button",{type:"button",onClick:()=>E({...I,corners:I.corners.slice(0,-1)}),style:on,children:"Undo a corner"}):null,(0,B.jsx)("button",{type:"button",onClick:()=>E(null),style:on,"data-testid":"draw-cancel",children:"Stop"})]}):(0,B.jsxs)(B.Fragment,{children:[_&&o.undrawn.length>0?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,B.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.undrawnLabel??"Not drawn yet",":"]}),o.undrawn.map(h=>(0,B.jsxs)("button",{type:"button",style:on,onClick:()=>E({kind:"region",id:h.id,label:h.label,corners:[]}),"data-testid":`draw-${h.id}`,children:["Draw ",h.label]},h.id))]}):null,f&&o.strays.length>0?(0,B.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,B.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.strayLabel??"Not placed",":"]}),o.strays.map(h=>(0,B.jsxs)("button",{type:"button",style:on,onClick:()=>E({kind:"marker",id:h.id,label:h.label}),"data-testid":`place-${h.id}`,children:["Place ",h.label]},h.id))]}):null,t.help!==void 0&&(o.undrawn.length>0||o.strays.length>0)?(0,B.jsx)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem"},children:(0,B.jsx)("a",{href:t.help.href,"data-testid":"map-help",children:t.help.label})}):null,!_&&(o.undrawn.length>0||o.strays.length>0)?(0,B.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[o.undrawn.map(h=>h.label).join(", "),o.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",o.strays.map(h=>h.label).join(", "),o.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,B.jsx)(pe,{title:r??"The plan",subtitle:`${d} drawn \xB7 ${k} standing in them`,selected:i,children:(0,B.jsx)(xr,{map:o,options:t,...s?{implicated:s}:{},...m?{flagged:m}:{}})})}var Or=Y(te(),1);function $r(e){function t(n){let{store:r}=oe();return(0,Or.jsx)(Cr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...br],options:e,View:t,build(n,r,a){return $n(n,r,e,a)}}}var he=Y(te(),1);function ua(e,t,n){let r=t.flatMap(i=>(i.subject&&i.subject.kinds!=="*"?i.subject.kinds:[null]).map(m=>({name:i.name,title:i.title??i.name,kind:m}))),a=[];for(let i of n){let s={kind:"human",id:"themselves",roles:[i]};for(let m of r){let u=m.kind??void 0,b=Tn(e,s,m.name,u).ok,l=!b&&Tn(e,s,m.name,u,void 0,"themselves").ok;a.push({role:i,act:m.name,kind:m.kind,may:b?"yes":l?"self":"no"})}}return{roles:n,acts:r,cells:a}}function ga({label:e,fidelity:t,mode:n}){let{store:r}=oe(),a=r.policy,i=a?.roles??[],s=r.allMutations().filter(y=>!y.derived).map(y=>({name:y.name,...y.title?{title:y.title}:{},...y.subject?{subject:y.subject}:{}})),m=ua(a,s,i),u=e??"Who may do what";if(!a||i.length===0)return(0,he.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,he.jsx)(ke,{label:`${u} \xB7 ${i.length} ${i.length===1?"role":"roles"}`,hue:be("role")});let b=n==="fullscreen",l=y=>y==="yes"?"\u25CF":y==="self"?"\u25D0":"\xB7";return(0,he.jsxs)("div",{"data-testid":"reach-lens",style:{display:"grid",gap:10,padding:b?0:14,borderRadius:"var(--graview-radius, 12px)",background:b?"transparent":"var(--graview-panel)",border:b?"none":"1px solid var(--graview-edge)",color:"var(--graview-ink)",minWidth:0},children:[(0,he.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,he.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:u}),(0,he.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,he.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,he.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,he.jsx)("thead",{children:(0,he.jsxs)("tr",{children:[(0,he.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"}),m.acts.map(y=>(0,he.jsxs)("th",{scope:"col",title:y.kind?`${y.title}, on ${st(un(r.schema.tryDefinition(y.kind),y.kind))}`:y.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[y.title,y.kind?(0,he.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",y.kind]}):null]},`${y.name}|${y.kind??""}`))]})}),(0,he.jsx)("tbody",{children:m.roles.map(y=>(0,he.jsxs)("tr",{children:[(0,he.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:y}),m.acts.map(p=>{let o=m.cells.find(d=>d.role===y&&d.act===p.name&&d.kind===p.kind);return(0,he.jsx)("td",{"data-graview-reach":o.may,title:`${y} ${o.may==="yes"?"may":o.may==="self"?"may, on their own record,":"may not"} ${p.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:o.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:o.may==="no"?"0.875rem":"0.8125rem"},children:l(o.may)},`${p.name}|${p.kind??""}`)})]},y))})]})})]})}var Ar={name:"reach",requiredRoles:[],View:ga};var Me=Y(De(),1);var se=Y(te(),1),Er=["start","end"];function ma(e,t,{pad:n=45,minimum:r=480}={}){if(e.length===0)return{start:0,end:t};let a=Math.min(...e.map(b=>b.start)),i=Math.max(...e.map(b=>b.end)),s=Math.max(0,a-n),m=Math.min(t,i+n),u=r-(m-s);return u>0&&(s=Math.max(0,s-u/2),m=Math.min(t,s+r)),{start:Math.floor(s),end:Math.ceil(m)}}function pa(e){let t=[...e].sort((i,s)=>i.start-s.start||i.end-s.end||i.id.localeCompare(s.id)),n=[],r=t.map(i=>{let s=n.findIndex(m=>m<=i.start);return s===-1?(s=n.length,n.push(i.end)):n[s]=i.end,{...i,lane:s,lanes:1}}),a=Math.max(1,n.length);return r.map(i=>({...i,lanes:a}))}var Zn=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 Mr(e,t,n){let r=Ge(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=Er.filter(l=>{let y=r[l];return y?i?!(y in i):!(y in a):!0});if(s.length>0)throw new Zn(e.kind,s);let m=Number(a[r.start]??Number.NaN),u=Number(a[r.end]??m);if(!Number.isFinite(m))return null;let b=[];if(r.columns){let l=a[r.columns];Array.isArray(l)&&b.push(...l.map(String))}if(r.column){let l=a[r.column];l!=null&&b.push(String(l))}return{id:e.id,kind:e.kind,label:Se(n?.tryDefinition(e.kind),e),columnIds:b,start:m,end:Number.isFinite(u)?Math.max(u,m):m}}function fa(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 ha=.045,sn=52,Lr=4,ya=44,wa=240;function va({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:m=[],flagged:u=[]}){let b=new Set([...m,...s]),l=w=>b.size===0?"plain":b.has(w)?"lit":"dimmed",y=new Set(u),p=(e??[]).map(w=>Mr(w,a.bindings,i)).filter(w=>w!==null),o=a.hueOf??(w=>be(w.kind));if(n==="glyph")return(0,se.jsx)(ke,{label:`${t??"Timeline"} \xB7 ${p.length}`,hue:be("timeline")});if(n==="summary")return(0,se.jsx)(pe,{title:t??"Timeline",meta:`${p.length} items`,tone:"muted",children:(0,se.jsx)(Ne,{max:a.columns.length,items:a.columns.map(w=>({id:w.id,label:`${w.label} ${p.filter(O=>O.columnIds.includes(w.id)).length}`,hue:be(w.id)}))})});let d=a.format??String,k=ma(p,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),c=k.end-k.start,x=w=>(w-k.start)/c*100,A=a.tick??Math.max(60,Math.round(c/8/60)*60),M=[];for(let w=Math.ceil(k.start/A)*A;w<=k.end;w+=A)M.push(w);let P=r==="fullscreen";return(0,se.jsx)(pe,{title:t??"Timeline",meta:`${d(k.start)} \u2013 ${d(k.end)}`,style:{gap:12,...P?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,se.jsx)(Sa,{columns:a.columns}),(0,se.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(wa,Math.ceil(c/A)*ya)},children:[M.map((w,O)=>(0,se.jsx)("div",{style:{position:"absolute",left:sn-8,right:0,top:O===M.length-1?"calc(100% - 1px)":`${x(w)}%`,height:1,background:"var(--graview-edge)"},children:(0,se.jsx)("span",{style:{position:"absolute",left:-(sn-8),...O===M.length-1?{bottom:2}:{top:-7},width:sn-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:d(w)})},w)),(0,se.jsx)("div",{style:{position:"absolute",inset:0,left:sn,display:"flex",gap:Lr},children:a.columns.map(w=>(0,se.jsx)(ka,{spans:p.filter(O=>O.columnIds.includes(w.id)),window:k,format:d,hue:o,emphasisOf:l,brokenIds:y},w.id))})]})]})})}function ba(){let e=(0,Me.useRef)(null),[t,n]=(0,Me.useState)(new Set);return(0,Me.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let a=[...r.querySelectorAll("[data-graview-span-name]")].filter(i=>i.scrollWidth>i.clientWidth+.5).map(i=>i.getAttribute("data-graview-span-name")).filter(i=>!t.has(i));a.length>0&&n(new Set([...t,...a]))}),(0,Me.useLayoutEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let a=Math.round(r.clientWidth),i=new ResizeObserver(()=>{let s=Math.round(r.clientWidth);s!==a&&(a=s,n(new Set))});return i.observe(r),()=>i.disconnect()},[]),{column:e,oneLine:t}}var xa=(e,t)=>t===0?e:e.slice(0,t),Rr=[0,3,1];function Sa({columns:e}){let t=(0,Me.useRef)(null),[n,r]=(0,Me.useState)(0);(0,Me.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(m=>m.scrollWidth>m.clientWidth+.5)&&n<Rr.length-1&&r(n+1)}),(0,Me.useLayoutEffect)(()=>{let i=t.current;if(!i||typeof ResizeObserver>"u")return;let s=i.clientWidth,m=new ResizeObserver(()=>{i.clientWidth!==s&&(s=i.clientWidth,r(0))});return m.observe(i),()=>m.disconnect()},[]);let a=Rr[n];return(0,se.jsx)("div",{ref:t,style:{display:"flex",gap:Lr,paddingLeft:sn,paddingBottom:10},children:e.map(i=>{let s=xa(i.label,a);return(0,se.jsx)("div",{"data-graview-day-head":i.id,title:s===i.label?void 0:i.label,...s===i.label?{}:{"aria-label":i.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:s},i.id)})})}function ka({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:i}){let s=t.end-t.start,m=o=>(o-t.start)/s*100,u=o=>(o.end-o.start)/s<ha,b=pa(e.filter(o=>!u(o))),l=[...e.filter(u)].sort((o,d)=>o.start-d.start),y=Math.max(1,...b.map(o=>o.lanes)),p=ba();return(0,se.jsxs)("div",{ref:p.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[b.map(o=>{let d=100/y,k=Math.max(1.6,m(o.end)-m(o.start));return(0,se.jsx)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":a(o.id),"data-graview-flagged":i.has(o.id)?"":void 0,title:`${o.label} \xB7 ${n(o.start)}\u2013${n(o.end)}`,style:{position:"absolute",top:`${m(o.start)}%`,height:`${k}%`,left:`${o.lane*d}%`,width:`${d}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,se.jsx)("div",{"data-graview-span-name":o.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...p.oneLine.has(o.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...fa(a(o.id),r(o)),...i.has(o.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:k>=3.4?o.label:null})},o.id)}),l.map(o=>{let d=a(o.id);return(0,se.jsxs)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":d,"data-graview-moment":"",title:`${o.label} \xB7 ${n(o.start)}`,style:{position:"absolute",top:`${m(o.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,se.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:d==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(o.start)}),(0,se.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:d==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:o.label}),(0,se.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:i.has(o.id)?"var(--graview-warn)":d==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness))`,boxShadow:i.has(o.id)?"0 0 0 3px var(--graview-warn)":d==="lit"?"0 0 0 3px var(--graview-accent-dim)":d==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness) / 0.45)`}})]},o.id)})]})}function Tr(e){function t(n){let{store:r}=oe(),a=Object.keys(e.bindings),{nodes:i,bar:s}=Te(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]}:{}}),m=(0,se.jsx)(va,{schema:r.schema,...n,nodes:i,options:e});return ze(n,r.schema,s?(0,se.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,m]}):m)}return{name:"timeline",requiredRoles:[...Er],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>Mr(a,e.bindings,r)).filter(a=>a!==null)}}}var Je=Y(te(),1),Pr=new WeakMap;function Ca(e){return e===1440?t=>Xe(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Xe(Math.floor(t)*60):t=>String(t)}function $a(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Tr({...t,extent:n,format:Ca(n)}).View}case"calendar":return lr({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return wr(t).View;case"board":return Ft(t).View;case"plan":return $r(t).View;case"reach":return Ar.View;case"columns":return ur(t).View;case"blocks":return Oa(bt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function Oa(e,t){return n=>{let r=(0,Je.jsx)(Gt,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,Je.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode==="fullscreen"?(0,Je.jsx)("div",{style:{padding:"14px 16px"},children:r}):(0,Je.jsx)(pe,{title:n.label??"",children:r})}}function Mo(e){let t=Pr.get(e);if(!t){let n=$a(e),r=a=>(0,Je.jsx)(n,{...a,label:e.title});Pr.set(e,t=r)}return t}export{Ca as a,Mo as b};
@@ -0,0 +1 @@
1
+ import"./chunk.GZHZLJBF.js";import{n as P}from"./chunk.EBTYR5CZ.js";import"./chunk.OJGHDWI6.js";import"./chunk.OWL5GZ6U.js";import"./chunk.RSYFIL2Z.js";import"./chunk.R7F6UJVG.js";import"./chunk.DYW4D74X.js";import"./chunk.VP35BUUZ.js";import{$ as b,G as A,R as S}from"./chunk.7L6LYXCV.js";import"./chunk.SDO3U72B.js";import{Aa as w,na as L,vc as x}from"./chunk.7MQ7UWVW.js";import"./chunk.2AZTW66C.js";import{b as R}from"./chunk.AJZBJBMO.js";var u=R(A(),1);var n=R(S(),1),C={kind:"human"},p={color:"var(--graview-ink-muted)"};function I(e){if(e){if(/^https?:\/\//i.test(e))try{return new URL(e).href}catch{return}return L(e)?e:void 0}}function z(e){let o=b(),t=o?.linkedReads,[i,a]=(0,u.useState)(()=>t?t.answered(e)??"asking":null);return(0,u.useEffect)(()=>{if(!t){a(o?.linkedRecords?"asking":null);return}let d=t.answered(e);if(a(d===void 0?"asking":d),d!==void 0)return;let s=!0;return t.ask(e).then(l=>s&&a(l)),()=>{s=!1}},[t,o?.linkedRecords,e.address,e.kind,e.id]),i}function V({reference:e,as:o}){let t=b(),i=z(e),a={position:"relative",zIndex:x.raised,overflowWrap:"anywhere",minWidth:0,maxWidth:"100%"};if(i==="asking")return(0,n.jsx)("span",{"data-graview-linked":"","data-graview-linked-state":"asking","aria-busy":"true",style:{...p,...a},children:"Linked record"});if(i&&"denied"in i)return(0,n.jsx)("span",{"data-graview-linked":"","data-graview-linked-state":"denied",style:{...p,fontStyle:"italic",...a},children:"linked record (no access)"});if(!i)return(0,n.jsx)("span",{"data-graview-linked":"","data-graview-linked-state":"missing",style:{...p,fontStyle:"italic",...a},children:"linked record (not found)"});let d=I(i.href),s=t?.linkedRecords,l=t?.principal??C,g=s?.open?c=>{c.metaKey||c.ctrlKey||(c.preventDefault(),s.open(e,l))}:void 0,k=(0,n.jsx)("a",{"data-graview-linked-title":"",...d?{href:d}:{role:"link",tabIndex:0},...g?{onClick:g,onKeyDown:c=>!d&&(c.key==="Enter"||c.key===" ")?g(c):void 0}:{},style:{fontWeight:600,color:"inherit",textUnderlineOffset:3,cursor:d||g?"pointer":"default"},children:i.label});return o==="chip"?(0,n.jsx)("span",{"data-graview-linked":"","data-graview-linked-state":"found",title:i.describe,style:{display:"inline-flex",alignItems:"center",minHeight:24,...a},children:k}):(0,n.jsx)(D,{record:i,title:k,base:a})}function D({record:e,title:o,base:t}){return(0,n.jsxs)("span",{"data-graview-linked":"","data-graview-linked-state":"found",style:{display:"grid",gap:2,padding:"8px 10px",border:"1px solid var(--graview-line)",borderRadius:"var(--graview-radius-sm, 6px)",background:"var(--graview-surface)",...t},children:[(0,n.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"2px 8px"},children:[o,e.app?(0,n.jsxs)("span",{"data-graview-linked-app":"",style:{...p,fontSize:"0.75rem"},children:["in ",e.app]}):null]}),e.describe?(0,n.jsx)("span",{"data-graview-linked-describe":"",style:{...p,fontSize:"0.8125rem"},children:e.describe}):null,e.card&&e.card.length>0?(0,n.jsx)("span",{"data-graview-linked-card":"",style:{display:"flex",flexWrap:"wrap",gap:"2px 12px",fontSize:"0.8125rem"},children:e.card.map(i=>(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{style:p,children:i.label})," ",i.text]},i.label))}):null]})}function H({relation:e,refs:o,as:t="record",nodeId:i,field:a,style:d}){let s=(0,n.jsx)("span",{"data-graview-linked-list":"",style:{display:"grid",gap:6,minWidth:0,...d},children:o.map(l=>(0,n.jsx)(V,{reference:l,as:t},w(l)))});return i&&a?(0,n.jsx)(K,{nodeId:i,field:a,relation:e,refs:o,drawn:s}):s}function K({nodeId:e,field:o,relation:t,refs:i,drawn:a}){let{fields:d,commit:s}=P(e),l=d.find(f=>f.field===o),[g,k]=(0,u.useState)(!1);if(!l)return a;let c=t.cardinality==="one"?i[0]?w(i[0]):void 0:i.map(w);return(0,n.jsxs)("span",{style:{display:"grid",gap:6,minWidth:0},children:[a,g?(0,n.jsx)(N,{relation:t,value:c,label:"Link another record",onChange:f=>{s(l,f),k(!1)},onCancel:()=>k(!1)}):(0,n.jsx)("button",{type:"button","data-graview-linked-change":"",onClick:()=>k(!0),style:{justifySelf:"start",font:"inherit",fontSize:"0.8125rem",background:"none",border:0,padding:"4px 0",color:"var(--graview-accent)",cursor:"pointer",minHeight:24},children:"Change"})]})}function N({relation:e,value:o,onChange:t,onCancel:i,label:a}){let d=b(),s=d?.linkedRecords,l=d?.principal??C,g=(0,u.useId)(),[k,c]=(0,u.useState)(""),[f,m]=(0,u.useState)("asking");(0,u.useEffect)(()=>{if(!s)return;let r=!0;m("asking");let y=setTimeout(()=>{Promise.resolve().then(()=>s.find({address:e.address,kinds:e.kinds,query:k,limit:20},l)).then(h=>r&&m(Array.isArray(h)?h:"denied"),()=>r&&m([]))},150);return()=>{r=!1,clearTimeout(y)}},[s,e.address,e.kinds.join(","),k,l.kind,l.id]);let v=new Set([o].flat().filter(r=>typeof r=="string")),W=r=>{let y=w(r);if(e.cardinality==="one")return t(y);t(v.has(y)?[...v].filter(h=>h!==y):[...v,y])};return s?(0,n.jsxs)("span",{"data-graview-linked-picker":"",style:{display:"grid",gap:6,minWidth:0},children:[(0,n.jsx)("label",{htmlFor:g,style:{...p,fontSize:"0.8125rem"},children:a}),(0,n.jsx)("input",{id:g,type:"search",value:k,placeholder:`Find one in ${e.address}`,onChange:r=>c(r.target.value),style:{font:"inherit",minHeight:32,padding:"4px 8px",border:"1px solid var(--graview-line)",borderRadius:6,background:"var(--graview-surface)",color:"inherit",minWidth:0}}),f==="asking"?(0,n.jsx)("span",{"aria-busy":"true",style:p,children:"Looking\u2026"}):f==="denied"?(0,n.jsx)("span",{"data-graview-linked-state":"denied",style:{...p,fontStyle:"italic"},children:"linked record (no access)"}):f.length===0?(0,n.jsx)("span",{style:p,children:"Nothing there matches."}):(0,n.jsx)("ul",{role:"list",style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:4},children:f.map(r=>{let y=v.has(w(r));return(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button","data-graview-linked-candidate":w(r),"aria-pressed":y,onClick:()=>W(r),style:{display:"grid",gap:2,width:"100%",textAlign:"start",font:"inherit",padding:"6px 8px",minHeight:32,border:"1px solid var(--graview-line)",borderRadius:6,background:y?"var(--graview-accent-soft, var(--graview-surface))":"var(--graview-surface)",color:"inherit",cursor:"pointer"},children:[(0,n.jsx)("span",{style:{fontWeight:600},children:r.label}),r.describe?(0,n.jsx)("span",{style:{...p,fontSize:"0.8125rem"},children:r.describe}):null]})},w(r))})}),i?(0,n.jsx)("button",{type:"button",onClick:i,style:{justifySelf:"start",font:"inherit",fontSize:"0.8125rem",background:"none",border:0,padding:"4px 0",color:"var(--graview-ink-muted)",cursor:"pointer",minHeight:24},children:"Keep it as it is"}):null]}):(0,n.jsxs)("span",{"data-graview-linked-picker":"","data-graview-linked-state":"no-host",style:p,children:["This page cannot read ",e.address,", so nothing there can be linked here."]})}var U=e=>(0,n.jsx)(H,{...e}),j=e=>(0,n.jsx)(N,{...e});export{N as LinkedPicker,H as LinkedRecordView,j as drawLinkedPicker,U as drawLinkedRecord};
@@ -0,0 +1 @@
1
+ import{a as b,b as c,c as d,d as e,e as f}from"./chunk.S6BZXNMV.js";import"./chunk.GZA5ZNLJ.js";import"./chunk.R2B2ZAWI.js";import"./chunk.MI2HL3LQ.js";import"./chunk.TMBFLZNH.js";import{ub as a}from"./chunk.7MQ7UWVW.js";import"./chunk.2AZTW66C.js";import"./chunk.AJZBJBMO.js";export{a as ActRefusal,e as compileDocumentWithoutCheck,d as effectsOf,f as inDocumentWords,c as kindShapes,b as readDocument};
@@ -0,0 +1 @@
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as ee}from"./chunk.S2MP53RO.js";import{o as be,p as Z,s as F,t as Me}from"./chunk.EBTYR5CZ.js";import{m as j,n as we,o as ke,p as J,q as X}from"./chunk.OJGHDWI6.js";import{c as Se}from"./chunk.DYW4D74X.js";import{b as pe,c as ve,d as U,e as K,g as ye,o as Ae}from"./chunk.VP35BUUZ.js";import{$ as q,Aa as B,D as z,F as Y,G as O,J as me,O as fe,R as M,_ as A,aa as H,m as ce,sa as ge,ta as he,ua as T,v as ue,ya as _,z as de}from"./chunk.7L6LYXCV.js";import{a as E}from"./chunk.SDO3U72B.js";import{Sc as le,ha as ie,rc as ae,wc as se}from"./chunk.7MQ7UWVW.js";import{b as v}from"./chunk.AJZBJBMO.js";var P=v(O(),1),D=v(M(),1),te=T(E(()=>(__graviewPreload(import.meta.url,["./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.OIJP6PQV.js")))),De=te.part(t=>(0,D.jsx)(t.HoverChipDoor,{}),{quiet:!0}),xe="A",Q=T(E(()=>(__graviewPreload(import.meta.url,["./chunk.5A4AOFOA.js","./chunk.6PF5LWRK.js","./chunk.PEXPTDX7.js","./chunk.RPDTWQKA.js","./chunk.7MXQRSNR.js","./chunk.HJCQ6I3S.js","./chunk.A3WOUDOG.js","./chunk.WH2RYGXR.js","./chunk.C5NOO4CC.js","./chunk.XVWJD2DG.js","./chunk.XGRMQUFB.js","./chunk.6IEDQHKI.js","./chunk.5J2HETUO.js","./chunk.5TBK44MK.js","./chunk.VCOIFBUE.js","./chunk.BT6FUNQI.js","./chunk.MBOOUJOE.js","./chunk.64MP7636.js","./chunk.RY4E4JRI.js","./chunk.Q5XICUDZ.js","./chunk.UT6642FC.js","./chunk.SGRKCQ2X.js","./chunk.KG5R4GTK.js","./chunk.TI4OSTQV.js","./chunk.FKLEIR4Y.js","./chunk.QWY54AVN.js","./chunk.T4Q6OLZU.js","./chunk.R2B2ZAWI.js","./chunk.7XCBIID7.js","./chunk.MI2HL3LQ.js","./chunk.TMBFLZNH.js","./chunk.EBTYR5CZ.js","./chunk.OJGHDWI6.js","./chunk.OWL5GZ6U.js","./chunk.RSYFIL2Z.js","./chunk.R7F6UJVG.js","./chunk.DYW4D74X.js","./chunk.VP35BUUZ.js","./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.3B47UX2J.js"))));var Ce=Q.part((t,e)=>(0,D.jsx)(t.InspectorPane,{...e}),{what:"This card's acts"});function Le(t){let e=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&t()},n=globalThis;if(n.requestIdleCallback){let d=n.requestIdleCallback(e,{timeout:5e3});return()=>n.cancelIdleCallback?.(d)}let o=setTimeout(e,2500);return()=>clearTimeout(o)}var Oe=150,Ne="[data-graview-pick], [data-graview-view], [data-graview-record], [data-graview-act], [data-graview-field], a[href]";function Re(t){if(t.closest("[data-graview-face='pages'], [data-graview-popover]"))return null;let e=t.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??t.closest("[data-graview-view]")?.getAttribute("data-graview-view");return e?{face:"scene",on:e,about:[e]}:null}function We(t){let{store:e,principal:n,providers:o,ai:d}=A(),u=Me(),y=Y(d),s=(0,P.useRef)({aimAt:t,store:e,principal:n,providers:o,prepareSections:u,chipsOn:y});s.current={aimAt:t,store:e,principal:n,providers:o,prepareSections:u,chipsOn:y},(0,P.useEffect)(()=>{if(typeof document>"u")return;let r=null,w=null,k=null,p=g=>{let c=s.current,b=c.chipsOn?c.aimAt(g):null;b&&(k=g,te.load().then(G=>{k===g&&G.restOn(b,g)},()=>{}))},l=()=>{r&&clearTimeout(r.timer),r=null},m=g=>{let c=s.current,b=c.aimAt(g);if(!b)return;let G=JSON.stringify([b.face,b.on,b.about,b.field,b.place,b.act,c.store.log.length]);G!==w&&(w=G,c.prepareSections(b),Q.load().then(Pe=>Pe.prepareActs(c.store,b,{principal:c.principal,providers:c.providers}),()=>{}))},a=g=>g.target instanceof Element?g.target.closest(Ne):null,f=g=>{if(g.pointerType==="touch")return;let c=a(g);c!==null&&c===r?.element||(l(),c!==null&&(r={element:c,timer:setTimeout(()=>{r=null,m(c),p(c)},Oe)}))},h=g=>{let c=g.relatedTarget;k!==null&&!(c instanceof Node&&k.contains(c))&&(k=null,te.current?.leaveRest()),r!==null&&(c instanceof Node&&r.element.contains(c)||l())},S=g=>{if(g.pointerType==="mouse")return;let c=a(g);c&&m(c)},I=g=>{if(!ge())return;let c=a(g);c&&m(c)};return document.addEventListener("pointerover",f,{passive:!0}),document.addEventListener("pointerout",h,{passive:!0}),document.addEventListener("pointerdown",S,{capture:!0,passive:!0}),document.addEventListener("focusin",I),()=>{l(),document.removeEventListener("pointerover",f),document.removeEventListener("pointerout",h),document.removeEventListener("pointerdown",S,{capture:!0}),document.removeEventListener("focusin",I)}},[])}function rt({placement:t="float",openActs:e,aimAt:n}={}){let{menuAt:o,setMenuAt:d,registerActsDoor:u,ai:y}=A(),{selection:s}=_();We(n??Re),(0,P.useEffect)(()=>{if(Q.current)return;let l=()=>{h(),Q.prefetch()},m=()=>{},a=he(()=>void(m=Le(l))),f=["pointerdown","keydown"];for(let S of f)document.addEventListener(S,l,{capture:!0,passive:!0});function h(){a(),m();for(let S of f)document.removeEventListener(S,l,{capture:!0})}return h},[]),(0,P.useEffect)(()=>{if(t==="menu")return u({key:xe,open:e??(l=>{let m=l.getBoundingClientRect(),a=l.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??l.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0;d({x:Math.round(m.left+Math.min(16,m.width/2)),y:Math.round(Math.min(m.bottom,m.top+36)),...a?{on:a}:{}})})}),()=>u(null)},[t,u,d,e]);let r=o!==null||s.length>0&&e===void 0,[w,k]=(0,P.useState)(r);(0,P.useEffect)(()=>{r&&k(!0)},[r]);let p=Y(y)?(0,D.jsx)(P.Suspense,{fallback:null,children:(0,D.jsx)(De,{})}):null;return!w&&!r?p:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(P.Suspense,{fallback:null,children:(0,D.jsx)(Ce,{placement:t,chosen:e===void 0})}),p]})}var $=v(O(),1),V=v(M(),1),Ge=T(E(()=>(__graviewPreload(import.meta.url,["./chunk.5A4AOFOA.js","./chunk.6PF5LWRK.js","./chunk.PEXPTDX7.js","./chunk.LDU25CCL.js","./chunk.N3FONYEP.js","./chunk.CO2ZPX3D.js","./chunk.QXTLZSBL.js","./chunk.RPDTWQKA.js","./chunk.4ZHUGSJL.js","./chunk.DJ3BD7AZ.js","./chunk.S2MP53RO.js","./chunk.7MXQRSNR.js","./chunk.HJCQ6I3S.js","./chunk.A3WOUDOG.js","./chunk.WH2RYGXR.js","./chunk.C5NOO4CC.js","./chunk.XVWJD2DG.js","./chunk.XGRMQUFB.js","./chunk.6IEDQHKI.js","./chunk.5J2HETUO.js","./chunk.6XEATXZC.js","./chunk.5TBK44MK.js","./chunk.27QYTMXP.js","./chunk.VCOIFBUE.js","./chunk.RQBX7M7Q.js","./chunk.FLMNHV6A.js","./chunk.CTSPNTDX.js","./chunk.BT6FUNQI.js","./chunk.MBOOUJOE.js","./chunk.64MP7636.js","./chunk.RY4E4JRI.js","./chunk.Q5XICUDZ.js","./chunk.UT6642FC.js","./chunk.SGRKCQ2X.js","./chunk.KG5R4GTK.js","./chunk.TI4OSTQV.js","./chunk.FKLEIR4Y.js","./chunk.WVUJXDXZ.js","./chunk.QWY54AVN.js","./chunk.T4Q6OLZU.js","./chunk.R2B2ZAWI.js","./chunk.7XCBIID7.js","./chunk.MI2HL3LQ.js","./chunk.TMBFLZNH.js","./chunk.GZHZLJBF.js","./chunk.EBTYR5CZ.js","./chunk.OJGHDWI6.js","./chunk.OWL5GZ6U.js","./chunk.RSYFIL2Z.js","./chunk.R7F6UJVG.js","./chunk.DYW4D74X.js","./chunk.VP35BUUZ.js","./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.25VAWLKJ.js")))),ze=Ge.part((t,e)=>{let n=t.DraftFrame;return(0,V.jsx)(n,{...e})},{what:"The view"});function lt(t){let{seatTalk:e}=A();return(0,$.useSyncExternalStore)(e.subscribe,()=>e.get().draft!==null,()=>!1)?(0,V.jsx)($.Suspense,{fallback:null,children:(0,V.jsx)(ze,{...t})}):null}var C=v(O(),1),x=v(M(),1),Ee=T(E(()=>(__graviewPreload(import.meta.url,["./chunk.MBOOUJOE.js","./chunk.YKN2VWWQ.js","./chunk.Q5XICUDZ.js","./chunk.UT6642FC.js","./chunk.SGRKCQ2X.js","./chunk.KG5R4GTK.js","./chunk.ZEC64CK6.js","./chunk.TI4OSTQV.js","./chunk.T4Q6OLZU.js","./chunk.RSYFIL2Z.js","./chunk.R7F6UJVG.js","./chunk.DYW4D74X.js","./chunk.VP35BUUZ.js","./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.GSZYT6GF.js")))),qe=Ee.part((t,e)=>{let n=t.QuickAskCard;return(0,x.jsx)(n,{...e})},{what:"The quick ask"});function ft({face:t,on:e=!0}){let{ai:n,aiDesk:o,selection:d,view:u}=A(),y=fe()?.open??!1,s=e&&z(n)&&!y,r=ye(o),w=(0,C.useRef)(null),k=(0,C.useRef)({selection:d,place:u.within?.view});return k.current={selection:d,place:u.within?.view},(0,C.useEffect)(()=>{if(!s)return;let p=ve(o);return p.drawn+=1,U(p),()=>{p.drawn=Math.max(0,p.drawn-1),p.drawn===0&&(p.open=null),U(p)}},[s,o]),(0,C.useEffect)(()=>{if(!s)return;let p=l=>{if(l.defaultPrevented||l.key.toLowerCase()!=="k"||!(l.metaKey||l.ctrlKey)||l.altKey||l.shiftKey)return;let m=w.current?.closest("[data-graview-embed]"),a=l.target,f=!(a instanceof Node)||a===document.body||a===document.documentElement;if(m&&!(f||a instanceof Node&&m.contains(a)))return;l.preventDefault(),Ee.prefetch();let h=document.activeElement,{selection:S,place:I}=k.current;K(o,{pointed:{...S[0]!==void 0?{on:S[0]}:{},about:S,...I?{place:I}:{}},returnTo:h instanceof HTMLElement&&h!==document.body?h:null})};return window.addEventListener("keydown",p,!0),()=>window.removeEventListener("keydown",p,!0)},[s,o]),s?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("span",{ref:w,hidden:!0,"data-graview-quick-ask":t}),r?(0,x.jsx)(C.Suspense,{fallback:null,children:(0,x.jsx)(qe,{face:t,opening:r,close:()=>K(o,null)},r.at)}):null]}):null}var R=v(O(),1),L=v(M(),1),ne=T(E(()=>(__graviewPreload(import.meta.url,["./chunk.YKN2VWWQ.js","./chunk.Q5XICUDZ.js","./chunk.UT6642FC.js","./chunk.SGRKCQ2X.js","./chunk.KG5R4GTK.js","./chunk.ZEC64CK6.js","./chunk.TI4OSTQV.js","./chunk.T4Q6OLZU.js","./chunk.RSYFIL2Z.js","./chunk.R7F6UJVG.js","./chunk.DYW4D74X.js","./chunk.VP35BUUZ.js","./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.CXJXVBGF.js")))),He=ne.part((t,e)=>{let n=t.InlineAiMenu;return(0,L.jsx)(n,{...e})},{what:"The AI's suggestions"}),_e=ne.part((t,e)=>{let n=t.GhostTray;return(0,L.jsx)(n,{...e})},{quiet:!0});function Be(){let{ai:t}=A(),e=z(t);return(0,R.useMemo)(()=>e?n=>({id:"inline-ai",heading:"AI",render:o=>(0,L.jsx)(R.Suspense,{fallback:null,children:(0,L.jsx)(He,{target:n,close:o})}),prepare:()=>ne.prefetch()}):null,[e])}var Fe=[];function kt({children:t}){let e=Be(),n=(0,R.useMemo)(()=>e?[e]:Fe,[e]);return(0,L.jsx)(F,{sections:n,children:t})}function St(t){let{ai:e,aiDesk:n}=A(),{ghost:o}=me(n);return o===null||o.onCard||e.off?null:(0,L.jsx)(R.Suspense,{fallback:null,children:(0,L.jsx)(_e,{...t})})}var N=v(O(),1);var Te=v(M(),1),oe=T(E(()=>(__graviewPreload(import.meta.url,["./chunk.VP35BUUZ.js","./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.K6SPN4D6.js"))));function Ve(t){let e=t.about[0];if(t.about.length!==1||!e?.startsWith("aggregate:"))return;let n=e.slice(10).split("+");return n.length===1?n[0]:void 0}function $e(t,e){return t.filter(n=>n.as!==e.as&&!n.hidden&&(n.kind===e.kind||n.over?.includes(e.kind)===!0)).at(-1)}function Ye(t){let e=q(),n=e?.keptViews,o=e?.views,d=(0,N.useContext)(Ae);return(0,N.useMemo)(()=>!n||!o?null:u=>{if(u.place===void 0)return null;let y=n.current(),s=Ve(u),r=o.places().find(l=>l.as===u.place&&(s===void 0||l.kind===s||l.over?.includes(s)===!0));if(!r)return null;let w=le(r,y,n);if(!w)return null;let k=l=>void oe.load().then(m=>m.setHidden(r,w,n,l,d),String);return{id:"tidy-view",items:[r.hidden?{id:"show-view",label:"Show",hint:"Back in the places, for everyone",run:()=>k(!1)}:{id:"hide-view",label:"Hide",hint:"Off the places and the scene, for everyone",run:()=>k(!0)},{id:"delete-view",label:"Delete",hint:`Kept ${30} days under Recently deleted`,run:()=>{let l=$e(o.places(),r);oe.load().then(m=>m.remove(r,w,n,d).then(a=>a&&t?.(r,l)),String)}}],prepare:()=>oe.prefetch()}},[n,o,d,t])}var Ue=[];function Dt({children:t}){let{view:e,go:n}=B(),o=(0,N.useCallback)((y,s)=>{let r=e.within?.view;e.focusId===ue(y.kind)&&(r===void 0||r===y.as)&&n(s?de(e,s.kind,s.as):ce(e,!0))},[e,n]),d=Ye(o),u=(0,N.useMemo)(()=>d?[d]:Ue,[d]);return(0,Te.jsx)(F,{sections:u,children:t})}function Ot(t={}){return t.scope===void 0?ee:pe(ee,t.scope)}var W=v(O(),1),i=v(M(),1);function Ht({inside:t=!1,widthOf:e}={}){let{store:n,view:o,emphasis:d,setEmphasis:u}=A(),y=be(),{selection:s,set:r}=_(),{show:w}=B(),k=H(),p=(0,W.useMemo)(()=>{let a=new Map;for(let f of n.graph.allEdges()){let h=a.get(f.kind)??{count:0,ends:new Set};h.count+=1;for(let S of[f.from,f.to]){let I=n.graph.getNode(S);I&&h.ends.add(`kind:${I.kind}`)}a.set(f.kind,h)}return[...a.entries()].sort(([f],[h])=>f.localeCompare(h)).map(([f,h])=>({kind:f,count:h.count,ends:[...h.ends]}))},[n,k]),l=Math.max(0,...p.map(a=>a.count));if((0,W.useEffect)(()=>()=>u(null),[u]),!o.overview&&!t||p.length===0)return null;let m=new Set;for(let a of s){if(a.startsWith("kind:")){m.add(a);continue}let f=n.graph.getNode(a);f&&m.add(`kind:${f.kind}`)}return(0,i.jsxs)("section",{"aria-label":"What the lines mean",role:t?"group":void 0,"data-testid":"relation-key",style:t?{display:"grid",gap:1}:{position:"absolute",left:16,top:14,zIndex:se("rail"),display:"grid",gap:1,padding:"8px 10px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",maxWidth:Ke,animation:"graview-settle 380ms 280ms ease backwards"},children:[t?null:(0,i.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",paddingBottom:2},children:p.length===1?"1 relation":`${p.length} relations`}),e?(0,i.jsx)(Je,{aloft:o.overview===!0}):null,p.map(({kind:a,count:f,ends:h})=>{let{connector:S,style:I}=Z(y,a),g=je(n.schema,a),c=d!==null?d===a:m.size===0||h.some(b=>m.has(b));return(0,i.jsxs)("button",{type:"button",title:n.schema.edge(a)?.description===void 0?`${f} of these`:g.words,onMouseEnter:()=>u(a),onMouseLeave:()=>u(null),onFocus:()=>u(a),onBlur:()=>u(null),onClick:()=>{r(h),w(null)},style:{all:"unset",outline:"revert-layer",cursor:"pointer",display:"grid",gridTemplateColumns:"30px 1fr auto",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px",borderRadius:6,opacity:c?1:.4},children:[(0,i.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",style:{display:"block",opacity:S.visible?1:.35},children:o.overview&&e?(0,i.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",className:"graview-key-ribbon",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:e(f,l)}):(0,i.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",stroke:J(I),strokeWidth:X(I,!0),strokeDasharray:j[I.pattern],strokeLinecap:"round"})}),(0,i.jsxs)("span",{style:{display:"grid",minWidth:0},"data-graview-relation-words":a,children:[(0,i.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink)"},children:g.words}),(0,i.jsx)("span",{style:{fontSize:"0.6875rem",color:"var(--graview-ink-faint)"},children:g.ends})]}),S.visible?null:(0,i.jsx)("span",{"data-graview-quiet":a,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontStyle:"italic"},children:"not drawn"}),(0,i.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},children:f})]},a)})]})}var Ke="min(280px, calc(100% - 28px))";function je(t,e,n){let o=t.edge(e)?.from??[],d=new Map;for(let s of n!==void 0&&o.includes(n)?[n]:o.length>0?o:[""]){let r=Se(t,s,e,"out");d.set(r,[...d.get(r)??[],s])}let u=s=>s==="*"?"anything":ie(t,s),y=[...d].map(([s,r])=>{let w=r.flatMap(p=>t.tryDefinition(p)?.edges[e]?.to??[]),k=r[0]&&w.length>0?`${r.map(u).join(", ")} \u2192 ${(w.includes("*")?["*"]:[...new Set(w)]).map(u).join(", ")}`:"";return[s.charAt(0).toUpperCase()+s.slice(1),k]});return{words:y.map(([s])=>s).join(" \xB7 "),ends:y.flatMap(([,s])=>s?[s]:[]).join(" \xB7 ")}}function _t({edgeKind:t,kit:e,width:n=30}){let o=q(),d=(0,W.useMemo)(()=>ae(e??o?.brand?.kit),[e,o?.brand?.kit]),{connector:u,style:y}=Z(d,t);return(0,i.jsx)("svg",{width:n,height:"8","aria-hidden":"true","data-testid":"relation-mark","data-graview-relation":t,style:{display:"inline-block",verticalAlign:"middle",opacity:u.visible?1:.35},children:(0,i.jsx)("path",{d:`M 1 4 L ${n-1} 4`,fill:"none",stroke:J(y),strokeWidth:X(y,!0),strokeDasharray:j[y.pattern],strokeLinecap:"round"})})}function Je({aloft:t}){let e={display:"grid",gridTemplateColumns:"30px 1fr",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px"},n={fontSize:"0.75rem",color:"var(--graview-ink-muted)"};return(0,i.jsxs)("div",{role:"group","aria-label":"The lines","data-testid":"line-manners",style:{display:"grid",gap:1,paddingBottom:6,marginBottom:4,borderBottom:"1px solid var(--graview-edge)"},children:[t?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{style:e,"data-graview-manner":"ribbon",children:[(0,i.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,i.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:6})}),(0,i.jsx)("span",{style:n,children:"A relation between two districts, as wide as the links along it \u2014 point at one for its words"})]}),(0,i.jsxs)("div",{style:e,"data-graview-manner":"record",children:[(0,i.jsxs)("svg",{width:"30",height:"10","aria-hidden":"true",children:[(0,i.jsx)("path",{d:"M 1 5 L 25 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeLinecap:"round"}),(0,i.jsx)("circle",{cx:26,cy:5,r:3,fill:"var(--graview-accent)"})]}),(0,i.jsx)("span",{style:n,children:"A chosen record's link to another record, labeled with the relation"})]}),(0,i.jsxs)("div",{style:e,"data-graview-manner":"district",children:[(0,i.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,i.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeDasharray:"5 4"})}),(0,i.jsx)("span",{style:n,children:"A chosen record's links into a district, with how many"})]})]}):null,(0,i.jsxs)("div",{style:e,"data-graview-manner":"unsure",children:[(0,i.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,i.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeOpacity:ke,strokeWidth:1.8,strokeDasharray:we,strokeLinecap:"round"})}),(0,i.jsx)("span",{style:n,children:"Unsure: a link its maker was less than sure of, until a person keeps it \u2014 point at its words for what it was based on"})]})]})}var Ie=v(O(),1),re=v(M(),1),Xe=T(E(()=>(__graviewPreload(import.meta.url,["./chunk.XGRMQUFB.js","./chunk.6IEDQHKI.js","./chunk.5J2HETUO.js","./chunk.5TBK44MK.js","./chunk.VCOIFBUE.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.RSYFIL2Z.js","./chunk.R7F6UJVG.js","./chunk.DYW4D74X.js","./chunk.VP35BUUZ.js","./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.XFQUVMRI.js")))),Ze=Xe.part(t=>(0,re.jsx)(t.SuggestedTray,{}),{quiet:!0});function Vt(){let{store:t}=A(),e=H();return(0,Ie.useMemo)(()=>t.log.all().some(o=>o.suggests!==void 0&&!o.withheld),[t,e])?(0,re.jsx)(Ze,{}):null}export{rt as a,lt as b,ft as c,Ht as d,Ke as e,_t as f,Be as g,kt as h,St as i,Ye as j,Dt as k,Ot as l,Vt as m};
@@ -0,0 +1 @@
1
+ import{Da as H,Fa as A,G as C,R as F}from"./chunk.7L6LYXCV.js";import"./chunk.SDO3U72B.js";import"./chunk.7MQ7UWVW.js";import"./chunk.2AZTW66C.js";import{b as x}from"./chunk.AJZBJBMO.js";var t=x(C(),1),f=x(F(),1),q={faces:'[data-testid="app-faces"]',problems:'[data-testid="standing"], [data-testid="standing-link"]',activity:'[data-testid="activity-button"]',ask:'[data-testid="app-find"], [data-testid="app-find-open"]',find:'[data-testid="app-find"], [data-testid="app-find-open"]',profile:'[data-testid="profile-button"]',home:'[data-testid="app-home"]'};function D(e){if(!e.isConnected||e.closest("[hidden], [inert], [aria-hidden='true']"))return!1;if(typeof e.checkVisibility!="function")return!0;if(!e.checkVisibility({visibilityProperty:!0}))return!1;let a=e.getBoundingClientRect();return a.width>1&&a.height>1}function E(e,a){if(!e||a==="ask"&&!e.querySelector("[data-graview-quick-ask]"))return null;for(let d of e.querySelectorAll(q[a]))if(D(d))return d;return null}function W(e){let a=(u,h,c)=>e.querySelector(u)?.getAttribute(h)?.trim()||c,d=a('[data-testid="app-face-scene"]',"title","Scene"),n=a('[data-testid="app-face-pages"]',"title","Pages");return[{anchor:"faces",title:`${d} or ${n}`,words:`One app, two ways to see it: ${d} draws every record as one picture, ${n} as lists and pages to read and change.`},{anchor:"problems",title:"Whether all is in order",words:"The dot is green while every rule holds. When one is broken it counts what is wrong, and pressing it shows each one and where."},{anchor:"activity",title:"Activity",words:"What has happened here and who did it, each change with its way back."},{anchor:"ask",title:"Ask",words:"Press \u2318K (Ctrl+K) to ask about what you have selected, or right-click it and choose Ask about this\u2026. The answer stands beside it, and a change it proposes waits for you to accept it."}]}var R=300,O=1200,$=15e3;function _({root:e,steps:a,onEnd:d}){let[n,u]=(0,t.useState)(null),h=(0,t.useRef)(null),c=(0,t.useRef)(!1),p=(0,t.useRef)(d);p.current=d,(0,t.useEffect)(()=>{let r=Date.now(),o=Date.now(),s=null,i,v=new MutationObserver(()=>o=Date.now());v.observe(document.body,{childList:!0,subtree:!0});let k=()=>{let L=e(),S=Date.now();if(L?.querySelector('[data-testid="app-bar"]')){if(s??=S,S-o>=R||S-s>=O){let T=[...W(L),...a].filter(P=>E(L,P.anchor)!==null);if(T.length===0){c.current=!0,p.current(null);return}h.current=document.activeElement,u({list:T,at:0});return}}else if(S-r>=$){c.current=!0,p.current(null);return}i=setTimeout(k,100)};return i=setTimeout(k,100),()=>{clearTimeout(i),v.disconnect()}},[]);let y=(0,t.useCallback)(()=>{let r=h.current;(r instanceof HTMLElement&&r!==document.body&&r.isConnected?r:e()?.querySelector('[data-testid="app-home"]'))?.focus({preventScroll:!0})},[e]),m=(0,t.useCallback)((r,o)=>{if(c.current)return;c.current=!0;let s=document.querySelector("[data-testid='first-look']"),i=document.activeElement,v=i===null||i===document.body||s!==null&&s.contains(i);u(null),p.current(r),!(!o&&!v)&&(y(),requestAnimationFrame(()=>{let k=document.activeElement;(k===null||k===document.body)&&y()}))},[y]),b=(0,t.useCallback)((r,o)=>{let s=e();for(let i=o;i<r.length;i++)if(E(s,r[i].anchor))return i;return-1},[e]),g=(0,t.useCallback)(()=>{if(!n)return;let r=b(n.list,n.at+1);r<0?m("finished",!0):u({list:n.list,at:r})},[n,b,m]);if((0,t.useEffect)(()=>{if(!n)return;let r=e();if(!r)return;let o=0,s=()=>{cancelAnimationFrame(o),o=requestAnimationFrame(()=>{E(e(),n.list[n.at].anchor)||g()})},i=new MutationObserver(s);return i.observe(r,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["hidden","class","data-switch-drawn"]}),()=>{cancelAnimationFrame(o),i.disconnect()}},[n,e,g]),!n)return null;let w=n.list[n.at],l=b(n.list,n.at+1)<0;return(0,f.jsx)(I,{root:e,step:w,position:n.at+1,total:n.list.length,last:l,onNext:g,onEnd:m},n.at)}var N={...H,width:"min(320px, calc(100vw - 24px))",maxHeight:"min(70vh, 420px)",overflow:"auto",padding:"12px 14px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",color:"var(--graview-ink)",fontFamily:"var(--graview-font-body, system-ui)",fontSize:"0.875rem",lineHeight:1.45,overflowWrap:"anywhere"},M={minHeight:32,padding:"0 12px",borderRadius:8,font:"inherit",fontWeight:600,cursor:"pointer"};function I({root:e,step:a,position:d,total:n,last:u,onNext:h,onEnd:c}){let p=(0,t.useRef)(null),y=(0,t.useRef)(null),m=(0,t.useId)().replace(/:/g,""),b=(0,t.useMemo)(()=>({get current(){return E(e(),a.anchor)}}),[e,a.anchor]),[g]=(0,t.useState)(()=>{let l=b.current?.getBoundingClientRect(),r=typeof document>"u"?0:document.documentElement.clientWidth||innerWidth;return l&&l.left+l.width/2<r/2?"start":"end"});A(p,!0,b,{align:g}),(0,t.useLayoutEffect)(()=>{y.current?.focus({preventScroll:!0})},[]);let w=(0,t.useRef)(c);return w.current=c,(0,t.useEffect)(()=>{let l=o=>{o.target instanceof Node&&p.current?.contains(o.target)||w.current("dismissed",!1)},r=o=>{if(o.key!=="Escape"||o.defaultPrevented)return;let s=o.target;s instanceof Node&&p.current?.contains(s)||s instanceof HTMLInputElement||s instanceof HTMLTextAreaElement||[...document.querySelectorAll("[data-graview-overlay]:not([hidden])")].some(i=>i!==p.current)||w.current("dismissed",!0)};return document.addEventListener("pointerdown",l,!0),document.addEventListener("keydown",r),()=>{document.removeEventListener("pointerdown",l,!0),document.removeEventListener("keydown",r)}},[]),(0,f.jsxs)("div",{ref:p,popover:"manual",role:"dialog","aria-modal":"false","aria-labelledby":`${m}-title`,"aria-describedby":`${m}-words`,tabIndex:-1,"data-testid":"first-look","data-first-look-anchor":a.anchor,"data-graview-overlay":"",onKeyDown:l=>{l.key==="Escape"&&(l.preventDefault(),l.stopPropagation(),c("dismissed",!0))},style:N,children:[(0,f.jsxs)("p",{style:{margin:0,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},"data-testid":"first-look-count",children:[d," of ",n]}),(0,f.jsx)("p",{id:`${m}-title`,style:{margin:"2px 0 4px",fontWeight:600,fontSize:"0.9375rem"},"data-testid":"first-look-title",children:a.title}),(0,f.jsx)("p",{id:`${m}-words`,style:{margin:0},"data-testid":"first-look-words",children:a.words}),(0,f.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",justifyContent:"flex-end",gap:8,marginTop:12},children:[u?null:(0,f.jsx)("button",{type:"button","data-testid":"first-look-skip",onClick:()=>c("dismissed",!0),style:{...M,fontWeight:500,border:"1px solid transparent",background:"none",color:"var(--graview-ink-muted)"},children:"Skip"}),(0,f.jsx)("button",{ref:y,type:"button","data-testid":u?"first-look-done":"first-look-next",onClick:()=>u?c("finished",!0):h(),style:{...M,border:"1px solid var(--graview-accent)",background:"var(--graview-accent)",color:"var(--graview-accent-ink)"},children:u?"Done":"Next"})]})]})}export{_ as FirstLookHints,E as firstLookAnchor};
@@ -0,0 +1 @@
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{$ as S,F as g,G as T,R as v,ua as C}from"./chunk.7L6LYXCV.js";import{a as m}from"./chunk.SDO3U72B.js";import"./chunk.7MQ7UWVW.js";import"./chunk.2AZTW66C.js";import{b as c}from"./chunk.AJZBJBMO.js";var n=c(T(),1),r=c(v(),1),s=null,u=null,f=new Set,a=()=>{for(let e of f)e()},y=e=>(f.add(e),()=>void f.delete(e)),E=300,d=()=>{u!==null&&clearTimeout(u),u=null};function q(e,t){d(),x.prefetch(),!(s?.element===t&&s.target.on===e.on)&&(s={target:e,element:t},a())}function M(e=!1){if(d(),s!==null){if(e){s=null,a();return}u=setTimeout(()=>{u=null,s=null,a()},E)}}var R=()=>d(),P=()=>s,b="graview:hover-chips",h;function A(e){if(h!==void 0)return h;try{return(e??localStorage).getItem(b)!=="off"}catch{return!0}}function I(e,t){h=e;try{(t??localStorage).setItem(b,e?"on":"off")}catch{}e||(s=null),a()}function w(){let e=S(),t=g(e?.ai),o=e?.memory,l=(0,n.useSyncExternalStore)(y,()=>A(o),()=>!1),i=(0,n.useCallback)(H=>I(H,o),[o]);return{offered:t,on:t&&l,set:i}}function z({legend:e,style:t,choice:o}){let l=w();return l.offered?(0,r.jsxs)("fieldset",{"data-testid":"setting-hover-chips",style:{border:0,margin:0,padding:0,display:"grid",gap:5,...t},children:[(0,r.jsx)("legend",{style:{...e,padding:0},children:"AI suggestions on hover"}),(0,r.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:"A quiet suggestion beside a record the pointer rests on, when the AI is sure of one."}),(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:[!0,!1].map(i=>(0,r.jsx)("button",{type:"button","aria-pressed":l.on===i,"data-testid":`setting-hover-chips-${i?"on":"off"}`,onClick:()=>l.set(i),style:o(l.on===i),children:i?"On":"Off"},String(i)))})]}):null}var x=C(m(()=>(__graviewPreload(import.meta.url,["./chunk.YKN2VWWQ.js","./chunk.Q5XICUDZ.js","./chunk.UT6642FC.js","./chunk.SGRKCQ2X.js","./chunk.KG5R4GTK.js","./chunk.ZEC64CK6.js","./chunk.TI4OSTQV.js","./chunk.T4Q6OLZU.js","./chunk.RSYFIL2Z.js","./chunk.R7F6UJVG.js","./chunk.DYW4D74X.js","./chunk.VP35BUUZ.js","./chunk.7L6LYXCV.js","./chunk.SDO3U72B.js","./chunk.7MQ7UWVW.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.DZN26GKS.js")))),k=x.part((e,t)=>{let o=e.HoverChip;return(0,r.jsx)(o,{...t})},{quiet:!0}),p=null,O=()=>p;function L(){let{on:e}=w(),t=(0,n.useSyncExternalStore)(y,P,()=>null),[o]=(0,n.useState)(()=>Symbol("hover-chip")),l=(0,n.useSyncExternalStore)(y,O,()=>null);return(0,n.useEffect)(()=>{if(e)return p===null&&(p=o,a()),()=>{p===o&&(p=null,s=null,d(),a())}},[e,o,l]),!e||t===null||l!==o||!t.element.isConnected?null:(0,r.jsx)(n.Suspense,{fallback:null,children:(0,r.jsx)(k,{rest:t,hold:R,leave:M})})}export{L as HoverChipDoor,z as HoverChipsSwitch,R as holdRest,A as hoverChipsWanted,M as leaveRest,q as restOn,I as setHoverChipsWanted,w as useHoverChipsSetting};
@@ -1,3 +1,3 @@
1
- import"./chunk.WUQOSVQU.js";import{a as _,b as ge,c as me,e as fe}from"./chunk.B6DKKNVR.js";import"./chunk.7EB6SDUQ.js";import"./chunk.HJCQ6I3S.js";import{a as ve,d as ye}from"./chunk.5FHH5NR6.js";import"./chunk.VMBIFUYX.js";import{a as de}from"./chunk.U3MQUIJL.js";import{d as he}from"./chunk.DNMBZONP.js";import"./chunk.OTHGZPUC.js";import"./chunk.4YBP552Z.js";import"./chunk.V3K32XD7.js";import"./chunk.CAZX6OPN.js";import"./chunk.X2M7IOQA.js";import"./chunk.WZEA2UK6.js";import"./chunk.V5VQCANB.js";import"./chunk.UT6642FC.js";import"./chunk.PH5ITX3N.js";import"./chunk.WVUJXDXZ.js";import"./chunk.WVN62OMH.js";import"./chunk.BZ4VZ6WQ.js";import"./chunk.XDPIS7RS.js";import"./chunk.57R4ZUMM.js";import"./chunk.J7ZMNAWB.js";import"./chunk.VKJAGZNU.js";import"./chunk.GZHZLJBF.js";import{o as ue,r as K}from"./chunk.HG2IO5NS.js";import"./chunk.OJGHDWI6.js";import{a as ce}from"./chunk.AQTCN7KQ.js";import"./chunk.LFJH6X6O.js";import"./chunk.VTUMPH4Z.js";import{c as le}from"./chunk.PCTVLNOS.js";import{r as pe}from"./chunk.4QEDYRES.js";import{Aa as W,G as xe,K as I,R as re,T as ie,_ as T,aa as R,j as M,ja as G,l as ne,m as B,r as P,v as ae,z as oe,za as se}from"./chunk.JE4QQEJE.js";import"./chunk.SDO3U72B.js";import{U as D,ba as $,ca as F,fa as q,ha as L,la as ee,wc as te}from"./chunk.UG727PEE.js";import{b as V}from"./chunk.AJZBJBMO.js";var l=V(xe(),1);var e=V(re(),1),Se=pe.part((t,u)=>(0,e.jsx)(t.ProblemRows,{...u}),{what:"The problems",as:"li"}),A="var(--graview-gap, 8px)",ke=720;function qe({showing:t}){return t.what==="lens"?(0,e.jsx)(Ae,{kind:t.kind},`lens:${t.kind}`):t.what==="record"?(0,e.jsx)(Pe,{id:t.id},`record:${t.id}`):(0,e.jsx)(Ne,{kind:t.kind},`district:${t.kind}`)}function Y({label:t,wide:u,testId:a,head:o,onClose:s,children:d,sheetHeight:p}){let i=(0,l.useRef)(null),[h,m]=(0,l.useState)(!1);(0,l.useLayoutEffect)(()=>{let r=i.current?.parentElement;if(!r)return;let f=()=>m(r.getBoundingClientRect().width<ke);if(f(),typeof ResizeObserver>"u")return;let x=new ResizeObserver(f);return x.observe(r),()=>x.disconnect()},[]);let v=(0,l.useRef)(s);return v.current=s,(0,l.useEffect)(()=>{let r=k=>{if(k.key!=="Escape"||k.defaultPrevented)return;let y=document.activeElement;y instanceof HTMLInputElement||y instanceof HTMLTextAreaElement||document.querySelector("[data-graview-popover]:popover-open")||f||v.current()},f=!1,x=()=>{f=document.querySelector('[data-testid="following-who"]')!==null};return window.addEventListener("keydown",x,!0),document.addEventListener("keydown",r),()=>{window.removeEventListener("keydown",x,!0),document.removeEventListener("keydown",r)}},[]),(0,e.jsxs)("section",{ref:i,"aria-label":t,"data-testid":a,"data-graview-map-panel":h?"sheet":"dock","data-graview-overlay":"","data-graview-offstage":"",className:"graview-map-panel",style:{position:"absolute",zIndex:te("rail"),boxSizing:"border-box",display:"flex",flexDirection:"column",background:"var(--graview-panel)",color:"var(--graview-ink)",overflow:"hidden",border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",boxShadow:"var(--graview-lift-high)",...h?{left:A,right:A,bottom:`calc(${A} + env(safe-area-inset-bottom, 0px))`,height:p}:{top:A,right:A,bottom:A,width:u}},children:[h?(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="sheet"]) { --graview-sheet: calc(${p} + 2 * ${A} + env(safe-area-inset-bottom, 0px)); }`}):(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="dock"]) { --graview-dock: calc(${u} + 2 * ${A}); }`}),(0,e.jsxs)("header",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"14px 14px 10px 18px",borderBottom:"1px solid var(--graview-edge)"},children:[(0,e.jsx)("div",{style:{flex:"1 1 auto",minWidth:0},children:o}),(0,e.jsx)("button",{type:"button","data-testid":"map-panel-close","aria-label":"Close",title:"Close (Escape)",onClick:s,style:{flex:"0 0 auto",minWidth:32,height:32,borderRadius:8,fontSize:"1.1rem",lineHeight:1},children:"\xD7"})]}),(0,e.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflow:"auto"},children:d})]})}var U={fontSize:"0.75rem",letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},J={margin:"2px 0 0",fontSize:"1.125rem",fontWeight:600,lineHeight:1.3,overflowWrap:"anywhere"},Q={margin:"4px 0 0",fontSize:"0.875rem",color:"var(--graview-ink-muted)"},j={margin:"14px 18px 6px",fontSize:"0.8125rem",fontWeight:600,color:"var(--graview-ink-muted)"},z={listStyle:"none",margin:0,padding:"0 10px 6px"},X={all:"unset",outline:"revert-layer",boxSizing:"border-box",display:"flex",alignItems:"baseline",gap:8,width:"100%",padding:"6px 8px",borderRadius:6,cursor:"pointer",fontSize:"0.875rem"},H={minHeight:30,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem"};function Z(){let{setSelection:t,setMenuAt:u}=T();return(a,o)=>{a.preventDefault(),t([o]),u({x:a.clientX,y:a.clientY,on:o})}}function we({on:t,about:u}){let{setSelection:a,setMenuAt:o}=T();return(0,e.jsx)("button",{type:"button","data-testid":"map-panel-acts","aria-label":`What can be done with ${u}`,"aria-haspopup":"menu",style:H,onClick:s=>{let d=s.currentTarget.getBoundingClientRect();a([t]),o({x:Math.round(d.left),y:Math.round(d.bottom+4),on:t})},children:"Acts\u2026"})}var be=(t,u)=>({...M(B(t,!1),u),relation:null});function Ee(t,u){let a=`[data-graview-stage] [data-graview-view="${CSS.escape(t)}"][tabindex]`,o=null;for(let i=u?.parentElement??null;i&&!o;i=i.parentElement)o=i.querySelector(".graview-ground");o??=document.querySelector(".graview-ground");let s=o!==null&&!o.hasAttribute("tabindex");o&&s&&(o.setAttribute("tabindex","-1"),o.addEventListener("focusout",i=>{i.target===o&&o.removeAttribute("tabindex")},{once:!0})),o?.focus({preventScroll:!0});let d=performance.now()+5e3,p=()=>{let i=document.activeElement;if(!(i===null||i===document.body||i===document.documentElement||i===u||i===o))return;let m=document.querySelector(a);if(m&&m.isConnected&&!m.closest("[inert]"))return m.focus({preventScroll:!0});performance.now()<d&&requestAnimationFrame(p)};requestAnimationFrame(p)}function Ae({kind:t}){let u=Z(),{store:a,views:o,view:s,selection:d,setSelection:p}=T(),{go:i}=W(),h=R(),m=s.within?.view,v=o.places().filter(w=>w.kind===t),r=(m!==void 0?v.find(w=>w.as===m):void 0)??v.at(-1),f=o.resolve(t,{cardinality:"many",fidelity:"full"},r?.as??m),x=f?.view,k=a.schema.tryDefinition(t),y=(0,l.useMemo)(()=>a.graph.nodesOfKind(t).filter(w=>s.past===!0||$(k,w)),[a,t,h,s.past,k]),E=f?.title??r?.title??L(a.schema,t),C=x!==void 0&&G(x),c=d.filter(w=>a.graph.getNode(w)!==void 0),g=ce();return(0,e.jsxs)(Y,{label:E,testId:"lens-panel",wide:"min(max(440px, 46%), 760px)",sheetHeight:"60%",onClose:()=>i(ne(M(s,null),"view",null)),head:C?null:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:U,children:L(a.schema,t)}),(0,e.jsx)("h2",{style:J,"data-testid":"lens-panel-title",children:E}),(0,e.jsxs)("p",{style:Q,children:[q(a.schema,t,y.length),k?.description?` \xB7 ${k.description}`:""]}),r?(0,e.jsx)("div",{style:{marginTop:10},children:(0,e.jsx)("button",{type:"button","data-testid":"lens-panel-open",style:H,title:`Open ${E} on its own`,onClick:()=>i(oe(s,t,r.as)),children:"Open \u2197"})}):null]}),children:[(0,e.jsx)("style",{children:`.graview-ground[data-graview-altitude] .graview-plot:not([data-graview-plot="${P(t)}"]) { opacity: 0.35; }
1
+ import"./chunk.RPDTWQKA.js";import{a as _,b as ge,c as me,e as fe}from"./chunk.DJ3BD7AZ.js";import"./chunk.7MXQRSNR.js";import"./chunk.HJCQ6I3S.js";import{a as ve,d as ye}from"./chunk.A3WOUDOG.js";import"./chunk.WH2RYGXR.js";import{a as de}from"./chunk.5TBK44MK.js";import{d as he}from"./chunk.27QYTMXP.js";import"./chunk.VCOIFBUE.js";import"./chunk.RQBX7M7Q.js";import"./chunk.BT6FUNQI.js";import"./chunk.MBOOUJOE.js";import"./chunk.64MP7636.js";import"./chunk.RY4E4JRI.js";import"./chunk.Q5XICUDZ.js";import"./chunk.UT6642FC.js";import"./chunk.FKLEIR4Y.js";import"./chunk.WVUJXDXZ.js";import"./chunk.QWY54AVN.js";import"./chunk.T4Q6OLZU.js";import"./chunk.R2B2ZAWI.js";import"./chunk.7XCBIID7.js";import"./chunk.MI2HL3LQ.js";import"./chunk.TMBFLZNH.js";import"./chunk.GZHZLJBF.js";import{o as ue,r as K}from"./chunk.EBTYR5CZ.js";import"./chunk.OJGHDWI6.js";import{a as ce}from"./chunk.OWL5GZ6U.js";import"./chunk.RSYFIL2Z.js";import"./chunk.R7F6UJVG.js";import{c as le}from"./chunk.DYW4D74X.js";import{r as pe}from"./chunk.VP35BUUZ.js";import{Aa as W,G as xe,K as I,R as re,T as ie,_ as T,aa as R,j as M,ja as G,l as ne,m as B,r as P,v as ae,z as oe,za as se}from"./chunk.7L6LYXCV.js";import"./chunk.SDO3U72B.js";import{U as D,ba as $,ca as F,fa as q,ha as L,la as ee,wc as te}from"./chunk.7MQ7UWVW.js";import"./chunk.2AZTW66C.js";import{b as V}from"./chunk.AJZBJBMO.js";var l=V(xe(),1);var e=V(re(),1),Se=pe.part((t,u)=>(0,e.jsx)(t.ProblemRows,{...u}),{what:"The problems",as:"li"}),A="var(--graview-gap, 8px)",ke=720;function qe({showing:t}){return t.what==="lens"?(0,e.jsx)(Ae,{kind:t.kind},`lens:${t.kind}`):t.what==="record"?(0,e.jsx)(Pe,{id:t.id},`record:${t.id}`):(0,e.jsx)(Ne,{kind:t.kind},`district:${t.kind}`)}function Y({label:t,wide:u,testId:a,head:o,onClose:s,children:d,sheetHeight:p}){let i=(0,l.useRef)(null),[h,m]=(0,l.useState)(!1);(0,l.useLayoutEffect)(()=>{let r=i.current?.parentElement;if(!r)return;let f=()=>m(r.getBoundingClientRect().width<ke);if(f(),typeof ResizeObserver>"u")return;let x=new ResizeObserver(f);return x.observe(r),()=>x.disconnect()},[]);let v=(0,l.useRef)(s);return v.current=s,(0,l.useEffect)(()=>{let r=k=>{if(k.key!=="Escape"||k.defaultPrevented)return;let y=document.activeElement;y instanceof HTMLInputElement||y instanceof HTMLTextAreaElement||document.querySelector("[data-graview-popover]:popover-open")||f||v.current()},f=!1,x=()=>{f=document.querySelector('[data-testid="following-who"]')!==null};return window.addEventListener("keydown",x,!0),document.addEventListener("keydown",r),()=>{window.removeEventListener("keydown",x,!0),document.removeEventListener("keydown",r)}},[]),(0,e.jsxs)("section",{ref:i,"aria-label":t,"data-testid":a,"data-graview-map-panel":h?"sheet":"dock","data-graview-overlay":"","data-graview-offstage":"",className:"graview-map-panel",style:{position:"absolute",zIndex:te("rail"),boxSizing:"border-box",display:"flex",flexDirection:"column",background:"var(--graview-panel)",color:"var(--graview-ink)",overflow:"hidden",border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",boxShadow:"var(--graview-lift-high)",...h?{left:A,right:A,bottom:`calc(${A} + env(safe-area-inset-bottom, 0px))`,height:p}:{top:A,right:A,bottom:A,width:u}},children:[h?(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="sheet"]) { --graview-sheet: calc(${p} + 2 * ${A} + env(safe-area-inset-bottom, 0px)); }`}):(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="dock"]) { --graview-dock: calc(${u} + 2 * ${A}); }`}),(0,e.jsxs)("header",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"14px 14px 10px 18px",borderBottom:"1px solid var(--graview-edge)"},children:[(0,e.jsx)("div",{style:{flex:"1 1 auto",minWidth:0},children:o}),(0,e.jsx)("button",{type:"button","data-testid":"map-panel-close","aria-label":"Close",title:"Close (Escape)",onClick:s,style:{flex:"0 0 auto",minWidth:32,height:32,borderRadius:8,fontSize:"1.1rem",lineHeight:1},children:"\xD7"})]}),(0,e.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflow:"auto"},children:d})]})}var U={fontSize:"0.75rem",letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},J={margin:"2px 0 0",fontSize:"1.125rem",fontWeight:600,lineHeight:1.3,overflowWrap:"anywhere"},Q={margin:"4px 0 0",fontSize:"0.875rem",color:"var(--graview-ink-muted)"},j={margin:"14px 18px 6px",fontSize:"0.8125rem",fontWeight:600,color:"var(--graview-ink-muted)"},z={listStyle:"none",margin:0,padding:"0 10px 6px"},X={all:"unset",outline:"revert-layer",boxSizing:"border-box",display:"flex",alignItems:"baseline",gap:8,width:"100%",padding:"6px 8px",borderRadius:6,cursor:"pointer",fontSize:"0.875rem"},H={minHeight:30,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem"};function Z(){let{setSelection:t,setMenuAt:u}=T();return(a,o)=>{a.preventDefault(),t([o]),u({x:a.clientX,y:a.clientY,on:o})}}function we({on:t,about:u}){let{setSelection:a,setMenuAt:o}=T();return(0,e.jsx)("button",{type:"button","data-testid":"map-panel-acts","aria-label":`What can be done with ${u}`,"aria-haspopup":"menu",style:H,onClick:s=>{let d=s.currentTarget.getBoundingClientRect();a([t]),o({x:Math.round(d.left),y:Math.round(d.bottom+4),on:t})},children:"Acts\u2026"})}var be=(t,u)=>({...M(B(t,!1),u),relation:null});function Ee(t,u){let a=`[data-graview-stage] [data-graview-view="${CSS.escape(t)}"][tabindex]`,o=null;for(let i=u?.parentElement??null;i&&!o;i=i.parentElement)o=i.querySelector(".graview-ground");o??=document.querySelector(".graview-ground");let s=o!==null&&!o.hasAttribute("tabindex");o&&s&&(o.setAttribute("tabindex","-1"),o.addEventListener("focusout",i=>{i.target===o&&o.removeAttribute("tabindex")},{once:!0})),o?.focus({preventScroll:!0});let d=performance.now()+5e3,p=()=>{let i=document.activeElement;if(!(i===null||i===document.body||i===document.documentElement||i===u||i===o))return;let m=document.querySelector(a);if(m&&m.isConnected&&!m.closest("[inert]"))return m.focus({preventScroll:!0});performance.now()<d&&requestAnimationFrame(p)};requestAnimationFrame(p)}function Ae({kind:t}){let u=Z(),{store:a,views:o,view:s,selection:d,setSelection:p}=T(),{go:i}=W(),h=R(),m=s.within?.view,v=o.places().filter(w=>w.kind===t),r=(m!==void 0?v.find(w=>w.as===m):void 0)??v.at(-1),f=o.resolve(t,{cardinality:"many",fidelity:"full"},r?.as??m),x=f?.view,k=a.schema.tryDefinition(t),y=(0,l.useMemo)(()=>a.graph.nodesOfKind(t).filter(w=>s.past===!0||$(k,w)),[a,t,h,s.past,k]),E=f?.title??r?.title??L(a.schema,t),C=x!==void 0&&G(x),c=d.filter(w=>a.graph.getNode(w)!==void 0),g=ce();return(0,e.jsxs)(Y,{label:E,testId:"lens-panel",wide:"min(max(440px, 46%), 760px)",sheetHeight:"60%",onClose:()=>i(ne(M(s,null),"view",null)),head:C?null:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:U,children:L(a.schema,t)}),(0,e.jsx)("h2",{style:J,"data-testid":"lens-panel-title",children:E}),(0,e.jsxs)("p",{style:Q,children:[q(a.schema,t,y.length),k?.description?` \xB7 ${k.description}`:""]}),r?(0,e.jsx)("div",{style:{marginTop:10},children:(0,e.jsx)("button",{type:"button","data-testid":"lens-panel-open",style:H,title:`Open ${E} on its own`,onClick:()=>i(oe(s,t,r.as)),children:"Open \u2197"})}):null]}),children:[(0,e.jsx)("style",{children:`.graview-ground[data-graview-altitude] .graview-plot:not([data-graview-plot="${P(t)}"]) { opacity: 0.35; }
2
2
  .graview-ground[data-graview-altitude] [data-graview-view^="kind:"]:not([data-graview-view="${P(t)}"]) { opacity: 0.4; }`}),(0,e.jsx)("div",{"data-graview-lens":r?.as??"",style:{padding:"8px 12px 16px",minHeight:"100%",boxSizing:"border-box",display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"minmax(0, 1fr)",alignItems:"start"},onClick:w=>{let n=I(w.target);if(!n||a.graph.getNode(n)===void 0)return;let b=w.target.closest("button, a, input, select, textarea, [contenteditable='true']");b&&!b.hasAttribute("data-graview-pick")||p([n])},onDoubleClick:w=>{let n=I(w.target);!n||a.graph.getNode(n)===void 0||i(be(s,n))},onContextMenu:w=>{let n=I(w.target);!n||a.graph.getNode(n)===void 0||u(w,n)},children:x?(0,e.jsx)(de.Provider,{value:E,children:(0,e.jsx)(ie,{mode:"fullscreen",children:(0,e.jsx)(K,{kind:t,...f?.title?{view:f.title}:{},children:(0,e.jsx)(x,{nodes:y,label:E,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1,...c.length>0?{implicated:c}:{},...g.length>0?{flagged:g}:{}})})})}):null})]})}function Ce(t,u,a,o){let s=o(a),d=new Map;for(let p of u){let i=p.from===a;if(!i&&p.to!==a)continue;let h=i?p.to:p.from,m=o(h);if(m===void 0||s===void 0)continue;let v=`${p.kind}|${i?"out":"in"}|${m}`,r=d.get(v);if(r){r.others.includes(h)||r.others.push(h);continue}d.set(v,{key:v,edge:p.kind,words:le(t,i?s:m,p.kind,i?"out":"in"),kind:m,others:[h]})}return[...d.values()]}function Pe({id:t}){let u=Z(),{store:a,views:o,view:s,setSelection:d}=T(),{go:p}=W(),i=R(),h=a.graph.getNode(t),m=c=>a.graph.getNode(c)?.kind,v=(0,l.useMemo)(()=>Ce(a.schema,a.graph.allEdges(),t,m),[a,t,i]);if(!h)return null;let r=h.kind,f=c=>{let g=a.graph.getNode(c);return g?F(a.schema.tryDefinition(g.kind),g):c},x=ee(a.schema.tryDefinition(r),r),y=o.resolve(r,{cardinality:"one",fidelity:"full"})?.view,E=y!==void 0&&!G(y),C=()=>s.focusId===t?p({...M(s,null),selection:[]}):d([]);return(0,e.jsxs)(Y,{label:`${f(t)}: its links`,testId:"record-panel",wide:E?"min(max(440px, 46%), 760px)":"min(360px, 40%)",sheetHeight:"52%",onClose:C,head:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:U,children:x}),(0,e.jsx)("h2",{style:J,"data-testid":"record-panel-title",children:f(t)}),(0,e.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:10},children:[(0,e.jsx)("button",{type:"button","data-testid":"record-panel-go",style:H,onClick:c=>{p(be(s,t)),Ee(t,c.currentTarget)},children:"Go to it"}),(0,e.jsx)(we,{on:t,about:f(t)}),(0,e.jsxs)("button",{type:"button","data-testid":"record-panel-district",style:H,onClick:()=>d([P(r)]),children:["All ",L(a.schema,r).toLowerCase()]})]})]}),children:[(0,e.jsx)("div",{"data-graview-record-card":t,style:{padding:"8px 18px 0"},children:E?(0,e.jsx)(K,{kind:r,children:(0,e.jsx)(y,{node:h,fidelity:"full",cardinality:"one",mode:"fullscreen",selected:!1})}):(0,e.jsx)(he,{id:t,shown:[f(t)]})}),v.length===0?(0,e.jsx)("p",{style:{...Q,margin:"14px 18px"},children:"No links yet."}):null,v.map(c=>(0,e.jsxs)("section",{"aria-label":c.words,"data-graview-links":c.edge,children:[(0,e.jsxs)("h3",{style:j,children:[c.words.charAt(0).toUpperCase()+c.words.slice(1)," ",(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-faint)"},children:["\xB7 ",c.others.length]})]}),(0,e.jsx)("ul",{style:z,children:c.others.map(g=>(0,e.jsx)("li",{children:(0,e.jsxs)("button",{type:"button",className:"graview-map-panel-row","data-graview-record":g,style:X,onClick:()=>d([g]),onContextMenu:N=>u(N,g),children:[(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflowWrap:"anywhere"},children:f(g)}),c.kind!==r?null:(0,e.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:x})]})},g))})]},c.key))]})}var Te=24;function Ne({kind:t}){let u=Z(),{store:a,view:o,setSelection:s,setEmphasis:d}=T(),{go:p}=W(),i=R(),[h,m]=(0,l.useState)(""),v=a.schema.tryDefinition(t),r=(0,l.useMemo)(()=>a.graph.nodesOfKind(t).filter(n=>o.past===!0||$(v,n)).map(n=>({id:n.id,name:F(v,n)})).sort((n,b)=>n.name.localeCompare(b.name)),[a,t,i,o.past,v]),f=(0,l.useMemo)(()=>{let n=S=>{let O=a.graph.getNode(S);return O!==void 0&&(o.past===!0||$(a.schema.tryDefinition(O.kind),O))},b=a.graph.allEdges().filter(S=>n(S.from)&&n(S.to));return ve(b,S=>a.graph.getNode(S)?.kind).filter(S=>S.from===t||S.to===t)},[a,t,i,o.past]);(0,l.useEffect)(()=>()=>d(null),[d]);let x=se(),k=ue().marks.flag,y=(0,l.useMemo)(()=>{let n=new Set(r.map(b=>b.id));return x.filter(b=>b.nodeIds.some(S=>n.has(S)))},[x,r]),E=(0,l.useMemo)(()=>[...new Set(y.flatMap(n=>n.nodeIds))].filter(n=>a.graph.getNode(n)?.kind===t).slice(0,300),[y,a,t]),C=(0,l.useRef)(null),c=(0,l.useSyncExternalStore)(ge,_,_);(0,l.useEffect)(()=>{c?.kind!==t||y.length===0||(C.current?.scrollIntoView?.({block:"start"}),C.current?.focus({preventScroll:!0}))},[c?.n,c?.kind,t,y.length>0]),(0,l.useEffect)(()=>()=>{me(),setTimeout(()=>{let n=document.activeElement;if(n&&n!==document.body)return;let b=CSS.escape(t);document.querySelector(`[data-testid="district-problems-${b}"]`)?.focus({preventScroll:!0})??document.querySelector(`[data-graview-view="${P(t).replace(/["\\]/g,"\\$&")}"]`)?.focus({preventScroll:!0})},0)},[t]);let g=L(a.schema,t),N=h.trim().toLowerCase(),w=N?r.filter(n=>n.name.toLowerCase().includes(N)):r;return(0,e.jsxs)(Y,{label:g,testId:"district-panel",wide:"min(360px, 40%)",sheetHeight:"52%",onClose:()=>s([]),head:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:U,children:"District"}),(0,e.jsx)("h2",{style:J,"data-testid":"district-panel-title",children:g}),(0,e.jsxs)("p",{style:Q,children:[q(a.schema,t,r.length),v?.description?` \xB7 ${v.description}`:""]}),(0,e.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:10},children:[(0,e.jsx)("button",{type:"button","data-testid":"district-panel-go",style:H,onClick:()=>p({...M(B(o,!1),ae(t)),relation:null}),children:"Go in"}),(0,e.jsx)(we,{on:P(t),about:`the ${g.toLowerCase()}`})]})]}),children:[y.length>0?(0,e.jsxs)("section",{"aria-label":"Problems","data-testid":"district-problems","data-graview-problems":y.length,children:[(0,e.jsx)("style",{children:`${E.map(n=>`.graview-ground[data-graview-altitude] .graview-building[data-graview-building="${CSS.escape(n)}"] polygon`).join(`,
3
3
  `)} { stroke: var(--graview-accent); stroke-width: 2.2; stroke-opacity: 1; }`}),(0,e.jsxs)("h3",{ref:C,tabIndex:-1,"data-testid":"district-problems-heading",style:{display:"flex",alignItems:"baseline",gap:8,margin:0,padding:"14px 18px 8px",fontSize:"0.9375rem",fontWeight:600,color:"var(--graview-warn)",borderTop:"1px solid var(--graview-edge)",scrollMarginTop:0,outlineOffset:-2},children:[(0,e.jsx)("span",{"aria-hidden":"true",children:k}),(0,e.jsx)("span",{style:{color:"var(--graview-ink)"},children:fe(y.length,g)})]}),(0,e.jsx)("ol",{style:z,"data-testid":"district-problem-rows",children:(0,e.jsx)(l.Suspense,{fallback:null,children:(0,e.jsx)(Se,{violations:y,pick:n=>{let b=n.subjectId??n.nodeIds[0];b!==void 0&&s([b])}})})})]}):null,f.length>0?(0,e.jsxs)("section",{"aria-label":"Relations",children:[(0,e.jsx)("h3",{style:j,children:"Relations"}),(0,e.jsx)("ul",{style:z,children:f.map(n=>(0,e.jsx)("li",{children:(0,e.jsxs)("div",{"data-graview-relation-said":n.edge,tabIndex:0,style:{...X,cursor:"default"},onPointerEnter:()=>d(n.edge),onPointerLeave:()=>d(null),onFocus:()=>d(n.edge),onBlur:()=>d(null),children:[(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0},children:ye(a.schema,n)}),(0,e.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},title:`${D(n.links)} links`,children:D(n.links)})]})},n.key))})]}):null,(0,e.jsxs)("div",{role:"group","aria-label":g,children:[(0,e.jsxs)("h3",{style:j,children:[g," ",(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-faint)"},children:["\xB7 ",r.length]})]}),r.length>Te?(0,e.jsx)("div",{style:{padding:"0 18px 6px"},children:(0,e.jsx)("input",{type:"search","data-testid":"district-panel-narrow","aria-label":`Narrow the ${g.toLowerCase()} by name`,placeholder:"Narrow by name",value:h,onChange:n=>m(n.target.value),style:{width:"100%",boxSizing:"border-box",minHeight:32}})}):null,(0,e.jsx)("ul",{style:z,children:w.map(n=>(0,e.jsx)("li",{children:(0,e.jsx)("button",{type:"button",className:"graview-map-panel-row","data-graview-record":n.id,style:X,onClick:()=>s([n.id]),onContextMenu:b=>u(b,n.id),children:(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflowWrap:"anywhere"},children:n.name})})},n.id))})]})]})}export{qe as MapPanelFor};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk.7IXLH7PR.js";import"./chunk.X5WB4GJ4.js";import"./chunk.XGRMQUFB.js";import"./chunk.6IEDQHKI.js";import"./chunk.5J2HETUO.js";import"./chunk.5TBK44MK.js";import"./chunk.VCOIFBUE.js";import"./chunk.UT6642FC.js";import{b as n}from"./chunk.JNCSGUO3.js";import"./chunk.ZEC64CK6.js";import"./chunk.TI4OSTQV.js";import"./chunk.GZHZLJBF.js";import"./chunk.EBTYR5CZ.js";import"./chunk.OJGHDWI6.js";import"./chunk.OWL5GZ6U.js";import"./chunk.RSYFIL2Z.js";import"./chunk.R7F6UJVG.js";import"./chunk.DYW4D74X.js";import"./chunk.VP35BUUZ.js";import{R as i}from"./chunk.7L6LYXCV.js";import"./chunk.SDO3U72B.js";import"./chunk.7MQ7UWVW.js";import"./chunk.2AZTW66C.js";import{b as o}from"./chunk.AJZBJBMO.js";var e=o(i(),1);function g({entries:d,style:l,headingStyle:p,className:r}){return(0,e.jsxs)("section",{...r?{className:r}:{},"data-testid":"record-ai","aria-label":"What AI did here",style:{display:"grid",gap:10,...l},children:[(0,e.jsx)("h2",{style:p??{margin:0,fontSize:"1rem"},children:"What AI did here"}),(0,e.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:8,fontSize:"0.875rem"},children:d.slice(0,8).map(t=>(0,e.jsx)(n,{entry:t,undo:s=>(0,e.jsx)(a,{batch:s})},t.id))})]})}export{g as RecordInteractions};
@@ -0,0 +1 @@
1
+ import{a as j,b as H}from"./chunk.ZHRW2UF4.js";import{a as z,b as J,c as D}from"./chunk.IQ3LUSD6.js";import{a as K,e as q}from"./chunk.4P3LS2OE.js";import{e as E,f as N,g as $}from"./chunk.YPEZZLOY.js";import"./chunk.ZUJZVK2X.js";import{$ as b,G as B,M as F,O as P,R as A,ga as v,ja as V,ka as T,wa as G}from"./chunk.7L6LYXCV.js";import"./chunk.SDO3U72B.js";import"./chunk.7MQ7UWVW.js";import"./chunk.2AZTW66C.js";import{b as W}from"./chunk.AJZBJBMO.js";var s=W(B(),1);var i=W(A(),1),_=e=>({...e.node?{node:{id:e.node.id}}:{},...e.nodes?{nodes:e.nodes.map(t=>({id:t.id}))}:{},...e.label!==void 0?{label:e.label}:{},fidelity:e.fidelity,cardinality:e.cardinality,mode:e.mode,selected:e.selected,...e.implicated?{implicated:e.implicated}:{},...e.flagged?{flagged:e.flagged}:{}});function I(e){let t=P(),r=t?.past?.seq,a=t?.host?.viewAt,n=(0,s.useMemo)(()=>r===void 0||!a||e.draft?void 0:a(e.manifest.name,r),[a,r,e]);return(0,s.useMemo)(()=>n===null?null:n===void 0?e:{...e,worker:n},[n,e])}function M({definition:e,store:t,principal:r,input:a,goTo:n,places:o,scheme:l,brand:u,onFailure:d,drawsItsOwn:m,tick:f}){let p=(0,s.useRef)(null),w=(0,s.useRef)(null),y=F(),c=(0,s.useRef)({input:a,goTo:n,places:o,onFailure:d,brand:u,hostFiles:y});c.current={input:a,goTo:n,places:o,onFailure:d,brand:u,hostFiles:y},(0,s.useEffect)(()=>{let S=p.current;if(!S)return;let C=e.file??(c.current.hostFiles?.src?g=>c.current.hostFiles?.src?.(g)??g:void 0);typeof e.worker=="function"&&D(e.worker).catch(()=>{});let L=H(j,({mountWorkerView:g})=>{w.current=g(S,{manifest:e.manifest,worker:e.worker,store:t,principal:r,input:()=>c.current.input?.()??{},goTo:()=>c.current.goTo,places:()=>c.current.places?.()??[],brand:()=>c.current.brand,onFailure:(O,R)=>c.current.onFailure(O,R),...m?{fallback:!1}:{},...e.limits?{limits:e.limits}:{},...e.author?{author:e.author}:{},...e.onProblem?{onProblem:e.onProblem}:{},...e.asset?{asset:e.asset}:{},...C?{file:C}:{},...e.images?{images:e.images}:{},files:()=>c.current.hostFiles})});return()=>{L(),w.current?.dispose(),w.current=null}},[e,t,r]),(0,s.useEffect)(()=>w.current?.update(),[l,u,f]);let k=(0,i.jsx)("div",{ref:p,"data-worker-view-place":e.manifest.name});if(!e.draft)return k;let h=e.manifest.title??e.manifest.name;return(0,i.jsxs)("div",{role:"group","aria-label":`Draft: ${h}`,"data-graview-draft-view":e.manifest.name,style:{display:"grid",gap:8,alignContent:"start",minWidth:0},children:[(0,i.jsxs)("p",{"data-testid":"draft-view-line",style:Q,children:[(0,i.jsxs)("span",{children:["Draft \u2014 ",(0,i.jsx)("span",{style:{color:"var(--graview-ink)",fontWeight:600},children:h})]}),(0,i.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,i.jsx)("span",{children:"Not kept"})]}),k]})}var Q={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};function x(e,t={}){let r=t.fallback,a=e.manifest.replaces==="page";function n(o){let l=b(),u=v(),d=(0,s.useContext)(G),[m,f]=(0,s.useState)(null),p=(0,s.useRef)(o);p.current=o;let w=I(e);if(!l)return null;if(w===null)return r&&!(d&&V(r)&&!a)?(0,i.jsx)(r,{...o}):null;if(m&&r)return d&&V(r)&&!a?null:(0,i.jsx)(r,{...o});let y=t.beside&&!(d&&V(t.beside))?t.beside:void 0,c=(0,i.jsx)(M,{definition:w,store:l.store,principal:l.principal,input:()=>_(p.current),goTo:u,places:()=>l.views.places(),scheme:l.scheme,brand:l.brand,tick:o,drawsItsOwn:r!==void 0,onFailure:(k,h)=>{f(k),e.onFailure?.(k,h)}});return y?(0,i.jsxs)("div",{"data-worker-view-beside":e.manifest.name,style:{display:"grid",gap:12,minWidth:0},children:[c,(0,i.jsx)(y,{...o})]}):c}return n.displayName=`WorkerView(${e.manifest.name})`,n}function U(e,t){let{manifest:r}=t;if(r.attach==="home"){if(!e.home)throw new Error(`The worker view "${r.name}" is the home's body: draw it with workerHome, on the home.`);let d=t.draft?void 0:e.homeView?.();return e.home(x(t,d?{fallback:d}:{})),e}let a={cardinality:r.cardinality,fidelity:"full"},n=e.lookup(r.attach,a)??e.resolve(r.attach,a)?.view,o=r.cardinality==="one",l=t.draft===!0,u=x(t,{...n&&!l?{fallback:n}:{},...o&&r.replaces!=="page"&&n?{beside:n}:{}});return e.register(r.attach,a,o&&r.replaces==="page"?T(u):u,r.title?{title:r.title,...l?{}:{name:r.name},lens:"view",...r.reads?.kinds?.length?{reads:r.reads.kinds}:{}}:void 0),e}function X(e,t={}){let r=t.fallback;function a({context:n}){let o=b(),l=v(),[u,d]=(0,s.useState)(null),m=I(e);return(u||m===null)&&r?(0,i.jsx)(r,{context:n}):m===null?null:(0,i.jsx)(M,{definition:m,store:n.store,principal:n.principal??o?.principal??{kind:"human"},goTo:l,...o?{places:()=>o.views.places(),scheme:o.scheme,brand:o.brand}:{},drawsItsOwn:r!==void 0,onFailure:(f,p)=>{d(f),e.onFailure?.(f,p)}})}return a.displayName=`WorkerHome(${e.manifest.name})`,a}export{N as checkManifest,z as checkViewSource,q as judgeCodeAct,E as manifestActs,U as registerWorkerView,K as sightIsTotal,J as viewScript,X as workerHome,x as workerView,$ as workerViewProps};
@@ -1 +1 @@
1
- import{G as h,Z as d,_ as a,aa as c,za as u}from"./chunk.JE4QQEJE.js";import{b as l}from"./chunk.AJZBJBMO.js";var i=l(h(),1);function w(){let e=u();return(0,i.useMemo)(()=>[...new Set(e.flatMap(o=>o.nodeIds))],[e])}function S(){let e=g(),o=d();return(0,i.useMemo)(()=>{if(!o)return e;let n=o.matched;return n.length===0&&e.length===0?[m]:[...new Set([...e,...n])]},[o,e])}function g(){let{store:e,selection:o}=a(),n=c();return(0,i.useMemo)(()=>{if(o.length===0)return[];let r=new Set(o),s=new Set(r);for(let t of e.graph.allEdges())r.has(t.from)&&s.add(t.to),r.has(t.to)&&s.add(t.from);for(let t of e.violations())if(t.subjectId!==void 0&&r.has(t.subjectId))for(let f of t.nodeIds)s.add(f);return[...s]},[e,o,n])}var m="search:nothing";export{w as a,S as b,g as c};
1
+ import{G as h,Z as d,_ as a,aa as c,za as u}from"./chunk.7L6LYXCV.js";import{b as l}from"./chunk.AJZBJBMO.js";var i=l(h(),1);function w(){let e=u();return(0,i.useMemo)(()=>[...new Set(e.flatMap(o=>o.nodeIds))],[e])}function S(){let e=g(),o=d();return(0,i.useMemo)(()=>{if(!o)return e;let n=o.matched;return n.length===0&&e.length===0?[m]:[...new Set([...e,...n])]},[o,e])}function g(){let{store:e,selection:o}=a(),n=c();return(0,i.useMemo)(()=>{if(o.length===0)return[];let r=new Set(o),s=new Set(r);for(let t of e.graph.allEdges())r.has(t.from)&&s.add(t.to),r.has(t.to)&&s.add(t.from);for(let t of e.violations())if(t.subjectId!==void 0&&r.has(t.subjectId))for(let f of t.nodeIds)s.add(f);return[...s]},[e,o,n])}var m="search:nothing";export{w as a,S as b,g as c};