graview 0.1.37 → 0.1.38

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 (166) hide show
  1. package/dist/preview/{chunk.YFW5BF6J.js → chunk.2EJAIT33.js} +1 -1
  2. package/dist/preview/chunk.2HFRVWWM.js +1 -0
  3. package/dist/preview/chunk.2VIGF4FO.js +1 -0
  4. package/dist/preview/chunk.33GN2NUT.js +1 -0
  5. package/dist/preview/{chunk.5CLFTXP3.js → chunk.36SQJMEE.js} +1 -1
  6. package/dist/preview/{chunk.NOZEHLWG.js → chunk.3D5T3XIE.js} +1 -1
  7. package/dist/preview/chunk.3FW4QNGV.js +1 -0
  8. package/dist/preview/chunk.3RT2GUZ5.js +1 -0
  9. package/dist/preview/chunk.3ZRHHB7X.js +1 -0
  10. package/dist/preview/{chunk.YW2BZ2LH.js → chunk.4DEUD66C.js} +2 -2
  11. package/dist/preview/{chunk.VW6WGFL6.js → chunk.4EQSP7I3.js} +1 -1
  12. package/dist/preview/chunk.4Y6BCHV2.js +1 -0
  13. package/dist/preview/{chunk.UPBUF7KR.js → chunk.5MSO3KRO.js} +1 -1
  14. package/dist/preview/chunk.5VBBQ6Z3.js +1 -0
  15. package/dist/preview/chunk.5XJEGXDO.js +3 -0
  16. package/dist/preview/{chunk.BXWO6ILK.js → chunk.67WL7BGF.js} +1 -1
  17. package/dist/preview/{chunk.NWHFFOXW.js → chunk.6CKBIY7L.js} +1 -1
  18. package/dist/preview/{chunk.WNMLA4YW.js → chunk.6IHXTT6Z.js} +1 -1
  19. package/dist/preview/{chunk.QJYALCIW.js → chunk.6ONRWFA6.js} +1 -1
  20. package/dist/preview/{chunk.TSI4O3GH.js → chunk.6UCRL4OF.js} +1 -1
  21. package/dist/preview/{chunk.ENJKCSNX.js → chunk.6XJP7F3I.js} +1 -1
  22. package/dist/preview/{chunk.JDRM6XXD.js → chunk.74RMHUCX.js} +1 -1
  23. package/dist/preview/{chunk.YAXOIJVH.js → chunk.7H5KVW2F.js} +1 -1
  24. package/dist/preview/chunk.7RSZMIAL.js +1 -0
  25. package/dist/preview/{chunk.7MMNMZLF.js → chunk.AFY35RJP.js} +1 -1
  26. package/dist/preview/{chunk.SNKOPWAD.js → chunk.AZCFXPEL.js} +1 -1
  27. package/dist/preview/{chunk.JBRXGPPM.js → chunk.B5ILKGEF.js} +1 -1
  28. package/dist/preview/{chunk.BRBY5WJT.js → chunk.BRHRAVU2.js} +2 -2
  29. package/dist/preview/chunk.BUVAMSOZ.js +3 -0
  30. package/dist/preview/{chunk.ENEOGGFM.js → chunk.DFVVS6C5.js} +1 -1
  31. package/dist/preview/{chunk.YNJOLOFG.js → chunk.DL637Q3W.js} +1 -1
  32. package/dist/preview/chunk.DQJAEU4V.js +1 -0
  33. package/dist/preview/chunk.ESSQAMPM.js +1 -0
  34. package/dist/preview/{chunk.QYWBQ5NX.js → chunk.EUGWV3S6.js} +1 -1
  35. package/dist/preview/chunk.EV553KRT.js +1 -0
  36. package/dist/preview/{chunk.EHT4HBH5.js → chunk.EZP4FHDX.js} +1 -1
  37. package/dist/preview/chunk.F6PIK2J2.js +1 -0
  38. package/dist/preview/{chunk.AWRS6TUN.js → chunk.FMVWXSQ7.js} +1 -1
  39. package/dist/preview/{chunk.NZJZIYDK.js → chunk.FTJBW25J.js} +1 -1
  40. package/dist/preview/chunk.FUJM7GDV.js +1 -0
  41. package/dist/preview/{chunk.AZ333RB3.js → chunk.FYIQZMVF.js} +1 -1
  42. package/dist/preview/{chunk.UVLPVHID.js → chunk.GR5Q4HTW.js} +1 -1
  43. package/dist/preview/{chunk.KAWP4RNR.js → chunk.GZ3IXNA4.js} +1 -1
  44. package/dist/preview/chunk.HUSFMFXH.js +1 -0
  45. package/dist/preview/chunk.HVTGPEVW.js +1 -0
  46. package/dist/preview/chunk.I3SQJ2L2.js +1 -0
  47. package/dist/preview/{chunk.GMZAQGH7.js → chunk.IEDXW36H.js} +1 -1
  48. package/dist/preview/chunk.IM7LXLIB.js +2 -0
  49. package/dist/preview/chunk.IU6ISXXC.js +1 -0
  50. package/dist/preview/{chunk.XS3SAH6U.js → chunk.JWJQ2VXS.js} +1 -1
  51. package/dist/preview/chunk.K5KEECHL.js +88 -0
  52. package/dist/preview/{chunk.UR5TT4JH.js → chunk.KNJZ2YNJ.js} +1 -1
  53. package/dist/preview/chunk.L34FY7QQ.js +1 -0
  54. package/dist/preview/{chunk.HYAKRLPT.js → chunk.L73VUBXN.js} +3 -3
  55. package/dist/preview/{chunk.QOXTBRKE.js → chunk.L7JKEEMM.js} +1 -1
  56. package/dist/preview/chunk.LAW5PQEM.js +1 -0
  57. package/dist/preview/chunk.LDD3QX7G.js +1 -0
  58. package/dist/preview/chunk.LF7PU77M.js +7 -0
  59. package/dist/preview/chunk.LHO7L3CS.js +1 -0
  60. package/dist/preview/chunk.LU5LSXSW.js +1 -0
  61. package/dist/preview/{chunk.3V2M3S4U.js → chunk.MCVY6RRS.js} +1 -1
  62. package/dist/preview/chunk.MQ7FNHXG.js +25 -0
  63. package/dist/preview/{chunk.YX354FRV.js → chunk.MVNUWK5Y.js} +1 -1
  64. package/dist/preview/{chunk.7OLVQ2FZ.js → chunk.MWZK3HVG.js} +1 -1
  65. package/dist/preview/{chunk.QNGFBJWP.js → chunk.NH5TDAB2.js} +1 -1
  66. package/dist/preview/{chunk.7UQOXYJX.js → chunk.NORRCKGN.js} +1 -1
  67. package/dist/preview/{chunk.LJE5J3JK.js → chunk.NPX7SPXM.js} +1 -1
  68. package/dist/preview/chunk.NQQHOSOK.js +1 -0
  69. package/dist/preview/chunk.NWWMUOZM.js +1 -0
  70. package/dist/preview/{chunk.X2OLXTRL.js → chunk.OE4QOBJF.js} +1 -1
  71. package/dist/preview/chunk.OEF3GPRM.js +1 -0
  72. package/dist/preview/{chunk.LYJXX6BU.js → chunk.OS3L4ZOF.js} +1 -1
  73. package/dist/preview/chunk.OTL3Z345.js +1 -0
  74. package/dist/preview/{chunk.3KJQXYCA.js → chunk.P3UPCI23.js} +1 -1
  75. package/dist/preview/chunk.PGKIEDYV.js +9 -0
  76. package/dist/preview/{chunk.H4LFJPDV.js → chunk.PKUWET2F.js} +1 -1
  77. package/dist/preview/chunk.POHEWJKZ.js +1 -0
  78. package/dist/preview/chunk.PUBG2L6F.js +117 -0
  79. package/dist/preview/chunk.QT4XGC5Z.js +344 -0
  80. package/dist/preview/chunk.QTTBZJ6W.js +1 -0
  81. package/dist/preview/{chunk.FGYCYLUS.js → chunk.QYRPELLU.js} +1 -1
  82. package/dist/preview/chunk.RJDZOF2L.js +1 -0
  83. package/dist/preview/{chunk.MJLUAGEV.js → chunk.ROGYDMES.js} +1 -1
  84. package/dist/preview/{chunk.UCVZG7S4.js → chunk.RVJYEOFN.js} +1 -1
  85. package/dist/preview/{chunk.EKUAI5YL.js → chunk.RZVZG2BQ.js} +1 -1
  86. package/dist/preview/{chunk.CV4CBHFT.js → chunk.SGB6IMWN.js} +1 -1
  87. package/dist/preview/chunk.SGLJTSTD.js +1 -0
  88. package/dist/preview/{chunk.G7S7GLDK.js → chunk.SITFEJES.js} +1 -1
  89. package/dist/preview/{chunk.WVEKYJSI.js → chunk.SZWX56WR.js} +6 -6
  90. package/dist/preview/{chunk.5JPRRV47.js → chunk.TKSGC6XH.js} +1 -1
  91. package/dist/preview/chunk.TOWYHWPB.js +17 -0
  92. package/dist/preview/{chunk.TXS4I326.js → chunk.UF3L6FJO.js} +1 -1
  93. package/dist/preview/chunk.UXIFQIHA.js +2 -0
  94. package/dist/preview/{chunk.SZMWJHU2.js → chunk.V2NBJDAX.js} +1 -1
  95. package/dist/preview/{chunk.CGQLE7JW.js → chunk.V5ZT5NSJ.js} +1 -1
  96. package/dist/preview/chunk.VKHKYK5L.js +1 -0
  97. package/dist/preview/{chunk.TN4GY6LW.js → chunk.VNBR4DHD.js} +1 -1
  98. package/dist/preview/chunk.VSYHU5MA.js +1 -0
  99. package/dist/preview/{chunk.ELY2RMGE.js → chunk.VTWFVPKD.js} +1 -1
  100. package/dist/preview/chunk.VV4BPOIK.js +1 -0
  101. package/dist/preview/chunk.W2HCJQVK.js +32 -0
  102. package/dist/preview/{chunk.BA3REPV5.js → chunk.WERYQENC.js} +1 -1
  103. package/dist/preview/{chunk.6DYZBDWT.js → chunk.WG5NIR23.js} +1 -1
  104. package/dist/preview/{chunk.HBBVVALN.js → chunk.WLPTY4BF.js} +5 -5
  105. package/dist/preview/chunk.XHWL7QBF.js +1 -0
  106. package/dist/preview/chunk.XM3NPZLP.js +1 -0
  107. package/dist/preview/chunk.YAXZNQY6.js +1 -0
  108. package/dist/preview/chunk.YG423NEB.js +1 -0
  109. package/dist/preview/{chunk.74DXEKUV.js → chunk.YPY5BOEI.js} +1 -1
  110. package/dist/preview/{chunk.RPOYSIVQ.js → chunk.YUJG5SN5.js} +1 -1
  111. package/dist/preview/chunk.YVR3ZMTV.js +1 -0
  112. package/dist/preview/chunk.YXH3IWNR.js +1 -0
  113. package/dist/preview/{chunk.4NCXMVPY.js → chunk.Z3ZKYSPN.js} +1 -1
  114. package/dist/preview/{chunk.TRLVFHFT.js → chunk.ZLXPIEUC.js} +2 -2
  115. package/dist/preview/{chunk.UV2TSAB4.js → chunk.ZRQI5VJF.js} +1 -1
  116. package/dist/preview/chunk.ZYCNEOAQ.js +1 -0
  117. package/dist/preview/index.html +43 -42
  118. package/dist/preview/page.js +7 -7
  119. package/package.json +6 -6
  120. package/dist/preview/chunk.24E4R4ZH.js +0 -1
  121. package/dist/preview/chunk.2JF254FO.js +0 -9
  122. package/dist/preview/chunk.2TDB4D6Y.js +0 -1
  123. package/dist/preview/chunk.3IVVXVG7.js +0 -1
  124. package/dist/preview/chunk.57XTDW57.js +0 -1
  125. package/dist/preview/chunk.5EXYDBAL.js +0 -88
  126. package/dist/preview/chunk.67PVRVAC.js +0 -1
  127. package/dist/preview/chunk.6SK2K72G.js +0 -1
  128. package/dist/preview/chunk.76QUEWYD.js +0 -1
  129. package/dist/preview/chunk.AHC4EXLW.js +0 -3
  130. package/dist/preview/chunk.CYPTJNES.js +0 -1
  131. package/dist/preview/chunk.D2ILIAND.js +0 -1
  132. package/dist/preview/chunk.DLCFCMKX.js +0 -1
  133. package/dist/preview/chunk.DMUUYZ37.js +0 -1
  134. package/dist/preview/chunk.DNNL7F3P.js +0 -25
  135. package/dist/preview/chunk.FEPYKPZE.js +0 -1
  136. package/dist/preview/chunk.FFW6XWHB.js +0 -17
  137. package/dist/preview/chunk.GXPBRYSR.js +0 -1
  138. package/dist/preview/chunk.HCK4Y6C5.js +0 -1
  139. package/dist/preview/chunk.HSRGYZOR.js +0 -1
  140. package/dist/preview/chunk.IHBIRAC4.js +0 -2
  141. package/dist/preview/chunk.IWK5QL6P.js +0 -1
  142. package/dist/preview/chunk.J2HQEUYA.js +0 -1
  143. package/dist/preview/chunk.JFLUVZNW.js +0 -1
  144. package/dist/preview/chunk.LPJY6V5D.js +0 -1
  145. package/dist/preview/chunk.LVLAS5GL.js +0 -1
  146. package/dist/preview/chunk.LVNAB2BW.js +0 -27
  147. package/dist/preview/chunk.MKPJKZAP.js +0 -1
  148. package/dist/preview/chunk.MMBMVHIG.js +0 -1
  149. package/dist/preview/chunk.NNNVB6RV.js +0 -1
  150. package/dist/preview/chunk.NV6IZJKA.js +0 -1
  151. package/dist/preview/chunk.O6KNGFWH.js +0 -1
  152. package/dist/preview/chunk.PMK73A53.js +0 -1
  153. package/dist/preview/chunk.PQPZZ7ZW.js +0 -117
  154. package/dist/preview/chunk.QMZUKAPJ.js +0 -1
  155. package/dist/preview/chunk.QXARGANF.js +0 -341
  156. package/dist/preview/chunk.TX5QIZEP.js +0 -1
  157. package/dist/preview/chunk.U4URQDC5.js +0 -1
  158. package/dist/preview/chunk.VUKHDZNI.js +0 -1
  159. package/dist/preview/chunk.VX7MGVP5.js +0 -1
  160. package/dist/preview/chunk.WLV2QYTS.js +0 -1
  161. package/dist/preview/chunk.WNKRXL3O.js +0 -1
  162. package/dist/preview/chunk.XWJ2MRQF.js +0 -1
  163. package/dist/preview/chunk.Y44TR4WG.js +0 -1
  164. package/dist/preview/chunk.ZB7GV3IT.js +0 -1
  165. package/dist/preview/chunk.ZOT4V66Q.js +0 -3
  166. package/dist/preview/chunk.ZYPCE2LZ.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graview",
3
- "version": "0.1.37",
3
+ "version": "0.1.38",
4
4
  "type": "module",
5
5
  "description": "The Graview command line: start a product, check its declaration, write its agent docs, serve its store, preview a document with no product and photograph its places, say whether a product is on one release, host it for an agent over MCP, apply an act to it, sync its seed, install the authoring skills. The tool; @graview/* is the framework.",
6
6
  "keywords": [
@@ -29,11 +29,11 @@
29
29
  }
30
30
  },
31
31
  "dependencies": {
32
- "@graview/guest": "0.1.37",
33
- "@graview/core": "0.1.37",
34
- "@graview/skills": "0.1.37",
35
- "@graview/tools": "0.1.37",
36
- "@graview/ship": "0.1.37"
32
+ "@graview/guest": "0.1.38",
33
+ "@graview/core": "0.1.38",
34
+ "@graview/ship": "0.1.38",
35
+ "@graview/skills": "0.1.38",
36
+ "@graview/tools": "0.1.38"
37
37
  },
38
38
  "engines": {
39
39
  "node": ">=22"
@@ -1 +0,0 @@
1
- import{e as L}from"./chunk.3IVVXVG7.js";import{a as R,b as O,c as v,d as P}from"./chunk.UGFDSE37.js";import"./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.7MMNMZLF.js";import"./chunk.67PVRVAC.js";import"./chunk.MJLUAGEV.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import{a as E,b as T}from"./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 D,Q as C,ta as x}from"./chunk.DNNL7F3P.js";import{qc as k}from"./chunk.HBBVVALN.js";import{b as S}from"./chunk.AJZBJBMO.js";var o=S(D(),1);var i=S(C(),1);function W(c){let e=document.activeElement;if(e!==null&&e!==document.body&&e!==document.documentElement&&e.isConnected)return;let r=c??document,a=r.querySelector("main")??r.querySelector("[data-graview-page]")??null,n=r.querySelector("[data-graview-page-title]")??a?.querySelector("h1, h2")??a;n instanceof HTMLElement&&(n.hasAttribute("tabindex")||n.setAttribute("tabindex","-1"),n.focus({preventScroll:!0}))}var H=1500;function z(c,e,r){let{store:a,principal:n}=c,u=L(a),l=(0,o.useMemo)(()=>R(a,n),[a,n,u]),b=(0,o.useRef)(r),[p,m]=(0,o.useState)(),[s,f]=(0,o.useState)("");(0,o.useEffect)(()=>{let t=O(a,n,b.current);b.current=a.batches().length,t&&(m({batch:t.batch,at:e,when:Date.now()}),f(""))},[a,n,u]),(0,o.useEffect)(()=>{m(t=>!t||t.at===e?t:Date.now()-t.when<H?{...t,at:e}:void 0)},[e]);let[g,h]=(0,o.useState)(null),y=(0,o.useCallback)(()=>{m(void 0),h(null)},[]),w=(0,o.useCallback)(()=>{h(null);try{let t=P(a,n);t&&f(`Took back \u201C${t.intent}\u201D`)}catch(t){h(t instanceof Error?t.message:String(t))}},[a,n]),d=l&&p?.batch===l.batch&&p.at===e?l:void 0;return{change:l,offered:d,close:y,takeBack:w,refused:g,said:s}}function Y({context:c,docked:e,at:r,since:a}){let{change:n,offered:u,close:l,takeBack:b,refused:p,said:m}=z(c,r,a),s=e?u:n,f=(0,o.useRef)(null),g=e&&(s!==void 0||p!==null);B(f,g),(0,o.useEffect)(()=>{if(!g)return;let d,t=()=>d=setTimeout(()=>f.current?.matches(":hover, :focus-within")?t():l(),1e4);return t(),()=>clearTimeout(d)},[g,s?.batch,p,l]);let h=m||(e&&s?v(s):""),y=e?{position:"fixed",inset:"auto",margin:0,padding:0,border:"none",background:"none",overflow:"visible",zIndex:k("toast"),width:"max-content",height:"auto",bottom:"calc(16px + env(safe-area-inset-bottom, 0px))",left:16,justifyItems:"start",color:"var(--graview-ink)",...g?{}:{display:"none"}}:{},w=s?(0,i.jsxs)("button",{type:"button","data-testid":"page-undo",title:`${v(s)} \u2014 \u2318Z or Ctrl+Z`,"aria-keyshortcuts":"Meta+Z Control+Z",onClick:d=>{let t=d.currentTarget.closest("[data-graview-face]");b(),requestAnimationFrame(()=>W(t))},style:e?I:A,children:[(0,i.jsx)("span",{"aria-hidden":"true",children:"\u21B6"}),(0,i.jsx)("span",{style:e?j:F,children:v(s)})]}):null;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{role:"status","aria-live":"polite",style:N,children:h}),(0,i.jsxs)("div",{ref:f,...e?{popover:"manual","data-graview-foot":"","data-graview-offstage":""}:{},"data-testid":e?"face-undo-dock":"page-undo-place",style:{display:"grid",justifyItems:"end",gap:4,maxWidth:"100%",minWidth:0,...y},children:[e&&s?(0,i.jsxs)("div",{"data-testid":"page-undo-notice",style:_,children:[w,(0,i.jsx)("button",{type:"button","data-testid":"page-undo-dismiss","aria-label":`Dismiss: ${v(s)}`,title:"Dismiss",onClick:d=>{let t=d.currentTarget.closest("[data-graview-face]");l(),requestAnimationFrame(()=>W(t))},style:q,children:"\xD7"})]}):w,p?(0,i.jsx)("span",{"data-testid":"page-undo-refused",role:"alert",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-warn)",background:e?"var(--graview-float)":void 0,padding:e?"4px 8px":void 0,borderRadius:6},children:p}):null]})]})}function B(c,e){(0,o.useLayoutEffect)(()=>{let r=c.current;if(!r||!e)return;if(typeof r.showPopover=="function"&&!x(r))try{r.showPopover()}catch{}let a=()=>r.parentElement?.closest("[data-embed-content]")??null,n=()=>{T(r,a()),dispatchEvent(new Event(E))};n(),addEventListener("resize",n),addEventListener("scroll",n,!0);let u=typeof ResizeObserver=="function"?new ResizeObserver(n):null;return u?.observe(r),()=>{if(u?.disconnect(),removeEventListener("resize",n),removeEventListener("scroll",n,!0),r.isConnected&&x(r))try{r.hidePopover()}catch{}dispatchEvent(new Event(E))}},[c,e])}var A={display:"inline-flex",alignItems:"center",gap:6,minHeight:36,maxWidth:"100%",minWidth:0,padding:"0 14px",borderRadius:999,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",font:"inherit",fontSize:"0.875rem",cursor:"pointer"},I={...A,textAlign:"start",lineHeight:1.4,padding:"8px 4px 8px 14px",border:"none",background:"none",color:"inherit"},_={display:"flex",alignItems:"center",gap:2,maxWidth:"100%",minWidth:0,paddingRight:6,borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},q={flex:"0 0 auto",minWidth:28,minHeight:28,padding:0,border:"none",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"1rem",cursor:"pointer"},F={minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},j={minWidth:0,overflow:"hidden",overflowWrap:"anywhere",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:4},N={position:"absolute",width:1,height:1,margin:-1,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0};export{Y as TakeBack};
@@ -1,9 +0,0 @@
1
- import{b as J}from"./chunk.JFLUVZNW.js";import{a as V,c as T,d as _,e as D}from"./chunk.7MMNMZLF.js";import"./chunk.67PVRVAC.js";import"./chunk.GMZAQGH7.js";import"./chunk.57XTDW57.js";import"./chunk.MJLUAGEV.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.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 q,Q as k,Y as w,d as B,sa as j,wa as E,y as G}from"./chunk.DNNL7F3P.js";import{Ua as M,ba as H,da as I,ga as L,ob as W}from"./chunk.HBBVVALN.js";import{b as f}from"./chunk.AJZBJBMO.js";function P(e){return{minHeight:24,padding:"3px 10px",borderRadius:6,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:e?"transparent":"var(--graview-edge)",color:e?"var(--graview-ink)":"var(--graview-ink-muted)",fontWeight:e?600:400,background:e?"color-mix(in srgb, var(--graview-accent) 16%, transparent)":"transparent"}}var A=f(k(),1);function K(){let{seats:e,principal:n,takeSeat:i}=w();return e.length<2?null:(0,A.jsxs)("div",{role:"group","aria-label":"Seat","data-testid":"seats",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6,rowGap:4},children:[(0,A.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"As"}),e.map(r=>{let d=Q(n,r.principal);return(0,A.jsx)("button",{type:"button","aria-pressed":d,"data-testid":`seat-${r.principal.id??r.label}`,title:`Sit down as ${r.label}: the acts, the kinds and the pages narrow to what this seat may do`,onClick:()=>i(r.principal),style:{...P(d),whiteSpace:"nowrap"},children:r.label},r.principal.id??r.label)})]})}function Q(e,n){return e.kind===n.kind&&e.id===n.id}var C=f(q(),1),l=f(k(),1),X=`
2
- .graview-here{display:flex;flex:none}
3
- .graview-here>button{display:inline-flex;align-items:center;gap:4px;height:30px;margin:0;padding:0 4px;border:1px solid transparent;border-radius:8px;background:none;box-shadow:none;font:inherit;font-size:.75rem;color:var(--graview-ink-muted);cursor:pointer}
4
- .graview-here-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:24px;height:24px;border-radius:50%;border:1.5px solid hsl(var(--graview-hue) 50% 48%);background:var(--graview-panel-muted);color:var(--graview-ink);font-size:.75rem;font-weight:600;box-shadow:0 0 0 2px var(--graview-bar)}
5
- .graview-here-mark+.graview-here-mark{margin-left:-10px}
6
- .graview-here-mark[data-agent]{border-radius:5px}
7
- .graview-here-mark[data-counted]{--graview-hue:0;border-color:var(--graview-edge)}
8
- .graview-here small{display:block;font-size:.75rem;color:var(--graview-ink-muted)}
9
- .graview-bar[data-finding] .graview-here{display:none}`,Z={position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)"};function ee(e,n){let i=n.id===void 0?null:`${n.kind}:${n.id}`,r=new Map;for(let d of e.values()){let p=d.participant.slice(0,d.participant.lastIndexOf(":"));if(p===i)continue;let o=p.endsWith(":")?d.participant:p,s=r.get(o);(!s||s.at<d.at)&&r.set(o,d)}return[...r.values()]}var F=e=>e.name&&e.onBehalfOfName?`${e.name}, for ${e.onBehalfOfName}`:e.name??"",U=e=>e===1?"1 viewer":`${e} viewers`;function te(e){let n=e.map(F).filter(Boolean),i=n.length<e.length?[...n,U(e.length-n.length)]:n,r=i.pop();return`${i.length>0?`${i.join(", ")} and ${r}`:r} ${e.length===1?"is":"are"} here`}function ne(e,n){let{store:i,hidden:r,pictures:d}=n,p=B(e),o=i.kindsKeptFrom(n.principal),s=c=>!r.has(c)&&!o.has(c)&&!i.modules.disabledKinds.has(c),u=d.find(c=>c.as===p.within?.view&&s(c.kind));if(u)return u.title;if(!p.focusId)return p.overview?"the whole thing":null;let h=G(p.focusId);if(h.length>0)return h.every(s)?h.map(c=>L(i.schema,c)).join(" and "):null;let m=i.graph.getNode(p.focusId);return m&&s(m.kind)?H(i.schema.tryDefinition(m.kind),m):null}function re(e,n){let i=s=>s.id!==void 0&&(s.id===n.principal.id||s.onBehalfOf?.id===n.principal.id),r=e.filter(s=>!W(s)&&s.author.kind!=="system"&&!i(s.author)),d=r[0];if(!d)return null;let p=M(d.author,{graph:n.store.graph,schema:n.store.schema,...n.seats?{seats:n.seats}:{},...n.people?{people:n.people}:{}}),o=[...new Set(r.map(s=>s.intent))].join("; ");return`${p}: ${o}`}function ae(e,n,i){let r=re(e,n);r&&(i(""),setTimeout(()=>i(r),50))}function ie({scene:e,compact:n}){let{who:i,principal:r,store:d,views:p,hiddenKinds:o,follow:s}=w(),u=E("here"),h=ee(i,r),m=h.length===0?"":te(h),[c,z]=(0,C.useState)("");if((0,C.useEffect)(()=>z(m),[m]),h.length===0)return null;let S=h.filter(g=>g.name),y=S.slice(0,n?2:3),v=h.length-y.length,b=h.length-S.length,a=p.places();return(0,l.jsxs)("div",{className:"graview-here","data-testid":"here",children:[(0,l.jsx)("style",{children:X}),(0,l.jsx)("span",{role:"status","aria-live":"polite",style:Z,children:c}),(0,l.jsxs)("button",{type:"button","data-testid":"here-open",...u.trigger,onClick:u.toggle,"aria-label":`${m} \u2014 who and where`,title:m,children:[y.length>0?(0,l.jsx)("span",{style:{display:"flex"},children:y.map(g=>(0,l.jsx)(O,{one:g},g.participant))}):(0,l.jsx)(O,{count:v}),y.length>0&&v>0?(0,l.jsxs)("span",{"aria-hidden":"true",children:["+",v]}):null]}),(0,l.jsxs)("ul",{...u.pane,"aria-label":"Who is here","data-testid":"here-list",hidden:!u.open,className:"graview-bar-list",style:j,children:[S.map(g=>{let x=ne(g.stop,{store:d,principal:r,hidden:o,pictures:a}),N=F(g);return(0,l.jsx)("li",{children:(0,l.jsxs)(e?"button":"span",{className:"graview-bar-item","data-testid":"here-one",...e?{type:"button",title:`Go where ${N} is`,onClick:()=>{u.setOpen(!1),s(g.participant)}}:{style:{cursor:"default"}},children:[(0,l.jsx)(O,{one:g}),(0,l.jsxs)("span",{children:[N,x?(0,l.jsxs)("small",{children:["On ",x]}):null]})]})},g.participant)}),b>0?(0,l.jsx)("li",{children:(0,l.jsxs)("span",{className:"graview-bar-item","data-testid":"here-viewers",style:{cursor:"default"},children:[(0,l.jsx)(O,{count:b}),(0,l.jsxs)("span",{children:[U(b),(0,l.jsx)("small",{children:"Not signed in"})]})]})}):null]})]})}function O({one:e,count:n}){return(0,l.jsx)("span",{className:"graview-here-mark","aria-hidden":"true",...e?{style:{"--graview-hue":Math.round(e.hue)}}:{"data-counted":""},...e?.kind==="agent"?{"data-agent":""}:{},children:e?(e.name??"").trim().charAt(0).toUpperCase():n})}var t=f(k(),1);function Se({violations:e,pick:n}){let{store:i,brand:r,setMenuAt:d}=w(),p=V(i,e);return(0,t.jsx)(t.Fragment,{children:p.map((o,s)=>{let u=D(o),h=o.repairs.length>0?`${o.repairs.length} ${o.repairs.length===1?"way":"ways"} to fix`:"";return(0,t.jsx)("li",{style:{borderTop:s===0?"none":"1px solid var(--graview-edge)"},children:(0,t.jsxs)("button",{type:"button",onClick:m=>{let c=m.currentTarget.closest("ol").getBoundingClientRect();n(o),d({x:c.left,y:c.top,on:o.subjectId})},...T(o)!==void 0?{title:T(o)}:{},style:{width:"100%",textAlign:"left",fontSize:"0.8125rem",lineHeight:1.4,padding:"7px 8px",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7},children:[o.line?(0,t.jsx)(_,{line:o.line,schema:i.schema,...r?{brand:r}:{},stacked:!0,style:{display:"block",color:"var(--graview-ink)"}}):(0,t.jsx)("span",{style:{display:"block",color:"var(--graview-ink)"},children:o.message}),u||h?(0,t.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:[u,h].filter(Boolean).join(" \xB7 ")}):null]})},`${o.invariant}:${s}`)})})}function xe({name:e,me:n,scheme:i,onScheme:r,profileHref:d,hostActions:p,close:o,part:s,signature:u=!1}){let{principal:h,seats:m,settings:c,settingValues:z,chooseSetting:S,sharing:y}=w(),v=h.roles??[],b={setOpen:a=>o()};return(0,t.jsx)(t.Fragment,{children:s==="top"?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"grid",gap:3},children:[(0,t.jsx)("span",{style:R,children:"Signed in as"}),(0,t.jsx)("strong",{style:{fontSize:"1rem",fontWeight:550},children:e}),(0,t.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:v.length>0?v.map(a=>I(a)).join(", "):n===void 0?"This app has no sign-in; everything here is yours.":"No role in particular"}),n!==void 0&&d!==void 0?(0,t.jsx)("a",{href:d(n.id),"data-testid":"profile-record",style:{display:"inline-flex",alignItems:"center",minHeight:24,justifySelf:"start",fontSize:"0.875rem",color:"var(--graview-accent)"},children:"Your record \u2197"}):null,y?(0,t.jsxs)("span",{"data-testid":"profile-seen-as",style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Seen by others as ",y.name]}):null]}),p.length>0?(0,t.jsx)("ul",{role:"list","aria-label":"From the host","data-testid":"host-actions",style:{...$,margin:0,paddingLeft:0,listStyle:"none",display:"grid",gap:2},children:p.map(a=>(0,t.jsx)("li",{children:a.href!==void 0?(0,t.jsx)("a",{href:a.href,"data-testid":"host-action",className:"graview-host-action",...a.target?{target:a.target,rel:"noopener"}:{},onClick:()=>{a.onSelect?.(),b.setOpen(!1)},style:Y,children:a.label}):(0,t.jsx)("button",{type:"button","data-testid":"host-action",className:"graview-host-action",onClick:()=>{b.setOpen(!1),a.onSelect?.()},style:{...Y,width:"100%",textAlign:"left",border:"none",background:"none",boxShadow:"none",font:"inherit",cursor:"pointer"},children:a.label})},a.label))}):null]}):(0,t.jsxs)(t.Fragment,{children:[m.length>1?(0,t.jsxs)("div",{style:{display:"grid",gap:6,...$},children:[(0,t.jsx)("span",{style:R,children:"Sit as somebody else"}),(0,t.jsx)(K,{})]}):null,c.length>0?(0,t.jsx)("div",{style:{display:"grid",gap:10,...$},children:c.map(a=>(0,t.jsxs)("fieldset",{"data-testid":`setting-${a.name}`,style:{border:0,margin:0,padding:0,display:"grid",gap:5},children:[(0,t.jsx)("legend",{style:{...R,padding:0},children:a.title}),a.description?(0,t.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:a.description}):null,(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:a.options.map(g=>{let x=(z[a.name]??a.initial)===g.value;return(0,t.jsx)("button",{type:"button","aria-pressed":x,"data-testid":`setting-${a.name}-${g.value}`,onClick:()=>S(a.name,g.value),style:P(x),children:g.label},g.value)})})]},a.name))}):null,i!==void 0&&r!==void 0?(0,t.jsxs)("div",{style:{display:"grid",gap:5,...$},children:[(0,t.jsx)("span",{style:R,children:"Scheme"}),(0,t.jsx)("div",{style:{display:"flex",gap:4},children:["light","dark"].map(a=>(0,t.jsx)("button",{type:"button","aria-pressed":i===a,"data-testid":`profile-scheme-${a}`,onClick:()=>r(a),style:P(i===a),children:a==="light"?"\u2600 Light":"\u263E Dark"},a))})]}):null,u?(0,t.jsxs)("p",{"data-testid":"graview-signature",style:{...$,margin:0,display:"flex",alignItems:"center",gap:6,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["Built with",(0,t.jsxs)("a",{href:"https://graview.dev",target:"_blank",rel:"noopener",style:{display:"inline-flex",alignItems:"center",gap:4,minHeight:24,color:"var(--graview-ink-muted)",fontWeight:600,textDecoration:"none"},children:[(0,t.jsx)("span",{"data-testid":"graview-mark",style:{display:"inline-flex",lineHeight:0},dangerouslySetInnerHTML:{__html:oe}}),"Graview"]})]}):null]})})}var oe='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="14" height="14" aria-hidden="true" focusable="false"><g fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"><path d="M13 11 L3 8 L14 3 H29 L21 9"/><path d="M10 18 L3 23 L16.5 28 L29 21 L22 19"/><path d="M16.5 18.5 V23.5" stroke-linecap="round"/></g><circle cx="16.5" cy="13.5" r="2" fill="var(--graview-mark-point, currentColor)"/></svg>',Y={display:"flex",alignItems:"center",minHeight:28,padding:"2px 8px",borderRadius:7,fontSize:"0.875rem",color:"var(--graview-ink)",textDecoration:"none"},R={fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},$={paddingTop:10,borderTop:"1px solid var(--graview-edge)"};export{J as ActivityRail,ie as Here,Se as ProblemRows,xe as ProfilePane,ae as sayTheirChange};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk.5JPRRV47.js";import"./chunk.IHBIRAC4.js";import"./chunk.FGYCYLUS.js";import"./chunk.NZJZIYDK.js";import"./chunk.UT6642FC.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.7OLVQ2FZ.js";import"./chunk.NOZEHLWG.js";import"./chunk.UVLPVHID.js";import"./chunk.HBBVVALN.js";import"./chunk.AJZBJBMO.js";export{b as actOnSeveral,a as actsForSeveral};
@@ -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{n as v}from"./chunk.QXARGANF.js";import{F as P,I as w,Q as p,Y as R,a as A,xa as b}from"./chunk.DNNL7F3P.js";import{ad as k}from"./chunk.HBBVVALN.js";import{b as a}from"./chunk.AJZBJBMO.js";var L=a(p(),1),B=v.part(e=>(0,L.jsx)(e.ActivityRail,{calls:[]}),{quiet:!0});var l=a(P(),1),S=a(p(),1),C=b(A(()=>(__graviewPreload(import.meta.url,["./chunk.74DXEKUV.js","./chunk.Y44TR4WG.js","./chunk.JFLUVZNW.js","./chunk.67PVRVAC.js","./chunk.GMZAQGH7.js","./chunk.57XTDW57.js","./chunk.WNMLA4YW.js","./chunk.VUKHDZNI.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.GZHZLJBF.js","./chunk.GXPBRYSR.js","./chunk.NV6IZJKA.js","./chunk.OJGHDWI6.js","./chunk.7OLVQ2FZ.js","./chunk.NOZEHLWG.js","./chunk.UVLPVHID.js","./chunk.QXARGANF.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.D2ILIAND.js")))),F=C.part((e,r)=>{let t=e.RecordInteractions;return(0,S.jsx)(t,{...r})},{quiet:!0});function I(e,r,t){let o=e.target;return(o.on==="record"||o.on==="field"?o.id===r:o.on==="selection"?o.ids.includes(r):o.on==="act"?o.id===r:!1)||e.offered.some(n=>n.id===`record:${r}`||n.id.startsWith(`fill:${r}:`))||(e.batches??[]).some(n=>t(n).includes(r))}function T({id:e,style:r,headingStyle:t,className:o}){let{ai:d,aiDesk:n,store:f}=R(),{entries:y}=w(n),s=d.off===!0;(0,l.useEffect)(()=>{s||n.load()},[n,s]);let g=f.log.length,m=(0,l.useMemo)(()=>{let x=u=>f.log.all().flatMap(h=>h.batch===u?h.writes:[]);return y.filter(u=>I(u,e,x))},[y,e,f,g]);return s||m.length===0?null:(0,S.jsx)(l.Suspense,{fallback:null,children:(0,S.jsx)(F,{entries:m,...r?{style:r}:{},...t?{headingStyle:t}:{},...o?{className:o}:{}})})}var c=a(P(),1),i=a(p(),1);function ro({context:e,stop:r,title:t,label:o,style:d,className:n,children:f,...y}){let s=k(e.views?.arrangement?.()),g=f??(0,i.jsxs)(i.Fragment,{children:["In ",s==="Scene"?"the scene":s.replace(/^The /,"the ")," ",(0,i.jsx)("span",{"aria-hidden":"true",children:"\u2197"})]}),m=o?{"aria-label":o}:{};if(e.overview){let x=e.overview;return(0,i.jsx)("a",{href:r,...y,...m,...t?{title:t}:{},style:d,...n?{className:n}:{},onClick:u=>{u.preventDefault(),x(r)},children:g})}return e.embedded?null:(0,i.jsx)("a",{href:`${e.sceneHref??"/"}${r}`,...y,...m,...t?{title:t}:{},style:d,...n?{className:n}:{},children:g})}function oo(){return(0,i.jsx)("a",{href:"#fresh","data-testid":"start-fresh",title:"Forget every edit made in this browser and return to the example",onClick:e=>{e.preventDefault();let r=new URL(window.location.href);r.searchParams.set("fresh","1"),window.location.assign(r.toString())},style:{color:"inherit",display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24},children:"Start fresh"})}function to(e){let r=(0,c.useRef)(0),t=(0,c.useCallback)(o=>e.subscribe(()=>{r.current+=1,o()}),[e]);return(0,c.useSyncExternalStore)(t,()=>r.current,()=>0)}export{B as a,T as b,ro as c,oo as d,to as e};
@@ -1 +0,0 @@
1
- import{a as ce,c as ge,d as ye,f as he}from"./chunk.VUKHDZNI.js";import{f as q,i as k,j as pe,k as ue,q as fe,r as me}from"./chunk.7OLVQ2FZ.js";import{b as de}from"./chunk.NOZEHLWG.js";import{c as se,f as le}from"./chunk.UVLPVHID.js";import{F as Ae,Q as ae,Z as ie,i as re,v as oe}from"./chunk.DNNL7F3P.js";import{Ca as ee,Na as ne,Oa as te,ba as Q,da as X,ka as Z}from"./chunk.HBBVVALN.js";import{b as T}from"./chunk.AJZBJBMO.js";var l=T(Ae(),1),i=T(ae(),1);function He({affordance:n,onApply:a,onCancel:p,store:b}){let y=ie(),s=b??y?.store,[S,G]=(0,l.useState)({}),[f,C]=(0,l.useState)(""),[F,I]=(0,l.useState)(B),[J,_]=(0,l.useState)(void 0),U=(0,l.useId)(),P=(0,l.useRef)(null),x=n.open.filter(e=>!(e.name in S)),o=x[0],w=s.allMutations().find(e=>e.name===n.mutation),j=(0,l.useMemo)(()=>Oe(w,s,n.args??{}),[w,s,n.args]),d=o?j[o.name]:void 0,$=me(n.open.filter(e=>e.shape?.type==="date").map(e=>e.name)),we=(()=>{if(!$||o?.name!==$.end||o.shape?.type!=="date")return;let e=S[$.start];if(typeof e!="string")return;let r=j[$.start];return fe(typeof r=="string"?r:void 0,e,typeof d=="string"?d:void 0,{time:o.shape.time===!0,instant:o.shape.instant===!0})})();if((0,l.useEffect)(()=>{C(we??be(d,o?.shape)),I(Array.isArray(d)?d:B),_(d)},[o?.name]),(0,l.useEffect)(()=>{P.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[o?.name]),(0,l.useLayoutEffect)(()=>{let e=P.current,r=typeof document>"u"?null:document.activeElement;if(!e||r&&r!==document.body&&!e.contains(r))return;let u=e.querySelector("form input, [role=group] button:not([disabled])");u&&u!==r&&u.focus()},[o?.name]),!o)return null;let h=e=>{let r=d!==void 0&&JSON.stringify(e)===JSON.stringify(d)?void 0:e,u={...S,[o.name]:r};if(n.open.filter(R=>!(R.name in u)).length===0){let R=a(Object.fromEntries(Object.entries(u).filter(([,M])=>M!==void 0)));R&&R.length>0&&G(Object.fromEntries(Object.entries(u).filter(([M])=>!R.includes(M))))}else G(u)},A=o.optional?(0,i.jsx)("button",{type:"button",onClick:()=>h(void 0),style:{fontSize:"0.8125rem"},children:"Skip"}):null,t=o.shape??{type:"unknown"},c=t.type==="number"?t.amount:void 0,g=Ne(o,t),m=q(s.schema,w,o.name),V=ee((w?.input?.shape??{})[o.name]),ve=te((w?.input?.shape??{})[o.name]),O=ne(o.name),ke=typeof d=="boolean"?d?"yes":"no":d,[W,Se]=(0,l.useState)(""),Y=(0,l.useMemo)(()=>{let e=g.map(r=>s.graph.getNode(r)).filter(r=>r!==void 0);return de(e,r=>s.schema.tryDefinition(r))},[g,s]),L=e=>{let r=Ce(s,t,e),u=t.type==="choice"||t.type==="several"&&t.of.type==="choice"?m.option(e):r,N=Y.get(e);return N?`${u} \xB7 ${N}`:u},z=(0,l.useMemo)(()=>{let e=W.trim().toLowerCase();return e===""?g:g.filter(r=>L(r).toLowerCase().includes(e))},[g,W,s,t,Y]),v=t.type==="several",H=t.type==="file"?t:t.type==="several"&&t.of.type==="file"?t.of:void 0,K=v&&g.length===0,D=o.kinds&&o.kinds.length>0&&!o.kinds.includes("*")?o.kinds.map(e=>X(Z(s.schema.tryDefinition(e),e))).join(" or "):m.label,xe=n.open.length>1?`${D} \xB7 ${n.open.length-x.length+1} of ${n.open.length}`:D;return(0,i.jsxs)("div",{ref:P,"data-graview-asking":n.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,padding:"5px 0 2px"},children:[n.open.length>1||g.length>0?(0,i.jsx)("span",{id:U,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:xe}):null,g.length>E?(0,i.jsx)("input",{type:"search",value:W,onChange:e=>Se(e.target.value),placeholder:`Filter ${g.length}\u2026`,"aria-label":`Filter ${D}`,"data-testid":"ask-filter",style:{font:"inherit",fontSize:"0.8125rem",minWidth:0,padding:"3px 7px"}}):null,ve?(0,i.jsxs)("form",{style:{display:"grid",gap:4},onSubmit:e=>{e.preventDefault(),h(J??(d===void 0?void 0:null))},children:[(0,i.jsx)(ye,{value:J,onChange:_,start:O?S[O]??j[O]:void 0,label:`${O?q(s.schema,w,O).label:m.label} repeats`,name:o.name}),(0,i.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,i.jsx)("button",{type:"submit",style:{fontSize:"0.8125rem"},children:x.length>1?"Next":"Apply"}),A]})]}):V?(0,i.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,i.jsx)(ge,{relation:V,value:d,onChange:h,label:m.label}),A]}):H?(0,i.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,i.jsx)(ce,{as:"control",value:d,onChange:h,several:v,image:H.image===!0,video:H.video===!0,label:m.label}),A]}):g.length>0?(0,i.jsxs)("div",{role:"group","aria-labelledby":U,style:{display:"flex",flexWrap:"wrap",gap:4},children:[z.slice(0,E).map(e=>{let r=v?F.includes(e):e===ke;return(0,i.jsx)("button",{type:"button","aria-label":`${D}: ${L(e)}`,...v?{"aria-pressed":r}:r?{"aria-current":!0}:{},style:{padding:"3px 9px",fontSize:"0.8125rem",...r?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"}:{}},onClick:()=>v?I(u=>u.includes(e)?u.filter(N=>N!==e):[...u,e]):h(t.type==="boolean"?e==="yes":e),children:L(e)},e)}),z.length>E?(0,i.jsxs)("span",{"data-testid":"ask-more",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:[z.length-E," more \u2014 type to narrow"]}):null,z.length===0?(0,i.jsxs)("span",{"data-testid":"ask-none",style:{alignSelf:"center",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["None of the ",g.length," match that."]}):null,v?(0,i.jsx)("button",{type:"button",disabled:F.length===0,style:{fontSize:"0.8125rem"},onClick:()=>{let e=F;I(B),h(e)},children:x.length>1?"Next":"Apply"}):null,A]}):(0,i.jsxs)("form",{style:{display:"flex",flexWrap:"wrap",gap:4},onSubmit:e=>{if(e.preventDefault(),d!==void 0&&f===be(d,t)){h(void 0);return}if(K){h(f.split(/[,\n]/).map(r=>r.trim()).filter(Boolean));return}if(f.trim().length!==0){if(c){let r=ue(f,c);r!==void 0&&h(r);return}h(t.type==="number"?t.duration?le(f)??f:Number(f):f)}},children:[t.type==="text"&&t.long?(0,i.jsx)("textarea",{autoFocus:!0,name:o.name,"aria-label":m.label,placeholder:m.label,value:f,rows:4,onChange:e=>C(e.target.value),onKeyDown:e=>{e.key==="Escape"?p():e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())},style:{flex:"1 1 100%",minWidth:0,font:"inherit",fontSize:"0.875rem",lineHeight:1.45,padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",resize:"vertical",fieldSizing:"content",minHeight:"5.5em",maxHeight:"40vh"}}):t.type==="date"?(0,i.jsx)(he,{autoFocus:!0,name:o.name,label:m.label,value:f===""?void 0:f,time:t.time===!0,instant:t.instant===!0,onChange:e=>C(e??""),onCancel:p,boxStyle:{fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}):(0,i.jsx)("input",{autoFocus:!0,type:t.type==="number"&&!t.duration&&!c?"number":t.type==="text"&&t.holds==="phone"?"tel":"text",...c?{inputMode:"decimal","data-graview-amount":c.format??"unit"}:{},name:o.name,"aria-label":m.label,placeholder:K?`${m.label}, separated by commas`:c?`${m.label}, ${k(c).hint} \u2014 ${k(c).prefix??""}${k(c).placeholder}${k(c).suffix?` ${k(c).suffix}`:""}`:m.label,value:f,...t.type==="number"&&t.min!==void 0?{min:t.min}:{},...t.type==="number"&&t.max!==void 0?{max:t.max}:{},...t.type==="number"&&t.step!==void 0?{step:t.step}:{},onChange:e=>C(e.target.value),onKeyDown:e=>{e.key==="Escape"&&p()},style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"5px 8px",borderRadius:7,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,i.jsx)("button",{type:"submit",disabled:!K&&f.trim().length===0,style:{fontSize:"0.8125rem"},children:x.length>1?"Next":"Apply"}),A]})]})}var B=[];function Oe(n,a,p){let b=n?.derived?.act==="edit"&&n.subject?p[n.subject.arg]:void 0,y=typeof b=="string"?a.graph.getNode(b):void 0;return y?Object.fromEntries((n.writes??[]).filter(s=>y[s]!==void 0&&y[s]!==null).map(s=>[s,y[s]])):{}}function be(n,a){return typeof n=="number"?a?.type==="number"&&a.amount?pe(n,a.amount):String(n):Array.isArray(n)?n.every(p=>typeof p=="string")?n.join(", "):"":typeof n!="string"?"":n}var E=10;function Ne(n,a){return n.candidates&&n.candidates.length>0?n.candidates:a.type==="choice"?a.options:a.type==="several"&&a.of.type==="choice"?a.of.options:a.type==="boolean"?Re:[]}var Re=["yes","no"];function Ce(n,a,p){return a.type==="boolean"||a.type==="choice"||a.type==="several"&&a.of.type==="choice"?p:$e(n,p)}function $e(n,a){let p=re(a);if(p){let s=se(n.schema,n.graph.getNode(p.from)?.kind??"",p.kind,"out");return s.charAt(0).toUpperCase()+s.slice(1)}let b=oe(a);if(b.length>0)return b.map(s=>n.schema.tryDefinition(s)?.plural??`${s}s`).join(" + ");let y=n.graph.getNode(a);return y?Q(n.schema.tryDefinition(y.kind),y):a}export{He as a,$e as b};
@@ -1,88 +0,0 @@
1
- import{a as qe,c as Be}from"./chunk.SNKOPWAD.js";import{b as Ve}from"./chunk.LVNAB2BW.js";import{a as Ie,b as Ke,c as Fe,d as j}from"./chunk.YW2BZ2LH.js";import{j as Me,k as Le}from"./chunk.HYAKRLPT.js";import"./chunk.IHBIRAC4.js";import"./chunk.CYPTJNES.js";import"./chunk.4NCXMVPY.js";import"./chunk.TN4GY6LW.js";import{e as Ee}from"./chunk.QJYALCIW.js";import"./chunk.HSRGYZOR.js";import"./chunk.BRBY5WJT.js";import{m as Pe}from"./chunk.ELY2RMGE.js";import{a as Te,b as Oe}from"./chunk.UV2TSAB4.js";import{h as $e}from"./chunk.6SK2K72G.js";import{e as Re,f as De}from"./chunk.NNNVB6RV.js";import"./chunk.HJCQ6I3S.js";import{e as ne}from"./chunk.AWRS6TUN.js";import"./chunk.KAWP4RNR.js";import{a as Se,b as Ne,j as Ae}from"./chunk.BXWO6ILK.js";import"./chunk.G4JJXA63.js";import"./chunk.UPBUF7KR.js";import"./chunk.FGYCYLUS.js";import"./chunk.NZJZIYDK.js";import"./chunk.3V2M3S4U.js";import"./chunk.EKUAI5YL.js";import{a as xe}from"./chunk.57XTDW57.js";import"./chunk.MJLUAGEV.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import"./chunk.UT6642FC.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.TX5QIZEP.js";import"./chunk.TSI4O3GH.js";import"./chunk.SZMWJHU2.js";import"./chunk.WVUJXDXZ.js";import"./chunk.YFW5BF6J.js";import{a as ye}from"./chunk.QYWBQ5NX.js";import"./chunk.ENJKCSNX.js";import"./chunk.LJE5J3JK.js";import"./chunk.X2OLXTRL.js";import"./chunk.JDRM6XXD.js";import"./chunk.GZHZLJBF.js";import{r as ke}from"./chunk.GXPBRYSR.js";import"./chunk.NV6IZJKA.js";import"./chunk.OJGHDWI6.js";import{g as be}from"./chunk.7OLVQ2FZ.js";import{d as te}from"./chunk.NOZEHLWG.js";import{c as me}from"./chunk.UVLPVHID.js";import{C as Ce,n as J}from"./chunk.QXARGANF.js";import{F as tt,Q as we,R as ve,Y as V,_ as X,ha as he,k as ge,m as ue,n as fe,oa as ee,pa as Y,s as U}from"./chunk.DNNL7F3P.js";import{H as se,N as de,T as D,Ta as Z,ba as G,ea as le,ga as pe,ia as ce}from"./chunk.HBBVVALN.js";import{b as Q}from"./chunk.AJZBJBMO.js";var f=Q(tt(),1);var nt=300,it=14,z=50,at=3,ot=2;function _e(e,n,o){let p=e.tryDefinition(n)?.fields?.shape;return(p?.[o]===void 0?void 0:ye(p[o]))?.type}var rt=(e,n)=>Object.keys(e.tryDefinition(n)?.fields?.shape??{}),st=e=>e==="date"||e==="datetime",Ge=/^(due|dueOn|dueAt|dueDate|deadline|by)$/i,dt=/^(date|on|day|when|at|start|starts|startsOn|startsAt|begins|from|sown|scheduled|scheduledFor|planned|plannedFor)$/i,lt=/^(done|finished|complete|completed|closed)$/i;function ae(e,n){let o=e.tryDefinition(n),p=rt(e,n),a=p.filter(u=>st(_e(e,n,u)));if(a.length===0)return;let i=o?.fieldRoles??{},s=u=>i[u]!==void 0&&a.includes(i[u])?i[u]:void 0,c=s("start")??s("when")??a.find(u=>Ge.test(u))??a.find(u=>dt.test(u));if(!c)return;let S=s("end")??a.find(u=>u!==c&&/^(end|ends|until|to|finish|finished|harvested|through)$/i.test(u)),g=p.find(u=>lt.test(u)&&_e(e,n,u)==="boolean");return{field:c,due:Ge.test(c),...S?{end:S}:{},...g?{done:g}:{}}}function ie(e,n){return Math.round((Date.parse(`${n.slice(0,10)}T00:00:00Z`)-Date.parse(`${e.slice(0,10)}T00:00:00Z`))/864e5)}var q=e=>typeof e=="string"&&/^\d{4}-\d{2}-\d{2}/.test(e)?e.slice(0,10):void 0;function je(e,n,o,p){let a=ne(e,n);if(a&&o.length>0&&o.length<=nt)return{shape:"board",field:a.field};let i=ae(e,n);if(i&&!i.due){let s=r=>{let y=q(r[i.field]),h=q(Z(r,i.field,p));return y&&h?ie(y,h):0},c=o.map(r=>({from:q(Z(r,i.field,p)),to:i.end&&q(r[i.end])?L(q(r[i.end]),s(r)):void 0})).filter(r=>r.from!==void 0).map(r=>({from:r.from,to:r.to&&r.to>r.from?r.to:r.from})),S=`${p.slice(0,7)}-01`,g=L(`${L(S,31).slice(0,7)}-01`,-1),u=c.filter(r=>r.from<=g&&r.to>=S),w=c.map(r=>ie(r.from,r.to)).sort((r,y)=>r-y),l=w[Math.floor(w.length/2)]??0;if(u.length>0&&l<=it){let r=L(p,-((new Date(`${p}T00:00:00Z`).getUTCDay()+6)%7)),y=L(r,6),h=u.every(m=>m.from>=r&&m.to<=y);return{shape:"calendar",start:i.field,...i.end?{end:i.end}:{},...i.done?{done:i.done}:{},range:h?"week":"month"}}}return{shape:"table"}}function ze(e,n){let o=ae(e,n);return o?{by:o.field,direction:o.due?"asc":"desc"}:void 0}function He(e,n,o={}){switch(n.shape){case"board":return{lens:"columns",kind:e,column:n.field};case"calendar":return{lens:"calendar",kind:e,start:n.start,...n.end?{end:n.end}:{},...n.done?{done:n.done}:{},range:n.range};case"table":return{lens:"blocks",kind:e,as:"row",...o.group?.by?{group:o.group.by}:{},...o.sort?{sort:{by:o.sort.by,...o.sort.direction==="desc"?{direction:"desc"}:{}}}:{}}}}var pt=60;function We(e,n,o,p){let a=e.tryDefinition(n),i=o.slice(0,pt),s=new Map;i.forEach(w=>{let l=G(a,w);te(w,a,{glance:!0,said:[l]}).forEach((r,y)=>{if(r.long||r.files||r.app)return;let h=s.get(r.key);h?h.count++:s.set(r.key,{label:r.label,count:1,at:y})})});let c=Math.max(1,Math.ceil(i.length/3)),S=[...s.entries()].filter(([,w])=>w.count>=c).sort((w,l)=>w[1].at-l[1].at).slice(0,at).map(([w,l])=>({about:"field",key:w,label:l.label})),g=new Map;for(let w of i){let l=new Set;for(let[r,y]of[["out",p.outEdges(w.id)],["in",p.inEdges(w.id)]])for(let h of y){let m=p.getNode(r==="out"?h.to:h.from);if(!m||m.id===w.id)continue;let b=`${h.kind}|${r}`;if(l.has(b))continue;l.add(b);let A=g.get(b);A?A.count++:g.set(b,{edge:h.kind,direction:r,far:m.kind,count:1})}}let u=[...g.entries()].sort((w,l)=>l[1].count-w[1].count).slice(0,ot).map(([w,l])=>{let r=me(e,l.direction==="out"?n:l.far,l.edge,l.direction);return{about:"edge",key:w,label:r.charAt(0).toUpperCase()+r.slice(1),edge:l.edge,direction:l.direction}});return[...S,...u]}function Ze(e,n,o,p){if(o.about==="field"){let s=e.tryDefinition(n.kind);return{text:te(n,s,{excerpt:!0}).find(S=>S.key===o.key)?.value??""}}let i=(o.direction==="out"?p.outEdges(n.id):p.inEdges(n.id)).filter(s=>s.kind===o.edge).map(s=>p.getNode(o.direction==="out"?s.to:s.from)).filter(s=>s!==void 0).map(s=>G(e.tryDefinition(s.kind),s));return i.length===0?{text:""}:i.length===1?{text:i[0]}:{text:`${i[0]} +${i.length-1}`,title:i.join(", ")}}function Ue(e,n,o=()=>{}){let p=new Map;for(let a of e){let i=a.nodeIds.filter(c=>n.has(c));if(i.length===0&&!(a.subjectId!==void 0&&n.has(a.subjectId)))continue;let s=p.get(a.invariant)??{invariant:a.invariant,label:o(a.invariant)||a.label||a.message,violations:[],records:new Set};s.violations.push(a);for(let c of i)s.records.add(c);a.subjectId!==void 0&&n.has(a.subjectId)&&s.records.add(a.subjectId),p.set(a.invariant,s)}return[...p.values()].sort((a,i)=>i.violations.length-a.violations.length).map(a=>({invariant:a.invariant,label:a.label,violations:a.violations,records:[...a.records]}))}var Ye=6;function Je(e,n,o,p){let a=ae(e,n);if(!a)return;let i=ne(e,n),s=g=>{if(a.done!==void 0&&g[a.done]===!0)return!0;if(!i)return!1;let u=i.values.indexOf(String(g[i.field]));return u>=0&&i.tiers[u]==="done"},c=0,S=0;for(let g of o){let u=q(Z(g,a.field,p));if(!u||s(g))continue;let w=ie(p,u);a.due&&w<0?c++:w>=0&&w<=Ye&&S++}if(!(c===0&&S===0))return{field:a.field,due:a.due,overdue:c,soon:S}}function L(e,n){return new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)+n*864e5).toISOString().slice(0,10)}function oe(e,n,o){return n==="overdue"?[{key:e.field,value:`before:${o}`}]:[{key:e.field,value:`after:${L(o,-1)}`},{key:e.field,value:`before:${L(o,Ye+1)}`}]}function Qe(e,n,o,p){let a=new Set,i=new Set;for(let s of e)if(!(s.at<=o))for(let c of s.primitives)c.op==="add-node"&&c.node?.kind===n?a.add(c.node.id):c.op==="patch-node"&&c.id!==void 0&&p(c.id)===n&&i.add(c.id);for(let s of a)i.delete(s);return{added:[...a].filter(s=>p(s)===n).length,changed:[...i].filter(s=>p(s)===n).length}}var t=Q(we(),1),Xe="as",ct=(e,n)=>`graview:kind-seen:${e}:${n}`;function gt(e){try{return localStorage.getItem(e)}catch{return null}}function ut(e,n){try{localStorage.setItem(e,n)}catch{}}var ft=(e,n)=>({...ge(fe(e,!1),n),relation:null});function Jt({kind:e,members:n,flagged:o=[],label:p,retired:a=0}){let{store:i,brand:s,principal:c,views:S,view:g}=V(),{go:u}=Y(),w=X(),l=i.schema,r=l.tryDefinition(e),y=p??pe(l,e),h=i.today()??se(),m=n,b=(0,f.useId)(),A=(0,f.useMemo)(()=>je(l,e,m,h),[l,e,m,h]),x=g.within?.[Xe]==="table"?{shape:"table"}:A,k=Te(g),C=x.shape==="table"&&!k.sort?ze(l,e):void 0,v=C?{...k,sort:C}:k,R=(0,f.useMemo)(()=>new Set(o),[o]),T=(0,f.useMemo)(()=>$e(m,v,{schema:l,graph:i.graph,flagged:R,today:h}),[m,v,l,i,R,h,w]),I=(0,f.useMemo)(()=>De(l,Re(l,e)),[l,e]),M=S.arrangement?.()?.lists?.[e]?.filters,K=$=>u(Oe(g,$)),B=(0,f.useMemo)(()=>({name:s?.name??"app",schema:l,...i.policy?{policy:i.policy}:{}}),[s,l,i]),H=JSON.stringify(He(e,x,v)),P=(0,f.useMemo)(()=>{let $=Ae(JSON.parse(H),{app:B,sight:Ne(B,c)});return Se($)?void 0:$},[H,B,c]),W=x.shape!=="table"&&P!==void 0;return(0,t.jsxs)("section",{"aria-labelledby":b,className:"graview-kind-stop","data-testid":"kind-stop","data-graview-kind-stop":e,"data-graview-shape":x.shape,children:[(0,t.jsx)("style",{children:St}),(0,t.jsx)(wt,{kind:e,plural:y,count:m.length,headingId:b,description:r?.description}),(0,t.jsx)(ht,{kind:e,plural:y,members:m,today:h,arrangement:v,onArrange:K}),(m.length>1||a>0)&&!W?(0,t.jsx)(Pe,{schema:l,graph:i.graph,kind:e,arrangement:v,onChange:K,offers:I,...M?{filters:M}:{},kept:{shown:T.nodes.length,of:m.length},testId:"kind-arrange",chips:{nodes:m,flagged:R,today:h},...a>0?{past:{count:a,widen:()=>u(Ee(g,!0))}}:{}}):null,m.length>0?(0,t.jsx)(yt,{derived:A,shape:x,draft:P}):null,(0,t.jsx)("div",{className:"graview-kind-stop-body","data-testid":"kind-stop-body",children:m.length===0?(0,t.jsx)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-empty",children:"Nothing here yet."}):W?(0,t.jsx)(kt,{draft:P,nodes:m}):T.nodes.length===0?(0,t.jsxs)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-none-kept",children:["None of the ",D(m.length)," ",y.toLowerCase()," ",v.query?`says \u201C${v.query}\u201D`:"is kept by these filters","."," ",(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link",onClick:()=>K({}),children:"Show them all"})]}):(0,t.jsx)(xt,{kind:e,nodes:T.nodes,groups:T.grouped?T.groups.map($=>({key:$.key,label:$.label,nodes:$.nodes})):void 0,flagged:R,plural:y,arrangement:v})})]})}function wt({kind:e,plural:n,count:o,headingId:p,description:a}){let{store:i,setSelection:s,setMenuAt:c}=V(),S=(0,f.useMemo)(()=>({about:[U(e)]}),[e]),{affordances:g}=Me(S),{apply:u,preview:w}=Le(),l=(0,f.useMemo)(()=>{let x=k=>i.allMutations().find(C=>C.name===k.mutation)?.creates?.includes(e)??!1;return g.find(k=>!k.destructive&&!k.setsAside&&x(k))},[g,i,e]),[r,y]=(0,f.useState)(!1),[h,m]=(0,f.useState)(null),b=(0,f.useRef)(null),A=(0,f.useRef)(null);(0,f.useEffect)(()=>{let x=A.current;!x||x.closest('[data-testid="kind-stop"]')?.contains(document.activeElement)||x.focus({preventScroll:!0})},[e]);let O=(x,k)=>{try{w(x,k),u(x,k),m(null),y(!1),requestAnimationFrame(()=>b.current?.focus())}catch(C){return m(be(i.schema,i.allMutations(),C)),[]}};return(0,t.jsxs)("header",{className:"graview-kind-stop-head",children:[(0,t.jsxs)("div",{className:"graview-kind-stop-title",children:[(0,t.jsx)("h2",{id:p,ref:A,tabIndex:-1,"data-testid":"kind-stop-title",children:n}),(0,t.jsxs)("p",{"data-testid":"kind-stop-count",children:[le(i.schema,e,o),a?` \xB7 ${a}`:""]})]}),(0,t.jsxs)("div",{className:"graview-kind-stop-acts",children:[l?(0,t.jsx)("button",{ref:b,type:"button",className:"graview-kind-stop-primary","data-testid":"kind-stop-primary","data-affordance":l.id,"aria-expanded":l.open.length>0?r:void 0,onClick:()=>{m(null),l.open.length===0?O(l):y(x=>!x)},children:l.label}):null,(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-quiet","data-testid":"kind-stop-acts","aria-haspopup":"menu","aria-label":`What can be done with the ${n.toLowerCase()}`,onClick:x=>{let k=x.currentTarget.getBoundingClientRect();s([U(e)]),c({x:Math.round(k.left),y:Math.round(k.bottom+4),on:U(e)})},children:"Acts\u2026"})]}),r&&l?(0,t.jsx)("div",{className:"graview-kind-stop-ask","data-testid":"kind-stop-ask","aria-label":l.label,role:"group",children:(0,t.jsx)(xe,{affordance:l,onApply:x=>O(l,x),onCancel:()=>{y(!1),b.current?.focus()}})}):null,h?(0,t.jsx)("p",{role:"alert",className:"graview-kind-stop-failed","data-testid":"kind-stop-failed",children:h}):null]})}var vt=J.part((e,n)=>(0,t.jsx)(e.ProblemRows,{...n}),{what:"The problems",as:"li"});function ht({kind:e,plural:n,members:o,today:p,arrangement:a,onArrange:i}){let{store:s,brand:c,setSelection:S}=V(),g=s.schema,u=ee(),w=(0,f.useMemo)(()=>new Set(o.map(v=>v.id)),[o]),l=(0,f.useMemo)(()=>Ue(u,w,v=>s.allInvariants().find(R=>R.name===v)?.label),[u,w,s]),r=(0,f.useMemo)(()=>Je(g,e,o,p),[g,e,o,p]),y=ct(Ce(c,g),e),[h]=(0,f.useState)(()=>gt(y));(0,f.useEffect)(()=>()=>ut(y,new Date().toISOString()),[y]);let m=X(),b=(0,f.useMemo)(()=>h?Qe(s.log.all(),e,h,v=>s.graph.getNode(v)?.kind):null,[h,s,e,m]),[A,O]=(0,f.useState)(null),x=v=>i({...a,filter:[...(a.filter??[]).filter(R=>!v?.some(T=>T.key===R.key)),...v??[]]}),k=l.reduce((v,R)=>v+R.violations.length,0),C=[];if(r&&(r.overdue>0||r.soon>0)){let v=r.field;C.push((0,t.jsxs)("li",{"data-testid":"kind-stop-dates",children:[r.overdue>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact","data-tone":"warn",onClick:()=>x(oe(r,"overdue",p)),"aria-label":`${D(r.overdue)} overdue \u2014 show only these`,children:[D(r.overdue)," overdue"]}):null,r.soon>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact",onClick:()=>x(oe(r,"soon",p)),"aria-label":`${D(r.soon)} in the next 7 days \u2014 show only these`,children:[D(r.soon)," ",r.due?"due":""," in the next 7 days"]}):null,(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" by ",ce(g.tryDefinition(e),v).toLowerCase()]})]},"dates"))}if(l.length>0&&C.push((0,t.jsxs)("li",{"data-testid":"kind-stop-problems","data-graview-problems":k,children:[(0,t.jsxs)("span",{className:"graview-kind-stop-warn",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0 "}),k===1?"1 problem":`${D(k)} problems`]}),(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" in ",n.toLowerCase(),":"]}),(0,t.jsx)("ul",{className:"graview-kind-stop-rules",children:l.map(v=>(0,t.jsx)(mt,{group:v,open:A===v.invariant,onToggle:()=>O(R=>R===v.invariant?null:v.invariant),onPick:R=>S([R])},v.invariant))}),(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-only-problems",onClick:()=>x([{key:"is",value:"flagged"}]),children:["Show only the ",n.toLowerCase()," with a problem"]})]},"problems")),b&&(b.added>0||b.changed>0)){let v=[b.added>0?`${D(b.added)} added`:"",b.changed>0?`${D(b.changed)} changed`:""].filter(Boolean);C.push((0,t.jsxs)("li",{"data-testid":"kind-stop-since",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["Since you last looked (",de(h.slice(0,10)),"):"]})," ",v.join(", ")]},"since"))}return C.length===0?null:(0,t.jsx)("ul",{className:"graview-kind-stop-going-on","aria-label":`What is going on in the ${n.toLowerCase()}`,"data-testid":"kind-stop-going-on",children:C})}function mt({group:e,open:n,onToggle:o,onPick:p}){let a=(0,f.useId)();return(0,t.jsxs)("li",{"data-graview-rule":e.invariant,children:[(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-rule","aria-expanded":n,"aria-controls":a,onClick:o,onPointerEnter:J.prefetch,onFocus:J.prefetch,children:[(0,t.jsx)("span",{"aria-hidden":"true",className:"graview-kind-stop-chevron","data-open":n||void 0,children:"\u203A"}),e.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",D(e.violations.length)]})]}),n?(0,t.jsx)("ol",{id:a,className:"graview-kind-stop-problem-rows","data-testid":"kind-stop-problem-rows",children:(0,t.jsx)(f.Suspense,{fallback:null,children:(0,t.jsx)(vt,{violations:e.violations,pick:i=>{let s=i.subjectId??e.records[0]??i.nodeIds[0];s!==void 0&&p(s)}})})}):null]})}var bt={board:"Board",calendar:"Calendar",table:"Table"};function yt({derived:e,shape:n,draft:o}){let{view:p}=V(),{go:a}=Y(),{keep:i}=qe(Be()),[s,c]=(0,f.useState)(!1),S=e.shape==="table"?[]:[e.shape,"table"];return(0,t.jsxs)("div",{className:"graview-kind-stop-shape","data-testid":"kind-stop-shape",children:[S.length>0?(0,t.jsx)("span",{role:"group","aria-label":"Show as",className:"graview-kind-stop-switch",children:S.map(g=>(0,t.jsx)("button",{type:"button","aria-pressed":n.shape===g,"data-testid":`kind-stop-as-${g}`,onClick:()=>a(ue(p,Xe,g===e.shape?null:g)),children:bt[g]},g))}):null,(0,t.jsx)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-derived",children:o?`${o.said.replace(/\.$/,"")}, derived from the declaration`:"Derived from the declaration"}),o?(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-keep",disabled:s,title:`Keep \u201C${o.title}\u201D as a lens: a place of its own`,onClick:()=>{c(!0),i(o).finally(()=>c(!1))},children:"Keep as a lens"}):null]})}function kt({draft:e,nodes:n}){let o=Ve(e.drawn);return(0,t.jsx)("div",{className:"graview-kind-stop-lens","data-graview-draft":e.lens.name,children:(0,t.jsx)(ve,{mode:"scene",children:(0,t.jsx)(ke,{kind:e.kind,view:e.title,children:(0,t.jsx)(o,{nodes:n,label:e.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})})}function xt({kind:e,nodes:n,groups:o,flagged:p,plural:a,arrangement:i}){let{store:s,views:c,view:S,selection:g,setSelection:u,setMenuAt:w,principal:l}=V(),{go:r}=Y(),y=s.schema,h=s.graph,m=(0,f.useMemo)(()=>(o?o.flatMap(d=>d.nodes):n).map(d=>d.id),[n,o]),b=Ie(m),A=(0,f.useMemo)(()=>s.permittedMutations(l).some(d=>{let N=d.subject?.kinds;return N!==void 0&&(N==="*"||N.includes(e))}),[s,l,e]),O=(0,f.useRef)(null),x=d=>{b.choose(d),requestAnimationFrame(()=>{let N=b.list.current;((d[0]===void 0?null:N?.querySelector(`[data-graview-choose-box="${CSS.escape(d[0])}"]`))??N)?.focus({preventScroll:!0})})},k=b.chosen.length,C=c.lookup(e,{cardinality:"one",fidelity:"glyph"}),v=C!==void 0&&!he(C)?C:void 0,R=d=>g.includes(d),T=ee(),I=(0,f.useMemo)(()=>We(y,e,n,h),[y,e,n,h]),[M,K]=(0,f.useState)(z);(0,f.useEffect)(()=>K(z),[i.query,i.filter?.length,i.sort?.by,i.group?.by]);let B=y.tryDefinition(e),H=d=>T.filter(N=>N.nodeIds.includes(d)||N.subjectId===d).map(N=>N.message),P=i.sort?.by,W=`${a}${i.sort?`, in order of ${I.find(d=>d.key===P)?.label.toLowerCase()??P}`:""}`,$=M,et=d=>{let N=G(B,d),F=p.has(d.id)?H(d.id):[];return(0,t.jsxs)("tr",{"data-graview-pick":d.id,tabIndex:-1,"data-graview-record":d.id,"data-flagged":F.length>0||void 0,...A?{"data-graview-choose":d.id}:{},children:[A?(0,t.jsx)("td",{className:"graview-choose-at",children:(0,t.jsx)("input",{...b.boxProps(d.id,N),onPointerEnter:j,onFocus:j})}):null,(0,t.jsxs)("th",{scope:"row",className:"graview-kind-stop-name",children:[v?(0,t.jsx)("div",{"data-graview-pick":d.id,className:"graview-kind-stop-own-row",children:(0,t.jsx)(v,{node:d,cardinality:"one",fidelity:"glyph",mode:"scene",selected:R(d.id),...F.length>0?{flagged:[d.id]}:{}})}):(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-go",title:`Go to ${N}`,onClick:()=>r(ft(S,d.id)),children:N}),F.length>0?(0,t.jsxs)("span",{className:"graview-kind-stop-flag",title:F.join(" \xB7 "),children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0"}),(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:`Problem: ${F.join(". ")}`})]}):null]}),I.map(_=>{let E=Ze(y,d,_,h);return(0,t.jsx)("td",{"data-label":_.label,"data-short":E.text.length>0&&E.text.length<=14||void 0,"data-empty":E.text?void 0:"",...E.title?{title:E.title}:{},children:E.text?(0,t.jsx)("span",{children:E.text}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("b",{"aria-hidden":"true",children:"\u2014"}),(0,t.jsx)("i",{className:"graview-kind-stop-hidden",children:"none"})]})},_.key)}),(0,t.jsx)("td",{className:"graview-kind-stop-row-acts",children:(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-acts","aria-haspopup":"menu","aria-label":`What can be done with ${N}`,onClick:_=>{let E=_.currentTarget.getBoundingClientRect();u([d.id]),w({x:Math.round(E.left),y:Math.round(E.bottom+4),on:d.id})},children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\u22EF"})})})]},d.id)},re=d=>{let N=d.slice(0,Math.max(0,$));return $-=N.length,N.map(et)};return(0,t.jsxs)("div",{className:"graview-kind-stop-table-at",...A?{...b.listProps,ref:d=>{O.current=d,b.list.current=d},tabIndex:-1,role:"group","aria-label":k>0?`${a}, ${k} chosen`:a,"data-graview-choosable":""}:{},children:[A?(0,t.jsx)("style",{children:Ke}):null,(0,t.jsxs)("table",{className:"graview-kind-stop-table","data-testid":"kind-stop-table",children:[(0,t.jsx)("caption",{className:"graview-kind-stop-hidden",children:W}),(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[A?(0,t.jsx)("td",{className:"graview-choose-at graview-choose-all",children:(0,t.jsx)("input",{type:"checkbox",className:"graview-choose-box","data-testid":"kind-stop-choose-all","aria-label":`Choose all ${D(n.length)} ${a.toLowerCase()}`,checked:k>0&&k===n.length,ref:d=>{d&&(d.indeterminate=k>0&&k<n.length)},onPointerEnter:j,onFocus:j,onChange:()=>k===n.length?b.clear():b.choose(m)})}):null,(0,t.jsx)("th",{scope:"col","aria-sort":P==="label"?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:"Name"}),I.map(d=>(0,t.jsx)("th",{scope:"col","aria-sort":d.about==="field"&&d.key===P?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:d.label},d.key)),(0,t.jsx)("th",{scope:"col",children:(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:"Acts"})})]})}),o?o.map(d=>$<=0?null:(0,t.jsxs)("tbody",{"data-graview-group":d.key,children:[(0,t.jsx)("tr",{className:"graview-kind-stop-group",children:(0,t.jsxs)("th",{scope:"rowgroup",colSpan:I.length+(A?3:2),children:[d.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",D(d.nodes.length)]})]})}),re(d.nodes)]},d.key||"-")):(0,t.jsx)("tbody",{children:re(n)})]}),A?(0,t.jsx)(Fe,{store:s,chosen:b.chosen,principal:l,anchor:()=>O.current?.closest('[data-testid="kind-stop"]')??null,of:m.length,onChooseAll:()=>b.choose(m),onClear:b.clear,onActed:x}):null,n.length>M?(0,t.jsxs)("p",{className:"graview-kind-stop-more",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-shown",children:[D(M)," of ",D(n.length)," shown"]})," ",(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-more",onClick:()=>K(d=>d+z),children:["Show ",D(Math.min(z,n.length-M))," more"]})]}):null]})}var St=`
2
- .graview-kind-stop{container-type:inline-size;box-sizing:border-box;height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;padding:16px 18px 12px;border:1px solid var(--graview-edge);border-radius:var(--graview-radius,12px);background:var(--graview-panel);color:var(--graview-ink);box-shadow:var(--graview-lift-low);overflow:auto;overscroll-behavior:contain}
3
- [data-graview-map-panel] .graview-kind-stop{height:auto;padding:4px 6px 12px;border:0;box-shadow:none;background:none;overflow:visible}
4
- .graview-kind-stop :focus-visible{outline:2px solid var(--graview-accent);outline-offset:2px}
5
- .graview-kind-stop button{font:inherit;cursor:pointer}
6
- .graview-kind-stop :is(.graview-kind-stop-link,.graview-kind-stop-rule,.graview-kind-stop-name button,.graview-kind-stop-row-acts button,.graview-kind-stop-fact,.graview-kind-stop-switch button){box-shadow:none}
7
- .graview-kind-stop-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 16px}
8
- .graview-kind-stop-title{flex:1 1 16rem;min-width:0}
9
- .graview-kind-stop-title h2{margin:0;outline-offset:2px;font-size:var(--graview-text-heading);line-height:1.3;overflow-wrap:anywhere}
10
- .graview-kind-stop-title p{margin:2px 0 0;font-size:.875rem;color:var(--graview-ink-muted);overflow-wrap:anywhere}
11
- .graview-kind-stop-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
12
- .graview-kind-stop-primary,.graview-kind-stop-quiet{min-height:32px;padding:0 14px;border-radius:8px;font-size:.875rem}
13
- .graview-kind-stop-primary{border:1px solid var(--graview-accent);background:var(--graview-accent);color:var(--graview-accent-ink);font-weight:600}
14
- .graview-kind-stop-quiet{border:1px solid var(--graview-edge);background:transparent;color:var(--graview-ink)}
15
- .graview-kind-stop-ask{flex:1 1 100%;min-width:0;padding:10px 12px;border:1px solid var(--graview-edge);border-radius:10px}
16
- .graview-kind-stop-failed{flex:1 1 100%;margin:0;font-size:var(--graview-text-small);color:var(--graview-warn)}
17
- .graview-kind-stop-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
18
- .graview-kind-stop-going-on{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.875rem}
19
- .graview-kind-stop-going-on>li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}
20
- .graview-kind-stop-fact{min-height:28px;padding:0 10px;border:1px solid var(--graview-edge);border-radius:999px;background:transparent;color:var(--graview-ink)}
21
- .graview-kind-stop-fact[data-tone=warn],.graview-kind-stop-warn{color:var(--graview-warn);font-weight:600}
22
- .graview-kind-stop-quiet-text{color:var(--graview-ink-muted)}
23
- .graview-kind-stop-rules{list-style:none;margin:0;padding:0;flex:1 1 100%;display:grid;gap:2px}
24
- .graview-kind-stop-rule{display:inline-flex;align-items:center;gap:6px;min-height:28px;max-width:100%;padding:0 6px;border:1px solid transparent;border-radius:7px;background:none;color:var(--graview-ink);text-align:left;overflow-wrap:anywhere}
25
- .graview-kind-stop-rule:hover{border-color:var(--graview-edge)}
26
- .graview-kind-stop-chevron{display:inline-block;width:.8em}
27
- .graview-kind-stop-chevron[data-open]{transform:rotate(90deg)}
28
- .graview-kind-stop-problem-rows{list-style:none;margin:2px 0 6px 18px;padding:0;max-width:44rem}
29
- .graview-kind-stop-link{min-height:28px;padding:0 4px;border:0;background:none;color:var(--graview-accent);text-decoration:underline;text-underline-offset:2px}
30
- .graview-kind-stop-link:disabled{opacity:.6;cursor:default}
31
- .graview-kind-stop-shape{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:var(--graview-text-small)}
32
- .graview-kind-stop-switch{display:inline-flex;border:1px solid var(--graview-edge);border-radius:8px;overflow:hidden}
33
- .graview-kind-stop-switch button{min-height:28px;padding:0 12px;border:0;background:transparent;color:var(--graview-ink-muted)}
34
- .graview-kind-stop-switch button+button{border-left:1px solid var(--graview-edge)}
35
- .graview-kind-stop-switch button[aria-pressed=true]{background:color-mix(in srgb,var(--graview-accent) 16%,transparent);color:var(--graview-ink);font-weight:600}
36
- .graview-kind-stop-body{flex:1 0 auto;min-width:0}
37
- .graview-kind-stop-empty{margin:24px 0;color:var(--graview-ink-muted)}
38
- .graview-kind-stop-lens{min-width:0}
39
-
40
- .graview-kind-stop-table-at{min-width:0}
41
- .graview-kind-stop-table{width:100%;border-collapse:collapse;font-size:.875rem}
42
- .graview-kind-stop-table th,.graview-kind-stop-table td{padding:7px 8px;text-align:left;vertical-align:top;border-top:1px solid var(--graview-edge);overflow-wrap:break-word}
43
- .graview-kind-stop-table td{color:var(--graview-ink)}
44
- .graview-kind-stop-table td>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
45
- .graview-kind-stop-table td[data-short]{white-space:nowrap;font-variant-numeric:tabular-nums}
46
- .graview-kind-stop-table thead th{border-top:0;font-size:var(--graview-text-small);font-weight:600;letter-spacing:.04em;color:var(--graview-ink-muted)}
47
- .graview-kind-stop-name{font-weight:500;min-width:8rem;max-width:22rem}
48
- .graview-kind-stop-name button{display:inline-block;min-width:24px;min-height:24px;padding:0;border:0;background:none;color:var(--graview-ink);font-weight:500;text-align:left;text-decoration:underline;text-decoration-color:var(--graview-edge);text-underline-offset:3px}
49
- .graview-kind-stop-name button:hover{text-decoration-color:currentColor}
50
- .graview-kind-stop-own-row{display:inline-block;max-width:100%;cursor:pointer}
51
- .graview-kind-stop-flag{margin-left:6px;color:var(--graview-warn)}
52
- .graview-kind-stop-group th{padding-top:12px;font-weight:600;color:var(--graview-ink)}
53
- .graview-kind-stop-row-acts{width:1%;white-space:nowrap;text-align:right}
54
- .graview-kind-stop-row-acts button{min-width:32px;min-height:28px;border:1px solid var(--graview-edge-bright,var(--graview-edge));border-radius:7px;background:none;color:var(--graview-ink);font-size:1.125rem;font-weight:700;line-height:1}
55
- .graview-kind-stop-row-acts button:hover{background:color-mix(in srgb,var(--graview-ink) 8%,transparent)}
56
- .graview-kind-stop-table td[data-empty] b{font-weight:400;color:var(--graview-ink-faint)}
57
- .graview-kind-stop-table tr[data-graview-pick]{cursor:default}
58
- .graview-kind-stop-more{margin:10px 0 0;font-size:.875rem}
59
- .graview-kind-stop-table-at[data-graview-choosable]{outline:none}
60
- [data-graview-choosable]:hover .graview-choose-all .graview-choose-box{opacity:1}
61
- .graview-kind-stop-table .graview-choose-at{width:1%;padding-right:0;vertical-align:middle}
62
- @container (max-width: 559px){
63
- .graview-kind-stop{padding:12px}
64
- .graview-kind-stop-acts{flex:1 1 100%}
65
- .graview-kind-stop-primary{flex:1 1 auto}
66
- .graview-kind-stop-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
67
- .graview-kind-stop-table,.graview-kind-stop-table tbody,.graview-kind-stop-table tr{display:block}
68
- .graview-kind-stop-table tr{position:relative;padding:8px 40px 8px 0;border-top:1px solid var(--graview-edge)}
69
- .graview-kind-stop-table th,.graview-kind-stop-table td{display:block;padding:1px 0;border:0}
70
- .graview-kind-stop-table td>span{display:inline}
71
- .graview-kind-stop-table td[data-short]{white-space:normal}
72
- .graview-kind-stop-table td[data-label]::before{content:attr(data-label) " \xB7 ";color:var(--graview-ink-muted)}
73
- .graview-kind-stop-row-acts{position:absolute;top:6px;right:0;width:auto}
74
- .graview-kind-stop-table [data-graview-choose]{padding-left:34px}
75
- .graview-kind-stop-table td.graview-choose-at{position:absolute;left:0;top:8px;width:auto;padding:0}
76
- .graview-kind-stop-table thead .graview-choose-at{position:static}
77
- }
78
- @media (pointer: coarse){
79
- .graview-kind-stop-table-at:not([data-graview-choosing]) .graview-choose-at{display:none}
80
- .graview-kind-stop-table-at:not([data-graview-choosing]) [data-graview-choose]{padding-left:0}
81
- }
82
- @media (pointer: coarse){
83
- .graview-kind-stop-primary,.graview-kind-stop-quiet,.graview-kind-stop-fact,.graview-kind-stop-rule,.graview-kind-stop-link,.graview-kind-stop-switch button,.graview-kind-stop-row-acts button{min-height:44px}
84
- .graview-kind-stop-row-acts button{min-width:44px}
85
- .graview-kind-stop-name button{min-height:44px}
86
- }
87
- @media (prefers-reduced-motion: reduce){.graview-kind-stop *{transition:none!important;animation:none!important}}
88
- `;export{Jt as KindStop};
@@ -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{s as P}from"./chunk.GXPBRYSR.js";import{F as M,N as w,Q as y,Y as m,Z as I,a as p,t as b,x as T,xa as S,y as A}from"./chunk.DNNL7F3P.js";import{b as f}from"./chunk.AJZBJBMO.js";var C=f(M(),1),h=f(y(),1),x=S(p(()=>(__graviewPreload(import.meta.url,["./chunk.QXARGANF.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.HCK4Y6C5.js")))),O=x.part((e,n)=>(0,h.jsx)(e.Timeline,{...n}),{what:"The timeline"}),q=()=>x.prefetch();function K({face:e}){return w()?.open?(0,h.jsx)(C.Suspense,{fallback:null,children:(0,h.jsx)(O,{face:e})}):null}var i=f(M(),1),u=f(y(),1),v=new WeakMap,D=e=>{let n=v.get(e);return n||v.set(e,n={ask:null,doors:[],listeners:new Set}),n},k=e=>{for(let n of e.listeners)n()};function g(e,n){let t=D(e);t.ask=n,k(t)}var N=S(p(()=>(__graviewPreload(import.meta.url,["./chunk.CV4CBHFT.js","./chunk.LJE5J3JK.js","./chunk.X2OLXTRL.js","./chunk.JDRM6XXD.js","./chunk.QXARGANF.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.QOXTBRKE.js")))),B=N.part((e,n)=>{let t=e.NotifySheet;return(0,u.jsx)(t,{...n})},{what:"Notify me"}),W=N.part((e,n)=>{let t=e.NotifiedList;return(0,u.jsx)(t,{...n})},{quiet:!0}),E=(e,n)=>n===void 0&&(e.onBehalfOf??e).id!==void 0;function F(e,n,t){let c=d=>t.tryDefinition(d)?.noun??d.replace(/[-_]+/g," "),o=e.on!==void 0?e.on:e.about.length===1?e.about[0]:void 0;if(e.act!==void 0){let d=o!==void 0&&n(o)!==void 0?o:void 0;return{label:"Notify me when someone does this\u2026",choices:[{on:"act",act:e.act,...d!==void 0?{record:d}:{}},...d!==void 0?[{on:"act",act:e.act}]:[]]}}if(o===void 0)return null;let s=n(o);if(s!==void 0)return{label:"Notify me when this changes\u2026",choices:[{on:"changed",record:o},{on:"act",record:o},{on:"reaches",kind:s,condition:"",record:o}]};let r=b(o)!==null?[b(o)]:T(o)?A(o):[];if(r.length!==1||!t.kinds.includes(r[0]))return null;let l=r[0],a=c(l);return{label:`Notify me when ${/^[aeiou]/i.test(a)?"an":"a"} ${a} is added\u2026`,choices:[{on:"created",kind:l},{on:"changed",kind:l},{on:"reaches",kind:l,condition:""}]}}function L(){let{store:e,principal:n,subscriptions:t,signIn:c}=m(),o=E(n,c);return(0,i.useMemo)(()=>o?s=>{let r=F(s,a=>e.graph.getNode(a)?.kind,e.schema);return r?{id:"notify",items:[{id:"notify-me",label:r.label,run:()=>g(t,{choices:r.choices,returnTo:s.element??null})}],prepare:()=>N.prefetch()}:null}:null,[o,e,t])}var z=[];function U({children:e}){let n=L(),t=(0,i.useMemo)(()=>n?[n]:z,[n]);return(0,u.jsx)(P,{sections:t,children:e})}function V(){let{subscriptions:e}=m(),n=(0,i.useId)(),t=D(e);(0,i.useEffect)(()=>(t.doors.push(n),k(t),()=>{t.doors.splice(t.doors.indexOf(n),1),k(t)}),[t,n]);let c=(0,i.useMemo)(()=>r=>(t.listeners.add(r),()=>void t.listeners.delete(r)),[t]),o=(0,i.useSyncExternalStore)(c,()=>t.ask,()=>null),s=(0,i.useSyncExternalStore)(c,()=>t.doors[0]===n,()=>!1);return!o||!s?null:(0,u.jsx)(i.Suspense,{fallback:null,children:(0,u.jsx)(B,{ask:o,close:()=>g(e,null)})})}function X({choices:e,label:n="Notify me",style:t,className:c,testId:o="notify-me"}){let{principal:s,subscriptions:r,signIn:l}=m();return E(s,l)?(0,u.jsx)("button",{type:"button","data-testid":o,className:c,onClick:a=>g(r,{choices:e,returnTo:a.currentTarget}),style:t,children:n}):null}function G(){let e=I(),n=e?.subscriptions,t=e?(e.principal.onBehalfOf??e.principal).id:void 0,[c,o]=(0,i.useState)(0);return(0,i.useEffect)(()=>{if(t===void 0||!n)return;let s=!0,r=()=>void Promise.resolve(n.list(t)).then(a=>s&&o(a.length),()=>s&&o(0));r();let l=n.onChange?.(r);return()=>{s=!1,l?.()}},[n,t]),c}function Y({style:e}){return G()===0?null:(0,u.jsx)(i.Suspense,{fallback:null,children:(0,u.jsx)(W,{...e?{style:e}:{}})})}export{q as a,K as b,L as c,U as d,V as e,X as f,G as g,Y as h};
@@ -1 +0,0 @@
1
- import{a as H,b as I,c as T,e as D,h as V,i as R,j as A,k,l as x,n as Y,o as Z}from"./chunk.NNNVB6RV.js";import{b as U}from"./chunk.NOZEHLWG.js";import{H as C,N as G,Ta as F,W as M,Wa as B,ba as W,da as j}from"./chunk.HBBVVALN.js";function re(e,r){return e===void 0||e===!0?!0:e===!1?!1:e[r]!==!1}function te(e){let r={};return e.query&&e.query.trim().length>0&&(r.q=e.query),e.archived!==void 0&&e.archived!==!1&&(r.archived=String(e.archived)),e.sort&&(r.sort=e.sort.direction==="desc"?`${e.sort.by}:desc`:e.sort.by),e.filter?.length&&(r.filter=e.filter.map(n=>`${n.key}:${n.value}`).join(",")),e.group&&(r.group=e.group.bucket?`${e.group.by}:${e.group.bucket}`:e.group.by),r}function ne(e,r){let n=[],s={};if(e.query&&(s.query=e.query),e.archived!==void 0&&e.archived!==!1&&(s.archived=e.archived),e.sort&&(r.sorts.some(u=>u.key===e.sort.by)?s.sort=e.sort:n.push(`sort ${e.sort.by}`)),e.filter){let u=e.filter.filter(c=>r.filters.find(f=>f.key===c.key)?!0:(n.push(`filter ${c.key}`),!1));u.length>0&&(s.filter=u)}return e.group&&(r.groups.some(u=>u.key===e.group.by)?s.group=e.group:n.push(`group ${e.group.by}`)),{arrangement:s,dropped:n}}function S(e,r){return W(e.schema.tryDefinition(r.kind),A(r))}var oe=(e,r)=>e==null?r==null?0:1:r==null?-1:typeof e=="number"&&typeof r=="number"?e-r:typeof e=="boolean"&&typeof r=="boolean"?e===r?0:e?1:-1:String(e).localeCompare(String(r),void 0,{numeric:!0,sensitivity:"base"});function ie(e,r,n){if(n==="label")return S(e,r);let s=e.schema.tryDefinition(r.kind);return s&&n in(s.fields.shape??{})?F(R(r),n,e.today??C()):s?.computed?.[n]!==void 0?e.read?.(r,n):k(e.graph,r.id,n).map(c=>S(e,c)).sort()[0]}var se=/^(\d{4})-(\d{2})-(\d{2})/;function _(e,r){let n=se.exec(e);if(!n)return;let[,s,u,c]=n;if(r==="day")return`${s}-${u}-${c}`;if(r==="month")return`${s}-${u}-01`;if(r==="year")return`${s}-01-01`;if(r==="decade")return`${String(Number(s)-Number(s)%10).padStart(4,"0")}-01-01`;let a=new Date(Date.UTC(Number(s),Number(u)-1,Number(c))),f=(a.getUTCDay()+6)%7;return a.setUTCDate(a.getUTCDate()-f),a.toISOString().slice(0,10)}function de(e,r){return r==="month"?M(e):r==="week"?`Week of ${G(e)}`:r==="year"?e.slice(0,4):r==="decade"?`The ${e.slice(0,4)}s`:G(e)}function ue(e,r,n){return z(e,n)(r)}function z(e,r){let{words:n,conditions:s}=Y(r);if(n.length===0&&s.length===0)return()=>!0;let u=new Map,c=a=>{let f=u.get(a);return f||(f=new Set(D(e.schema,a).filters.map(d=>d.key)),u.set(a,f)),f};return a=>{let f=c(a.kind),d=s.filter(i=>f.has(i.key));return d.every(i=>x(e,a,i))?n.length>0?Z(e.schema.tryDefinition(a.kind),A(a),n)!==void 0:d.length>0:!1}}function ae(e,r,n){let s=r.query?.trim(),u=r.archived===void 0?e:e.filter(t=>B(t,r.archived)),c=s?u.filter(z(n,s)):u,a=r.filter?.length?c.filter(t=>r.filter.every(l=>x(n,t,l))):[...c],f=[];for(let t=r.sort;t&&f.length<4;t=t.then)f.push(t);let d=f.length>0?a.map((t,l)=>({node:t,index:l,values:f.map(o=>ie(n,t,o.by))})).sort((t,l)=>{for(let[o,p]of f.entries()){let[h,K]=[t.values[o],l.values[o]],v=oe(h,K),E=p.direction==="desc"&&v!==0&&h!==void 0&&K!==void 0?-v:v;if(E!==0)return E}return t.index-l.index}).map(t=>t.node):a,i=r.group;if(!i)return{nodes:d,groups:[{key:"",label:"",nodes:d}],grouped:!1};let y=new Map,g=(t,l,o)=>{let p=y.get(t)??{label:l,nodes:[]};p.nodes.push(o),y.set(t,p)},N=d[0],m=N?n.schema.tryDefinition(N.kind):void 0,O=m?.fields.shape??{},J=m?H(m,i.by):j(i.by),$=i.by in O,b=$?I(O[i.by]):void 0,X=T(n.schema,N?.kind??"").find(t=>t.key===i.by)?.label,L=$?`No ${J.toLowerCase()}`:`Without ${(X??j(i.by)).toLowerCase()}`,q=$?new Map:U([...new Map(d.flatMap(t=>k(n.graph,t.id,i.by)).map(t=>[t.id,t])).values()].map(A),t=>n.schema.tryDefinition(t));for(let t of d){if($){let o=F(R(t),i.by,n.today??C());if(o==null||o==="")g("",L,t);else if(b==="date"){let p=i.bucket??"day",h=_(String(o),p);h?g(h,de(h,p),t):g("",L,t)}else if(b==="boolean")g(o?"1":"0",o?"Yes":"No",t);else{let p=m?.display?.format?.[i.by];g(String(o),p?p(o):String(o),t)}continue}let l=k(n.graph,t.id,i.by).map(o=>({id:o.id,label:q.has(o.id)?`${S(n,o)} \xB7 ${q.get(o.id)}`:S(n,o)})).sort((o,p)=>o.label.localeCompare(p.label));l.length===0?g("",L,t):g(l.map(o=>o.id).join(","),l.map(o=>o.label).join(", "),t)}let w=b==="choice"?V(O[i.by]):void 0,ee=[...y.entries()].sort(([t,l],[o,p])=>t===""?1:o===""?-1:w?w.indexOf(t)-w.indexOf(o):b==="boolean"?o.localeCompare(t):b==="date"?t.localeCompare(o):l.label.localeCompare(p.label)).map(([t,l])=>({key:t,label:l.label,nodes:l.nodes}));return{nodes:d,groups:ee,grouped:!0}}function P(e){if(e===void 0)return;if(typeof e=="string")return{by:e,direction:"asc"};let r=e.then===void 0?void 0:typeof e.then=="string"?{by:e.then,direction:"asc"}:{by:e.then.by,direction:e.then.direction??"asc"};return{by:e.by,direction:e.direction??"asc",...r?{then:r}:{}}}function Q(e){if(e!==void 0)return typeof e=="string"?{by:e}:e}function fe(e){let r=P(e?.sort),n=Q(e?.group);if(!(!r&&!n))return{...r?{sort:r}:{},...n?{group:{by:n.by}}:{}}}var le=(e,r)=>r?e==="1"?"true":"false":e;function ce(e,r,n){let s=n.type==="boolean",u=s?["true","false"]:n.options??[],c=[...new Set([...(r.order??[]).filter(d=>u.includes(d)),...u])],a=r.closed??[],f=d=>{if(d.key==="")return[1,0];let i=le(d.key,s);if(a.includes(i))return[2,a.indexOf(i)];let y=c.indexOf(i);return[0,y<0?c.length:y]};return e.map((d,i)=>({group:d,at:i,rank:f(d)})).sort((d,i)=>d.rank[0]-i.rank[0]||d.rank[1]-i.rank[1]||d.at-i.at).map(({group:d,rank:i})=>({...d,closed:i[0]===2}))}export{Q as a,fe as b,ce as c,re as d,te as e,ne as f,ue as g,ae as h};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk.LVNAB2BW.js";import"./chunk.YW2BZ2LH.js";import"./chunk.HYAKRLPT.js";import"./chunk.IHBIRAC4.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.HJCQ6I3S.js";import"./chunk.AWRS6TUN.js";import"./chunk.KAWP4RNR.js";import"./chunk.UPBUF7KR.js";import"./chunk.FGYCYLUS.js";import"./chunk.NZJZIYDK.js";import"./chunk.MJLUAGEV.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import"./chunk.UT6642FC.js";import"./chunk.SZMWJHU2.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"./chunk.DNNL7F3P.js";import"./chunk.HBBVVALN.js";import"./chunk.AJZBJBMO.js";export{b as declaredLensView,a as formatFor};
@@ -1,3 +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 Je}from"./chunk.NZJZIYDK.js";import{a as Ue}from"./chunk.3V2M3S4U.js";import{a as Le}from"./chunk.Y44TR4WG.js";import{a as oe}from"./chunk.TI4OSTQV.js";import{a as re}from"./chunk.QYWBQ5NX.js";import{e as ke}from"./chunk.QXARGANF.js";import{F as sn,I as je,O as Ne,Q as De,Y as He}from"./chunk.DNNL7F3P.js";import{Fb as Re,Kb as ie,Mb as Me,ba as te,da as L,fa as _,ia as Ie,ka as me,ob as ve,qc as Ee}from"./chunk.HBBVVALN.js";import{b as he}from"./chunk.AJZBJBMO.js";var an=e=>/^(?:aggregate|kind):([^,]+)$/.exec(e)?.[1];function Fe(e,n){let t=e.about??[];if(e.field!==void 0&&e.on!==void 0&&n(e.on))return{on:"field",id:e.on,field:e.field};let i=t.filter(n);if(i.length>1)return{on:"selection",ids:i};if(e.on!==void 0&&n(e.on))return{on:"record",id:e.on};if(i.length===1)return{on:"record",id:i[0]};let o=[e.on,...t].map(r=>r===void 0?void 0:an(r)).find(r=>r!==void 0);return e.place!==void 0?{on:"lens",place:e.place,...o?{kind:o}:{}}:o!==void 0?{on:"list",kind:o}:{on:"place",place:"home"}}var K=e=>e.on==="record"||e.on==="field"?[e.id]:e.on==="selection"?e.ids:e.on==="act"&&e.id!==void 0?[e.id]:[],se=(e,n)=>e.tryDefinition(n)?.fields?.shape??{},G=(e,n)=>e.tryDefinition(n)?.edges??{},ae=(e,n)=>new Set(e.tryDefinition(n)?.display?.hide??[]),N=(e,n)=>te(e.tryDefinition(n.kind),n),be=(e,n,t)=>Ie(e.tryDefinition(n),t)||L(t),Ae=e=>typeof e=="boolean"?e?"yes":"no":String(e);function xe(e,n){let t=e.kindsKeptFrom(n);return new Set(e.schema.kinds.filter(i=>!t.has(i)))}function Se(e,n,t,i){if(!e.permits(n,t).ok)return!1;if(!i)return!0;try{return e.previewAll([n],{author:t}).ops.length>0}catch{return!1}}function de(e,n,t){let i=e,{principal:o}=t,r=t.each??8,l=oe(i)?.store??i,d=l.seenBy(o),a=l.schema,k=xe(l,o),c=s=>{let p=d.graph.getNode(s);return p&&k.has(p.kind)?p:void 0},f=l.allMutations(),g=new Map(f.map(s=>[s.name,s])),A=[],$=new Set,b=s=>{$.has(s.id)||($.add(s.id),A.push(s))},h=s=>s.slice(0,r),x=K(n).filter(s=>c(s)!==void 0);if(K(n).length>0&&x.length===0)return{target:n,candidates:[]};let m=x.length===1?c(x[0]):void 0,u=m?.kind??(n.on==="list"?n.kind:n.on==="lens"?n.kind??t.places?.find(s=>s.as===n.place)?.kind:void 0)??(n.on==="selection"?c(x[0])?.kind:void 0);if(u!==void 0&&!k.has(u))return{target:n,candidates:[]};let v=(s,p)=>`act:${s}${Object.keys(p).length>0?`:${Object.values(p).map(C=>String(C)).join(",")}`:""}`,P=(s,p,C,y,O)=>{s.destructive||Object.values(p).some(E=>typeof E=="string"&&l.graph.has(E)&&c(E)===void 0)||Se(l,{name:s.name,args:{...p}},o,y.length===0)&&b({type:"act",id:v(s.name,p),label:C,description:O??s.description??C,mutation:s.name,args:p,asks:y})};if(n.on!=="place"||t.acts)if(t.acts)for(let s of t.acts){let p=g.get(s.mutation);!p||s.destructive||n.on==="act"&&s.mutation!==n.act||P(p,s.args,s.label,(s.open??[]).filter(C=>!C.optional).map(C=>C.name),s.why)}else{let s=m?[m]:[];for(let p of f){if(n.on==="act"&&p.name!==n.act)continue;let C=p.input.shape??{},y=O=>Object.entries(C).filter(([E,w])=>E!==O&&w.safeParse?.(void 0).success===!1).map(([E])=>E);if(p.subject)for(let O of s)ie(a,p).includes(O.kind)&&P(p,{[p.subject.arg]:O.id},`${p.title??L(p.name)}: ${N(a,O)}`,y(p.subject.arg));else u!==void 0&&(p.creates??[]).includes(u)&&P(p,{},p.title??L(p.name),y(void 0))}}let W=A.filter(s=>s.type==="act");A.splice(0,A.length,...h(W));let q=(s,p)=>{let C=Me(a,f).get(s.kind),y=se(a,s.kind),O=ae(a,s.kind),E=[];for(let[w,j]of Object.entries(y)){if(p!==void 0?w!==p:O.has(w)||s[w]!==void 0)continue;let H=re(j),U=H?.type==="enum"?H.options??[]:H?.type==="boolean"?[!0,!1]:[];if(U.length===0)continue;let D=(C?.get(w)??[]).map(R=>g.get(R)).find(R=>R?.subject!==void 0&&Se(l,{name:R.name,args:{[R.subject.arg]:s.id,[w]:U.find(ge=>ge!==s[w])??U[0]}},o,!0));if(D?.subject)for(let R of U)s[w]!==R&&E.push({type:"fill",id:`fill:${s.id}:${w}:${Ae(R)}`,label:`${be(a,s.kind,w)}: ${Ae(R)}`,description:`Set ${be(a,s.kind,w).toLowerCase()} of ${N(a,s)} to ${Ae(R)}`,record:s.id,field:w,value:R,call:{name:D.name,args:{[D.subject.arg]:s.id,[w]:R}}})}for(let[w,j]of Object.entries(G(a,s.kind))){if(p!==void 0&&w!==p)continue;let H=j.to==="*"?[...k]:j.to.filter(I=>k.has(I)),U=new Set(d.graph.out(s.id,w).map(I=>I.id)),D=f.find(I=>(I.connects??[]).includes(w)&&I.subject!==void 0&&ie(a,I).includes(s.kind));if(!D?.subject)continue;let R=Re(D.input).find(I=>I.name!==D.subject.arg);if(!R)continue;let ge=H.flatMap(I=>R.kinds.length===0||R.kinds.includes(I)?d.graph.nodesOfKind(I):[]).filter(I=>I.id!==s.id&&!U.has(I.id)&&c(I.id)!==void 0);for(let I of h(ge)){let Pe={name:D.name,args:{[D.subject.arg]:s.id,[R.name]:I.id}};Se(l,Pe,o,!0)&&E.push({type:"fill",id:`fill:${s.id}:${w}:${I.id}`,label:`${L(w)}: ${N(a,I)}`,description:`Link ${N(a,s)} to ${N(a,I)}${j.description?` as ${j.description}`:""}`,record:s.id,field:w,value:I.id,call:Pe})}}return E};if(n.on==="field"&&m)for(let s of q(m,n.field))b(s);else if(m&&n.on==="record")for(let s of h(q(m)))b(s);let z=s=>{let p=_(a,s).toLowerCase(),C=[{type:"panel",id:`panel:${s}:list`,label:`A list of ${p}`,description:`Every ${me(a.tryDefinition(s),s).toLowerCase()} this viewer may see, as a list`,panel:{lens:"blocks",kind:s}}],y=ae(a,s);for(let[O,E]of Object.entries(se(a,s))){if(y.has(O))continue;let w=re(E),j=be(a,s,O).toLowerCase();if(w?.type==="enum")C.push({type:"panel",id:`panel:${s}:group:${O}`,label:`${F(p)} by ${j}`,description:`A list of ${p} grouped by ${j}`,panel:{lens:"blocks",kind:s,group:O}}),C.push({type:"panel",id:`panel:${s}:columns:${O}`,label:`Columns of ${p} by ${j}`,description:`${F(p)} in a column for each ${j}`,panel:{lens:"columns",kind:s,column:O}});else if(w?.type==="number"||w?.type==="integer"||w?.type==="date"||w?.type==="datetime"){let H=w.type==="date"||w.type==="datetime";C.push({type:"panel",id:`panel:${s}:sort:${O}`,label:`${F(p)} by ${j}`,description:`A list of ${p}, the ${H?"latest":"highest"} ${j} first`,panel:{lens:"blocks",kind:s,sort:{by:O,direction:"desc"}}}),H&&C.push({type:"panel",id:`panel:${s}:calendar:${O}`,label:`A calendar of ${p}`,description:`${F(p)} on a calendar by ${j}`,panel:{lens:"calendar",kind:s,start:O}})}}return C},ne=n.on==="place"?[...k]:u!==void 0?[u]:[];for(let s of ne)for(let p of h(z(s)))b(p);for(let s of h((t.places??[]).filter(p=>p.kind===void 0?n.on==="place":k.has(p.kind)&&(n.on==="place"||p.kind===u))))n.on==="lens"&&s.as===n.place||b({type:"place",id:`place:${s.as}`,label:s.title,description:`Go to ${s.title}`,place:s.as});if(m){let s=[];for(let[p,C]of Object.entries(G(a,m.kind)))for(let y of d.graph.out(m.id,p))c(y.id)&&s.push({type:"record",id:`record:${y.id}`,label:N(a,y),description:`${F(C.description??L(p))}: ${N(a,y)}`,record:y.id,relation:p});for(let p of a.kinds)for(let[C,y]of Object.entries(G(a,p)))if(!(y.to!=="*"&&!y.to.includes(m.kind)))for(let O of d.graph.in(m.id,C))O.kind===p&&c(O.id)&&s.push({type:"record",id:`record:${O.id}`,label:N(a,O),description:`${F(y.inverse??L(C))}: ${N(a,O)}`,record:O.id,relation:C});for(let p of h(s))b(p)}else if(n.on==="list"||n.on==="lens")for(let s of h(u!==void 0?d.graph.nodesOfKind(u):[]))c(s.id)&&b({type:"record",id:`record:${s.id}`,label:N(a,s),description:`Open ${N(a,s)}`,record:s.id});else if(n.on==="selection")for(let s of x){let p=c(s);b({type:"record",id:`record:${s}`,label:N(a,p),description:`Open ${N(a,p)}`,record:s})}return{target:n,candidates:A}}var F=e=>e&&`${e[0].toUpperCase()}${e.slice(1)}`,we=new WeakMap;function dn(e){let n=2166136261;for(let t=0;t<e.length;t++)n^=e.charCodeAt(t),n=Math.imul(n,16777619)>>>0;return n.toString(36)}function ln(e,n){let t=e,i=oe(t)?.store??t,o=i.schema,r=xe(i,n),d=i.allMutations().filter(b=>!b.destructive&&i.permits({name:b.name,args:{}},n).ok!==!1),a=`${[...r].join(",")}|${d.map(b=>b.name).join(",")}`,k=we.get(o)?.get(a);if(k)return k;let c=[...r].map(b=>{let h=ae(o,b),x={};for(let[u,v]of Object.entries(se(o,b))){if(h.has(u))continue;let P=re(v);P&&(x[u]=P.type==="enum"?`enum:${(P.options??[]).join("|")}`:P.type)}let m={};for(let[u,v]of Object.entries(G(o,b)))m[u]=v.to==="*"?[...r]:v.to.filter(P=>r.has(P));return{kind:b,noun:me(o.tryDefinition(b),b),plural:_(o,b),fields:x,relations:m}}),f=d.map(b=>({name:b.name,title:b.title??L(b.name),...b.subject?{on:ie(o,b).filter(h=>r.has(h))}:{}})),g={kinds:c,acts:f},A={version:dn(JSON.stringify(g)),...g},$=we.get(o)??new Map;return $.set(a,A),we.set(o,$),A}var cn=e=>e.name??e.id??e.kind;function Ge(e,n,t){let i=e,{principal:o}=t,r=oe(i)?.store??i,l=r.seenBy(o),d=r.schema,a=xe(r,o),k=m=>{let u=l.graph.getNode(m);return u&&a.has(u.kind)?u:void 0},c=m=>({id:m.id,kind:m.kind,label:N(d,m)}),f=K(n),g=f.length===1?k(f[0]):void 0,A=g?Object.fromEntries(Object.keys(se(d,g.kind)).filter(m=>!ae(d,g.kind).has(m)&&g[m]!==void 0&&m!=="label").map(m=>[m,g[m]])):{},$={on:n.on,...g?{record:{...c(g),fields:A}}:{},...n.on==="field"&&g?{field:n.field}:{},...n.on==="list"&&a.has(n.kind)?{kind:n.kind}:{},...n.on==="lens"?{place:n.place,...n.kind&&a.has(n.kind)?{kind:n.kind}:{}}:{},...n.on==="place"?{place:n.place}:{},...n.on==="act"?{act:n.act}:{}},b=[...new Set([...n.on==="selection"?n.ids:[],...t.selection??[]])].flatMap(m=>{let u=k(m);return u?[c(u)]:[]}),h=[];if(g){for(let m of Object.keys(G(d,g.kind)))for(let u of l.graph.out(g.id,m))k(u.id)&&h.push({...c(u),relation:m,direction:"out"});for(let m of d.kinds)for(let u of Object.keys(G(d,m)))for(let v of l.graph.in(g.id,u))v.kind===m&&k(v.id)&&h.push({...c(v),relation:u,direction:"in"})}let x=l.batches().filter(m=>!m.ops.every(ve)).slice(-(t.recent??6)).reverse().map(m=>({intent:m.intent,at:m.at,by:cn(m.author)}));return{...t.place!==void 0?{place:t.place}:{},target:$,selection:b,neighbors:h.slice(0,24),recent:x,schema:ln(r,o)}}function Q(e){if(!e.off)return e.fast??(e.decide?{model:e.name??"decide",decide:e.decide}:void 0)}function Be(e){return e.suggestOnOpen!==!1&&Q(e)!==void 0}function J(e){if(e.off)return;if(e.thinking)return e.thinking;let n=e.name??"model";if(e.complete){let t=e.complete;return{model:n,think:async({system:i,prompt:o})=>({text:await t(`${i}
2
-
3
- ${o}`)})}}if(e.turn){let t=e.turn;return{model:n,think:async({system:i,prompt:o})=>({text:await t({system:i,messages:[{role:"user",content:o}],tools:[],call:async()=>({error:"No tools here."})})})}}}var Oe=(e,n,t)=>e?n/1e6*(e.inputPerMillion??0)+t/1e6*(e.outputPerMillion??0):void 0,Ce=()=>`ai-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;function fn(e,n,t=[]){let i=o=>{let r=e.graph.getNode(o);return r?te(e.schema.tryDefinition(r.kind),r):"a record"};switch(n.on){case"record":return i(n.id);case"field":return`${i(n.id)} \xB7 ${n.field}`;case"selection":return`${n.ids.length} records`;case"list":return e.schema.tryDefinition(n.kind)?_(e.schema,n.kind):n.kind;case"lens":case"place":return t.find(o=>o.as===n.place)?.title??(n.place==="home"?"Home":n.place);case"act":return n.act}}var We=e=>e.type!=="act"||e.asks.length===0,$e=(e,n)=>({id:e.id,type:e.type,label:e.label,...n!==void 0?{confidence:n}:{}});function Y(e,n){let t=n.interaction??Ce(),i=de(n.store,n.target,{principal:n.principal,...n.acts?{acts:n.acts}:{},...n.places?{places:n.places}:{}}),o=Ge(n.store,n.target,{principal:n.principal,...n.place?{place:n.place}:{},...n.selection?{selection:n.selection}:{}}),r=[];return{id:t,catalog:i,state:o,entry:{id:t,at:new Date().toISOString(),by:n.by??n.principal,target:n.target,targetLabel:fn(n.store,n.target,n.places)},usage:r,meter:l=>{r.push(l),e.meter?.({...l,interaction:t})}}}async function ce(e,n,t,i){let o=await e.decide(n,t),{inputTokens:r,outputTokens:l}=o.usage,d=Oe(e.price,r,l);return i({tier:"fast",model:e.model,inputTokens:r,outputTokens:l,...d!==void 0?{costUsd:d}:{}}),o.answers}async function V(e,n,t,i,o){let r=await e.think({system:n,prompt:t,state:i.state,catalog:i.catalog}),l=r.usage?.inputTokens,d=r.usage?.outputTokens,a=r.usage?.costUsd??(l!==void 0?Oe(e.price,l,d??0):void 0);return o({tier:"thinking",model:e.model,...l!==void 0?{inputTokens:l}:{},...d!==void 0?{outputTokens:d}:{},...a!==void 0?{costUsd:a}:{}}),Ue(r.text)}function fe(e,n){let t=new Map(e.map((i,o)=>[`c${o+1}`,i]));return{question:{type:"choice",instructions:n,criteria:Object.fromEntries([...t].map(([i,o])=>[i,`${o.label} \u2014 ${o.description}`]))},of:i=>t.get(i)}}function ue(e,n,t){if(e?.type!=="choice")return[];let i=e,o=Object.entries(i.probabilities).sort((r,l)=>l[1]-r[1]);return o.some(([r])=>r===i.choice)||o.unshift([i.choice,i.confidence]),o.flatMap(([r,l])=>{let d=n(r);return d?[{candidate:d,confidence:l}]:[]}).slice(0,t)}var M=(e,n,t,i)=>({interaction:{...e.entry,ask:{kind:t,said:n??""},offered:[],outcome:"failed",failed:i,usage:[...e.usage]},offers:[]}),X="AI isn't on here.";async function qe(e,n,t=3){let i=Y(e,n),o=n.said??"Suggest",r=i.catalog.candidates.filter(We).slice(0,24);if(r.length===0)return{interaction:{...i.entry,ask:{kind:"suggest",said:o},offered:[],outcome:"offered",usage:[]},offers:[]};let l=Q(e),d=J(e),a=[];try{if(l){let{question:k,of:c}=fe(r,"Which of these would the person most likely want to do next, here?"),f=await ce(l,{...i.state,candidates:r.map(g=>({id:g.id,type:g.type,says:g.description}))},{next:k},i.meter);a=ue(f.next,c,t)}else if(d){let k=await V(d,'You suggest what a person most likely wants to do next in an app. Answer only JSON: {"pick": [candidate ids, best first]}. Pick only ids from the candidates.',JSON.stringify({state:i.state,candidates:r.map(f=>({id:f.id,says:f.description}))}),i,i.meter);a=(Array.isArray(k?.pick)?k.pick.filter(f=>typeof f=="string"):[]).flatMap(f=>r.filter(g=>g.id===f)).slice(0,t).map(f=>({candidate:f}))}else return M(i,o,"suggest",X)}catch(k){return M(i,o,"suggest",k instanceof Error?k.message:String(k))}return{interaction:{...i.entry,ask:{kind:"suggest",said:o},offered:a.map(({candidate:k,confidence:c})=>$e(k,c)),outcome:"offered",usage:[...i.usage]},offers:a.map(({candidate:k})=>k)}}async function ze(e,n){let t=Y(e,n),i=n.said??"Fill in",o=t.catalog.candidates.filter(f=>f.type==="fill"),r=new Map;for(let f of o)r.set(f.field,[...r.get(f.field)??[],f]);if(r.size===0)return{interaction:{...t.entry,ask:{kind:"fill",said:i},offered:[],outcome:"offered",usage:[]},offers:[]};let l=Q(e),d=J(e),a=[];try{if(l){let f=[...r].map(([A,$],b)=>({key:`f${b+1}`,field:A,...fe($,`Which value fits "${A}" best for this record?`)})),g=await ce(l,t.state,Object.fromEntries(f.map(A=>[A.key,A.question])),t.meter);for(let A of f){let $=!un(n.store,n.target,A.field)&&pn(n.store,n.target,A.field)!=="one";a.push(...ue(g[A.key],A.of,$?3:1).filter((b,h)=>h===0||b.confidence>=.4))}}else if(d){let f=await V(d,`You fill in a record's fields in an app. Answer only JSON: {"fills": [candidate ids]}, at most one per field, only ids from the candidates.`,JSON.stringify({state:t.state,candidates:o.map($=>({id:$.id,says:$.description}))}),t,t.meter),g=Array.isArray(f?.fills)?f.fills.filter($=>typeof $=="string"):[],A=new Set;for(let $ of g){let b=o.find(h=>h.id===$);b?.type==="fill"&&!A.has(b.field)&&(A.add(b.field),a.push({candidate:b}))}}else return M(t,i,"fill",X)}catch(f){return M(t,i,"fill",f instanceof Error?f.message:String(f))}let k=t.usage.at(-1)?.model,c=Z(n.store,{interaction:t.id,target:n.target,basis:i,...k?{model:k}:{},proposals:a.flatMap(({candidate:f,confidence:g})=>f.type==="fill"?[{id:f.id,label:f.label,said:f.description,call:f.call,record:f.record,field:f.field,...g!==void 0?{confidence:g}:{}}]:[])},n.principal);return{interaction:{...t.entry,ask:{kind:"fill",said:i},offered:c.proposals.map(f=>({id:f.id,type:"fill",label:f.label,...f.confidence!==void 0?{confidence:f.confidence}:{}})),outcome:"offered",usage:[...t.usage]},offers:[],...c.proposals.length>0?{ghost:c}:{}}}function un(e,n,t){let i=n.on==="record"||n.on==="field"?n.id:void 0,o=i?e.graph.getNode(i)?.kind:void 0,r=(o?e.schema.tryDefinition(o)?.fields?.shape:void 0)??{};return t in r}function pn(e,n,t){let i=n.on==="record"||n.on==="field"?n.id:void 0,o=i?e.graph.getNode(i)?.kind:void 0;return o?e.schema.tryDefinition(o)?.edges?.[t]?.cardinality:void 0}async function _e(e,n){let t=Y(e,n),i=n.said??"Add one",o=new Set(n.store.allMutations().filter(c=>(c.creates??[]).length>0).map(c=>c.name)),r=t.catalog.candidates.filter(c=>c.type==="act"&&c.asks.length>0&&o.has(c.mutation));if(r.length===0)return M(t,i,"record","Nothing here makes a record.");let l=J(e);if(!l)return M(t,i,"record",X);let d;try{let c=await V(l,'You propose one new record for an app by filling in an act. Answer only JSON: {"act": a candidate id, "args": {argument: value}}. Use only the candidates, and fill every argument the act asks for with a value that fits the state.',JSON.stringify({ask:i,state:t.state,candidates:r.map(A=>({id:A.id,says:A.description,asks:A.asks}))}),t,t.meter),f=r.find(A=>A.id===c?.act),g=typeof c?.args=="object"&&c.args!==null?c.args:{};f&&(d={act:f,args:Object.fromEntries(Object.entries(g).filter(([A])=>f.asks.includes(A)))})}catch(c){return M(t,i,"record",c instanceof Error?c.message:String(c))}if(!d)return M(t,i,"record","The model named no act this app has here.");let a=t.usage.at(-1)?.model,k=Z(n.store,{interaction:t.id,target:n.target,basis:i,...a?{model:a}:{},proposals:[{id:d.act.id,label:d.act.label,said:d.act.description,call:{name:d.act.mutation,args:{...d.act.args,...d.args}}}]},n.principal);return k.proposals.length===0?M(t,i,"record","What the model proposed could not be made here."):{interaction:{...t.entry,ask:{kind:"record",said:i},offered:k.proposals.map(c=>({id:c.id,type:"act",label:c.said})),outcome:"offered",usage:[...t.usage]},offers:[d.act],ghost:k}}async function Ke(e,n){let t=Y(e,n),i=n.said??"Make a panel",o=t.catalog.candidates.filter(c=>c.type==="panel");if(o.length===0)return M(t,i,"panel","Nothing here can be drawn as a panel.");let r=Q(e),l=J(e),d;try{if(l){let c=await V(l,'You choose a panel to draw in an app. Answer only JSON: {"panel": a candidate id, "title": a short title}. Choose only among the candidates.',JSON.stringify({ask:i,state:t.state,candidates:o.map(g=>({id:g.id,says:g.description}))}),t,t.meter),f=o.find(g=>g.id===c?.panel);f&&(d={panel:f,...typeof c?.title=="string"&&c.title.trim()?{title:c.title.trim().slice(0,60)}:{}})}else if(r){let{question:c,of:f}=fe(o,`Which panel answers this best: ${i}`),g=ue((await ce(r,t.state,{panel:c},t.meter)).panel,f,1)[0];g?.candidate.type==="panel"&&(d={panel:g.candidate,confidence:g.confidence})}else return M(t,i,"panel",X)}catch(c){return M(t,i,"panel",c instanceof Error?c.message:String(c))}if(!d)return M(t,i,"panel","The model named no panel this app can draw.");let a=d.title??d.panel.label,k={title:a,recipe:{...d.panel.panel,title:a}};return{interaction:{...t.entry,ask:{kind:"panel",said:i},offered:[$e(d.panel,d.confidence)],outcome:"drawn",panel:k,usage:[...t.usage]},offers:[d.panel],panel:k}}function yn(e){return e.off?void 0:e.answer}var gn=`You answer a person's question about what they are looking at in an app, from the state given and nothing else. Answer only JSON: {"answer": one to three short sentences, "pick": [candidate ids that act on the answer, best first, at most three]}. Pick only ids from the candidates, and none when nothing fits. Never say an id to the person.`;async function Rn(e,n){let t=Y(e,n),i=n.said.trim(),o=t.catalog.candidates.filter(h=>We(h)||h.type==="panel"||h.type==="place"||h.type==="record").slice(0,32),r=yn(e),l=J(e),d=Q(e),a="",k=[],c=h=>h.flatMap(x=>o.filter(m=>m.id===x)).slice(0,3).map(x=>({candidate:x}));try{if(r){let h=await r.answer({said:i,target:n.target,targetLabel:t.entry.targetLabel,state:t.state,catalog:{target:t.catalog.target,candidates:o},...n.follows?{follows:n.follows}:{}}),x=h.usage?.inputTokens,m=h.usage?.outputTokens,u=h.usage?.costUsd??(x!==void 0?Oe(r.price,x,m??0):void 0);t.meter({tier:"thinking",model:r.model,...x!==void 0?{inputTokens:x}:{},...m!==void 0?{outputTokens:m}:{},...u!==void 0?{costUsd:u}:{}}),a=typeof h.text=="string"?h.text.trim():"",k=c(h.pick??[])}else if(l){let h=await V(l,gn,JSON.stringify({ask:i,about:t.entry.targetLabel,...n.follows?{follows:n.follows}:{},state:t.state,candidates:o.map(x=>({id:x.id,says:x.description}))}),t,t.meter);a=typeof h?.answer=="string"?h.answer.trim():"",k=c(Array.isArray(h?.pick)?h.pick:[])}else if(d&&o.length>0){let{question:h,of:x}=fe(o,`Which of these best answers, or acts on: ${i}`),m=await ce(d,{...t.state,asked:i,candidates:o.map(u=>({id:u.id,type:u.type,says:u.description}))},{answer:h},t.meter);k=ue(m.answer,x,3),a=k.length>0?`These fit \u201C${i}\u201D.`:""}else return M(t,i,"ask",X)}catch(h){return M(t,i,"ask",h instanceof Error?h.message:String(h))}if(!a&&k.length===0)return M(t,i,"ask","The AI had no answer to that here.");let f=t.usage.at(-1)?.model,g=k.flatMap(({candidate:h,confidence:x})=>{let m=le(h);return m?[{...m,...x!==void 0?{confidence:x}:{}}]:[]}),A=g.length>0?Z(n.store,{interaction:t.id,target:n.target,basis:i,...f?{model:f}:{},proposals:g},n.principal):void 0,$=k.map(({candidate:h})=>h).filter(h=>le(h)===void 0),b=[...$.map(h=>$e(h,k.find(x=>x.candidate===h)?.confidence)),...(A?.proposals??[]).map(h=>({id:h.id,type:h.field!==void 0?"fill":"act",label:h.label,...h.confidence!==void 0?{confidence:h.confidence}:{}}))];return{interaction:{...t.entry,ask:{kind:"ask",said:i},offered:b,outcome:"offered",...a?{answer:a}:{},usage:[...t.usage]},offers:$,...A&&A.proposals.length>0?{ghost:A}:{},...a?{answer:a}:{}}}function Z(e,n,t){let i=n.proposals.flatMap(o=>{try{let r=e.previewAll([o.call],{author:t}),l=r.ops.map(d=>d.intent).join("; ");return r.ops.length>0?[{...o,said:l||o.said}]:[]}catch{return[]}});return{...n,proposals:i}}function le(e){if(e.type==="fill")return{id:e.id,label:e.label,said:e.description,call:e.call,record:e.record,field:e.field};if(e.type==="act"&&e.asks.length===0)return{id:e.id,label:e.label,said:e.description,call:{name:e.mutation,args:{...e.args}}}}function Qe(e,n,t){let i=n.proposals.filter(r=>t.ids===void 0||t.ids.includes(r.id));if(i.length===0)return{ok:!1,refused:"Nothing was chosen."};let o=i.flatMap(r=>r.confidence===void 0?[]:[r.confidence]);try{let l=e.applyAll(i.map(d=>d.call),{author:t.author,via:`ai:${n.interaction}`,intent:n.basis,lineage:{basis:`Asked \u201C${n.basis}\u201D`,...n.model?{model:n.model}:{},...o.length>0?{confidence:Math.min(...o)}:{},interaction:n.interaction}}).ops[0]?.batch;return l?{ok:!0,batch:l,accepted:i.map(d=>d.id)}:{ok:!1,refused:"That changes nothing now."}}catch(r){return{ok:!1,refused:r instanceof Error?r.message:String(r)}}}function Ye(e,n,t){let i=e.ask.kind==="suggest"?n.length>0:e.offered.length>0&&e.offered.every(o=>n.includes(o.id));return{...e,outcome:i?"accepted":"partly",accepted:n,batches:[...e.batches??[],t]}}var Ve=e=>({...e,outcome:"dismissed"});var T=he(sn(),1);var S=he(De(),1);function Ze(e,n,t){let i=n.on==="selection"?n.ids:n.on==="record"||n.on==="field"?[n.id]:[],o=i.length>0?Je(e.store,i,{principal:e.principal,...i.length===1?{focus:i[0]}:{}}).affordances.map(r=>({mutation:r.mutation,label:r.label,args:r.args,open:r.open,why:r.why,...r.destructive?{destructive:!0}:{}})):void 0;return{store:e.store,target:n,principal:e.principal,interaction:Ce(),places:e.places,selection:e.selection,...o?{acts:o}:{},...e.place?{place:e.place}:{},...t?{said:t}:{}}}async function en(e,n,t){let i=await (__graviewPreload(import.meta.url,["./chunk.BXWO6ILK.js","./chunk.G4JJXA63.js","./chunk.UPBUF7KR.js","./chunk.FGYCYLUS.js","./chunk.3V2M3S4U.js","./chunk.EKUAI5YL.js","./chunk.Q5WEOX3Q.js","./chunk.TX5QIZEP.js","./chunk.TSI4O3GH.js","./chunk.SZMWJHU2.js","./chunk.WVUJXDXZ.js","./chunk.YFW5BF6J.js","./chunk.QYWBQ5NX.js","./chunk.ENJKCSNX.js","./chunk.LJE5J3JK.js","./chunk.X2OLXTRL.js","./chunk.JDRM6XXD.js","./chunk.7OLVQ2FZ.js","./chunk.NOZEHLWG.js","./chunk.UVLPVHID.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.U4URQDC5.js")),o=i.recipeDraft(n.recipe,{app:e.app,sight:i.draftSight(e.app,e.principal)});if(i.isDraftFailure(o))return o.failed;t?.(),e.seatTalk.setDraft(o,null),e.goTo.draft?.(),nn()}function nn(e=180){if(typeof document>"u")return;let n=document.querySelector('[data-testid="draft-keep"]'),t=document.activeElement,i=!t||t===document.body||t.closest?.("[inert]")!==null;if(n){i&&n.focus();return}e>0&&requestAnimationFrame(()=>nn(e-1))}async function ee(e,n,t,i,o){let r=Ze(e,t,i),l=n==="suggest"?await qe(e.ai,r):n==="fill"?await ze(e.ai,r):n==="record"?await _e(e.ai,r):await Ke(e.ai,r);if(l.interaction.outcome==="failed")return n!=="suggest"&&e.desk.record(l.interaction),l;let d=a=>{let k={...l.interaction,outcome:"failed",failed:a};return e.desk.record(k),{...l,interaction:k}};if(n==="fill"||n==="record"){if(!l.ghost||l.ghost.proposals.length===0)return d("Nothing here could be filled in.");o?.(),e.desk.setGhost({ghost:l.ghost}),e.desk.record(l.interaction)}if(n==="panel"&&l.panel){let a=await en(e,l.panel,o);if(a)return d(a);e.desk.record(l.interaction)}return l}var Te=new WeakMap,hn=64,Xe=new WeakMap;function mn(e){let n=Xe.get(e);if(!n){let t=n={n:0};Xe.set(e,t),e.subscribe(()=>void(t.n+=1))}return n.n}var tn=(e,n)=>{let t=K(n);return t.length>0?t.map(i=>e.graph.getNode(i)):[mn(e)]},on=(e,n)=>JSON.stringify({target:n,seat:e.principal}),rn=(e,n,t)=>{let i=tn(e.store,n);return t.schema===e.store.schema&&t.ai===e.ai&&i.length===t.depends.length&&i.every((o,r)=>o===t.depends[r])};function kn(e,n){let t=Te.get(e.store)?.get(on(e,n));return t?.result!==void 0&&rn(e,n,t)?t.result:void 0}function bn(e,n){let t=Te.get(e.store);t||Te.set(e.store,t=new Map);let i=on(e,n),o=t.get(i);if(o&&rn(e,n,o))return o.result?Promise.resolve(o.result):o.asked;let r=ee(e,"suggest",n),l={schema:e.store.schema,ai:e.ai,depends:tn(e.store,n),asked:r};t.delete(i),t.set(i,l),t.size>hn&&t.delete(t.keys().next().value);let d=t;return r.then(a=>{a.interaction.outcome!=="failed"?l.result=a:d.get(i)===l&&d.delete(i)}),r}async function An(e,n,t,i){let o=n.interaction,r=le(t);if(r){let l=o.usage?.at(-1)?.model,d=o.offered.find(k=>k.id===t.id)?.confidence,a=Z(e.store,{interaction:o.id,target:o.target,basis:`${o.ask.said}: ${t.label}`,...l?{model:l}:{},proposals:[{...r,...d!==void 0?{confidence:d}:{}}]},e.principal);if(a.proposals.length===0){let k="That can't be done now.";return e.desk.record({...o,outcome:"failed",failed:k}),k}i?.(),e.desk.setGhost({ghost:a}),e.desk.record(o);return}if(t.type==="panel"){let l=t.label,d={title:l,recipe:{...t.panel,title:l}},a=await en(e,d,i);return e.desk.record(a?{...o,outcome:"failed",failed:a}:{...o,outcome:"drawn",accepted:[t.id],panel:d}),a}i?.(),t.type==="place"?e.goTo.place(t.place):t.type==="record"&&e.goTo.record(t.record),e.desk.record({...o,outcome:"accepted",accepted:[t.id]})}async function Fn(e,n){if(n.ask.kind==="ask")return ke(e.desk,{target:n.target,asked:n.ask.said}),null;let t=n.ask.kind==="panel"||n.ask.kind==="record"?n.ask.kind:"fill";return ee(e,t,n.target,n.ask.said)}var B={padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:"transparent",background:"none",boxShadow:"none"},pe={margin:0,padding:"4px 10px",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"};function Gn({target:e,close:n}){let t=Le(),i=(0,T.useMemo)(()=>Fe(e,y=>t.store.graph.has(y)),[e,t.store]),o=(0,T.useMemo)(()=>{let y=Ze(t,i);return de(t.store,i,{principal:t.principal,places:t.places,...y.acts?{acts:y.acts}:{}})},[t,i]),r=o.candidates.some(y=>y.type==="fill"),l=o.candidates.some(y=>y.type==="panel"),d=(0,T.useMemo)(()=>new Set(t.store.allMutations().filter(y=>(y.creates??[]).length>0).map(y=>y.name)),[t.store]),a=J(t.ai)!==void 0&&o.candidates.some(y=>y.type==="act"&&y.asks.length>0&&d.has(y.mutation)),k=Be(t.ai),c=kn(t,i),f=JSON.stringify(i),[g,A]=(0,T.useState)(!1),[$,b]=(0,T.useState)(null),[h,x]=(0,T.useState)(k&&c===void 0);(0,T.useEffect)(()=>{if(c!==void 0||!(k||g))return;let y=!0;return x(!0),bn(t,i).then(O=>{y&&(b(O),x(!1))}),()=>{y=!1}},[f,g]);let m=c??$,u=m?.interaction.outcome==="failed"?m.interaction.failed??"The AI could not suggest anything here.":null,v=(0,T.useRef)(!1),P=(0,T.useRef)(null);(0,T.useLayoutEffect)(()=>{m===null||!v.current||(v.current=!1,P.current?.querySelector("button")?.focus())},[m]);let W=(0,T.useRef)(!0);(0,T.useEffect)(()=>()=>{W.current=!1},[]);let[q,z]=(0,T.useState)(!1),[ne,s]=(0,T.useState)(null),p=y=>{if(q)return;z(!0),s(null);let O=!1;y(()=>{O=!0,n()}).then(w=>{W.current&&(z(!1),w?s(w):O||n())},w=>{W.current&&(z(!1),s(w instanceof Error?w.message:String(w)))})},C=y=>y.interaction.outcome==="failed"?y.interaction.failed??"The AI could not do that here.":void 0;return(0,S.jsxs)("div",{ref:P,"data-testid":"inline-ai",style:{display:"grid",gap:2},children:[h&&!g?(0,S.jsx)("p",{role:"status","data-testid":"inline-ai-thinking",style:pe,children:"Thinking\u2026"}):q?(0,S.jsx)("p",{role:"status","data-testid":"inline-ai-asking",style:pe,children:"Asking\u2026"}):ne?(0,S.jsx)("p",{role:"alert","data-testid":"inline-ai-failed",style:{...pe,color:"var(--graview-warn)"},children:ne}):u?(0,S.jsx)("p",{role:"status",style:pe,children:u}):null,(0,S.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:2},children:[(m?.offers??[]).map(y=>(0,S.jsx)("li",{children:(0,S.jsxs)("button",{type:"button","data-menu-item":`ai-offer:${y.id}`,"data-ai-offer":y.id,"data-ai-offer-type":y.type,onClick:()=>p(O=>An(t,m,y,O)),style:B,children:[y.label,(0,S.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",y.type==="panel"?"a panel":y.type==="place"?"go there":y.type==="record"?"open it":"suggested"]})]})},y.id)),!k&&m===null?(0,S.jsx)("li",{children:(0,S.jsx)("button",{type:"button","data-menu-item":"ai-suggest","aria-disabled":g||void 0,onClick:y=>{g||(v.current=document.activeElement===y.currentTarget,A(!0))},style:B,children:g?"Thinking\u2026":"Suggest\u2026"})}):null,r?(0,S.jsx)("li",{children:(0,S.jsx)("button",{type:"button","data-menu-item":"ai-fill",onClick:()=>p(async y=>C(await ee(t,"fill",i,"Fill in",y))),style:B,children:"Fill in with AI"})}):null,a?(0,S.jsx)("li",{children:(0,S.jsx)("button",{type:"button","data-menu-item":"ai-record",onClick:()=>p(async y=>C(await ee(t,"record",i,"Add one",y))),style:B,children:"Add one with AI"})}):null,l?(0,S.jsx)("li",{children:(0,S.jsx)("button",{type:"button","data-menu-item":"ai-panel",onClick:()=>p(async y=>C(await ee(t,"panel",i,"Draw a panel",y))),style:B,children:"Draw a panel"})}):null,(0,S.jsx)("li",{children:(0,S.jsx)("button",{type:"button","data-menu-item":"ai-ask",onClick:()=>{let y=document.activeElement;n(),ke(t.desk,{target:i,returnTo:y instanceof HTMLElement&&y!==document.body?y:null})},style:B,children:"Ask about this\u2026"})})]})]})}var ye={display:"inline-flex",alignItems:"center",minHeight:28,padding:"2px 10px",fontSize:"0.8125rem",borderRadius:8};function Bn({placement:e="picture"}){let{store:n,principal:t,aiDesk:i}=He(),o=Ne(n,t),{ghost:r,entries:l}=je(i),[d,a]=(0,T.useState)(new Set);(0,T.useEffect)(()=>a(new Set),[r?.ghost.interaction]);let k=(0,T.useRef)(null),c=(0,T.useRef)(null),f=r?.batch;if((0,T.useEffect)(()=>{f!==void 0&&c.current?.focus()},[f]),!r)return null;let{ghost:g}=r,A=l.find(u=>u.id===g.interaction),$=()=>{let u=g.target.on==="record"||g.target.on==="field"?g.target.id:void 0,v=k.current?.closest("[data-graview-face], main")?.parentElement??document,P=(u?v.querySelector(`[data-graview-view="${CSS.escape(u)}"][tabindex]`):null)??document.querySelector("[data-graview-page-title]")??k.current?.closest("main")??document.querySelector("main");P&&!P.hasAttribute("tabindex")&&P.setAttribute("tabindex","-1"),P?.focus({preventScroll:!0}),i.setGhost(null)},b=g.proposals.filter(u=>!d.has(u.id)).map(u=>u.id),h=()=>{let u=Qe(o,g,{author:t,ids:b});if(!u.ok){i.setGhost({...r,refused:u.refused});return}A&&i.record(Ye(A,u.accepted,u.batch)),i.setGhost({ghost:g,batch:u.batch,took:u.accepted.length,...r.onCard?{onCard:!0}:{}})},x=()=>{A&&r.batch===void 0&&i.record(Ve(A)),$()},m=()=>{if(r.batch!==void 0)try{o.undo(r.batch,{author:t}),$()}catch(u){i.setGhost({...r,refused:u instanceof Error?u.message:String(u)})}};return(0,S.jsxs)("section",{ref:k,"data-testid":"ai-ghost","data-interaction":g.interaction,"aria-label":"Proposed by AI",style:{...e==="card"?{position:"static"}:{position:e==="page"?"fixed":"absolute",insetInline:"max(12px, calc(50% - 220px))",bottom:"calc(var(--graview-foot-room, 0px) + 72px)",zIndex:Ee("toast"),boxShadow:"var(--graview-lift-high)"},display:"grid",gap:8,padding:12,borderRadius:12,border:"1px dashed var(--graview-accent)",background:"var(--graview-float)",fontSize:"0.875rem"},children:[(0,S.jsx)("p",{style:{margin:0,color:"var(--graview-ink-muted)"},children:r.batch!==void 0?`Done: ${r.took===1?"one change":`${r.took} changes`}, as one.`:`Proposed by AI \xB7 ${g.basis}`}),r.batch===void 0?(0,S.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:4},children:g.proposals.map(u=>(0,S.jsx)("li",{"data-ghost-proposal":u.id,children:(0,S.jsxs)("label",{style:{display:"flex",alignItems:"baseline",gap:8,cursor:"pointer"},children:[(0,S.jsx)("input",{type:"checkbox",checked:!d.has(u.id),onChange:v=>{let P=new Set(d);v.target.checked?P.delete(u.id):P.add(u.id),a(P)}}),(0,S.jsx)("span",{style:{fontStyle:"italic",color:"var(--graview-ink)"},children:u.said}),u.confidence!==void 0?(0,S.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[Math.round(u.confidence*100),"% sure"]}):null]})},u.id))}):null,r.refused?(0,S.jsx)("p",{role:"alert",style:{margin:0,color:"var(--graview-warn)"},children:r.refused}):null,(0,S.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:r.batch===void 0?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)("button",{type:"button","data-testid":"ghost-accept",disabled:b.length===0,onClick:h,style:ye,children:b.length===g.proposals.length?"Accept":`Accept ${b.length} of ${g.proposals.length}`}),(0,S.jsx)("button",{type:"button","data-testid":"ghost-dismiss",onClick:x,style:ye,children:"Dismiss"})]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)("button",{type:"button",ref:c,"data-testid":"ghost-undo",onClick:m,style:ye,children:"Undo"}),(0,S.jsx)("button",{type:"button","data-testid":"ghost-close",onClick:$,style:ye,children:"Close"})]})})]})}export{Fe as a,K as b,de as c,fn as d,Rn as e,Ze as f,en as g,ee as h,kn as i,bn as j,An as k,Fn as l,Gn as m,Bn as n};
@@ -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{d as Se,f as be}from"./chunk.4NCXMVPY.js";import{e as pt}from"./chunk.QJYALCIW.js";import{a as yt,d as wt,f as vt}from"./chunk.HSRGYZOR.js";import{a as Ce,b as ft}from"./chunk.BRBY5WJT.js";import{a as mt,b as ht}from"./chunk.UV2TSAB4.js";import{h as ut}from"./chunk.6SK2K72G.js";import{a as ae,b as tt}from"./chunk.MJLUAGEV.js";import{b as Pe,c as U,d as X,e as it,f as rt}from"./chunk.WNMLA4YW.js";import{a as ve,b as gt}from"./chunk.VUKHDZNI.js";import{d as ot,e as ie,f as J,g as ye,h as st,j as lt,k as re}from"./chunk.YFW5BF6J.js";import{j as dt,o as we}from"./chunk.GXPBRYSR.js";import{c as ct}from"./chunk.NV6IZJKA.js";import{c as at,d as Re}from"./chunk.NOZEHLWG.js";import{c as nt}from"./chunk.UVLPVHID.js";import{A as Je,F as q,Q as I,R as Ye,X as Ze,Y as V,_ as ue,a as ge,fa as Qe,ga as j,ha as pe,ja as me,k as je,la as et,m as _e,n as qe,na as xe,oa as he,pa as Ne,s as ne,w as Ue,xa as fe,z as Xe}from"./chunk.DNNL7F3P.js";import{T as Q,Wb as te,ba as $,da as ee,fb as Ke,ka as H}from"./chunk.HBBVVALN.js";import{b as E}from"./chunk.AJZBJBMO.js";var v=E(q(),1);var St=E(q(),1);function bt(e){(0,St.useLayoutEffect)(()=>{let n=e.current,t=n?.parentElement;if(!n||!t)return;let a=n.style.bottom,o=()=>{let c=t.querySelector(zt);if(!c){n.style.bottom=a;return}let u=t.getBoundingClientRect(),m=c.getBoundingClientRect(),d=u.height>0?t.offsetHeight/u.height:1;n.style.bottom=`${Math.max(0,Math.round((u.bottom-m.top)*d))}px`};if(o(),typeof ResizeObserver>"u")return;let g=new ResizeObserver(o);return g.observe(t),()=>g.disconnect()},[e])}var zt=".graview-spec-listing";var $e=E(q(),1);var P=E(q(),1);var kt=E(q(),1);var B=E(I(),1);function xt({id:e,max:n=8,empty:t,hide:a}){let{store:o}=V();ue();let g=Kt(o,e,o.violations()),[c,u]=(0,kt.useState)(()=>new Set),m=a?g.flatMap(d=>{let f=d.ids.filter(r=>!a.has(r));return f.length>0?[{...d,ids:f}]:[]}):g;return m.length===0?t&&g.length===0?(0,B.jsx)("p",{style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-faint)"},children:t}):null:(0,B.jsx)("div",{"data-graview-primitive":"connections",style:{display:"flex",flexDirection:"column",gap:12},children:m.map(d=>{let f=c.has(d.key),r=d.ids.length>n,l=f?d.ids:d.ids.slice(0,n),y=d.ids.length-Math.min(n,d.ids.length),k=`graview-more-${e}-${d.key}`.replace(/[^A-Za-z0-9_-]/g,"-");return(0,B.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,B.jsx)("h2",{...d.said?{"aria-label":d.said}:{},style:{margin:0,fontSize:"0.75rem",fontWeight:600,letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:d.label}),(0,B.jsxs)("div",{id:k,style:{display:"flex",flexWrap:"wrap",gap:6},children:[l.map(h=>{let w=o.graph.getNode(h);return w?(0,B.jsx)(X,{pickId:h,hue:te(w.kind),title:`Go to the ${H(o.schema.tryDefinition(w.kind),w.kind)}`,label:$(o.schema.tryDefinition(w.kind),w)},h):null}),r?(0,B.jsx)("button",{type:"button","data-graview-more":d.key,"aria-expanded":f,"aria-controls":k,...f?{}:{"aria-label":`${y} more: ${d.said??d.label}`},onClick:h=>{h.stopPropagation(),u(w=>{let S=new Set(w);return S.has(d.key)?S.delete(d.key):S.add(d.key),S})},style:Ft,children:f?"Show fewer":`+${y} more`}):null]})]},d.key)})})}var Ft={display:"inline-flex",alignItems:"center",alignSelf:"flex-start",minHeight:24,boxSizing:"border-box",padding:"3px 9px",borderRadius:6,border:"1px solid var(--graview-edge)",background:"var(--graview-panel-muted)",color:"var(--graview-accent)",font:"inherit",fontSize:"0.8125rem",lineHeight:1.5,whiteSpace:"nowrap",cursor:"pointer"};function Kt(e,n,t=[]){let a=e.graph.getNode(n);if(!a)return[];let o=new Map,g=[];for(let c of t)if(c.subjectId===n)for(let u of c.nodeIds)u!==n&&!g.includes(u)&&e.graph.has(u)&&g.push(u);g.length>0&&o.set("judges",{key:"judges",label:"what it finds wrong",ids:g});for(let c of e.graph.allEdges()){let u=c.from===n?c.to:c.to===n?c.from:null;if(u===null||u===n)continue;let m=e.graph.getNode(u);if(!m)continue;let d=c.from===n?"out":"in",f=d==="out"?a.kind:m.kind,r=jt(e.schema,f,c.kind,d),l=`${c.kind}:${d}:${r.label}`,y=o.get(l)??{key:l,...r,ids:[]};y.ids.includes(u)||y.ids.push(u),o.set(l,y)}for(let c of o.values())c.ids.sort();return[...o.values()].sort((c,u)=>c.key<u.key?-1:c.key>u.key?1:0)}function jt(e,n,t,a){let o=nt(e,n,t,a),g=ee(t).toLowerCase();return o.trim().toLowerCase()!==g?{label:o}:a==="out"?{label:`\u2192 ${g}`,said:g}:{label:`\u2190 ${g}`,said:`${g}, pointing here`}}var Nt=E(q(),1),oe=(0,Nt.createContext)(null);var s=E(I(),1),_t=fe(ge(()=>(__graviewPreload(import.meta.url,["./chunk.ELY2RMGE.js","./chunk.UV2TSAB4.js","./chunk.6SK2K72G.js","./chunk.NNNVB6RV.js","./chunk.7OLVQ2FZ.js","./chunk.NOZEHLWG.js","./chunk.UVLPVHID.js","./chunk.QXARGANF.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.ZYPCE2LZ.js")))).part((e,n)=>(0,s.jsx)(e.ArrangeBar,{...n}),{what:"Arranging this list"}),qt=fe(ge(()=>(__graviewPreload(import.meta.url,["./chunk.SNKOPWAD.js","./chunk.LVNAB2BW.js","./chunk.YW2BZ2LH.js","./chunk.HYAKRLPT.js","./chunk.IHBIRAC4.js","./chunk.CYPTJNES.js","./chunk.4NCXMVPY.js","./chunk.TN4GY6LW.js","./chunk.QJYALCIW.js","./chunk.HSRGYZOR.js","./chunk.BRBY5WJT.js","./chunk.ELY2RMGE.js","./chunk.UV2TSAB4.js","./chunk.6SK2K72G.js","./chunk.NNNVB6RV.js","./chunk.HJCQ6I3S.js","./chunk.AWRS6TUN.js","./chunk.KAWP4RNR.js","./chunk.BXWO6ILK.js","./chunk.G4JJXA63.js","./chunk.UPBUF7KR.js","./chunk.FGYCYLUS.js","./chunk.NZJZIYDK.js","./chunk.3V2M3S4U.js","./chunk.EKUAI5YL.js","./chunk.57XTDW57.js","./chunk.MJLUAGEV.js","./chunk.WNMLA4YW.js","./chunk.VUKHDZNI.js","./chunk.UT6642FC.js","./chunk.Q5WEOX3Q.js","./chunk.TX5QIZEP.js","./chunk.TSI4O3GH.js","./chunk.SZMWJHU2.js","./chunk.WVUJXDXZ.js","./chunk.YFW5BF6J.js","./chunk.QYWBQ5NX.js","./chunk.ENJKCSNX.js","./chunk.LJE5J3JK.js","./chunk.X2OLXTRL.js","./chunk.JDRM6XXD.js","./chunk.GZHZLJBF.js","./chunk.GXPBRYSR.js","./chunk.NV6IZJKA.js","./chunk.OJGHDWI6.js","./chunk.7OLVQ2FZ.js","./chunk.NOZEHLWG.js","./chunk.UVLPVHID.js","./chunk.QXARGANF.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.5EXYDBAL.js")))).part((e,n)=>(0,s.jsx)(e.KindStop,{...n}),{what:"This list"});function Ae(e){let{brand:n}=V();return te(e,n?.accents)}function Ut(e,n){if(!n.endsWith("\u2026")&&!n.endsWith("..."))return;let t=n.replace(/[…]|\.\.\.$/g,"").trim();if(!(t.length<12)){for(let a of Object.values(e))if(typeof a=="string"&&a.length>t.length&&a.startsWith(t))return a}}function Xt(e,n){let a=Math.max(0,...e.slice(0,n*2).map(g=>g.length))*7.5+28<=212/2?2:1,o=n*a;return{columns:a,shown:Math.min(e.length,o)}}var Jt=8,Rt=500,Yt=12;function Ct(e){return{x:e.clientX,y:e.clientY,pointerType:e.pointerType??""}}function Zt(e,n,t){let a=performance.now()+Rt,o=["pointerdown","pointerup","mousedown","mouseup","dblclick"],g=r=>{if(performance.now()>a||!(r instanceof MouseEvent))return!1;let l=Ct(r);return n.pointerType&&l.pointerType&&n.pointerType!==l.pointerType?!1:Math.hypot(l.x-n.x,l.y-n.y)<=Yt},c=r=>{if(!g(r))return d();r.stopPropagation()},u=r=>{if(!g(r))return d();r.stopPropagation(),r.preventDefault(),e.removeEventListener("click",u,!0),setTimeout(d,50),t()},m=!1,d=()=>{if(!m){m=!0,clearTimeout(f),e.removeEventListener("click",u,!0);for(let r of o)e.removeEventListener(r,c,!0)}};for(let r of o)e.addEventListener(r,c,!0);e.addEventListener("click",u,!0);let f=setTimeout(d,Rt)}function Qt({View:e,members:n,mode:t,flagged:a}){let{isSelected:o}=xe(),g=n.slice(0,Jt);return(0,s.jsxs)("div",{"data-graview-rows":"",style:{display:"grid",gap:4,minWidth:0},children:[g.map(c=>(0,s.jsx)("div",{"data-graview-pick":c.id,style:{minWidth:0,cursor:"pointer"},children:(0,s.jsx)(e,{node:c,cardinality:"one",fidelity:"glyph",mode:t,selected:o(c.id),...a?.includes(c.id)?{flagged:[c.id]}:{}})},c.id)),n.length>g.length?(0,s.jsx)(X,{label:`+${n.length-g.length} more`}):null]})}var en=11/15,tn=fe(ge(()=>(__graviewPreload(import.meta.url,["./chunk.7OLVQ2FZ.js","./chunk.NOZEHLWG.js","./chunk.UVLPVHID.js","./chunk.QXARGANF.js","./chunk.DNNL7F3P.js","./chunk.HBBVVALN.js","./chunk.AJZBJBMO.js"]),import("./chunk.TXS4I326.js")))).part((e,n)=>(0,s.jsx)(e.StatesBar,{...n}),{quiet:!0});function nn({text:e,accent:n}){let t=(0,P.useRef)(null),a=(0,P.useRef)(null),[o,g]=(0,P.useState)(1),[c,u]=(0,P.useState)(!1),m=o<1?`${o}em`:void 0;return(0,P.useLayoutEffect)(()=>{let d=t.current,f=a.current;if(!d||!f)return;let r=()=>{let y=d.clientWidth,k=f.offsetWidth;if(y<=0||k<=0)return;let h=parseFloat(getComputedStyle(f).fontSize)/parseFloat(getComputedStyle(d).fontSize)||1,w=k/h,S=Math.max(en,Math.min(1,Math.floor(y/w*100)/100));g(x=>Math.abs(x-S)<.01?x:S),u(w*S>y+.5)};if(r(),typeof ResizeObserver>"u")return;let l=new ResizeObserver(r);return l.observe(d),()=>l.disconnect()},[e]),(0,s.jsx)("span",{ref:t,"data-graview-district-name":"",...o<1?{"data-graview-fitted":""}:{},...c?{title:e}:{},style:{display:"block",minWidth:0,fontSize:"0.9375rem",lineHeight:1.25,letterSpacing:"0.05em",textTransform:"uppercase",color:n?"var(--graview-accent)":"var(--graview-ink-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:(0,s.jsx)("span",{ref:a,style:{fontSize:m},children:e})})}function Pt(e,n){return!!e?.display?.page?.groups?.length||Re(n,e).some(t=>t.long)}function At(e,n=me(e)){for(let t of e.kinds){let a=e.tryDefinition(t),o=a?.plural??`${String(t)}s`,g=r=>{let l=r.node,y=he(),k=(0,P.useContext)(oe);if(!l)return null;let h=k?.nodeId===l.id?k:null,w=$(a,l),S=r.mode==="fullscreen"?Ut(l,w)??w:w,x=Ke(y,[l.id]);return(0,s.jsxs)(U,{title:(0,s.jsx)(vt,{nodeId:l.id,children:h?.title??S}),...h?{}:{subtitle:a?.describe?at(a,l):a?.description??String(t)},selected:r.selected,...r.flagged?.includes(l.id)?{tone:"warning"}:{},fit:!0,children:[h?(0,s.jsx)(oe.Provider,{value:null,children:h.body}):null,(0,s.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"22px 34px",alignItems:"flex-start"},children:[(0,s.jsx)("div",{style:{flex:Pt(a,l)?"1 1 100%":"1 1 0",minWidth:"min(200px, 100%)"},children:(0,s.jsx)(wt,{id:l.id,shown:[S,w,a?.description,h?.title],...h?{hide:[...h.fields]}:{}})}),(0,s.jsx)("div",{style:{flex:Pt(a,l)?"1 1 100%":"1.4 1 0",minWidth:"min(220px, 100%)"},children:(0,s.jsx)(xt,{id:l.id,empty:`Nothing is connected to this ${H(a,String(t))} yet.`,...h?{hide:h.records}:{}})})]}),x.length>0?(0,s.jsx)("p",{"data-graview-broken":"",style:{margin:"14px 0 0",paddingTop:12,borderTop:"1px solid var(--graview-edge)",fontSize:"0.875rem",color:"var(--graview-warn)"},children:x.map(b=>b.message).join(" \xB7 ")}):null]})},c=r=>{let l=r.node;if(!l)return null;let{store:y}=V(),k=a?.computed?lt(y.schema,y.graph,l):l,h=Re(k,a,{limit:3,said:[$(a,l)],glance:!0}),w=Ae(t),S=h.filter(N=>!N.long&&!N.markdown),x=h.find(N=>N.long||N.markdown),b=ot(l,a);return(0,s.jsxs)(U,{title:$(a,l),selected:r.selected,tone:r.flagged?.includes(l.id)?"warning":"muted",fit:!0,children:[b?(0,s.jsx)(ve,{as:"thumb",file:b,size:64,style:{marginBottom:6}}):null,(0,s.jsx)(it,{items:S.map(N=>({id:N.key,label:N.alone,hue:w})),max:3}),x?(0,s.jsx)("p",{"data-graview-excerpt":x.key,title:x.value,style:{margin:S.length>0?"6px 0 0":0,fontSize:"0.8125rem",lineHeight:1.35,color:"var(--graview-ink-muted)",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:x.value}):null]})},u=r=>{let l=r.node,y=Ae(t),k=we().marks.flag;if(!l)return null;let h=r.flagged?.includes(l.id)??!1;return(0,s.jsx)(X,{label:h?`${$(a,l)} ${k}`:$(a,l),hue:y,selected:r.selected,title:h?`${ee(H(a,String(t)))} \u2014 implicated in a problem`:ee(H(a,String(t)))})},m=r=>r.fidelity==="full"?(0,s.jsx)(P.Suspense,{fallback:(0,s.jsx)(d,{...r}),children:(0,s.jsx)(qt,{kind:String(t),members:r.nodes??[],...r.flagged?{flagged:r.flagged}:{},...r.label?{label:r.label}:{},...r.retired?{retired:r.retired}:{}})}):(0,s.jsx)(d,{...r}),d=r=>{let{brand:l,store:y,views:k}=V(),{view:h,go:w}=Ne(),S=r.nodes??[],x=k.lookup(String(t),{cardinality:"one",fidelity:"glyph"}),b=x!==void 0&&!pe(x)?x:void 0,N=mt(h),C=ut(S,N,{schema:e,graph:y.graph,flagged:new Set(r.flagged??[])}),L=R=>({id:R.id,label:$(e.tryDefinition(R.kind),R),hue:te(R.kind,l?.accents)}),W=r.fidelity==="full"&&S.length>1?(0,s.jsx)(P.Suspense,{fallback:null,children:(0,s.jsx)(_t,{schema:e,graph:y.graph,kind:String(t),arrangement:N,onChange:R=>w(ht(h,R)),kept:{shown:C.nodes.length,of:S.length},style:{marginBottom:8}})}):null,se=R=>R.some(A=>r.flagged?.includes(A.id)),le=he(),Y=we().marks.flag,z=(R,A,de)=>b?(0,s.jsx)(U,{title:R,meta:(0,s.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,s.jsx)(be,{kind:String(t),plural:o,problems:Se(le,A),flag:Y}),(0,s.jsx)("span",{title:`${Q(A.length)} ${A.length===1?H(a,String(t)):o.toLowerCase()}`,children:Q(A.length)})]}),tone:se(A)?"warning":"muted",children:(0,s.jsx)(Qt,{View:b,members:A,mode:r.mode,...r.flagged?{flagged:r.flagged}:{}})},de):(0,s.jsx)(rt,{label:R,count:A.length,flagged:se(A),items:A.map(L),problems:(0,s.jsx)(be,{kind:String(t),plural:o,problems:Se(le,A),flag:Y})},de);return C.grouped?(0,s.jsxs)("div",{style:{display:"grid",gap:8},"data-graview-grouped":N.group?.by,children:[W,C.groups.map(R=>z(`${r.label??o} \xB7 ${R.label}`,R.nodes,R.key||"-"))]}):(0,s.jsxs)("div",{style:{display:"grid",gap:4},children:[W,z(r.label??o,C.nodes)]})},f=r=>{let l=r.nodes??[],y=Xt(l.map(p=>$(a,p)),r.openedRows??dt(l.length)),k=Ae(t),{brand:h}=V(),w=tt(String(t),e,h),S=we().marks.flag,{selection:x,set:b,clear:N}=xe(),{toggle:C,view:L,go:W}=Ne(),{views:se,hiddenKinds:le}=V(),Y=(0,P.useContext)(Qe),z=L.overview&&!le.has(String(t))?se.places().filter(p=>p.kind===String(t)):[],R=r.focused?L.within?.view??z[0]?.as:void 0,A=l.filter(p=>r.flagged?.includes(p.id)).length,de=A>0,Ot=he(),Ht=Se(Ot,l),F=(L.overview??!1)&&r.nestedUnder===void 0,G=r.focused||r.raised,He=r.rank==="secondary"&&!G,M=r.nestedUnder!==void 0,Ie=new Set(x),K=Y?x.length===1&&x[0]===ne(String(t)):r.opened??!1,It=ct(),O=G||F?0:l.filter(p=>It.includes(p.id)&&!Ie.has(p.id)).length,ke=O>0&&!de,ce=Ze(),_=ce&&!M?ce.byKind[String(t)]??0:0,We=(0,P.useRef)(null),ze=(0,P.useRef)(null);(0,P.useLayoutEffect)(()=>{let p=ze.current,D=We.current;if(!p||!D||!F)return;let T=()=>D.style.setProperty("--graview-plate-h",`${p.offsetHeight}px`);if(T(),typeof ResizeObserver>"u")return;let Z=new ResizeObserver(T);return Z.observe(p,{box:"border-box"}),()=>Z.disconnect()},[F]);let Wt=M?8:Math.min(46,10+Math.round(Math.sqrt(l.length)*8)),Fe=M?(0,s.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.25,letterSpacing:"0.05em",textTransform:"uppercase",color:G?"var(--graview-accent)":"var(--graview-ink-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r.label??o}):(0,s.jsx)(nn,{text:r.label??o,accent:!!G});return(0,s.jsxs)("div",{ref:We,className:"graview-kind-card","data-graview-rank":r.rank,"data-graview-landmark":w||void 0,"data-graview-nested":M||void 0,"data-graview-tied":O||void 0,"data-graview-hits":ce&&!M?_:void 0,"data-graview-emphasis":ce&&!M?_>0?"lit":"dimmed":void 0,...a?.description||M?{title:M?[r.label??o,a?.description].filter(Boolean).join(" \u2014 "):a.description}:{},style:{position:"relative",height:"100%","--graview-hue":Math.round(k)},children:[w?(0,s.jsx)("span",{className:"graview-kind-block graview-kind-landmark","data-graview-opened":r.opened||void 0,"aria-hidden":"true",style:{"--graview-rise":Wt},children:(0,s.jsx)(ae,{kind:String(t),schema:e,...h?{brand:h}:{},size:96})}):null,(0,s.jsxs)("div",{ref:ze,className:"graview-kind-face","data-graview-opened":r.opened||void 0,"data-graview-nameplate":F?r.nameplate??"full":void 0,style:{display:"flex",flexDirection:"column",gap:M?1:3,padding:M?"5px 7px":"7px 10px",borderRadius:"var(--graview-radius-sm, 9px)",justifyContent:"center",position:"relative",height:"100%",overflow:"hidden",boxSizing:"border-box",border:G?"1px solid var(--graview-accent)":O>0?"1px solid var(--graview-accent-dim)":`1px solid hsl(${Math.round(k)} 55% var(--graview-tint-lightness) / 0.34)`,backgroundColor:"var(--graview-panel)",backgroundImage:`linear-gradient(hsl(${Math.round(k)} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * ${G?1.1:He?.28:.5})), hsl(${Math.round(k)} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * ${G?1.1:He?.28:.5})))`,boxShadow:G?"0 0 0 1px var(--graview-accent-dim)":void 0},children:[!M&&!F&&l.length>0?(0,s.jsx)("div",{"data-graview-tally":l.length,"data-graview-broken":A||void 0,"aria-hidden":"true",style:{position:"absolute",left:0,right:0,top:0,display:"flex",height:3,background:`hsl(${Math.round(k)} 55% var(--graview-tint-lightness) / 0.4)`},children:A>0?(0,s.jsx)("span",{style:{width:`${Math.max(6,Math.round(A/l.length*100))}%`,background:"var(--graview-warn)"}}):null}):null,w?(0,s.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:M?4:6},children:[(0,s.jsx)(ae,{kind:String(t),schema:e,...h?{brand:h}:{},size:M?14:18}),Fe]}):Fe,(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,fontSize:"0.875rem"},children:[(0,s.jsx)("span",{title:l.length>0?`${Q(l.length)} ${l.length===1?H(a,String(t)):o.toLowerCase()}`:void 0,style:{fontVariantNumeric:"tabular-nums",color:ke?"var(--graview-accent)":"var(--graview-ink-faint)"},children:l.length===0?"none yet":ke?O===l.length?`${O} tied`:`${O} of ${l.length} tied`:Q(l.length)}),(0,s.jsx)(be,{kind:String(t),plural:o,problems:Ht,flag:S,listed:K}),(r.retired??0)>0?(0,s.jsxs)("button",{type:"button",className:"graview-kind-past","data-graview-retired":r.retired,title:`${r.retired} retired ${o.toLowerCase()} \u2014 press to widen the view to the past`,onClick:p=>{p.stopPropagation(),W(pt(L,!0))},onDoubleClick:p=>p.stopPropagation(),onPointerDown:p=>p.stopPropagation(),children:["+",r.retired," past"]}):null,_>0?(0,s.jsxs)("button",{type:"button",className:"graview-kind-hits","data-testid":`hits-${String(t)}`,title:`${_} ${_===1?"match":"matches"} for \u201C${L.q??""}\u201D \u2014 press to go in, narrowed`,onClick:p=>{p.stopPropagation(),W(Xe(L,ne(String(t)),{ownPicture:!0,...L.q?{carry:L.q}:{}}))},onDoubleClick:p=>p.stopPropagation(),onPointerDown:p=>p.stopPropagation(),children:[_," match"]}):null,O>0&&!ke?(0,s.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-accent)"},children:[O," tied"]}):null,r.hasOwnView&&!F?(0,s.jsx)("span",{title:`${o} has a view of its own`,"aria-label":"has its own view",style:{fontSize:"0.6875rem",color:"var(--graview-accent)"},children:"\u25C6"}):null,!M&&l.length>0&&!r.focused?(0,s.jsxs)("button",{type:"button",className:"graview-kind-open","data-testid":`open-${String(t)}`,"aria-expanded":K,"aria-label":K?`Close up the ${o}`:`See the ${o} in here`,title:K?"Close it up":`See the ${o} in here`,onClick:p=>{p.stopPropagation(),Y?K?N():b([ne(String(t))]):C(ne(String(t)))},onDoubleClick:p=>p.stopPropagation(),onPointerDown:p=>p.stopPropagation(),children:[(0,s.jsx)("span",{className:"graview-kind-open-word",children:K?"close":"open"})," ",(0,s.jsx)("span",{"aria-hidden":"true",children:K?"\u25B4":"\u25BE"})]}):null]}),F&&r.states?(0,s.jsx)(P.Suspense,{fallback:null,children:(0,s.jsx)(tn,{states:r.states,definition:a})}):null,r.opened?(0,s.jsxs)("div",{className:"graview-kind-members","data-graview-buildings":r.plot?.side??1,style:{display:"grid",gridTemplateColumns:`repeat(${y.columns}, minmax(0, 1fr))`,gap:3},children:[l.slice(0,y.shown).map(p=>{let D=r.flagged?.includes(p.id)??!1,T=$(a,p);return(0,s.jsx)(X,{pickId:p.id,label:D?`${T} ${S}`:T,title:D?`${T} \u2014 implicated in a problem`:void 0,hue:k,selected:Ie.has(p.id)},p.id)}),l.length>y.shown?(0,s.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",padding:"2px 4px",gridColumn:"1 / -1"},children:["+",l.length-y.shown," more \u2014 double-click to go in"]}):null]}):null]}),!M&&z.length>0?(0,s.jsx)("div",{className:"graview-drive-in","data-testid":`drive-in-${String(t)}`,"data-graview-showing":R,onPointerDown:p=>p.stopPropagation(),onDoubleClick:p=>p.stopPropagation(),children:(0,s.jsx)("div",{className:"graview-drive-in-marquee",role:"group","aria-label":`${o}: pictures`,"data-graview-thumbs":z.length===1?"one":"two",children:z.map(p=>{let D=R===p.as;return(0,s.jsxs)("div",{className:"graview-drive-in-thumb","data-graview-pressed":D||void 0,children:[(0,s.jsx)("span",{className:"graview-drive-in-thumb-title","aria-hidden":"true",children:p.title}),(0,s.jsx)("button",{type:"button",className:"graview-drive-in-thumb-press","data-testid":`showing-${p.as}`,"aria-label":`${o}: ${p.title}`,"aria-pressed":D,title:D?`${p.title} is showing \u2014 press again to open it`:`Show ${p.title} on the billboard \u2014 double-click to open it`,onClick:T=>{T.stopPropagation();let Z=()=>W(Je(L,String(t),p.as));if(T.detail>=2||D&&r.focused){Z();return}W(_e(je(qe(L,!0),Ue(String(t))),"view",p.as)),T.detail===1&&Zt(T.currentTarget.ownerDocument,Ct(T.nativeEvent),Z)}})]},p.as)})})}):null]})};m.generic=!0,f.generic=!0,n.register(t,{cardinality:"one",fidelity:"full"},j(g)).register(t,{cardinality:"one",fidelity:"summary"},j(c)).register(t,{cardinality:"one",fidelity:"glyph"},j(u)).register(t,{cardinality:"many",fidelity:"full"},j(m)).register(t,{cardinality:"many",fidelity:"summary"},j(m)).register(t,{cardinality:"many",fidelity:"glyph"},j(f))}return n}var Me=E(I(),1),$t=new WeakMap;function an(e){let n=$t.get(e);return n||$t.set(e,n=At(e,me(e))),n}var Ve=et;function Vt(){return(0,$e.useContext)(Ve)}function jn({children:e}){return(0,Me.jsx)(Ve.Provider,{value:!0,children:e})}function Mt(e){let n=(0,$e.useContext)(Ve),{store:t}=V();if(n)return null;let a=e.kind??e.node?.kind??e.nodes?.[0]?.kind;if(!a)return null;let o=an(t.schema).lookup(a,{cardinality:e.cardinality,fidelity:e.fidelity});return o?(0,Me.jsx)(o,{...e}):null}var i=E(I(),1),Tt=(0,v.createContext)(null),Et=(e,n)=>e.trim().toLowerCase().replace(/[_-]+/g," ")===n.trim().toLowerCase().replace(/[_-]+/g," "),rn=(0,v.createContext)(null),Be=(0,v.createContext)(null);function Lt({block:e}){let n=(0,v.useContext)(Be),t=n?.slots?.[e.key],a=(0,i.jsx)(on,{block:e});return t?(0,i.jsx)(v.Suspense,{fallback:a,children:(0,i.jsx)(t,{block:e,node:n.node,drawn:a})}):a}function on({block:e}){let n=(0,v.useContext)(Tt),t=(0,v.useContext)(ln),a=(0,v.useContext)(Te),o=(0,v.useContext)(Pe);if(n&&e.t==="badge"&&n.values.some(g=>Et(g,e.text))||n&&e.t==="field"&&n.field!==void 0&&e.field===n.field||e.t==="badge"&&/^0(?:\s+\p{L}+)?$/u.test(e.text.trim()))return null;switch(e.t){case"title":return(0,i.jsx)("strong",{className:"graview-spec-title",...o!==null&&Et(o,e.text)?{"aria-hidden":!0}:{},children:e.text});case"text":return e.markdown||Ce(e.text)?(0,i.jsx)("div",{className:"graview-spec-text",...e.tone?{"data-graview-tone":e.tone}:{},children:(0,i.jsx)(ft,{text:e.text,markdown:e.markdown})}):(0,i.jsx)("p",{className:"graview-spec-text",...e.tone?{"data-graview-tone":e.tone}:{},children:e.text});case"badge":return(0,i.jsx)("span",{className:"graview-spec-badge","data-graview-tone":e.tone,children:e.text});case"field":return(0,i.jsxs)("span",{className:"graview-spec-field","data-graview-field":e.field,children:[(0,i.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,i.jsx)("span",{className:"graview-spec-value",...Ce(e.text)?{style:{whiteSpace:"pre-line"}}:{},children:e.linked?(0,i.jsx)(gt,{relation:e.linked.relation,refs:e.linked.refs,as:"chip"}):e.app?(0,i.jsx)(yt,{address:e.app}):e.href?(0,i.jsx)("a",{className:"graview-spec-link",href:e.href,...e.href.startsWith("tel:")?{}:{rel:"noopener noreferrer",target:"_blank"},children:e.text}):e.text})]});case"image":return(0,i.jsx)(ve,{as:"block",field:e.field,files:e.files,label:e.label,view:e.as});case"progress":return e.value===void 0||e.max===void 0?(0,i.jsxs)("span",{className:"graview-spec-progress",children:[(0,i.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,i.jsx)("span",{className:"graview-spec-value",children:e.text})]}):(0,i.jsxs)("span",{className:"graview-spec-progress",children:[(0,i.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,i.jsx)("span",{className:"graview-spec-track",role:"progressbar","aria-label":e.label,"aria-valuemin":0,"aria-valuemax":e.max,"aria-valuenow":Math.max(0,Math.min(e.value,e.max)),"aria-valuetext":e.text,children:(0,i.jsx)("span",{className:"graview-spec-fill",style:{width:`${Math.round(Math.max(0,Math.min(e.value,e.max))/e.max*100)}%`}})}),(0,i.jsx)("span",{className:"graview-spec-value",children:e.text})]});case"group":return(0,i.jsx)("span",{className:"graview-spec-group","data-direction":e.direction,children:(0,i.jsx)(Ee,{blocks:e.blocks})});case"when":return e.shown?(0,i.jsx)(Ee,{blocks:e.blocks}):null;case"divider":return(0,i.jsx)("hr",{className:"graview-spec-divider"});case"figure":return(0,i.jsx)(sn,{});case"headline":{let g=`h${Math.min(6,e.level+t)}`,c=(0,i.jsx)(g,{className:"graview-spec-headline","data-level":e.level,children:e.text});return a!==null&&e.level===1?(0,i.jsxs)(i.Fragment,{children:[c,a]}):c}case"number":return(0,i.jsxs)("span",{className:"graview-spec-number",...e.emphasis?{"data-emphasis":e.emphasis}:{},children:[(0,i.jsx)("span",{className:"graview-spec-number-value",children:e.text}),e.label?(0,i.jsx)("span",{className:"graview-spec-label",children:e.label}):null]});case"list":return(0,i.jsx)(cn,{list:e})}}function sn(){let e=(0,v.useContext)(Be)?.figure;return e?(0,i.jsx)("span",{className:"graview-spec-figure","aria-hidden":"true",children:e()}):null}function Ee({blocks:e}){let n=[];for(let t=0;t<e.length;t++){let a=t;for(;e[a]?.t==="badge"&&e[a+1]?.t==="badge";)a++;if(a===t){n.push((0,i.jsx)(Lt,{block:e[t]},t));continue}n.push((0,i.jsx)("span",{className:"graview-spec-badges",children:e.slice(t,a+1).map((o,g)=>(0,i.jsx)(Lt,{block:o},g))},t)),t=a}return n}function Dt({blocks:e,ctx:n,view:t}){let a=(0,v.useContext)(rn)?.[t];return(0,i.jsx)(Be.Provider,{value:{figure:n.figure,slots:a,node:n.node},children:(0,i.jsx)(Ee,{blocks:e})})}function Ge({blocks:e,ctx:n,view:t}){return(0,i.jsx)(Dt,{blocks:J(e,n),ctx:n,view:t})}var Le=3,Bt=(0,v.createContext)(0),Gt=(0,v.createContext)(null),ln=(0,v.createContext)(0),Te=(0,v.createContext)(null);function dn({node:e,as:n,depth:t,said:a=null}){let{store:o,views:g}=V(),c=$(o.schema.tryDefinition(e.kind),e),u=g.lookup(e.kind,{cardinality:"one",fidelity:n==="card"?"summary":"glyph"});return n==="row"&&t<=Le&&(!u||pe(u))?(0,i.jsxs)("li",{className:"graview-spec-item","data-graview-listed":e.id,"data-as":n,children:[(0,i.jsx)(De,{node:e,label:c}),(0,i.jsx)("div",{className:"graview-spec graview-spec-row","data-graview-spec":"row","data-graview-kind":e.kind,"aria-hidden":"true",children:(0,i.jsx)("strong",{className:"graview-spec-title",children:c})})]}):(0,i.jsxs)("li",{className:"graview-spec-item","data-graview-listed":e.id,"data-as":n,children:[(0,i.jsx)(De,{node:e,label:c}),t<=Le&&u?(0,i.jsx)(Ye,{mode:"scene",children:(0,i.jsx)(Bt.Provider,{value:t,children:(0,i.jsx)(Tt.Provider,{value:a,children:(0,i.jsx)(Pe.Provider,{value:c,children:(0,i.jsx)(u,{node:e,cardinality:"one",fidelity:n==="card"?"summary":"glyph",mode:"scene",selected:!1})})})})}):(0,i.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:c})]})}function De({node:e,label:n}){let t=(0,v.useContext)(Gt),a=(0,v.useRef)(null);return bt(a),t?(0,i.jsx)("a",{ref:a,className:"graview-spec-item-link",href:t.href(e),"aria-label":n,onClick:o=>{o.metaKey||o.ctrlKey||o.shiftKey||o.button!==0||(o.preventDefault(),o.stopPropagation(),t.go(e))}}):(0,i.jsx)("button",{ref:a,type:"button",className:"graview-spec-item-link","data-graview-pick":e.id,"aria-label":n})}function cn({list:e}){let n=(0,v.useContext)(Bt)+1,{store:t}=V(),a=(0,v.useContext)(Gt),[o,g]=(0,v.useState)(e.members.length);if(e.failed)return(0,i.jsx)("p",{className:"graview-spec-text",children:"\u2014"});if(e.members.length===0)return e.empty?(0,i.jsx)("p",{className:"graview-spec-text graview-spec-empty",children:e.empty}):null;let c=(b,N=null)=>n>Le?(0,i.jsx)("ul",{className:"graview-spec-list","data-as":"names",children:b.map(C=>(0,i.jsxs)("li",{className:"graview-spec-item","data-graview-listed":C.id,"data-as":"name",children:[(0,i.jsx)(De,{node:C,label:$(t.schema.tryDefinition(C.kind),C)}),(0,i.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:$(t.schema.tryDefinition(C.kind),C)})]},C.id))}):(0,i.jsx)("ul",{className:"graview-spec-list","data-as":e.as,children:b.map(C=>(0,i.jsx)(dn,{node:C,as:e.as,depth:n,said:N},C.id))}),u=e.rest??[],m=Math.min(o,e.members.length+u.length),d=m>e.members.length?[...e.members,...u].slice(0,m):e.members,f=e.members.length+u.length-m,r=Math.max(1,e.members.length),l=f>0?(0,i.jsx)("p",{className:"graview-spec-text graview-spec-more",children:(0,i.jsx)("button",{type:"button",className:"graview-spec-show-more","data-graview-show-more":f,onClick:()=>g(m+r),children:`Show ${Math.min(r,f)} more`})}):null,y=e.total??e.members.length+e.more,k=e.more-u.length,h=l??(a?.more&&y>d.length?a.more({members:d,total:y}):k>0?(0,i.jsx)("p",{className:"graview-spec-text graview-spec-more",children:`and ${k} more`}):null);if(!e.groups)return(0,i.jsxs)("div",{className:"graview-spec-listing",children:[c(d),h]});let w=`h${e.headingLevel}`,S=m,x=m>e.members.length&&e.everyGroup?e.everyGroup.flatMap(b=>{if(S<=0)return[];let N=b.members.slice(0,S);return S-=N.length,[{...b,members:N}]}):e.groups;return(0,i.jsxs)("div",{className:"graview-spec-listing",children:[x.map(b=>(0,i.jsxs)("section",{className:"graview-spec-list-group","data-graview-group":b.value??"",children:[b.heading?(0,i.jsx)(w,{className:"graview-spec-list-heading",children:b.heading}):null,c(b.members,b.value!==null?{values:[b.value,...b.heading?[b.heading]:[]]}:null)]},b.value??"")),h]})}function sa({blocks:e,heading:n=2,firstHeading:t,slot:a,view:o=a}){let{store:g,brand:c}=V();ue();let u=re(g,null,null,{heading:n,firstHeading:t,money:c}),m=(0,v.useContext)(Te),d=e.some(f=>f.t==="headline");return(0,i.jsxs)("div",{className:`graview-spec graview-spec-${a}`,"data-graview-spec":a,children:[m!==null&&!d?m:null,(0,i.jsx)(Te.Provider,{value:d?m:null,children:(0,i.jsx)(Ge,{blocks:e,ctx:u,view:o})})]})}function Oe(e,n="card"){let{store:t,brand:a}=V(),o=t.schema;return{...re(t,null,e,{slot:n,money:a}),figure:()=>(0,i.jsx)(ae,{kind:e.kind,schema:o,...a?{brand:a}:{},size:22})}}function gn({slot:e,blocks:n,node:t,selected:a}){let o=Oe(t,e);return(0,i.jsx)("div",{className:`graview-spec graview-spec-${e}`,"data-graview-spec":e,"data-graview-kind":t.kind,...e==="row"&&n.some(st)?{"data-graview-tall":""}:{},...a?{"data-selected":""}:{},children:(0,i.jsx)(Ge,{blocks:n,ctx:o,view:`${t.kind}.${e}`})})}function un({blocks:e,node:n,selected:t,flagged:a}){let o=Oe(n),[g,...c]=e,u=g?.t==="title";return(0,i.jsx)(U,{...u?{title:J([g],o)[0].text}:{},selected:t,tone:a?"warning":"muted",fit:!0,children:(0,i.jsx)("div",{className:"graview-spec graview-spec-card","data-graview-spec":"card","data-graview-kind":n.kind,children:(0,i.jsx)(Ge,{blocks:u?c:e,ctx:o,view:`${n.kind}.card`})})})}function pn({blocks:e,props:n}){let t=n.node,a=Oe(t,"page"),o=Vt(),g=J(e,a),c=ye(e,g),u=c.title!==void 0&&(!o||c.title===$(a.schema?.tryDefinition(t.kind),t)),m=(0,i.jsx)("div",{className:"graview-spec graview-spec-page","data-graview-spec":"page","data-graview-kind":t.kind,children:(0,i.jsx)(Dt,{blocks:u?g.slice(1):g,ctx:a,view:`${t.kind}.page`})});return o?m:(0,i.jsx)(oe.Provider,{value:{nodeId:t.id,...c.title!==void 0?{title:c.title}:{},body:m,fields:c.fields,records:c.records},children:(0,i.jsx)(Mt,{...n})})}function la(e,n,t){return typeof e=="function"?e.says?.(n,t):void 0}function mn({blocks:e,node:n,selected:t}){let{store:a}=V();return(0,i.jsx)("div",{title:$(a.schema.tryDefinition(n.kind),n),style:{minWidth:0,maxWidth:"100%"},children:(0,i.jsx)(gn,{slot:"row",blocks:e,node:n,selected:t})})}function da(e,n,t){if(!t)return e;let a=new Set(n.kinds);for(let[o,g]of Object.entries(t)){if(!a.has(o)||!g)continue;let c=o;if(g.card){let u=ie(g.card),m=d=>d.node?(0,i.jsx)(un,{blocks:u,node:d.node,selected:d.selected,flagged:d.flagged?.includes(d.node.id)??!1}):null;e.register(c,{cardinality:"one",fidelity:"summary"},m)}if(g.row){let u=ie(g.row),m=d=>d.node?(0,i.jsx)(mn,{blocks:u,node:d.node,selected:d.selected}):null;m.says=(d,f)=>ye(u,J(u,re({graph:f,schema:n},null,d,{slot:"row"}))),e.register(c,{cardinality:"one",fidelity:"glyph"},m)}if(g.page){let u=ie(g.page),m=d=>d.node?(0,i.jsx)(pn,{blocks:u,props:d}):null;m.says=(d,f)=>ye(u,J(u,re({graph:f,schema:n},null,d))),e.register(c,{cardinality:"one",fidelity:"full"},m)}}return e}export{bt as a,jn as b,Tt as c,Gt as d,ln as e,Te as f,De as g,sa as h,la as i,da as j,At as k};
@@ -1 +0,0 @@
1
- import{b as n}from"./chunk.74DXEKUV.js";import"./chunk.Y44TR4WG.js";import{a}from"./chunk.JFLUVZNW.js";import"./chunk.67PVRVAC.js";import"./chunk.GMZAQGH7.js";import"./chunk.57XTDW57.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.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{Q as i}from"./chunk.DNNL7F3P.js";import"./chunk.HBBVVALN.js";import{b as o}from"./chunk.AJZBJBMO.js";var e=o(i(),1);function g({entries:d,style:l,headingStyle:p,className:r}){return(0,e.jsxs)("section",{...r?{className:r}:{},"data-testid":"record-ai","aria-label":"What AI did here",style:{display:"grid",gap:10,...l},children:[(0,e.jsx)("h2",{style:p??{margin:0,fontSize:"1rem"},children:"What AI did here"}),(0,e.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:8,fontSize:"0.875rem"},children:d.slice(0,8).map(t=>(0,e.jsx)(n,{entry:t,undo:s=>(0,e.jsx)(a,{batch:s})},t.id))})]})}export{g as RecordInteractions};
@@ -1 +0,0 @@
1
- import{q as re}from"./chunk.NNNVB6RV.js";import{a as j,b as C,c as J,d as te,e as ne,f as P,g as ie,k as ae,n as oe}from"./chunk.AHC4EXLW.js";import{a as X,b as Z,c as ee}from"./chunk.NZJZIYDK.js";import"./chunk.3V2M3S4U.js";import"./chunk.EKUAI5YL.js";import{a as _}from"./chunk.Y44TR4WG.js";import"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.js";import"./chunk.QYWBQ5NX.js";import"./chunk.7OLVQ2FZ.js";import"./chunk.NOZEHLWG.js";import"./chunk.UVLPVHID.js";import{m as V}from"./chunk.QXARGANF.js";import{F as ge,I as Q,Q as Y,Y as U}from"./chunk.DNNL7F3P.js";import{fa as N,qc as B}from"./chunk.HBBVVALN.js";import{b as D}from"./chunk.AJZBJBMO.js";var a=D(ge(),1);var l=D(Y(),1),fe=new Set(["show","go","to","open","the","a","an","me"]),de=o=>o.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,""),O=(o,c)=>{let r=de(o);return c.every(t=>r.includes(t))},se=o=>o&&`${o[0].toLowerCase()}${o.slice(1)}`,I={act:4,show:3,place:3,record:4},he=360,h=12;function Ie({face:o,opening:c,close:r}){let t=_(),{setMenuAt:y}=U(),i=(0,a.useMemo)(()=>c.target??j(c.pointed??{about:[]},e=>t.store.graph.has(e)),[c,t.store]),g=(0,a.useMemo)(()=>te(t.store,i,t.places),[t.store,i,t.places]),[p,v]=(0,a.useState)(""),[b,m]=(0,a.useState)(-1),[s,E]=(0,a.useState)(null),[A,L]=(0,a.useState)(null),T=(0,a.useRef)(null),W=(0,a.useRef)(null),M=(0,a.useId)(),R=(0,a.useRef)(!0),{ghost:z}=Q(t.desk);(0,a.useEffect)(()=>()=>{R.current=!1;let e=t.desk.get().ghost;e?.onCard&&t.desk.setGhost({...e,onCard:!1})},[t.desk]);let $=(0,a.useMemo)(()=>{let e=P(t,i);return J(t.store,i,{principal:t.principal,places:t.places,...e.acts?{acts:e.acts}:{}})},[t,i]),G=(0,a.useMemo)(()=>{let e=C(i);if(e.length===0)return[];let n=new Set($.candidates.flatMap(d=>d.type==="act"?[d.mutation]:[]));return X(t.store,e,{principal:t.principal,...e.length===1?{focus:e[0]}:{}}).affordances.filter(d=>!d.destructive&&n.has(d.mutation))},[t.store,t.principal,i,$]),q=(0,a.useCallback)(()=>{let e=c.returnTo,n=le(T.current,i,o);r(),requestAnimationFrame(()=>{if(e?.isConnected&&!e.closest("[inert]"))return e.focus({preventScroll:!0});let d=(n&&n.tabIndex>=0?n:null)??document.querySelector("[data-graview-page-title]")??document.querySelector("main");d&&d.tabIndex<0&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","-1"),d?.focus({preventScroll:!0})})},[c.returnTo,i,o,r]),K=(0,a.useCallback)(e=>{if(e.open.length>0){let n=T.current?.getBoundingClientRect();r(),y({x:n?.left??0,y:n?.top??0,on:e.args.id??C(i)[0],about:C(i)});return}try{ee(t.store,e,{}),Z(t.store,e,{},{author:t.principal}),q()}catch(n){L(n instanceof Error?n.message:String(n))}},[t.store,t.principal,r,q,y,i]),H=(0,a.useCallback)(async e=>{let n=e.trim();if(!n)return;let d=s?.result?.answer?{said:s.said,answer:s.result.answer}:void 0;v(""),m(-1),L(null),E({said:n,result:null});let S=await ne(t.ai,{...P(t,i,n),said:n,...d?{follows:d}:{}});t.desk.record(S.interaction),S.ghost&&S.ghost.proposals.length>0&&t.desk.setGhost({ghost:S.ghost,onCard:!0}),R.current&&E({said:n,result:S})},[s,t,i]),F=(0,a.useRef)(c.asked);(0,a.useEffect)(()=>{let e=F.current;F.current=void 0,e&&H(e)},[]);let k=(0,a.useMemo)(()=>{let e=p.trim();if(!e&&s)return[];let n=de(e).split(/\s+/).filter(f=>f&&!fe.has(f)),d=/^show\b/i.test(e),S=/^(go|open)\b/i.test(e),x=[];if(!d&&!S)for(let f of G.filter(u=>O(u.label,n)).slice(0,I.act))x.push({id:`act:${f.id}`,kind:"act",label:f.label,hint:f.open.length>0?"asks more":"do it",take:()=>K(f)});if(!S){let f=$.candidates.filter(u=>u.type==="panel");for(let u of f.filter(ue=>O(`show ${ue.label}`,n)).slice(0,I.show))x.push({id:u.id,kind:"show",label:`Show ${se(u.label)}`,hint:"a panel",take:()=>{r(),ie(t,{title:u.label,recipe:{...u.panel,title:u.label}})}})}if(!d){for(let f of t.places.filter(u=>O(u.title,n)).slice(0,I.place))x.push({id:`place:${f.as}`,kind:"place",label:`Go to ${f.title}`,take:()=>(r(),t.goTo.place(f.as))});if(n.length>0){let f=re(t.store,e.replace(/^(go to|open)\s+/i,""),{principal:t.principal,from:C(i),limit:I.record}).hits;for(let u of f)u.about==="node"&&x.push({id:`record:${u.id}`,kind:"record",label:u.label,hint:N(t.store.schema,u.kind),take:()=>(r(),t.goTo.record(u.id))})}}return e&&x.push({id:"ask",kind:"ask",label:e,take:()=>void H(e)}),x},[p,G,$,t,i,K,H,r,s]);(0,a.useEffect)(()=>m(p.trim()?0:-1),[p]),(0,a.useLayoutEffect)(()=>{let e=T.current;if(!e)return;if(typeof e.showPopover=="function")try{e.showPopover()}catch{}W.current?.focus({preventScroll:!0});let n=0,d=()=>{me(e,le(e,i,o)),n=requestAnimationFrame(d)};return d(),()=>cancelAnimationFrame(n)},[i,o]),(0,a.useEffect)(()=>{if(s)return;let e=n=>{n.target instanceof Node&&T.current?.contains(n.target)||r()};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[s,r]);let ce=e=>{if(e.key==="ArrowDown"&&k.length>0)e.preventDefault(),m(n=>Math.min(k.length-1,n+1));else if(e.key==="ArrowUp"&&k.length>0)e.preventDefault(),m(n=>Math.max(0,n-1));else if(e.key==="Enter"){e.preventDefault();let n=k[b];n?n.take():p.trim()&&H(p)}},w=s?.result??null,pe=k[b];return(0,l.jsxs)("section",{ref:T,popover:"manual",role:"region","aria-label":s?`Answer about ${g}`:`Ask about ${g}`,"data-testid":"quick-ask","data-quick-ask":s?"answer":"bar","data-quick-ask-face":o,"data-graview-offstage":"","data-graview-overlay":"",onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),q())},onMouseDown:e=>e.stopPropagation(),style:ke,children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,l.jsxs)("p",{"data-testid":"quick-ask-about",style:{margin:0,flex:"1 1 auto",minWidth:0,fontSize:"0.75rem",color:"var(--graview-ink-muted)",overflowWrap:"anywhere"},children:["About ",g]}),(0,l.jsx)("button",{type:"button","data-testid":"quick-ask-close","aria-label":"Close",title:"Close",onClick:q,style:we,children:(0,l.jsx)("span",{"aria-hidden":"true",children:"\u2715"})})]}),s?(0,l.jsxs)("div",{"data-testid":"quick-answer",style:{display:"grid",gap:8},children:[(0,l.jsxs)("p",{"data-testid":"quick-answer-asked",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",fontStyle:"italic",overflowWrap:"anywhere"},children:["\u201C",s.said,"\u201D"]}),(0,l.jsx)("p",{"data-testid":"quick-answer-text","aria-live":"polite",style:{margin:0,fontSize:"0.9375rem",lineHeight:1.45,color:w?.interaction.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)",overflowWrap:"anywhere"},children:w===null?"Thinking\u2026":w.interaction.outcome==="failed"?w.interaction.failed??"The AI could not answer that here.":w.answer??""}),w&&w.offers.length>0?(0,l.jsx)("ul",{"aria-label":"What acts on it",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:6},children:w.offers.map(e=>(0,l.jsx)("li",{children:(0,l.jsx)("button",{type:"button","data-testid":"quick-answer-offer","data-ai-offer":e.id,"data-ai-offer-type":e.type,onClick:()=>{ae(t,w,e,r).then(n=>{n&&R.current&&L(n)})},style:ve,children:e.type==="panel"?`Show ${se(e.label)}`:e.type==="place"?`Go to ${e.label}`:e.label})},e.id))}):null,z?.onCard&&z.ghost.interaction===w?.interaction.id?(0,l.jsx)(oe,{placement:"card"}):null]}):null,(0,l.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,l.jsx)("input",{ref:W,type:"text",role:"combobox","data-testid":"quick-ask-input","aria-label":s?`Ask a follow-up about ${g}`:`Ask about ${g}, or go somewhere`,"aria-expanded":k.length>0,"aria-controls":M,"aria-autocomplete":"list",...pe?{"aria-activedescendant":`${M}-${b}`}:{},autoComplete:"off",enterKeyHint:"go",placeholder:s?"Ask a follow-up\u2026":"Ask, or go to\u2026",value:p,readOnly:s!==null&&w===null,"aria-busy":s!==null&&w===null,onChange:e=>v(e.target.value),onKeyDown:ce,style:be}),(0,l.jsx)("div",{id:M,role:"listbox","aria-label":p.trim()?`What \u201C${p.trim()}\u201D finds here`:"What can be done here",hidden:k.length===0,style:{display:k.length===0?"none":"grid",gap:1,maxHeight:280,overflowY:"auto"},children:k.map((e,n)=>(0,l.jsx)("div",{id:`${M}-${n}`,role:"option","aria-selected":n===b,"data-testid":"quick-ask-option","data-quick-ask-kind":e.kind,"data-quick-ask-row":e.id,onMouseEnter:()=>m(n),onMouseDown:d=>d.preventDefault(),onClick:e.take,style:{...ye,background:n===b?"var(--graview-panel-muted)":"transparent",...e.kind==="ask"?{borderTop:"1px solid var(--graview-edge)",marginTop:2}:{}},children:e.kind==="ask"?(0,l.jsxs)("span",{children:["Ask: ",(0,l.jsxs)("span",{style:{fontWeight:600},children:["\u2018",e.label,"\u2019"]})]}):(0,l.jsxs)("span",{children:[e.label,e.hint?(0,l.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.hint]}):null]})},e.id))})]}),A?(0,l.jsx)("p",{role:"alert","data-testid":"quick-ask-refused",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-warn)"},children:A}):null,(0,l.jsx)("span",{style:V,"aria-live":"polite",children:k.length>0&&p.trim()?`${k.length} ${k.length===1?"way":"ways"} to go on`:""})]})}function le(o,c,r){let t=o?.closest("[data-graview-embed]")??document,y=c.on==="list"?[`aggregate:${c.kind}`,`kind:${c.kind}`]:c.on==="lens"&&c.kind?[`aggregate:${c.kind}`]:C(c);for(let i of y)for(let g of t.querySelectorAll(`[data-graview-view="${CSS.escape(i)}"], [data-graview-pick="${CSS.escape(i)}"]`)){if(o?.contains(g))continue;let p=g.getBoundingClientRect();if(p.width>0&&p.height>0)return g}return r==="pages"?t.querySelector("main [data-graview-page-title]")??t.querySelector("main h1"):null}function me(o,c){let r={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(he,r.width-2*h),y=o.getBoundingClientRect().height,i=c?.getBoundingClientRect(),g,p,v,b=A=>Math.max(h,Math.min(A,r.height-y-h));if(i&&i.width>0&&i.bottom>0&&i.top<r.height)if(i.right+h+t<=r.width-h)g=i.right+h,p=b(i.top),v="right";else if(i.left-h-t>=h)g=i.left-h-t,p=b(i.top),v="left";else{g=Math.max(h,Math.min(i.left,r.width-t-h));let A=i.bottom+h;p=A+y<=r.height-h?A:b(i.top-h-y),v=A+y<=r.height-h?"below":"above"}else g=(r.width-t)/2,p=b(72),v="top";let m=o.style,s={left:`${Math.round(g)}px`,top:`${Math.round(p)}px`,width:`${Math.round(t)}px`};m.left!==s.left&&(m.left=s.left),m.top!==s.top&&(m.top=s.top),m.width!==s.width&&(m.width=s.width);let E=c?.getAttribute("data-graview-view")??c?.getAttribute("data-graview-pick")??(c?"page":"");o.getAttribute("data-quick-ask-beside")!==E&&o.setAttribute("data-quick-ask-beside",E),o.getAttribute("data-quick-ask-side")!==v&&o.setAttribute("data-quick-ask-side",v)}var ke={position:"fixed",inset:"auto",margin:0,zIndex:B("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},we={display:"inline-grid",placeItems:"center",width:28,height:28,padding:0,font:"inherit",fontSize:"0.875rem",lineHeight:1,color:"var(--graview-ink-muted)",background:"transparent",border:"1px solid transparent",borderRadius:6,boxShadow:"none",cursor:"pointer"},be={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ye={display:"flex",alignItems:"center",minHeight:30,padding:"4px 8px",borderRadius:6,cursor:"pointer",overflowWrap:"anywhere"},ve={display:"inline-flex",alignItems:"center",minHeight:30,padding:"2px 10px",font:"inherit",fontSize:"0.8125rem",borderRadius:8};export{Ie as QuickAskCard};
@@ -1 +0,0 @@
1
- import"./chunk.5A4AOFOA.js";import"./chunk.KSXB4LDF.js";import"./chunk.YNJOLOFG.js";import"./chunk.5JPRRV47.js";import{a as L,b as R,c as E}from"./chunk.SNKOPWAD.js";import{b as T}from"./chunk.LVNAB2BW.js";import"./chunk.YW2BZ2LH.js";import"./chunk.HYAKRLPT.js";import"./chunk.IHBIRAC4.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.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"./chunk.57XTDW57.js";import"./chunk.MJLUAGEV.js";import"./chunk.WNMLA4YW.js";import"./chunk.VUKHDZNI.js";import"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.js";import"./chunk.SZMWJHU2.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{r as A}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 S,H as $,Q as p,Y as x,_ as C}from"./chunk.DNNL7F3P.js";import{aa as h,qc as k}from"./chunk.HBBVVALN.js";import{b as i}from"./chunk.AJZBJBMO.js";var r=i(S(),1);var l=i(S(),1);var g=i(p(),1);var m={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};var e=i(p(),1);function Y({page:n=!1,go:D,onPick:y,onDiscard:M}){let{store:d,seatTalk:c}=x(),u=$(c),N=E(),b=D??N,{keep:P}=L(b),[H,f]=(0,r.useState)(!1);C();let t=u.draft;(0,r.useEffect)(()=>f(!1),[t]),(0,r.useEffect)(()=>{n||R(!1)},[n]);let v=(0,r.useRef)(null),w=t!==null&&!n;if((0,r.useLayoutEffect)(()=>{let s=v.current;if(!w||!s?.parentElement)return;let o=[];for(let a=s.previousElementSibling;a;a=a.previousElementSibling)a instanceof HTMLElement&&!a.inert&&a.tagName!=="STYLE"&&(a.inert=!0,o.push(a));return()=>{for(let a of o)a.inert=!1}},[w]),!t)return null;let G=T(t.drawn),F=d.schema.tryDefinition(t.kind),q=d.graph.nodesOfKind(t.kind).filter(s=>h(F,s)),z=()=>{c.setDraft(null),M?.()};return(0,e.jsxs)("section",{ref:v,"data-testid":"draft-frame","data-graview-draft-frame":n?"page":"scene","aria-label":`Draft: ${t.title}`,style:n?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:12,zIndex:k("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:12,boxShadow:"var(--graview-lift-high)",overflow:"hidden",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...K,...n?{}:{padding:"10px 16px"}},children:[n?(0,e.jsx)("span",{children:"Draft"}):(0,e.jsxs)("span",{children:["Draft \u2014 ",(0,e.jsx)("span",{"data-testid":"draft-title",style:{color:"var(--graview-ink)",fontWeight:600},children:t.title})]}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-keep",disabled:H,title:`Keep \u201C${t.title}\u201D as a lens: a place of its own`,onClick:()=>{f(!0),P(t).finally(()=>f(!1))},style:m,children:"Keep as a lens"}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-discard",onClick:z,style:m,children:"Discard"})]}),u.draftNote?(0,e.jsx)("p",{"data-testid":"draft-note",role:"status",style:{margin:0,padding:n?0:"0 16px 8px",fontSize:"0.8125rem",color:"var(--graview-warn)"},children:u.draftNote}):(0,e.jsx)("span",{}),(0,e.jsx)("div",{"data-testid":"draft-lens","data-graview-draft":t.lens.name,style:n?{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",scrollbarGutter:"stable",border:"1px solid var(--graview-edge)",borderRadius:12,background:"var(--graview-panel)"}:{minHeight:0,overflow:"auto",scrollbarGutter:"stable",display:"grid",gridTemplateRows:"minmax(0, 1fr)"},onClick:s=>{let o=s.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!o||!d.graph.getNode(o))return;s.preventDefault();let a=d.graph.getNode(o);y?(c.setDraft(null),y(o)):b({to:"record",id:o,kind:a.kind,label:o,address:"",said:""})},children:(0,e.jsx)(A,{kind:t.kind,view:t.title,children:(0,e.jsx)(G,{nodes:q,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})]})}var K={margin:0,display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 8px",fontSize:"0.875rem",color:"var(--graview-ink-muted)",borderBottom:"1px solid var(--graview-edge)",paddingBottom:8};export{Y as DraftFrame};