graview 0.1.37 → 0.1.39

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 (203) hide show
  1. package/dist/preview/chunk.23WYWIAJ.js +1 -0
  2. package/dist/preview/chunk.2BJRS3YJ.js +3 -0
  3. package/dist/preview/{chunk.MJLUAGEV.js → chunk.2GGDOFTF.js} +1 -1
  4. package/dist/preview/chunk.2HF54MYG.js +1 -0
  5. package/dist/preview/{chunk.X2OLXTRL.js → chunk.2IX3CZNP.js} +1 -1
  6. package/dist/preview/chunk.2NSTEREJ.js +1 -0
  7. package/dist/preview/{chunk.57XTDW57.js → chunk.2RCNSHXK.js} +1 -1
  8. package/dist/preview/chunk.37ASLBGE.js +1 -0
  9. package/dist/preview/chunk.3ZNQ5YKX.js +1 -0
  10. package/dist/preview/{chunk.QYWBQ5NX.js → chunk.4BBJ62ZO.js} +1 -1
  11. package/dist/preview/chunk.4ECICQ2S.js +1 -0
  12. package/dist/preview/{chunk.JBRXGPPM.js → chunk.4PNFX3TX.js} +1 -1
  13. package/dist/preview/{chunk.6DYZBDWT.js → chunk.546WEHEX.js} +1 -1
  14. package/dist/preview/chunk.57OPL5WD.js +1 -0
  15. package/dist/preview/{chunk.5CLFTXP3.js → chunk.5JPRFXYQ.js} +1 -1
  16. package/dist/preview/chunk.5OJJ2TKZ.js +9 -0
  17. package/dist/preview/chunk.5R4E5C76.js +1 -0
  18. package/dist/preview/{chunk.YAXOIJVH.js → chunk.5XNVN4HE.js} +1 -1
  19. package/dist/preview/chunk.5ZMENPY4.js +5 -0
  20. package/dist/preview/{chunk.74DXEKUV.js → chunk.67USHK26.js} +1 -1
  21. package/dist/preview/chunk.6CFP5UYP.js +1 -0
  22. package/dist/preview/{chunk.JDRM6XXD.js → chunk.6DHHUBSC.js} +1 -1
  23. package/dist/preview/chunk.6HBEYRJU.js +1 -0
  24. package/dist/preview/chunk.6L7IDF3J.js +1 -0
  25. package/dist/preview/{chunk.UV2TSAB4.js → chunk.6XU2CXRZ.js} +1 -1
  26. package/dist/preview/chunk.7EFNLMKU.js +1 -0
  27. package/dist/preview/chunk.7WSXVXP3.js +1 -0
  28. package/dist/preview/chunk.ALDLAQ7V.js +1 -0
  29. package/dist/preview/chunk.AYHCQWSU.js +1 -0
  30. package/dist/preview/{chunk.FGYCYLUS.js → chunk.B2IRADR2.js} +1 -1
  31. package/dist/preview/{chunk.SZMWJHU2.js → chunk.B7TB6YRZ.js} +1 -1
  32. package/dist/preview/chunk.BCHHBGM6.js +1 -0
  33. package/dist/preview/chunk.BEC5ZH2L.js +1 -0
  34. package/dist/preview/chunk.BL4S3I2N.js +1 -0
  35. package/dist/preview/chunk.BS3FX4PX.js +1 -0
  36. package/dist/preview/chunk.BTSXYZ6Z.js +25 -0
  37. package/dist/preview/chunk.BYKR7NEE.js +1 -0
  38. package/dist/preview/chunk.BZSU4HH2.js +1 -0
  39. package/dist/preview/chunk.C2OAKTZX.js +1 -0
  40. package/dist/preview/chunk.C4CFYTCW.js +1 -0
  41. package/dist/preview/{chunk.QJYALCIW.js → chunk.C6X7CKU6.js} +1 -1
  42. package/dist/preview/chunk.CAMQ7MYJ.js +1 -0
  43. package/dist/preview/{chunk.LJE5J3JK.js → chunk.CC47O2DW.js} +1 -1
  44. package/dist/preview/{chunk.TRLVFHFT.js → chunk.CF7DHTKL.js} +2 -2
  45. package/dist/preview/{chunk.CV4CBHFT.js → chunk.CMN6VVK2.js} +1 -1
  46. package/dist/preview/chunk.CTK2P4JV.js +3 -0
  47. package/dist/preview/chunk.DAA7IDQ4.js +1 -0
  48. package/dist/preview/{chunk.TSI4O3GH.js → chunk.DYNBWIPF.js} +1 -1
  49. package/dist/preview/chunk.E3HXXUKY.js +1 -0
  50. package/dist/preview/{chunk.KAWP4RNR.js → chunk.EBHKKOPO.js} +1 -1
  51. package/dist/preview/chunk.EDC4EMIX.js +1 -0
  52. package/dist/preview/chunk.EM4Y4YAD.js +2 -0
  53. package/dist/preview/{chunk.GMZAQGH7.js → chunk.EWWJMS6G.js} +1 -1
  54. package/dist/preview/chunk.F5UVEF2R.js +1 -0
  55. package/dist/preview/{chunk.5JPRRV47.js → chunk.FCXBCKED.js} +1 -1
  56. package/dist/preview/chunk.FGDHEVH4.js +1 -0
  57. package/dist/preview/chunk.FILCNVGH.js +2 -0
  58. package/dist/preview/chunk.FJBQ4UP3.js +32 -0
  59. package/dist/preview/{chunk.EKUAI5YL.js → chunk.FMN5XDLE.js} +1 -1
  60. package/dist/preview/chunk.G23VFYGF.js +88 -0
  61. package/dist/preview/chunk.G46WGK5E.js +1 -0
  62. package/dist/preview/chunk.GAFYE37S.js +3 -0
  63. package/dist/preview/{chunk.TN4GY6LW.js → chunk.GP2F7TIN.js} +1 -1
  64. package/dist/preview/chunk.GXKECZ4S.js +19 -0
  65. package/dist/preview/{chunk.NOZEHLWG.js → chunk.H5CZZZLX.js} +1 -1
  66. package/dist/preview/{chunk.CGQLE7JW.js → chunk.HA3PPIEQ.js} +1 -1
  67. package/dist/preview/chunk.HFDYFPMJ.js +1 -0
  68. package/dist/preview/chunk.HFYUAK5Z.js +6 -0
  69. package/dist/preview/chunk.HGS32FT2.js +1 -0
  70. package/dist/preview/chunk.HHUCPVG5.js +1 -0
  71. package/dist/preview/chunk.I7CU2E3C.js +7 -0
  72. package/dist/preview/{chunk.3V2M3S4U.js → chunk.IAZRY42B.js} +1 -1
  73. package/dist/preview/{chunk.UPBUF7KR.js → chunk.ITEF3U2E.js} +1 -1
  74. package/dist/preview/{chunk.SNKOPWAD.js → chunk.IXYBIDAN.js} +1 -1
  75. package/dist/preview/{chunk.NZJZIYDK.js → chunk.J3M2MZHG.js} +1 -1
  76. package/dist/preview/{chunk.YX354FRV.js → chunk.JBTU2PJ4.js} +1 -1
  77. package/dist/preview/chunk.JCR3ECUM.js +1 -0
  78. package/dist/preview/{chunk.XS3SAH6U.js → chunk.JEZTPXEB.js} +1 -1
  79. package/dist/preview/chunk.KIJCOW25.js +1 -0
  80. package/dist/preview/{chunk.YFW5BF6J.js → chunk.KJNUZYXS.js} +1 -1
  81. package/dist/preview/chunk.L7DQKPJV.js +117 -0
  82. package/dist/preview/{chunk.UCVZG7S4.js → chunk.LCYMYLOP.js} +1 -1
  83. package/dist/preview/chunk.LP2DJ5ZB.js +6 -0
  84. package/dist/preview/chunk.LP3QUPCE.js +1 -0
  85. package/dist/preview/chunk.M5QFUGGG.js +1 -0
  86. package/dist/preview/chunk.N2SV3KX7.js +1 -0
  87. package/dist/preview/chunk.N7N5OFPL.js +1 -0
  88. package/dist/preview/{chunk.BA3REPV5.js → chunk.NG3YMQ36.js} +1 -1
  89. package/dist/preview/{chunk.7OLVQ2FZ.js → chunk.NSNGPQGT.js} +1 -1
  90. package/dist/preview/chunk.OJKS3UQS.js +1 -0
  91. package/dist/preview/{chunk.UR5TT4JH.js → chunk.OM5CDW2S.js} +1 -1
  92. package/dist/preview/chunk.ORXFUK6F.js +344 -0
  93. package/dist/preview/chunk.OXTUXWMU.js +1 -0
  94. package/dist/preview/chunk.OYMM2UWE.js +1 -0
  95. package/dist/preview/chunk.P3JYH6HO.js +1 -0
  96. package/dist/preview/{chunk.AWRS6TUN.js → chunk.P4WYBSYA.js} +1 -1
  97. package/dist/preview/chunk.P5325GYR.js +1 -0
  98. package/dist/preview/chunk.PMER4LVT.js +1 -0
  99. package/dist/preview/chunk.PONWLTTB.js +1 -0
  100. package/dist/preview/chunk.PXQVXBNG.js +1 -0
  101. package/dist/preview/chunk.QCF6Z2AZ.js +1 -0
  102. package/dist/preview/chunk.QEXXLWEU.js +6 -0
  103. package/dist/preview/chunk.QMFUPTR4.js +1 -0
  104. package/dist/preview/chunk.RM7NVN7B.js +3 -0
  105. package/dist/preview/{chunk.RPOYSIVQ.js → chunk.ROINZMNO.js} +1 -1
  106. package/dist/preview/chunk.ROKRQRID.js +35 -0
  107. package/dist/preview/chunk.RWB4235L.js +1 -0
  108. package/dist/preview/chunk.RXSHFG6S.js +1 -0
  109. package/dist/preview/chunk.SDO3U72B.js +1 -0
  110. package/dist/preview/chunk.SHNYYBNW.js +1 -0
  111. package/dist/preview/{chunk.HYAKRLPT.js → chunk.SK33IHL2.js} +3 -3
  112. package/dist/preview/chunk.STBJV6HJ.js +1 -0
  113. package/dist/preview/chunk.TCUB6IDY.js +1 -0
  114. package/dist/preview/chunk.TJCTTJWE.js +1 -0
  115. package/dist/preview/{chunk.WVEKYJSI.js → chunk.TU4KG22J.js} +6 -6
  116. package/dist/preview/chunk.U4E5GQTK.js +1 -0
  117. package/dist/preview/{chunk.4NCXMVPY.js → chunk.U7QMA4H7.js} +1 -1
  118. package/dist/preview/chunk.UB3O3QJQ.js +2 -0
  119. package/dist/preview/{chunk.ENJKCSNX.js → chunk.UCZR33MK.js} +1 -1
  120. package/dist/preview/chunk.UGCNMAPC.js +1 -0
  121. package/dist/preview/chunk.UIUHGA6W.js +1 -0
  122. package/dist/preview/chunk.VC4JPG7O.js +1 -0
  123. package/dist/preview/{chunk.YNJOLOFG.js → chunk.W4OX4BMP.js} +1 -1
  124. package/dist/preview/chunk.WJQY4E45.js +1 -0
  125. package/dist/preview/chunk.WQPNGBR7.js +1 -0
  126. package/dist/preview/chunk.WTZOOAIW.js +1 -0
  127. package/dist/preview/chunk.WXYUWBKX.js +1 -0
  128. package/dist/preview/chunk.XBOZTQQA.js +1 -0
  129. package/dist/preview/chunk.XLI44BBI.js +17 -0
  130. package/dist/preview/chunk.XLZ2QRRS.js +1 -0
  131. package/dist/preview/chunk.XQTMO5PW.js +1 -0
  132. package/dist/preview/chunk.YWVOACSX.js +5 -0
  133. package/dist/preview/{chunk.BXWO6ILK.js → chunk.YXGI7H4Y.js} +1 -1
  134. package/dist/preview/{chunk.UVLPVHID.js → chunk.Z7JRBKA7.js} +1 -1
  135. package/dist/preview/chunk.ZR5KVYWZ.js +21 -0
  136. package/dist/preview/{chunk.WNMLA4YW.js → chunk.ZTMDU3OH.js} +1 -1
  137. package/dist/preview/index.html +45 -42
  138. package/dist/preview/page.js +7 -7
  139. package/package.json +6 -6
  140. package/dist/preview/chunk.24E4R4ZH.js +0 -1
  141. package/dist/preview/chunk.2JF254FO.js +0 -9
  142. package/dist/preview/chunk.2TDB4D6Y.js +0 -1
  143. package/dist/preview/chunk.3IVVXVG7.js +0 -1
  144. package/dist/preview/chunk.3KJQXYCA.js +0 -1
  145. package/dist/preview/chunk.5EXYDBAL.js +0 -88
  146. package/dist/preview/chunk.67PVRVAC.js +0 -1
  147. package/dist/preview/chunk.6SK2K72G.js +0 -1
  148. package/dist/preview/chunk.76QUEWYD.js +0 -1
  149. package/dist/preview/chunk.7MMNMZLF.js +0 -1
  150. package/dist/preview/chunk.7UQOXYJX.js +0 -1
  151. package/dist/preview/chunk.AHC4EXLW.js +0 -3
  152. package/dist/preview/chunk.AZ333RB3.js +0 -1
  153. package/dist/preview/chunk.BRBY5WJT.js +0 -3
  154. package/dist/preview/chunk.CYPTJNES.js +0 -1
  155. package/dist/preview/chunk.D2ILIAND.js +0 -1
  156. package/dist/preview/chunk.DLCFCMKX.js +0 -1
  157. package/dist/preview/chunk.DMUUYZ37.js +0 -1
  158. package/dist/preview/chunk.DNNL7F3P.js +0 -25
  159. package/dist/preview/chunk.EHT4HBH5.js +0 -35
  160. package/dist/preview/chunk.ELY2RMGE.js +0 -19
  161. package/dist/preview/chunk.ENEOGGFM.js +0 -1
  162. package/dist/preview/chunk.FEPYKPZE.js +0 -1
  163. package/dist/preview/chunk.FFW6XWHB.js +0 -17
  164. package/dist/preview/chunk.G7S7GLDK.js +0 -1
  165. package/dist/preview/chunk.GXPBRYSR.js +0 -1
  166. package/dist/preview/chunk.H4LFJPDV.js +0 -1
  167. package/dist/preview/chunk.HBBVVALN.js +0 -5
  168. package/dist/preview/chunk.HCK4Y6C5.js +0 -1
  169. package/dist/preview/chunk.HSRGYZOR.js +0 -1
  170. package/dist/preview/chunk.IHBIRAC4.js +0 -2
  171. package/dist/preview/chunk.IWK5QL6P.js +0 -1
  172. package/dist/preview/chunk.J2HQEUYA.js +0 -1
  173. package/dist/preview/chunk.JFLUVZNW.js +0 -1
  174. package/dist/preview/chunk.LPJY6V5D.js +0 -1
  175. package/dist/preview/chunk.LVLAS5GL.js +0 -1
  176. package/dist/preview/chunk.LVNAB2BW.js +0 -27
  177. package/dist/preview/chunk.LYJXX6BU.js +0 -2
  178. package/dist/preview/chunk.MKPJKZAP.js +0 -1
  179. package/dist/preview/chunk.MMBMVHIG.js +0 -1
  180. package/dist/preview/chunk.NNNVB6RV.js +0 -1
  181. package/dist/preview/chunk.NV6IZJKA.js +0 -1
  182. package/dist/preview/chunk.NWHFFOXW.js +0 -1
  183. package/dist/preview/chunk.O6KNGFWH.js +0 -1
  184. package/dist/preview/chunk.PMK73A53.js +0 -1
  185. package/dist/preview/chunk.PQPZZ7ZW.js +0 -117
  186. package/dist/preview/chunk.QMZUKAPJ.js +0 -1
  187. package/dist/preview/chunk.QNGFBJWP.js +0 -1
  188. package/dist/preview/chunk.QOXTBRKE.js +0 -1
  189. package/dist/preview/chunk.QXARGANF.js +0 -341
  190. package/dist/preview/chunk.TX5QIZEP.js +0 -1
  191. package/dist/preview/chunk.TXS4I326.js +0 -1
  192. package/dist/preview/chunk.U4URQDC5.js +0 -1
  193. package/dist/preview/chunk.VUKHDZNI.js +0 -1
  194. package/dist/preview/chunk.VW6WGFL6.js +0 -1
  195. package/dist/preview/chunk.VX7MGVP5.js +0 -1
  196. package/dist/preview/chunk.WLV2QYTS.js +0 -1
  197. package/dist/preview/chunk.WNKRXL3O.js +0 -1
  198. package/dist/preview/chunk.XWJ2MRQF.js +0 -1
  199. package/dist/preview/chunk.Y44TR4WG.js +0 -1
  200. package/dist/preview/chunk.YW2BZ2LH.js +0 -6
  201. package/dist/preview/chunk.ZB7GV3IT.js +0 -1
  202. package/dist/preview/chunk.ZOT4V66Q.js +0 -3
  203. package/dist/preview/chunk.ZYPCE2LZ.js +0 -1
@@ -1 +0,0 @@
1
- import{b as x}from"./chunk.HSRGYZOR.js";import"./chunk.BRBY5WJT.js";import"./chunk.VUKHDZNI.js";import"./chunk.WVUJXDXZ.js";import"./chunk.YFW5BF6J.js";import"./chunk.QYWBQ5NX.js";import"./chunk.ENJKCSNX.js";import"./chunk.LJE5J3JK.js";import"./chunk.X2OLXTRL.js";import"./chunk.JDRM6XXD.js";import"./chunk.GZHZLJBF.js";import{n as R}from"./chunk.GXPBRYSR.js";import"./chunk.NV6IZJKA.js";import"./chunk.OJGHDWI6.js";import"./chunk.7OLVQ2FZ.js";import"./chunk.NOZEHLWG.js";import"./chunk.UVLPVHID.js";import"./chunk.QXARGANF.js";import{F as A,Q as v,Z as g}from"./chunk.DNNL7F3P.js";import{ia as y,ma as c,pc as k}from"./chunk.HBBVVALN.js";import{b as u}from"./chunk.AJZBJBMO.js";var f=u(A(),1);var L=u(A(),1),S=(0,L.createContext)(void 0);var i=u(v(),1),W=new WeakMap,m=new WeakMap,P=(e,n)=>`${n.kind}\0${n.id??""}\0${e}`;function b(e,n,a){let p=P(n,a),o=W.get(e);o||W.set(e,o=new Map);let t=o.get(p);return t||(t=Promise.resolve().then(()=>e(n,a)).then(r=>C(r)?r:null,()=>null).then(r=>{let s=m.get(e);return s||m.set(e,s=new Map),s.set(p,r),r}),o.set(p,t)),t}function C(e){if(e===null)return!0;if(typeof e!="object"||e===void 0)return!1;if(e.denied===!0)return!0;let n=e;return typeof n.name=="string"&&n.name.trim()!==""&&typeof n.href=="string"}function h(e){if(/^https?:\/\//i.test(e))try{return new URL(e).href}catch{return}}var N=e=>h(e)??(c(e)?e:void 0),E=e=>h(e)??(e.startsWith("/")&&c(e)?e:void 0),I={kind:"human"},w={color:"var(--graview-ink-muted)"};function M({icon:e}){if(!e)return null;let n=E(e);if(n)return(0,i.jsx)("img",{src:n,alt:"",width:20,height:20,"data-graview-app-icon":"",style:{width:20,height:20,borderRadius:5,objectFit:"cover",flex:"0 0 auto"}});let a=[...e.trim()].slice(0,2).join("");return a?(0,i.jsx)("span",{"aria-hidden":"true","data-graview-app-icon":"",style:{flex:"0 0 auto",lineHeight:"20px"},children:a}):null}function V(e){let n=g(),a=(0,f.useContext)(S)??n?.resolveApp,p=n?.principal??I,o=()=>a?m.get(a)?.get(P(e,p))??"asking":null,[t,r]=(0,f.useState)(o);return(0,f.useEffect)(()=>{let s=o();if(r(s),s!=="asking"||!a)return;let l=!0;return b(a,e,p).then(d=>l&&r(d)),()=>{l=!1}},[a,e,p.kind,p.id]),t}function D({address:e,as:n="chip",nodeId:a,field:p,style:o}){let t=V(e),r={position:"relative",zIndex:k.raised,overflowWrap:"anywhere",minWidth:0,maxWidth:"100%",...o},s;if(t==="asking")s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"asking","aria-busy":"true",style:{...w,...r},children:"Linked app"});else if(t&&"denied"in t)s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"denied",style:{...w,fontStyle:"italic",...r},children:"linked app (no access)"});else if(t){let l=N(t.href),d=n==="record"?t.headline?.trim():void 0;s=(0,i.jsxs)(l?"a":"span",{"data-graview-app-link":"","data-graview-app-state":"found",...l?{href:l}:{},...!d&&t.headline?{title:t.headline}:{},style:{display:"inline-flex",alignItems:d?"flex-start":"center",minHeight:24,gap:8,color:"inherit",textUnderlineOffset:3,...r},children:[(0,i.jsx)(M,{icon:t.icon}),(0,i.jsxs)("span",{style:{display:"grid",minWidth:0},children:[(0,i.jsx)("span",{"data-graview-app-name":"",style:{fontWeight:600},children:t.name}),d?(0,i.jsx)("span",{"data-graview-app-headline":"",style:{...w,fontSize:"0.8125em",fontWeight:400},children:d}):null]})]})}else{let l=h(e);s=l?(0,i.jsx)("a",{"data-graview-app-link":"","data-graview-app-state":"plain",href:l,rel:"noopener noreferrer",target:"_blank",style:{color:"var(--graview-accent)",display:"inline-flex",alignItems:"center",minHeight:24,...r},children:e}):(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"plain",style:r,children:e})}return a&&p?(0,i.jsx)(H,{nodeId:a,field:p,address:e,drawn:s}):s}function H({nodeId:e,field:n,address:a,drawn:p}){let o=R(e).fields.some(s=>s.field===n),t=g()?.store;if(!o)return p;let r=y(t?t.schema.tryDefinition(String(t.graph.getNode(e)?.kind)):void 0,n).toLowerCase();return(0,i.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 12px",maxWidth:"100%",minWidth:0},children:[p,(0,i.jsx)("span",{style:{fontSize:"0.8125rem"},children:(0,i.jsx)(x,{nodeId:e,field:n,value:"Change",stored:a,said:`Change the ${r}`})})]})}var _=e=>(0,i.jsx)(D,{...e});export{D as AppLink,_ as drawAppLink};
@@ -1 +0,0 @@
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 z,g as Z,h as ee}from"./chunk.67PVRVAC.js";import{a as Q,b as X}from"./chunk.GMZAQGH7.js";import{b}from"./chunk.57XTDW57.js";import{d as q}from"./chunk.WNMLA4YW.js";import{a as K}from"./chunk.UT6642FC.js";import{h as I}from"./chunk.7OLVQ2FZ.js";import{m as J}from"./chunk.QXARGANF.js";import{F,I as P,N as L,O as T,Q as U,Y as v,a as $,ea as G,sa as V,wa as Y,xa as _}from"./chunk.DNNL7F3P.js";import{Ua as H,ba as j,da as E,ob as A}from"./chunk.HBBVVALN.js";import{b as W}from"./chunk.AJZBJBMO.js";var c=W(F(),1);var te=W(F(),1);function ne(){let{ai:i,aiDesk:n}=v(),{entries:r}=P(n),a=i.off===!0;return(0,te.useEffect)(()=>{a||n.load()},[n,a]),a?[]:r}var e=W(U(),1),ae=_($(()=>(__graviewPreload(import.meta.url,["./chunk.74DXEKUV.js","./chunk.Y44TR4WG.js","./chunk.QXARGANF.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.MMBMVHIG.js")))),ge=ae.part((i,n)=>(0,e.jsx)(i.InteractionRow,{...n}),{quiet:!0,as:"li"}),ue=ae.part((i,n)=>(0,e.jsx)(i.ActivityFilter,{...n}),{quiet:!0,as:"div"}),ie=(i,n,r=re(i,[n]))=>({intent:n.intent,author:n.author.kind,...n.author.id?{authorId:n.author.id}:{},by:n.author,...n.ops[0]?.via?{via:n.ops[0].via}:{},...n.lineage?{basis:K(n.lineage)}:{},touched:[...new Set(n.ops.filter(a=>!A(a)).flatMap(a=>a.writes))],...ce(n.ops.filter(a=>!A(a)).flatMap(a=>a.writes),r),batch:n.id,at:n.at,...n.lineage?.interaction?{interaction:n.lineage.interaction}:{},seq:n.ops.at(-1).seq+1,...n.ops.every(A)?{withheld:!0}:{}});function he(i=4){let{store:n,principal:r}=v(),a=T(n,r),d=a.log.length;return(0,c.useMemo)(()=>{let s=a.batches(),l=re(a,s);return Q(s,o=>a.log.get(o)).reverse().slice(0,i).map(o=>{if("batch"in o)return ie(a,o.batch,l);let g=[...o.digest.batches].reverse().map(u=>ie(a,u,l));return{intent:X(o.digest),author:o.digest.author.kind,...o.digest.author.id?{authorId:o.digest.author.id}:{},by:o.digest.author,touched:[...new Set(g.flatMap(u=>u.touched))],batch:"",...g[0]?.at?{at:g[0].at}:{},seq:g[0]?.seq??0,digest:g}})},[a,d,i])}function re(i,n){let r=new Map;for(let a of n)for(let d of a.ops)if(!A(d))for(let s of d.primitives)(s.op==="add-node"||s.op==="remove-node")&&s.node&&r.set(s.node.id,j(i.schema.tryDefinition(s.node.kind),s.node));return r}function ce(i,n){let r={};for(let a of i){let d=n.get(a);d!==void 0&&(r[a]=d)}return Object.keys(r).length>0?{named:r}:{}}function ye({change:i}){let{store:n,principal:r,seats:a,people:d}=v();return(0,e.jsxs)("strong",{style:{fontWeight:600},children:[i.author==="human"&&i.by?.onBehalfOf===void 0&&(i.authorId===void 0||r.id===void 0||i.authorId===r.id)?"you":H(i.by??{kind:i.author,id:i.authorId},{graph:n.graph,schema:n.schema,seats:a,people:d}),I(i.via)?(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-muted)"},children:[", ",I(i.via)]}):null]})}function fe({change:i,goes:n}){let{store:r}=v(),[a,d]=(0,c.useState)(!1),s=i.digest??[];return(0,e.jsxs)("li",{"data-testid":"activity-digest",style:{display:"grid",gap:5,lineHeight:1.45},children:[(0,e.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,e.jsxs)("span",{style:{minWidth:0},children:[(0,e.jsx)(ye,{change:i})," ",(0,e.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:i.intent})]}),(0,e.jsx)("button",{type:"button","data-testid":"digest-toggle","aria-expanded":a,onClick:()=>d(l=>!l),style:{marginLeft:"auto",flex:"0 0 auto",display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem"},children:a?"Hide":"Show each"})]}),a?(0,e.jsx)("ol",{"data-testid":"digest-changes",style:{margin:0,padding:"0 0 0 10px",listStyle:"none",display:"grid",gap:6,borderLeft:"1px solid var(--graview-edge)"},children:s.map(l=>(0,e.jsxs)("li",{"data-testid":"digest-change",style:{display:"grid",gap:3},children:[(0,e.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,e.jsxs)("span",{style:{minWidth:0},children:[(0,e.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:l.intent}),l.basis?(0,e.jsxs)("span",{"data-graview-lineage":"",style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",l.basis]}):null]}),l.withheld?null:(0,e.jsx)(B,{batch:l.batch})]}),l.touched.length>0?(0,e.jsx)("div",{"data-touched":l.touched.join(" "),style:{display:"flex",flexWrap:"wrap",gap:4},children:l.touched.slice(0,4).map(o=>(0,e.jsx)(M,{id:o,label:r.graph.has(o)?b(r,o):l.named?.[o]??b(r,o),go:n(o)},o))}):null]},l.batch))}):null]})}function B({batch:i}){let{store:n,principal:r,noteSeat:a}=v(),d=T(n,r),s=L()?.open??!1,l=d.log.length,[o,g]=(0,c.useState)(null),u=(0,c.useMemo)(()=>d.canUndo(i),[d,i,l]);if(s||!u.ok&&u.ops.length===0)return null;let w=!u.ok,k=w?u.includeBatches:[];return(0,e.jsxs)("span",{style:{marginLeft:"auto",flex:"0 0 auto",display:"grid",justifyItems:"end",gap:2},children:[(0,e.jsx)("button",{type:"button","data-testid":"undo-turn",title:w?`${u.message} \u2014 undo those too`:"Take this back, keeping everything since",onClick:()=>{g(null);try{let m=d.log.all().find(x=>x.batch===i&&x.author.kind==="agent");d.undo(w?[i,...k]:i,{author:r}),m&&a({type:"home",author:m.author})}catch(m){g(m instanceof Error?m.message:String(m))}},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem",...w?{borderColor:"var(--graview-warn)",color:"var(--graview-warn)"}:{}},children:w?`undo +${k.length}`:"undo"}),o?(0,e.jsx)("span",{"data-testid":"undo-refused",role:"alert",style:{fontSize:"0.75rem",lineHeight:1.4,color:"var(--graview-warn)",maxWidth:260,textAlign:"right"},children:o}):null]})}function me({seq:i,intent:n}){let r=L();if(!r)return null;let a=r.past?.seq===i;return(0,e.jsx)("button",{type:"button","data-testid":"show-past","aria-label":`Show the app as it was after \u201C${n}\u201D`,title:"Show the app as it was here","aria-pressed":a,onPointerEnter:z,onFocus:z,onClick:()=>r.show(i),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minHeight:24,minWidth:24,padding:"1px 6px",fontSize:"0.75rem",flex:"0 0 auto"},children:(0,e.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[(0,e.jsx)("path",{d:"M2.5 8 a5.5 5.5 0 1 0 1.6-3.9",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),(0,e.jsx)("path",{d:"M2 2.5 V5.5 H5",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,e.jsx)("path",{d:"M8 5 V8 L10 9.25",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})})}function ve(){let i=()=>{let n=new URL(window.location.href);return n.searchParams.set("fresh","1"),n.toString()};return(0,e.jsx)("a",{href:"#fresh","data-testid":"start-fresh",title:"Forget every edit made in this browser and return to the example",onClick:n=>{n.preventDefault(),window.location.assign(i())},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",textDecoration:"underline",textDecorationColor:"var(--graview-edge-bright)",textUnderlineOffset:3},children:"Start fresh"})}function M({id:i,label:n,go:r}){return r?(0,e.jsx)("button",{type:"button","data-testid":"activity-record","data-record":i,title:`Go to ${n}`,onClick:()=>r(i),style:{all:"unset",display:"inline-flex",cursor:"pointer",borderRadius:7},className:"graview-activity-record",children:(0,e.jsx)(q,{label:n})}):(0,e.jsx)(q,{label:n})}function Oe({calls:i,seat:n,remembers:r=!1}){let a=he(),{store:d,principal:s,seats:l,people:o}=v(),g=ne(),[u,w]=(0,c.useState)("all"),[k,m]=(0,c.useState)(!1),x=t=>t!==void 0&&(t.id===s.id||t.onBehalfOf?.id===s.id)&&s.id!==void 0,oe=new Set(g.map(t=>t.id)),se=a.filter(t=>!(t.interaction!==void 0&&oe.has(t.interaction))&&(!k||x(t.by))),de=g.filter(t=>!k||x(t.by)).slice(0,4),C=[...u==="ai"?[]:se.map(t=>({at:t.at??"",change:t})),...u==="changes"?[]:de.map(t=>({at:t.at,entry:t}))].sort((t,y)=>t.at<y.at?1:t.at>y.at?-1:0),f=T(d,s),O=i.some(t=>t.phase==="running"),le=Z(),S=Y("activity"),D=S.open,pe=G(),N=L(),R=t=>f.graph.has(t)?y=>{S.setOpen(!1),N?.past&&N.show(null),pe.record(y)}:null;return n===void 0&&i.length===0&&a.length===0&&g.length===0&&!r&&le===0?null:(0,e.jsxs)("div",{style:{position:"relative"},children:[(0,e.jsxs)("button",{type:"button","data-testid":"activity-button",...S.trigger,onClick:S.toggle,title:O?"An agent is working":"What has happened",style:{display:"inline-flex",alignItems:"center",gap:6,minHeight:30,padding:"0 8px",borderRadius:8,border:"1px solid transparent",background:"transparent",boxShadow:"none",fontSize:"0.875rem",whiteSpace:"nowrap",color:O?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[O?(0,e.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:999,background:"var(--graview-accent)"}}):null,a.length>0?a.length:"",(0,e.jsxs)("svg",{className:"graview-activity-mark",width:"15",height:"15",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",style:{display:"var(--graview-activity-mark, none)"},children:[(0,e.jsx)("circle",{cx:"8",cy:"8",r:"5.75",fill:"none",stroke:"currentColor",strokeWidth:"1.4"}),(0,e.jsx)("path",{d:"M8 4.75 V8 L10.25 9.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]}),(0,e.jsx)("span",{className:"graview-activity-word",children:" Activity"})]}),!D&&n!==void 0?(0,e.jsx)("div",{hidden:!0,"data-testid":"agent-seat-seated",children:n}):null,D?(0,e.jsxs)("section",{...S.pane,"aria-label":"Activity","data-testid":"activity","data-graview-offstage":"",style:{...V,width:300,maxHeight:"min(52cqh, 460px)",overflow:"auto",display:"flex",flexDirection:"column",gap:9,padding:12,borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[(0,e.jsx)("h2",{style:{...J,margin:0},children:"Activity"}),n!==void 0?(0,e.jsxs)("div",{"data-testid":"agent-seat-row",style:{display:"grid",gap:5,paddingBottom:i.length>0||C.length>0?9:0,...i.length>0||C.length>0?{borderBottom:"1px solid var(--graview-edge)"}:{}},children:[(0,e.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"The agent's seat"}),n]}):null,i.length>0?(0,e.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:7},children:i.slice(0,6).map((t,y)=>(0,e.jsxs)("li",{style:{display:"grid",gap:2,fontSize:"0.8125rem",lineHeight:1.45},children:[(0,e.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,e.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:999,flex:"0 0 auto",background:t.phase==="running"?"var(--graview-accent)":t.phase==="failed"?"var(--graview-warn)":"var(--graview-edge-bright)"}}),(0,e.jsxs)("span",{style:{color:"var(--graview-ink)"},children:[t.mutating?"changed":"read"," \xB7"," ",f.allMutations().find(p=>p.name===t.name)?.title??E(t.name)]})]}),!t.mutating&&t.reads&&t.reads.length>0?(0,e.jsxs)("div",{"data-testid":"activity-reads",style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:[[...new Set(t.reads)].slice(0,3).map(p=>(0,e.jsx)(M,{id:p,label:b(f,p),go:R(p)},p)),new Set(t.reads).size>3?(0,e.jsxs)("span",{style:{color:"var(--graview-ink-muted)"},children:["+",new Set(t.reads).size-3]}):null]}):Object.values(t.args).some(p=>typeof p=="string")?(0,e.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:Object.entries(t.args).filter(p=>typeof p[1]=="string").slice(0,3).map(([p,h])=>(0,e.jsx)(M,{id:h,label:b(f,h),go:R(h)},p))}):null,t.error?(0,e.jsx)("div",{style:{paddingLeft:12,color:"var(--graview-warn)"},children:t.error}):null]},`${t.at}:${y}`))}):null,g.length>0?(0,e.jsx)(c.Suspense,{fallback:null,children:(0,e.jsx)(ue,{shows:u,onShows:w,mine:k,onMine:m})}):null,C.length>0?(0,e.jsx)("ol",{"data-testid":"diff-log",style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6,fontSize:"0.8125rem"},children:C.map(({change:t,entry:y},p)=>y!==void 0?(0,e.jsx)(c.Suspense,{fallback:null,children:(0,e.jsx)(ge,{entry:y,undo:h=>(0,e.jsx)(B,{batch:h})})},`ai:${y.id}`):t.digest?(0,e.jsx)(fe,{change:t,goes:R},`digest:${t.digest[0]?.batch??p}`):t.withheld?(0,e.jsx)("li",{"data-testid":"withheld-change",style:{display:"grid",gap:3,lineHeight:1.45},children:(0,e.jsx)("span",{"data-touched":"",style:{color:"var(--graview-ink-muted)",fontStyle:"italic"},children:t.intent})},`change:${p}`):(0,e.jsxs)("li",{"data-batch":t.batch,style:{display:"grid",gap:3,lineHeight:1.45},children:[(0,e.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,e.jsxs)("span",{style:{minWidth:0},children:[(0,e.jsxs)("strong",{style:{fontWeight:600},children:[t.author==="human"&&t.by?.onBehalfOf===void 0&&(t.authorId===void 0||s.id===void 0||t.authorId===s.id)?"you":H(t.by??{kind:t.author,id:t.authorId},{graph:f.graph,schema:f.schema,seats:l,people:o}),I(t.via)?(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-muted)"},children:[", ",I(t.via)]}):null]})," ",(0,e.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:t.intent}),t.basis?(0,e.jsxs)("span",{"data-graview-lineage":"",style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",t.basis]}):null]}),t.batch?(0,e.jsx)(me,{seq:t.seq,intent:t.intent}):null,t.batch?(0,e.jsx)(B,{batch:t.batch}):null]}),(0,e.jsx)("div",{"data-touched":t.touched.join(" "),style:{display:"flex",flexWrap:"wrap",gap:4},children:t.touched.slice(0,4).map(h=>(0,e.jsx)(M,{id:h,label:f.graph.has(h)?b(f,h):t.named?.[h]??b(f,h),go:R(h)},h))})]},`change:${p}`))}):null,(0,e.jsx)(ee,{style:{paddingTop:8,borderTop:"1px solid var(--graview-edge)"}}),r?(0,e.jsxs)("div",{"data-testid":"remembered",style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:10,paddingTop:8,borderTop:"1px solid var(--graview-edge)",fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:[(0,e.jsx)("span",{children:"Remembered in this browser"}),(0,e.jsx)(ve,{})]}):null]}):null]})}export{B as a,Oe as b};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk.PQPZZ7ZW.js";import"./chunk.6DYZBDWT.js";import"./chunk.3IVVXVG7.js";import"./chunk.UGFDSE37.js";import{j as s}from"./chunk.WNKRXL3O.js";import"./chunk.YW2BZ2LH.js";import"./chunk.CYPTJNES.js";import"./chunk.4NCXMVPY.js";import"./chunk.TN4GY6LW.js";import"./chunk.QJYALCIW.js";import"./chunk.HSRGYZOR.js";import"./chunk.BRBY5WJT.js";import"./chunk.ELY2RMGE.js";import"./chunk.UV2TSAB4.js";import"./chunk.6SK2K72G.js";import"./chunk.NNNVB6RV.js";import"./chunk.NZJZIYDK.js";import"./chunk.EKUAI5YL.js";import"./chunk.7MMNMZLF.js";import"./chunk.67PVRVAC.js";import"./chunk.MJLUAGEV.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import"./chunk.UT6642FC.js";import"./chunk.MB7LKKUD.js";import"./chunk.WVUJXDXZ.js";import"./chunk.YFW5BF6J.js";import"./chunk.QYWBQ5NX.js";import"./chunk.ENJKCSNX.js";import"./chunk.LJE5J3JK.js";import"./chunk.X2OLXTRL.js";import"./chunk.JDRM6XXD.js";import"./chunk.GZHZLJBF.js";import"./chunk.GXPBRYSR.js";import"./chunk.NV6IZJKA.js";import"./chunk.OJGHDWI6.js";import"./chunk.7OLVQ2FZ.js";import"./chunk.NOZEHLWG.js";import"./chunk.UVLPVHID.js";import"./chunk.QXARGANF.js";import{F as y,Q as i}from"./chunk.DNNL7F3P.js";import"./chunk.HBBVVALN.js";import{b as r}from"./chunk.AJZBJBMO.js";var c=r(y(),1),e=r(i(),1);function v({store:d,views:t,as:a,scope:o}){let l=(0,c.useMemo)(()=>s({scope:`.${o}`}),[o]);return(0,e.jsxs)("div",{"data-testid":"embed-picture","data-embed-content":"",tabIndex:0,"aria-label":t.places().find(m=>m.as===a)?.title??"The picture",style:{flex:"1 1 auto",minHeight:0,display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",background:"var(--graview-ground)",color:"var(--graview-ink)",fontFamily:"var(--graview-font-body, system-ui)"},children:[(0,e.jsx)("style",{children:l}),(0,e.jsx)(n,{store:d,views:t,as:a})]})}export{v as PictureFace};
@@ -1 +0,0 @@
1
- import{a,b,c,d,e,f,g,h,i}from"./chunk.IHBIRAC4.js";import"./chunk.FGYCYLUS.js";import"./chunk.YFW5BF6J.js";import"./chunk.QYWBQ5NX.js";import"./chunk.ENJKCSNX.js";import"./chunk.LJE5J3JK.js";import"./chunk.X2OLXTRL.js";import"./chunk.JDRM6XXD.js";import"./chunk.NOZEHLWG.js";import"./chunk.UVLPVHID.js";import"./chunk.HBBVVALN.js";import"./chunk.AJZBJBMO.js";export{f as columnActs,c as columnMoves,b as columnOf,d as columnReach,e as columnSteps,h as describePlace,i as placeText,g as resolveFor,a as statusColumns};
@@ -1,27 +0,0 @@
1
- import{a as Et,b as Mt,c as Pt,d as Tn}from"./chunk.YW2BZ2LH.js";import{a as Mn,b as kt,c as Pn,d as Ct,e as Ot,f as $t}from"./chunk.HYAKRLPT.js";import{a as Rt,b as Ln,c as At}from"./chunk.IHBIRAC4.js";import{c as Lt,g as Tt,h as Nt}from"./chunk.CYPTJNES.js";import{e as vt}from"./chunk.QJYALCIW.js";import{m as St}from"./chunk.ELY2RMGE.js";import{a as bt,b as xt}from"./chunk.UV2TSAB4.js";import{f as yt,h as wt}from"./chunk.6SK2K72G.js";import{e as ht}from"./chunk.NNNVB6RV.js";import{b as mt,c as te,d as ye,e as Me}from"./chunk.WNMLA4YW.js";import{e as pt}from"./chunk.YFW5BF6J.js";import{l as ft,m as En}from"./chunk.GXPBRYSR.js";import{m as Rn,n as An}from"./chunk.7OLVQ2FZ.js";import{k as Ve}from"./chunk.QXARGANF.js";import{F as De,Q as J,R as ct,Y as X,_ as gt,m as Qe,oa as ut,pa as Je}from"./chunk.DNNL7F3P.js";import{Cc as $n,Ma as at,Mb as lt,Qa as it,Ra as ot,Sa as st,U as Zn,V as et,W as kn,Wb as de,X as nt,Y as Ke,aa as We,ba as he,ea as Ie,fa as tn,ga as tt,ia as Cn,ja as rt,jc as Ye,ka as rn,kc as dt,lb as On,pc as Ce}from"./chunk.HBBVVALN.js";import{b as _}from"./chunk.AJZBJBMO.js";var Nn=_(J(),1);function Pe(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?tn(t,a).toLowerCase():"more";return(0,Nn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,Nn.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 Dt=_(J(),1),Or=(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}},$r=["sort","filter","group","q","archived"];function Oe(e,t={}){let{store:n}=X(),{view:r,go:a}=Je(),l=$r.some(R=>r.within?.[R]!==void 0)?bt(r):t.arrangedBy??{},m=e.nodes??[],g=t.kind??m[0]?.kind??e.node?.kind,y=l.archived!==void 0&&l.archived!==!1&&g!==void 0&&!t.subject?n.graph.nodesOfKind(g,{archived:l.archived}):m,d=t.subject??(t.only?y.filter(t.only):y),f=t.subject?[]:t.only?y.filter(R=>!t.only(R)):[],k=t.kind??d[0]?.kind,s=Or(t.allow,t.lensAllows),c=k?ht(n.schema,String(k)):void 0,S=c?yt(l,c).arrangement:{},o=wt(d,s===!1?{}:S,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[])}),b=e.retired!==void 0&&e.retired>0&&(m[0]?.kind??k)===k?e.retired:0,C=k&&s!==!1&&e.fidelity==="full"&&e.budget===void 0&&(d.length>1||b>0)?(0,Dt.jsx)(St,{schema:n.schema,graph:n.graph,kind:String(k),arrangement:S,allow:s,query:t.query!==!1,onChange:R=>a(xt(r,R)),kept:{shown:o.nodes.length,of:d.length},...b>0?{past:{count:b,widen:()=>a(vt(r,!0))}}:{}}):null;return{nodes:[...f,...o.nodes],arranged:o,arrangement:S,bar:C}}function He(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):We(t.tryDefinition(i.kind),i))}var Le=_(De(),1);var D=_(J(),1),Rr=["slots","x","y","fill"],an=class extends Error{constructor(n,r){super(`${n}
2
- ${r}`);this.hint=r;this.name="BoardBindingError"}},zt=e=>Math.max(0,Math.min(1,e));function Dn(e,t,n,r){let a=c=>c,i=c=>r?he(r.tryDefinition(c.kind),c):String(a(c).label??c.id);if(r&&r.tryDefinition(n.slots)===void 0)throw new an(`No kind is declared for "${n.slots}".`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let l=e.filter(c=>c.kind===n.slots);if(!r&&l.length===0)throw new an(`Nothing to arrange: no "${n.slots}" nodes.`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let m=t.filter(c=>c.kind===n.fill),g=new Map(e.map(c=>[c.id,c])),y=new Map(e.map((c,S)=>[c.id,S])),d=l.map(c=>{let S=a(c),o=n.fillFrom==="occupant",b=m.filter(C=>(o?C.to:C.from)===c.id).map(C=>g.get(o?C.from:C.to)).filter(C=>C!==void 0).sort((C,R)=>(y.get(C.id)??0)-(y.get(R.id)??0)).map(C=>({id:C.id,label:i(C)}));return{id:c.id,code:String(S[n.slotCode??""]??"").trim()||i(c),label:i(c),x:zt(Number(S[n.x]??.5)),y:zt(Number(S[n.y]??.5)),occupants:b}}).sort((c,S)=>c.y-S.y||c.x-S.x),f=new Set(d.flatMap(c=>c.occupants.map(S=>S.id))),k=new Set([...f].map(c=>g.get(c)?.kind).filter(c=>c!==void 0)),s=e.filter(c=>k.has(c.kind)&&!f.has(c.id)).map(c=>({id:c.id,label:i(c)})).sort((c,S)=>c.label<S.label?-1:c.label>S.label?1:0);return{slots:d,empty:d.filter(c=>c.occupants.length===0).map(c=>c.id),spare:s}}function Ar({nodes:e,occupants:t,label:n,fidelity:r,mode:a,options:i,schema:l,implicated:m=[],flagged:g=[]}){let{store:y}=X(),d=He(y.graph,y.schema,e),f=t?[...d.filter(p=>p.kind===i.slots),...t.map(p=>y.graph.getNode(p)).filter(p=>p!==void 0)]:d,k=Dn(f,y.graph.allEdges(),i,l),s=new Set(m),c=new Set(g),S=ut(),o=new Map;for(let p of S)for(let H of p.nodeIds)o.set(H,[...o.get(H)??[],p.message]);let b=p=>p?o.get(p)??[]:[];if(r==="glyph")return(0,D.jsx)(ye,{label:`${n??"Board"} \xB7 ${k.slots.length-k.empty.length}/${k.slots.length}`,hue:de("board")});if(r==="summary"){let p=k.slots.filter(H=>k.empty.includes(H.id));return(0,D.jsx)(te,{title:n??"Board",meta:`${k.slots.length-k.empty.length}/${k.slots.length}`,tone:p.length>0?"warning":"muted",fit:!0,children:p.length>0?(0,D.jsx)(Me,{pick:!0,max:5,items:p.map(H=>({id:H.id,label:H.code}))}):(0,D.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"Every slot filled."})})}let C=i.aspect??.68,R=(0,Le.useRef)(null),[M,w]=(0,Le.useState)(!1),[v,u]=(0,Le.useState)(null),A=160,[E,B]=(0,Le.useState)(!1);(0,Le.useEffect)(()=>{let p=R.current;if(!p||typeof ResizeObserver>"u")return;let H=new ResizeObserver(z=>{let j=z[0]?.contentRect;if(!j)return;let x=j.height<A;B(x),w(!x&&C<1&&j.width/j.height>1.3),u(x?null:j.height)});return H.observe(p),()=>H.disconnect()},[C]);let h=(p,H)=>M?{x:1-H,y:p}:{x:p,y:H},T=(()=>{let p=new Map,H=(z,j,x)=>{let O=p.get(x)??{ids:[],codes:[]};O.ids.includes(z)||(O.ids.push(z),O.codes.includes(j)||O.codes.push(j)),p.set(x,O)};for(let z of k.slots){for(let j of b(z.id))H(z.id,z.code,j);for(let j of z.occupants)for(let x of b(j.id))H(j.id,j.label,x)}return[...p.entries()].map(([z,j])=>({id:j.ids[0],code:j.codes.join(", "),text:z}))})(),P=a==="fullscreen",U=T.length===0?null:(0,D.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:[T.slice(0,P?6:2).map(p=>(0,D.jsxs)("li",{"data-graview-pick":p.id,"data-graview-emphasis":s.size===0?"plain":s.has(p.id)?"lit":"dimmed",title:p.text,style:{display:P?"grid":"flex",gap:P?1:7,alignItems:P?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:P?"2px 0":"3px 6px",marginLeft:P?0:-6,borderRadius:7,cursor:"pointer"},children:[(0,D.jsxs)("span",{style:{flex:"0 0 auto",fontWeight:600,color:"var(--graview-warn)",letterSpacing:"0.02em"},children:["\u26A0 ",p.code]}),(0,D.jsx)("span",{style:{minWidth:0,...P?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:p.text})]},p.id)),T.length>(P?6:2)?(0,D.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",T.length-(P?6:2)," more"]}):null]}),ne=i.arrange==="shelf",ae=k.slots.every(p=>p.code.length<=3&&!/\s/.test(p.code)),ee=(p,H)=>{let z=p.occupants.length===0,j=s.size>0&&!s.has(p.id)&&!p.occupants.some(F=>s.has(F.id)),x=c.has(p.id),O=p.occupants.some(F=>c.has(F.id)),G=x,ie=[...b(p.id),...p.occupants.flatMap(F=>b(F.id))],se=p.occupants.length===1?p.occupants[0]:null,ue=i.pickTarget==="slot"?p.id:se?se.id:p.id,K=F=>se?{}:{"data-graview-pick":F.id,"data-graview-emphasis":s.size===0?"plain":j?"dimmed":"lit"},ve=F=>c.has(F.id)?"var(--graview-warn)":"var(--graview-ink-muted)",Ue=i.emptyLabel??"empty";return(0,D.jsxs)("div",{"data-graview-pick":ue,"data-graview-slot":p.id,"data-graview-mark":ae?"disc":"token","data-graview-flagged":x&&O?"both":x?"slot":O?"occupant":void 0,"data-graview-emphasis":s.size===0?"plain":j?"dimmed":"lit",title:[z?`${p.label} \u2014 nobody in it`:`${p.occupants.map(F=>F.label).join(", ")} at ${p.label}`,...ie].join(`
3
- `),style:{...H,display:"grid",justifyItems:ae?"center":"start",gap:3,opacity:j?.5:1,transition:"opacity 160ms ease"},children:[ae?(0,D.jsxs)("span",{style:{position:"relative",width:34,height:34,borderRadius:999,display:"grid",placeItems:"center",fontSize:"0.75rem",letterSpacing:"0.02em",border:z?"1.5px dashed var(--graview-warn)":`1px solid ${G?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:z?"transparent":G?"var(--graview-panel-warning)":"var(--graview-panel)",color:z||G?"var(--graview-warn)":"var(--graview-ink)",boxShadow:z?void 0:"var(--graview-lift-low)"},children:[p.code,x&&!z?(0,D.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,D.jsxs)("span",{style:{display:"grid",gap:1,minWidth:0,maxWidth:180,padding:"5px 10px 6px",borderRadius:8,border:z?"1.5px dashed var(--graview-warn)":`1px solid ${G?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:z?"transparent":G?"var(--graview-panel-warning)":"var(--graview-panel)",boxShadow:z?void 0:"var(--graview-lift-low)"},children:[(0,D.jsxs)("span",{style:{fontSize:"0.8125rem",fontWeight:550,lineHeight:1.25,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:z||G?"var(--graview-warn)":"var(--graview-ink)"},children:[p.code,x&&!z?" \u26A0":null]}),z?(0,D.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.3,color:"var(--graview-warn)"},children:Ue}):(0,D.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:"0 8px",fontSize:"0.75rem",lineHeight:1.3},children:p.occupants.map(F=>(0,D.jsxs)("span",{...K(F),style:{whiteSpace:"nowrap",color:ve(F)},children:[F.label,c.has(F.id)?" \u26A0":""]},F.id))})]}),ae?z?(0,D.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:Ue}):p.occupants.map(F=>(0,D.jsxs)("span",{...K(F),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:ve(F)},children:[F.label,c.has(F.id)?" \u26A0":""]},F.id)):null]},p.id)},ge=i.zones??[],pe=ge.map((p,H)=>({label:p.label,slots:k.slots.filter(z=>z.y>=p.from&&(z.y<p.to||H===ge.length-1&&z.y<=p.to))})),N=new Set(pe.flatMap(p=>p.slots.map(H=>H.id))),$=k.slots.filter(p=>!N.has(p.id));($.length>0||pe.length===0)&&pe.push({label:"",slots:$});let V={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,D.jsxs)(te,{title:n??"Board",meta:k.slots.length===0?void 0:k.empty.length===0?`all ${k.slots.length} filled`:`${k.empty.length} unfilled`,...P?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:[(0,D.jsxs)("div",{ref:R,style:{display:"flex",gap:28,alignItems:"stretch",justifyContent:"center",flex:"1 1 auto",minHeight:0},children:[P&&U?(0,D.jsxs)("div",{style:{width:260,flex:"0 0 auto",alignSelf:"center",display:"grid",gap:8},children:[(0,D.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"What is marked"}),U]}):null,ne?(0,D.jsx)("div",{"data-graview-primitive":"board","data-graview-arrange":"shelf",style:{...V,overflow:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"stretch",display:"grid",alignContent:"start"},children:pe.map((p,H)=>(0,D.jsxs)("section",{"data-graview-zone":p.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...H>0?{borderTop:"1px dashed var(--graview-edge)"}:{}},children:[p.label?(0,D.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:p.label}):null,p.slots.length>0?(0,D.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 12px",alignItems:"flex-start"},children:p.slots.map(z=>ee(z,{}))}):(0,D.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},p.label||`band-${H}`))}):(0,D.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...E?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!M&&ge.length>0?(0,D.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:ge.map(p=>(0,D.jsx)("span",{title:p.label,style:{position:"absolute",top:`${p.from*100}%`,height:`${(p.to-p.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:p.label},p.label))}):null,(0,D.jsxs)("div",{"data-graview-primitive":"board","data-graview-arrange":"exact",style:{...V,position:"relative",aspectRatio:`${M?1/C:C}`,...E?{width:"100%",height:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"flex-start"}:{height:"100%",flex:"0 1 auto",...v!==null?{width:Math.round(v*(M?1/C:C))}:{}},maxWidth:"100%"},children:[ge.map(p=>(0,D.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",...M?{top:0,bottom:0,left:`${(1-p.to)*100}%`,width:`${(p.to-p.from)*100}%`,borderLeft:"1px dashed var(--graview-edge)"}:{left:0,right:0,top:`${p.from*100}%`,height:`${(p.to-p.from)*100}%`,borderBottom:"1px dashed var(--graview-edge)"}}},p.label)),M?ge.map(p=>(0,D.jsx)("span",{"aria-hidden":"true",title:p.label,style:{position:"absolute",bottom:3,left:`${(1-p.to)*100}%`,width:`${(p.to-p.from)*100}%`,textAlign:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:p.label},`label-${p.label}`)):null,k.slots.map(p=>ee(p,{position:"absolute",left:`${h(p.x,p.y).x*100}%`,top:`${h(p.x,p.y).y*100}%`,transform:"translate(-50%, -50%)",width:"max-content",maxWidth:"100%"}))]})]}),k.spare.length>0?(0,D.jsxs)("div",{style:{display:"grid",gap:6,alignContent:"start",minWidth:0},children:[(0,D.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"Not in"}),(0,D.jsx)(Me,{pick:!0,max:10,items:k.spare.map(p=>({...p,emphasis:s.size===0?"plain":s.has(p.id)?"lit":"dimmed"}))})]}):null]}),P?null:U]})}function Bt(e){function t(n){let{store:r}=X(),a=Dn(He(r.graph,r.schema,n.nodes),r.graph.allEdges(),e,r.schema),l=[...a.slots.flatMap(d=>d.occupants.map(f=>f.id)),...a.spare.map(d=>d.id)].map(d=>r.graph.getNode(d)).filter(d=>d!==void 0),{arranged:m,bar:g}=Oe(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},subject:l}),y=(0,D.jsx)(Ar,{schema:r.schema,...n,options:e,...e.arranging===!1?{}:{occupants:m.nodes.map(d=>d.id)}});return Pe(n,r.schema,g?(0,D.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[g,y]}):y)}return{name:"board",requiredRoles:[...Rr],options:e,View:t,build(n,r,a){return Dn(n,r,e,a)}}}var pn=_(De(),1);var Wt=864e5;function zn(e){if(typeof e!="string")return null;if(Rn(e))return An(e)?.day??null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:null}function sn(e){if(typeof e!="string")return null;if(Rn(e))return An(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 on=e=>Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),ln=e=>new Date(e).toISOString().slice(0,10);function we(e,t){return ln(on(e)+t*Wt)}function ze(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 ln(Date.UTC(n,r,Math.min(a,i)))}var Bn=e=>new Date(on(e)).getUTCDay();function Ge(e,t=1){let n=(Bn(e)-t+7)%7;return we(e,-n)}var Wn=e=>`${e.slice(0,7)}-01`;function oe(e,t){return Math.round((on(t)-on(e))/Wt)}function je(e,t){return Array.from({length:t},(n,r)=>we(e,r))}var It=e=>nt(e,"short"),$e=e=>Zn(e,{weekday:"short"}),In=e=>Ke(e);function Be(e,t){let n=t?.fieldRoles?.when;return e&&!e.start&&n?{...e,start:n}:e}function Vt(e,t){return t===void 0?!1:typeof t=="string"?e[t]===!0:t.is.includes(e[t.field])}var dn=["start"],Er=["day","week","month","quarter","year","agenda"];function cn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:Er}function Ht(e,t){return e==="years"?t?.title??"Years":`The ${e}`}function Gt(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var Vn=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 gn(e,t,n){let r=Be(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,l=dn.filter(f=>{let k=r[f];return k?i?!(k in i):!(k in a):!0});if(l.length>0)throw new Vn(e.kind,l);let m=zn(a[r.start]);if(m===null)return null;let g=(r.end?zn(a[r.end]):null)??m,y=sn(a[r.start]),d=r.label?a[r.label]:void 0;return{id:e.id,kind:e.kind,label:typeof d=="string"&&d.length>0?d:he(n?.tryDefinition(e.kind),e),from:m,to:oe(m,g)<0?m:g,at:r.allDay&&a[r.allDay]===!0?null:y,allDay:r.allDay&&a[r.allDay]===!0||y===null,done:Vt(a,r.done)}}function jt(e,t,n,r){let a=gn(e,t,n);if(!a)return[];let i=Be(t[e.kind],n?.tryDefinition(e.kind)).start,l=e,m=l[i],g=l[at(i)];if(typeof m!="string"||!it(g))return[a];let y=oe(a.from,a.to);return("next"in r?[st(m,g,r.next)]:ot(m,g,{from:we(r.from,-y),to:r.to,limit:400})).map(f=>({...a,from:f.slice(0,10),to:we(f.slice(0,10),y),repeats:!0}))}function un(e,t){return e.filter(n=>oe(n.from,t)>=0&&oe(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 _t(e,t,n){let r=lt(e.schema,e.allMutations()).get(t)?.get(n)??[],a=new Map(e.allMutations().map(l=>[l.name,l]));for(let l of r){let m=a.get(l),g=m?.subject;if(!m||!g)continue;let y=m.input?.shape??{};if(n in y)return{name:m.name,arg:g.arg}}let i=e.allMutations().find(l=>l.derived?.act==="edit"&&l.derived.kind===t);return i?.subject?{name:i.name,arg:i.subject.arg}:null}var Ft=(e,t)=>({from:Wn(e),to:qt(e),label:kn(e,{short:!0,year:t})});function qt(e){return ln(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function Mr(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 Ut(e,t,n={}){let r=n.weekStartsOn??1,a=(g,y)=>({from:g,to:g,label:String(Number(g.slice(8,10))),...y?{outside:!0}:{}});if(e==="day")return{title:$e(t),grain:"day",columns:1,cells:[a(t)]};if(e==="week"){let g=Ge(t,r);return{title:`${$e(g)} \u2013 ${$e(we(g,6))}`,grain:"day",columns:7,cells:je(g,7).map(y=>a(y))}}if(e==="agenda")return{title:`From ${$e(t)}`,grain:"day",columns:1,cells:je(t,42).map(g=>a(g))};if(e==="quarter"){let g=Mr(t),y=qt(ze(g,2)),d=[];for(let f=Ge(g,r);oe(f,y)>=0;f=we(f,7))d.push({from:f,to:we(f,6),label:et(f),...oe(f,g)>0&&oe(we(f,6),g)>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:d}}if(e==="year"){let g=t.slice(0,4);return{title:g,grain:"month",columns:4,cells:Array.from({length:12},(y,d)=>Ft(`${g}-${String(d+1).padStart(2,"0")}-01`,!1))}}if(e==="years"){let g=Number(t.slice(0,4)),y=g+Math.max(1,n.horizon?.years??1)-1,d=n.horizon?.from!==void 0||n.horizon?.to!==void 0,f=d?n.horizon?.from??g:Math.min(g,n.fit?.first??g),s=(d?Math.max(f,n.horizon?.to??f+Math.max(1,n.horizon?.years??1)-1):Math.max(y,n.fit?.last??y))-f+1,c=Array.from({length:s},(S,o)=>String(f+o));return s>Pr?{title:`${n.horizon?.title??"Years"} \xB7 ${c[0]}\u2013${c[c.length-1]}`,grain:"year",columns:5,years:c,cells:c.map(S=>({from:`${S}-01-01`,to:`${S}-12-31`,label:S}))}:{title:`${n.horizon?.title??"Years"} \xB7 ${c[0]}\u2013${c[c.length-1]}`,grain:"month",columns:4,years:c,cells:c.flatMap(S=>Array.from({length:12},(o,b)=>Ft(`${S}-${String(b+1).padStart(2,"0")}-01`,!0)))}}let i=Wn(t),l=Ge(i,r),m=t.slice(0,7);return{title:kn(t),grain:"day",columns:7,cells:je(l,42).map(g=>a(g,g.slice(0,7)!==m))}}function Kt(e,t,n){return e.filter(r=>oe(r.from,n)>=0&&oe(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 Pr=10;function Yt(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var Qt=_(De(),1);var Q=_(J(),1);function Hn({label:e,glyph:t,onPress:n}){return(0,Q.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:_e,children:t})}var _e={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"},Jt={day:12,week:4,month:3,year:5};function Xt({span:e,weekStartsOn:t,entries:n,today:r,perCell:a,emphasisOf:i,broken:l,hue:m,onOpen:g,onMove:y}){let d=(0,Qt.useRef)(null),f=Ve(d),k=f===null?e.columns:Math.max(1,Math.floor(f/44)),s=k<e.columns,c=s?k:e.columns,S=!s&&e.grain==="day"&&e.columns===7?je(Ge(e.cells[0]?.from??r,t),7):e.grain==="day"&&e.columns===1?e.cells.map(o=>o.from):null;return s&&e.grain==="day"&&e.columns>1?(0,Q.jsx)("div",{ref:d,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,Q.jsx)(mn,{days:e.cells.map(o=>o.from),entries:n,today:r,emphasisOf:i,broken:l,hue:m,onMove:(o,b)=>y(o,{from:b,to:b,label:b},"day")})}):(0,Q.jsxs)("div",{ref:d,"data-calendar-shape":s?"wrapped":"grid",style:{display:"grid",gap:4,gridTemplateRows:S?"auto 1fr":"1fr",minHeight:0,flex:1},children:[S?(0,Q.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${c}, minmax(0, 1fr))`,gap:4},children:S.map(o=>(0,Q.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?It(Bn(o)):$e(o)},o))}):null,(0,Q.jsx)("div",{tabIndex:0,"aria-label":`The days of ${e.title}`,style:{display:"grid",gridTemplateColumns:`repeat(${c}, minmax(0, 1fr))`,gridAutoRows:"max-content",gap:4,minHeight:0,overflow:"auto"},children:e.cells.map((o,b)=>{let C=Kt(n,o.from,o.to),R=C.slice(0,a),M=C.slice(a),w=M.filter(u=>l.has(u.id)).length,v=oe(o.from,r)>=0&&oe(r,o.to)>=0;return(0,Q.jsxs)("div",{"data-calendar-day":e.grain==="day"?o.from:void 0,"data-calendar-cell":o.from,"data-calendar-grain":e.grain,"data-calendar-count":C.length,"data-calendar-outside":o.outside||void 0,onDragOver:u=>{u.dataTransfer.types.includes("text/graview-node")&&(u.preventDefault(),u.dataTransfer.dropEffect="move")},onDrop:u=>{let A=u.dataTransfer.getData("text/graview-node");A&&(u.preventDefault(),u.stopPropagation(),y(A,o,e.grain))},style:{minHeight:62,display:"flex",flexDirection:"column",gap:2,padding:4,borderRadius:7,border:"1px solid var(--graview-edge)",background:v?"var(--graview-panel)":o.outside?"var(--graview-panel-muted)":"transparent"},children:[(0,Q.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,Q.jsx)("span",{style:{fontSize:"0.75rem",fontVariantNumeric:"tabular-nums",color:v?"var(--graview-accent)":"var(--graview-ink-faint)"},children:o.label}),e.grain!=="day"&&C.length>0?(0,Q.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:C.length}):null]}),R.map(u=>(0,Q.jsx)(Zt,{entry:u,cell:o,rowStart:b%c===0,emphasis:i(u.id),flagged:l.has(u.id),hue:m(u)},`${u.id}:${u.from}:${o.from}`)),M.length>0?(0,Q.jsxs)("button",{type:"button","data-testid":`calendar-more-${o.from}`,onClick:()=>g(o),title:`Open ${o.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:["+",M.length," more",w>0?` \xB7 ${w} flagged`:""]}):null]},o.from)})})]})}function mn({days:e,entries:t,today:n,emphasisOf:r,broken:a,hue:i,onMove:l}){let m=e.map(g=>({day:g,here:un(t,g)})).filter(({here:g})=>g.length>0);return m.length===0?(0,Q.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,Q.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:g,here:y})=>(0,Q.jsxs)("li",{"data-calendar-day":g,onDragOver:d=>{d.dataTransfer.types.includes("text/graview-node")&&(d.preventDefault(),d.dataTransfer.dropEffect="move")},onDrop:d=>{let f=d.dataTransfer.getData("text/graview-node");f&&(d.preventDefault(),d.stopPropagation(),l(f,g))},style:{display:"grid",gap:4},children:[(0,Q.jsxs)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:g===n?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[$e(g),g===n?" \xB7 today":""]}),y.map(d=>(0,Q.jsx)(Zt,{entry:d,cell:{from:g,to:g,label:g},emphasis:r(d.id),flagged:a.has(d.id),hue:i(d)},`${d.id}:${d.from}:${g}`))]},g))})}function Zt({entry:e,cell:t,emphasis:n,flagged:r,hue:a,rowStart:i=!1}){let l=oe(t.from,e.from)>=0,m=oe(e.to,t.to)>=0,g=!(l&&m),y=e.at!==null&&l&&e.from===t.from?`${In(e.at)} ${e.label}`:e.label;return(0,Q.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:d=>{d.dataTransfer.setData("text/graview-node",e.id),d.dataTransfer.effectAllowed="move"},"data-graview-emphasis":n,"data-calendar-part":g?l?"opens":m?"closes":"through":void 0,"data-calendar-in":t.from,title:g?`${e.label} \xB7 ${e.from} \u2013 ${e.to}`:`${e.label}${e.at===null?" \xB7 all day":` \xB7 ${In(e.at)}`}${e.repeats?" \xB7 repeats":""}`,style:{display:"block",minHeight:24,boxSizing:"border-box",padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.35,borderRadius:g?l?"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:l||i?e.repeats?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),y]}):y:" "})}var q=_(J(),1);function Lr(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 er(e){let t=n=>function(a){let{store:i}=X(),{view:l}=Je(),m=n?{...e,range:n}:e,g=l.within?.range??m.range??"month",y=Object.keys(e.bindings),{nodes:d,arranged:f,arrangement:k,bar:s}=Oe(a,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{sort:!1,group:g==="agenda"},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...y[0]?{kind:(a.nodes??[]).find(C=>y.includes(String(C.kind)))?.kind??y[0]}:{}}),c=g==="agenda"&&f.grouped&&k.group?f.groups.map(C=>({label:C.label,ids:new Set(C.nodes.map(R=>R.id))})):void 0,S=new Set((a.nodes??[]).map(C=>String(C.kind))),o=y.filter(C=>!S.has(C)&&i.schema.tryDefinition(C)!==void 0).flatMap(C=>{let R=i.schema.tryDefinition(C);return i.graph.nodesOfKind(C).filter(M=>l.past===!0||We(R,M))}),b=o.length===0?d:[...d,...a.budget!==void 0?o.slice(0,a.budget):o];return Pe(a,i.schema,(0,q.jsx)(Tr,{schema:i.schema,...a,nodes:b,options:{...m,today:m.today??i.today()??Gt()},...s?{bar:s}:{},...c?{groups:c}:{}}))};return{name:"calendar",requiredRoles:[...dn],bindings:e.bindings,options:e,View:t(),at:n=>t(n),ranges:()=>cn(e).map(n=>({range:n,title:Ht(n,e.horizon)})),place:(n,r)=>n.map(a=>gn(a,e.bindings,r)).filter(a=>a!==null)}}function Tr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:l=[],implicated:m=[],flagged:g=[],bar:y,groups:d}){let{view:f,go:k}=Je(),{store:s,principal:c}=X(),S=f.within?.at??a.today,o=f.within?.range??a.range??"month",b=a.weekStartsOn??1,C=new Set([...m,...l]),R=$=>C.size===0?"plain":C.has($)?"lit":"dimmed",M=new Set(g),w=o==="years"&&f.within?.at===void 0?Lr((e??[]).map($=>gn($,a.bindings,i))):void 0,v=Ut(o,S,{weekStartsOn:b,...a.horizon?{horizon:a.horizon}:{},...w?{fit:w}:{}}),A=n==="glyph"||n==="summary"?{next:a.today}:{from:v.cells[0]?.from??S,to:v.cells[v.cells.length-1]?.to??S},E=(e??[]).flatMap($=>jt($,a.bindings,i,A)),B=a.hueOf??($=>de($.kind));if(n==="glyph")return(0,q.jsx)(ye,{label:`${t??"Calendar"} \xB7 ${E.length}`,hue:de("calendar")});if(n==="summary"){let $=un(E,a.today);return(0,q.jsx)(te,{title:t??"Calendar",meta:`${E.length} dated`,tone:"muted",children:(0,q.jsx)(Me,{max:6,items:$.length>0?$.map(V=>({id:V.id,label:V.label,hue:B(V)})):E.filter(V=>oe(a.today,V.from)>=0).sort((V,p)=>V.from.localeCompare(p.from)).slice(0,6).map(V=>({id:V.id,label:`${V.from.slice(5)} ${V.label}`,hue:B(V)}))})})}let h=r==="fullscreen",[T,P]=(0,pn.useState)(null),U=($,V,p)=>{let H=s.graph.getNode($);if(!H)return;let z=Be(a.bindings[H.kind],s.schema.tryDefinition(H.kind));if(!z)return;let j=_t(s,H.kind,z.start);if(!j){P({text:`Nothing declared writes the ${Cn(s.schema.definitions.find(K=>K.kind===H.kind),z.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let x=V.from,O=H[z.start],ie=sn(O)===null?x:`${x}${String(O).slice(10)}`,se={name:j.name,args:{[j.arg]:$,[z.start]:ie}},ue=s.permits(se,c);if(!ue.ok){P({text:ue.refusal.message,tone:"refused"});return}try{s.apply(se,{author:c}),P(p==="day"?null:{text:`Moved to ${$e(x)} \u2014 a ${p} is coarser than the ${Cn(s.schema.definitions.find(K=>K.kind===H.kind),z.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(K){P({text:K instanceof Error?K.message:String(K),tone:"refused"})}},ne=$=>{let V=o==="years"?ze(`${v.years?.[0]??S.slice(0,4)}${S.slice(4)}`,$*12*Math.max(1,v.years?.length??a.horizon?.years??1)):o==="year"?ze(S,$*12):o==="quarter"?ze(S,$*3):o==="month"?ze(S,$):o==="week"?we(S,$*7):we(S,$);k(Qe(f,"at",V))},ae=($,V)=>{let p=Qe(f,"range",$);V!==void 0&&(p=Qe(p,"at",V)),k(p)},ee=(0,pn.useRef)(null),ge=Ve(ee),pe=ge!==null&&ge<420,N=$=>$==="years"?a.horizon?.title??"years":$.charAt(0).toUpperCase()+$.slice(1);return(0,q.jsx)(te,{title:t??"Calendar",meta:v.title,style:{gap:10,...h?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,q.jsxs)("div",{ref:ee,"data-testid":"calendar","data-calendar-range":o,"data-calendar-at":S,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,gap:8},children:[(0,q.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6},children:[(0,q.jsxs)("nav",{"aria-label":"When",style:{display:"flex",gap:4},children:[(0,q.jsx)(Hn,{label:"Previous",glyph:"\u2039",onPress:()=>ne(-1)}),(0,q.jsx)("button",{type:"button","data-testid":"calendar-today",onClick:()=>k(Qe(f,"at",a.today)),style:_e,children:"Today"}),(0,q.jsx)(Hn,{label:"Next",glyph:"\u203A",onPress:()=>ne(1)})]}),pe?(0,q.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:o,onChange:$=>ae($.target.value),style:{..._e,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:cn(a).map($=>(0,q.jsx)("option",{value:$,children:N($)},$))}):(0,q.jsx)("div",{role:"group","aria-label":"Range","data-testid":"calendar-ranges",style:{display:"flex",flexWrap:"wrap",gap:4,marginLeft:"auto"},children:cn(a).map($=>(0,q.jsx)("button",{type:"button","aria-pressed":$===o,"data-testid":`calendar-range-${$}`,onClick:()=>ae($),style:{..._e,borderRadius:999,borderColor:"var(--graview-edge)",...$==="years"?{}:{textTransform:"capitalize"},...$===o?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)",background:"var(--graview-panel)"}:{}},children:$==="years"?a.horizon?.title??"years":$},$))})]}),T?(0,q.jsx)("p",{"data-testid":T.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:T.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:T.text}):null,v.years?(0,q.jsx)("nav",{"aria-label":"Years","data-testid":"calendar-years",style:{display:"flex",flexWrap:"wrap",gap:4},children:v.years.map($=>(0,q.jsx)("button",{type:"button","data-testid":`calendar-year-${$}`,onClick:()=>ae("year",`${$}-01-01`),style:_e,children:$},$))}):null,y,o==="agenda"&&d?(0,q.jsx)("div",{"data-testid":"calendar-groups",style:{display:"grid",gap:10,minHeight:0,overflow:"auto"},children:d.map($=>(0,q.jsxs)("section",{"data-testid":"calendar-group",style:{display:"grid",gap:4},children:[(0,q.jsxs)("h3",{style:{margin:0,fontSize:"0.8125rem",letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},children:[$.label," ",(0,q.jsx)("span",{style:{fontWeight:400},children:$.ids.size})]}),(0,q.jsx)(mn,{days:v.cells.map(V=>V.from),entries:E.filter(V=>$.ids.has(V.id)),today:a.today,emphasisOf:R,broken:M,hue:B,onMove:(V,p)=>U(V,{from:p,to:p,label:p},"day")})]},$.label))}):o==="agenda"?(0,q.jsx)(mn,{days:v.cells.map($=>$.from),entries:E,today:a.today,emphasisOf:R,broken:M,hue:B,onMove:($,V)=>U($,{from:V,to:V,label:V},"day")}):(0,q.jsx)(Xt,{span:v,weekStartsOn:b,entries:E,today:a.today,perCell:a.perCell??Jt[v.grain],emphasisOf:R,broken:M,hue:B,onOpen:$=>ae(Yt(v.grain),$.from),onMove:U})]})})}var ce=_(De(),1);var W=_(J(),1),Nr=`
4
- .graview-columns { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
5
- .graview-columns-column { flex: 1 1 13rem; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 8px; border-radius: 10px; border: 1px solid var(--graview-edge); background: color-mix(in srgb, var(--graview-panel) 60%, transparent); }
6
- .graview-columns-column[data-droppable="true"] { border-color: var(--graview-accent); }
7
- .graview-columns-column[data-over="true"] { background: color-mix(in srgb, var(--graview-accent) 10%, transparent); }
8
- .graview-columns-heading { margin: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 0.875rem; font-weight: 600; color: var(--graview-ink); }
9
- .graview-columns-count { font-weight: 400; color: var(--graview-ink-muted); font-variant-numeric: tabular-nums; }
10
- .graview-columns-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
11
- .graview-columns-empty { margin: 0; font-size: 0.8125rem; color: var(--graview-ink-muted); }
12
- .graview-columns-card[draggable="true"] { cursor: grab; }
13
- .graview-columns-move { position: relative; z-index: ${Ce.raised}; display: flex; justify-content: flex-end; margin-top: 4px; }
14
- .graview-columns-move[data-open="true"] { z-index: ${Ce.over}; }
15
- .graview-columns-move > button, .graview-columns-menu button, .graview-columns-said button { font: inherit; font-size: 0.8125rem; min-height: 28px; padding: 2px 10px; border-radius: 7px; border: 1px solid var(--graview-edge); background: var(--graview-panel); color: var(--graview-ink); cursor: pointer; }
16
- .graview-columns-move > button:focus-visible, .graview-columns-menu button:focus-visible, .graview-columns-said button:focus-visible { outline: 2px solid var(--graview-accent); outline-offset: 2px; }
17
- .graview-columns-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: ${Ce.over}; display: flex; flex-direction: column; gap: 4px; padding: 6px; min-width: 10rem; border-radius: 9px; border: 1px solid var(--graview-edge); background: var(--graview-panel); box-shadow: 0 6px 18px rgb(0 0 0 / 0.18); }
18
- .graview-columns-menu button { text-align: left; }
19
- .graview-columns-said { margin: 0 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--graview-ink); }
20
- .graview-columns-said[data-tone="refused"] { color: var(--graview-warn); }
21
- .graview-columns-card[data-graview-choose] { position: relative; }
22
- .graview-columns-card .graview-choose-at { position: absolute; top: 6px; right: 6px; z-index: ${Ce.raised}; display: flex; }
23
- [data-graview-choosable] { outline: none; }
24
- @media (pointer: coarse) { [data-graview-choosable]:not([data-graview-choosing]) .graview-columns-card .graview-choose-at { display: none; } }
25
- `;function nr(e){function t(n){let{store:r}=X();gt();let a=Object.keys(e.bindings).filter(w=>r.schema.tryDefinition(w)!==void 0),i=n.nodes??[],l=new Set(i.map(w=>String(w.kind))),m=w=>r.graph.nodesOfKind(w).filter(v=>We(r.schema.tryDefinition(w),v)),g=n.total!==void 0&&n.total>i.length,y=a[0],d=y===void 0?[]:l.has(y)?i.filter(w=>w.kind===y):m(y),{arranged:f,arrangement:k,bar:s}=Oe(n,{lensAllows:{group:!1},subject:d,...y===void 0?{}:{kind:y}}),c=s?new Map(f.nodes.map((w,v)=>[w.id,v])):void 0,S=(w,v)=>{if(!c||w!==y)return v;let u=v.filter(A=>c.has(A.id));return k.sort===void 0?u:[...u].sort((A,E)=>c.get(A.id)-c.get(E.id))},o=a.map(w=>{let v=e.bindings[w].column,u=Rt(r.schema,w,v),A=(h,T)=>T==="label"?he(r.schema.tryDefinition(h.kind),h):h[T],E=S(w,Ye(l.has(w)?i.filter(h=>h.kind===w):m(w).slice(0,n.budget??1/0),e.sort,A)),B=l.has(w)&&!g?E:S(w,m(w));return{kind:w,field:v,columns:u.map(h=>({column:h,cards:E.filter(T=>Ln(T,v,u)===h.value),count:B.filter(T=>Ln(T,v,u)===h.value).length})).filter(h=>h.column.value!==null||h.count>0)}}),b=o.reduce((w,v)=>w+v.columns.reduce((u,A)=>u+A.count,0),0),C=n.label??"Board";if(n.fidelity==="glyph")return(0,W.jsx)(ye,{label:`${C} \xB7 ${b}`,hue:de("columns")});if(n.fidelity==="summary")return(0,W.jsx)(te,{title:C,meta:y?Ie(r.schema,y,b):String(b),tone:"muted",children:(0,W.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:o.flatMap(w=>w.columns.map(v=>`${v.column.label} ${v.count}`)).join(" \xB7 ")})});let R=(0,W.jsx)(Dr,{boards:o,title:C}),M=s?(0,W.jsxs)("div",{style:{display:"grid",gap:6},children:[s,R]}):R;return Pe(n,r.schema,n.mode==="fullscreen"?(0,W.jsx)("div",{style:{padding:"14px 16px"},children:M}):(0,W.jsx)(te,{title:C,meta:y?Ie(r.schema,y,b):void 0,children:M}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function Dr({boards:e,title:t}){let{store:n,principal:r}=X(),a=(0,ce.useRef)(null),[i,l]=(0,ce.useState)(null),[m,g]=(0,ce.useState)(null),[y,d]=(0,ce.useState)(null),[f,k]=(0,ce.useState)(null);(0,ce.useLayoutEffect)(()=>{if(!f)return;a.current?.querySelector(f)?.focus(),k(null)});let s=w=>{let v=n.graph.getNode(w);return v?he(n.schema.tryDefinition(v.kind),v):w},c=(0,ce.useMemo)(()=>e.flatMap(w=>w.columns.flatMap(v=>v.cards.map(u=>u.id))),[e]),S=Et(c),o=(0,ce.useMemo)(()=>n.permittedMutations(r).some(w=>{let v=w.subject?.kinds;return v!==void 0&&(v==="*"||e.some(u=>v.includes(u.kind)))}),[n,r,e]),b=w=>{S.choose(w),requestAnimationFrame(()=>{((w[0]===void 0?null:a.current?.querySelector(`[data-graview-choose-box="${Gn(w[0])}"]`))??a.current)?.focus({preventScroll:!0})})},C=(w,v)=>At(n,r,w,v.field,v.columns.map(u=>u.column)),R=(w,v,u,A)=>{try{let E=n.apply(v.call,{author:r});l({text:`Moved \u201C${s(w)}\u201D to ${u}.`,tone:"moved",batch:E.batch,id:w}),A==="keyboard"&&k(`[data-columns-move="${Gn(w)}"] > button`)}catch(E){l({text:E instanceof Error?E.message:String(E),tone:"refused"})}},M=()=>{if(i?.batch)try{n.undo(i.batch,{author:r}),l({text:`\u201C${s(i.id??"")}\u201D is back where it was.`,tone:"moved"}),i.id&&k(`[data-columns-move="${Gn(i.id)}"] > button`)}catch(w){l({text:w instanceof Error?w.message:String(w),tone:"refused"})}};return(0,W.jsxs)("div",{"data-testid":"columns-lens",...o?{...S.listProps,tabIndex:-1,role:"group","aria-label":S.chosen.length>0?`${t}, ${S.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:w=>{a.current=w,S.list.current=w},children:[(0,W.jsx)("style",{children:Nr}),o?(0,W.jsx)("style",{children:Mt}):null,(0,W.jsxs)("p",{className:"graview-columns-said",role:"status","data-tone":i?.tone,"data-testid":"columns-said",style:i?void 0:{position:"absolute",width:1,height:1,overflow:"hidden",clipPath:"inset(50%)"},children:[i?(0,W.jsx)("span",{children:i.text}):null,i?.batch?(0,W.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:M,children:"Undo"}):null]}),e.map(w=>(0,W.jsx)("section",{"data-columns-kind":w.kind,"aria-label":`${tt(n.schema,w.kind)} by ${w.field}`,children:(0,W.jsx)("div",{className:"graview-columns",children:w.columns.map(({column:v,cards:u,count:A})=>{let E=v.value??"",B=m!==null&&v.value!==null&&m.to.includes(v.value);return(0,W.jsxs)("section",{className:"graview-columns-column","data-graview-column":E,"data-droppable":B||void 0,"data-over":B&&y===E||void 0,"aria-label":`${t} \xB7 ${v.label}, ${A}`,"data-graview-named-by-lens":"",onDragOver:h=>{B&&(h.preventDefault(),h.dataTransfer.dropEffect="move",d(E))},onDragLeave:()=>d(h=>h===E?null:h),onDrop:h=>{let T=h.dataTransfer.getData("text/graview-node"),P=n.graph.getNode(T);if(d(null),g(null),!P||v.value===null)return;let U=C(P,w).find(ne=>ne.to===v.value);U&&(h.preventDefault(),h.stopPropagation(),R(T,U,v.label,"drag"))},children:[(0,W.jsxs)("h3",{className:"graview-columns-heading",children:[(0,W.jsx)("span",{children:v.label}),(0,W.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:A})]}),u.length===0?(0,W.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,W.jsx)("ul",{className:"graview-columns-cards",children:(0,W.jsx)(Lt.Provider,{value:v.value===null?null:{field:w.field,values:[v.value,v.label]},children:u.map(h=>{let T=C(h,w);return(0,W.jsx)(zr,{card:h,moves:T,...o?{choosing:S}:{},labelOf:P=>w.columns.find(U=>U.column.value===P)?.column.label??P,onMove:(P,U)=>R(h.id,P,U,"keyboard"),onDrag:P=>g(P?{id:h.id,to:T.map(U=>U.to)}:null)},h.id)})})})]},E)})})},w.kind)),o?(0,W.jsx)(Pt,{store:n,chosen:S.chosen,principal:r,anchor:()=>a.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:c.length,onChooseAll:()=>S.choose(c),onClear:S.clear,onActed:b}):null]})}var Gn=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function zr({card:e,moves:t,labelOf:n,onMove:r,onDrag:a,choosing:i}){let{store:l,views:m}=X(),[g,y]=(0,ce.useState)(!1),d=(0,ce.useRef)(null),f=(0,ce.useRef)(null),k=he(l.schema.tryDefinition(e.kind),e),s=m.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,ce.useLayoutEffect)(()=>{g&&d.current?.querySelector("button")?.focus()},[g]);let c=()=>{y(!1),f.current?.focus()},S=o=>{let b=[...d.current?.querySelectorAll("button")??[]],C=b.indexOf(document.activeElement);o.key==="Escape"?(o.preventDefault(),o.stopPropagation(),c()):(o.key==="ArrowDown"||o.key==="ArrowUp")&&(o.preventDefault(),o.stopPropagation(),b[(C+(o.key==="ArrowDown"?1:b.length-1))%b.length]?.focus())};return(0,W.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card",...i?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onDragStart:o=>{t.length!==0&&(o.dataTransfer.setData("text/graview-node",e.id),o.dataTransfer.effectAllowed="move",a(!0))},onDragEnd:()=>a(!1),children:[(0,W.jsx)(Tt,{node:e,label:k}),s?(0,W.jsx)(ct,{mode:"scene",children:(0,W.jsx)(mt.Provider,{value:k,children:(0,W.jsx)(s,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})})}):(0,W.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:k}),i?(0,W.jsx)("span",{className:"graview-choose-at",children:(0,W.jsx)("input",{...i.boxProps(e.id,k),onPointerEnter:Tn,onFocus:Tn})}):null,t.length>0?(0,W.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":g||void 0,onBlur:o=>{o.currentTarget.contains(o.relatedTarget)||y(!1)},children:[(0,W.jsx)("button",{ref:f,type:"button","aria-haspopup":"menu","aria-expanded":g,"aria-label":`Move \u201C${k}\u201D to another column`,"data-testid":"columns-move",onClick:()=>y(o=>!o),children:"Move\u2026"}),g?(0,W.jsx)("div",{ref:d,role:"menu","aria-label":`Move \u201C${k}\u201D to`,className:"graview-columns-menu",onKeyDown:S,onMouseDown:o=>o.preventDefault(),children:t.map(o=>(0,W.jsx)("button",{type:"button",role:"menuitem","data-columns-to":o.to,title:o.title,onClick:()=>{y(!1),r(o,n(o.to))},children:n(o.to)},o.to))}):null]}):null]})}var be=_(De(),1);var I=_(J(),1),Br=["rows","columns","link"],Xe=class extends Error{constructor(n,r){super(`${n}
26
- ${r}`);this.hint=r;this.name="CoverageBindingError"}},jn=(e,t)=>t&&e[t]!==void 0?String(e[t]):"",Wr=40,Ir=24;function Vr(e,t={}){let n=t.rows??Wr,r=t.columns??Ir;if(e.rows.length<=n&&e.columns.length<=r)return e;let a=new Map;for(let d of e.cells)a.set(d.rowId,(a.get(d.rowId)??0)+1),a.set(`col:${d.columnId}`,(a.get(`col:${d.columnId}`)??0)+1);let i=(d,f,k)=>{if(d.length<=f)return d;let s=new Set(d.map((c,S)=>({item:c,index:S,count:a.get(k(c))??0})).sort((c,S)=>S.count-c.count||c.index-S.index).slice(0,f).map(c=>c.item.id));return d.filter(c=>s.has(c.id))},l=i(e.rows,n,d=>d.id),m=i(e.columns,r,d=>`col:${d.id}`),g=new Set(l.map(d=>d.id)),y=new Set(m.map(d=>d.id));return{...e,rows:l,columns:m,cells:e.cells.filter(d=>g.has(d.rowId)&&y.has(d.columnId)),of:{rows:e.rows.length,columns:e.columns.length}}}function or(e,t,n,r){let a=u=>u,i=u=>r?he(r.tryDefinition(u.kind),u):String(a(u).label??u.id),l=r?[n.rows,n.columns].filter(u=>r.tryDefinition(u)===void 0):[];if(l.length>0)throw new Xe(`No kind is declared for ${l.map(u=>`"${u}"`).join(" or ")}.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');if(r&&typeof n.link!="string"){let u=$n(r,n.columns,n.link.path);if(!u.ok||!u.reached.has(n.rows)){let A=$n(r,n.columns,[...n.link.path].reverse());throw new Xe(A.ok&&A.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(E=>JSON.stringify(E)).join(", ")}] }`)}}let m=e.filter(u=>u.kind===n.rows),g=e.filter(u=>u.kind===n.columns);if(!r&&m.length===0&&g.length===0)throw new Xe(`Nothing to lay out: no "${n.rows}" and no "${n.columns}" nodes.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');let y=n.groupOrder??[],d=u=>{let A=y.indexOf(u);return A===-1?y.length:A},f=n.badge?t.filter(u=>u.kind===n.badge.edge):[],k=new Set(m.map(u=>u.id)),s=new Set(g.map(u=>u.id)),c=[];if(typeof n.link=="string"){let u=n.link,A=t.filter(P=>P.kind===u),E=P=>r?.tryDefinition?.(P)?.edges?.[u]?.to,B=(E(n.columns)??[]).some(P=>P===n.rows||P==="*"),h=(E(n.rows)??[]).some(P=>P===n.columns||P==="*"),T=B||!h;for(let P of A){let U=T?P.to:P.from,ne=T?P.from:P.to;k.has(U)&&s.has(ne)&&c.push({rowId:U,columnId:ne})}}else{let u=new Map;for(let E of new Set(n.link.path))u.set(E,new Map);for(let E of t){let B=u.get(E.kind);if(!B)continue;let h=B.get(E.from);h?h.push(E.to):B.set(E.from,[E.to]);let T=B.get(E.to);T?T.push(E.from):B.set(E.to,[E.from])}let A=new Set;for(let E of g){let B=[{id:E.id,via:[]}];for(let h of n.link.path){let T=[],P=new Set,U=u.get(h);for(let ne of B)for(let ae of U.get(ne.id)??[])P.has(`${ne.id}|${ae}`)||(P.add(`${ne.id}|${ae}`),T.push({id:ae,via:[...ne.via,ne.id]}));B=T}for(let h of B){if(!k.has(h.id))continue;let T=`${h.id}|${E.id}`;A.has(T)||(A.add(T),c.push({rowId:h.id,columnId:E.id,via:h.via.slice(1)}))}}}let S=new Set(n.requiredGroups??[]),o=n.requiredVia?new Set(t.filter(u=>u.kind===n.requiredVia.edge).map(u=>u.to)):null,b=new Set(c.map(u=>u.rowId)),C=new Set(c.map(u=>u.columnId)),R=new Set(f.map(u=>u.to)),M=(u,A)=>A==="label"?i(u):a(u)[A],w=Ye(m,n.sort,M).map(u=>{let A=a(u),E=jn(A,n.rowGroup);return{id:u.id,ref:jn(A,n.rowRef),label:i(u),group:E,required:o?o.has(u.id):S.size===0||S.has(E),covered:b.has(u.id),badged:R.has(u.id)}}).sort((u,A)=>d(u.group)-d(A.group)||(n.sort!==void 0?0:u.ref<A.ref?-1:u.ref>A.ref?1:0)),v=Ye(g,n.columnSort,M).map(u=>({id:u.id,label:i(u),used:C.has(u.id),group:jn(a(u),n.columnGroup)})).sort((u,A)=>u.group<A.group?-1:u.group>A.group?1:n.columnSort!==void 0?0:u.id<A.id?-1:u.id>A.id?1:0).map(({group:u,...A})=>A);return{rows:w,columns:v,cells:c,gaps:w.filter(u=>u.required&&!u.covered).map(u=>u.id),unasked:v.filter(u=>!u.used).map(u=>u.id)}}var tr=316,_n=58,Fn=176,Hr=Math.sin(_n*Math.PI/180),Gr=Math.cos(_n*Math.PI/180),jr=e=>{let t=e.reduce((r,a)=>Math.max(r,a.length),0),n=Math.min(Fn,Math.max(46,t*5.4+12));return Math.ceil(n*Hr)+8},rr=Math.ceil(Fn*Gr),ar=(e,t)=>tn(e,t).toLowerCase(),sr=(e,t)=>rn(e.tryDefinition(t),t);function _r(e,t,n){return t.rows===t.columns?`${e} with none across`:`${Ie(n,t.rows,e)} with no ${sr(n,t.columns)}`}function Fr(e,t,n){return t.rows===t.columns?`${e} with none down`:`${Ie(n,t.columns,e)} on no ${sr(n,t.rows)}`}function qr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,implicated:l=[],flagged:m=[],budget:g,rowsKept:y}){let{store:d}=X(),f=Xr(),k=(0,be.useRef)(null),s=Ve(k),[c,S]=(0,be.useState)(null),o=or(He(d.graph,d.schema,e).filter(h=>h.kind===a.rows||h.kind===a.columns).filter(h=>y===void 0||a.rows===a.columns||h.kind!==a.rows||y.has(h.id)),d.graph.allEdges(),a,i),b=n==="full"?Vr(o,g!==void 0?{rows:g,columns:g}:{}):o,C=typeof a.link=="string"?a.link:void 0,R=y!==void 0&&o.cells.length===0&&o.columns.length>0&&(C===void 0||d.graph.allEdges().some(h=>h.kind===C))?void 0:dt(d.schema,a,{rows:o.rows.length,columns:o.columns.length,cells:o.cells.length});if(n==="glyph")return(0,I.jsx)(ye,{label:`${t??"Coverage"} \xB7 ${R?"nothing linked":b.gaps.length===0?"complete":`${b.gaps.length} missing`}`,hue:de("coverage")});if(R)return(0,I.jsx)(te,{title:t??"Coverage",tone:"muted",fit:!0,...r==="fullscreen"?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:(0,I.jsx)("p",{"data-coverage-unlinked":"",style:{margin:0,color:"var(--graview-ink-muted)"},children:R})});if(n==="summary"){let h=b.rows.filter(T=>b.gaps.includes(T.id));return(0,I.jsxs)(te,{title:t??"Coverage",meta:`${b.rows.length-b.gaps.length}/${b.rows.length}`,tone:b.gaps.length>0?"warning":"muted",fit:!0,children:[(0,I.jsx)(Jr,{grid:b}),h.length>0?(0,I.jsx)(Me,{pick:!0,max:4,items:h.map(T=>({id:T.id,label:T.ref||T.label}))}):null]})}let M=new Set(l),w=new Set(m),v=c!==null&&c.every(h=>M.has(h))?c:null,u=r==="fullscreen",A=jr(b.columns.map(h=>h.label)),E=s===null?tr:Math.max(96,Math.min(tr,Math.round(s*.36))),B=s!==null&&(s<420||E+b.columns.length*28+rr>s);return(0,I.jsx)(te,{title:t??"Coverage",...u?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},meta:b.rows.length===0||b.columns.length===0?void 0:b.gaps.length===0&&b.unasked.length===0?"complete":[b.gaps.length>0?_r(b.gaps.length,a,d.schema):"",b.unasked.length>0?Fr(b.unasked.length,a,d.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,I.jsxs)("div",{ref:k,"data-coverage-shape":B?"stacked":"matrix",onClick:h=>S(ir(h.target)),onKeyDown:h=>{(h.key==="Enter"||h.key===" ")&&S(ir(h.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:B?0:rr},children:[B?null:(0,I.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",flex:"0 0 auto",position:"sticky",top:0,zIndex:Ce.over,background:"var(--graview-panel)",paddingTop:6},children:[(0,I.jsx)("div",{ref:f.corner,style:{width:E,flex:"0 0 auto",alignSelf:"stretch",position:"sticky",left:0,zIndex:Ce.raised,background:"var(--graview-panel)"}}),(0,I.jsx)("div",{ref:f.heads,style:{display:"flex",flex:1,minWidth:0,height:A},children:b.columns.map(h=>(0,I.jsx)("div",{"data-graview-pick":h.id,"data-graview-emphasis":M.size===0?"plain":M.has(h.id)?"lit":"dimmed",title:h.label,"data-graview-column":h.id,style:{flex:1,minWidth:28,boxSizing:"border-box",borderLeft:"1px solid transparent",pointerEvents:"none",position:"relative",display:"flex",alignItems:"flex-end",justifyContent:"center"},children:(0,I.jsxs)("span",{style:{position:"absolute",bottom:3,padding:"3px 0",pointerEvents:"auto",cursor:"pointer",left:"50%",visibility:f.hidden.has(h.id)?"hidden":"visible",transformOrigin:"left bottom",transform:`rotate(-${_n}deg)`,whiteSpace:"nowrap",maxWidth:Fn,overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.75rem",letterSpacing:"0.005em",color:h.used?M.size>0&&!M.has(h.id)?"var(--graview-ink-faint)":"var(--graview-ink)":"var(--graview-warn)"},children:[h.used?"":"\u26A0 ",h.label]})},h.id))})]}),b.of?(0,I.jsxs)("p",{"data-testid":"coverage-more",style:{margin:"4px 0 6px",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[[b.of.rows>b.rows.length?`the ${b.rows.length} most connected of ${b.of.rows} ${ar(d.schema,a.rows)}`:null,b.of.columns>b.columns.length?`${b.columns.length} of ${b.of.columns} ${ar(d.schema,a.columns)} across`:null].filter(Boolean).join(" \xB7 ").replace(/^./,h=>h.toUpperCase())," ","\u2014 what is missing is still counted over all of them."]}):null,(0,I.jsx)("div",{children:b.rows.map((h,T)=>{let P=b.rows[T-1],U=P===void 0||P.group!==h.group,ne=h.required&&!h.covered,ae=M.size>0&&!M.has(h.id);return(0,I.jsxs)("div",{children:[U&&h.group?(0,I.jsx)("div",{style:{fontSize:"0.6875rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",padding:"9px 0 3px"},children:(0,I.jsx)("span",{style:{position:"sticky",left:0,display:"inline-block",paddingRight:8,background:"var(--graview-panel)"},children:h.group})}):null,(0,I.jsxs)("div",{style:{display:"flex",flexDirection:B?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:ae?.72:1},children:[(0,I.jsxs)("div",{"data-graview-pick":h.id,"data-graview-emphasis":M.size===0?"plain":ae?"dimmed":"lit",title:h.label,style:{width:B?"auto":E,flex:"0 0 auto",position:B?"static":"sticky",left:0,zIndex:Ce.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:ne||w.has(h.id)?"var(--graview-warn)":"var(--graview-ink)"},children:[h.ref?(0,I.jsx)("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums",color:"var(--graview-ink-faint)"},children:h.ref}):null,(0,I.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:h.label}),a.badge?(0,I.jsx)("span",{title:h.badged?a.badge.title:a.badge.missingTitle,style:{marginLeft:"auto",flex:"0 0 auto",fontSize:"0.75rem",color:h.badged?"var(--graview-ink-faint)":"var(--graview-warn)"},children:h.badged?a.badge.symbol:"\u25CB"}):null]}),(0,I.jsx)("div",{style:{display:"flex",flex:1,minWidth:0,...B?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:b.columns.map(ee=>{let ge=b.cells.find(N=>N.rowId===h.id&&N.columnId===ee.id),pe=ge!==void 0;return(0,I.jsxs)("div",{"data-graview-mark":"",...pe?{"data-graview-pick":ee.id,"data-graview-emphasis":M.size===0?"plain":M.has(ee.id)&&M.has(h.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(Ur(ge))}:{},title:pe?`${ee.label} answers ${h.ref||h.label}`:`${ee.label} does not answer ${h.ref||h.label}`,style:B?{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:pe?"var(--graview-ink)":"var(--graview-ink-faint)"}:{flex:1,minWidth:28,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",borderLeft:"1px solid var(--graview-edge)"},children:[(0,I.jsx)("span",{style:Qr(pe,ne,M.has(ee.id)&&M.has(h.id),M.size>0)}),B?(0,I.jsx)("span",{children:ee.label}):null]},ee.id)})})]})]},h.id)})}),v?(0,I.jsx)(Yr,{box:k,joins:v,shape:`${B?"stacked":"matrix"} ${s??""}`}):null]})})}var Ur=e=>[e.rowId,e.columnId,...e.via??[]];function ir(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 fn=(e,t,n)=>Math.min(n,Math.max(t,e));function Kr(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 Yr({box:e,joins:t,shape:n}){let[r,a]=(0,be.useState)([]),i=JSON.stringify(t);return(0,be.useLayoutEffect)(()=>{let l=e.current;if(!l||typeof window>"u")return;let m=()=>{let d=l.getBoundingClientRect(),f=l.offsetWidth>0&&d.width>0?d.width/l.offsetWidth:1,k=[...l.querySelectorAll("[data-graview-joins]")].find(S=>S.getAttribute("data-graview-joins")===i);if(!k){a([]);return}let s=k.getBoundingClientRect(),c=[];for(let S of JSON.parse(i)){let o=[...l.querySelectorAll("[data-graview-pick]")].find(v=>v.getAttribute("data-graview-pick")===S&&!v.closest("[data-graview-mark]"));if(!o)continue;let b=Kr(o),C=fn(s.left+s.width/2,b.left,b.right),R=fn(s.top+s.height/2,b.top,b.bottom),M=fn(C,s.left,s.right),w=fn(R,s.top,s.bottom);c.push({id:S,x1:(M-d.left)/f,y1:(w-d.top)/f,x2:(C-d.left)/f,y2:(R-d.top)/f})}a(c)};m();let g=0,y=()=>{g===0&&(g=requestAnimationFrame(()=>{g=0,m()}))};return document.addEventListener("scroll",y,{capture:!0,passive:!0}),window.addEventListener("resize",y,{passive:!0}),()=>{document.removeEventListener("scroll",y,{capture:!0}),window.removeEventListener("resize",y),g!==0&&cancelAnimationFrame(g)}},[e,i,n]),(0,I.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:Ce.over},children:r.map(l=>(0,I.jsxs)("g",{"data-coverage-join-to":l.id,children:[(0,I.jsx)("line",{x1:l.x1,y1:l.y1,x2:l.x2,y2:l.y2,stroke:"var(--graview-accent)",strokeWidth:1.6,strokeLinecap:"round"}),(0,I.jsx)("circle",{cx:l.x2,cy:l.y2,r:2.6,fill:"var(--graview-accent)"})]},l.id))})}function Qr(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 Jr({grid:e}){let t=e.rows.filter(a=>a.required),n=t.filter(a=>a.covered).length,r=t.length===0?1:n/t.length;return(0,I.jsx)("div",{role:"img","aria-label":`${n} of ${t.length} covered`,style:{height:6,borderRadius:999,overflow:"hidden",background:"var(--graview-edge)"},children:(0,I.jsx)("div",{style:{width:`${Math.round(r*100)}%`,height:"100%",background:r===1?"var(--graview-accent)":"var(--graview-warn)"}})})}function lr(e){function t(n){let{store:r}=X(),a=He(r.graph,r.schema,n.nodes).filter(g=>g.kind===e.rows),{arranged:i,bar:l}=Oe(n,{lensAllows:{sort:!1,group:!1},subject:a,kind:e.rows}),m=(0,I.jsx)(qr,{schema:r.schema,...n,options:e,...l?{rowsKept:new Set(i.nodes.map(g=>g.id))}:{}});return l?(0,I.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[l,m]}):m}return{name:"coverage",requiredRoles:[...Br],options:e,View:t,build(n,r,a){return or(n,r,e,a)}}}function Xr(){let e=(0,be.useRef)(null),t=(0,be.useRef)(null),[n,r]=(0,be.useState)(new Set);return(0,be.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 l=0,m=()=>{l=0;let y=e.current?.getBoundingClientRect().right??0,d=new Set;for(let f of a.querySelectorAll("[data-graview-column]")){let k=f.getBoundingClientRect();k.left+k.width/2<y&&d.add(f.dataset.graviewColumn)}r(f=>f.size===d.size&&[...d].every(k=>f.has(k))?f:d)},g=()=>{l===0&&(l=requestAnimationFrame(m))};return m(),i.addEventListener("scroll",g,{passive:!0}),()=>{i.removeEventListener("scroll",g),l!==0&&cancelAnimationFrame(l)}},[]),{corner:e,heads:t,hidden:n}}var cr=["regions","outline"],Fe=class extends Error{constructor(n,r){super(`${n}
27
- ${r}`);this.hint=r;this.name="PlanBindingError"}},hn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',dr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function yn(e,t,n,r){let a=o=>o,i=o=>r?he(r.tryDefinition(o.kind),o):String(a(o).label??o.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new Fe(`No kind is declared for "${n.regions}".`,hn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Fe(`No kind is declared for "${n.markers}".`,hn);let l=e.filter(o=>o.kind===n.regions);if(!r&&l.length===0)throw new Fe(`Nothing to draw: no "${n.regions}" nodes.`,hn);let g=r?.tryDefinition(n.regions)?.fields?.shape;if(g!==void 0&&!(n.outline in g))throw new Fe(`"${n.regions}" has no field called "${n.outline}".`,hn);let y=(()=>{let o=new Map;if(n.nests)for(let b of t)b.kind===n.nests&&o.set(b.from,b.to);return b=>{let C=0,R=o.get(b),M=new Set([b]);for(;R!==void 0&&!M.has(R)&&C<l.length;)M.add(R),C+=1,R=o.get(R);return C}})(),d=n.markers?e.filter(o=>o.kind===n.markers):[],f=new Map;if(n.within)for(let o of t)o.kind===n.within&&f.set(o.from,o.to);let k=[],s=new Map;for(let o of d){let b=n.at===void 0?void 0:a(o)[n.at],C=f.get(o.id);if(!dr(b)||C===void 0){k.push({id:o.id,label:i(o)});continue}let R=n.markerKind===void 0?void 0:a(o)[n.markerKind],M=s.get(C)??[];M.push({id:o.id,label:i(o),at:b,...typeof R=="string"?{what:R}:{}}),s.set(C,M)}let c=[],S=[];for(let o of l){let b=a(o)[n.outline];if(!Array.isArray(b)||b.length<3||!b.every(dr)){c.push({id:o.id,label:i(o)});continue}let C=n.regionKind===void 0?void 0:a(o)[n.regionKind];S.push({id:o.id,label:i(o),outline:b,center:Ct(b),depth:y(o.id),markers:s.get(o.id)??[],...typeof C=="string"?{what:C}:{}})}return S.sort((o,b)=>o.depth-b.depth),{regions:S,undrawn:c,strays:k}}var Te=_(De(),1);var L=_(J(),1);function gr({map:e,options:t,implicated:n,flagged:r}){return(0,L.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:".25rem"},children:[e.regions.map(a=>{let i=wn(a.id,n,r);return(0,L.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"?Un(a.what,i,t.hues):void 0},children:[(0,L.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,L.jsxs)("span",{style:{opacity:.7,whiteSpace:"nowrap"},children:[a.what?`${a.what} \xB7 `:"",a.markers.length]})]},a.id)}),e.undrawn.map(a=>(0,L.jsxs)("li",{"data-graview-pick":a.id,style:{display:"flex",gap:".5rem",opacity:.7,padding:".25rem .4rem"},children:[(0,L.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,L.jsx)("span",{style:{whiteSpace:"nowrap"},children:t.undrawnLabel??"not drawn"})]},a.id))]})}var qn=1e3,ur=.022,Ze={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"},wn=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},vn=(e,t)=>(e===void 0?void 0:t?.[e])??de(e??"region"),Un=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${vn(e,n)} 52% 48%) 24%, var(--graview-panel))`,mr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${vn(e,n)} 48% 42%) 78%, var(--graview-ink))`;function Zr(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 pr({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:i,implicated:l,flagged:m}){let{store:g}=X(),y=g.graph.allEdges(),d=g.graph.allNodes(),f=n===void 0?void 0:new Set(n.map(x=>x.id)),k=f===void 0?d:d.filter(x=>x.kind!==t.regions||f.has(x.id)),s=yn(k,y,t,e),c=s.regions.length,S=s.regions.reduce((x,O)=>x+O.markers.length,0);if(a==="glyph")return(0,L.jsx)(ye,{label:`${r??"Ground"} \xB7 ${c}`,...s.undrawn.length>0?{meta:`+${s.undrawn.length} undrawn`}:{},selected:i});if(a==="summary")return(0,L.jsx)(te,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,children:(0,L.jsx)(gr,{map:s,options:t,...l?{implicated:l}:{},...m?{flagged:m}:{}})});let o=(0,Te.useMemo)(()=>{let x=1/0,O=1/0,G=-1/0,ie=-1/0,se=K=>{K.x<x&&(x=K.x),K.x>G&&(G=K.x),K.y<O&&(O=K.y),K.y>ie&&(ie=K.y)};for(let K of s.regions){for(let ve of K.outline)se(ve);for(let ve of K.markers)se(ve.at)}if(!Number.isFinite(x)||G-x<=0||ie-O<=0)return{x0:0,y0:0,x1:1,y1:1};let ue=Math.max(G-x,ie-O)*.04;return{x0:x-ue,y0:O-ue,x1:G+ue,y1:ie+ue}},[s.regions]),b=(o.x1-o.x0)/(o.y1-o.y0),C=t.aspect??Math.min(3.2,Math.max(.55,b)),R=Math.round(qn/(o.x1-o.x0)),M=Math.round(R*(o.x1-o.x0)),w=Math.round(M/C),v={x:o.x0*R,y:o.y0*R-(w-R*(o.y1-o.y0))/2,w:M,h:w},u=R,A=v.w,E=(l?.length??0)>0||(m?.length??0)>0,B=(0,Te.useRef)(null),{touchable:h,legible:T}=ft(B,{units:v.w,target:A*ur*2}),P=En("--graview-font-display","serif"),U=En("--graview-font-body","sans-serif"),{named:ne,placed:ae,tagged:ee}=(0,Te.useMemo)(()=>{let x=[],O=A*.012,G=qn*.004,ie=(le,Y)=>!x.some(fe=>fe!==Y&&$t({x0:le.x0-G,y0:le.y0-G,x1:le.x1+G,y1:le.y1+G},fe)),se=[...s.regions].sort((le,Y)=>Pn(Y.outline)-Pn(le.outline)),ue=new Map,K=new Map;for(let le of se){let Y=kt(le.outline),fe=Math.max(0,(Y.bottom-Y.top)*u*.55),Re=null;for(let ke of[.12,.26,.42,.6,.78]){let xe=Y.top+ke*(Y.bottom-Y.top),Ae=Mn(le.outline,xe),bn=Math.max(0,(Ae.x1-Ae.x0)*R-O*2),me=Ot(le.label,{room:bn,height:fe,size:A*.023,floor:A*.015,measure:P});if(me===null)continue;let Ne=Math.max(...me.lines.map(Cr=>P(Cr,me.fontSize))),Ee=me.lines.length*me.fontSize*1.15,Qn=Y.top*u+O+Ee/2,Jn=Y.bottom*u-O-Ee/2,nn=Jn<Qn?(Y.top+Y.bottom)*u/2:Math.min(Math.max(xe*u,Qn),Jn),xn=Mn(le.outline,nn/u),Sn=xn.x0*R+O;if(Ne>(xn.x1-xn.x0)*R-O*2)continue;let Xn={x0:Sn,y0:nn-Ee/2,x1:Sn+Ne,y1:nn+Ee/2};if(ie(Xn)){x.push(Xn),Re={fitted:me,x:Sn,y:nn};break}}ue.set(le.id,Re?.fitted??null),Re!==null&&K.set(le.id,{x:Re.x,y:Re.y})}let ve=A*.018,Ue=new Map,F=A*.011+A*.004,Yn=new Map;for(let le of s.regions)for(let Y of le.markers){let fe={x0:Y.at.x*R-F,y0:Y.at.y*u-F,x1:Y.at.x*R+F,y1:Y.at.y*u+F};Yn.set(Y.id,fe),x.push(fe)}for(let le of h?s.regions:[])for(let Y of le.markers){let fe=A*.018,Re=U(Y.label,ve),ke=Y.at.x*R,xe=Y.at.y*u,Ae=ve*1.15,bn=[{x:ke+fe,y:xe,anchor:"start"},{x:ke-fe,y:xe,anchor:"end"},{x:ke+fe*.7,y:xe-Ae,anchor:"start"},{x:ke-fe*.7,y:xe-Ae,anchor:"end"},{x:ke+fe*.7,y:xe+Ae,anchor:"start"},{x:ke-fe*.7,y:xe+Ae,anchor:"end"},{x:ke,y:xe-Ae*1.1,anchor:"start"},{x:ke,y:xe+Ae*1.1,anchor:"start"}];for(let me of bn){let Ne=me.anchor==="start"?me.x:me.x-Re,Ee={x0:Ne,y0:me.y-ve*.62,x1:Ne+Re,y1:me.y+ve*.62};if(!(Ne<v.x+4||Ne+Re>v.x+v.w-4)&&!(Ee.y0<v.y+2||Ee.y1>v.y+v.h-2)&&ie(Ee,Yn.get(Y.id))){x.push(Ee),Ue.set(Y.id,{at:{x:me.x,y:me.y},anchor:me.anchor,size:ve});break}}}return{named:ue,placed:K,tagged:Ue}},[s.regions,qn,u,h,P,U]),ge=(0,Te.useMemo)(()=>{let x=[];for(let O of s.regions)(ne.get(O.id)?.whole??!1)===!1&&x.push({id:O.id,label:O.label,what:O.what,round:!1});for(let O of s.regions)for(let G of O.markers)(!h||!ee.has(G.id))&&x.push({id:G.id,label:G.label,what:G.what,round:!0});return x},[s.regions,ne,ee,h]),{principal:pe}=X(),[N,$]=(0,Te.useState)(null),V=t.draw!==void 0,p=t.place!==void 0,H=x=>{if(N===null)return;x.stopPropagation();let O=Zr(x);if(N.kind==="marker"){g.apply({name:t.place.act,args:{[t.place.id]:N.id,[t.place.at]:O}},{author:pe,intent:`Placed ${N.label} on the map`}),$(null);return}$({...N,corners:[...N.corners,O]})},z=()=>{N===null||N.kind!=="region"||N.corners.length<3||(g.apply({name:t.draw.act,args:{[t.draw.id]:N.id,[t.draw.outline]:N.corners}},{author:pe,intent:`Drew ${N.label} on the map \u2014 ${N.corners.length} corners`}),$(null))},j=N===null?s.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:N.kind==="marker"?`Click where ${N.label} stands.`:N.corners.length<3?`Click the corners of ${N.label} \u2014 ${3-N.corners.length} more to make an area.`:`${N.corners.length} corners. Keep clicking, or press Done.`;return T?(0,L.jsxs)(te,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,...s.undrawn.length>0?{meta:`${s.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:i,fit:!0,children:[(0,L.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${v.w} / ${v.h}`,overflow:"hidden"},children:(0,L.jsxs)("svg",{ref:B,viewBox:`${v.x} ${v.y} ${v.w} ${v.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:N!==null?"application":h?"group":"img","aria-label":N===null?`${r??"The plan"}: ${c} drawn, ${S} standing in them`:j??"Drawing",onClick:H,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:N===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,L.jsx)("text",{x:v.x+v.w-A*.028,y:v.y+A*.034,fontSize:A*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),j!==null&&s.regions.length===0?(0,L.jsx)("text",{x:v.x+v.w/2,y:v.y+v.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:A*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:j}):null,N!==null&&N.kind==="region"&&N.corners.length>0?(0,L.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,L.jsx)("polyline",{points:N.corners.map(x=>`${x.x*R},${x.y*u}`).join(" "),fill:N.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),N.corners.map((x,O)=>(0,L.jsx)("circle",{cx:x.x*R,cy:x.y*u,r:A*.008,fill:"var(--graview-accent)"},O))]}):null,s.regions.map(x=>{let O=wn(x.id,l,m),G=E&&O===void 0?.34:1,ie=x.outline.map(se=>`${se.x*R},${se.y*u}`).join(" ");return(0,L.jsx)("g",{"data-graview-pick":x.id,...O?{"data-graview-emphasis":O}:{},role:"button","aria-label":`${x.label}${x.what?`, ${x.what}`:""}, ${x.markers.length} standing in it`,style:{opacity:G,cursor:"pointer"},children:(0,L.jsx)("polygon",{points:ie,fill:Un(x.what,O,t.hues),stroke:mr(x.what,O,t.hues),strokeWidth:O==="flagged"?5:2.5,strokeLinejoin:"round"})},x.id)}),s.regions.flatMap(x=>x.markers.map(O=>{let G=wn(O.id,l,m),ie=E&&G===void 0?.34:1;return(0,L.jsxs)("g",{...h?{"data-graview-pick":O.id,role:"button","aria-label":`${O.label}${O.what?`, ${O.what}`:""}, in ${x.label}`}:{"aria-hidden":!0},...G?{"data-graview-emphasis":G}:{},style:{opacity:ie,cursor:h?"pointer":"default"},children:[h?(0,L.jsx)("circle",{cx:O.at.x*R,cy:O.at.y*u,r:A*ur,fill:"transparent"}):null,(0,L.jsx)("circle",{cx:O.at.x*R,cy:O.at.y*u,r:A*.011,fill:G==="flagged"?"var(--graview-warn)":`hsl(${vn(O.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:A*.004}),ee.has(O.id)?(0,L.jsx)("text",{x:ee.get(O.id).at.x,y:ee.get(O.id).at.y,textAnchor:ee.get(O.id).anchor,dominantBaseline:"middle",fontSize:ee.get(O.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,ee.get(O.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${O.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:O.label}):null]},O.id)})),s.regions.map(x=>{let O=ne.get(x.id),G=ae.get(x.id);if(!O||G===void 0)return null;let ie=wn(x.id,l,m);return(0,L.jsx)("text",{x:G.x,y:G.y-(O.lines.length-1)*O.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:O.fontSize,fill:"var(--graview-ink)",opacity:E&&ie===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,O.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${x.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:O.lines.map((se,ue)=>(0,L.jsx)("tspan",{x:G.x,dy:ue===0?0:O.fontSize*1.15,children:se},se+String(ue)))},`label-${x.id}`)})]})}),ge.length>0?(0,L.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:ge.map(x=>(0,L.jsxs)("li",{"data-graview-pick":x.id,style:{display:"flex",alignItems:"center",gap:".35rem",minWidth:0,minHeight:"max(1.5rem, 24px)",padding:"0 .15rem",cursor:"pointer"},children:[(0,L.jsx)("span",{"aria-hidden":"true",style:{width:x.round?".55rem":".7rem",height:x.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:x.round?"50%":".15rem",background:x.round?`hsl(${vn(x.what,t.hues)} 55% 45%)`:Un(x.what,void 0,t.hues),border:x.round?void 0:`1px solid ${mr(x.what,void 0,t.hues)}`}}),(0,L.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:x.label})]},x.id))}):null,N!==null?(0,L.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[s.regions.length>0&&j!==null?(0,L.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:j}):null,N.kind==="region"?(0,L.jsxs)("button",{type:"button",onClick:z,disabled:N.corners.length<3,"data-testid":"draw-done",style:{...Ze,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",N.label]}):null,N.kind==="region"&&N.corners.length>0?(0,L.jsx)("button",{type:"button",onClick:()=>$({...N,corners:N.corners.slice(0,-1)}),style:Ze,children:"Undo a corner"}):null,(0,L.jsx)("button",{type:"button",onClick:()=>$(null),style:Ze,"data-testid":"draw-cancel",children:"Stop"})]}):(0,L.jsxs)(L.Fragment,{children:[V&&s.undrawn.length>0?(0,L.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,L.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.undrawnLabel??"Not drawn yet",":"]}),s.undrawn.map(x=>(0,L.jsxs)("button",{type:"button",style:Ze,onClick:()=>$({kind:"region",id:x.id,label:x.label,corners:[]}),"data-testid":`draw-${x.id}`,children:["Draw ",x.label]},x.id))]}):null,p&&s.strays.length>0?(0,L.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,L.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.strayLabel??"Not placed",":"]}),s.strays.map(x=>(0,L.jsxs)("button",{type:"button",style:Ze,onClick:()=>$({kind:"marker",id:x.id,label:x.label}),"data-testid":`place-${x.id}`,children:["Place ",x.label]},x.id))]}):null,t.help!==void 0&&(s.undrawn.length>0||s.strays.length>0)?(0,L.jsx)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem"},children:(0,L.jsx)("a",{href:t.help.href,"data-testid":"map-help",children:t.help.label})}):null,!V&&(s.undrawn.length>0||s.strays.length>0)?(0,L.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[s.undrawn.map(x=>x.label).join(", "),s.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",s.strays.map(x=>x.label).join(", "),s.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,L.jsx)(te,{title:r??"The plan",subtitle:`${c} drawn \xB7 ${S} standing in them`,selected:i,children:(0,L.jsx)(gr,{map:s,options:t,...l?{implicated:l}:{},...m?{flagged:m}:{}})})}var hr=_(J(),1);function fr(e){function t(n){let{store:r}=X();return(0,hr.jsx)(pr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...cr],options:e,View:t,build(n,r,a){return yn(n,r,e,a)}}}var re=_(J(),1);function ea(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 l={kind:"human",id:"themselves",roles:[i]};for(let m of r){let g=m.kind??void 0,y=On(e,l,m.name,g).ok,d=!y&&On(e,l,m.name,g,void 0,"themselves").ok;a.push({role:i,act:m.name,kind:m.kind,may:y?"yes":d?"self":"no"})}}return{roles:n,acts:r,cells:a}}function na({label:e,fidelity:t,mode:n}){let{store:r}=X(),a=r.policy,i=a?.roles??[],l=r.allMutations().filter(f=>!f.derived).map(f=>({name:f.name,...f.title?{title:f.title}:{},...f.subject?{subject:f.subject}:{}})),m=ea(a,l,i),g=e??"Who may do what";if(!a||i.length===0)return(0,re.jsxs)("div",{"data-testid":"reach-lens",style:{padding:14,color:"var(--graview-ink-muted)",fontSize:"0.875rem"},children:[g,": this installation has no policy, so everyone may do everything."]});if(t==="glyph")return(0,re.jsx)(ye,{label:`${g} \xB7 ${i.length} ${i.length===1?"role":"roles"}`,hue:de("role")});let y=n==="fullscreen",d=f=>f==="yes"?"\u25CF":f==="self"?"\u25D0":"\xB7";return(0,re.jsxs)("div",{"data-testid":"reach-lens",style:{display:"grid",gap:10,padding:y?0:14,borderRadius:"var(--graview-radius, 12px)",background:y?"transparent":"var(--graview-panel)",border:y?"none":"1px solid var(--graview-edge)",color:"var(--graview-ink)",minWidth:0},children:[(0,re.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,re.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:g}),(0,re.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,re.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,re.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,re.jsx)("thead",{children:(0,re.jsxs)("tr",{children:[(0,re.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(f=>(0,re.jsxs)("th",{scope:"col",title:f.kind?`${f.title}, on ${rt(rn(r.schema.tryDefinition(f.kind),f.kind))}`:f.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[f.title,f.kind?(0,re.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",f.kind]}):null]},`${f.name}|${f.kind??""}`))]})}),(0,re.jsx)("tbody",{children:m.roles.map(f=>(0,re.jsxs)("tr",{children:[(0,re.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:f}),m.acts.map(k=>{let s=m.cells.find(c=>c.role===f&&c.act===k.name&&c.kind===k.kind);return(0,re.jsx)("td",{"data-graview-reach":s.may,title:`${f} ${s.may==="yes"?"may":s.may==="self"?"may, on their own record,":"may not"} ${k.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:s.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:s.may==="no"?"0.875rem":"0.8125rem"},children:d(s.may)},`${k.name}|${k.kind??""}`)})]},f))})]})})]})}var yr={name:"reach",requiredRoles:[],View:na};var Se=_(De(),1);var Z=_(J(),1),vr=["start","end"];function ta(e,t,{pad:n=45,minimum:r=480}={}){if(e.length===0)return{start:0,end:t};let a=Math.min(...e.map(y=>y.start)),i=Math.max(...e.map(y=>y.end)),l=Math.max(0,a-n),m=Math.min(t,i+n),g=r-(m-l);return g>0&&(l=Math.max(0,l-g/2),m=Math.min(t,l+r)),{start:Math.floor(l),end:Math.ceil(m)}}function ra(e){let t=[...e].sort((i,l)=>i.start-l.start||i.end-l.end||i.id.localeCompare(l.id)),n=[],r=t.map(i=>{let l=n.findIndex(m=>m<=i.start);return l===-1?(l=n.length,n.push(i.end)):n[l]=i.end,{...i,lane:l,lanes:1}}),a=Math.max(1,n.length);return r.map(i=>({...i,lanes:a}))}var Kn=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 br(e,t,n){let r=Be(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,l=vr.filter(d=>{let f=r[d];return f?i?!(f in i):!(f in a):!0});if(l.length>0)throw new Kn(e.kind,l);let m=Number(a[r.start]??Number.NaN),g=Number(a[r.end]??m);if(!Number.isFinite(m))return null;let y=[];if(r.columns){let d=a[r.columns];Array.isArray(d)&&y.push(...d.map(String))}if(r.column){let d=a[r.column];d!=null&&y.push(String(d))}return{id:e.id,kind:e.kind,label:he(n?.tryDefinition(e.kind),e),columnIds:y,start:m,end:Number.isFinite(g)?Math.max(g,m):m}}function aa(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 ia=.045,en=52,xr=4,oa=44,sa=240;function la({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:l=[],implicated:m=[],flagged:g=[]}){let y=new Set([...m,...l]),d=w=>y.size===0?"plain":y.has(w)?"lit":"dimmed",f=new Set(g),k=(e??[]).map(w=>br(w,a.bindings,i)).filter(w=>w!==null),s=a.hueOf??(w=>de(w.kind));if(n==="glyph")return(0,Z.jsx)(ye,{label:`${t??"Timeline"} \xB7 ${k.length}`,hue:de("timeline")});if(n==="summary")return(0,Z.jsx)(te,{title:t??"Timeline",meta:`${k.length} items`,tone:"muted",children:(0,Z.jsx)(Me,{max:a.columns.length,items:a.columns.map(w=>({id:w.id,label:`${w.label} ${k.filter(v=>v.columnIds.includes(w.id)).length}`,hue:de(w.id)}))})});let c=a.format??String,S=ta(k,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),o=S.end-S.start,b=w=>(w-S.start)/o*100,C=a.tick??Math.max(60,Math.round(o/8/60)*60),R=[];for(let w=Math.ceil(S.start/C)*C;w<=S.end;w+=C)R.push(w);let M=r==="fullscreen";return(0,Z.jsx)(te,{title:t??"Timeline",meta:`${c(S.start)} \u2013 ${c(S.end)}`,style:{gap:12,...M?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,Z.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,Z.jsx)(ga,{columns:a.columns}),(0,Z.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(sa,Math.ceil(o/C)*oa)},children:[R.map((w,v)=>(0,Z.jsx)("div",{style:{position:"absolute",left:en-8,right:0,top:v===R.length-1?"calc(100% - 1px)":`${b(w)}%`,height:1,background:"var(--graview-edge)"},children:(0,Z.jsx)("span",{style:{position:"absolute",left:-(en-8),...v===R.length-1?{bottom:2}:{top:-7},width:en-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:c(w)})},w)),(0,Z.jsx)("div",{style:{position:"absolute",inset:0,left:en,display:"flex",gap:xr},children:a.columns.map(w=>(0,Z.jsx)(ua,{spans:k.filter(v=>v.columnIds.includes(w.id)),window:S,format:c,hue:s,emphasisOf:d,brokenIds:f},w.id))})]})]})})}function da(){let e=(0,Se.useRef)(null),[t,n]=(0,Se.useState)(new Set);return(0,Se.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,Se.useLayoutEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let a=Math.round(r.clientWidth),i=new ResizeObserver(()=>{let l=Math.round(r.clientWidth);l!==a&&(a=l,n(new Set))});return i.observe(r),()=>i.disconnect()},[]),{column:e,oneLine:t}}var ca=(e,t)=>t===0?e:e.slice(0,t),wr=[0,3,1];function ga({columns:e}){let t=(0,Se.useRef)(null),[n,r]=(0,Se.useState)(0);(0,Se.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(m=>m.scrollWidth>m.clientWidth+.5)&&n<wr.length-1&&r(n+1)}),(0,Se.useLayoutEffect)(()=>{let i=t.current;if(!i||typeof ResizeObserver>"u")return;let l=i.clientWidth,m=new ResizeObserver(()=>{i.clientWidth!==l&&(l=i.clientWidth,r(0))});return m.observe(i),()=>m.disconnect()},[]);let a=wr[n];return(0,Z.jsx)("div",{ref:t,style:{display:"flex",gap:xr,paddingLeft:en,paddingBottom:10},children:e.map(i=>{let l=ca(i.label,a);return(0,Z.jsx)("div",{"data-graview-day-head":i.id,title:l===i.label?void 0:i.label,...l===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:l},i.id)})})}function ua({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:i}){let l=t.end-t.start,m=s=>(s-t.start)/l*100,g=s=>(s.end-s.start)/l<ia,y=ra(e.filter(s=>!g(s))),d=[...e.filter(g)].sort((s,c)=>s.start-c.start),f=Math.max(1,...y.map(s=>s.lanes)),k=da();return(0,Z.jsxs)("div",{ref:k.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[y.map(s=>{let c=100/f,S=Math.max(1.6,m(s.end)-m(s.start));return(0,Z.jsx)("div",{"data-graview-span":s.id,"data-graview-pick":s.id,"data-graview-emphasis":a(s.id),"data-graview-flagged":i.has(s.id)?"":void 0,title:`${s.label} \xB7 ${n(s.start)}\u2013${n(s.end)}`,style:{position:"absolute",top:`${m(s.start)}%`,height:`${S}%`,left:`${s.lane*c}%`,width:`${c}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,Z.jsx)("div",{"data-graview-span-name":s.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...k.oneLine.has(s.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...aa(a(s.id),r(s)),...i.has(s.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:S>=3.4?s.label:null})},s.id)}),d.map(s=>{let c=a(s.id);return(0,Z.jsxs)("div",{"data-graview-span":s.id,"data-graview-pick":s.id,"data-graview-emphasis":c,"data-graview-moment":"",title:`${s.label} \xB7 ${n(s.start)}`,style:{position:"absolute",top:`${m(s.start)}%`,right:0,maxWidth:"100%",boxSizing:"border-box",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"flex-end",gap:5,minHeight:24,padding:"0 4px 0 8px",borderRadius:999,background:"linear-gradient(90deg, transparent, var(--graview-ground) 35%)"},children:[(0,Z.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:c==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(s.start)}),(0,Z.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:c==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:s.label}),(0,Z.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:i.has(s.id)?"var(--graview-warn)":c==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(s))} 60% var(--graview-tint-lightness))`,boxShadow:i.has(s.id)?"0 0 0 3px var(--graview-warn)":c==="lit"?"0 0 0 3px var(--graview-accent-dim)":c==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(s))} 60% var(--graview-tint-lightness) / 0.45)`}})]},s.id)})]})}function Sr(e){function t(n){let{store:r}=X(),a=Object.keys(e.bindings),{nodes:i,bar:l}=Oe(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...a[0]?{kind:(n.nodes??[]).find(g=>a.includes(String(g.kind)))?.kind??a[0]}:{}}),m=(0,Z.jsx)(la,{schema:r.schema,...n,nodes:i,options:e});return Pe(n,r.schema,l?(0,Z.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[l,m]}):m)}return{name:"timeline",requiredRoles:[...vr],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>br(a,e.bindings,r)).filter(a=>a!==null)}}}var qe=_(J(),1),kr=new WeakMap;function ma(e){return e===1440?t=>Ke(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Ke(Math.floor(t)*60):t=>String(t)}function pa(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Sr({...t,extent:n,format:ma(n)}).View}case"calendar":return er({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return lr(t).View;case"board":return Bt(t).View;case"plan":return fr(t).View;case"reach":return yr.View;case"columns":return nr(t).View;case"blocks":return fa(pt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function fa(e,t){return n=>{let r=(0,qe.jsx)(Nt,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,qe.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode==="fullscreen"?(0,qe.jsx)("div",{style:{padding:"14px 16px"},children:r}):(0,qe.jsx)(te,{title:n.label??"",children:r})}}function ho(e){let t=kr.get(e);if(!t){let n=pa(e),r=a=>(0,qe.jsx)(n,{...a,label:e.title});kr.set(e,t=r)}return t}export{ma as a,ho as b};
@@ -1,2 +0,0 @@
1
- import{a as J,b as We}from"./chunk.5A4AOFOA.js";import"./chunk.KSXB4LDF.js";import"./chunk.YNJOLOFG.js";import"./chunk.5JPRRV47.js";import{i as $e,j as Re,k as Le}from"./chunk.HYAKRLPT.js";import"./chunk.IHBIRAC4.js";import"./chunk.QJYALCIW.js";import"./chunk.6SK2K72G.js";import"./chunk.NNNVB6RV.js";import"./chunk.HJCQ6I3S.js";import"./chunk.AWRS6TUN.js";import"./chunk.KAWP4RNR.js";import"./chunk.UPBUF7KR.js";import"./chunk.FGYCYLUS.js";import"./chunk.NZJZIYDK.js";import"./chunk.3V2M3S4U.js";import"./chunk.EKUAI5YL.js";import"./chunk.GMZAQGH7.js";import{a as Pe,b as k}from"./chunk.57XTDW57.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import{b as ze,c as Ee}from"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.js";import"./chunk.SZMWJHU2.js";import"./chunk.YFW5BF6J.js";import"./chunk.QYWBQ5NX.js";import"./chunk.ENJKCSNX.js";import"./chunk.LJE5J3JK.js";import"./chunk.X2OLXTRL.js";import"./chunk.JDRM6XXD.js";import{u as Ie}from"./chunk.GXPBRYSR.js";import"./chunk.NV6IZJKA.js";import"./chunk.OJGHDWI6.js";import{g as Ce}from"./chunk.7OLVQ2FZ.js";import"./chunk.NOZEHLWG.js";import{c as Me}from"./chunk.UVLPVHID.js";import{m as He}from"./chunk.QXARGANF.js";import{F as tt,Q as Se,Y as N,i as xe,na as Q,sa as Ae,v as ke,wa as Te}from"./chunk.DNNL7F3P.js";import{Ub as ye,Vb as we,ja as K,ka as W,qc as be,tb as ve}from"./chunk.HBBVVALN.js";import{b as G}from"./chunk.AJZBJBMO.js";var o=G(tt(),1);var t=G(Se(),1);function mt(d,r,a){let p=r.on??r.about[r.about.length-1];$e(d,r.about,{...a,pins:J(),...p===void 0?{}:{focus:p}})}function ft({placement:d="float",chosen:r=!0}={}){let{menuAt:a}=N();return d==="menu"&&a===null?r?(0,t.jsx)(nt,{}):null:(0,t.jsx)(it,{placement:d})}function nt(){let{store:d,setMenuAt:r,view:a}=N(),{selection:p}=Q(),h=(0,o.useRef)(null),[H,v]=(0,o.useState)(null);(0,o.useLayoutEffect)(()=>{let b=h.current?.offsetParent??h.current?.parentElement;if(!b)return;let m=Math.round(b.getBoundingClientRect().width);m!==H&&v(m)});let y=p.length===1&&!a.overview?d.graph.getNode(p[0]):void 0;return!y||H===null||H>=De?(0,t.jsx)("span",{ref:h,hidden:!0}):(0,t.jsx)("button",{type:"button",ref:h,"data-testid":"chosen-acts","aria-label":`What can be done with ${k(d,y.id)}`,"aria-haspopup":"menu",onClick:b=>{let m=b.currentTarget.getBoundingClientRect();r({x:Math.round(m.right),y:Math.round(m.bottom+4),on:y.id})},style:{position:"absolute",right:"calc(14px + var(--graview-dock, 0px))",top:98,zIndex:"var(--graview-layer-overview, 10)",minHeight:30,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)"},children:"Acts\u2026"})}var De=564;function it({placement:d}){let{store:r,menuAt:a,setMenuAt:p,view:h,signIn:H}=N(),v=(0,o.useRef)(null),y=(0,o.useRef)(null),b=(0,o.useRef)(null),m=(0,o.useRef)(null);a?.returnTo&&(m.current=a.returnTo);let Oe=e=>{let i=e.closest("[data-graview-asking]")?.getAttribute("data-graview-asking"),n=e.getAttribute("data-pin-for"),g=i??e.getAttribute("data-affordance")??(n===null?null:`pin:${n}`)??e.getAttribute("data-menu-item");y.current=g===null?null:{key:g,element:e}};(0,o.useEffect)(()=>{let e=v.current,i=y.current;if(i===null||document.activeElement!==document.body||i.element.isConnected)return;let n=i.key;if(!e){y.current=null;let I=m.current;m.current=null,(I?.isConnected?I:b.current)?.focus();return}((n.startsWith("pin:")?e.querySelector(`[data-pin-for="${CSS.escape(n.slice(4))}"]`):null)??e.querySelector(`[data-affordance="${CSS.escape(n)}"]:not([disabled])`)??e).focus()});let[Fe,qe]=(0,o.useState)(null);(0,o.useLayoutEffect)(()=>{let e=v.current?.offsetParent??v.current?.parentElement;if(e instanceof HTMLElement&&(b.current=e),!e)return;let i=e.getBoundingClientRect();qe(n=>n&&n.left===i.left&&n.top===i.top&&n.width===i.width&&n.height===i.height?n:{left:i.left,top:i.top,width:i.width,height:i.height})});let{selection:Be,set:je,clear:_e}=Q(),s=a?.about??Be,[D,Ue]=(0,o.useState)(()=>J()),O=a?.on??s[s.length-1],F=a?.about,Ve=(0,o.useMemo)(()=>({pins:D,...O===void 0?{}:{focus:O},...F?{about:F}:{}}),[D,O,F]),Ye=(0,o.useMemo)(()=>new Set(r.allMutations().filter(e=>e.pinned).map(e=>e.name)),[r]),{affordances:c,withheld:X,observations:Z}=Re(Ve),M=we(X,H),f=M?rt:X,Ge=a===null?null:{face:a.face??"scene",on:a.on,about:s,field:a.field,place:a.place,href:a.href,act:a.act,element:a.returnTo},ee=Ie(Ge),te=Z.some(e=>e.id.startsWith("schema:waits:")),{apply:Ke,preview:Qe}=Le(),[C,z]=(0,o.useState)(null),[Je,ne]=(0,o.useState)(!1),[ie,re]=(0,o.useState)(!1),[P,$]=(0,o.useState)(""),[ae,q]=(0,o.useState)(null),B=(0,o.useRef)([]),j=(e,i)=>{try{return Qe(e,i),Ke(e,i),q(null),p(null),B.current=[],!0}catch(n){return q(Ce(r.schema,r.allMutations(),n)),B.current=n instanceof ve?n.issues.map(g=>String(g.path[0]??"")).filter(Boolean):[],!1}},R=[...new Set(s.flatMap(e=>{let i=r.graph.getNode(e);return i?[i.kind]:[]}))],x=R.length>0?R:[...new Set(s.flatMap(e=>ke(e)))],u=s.length===1?xe(s[0]):null,_=u?{from:r.graph.getNode(u.from),to:r.graph.getNode(u.to)}:null,oe=u?Ee(r,u):void 0,le=oe?.provisional?oe:void 0,se=u?(()=>{let e=r.schema.tryDefinition(r.graph.getNode(u.from)?.kind??"")?.edges?.[u.kind],i=r.graph.getNode(u.to);return e?.inverse&&i?`From ${k(r,i.id)}: ${e.inverse}`:null})():null;(0,o.useEffect)(()=>{z(null),ne(!1),re(!1),q(null),$("")},[s,a?.about]);let l=a!==null,Xe=d==="menu"&&!l,S=(0,o.useRef)(a);S.current=a;let de=Te("acts",{open:l&&d==="menu",onOpenChange:e=>{e||p(null)},at:()=>S.current?{x:S.current.x,y:S.current.y}:null,returnTo:()=>{let e=S.current?.returnTo;if(e?.isConnected)return e;let i=S.current?.on;return i?document.querySelector(`[data-graview-view="${CSS.escape(i)}"]`):null},align:"start"}),ue=(Fe?.width??Number.POSITIVE_INFINITY)<De;if((0,o.useLayoutEffect)(()=>{let e=v.current?.offsetParent;if(!e||!ue||l)return;let i=v.current?.getBoundingClientRect().height??0,n=`${Math.round(i)+20}px`;if(e.style.paddingBottom===n)return;let g=e.style.paddingBottom;return e.style.paddingBottom=n,()=>{e.style.paddingBottom=g}}),s.length===0&&!l)return null;let pe=a?.title!==void 0||s.length>0&&!(s.length===1&&s[0]===h.focusId),ce=Math.max(1,Math.min(9,c.length)),A=[...c.filter(e=>e.provider==="invariant"&&!e.destructive),...c.filter(e=>e.pinned&&e.provider!=="invariant"&&!e.destructive),...c.filter(e=>!e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...c.filter(e=>e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...c.filter(e=>e.destructive)],ge=A.length>ce&&!l,he=P.trim().toLowerCase(),w=ge&&he.length>0?A.filter(e=>`${e.label} ${e.why}`.toLowerCase().includes(he)):null,U=w??(Je||l?A:A.slice(0,ce)),me=w?0:A.length-U.length,L=[];for(let e of U){let i=!l&&e.provider==="invariant",n=!l&&!i&&e.pinned!==void 0&&!e.destructive,g=!l&&!i&&!n&&e.ties===!0&&!e.destructive,I=i?e.why:n?"pinned":g?"its ties":null,et=i?"violation":n||g?"ties":null,Y=L[L.length-1];Y&&Y.heading===I?Y.items.push(e):L.push({heading:I,tone:et,items:[e]})}let V=c.find(e=>e.id===C),E=s.length===1?k(r,s[0]):null,fe=e=>{if(!E)return e;let i=e.startsWith(`"${E}"`)?e.slice(E.length+2):e.startsWith(E)?e.slice(E.length):null;if(i===null)return e;let n=i.trimStart();return n.length===0?e:n[0].toUpperCase()+n.slice(1)},Ze=new Set(l?[]:U.filter(e=>e.provider==="invariant").map(e=>e.why)),T=Z.filter(e=>!Ze.has(e.text)).map(e=>({...e,text:fe(e.text)}));return Xe?null:(0,t.jsxs)("section",{...l?de.pane:{},ref:e=>{v.current=e,l&&de.pane.ref(e)},"aria-label":"Inspector","data-graview-offstage":"","data-testid":l?"context-menu":"inspector-strip",tabIndex:-1,onFocus:e=>Oe(e.target),onBlur:e=>{e.relatedTarget!==null&&(y.current=null)},onMouseDown:e=>e.stopPropagation(),style:{...l?Ae:{position:"absolute",zIndex:be("rail")},boxSizing:"border-box",display:"flex",flexDirection:"column",gap:7,padding:"9px 12px",borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",...l?{width:300,maxHeight:"min(52cqh, 420px)",overflow:"auto"}:ue?{left:10,right:10,width:"auto",bottom:10,maxHeight:"min(42cqh, 300px)",overflow:"auto"}:{left:14,top:h.overview?"min(296px, 38cqh)":44,width:236,maxHeight:h.overview?"calc(100cqh - min(296px, 38cqh) - 20px)":"calc(68cqh - 94px)",overflow:"auto"}},children:[(0,t.jsx)("h2",{style:{...He,margin:0},children:"Inspector"}),(0,t.jsxs)("div",{style:{display:pe||!l?"flex":"none",alignItems:"baseline",flexWrap:"wrap",gap:"2px 8px",minWidth:0,paddingRight:l?0:24},children:[pe?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("strong",{style:{fontSize:"0.9375rem",whiteSpace:"nowrap"},children:a?.title??(s.length===1?k(r,s[0]):`${s.length} selected`)}),R.length>0||u?(0,t.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:u?"relation":R.map(e=>W(r.schema.tryDefinition(e),e)).join(" \xB7 ")}):null,s.length===1&&!u&&a?.face!=="pages"?(0,t.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:h.expanded.includes(s[0])?"\xB7 double-click closes":"\xB7 double-click opens"}):null]}):null,(0,t.jsx)("span",{style:{flex:"1 1 auto"}})]}),l?null:(0,t.jsx)("button",{type:"button",onClick:()=>{p(null),_e()},"aria-label":"Clear selection",title:"Clear selection",style:{position:"absolute",top:6,right:6,flex:"0 0 auto",width:24,height:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.875rem",lineHeight:1,borderRadius:7},children:"\xD7"}),u&&_?(0,t.jsxs)("div",{style:{display:"grid",gap:6},children:[se?(0,t.jsx)("p",{"data-testid":"edge-said",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:se}):null,le?(0,t.jsx)("p",{"data-testid":"edge-provisional",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:ze(le)}):null,(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[["from",_.from],["to",_.to]].map(([e,i],n)=>(0,t.jsxs)(o.Fragment,{children:[n===1?(0,t.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-ink-faint)"},children:"\u2192"}):null,i?(0,t.jsx)("button",{type:"button","data-testid":`edge-${e}`,onClick:()=>je([i.id]),title:`Select ${k(r,i.id)}`,style:{fontSize:"0.8125rem",padding:"3px 9px",borderRadius:6},children:k(r,i.id)}):(0,t.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"gone"})]},e))})]}):null,!u&&s.length===1&&ye(r,s[0])?(0,t.jsx)("p",{"data-testid":"left-alone",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:"Left alone: nothing automated changes it."}):null,T.length>0?(0,t.jsx)("div",{"data-testid":"observations",title:T.map(e=>e.text).join(`
2
- `),style:{display:"grid",gap:3},children:T.slice(0,2).map(e=>(0,t.jsxs)("p",{style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[e.text,e===T[1]&&T.length>2?(0,t.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" +",T.length-2]}):null]},e.id))}):null,l?ee.start.map(e=>(0,t.jsx)(Ne,{section:e,close:()=>p(null)},e.id)):null,ae?(0,t.jsx)("p",{"data-testid":"refused",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-warn)"},children:ae}):null,ge?(0,t.jsx)("input",{"data-testid":"action-filter",value:P,onChange:e=>$(e.target.value),placeholder:`Filter ${A.length} actions\u2026`,"aria-label":"Filter actions",onKeyDown:e=>{if(e.key==="Escape"){e.stopPropagation(),P.length>0?$(""):e.currentTarget.blur();return}if(e.key==="Enter"&&w?.length===1){let i=w[0];if(i.destructive)return;i.open.length>0?z(i.id):j(i)&&$("")}},style:{font:"inherit",fontSize:"0.875rem",padding:"5px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}):null,w!==null&&w.length===0?(0,t.jsxs)("p",{"data-testid":"no-matches",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:["Nothing offered here matches \u201C",P.trim(),"\u201D."]}):null,M&&c.length===0||c.length===0&&!te&&s.length===0?null:c.length===0&&!te?(0,t.jsx)("p",{"data-testid":"no-affordances",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:f.length>0?`Nothing you may do with ${u?"this relation":x.length===1?K(W(r.schema.tryDefinition(x[0]),x[0])):"this mix of kinds"} \u2014 ${f.length} action${f.length===1?"":"s"} withheld.`:u?`Nothing can be done with this line yet \u2014 nothing this app declares makes or breaks \u201C${Me(r.schema,r.graph.getNode(u.from)?.kind??"",u.kind,"out")}\u201D.`:`Nothing can be done with ${x.length===1?K(W(r.schema.tryDefinition(x[0]),x[0])):"this mix of kinds"} yet \u2014 nothing this app declares acts on ${x.length===1?"it":"them"}.`}):(0,t.jsxs)("ol",{"data-testid":"affordances",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[L.map((e,i)=>(0,t.jsxs)(o.Fragment,{children:[e.heading?(0,t.jsxs)("li",{"data-graview-heading":e.tone,style:{fontSize:"0.75rem",lineHeight:1.4,color:e.tone==="violation"?"var(--graview-warn)":"var(--graview-ink-faint)",...e.tone!=="violation"?{letterSpacing:"0.12em",textTransform:"uppercase",fontSize:"0.75rem"}:{},padding:"2px 2px 1px",marginTop:i>0?6:0},children:[e.tone==="violation"?"\u26A0 ":"",e.tone==="violation"?fe(e.heading):e.heading]}):i>0?(0,t.jsx)("li",{"aria-hidden":"true",style:{borderTop:"1px solid var(--graview-edge)",margin:"6px 0 3px"}}):null,e.items.map(n=>(0,t.jsxs)("li",{style:{display:"flex",gap:2,alignItems:"stretch"},children:[(0,t.jsxs)("button",{type:"button","data-affordance":n.id,"data-rank":n.rank,"data-graview-destructive":n.destructive||void 0,"aria-pressed":C===n.id,title:n.why,style:{padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:C===n.id?"var(--graview-accent)":l?"transparent":"var(--graview-edge)",background:l?"none":"var(--graview-panel)",boxShadow:"none",...n.destructive?{color:"var(--graview-warn)"}:{},...C===n.id?{color:"var(--graview-accent)"}:{}},onClick:()=>{if(n.open.length>0){z(C===n.id?null:n.id);return}j(n)},children:[n.label,n.open.length>0?(0,t.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:" \u2026"}):null,w?.length===1&&w[0]?.id===n.id&&!n.destructive?(0,t.jsx)("span",{"aria-hidden":"true",title:"Enter runs it",style:{float:"right",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"\u21B5"}):null]}),(0,t.jsx)("button",{type:"button","data-testid":"pin-toggle","data-pin-for":n.mutation,"aria-pressed":n.pinned!==void 0,"aria-label":n.pinned!==void 0?`Unpin ${n.label}`:`Pin ${n.label}`,title:n.pinned==="declared"?"Pinned by the app \u2014 unpin it for yourself":n.pinned==="user"?"Unpin":"Pin to the top",onClick:()=>Ue(We(D,n.mutation,Ye.has(n.mutation))),style:{flex:"0 0 auto",width:24,minHeight:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.75rem",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7,color:n.pinned==="user"?"var(--graview-accent)":n.pinned==="declared"?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:n.pinned!==void 0?"\u2605":"\u2606"})]},n.id))]},`${e.heading??"plain"}-${i}`)),me>0?(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>ne(!0),title:`Show all ${c.length} actions`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",me," more"]})}):null]}),M?(0,t.jsx)("button",{type:"button","data-testid":"sign-in",onClick:()=>{p(null),M.run()},style:{padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left"},children:M.label}):null,f.length>0?(0,t.jsxs)("ul",{"data-testid":"withheld",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[f.slice(0,l||ie?f.length:3).map(e=>(0,t.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,t.jsx)("button",{type:"button",disabled:!0,"data-affordance":e.id,"data-rank":e.rank,"data-withheld":e.refusal.wouldNeed.join(",")||"nobody",style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8,borderStyle:"dashed",width:"100%",textAlign:"left",background:"none"},children:(0,t.jsx)("s",{children:e.label})}),(0,t.jsx)("span",{"data-testid":"withheld-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:e.refusal.message})]},e.id)),!l&&!ie&&f.length>3?(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button","data-testid":"withheld-more",onClick:()=>re(!0),title:`Show all ${f.length} actions this seat may not take`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",f.length-3," more withheld"]})}):null]}):null,l?ee.end.map(e=>(0,t.jsx)(Ne,{section:e,close:()=>p(null)},e.id)):null,V?(0,t.jsx)(Pe,{affordance:V,onApply:e=>{if(j(V,e))z(null);else return B.current},onCancel:()=>z(null)}):null]})}var rt=[];function Ne({section:d,close:r}){return(0,t.jsxs)("div",{"data-menu-section":d.id,...d.heading?{role:"group","aria-label":d.heading}:{},style:{display:"grid",gap:2,borderTop:"1px solid var(--graview-edge)",paddingTop:5},children:[d.heading?(0,t.jsx)("p",{"aria-hidden":"true",style:{margin:0,padding:"2px 2px 1px",fontSize:"0.75rem",lineHeight:1.4,letterSpacing:"0.12em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:d.heading}):null,d.items&&d.items.length>0?(0,t.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:2},children:d.items.map(a=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button","data-menu-item":a.id,onClick:()=>{r(),a.run()},style:{padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:"transparent",background:"none",boxShadow:"none"},children:[a.label,a.hint?(0,t.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",a.hint]}):null]})},a.id))}):null,d.render?.(r)]})}export{ft as InspectorPane,mt as prepareActs};
@@ -1 +0,0 @@
1
- import"./chunk.WVUJXDXZ.js";import{a as k,b as q,c as he}from"./chunk.YFW5BF6J.js";import"./chunk.QYWBQ5NX.js";import"./chunk.ENJKCSNX.js";import"./chunk.LJE5J3JK.js";import"./chunk.X2OLXTRL.js";import"./chunk.JDRM6XXD.js";import"./chunk.GZHZLJBF.js";import{n as pe}from"./chunk.GXPBRYSR.js";import"./chunk.NV6IZJKA.js";import"./chunk.OJGHDWI6.js";import"./chunk.7OLVQ2FZ.js";import"./chunk.NOZEHLWG.js";import"./chunk.UVLPVHID.js";import"./chunk.QXARGANF.js";import{$ as ge,F as He,L as S,N as de,Q as ue,Y as ce}from"./chunk.DNNL7F3P.js";import{ia as re,la as w,na as oe,oa as E,pa as x,pc as se,qa as le,ra as Y}from"./chunk.HBBVVALN.js";import{b as U}from"./chunk.AJZBJBMO.js";var h=U(He(),1);async function me(e,n){let i=await createImageBitmap(e);try{let r=Math.min(1,n/Math.max(i.width,i.height)),a=document.createElement("canvas");a.width=Math.max(1,Math.round(i.width*r)),a.height=Math.max(1,Math.round(i.height*r));let l=a.getContext("2d");if(l===null)throw new Error("This browser will not give us a canvas to resize with.");return l.drawImage(i,0,0,a.width,a.height),a}finally{i.close()}}var t=U(ue(),1),Le=2048,Ve=.85;function _(e){return e<1e3?`${e} bytes`:e<1e6?`${Math.round(e/1e3)} KB`:`${(e/1e6).toFixed(e<1e7?1:0)} MB`}function z(e){if(e.type==="application/pdf")return"PDF";let n=/\.([a-z0-9]{2,5})$/i.exec(e.name??"")?.[1];return n?n.toUpperCase():(e.type.split("/")[1]??e.type).replace(/^x-|^vnd\./,"").split(/[.+-]/)[0].toUpperCase()}function we(e){let n=[...new Set(e.map(i=>i==="image/*"?"pictures":i==="video/*"?"videos":i==="*/*"||i==="*"?"any file":`${z({type:i})} files`))];return n.length<=1?n[0]??"no files":`${n.slice(0,-1).join(", ")} and ${n[n.length-1]}`}function ke(e,n){if(e.length===0)return!0;let i=`${n.split("/")[0]}/*`;return e.some(r=>r==="*"||r==="*/*"||r===n||r===i)}var ye=/^image\/hei[cf]$|\.hei[cf]$/i,fe=e=>ye.test(e.type)||ye.test(e.name),Ie={mov:"video/quicktime",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg"},De=e=>Ie[/\.([a-z0-9]{2,4})$/i.exec(e)?.[1]?.toLowerCase()??""];async function Be(e,n,i){let r=e.name||(i.camera?"photo.jpg":"file"),a=e.type||(fe({type:"",name:r})?"image/heic":De(r)??"application/octet-stream"),l=fe({type:a,name:r}),u=a.startsWith("image/")||l;if(i.image&&!u)return{refused:`\u201C${r}\u201D isn\u2019t a picture.`};if(i.video)return a.startsWith("video/")?K({blob:e,name:r,type:a},n):{refused:`\u201C${r}\u201D isn\u2019t a video.`};if(l||u&&/^image\/(jpeg|webp)$/.test(a)&&(i.camera||e.size>n.maxBytes||e.size>15e5))try{let c=await me(e,Le),b=await new Promise(p=>c.toBlob(p,"image/jpeg",Ve));if(b)return K({blob:b,name:l?r.replace(/\.hei[cf]$/i,"")+".jpg":r,type:"image/jpeg",width:c.width,height:c.height},n)}catch{if(l&&!ke(n.kinds,a))return{refused:`\u201C${r}\u201D is a HEIC photo, which this browser can\u2019t turn into a JPEG and this host doesn\u2019t take. Save it as a JPEG and try again.`}}let y={};if(u&&!l)try{let c=await createImageBitmap(e);y={width:c.width,height:c.height},c.close()}catch{}return K({blob:e,name:r,type:a,...y},n)}function K(e,n){return ke(n.kinds,e.type)?e.blob.size>n.maxBytes?{refused:`\u201C${e.name}\u201D is ${_(e.blob.size)}; this host takes files up to ${_(n.maxBytes)}.`}:e:{refused:`\u201C${e.name}\u201D is a ${z(e)} file; this host takes ${we(n.kinds)}.`}}async function je(e,n,i,r=!1){let a;try{a=await n.upload(e.blob,e.name)}catch(u){let s=u instanceof Error&&u.message.trim()?u.message.trim():"the host refused it";return{refused:`\u201C${e.name}\u201D wasn\u2019t kept: ${s}`}}return oe(a)?i&&!E(a)?{refused:`\u201C${e.name}\u201D isn\u2019t a picture.`}:r&&!x(a)?{refused:`The host kept \u201C${e.name}\u201D as ${z(a)}, not as a video.`}:{...a,...a.width===void 0&&e.width?{width:e.width}:{},...a.height===void 0&&e.height?{height:e.height}:{}}:{refused:`The host\u2019s answer for \u201C${e.name}\u201D isn\u2019t a file a record can keep.`}}var F="var(--graview-radius, 8px)",P={color:"var(--graview-ink-muted)",fontSize:"0.8125rem"};function Z(e){let n=S(),i=de()?.past!=null,[r,a]=(0,h.useState)(!1),l=n?.kept?_e(n,e.href):!0,[,u]=(0,h.useState)(0);return(0,h.useEffect)(()=>{if(typeof l!="object")return;let s=!0;return l.then(()=>s&&u(y=>y+1)),()=>void(s=!1)},[l]),[l===!1||i&&r,()=>a(!0)]}var J=new WeakMap;function _e(e,n){let i=J.get(e)?.get(n);if(i!==void 0)return i;let r;try{r=e.kept(n)}catch{return!0}if(typeof r=="boolean")return r;let a=J.get(e)??new Map;J.set(e,a);let l=Promise.resolve(r).then(u=>u!==!1,()=>!0);return a.set(n,l),l.then(u=>a.set(n,u)),l}function ee({file:e,style:n}){return(0,t.jsx)("span",{role:"img","aria-label":`${k(e)}, removed later`,"data-graview-removed-later":e.href,style:{display:"grid",placeItems:"center",textAlign:"center",padding:4,boxSizing:"border-box",fontSize:"0.6875rem",lineHeight:1.2,color:"var(--graview-ink-muted)",border:"1px dashed var(--graview-edge-bright)",borderRadius:F,...n},children:"removed later"})}function Q({file:e,size:n=56,style:i}){let r=S(),[a,l]=Z(e);return a?(0,t.jsx)(ee,{file:e,style:{width:n,height:n,flex:"none",...i}}):x(e)?(0,t.jsx)(Oe,{file:e,size:n,...i?{style:i}:{},onError:l}):(0,t.jsx)("img",{onError:l,src:w(r,e.href),alt:k(e),width:n,height:n,loading:"lazy",decoding:"async","data-graview-thumb":e.href,style:{width:n,height:n,objectFit:"cover",borderRadius:F,display:"block",flex:"none",background:"var(--graview-edge)",...i}})}function Fe(e){let[n,i]=(0,h.useState)({}),r=e.duration??n.duration;return[{...r!==void 0?{duration:r}:{},width:e.width??n.width,height:e.height??n.height},u=>{let s=u.currentTarget;i({...Number.isFinite(s.duration)&&s.duration>0?{duration:s.duration}:{},...s.videoWidth>0&&s.videoHeight>0?{width:s.videoWidth,height:s.videoHeight}:{}})}]}var ze=320,$e=(e,n)=>`${k(e)}, ${le({...n!==void 0?{duration:n}:{}})}`,Ne=(0,t.jsx)("span",{"data-graview-play-glyph":"","aria-hidden":"true",style:{position:"absolute",inset:0,display:"grid",placeItems:"center",pointerEvents:"none"},children:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",width:"40%",height:"40%",style:{maxWidth:40,maxHeight:40,filter:"drop-shadow(0 1px 2px rgb(0 0 0 / 0.5))"},children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"11",fill:"rgb(0 0 0 / 0.55)"}),(0,t.jsx)("path",{d:"M9.5 7.5v9l7-4.5z",fill:"#fff"})]})});function Oe({file:e,size:n,style:i,onError:r}){let a=S(),[l,u]=Fe(e),s={width:n,height:n,objectFit:"cover",display:"block",borderRadius:F,background:"var(--graview-edge)"};return(0,t.jsxs)("span",{role:"img","aria-label":$e(e,l.duration),"data-graview-thumb":e.href,"data-graview-video-thumb":"",style:{position:"relative",display:"block",width:n,height:n,flex:"none",...i},children:[e.poster?(0,t.jsx)("img",{src:w(a,e.poster),alt:"",width:n,height:n,loading:"lazy",decoding:"async",onError:r,style:s}):(0,t.jsx)("video",{src:w(a,e.href),preload:"metadata",muted:!0,playsInline:!0,"aria-hidden":"true",tabIndex:-1,width:n,height:n,onLoadedMetadata:u,onError:r,style:s}),Ne,l.duration!==void 0?(0,t.jsx)("span",{"data-graview-video-clock":"","aria-hidden":"true",style:{position:"absolute",right:3,bottom:3,padding:"0 4px",borderRadius:4,background:"rgb(0 0 0 / 0.65)",color:"#fff",fontSize:"0.6875rem",lineHeight:"16px",fontVariantNumeric:"tabular-nums"},children:q(l.duration)}):null]})}function Ae({file:e}){let n=S(),[i,r]=Z(e),[a,l]=Fe(e);if(i)return(0,t.jsx)(ee,{file:e,style:{width:"100%",aspectRatio:"16 / 9"}});let u=a.width!==void 0&&a.height!==void 0;return(0,t.jsxs)("figure",{"data-graview-video-figure":e.href,style:{margin:0,display:"grid",gap:4,minWidth:0},children:[(0,t.jsx)("video",{"data-graview-video":e.href,src:w(n,e.href),...e.poster?{poster:w(n,e.poster)}:{},controls:!0,preload:"metadata",playsInline:!0,...u?{width:a.width,height:a.height}:{},"aria-label":$e(e,a.duration),onLoadedMetadata:l,onError:r,style:{display:"block",width:"100%",maxWidth:u?Math.max(a.width,ze):"100%",height:"auto",maxHeight:"80vh",aspectRatio:u?`${a.width} / ${a.height}`:"16 / 9",borderRadius:F,background:"#000"},children:e.captions?(0,t.jsx)("track",{kind:"captions",src:w(n,e.captions),srcLang:"en",label:"Captions",default:!0}):null}),(0,t.jsx)("figcaption",{"data-graview-video-said":"",style:P,children:[e.caption??e.name,...a.duration!==void 0?[q(a.duration)]:[]].join(" \xB7 ")})]})}function Ge({file:e,onOpen:n}){let i=S(),[r,a]=Z(e);return r?(0,t.jsx)(ee,{file:e,style:{width:"100%",aspectRatio:"1"}}):(0,t.jsx)("button",{type:"button","aria-label":`Open ${k(e)} full size`,onClick:l=>n(l.currentTarget),style:{padding:0,border:0,background:"none",cursor:"zoom-in",display:"block",width:"100%",borderRadius:F},children:(0,t.jsx)("img",{src:w(i,e.href),alt:k(e),loading:"lazy",decoding:"async",onError:a,style:{width:"100%",aspectRatio:"1",objectFit:"cover",borderRadius:F,display:"block",background:"var(--graview-edge)"}})})}function X({files:e,label:n}){let i=S(),r=d=>w(i,d.href),a=e.filter(E),l=e.filter(x),u=e.filter(d=>!E(d)&&!x(d)),[s,y]=(0,h.useState)(null),c=(0,h.useRef)(null),b=(0,h.useRef)(null);(0,h.useEffect)(()=>{let d=c.current;s!==null&&d&&!d.open&&d.showModal?.()},[s]);let p=s===null?void 0:a[s];return(0,t.jsxs)("div",{style:{display:"grid",gap:10,minWidth:0},children:[a.length>0?(0,t.jsx)("ul",{"data-graview-gallery":"","aria-label":n,style:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(96px, 1fr))",gap:8},children:a.map((d,T)=>(0,t.jsx)("li",{style:{minWidth:0},children:(0,t.jsx)(Ge,{file:d,onOpen:R=>{b.current=R,y(T)}})},d.href))}):null,l.length>0?(0,t.jsx)("ul",{"data-graview-videos":"","aria-label":n,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:12},children:l.map(d=>(0,t.jsx)("li",{style:{minWidth:0},children:(0,t.jsx)(Ae,{file:d})},d.href))}):null,u.length>0?(0,t.jsx)("ul",{"data-graview-documents":"",style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:10},children:u.map(d=>(0,t.jsxs)("li",{"data-graview-document":d.type,style:{display:"grid",gap:6,minWidth:0},children:[d.type==="application/pdf"?(0,t.jsx)("object",{data:r(d),type:"application/pdf","aria-label":k(d),style:{width:"100%",height:420,border:"1px solid var(--graview-edge)",borderRadius:F},children:(0,t.jsxs)("p",{style:{margin:0,padding:12},children:["This browser shows no PDF here: ",(0,t.jsxs)("a",{href:r(d),download:d.name,children:["download ",d.name]}),"."]})}):null,(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",gap:"2px 10px",alignItems:"baseline",minWidth:0,overflowWrap:"anywhere"},children:[(0,t.jsx)("a",{href:r(d),download:d.name,...d.type==="application/pdf"?{target:"_blank",rel:"noopener"}:{},children:d.name}),(0,t.jsxs)("span",{style:P,children:[z(d)," \xB7 ",_(d.bytes)]})]}),d.caption?(0,t.jsx)("span",{style:P,children:d.caption}):null]},d.href))}):null,p?(0,t.jsx)("dialog",{ref:c,"data-graview-full":p.href,"aria-label":k(p),onClose:()=>{y(null),b.current?.focus()},onClick:d=>{d.target===d.currentTarget&&d.currentTarget.close()},style:{padding:0,border:0,borderRadius:F,maxWidth:"min(96vw, 1600px)",maxHeight:"94vh",background:"var(--graview-panel)",color:"var(--graview-ink)"},children:(0,t.jsxs)("figure",{style:{margin:0,display:"grid",gap:8,padding:10},children:[(0,t.jsx)("img",{src:r(p),alt:k(p),style:{maxWidth:"100%",maxHeight:"80vh",objectFit:"contain",display:"block",margin:"0 auto"}}),(0,t.jsxs)("figcaption",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:p.caption??p.name}),(0,t.jsx)("form",{method:"dialog",style:{margin:0},children:(0,t.jsx)("button",{type:"submit",autoFocus:!0,children:"Close"})})]})]})}):null]})}function xe({value:e,onChange:n,several:i,image:r,video:a=!1,label:l,thumbs:u=!0}){let s=S(),y=(0,h.useId)(),c=(0,h.useRef)(null),b=(0,h.useRef)(null),[p,d]=(0,h.useState)(null),[T,R]=(0,h.useState)(null),[te,H]=(0,h.useState)([]),[N,O]=(0,h.useState)(!1),W=r?"image/":a?"video/":void 0,C=s?W?s.kinds.filter(o=>o.startsWith(W)||o==="*"||o==="*/*"):s.kinds:[],Ce=s?s.kinds.length===0||C.length>0:!1,Pe=!a&&(s?s.kinds.length===0||(r?C:s.kinds).some(o=>o.startsWith("image/")||o.startsWith("*")):!1),L=!!s&&(!W||Ce),V=r?"picture":a?"video":"file",ne=i?`${V}s`:`a ${V}`,ae=W?C.length>0?C.join(","):`${W}*`:s?.kinds.join(",")||void 0,Re=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,A=(0,h.useRef)(e);A.current=e;let ie=(0,h.useRef)(null),I=(0,h.useRef)(null);(0,h.useEffect)(()=>{let o=I.current;if(!o||o.from===e)return;I.current=null;let g=ie.current?.children,f=g?.[Math.min(o.at,g.length-1)];((o.what==="move"?f?.querySelector("[data-graview-file-move]"):null)??f?.querySelector("[data-graview-file-remove]")??c.current?.parentElement?.querySelector("[data-graview-file-choose]"))?.focus()});let D=async(o,g)=>{if(!s||o.length===0)return;let f=i?o:o.slice(0,1),m=[],$=[];f.length<o.length&&$.push(`${l} holds one ${V}, so ${o.slice(1).map(v=>`\u201C${v.name||"the photo"}\u201D`).join(", ")} ${o.length>2?"were":"was"} left out.`),H([]),R(null);for(let v of f){d(`Sending ${v.name||"the photo"}\u2026`);let G=await Be(v,s,{image:r,video:a,camera:g==="camera"});if("refused"in G){$.push(G.refused);continue}let M=await je(G,s,r,a);"refused"in M?$.push(M.refused):[...i?A.current:[],...m].some(Te=>Te.href===M.href)?$.push(`\u201C${M.name}\u201D is already here.`):m.push(M)}if(d(null),H($),m.length!==0)try{n(i?[...A.current,...m]:m.slice(-1)),R(`Added ${m.map(v=>v.name).join(", ")}.`)}catch(v){H([...$,v instanceof Error?v.message:String(v)])}},B=(o,g,f)=>{try{I.current=f?{...f,from:e}:null,n(o),R(g)}catch(m){I.current=null,H([m instanceof Error?m.message:String(m)])}},j=o=>o?Array.from(o):[],We=o=>{let g=j(o.clipboardData?.files);!L||g.length===0||(o.preventDefault(),D(g,"pasted"))},Me=o=>{O(!1),L&&(o.preventDefault(),D(j(o.dataTransfer?.files),"dropped"))};return(0,t.jsxs)("div",{role:"group","aria-labelledby":`${y}-label`,"data-graview-file-editor":"","data-graview-dropping":N?"":void 0,onPaste:We,onDragOver:o=>{L&&(o.preventDefault(),O(!0))},onDragLeave:()=>O(!1),onDrop:Me,style:{display:"grid",gap:8,minWidth:0,padding:N?6:0,outline:N?"2px dashed var(--graview-accent)":"none",borderRadius:F},children:[(0,t.jsx)("span",{id:`${y}-label`,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"},children:l}),e.length>0&&(i||e.length>1)?(0,t.jsx)("ul",{ref:ie,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:6},children:e.map((o,g)=>(0,t.jsxs)("li",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",minWidth:0},children:[u&&(E(o)||x(o))?(0,t.jsx)(Q,{file:o,size:40}):null,(0,t.jsx)("span",{style:{flex:"1 1 8rem",minWidth:0,overflowWrap:"anywhere"},children:o.name}),(0,t.jsx)(ve,{file:o,onCaption:f=>B(e.map((m,$)=>$===g?be(m,f):m),f?`${o.name} now says \u201C${f}\u201D.`:`${o.name} says its name again.`)}),i&&g>0?(0,t.jsx)("button",{type:"button","data-graview-file-move":"","aria-label":`Move ${o.name} earlier`,onClick:()=>B(e.map((f,m)=>m===g-1?o:m===g?e[g-1]:f),`Moved ${o.name} earlier.`,{at:g-1,what:"move"}),children:"\u2191"}):null,i?(0,t.jsx)("button",{type:"button","data-graview-file-remove":"","aria-label":`Remove ${o.name}`,onClick:()=>B(e.filter((f,m)=>m!==g),`Removed ${o.name}.`,{at:g,what:"remove"}),children:"Remove"}):null]},`${g}:${o.href}`))}):e.length===1?(0,t.jsx)(ve,{file:e[0],onCaption:o=>B([be(e[0],o)],o?`${e[0].name} now says \u201C${o}\u201D.`:`${e[0].name} says its name again.`)}):null,L?(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center"},children:[(0,t.jsx)("input",{ref:c,type:"file",hidden:!0,multiple:i,...ae?{accept:ae}:{},"data-graview-file-input":"","aria-label":`Choose ${ne}`,onChange:o=>{let g=j(o.currentTarget.files);o.currentTarget.value="",D(g,"picked")}}),(0,t.jsx)("button",{type:"button",disabled:p!==null,onClick:()=>c.current?.click(),"data-graview-file-choose":"",children:e.length>0&&!i?`Replace the ${V}`:`Choose ${ne}`}),Pe?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("input",{ref:b,type:"file",hidden:!0,accept:"image/*",capture:"environment","data-graview-photo-input":"","aria-label":"Take a photo",onChange:o=>{let g=j(o.currentTarget.files);o.currentTarget.value="",D(g,"camera")}}),Re?(0,t.jsx)("button",{type:"button",disabled:p!==null,onClick:()=>b.current?.click(),children:"Take a photo"}):null]}):null,(0,t.jsxs)("span",{style:P,"data-graview-file-takes":"",children:["or drop or paste ",i?"them":"it"," here \xB7 ",s.kinds.length>0?we(C.length>0?C:s.kinds):"any file",", up to ",_(s.maxBytes)]})]}):(0,t.jsx)("p",{style:{...P,margin:0},"data-graview-file-none":"",children:s?`This host doesn\u2019t take ${a?"videos":"pictures"}, so none can be added here.`:"This host doesn\u2019t take files, so none can be added here."}),(0,t.jsx)("p",{"aria-live":"polite",style:{...P,margin:0,minHeight:p||T?void 0:0},"data-graview-file-status":"",children:p??T??""}),te.length>0?(0,t.jsx)("div",{role:"alert","data-graview-file-refused":"",style:{color:"var(--graview-warn)",fontSize:"0.875rem",display:"grid",gap:2},children:te.map((o,g)=>(0,t.jsx)("p",{style:{margin:0},children:o},g))}):null]})}var be=(e,n)=>{let{caption:i,...r}=e;return n?{...r,caption:n}:r};function ve({file:e,onCaption:n}){let[i,r]=(0,h.useState)(e.caption??"");(0,h.useEffect)(()=>r(e.caption??""),[e.caption]);let a=()=>{let l=i.trim().slice(0,500);l!==(e.caption??"")&&n(l)};return(0,t.jsx)("input",{type:"text",value:i,placeholder:E(e)||x(e)?"What it shows":"What it is","aria-label":`What ${e.name} ${E(e)||x(e)?"shows":"is"}`,"data-graview-file-caption":e.href,onChange:l=>r(l.target.value),onBlur:a,onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())},style:{flex:"1 1 10rem",minWidth:0,font:"inherit",fontSize:"0.875rem",minHeight:24}})}function Se({field:e,label:n,labelStyle:i,valueStyle:r,style:a,children:l}){return(0,t.jsxs)("div",{"data-graview-files":e,style:{display:"grid",gap:6,minWidth:0,gridColumn:"1 / -1",...a},children:[(0,t.jsx)("dt",{style:i,children:n}),(0,t.jsx)("dd",{style:{margin:0,minWidth:0,display:"grid",gap:10,...r},children:l})]})}function Ee(e){let{nodeId:n,field:i,label:r,files:a}=e,{fields:l,commit:u}=pe(n),s=l.find(p=>p.field===i&&p.takesValue),y=s?.shape,c=y?.type==="several"?y.of:y,b=y?.type==="several";return a.length===0&&c?.type!=="file"?null:(0,t.jsxs)(Se,{...e,children:[(0,t.jsx)(X,{files:a,label:r}),s&&c?.type==="file"?(0,t.jsx)(xe,{value:a,thumbs:!1,several:b,image:c.image===!0,video:c.video===!0,label:r,onChange:p=>{let d=b?p:p[p.length-1];d!==void 0&&u(s,d)}}):null]})}function et(e){switch(e.as){case"field":return e.read?e.files.length>0?(0,t.jsx)(Se,{...e,children:(0,t.jsx)(X,{files:e.files,label:e.label})}):null:(0,t.jsx)(Ee,{...e});case"unfilled":return(0,t.jsx)(Ue,{...e});case"thumb":return(0,t.jsx)(Q,{...e});case"block":return e.files.length>0?(0,t.jsx)("span",{className:"graview-spec-image","data-graview-field":e.field,"data-graview-image":e.view,style:{display:"block",minWidth:0,...e.view==="gallery"?{position:"relative",zIndex:se.raised}:{}},children:e.view==="thumb"?(0,t.jsx)(Q,{file:e.files[0],size:72}):(0,t.jsx)(X,{files:e.files,label:e.label})}):null;case"control":{let n=(0,t.jsx)(xe,{value:Y(e.value),several:e.several,image:e.image,video:e.video===!0,label:e.label,onChange:i=>e.onChange(e.several?i:i[i.length-1])});return e.title===void 0?n:(0,t.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.several?"files":"file",children:[(0,t.jsx)("legend",{"data-graview-part":"label",children:e.title}),n]})}}}function Ue({nodeId:e,skip:n,labels:i,labelStyle:r,style:a}){let{store:l}=ce(),u=ge(e),s=u?l.schema.tryDefinition(u.kind):void 0,y=he(s).filter(c=>!n.includes(c)&&!(s?.display?.hide??[]).includes(c)&&Y(u?.[c]).length===0);return y.length===0?null:(0,t.jsx)("dl",{style:{margin:0,display:"grid",gap:14,minWidth:0},children:y.map(c=>(0,t.jsx)(Ee,{nodeId:e,field:c,label:i?.[c]??re(s,c),files:[],...r?{labelStyle:r}:{},...a?{style:a}:{}},c))})}export{xe as FilesEditor,Le as SEND_EDGE,et as drawFiles,we as kindsWords,Be as prepare,je as send,_ as sizeWords,ke as takes,z as typeWords};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk.74DXEKUV.js";import"./chunk.Y44TR4WG.js";import"./chunk.QXARGANF.js";import"./chunk.DNNL7F3P.js";import"./chunk.HBBVVALN.js";import"./chunk.AJZBJBMO.js";export{a as ActivityFilter,b as InteractionRow};
@@ -1 +0,0 @@
1
- import{d as ae}from"./chunk.7OLVQ2FZ.js";import{b as Ce,d as $e}from"./chunk.NOZEHLWG.js";import{e as Te}from"./chunk.UVLPVHID.js";import{H as ke,Kc as Re,Mc as De,Oc as We,Pc as Me,Ta as Se,Tb as ie,Va as H,Z as R,_ as xe,aa as E,ba as K,ca as Ae,da as v,fa as we,fd as je,ga as Ne,sc as oe,wc as ve,xc as Oe}from"./chunk.HBBVVALN.js";function se(n,e){return n.display?.labels?.[e]??v(e)}function de(n){let e=ae(n);switch(e.type){case"text":case"date":case"number":case"boolean":case"choice":return e.type;default:return}}function Je(n,e){let t=new Map,r=n.tryDefinition(e);for(let[a,i]of Object.entries(r?.edges??{}))t.set(a,{key:a,label:i.description?R(i.description):v(a),about:"edge",far:i.to==="*"?[...n.kinds]:[...i.to]});for(let a of n.definitions)if(a.kind!==e)for(let[i,d]of Object.entries(a.edges??{}))t.has(i)||d.to!=="*"&&!d.to.includes(e)||t.set(i,{key:i,label:d.inverse?R(d.inverse):v(i),about:"edge",far:[a.kind]});return[...t.values()]}var Ze=["current","past","any","flagged","clear"];function Fe(n,e){let t=n?.lifecycle;if(!t||t.retired==="date")return!1;let r=t.retired.map(String);return e.some(a=>a.key===t.field&&r.includes(a.value))}function Be(n,e){let t=n.tryDefinition(e);if(!t)return{kind:e,sorts:[],filters:[],groups:[]};let r=new Set(t.display?.hide??[]),a=t.fields.shape??{},i=[{key:"label",label:"Name",about:"label",type:"text"}],d=[],f=[];for(let[u,p]of Object.entries(a)){if(u==="id"||u==="kind"||u==="label"||r.has(u))continue;let A=de(p);if(!A)continue;let O=se(t,u),w=A==="choice"?Le(p):A==="boolean"?["true","false"]:void 0,N={key:u,label:O,about:"field",type:A,...w?{options:w}:{}};i.push(N),d.push(N),(A==="boolean"||A==="choice")&&f.push(N),A==="date"&&f.push({...N,buckets:["day","week","month","year","decade"]})}for(let u of Je(n,e))i.push(u),d.push(u),f.push(u);let l={key:"is",label:t.lifecycle?"Standing and currency":"Standing",about:"is",type:"choice",options:t.lifecycle?[...Ze]:["flagged","clear"]};d.push(l);let y=t.fieldRoles?.order,g=y&&(y in a||y==="label")?{by:y,direction:"asc"}:void 0;return{kind:e,sorts:i,filters:d,groups:f,...g?{natural:g}:{}}}function vn(n,e){let t=[];for(let a of e.filters){let i=a.about==="edge"&&a.far?.length===1?n.tryDefinition(a.far[0]):void 0;if(!(!i||i.kind===e.kind))for(let[d,f]of Object.entries(i.fields.shape??{}))de(f)!=="choice"||i.display?.hide?.includes(d)||t.push({key:`${a.key}.${d}`,label:`${a.label} \xB7 ${se(i,d)}`,about:"via",type:"choice",options:Le(f),far:[i.kind]})}if(t.length===0)return e;let r=e.filters.filter(a=>a.about!=="is");return{...e,filters:[...r,...t,...e.filters.filter(a=>a.about==="is")]}}function On(n,e){let t=n.tryDefinition(e.kind),r=Object.entries(t?.computed??{});if(!t||r.length===0)return e;let a=r.filter(([i])=>!e.sorts.some(d=>d.key===i)).map(([i,d])=>({key:i,label:(typeof d=="object"?d.label:void 0)??se(t,i),about:"field",type:"number"}));return{...e,sorts:[...e.sorts,...a]}}function Le(n){let e=ae(n);return e.type==="choice"?e.options:[]}var Ie=n=>n,Pe=n=>n;function en(n,e,t){let r=new Map;for(let a of[...n.out(e,t),...n.in(e,t)])r.set(a.id,a);return[...r.values()]}function le(n,e,t){let r=n.schema.tryDefinition(e.kind);if(t.key==="is")switch(t.value){case"current":return E(r,Pe(e),n.today);case"past":return!E(r,Pe(e),n.today);case"any":return!0;case"flagged":return n.flagged?.has(e.id)??!1;case"clear":return!(n.flagged?.has(e.id)??!1);default:return!0}let a=r?.fields.shape??{};if(t.key in a){let l=Se(Ie(e),t.key,n.today??ke()),y=de(a[t.key]);if(y==="date"){let[g,u]=t.value.split(":");if(typeof l!="string"||!u)return!1;let p=l.slice(0,10);return g==="before"?p<u:g==="after"?p>u:p===u}if(y==="boolean")return String(l)===t.value;if(y==="number"){let g=t.value.lastIndexOf(":"),u=g>0?t.value.slice(0,g):"",p=Number(t.value.slice(g+1));if(u==="at-most"||u==="at-least")return typeof l!="number"||!Number.isFinite(p)?!1:u==="at-most"?l<=p:l>=p}return String(l)===t.value}let[i,d]=t.key.split("."),f=en(n.graph,e.id,i);return d?f.some(l=>String(Ie(l)[d])===t.value):t.value==="*"?f.length>0:t.value==="none"?f.length===0:f.some(l=>l.id===t.value)}var nn=5;function ze(n){return n.normalize("NFD").replace(/\p{M}+/gu,"").toLowerCase().replace(/[^\p{L}\p{N}]+/gu," ").trim()}function ce(n){return ze(n).replace(/ /g,"")}var z=new Map,tn=5e4;function _(n){let e=z.get(n);if(e===void 0){z.size>=tn&&z.clear();let t=ze(n);e={tokens:t.split(" ").filter(Boolean),whole:t.replace(/ /g,"")},z.set(n,e)}return e}var D=n=>[..._(n).tokens];function j(n,e){if(e.length===0)return;let{whole:t,tokens:r}=_(n),a=e.join("");if(t.length===0)return;if(t===a)return"exact";if(e.every(d=>r.some(f=>f.startsWith(d))))return t.startsWith(a)?"prefix":e.every(d=>r.includes(d))?"word":"part"}function Q(n,e,t=48){let r=n.replace(/\s+/g," ").trim();if(r.length<=t)return r;let a=e[0],i=r.normalize("NFD").replace(/\p{M}/gu,"").toLowerCase(),d=a?i.search(new RegExp(`(^|[^\\p{L}\\p{N}])${rn(a)}`,"u")):-1,f=d<0?0:d+(i[d]&&/[\p{L}\p{N}]/u.test(i[d])?0:1),l=Math.max(0,f-Math.floor(t/3));if(l>0){let g=r.lastIndexOf(" ",l);l=g<0?0:g+1}let y=Math.min(r.length,l+t);if(y<r.length){let g=r.indexOf(" ",y);y=g<0||g-y>16?y:g}return`${l>0?"\u2026":""}${r.slice(l,y).trim()}${y<r.length?"\u2026":""}`}var rn=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),on=/^([\p{L}][\p{L}\p{N}_-]*):(\S+)$/u;function an(n){let e=[],t=[];for(let r of n.trim().split(/\s+/).filter(Boolean)){let a=on.exec(r);a?t.push({key:a[1],value:a[2]}):e.push(r)}return{words:e.join(" "),conditions:t}}var Ee=new WeakMap;function q(n,e){let t=Ee.get(e);if(t&&t.definition===n)return t.texts;let r=sn(n,e);return Ee.set(e,{definition:n,texts:r}),r}function sn(n,e){let t=K(n,e),r=[{field:"label",reading:"Name",text:t}];for(let a of $e(e,n,{limit:Number.POSITIVE_INFINITY}))a.key==="label"||a.value===t||typeof e[a.key]!="boolean"&&r.push({field:a.key,reading:a.label,text:a.markdown?Te(a.value):a.value});return r}var T={exact:0,prefix:1,word:2,part:3,field:4,near:5},Ge=new Set(["a","an","the","of","and","or","for","to","in","on","at","by","with","my","our","is"]);function Ke(n){let e=n;e.length>4&&e.endsWith("ies")?e=`${e.slice(0,-3)}y`:e.length>4&&/(ss|x|ch|sh|z)es$/.test(e)?e=e.slice(0,-2):e.length>3&&e.endsWith("s")&&!/(ss|us|is)$/.test(e)&&(e=e.slice(0,-1));for(let t of["ing","ed"])if(e.length>t.length+2&&e.endsWith(t)){e=e.slice(0,-t.length),/([b-df-hj-km-np-rtv-z])\1$/.test(e)&&(e=e.slice(0,-1));break}return e.length>3&&e.endsWith("e")?e.slice(0,-1):e}function He(n,e,t){if(Math.abs(n.length-e.length)>t)return t+1;let r=[],a=Array.from({length:e.length+1},(i,d)=>d);for(let i=1;i<=n.length;i++){let d=[i],f=i;for(let l=1;l<=e.length;l++){let y=Math.min(a[l]+1,d[l-1]+1,a[l-1]+(n[i-1]===e[l-1]?0:1));i>1&&l>1&&n[i-1]===e[l-2]&&n[i-2]===e[l-1]&&(y=Math.min(y,r[l-2]+1)),d[l]=y,y<f&&(f=y)}if(f>t)return t+1;r=a,a=d}return a[e.length]}var G=new Map;function dn(n,e){let t=G.get(n);t||(G.size>=64&&G.clear(),G.set(n,t=new Map));let r=t.get(e);return r===void 0&&(r=ln(n,e)??null,t.set(e,r)),r??void 0}function ln(n,e){if(/\d/.test(n))return;let t=Ke(n);if(t.length>=3&&(Ke(e)===t||t.length>=4&&e.startsWith(t)))return"stem";let r=n.length<4?0:n.length<=7?1:2;if(r!==0){if(He(n,e,r)<=r)return"spelling";if(n.length>=5){for(let a=n.length-r;a<=n.length+r;a++)if(a<e.length&&He(n,e.slice(0,a),r)<=r)return"spelling"}}}function cn(n,e){let t=e.length>1?e.filter(a=>!Ge.has(a)):e;if(t.length===0)return;let r;for(let a of t){let i;for(let d of n){for(let f of _(d.text).tokens){if(f.startsWith(a)){i={text:d,matched:f};break}let l=i?void 0:dn(a,f);l&&(i={text:d,matched:f,by:l})}if(i&&!i.by)break}if(!i)return;i.by&&!r&&(r={text:i.text,asked:a,matched:i.matched,by:i.by})}if(r)return{field:r.text.field,reading:r.text.reading,fragment:Q(r.text.text,[r.matched]),strength:"near",asked:r.asked,matched:r.matched,by:r.by}}var fn=80;function gn(n,e,t){let r=D(e).filter(d=>!Ge.has(d)).join(" ")||e,a=t===void 0?[]:D(t),i=a.length>0&&n.find(d=>a.every(f=>_(d.text).tokens.some(l=>l.startsWith(f))))||n[0];return{field:i.field,reading:i.reading,fragment:Q(i.text,a),strength:"near",asked:r,matched:(t??i.text).slice(0,fn),by:"meaning"}}function _e(n,e,t){let r=D(t);if(r.length===0)return;let a=q(n,e),[i,...d]=a,f=j(i.text,r);if(f)return{field:"label",reading:i.reading,fragment:Q(i.text,r),strength:f};let l=p=>A=>_(A.text).tokens.some(O=>O.startsWith(p));if(!r.every(p=>a.some(l(p))))return;let y=D(i.text),g=r.find(p=>!y.some(A=>A.startsWith(p)))??r[0],u=d.find(l(g));return{field:u.field,reading:u.reading,fragment:Q(u.text,[g]),strength:"field"}}var un=512,yn=64;function hn(n){let e=new Map;if(n.length===0)return e;let t=n.slice(-un),r=n[n.length-1].seq;for(let a of t){let i=Math.pow(.5,(r-a.seq)/yn);for(let d of a.writes)e.set(d,(e.get(d)??0)+i)}return e}var ge=(n,e)=>we({tryDefinition:()=>n},e),fe=(n,e)=>De({tryDefinition:()=>n},e);function pn(n,e,t){let r=n.tryDefinition(e),a=[{field:"plural",text:ge(r,e)},{field:"kind",text:v(e)},...r?.noun?[{field:"noun",text:r.noun}]:[]],i;for(let d of a){let f=j(d.text,t);f&&(!i||T[f]<T[i.strength])&&(i={strength:f,...d})}return i}var mn,bn=(n,e)=>(mn??=new Intl.Collator(void 0,{sensitivity:"base",numeric:!0})).compare(n,e),qe=(n,e)=>(n.nearly??0)-(e.nearly??0)||(n.archived??0)-(e.archived??0)||n.tier-e.tier||n.inKind-e.inKind||n.near-e.near||n.past-e.past||n.touched-e.touched||n.flagged-e.flagged||bn(n.name,e.name)||(n.id<e.id?-1:n.id>e.id?1:0);function Ln(n,e,t={}){let r=n.schema,a=an(e),i=D(a.words),d=t.principal??{kind:"human"},f=n.kindsKeptFrom(d),l=n.modules.disabledKinds,y=a.conditions.filter(o=>o.key==="kind").map(o=>o.value),g=a.conditions.filter(o=>o.key==="is").map(o=>o.value),u=g.includes("any")||g.includes("past"),p=g.includes("past")&&!g.includes("any")&&!g.includes("current"),A=g.includes("archived")?!0:t.archived??"all",O=(o,s)=>{let c=ce(s),h=r.tryDefinition(o);return ce(o)===c||ce(ge(h,o))===c},w=r.kinds.filter(o=>!f.has(o)&&!l.has(o)&&(t.kinds===void 0||t.kinds.includes(o))&&(y.length===0||y.some(s=>O(o,s)))),W=a.conditions.filter(o=>o.key!=="kind").map(o=>({...o,admittedBy:w.filter(s=>Be(r,s).filters.some(c=>c.key===o.key))})),U=W.filter(o=>o.key!=="is"),C=g.filter(o=>o==="flagged"||o==="clear"||o==="past"||o==="archived"),V={kinds:w,past:u},Qe={hits:[],words:a.words,conditions:W,searched:V,byKind:{},total:0,matched:[]};if(i.length===0&&U.length===0&&C.length===0)return Qe;let X=t.today,$=t.flagged??new Set(n.violations().flatMap(o=>o.nodeIds)),Ue=t.touched??hn(n.log.all()),Y=new Set;for(let o of t.from??[]){Y.add(o);for(let s of n.graph.neighbors(o))Y.add(s.id)}let ue=ve(n,d)?Oe(n,d):void 0,J=oe.keptFrom?.(n,d)&&n.seenBy(d).graph,Z=o=>je(o,t.basePath===void 0?{}:{basePath:t.basePath}),ye={schema:r,graph:n.graph,flagged:$,...X?{today:X}:{}},S=[],I={},P=[],F=[],B=(o,s,c,h,m,b)=>{let x=K(c,o);I[s]=(I[s]??0)+1,S.push({hit:{about:"node",id:o.id,kind:s,label:x,why:m,current:h,flagged:$.has(o.id),address:Z(`${fe(c,s)}/${encodeURIComponent(o.id)}`),...b===void 0?{}:{near:!0},...H(o)?{archived:!0}:{}},...b===void 0?{}:{nearly:2-b},tier:T[m.strength],inKind:s===t.inKind?0:1,near:Y.has(o.id)?0:1,past:h?0:1,archived:H(o)?1:0,touched:-(Ue.get(o.id)??0),flagged:$.has(o.id)?0:1,name:x,id:o.id})};for(let o of w){let s=r.tryDefinition(o),c=W.filter(m=>m.key!=="is"&&m.admittedBy.includes(o));if(i.length===0&&c.length===0&&C.length===0)continue;let h=Fe(s,c);for(let m of n.graph.nodesOfKind(o,{archived:A})){if(ue&&!ue(m.id))continue;let b=J?J.getNode(m.id):m;if(!b)continue;let x=E(s,b,X);if(!u&&!h&&!x){if(i.length>0&&g.length===0&&c.every(k=>le(ye,b,k))){let k=_e(s,b,a.words);k&&F.push({node:b,kind:o,definition:s,why:k})}continue}if(p&&x||!c.every(k=>le(ye,b,k))||g.includes("flagged")&&!$.has(b.id)||g.includes("clear")&&$.has(b.id))continue;let M=i.length>0?_e(s,b,a.words):c[0]?{field:c[0].key,reading:v(c[0].key),fragment:`${c[0].key}:${c[0].value}`,strength:"field"}:{field:"is",reading:"Is",fragment:`is:${C[0]}`,strength:"field"};M?B(b,o,s,x,M):i.length>0&&P.push({node:b,kind:o,definition:s,current:x})}}let ee=o=>o.strength!=="field",ne=!1;if(F.length>0&&S.length===0){ne=!0;for(let o of F)B(o.node,o.kind,o.definition,!1,o.why)}else if(F.some(o=>ee(o.why))&&!S.some(o=>ee(o.hit.why))){ne=!0;for(let o of F)ee(o.why)&&B(o.node,o.kind,o.definition,!1,o.why)}let he=t.near!==!1&&i.length>0&&S.length<nn&&P.length>0,te=new Set;if(he)for(let o of P){let s=cn(q(o.definition,o.node),i);s&&(te.add(o.node.id),B(o.node,o.kind,o.definition,o.current,s,s.by==="stem"?.9:.8))}let Ve=o=>o==="exact"||o==="prefix"?-1:T[o],re=(o,s,c,h)=>({hit:o,tier:Ve(s),inKind:1,near:1,past:0,touched:0,flagged:1,name:c,id:h});if(i.length>0){for(let s of w){let c=pn(r,s,i);if(!c)continue;let h=Ne(r,s),m={field:c.field,reading:c.field==="plural"?"Plural":"Kind",fragment:c.text,strength:c.strength};S.push(re({about:"kind",kind:s,label:h,why:m,count:I[s]??0,address:Z(fe(r.tryDefinition(s),s))},c.strength,h,`kind:${s}`))}let o=t.places??[];for(let s of Re(o.filter(c=>w.includes(c.kind)))){if(s.across&&f.has(s.across))continue;let c=j(s.title,i);if(!c)continue;let h={field:"title",reading:"Title",fragment:s.title,strength:c},m=Me(s,o)?fe(r.tryDefinition(s.kind),s.kind).slice(1):void 0,b=Z(We(s.as,m));S.push(re({about:"place",kind:s.kind,title:s.title,as:s.as,why:h,address:b},c,s.title,`place:${s.kind}:${s.as}`))}for(let s of n.allInvariants()){let c=s.scope==="graph"?void 0:s.scope.kind;if(c&&!w.includes(c))continue;let h=s.label??v(s.name),m=j(h,i),b=m?void 0:j(v(s.name),i),x=m??b;if(!x)continue;let M={field:m?"label":"name",reading:m?"Rule":"Name",fragment:m?h:s.name,strength:x};S.push(re({about:"rule",name:s.name,label:h,...c?{kind:c}:{},why:M},x,h,`rule:${s.name}`))}}let pe=()=>{S.sort(qe);let o=t.limit??50,s=S.slice(0,o).map(k=>k.hit),c=s.flatMap(k=>k.about==="node"?[(J||n.graph).getNode(k.id)]:[]).filter(Boolean),h=Ce(c,k=>r.tryDefinition(k)),m=s.map(k=>k.about==="node"&&h.has(k.id)?{...k,apart:h.get(k.id)}:k),b=Object.values(I).reduce((k,Ye)=>k+Ye,0),x=S.flatMap(k=>k.hit.about==="node"?[k.hit.id]:[]),M=t.subject&&w.includes(String(n.graph.getNode(t.subject)?.kind))?kn(n,t.subject,a.words,{principal:d}):[];return{hits:[...m,...M],words:a.words,conditions:W,searched:ne?{...V,past:!0}:V,byKind:{...I},total:b,matched:x}},L=pe(),me=t.rank;if(!he||!me)return L;let be=P.filter(o=>!te.has(o.node.id)).map(({node:o,kind:s,definition:c})=>({id:o.id,kind:s,label:K(c,o),texts:q(c,o)}));if(be.length===0)return L;let Xe=(async()=>{let o;try{o=await me(a.words,be)}catch{return L}let s=new Map(P.filter(h=>!te.has(h.node.id)).map(h=>[h.node.id,h])),c=!1;for(let{id:h,score:m,matched:b}of Array.isArray(o)?o:[]){let x=s.get(h);!x||!(m>0)||(s.delete(h),c=!0,B(x.node,x.kind,x.definition,x.current,gn(q(x.definition,x.node),a.words,typeof b=="string"?b:void 0),Math.min(1,m)))}return c?pe():L})();return{...L,later:Xe}}function kn(n,e,t,r={}){let a=r.principal??{kind:"human"},i=(oe.keptFrom?.(n,a)?n.seenBy(a):n).graph.getNode(e);if(!i)return[];if(n.kindsKeptFrom(a).has(i.kind))return[];let d=D(t),f=K(n.schema.tryDefinition(i.kind),i),l=[];for(let g of n.allMutations()){let u=g.subject;if(!u||u.kinds!=="*"&&!u.kinds.includes(i.kind))continue;let p=g.derived?.act;if((p==="archive"||p==="merge")&&H(i)||p==="unarchive"&&!H(i)||p==="leave-alone"&&ie(i)||p==="allow-tidying"&&!ie(i)||!n.permits({name:g.name,args:{[u.arg]:i.id}},a).ok)continue;let A=Ae(g),O=D(A),w=d.filter(U=>O.some(C=>C.startsWith(U))),N=w.length>0?j(A,w):void 0,W=N?{field:"title",reading:"Act",fragment:A,strength:N}:{field:"subject",reading:"On",fragment:f,strength:"field"};l.push({hit:{about:"act",name:g.name,title:A,subject:i.id,why:W,destructive:g.destructive===!0},tier:N?T[N]:T.field+1,inKind:0,near:0,past:g.destructive?1:0,touched:0,flagged:g.pinned?0:1,name:A,id:`act:${g.name}`})}l.sort(qe);let y=l.map(g=>g.hit);return r.limit===void 0?y:y.slice(0,r.limit)}function En(n,e){let t=e.kinds.map((i,d)=>{let f=ge(n.tryDefinition(i),i);return d===0?f:f.toLowerCase()}),r=xe(t)||"Nothing";return e.kinds.some(i=>n.tryDefinition(i)?.lifecycle)?e.past?`${R(r)}, past ones included.`:`${R(r)}, current ones; add is:any for past ones.`:`${R(r)}.`}export{se as a,de as b,Je as c,Fe as d,Be as e,vn as f,On as g,Le as h,Ie as i,Pe as j,en as k,le as l,ce as m,an as n,_e as o,hn as p,Ln as q,kn as r,En as s};
@@ -1 +0,0 @@
1
- import{F as h,X as d,Y as a,_ as c,oa as u}from"./chunk.DNNL7F3P.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 +0,0 @@
1
- import{F as C,Q as F,sa as H,ua as A}from"./chunk.DNNL7F3P.js";import"./chunk.HBBVVALN.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};
@@ -1 +0,0 @@
1
- import{C as J,E as Q,I as X,K as Y,N as ee,a as N,i as K,l as Z,o as z,p as D,t as W,u as _,w as j,z as U}from"./chunk.QXARGANF.js";import{F as ie,Q as T,Y as $,_ as G,ka as V,ra as q}from"./chunk.DNNL7F3P.js";import{Ic as I,Xb as M,ec as P,gc as O}from"./chunk.HBBVVALN.js";import{b as k}from"./chunk.AJZBJBMO.js";var o=k(ie(),1);function se(e){let t=[e?.typography?.body,e?.typography?.display,e?.typography?.mono],n=[];for(let a of t){let r=a?.split(",")[0]?.trim().replace(/^["']|["']$/g,"");!r||O(r)||r.toLowerCase()!==M.toLowerCase()&&(n.includes(r)||n.push(r))}return n}function ne(e){let t=se(e);return t.length===0?null:`https://fonts.googleapis.com/css2?${t.map(a=>`family=${encodeURIComponent(a).replace(/%20/g,"+")}:wght@400;500;600;700`).join("&")}&display=swap`}var l=k(T(),1);function be({rootRef:e,firstLook:t,app:n}){let a=(0,o.useCallback)(()=>e.current,[e]);return t?(0,l.jsx)(ee,{firstLook:t,root:a,app:n}):null}function Se(e,t){let{app:n}=e;return(0,o.useMemo)(()=>{let a=X(t(n.schema,n.viewSpecs),n),r=e.views?V(a,e.views(n.schema,a)):a;return Y(r,n.schema,J(e.brand??n.brand,n.schema)),r},[e.views,n.schema,n.viewSpecs,n.lenses,n.pages,n.home])}function ce(e,t){return new I({schema:e.schema,mutations:e.mutations??[],invariants:e.invariants??[],...t?{snapshot:t}:{},...e.policy?{policy:e.policy}:{},...e.intelligence?{intelligence:e.intelligence}:{},...e.brand?.timeZone?{timeZone:e.brand.timeZone}:{}})}function te(e){if(typeof document>"u")return e==="dark"?"dark":"light";let t=document.documentElement.dataset.theme;return t==="dark"||t==="light"?t:e==="dark"||e==="light"?e:typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function de(e,t){let[n,a]=(0,o.useState)(()=>te(t));return(0,o.useEffect)(()=>{if(!e||typeof document>"u")return;let r=()=>a(te(t));r();let s=new MutationObserver(r);s.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});let d=typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null;return d?.addEventListener?.("change",r),()=>{s.disconnect(),d?.removeEventListener?.("change",r)}},[e,t]),n}var A=e=>e?e.getBoundingClientRect().height:0;function ve(e,t,n){let a=(0,o.useRef)(n);a.current=n;let r=n!==void 0;(0,o.useLayoutEffect)(()=>{let s=e.current;if(!s||!r)return;let d=()=>{let u=[...s.children],b=u.find(S=>S.hasAttribute("data-graview-app-bar")),y=u.find(S=>S.hasAttribute("data-embed-content")),h=y?.querySelector("[data-embed-measure]")??null,c=u.find(S=>S.hasAttribute("data-graview-place-line"));return{strip:b,line:c,content:y,measure:h}},i=-1,f=()=>{let{strip:u,line:b,content:y,measure:h}=d(),c=Math.ceil(A(u)+A(b)+A(h||y));c!==i&&(i=c,a.current?.(c))};if(f(),typeof ResizeObserver>"u")return;let m=new ResizeObserver(f),E=()=>{m.disconnect();let{strip:u,line:b,content:y,measure:h}=d();for(let c of[s,u,b,y,h])c&&m.observe(c)};E();let g=new MutationObserver(()=>{E(),f()});return g.observe(s,{childList:!0}),()=>{m.disconnect(),g.disconnect()}},[e,t,r])}var we=480,le=0;function Ee(e){let{app:t,seed:n,scheme:a="auto",brand:r=t.brand,fonts:s=!0,height:d="100%",label:i}=e,f=(0,o.useRef)(null);q(f);let m=d==="viewport"?"100dvh":d,E=Z(typeof m=="string"&&/vh\b/.test(m)),g=(0,o.useMemo)(()=>`graview-embed-${++le}`,[]),u=(0,o.useMemo)(()=>e.store??e.remote?.store??ce(t,n),[e.store,e.remote,t,n]),b=e.presence??e.remote?.presence,y=e.hostContext?.theme,h=de(a==="auto"&&y===void 0,r?.scheme),c=a==="auto"?y??h:a,S=(0,o.useMemo)(()=>N(c,r,{scope:`.${g}`}),[c,r,g]);K(e.favicon?P(r):void 0),(0,o.useEffect)(()=>{if(!s||typeof document>"u")return;let w=ne(r);if(!w||document.querySelector(`link[href="${w}"]`))return;let p=document.createElement("link");p.rel="stylesheet",p.href=w,document.head.appendChild(p)},[r,s]);let L=(0,o.useRef)(void 0);(0,o.useLayoutEffect)(()=>{let w=f.current,p=L.current;if(L.current=i,!w||!i)return;let ae=v=>{let R=v.getAttribute("aria-label")??"",x=p&&p!==i?R.startsWith(`${p} \xB7 `)?R.slice(p.length+3):R===p?"":R:R;x===i&&(v.getAttribute("role")==="region"||v.tagName==="SECTION"&&!v.hasAttribute("role"))&&v.setAttribute("role","group");let B=x.startsWith(`${i} \xB7 `)||x===i?x:x?`${i} \xB7 ${x}`:i;B!==R&&v.setAttribute("aria-label",B)},H=()=>w.querySelectorAll("aside, nav, main, header, footer, section[aria-label]:not([role]), [role=region], [role=complementary], [role=navigation], [role=search]").forEach(v=>{v.hasAttribute("data-graview-named-by-lens")||ae(v)});H();let C=new MutationObserver(H);return C.observe(w,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["aria-label"]}),()=>C.disconnect()},[i]);let oe=E?`${m}`.replace(/([\d.]+)[sdl]?vh\b/g,(w,p)=>`${+p*E/100}px`):m;return{rootRef:f,scope:g,css:S,scheme:c,store:u,presence:b,brand:r,auto:d==="auto",height:oe}}function Re({rootRef:e,board:t}){let n=(0,o.useCallback)(()=>e.current?.querySelector("[data-embed-content]")??e.current,[e]);return(0,l.jsx)(U,{board:t,anchor:n})}function xe(e,t,n){return{brand:n,locale:e.locale,timeZone:e.timeZone,principal:e.principal,seats:e.seats,presence:t,people:e.people,memory:e.memory,presenceTtlMs:e.presenceTtlMs,onKeepLens:e.onKeepLens,ai:e.ai,files:e.files,resolveApp:e.resolveApp,history:e.history,linkedRecords:e.linkedRecords,subscriptions:e.subscriptions,signIn:e.signIn,menuSections:e.menuSections,app:e.app}}function Ae({name:e,heading:t,faces:n,at:a,without:r,home:s,reach:d,standing:i,hostActions:f,keeping:m,onFind:E,switch:g}){let{brand:u,store:b,principal:y,views:h}=$();G();let c=r?.has("places")?[]:z({store:b,principal:y,views:h}),S=j();return(0,l.jsx)(W,{brand:u,name:e,description:u?.subtitle,heading:t,faces:n,home:s,places:c,current:a===null?null:D(c,a),reach:d,onFind:E,...g?{switch:g}:{},...n?{scenePlaces:S}:{},tools:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(Q,{clean:i}),(0,l.jsx)(_,{...f?{hostActions:f}:{},...m?{keeping:m}:{}})]})})}var ke=e=>e===!1?2:Math.min(e+1,6);function Fe(e){let[t,n]=(0,o.useState)(e),a=(0,o.useRef)(void 0),r=(0,o.useRef)(void 0),s=(0,o.useMemo)(()=>({go:a,at:n,pending:r}),[]),d=(0,o.useCallback)(i=>{if(a.current){a.current(i);return}r.current=i,n(i)},[]);return{at:t,setAt:n,steering:s,steer:d}}function ue(e){let t=typeof e=="object"&&e!==null?e.name:void 0;return{name:typeof t=="string"&&t.length>0?t:typeof e=="object"?"Error":typeof e}}var F=()=>typeof performance<"u"?performance.now():Date.now();function Le(e,t){let n=(0,o.useRef)({onError:e,face:t});return n.current={onError:e,face:t},(0,o.useCallback)((a,r)=>n.current.onError?.(ue(a),{module:r.module,face:n.current.face}),[])}function He(e,t){let n=(0,o.useRef)(null);n.current===null&&(n.current=F());let a=(0,o.useRef)({onReady:e,face:t});a.current={onReady:e,face:t};let r=(0,o.useRef)(!1);return(0,o.useCallback)(s=>{r.current||(r.current=!0,a.current.onReady?.({ms:Math.max(0,F()-(n.current??F())),face:s}))},[])}var re=class extends o.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(t,n){console.error(`[graview] ${this.props.module} threw while rendering`,t,n.componentStack),this.props.report(t,{module:this.props.module})}render(){return this.state.failed?(0,l.jsxs)("div",{role:"alert","data-graview-face-error":this.props.module,...this.props.content?{"data-embed-content":""}:{},style:this.props.content?{flex:"1 1 auto",display:"grid",alignContent:"center",justifyItems:"center",gap:8,padding:24,background:"var(--graview-ground)",color:"var(--graview-ink)",fontSize:"0.9375rem"}:{display:"inline-flex",alignItems:"center",gap:6,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,l.jsx)("span",{children:this.props.content?"This part of the app could not draw.":"Could not draw."}),(0,l.jsx)("button",{type:"button",onClick:()=>this.setState({failed:!1}),style:{padding:"3px 11px",fontSize:"0.8125rem"},children:"Try again"})]}):this.props.children}};export{be as a,Se as b,ce as c,ve as d,we as e,Ee as f,Re as g,xe as h,Ae as i,ke as j,Fe as k,Le as l,He as m,re as n};
@@ -1 +0,0 @@
1
- import{a as b,b as c,c as d,d as e,e as f}from"./chunk.TX5QIZEP.js";import"./chunk.TSI4O3GH.js";import"./chunk.ENJKCSNX.js";import"./chunk.X2OLXTRL.js";import"./chunk.JDRM6XXD.js";import{rb as a}from"./chunk.HBBVVALN.js";import"./chunk.AJZBJBMO.js";export{a as ActRefusal,e as compileDocumentWithoutCheck,d as effectsOf,f as inDocumentWords,c as kindShapes,b as readDocument};