graview 0.1.33 → 0.1.35

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 (144) hide show
  1. package/dist/preview/{chunk.CWHRDBOF.js → chunk.2OBIO5Y6.js} +1 -1
  2. package/dist/preview/{chunk.K5ME5GCG.js → chunk.2QQAOJET.js} +1 -1
  3. package/dist/preview/{chunk.4HZ7QTXZ.js → chunk.2YGQVI6T.js} +1 -1
  4. package/dist/preview/{chunk.COQKECUH.js → chunk.3C4RJIJU.js} +1 -1
  5. package/dist/preview/{chunk.TAQ764IQ.js → chunk.3H4NVUWV.js} +1 -1
  6. package/dist/preview/{chunk.UATVTXZY.js → chunk.3P4IIXIT.js} +1 -1
  7. package/dist/preview/chunk.3QXHII5W.js +1 -0
  8. package/dist/preview/chunk.4J75WRDG.js +1 -0
  9. package/dist/preview/{chunk.MAF7C3VM.js → chunk.4K5QCJFH.js} +1 -1
  10. package/dist/preview/chunk.4NZBMZC7.js +117 -0
  11. package/dist/preview/{chunk.ULRW47RP.js → chunk.52QAIGCD.js} +1 -1
  12. package/dist/preview/{chunk.D75KC3LL.js → chunk.577PGFUT.js} +1 -1
  13. package/dist/preview/{chunk.RCKTBOY2.js → chunk.5B7NWF7C.js} +1 -1
  14. package/dist/preview/{chunk.EBGAYL32.js → chunk.5EAQDBBE.js} +1 -1
  15. package/dist/preview/{chunk.XBJYQNVE.js → chunk.5FZQI2US.js} +1 -1
  16. package/dist/preview/chunk.5MCC54VM.js +1 -0
  17. package/dist/preview/{chunk.QVVJRSRM.js → chunk.5VB7DJTL.js} +1 -1
  18. package/dist/preview/chunk.656N5BHG.js +1 -0
  19. package/dist/preview/{chunk.5UL7YDUD.js → chunk.6J7DR7XQ.js} +1 -1
  20. package/dist/preview/{chunk.EF3XNU4O.js → chunk.6K2HASOH.js} +1 -1
  21. package/dist/preview/chunk.6P7P2AW7.js +1 -0
  22. package/dist/preview/chunk.747GGBPR.js +2 -0
  23. package/dist/preview/{chunk.T5VG5A6V.js → chunk.A3F7MFDR.js} +1 -1
  24. package/dist/preview/chunk.AEHPDVLQ.js +1 -0
  25. package/dist/preview/chunk.AINNENYD.js +6 -0
  26. package/dist/preview/{chunk.4HNG4UXT.js → chunk.APNN6BKF.js} +1 -1
  27. package/dist/preview/{chunk.AR3DCDHU.js → chunk.B2KITMSD.js} +1 -1
  28. package/dist/preview/{chunk.5T5XGILP.js → chunk.BGW7XTMH.js} +1 -1
  29. package/dist/preview/chunk.BL6VDLAW.js +1 -0
  30. package/dist/preview/{chunk.XNJEFUF7.js → chunk.CDMV6L5I.js} +1 -1
  31. package/dist/preview/chunk.CHJZ7LST.js +27 -0
  32. package/dist/preview/{chunk.H7EPE74C.js → chunk.D4WQEBWV.js} +1 -1
  33. package/dist/preview/chunk.DLT3EE4D.js +1 -0
  34. package/dist/preview/{chunk.GV2CQVKV.js → chunk.DMNXYMLC.js} +1 -1
  35. package/dist/preview/{chunk.IWQCOGHW.js → chunk.DNDHDDM6.js} +2 -2
  36. package/dist/preview/{chunk.EJPI3ST6.js → chunk.DPP7ITTU.js} +1 -1
  37. package/dist/preview/{chunk.LXBOVRFI.js → chunk.DQ5HAB3N.js} +1 -1
  38. package/dist/preview/chunk.DTR5I4BI.js +1 -0
  39. package/dist/preview/{chunk.MWGGV7DE.js → chunk.DUUARGPE.js} +1 -1
  40. package/dist/preview/{chunk.3TVXGJTU.js → chunk.EAM4NAQH.js} +1 -1
  41. package/dist/preview/{chunk.DYSPCGXX.js → chunk.EQWOQOFJ.js} +1 -1
  42. package/dist/preview/{chunk.FWTIUYXH.js → chunk.FBY5IUGU.js} +1 -1
  43. package/dist/preview/chunk.FHXXYWL3.js +1 -0
  44. package/dist/preview/{chunk.HLTRQU4Y.js → chunk.FIVLFXFB.js} +1 -1
  45. package/dist/preview/{chunk.UGFJKSHU.js → chunk.FSAHO3LV.js} +1 -1
  46. package/dist/preview/{chunk.JQU5GEU3.js → chunk.FUQVNXLB.js} +1 -1
  47. package/dist/preview/{chunk.TMVCTBAD.js → chunk.FVPOSGNG.js} +5 -5
  48. package/dist/preview/{chunk.4MERAWS2.js → chunk.FX6GH57T.js} +1 -1
  49. package/dist/preview/{chunk.CDP2XL66.js → chunk.G2ZPQUXM.js} +1 -1
  50. package/dist/preview/{chunk.CX3KL2C5.js → chunk.GCGITEON.js} +1 -1
  51. package/dist/preview/{chunk.3HXN4BOY.js → chunk.GCVO6N26.js} +1 -1
  52. package/dist/preview/{chunk.3K6YSVHC.js → chunk.GF7LA4QG.js} +1 -1
  53. package/dist/preview/{chunk.CN3UEF5N.js → chunk.GMOTRAKJ.js} +1 -1
  54. package/dist/preview/{chunk.UNL2HIF2.js → chunk.GO4QBFED.js} +1 -1
  55. package/dist/preview/{chunk.UHUGOTUU.js → chunk.H243UV3Z.js} +1 -1
  56. package/dist/preview/{chunk.G5NZVPJU.js → chunk.HPD5ZDZH.js} +1 -1
  57. package/dist/preview/{chunk.3TY5NFLY.js → chunk.IHFNLKXV.js} +1 -1
  58. package/dist/preview/{chunk.RIJUCHP4.js → chunk.IX6RNGAT.js} +1 -1
  59. package/dist/preview/{chunk.PIP6Z563.js → chunk.JAPYJ53U.js} +1 -1
  60. package/dist/preview/{chunk.5H4VXLZF.js → chunk.JLMLKDVX.js} +1 -1
  61. package/dist/preview/chunk.JMQ6YLQX.js +1 -0
  62. package/dist/preview/{chunk.J25KOSNW.js → chunk.KWCML3BF.js} +1 -1
  63. package/dist/preview/{chunk.ASCLIM2P.js → chunk.KYH4QIVI.js} +1 -1
  64. package/dist/preview/{chunk.HAIG6NVX.js → chunk.LAF6GTBN.js} +1 -1
  65. package/dist/preview/{chunk.E2YEOMPH.js → chunk.LIIC25G6.js} +1 -1
  66. package/dist/preview/{chunk.GYICGZMG.js → chunk.LRRVBM4F.js} +2 -2
  67. package/dist/preview/{chunk.I6FPNX43.js → chunk.LWSTEZIP.js} +1 -1
  68. package/dist/preview/chunk.M5HADQPP.js +1 -0
  69. package/dist/preview/{chunk.6UGEYZAC.js → chunk.MVN6H65Q.js} +1 -1
  70. package/dist/preview/chunk.O36ZDLWC.js +1 -0
  71. package/dist/preview/{chunk.GO4XBWJO.js → chunk.OEDCAHII.js} +1 -1
  72. package/dist/preview/{chunk.3NDH3EDN.js → chunk.OZ5KJLA2.js} +1 -1
  73. package/dist/preview/{chunk.QYZNAUIR.js → chunk.PJ2DF6C7.js} +1 -1
  74. package/dist/preview/{chunk.47STJVRV.js → chunk.PKKA6JWA.js} +1 -1
  75. package/dist/preview/{chunk.PBSMLINK.js → chunk.PPUAPAWR.js} +1 -1
  76. package/dist/preview/chunk.PQPTYNW2.js +1 -0
  77. package/dist/preview/{chunk.SYAEBGDC.js → chunk.PW7YH6JV.js} +1 -1
  78. package/dist/preview/{chunk.OC6IWRQ3.js → chunk.Q7TP4RFE.js} +1 -1
  79. package/dist/preview/chunk.QRMWFEEH.js +1 -0
  80. package/dist/preview/{chunk.UZGRRDHD.js → chunk.QU356VB2.js} +1 -1
  81. package/dist/preview/chunk.QVKKXMNK.js +1 -0
  82. package/dist/preview/{chunk.3AGY4QVS.js → chunk.QVUL2FSI.js} +1 -1
  83. package/dist/preview/chunk.RHYA742Q.js +1 -0
  84. package/dist/preview/{chunk.6YCBYL2Y.js → chunk.RIW7SQH4.js} +1 -1
  85. package/dist/preview/{chunk.NTF7FVB2.js → chunk.RTB4MMF6.js} +1 -1
  86. package/dist/preview/{chunk.NRAYZY3X.js → chunk.SBBNIYVB.js} +1 -1
  87. package/dist/preview/{chunk.7GKUVQVF.js → chunk.SD33BD7A.js} +1 -1
  88. package/dist/preview/{chunk.2NIOHEMX.js → chunk.SECORXDP.js} +1 -1
  89. package/dist/preview/{chunk.AOSMJKLH.js → chunk.TIBZZ2WY.js} +1 -1
  90. package/dist/preview/chunk.TPX6AVJL.js +1 -0
  91. package/dist/preview/{chunk.VG3O4LWB.js → chunk.TWWFWHK3.js} +1 -1
  92. package/dist/preview/chunk.U2PYW5MS.js +1 -0
  93. package/dist/preview/{chunk.BNV77BQZ.js → chunk.U5EJSTST.js} +3 -3
  94. package/dist/preview/{chunk.EKPRNDUV.js → chunk.UHQD3NTK.js} +1 -1
  95. package/dist/preview/chunk.UWIYKGYK.js +25 -0
  96. package/dist/preview/{chunk.UBFNZMUX.js → chunk.VMGWYCXU.js} +1 -1
  97. package/dist/preview/{chunk.JDUJDAGA.js → chunk.VWHMYPLL.js} +1 -1
  98. package/dist/preview/{chunk.R6K6GF5R.js → chunk.VZHV25JE.js} +1 -1
  99. package/dist/preview/chunk.WQBDTLPZ.js +1 -0
  100. package/dist/preview/{chunk.MNP4JI33.js → chunk.X7W27IRI.js} +4 -4
  101. package/dist/preview/{chunk.YIR7PPF3.js → chunk.XSYBNUXF.js} +1 -1
  102. package/dist/preview/{chunk.JOOQUWLT.js → chunk.Y5Z4ZDTO.js} +2 -2
  103. package/dist/preview/chunk.YT2CYCVT.js +1 -0
  104. package/dist/preview/{chunk.B2GLDIAS.js → chunk.Z7ZCR4LN.js} +1 -1
  105. package/dist/preview/{chunk.CAVBSL27.js → chunk.ZE4CTZQ3.js} +1 -1
  106. package/dist/preview/chunk.ZFWV4JAJ.js +1 -0
  107. package/dist/preview/chunk.ZHXX22AT.js +3 -0
  108. package/dist/preview/chunk.ZKXK22AH.js +1 -0
  109. package/dist/preview/chunk.ZQNLC33L.js +1 -0
  110. package/dist/preview/{chunk.OKRNJXTV.js → chunk.ZSW74NVJ.js} +1 -1
  111. package/dist/preview/{chunk.7T7NZZTC.js → chunk.ZZTDQKM2.js} +1 -1
  112. package/dist/preview/index.html +42 -42
  113. package/dist/preview/page.js +2 -2
  114. package/package.json +6 -6
  115. package/dist/preview/chunk.26LLZN3C.js +0 -1
  116. package/dist/preview/chunk.2WPZXIRP.js +0 -2
  117. package/dist/preview/chunk.4HRAQNJO.js +0 -27
  118. package/dist/preview/chunk.52W7WYME.js +0 -1
  119. package/dist/preview/chunk.63GXY2ME.js +0 -1
  120. package/dist/preview/chunk.67TPUXAY.js +0 -1
  121. package/dist/preview/chunk.6QWV5MVH.js +0 -25
  122. package/dist/preview/chunk.AKFKM4SW.js +0 -3
  123. package/dist/preview/chunk.BHXGM3PV.js +0 -1
  124. package/dist/preview/chunk.BQ3JHEHV.js +0 -1
  125. package/dist/preview/chunk.CIPS2OGR.js +0 -1
  126. package/dist/preview/chunk.DAZ2VSRD.js +0 -1
  127. package/dist/preview/chunk.ERIT3R6N.js +0 -1
  128. package/dist/preview/chunk.EYTBDMTW.js +0 -1
  129. package/dist/preview/chunk.GBRRGTIH.js +0 -1
  130. package/dist/preview/chunk.H7BST3XO.js +0 -1
  131. package/dist/preview/chunk.IDVAR5HM.js +0 -1
  132. package/dist/preview/chunk.KSES5U5B.js +0 -1
  133. package/dist/preview/chunk.LR3VDXPI.js +0 -1
  134. package/dist/preview/chunk.N6OX4NEQ.js +0 -1
  135. package/dist/preview/chunk.PHKSMUIA.js +0 -1
  136. package/dist/preview/chunk.SHPXD6FC.js +0 -1
  137. package/dist/preview/chunk.SHTJZ6UX.js +0 -1
  138. package/dist/preview/chunk.UVR2Z5ZC.js +0 -1
  139. package/dist/preview/chunk.WAZ7OGBD.js +0 -1
  140. package/dist/preview/chunk.XANVHJQ4.js +0 -1
  141. package/dist/preview/chunk.XKABS745.js +0 -1
  142. package/dist/preview/chunk.XMC7YDWT.js +0 -1
  143. package/dist/preview/chunk.Y2SFUALD.js +0 -117
  144. package/dist/preview/chunk.Y6ZNFQK3.js +0 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graview",
3
- "version": "0.1.33",
3
+ "version": "0.1.35",
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/core": "0.1.33",
33
- "@graview/ship": "0.1.33",
34
- "@graview/tools": "0.1.33",
35
- "@graview/skills": "0.1.33",
36
- "@graview/guest": "0.1.33"
32
+ "@graview/core": "0.1.35",
33
+ "@graview/ship": "0.1.35",
34
+ "@graview/guest": "0.1.35",
35
+ "@graview/tools": "0.1.35",
36
+ "@graview/skills": "0.1.35"
37
37
  },
38
38
  "engines": {
39
39
  "node": ">=22"
@@ -1 +0,0 @@
1
- import"./chunk.5A4AOFOA.js";import"./chunk.KSXB4LDF.js";import"./chunk.R6K6GF5R.js";import"./chunk.3AGY4QVS.js";import{a as L,b as R,c as E}from"./chunk.2NIOHEMX.js";import{b as T}from"./chunk.4HRAQNJO.js";import"./chunk.Y6ZNFQK3.js";import"./chunk.BNV77BQZ.js";import"./chunk.SYAEBGDC.js";import"./chunk.NRAYZY3X.js";import"./chunk.RIJUCHP4.js";import"./chunk.TAQ764IQ.js";import"./chunk.YIR7PPF3.js";import"./chunk.3HXN4BOY.js";import"./chunk.GYICGZMG.js";import"./chunk.UHUGOTUU.js";import"./chunk.47STJVRV.js";import"./chunk.EBGAYL32.js";import"./chunk.DAZ2VSRD.js";import"./chunk.HJCQ6I3S.js";import"./chunk.MWGGV7DE.js";import"./chunk.JQU5GEU3.js";import"./chunk.HAIG6NVX.js";import"./chunk.UZGRRDHD.js";import"./chunk.XANVHJQ4.js";import"./chunk.OKRNJXTV.js";import"./chunk.CAVBSL27.js";import"./chunk.COQKECUH.js";import"./chunk.EJPI3ST6.js";import"./chunk.CWHRDBOF.js";import"./chunk.3K6YSVHC.js";import"./chunk.SHTJZ6UX.js";import"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.js";import"./chunk.G5NZVPJU.js";import"./chunk.WVUJXDXZ.js";import"./chunk.ULRW47RP.js";import"./chunk.PBSMLINK.js";import"./chunk.3TY5NFLY.js";import"./chunk.D75KC3LL.js";import"./chunk.FWTIUYXH.js";import"./chunk.MAF7C3VM.js";import"./chunk.GZHZLJBF.js";import{r as x}from"./chunk.XMC7YDWT.js";import"./chunk.6UGEYZAC.js";import"./chunk.OJGHDWI6.js";import"./chunk.B2GLDIAS.js";import"./chunk.6YCBYL2Y.js";import"./chunk.UGFJKSHU.js";import"./chunk.JOOQUWLT.js";import{F as S,H as $,Q as p,Y as C,_ as A}from"./chunk.6QWV5MVH.js";import{W as h,ec as k}from"./chunk.MNP4JI33.js";import{b as i}from"./chunk.AJZBJBMO.js";var o=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 I({page:r=!1,go:D,onPick:y,onDiscard:M}){let{store:d,seatTalk:c}=C(),u=$(c),N=E(),b=D??N,{keep:P}=L(b),[H,f]=(0,o.useState)(!1);A();let t=u.draft;(0,o.useEffect)(()=>f(!1),[t]),(0,o.useEffect)(()=>{r||R(!1)},[r]);let v=(0,o.useRef)(null),w=t!==null&&!r;if((0,o.useLayoutEffect)(()=>{let s=v.current;if(!w||!s?.parentElement)return;let n=[];for(let a=s.previousElementSibling;a;a=a.previousElementSibling)a instanceof HTMLElement&&!a.inert&&a.tagName!=="STYLE"&&(a.inert=!0,n.push(a));return()=>{for(let a of n)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","aria-label":`Draft: ${t.title}`,style:r?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:0,zIndex:k("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-ground, var(--graview-panel))",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...K,...r?{}:{padding:"10px 16px"}},children:[r?(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:r?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:r?{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 n=s.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!n||!d.graph.getNode(n))return;s.preventDefault();let a=d.graph.getNode(n);y?(c.setDraft(null),y(n)):b({to:"record",id:n,kind:a.kind,label:n,address:"",said:""})},children:(0,e.jsx)(x,{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{I as DraftFrame};
@@ -1,2 +0,0 @@
1
- import{a as Pe,b as $e}from"./chunk.5A4AOFOA.js";import"./chunk.KSXB4LDF.js";import"./chunk.R6K6GF5R.js";import"./chunk.3AGY4QVS.js";import{i as Ee,j as He}from"./chunk.BNV77BQZ.js";import"./chunk.SYAEBGDC.js";import"./chunk.YIR7PPF3.js";import"./chunk.EBGAYL32.js";import"./chunk.DAZ2VSRD.js";import"./chunk.HJCQ6I3S.js";import"./chunk.MWGGV7DE.js";import"./chunk.JQU5GEU3.js";import"./chunk.HAIG6NVX.js";import"./chunk.UZGRRDHD.js";import"./chunk.XANVHJQ4.js";import"./chunk.OKRNJXTV.js";import"./chunk.CAVBSL27.js";import"./chunk.COQKECUH.js";import{a as ze,b as x}from"./chunk.EJPI3ST6.js";import"./chunk.3K6YSVHC.js";import"./chunk.SHTJZ6UX.js";import{b as Te,c as Me}from"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.js";import"./chunk.G5NZVPJU.js";import"./chunk.ULRW47RP.js";import"./chunk.PBSMLINK.js";import"./chunk.3TY5NFLY.js";import"./chunk.D75KC3LL.js";import"./chunk.FWTIUYXH.js";import"./chunk.MAF7C3VM.js";import{t as Ce}from"./chunk.XMC7YDWT.js";import"./chunk.6UGEYZAC.js";import"./chunk.OJGHDWI6.js";import{g as Ae}from"./chunk.B2GLDIAS.js";import"./chunk.6YCBYL2Y.js";import{c as Se}from"./chunk.UGFJKSHU.js";import{m as ke}from"./chunk.JOOQUWLT.js";import{F as Ge,Q as we,Y as W,i as ve,na as Q,sa as be,v as ye,wa as xe}from"./chunk.6QWV5MVH.js";import{Jb as me,da as K,ea as L,ec as fe,kb as he}from"./chunk.MNP4JI33.js";import{b as Y}from"./chunk.AJZBJBMO.js";var a=Y(Ge(),1);var n=Y(we(),1);function dt({placement:d="float",chosen:o=!0}={}){let{menuAt:r}=W();return d==="menu"&&r===null?o?(0,n.jsx)(Je,{}):null:(0,n.jsx)(Xe,{placement:d})}function Je(){let{store:d,setMenuAt:o,view:r}=W(),{selection:f}=Q(),h=(0,a.useRef)(null),[p,k]=(0,a.useState)(null);(0,a.useLayoutEffect)(()=>{let v=h.current?.offsetParent??h.current?.parentElement;if(!v)return;let w=Math.round(v.getBoundingClientRect().width);w!==p&&k(w)});let S=f.length===1&&!r.overview?d.graph.getNode(f[0]):void 0;return!S||p===null||p>=Re?(0,n.jsx)("span",{ref:h,hidden:!0}):(0,n.jsx)("button",{type:"button",ref:h,"data-testid":"chosen-acts","aria-label":`What can be done with ${x(d,S.id)}`,"aria-haspopup":"menu",onClick:v=>{let w=v.currentTarget.getBoundingClientRect();o({x:Math.round(w.right),y:Math.round(w.bottom+4),on:S.id})},style:{position:"absolute",right:"calc(14px + var(--graview-dock, 0px))",top:98,zIndex:"var(--graview-layer-overview, 10)",minHeight:30,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)"},children:"Acts\u2026"})}var Re=564;function Xe({placement:d}){let{store:o,menuAt:r,setMenuAt:f,view:h}=W(),p=(0,a.useRef)(null),k=(0,a.useRef)(null),S=(0,a.useRef)(null),v=(0,a.useRef)(null);r?.returnTo&&(v.current=r.returnTo);let w=e=>{let i=e.closest("[data-graview-asking]")?.getAttribute("data-graview-asking"),t=e.getAttribute("data-pin-for"),g=i??e.getAttribute("data-affordance")??(t===null?null:`pin:${t}`)??e.getAttribute("data-menu-item");k.current=g===null?null:{key:g,element:e}};(0,a.useEffect)(()=>{let e=p.current,i=k.current;if(i===null||document.activeElement!==document.body||i.element.isConnected)return;let t=i.key;if(!e){k.current=null;let H=v.current;v.current=null,(H?.isConnected?H:S.current)?.focus();return}((t.startsWith("pin:")?e.querySelector(`[data-pin-for="${CSS.escape(t.slice(4))}"]`):null)??e.querySelector(`[data-affordance="${CSS.escape(t)}"]:not([disabled])`)??e).focus()});let[Le,We]=(0,a.useState)(null);(0,a.useLayoutEffect)(()=>{let e=p.current?.offsetParent??p.current?.parentElement;if(e instanceof HTMLElement&&(S.current=e),!e)return;let i=e.getBoundingClientRect();We(t=>t&&t.left===i.left&&t.top===i.top&&t.width===i.width&&t.height===i.height?t:{left:i.left,top:i.top,width:i.width,height:i.height})});let{selection:Ne,set:De,clear:Oe}=Q(),s=r?.about??Ne,[N,Fe]=(0,a.useState)(()=>Pe()),D=r?.on??s[s.length-1],O=r?.about,qe=(0,a.useMemo)(()=>({pins:N,...D===void 0?{}:{focus:D},...O?{about:O}:{}}),[N,D,O]),Be=(0,a.useMemo)(()=>new Set(o.allMutations().filter(e=>e.pinned).map(e=>e.name)),[o]),{affordances:c,withheld:m,observations:G}=Ee(qe),je=r===null?null:{face:r.face??"scene",on:r.on,about:s,field:r.field,place:r.place,href:r.href,act:r.act,element:r.returnTo},J=Ce(je),X=G.some(e=>e.id.startsWith("schema:waits:")),{apply:Ue,preview:_e}=He(),[C,z]=(0,a.useState)(null),[Ve,Z]=(0,a.useState)(!1),[ee,te]=(0,a.useState)(!1),[P,$]=(0,a.useState)(""),[ne,F]=(0,a.useState)(null),q=(0,a.useRef)([]),B=(e,i)=>{try{return _e(e,i),Ue(e,i),F(null),f(null),q.current=[],!0}catch(t){return F(Ae(o.schema,o.allMutations(),t)),q.current=t instanceof he?t.issues.map(g=>String(g.path[0]??"")).filter(Boolean):[],!1}},I=[...new Set(s.flatMap(e=>{let i=o.graph.getNode(e);return i?[i.kind]:[]}))],b=I.length>0?I:[...new Set(s.flatMap(e=>ye(e)))],u=s.length===1?ve(s[0]):null,j=u?{from:o.graph.getNode(u.from),to:o.graph.getNode(u.to)}:null,ie=u?Me(o,u):void 0,re=ie?.provisional?ie:void 0,ae=u?(()=>{let e=o.schema.tryDefinition(o.graph.getNode(u.from)?.kind??"")?.edges?.[u.kind],i=o.graph.getNode(u.to);return e?.inverse&&i?`From ${x(o,i.id)}: ${e.inverse}`:null})():null;(0,a.useEffect)(()=>{z(null),Z(!1),te(!1),F(null),$("")},[s,r?.about]);let l=r!==null,Ye=d==="menu"&&!l,A=(0,a.useRef)(r);A.current=r;let oe=xe("acts",{open:l&&d==="menu",onOpenChange:e=>{e||f(null)},at:()=>A.current?{x:A.current.x,y:A.current.y}:null,returnTo:()=>{let e=A.current?.returnTo;if(e?.isConnected)return e;let i=A.current?.on;return i?document.querySelector(`[data-graview-view="${CSS.escape(i)}"]`):null},align:"start"}),le=(Le?.width??Number.POSITIVE_INFINITY)<Re;if((0,a.useLayoutEffect)(()=>{let e=p.current?.offsetParent;if(!e||!le||l)return;let i=p.current?.getBoundingClientRect().height??0,t=`${Math.round(i)+20}px`;if(e.style.paddingBottom===t)return;let g=e.style.paddingBottom;return e.style.paddingBottom=t,()=>{e.style.paddingBottom=g}}),s.length===0&&!l)return null;let se=r?.title!==void 0||s.length>0&&!(s.length===1&&s[0]===h.focusId),de=Math.max(1,Math.min(9,c.length)),T=[...c.filter(e=>e.provider==="invariant"&&!e.destructive),...c.filter(e=>e.pinned&&e.provider!=="invariant"&&!e.destructive),...c.filter(e=>!e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...c.filter(e=>e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...c.filter(e=>e.destructive)],ue=T.length>de&&!l,pe=P.trim().toLowerCase(),y=ue&&pe.length>0?T.filter(e=>`${e.label} ${e.why}`.toLowerCase().includes(pe)):null,U=y??(Ve||l?T:T.slice(0,de)),ce=y?0:T.length-U.length,R=[];for(let e of U){let i=!l&&e.provider==="invariant",t=!l&&!i&&e.pinned!==void 0&&!e.destructive,g=!l&&!i&&!t&&e.ties===!0&&!e.destructive,H=i?e.why:t?"pinned":g?"its ties":null,Qe=i?"violation":t||g?"ties":null,V=R[R.length-1];V&&V.heading===H?V.items.push(e):R.push({heading:H,tone:Qe,items:[e]})}let _=c.find(e=>e.id===C),E=s.length===1?x(o,s[0]):null,ge=e=>{if(!E)return e;let i=e.startsWith(`"${E}"`)?e.slice(E.length+2):e.startsWith(E)?e.slice(E.length):null;if(i===null)return e;let t=i.trimStart();return t.length===0?e:t[0].toUpperCase()+t.slice(1)},Ke=new Set(l?[]:U.filter(e=>e.provider==="invariant").map(e=>e.why)),M=G.filter(e=>!Ke.has(e.text)).map(e=>({...e,text:ge(e.text)}));return Ye?null:(0,n.jsxs)("section",{...l?oe.pane:{},ref:e=>{p.current=e,l&&oe.pane.ref(e)},"aria-label":"Inspector","data-graview-offstage":"","data-testid":l?"context-menu":"inspector-strip",tabIndex:-1,onFocus:e=>w(e.target),onBlur:e=>{e.relatedTarget!==null&&(k.current=null)},onMouseDown:e=>e.stopPropagation(),style:{...l?be:{position:"absolute",zIndex:fe("rail")},boxSizing:"border-box",display:"flex",flexDirection:"column",gap:7,padding:"9px 12px",borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",...l?{width:300,maxHeight:"min(52cqh, 420px)",overflow:"auto"}:le?{left:10,right:10,width:"auto",bottom:10,maxHeight:"min(42cqh, 300px)",overflow:"auto"}:{left:14,top:h.overview?"min(296px, 38cqh)":44,width:236,maxHeight:h.overview?"calc(100cqh - min(296px, 38cqh) - 20px)":"calc(68cqh - 94px)",overflow:"auto"}},children:[(0,n.jsx)("h2",{style:{...ke,margin:0},children:"Inspector"}),(0,n.jsxs)("div",{style:{display:se||!l?"flex":"none",alignItems:"baseline",flexWrap:"wrap",gap:"2px 8px",minWidth:0,paddingRight:l?0:24},children:[se?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("strong",{style:{fontSize:"0.9375rem",whiteSpace:"nowrap"},children:r?.title??(s.length===1?x(o,s[0]):`${s.length} selected`)}),I.length>0||u?(0,n.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:u?"relation":I.map(e=>L(o.schema.tryDefinition(e),e)).join(" \xB7 ")}):null,s.length===1&&!u&&r?.face!=="pages"?(0,n.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:h.expanded.includes(s[0])?"\xB7 double-click closes":"\xB7 double-click opens"}):null]}):null,(0,n.jsx)("span",{style:{flex:"1 1 auto"}})]}),l?null:(0,n.jsx)("button",{type:"button",onClick:()=>{f(null),Oe()},"aria-label":"Clear selection",title:"Clear selection",style:{position:"absolute",top:6,right:6,flex:"0 0 auto",width:24,height:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.875rem",lineHeight:1,borderRadius:7},children:"\xD7"}),u&&j?(0,n.jsxs)("div",{style:{display:"grid",gap:6},children:[ae?(0,n.jsx)("p",{"data-testid":"edge-said",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:ae}):null,re?(0,n.jsx)("p",{"data-testid":"edge-provisional",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:Te(re)}):null,(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[["from",j.from],["to",j.to]].map(([e,i],t)=>(0,n.jsxs)(a.Fragment,{children:[t===1?(0,n.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-ink-faint)"},children:"\u2192"}):null,i?(0,n.jsx)("button",{type:"button","data-testid":`edge-${e}`,onClick:()=>De([i.id]),title:`Select ${x(o,i.id)}`,style:{fontSize:"0.8125rem",padding:"3px 9px",borderRadius:6},children:x(o,i.id)}):(0,n.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"gone"})]},e))})]}):null,!u&&s.length===1&&me(o,s[0])?(0,n.jsx)("p",{"data-testid":"left-alone",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:"Left alone: nothing automated changes it."}):null,M.length>0?(0,n.jsx)("div",{"data-testid":"observations",title:M.map(e=>e.text).join(`
2
- `),style:{display:"grid",gap:3},children:M.slice(0,2).map(e=>(0,n.jsxs)("p",{style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[e.text,e===M[1]&&M.length>2?(0,n.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" +",M.length-2]}):null]},e.id))}):null,l?J.start.map(e=>(0,n.jsx)(Ie,{section:e,close:()=>f(null)},e.id)):null,ne?(0,n.jsx)("p",{"data-testid":"refused",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-warn)"},children:ne}):null,ue?(0,n.jsx)("input",{"data-testid":"action-filter",value:P,onChange:e=>$(e.target.value),placeholder:`Filter ${T.length} actions\u2026`,"aria-label":"Filter actions",onKeyDown:e=>{if(e.key==="Escape"){e.stopPropagation(),P.length>0?$(""):e.currentTarget.blur();return}if(e.key==="Enter"&&y?.length===1){let i=y[0];if(i.destructive)return;i.open.length>0?z(i.id):B(i)&&$("")}},style:{font:"inherit",fontSize:"0.875rem",padding:"5px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}):null,y!==null&&y.length===0?(0,n.jsxs)("p",{"data-testid":"no-matches",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:["Nothing offered here matches \u201C",P.trim(),"\u201D."]}):null,c.length===0&&!X&&s.length===0?null:c.length===0&&!X?(0,n.jsx)("p",{"data-testid":"no-affordances",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:m.length>0?`Nothing you may do with ${u?"this relation":b.length===1?K(L(o.schema.tryDefinition(b[0]),b[0])):"this mix of kinds"} \u2014 ${m.length} action${m.length===1?"":"s"} withheld.`:u?`Nothing can be done with this line yet \u2014 nothing this app declares makes or breaks \u201C${Se(o.schema,o.graph.getNode(u.from)?.kind??"",u.kind,"out")}\u201D.`:`Nothing can be done with ${b.length===1?K(L(o.schema.tryDefinition(b[0]),b[0])):"this mix of kinds"} yet \u2014 nothing this app declares acts on ${b.length===1?"it":"them"}.`}):(0,n.jsxs)("ol",{"data-testid":"affordances",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[R.map((e,i)=>(0,n.jsxs)(a.Fragment,{children:[e.heading?(0,n.jsxs)("li",{"data-graview-heading":e.tone,style:{fontSize:"0.75rem",lineHeight:1.4,color:e.tone==="violation"?"var(--graview-warn)":"var(--graview-ink-faint)",...e.tone!=="violation"?{letterSpacing:"0.12em",textTransform:"uppercase",fontSize:"0.75rem"}:{},padding:"2px 2px 1px",marginTop:i>0?6:0},children:[e.tone==="violation"?"\u26A0 ":"",e.tone==="violation"?ge(e.heading):e.heading]}):i>0?(0,n.jsx)("li",{"aria-hidden":"true",style:{borderTop:"1px solid var(--graview-edge)",margin:"6px 0 3px"}}):null,e.items.map(t=>(0,n.jsxs)("li",{style:{display:"flex",gap:2,alignItems:"stretch"},children:[(0,n.jsxs)("button",{type:"button","data-affordance":t.id,"data-rank":t.rank,"data-graview-destructive":t.destructive||void 0,"aria-pressed":C===t.id,title:t.why,style:{padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:C===t.id?"var(--graview-accent)":l?"transparent":"var(--graview-edge)",background:l?"none":"var(--graview-panel)",boxShadow:"none",...t.destructive?{color:"var(--graview-warn)"}:{},...C===t.id?{color:"var(--graview-accent)"}:{}},onClick:()=>{if(t.open.length>0){z(C===t.id?null:t.id);return}B(t)},children:[t.label,t.open.length>0?(0,n.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:" \u2026"}):null,y?.length===1&&y[0]?.id===t.id&&!t.destructive?(0,n.jsx)("span",{"aria-hidden":"true",title:"Enter runs it",style:{float:"right",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"\u21B5"}):null]}),(0,n.jsx)("button",{type:"button","data-testid":"pin-toggle","data-pin-for":t.mutation,"aria-pressed":t.pinned!==void 0,"aria-label":t.pinned!==void 0?`Unpin ${t.label}`:`Pin ${t.label}`,title:t.pinned==="declared"?"Pinned by the app \u2014 unpin it for yourself":t.pinned==="user"?"Unpin":"Pin to the top",onClick:()=>Fe($e(N,t.mutation,Be.has(t.mutation))),style:{flex:"0 0 auto",width:24,minHeight:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.75rem",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7,color:t.pinned==="user"?"var(--graview-accent)":t.pinned==="declared"?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:t.pinned!==void 0?"\u2605":"\u2606"})]},t.id))]},`${e.heading??"plain"}-${i}`)),ce>0?(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button",onClick:()=>Z(!0),title:`Show all ${c.length} actions`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",ce," more"]})}):null]}),m.length>0?(0,n.jsxs)("ul",{"data-testid":"withheld",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[m.slice(0,l||ee?m.length:3).map(e=>(0,n.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,n.jsx)("button",{type:"button",disabled:!0,"data-affordance":e.id,"data-rank":e.rank,"data-withheld":e.refusal.wouldNeed.join(",")||"nobody",style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8,borderStyle:"dashed",width:"100%",textAlign:"left",background:"none"},children:(0,n.jsx)("s",{children:e.label})}),(0,n.jsx)("span",{"data-testid":"withheld-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:e.refusal.message})]},e.id)),!l&&!ee&&m.length>3?(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button","data-testid":"withheld-more",onClick:()=>te(!0),title:`Show all ${m.length} actions this seat may not take`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",m.length-3," more withheld"]})}):null]}):null,l?J.end.map(e=>(0,n.jsx)(Ie,{section:e,close:()=>f(null)},e.id)):null,_?(0,n.jsx)(ze,{affordance:_,onApply:e=>{if(B(_,e))z(null);else return q.current},onCancel:()=>z(null)}):null]})}function Ie({section:d,close:o}){return(0,n.jsxs)("div",{"data-menu-section":d.id,...d.heading?{role:"group","aria-label":d.heading}:{},style:{display:"grid",gap:2,borderTop:"1px solid var(--graview-edge)",paddingTop:5},children:[d.heading?(0,n.jsx)("p",{"aria-hidden":"true",style:{margin:0,padding:"2px 2px 1px",fontSize:"0.75rem",lineHeight:1.4,letterSpacing:"0.12em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:d.heading}):null,d.items&&d.items.length>0?(0,n.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:2},children:d.items.map(r=>(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button","data-menu-item":r.id,onClick:()=>{o(),r.run()},style:{padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:"transparent",background:"none",boxShadow:"none"},children:[r.label,r.hint?(0,n.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",r.hint]}):null]})},r.id))}):null,d.render?.(o)]})}export{dt as InspectorPane};
@@ -1,27 +0,0 @@
1
- import{a as Et,b as Mt,c as Pt,d as Tn}from"./chunk.Y6ZNFQK3.js";import{a as Mn,b as kt,c as Pn,d as Ct,e as Ot,f as $t}from"./chunk.BNV77BQZ.js";import{a as Rt,b as Ln,c as At}from"./chunk.SYAEBGDC.js";import{c as Lt,g as Tt,h as Nt}from"./chunk.NRAYZY3X.js";import{e as vt}from"./chunk.YIR7PPF3.js";import{m as St}from"./chunk.UHUGOTUU.js";import{a as bt,b as xt}from"./chunk.47STJVRV.js";import{f as yt,h as wt}from"./chunk.EBGAYL32.js";import{e as ht}from"./chunk.DAZ2VSRD.js";import{b as mt,c as te,d as ye,e as Ee}from"./chunk.3K6YSVHC.js";import{d as pt}from"./chunk.ULRW47RP.js";import{l as ft,m as En}from"./chunk.XMC7YDWT.js";import{m as Rn,n as An}from"./chunk.B2GLDIAS.js";import{k as Ve}from"./chunk.JOOQUWLT.js";import{F as De,Q as J,R as ct,Y as X,_ as gt,m as Qe,oa as ut,pa as Je}from"./chunk.6QWV5MVH.js";import{$ as tn,Bb as lt,Da as at,Ha as it,Ia as ot,Ja as st,Kb as de,O as Zn,P as et,Q as kn,R as nt,S as Ke,W as We,X as he,Zb as Ye,_ as Ie,_b as dt,aa as tt,ca as Cn,cb as On,da as rt,dc as Ce,ea as rn,qc as $n}from"./chunk.MNP4JI33.js";import{b as _}from"./chunk.AJZBJBMO.js";var Nn=_(J(),1);function Me(e,t,n){let r=e.nodes?.length??0;if(e.total===void 0||e.total<=r)return n;let a=e.nodes?.[0]?.kind,i=a?tn(t,a).toLowerCase():"more";return(0,Nn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,Nn.jsxs)("p",{"data-testid":"lens-more",style:{margin:"4px 0 0",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["+",e.total-r," more ",i]})]})}var Dt=_(J(),1),Or=(e,t)=>{if(e===!1||t===!1)return!1;let n=e===void 0||e===!0?{}:e,r=t===void 0||t===!0?{}:t;return{sort:n.sort!==!1&&r.sort!==!1,filter:n.filter!==!1&&r.filter!==!1,group:n.group!==!1&&r.group!==!1}},$r=["sort","filter","group","q","archived"];function Pe(e,t={}){let{store:n}=X(),{view:r,go:a}=Je(),d=$r.some(R=>r.within?.[R]!==void 0)?bt(r):t.arrangedBy??{},m=e.nodes??[],g=t.kind??m[0]?.kind??e.node?.kind,y=d.archived!==void 0&&d.archived!==!1&&g!==void 0&&!t.subject?n.graph.nodesOfKind(g,{archived:d.archived}):m,c=t.subject??(t.only?y.filter(t.only):y),f=t.subject?[]:t.only?y.filter(R=>!t.only(R)):[],x=t.kind??c[0]?.kind,s=Or(t.allow,t.lensAllows),l=x?ht(n.schema,String(x)):void 0,h=l?yt(d,l).arrangement:{},o=wt(c,s===!1?{}:h,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[])}),b=e.retired!==void 0&&e.retired>0&&(m[0]?.kind??x)===x?e.retired:0,C=x&&s!==!1&&e.fidelity==="full"&&e.budget===void 0&&(c.length>1||b>0)?(0,Dt.jsx)(St,{schema:n.schema,graph:n.graph,kind:String(x),arrangement:h,allow:s,query:t.query!==!1,onChange:R=>a(xt(r,R)),kept:{shown:o.nodes.length,of:c.length},...b>0?{past:{count:b,widen:()=>a(vt(r,!0))}}:{}}):null;return{nodes:[...f,...o.nodes],arranged:o,arrangement:h,bar:C}}function He(e,t,n){let r=new Set((n??[]).map(i=>i.kind)),a=new Set((n??[]).map(i=>i.id));return e.allNodes().filter(i=>r.has(i.kind)?a.has(i.id):We(t.tryDefinition(i.kind),i))}var Le=_(De(),1);var N=_(J(),1),Rr=["slots","x","y","fill"],an=class extends Error{constructor(n,r){super(`${n}
2
- ${r}`);this.hint=r;this.name="BoardBindingError"}},zt=e=>Math.max(0,Math.min(1,e));function Dn(e,t,n,r){let a=l=>l,i=l=>r?he(r.tryDefinition(l.kind),l):String(a(l).label??l.id);if(r&&r.tryDefinition(n.slots)===void 0)throw new an(`No kind is declared for "${n.slots}".`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let d=e.filter(l=>l.kind===n.slots);if(!r&&d.length===0)throw new an(`Nothing to arrange: no "${n.slots}" nodes.`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let m=t.filter(l=>l.kind===n.fill),g=new Map(e.map(l=>[l.id,l])),y=new Map(e.map((l,h)=>[l.id,h])),c=d.map(l=>{let h=a(l),o=n.fillFrom==="occupant",b=m.filter(C=>(o?C.to:C.from)===l.id).map(C=>g.get(o?C.from:C.to)).filter(C=>C!==void 0).sort((C,R)=>(y.get(C.id)??0)-(y.get(R.id)??0)).map(C=>({id:C.id,label:i(C)}));return{id:l.id,code:String(h[n.slotCode??""]??"").trim()||i(l),label:i(l),x:zt(Number(h[n.x]??.5)),y:zt(Number(h[n.y]??.5)),occupants:b}}).sort((l,h)=>l.y-h.y||l.x-h.x),f=new Set(c.flatMap(l=>l.occupants.map(h=>h.id))),x=new Set([...f].map(l=>g.get(l)?.kind).filter(l=>l!==void 0)),s=e.filter(l=>x.has(l.kind)&&!f.has(l.id)).map(l=>({id:l.id,label:i(l)})).sort((l,h)=>l.label<h.label?-1:l.label>h.label?1:0);return{slots:c,empty:c.filter(l=>l.occupants.length===0).map(l=>l.id),spare:s}}function Ar({nodes:e,occupants:t,label:n,fidelity:r,mode:a,options:i,schema:d,implicated:m=[],flagged:g=[]}){let{store:y}=X(),c=He(y.graph,y.schema,e),f=t?[...c.filter(p=>p.kind===i.slots),...t.map(p=>y.graph.getNode(p)).filter(p=>p!==void 0)]:c,x=Dn(f,y.graph.allEdges(),i,d),s=new Set(m),l=new Set(g),h=ut(),o=new Map;for(let p of h)for(let H of p.nodeIds)o.set(H,[...o.get(H)??[],p.message]);let b=p=>p?o.get(p)??[]:[];if(r==="glyph")return(0,N.jsx)(ye,{label:`${n??"Board"} \xB7 ${x.slots.length-x.empty.length}/${x.slots.length}`,hue:de("board")});if(r==="summary"){let p=x.slots.filter(H=>x.empty.includes(H.id));return(0,N.jsx)(te,{title:n??"Board",meta:`${x.slots.length-x.empty.length}/${x.slots.length}`,tone:p.length>0?"warning":"muted",fit:!0,children:p.length>0?(0,N.jsx)(Ee,{pick:!0,max:5,items:p.map(H=>({id:H.id,label:H.code}))}):(0,N.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"Every slot filled."})})}let C=i.aspect??.68,R=(0,Le.useRef)(null),[A,S]=(0,Le.useState)(!1),[k,u]=(0,Le.useState)(null),E=160,[M,B]=(0,Le.useState)(!1);(0,Le.useEffect)(()=>{let p=R.current;if(!p||typeof ResizeObserver>"u")return;let H=new ResizeObserver(D=>{let j=D[0]?.contentRect;if(!j)return;let v=j.height<E;B(v),S(!v&&C<1&&j.width/j.height>1.3),u(v?null:j.height)});return H.observe(p),()=>H.disconnect()},[C]);let w=(p,H)=>A?{x:1-H,y:p}:{x:p,y:H},W=(()=>{let p=new Map,H=(D,j,v)=>{let O=p.get(v)??{ids:[],codes:[]};O.ids.includes(D)||(O.ids.push(D),O.codes.includes(j)||O.codes.push(j)),p.set(v,O)};for(let D of x.slots){for(let j of b(D.id))H(D.id,D.code,j);for(let j of D.occupants)for(let v of b(j.id))H(j.id,j.label,v)}return[...p.entries()].map(([D,j])=>({id:j.ids[0],code:j.codes.join(", "),text:D}))})(),P=a==="fullscreen",U=W.length===0?null:(0,N.jsxs)("ul",{"data-graview-primitive":"board-key",style:{margin:"2px 0 0",padding:0,listStyle:"none",display:"grid",gap:3,flex:"0 0 auto"},children:[W.slice(0,P?6:2).map(p=>(0,N.jsxs)("li",{"data-graview-pick":p.id,"data-graview-emphasis":s.size===0?"plain":s.has(p.id)?"lit":"dimmed",title:p.text,style:{display:P?"grid":"flex",gap:P?1:7,alignItems:P?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:P?"2px 0":"3px 6px",marginLeft:P?0:-6,borderRadius:7,cursor:"pointer"},children:[(0,N.jsxs)("span",{style:{flex:"0 0 auto",fontWeight:600,color:"var(--graview-warn)",letterSpacing:"0.02em"},children:["\u26A0 ",p.code]}),(0,N.jsx)("span",{style:{minWidth:0,...P?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:p.text})]},p.id)),W.length>(P?6:2)?(0,N.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",W.length-(P?6:2)," more"]}):null]}),ne=i.arrange==="shelf",ae=x.slots.every(p=>p.code.length<=3&&!/\s/.test(p.code)),ee=(p,H)=>{let D=p.occupants.length===0,j=s.size>0&&!s.has(p.id)&&!p.occupants.some(F=>s.has(F.id)),v=l.has(p.id),O=p.occupants.some(F=>l.has(F.id)),G=v,ie=[...b(p.id),...p.occupants.flatMap(F=>b(F.id))],se=p.occupants.length===1?p.occupants[0]:null,ue=i.pickTarget==="slot"?p.id:se?se.id:p.id,K=F=>se?{}:{"data-graview-pick":F.id,"data-graview-emphasis":s.size===0?"plain":j?"dimmed":"lit"},ve=F=>l.has(F.id)?"var(--graview-warn)":"var(--graview-ink-muted)",Ue=i.emptyLabel??"empty";return(0,N.jsxs)("div",{"data-graview-pick":ue,"data-graview-slot":p.id,"data-graview-mark":ae?"disc":"token","data-graview-flagged":v&&O?"both":v?"slot":O?"occupant":void 0,"data-graview-emphasis":s.size===0?"plain":j?"dimmed":"lit",title:[D?`${p.label} \u2014 nobody in it`:`${p.occupants.map(F=>F.label).join(", ")} at ${p.label}`,...ie].join(`
3
- `),style:{...H,display:"grid",justifyItems:ae?"center":"start",gap:3,opacity:j?.5:1,transition:"opacity 160ms ease"},children:[ae?(0,N.jsxs)("span",{style:{position:"relative",width:34,height:34,borderRadius:999,display:"grid",placeItems:"center",fontSize:"0.75rem",letterSpacing:"0.02em",border:D?"1.5px dashed var(--graview-warn)":`1px solid ${G?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:D?"transparent":G?"var(--graview-panel-warning)":"var(--graview-panel)",color:D||G?"var(--graview-warn)":"var(--graview-ink)",boxShadow:D?void 0:"var(--graview-lift-low)"},children:[p.code,v&&!D?(0,N.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-3,right:-3,fontSize:"0.6875rem",lineHeight:1,color:"var(--graview-warn)"},children:"\u26A0"}):null]}):(0,N.jsxs)("span",{style:{display:"grid",gap:1,minWidth:0,maxWidth:180,padding:"5px 10px 6px",borderRadius:8,border:D?"1.5px dashed var(--graview-warn)":`1px solid ${G?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:D?"transparent":G?"var(--graview-panel-warning)":"var(--graview-panel)",boxShadow:D?void 0:"var(--graview-lift-low)"},children:[(0,N.jsxs)("span",{style:{fontSize:"0.8125rem",fontWeight:550,lineHeight:1.25,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:D||G?"var(--graview-warn)":"var(--graview-ink)"},children:[p.code,v&&!D?" \u26A0":null]}),D?(0,N.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.3,color:"var(--graview-warn)"},children:Ue}):(0,N.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:"0 8px",fontSize:"0.75rem",lineHeight:1.3},children:p.occupants.map(F=>(0,N.jsxs)("span",{...K(F),style:{whiteSpace:"nowrap",color:ve(F)},children:[F.label,l.has(F.id)?" \u26A0":""]},F.id))})]}),ae?D?(0,N.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:Ue}):p.occupants.map(F=>(0,N.jsxs)("span",{...K(F),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:ve(F)},children:[F.label,l.has(F.id)?" \u26A0":""]},F.id)):null]},p.id)},ge=i.zones??[],pe=ge.map((p,H)=>({label:p.label,slots:x.slots.filter(D=>D.y>=p.from&&(D.y<p.to||H===ge.length-1&&D.y<=p.to))})),T=new Set(pe.flatMap(p=>p.slots.map(H=>H.id))),$=x.slots.filter(p=>!T.has(p.id));($.length>0||pe.length===0)&&pe.push({label:"",slots:$});let V={boxSizing:"border-box",borderRadius:12,border:"1px solid var(--graview-edge)",background:"linear-gradient(var(--graview-panel-muted), var(--graview-panel-muted)), var(--graview-panel)",overflow:"hidden"};return(0,N.jsxs)(te,{title:n??"Board",meta:x.slots.length===0?void 0:x.empty.length===0?`all ${x.slots.length} filled`:`${x.empty.length} unfilled`,...P?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:[(0,N.jsxs)("div",{ref:R,style:{display:"flex",gap:28,alignItems:"stretch",justifyContent:"center",flex:"1 1 auto",minHeight:0},children:[P&&U?(0,N.jsxs)("div",{style:{width:260,flex:"0 0 auto",alignSelf:"center",display:"grid",gap:8},children:[(0,N.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"What is marked"}),U]}):null,ne?(0,N.jsx)("div",{"data-graview-primitive":"board","data-graview-arrange":"shelf",style:{...V,overflow:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"stretch",display:"grid",alignContent:"start"},children:pe.map((p,H)=>(0,N.jsxs)("section",{"data-graview-zone":p.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...H>0?{borderTop:"1px dashed var(--graview-edge)"}:{}},children:[p.label?(0,N.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:p.label}):null,p.slots.length>0?(0,N.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 12px",alignItems:"flex-start"},children:p.slots.map(D=>ee(D,{}))}):(0,N.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},p.label||`band-${H}`))}):(0,N.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...M?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!A&&ge.length>0?(0,N.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:ge.map(p=>(0,N.jsx)("span",{title:p.label,style:{position:"absolute",top:`${p.from*100}%`,height:`${(p.to-p.from)*100}%`,right:0,writingMode:"vertical-rl",transform:"rotate(180deg)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:p.label},p.label))}):null,(0,N.jsxs)("div",{"data-graview-primitive":"board","data-graview-arrange":"exact",style:{...V,position:"relative",aspectRatio:`${A?1/C:C}`,...M?{width:"100%",height:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"flex-start"}:{height:"100%",flex:"0 1 auto",...k!==null?{width:Math.round(k*(A?1/C:C))}:{}},maxWidth:"100%"},children:[ge.map(p=>(0,N.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",...A?{top:0,bottom:0,left:`${(1-p.to)*100}%`,width:`${(p.to-p.from)*100}%`,borderLeft:"1px dashed var(--graview-edge)"}:{left:0,right:0,top:`${p.from*100}%`,height:`${(p.to-p.from)*100}%`,borderBottom:"1px dashed var(--graview-edge)"}}},p.label)),A?ge.map(p=>(0,N.jsx)("span",{"aria-hidden":"true",title:p.label,style:{position:"absolute",bottom:3,left:`${(1-p.to)*100}%`,width:`${(p.to-p.from)*100}%`,textAlign:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:p.label},`label-${p.label}`)):null,x.slots.map(p=>ee(p,{position:"absolute",left:`${w(p.x,p.y).x*100}%`,top:`${w(p.x,p.y).y*100}%`,transform:"translate(-50%, -50%)",width:"max-content",maxWidth:"100%"}))]})]}),x.spare.length>0?(0,N.jsxs)("div",{style:{display:"grid",gap:6,alignContent:"start",minWidth:0},children:[(0,N.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"Not in"}),(0,N.jsx)(Ee,{pick:!0,max:10,items:x.spare.map(p=>({...p,emphasis:s.size===0?"plain":s.has(p.id)?"lit":"dimmed"}))})]}):null]}),P?null:U]})}function Bt(e){function t(n){let{store:r}=X(),a=Dn(He(r.graph,r.schema,n.nodes),r.graph.allEdges(),e,r.schema),d=[...a.slots.flatMap(c=>c.occupants.map(f=>f.id)),...a.spare.map(c=>c.id)].map(c=>r.graph.getNode(c)).filter(c=>c!==void 0),{arranged:m,bar:g}=Pe(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},subject:d}),y=(0,N.jsx)(Ar,{schema:r.schema,...n,options:e,...e.arranging===!1?{}:{occupants:m.nodes.map(c=>c.id)}});return Me(n,r.schema,g?(0,N.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[g,y]}):y)}return{name:"board",requiredRoles:[...Rr],options:e,View:t,build(n,r,a){return Dn(n,r,e,a)}}}var pn=_(De(),1);var Wt=864e5;function zn(e){if(typeof e!="string")return null;if(Rn(e))return An(e)?.day??null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:null}function sn(e){if(typeof e!="string")return null;if(Rn(e))return An(e)?.minutes??null;let t=/^\d{4}-\d{2}-\d{2}[T ](\d{2}):(\d{2})/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}var on=e=>Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),ln=e=>new Date(e).toISOString().slice(0,10);function we(e,t){return ln(on(e)+t*Wt)}function ze(e,t){let n=Number(e.slice(0,4)),r=Number(e.slice(5,7))-1+t,a=Number(e.slice(8,10)),i=new Date(Date.UTC(n,r+1,0)).getUTCDate();return ln(Date.UTC(n,r,Math.min(a,i)))}var Bn=e=>new Date(on(e)).getUTCDay();function Ge(e,t=1){let n=(Bn(e)-t+7)%7;return we(e,-n)}var Wn=e=>`${e.slice(0,7)}-01`;function oe(e,t){return Math.round((on(t)-on(e))/Wt)}function je(e,t){return Array.from({length:t},(n,r)=>we(e,r))}var It=e=>nt(e,"short"),Oe=e=>Zn(e,{weekday:"short"}),In=e=>Ke(e);function Be(e,t){let n=t?.fieldRoles?.when;return e&&!e.start&&n?{...e,start:n}:e}function Vt(e,t){return t===void 0?!1:typeof t=="string"?e[t]===!0:t.is.includes(e[t.field])}var dn=["start"],Er=["day","week","month","quarter","year","agenda"];function cn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:Er}function Ht(e,t){return e==="years"?t?.title??"Years":`The ${e}`}function Gt(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var Vn=class extends Error{constructor(n,r){super(`The calendar lens has no binding for ${r.map(a=>`"${a}"`).join(", ")} on "${n}". Bind them in the lens declaration: bindings: { ${n}: { start: "<field>" } }.`);this.kind=n;this.missing=r;this.name="CalendarBindingError"}};function gn(e,t,n){let r=Be(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,d=dn.filter(f=>{let x=r[f];return x?i?!(x in i):!(x in a):!0});if(d.length>0)throw new Vn(e.kind,d);let m=zn(a[r.start]);if(m===null)return null;let g=(r.end?zn(a[r.end]):null)??m,y=sn(a[r.start]),c=r.label?a[r.label]:void 0;return{id:e.id,kind:e.kind,label:typeof c=="string"&&c.length>0?c:he(n?.tryDefinition(e.kind),e),from:m,to:oe(m,g)<0?m:g,at:r.allDay&&a[r.allDay]===!0?null:y,allDay:r.allDay&&a[r.allDay]===!0||y===null,done:Vt(a,r.done)}}function jt(e,t,n,r){let a=gn(e,t,n);if(!a)return[];let i=Be(t[e.kind],n?.tryDefinition(e.kind)).start,d=e,m=d[i],g=d[at(i)];if(typeof m!="string"||!it(g))return[a];let y=oe(a.from,a.to);return("next"in r?[st(m,g,r.next)]:ot(m,g,{from:we(r.from,-y),to:r.to,limit:400})).map(f=>({...a,from:f.slice(0,10),to:we(f.slice(0,10),y),repeats:!0}))}function un(e,t){return e.filter(n=>oe(n.from,t)>=0&&oe(t,n.to)>=0).sort((n,r)=>n.allDay!==r.allDay?n.allDay?-1:1:n.at!==r.at?(n.at??0)-(r.at??0):n.label.localeCompare(r.label))}function _t(e,t,n){let r=lt(e.schema,e.allMutations()).get(t)?.get(n)??[],a=new Map(e.allMutations().map(d=>[d.name,d]));for(let d of r){let m=a.get(d),g=m?.subject;if(!m||!g)continue;let y=m.input?.shape??{};if(n in y)return{name:m.name,arg:g.arg}}let i=e.allMutations().find(d=>d.derived?.act==="edit"&&d.derived.kind===t);return i?.subject?{name:i.name,arg:i.subject.arg}:null}var Ft=(e,t)=>({from:Wn(e),to:qt(e),label:kn(e,{short:!0,year:t})});function qt(e){return ln(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function Mr(e){let t=Math.floor((Number(e.slice(5,7))-1)/3);return`${e.slice(0,4)}-${String(t*3+1).padStart(2,"0")}-01`}function Ut(e,t,n={}){let r=n.weekStartsOn??1,a=(g,y)=>({from:g,to:g,label:String(Number(g.slice(8,10))),...y?{outside:!0}:{}});if(e==="day")return{title:Oe(t),grain:"day",columns:1,cells:[a(t)]};if(e==="week"){let g=Ge(t,r);return{title:`${Oe(g)} \u2013 ${Oe(we(g,6))}`,grain:"day",columns:7,cells:je(g,7).map(y=>a(y))}}if(e==="agenda")return{title:`From ${Oe(t)}`,grain:"day",columns:1,cells:je(t,42).map(g=>a(g))};if(e==="quarter"){let g=Mr(t),y=qt(ze(g,2)),c=[];for(let f=Ge(g,r);oe(f,y)>=0;f=we(f,7))c.push({from:f,to:we(f,6),label:et(f),...oe(f,g)>0&&oe(we(f,6),g)>0?{outside:!0}:{}});return{title:`Q${Math.floor((Number(t.slice(5,7))-1)/3)+1} ${t.slice(0,4)}`,grain:"week",columns:4,cells:c}}if(e==="year"){let g=t.slice(0,4);return{title:g,grain:"month",columns:4,cells:Array.from({length:12},(y,c)=>Ft(`${g}-${String(c+1).padStart(2,"0")}-01`,!1))}}if(e==="years"){let g=Number(t.slice(0,4)),y=g+Math.max(1,n.horizon?.years??1)-1,c=n.horizon?.from!==void 0||n.horizon?.to!==void 0,f=c?n.horizon?.from??g:Math.min(g,n.fit?.first??g),s=(c?Math.max(f,n.horizon?.to??f+Math.max(1,n.horizon?.years??1)-1):Math.max(y,n.fit?.last??y))-f+1,l=Array.from({length:s},(h,o)=>String(f+o));return s>Pr?{title:`${n.horizon?.title??"Years"} \xB7 ${l[0]}\u2013${l[l.length-1]}`,grain:"year",columns:5,years:l,cells:l.map(h=>({from:`${h}-01-01`,to:`${h}-12-31`,label:h}))}:{title:`${n.horizon?.title??"Years"} \xB7 ${l[0]}\u2013${l[l.length-1]}`,grain:"month",columns:4,years:l,cells:l.flatMap(h=>Array.from({length:12},(o,b)=>Ft(`${h}-${String(b+1).padStart(2,"0")}-01`,!0)))}}let i=Wn(t),d=Ge(i,r),m=t.slice(0,7);return{title:kn(t),grain:"day",columns:7,cells:je(d,42).map(g=>a(g,g.slice(0,7)!==m))}}function Kt(e,t,n){return e.filter(r=>oe(r.from,n)>=0&&oe(t,r.to)>=0).sort((r,a)=>r.allDay!==a.allDay?r.allDay?-1:1:r.from!==a.from?r.from.localeCompare(a.from):r.at!==a.at?(r.at??0)-(a.at??0):r.label.localeCompare(a.label))}var Pr=10;function Yt(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var Qt=_(De(),1);var Q=_(J(),1);function Hn({label:e,glyph:t,onPress:n}){return(0,Q.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:_e,children:t})}var _e={minHeight:24,minWidth:24,padding:"2px 9px",borderRadius:6,fontSize:"0.8125rem",borderWidth:1,borderStyle:"solid",borderColor:"transparent",color:"var(--graview-ink-muted)",background:"transparent"},Jt={day:12,week:4,month:3,year:5};function Xt({span:e,weekStartsOn:t,entries:n,today:r,perCell:a,emphasisOf:i,broken:d,hue:m,onOpen:g,onMove:y}){let c=(0,Qt.useRef)(null),f=Ve(c),x=f===null?e.columns:Math.max(1,Math.floor(f/44)),s=x<e.columns,l=s?x:e.columns,h=!s&&e.grain==="day"&&e.columns===7?je(Ge(e.cells[0]?.from??r,t),7):e.grain==="day"&&e.columns===1?e.cells.map(o=>o.from):null;return s&&e.grain==="day"&&e.columns>1?(0,Q.jsx)("div",{ref:c,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,Q.jsx)(mn,{days:e.cells.map(o=>o.from),entries:n,today:r,emphasisOf:i,broken:d,hue:m,onMove:(o,b)=>y(o,{from:b,to:b,label:b},"day")})}):(0,Q.jsxs)("div",{ref:c,"data-calendar-shape":s?"wrapped":"grid",style:{display:"grid",gap:4,gridTemplateRows:h?"auto 1fr":"1fr",minHeight:0,flex:1},children:[h?(0,Q.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`,gap:4},children:h.map(o=>(0,Q.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?It(Bn(o)):Oe(o)},o))}):null,(0,Q.jsx)("div",{tabIndex:0,"aria-label":`The days of ${e.title}`,style:{display:"grid",gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`,gridAutoRows:"max-content",gap:4,minHeight:0,overflow:"auto"},children:e.cells.map((o,b)=>{let C=Kt(n,o.from,o.to),R=C.slice(0,a),A=C.slice(a),S=A.filter(u=>d.has(u.id)).length,k=oe(o.from,r)>=0&&oe(r,o.to)>=0;return(0,Q.jsxs)("div",{"data-calendar-day":e.grain==="day"?o.from:void 0,"data-calendar-cell":o.from,"data-calendar-grain":e.grain,"data-calendar-count":C.length,"data-calendar-outside":o.outside||void 0,onDragOver:u=>{u.dataTransfer.types.includes("text/graview-node")&&(u.preventDefault(),u.dataTransfer.dropEffect="move")},onDrop:u=>{let E=u.dataTransfer.getData("text/graview-node");E&&(u.preventDefault(),u.stopPropagation(),y(E,o,e.grain))},style:{minHeight:62,display:"flex",flexDirection:"column",gap:2,padding:4,borderRadius:7,border:"1px solid var(--graview-edge)",background:k?"var(--graview-panel)":o.outside?"var(--graview-panel-muted)":"transparent"},children:[(0,Q.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,Q.jsx)("span",{style:{fontSize:"0.75rem",fontVariantNumeric:"tabular-nums",color:k?"var(--graview-accent)":"var(--graview-ink-faint)"},children:o.label}),e.grain!=="day"&&C.length>0?(0,Q.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:C.length}):null]}),R.map(u=>(0,Q.jsx)(Zt,{entry:u,cell:o,rowStart:b%l===0,emphasis:i(u.id),flagged:d.has(u.id),hue:m(u)},`${u.id}:${u.from}:${o.from}`)),A.length>0?(0,Q.jsxs)("button",{type:"button","data-testid":`calendar-more-${o.from}`,onClick:()=>g(o),title:`Open ${o.label}`,style:{minHeight:24,padding:"1px 5px",fontSize:"0.75rem",borderRadius:5,border:"1px dashed var(--graview-edge)",background:"transparent",color:S>0?"var(--graview-warn)":"var(--graview-ink-muted)",textAlign:"left"},children:["+",A.length," more",S>0?` \xB7 ${S} flagged`:""]}):null]},o.from)})})]})}function mn({days:e,entries:t,today:n,emphasisOf:r,broken:a,hue:i,onMove:d}){let m=e.map(g=>({day:g,here:un(t,g)})).filter(({here:g})=>g.length>0);return m.length===0?(0,Q.jsx)("p",{"data-testid":"calendar-empty",style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-muted)"},children:"Nothing is scheduled in the next six weeks."}):(0,Q.jsx)("ol",{tabIndex:0,"aria-label":"What is scheduled",style:{margin:0,padding:0,listStyle:"none",display:"grid",alignContent:"start",gap:10,overflow:"auto",minHeight:0},children:m.map(({day:g,here:y})=>(0,Q.jsxs)("li",{"data-calendar-day":g,onDragOver:c=>{c.dataTransfer.types.includes("text/graview-node")&&(c.preventDefault(),c.dataTransfer.dropEffect="move")},onDrop:c=>{let f=c.dataTransfer.getData("text/graview-node");f&&(c.preventDefault(),c.stopPropagation(),d(f,g))},style:{display:"grid",gap:4},children:[(0,Q.jsxs)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:g===n?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[Oe(g),g===n?" \xB7 today":""]}),y.map(c=>(0,Q.jsx)(Zt,{entry:c,cell:{from:g,to:g,label:g},emphasis:r(c.id),flagged:a.has(c.id),hue:i(c)},`${c.id}:${c.from}:${g}`))]},g))})}function Zt({entry:e,cell:t,emphasis:n,flagged:r,hue:a,rowStart:i=!1}){let d=oe(t.from,e.from)>=0,m=oe(e.to,t.to)>=0,g=!(d&&m),y=e.at!==null&&d&&e.from===t.from?`${In(e.at)} ${e.label}`:e.label;return(0,Q.jsx)("span",{"data-graview-pick":e.id,"data-calendar-entry":e.id,"data-calendar-repeat":e.repeats?e.from:void 0,draggable:!e.repeats,onDragStart:c=>{c.dataTransfer.setData("text/graview-node",e.id),c.dataTransfer.effectAllowed="move"},"data-graview-emphasis":n,"data-calendar-part":g?d?"opens":m?"closes":"through":void 0,"data-calendar-in":t.from,title:g?`${e.label} \xB7 ${e.from} \u2013 ${e.to}`:`${e.label}${e.at===null?" \xB7 all day":` \xB7 ${In(e.at)}`}${e.repeats?" \xB7 repeats":""}`,style:{display:"block",minHeight:24,boxSizing:"border-box",padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.35,borderRadius:g?d?"5px 0 0 5px":m?"0 5px 5px 0":0:5,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textDecoration:e.done?"line-through":"none",opacity:n==="dimmed"?.35:e.done?.6:1,background:`color-mix(in oklab, hsl(${Math.round(a)} 70% 55%) ${n==="lit"?38:20}%, transparent)`,color:"var(--graview-ink)",...n==="lit"?{outline:"1px solid var(--graview-accent)"}:{},...r?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:d||i?e.repeats?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),y]}):y:" "})}var q=_(J(),1);function Lr(e){let t=1/0,n=-1/0;for(let r of e)r&&(t=Math.min(t,Number(r.from.slice(0,4))),n=Math.max(n,Number(r.to.slice(0,4))));return Number.isFinite(t)&&Number.isFinite(n)?{first:t,last:n}:void 0}function er(e){let t=n=>function(a){let{store:i}=X(),{view:d}=Je(),m=n?{...e,range:n}:e,g=d.within?.range??m.range??"month",y=Object.keys(e.bindings),{nodes:c,arranged:f,arrangement:x,bar:s}=Pe(a,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{sort:!1,group:g==="agenda"},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...y[0]?{kind:(a.nodes??[]).find(C=>y.includes(String(C.kind)))?.kind??y[0]}:{}}),l=g==="agenda"&&f.grouped&&x.group?f.groups.map(C=>({label:C.label,ids:new Set(C.nodes.map(R=>R.id))})):void 0,h=new Set((a.nodes??[]).map(C=>String(C.kind))),o=y.filter(C=>!h.has(C)&&i.schema.tryDefinition(C)!==void 0).flatMap(C=>{let R=i.schema.tryDefinition(C);return i.graph.nodesOfKind(C).filter(A=>d.past===!0||We(R,A))}),b=o.length===0?c:[...c,...a.budget!==void 0?o.slice(0,a.budget):o];return Me(a,i.schema,(0,q.jsx)(Tr,{schema:i.schema,...a,nodes:b,options:{...m,today:m.today??i.today()??Gt()},...s?{bar:s}:{},...l?{groups:l}:{}}))};return{name:"calendar",requiredRoles:[...dn],bindings:e.bindings,options:e,View:t(),at:n=>t(n),ranges:()=>cn(e).map(n=>({range:n,title:Ht(n,e.horizon)})),place:(n,r)=>n.map(a=>gn(a,e.bindings,r)).filter(a=>a!==null)}}function Tr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:d=[],implicated:m=[],flagged:g=[],bar:y,groups:c}){let{view:f,go:x}=Je(),{store:s,principal:l}=X(),h=f.within?.at??a.today,o=f.within?.range??a.range??"month",b=a.weekStartsOn??1,C=new Set([...m,...d]),R=$=>C.size===0?"plain":C.has($)?"lit":"dimmed",A=new Set(g),S=o==="years"&&f.within?.at===void 0?Lr((e??[]).map($=>gn($,a.bindings,i))):void 0,k=Ut(o,h,{weekStartsOn:b,...a.horizon?{horizon:a.horizon}:{},...S?{fit:S}:{}}),E=n==="glyph"||n==="summary"?{next:a.today}:{from:k.cells[0]?.from??h,to:k.cells[k.cells.length-1]?.to??h},M=(e??[]).flatMap($=>jt($,a.bindings,i,E)),B=a.hueOf??($=>de($.kind));if(n==="glyph")return(0,q.jsx)(ye,{label:`${t??"Calendar"} \xB7 ${M.length}`,hue:de("calendar")});if(n==="summary"){let $=un(M,a.today);return(0,q.jsx)(te,{title:t??"Calendar",meta:`${M.length} dated`,tone:"muted",children:(0,q.jsx)(Ee,{max:6,items:$.length>0?$.map(V=>({id:V.id,label:V.label,hue:B(V)})):M.filter(V=>oe(a.today,V.from)>=0).sort((V,p)=>V.from.localeCompare(p.from)).slice(0,6).map(V=>({id:V.id,label:`${V.from.slice(5)} ${V.label}`,hue:B(V)}))})})}let w=r==="fullscreen",[W,P]=(0,pn.useState)(null),U=($,V,p)=>{let H=s.graph.getNode($);if(!H)return;let D=Be(a.bindings[H.kind],s.schema.tryDefinition(H.kind));if(!D)return;let j=_t(s,H.kind,D.start);if(!j){P({text:`Nothing declared writes the ${Cn(s.schema.definitions.find(K=>K.kind===H.kind),D.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let v=V.from,O=H[D.start],ie=sn(O)===null?v:`${v}${String(O).slice(10)}`,se={name:j.name,args:{[j.arg]:$,[D.start]:ie}},ue=s.permits(se,l);if(!ue.ok){P({text:ue.refusal.message,tone:"refused"});return}try{s.apply(se,{author:l}),P(p==="day"?null:{text:`Moved to ${Oe(v)} \u2014 a ${p} is coarser than the ${Cn(s.schema.definitions.find(K=>K.kind===H.kind),D.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(K){P({text:K instanceof Error?K.message:String(K),tone:"refused"})}},ne=$=>{let V=o==="years"?ze(`${k.years?.[0]??h.slice(0,4)}${h.slice(4)}`,$*12*Math.max(1,k.years?.length??a.horizon?.years??1)):o==="year"?ze(h,$*12):o==="quarter"?ze(h,$*3):o==="month"?ze(h,$):o==="week"?we(h,$*7):we(h,$);x(Qe(f,"at",V))},ae=($,V)=>{let p=Qe(f,"range",$);V!==void 0&&(p=Qe(p,"at",V)),x(p)},ee=(0,pn.useRef)(null),ge=Ve(ee),pe=ge!==null&&ge<420,T=$=>$==="years"?a.horizon?.title??"years":$.charAt(0).toUpperCase()+$.slice(1);return(0,q.jsx)(te,{title:t??"Calendar",meta:k.title,style:{gap:10,...w?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,q.jsxs)("div",{ref:ee,"data-testid":"calendar","data-calendar-range":o,"data-calendar-at":h,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,gap:8},children:[(0,q.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6},children:[(0,q.jsxs)("nav",{"aria-label":"When",style:{display:"flex",gap:4},children:[(0,q.jsx)(Hn,{label:"Previous",glyph:"\u2039",onPress:()=>ne(-1)}),(0,q.jsx)("button",{type:"button","data-testid":"calendar-today",onClick:()=>x(Qe(f,"at",a.today)),style:_e,children:"Today"}),(0,q.jsx)(Hn,{label:"Next",glyph:"\u203A",onPress:()=>ne(1)})]}),pe?(0,q.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:o,onChange:$=>ae($.target.value),style:{..._e,borderRadius:999,borderColor:"var(--graview-edge)",background:void 0,backgroundColor:"transparent",marginLeft:"auto",maxWidth:"50%",paddingRight:24,appearance:"none",WebkitAppearance:"none",backgroundImage:"linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%)",backgroundPosition:"calc(100% - 13px) 55%, calc(100% - 9px) 55%",backgroundSize:"4px 4px, 4px 4px",backgroundRepeat:"no-repeat"},children:cn(a).map($=>(0,q.jsx)("option",{value:$,children:T($)},$))}):(0,q.jsx)("div",{role:"group","aria-label":"Range","data-testid":"calendar-ranges",style:{display:"flex",flexWrap:"wrap",gap:4,marginLeft:"auto"},children:cn(a).map($=>(0,q.jsx)("button",{type:"button","aria-pressed":$===o,"data-testid":`calendar-range-${$}`,onClick:()=>ae($),style:{..._e,borderRadius:999,borderColor:"var(--graview-edge)",...$==="years"?{}:{textTransform:"capitalize"},...$===o?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)",background:"var(--graview-panel)"}:{}},children:$==="years"?a.horizon?.title??"years":$},$))})]}),W?(0,q.jsx)("p",{"data-testid":W.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:W.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:W.text}):null,k.years?(0,q.jsx)("nav",{"aria-label":"Years","data-testid":"calendar-years",style:{display:"flex",flexWrap:"wrap",gap:4},children:k.years.map($=>(0,q.jsx)("button",{type:"button","data-testid":`calendar-year-${$}`,onClick:()=>ae("year",`${$}-01-01`),style:_e,children:$},$))}):null,y,o==="agenda"&&c?(0,q.jsx)("div",{"data-testid":"calendar-groups",style:{display:"grid",gap:10,minHeight:0,overflow:"auto"},children:c.map($=>(0,q.jsxs)("section",{"data-testid":"calendar-group",style:{display:"grid",gap:4},children:[(0,q.jsxs)("h3",{style:{margin:0,fontSize:"0.8125rem",letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},children:[$.label," ",(0,q.jsx)("span",{style:{fontWeight:400},children:$.ids.size})]}),(0,q.jsx)(mn,{days:k.cells.map(V=>V.from),entries:M.filter(V=>$.ids.has(V.id)),today:a.today,emphasisOf:R,broken:A,hue:B,onMove:(V,p)=>U(V,{from:p,to:p,label:p},"day")})]},$.label))}):o==="agenda"?(0,q.jsx)(mn,{days:k.cells.map($=>$.from),entries:M,today:a.today,emphasisOf:R,broken:A,hue:B,onMove:($,V)=>U($,{from:V,to:V,label:V},"day")}):(0,q.jsx)(Xt,{span:k,weekStartsOn:b,entries:M,today:a.today,perCell:a.perCell??Jt[k.grain],emphasisOf:R,broken:A,hue:B,onOpen:$=>ae(Yt(k.grain),$.from),onMove:U})]})})}var ce=_(De(),1);var I=_(J(),1),Nr=`
4
- .graview-columns { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
5
- .graview-columns-column { flex: 1 1 13rem; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 8px; border-radius: 10px; border: 1px solid var(--graview-edge); background: color-mix(in srgb, var(--graview-panel) 60%, transparent); }
6
- .graview-columns-column[data-droppable="true"] { border-color: var(--graview-accent); }
7
- .graview-columns-column[data-over="true"] { background: color-mix(in srgb, var(--graview-accent) 10%, transparent); }
8
- .graview-columns-heading { margin: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 0.875rem; font-weight: 600; color: var(--graview-ink); }
9
- .graview-columns-count { font-weight: 400; color: var(--graview-ink-muted); font-variant-numeric: tabular-nums; }
10
- .graview-columns-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
11
- .graview-columns-empty { margin: 0; font-size: 0.8125rem; color: var(--graview-ink-muted); }
12
- .graview-columns-card[draggable="true"] { cursor: grab; }
13
- .graview-columns-move { position: relative; z-index: ${Ce.raised}; display: flex; justify-content: flex-end; margin-top: 4px; }
14
- .graview-columns-move[data-open="true"] { z-index: ${Ce.over}; }
15
- .graview-columns-move > button, .graview-columns-menu button, .graview-columns-said button { font: inherit; font-size: 0.8125rem; min-height: 28px; padding: 2px 10px; border-radius: 7px; border: 1px solid var(--graview-edge); background: var(--graview-panel); color: var(--graview-ink); cursor: pointer; }
16
- .graview-columns-move > button:focus-visible, .graview-columns-menu button:focus-visible, .graview-columns-said button:focus-visible { outline: 2px solid var(--graview-accent); outline-offset: 2px; }
17
- .graview-columns-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: ${Ce.over}; display: flex; flex-direction: column; gap: 4px; padding: 6px; min-width: 10rem; border-radius: 9px; border: 1px solid var(--graview-edge); background: var(--graview-panel); box-shadow: 0 6px 18px rgb(0 0 0 / 0.18); }
18
- .graview-columns-menu button { text-align: left; }
19
- .graview-columns-said { margin: 0 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--graview-ink); }
20
- .graview-columns-said[data-tone="refused"] { color: var(--graview-warn); }
21
- .graview-columns-card[data-graview-choose] { position: relative; }
22
- .graview-columns-card .graview-choose-at { position: absolute; top: 6px; right: 6px; z-index: ${Ce.raised}; display: flex; }
23
- [data-graview-choosable] { outline: none; }
24
- @media (pointer: coarse) { [data-graview-choosable]:not([data-graview-choosing]) .graview-columns-card .graview-choose-at { display: none; } }
25
- `;function nr(e){function t(n){let{store:r}=X();gt();let a=Object.keys(e.bindings).filter(l=>r.schema.tryDefinition(l)!==void 0),i=n.nodes??[],d=new Set(i.map(l=>String(l.kind))),m=l=>r.graph.nodesOfKind(l).filter(h=>We(r.schema.tryDefinition(l),h)),g=n.total!==void 0&&n.total>i.length,y=a.map(l=>{let h=e.bindings[l].column,o=Rt(r.schema,l,h),b=(A,S)=>S==="label"?he(r.schema.tryDefinition(A.kind),A):A[S],C=Ye(d.has(l)?i.filter(A=>A.kind===l):m(l).slice(0,n.budget??1/0),e.sort,b),R=d.has(l)&&!g?C:m(l);return{kind:l,field:h,columns:o.map(A=>({column:A,cards:C.filter(S=>Ln(S,h,o)===A.value),count:R.filter(S=>Ln(S,h,o)===A.value).length})).filter(A=>A.column.value!==null||A.count>0)}}),c=y.reduce((l,h)=>l+h.columns.reduce((o,b)=>o+b.count,0),0),f=n.label??"Board",x=a[0];if(n.fidelity==="glyph")return(0,I.jsx)(ye,{label:`${f} \xB7 ${c}`,hue:de("columns")});if(n.fidelity==="summary")return(0,I.jsx)(te,{title:f,meta:x?Ie(r.schema,x,c):String(c),tone:"muted",children:(0,I.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:y.flatMap(l=>l.columns.map(h=>`${h.column.label} ${h.count}`)).join(" \xB7 ")})});let s=(0,I.jsx)(Dr,{boards:y,title:f});return Me(n,r.schema,n.mode==="fullscreen"?(0,I.jsx)("div",{style:{padding:"14px 16px"},children:s}):(0,I.jsx)(te,{title:f,meta:x?Ie(r.schema,x,c):void 0,children:s}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function Dr({boards:e,title:t}){let{store:n,principal:r}=X(),a=(0,ce.useRef)(null),[i,d]=(0,ce.useState)(null),[m,g]=(0,ce.useState)(null),[y,c]=(0,ce.useState)(null),[f,x]=(0,ce.useState)(null);(0,ce.useLayoutEffect)(()=>{if(!f)return;a.current?.querySelector(f)?.focus(),x(null)});let s=S=>{let k=n.graph.getNode(S);return k?he(n.schema.tryDefinition(k.kind),k):S},l=(0,ce.useMemo)(()=>e.flatMap(S=>S.columns.flatMap(k=>k.cards.map(u=>u.id))),[e]),h=Et(l),o=(0,ce.useMemo)(()=>n.permittedMutations(r).some(S=>{let k=S.subject?.kinds;return k!==void 0&&(k==="*"||e.some(u=>k.includes(u.kind)))}),[n,r,e]),b=S=>{h.choose(S),requestAnimationFrame(()=>{((S[0]===void 0?null:a.current?.querySelector(`[data-graview-choose-box="${Gn(S[0])}"]`))??a.current)?.focus({preventScroll:!0})})},C=(S,k)=>At(n,r,S,k.field,k.columns.map(u=>u.column)),R=(S,k,u,E)=>{try{let M=n.apply(k.call,{author:r});d({text:`Moved \u201C${s(S)}\u201D to ${u}.`,tone:"moved",batch:M.batch,id:S}),E==="keyboard"&&x(`[data-columns-move="${Gn(S)}"] > button`)}catch(M){d({text:M instanceof Error?M.message:String(M),tone:"refused"})}},A=()=>{if(i?.batch)try{n.undo(i.batch,{author:r}),d({text:`\u201C${s(i.id??"")}\u201D is back where it was.`,tone:"moved"}),i.id&&x(`[data-columns-move="${Gn(i.id)}"] > button`)}catch(S){d({text:S instanceof Error?S.message:String(S),tone:"refused"})}};return(0,I.jsxs)("div",{"data-testid":"columns-lens",...o?{...h.listProps,tabIndex:-1,role:"group","aria-label":h.chosen.length>0?`${t}, ${h.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:S=>{a.current=S,h.list.current=S},children:[(0,I.jsx)("style",{children:Nr}),o?(0,I.jsx)("style",{children:Mt}):null,(0,I.jsxs)("p",{className:"graview-columns-said",role:"status","data-tone":i?.tone,"data-testid":"columns-said",style:i?void 0:{position:"absolute",width:1,height:1,overflow:"hidden",clipPath:"inset(50%)"},children:[i?(0,I.jsx)("span",{children:i.text}):null,i?.batch?(0,I.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:A,children:"Undo"}):null]}),e.map(S=>(0,I.jsx)("section",{"data-columns-kind":S.kind,"aria-label":`${tt(n.schema,S.kind)} by ${S.field}`,children:(0,I.jsx)("div",{className:"graview-columns",children:S.columns.map(({column:k,cards:u,count:E})=>{let M=k.value??"",B=m!==null&&k.value!==null&&m.to.includes(k.value);return(0,I.jsxs)("section",{className:"graview-columns-column","data-graview-column":M,"data-droppable":B||void 0,"data-over":B&&y===M||void 0,"aria-label":`${t} \xB7 ${k.label}, ${E}`,"data-graview-named-by-lens":"",onDragOver:w=>{B&&(w.preventDefault(),w.dataTransfer.dropEffect="move",c(M))},onDragLeave:()=>c(w=>w===M?null:w),onDrop:w=>{let W=w.dataTransfer.getData("text/graview-node"),P=n.graph.getNode(W);if(c(null),g(null),!P||k.value===null)return;let U=C(P,S).find(ne=>ne.to===k.value);U&&(w.preventDefault(),w.stopPropagation(),R(W,U,k.label,"drag"))},children:[(0,I.jsxs)("h3",{className:"graview-columns-heading",children:[(0,I.jsx)("span",{children:k.label}),(0,I.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:E})]}),u.length===0?(0,I.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,I.jsx)("ul",{className:"graview-columns-cards",children:(0,I.jsx)(Lt.Provider,{value:k.value===null?null:{field:S.field,values:[k.value,k.label]},children:u.map(w=>{let W=C(w,S);return(0,I.jsx)(zr,{card:w,moves:W,...o?{choosing:h}:{},labelOf:P=>S.columns.find(U=>U.column.value===P)?.column.label??P,onMove:(P,U)=>R(w.id,P,U,"keyboard"),onDrag:P=>g(P?{id:w.id,to:W.map(U=>U.to)}:null)},w.id)})})})]},M)})})},S.kind)),o?(0,I.jsx)(Pt,{store:n,chosen:h.chosen,principal:r,anchor:()=>a.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:l.length,onChooseAll:()=>h.choose(l),onClear:h.clear,onActed:b}):null]})}var Gn=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function zr({card:e,moves:t,labelOf:n,onMove:r,onDrag:a,choosing:i}){let{store:d,views:m}=X(),[g,y]=(0,ce.useState)(!1),c=(0,ce.useRef)(null),f=(0,ce.useRef)(null),x=he(d.schema.tryDefinition(e.kind),e),s=m.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,ce.useLayoutEffect)(()=>{g&&c.current?.querySelector("button")?.focus()},[g]);let l=()=>{y(!1),f.current?.focus()},h=o=>{let b=[...c.current?.querySelectorAll("button")??[]],C=b.indexOf(document.activeElement);o.key==="Escape"?(o.preventDefault(),o.stopPropagation(),l()):(o.key==="ArrowDown"||o.key==="ArrowUp")&&(o.preventDefault(),o.stopPropagation(),b[(C+(o.key==="ArrowDown"?1:b.length-1))%b.length]?.focus())};return(0,I.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card",...i?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onDragStart:o=>{t.length!==0&&(o.dataTransfer.setData("text/graview-node",e.id),o.dataTransfer.effectAllowed="move",a(!0))},onDragEnd:()=>a(!1),children:[(0,I.jsx)(Tt,{node:e,label:x}),s?(0,I.jsx)(ct,{mode:"scene",children:(0,I.jsx)(mt.Provider,{value:x,children:(0,I.jsx)(s,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})})}):(0,I.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:x}),i?(0,I.jsx)("span",{className:"graview-choose-at",children:(0,I.jsx)("input",{...i.boxProps(e.id,x),onPointerEnter:Tn,onFocus:Tn})}):null,t.length>0?(0,I.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":g||void 0,onBlur:o=>{o.currentTarget.contains(o.relatedTarget)||y(!1)},children:[(0,I.jsx)("button",{ref:f,type:"button","aria-haspopup":"menu","aria-expanded":g,"aria-label":`Move \u201C${x}\u201D to another column`,"data-testid":"columns-move",onClick:()=>y(o=>!o),children:"Move\u2026"}),g?(0,I.jsx)("div",{ref:c,role:"menu","aria-label":`Move \u201C${x}\u201D to`,className:"graview-columns-menu",onKeyDown:h,onMouseDown:o=>o.preventDefault(),children:t.map(o=>(0,I.jsx)("button",{type:"button",role:"menuitem","data-columns-to":o.to,title:o.title,onClick:()=>{y(!1),r(o,n(o.to))},children:n(o.to)},o.to))}):null]}):null]})}var be=_(De(),1);var z=_(J(),1),Br=["rows","columns","link"],Xe=class extends Error{constructor(n,r){super(`${n}
26
- ${r}`);this.hint=r;this.name="CoverageBindingError"}},jn=(e,t)=>t&&e[t]!==void 0?String(e[t]):"",Wr=40,Ir=24;function Vr(e,t={}){let n=t.rows??Wr,r=t.columns??Ir;if(e.rows.length<=n&&e.columns.length<=r)return e;let a=new Map;for(let c of e.cells)a.set(c.rowId,(a.get(c.rowId)??0)+1),a.set(`col:${c.columnId}`,(a.get(`col:${c.columnId}`)??0)+1);let i=(c,f,x)=>{if(c.length<=f)return c;let s=new Set(c.map((l,h)=>({item:l,index:h,count:a.get(x(l))??0})).sort((l,h)=>h.count-l.count||l.index-h.index).slice(0,f).map(l=>l.item.id));return c.filter(l=>s.has(l.id))},d=i(e.rows,n,c=>c.id),m=i(e.columns,r,c=>`col:${c.id}`),g=new Set(d.map(c=>c.id)),y=new Set(m.map(c=>c.id));return{...e,rows:d,columns:m,cells:e.cells.filter(c=>g.has(c.rowId)&&y.has(c.columnId)),of:{rows:e.rows.length,columns:e.columns.length}}}function or(e,t,n,r){let a=u=>u,i=u=>r?he(r.tryDefinition(u.kind),u):String(a(u).label??u.id),d=r?[n.rows,n.columns].filter(u=>r.tryDefinition(u)===void 0):[];if(d.length>0)throw new Xe(`No kind is declared for ${d.map(u=>`"${u}"`).join(" or ")}.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');if(r&&typeof n.link!="string"){let u=$n(r,n.columns,n.link.path);if(!u.ok||!u.reached.has(n.rows)){let E=$n(r,n.columns,[...n.link.path].reverse());throw new Xe(E.ok&&E.reached.has(n.rows)?`The path runs from the ${n.rows} to the ${n.columns}; it is walked from the columns.`:`The path [${n.link.path.join(", ")}] cannot get from a ${n.columns} to a ${n.rows}.`,`Name it column end first: link: { path: [${[...n.link.path].reverse().map(M=>JSON.stringify(M)).join(", ")}] }`)}}let m=e.filter(u=>u.kind===n.rows),g=e.filter(u=>u.kind===n.columns);if(!r&&m.length===0&&g.length===0)throw new Xe(`Nothing to lay out: no "${n.rows}" and no "${n.columns}" nodes.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');let y=n.groupOrder??[],c=u=>{let E=y.indexOf(u);return E===-1?y.length:E},f=n.badge?t.filter(u=>u.kind===n.badge.edge):[],x=new Set(m.map(u=>u.id)),s=new Set(g.map(u=>u.id)),l=[];if(typeof n.link=="string"){let u=n.link,E=t.filter(P=>P.kind===u),M=P=>r?.tryDefinition?.(P)?.edges?.[u]?.to,B=(M(n.columns)??[]).some(P=>P===n.rows||P==="*"),w=(M(n.rows)??[]).some(P=>P===n.columns||P==="*"),W=B||!w;for(let P of E){let U=W?P.to:P.from,ne=W?P.from:P.to;x.has(U)&&s.has(ne)&&l.push({rowId:U,columnId:ne})}}else{let u=new Map;for(let M of new Set(n.link.path))u.set(M,new Map);for(let M of t){let B=u.get(M.kind);if(!B)continue;let w=B.get(M.from);w?w.push(M.to):B.set(M.from,[M.to]);let W=B.get(M.to);W?W.push(M.from):B.set(M.to,[M.from])}let E=new Set;for(let M of g){let B=[{id:M.id,via:[]}];for(let w of n.link.path){let W=[],P=new Set,U=u.get(w);for(let ne of B)for(let ae of U.get(ne.id)??[])P.has(`${ne.id}|${ae}`)||(P.add(`${ne.id}|${ae}`),W.push({id:ae,via:[...ne.via,ne.id]}));B=W}for(let w of B){if(!x.has(w.id))continue;let W=`${w.id}|${M.id}`;E.has(W)||(E.add(W),l.push({rowId:w.id,columnId:M.id,via:w.via.slice(1)}))}}}let h=new Set(n.requiredGroups??[]),o=n.requiredVia?new Set(t.filter(u=>u.kind===n.requiredVia.edge).map(u=>u.to)):null,b=new Set(l.map(u=>u.rowId)),C=new Set(l.map(u=>u.columnId)),R=new Set(f.map(u=>u.to)),A=(u,E)=>E==="label"?i(u):a(u)[E],S=Ye(m,n.sort,A).map(u=>{let E=a(u),M=jn(E,n.rowGroup);return{id:u.id,ref:jn(E,n.rowRef),label:i(u),group:M,required:o?o.has(u.id):h.size===0||h.has(M),covered:b.has(u.id),badged:R.has(u.id)}}).sort((u,E)=>c(u.group)-c(E.group)||(n.sort!==void 0?0:u.ref<E.ref?-1:u.ref>E.ref?1:0)),k=Ye(g,n.columnSort,A).map(u=>({id:u.id,label:i(u),used:C.has(u.id),group:jn(a(u),n.columnGroup)})).sort((u,E)=>u.group<E.group?-1:u.group>E.group?1:n.columnSort!==void 0?0:u.id<E.id?-1:u.id>E.id?1:0).map(({group:u,...E})=>E);return{rows:S,columns:k,cells:l,gaps:S.filter(u=>u.required&&!u.covered).map(u=>u.id),unasked:k.filter(u=>!u.used).map(u=>u.id)}}var tr=316,_n=58,Fn=176,Hr=Math.sin(_n*Math.PI/180),Gr=Math.cos(_n*Math.PI/180),jr=e=>{let t=e.reduce((r,a)=>Math.max(r,a.length),0),n=Math.min(Fn,Math.max(46,t*5.4+12));return Math.ceil(n*Hr)+8},rr=Math.ceil(Fn*Gr),ar=(e,t)=>tn(e,t).toLowerCase(),sr=(e,t)=>rn(e.tryDefinition(t),t);function _r(e,t,n){return t.rows===t.columns?`${e} with none across`:`${Ie(n,t.rows,e)} with no ${sr(n,t.columns)}`}function Fr(e,t,n){return t.rows===t.columns?`${e} with none down`:`${Ie(n,t.columns,e)} on no ${sr(n,t.rows)}`}function qr({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,implicated:d=[],flagged:m=[],budget:g,rowsKept:y}){let{store:c}=X(),f=Xr(),x=(0,be.useRef)(null),s=Ve(x),[l,h]=(0,be.useState)(null),o=or(He(c.graph,c.schema,e).filter(w=>w.kind===a.rows||w.kind===a.columns).filter(w=>y===void 0||a.rows===a.columns||w.kind!==a.rows||y.has(w.id)),c.graph.allEdges(),a,i),b=n==="full"?Vr(o,g!==void 0?{rows:g,columns:g}:{}):o,C=typeof a.link=="string"?a.link:void 0,R=y!==void 0&&o.cells.length===0&&o.columns.length>0&&(C===void 0||c.graph.allEdges().some(w=>w.kind===C))?void 0:dt(c.schema,a,{rows:o.rows.length,columns:o.columns.length,cells:o.cells.length});if(n==="glyph")return(0,z.jsx)(ye,{label:`${t??"Coverage"} \xB7 ${R?"nothing linked":b.gaps.length===0?"complete":`${b.gaps.length} missing`}`,hue:de("coverage")});if(R)return(0,z.jsx)(te,{title:t??"Coverage",tone:"muted",fit:!0,...r==="fullscreen"?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:(0,z.jsx)("p",{"data-coverage-unlinked":"",style:{margin:0,color:"var(--graview-ink-muted)"},children:R})});if(n==="summary"){let w=b.rows.filter(W=>b.gaps.includes(W.id));return(0,z.jsxs)(te,{title:t??"Coverage",meta:`${b.rows.length-b.gaps.length}/${b.rows.length}`,tone:b.gaps.length>0?"warning":"muted",fit:!0,children:[(0,z.jsx)(Jr,{grid:b}),w.length>0?(0,z.jsx)(Ee,{pick:!0,max:4,items:w.map(W=>({id:W.id,label:W.ref||W.label}))}):null]})}let A=new Set(d),S=new Set(m),k=l!==null&&l.every(w=>A.has(w))?l:null,u=r==="fullscreen",E=jr(b.columns.map(w=>w.label)),M=s===null?tr:Math.max(96,Math.min(tr,Math.round(s*.36))),B=s!==null&&(s<420||M+b.columns.length*28+rr>s);return(0,z.jsx)(te,{title:t??"Coverage",...u?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},meta:b.rows.length===0||b.columns.length===0?void 0:b.gaps.length===0&&b.unasked.length===0?"complete":[b.gaps.length>0?_r(b.gaps.length,a,c.schema):"",b.unasked.length>0?Fr(b.unasked.length,a,c.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,z.jsxs)("div",{ref:x,"data-coverage-shape":B?"stacked":"matrix",onClick:w=>h(ir(w.target)),onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&h(ir(w.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:B?0:rr},children:[B?null:(0,z.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",flex:"0 0 auto",position:"sticky",top:0,zIndex:Ce.over,background:"var(--graview-panel)",paddingTop:6},children:[(0,z.jsx)("div",{ref:f.corner,style:{width:M,flex:"0 0 auto",alignSelf:"stretch",position:"sticky",left:0,zIndex:Ce.raised,background:"var(--graview-panel)"}}),(0,z.jsx)("div",{ref:f.heads,style:{display:"flex",flex:1,minWidth:0,height:E},children:b.columns.map(w=>(0,z.jsx)("div",{"data-graview-pick":w.id,"data-graview-emphasis":A.size===0?"plain":A.has(w.id)?"lit":"dimmed",title:w.label,"data-graview-column":w.id,style:{flex:1,minWidth:28,boxSizing:"border-box",borderLeft:"1px solid transparent",pointerEvents:"none",position:"relative",display:"flex",alignItems:"flex-end",justifyContent:"center"},children:(0,z.jsxs)("span",{style:{position:"absolute",bottom:3,padding:"3px 0",pointerEvents:"auto",cursor:"pointer",left:"50%",visibility:f.hidden.has(w.id)?"hidden":"visible",transformOrigin:"left bottom",transform:`rotate(-${_n}deg)`,whiteSpace:"nowrap",maxWidth:Fn,overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.75rem",letterSpacing:"0.005em",color:w.used?A.size>0&&!A.has(w.id)?"var(--graview-ink-faint)":"var(--graview-ink)":"var(--graview-warn)"},children:[w.used?"":"\u26A0 ",w.label]})},w.id))})]}),b.of?(0,z.jsxs)("p",{"data-testid":"coverage-more",style:{margin:"4px 0 6px",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[[b.of.rows>b.rows.length?`the ${b.rows.length} most connected of ${b.of.rows} ${ar(c.schema,a.rows)}`:null,b.of.columns>b.columns.length?`${b.columns.length} of ${b.of.columns} ${ar(c.schema,a.columns)} across`:null].filter(Boolean).join(" \xB7 ").replace(/^./,w=>w.toUpperCase())," ","\u2014 what is missing is still counted over all of them."]}):null,(0,z.jsx)("div",{children:b.rows.map((w,W)=>{let P=b.rows[W-1],U=P===void 0||P.group!==w.group,ne=w.required&&!w.covered,ae=A.size>0&&!A.has(w.id);return(0,z.jsxs)("div",{children:[U&&w.group?(0,z.jsx)("div",{style:{fontSize:"0.6875rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",padding:"9px 0 3px"},children:(0,z.jsx)("span",{style:{position:"sticky",left:0,display:"inline-block",paddingRight:8,background:"var(--graview-panel)"},children:w.group})}):null,(0,z.jsxs)("div",{style:{display:"flex",flexDirection:B?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:ae?.72:1},children:[(0,z.jsxs)("div",{"data-graview-pick":w.id,"data-graview-emphasis":A.size===0?"plain":ae?"dimmed":"lit",title:w.label,style:{width:B?"auto":M,flex:"0 0 auto",position:B?"static":"sticky",left:0,zIndex:Ce.raised,background:"var(--graview-panel)",display:"flex",alignItems:"center",gap:7,padding:"6px 10px 6px 0",boxSizing:"border-box",fontSize:"0.8125rem",minWidth:0,color:ne||S.has(w.id)?"var(--graview-warn)":"var(--graview-ink)"},children:[w.ref?(0,z.jsx)("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums",color:"var(--graview-ink-faint)"},children:w.ref}):null,(0,z.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:w.label}),a.badge?(0,z.jsx)("span",{title:w.badged?a.badge.title:a.badge.missingTitle,style:{marginLeft:"auto",flex:"0 0 auto",fontSize:"0.75rem",color:w.badged?"var(--graview-ink-faint)":"var(--graview-warn)"},children:w.badged?a.badge.symbol:"\u25CB"}):null]}),(0,z.jsx)("div",{style:{display:"flex",flex:1,minWidth:0,...B?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:b.columns.map(ee=>{let ge=b.cells.find(T=>T.rowId===w.id&&T.columnId===ee.id),pe=ge!==void 0;return(0,z.jsxs)("div",{"data-graview-mark":"",...pe?{"data-graview-pick":ee.id,"data-graview-emphasis":A.size===0?"plain":A.has(ee.id)&&A.has(w.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(Ur(ge))}:{},title:pe?`${ee.label} answers ${w.ref||w.label}`:`${ee.label} does not answer ${w.ref||w.label}`,style:B?{flex:"0 0 auto",minHeight:24,boxSizing:"border-box",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 9px 2px 7px",borderRadius:6,border:"1px solid var(--graview-edge)",fontSize:"0.75rem",color:pe?"var(--graview-ink)":"var(--graview-ink-faint)"}:{flex:1,minWidth:28,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",borderLeft:"1px solid var(--graview-edge)"},children:[(0,z.jsx)("span",{style:Qr(pe,ne,A.has(ee.id)&&A.has(w.id),A.size>0)}),B?(0,z.jsx)("span",{children:ee.label}):null]},ee.id)})})]})]},w.id)})}),k?(0,z.jsx)(Yr,{box:x,joins:k,shape:`${B?"stacked":"matrix"} ${s??""}`}):null]})})}var Ur=e=>[e.rowId,e.columnId,...e.via??[]];function ir(e){let t=e?.closest?.("[data-graview-joins]")?.getAttribute("data-graview-joins");if(!t)return null;try{let n=JSON.parse(t);return Array.isArray(n)&&n.every(r=>typeof r=="string")?n:null}catch{return null}}var fn=(e,t,n)=>Math.min(n,Math.max(t,e));function Kr(e){let t=e.getBoundingClientRect(),n=typeof document.createRange=="function"?document.createRange():null;n?.selectNodeContents(e);let r=typeof n?.getBoundingClientRect=="function"?n.getBoundingClientRect():null;return r&&r.width>0&&r.height>0?r:t}function Yr({box:e,joins:t,shape:n}){let[r,a]=(0,be.useState)([]),i=JSON.stringify(t);return(0,be.useLayoutEffect)(()=>{let d=e.current;if(!d||typeof window>"u")return;let m=()=>{let c=d.getBoundingClientRect(),f=d.offsetWidth>0&&c.width>0?c.width/d.offsetWidth:1,x=[...d.querySelectorAll("[data-graview-joins]")].find(h=>h.getAttribute("data-graview-joins")===i);if(!x){a([]);return}let s=x.getBoundingClientRect(),l=[];for(let h of JSON.parse(i)){let o=[...d.querySelectorAll("[data-graview-pick]")].find(k=>k.getAttribute("data-graview-pick")===h&&!k.closest("[data-graview-mark]"));if(!o)continue;let b=Kr(o),C=fn(s.left+s.width/2,b.left,b.right),R=fn(s.top+s.height/2,b.top,b.bottom),A=fn(C,s.left,s.right),S=fn(R,s.top,s.bottom);l.push({id:h,x1:(A-c.left)/f,y1:(S-c.top)/f,x2:(C-c.left)/f,y2:(R-c.top)/f})}a(l)};m();let g=0,y=()=>{g===0&&(g=requestAnimationFrame(()=>{g=0,m()}))};return document.addEventListener("scroll",y,{capture:!0,passive:!0}),window.addEventListener("resize",y,{passive:!0}),()=>{document.removeEventListener("scroll",y,{capture:!0}),window.removeEventListener("resize",y),g!==0&&cancelAnimationFrame(g)}},[e,i,n]),(0,z.jsx)("svg",{"aria-hidden":"true","data-coverage-join":i,style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none",zIndex:Ce.over},children:r.map(d=>(0,z.jsxs)("g",{"data-coverage-join-to":d.id,children:[(0,z.jsx)("line",{x1:d.x1,y1:d.y1,x2:d.x2,y2:d.y2,stroke:"var(--graview-accent)",strokeWidth:1.6,strokeLinecap:"round"}),(0,z.jsx)("circle",{cx:d.x2,cy:d.y2,r:2.6,fill:"var(--graview-accent)"})]},d.id))})}function Qr(e,t,n,r){return e?{width:13,height:13,borderRadius:4,background:n||!r?"var(--graview-accent)":"var(--graview-accent-dim)",boxShadow:n&&r?"0 0 12px -2px var(--graview-accent)":void 0}:{width:5,height:5,borderRadius:1,background:t?"var(--graview-warn)":"var(--graview-edge)",opacity:t?.5:1}}function Jr({grid:e}){let t=e.rows.filter(a=>a.required),n=t.filter(a=>a.covered).length,r=t.length===0?1:n/t.length;return(0,z.jsx)("div",{role:"img","aria-label":`${n} of ${t.length} covered`,style:{height:6,borderRadius:999,overflow:"hidden",background:"var(--graview-edge)"},children:(0,z.jsx)("div",{style:{width:`${Math.round(r*100)}%`,height:"100%",background:r===1?"var(--graview-accent)":"var(--graview-warn)"}})})}function lr(e){function t(n){let{store:r}=X(),a=He(r.graph,r.schema,n.nodes).filter(g=>g.kind===e.rows),{arranged:i,bar:d}=Pe(n,{lensAllows:{sort:!1,group:!1},subject:a,kind:e.rows}),m=(0,z.jsx)(qr,{schema:r.schema,...n,options:e,...d?{rowsKept:new Set(i.nodes.map(g=>g.id))}:{}});return d?(0,z.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[d,m]}):m}return{name:"coverage",requiredRoles:[...Br],options:e,View:t,build(n,r,a){return or(n,r,e,a)}}}function Xr(){let e=(0,be.useRef)(null),t=(0,be.useRef)(null),[n,r]=(0,be.useState)(new Set);return(0,be.useEffect)(()=>{let a=t.current;if(!a||typeof window>"u")return;let i=a.parentElement;for(;i&&!/(auto|scroll)/.test(getComputedStyle(i).overflowX);)i=i.parentElement;if(!i)return;let d=0,m=()=>{d=0;let y=e.current?.getBoundingClientRect().right??0,c=new Set;for(let f of a.querySelectorAll("[data-graview-column]")){let x=f.getBoundingClientRect();x.left+x.width/2<y&&c.add(f.dataset.graviewColumn)}r(f=>f.size===c.size&&[...c].every(x=>f.has(x))?f:c)},g=()=>{d===0&&(d=requestAnimationFrame(m))};return m(),i.addEventListener("scroll",g,{passive:!0}),()=>{i.removeEventListener("scroll",g),d!==0&&cancelAnimationFrame(d)}},[]),{corner:e,heads:t,hidden:n}}var cr=["regions","outline"],Fe=class extends Error{constructor(n,r){super(`${n}
27
- ${r}`);this.hint=r;this.name="PlanBindingError"}},hn='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',dr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function yn(e,t,n,r){let a=o=>o,i=o=>r?he(r.tryDefinition(o.kind),o):String(a(o).label??o.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new Fe(`No kind is declared for "${n.regions}".`,hn);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Fe(`No kind is declared for "${n.markers}".`,hn);let d=e.filter(o=>o.kind===n.regions);if(!r&&d.length===0)throw new Fe(`Nothing to draw: no "${n.regions}" nodes.`,hn);let g=r?.tryDefinition(n.regions)?.fields?.shape;if(g!==void 0&&!(n.outline in g))throw new Fe(`"${n.regions}" has no field called "${n.outline}".`,hn);let y=(()=>{let o=new Map;if(n.nests)for(let b of t)b.kind===n.nests&&o.set(b.from,b.to);return b=>{let C=0,R=o.get(b),A=new Set([b]);for(;R!==void 0&&!A.has(R)&&C<d.length;)A.add(R),C+=1,R=o.get(R);return C}})(),c=n.markers?e.filter(o=>o.kind===n.markers):[],f=new Map;if(n.within)for(let o of t)o.kind===n.within&&f.set(o.from,o.to);let x=[],s=new Map;for(let o of c){let b=n.at===void 0?void 0:a(o)[n.at],C=f.get(o.id);if(!dr(b)||C===void 0){x.push({id:o.id,label:i(o)});continue}let R=n.markerKind===void 0?void 0:a(o)[n.markerKind],A=s.get(C)??[];A.push({id:o.id,label:i(o),at:b,...typeof R=="string"?{what:R}:{}}),s.set(C,A)}let l=[],h=[];for(let o of d){let b=a(o)[n.outline];if(!Array.isArray(b)||b.length<3||!b.every(dr)){l.push({id:o.id,label:i(o)});continue}let C=n.regionKind===void 0?void 0:a(o)[n.regionKind];h.push({id:o.id,label:i(o),outline:b,center:Ct(b),depth:y(o.id),markers:s.get(o.id)??[],...typeof C=="string"?{what:C}:{}})}return h.sort((o,b)=>o.depth-b.depth),{regions:h,undrawn:l,strays:x}}var Te=_(De(),1);var L=_(J(),1);function gr({map:e,options:t,implicated:n,flagged:r}){return(0,L.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:".25rem"},children:[e.regions.map(a=>{let i=wn(a.id,n,r);return(0,L.jsxs)("li",{"data-graview-pick":a.id,...i?{"data-graview-emphasis":i}:{},style:{display:"flex",flexWrap:"wrap",gap:".5rem",justifyContent:"space-between",minWidth:0,padding:".25rem .4rem",borderRadius:".35rem",background:i==="flagged"?Un(a.what,i,t.hues):void 0},children:[(0,L.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,L.jsxs)("span",{style:{opacity:.7,whiteSpace:"nowrap"},children:[a.what?`${a.what} \xB7 `:"",a.markers.length]})]},a.id)}),e.undrawn.map(a=>(0,L.jsxs)("li",{"data-graview-pick":a.id,style:{display:"flex",gap:".5rem",opacity:.7,padding:".25rem .4rem"},children:[(0,L.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,L.jsx)("span",{style:{whiteSpace:"nowrap"},children:t.undrawnLabel??"not drawn"})]},a.id))]})}var qn=1e3,ur=.022,Ze={minHeight:"1.9rem",padding:".25rem .65rem",borderRadius:".35rem",border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",font:"inherit",fontSize:"0.9375rem",cursor:"pointer"},wn=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},vn=(e,t)=>(e===void 0?void 0:t?.[e])??de(e??"region"),Un=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${vn(e,n)} 52% 48%) 24%, var(--graview-panel))`,mr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${vn(e,n)} 48% 42%) 78%, var(--graview-ink))`;function Zr(e){let t=e.currentTarget.getBoundingClientRect(),n=r=>Math.round(Math.max(0,Math.min(1,r))*1e3)/1e3;return{x:n(t.width===0?0:(e.clientX-t.left)/t.width),y:n(t.height===0?0:(e.clientY-t.top)/t.height)}}function pr({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:i,implicated:d,flagged:m}){let{store:g}=X(),y=g.graph.allEdges(),c=g.graph.allNodes(),f=n===void 0?void 0:new Set(n.map(v=>v.id)),x=f===void 0?c:c.filter(v=>v.kind!==t.regions||f.has(v.id)),s=yn(x,y,t,e),l=s.regions.length,h=s.regions.reduce((v,O)=>v+O.markers.length,0);if(a==="glyph")return(0,L.jsx)(ye,{label:`${r??"Ground"} \xB7 ${l}`,...s.undrawn.length>0?{meta:`+${s.undrawn.length} undrawn`}:{},selected:i});if(a==="summary")return(0,L.jsx)(te,{title:r??"The plan",subtitle:`${l} drawn \xB7 ${h} standing in them`,children:(0,L.jsx)(gr,{map:s,options:t,...d?{implicated:d}:{},...m?{flagged:m}:{}})});let o=(0,Te.useMemo)(()=>{let v=1/0,O=1/0,G=-1/0,ie=-1/0,se=K=>{K.x<v&&(v=K.x),K.x>G&&(G=K.x),K.y<O&&(O=K.y),K.y>ie&&(ie=K.y)};for(let K of s.regions){for(let ve of K.outline)se(ve);for(let ve of K.markers)se(ve.at)}if(!Number.isFinite(v)||G-v<=0||ie-O<=0)return{x0:0,y0:0,x1:1,y1:1};let ue=Math.max(G-v,ie-O)*.04;return{x0:v-ue,y0:O-ue,x1:G+ue,y1:ie+ue}},[s.regions]),b=(o.x1-o.x0)/(o.y1-o.y0),C=t.aspect??Math.min(3.2,Math.max(.55,b)),R=Math.round(qn/(o.x1-o.x0)),A=Math.round(R*(o.x1-o.x0)),S=Math.round(A/C),k={x:o.x0*R,y:o.y0*R-(S-R*(o.y1-o.y0))/2,w:A,h:S},u=R,E=k.w,M=(d?.length??0)>0||(m?.length??0)>0,B=(0,Te.useRef)(null),{touchable:w,legible:W}=ft(B,{units:k.w,target:E*ur*2}),P=En("--graview-font-display","serif"),U=En("--graview-font-body","sans-serif"),{named:ne,placed:ae,tagged:ee}=(0,Te.useMemo)(()=>{let v=[],O=E*.012,G=qn*.004,ie=(le,Y)=>!v.some(fe=>fe!==Y&&$t({x0:le.x0-G,y0:le.y0-G,x1:le.x1+G,y1:le.y1+G},fe)),se=[...s.regions].sort((le,Y)=>Pn(Y.outline)-Pn(le.outline)),ue=new Map,K=new Map;for(let le of se){let Y=kt(le.outline),fe=Math.max(0,(Y.bottom-Y.top)*u*.55),$e=null;for(let ke of[.12,.26,.42,.6,.78]){let xe=Y.top+ke*(Y.bottom-Y.top),Re=Mn(le.outline,xe),bn=Math.max(0,(Re.x1-Re.x0)*R-O*2),me=Ot(le.label,{room:bn,height:fe,size:E*.023,floor:E*.015,measure:P});if(me===null)continue;let Ne=Math.max(...me.lines.map(Cr=>P(Cr,me.fontSize))),Ae=me.lines.length*me.fontSize*1.15,Qn=Y.top*u+O+Ae/2,Jn=Y.bottom*u-O-Ae/2,nn=Jn<Qn?(Y.top+Y.bottom)*u/2:Math.min(Math.max(xe*u,Qn),Jn),xn=Mn(le.outline,nn/u),Sn=xn.x0*R+O;if(Ne>(xn.x1-xn.x0)*R-O*2)continue;let Xn={x0:Sn,y0:nn-Ae/2,x1:Sn+Ne,y1:nn+Ae/2};if(ie(Xn)){v.push(Xn),$e={fitted:me,x:Sn,y:nn};break}}ue.set(le.id,$e?.fitted??null),$e!==null&&K.set(le.id,{x:$e.x,y:$e.y})}let ve=E*.018,Ue=new Map,F=E*.011+E*.004,Yn=new Map;for(let le of s.regions)for(let Y of le.markers){let fe={x0:Y.at.x*R-F,y0:Y.at.y*u-F,x1:Y.at.x*R+F,y1:Y.at.y*u+F};Yn.set(Y.id,fe),v.push(fe)}for(let le of w?s.regions:[])for(let Y of le.markers){let fe=E*.018,$e=U(Y.label,ve),ke=Y.at.x*R,xe=Y.at.y*u,Re=ve*1.15,bn=[{x:ke+fe,y:xe,anchor:"start"},{x:ke-fe,y:xe,anchor:"end"},{x:ke+fe*.7,y:xe-Re,anchor:"start"},{x:ke-fe*.7,y:xe-Re,anchor:"end"},{x:ke+fe*.7,y:xe+Re,anchor:"start"},{x:ke-fe*.7,y:xe+Re,anchor:"end"},{x:ke,y:xe-Re*1.1,anchor:"start"},{x:ke,y:xe+Re*1.1,anchor:"start"}];for(let me of bn){let Ne=me.anchor==="start"?me.x:me.x-$e,Ae={x0:Ne,y0:me.y-ve*.62,x1:Ne+$e,y1:me.y+ve*.62};if(!(Ne<k.x+4||Ne+$e>k.x+k.w-4)&&!(Ae.y0<k.y+2||Ae.y1>k.y+k.h-2)&&ie(Ae,Yn.get(Y.id))){v.push(Ae),Ue.set(Y.id,{at:{x:me.x,y:me.y},anchor:me.anchor,size:ve});break}}}return{named:ue,placed:K,tagged:Ue}},[s.regions,qn,u,w,P,U]),ge=(0,Te.useMemo)(()=>{let v=[];for(let O of s.regions)(ne.get(O.id)?.whole??!1)===!1&&v.push({id:O.id,label:O.label,what:O.what,round:!1});for(let O of s.regions)for(let G of O.markers)(!w||!ee.has(G.id))&&v.push({id:G.id,label:G.label,what:G.what,round:!0});return v},[s.regions,ne,ee,w]),{principal:pe}=X(),[T,$]=(0,Te.useState)(null),V=t.draw!==void 0,p=t.place!==void 0,H=v=>{if(T===null)return;v.stopPropagation();let O=Zr(v);if(T.kind==="marker"){g.apply({name:t.place.act,args:{[t.place.id]:T.id,[t.place.at]:O}},{author:pe,intent:`Placed ${T.label} on the map`}),$(null);return}$({...T,corners:[...T.corners,O]})},D=()=>{T===null||T.kind!=="region"||T.corners.length<3||(g.apply({name:t.draw.act,args:{[t.draw.id]:T.id,[t.draw.outline]:T.corners}},{author:pe,intent:`Drew ${T.label} on the map \u2014 ${T.corners.length} corners`}),$(null))},j=T===null?s.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:T.kind==="marker"?`Click where ${T.label} stands.`:T.corners.length<3?`Click the corners of ${T.label} \u2014 ${3-T.corners.length} more to make an area.`:`${T.corners.length} corners. Keep clicking, or press Done.`;return W?(0,L.jsxs)(te,{title:r??"The plan",subtitle:`${l} drawn \xB7 ${h} standing in them`,...s.undrawn.length>0?{meta:`${s.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:i,fit:!0,children:[(0,L.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${k.w} / ${k.h}`,overflow:"hidden"},children:(0,L.jsxs)("svg",{ref:B,viewBox:`${k.x} ${k.y} ${k.w} ${k.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:T!==null?"application":w?"group":"img","aria-label":T===null?`${r??"The plan"}: ${l} drawn, ${h} standing in them`:j??"Drawing",onClick:H,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:T===null?void 0:"crosshair",border:"1px dashed color-mix(in oklab, var(--graview-edge) 80%, transparent)",borderRadius:".4rem",backgroundImage:"linear-gradient(color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px)",backgroundSize:"10% 10%"},children:[(0,L.jsx)("text",{x:k.x+k.w-E*.028,y:k.y+E*.034,fontSize:E*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),j!==null&&s.regions.length===0?(0,L.jsx)("text",{x:k.x+k.w/2,y:k.y+k.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:E*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:j}):null,T!==null&&T.kind==="region"&&T.corners.length>0?(0,L.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,L.jsx)("polyline",{points:T.corners.map(v=>`${v.x*R},${v.y*u}`).join(" "),fill:T.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),T.corners.map((v,O)=>(0,L.jsx)("circle",{cx:v.x*R,cy:v.y*u,r:E*.008,fill:"var(--graview-accent)"},O))]}):null,s.regions.map(v=>{let O=wn(v.id,d,m),G=M&&O===void 0?.34:1,ie=v.outline.map(se=>`${se.x*R},${se.y*u}`).join(" ");return(0,L.jsx)("g",{"data-graview-pick":v.id,...O?{"data-graview-emphasis":O}:{},role:"button","aria-label":`${v.label}${v.what?`, ${v.what}`:""}, ${v.markers.length} standing in it`,style:{opacity:G,cursor:"pointer"},children:(0,L.jsx)("polygon",{points:ie,fill:Un(v.what,O,t.hues),stroke:mr(v.what,O,t.hues),strokeWidth:O==="flagged"?5:2.5,strokeLinejoin:"round"})},v.id)}),s.regions.flatMap(v=>v.markers.map(O=>{let G=wn(O.id,d,m),ie=M&&G===void 0?.34:1;return(0,L.jsxs)("g",{...w?{"data-graview-pick":O.id,role:"button","aria-label":`${O.label}${O.what?`, ${O.what}`:""}, in ${v.label}`}:{"aria-hidden":!0},...G?{"data-graview-emphasis":G}:{},style:{opacity:ie,cursor:w?"pointer":"default"},children:[w?(0,L.jsx)("circle",{cx:O.at.x*R,cy:O.at.y*u,r:E*ur,fill:"transparent"}):null,(0,L.jsx)("circle",{cx:O.at.x*R,cy:O.at.y*u,r:E*.011,fill:G==="flagged"?"var(--graview-warn)":`hsl(${vn(O.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:E*.004}),ee.has(O.id)?(0,L.jsx)("text",{x:ee.get(O.id).at.x,y:ee.get(O.id).at.y,textAnchor:ee.get(O.id).anchor,dominantBaseline:"middle",fontSize:ee.get(O.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,ee.get(O.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${O.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:O.label}):null]},O.id)})),s.regions.map(v=>{let O=ne.get(v.id),G=ae.get(v.id);if(!O||G===void 0)return null;let ie=wn(v.id,d,m);return(0,L.jsx)("text",{x:G.x,y:G.y-(O.lines.length-1)*O.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:O.fontSize,fill:"var(--graview-ink)",opacity:M&&ie===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,O.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${v.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:O.lines.map((se,ue)=>(0,L.jsx)("tspan",{x:G.x,dy:ue===0?0:O.fontSize*1.15,children:se},se+String(ue)))},`label-${v.id}`)})]})}),ge.length>0?(0,L.jsx)("ul",{"data-testid":"map-key",style:{margin:".5rem 0 0",padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:".2rem .75rem",fontSize:"0.875rem"},children:ge.map(v=>(0,L.jsxs)("li",{"data-graview-pick":v.id,style:{display:"flex",alignItems:"center",gap:".35rem",minWidth:0,minHeight:"max(1.5rem, 24px)",padding:"0 .15rem",cursor:"pointer"},children:[(0,L.jsx)("span",{"aria-hidden":"true",style:{width:v.round?".55rem":".7rem",height:v.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:v.round?"50%":".15rem",background:v.round?`hsl(${vn(v.what,t.hues)} 55% 45%)`:Un(v.what,void 0,t.hues),border:v.round?void 0:`1px solid ${mr(v.what,void 0,t.hues)}`}}),(0,L.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:v.label})]},v.id))}):null,T!==null?(0,L.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[s.regions.length>0&&j!==null?(0,L.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:j}):null,T.kind==="region"?(0,L.jsxs)("button",{type:"button",onClick:D,disabled:T.corners.length<3,"data-testid":"draw-done",style:{...Ze,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",T.label]}):null,T.kind==="region"&&T.corners.length>0?(0,L.jsx)("button",{type:"button",onClick:()=>$({...T,corners:T.corners.slice(0,-1)}),style:Ze,children:"Undo a corner"}):null,(0,L.jsx)("button",{type:"button",onClick:()=>$(null),style:Ze,"data-testid":"draw-cancel",children:"Stop"})]}):(0,L.jsxs)(L.Fragment,{children:[V&&s.undrawn.length>0?(0,L.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,L.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.undrawnLabel??"Not drawn yet",":"]}),s.undrawn.map(v=>(0,L.jsxs)("button",{type:"button",style:Ze,onClick:()=>$({kind:"region",id:v.id,label:v.label,corners:[]}),"data-testid":`draw-${v.id}`,children:["Draw ",v.label]},v.id))]}):null,p&&s.strays.length>0?(0,L.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,L.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.strayLabel??"Not placed",":"]}),s.strays.map(v=>(0,L.jsxs)("button",{type:"button",style:Ze,onClick:()=>$({kind:"marker",id:v.id,label:v.label}),"data-testid":`place-${v.id}`,children:["Place ",v.label]},v.id))]}):null,t.help!==void 0&&(s.undrawn.length>0||s.strays.length>0)?(0,L.jsx)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem"},children:(0,L.jsx)("a",{href:t.help.href,"data-testid":"map-help",children:t.help.label})}):null,!V&&(s.undrawn.length>0||s.strays.length>0)?(0,L.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[s.undrawn.map(v=>v.label).join(", "),s.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",s.strays.map(v=>v.label).join(", "),s.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,L.jsx)(te,{title:r??"The plan",subtitle:`${l} drawn \xB7 ${h} standing in them`,selected:i,children:(0,L.jsx)(gr,{map:s,options:t,...d?{implicated:d}:{},...m?{flagged:m}:{}})})}var hr=_(J(),1);function fr(e){function t(n){let{store:r}=X();return(0,hr.jsx)(pr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...cr],options:e,View:t,build(n,r,a){return yn(n,r,e,a)}}}var re=_(J(),1);function ea(e,t,n){let r=t.flatMap(i=>(i.subject&&i.subject.kinds!=="*"?i.subject.kinds:[null]).map(m=>({name:i.name,title:i.title??i.name,kind:m}))),a=[];for(let i of n){let d={kind:"human",id:"themselves",roles:[i]};for(let m of r){let g=m.kind??void 0,y=On(e,d,m.name,g).ok,c=!y&&On(e,d,m.name,g,void 0,"themselves").ok;a.push({role:i,act:m.name,kind:m.kind,may:y?"yes":c?"self":"no"})}}return{roles:n,acts:r,cells:a}}function na({label:e,fidelity:t,mode:n}){let{store:r}=X(),a=r.policy,i=a?.roles??[],d=r.allMutations().filter(f=>!f.derived).map(f=>({name:f.name,...f.title?{title:f.title}:{},...f.subject?{subject:f.subject}:{}})),m=ea(a,d,i),g=e??"Who may do what";if(!a||i.length===0)return(0,re.jsxs)("div",{"data-testid":"reach-lens",style:{padding:14,color:"var(--graview-ink-muted)",fontSize:"0.875rem"},children:[g,": this installation has no policy, so everyone may do everything."]});if(t==="glyph")return(0,re.jsx)(ye,{label:`${g} \xB7 ${i.length} ${i.length===1?"role":"roles"}`,hue:de("role")});let y=n==="fullscreen",c=f=>f==="yes"?"\u25CF":f==="self"?"\u25D0":"\xB7";return(0,re.jsxs)("div",{"data-testid":"reach-lens",style:{display:"grid",gap:10,padding:y?0:14,borderRadius:"var(--graview-radius, 12px)",background:y?"transparent":"var(--graview-panel)",border:y?"none":"1px solid var(--graview-edge)",color:"var(--graview-ink)",minWidth:0},children:[(0,re.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,re.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:g}),(0,re.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"\u25CF may \xB7 \u25D0 on their own record \xB7 read from the policy"})]}),(0,re.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,re.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,re.jsx)("thead",{children:(0,re.jsxs)("tr",{children:[(0,re.jsx)("th",{scope:"col",style:{textAlign:"left",padding:"4px 10px 6px 0",fontWeight:500,color:"var(--graview-ink-faint)",fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase"},children:"Role"}),m.acts.map(f=>(0,re.jsxs)("th",{scope:"col",title:f.kind?`${f.title}, on ${rt(rn(r.schema.tryDefinition(f.kind),f.kind))}`:f.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[f.title,f.kind?(0,re.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",f.kind]}):null]},`${f.name}|${f.kind??""}`))]})}),(0,re.jsx)("tbody",{children:m.roles.map(f=>(0,re.jsxs)("tr",{children:[(0,re.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:f}),m.acts.map(x=>{let s=m.cells.find(l=>l.role===f&&l.act===x.name&&l.kind===x.kind);return(0,re.jsx)("td",{"data-graview-reach":s.may,title:`${f} ${s.may==="yes"?"may":s.may==="self"?"may, on their own record,":"may not"} ${x.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:s.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:s.may==="no"?"0.875rem":"0.8125rem"},children:c(s.may)},`${x.name}|${x.kind??""}`)})]},f))})]})})]})}var yr={name:"reach",requiredRoles:[],View:na};var Se=_(De(),1);var Z=_(J(),1),vr=["start","end"];function ta(e,t,{pad:n=45,minimum:r=480}={}){if(e.length===0)return{start:0,end:t};let a=Math.min(...e.map(y=>y.start)),i=Math.max(...e.map(y=>y.end)),d=Math.max(0,a-n),m=Math.min(t,i+n),g=r-(m-d);return g>0&&(d=Math.max(0,d-g/2),m=Math.min(t,d+r)),{start:Math.floor(d),end:Math.ceil(m)}}function ra(e){let t=[...e].sort((i,d)=>i.start-d.start||i.end-d.end||i.id.localeCompare(d.id)),n=[],r=t.map(i=>{let d=n.findIndex(m=>m<=i.start);return d===-1?(d=n.length,n.push(i.end)):n[d]=i.end,{...i,lane:d,lanes:1}}),a=Math.max(1,n.length);return r.map(i=>({...i,lanes:a}))}var Kn=class extends Error{constructor(t,n){super(`The timeline lens needs ${n.join(" and ")} for "${t}". Add them to the lens bindings: { ${t}: { ${n.map(r=>`${r}: "<field name>"`).join(", ")} } }.`),this.name="TimelineBindingError"}};function br(e,t,n){let r=Be(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,d=vr.filter(c=>{let f=r[c];return f?i?!(f in i):!(f in a):!0});if(d.length>0)throw new Kn(e.kind,d);let m=Number(a[r.start]??Number.NaN),g=Number(a[r.end]??m);if(!Number.isFinite(m))return null;let y=[];if(r.columns){let c=a[r.columns];Array.isArray(c)&&y.push(...c.map(String))}if(r.column){let c=a[r.column];c!=null&&y.push(String(c))}return{id:e.id,kind:e.kind,label:he(n?.tryDefinition(e.kind),e),columnIds:y,start:m,end:Number.isFinite(g)?Math.max(g,m):m}}function aa(e,t){let n=Math.round(t),r=a=>`linear-gradient(hsl(${n} 55% var(--graview-tint-lightness) / ${a}), hsl(${n} 55% var(--graview-tint-lightness) / ${a})), var(--graview-panel)`;return e==="lit"?{border:"1px solid var(--graview-accent)",background:r("calc(var(--graview-tint-alpha) * 1.15)"),color:"var(--graview-ink)",boxShadow:"0 0 16px -4px var(--graview-accent)"}:e==="dimmed"?{border:"1px solid var(--graview-edge)",background:r("calc(var(--graview-tint-alpha) * 0.25)"),color:"var(--graview-ink-muted)"}:{border:`1px solid hsl(${n} 50% var(--graview-tint-lightness) / 0.42)`,background:r("var(--graview-tint-alpha)"),color:"var(--graview-ink)"}}var ia=.045,en=52,xr=4,oa=44,sa=240;function la({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:d=[],implicated:m=[],flagged:g=[]}){let y=new Set([...m,...d]),c=S=>y.size===0?"plain":y.has(S)?"lit":"dimmed",f=new Set(g),x=(e??[]).map(S=>br(S,a.bindings,i)).filter(S=>S!==null),s=a.hueOf??(S=>de(S.kind));if(n==="glyph")return(0,Z.jsx)(ye,{label:`${t??"Timeline"} \xB7 ${x.length}`,hue:de("timeline")});if(n==="summary")return(0,Z.jsx)(te,{title:t??"Timeline",meta:`${x.length} items`,tone:"muted",children:(0,Z.jsx)(Ee,{max:a.columns.length,items:a.columns.map(S=>({id:S.id,label:`${S.label} ${x.filter(k=>k.columnIds.includes(S.id)).length}`,hue:de(S.id)}))})});let l=a.format??String,h=ta(x,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),o=h.end-h.start,b=S=>(S-h.start)/o*100,C=a.tick??Math.max(60,Math.round(o/8/60)*60),R=[];for(let S=Math.ceil(h.start/C)*C;S<=h.end;S+=C)R.push(S);let A=r==="fullscreen";return(0,Z.jsx)(te,{title:t??"Timeline",meta:`${l(h.start)} \u2013 ${l(h.end)}`,style:{gap:12,...A?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,Z.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,Z.jsx)(ga,{columns:a.columns}),(0,Z.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(sa,Math.ceil(o/C)*oa)},children:[R.map((S,k)=>(0,Z.jsx)("div",{style:{position:"absolute",left:en-8,right:0,top:k===R.length-1?"calc(100% - 1px)":`${b(S)}%`,height:1,background:"var(--graview-edge)"},children:(0,Z.jsx)("span",{style:{position:"absolute",left:-(en-8),...k===R.length-1?{bottom:2}:{top:-7},width:en-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:l(S)})},S)),(0,Z.jsx)("div",{style:{position:"absolute",inset:0,left:en,display:"flex",gap:xr},children:a.columns.map(S=>(0,Z.jsx)(ua,{spans:x.filter(k=>k.columnIds.includes(S.id)),window:h,format:l,hue:s,emphasisOf:c,brokenIds:f},S.id))})]})]})})}function da(){let e=(0,Se.useRef)(null),[t,n]=(0,Se.useState)(new Set);return(0,Se.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let a=[...r.querySelectorAll("[data-graview-span-name]")].filter(i=>i.scrollWidth>i.clientWidth+.5).map(i=>i.getAttribute("data-graview-span-name")).filter(i=>!t.has(i));a.length>0&&n(new Set([...t,...a]))}),(0,Se.useLayoutEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let a=Math.round(r.clientWidth),i=new ResizeObserver(()=>{let d=Math.round(r.clientWidth);d!==a&&(a=d,n(new Set))});return i.observe(r),()=>i.disconnect()},[]),{column:e,oneLine:t}}var ca=(e,t)=>t===0?e:e.slice(0,t),wr=[0,3,1];function ga({columns:e}){let t=(0,Se.useRef)(null),[n,r]=(0,Se.useState)(0);(0,Se.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(m=>m.scrollWidth>m.clientWidth+.5)&&n<wr.length-1&&r(n+1)}),(0,Se.useLayoutEffect)(()=>{let i=t.current;if(!i||typeof ResizeObserver>"u")return;let d=i.clientWidth,m=new ResizeObserver(()=>{i.clientWidth!==d&&(d=i.clientWidth,r(0))});return m.observe(i),()=>m.disconnect()},[]);let a=wr[n];return(0,Z.jsx)("div",{ref:t,style:{display:"flex",gap:xr,paddingLeft:en,paddingBottom:10},children:e.map(i=>{let d=ca(i.label,a);return(0,Z.jsx)("div",{"data-graview-day-head":i.id,title:d===i.label?void 0:i.label,...d===i.label?{}:{"aria-label":i.label},style:{flex:1,minWidth:0,overflow:"hidden",whiteSpace:"nowrap",fontSize:"0.75rem",letterSpacing:a===1?0:"0.18em",textTransform:"uppercase",textAlign:"center",color:"var(--graview-ink-muted)"},children:d},i.id)})})}function ua({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:i}){let d=t.end-t.start,m=s=>(s-t.start)/d*100,g=s=>(s.end-s.start)/d<ia,y=ra(e.filter(s=>!g(s))),c=[...e.filter(g)].sort((s,l)=>s.start-l.start),f=Math.max(1,...y.map(s=>s.lanes)),x=da();return(0,Z.jsxs)("div",{ref:x.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[y.map(s=>{let l=100/f,h=Math.max(1.6,m(s.end)-m(s.start));return(0,Z.jsx)("div",{"data-graview-span":s.id,"data-graview-pick":s.id,"data-graview-emphasis":a(s.id),"data-graview-flagged":i.has(s.id)?"":void 0,title:`${s.label} \xB7 ${n(s.start)}\u2013${n(s.end)}`,style:{position:"absolute",top:`${m(s.start)}%`,height:`${h}%`,left:`${s.lane*l}%`,width:`${l}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,Z.jsx)("div",{"data-graview-span-name":s.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...x.oneLine.has(s.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...aa(a(s.id),r(s)),...i.has(s.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:h>=3.4?s.label:null})},s.id)}),c.map(s=>{let l=a(s.id);return(0,Z.jsxs)("div",{"data-graview-span":s.id,"data-graview-pick":s.id,"data-graview-emphasis":l,"data-graview-moment":"",title:`${s.label} \xB7 ${n(s.start)}`,style:{position:"absolute",top:`${m(s.start)}%`,right:0,maxWidth:"100%",boxSizing:"border-box",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"flex-end",gap:5,minHeight:24,padding:"0 4px 0 8px",borderRadius:999,background:"linear-gradient(90deg, transparent, var(--graview-ground) 35%)"},children:[(0,Z.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:l==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(s.start)}),(0,Z.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:l==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:s.label}),(0,Z.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:i.has(s.id)?"var(--graview-warn)":l==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(s))} 60% var(--graview-tint-lightness))`,boxShadow:i.has(s.id)?"0 0 0 3px var(--graview-warn)":l==="lit"?"0 0 0 3px var(--graview-accent-dim)":l==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(s))} 60% var(--graview-tint-lightness) / 0.45)`}})]},s.id)})]})}function Sr(e){function t(n){let{store:r}=X(),a=Object.keys(e.bindings),{nodes:i,bar:d}=Pe(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...a[0]?{kind:(n.nodes??[]).find(g=>a.includes(String(g.kind)))?.kind??a[0]}:{}}),m=(0,Z.jsx)(la,{schema:r.schema,...n,nodes:i,options:e});return Me(n,r.schema,d?(0,Z.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[d,m]}):m)}return{name:"timeline",requiredRoles:[...vr],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>br(a,e.bindings,r)).filter(a=>a!==null)}}}var qe=_(J(),1),kr=new WeakMap;function ma(e){return e===1440?t=>Ke(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Ke(Math.floor(t)*60):t=>String(t)}function pa(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Sr({...t,extent:n,format:ma(n)}).View}case"calendar":return er({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return lr(t).View;case"board":return Bt(t).View;case"plan":return fr(t).View;case"reach":return yr.View;case"columns":return nr(t).View;case"blocks":return fa(pt(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function fa(e,t){return n=>{let r=(0,qe.jsx)(Nt,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,qe.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode==="fullscreen"?(0,qe.jsx)("div",{style:{padding:"14px 16px"},children:r}):(0,qe.jsx)(te,{title:n.label??"",children:r})}}function fo(e){let t=kr.get(e);if(!t){let n=pa(e),r=a=>(0,qe.jsx)(n,{...a,label:e.title});kr.set(e,t=r)}return t}export{ma as a,fo as b};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk.3AGY4QVS.js";import"./chunk.SYAEBGDC.js";import"./chunk.UZGRRDHD.js";import"./chunk.XANVHJQ4.js";import"./chunk.UT6642FC.js";import"./chunk.ULRW47RP.js";import"./chunk.PBSMLINK.js";import"./chunk.3TY5NFLY.js";import"./chunk.D75KC3LL.js";import"./chunk.FWTIUYXH.js";import"./chunk.MAF7C3VM.js";import"./chunk.B2GLDIAS.js";import"./chunk.6YCBYL2Y.js";import"./chunk.UGFJKSHU.js";import"./chunk.MNP4JI33.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.JOOQUWLT.js";import{F as P,I as w,Q as p,Y as R,a as A,xa as b}from"./chunk.6QWV5MVH.js";import{Qc as h}from"./chunk.MNP4JI33.js";import{b as i}from"./chunk.AJZBJBMO.js";var L=i(p(),1),B=v.part(e=>(0,L.jsx)(e.ActivityRail,{calls:[]}),{quiet:!0});var l=i(P(),1),g=i(p(),1),C=b(A(()=>(__graviewPreload(import.meta.url,["./chunk.NTF7FVB2.js","./chunk.5UL7YDUD.js","./chunk.JDUJDAGA.js","./chunk.LR3VDXPI.js","./chunk.COQKECUH.js","./chunk.EJPI3ST6.js","./chunk.3K6YSVHC.js","./chunk.SHTJZ6UX.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.GZHZLJBF.js","./chunk.XMC7YDWT.js","./chunk.6UGEYZAC.js","./chunk.OJGHDWI6.js","./chunk.B2GLDIAS.js","./chunk.6YCBYL2Y.js","./chunk.UGFJKSHU.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.AOSMJKLH.js")))),F=C.part((e,r)=>{let t=e.RecordInteractions;return(0,g.jsx)(t,{...r})},{quiet:!0});function T(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 D({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 S=f.log.length,m=(0,l.useMemo)(()=>{let x=u=>f.log.all().flatMap(k=>k.batch===u?k.writes:[]);return y.filter(u=>T(u,e,x))},[y,e,f,S]);return s||m.length===0?null:(0,g.jsx)(l.Suspense,{fallback:null,children:(0,g.jsx)(F,{entries:m,...r?{style:r}:{},...t?{headingStyle:t}:{},...o?{className:o}:{}})})}var c=i(P(),1),a=i(p(),1);function ro({context:e,stop:r,title:t,label:o,style:d,className:n,children:f,...y}){let s=h(e.views?.arrangement?.()),S=f??(0,a.jsxs)(a.Fragment,{children:["In ",s==="Scene"?"the scene":s.replace(/^The /,"the ")," ",(0,a.jsx)("span",{"aria-hidden":"true",children:"\u2197"})]}),m=o?{"aria-label":o}:{};if(e.overview){let x=e.overview;return(0,a.jsx)("a",{href:r,...y,...m,...t?{title:t}:{},style:d,...n?{className:n}:{},onClick:u=>{u.preventDefault(),x(r)},children:S})}return e.embedded?null:(0,a.jsx)("a",{href:`${e.sceneHref??"/"}${r}`,...y,...m,...t?{title:t}:{},style:d,...n?{className:n}:{},children:S})}function oo(){return(0,a.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,D as b,ro as c,oo as d,to as e};
@@ -1 +0,0 @@
1
- var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as $}from"./chunk.TAQ764IQ.js";import{o as ie,p as _,s as le}from"./chunk.XMC7YDWT.js";import{m as F,n as re,o as ae,p as Q,q as H}from"./chunk.OJGHDWI6.js";import{c as se}from"./chunk.UGFJKSHU.js";import{b as J,c as ne,d as q,e as B,g as oe}from"./chunk.JOOQUWLT.js";import{E,F as D,I as X,N as Z,Q as w,Y as k,Z as ee,_ as O,a as b,na as N,pa as te,xa as S}from"./chunk.6QWV5MVH.js";import{$b as U,aa as j,ec as K}from"./chunk.MNP4JI33.js";import{b as l}from"./chunk.AJZBJBMO.js";var x=l(D(),1),W=l(w(),1),fe="A",V=S(b(()=>(__graviewPreload(import.meta.url,["./chunk.5A4AOFOA.js","./chunk.KSXB4LDF.js","./chunk.R6K6GF5R.js","./chunk.3AGY4QVS.js","./chunk.BNV77BQZ.js","./chunk.SYAEBGDC.js","./chunk.YIR7PPF3.js","./chunk.EBGAYL32.js","./chunk.DAZ2VSRD.js","./chunk.HJCQ6I3S.js","./chunk.MWGGV7DE.js","./chunk.JQU5GEU3.js","./chunk.HAIG6NVX.js","./chunk.UZGRRDHD.js","./chunk.XANVHJQ4.js","./chunk.OKRNJXTV.js","./chunk.CAVBSL27.js","./chunk.COQKECUH.js","./chunk.EJPI3ST6.js","./chunk.3K6YSVHC.js","./chunk.SHTJZ6UX.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.G5NZVPJU.js","./chunk.ULRW47RP.js","./chunk.PBSMLINK.js","./chunk.3TY5NFLY.js","./chunk.D75KC3LL.js","./chunk.FWTIUYXH.js","./chunk.MAF7C3VM.js","./chunk.XMC7YDWT.js","./chunk.6UGEYZAC.js","./chunk.OJGHDWI6.js","./chunk.B2GLDIAS.js","./chunk.6YCBYL2Y.js","./chunk.UGFJKSHU.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.2WPZXIRP.js"))));var ge=V.part((e,t)=>(0,W.jsx)(e.InspectorPane,{...t}),{what:"This card's acts"});function he(e){let t=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},n=globalThis;if(n.requestIdleCallback){let c=n.requestIdleCallback(t,{timeout:5e3});return()=>n.cancelIdleCallback?.(c)}let r=setTimeout(t,2500);return()=>clearTimeout(r)}function Le({placement:e="float",openActs:t}={}){let{menuAt:n,setMenuAt:r,registerActsDoor:c}=k(),{selection:u}=N();(0,x.useEffect)(()=>{if(V.current)return;let p=()=>{y(),V.prefetch()},h=he(p),s=["pointerdown","keydown"];for(let v of s)document.addEventListener(v,p,{capture:!0,passive:!0});function y(){h();for(let v of s)document.removeEventListener(v,p,{capture:!0})}return y},[]),(0,x.useEffect)(()=>{if(e==="menu")return c({key:fe,open:t??(p=>{let h=p.getBoundingClientRect(),s=p.closest("[data-graview-pick]")?.getAttribute("data-graview-pick")??p.closest("[data-graview-view]")?.getAttribute("data-graview-view")??void 0;r({x:Math.round(h.left+Math.min(16,h.width/2)),y:Math.round(Math.min(h.bottom,h.top+36)),...s?{on:s}:{}})})}),()=>c(null)},[e,c,r,t]);let m=n!==null||u.length>0,[i,g]=(0,x.useState)(m);return(0,x.useEffect)(()=>{m&&g(!0)},[m]),!i&&!m?null:(0,W.jsx)(x.Suspense,{fallback:null,children:(0,W.jsx)(ge,{placement:e,chosen:t===void 0})})}var z=l(D(),1),G=l(w(),1),ye=S(b(()=>(__graviewPreload(import.meta.url,["./chunk.5A4AOFOA.js","./chunk.KSXB4LDF.js","./chunk.R6K6GF5R.js","./chunk.3AGY4QVS.js","./chunk.2NIOHEMX.js","./chunk.4HRAQNJO.js","./chunk.Y6ZNFQK3.js","./chunk.BNV77BQZ.js","./chunk.SYAEBGDC.js","./chunk.NRAYZY3X.js","./chunk.RIJUCHP4.js","./chunk.TAQ764IQ.js","./chunk.YIR7PPF3.js","./chunk.3HXN4BOY.js","./chunk.GYICGZMG.js","./chunk.UHUGOTUU.js","./chunk.47STJVRV.js","./chunk.EBGAYL32.js","./chunk.DAZ2VSRD.js","./chunk.HJCQ6I3S.js","./chunk.MWGGV7DE.js","./chunk.JQU5GEU3.js","./chunk.HAIG6NVX.js","./chunk.UZGRRDHD.js","./chunk.XANVHJQ4.js","./chunk.OKRNJXTV.js","./chunk.CAVBSL27.js","./chunk.COQKECUH.js","./chunk.EJPI3ST6.js","./chunk.CWHRDBOF.js","./chunk.3K6YSVHC.js","./chunk.SHTJZ6UX.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.G5NZVPJU.js","./chunk.WVUJXDXZ.js","./chunk.ULRW47RP.js","./chunk.PBSMLINK.js","./chunk.3TY5NFLY.js","./chunk.D75KC3LL.js","./chunk.FWTIUYXH.js","./chunk.MAF7C3VM.js","./chunk.GZHZLJBF.js","./chunk.XMC7YDWT.js","./chunk.6UGEYZAC.js","./chunk.OJGHDWI6.js","./chunk.B2GLDIAS.js","./chunk.6YCBYL2Y.js","./chunk.UGFJKSHU.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.26LLZN3C.js")))),ke=ye.part((e,t)=>{let n=e.DraftFrame;return(0,G.jsx)(n,{...t})},{what:"The view"});function We(e){let{seatTalk:t}=k();return(0,z.useSyncExternalStore)(t.subscribe,()=>t.get().draft!==null,()=>!1)?(0,G.jsx)(z.Suspense,{fallback:null,children:(0,G.jsx)(ke,{...e})}):null}var T=l(D(),1),A=l(w(),1),ce=S(b(()=>(__graviewPreload(import.meta.url,["./chunk.DAZ2VSRD.js","./chunk.AKFKM4SW.js","./chunk.XANVHJQ4.js","./chunk.OKRNJXTV.js","./chunk.CAVBSL27.js","./chunk.5UL7YDUD.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.PBSMLINK.js","./chunk.B2GLDIAS.js","./chunk.6YCBYL2Y.js","./chunk.UGFJKSHU.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.N6OX4NEQ.js")))),we=ce.part((e,t)=>{let n=e.QuickAskCard;return(0,A.jsx)(n,{...t})},{what:"The quick ask"});function Fe({face:e,on:t=!0}){let{ai:n,aiDesk:r,selection:c,view:u}=k(),m=Z()?.open??!1,i=t&&E(n)&&!m,g=oe(r),p=(0,T.useRef)(null),h=(0,T.useRef)({selection:c,place:u.within?.view});return h.current={selection:c,place:u.within?.view},(0,T.useEffect)(()=>{if(!i)return;let s=ne(r);return s.drawn+=1,q(s),()=>{s.drawn=Math.max(0,s.drawn-1),s.drawn===0&&(s.open=null),q(s)}},[i,r]),(0,T.useEffect)(()=>{if(!i)return;let s=y=>{if(y.defaultPrevented||y.key.toLowerCase()!=="k"||!(y.metaKey||y.ctrlKey)||y.altKey||y.shiftKey)return;let v=p.current?.closest("[data-graview-embed]"),a=y.target,d=!(a instanceof Node)||a===document.body||a===document.documentElement;if(v&&!(d||a instanceof Node&&v.contains(a)))return;y.preventDefault(),ce.prefetch();let f=document.activeElement,{selection:I,place:M}=h.current;B(r,{pointed:{...I[0]!==void 0?{on:I[0]}:{},about:I,...M?{place:M}:{}},returnTo:f instanceof HTMLElement&&f!==document.body?f:null})};return window.addEventListener("keydown",s,!0),()=>window.removeEventListener("keydown",s,!0)},[i,r]),i?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("span",{ref:p,hidden:!0,"data-graview-quick-ask":e}),g?(0,A.jsx)(T.Suspense,{fallback:null,children:(0,A.jsx)(we,{face:e,opening:g,close:()=>B(r,null)},g.at)}):null]}):null}var P=l(D(),1),C=l(w(),1),de=S(b(()=>(__graviewPreload(import.meta.url,["./chunk.AKFKM4SW.js","./chunk.XANVHJQ4.js","./chunk.OKRNJXTV.js","./chunk.CAVBSL27.js","./chunk.5UL7YDUD.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.PBSMLINK.js","./chunk.B2GLDIAS.js","./chunk.6YCBYL2Y.js","./chunk.UGFJKSHU.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.KSES5U5B.js")))),ve=de.part((e,t)=>{let n=e.InlineAiMenu;return(0,C.jsx)(n,{...t})},{what:"The AI's suggestions"}),be=de.part((e,t)=>{let n=e.GhostTray;return(0,C.jsx)(n,{...t})},{quiet:!0});function Se(){let{ai:e}=k(),t=E(e);return(0,P.useMemo)(()=>t?n=>({id:"inline-ai",heading:"AI",render:r=>(0,C.jsx)(P.Suspense,{fallback:null,children:(0,C.jsx)(ve,{target:n,close:r})})}):null,[t])}var Me=[];function Ye({children:e}){let t=Se(),n=(0,P.useMemo)(()=>t?[t]:Me,[t]);return(0,C.jsx)(le,{sections:n,children:e})}function je(e){let{ai:t,aiDesk:n}=k(),{ghost:r}=X(n);return r===null||r.onCard||t.off?null:(0,C.jsx)(P.Suspense,{fallback:null,children:(0,C.jsx)(be,{...e})})}function Xe(e={}){return e.scope===void 0?$:J($,e.scope)}var L=l(D(),1),o=l(w(),1);function at({inside:e=!1,widthOf:t}={}){let{store:n,view:r,emphasis:c,setEmphasis:u}=k(),m=ie(),{selection:i,set:g}=N(),{show:p}=te(),h=O(),s=(0,L.useMemo)(()=>{let a=new Map;for(let d of n.graph.allEdges()){let f=a.get(d.kind)??{count:0,ends:new Set};f.count+=1;for(let I of[d.from,d.to]){let M=n.graph.getNode(I);M&&f.ends.add(`kind:${M.kind}`)}a.set(d.kind,f)}return[...a.entries()].sort(([d],[f])=>d.localeCompare(f)).map(([d,f])=>({kind:d,count:f.count,ends:[...f.ends]}))},[n,h]),y=Math.max(0,...s.map(a=>a.count));if((0,L.useEffect)(()=>()=>u(null),[u]),!r.overview&&!e||s.length===0)return null;let v=new Set;for(let a of i){if(a.startsWith("kind:")){v.add(a);continue}let d=n.graph.getNode(a);d&&v.add(`kind:${d.kind}`)}return(0,o.jsxs)("section",{"aria-label":"What the lines mean",role:e?"group":void 0,"data-testid":"relation-key",style:e?{display:"grid",gap:1}:{position:"absolute",left:16,top:14,zIndex:K("rail"),display:"grid",gap:1,padding:"8px 10px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",maxWidth:Ae,animation:"graview-settle 380ms 280ms ease backwards"},children:[e?null:(0,o.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",paddingBottom:2},children:s.length===1?"1 relation":`${s.length} relations`}),t?(0,o.jsx)(xe,{aloft:r.overview===!0}):null,s.map(({kind:a,count:d,ends:f})=>{let{connector:I,style:M}=_(m,a),R=Ie(n.schema,a),pe=c!==null?c===a:v.size===0||f.some(me=>v.has(me));return(0,o.jsxs)("button",{type:"button",title:n.schema.edge(a)?.description===void 0?`${d} of these`:R.words,onMouseEnter:()=>u(a),onMouseLeave:()=>u(null),onFocus:()=>u(a),onBlur:()=>u(null),onClick:()=>{g(f),p(null)},style:{all:"unset",outline:"revert-layer",cursor:"pointer",display:"grid",gridTemplateColumns:"30px 1fr auto",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px",borderRadius:6,opacity:pe?1:.4},children:[(0,o.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",style:{display:"block",opacity:I.visible?1:.35},children:r.overview&&t?(0,o.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",className:"graview-key-ribbon",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:t(d,y)}):(0,o.jsx)("path",{d:"M 1 5 L 29 5",fill:"none",stroke:Q(M),strokeWidth:H(M,!0),strokeDasharray:F[M.pattern],strokeLinecap:"round"})}),(0,o.jsxs)("span",{style:{display:"grid",minWidth:0},"data-graview-relation-words":a,children:[(0,o.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink)"},children:R.words}),(0,o.jsx)("span",{style:{fontSize:"0.6875rem",color:"var(--graview-ink-faint)"},children:R.ends})]}),I.visible?null:(0,o.jsx)("span",{"data-graview-quiet":a,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontStyle:"italic"},children:"not drawn"}),(0,o.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},children:d})]},a)})]})}var Ae="min(280px, calc(100% - 28px))";function Ie(e,t,n){let r=e.edge(t)?.from??[],c=new Map;for(let i of n!==void 0&&r.includes(n)?[n]:r.length>0?r:[""]){let g=se(e,i,t,"out");c.set(g,[...c.get(g)??[],i])}let u=i=>i==="*"?"anything":j(e,i),m=[...c].map(([i,g])=>{let p=g.flatMap(s=>e.tryDefinition(s)?.edges[t]?.to??[]),h=g[0]&&p.length>0?`${g.map(u).join(", ")} \u2192 ${(p.includes("*")?["*"]:[...new Set(p)]).map(u).join(", ")}`:"";return[i.charAt(0).toUpperCase()+i.slice(1),h]});return{words:m.map(([i])=>i).join(" \xB7 "),ends:m.flatMap(([,i])=>i?[i]:[]).join(" \xB7 ")}}function st({edgeKind:e,kit:t,width:n=30}){let r=ee(),c=(0,L.useMemo)(()=>U(t??r?.brand?.kit),[t,r?.brand?.kit]),{connector:u,style:m}=_(c,e);return(0,o.jsx)("svg",{width:n,height:"8","aria-hidden":"true","data-testid":"relation-mark","data-graview-relation":e,style:{display:"inline-block",verticalAlign:"middle",opacity:u.visible?1:.35},children:(0,o.jsx)("path",{d:`M 1 4 L ${n-1} 4`,fill:"none",stroke:Q(m),strokeWidth:H(m,!0),strokeDasharray:F[m.pattern],strokeLinecap:"round"})})}function xe({aloft:e}){let t={display:"grid",gridTemplateColumns:"30px 1fr",alignItems:"center",gap:8,minHeight:23,padding:"2px 4px"},n={fontSize:"0.75rem",color:"var(--graview-ink-muted)"};return(0,o.jsxs)("div",{role:"group","aria-label":"The lines","data-testid":"line-manners",style:{display:"grid",gap:1,paddingBottom:6,marginBottom:4,borderBottom:"1px solid var(--graview-edge)"},children:[e?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{style:t,"data-graview-manner":"ribbon",children:[(0,o.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-ink)",strokeOpacity:.35,strokeWidth:6})}),(0,o.jsx)("span",{style:n,children:"A relation between two districts, as wide as the links along it \u2014 point at one for its words"})]}),(0,o.jsxs)("div",{style:t,"data-graview-manner":"record",children:[(0,o.jsxs)("svg",{width:"30",height:"10","aria-hidden":"true",children:[(0,o.jsx)("path",{d:"M 1 5 L 25 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeLinecap:"round"}),(0,o.jsx)("circle",{cx:26,cy:5,r:3,fill:"var(--graview-accent)"})]}),(0,o.jsx)("span",{style:n,children:"A chosen record's link to another record, labeled with the relation"})]}),(0,o.jsxs)("div",{style:t,"data-graview-manner":"district",children:[(0,o.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeWidth:1.8,strokeDasharray:"5 4"})}),(0,o.jsx)("span",{style:n,children:"A chosen record's links into a district, with how many"})]})]}):null,(0,o.jsxs)("div",{style:t,"data-graview-manner":"unsure",children:[(0,o.jsx)("svg",{width:"30",height:"10","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M 1 5 L 29 5",stroke:"var(--graview-accent)",strokeOpacity:ae,strokeWidth:1.8,strokeDasharray:re,strokeLinecap:"round"})}),(0,o.jsx)("span",{style:n,children:"Unsure: a link its maker was less than sure of, until a person keeps it \u2014 point at its words for what it was based on"})]})]})}var ue=l(D(),1),Y=l(w(),1),Te=S(b(()=>(__graviewPreload(import.meta.url,["./chunk.COQKECUH.js","./chunk.EJPI3ST6.js","./chunk.3K6YSVHC.js","./chunk.SHTJZ6UX.js","./chunk.UT6642FC.js","./chunk.TI4OSTQV.js","./chunk.B2GLDIAS.js","./chunk.6YCBYL2Y.js","./chunk.UGFJKSHU.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.7GKUVQVF.js")))),Ce=Te.part(e=>(0,Y.jsx)(e.SuggestedTray,{}),{quiet:!0});function dt(){let{store:e}=k(),t=O();return(0,ue.useMemo)(()=>e.log.all().some(r=>r.suggests!==void 0&&!r.withheld),[e,t])?(0,Y.jsx)(Ce,{}):null}export{Le as a,We as b,Fe as c,at as d,Ae as e,st as f,Se as g,Ye as h,je as i,Xe as j,dt as k};
@@ -1,25 +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{Aa as kn,Fc as In,I as xn,Kb as Pn,La as An,Tc as Cn,Yc as He,Zc as st,ec as Rn,pc as Tn,rc as Mn,ua as En,uc as On,ya as at}from"./chunk.MNP4JI33.js";import{a as Le,b as L}from"./chunk.AJZBJBMO.js";var Qn=Le(w=>{"use strict";var yt=Symbol.for("react.transitional.element"),pr=Symbol.for("react.portal"),yr=Symbol.for("react.fragment"),mr=Symbol.for("react.strict_mode"),gr=Symbol.for("react.profiler"),hr=Symbol.for("react.consumer"),Sr=Symbol.for("react.context"),wr=Symbol.for("react.forward_ref"),vr=Symbol.for("react.suspense"),br=Symbol.for("react.memo"),zn=Symbol.for("react.lazy"),xr=Symbol.for("react.activity"),Kn=Symbol.iterator;function Er(e){return e===null||typeof e!="object"?null:(e=Kn&&e[Kn]||e["@@iterator"],typeof e=="function"?e:null)}var Un={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Yn=Object.assign,Xn={};function pe(e,t,n){this.props=e,this.context=t,this.refs=Xn,this.updater=n||Un}pe.prototype.isReactComponent={};pe.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};pe.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Jn(){}Jn.prototype=pe.prototype;function mt(e,t,n){this.props=e,this.context=t,this.refs=Xn,this.updater=n||Un}var gt=mt.prototype=new Jn;gt.constructor=mt;Yn(gt,pe.prototype);gt.isPureReactComponent=!0;var Bn=Array.isArray;function pt(){}var R={H:null,A:null,T:null,S:null},Zn=Object.prototype.hasOwnProperty;function ht(e,t,n){var o=n.ref;return{$$typeof:yt,type:e,key:t,ref:o!==void 0?o:null,props:n}}function kr(e,t){return ht(e.type,t,e.props)}function St(e){return typeof e=="object"&&e!==null&&e.$$typeof===yt}function Ar(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var $n=/\/+/g;function ft(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Ar(""+e.key):t.toString(36)}function Pr(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(pt,pt):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function fe(e,t,n,o,r){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(i){case"bigint":case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case yt:case pr:a=!0;break;case zn:return a=e._init,fe(a(e._payload),t,n,o,r)}}if(a)return r=r(e),a=o===""?"."+ft(e,0):o,Bn(r)?(n="",a!=null&&(n=a.replace($n,"$&/")+"/"),fe(r,t,n,"",function(u){return u})):r!=null&&(St(r)&&(r=kr(r,n+(r.key==null||e&&e.key===r.key?"":(""+r.key).replace($n,"$&/")+"/")+a)),t.push(r)),1;a=0;var d=o===""?".":o+":";if(Bn(e))for(var s=0;s<e.length;s++)o=e[s],i=d+ft(o,s),a+=fe(o,t,n,i,r);else if(s=Er(e),typeof s=="function")for(e=s.call(e),s=0;!(o=e.next()).done;)o=o.value,i=d+ft(o,s++),a+=fe(o,t,n,i,r);else if(i==="object"){if(typeof e.then=="function")return fe(Pr(e),t,n,o,r);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return a}function Be(e,t,n){if(e==null)return e;var o=[],r=0;return fe(e,o,"","",function(i){return t.call(n,i,r++)}),o}function Rr(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var qn=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Tr={map:Be,forEach:function(e,t,n){Be(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Be(e,function(){t++}),t},toArray:function(e){return Be(e,function(t){return t})||[]},only:function(e){if(!St(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};w.Activity=xr;w.Children=Tr;w.Component=pe;w.Fragment=yr;w.Profiler=gr;w.PureComponent=mt;w.StrictMode=mr;w.Suspense=vr;w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=R;w.__COMPILER_RUNTIME={__proto__:null,c:function(e){return R.H.useMemoCache(e)}};w.cache=function(e){return function(){return e.apply(null,arguments)}};w.cacheSignal=function(){return null};w.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var o=Yn({},e.props),r=e.key;if(t!=null)for(i in t.key!==void 0&&(r=""+t.key),t)!Zn.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(o[i]=t[i]);var i=arguments.length-2;if(i===1)o.children=n;else if(1<i){for(var a=Array(i),d=0;d<i;d++)a[d]=arguments[d+2];o.children=a}return ht(e.type,r,o)};w.createContext=function(e){return e={$$typeof:Sr,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:hr,_context:e},e};w.createElement=function(e,t,n){var o,r={},i=null;if(t!=null)for(o in t.key!==void 0&&(i=""+t.key),t)Zn.call(t,o)&&o!=="key"&&o!=="__self"&&o!=="__source"&&(r[o]=t[o]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var d=Array(a),s=0;s<a;s++)d[s]=arguments[s+2];r.children=d}if(e&&e.defaultProps)for(o in a=e.defaultProps,a)r[o]===void 0&&(r[o]=a[o]);return ht(e,i,r)};w.createRef=function(){return{current:null}};w.forwardRef=function(e){return{$$typeof:wr,render:e}};w.isValidElement=St;w.lazy=function(e){return{$$typeof:zn,_payload:{_status:-1,_result:e},_init:Rr}};w.memo=function(e,t){return{$$typeof:br,type:e,compare:t===void 0?null:t}};w.startTransition=function(e){var t=R.T,n={};R.T=n;try{var o=e(),r=R.S;r!==null&&r(n,o),typeof o=="object"&&o!==null&&typeof o.then=="function"&&o.then(pt,qn)}catch(i){qn(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),R.T=t}};w.unstable_useCacheRefresh=function(){return R.H.useCacheRefresh()};w.use=function(e){return R.H.use(e)};w.useActionState=function(e,t,n){return R.H.useActionState(e,t,n)};w.useCallback=function(e,t){return R.H.useCallback(e,t)};w.useContext=function(e){return R.H.useContext(e)};w.useDebugValue=function(){};w.useDeferredValue=function(e,t){return R.H.useDeferredValue(e,t)};w.useEffect=function(e,t){return R.H.useEffect(e,t)};w.useEffectEvent=function(e){return R.H.useEffectEvent(e)};w.useId=function(){return R.H.useId()};w.useImperativeHandle=function(e,t,n){return R.H.useImperativeHandle(e,t,n)};w.useInsertionEffect=function(e,t){return R.H.useInsertionEffect(e,t)};w.useLayoutEffect=function(e,t){return R.H.useLayoutEffect(e,t)};w.useMemo=function(e,t){return R.H.useMemo(e,t)};w.useOptimistic=function(e,t){return R.H.useOptimistic(e,t)};w.useReducer=function(e,t,n){return R.H.useReducer(e,t,n)};w.useRef=function(e){return R.H.useRef(e)};w.useState=function(e){return R.H.useState(e)};w.useSyncExternalStore=function(e,t,n){return R.H.useSyncExternalStore(e,t,n)};w.useTransition=function(){return R.H.useTransition()};w.version="19.2.8"});var j=Le((ta,eo)=>{"use strict";eo.exports=Qn()});var uo=Le(ze=>{"use strict";var Nr=Symbol.for("react.transitional.element"),jr=Symbol.for("react.fragment");function lo(e,t,n){var o=null;if(n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),"key"in t){n={};for(var r in t)r!=="key"&&(n[r]=t[r])}else n=t;return t=n.ref,{$$typeof:Nr,type:e,key:o,ref:t!==void 0?t:null,props:n}}ze.Fragment=jr;ze.jsx=lo;ze.jsxs=lo});var Te=Le((da,co)=>{"use strict";co.exports=uo()});function _n(e){let t,n=!1,o,r,i=0;return()=>{if(n)return Promise.resolve(t);if(o)return o;let a=i>0&&r!==void 0?sr(r):e();i+=1;let d=a.then(s=>(t=s,n=!0,o=void 0,s),s=>{throw o=void 0,r??=lr(s),s});return o=d,d}}var Vn=0;function sr(e){return Vn+=1,import(`${e}${e.includes("?")?"&":"?"}retry=${Vn}`)}function lr(e,t=import.meta.url){let n=e instanceof Error?e.message:typeof e=="string"?e:"",o=/^(?:Failed to fetch|error loading) dynamically imported module: ([a-z]+:\/\/[^\s"'<>]+)/.exec(n)?.[1]?.replace(/[.,;:)\]]+$/,""),r=i=>i.split("/",3).join("/");return o&&r(o)===r(t)?o:void 0}var de={focusId:null,relation:null,expanded:[],pins:{}},De=e=>{let t=Number(e);return Number.isFinite(t)?t:null};function Z(e){let t=new URLSearchParams;e.focusId&&t.set("focus",e.focusId),e.relation&&t.set("relation",e.relation),e.overview&&t.set("overview","1"),e.zoom&&t.set("zoom","1"),e.past&&t.set("past","1"),e.shown&&e.shown.length>0&&t.set("show",[...e.shown].sort().join(",")),e.selection!==void 0&&e.selection.length>0&&t.set("sel",[...e.selection].sort().join(",")),e.expanded.length>0&&t.set("expand",[...e.expanded].sort().join(","));for(let o of Object.keys(e.pins).sort()){let r=e.pins[o];t.set(`pin.${o}`,`${Ne(r.x)},${Ne(r.y)}`)}e.pan&&(e.pan.x!==0||e.pan.y!==0)&&t.set("pan",`${Ne(e.pan.x)},${Ne(e.pan.y)}`);for(let o of Object.keys(e.within??{}).sort()){let r=e.within[o];r.length>0&&t.set(`in.${o}`,r)}e.q&&e.q.trim().length>0&&t.set("q",e.q);let n=t.toString();return n?`#${n}`:"#"}function dr(e){return e&&e.startsWith("agg:")?`aggregate:${e.slice(4)}`:e}function je(e){let t=e.includes("#")?e.slice(e.indexOf("#")+1):e,n=new URLSearchParams(t),o=Object.create(null);for(let[S,p]of n){if(!S.startsWith("pin."))continue;let[g,y]=p.split(","),x=g===void 0?null:De(g),m=y===void 0?null:De(y);x===null||m===null||(o[S.slice(4)]={x,y:m})}let r=Object.create(null);for(let[S,p]of n)!S.startsWith("in.")||p.length===0||(r[S.slice(3)]=p);let i=n.get("view");i&&i.length>0&&r.view===void 0&&(r.view=i);let a=n.get("pan")?.split(",")??[],d=a[0]===void 0?null:De(a[0]),s=a[1]===void 0?null:De(a[1]),u=(n.get("sel")??"").split(",").filter(S=>S.length>0).sort(),f=n.get("overview")==="1";return{...u.length>0?{selection:u}:{},...f?{overview:!0}:{},...n.get("zoom")==="1"?{zoom:!0}:{},...n.get("past")==="1"?{past:!0}:{},...n.get("show")?{shown:[...new Set(n.get("show").split(",").filter(Boolean))].sort()}:{},...d!==null&&s!==null?{pan:{x:d,y:s}}:{},...Object.keys(r).length>0?{within:r}:{},...n.get("q")?.trim()?{q:n.get("q")}:{},focusId:dr(n.get("focus")),relation:n.get("relation"),expanded:(n.get("expand")??"").split(",").filter(S=>S.length>0&&(f||!S.startsWith("kind:"))).sort(),pins:o}}function Ni(e){let t=je(e);return Z(t)==="#"?{...t,overview:!0}:t}function ji(e){let t=Z(e);return t==="#overview=1"?"":t}function Ne(e){return Math.round(e*100)/100}function Hn(e,t){return Z(e)===Z(t)}var Ln="edge:";function Dn(e){if(!e.startsWith(Ln))return null;let t=e.slice(Ln.length).split(":");if(t.length!==3)return null;let[n,o,r]=t;if(!n||!o||!r)return null;try{return{kind:decodeURIComponent(n),from:decodeURIComponent(o),to:decodeURIComponent(r)}}catch{return null}}function lt(e){let{pan:t,...n}=e;return{...n,pins:{}}}function $(e,t){if(t===e.focusId)return{...e,focusId:t};let n=lt(e);return{...n.within?.q!==void 0?ie(n,"q",null):n,focusId:t}}function Nn(e,t){return{...e,relation:t}}function ie(e,t,n){let o={...e.within??{}};if(n===null?delete o[t]:o[t]=n,Object.keys(o).length===0){let{within:r,...i}=e;return i}return{...e,within:o}}function ue(e,t){if(t!==e.overview&&(e=lt(e)),!t){let n=e.expanded.filter(o=>!o.startsWith("kind:"));return{...e,overview:!1,expanded:n}}return{...e,overview:t}}function Ge(e,t){if(t.length===0){let{selection:n,...o}=e;return o}return{...e,selection:[...t]}}function Pe(e,t){if(t!==(e.zoom===!0)&&(e=lt(e)),!t){let{zoom:n,...o}=e;return o}return{...e,zoom:!0}}function We(e,t){let n=new Set(e.expanded);return n.has(t)?n.delete(t):n.add(t),{...e,expanded:[...n].sort()}}var Ke="aggregate:",Fe="kind:";function dt(e){return`${Fe}${e}`}function ce(e){return e.startsWith(Fe)?e.slice(Fe.length):null}var Fi="kinds:beyond";function ur(e){let t=ce(e);return t?[t]:ae(e)}function Q(...e){return`${Ke}${[...e].sort().join("+")}`}function jn(e){return e.startsWith(Ke)}function ae(e){return!jn(e)||e.includes("|")?[]:e.slice(Ke.length).split("+").filter(Boolean)}function Gn(e,t,n={}){let o=ce(t);if(o!==null&&e.overview&&n.ownPicture!==!0)return We(e,t);let r=o!==null?Q(o):t;if(e.zoom&&e.focusId===r&&!(o!==null&&n.carry))return Pe(e,!1);if(o!==null&&n.carry){let i=ue({...$(e,r),relation:null},!1);return ie(Pe(i,!0),"q",n.carry)}return Pe({...$(e,r),relation:null},!0)}function cr(e,t,n){return ie(ue($(e,Q(t)),!1),"view",n)}function Ki(e,t){return e.id<t.id?-1:e.id>t.id?1:0}var Wn="aggregate:";function ut(e){return e.startsWith(Wn)&&e.includes("|")}var Fn=e=>e?.off===!0,fr=e=>e!==void 0&&!Fn(e)&&(e.fast!==void 0||e.thinking!==void 0||e.answer!==void 0||e.decide!==void 0||e.complete!==void 0||e.turn!==void 0),ct={};var to=L(j(),1),Mr={turns:[],outcomes:new Map,busy:!1,pending:null,draft:null,draftNote:null},no=e=>`graview:seat:${e}`;function Or(e){if(!e)return{};try{let t=sessionStorage.getItem(e);if(!t)return{};let n=JSON.parse(t);return{...Array.isArray(n.turns)?{turns:n.turns}:{},...Array.isArray(n.outcomes)?{outcomes:new Map(n.outcomes)}:{},...n.draft?.drawn?{draft:n.draft}:{}}}catch{return{}}}function Ir(e,t){if(e)try{sessionStorage.setItem(e,JSON.stringify({turns:t.turns.slice(-40),outcomes:[...t.outcomes],draft:t.draft}))}catch{}}function wt(e){let t=e===null?null:no(e),n={...Mr,...Or(t)},o=new Set,r=(i,a=!0)=>{n=i,a&&Ir(t,n);for(let d of[...o])d()};return{get:()=>n,subscribe(i){return o.add(i),()=>void o.delete(i)},setTurns:i=>r({...n,turns:i(n.turns)}),settle:(i,a)=>r({...n,outcomes:new Map(n.outcomes).set(i,a)}),setBusy:i=>r({...n,busy:i},!1),ask:i=>r({...n,pending:i.trim()||null}),takePending(){let i=n.pending;return i!==null&&r({...n,pending:null},!1),i},setDraft:(i,a=null)=>r({...n,draft:i,draftNote:a})}}function Cr(e){return(0,to.useSyncExternalStore)(e.subscribe,e.get,e.get)}var ro=L(j(),1),Vr={entries:[],ghost:null,loaded:!1};function oo(e,t){let n=new Map(e.map(o=>[o.id,o]));for(let o of t)n.set(o.id,{...n.get(o.id),...o});return[...n.values()].sort((o,r)=>o.at<r.at?1:o.at>r.at?-1:0)}function vt(e){let t=Vr,n=new Set,o=r=>{t=r;for(let i of[...n])i()};return{get:()=>t,subscribe:r=>(n.add(r),()=>n.delete(r)),record:r=>{o({...t,entries:oo(t.entries,[r])}),Promise.resolve(e()?.keep?.(r)).catch(i=>{console.warn("The host did not keep an AI interaction:",i)})},setGhost:r=>o({...t,ghost:r}),load:()=>{if(t.loaded)return;o({...t,loaded:!0});let r=e()?.load;r&&Promise.resolve(r()).then(i=>o({...t,entries:oo(t.entries,i)})).catch(i=>{console.warn("The host's AI interactions could not be read:",i)})}}}function _r(e){return(0,ro.useSyncExternalStore)(e.subscribe,e.get,e.get)}function io(e){return e?.closest?.("[data-graview-pick]")?.getAttribute("data-graview-pick")??null}var $e=L(j(),1),qe=(0,$e.createContext)(void 0),Lr=()=>(0,$e.useContext)(qe);var O=L(j(),1),Re=(0,O.createContext)(null);function so(){return(0,O.useContext)(Re)}function Hr(e,t){let n=so(),o=(0,O.useMemo)(()=>n?n.live.seenBy(t):e,[n,e,t]),r=(0,O.useRef)(0),i=(0,O.useCallback)(a=>o.subscribe(()=>{r.current+=1,a()}),[o]);return(0,O.useSyncExternalStore)(i,()=>r.current,()=>0),o}var Dr=_n(()=>(__graviewPreload(import.meta.url,["./chunk.TI4OSTQV.js","./chunk.AJZBJBMO.js"]),import("./chunk.SHPXD6FC.js"))),ao;function bt(e,t,n){let o=(0,O.useContext)(Re),r=o!==null&&o.owns(e,t),[i,a]=(0,O.useState)(null),[d,s]=(0,O.useState)(ao);(0,O.useEffect)(()=>{if(d||r||i===null)return;let y=!0;return Dr().then(x=>{ao=x,y&&s(x)},()=>{}),()=>{y=!1}},[d,r,i]);let u=(0,O.useMemo)(()=>{if(r||i===null||i>=e.log.length||!d)return null;try{let y=d.pastAt(e,i,n);return{seq:i,at:y.past?.at,store:y}}catch{return null}},[r,e,i,n,d]),f=(0,O.useCallback)(y=>a(y===null?null:y>=e.log.length?Number.POSITIVE_INFINITY:y),[e]),S=(0,O.useCallback)((y,x)=>[e,u?.store].some(m=>m!==void 0&&(m===y||m.seenBy(x)===y)),[e,u]),p=i!==null,g=(0,O.useMemo)(()=>({past:u,open:p,show:f,live:e,host:n,owns:S}),[u,p,f,e,n,S]);return r?o:g}var fo=e=>`graview:setting:${e}`;function po(){return localStorage}function yo(e,t){try{let n=(t??po()).getItem(fo(e.name));if(n!==null&&e.options.some(o=>o.value===n))return n}catch{}return e.initial}function mo(e,t,n){try{(n??po()).setItem(fo(e.name),t)}catch{}}function go(e,t){if(typeof document>"u")return;let n=document.documentElement;if(e.honored==="root-font-size"){n.style.fontSize=t===e.initial?"":t;return}let o=`graview${e.name.replace(/-([a-z0-9])/g,(r,i)=>i.toUpperCase()).replace(/^[a-z]/,r=>r.toUpperCase())}`;t===e.initial?delete n.dataset[o]:n.dataset[o]=t}var I=L(j(),1);function xt(e){return He(e)}var Gr=12,Wr=4;function Fr(e,t,n){let o=xt(t);return e.get(o)??{participant:o,who:t.id??t.kind,at:null,mode:"docked",since:n,trail:[]}}var Ue=(e,t)=>t===null||e[e.length-1]===t?e:[...e,t].slice(-Gr);function ho(e,t){let n=e.filter(r=>r.length>0);if(n.length===0)return null;if(n.length<=Wr)return n[0];let o=new Set(n.map(r=>t(r)).filter(r=>r!==void 0));return o.size===1?dt([...o][0]):n[0]}function Et(e,t,n){let o=new Map(e);if(t.type==="rest"){for(let[a,d]of e)d.mode!=="asking"&&d.mode!=="docked"&&t.at-d.since>=t.holdMs&&o.set(a,{...d,mode:"docked",at:null,trail:[],say:void 0,confidence:void 0});return o}if(t.author.kind!=="agent")return o;let r=Fr(e,t.author,t.at),i=a=>o.set(r.participant,{...r,...a,since:t.at});switch(t.type){case"read":{let a=ho(t.ids,n);return i({at:a,mode:"reading",trail:Ue(r.trail,a)}),o}case"about-to-write":case"write":{let a=ho(t.ids,n);return i({at:a,mode:"writing",trail:Ue(r.trail,a),say:void 0,confidence:void 0}),o}case"refused":return i({at:t.where,mode:"refused",say:t.say,confidence:void 0,trail:Ue(r.trail,t.where)}),o;case"asking":return i({at:t.where??r.at,mode:"asking",say:t.say,...t.confidence!==void 0?{confidence:t.confidence}:{confidence:void 0},trail:Ue(r.trail,t.where)}),o;case"said":return i({say:t.say,...t.confidence!==void 0?{confidence:t.confidence}:{confidence:void 0},...t.caption?{caption:t.caption}:{}}),o;case"over":return i({over:t.over}),o;case"home":return i({at:null,mode:"docked",trail:[],say:void 0,confidence:void 0,over:null}),o;default:return o}}var So="graview:session";function wo(e){let t=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID().slice(0,8):Math.random().toString(36).slice(2,10);try{let n=e??sessionStorage,o=n.getItem(So);if(o)return o;let r=t();return n.setItem(So,r),r}catch{return t()}}var kt={name:"share-where",title:"Where you are",description:"Whether the others here see which stop you are on.",honored:"root-attribute",options:[{value:"shared",label:"Shown"},{value:"private",label:"Hidden"}],initial:"shared"},At={name:"share-over",title:"What you point at",description:"Whether the others see the thing under your pointer, outlined in your color.",honored:"root-attribute",options:[{value:"private",label:"Kept to yourself"},{value:"shared",label:"Outlined for others"}],initial:"private"},vo=[kt,At],Br=800;function bo(e){let{channel:t,store:n,view:o,principal:r,session:i,robots:a,seatWho:d,settingValues:s,setView:u,ttlMs:f=1e4,people:S,seats:p}=e,[g,y]=(0,I.useState)(()=>new Map),[x,m]=(0,I.useState)(null),[b,v]=(0,I.useState)(null),[E,M]=(0,I.useState)(null),F=typeof r.id=="string"&&r.id.length>0,C=F&&(s[kt.name]??kt.initial)==="shared",K=C&&(s[At.name]??At.initial)==="shared",H=xt({kind:r.kind,...r.id?{id:r.id}:{},session:i}),V=F?An(r,{graph:n.graph,schema:n.schema,...p?{seats:p}:{},...S?{people:S}:{}}):"",_=d?a.get(`agent:${d}:${i}`):void 0,N=(0,I.useMemo)(()=>!t||!C?null:{participant:H,kind:r.kind,name:V,...r.onBehalfOf?.id?{onBehalfOf:r.onBehalfOf.id,...r.onBehalfOf.name?{onBehalfOfName:r.onBehalfOf.name}:{}}:{},hue:Pn(r.id??"nobody"),stop:E??Z(o),...K?{over:x}:{},..._?{robot:{at:_.at,mode:_.mode}}:{},at:new Date().toISOString()},[t,C,K,H,V,r.id,r.kind,r.onBehalfOf?.id,r.onBehalfOf?.name,o,E,x,_?.at,_?.mode]);(0,I.useEffect)(()=>{if(!t||!N)return;t.here(N);let k=setInterval(()=>t.here({...N,at:new Date().toISOString()}),Br);return()=>clearInterval(k)},[t,N]),(0,I.useEffect)(()=>t?t.onWho(W=>y(st(new Map,W,Date.now(),f))):void 0,[t,f]);let Ie=g.size>0;(0,I.useEffect)(()=>{if(!Ie)return;let k=setInterval(()=>{y(W=>{let ne=st(W,[],Date.now(),f);return ne.size===W.size?W:ne})},Math.max(250,Math.min(1e3,f/4)));return()=>clearInterval(k)},[Ie,f]),(0,I.useEffect)(()=>{if(!t||typeof window>"u")return;let k=()=>t.leave();return window.addEventListener("pagehide",k),()=>window.removeEventListener("pagehide",k)},[t]),(0,I.useEffect)(()=>{if(!K||typeof document>"u")return;let k=null,W=ne=>{let T=io(ne.target);T!==k&&(k=T,m(T))};return document.addEventListener("pointermove",W,{passive:!0}),()=>document.removeEventListener("pointermove",W)},[K]);let te=(0,I.useRef)(null),Y=b?g.get(b)??null:null,Ce=(0,I.useCallback)(k=>{te.current=null,v(k)},[]);return(0,I.useEffect)(()=>{if(b){if(!Y){v(null);return}Y.stop!==te.current?.stop&&(te.current={stop:Y.stop,at:Date.now()},u(je(Y.stop)))}},[b,Y,u]),(0,I.useEffect)(()=>{let k=te.current;!b||k===null||Date.now()-k.at<400||Hn(o,je(k.stop))||v(null)},[o,b]),(0,I.useEffect)(()=>{if(!b||typeof document>"u")return;let k=W=>{W.key==="Escape"&&v(null)};return document.addEventListener("keydown",k),()=>document.removeEventListener("keydown",k)},[b]),(0,I.useMemo)(()=>({who:g,sharing:N?{participant:H,name:V}:null,following:Y,follow:Ce,sayWhere:M}),[g,N,H,V,Y,Ce])}var z=L(j(),1);function xo(e){return He(e.author)}function $r(e,t){return e.length>1?"co-edited":t==="rule"?"rule":t==="agent"?"autonomous":"directed"}function Eo(e,t,n,o,r){let i=new Map;for(let[s,u]of e)o-u.at<r&&i.set(s,u);let a=new Set(n.flatMap(s=>s.nodeIds)),d=(s,u,f)=>{let S=i.get(s),p=S?.participants.includes(xo(u))?S.participants:[...S?.participants??[],xo(u)];i.set(s,{at:o,manner:$r(p,u.author.kind),intent:u.intent,wrote:(S?.wrote??!1)||(f.wrote??!1),read:(S?.read??!1)||(f.read??!1),broke:(S?.broke??!1)||a.has(s),participants:p})};for(let s of t){for(let u of s.writes)d(u,s,{wrote:!0});for(let u of s.reads)s.writes.includes(u)||d(u,s,{read:!0})}for(let s of n)for(let u of s.nodeIds){let f=i.get(u);i.set(u,{at:o,manner:f?.manner??"rule",intent:f?.intent??s.message,wrote:f?.wrote??!1,read:f?.read??!1,broke:!0,participants:f?.participants??["rule::"]})}return i}var qr=2600;function ko(e,t=qr){let[n,o]=(0,z.useState)(()=>new Map),r=(0,z.useRef)(n);r.current=n;let i=(0,z.useRef)(null),a=(0,z.useCallback)(s=>{r.current=s,o(s),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r.current=new Map,o(new Map)},t)},[t]);(0,z.useEffect)(()=>{let s=e.violations(),u=e.subscribe((f,S)=>{let p=e.violations(),g=On(e.allInvariants(),s,p).introduces;s=p,a(Eo(r.current,S,g.map(y=>({nodeIds:y.nodeIds,message:y.message})),Date.now(),t))});return()=>{u(),i.current&&clearTimeout(i.current)}},[e,t,a]);let d=(0,z.useCallback)(s=>{s.reads.length!==0&&a(Eo(r.current,[zr(s)],[],Date.now(),t))},[t,a]);return{activity:n,noteAttention:d}}function zr(e){return{id:`attention:${e.intent}`,seq:-1,batch:"attention",author:e.author,intent:e.intent,mutation:null,primitives:[],inverse:[],reads:e.reads,writes:[],at:new Date().toISOString()}}var l=L(j(),1);function Ao(){let e=null,t=new Set,n=new Set,o=r=>{for(let i of n)i(r)};return{subscribe(r){return t.add(r),t.size===1&&o(!0),()=>{t.delete(r),t.size===0&&(e=null,o(!1))}},snapshot:()=>e,set(r){if(!(e===r||e&&r&&e.x===r.x&&e.y===r.y)){e=r;for(let i of t)i()}},get listeners(){return t.size},onActive(r){return n.add(r),()=>void n.delete(r)}}}var Ye=L(j(),1),Ur=e=>e.definitions.some(t=>En(t).size>0);function Po(e,t,n){let[o,r]=(0,Ye.useState)(void 0),i=(n.roles??[]).join("\0");return(0,Ye.useEffect)(()=>{if(!t||!Ur(e.schema)){r(void 0);return}let a=!0,d=!1,s=e.graph,u=()=>{d||(d=!0,queueMicrotask(()=>{d=!1,a&&e.reread()}))},f=kn(t,{kind:n.kind,...n.id===void 0?{}:{id:n.id},...n.roles?{roles:n.roles}:{}},u);return at(s,f.read),r(f),e.reread(),()=>{a=!1,at(s,void 0)}},[e,t,n.kind,n.id,i]),o}function Ro(){let e=!1,t=new Set;return{moving:()=>e,set(n){if(n!==e){e=n;for(let o of t)o()}},subscribe(n){return t.add(n),()=>t.delete(n)}}}var se=L(Te(),1),Me=(0,l.createContext)(null),Io=(0,l.createContext)("scene");function Yr({mode:e,children:t}){return(0,se.jsx)(Io.Provider,{value:e,children:t})}function Xr(){return(0,l.useContext)(Io)}var Co={kind:"human"},Jr=[],Zr=[],Qr=[],Pt=[];function Vo(e,t){let n=(0,l.useId)();(0,l.useEffect)(()=>{if(!globalThis.__graviewWatch)return;let o=t??Co,r=()=>Mn(e,o,n);r();let i,a=e.subscribe(()=>{clearTimeout(i),i=setTimeout(r,250)});return()=>{clearTimeout(i),a(),globalThis.__graviewWatch?.unseen?.({words:[],from:n,gone:!0})}},[e,t,n])}var ei={off:!0};function ti({store:e,views:t,initialView:n,scheme:o="dark",initialSelection:r,principal:i,seats:a=Jr,onSeat:d,people:s=Zr,memory:u,presenceTtlMs:f,app:S,settings:p=S?.settings??Qr,presence:g,brand:y,locale:x,onKeepLens:m,providers:b,ai:v,files:E,resolveApp:M,history:F,linkedRecords:C,menuSections:K,subscriptions:H,view:V,onViewChange:_,children:N}){let Ie=(0,l.useContext)(Me),te=K??Ie?.menuSections,[Y,Ce]=(0,l.useState)(null),k=Y??i??a[0]?.principal??Co,W=bt(e,k,F),ne=W.past&&W.live===e?W.past.store:e,T=(0,l.useMemo)(()=>ne.seenBy(k),[ne,k]);Vo(e,k);let[oe]=(0,l.useState)(()=>wo(u)),[Wt,Yo]=(0,l.useState)(!1),Ft=(0,l.useCallback)(()=>Yo(!0),[]),re=(0,l.useMemo)(()=>g?[...p,...vo]:p,[p,g]),[et]=(0,l.useState)(()=>n??Ot(t,e.schema)),[Xo,Kt]=(0,l.useState)(()=>Ge(et??de,r??et?.selection??[])),we=(0,l.useRef)(et??de).current,[Bt,Jo]=(0,l.useState)(null),[$t,Zo]=(0,l.useState)(null),X=(0,l.useContext)(Me),[qt]=(0,l.useState)(()=>X?.seatTalk??wt(y?.name??e.schema.kinds.join(","))),tt=v??X?.ai??ct,Ve=(0,l.useMemo)(()=>tt.off?ei:tt,[tt]),zt=(0,l.useRef)(Ve.interactions);zt.current=Ve.interactions;let[Ut]=(0,l.useState)(()=>X?.aiDesk??vt(()=>zt.current)),[Qo]=(0,l.useState)(()=>X?.subscriptions??Tn()),Yt=H??X?.subscriptions??Qo,nt=m??X?.onKeepLens,ot=S??X?.app,_e=x??X?.locale,er=y?.locale??ot?.brand?.locale;xn({reader:_e,app:er});let Xt=(0,l.useRef)(null),Jt=(0,l.useCallback)(c=>{Xt.current=c},[]),Zt=(0,l.useCallback)(c=>Xt.current?.whereIs(c)??null,[]),[Qt]=(0,l.useState)(()=>Ao()),[en]=(0,l.useState)(()=>Ro()),[rt,tr]=(0,l.useState)(null),[ve,tn]=(0,l.useState)(()=>new Map),be=(0,l.useRef)(ve);be.current=ve;let xe=(0,l.useRef)(null),it=(0,l.useCallback)(c=>T.graph.getNode(c)?.kind,[T]),J=(0,l.useCallback)(c=>{let h=Et(be.current,c,it);be.current=h,tn(h),xe.current&&clearTimeout(xe.current),[...h.values()].some(P=>P.mode!=="docked"&&P.mode!=="asking")&&(xe.current=setTimeout(()=>{let P=Et(be.current,{type:"rest",at:Date.now(),holdMs:Mt},it);be.current=P,tn(P)},Mt+20))},[it]),nn=(0,l.useCallback)(c=>J({...c,at:c.at??Date.now()}),[J]),on=(0,l.useCallback)(c=>{tr(c),c&&J({type:"home",author:{kind:"agent",id:c,session:oe},at:Date.now()})},[J,oe]);(0,l.useEffect)(()=>T.subscribe((c,h)=>{for(let A of h)A.author.kind==="agent"&&J({type:"write",author:A.author,ids:A.writes,at:Date.now()})}),[T,J]),(0,l.useEffect)(()=>()=>{xe.current&&clearTimeout(xe.current)},[]);let q=(0,l.useMemo)(()=>({...k,session:oe}),[k,oe]),rn=Po(T,C,q),an=(0,l.useCallback)(c=>{Ce(c),d?.(c)},[d]),[Ee,nr]=(0,l.useState)(()=>Object.fromEntries(re.map(c=>[c.name,yo(c,u)])));(0,l.useEffect)(()=>{for(let c of re)go(c,Ee[c.name]??c.initial)},[re,Ee]);let sn=(0,l.useCallback)((c,h)=>{let A=re.find(P=>P.name===c);!A||!A.options.some(P=>P.value===h)||(mo(A,h,u),nr(P=>({...P,[c]:h})))},[re,u]),[ln,or]=(0,l.useState)(null),{activity:dn,noteAttention:un}=ko(T),cn=(0,l.useCallback)(c=>{un(c),J({type:"read",author:c.author,ids:c.reads,at:Date.now()})},[un,J]),le=(0,l.useCallback)(c=>{if(ce(c)!==null||ae(c).length>0||ut(c))return!0;let h=Dn(c);return h?T.graph.allEdges().some(A=>A.kind===h.kind&&A.from===h.from&&A.to===h.to):T.graph.getNode(c)!==void 0},[T]),fn=(0,l.useCallback)(c=>{let h=c.selection??Pt,A=h.filter(le),P=A.length===h.length?c:Ge(c,A);return P.focusId!==null&&!le(P.focusId)&&(P=$(P,null)),P},[le]),ke=(0,l.useCallback)(c=>{let h=fn(c),A=Oo(T,q,h.shown);if(h.focusId!==null&&A.size>0){let P=ae(h.focusId),bn=T.graph.getNode(h.focusId);(P.length>0?P.every(ar=>A.has(ar)):bn?A.has(bn.kind):!1)&&(h={...h,focusId:null})}if(!h.overview&&h.focusId===null){let P=we.focusId!==null&&!le(we.focusId)?Ot(t,e.schema)??{...de,overview:!0}:we;P.focusId!==null&&le(P.focusId)?h={...h,focusId:P.focusId}:P.overview===!0&&(h={...h,overview:!0})}return h},[fn,le,T,we,q,t,e.schema]),B=ke(V??Xo),pn=(0,l.useMemo)(()=>Oo(T,q,B.shown),[T,q,B.shown]),yn=(0,l.useMemo)(()=>[...T.modules.administered.entries()].map(([c,h])=>{let A=T.mayAdminister(c,q);return{name:c,...h.description?{description:h.description}:{},kinds:h.kinds??[],canShow:A,shown:A&&(B.shown??[]).includes(c)}}),[T,q,B.shown]),Ae=(0,l.useCallback)(c=>{let h=A=>ke(typeof c=="function"?c(A):c);if(V!==void 0){_?.(h(V));return}_&&_(h(B)),Kt(A=>h(A))},[B,_,V,ke]);(0,l.useEffect)(()=>{V===void 0&&Kt(c=>{let h=ke(c);return h===c?c:h})},[B,V,ke]);let mn=B.selection??Pt,gn=(0,l.useCallback)(c=>{Ae(h=>Ge(h,typeof c=="function"?c(h.selection??Pt):c))},[Ae]),{who:hn,following:Sn,follow:wn,sayWhere:rr,sharing:vn}=bo({channel:g,store:T,view:B,principal:q,session:oe,robots:ve,seatWho:rt,settingValues:Ee,setView:Ae,seats:a,people:s,...f!==void 0?{ttlMs:f}:{}}),ir=(0,l.useMemo)(()=>({store:T,scheme:o,views:t,view:B,setView:Ae,homeView:we,selection:mn,setSelection:gn,menuAt:Bt,setMenuAt:Jo,whereIs:Zt,pointer:Qt,motion:en,registerScene:Jt,robots:ve,noteSeat:nn,seatWho:rt,registerSeatWho:on,actsDoor:$t,registerActsDoor:Zo,seatTalk:qt,aiDesk:Ut,...u?{memory:u}:{},who:hn,following:Sn,follow:wn,sayWhere:rr,sharing:vn,session:oe,ai:Ve,resolveApp:M,linkedRecords:C,menuSections:te,subscriptions:Yt,linkedReads:rn,movedByHand:Wt,noteMoved:Ft,emphasis:ln,setEmphasis:or,activity:dn,noteAttention:cn,principal:q,seats:a,people:s,takeSeat:an,settings:re,settingValues:Ee,chooseSetting:sn,hiddenKinds:pn,administered:yn,...b?{providers:b}:{},...y?{brand:y}:{},...nt?{onKeepLens:nt}:{},app:ot,..._e?{locale:_e}:{}}),[T,o,t,B,Ae,mn,gn,Bt,Zt,Qt,en,Jt,ve,nn,rt,on,$t,qt,Ut,u,hn,Sn,wn,vn,oe,Ve,M,C,te,Yt,rn,Wt,Ft,ln,dn,cn,q,a,s,an,re,Ee,sn,pn,yn,b,y,nt,ot,_e]);return(0,se.jsx)(Me.Provider,{value:ir,children:(0,se.jsx)(Re.Provider,{value:W,children:(0,se.jsx)(ai,{children:E?(0,se.jsx)(qe.Provider,{value:E,children:N}):N})})})}var _o=(0,l.createContext)(null),Rt,Tt=new Set,ni=e=>(Tt.add(e),()=>void Tt.delete(e)),To=()=>Rt;function oi(e){if(!Rt){Rt=e;for(let t of[...Tt])t()}}var ri=300;function ii(e){let t=0;return async(n,o)=>{let r=++t;return await new Promise(i=>setTimeout(i,ri)),r===t?e(n,o):[]}}function ai({children:e}){let{store:t,view:n,views:o,principal:r,hiddenKinds:i,selection:a,ai:d}=ee(),s=Xe(),u=n.q,f=n.focusId,S=!!(u&&u.trim().length>0),p=(0,l.useSyncExternalStore)(ni,To,To),g=(0,l.useMemo)(()=>S&&p?{flagged:new Set(t.violations().flatMap(E=>E.nodeIds)),touched:p.touchWeights(t.log.all())}:null,[t,s,S,p]),y=f?t.graph.getNode(f)?.kind??ce(f)??(ae(f).length===1?ae(f)[0]:void 0):void 0,x=(0,l.useMemo)(()=>d.near&&ii(d.near),[d.near]),m=(0,l.useMemo)(()=>!u||!g||!p?null:p.search(t,u,{...y?{inKind:y}:{},principal:r,places:o.places(),kinds:t.schema.kinds.filter(E=>!i.has(E)),from:[...a,...f&&t.graph.has(f)?[f]:[]],flagged:g.flagged,touched:g.touched,limit:200,rank:x}),[t,u,r,o,i,a,f,y,g,x]),[b,v]=(0,l.useState)();return(0,l.useEffect)(()=>void m?.later?.then(E=>v([m,E])),[m]),(0,se.jsx)(_o.Provider,{value:b?.[0]===m?b[1]:m,children:e})}var Mo=new WeakMap;function ja(e){let t=Mo.get(e);return t||Mo.set(e,t=new Set(e.matched)),t}function si(){return(0,l.useContext)(_o)}function ee(){let e=(0,l.useContext)(Me);if(!e)throw new Error("useGraview must be used inside a <GraviewProvider>.");return e}function It(){return(0,l.useContext)(Me)??null}function Xe(){let{store:e}=ee(),t=(0,l.useRef)(null),n=(0,l.useRef)(null),o=(0,l.useCallback)(()=>(n.current!==e&&(n.current=e,t.current=null),t.current??=e.graph.allNodes(),t.current),[e]),r=(0,l.useCallback)(i=>e.subscribe(()=>{t.current=null,i()}),[e]);return(0,l.useSyncExternalStore)(r,o,o)}function li(e){let{store:t}=ee(),n=(0,l.useCallback)(r=>t.subscribe(r),[t]),o=(0,l.useCallback)(()=>e===null?void 0:t.graph.getNode(e),[t,e]);return(0,l.useSyncExternalStore)(n,o,o)}function Oo(e,t,n){let o=new Set(e.modules.disabledKinds);for(let r of e.kindsKeptFrom(t))o.add(r);for(let[r,i]of e.modules.administered)if(!(e.mayAdminister(r,t)&&(n??[]).includes(r)))for(let a of i.kinds??[])o.add(a);return o}var Mt=2600;var Lo=new WeakSet,di=e=>Lo.has(e),ui=e=>void Lo.add(e);function Ot(e,t){let n=Cn(e.arrangement?.()?.first,t,e.places());if(!(!n||n.to==="home"))return n.to==="place"?{...de,focusId:Q(n.place.kind),within:{view:n.place.as}}:{...de,focusId:Q(n.kind)}}var Ho=L(j(),1),ci=(0,Ho.createContext)(!1);var Je=Symbol.for("graview.default-view");function Do(e){return Object.defineProperty(e,Je,{value:!0,enumerable:!1}),e}function No(e){return typeof e=="function"&&e[Je]===!0}var Ct=Symbol.for("graview.replaces-page");function jo(e){return typeof e=="function"&&e[Ct]===!0}function pi(e){return In(e)}function yi(e,t){if(t===e)return e;for(let r of t.registrations())e.register(r.kind,r,r.view,r);let n=t.arrangement?.();n&&e.arrange?.(n);let o=t.homeView?.();return o&&e.home?.(o),e}var me=L(j(),1);function mi(){let{selection:e,setSelection:t}=ee();return(0,me.useMemo)(()=>({selection:e,set:n=>t(n),clear:()=>t([]),toggle:n=>t(o=>o.includes(n)?o.filter(r=>r!==n):[...o,n]),isSelected:n=>e.includes(n)}),[e,t])}function gi(){let{store:e}=ee(),t=Xe();return(0,me.useMemo)(()=>hi(e),[e,t])}var Go=new WeakMap;function hi(e){let t=Go.get(e);if(!t){let n={violations:null};e.subscribe(()=>{n.violations=null}),Go.set(e,n),t=n}return t.violations??=e.violations(),t.violations}function Si(){let{view:e,setView:t}=ee();return(0,me.useMemo)(()=>({view:e,url:Z(e),focus:n=>t(o=>$(o,n)),show:n=>t(o=>Nn(o,n)),toggle:n=>t(o=>We(o,n)),go:n=>t(n)}),[e,t])}var ye={at:0,depth:0,listeners:new Set,tell(){for(let e of this.listeners)e()}};typeof window<"u"&&window.addEventListener("popstate",e=>{let t=e.state;ye.at=typeof t?.graview=="number"?t.graview:0,ye.at>ye.depth&&(ye.depth=ye.at),ye.tell()});var D=L(j(),1),_t={profile:{trigger:"profile-button",pane:"profile",opens:"press",focus:"into",drawn:["shell","embed"]},problems:{trigger:"standing",pane:"problems",opens:"press",focus:"into",drawn:["shell","embed"]},places:{trigger:"app-places-open",pane:"app-places",opens:"press",focus:"into",drawn:["embed"]},here:{trigger:"here-open",pane:"here-list",opens:"press",focus:"into",drawn:["shell","embed","pages"]},suggested:{trigger:"suggested-button",pane:"suggested",opens:"press",focus:"into",drawn:["shell","embed","pages"]},activity:{trigger:"activity-button",pane:"activity",opens:"press",focus:"into",drawn:["shell","embed","pages"]},find:{trigger:"find-box",pane:"find-strip",opens:"typing",focus:"stays",drawn:["shell"]},districts:{trigger:"beyond-more",pane:"beyond-list",opens:"press",focus:"into",drawn:["shell","embed"]},acts:{trigger:null,pane:"context-menu",opens:"context-menu",focus:"into",drawn:["shell","embed","pages"]},arrange:{trigger:"arrange-add",pane:"arrange-list",opens:"press",focus:"into",drawn:["pages"]},"studio-ask":{trigger:"studio-agent",pane:"studio-agent-panel",opens:"press",focus:"into",drawn:["studio"]}},wi={position:"fixed",inset:"auto",margin:0,zIndex:Rn("popover"),boxSizing:"border-box"},Ze=6,ge=8,vi=e=>typeof e.showPopover=="function";function Qe(e){try{return e.matches(":popover-open")}catch{return!1}}function bi(e){if(typeof e=="function"){let o=e();return o?{left:o.x,right:o.x,top:o.y,bottom:o.y}:null}let t=e.current;if(!t||!t.isConnected)return null;let n=t.getBoundingClientRect();return{left:n.left,right:n.right,top:n.top,bottom:n.bottom}}function Lt(e,t,n={}){let o=bi(t);if(!o)return;let r={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},i=e.dataset.graviewDesignedHeight??=e.style.maxHeight;e.style.maxHeight=i;let a=e.getBoundingClientRect(),d=r.height-o.bottom-Ze-ge,s=o.top-Ze-ge,u=a.height<=d||d>=s,f=Math.max(96,Math.floor(u?d:s)),S=Math.min(a.height,f);a.height>f&&(e.style.maxHeight=i?`min(${i}, ${f}px)`:`${f}px`);let p=a.width,g=n.align==="start"?o.left:o.right-p,y=typeof t=="function"?null:t.current?.closest("[data-graview-embed]")?.getBoundingClientRect();y&&p<=y.right-y.left&&(g<y.left?g=o.left+p<=y.right?o.left:y.left:g+p>y.right&&(g=o.right-p>=y.left?o.right-p:y.right-p));let x=p>=r.width-2*ge?Math.max(0,(r.width-p)/2):Math.max(ge,Math.min(g,r.width-ge-p)),m=u?o.bottom+Ze:Math.max(ge,o.top-Ze-S);e.style.left=`${Math.round(x)}px`,e.style.top=`${Math.round(m)}px`}function Wo(e,t,n,o={}){let r=o.align??"end";(0,D.useLayoutEffect)(()=>{let i=e.current;if(!t||!i)return;if(vi(i)&&!Qe(i))try{i.showPopover(),Ei()}catch{}let a=0,d=u=>{u?.target instanceof Node&&i.contains(u.target)||(cancelAnimationFrame(a),a=requestAnimationFrame(()=>Lt(i,n,{align:r})))};Lt(i,n,{align:r}),addEventListener("resize",d),addEventListener("scroll",d,!0);let s=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>d());return s?.observe(i),()=>{if(cancelAnimationFrame(a),removeEventListener("resize",d),removeEventListener("scroll",d,!0),s?.disconnect(),i.isConnected&&Qe(i))try{i.hidePopover()}catch{}}},[t,e,r])}var Ht=new Set;function xi(e){return Ht.add(e),()=>Ht.delete(e)}function Ei(){for(let e of Ht)if(!(!e.isConnected||!Qe(e)))try{e.hidePopover(),e.showPopover()}catch{}}var he=null,ki='button:not([disabled]), [href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), summary, [tabindex]:not([tabindex="-1"])';function Ai(e){for(let t of e.querySelectorAll(ki))if(t.closest("[hidden]")===null&&getComputedStyle(t).visibility!=="hidden")return t;return e}var Vt=()=>{let e=document.activeElement;return e===null||e===document.body};function Pi(e,t={}){let{at:n,returnTo:o,onOpenChange:r}=t,i=t.popover!==!1,[a,d]=(0,D.useState)(!1),s=t.open??a,u=(0,D.useRef)(null),f=(0,D.useRef)(null),S=(0,D.useCallback)(v=>{u.current=v},[]),p=(0,D.useCallback)(v=>{f.current=v},[]),g=`graview-popover-${(0,D.useId)().replace(/:/g,"")}`,y=(0,D.useRef)({onOpenChange:r,returnTo:o,controlled:t.open!==void 0});y.current={onOpenChange:r,returnTo:o,controlled:t.open!==void 0};let x=(0,D.useCallback)(v=>{y.current.controlled||d(v),y.current.onOpenChange?.(v)},[]),m=(0,D.useCallback)(()=>{(document.querySelector(`[aria-controls="${g}"]`)??u.current??y.current.returnTo?.()??null)?.focus({preventScroll:!0})},[g]),b=(0,D.useCallback)(v=>{let E=f.current,M=typeof document>"u"?null:document.activeElement,F=M===null||M===document.body||E!==null&&E.contains(M);x(!1),!(!v||!F)&&(m(),requestAnimationFrame(()=>{Vt()&&m()}))},[x,m]);return Wo(f,i&&s,n??u,t.align?{align:t.align}:{}),(0,D.useEffect)(()=>{if(!i||!s)return;let v={name:e,close:()=>b(!1)};if(he&&he.close!==v.close&&he.close(),he=v,_t[e].focus==="into"){let H=f.current;H&&!H.contains(document.activeElement)&&Ai(H).focus({preventScroll:!0})}let E=H=>{H.key==="Escape"&&b(!0)},M=H=>{let V=H.target;if(!(V instanceof Node))return;let _=f.current;if(_?.contains(V)||u.current?.contains(V))return;let N=V instanceof Element?V.closest('[role="dialog"], [role="alertdialog"]'):null;N&&!(_&&N.contains(_))||(b(!1),_t[e].focus==="into"&&requestAnimationFrame(()=>{(Vt()||_!==null&&_.contains(document.activeElement))&&m()}))},F=null,C=null,K=H=>{let V=H.target;if(!(V instanceof Element))return;let _=f.current,N=V.closest('[role="dialog"], [role="alertdialog"]');!N||_&&(_.contains(N)||N.contains(_))||(F=N,b(!1))};return document.addEventListener("keydown",E),document.addEventListener("pointerdown",M,!0),document.addEventListener("focusin",K),()=>{document.removeEventListener("keydown",E),document.removeEventListener("pointerdown",M,!0),document.removeEventListener("focusin",K);let H=F;H&&typeof MutationObserver<"u"&&(C?.disconnect(),C=new MutationObserver(()=>{H.isConnected||(C?.disconnect(),requestAnimationFrame(()=>{(Vt()||document.activeElement.closest("[hidden]")!==null)&&m()}))}),C.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>C?.disconnect(),10*6e4)),he?.close===v.close&&(he=null)}},[i,s,e,b,m]),{open:s,setOpen:v=>v?x(!0):b(!0),toggle:()=>s?b(!0):x(!0),trigger:{ref:S,"aria-expanded":s,"aria-controls":g,"data-graview-popover-trigger":e},pane:{ref:p,id:g,popover:"manual",tabIndex:-1,"data-graview-popover":e,"data-graview-overlay":""}}}var G=L(j(),1),U=L(Te(),1),Dt=new Set,Fo=!1;function Nt(){for(let e of[...Dt])e()}function Ri(){Fo||typeof window>"u"||(Fo=!0,window.addEventListener("online",Nt))}function Ti(e){let t,n=!1,o=!1,r,i=0,a=new Set,d=()=>{i+=1;for(let p of[...a])p()},s=p=>(a.add(p),()=>void a.delete(p)),u=()=>i,f=()=>void S().catch(()=>{});function S(){if(n)return Promise.resolve(t);if(r)return r;let p=e().then(g=>(t=g,n=!0,o=!1,r=void 0,Dt.delete(f),d(),g),g=>{throw r=void 0,o=!0,Dt.add(f),Ri(),d(),g});return p.catch(()=>{}),r=p,p}return{load:S,prefetch:f,get current(){return t},get failed(){return o},part(p,g={}){let y=g.what??"This part";function x(v){(0,G.useSyncExternalStore)(s,u,u);let E=(0,G.useRef)(null),M=(0,G.useRef)(null),F=(0,G.useRef)(!1);return(0,G.useEffect)(()=>{o&&r===void 0&&f()},[]),n&&typeof document<"u"&&E.current!==null&&document.activeElement===E.current&&(F.current=!0),(0,G.useLayoutEffect)(()=>{if(!(!n||!F.current)){F.current=!1;for(let C=M.current?.nextElementSibling??null;C!==null;C=C.nextElementSibling){let K=C.matches(Ko)?C:C.querySelector(Ko);if(K instanceof HTMLElement){K.focus();return}}}}),n?(0,U.jsxs)(U.Fragment,{children:[F.current?(0,U.jsx)("span",{ref:M,hidden:!0}):null,p(t,v)]}):g.quiet?null:(0,U.jsx)(Mi,{what:y,button:E,...g.as?{as:g.as}:{}})}let m=(0,G.lazy)(()=>S().then(()=>({default:x}),()=>({default:x})));function b(v){let[E]=(0,G.useState)(()=>n||o);return(0,G.createElement)(E?x:m,v)}return b}}}var Ko="button,a[href],input,select,textarea,[tabindex]:not([tabindex='-1'])";function Mi({what:e,button:t,as:n="p"}){let r=typeof navigator<"u"&&navigator.onLine===!1?`${e} will load when you're back online.`:`${e} didn't load.`;return(0,U.jsxs)(n,{"data-testid":"lazy-part-missing",style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-muted)"},children:[(0,U.jsx)("span",{role:"status",children:r})," ",(0,U.jsx)("button",{ref:t,type:"button","data-testid":"lazy-part-retry",onClick:Nt,style:{font:"inherit",fontWeight:600,color:"var(--graview-ink)",background:"none",border:"1px solid var(--graview-edge)",borderRadius:6,padding:"2px 10px"},children:"Try again"})]})}var Se=L(j(),1);var Bo=(0,Se.createContext)(null);function Oi(){let e=(0,Se.useContext)(Bo),t=It(),n=(o,r,i)=>t?.setView(a=>ie(ie(ue($(a,Q(o)),!1),"view",r),"filter",i?.filter??null));return(0,Se.useMemo)(()=>e??{record:o=>{t&&(t.setView(r=>$(ue(r,!1),o)),t.setSelection([o]))},place:(o,r)=>{let i=t?.views.places().find(a=>a.as===o);i&&n(i.kind,i.as,r)},list:(o,r)=>n(o,null,r)},[e,t])}var $o=L(j(),1),Ii=(0,$o.createContext)(!1);var qo=L(j(),1),Ci=(0,qo.createContext)(null);var zo=L(j(),1),jt='button:not([disabled]), a[href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), summary, [tabindex]:not([tabindex="-1"])',Gt=e=>e instanceof HTMLElement&&(e.matches(jt)||e.hasAttribute("tabindex")),Oe=e=>typeof e.checkVisibility=="function"?e.checkVisibility():e.getClientRects().length>0;function Vi(e,t){let n=s=>s.replace(/["\\]/g,"\\$&"),o=t.getAttribute("data-testid"),r=t.getAttribute("data-graview-pick"),i=t.getAttribute("aria-label"),a=o?`[data-testid="${n(o)}"]`:r?`[data-graview-pick="${n(r)}"]`:i?`${t.tagName.toLowerCase()}[aria-label="${n(i)}"]`:null;if(!a)return null;let d=e.querySelector(a);return d&&Gt(d)&&Oe(d)?d:null}var _i=e=>e.isConnected&&Gt(e)&&!e.matches(":disabled")&&e instanceof HTMLElement&&Oe(e);function Uo(e,t){let n=t?Vi(e,t):null;if(n)return n;let o=e.querySelector("[data-graview-view][tabindex]");if(o&&Oe(o))return o;for(let r of e.querySelectorAll(jt))if(Oe(r))return r;return Gt(e)&&Oe(e)?e:null}function Li(e){(0,zo.useEffect)(()=>{let t=e.current;if(!t||typeof MutationObserver>"u")return;let n=[],o=m=>{let b=m.target;if(b instanceof Element){n=[];for(let v=b;v&&v!==t.parentElement;v=v.parentElement)n.push(v)}},r=!1,i=!1,a=t.ownerDocument,d=()=>!i&&a.defaultView!==null,s=(m,b)=>void setTimeout(()=>d()&&b(),m),u=m=>void requestAnimationFrame(()=>d()&&m()),f=m=>{if(r=!1,i)return;let b=a.activeElement;if(!(!(b===null||b===a.body||b===a.documentElement)||n.length===0)){if(_i(n[0])){m&&n[0]instanceof HTMLElement&&n[0].focus({preventScroll:!0});return}for(let E of n.slice(1)){if(!E.isConnected)continue;let M=Uo(E,n[0]);if(M){M.focus({preventScroll:!0}),n=[];return}}}},S=(m,b=Date.now()+2500)=>{s(100,()=>{f(m);let v=a.activeElement;(v===null||v===a.body||v===a.documentElement)&&n.length>0&&Date.now()<b&&S(m,b)})},p=()=>{r||n.length===0||(r=!0,s(60,()=>u(()=>{f(!1),S(!1)})))},g=m=>{if(!(m instanceof KeyboardEvent&&!["Enter"," ","Escape"].includes(m.key))){if(!(m instanceof KeyboardEvent)){let b=m.target instanceof Element?m.target.closest(jt):null,v=a.activeElement,E=v===null||v===a.body||v===a.documentElement;if(b&&E&&t.contains(b)){n=[];for(let M=b;M&&M!==t.parentElement;M=M.parentElement)n.push(M);s(150,()=>u(()=>{f(!1),S(!1)}));return}}!(m instanceof KeyboardEvent)&&!(m.target instanceof Node&&n[0]?.contains(m.target))||s(150,()=>u(()=>{f(!0),S(!0)}))}},y=new MutationObserver(()=>{n.length>0&&!n[0].isConnected&&p()}),x=m=>{m.relatedTarget===null&&p()};return t.addEventListener("focusin",o),t.addEventListener("focusout",x),t.addEventListener("click",g),t.addEventListener("keydown",g),y.observe(t,{childList:!0,subtree:!0}),()=>{i=!0,t.removeEventListener("focusin",o),t.removeEventListener("focusout",x),t.removeEventListener("click",g),t.removeEventListener("keydown",g),y.disconnect()}},[e])}export{_n as a,de as b,Z as c,je as d,Ni as e,ji as f,Hn as g,Ln as h,Dn as i,lt as j,$ as k,Nn as l,ie as m,ue as n,Ge as o,Pe as p,We as q,Ke as r,dt as s,ce as t,Fi as u,ur as v,Q as w,jn as x,ae as y,Gn as z,cr as A,Ki as B,Wn as C,ut as D,fr as E,j as F,wt as G,Cr as H,_r as I,io as J,qe as K,Lr as L,Re as M,so as N,Hr as O,bt as P,Te as Q,Yr as R,Xr as S,Vo as T,ti as U,oi as V,ja as W,si as X,ee as Y,It as Z,Xe as _,li as $,di as aa,ui as ba,Ot as ca,Bo as da,Oi as ea,ci as fa,Do as ga,No as ha,jo as ia,pi as ja,yi as ka,Ii as la,Ci as ma,mi as na,gi as oa,Si as pa,ye as qa,Li as ra,wi as sa,Qe as ta,Wo as ua,xi as va,Pi as wa,Ti as xa};
2
- /*! Bundled license information:
3
-
4
- react/cjs/react.production.js:
5
- (**
6
- * @license React
7
- * react.production.js
8
- *
9
- * Copyright (c) Meta Platforms, Inc. and affiliates.
10
- *
11
- * This source code is licensed under the MIT license found in the
12
- * LICENSE file in the root directory of this source tree.
13
- *)
14
-
15
- react/cjs/react-jsx-runtime.production.js:
16
- (**
17
- * @license React
18
- * react-jsx-runtime.production.js
19
- *
20
- * Copyright (c) Meta Platforms, Inc. and affiliates.
21
- *
22
- * This source code is licensed under the MIT license found in the
23
- * LICENSE file in the root directory of this source tree.
24
- *)
25
- */